@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.
@@ -1,8 +1,8 @@
1
- import { jsxs as n, jsx as t, Fragment as et } from "react/jsx-runtime";
2
- import { createRoot as he } from "react-dom/client";
3
- import me, { useState as z, useMemo as V, useEffect as U, useRef as Ct, useCallback as J } from "react";
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 Wt() {
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 Vt(e) {
16
- if (!Wt()) return null;
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 Jt(e, r) {
24
- if (Wt())
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 Yt(e) {
31
- if (Wt())
30
+ function Zt(e) {
31
+ if (Xt())
32
32
  try {
33
33
  localStorage.removeItem(e);
34
34
  } catch {
35
35
  }
36
36
  }
37
- const be = "0.0.1-alpha.11", Zt = {
38
- version: be
39
- }, de = Zt.version.length > 0 ? Zt.version : "0.0.0", ce = de;
40
- de.split("-")[0];
41
- const ge = "concave-devtools-events", fe = "concave-devtools-settings", te = 200;
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 i = typeof r == "number" ? { maxEvents: r, storageScope: a } : r, d = (i.storageScope ?? "global").trim() || "global";
71
- this.storageKey = `${ge}:${d}`, this.settingsKey = `${fe}:${d}`, this.persistenceEnabled = i.enablePersistence !== !1, this.maxEvents = i.maxEvents ?? 1e3, this.persistenceEnabled || (this.settings.persistEvents = !1), this.loadSettings(), this.persistenceEnabled || (this.settings.persistEvents = !1), this.loadPersistedEvents();
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 > te) {
79
- const a = this.recentEventIds.size - te, i = this.recentEventIds.values();
80
- for (let d = 0; d < a; d++)
81
- this.recentEventIds.delete(i.next().value);
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.listeners.forEach((a) => {
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 = (b) => {
172
- const N = typeof b == "number" ? b : typeof b == "string" ? Number(b) : Number.NaN;
173
- return !Number.isFinite(N) || N < 0 ? null : N;
174
- }, a = (b) => {
175
- const N = [];
176
- for (const k of b) {
177
- if (k.status !== "success") continue;
178
- const y = r(k.endToEndDurationMs ?? k.duration);
179
- y !== null && N.push({ event: k, duration: y });
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 N;
182
- }, i = a(this.getEventsByType("query")), d = a(this.getEventsByType("mutation")), x = a(this.getEventsByType("action")), c = (b) => b.length === 0 ? 0 : b.reduce((k, y) => k + y, 0) / b.length, m = (b, N) => {
183
- if (b.length === 0) return 0;
184
- const k = [...b].sort((S, $) => S - $), y = Math.floor(k.length * N);
185
- return k[Math.min(y, k.length - 1)] || 0;
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
- ...i.map(({ event: b, duration: N }) => ({
217
+ ...s.map(({ event: m, duration: k }) => ({
188
218
  type: "query",
189
- eventId: b.id,
190
- udfPath: b.udfPath,
191
- duration: N,
192
- timestamp: b.timestamp
219
+ eventId: m.id,
220
+ udfPath: m.udfPath,
221
+ duration: k,
222
+ timestamp: m.timestamp
193
223
  })),
194
- ...d.map(({ event: b, duration: N }) => ({
224
+ ...l.map(({ event: m, duration: k }) => ({
195
225
  type: "mutation",
196
- eventId: b.id,
197
- udfPath: b.udfPath,
198
- duration: N,
199
- timestamp: b.timestamp
226
+ eventId: m.id,
227
+ udfPath: m.udfPath,
228
+ duration: k,
229
+ timestamp: m.timestamp
200
230
  })),
201
- ...x.map(({ event: b, duration: N }) => ({
231
+ ...p.map(({ event: m, duration: k }) => ({
202
232
  type: "action",
203
- eventId: b.id,
204
- udfPath: b.udfPath,
205
- duration: N,
206
- timestamp: b.timestamp
233
+ eventId: m.id,
234
+ udfPath: m.udfPath,
235
+ duration: k,
236
+ timestamp: m.timestamp
207
237
  }))
208
- ].sort((b, N) => N.duration - b.duration).slice(0, 10), v = i.map(({ duration: b }) => b), E = d.map(({ duration: b }) => b), f = x.map(({ duration: b }) => b);
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: i.length,
211
- totalMutations: d.length,
212
- totalActions: x.length,
213
- avgQueryDuration: c(v),
214
- avgMutationDuration: c(E),
215
- avgActionDuration: c(f),
216
- p50QueryDuration: m(v, 0.5),
217
- p50MutationDuration: m(E, 0.5),
218
- p50ActionDuration: m(f, 0.5),
219
- p90QueryDuration: m(v, 0.9),
220
- p90MutationDuration: m(E, 0.9),
221
- p90ActionDuration: m(f, 0.9),
222
- p95QueryDuration: m(v, 0.95),
223
- p95MutationDuration: m(E, 0.95),
224
- p95ActionDuration: m(f, 0.95),
225
- p99QueryDuration: m(v, 0.99),
226
- p99MutationDuration: m(E, 0.99),
227
- p99ActionDuration: m(f, 0.99),
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.snapshots = [], this.setFocusedEventId(null), this.recentEventIds.clear(), Yt(this.storageKey), this.listeners.forEach((r) => {
236
- r({
237
- id: "clear",
238
- timestamp: Date.now(),
239
- type: "log",
240
- level: "info",
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((i) => i.timestamp === r);
279
- return a ? (this.events = [...a.events], this.subscriptions = new Map(a.subscriptions), this.setFocusedEventId(null), this.listeners.forEach((i) => {
280
- i({
281
- id: "restore",
282
- timestamp: Date.now(),
283
- type: "log",
284
- level: "info",
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: ce,
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
- userAgent: navigator.userAgent,
306
- url: window.location.href
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
- (i) => Array.isArray(i) && i.length === 2 && typeof i[0] == "number" && Number.isFinite(i[0]) && typeof i[1] == "object" && i[1] !== null
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.listeners.forEach((a) => {
324
- a({
325
- id: "import",
326
- timestamp: Date.now(),
327
- type: "log",
328
- level: "info",
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 && Jt(this.settingsKey, JSON.stringify(this.settings)), this.notifySettingsChanged();
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 = Vt(this.settingsKey);
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
- Jt(this.storageKey, JSON.stringify(r));
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 = Vt(this.storageKey);
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), Yt(this.storageKey);
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((i) => i.type !== "query" || i.status !== "pending" || i.queryId !== r || typeof a == "number" && i.timestamp > a);
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 i = Math.round(a);
447
- return Math.min(Nt.MAX_EVENTS, Math.max(Nt.MIN_EVENTS, i));
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 = (d) => {
451
- const x = typeof d == "number" ? d : Number(d);
452
- if (!Number.isFinite(x))
512
+ const r = (l) => {
513
+ const p = typeof l == "number" ? l : Number(l);
514
+ if (!Number.isFinite(p))
453
515
  return 0;
454
- const c = Math.round(x);
455
- return Math.min(Nt.MAX_SIMULATED_LATENCY_MS, Math.max(0, c));
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 i = r(this.settings.wsJitterMs);
458
- a > 0 && i > a && (i = a), this.settings.wsLatencyMs = a, this.settings.wsJitterMs = i;
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 Ot = null;
474
- function we() {
475
- return Ot || (Ot = new Nt()), Ot;
535
+ let jt = null;
536
+ function ye() {
537
+ return jt || (jt = new Nt()), jt;
476
538
  }
477
- const ve = "#f97316", ye = 6, ke = "M16 6 Q 9.2 13.3 8 22 Q 16 19 24 22 Q 22.8 13.3 16 6 Z";
478
- function F(e) {
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(jt, () => {
481
- ee(e), jt();
482
- }) : (ee(e), jt());
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 jt() {
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 ee(e) {
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 Pt() {
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 pe() {
567
+ function ue() {
506
568
  return document.getElementById("concave-devtools-host")?.shadowRoot?.activeElement ?? null;
507
569
  }
508
- function ct(e) {
570
+ function pt(e) {
509
571
  return Array.isArray(e) && e.length === 1 ? e[0] : e;
510
572
  }
511
- const Ne = {
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 Ee(e, r, a) {
580
+ function Me(e, r, a) {
519
581
  if (e.length <= r)
520
582
  return e;
521
- const i = Math.max(12, r), d = Math.max(
583
+ const s = Math.max(12, r), l = Math.max(
522
584
  4,
523
- Math.min(a, Math.floor(i / 2))
524
- ), x = Math.max(6, i - d - 1);
525
- return `${e.slice(0, x)}…${e.slice(-d)}`;
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 i = {
529
- ...Ne,
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 `"${Ee(
597
+ return `"${Me(
536
598
  e,
537
- i.maxStringLength,
538
- i.stringTailLength
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 >= i.maxDepth) return "[…]";
545
- const d = e.slice(0, i.maxArrayItems).map((c) => Mt(c, i, a + 1)), x = e.length > i.maxArrayItems ? ", …" : "";
546
- return `[${d.join(", ")}${x}]`;
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 d = Object.entries(e);
550
- if (d.length === 0) return "{}";
551
- if (a >= i.maxDepth) return "{…}";
552
- const x = d.slice(0, i.maxObjectEntries).map(([m, w]) => `${m}: ${Mt(w, i, a + 1)}`), c = d.length > i.maxObjectEntries ? ", …" : "";
553
- return `{${x.join(", ")}${c}}`;
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 at(e, r = 180) {
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: i = 300
631
+ maxHeight: s = 300
570
632
  }) {
571
- const [d, x] = z(!0), [c, m] = z("tree"), [w, v] = z(""), E = () => {
572
- F(JSON.stringify(e, null, 2)), a?.();
573
- }, f = V(() => JSON.stringify(e, null, 2), [e]), b = V(() => {
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 k = /* @__PURE__ */ new Set(), y = w.toLowerCase();
576
- function S($, P) {
577
- if ($ === null) {
578
- "null".includes(y) && k.add(P);
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 $ == "string" || typeof $ == "number" || typeof $ == "boolean") {
582
- String($).toLowerCase().includes(y) && k.add(P);
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 M = 0; M < $.length; M++) {
587
- const q = `${P}[${M}]`;
588
- S($[M], q);
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 $ == "object")
593
- for (const [M, q] of Object.entries($)) {
594
- const R = `${P}.${M}`;
595
- M.toLowerCase().includes(y) && k.add(R), S(q, R);
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 S(e, "$"), k;
599
- }, [e, w]), N = b?.size ?? 0;
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: () => x(!d),
607
- "aria-expanded": d,
668
+ onClick: () => p(!l),
669
+ "aria-expanded": l,
608
670
  "aria-controls": `inspector-content-${r}`,
609
- "aria-label": `${d ? "Collapse" : "Expand"} ${r}`,
671
+ "aria-label": `${l ? "Collapse" : "Expand"} ${r}`,
610
672
  children: [
611
- /* @__PURE__ */ t("span", { className: `text-[10px] transition-transform ${d ? "rotate-90" : ""}`, "aria-hidden": "true", children: "▶" }),
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 ${c === "tree" ? "bg-white/10 text-dt-text-secondary border-dt-border-light" : "text-dt-text-muted hover:text-dt-text-tertiary"}`,
621
- onClick: () => m("tree"),
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": c === "tree",
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 ${c === "raw" ? "bg-white/10 text-dt-text-secondary border-dt-border-light" : "text-dt-text-muted hover:text-dt-text-tertiary"}`,
632
- onClick: () => m("raw"),
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": c === "raw",
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: E,
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
- d && /* @__PURE__ */ n("div", { className: "flex flex-col", children: [
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: (k) => v(k.target.value)
725
+ onChange: (y) => v(y.target.value)
664
726
  }
665
727
  ),
666
- w && /* @__PURE__ */ n(et, { children: [
728
+ w && /* @__PURE__ */ n(nt, { children: [
667
729
  /* @__PURE__ */ n("span", { className: "text-[9px] text-dt-text-muted/60 font-mono", children: [
668
- N,
730
+ k,
669
731
  " match",
670
- N !== 1 ? "es" : ""
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: i },
750
+ style: { maxHeight: s },
689
751
  role: "region",
690
752
  "aria-label": `${r || "Data"} content`,
691
- children: c === "tree" ? /* @__PURE__ */ t(Ut, { data: e, matchingPaths: b, searchTerm: w }) : /* @__PURE__ */ t("pre", { className: "text-dt-text-muted whitespace-pre-wrap break-all m-0", "aria-readonly": "true", children: w ? /* @__PURE__ */ t(Ce, { text: f, term: w }) : f })
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 Ce({ text: e, term: r }) {
698
- if (!r) return /* @__PURE__ */ t(et, { children: e });
699
- const a = [], i = e.toLowerCase(), d = r.toLowerCase();
700
- let x = 0, c = i.indexOf(d, x), m = 0;
701
- for (; c !== -1; )
702
- c > x && a.push(e.slice(x, c)), a.push(
703
- /* @__PURE__ */ t("mark", { className: "bg-yellow-400/30 text-yellow-200 rounded-sm px-px", children: e.slice(c, c + r.length) }, m++)
704
- ), x = c + r.length, c = i.indexOf(d, x);
705
- return x < e.length && a.push(e.slice(x)), /* @__PURE__ */ t(et, { children: a });
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 Ut({ data: e, depth: r = 0, path: a = "$", matchingPaths: i, searchTerm: d }) {
708
- const x = i ? Ft(a, i) : !1, [c, m] = z(r < 2), w = i?.has(a) ?? !1, v = c || !!i && x;
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
- d ? /* @__PURE__ */ t(re, { text: e, term: d }) : e,
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: () => m(!v),
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(et, { children: [
743
- /* @__PURE__ */ t("div", { className: "pl-4 border-l border-dt-border-light/30 ml-1", children: e.map((E, f) => {
744
- const b = `${a}[${f}]`;
745
- return i && !Ft(b, i) && !i.has(b) ? null : /* @__PURE__ */ n("div", { className: "py-px", children: [
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(Ut, { data: E, depth: r + 1, path: b, matchingPaths: i, searchTerm: d })
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 E = Object.entries(e);
759
- return E.length === 0 ? /* @__PURE__ */ t("span", { className: "text-dt-text-muted", children: "{}" }) : /* @__PURE__ */ n("div", { className: "inline", children: [
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: () => m(!v),
827
+ onClick: () => u(!v),
766
828
  "aria-expanded": v,
767
- "aria-label": `${v ? "Collapse" : "Expand"} object with ${E.length} keys`,
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
- E.length,
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(et, { children: [
780
- /* @__PURE__ */ t("div", { className: "pl-4 border-l border-dt-border-light/30 ml-1", children: E.map(([f, b]) => {
781
- const N = `${a}.${f}`, k = i?.has(N) && d && f.toLowerCase().includes(d.toLowerCase());
782
- return i && !Ft(N, i) && !i.has(N) ? null : /* @__PURE__ */ n("div", { className: "py-px", children: [
783
- /* @__PURE__ */ n("span", { className: k ? "bg-yellow-400/25 rounded-sm px-0.5 text-yellow-200" : "text-dt-text-tertiary", children: [
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
- d ? /* @__PURE__ */ t(re, { text: f, term: d }) : f,
847
+ l ? /* @__PURE__ */ t(oe, { text: f, term: l }) : f,
786
848
  '":'
787
849
  ] }),
788
850
  " ",
789
- /* @__PURE__ */ t(Ut, { data: b, depth: r + 1, path: N, matchingPaths: i, searchTerm: d })
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 Ft(e, r) {
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 re({ text: e, term: r }) {
804
- if (!r) return /* @__PURE__ */ t(et, { children: e });
805
- const a = e.toLowerCase(), i = r.toLowerCase(), d = [];
806
- let x = 0, c = a.indexOf(i, x), m = 0;
807
- for (; c !== -1; )
808
- c > x && d.push(e.slice(x, c)), d.push(
809
- /* @__PURE__ */ t("mark", { className: "bg-yellow-400/30 text-yellow-200 rounded-sm px-px", children: e.slice(c, c + r.length) }, m++)
810
- ), x = c + r.length, c = a.indexOf(i, x);
811
- return x < e.length && d.push(e.slice(x)), /* @__PURE__ */ t(et, { children: d });
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 oe = "minmax(0,1fr) 56px 56px 62px 34px minmax(150px,1fr)", Me = 140, Se = 1e-4;
814
- function lt(e) {
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 `+${lt(Math.max(0, e))}`;
880
+ return `+${dt(Math.max(0, e))}`;
819
881
  }
820
- function ue(e) {
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 ne(e) {
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 $e(e) {
901
+ function Ie(e) {
840
902
  const r = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map();
841
- for (const m of e.spans) {
842
- const w = m.parentId ?? null;
843
- a.set(m.id, w);
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(m), r.set(w, v);
907
+ v.push(u), r.set(w, v);
846
908
  }
847
- for (const m of r.values())
848
- m.sort((w, v) => w.startMs - v.startMs || w.name.localeCompare(v.name));
849
- const i = [], d = /* @__PURE__ */ new Set(), x = (m, w) => {
850
- if (d.has(m.id)) return;
851
- d.add(m.id);
852
- const v = r.get(m.id) ?? [], E = v.reduce((f, b) => !Number.isFinite(b.durationMs) || b.durationMs <= 0 ? f : f + b.durationMs, 0);
853
- i.push({
854
- span: m,
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: E
919
+ directChildDurationMs: C
858
920
  });
859
- for (const f of v) x(f, w + 1);
860
- }, c = e.spans.find((m) => m.id === e.rootSpanId);
861
- c && x(c, 0);
862
- for (const m of r.get(null) ?? []) x(m, 0);
863
- for (const m of e.spans) x(m, 0);
864
- return { rows: i, parentById: a, childrenByParent: r };
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 De(e) {
867
- const r = e.attributes ? Object.keys(e.attributes).join(" ") : "", a = e.events?.map((i) => i.name).join(" ") ?? "";
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 ae(e, r, a, i) {
871
- const d = Number.isFinite(e) ? e : a, x = Number.isFinite(r) && r > 0 ? r : 0, c = (d - a) / i * 100, m = Math.min(99.8, ue(c)), w = x / i * 100, v = Math.max(0.3, 100 - m), E = Math.max(0.3, Math.min(w || 0.3, v));
872
- return { leftPct: m, widthPct: E };
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 Kt(e, r) {
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 i = parseInt(a.slice(0, 2), 16), d = parseInt(a.slice(2, 4), 16), x = parseInt(a.slice(4, 6), 16);
878
- return `rgba(${i}, ${d}, ${x}, ${r})`;
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 Ie(e, r) {
947
+ function Ae(e, r) {
886
948
  const a = xe(e);
887
949
  return {
888
- backgroundColor: Kt(a, r ? 1 : 0.86),
889
- borderColor: Kt(a, r ? 1 : 0.65),
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 Le(e) {
958
+ function Te(e) {
897
959
  const r = xe(e);
898
960
  return {
899
- backgroundColor: Kt(r, 0.95)
961
+ backgroundColor: Ht(r, 0.95)
900
962
  };
901
963
  }
902
- function Ae(e) {
964
+ function _e(e) {
903
965
  const r = /* @__PURE__ */ new Map();
904
- for (const i of e) {
905
- const d = r.get(i.depth) ?? [];
906
- d.push(i), r.set(i.depth, d);
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 [i] of Array.from(r.entries()).sort((d, x) => d[0] - x[0])) {
910
- const x = [...r.get(i) ?? []].sort(
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
- ), c = [], m = [];
913
- for (const w of x) {
914
- const v = Number.isFinite(w.span.startMs) ? w.span.startMs : 0, E = 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) : E;
915
- let b = -1;
916
- for (let N = 0; N < c.length; N++)
917
- if (v >= c[N] - Se) {
918
- b = N;
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
- b === -1 ? (b = c.length, c.push(f), m.push([])) : c[b] = Math.max(c[b], f), m[b].push(w);
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(...m);
985
+ a.push(...u);
924
986
  }
925
987
  return a;
926
988
  }
927
- function Te({ trace: e, maxHeight: r = 680 }) {
928
- const [a, i] = z(!0), [d, x] = z("waterfall"), [c, m] = z(e.rootSpanId || e.spans[0]?.id || null), [w, v] = z(""), [E, f] = z(!1), [b, N] = z(/* @__PURE__ */ new Set()), [k, y] = z(null), S = V(() => $e(e), [e]), $ = V(() => Math.min(...e.spans.map((l) => l.startMs), 0), [e.spans]), P = V(() => Math.max(...e.spans.map((l) => l.endMs), 0), [e.spans]), M = V(() => {
929
- const l = Math.max(0, P - $);
930
- return Math.max(e.summary.totalDurationMs, l, 1);
931
- }, [P, $, e.summary.totalDurationMs]), q = V(() => Math.max(220, r - 180), [r]), R = V(
932
- () => e.spans.reduce((l, h) => l + (h.status === "error" ? 1 : 0), 0),
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
- ), p = w.trim().toLowerCase(), u = p.length > 0 || E, s = V(() => {
935
- if (!u) return null;
936
- const l = /* @__PURE__ */ new Set(), h = (g) => {
937
- let T = S.parentById.get(g) ?? null;
938
- for (; T && !l.has(T); )
939
- l.add(T), T = S.parentById.get(T) ?? null;
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 (l.has(A)) continue;
945
- l.add(A);
946
- const O = S.childrenByParent.get(A) ?? [];
947
- for (const j of O) T.push(j.id);
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
- E && g.status !== "error" || p.length > 0 && !De(g).includes(p) || (h(g.id), _(g.id));
952
- return l;
953
- }, [u, S.childrenByParent, S.parentById, p, E, e.spans]), C = V(() => {
954
- const l = [], h = !u, _ = [];
955
- for (const g of S.rows) {
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 = !s || s.has(g.span.id), O = !T && A;
959
- O && l.push(g), h && O && g.hasChildren && b.has(g.span.id) && _.push(g.depth);
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 l;
962
- }, [S.rows, u, s, b]), I = V(() => Ae(C), [C]), L = V(() => {
963
- const l = /* @__PURE__ */ new Map();
964
- for (const h of e.spans) l.set(h.id, h);
965
- return l;
966
- }, [e.spans]), X = V(() => {
967
- const l = /* @__PURE__ */ new Map();
968
- for (const h of S.rows) l.set(h.span.id, h);
969
- return l;
970
- }, [S.rows]);
971
- U(() => {
972
- const l = e.rootSpanId || e.spans[0]?.id || null;
973
- (!c || !e.spans.some((h) => h.id === c)) && m(l);
974
- }, [c, e]), U(() => {
975
- C.length !== 0 && (!c || !C.some((l) => l.span.id === c)) && m(C[0].span.id);
976
- }, [c, C]), U(() => {
977
- y(null);
978
- }, [d, e]);
979
- const rt = V(
980
- () => S.rows.find((l) => l.span.id === c) ?? null,
981
- [S.rows, c]
982
- )?.span ?? null, D = (k ? L.get(k) ?? null : null) ?? rt, tt = D ? X.get(D.id) ?? null : null, ot = tt ? Math.max(0, tt.span.durationMs - tt.directChildDurationMs) : 0, it = D ? (() => {
983
- const l = S.parentById.get(D.id) ?? null;
984
- return l ? L.get(l) ?? null : null;
985
- })() : null, pt = D ? D.startMs - $ : 0, mt = V(
986
- () => D?.attributes ? Object.entries(D.attributes).slice(0, 20) : [],
987
- [D]
988
- ), wt = V(() => D?.events?.slice(0, 40) ?? [], [D]), vt = (l) => {
989
- N((h) => {
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(l) ? _.delete(l) : _.add(l), _;
1053
+ return _.has(c) ? _.delete(c) : _.add(c), _;
992
1054
  });
993
1055
  }, bt = () => {
994
- N(new Set(S.rows.filter((l) => l.hasChildren).map((l) => l.span.id)));
1056
+ k(new Set(I.rows.filter((c) => c.hasChildren).map((c) => c.span.id)));
995
1057
  }, St = () => {
996
- N(/* @__PURE__ */ new Set());
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: () => i((l) => !l),
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: lt(e.summary.totalDurationMs) }),
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
- R,
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: () => F(JSON.stringify(e, null, 2)),
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: () => x("waterfall"),
1056
- className: `h-6 px-2 text-[10px] font-semibold uppercase tracking-wide ${d === "waterfall" ? "bg-dt-info/15 text-dt-info" : "bg-transparent text-dt-text-muted hover:text-dt-text-secondary"}`,
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: () => x("flamegraph"),
1065
- className: `h-6 px-2 border-l border-dt-border-light text-[10px] font-semibold uppercase tracking-wide ${d === "flamegraph" ? "bg-dt-info/15 text-dt-info" : "bg-transparent text-dt-text-muted hover:text-dt-text-secondary"}`,
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: (l) => v(l.target.value),
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((l) => !l),
1085
- className: `h-6 px-2 rounded text-[10px] font-semibold uppercase tracking-wide border ${E ? "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"}`,
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
- u && /* @__PURE__ */ t(
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
- C.length,
1161
+ N.length,
1100
1162
  "/",
1101
- S.rows.length
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: u,
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: u,
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
- d === "waterfall" ? /* @__PURE__ */ n(et, { children: [
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: oe },
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: C.map((l) => {
1142
- const { span: h } = l, _ = Number.isFinite(h.durationMs) && h.durationMs > 0 ? h.durationMs : 0, g = Math.max(0, _ - l.directChildDurationMs), T = h.startMs - $, A = h.events?.length ?? 0, { leftPct: O, widthPct: j } = ae(
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
- M
1147
- ), Q = c === h.id, K = b.has(h.id);
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 ${Q ? "bg-dt-info/10 border-dt-info/30" : "border-transparent hover:bg-white/[0.03]"}`,
1152
- style: { gridTemplateColumns: oe },
1153
- onMouseDown: (Y) => Y.preventDefault(),
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
- m(h.id), y(h.id);
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: `${l.depth * 8}px` }, children: [
1159
- l.hasChildren ? /* @__PURE__ */ t(
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: (Y) => Y.preventDefault(),
1164
- onClick: (Y) => {
1165
- Y.stopPropagation(), vt(h.id);
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: K ? "Expand" : "Collapse",
1169
- children: /* @__PURE__ */ t("span", { className: `inline-block ${K ? "" : "rotate-90"}`, children: ">" })
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: lt(g) }),
1189
- /* @__PURE__ */ t("div", { className: "font-mono text-[10px] text-dt-text-muted text-right", children: lt(_) }),
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
- Q && h.events?.slice(0, 80).map((Y, nt) => {
1255
+ G && h.events?.slice(0, 80).map((et, at) => {
1194
1256
  const ut = Math.min(
1195
1257
  99.8,
1196
- ue((Y.atMs - $) / M * 100)
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}:${nt}:${Y.name}`
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: `${j}%`, ...Le(h) }
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
- C.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." })
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((l) => /* @__PURE__ */ t(
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: `${l}%`,
1230
- transform: l === 0 ? "translateX(0)" : l === 100 ? "translateX(-100%)" : "translateX(-50%)"
1291
+ left: `${c}%`,
1292
+ transform: c === 0 ? "translateX(0)" : c === 100 ? "translateX(-100%)" : "translateX(-50%)"
1231
1293
  },
1232
- children: l === 0 ? "0ms" : lt(M * l / 100)
1294
+ children: c === 0 ? "0ms" : dt(E * c / 100)
1233
1295
  },
1234
- `tick-${l}`
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((l) => /* @__PURE__ */ t("div", { className: "absolute inset-y-0", style: { left: `${l}%` }, children: /* @__PURE__ */ t("div", { className: "absolute inset-y-0 w-px bg-white/10" }) }, `line-${l}`)) })
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: D ? /* @__PURE__ */ n(et, { children: [
1239
- /* @__PURE__ */ t("span", { className: "text-dt-text-secondary truncate max-w-[38%]", title: D.name, children: D.name }),
1240
- /* @__PURE__ */ t("span", { className: "text-dt-text-muted uppercase", children: D.kind }),
1241
- /* @__PURE__ */ t("span", { className: D.status === "error" ? "text-dt-error" : "text-dt-success", children: D.status }),
1242
- it && /* @__PURE__ */ n("span", { className: "text-dt-text-muted/80 truncate max-w-[20%]", title: it.name, children: [
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(it.name, 24)
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(pt)
1310
+ gt(it)
1249
1311
  ] }),
1250
1312
  /* @__PURE__ */ n("span", { className: "text-dt-text-muted", children: [
1251
1313
  "self ",
1252
- lt(ot)
1314
+ dt(tt)
1253
1315
  ] }),
1254
1316
  /* @__PURE__ */ n("span", { className: "text-dt-text-muted", children: [
1255
1317
  "total ",
1256
- lt(D.durationMs)
1318
+ dt(M.durationMs)
1257
1319
  ] }),
1258
1320
  /* @__PURE__ */ n("span", { className: "text-dt-text-muted", children: [
1259
1321
  "evt ",
1260
- D.events?.length ?? 0
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: I.map((l, h) => /* @__PURE__ */ t(
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: l.map((_) => {
1268
- const g = _.span, T = Number.isFinite(g.durationMs) && g.durationMs > 0 ? g.durationMs : 0, { leftPct: A, widthPct: O } = ae(
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
- M
1273
- ), j = c === g.id, Q = O > 24 ? It(g.name, 28) : O > 14 ? g.kind : "";
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: (K) => K.preventDefault(),
1279
- onMouseEnter: () => y(g.id),
1280
- onMouseLeave: () => y((K) => K === g.id ? null : K),
1281
- onFocus: () => y(g.id),
1282
- onBlur: () => y((K) => K === g.id ? null : K),
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
- m(g.id), y(g.id);
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}%`, ...Ie(g, j) },
1288
- title: `${g.name} (${g.kind}) ${lt(T)} @ ${gt(g.startMs - $)}`,
1289
- children: Q
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
- I.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." })
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: Me }, children: D ? /* @__PURE__ */ n("div", { className: "space-y-1.5", children: [
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: D.kind }),
1302
- /* @__PURE__ */ t("span", { className: "font-mono text-[11px] text-dt-text-secondary truncate", title: D.name, children: D.name }),
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 ${D.status === "error" ? "text-dt-error" : "text-dt-success"}`,
1307
- children: D.status
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(D.startMs - $)
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(D.endMs - $)
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
- lt(ot)
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
- lt(D.durationMs)
1388
+ dt(M.durationMs)
1327
1389
  ] })
1328
1390
  ] }),
1329
- it && /* @__PURE__ */ n("div", { className: "text-[9px] font-mono text-dt-text-muted/70", title: it.name, children: [
1391
+ ot && /* @__PURE__ */ n("div", { className: "text-[9px] font-mono text-dt-text-muted/70", title: ot.name, children: [
1330
1392
  "parent ",
1331
- It(it.name, 56)
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(([l, h]) => /* @__PURE__ */ n(
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: `${l}: ${ne(h)}`,
1403
+ title: `${c}: ${ae(h)}`,
1342
1404
  children: [
1343
1405
  /* @__PURE__ */ n("span", { className: "text-dt-text-muted/70", children: [
1344
- l,
1406
+ c,
1345
1407
  "="
1346
1408
  ] }),
1347
- /* @__PURE__ */ t("span", { className: "text-dt-text-secondary", children: ne(h) })
1409
+ /* @__PURE__ */ t("span", { className: "text-dt-text-secondary", children: ae(h) })
1348
1410
  ]
1349
1411
  },
1350
- l
1412
+ c
1351
1413
  )) }),
1352
- wt.length > 0 && /* @__PURE__ */ t("div", { className: "space-y-0.5", children: wt.map((l, h) => /* @__PURE__ */ n(
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(l.atMs - $) }),
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: l.name }),
1360
- l.attributes ? ` ${JSON.stringify(l.attributes)}` : ""
1421
+ /* @__PURE__ */ t("span", { className: "text-dt-info/90", children: c.name }),
1422
+ c.attributes ? ` ${JSON.stringify(c.attributes)}` : ""
1361
1423
  ]
1362
1424
  },
1363
- `${D.id}:${h}:${l.name}`
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 Xt = me.forwardRef(
1372
- ({ value: e, onValueChange: r, onClear: a, placeholder: i, className: d = "", ...x }, c) => {
1373
- const m = () => {
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 ${d === "stretch" ? "flex-1" : ""}`, role: "search", children: [
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
- ...x,
1381
- ref: c,
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: i,
1387
- spellCheck: x.spellCheck ?? !1,
1388
- "aria-label": x["aria-label"] || i || "Search"
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: m,
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 Gt({ x: e, y: r, items: a, onClose: i }) {
1406
- const [d, x] = z(-1), c = Ct(null), [m, w] = z({ x: e, y: r });
1407
- U(() => {
1408
- const f = c.current;
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 b = 8, N = f.getBoundingClientRect(), k = window.innerWidth, y = window.innerHeight;
1411
- let S = e, $ = r;
1412
- e + N.width > k - b && (S = Math.max(b, k - N.width - b)), r + N.height > y - b && ($ = Math.max(b, y - N.height - b)), (S !== m.x || $ !== m.y) && w({ x: S, y: $ });
1413
- }, [e, r]), U(() => {
1414
- const f = (S) => {
1415
- c.current && !c.current.contains(S.target) && i();
1416
- }, b = (S) => {
1417
- c.current && !c.current.contains(S.target) && i();
1418
- }, N = () => i(), k = () => i(), y = setTimeout(() => {
1419
- document.addEventListener("mousedown", f), document.addEventListener("contextmenu", b);
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", N, !0), window.addEventListener("blur", k), () => {
1422
- clearTimeout(y), document.removeEventListener("mousedown", f), document.removeEventListener("contextmenu", b), window.removeEventListener("scroll", N, !0), window.removeEventListener("blur", k);
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
- }, [i]);
1425
- const v = a.map((f, b) => ({ ...f, index: b })).filter((f) => !f.disabled), E = J(
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(), i();
1490
+ f.preventDefault(), f.stopPropagation(), s();
1429
1491
  return;
1430
1492
  }
1431
1493
  if (f.key === "ArrowDown") {
1432
- f.preventDefault(), x((b) => {
1433
- const N = v.findIndex((y) => y.index === b), k = N < v.length - 1 ? N + 1 : 0;
1434
- return v[k].index;
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(), x((b) => {
1440
- const N = v.findIndex((y) => y.index === b), k = N > 0 ? N - 1 : v.length - 1;
1441
- return v[k].index;
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(), d >= 0 && !a[d].disabled && (a[d].action(), i());
1508
+ f.preventDefault(), l >= 0 && !a[l].disabled && (a[l].action(), s());
1447
1509
  return;
1448
1510
  }
1449
1511
  },
1450
- [i, d, a, v]
1512
+ [s, l, a, v]
1451
1513
  );
1452
- return U(() => (window.addEventListener("keydown", E, !0), () => window.removeEventListener("keydown", E, !0)), [E]), U(() => {
1453
- v.length > 0 && d === -1 && x(v[0].index);
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: c,
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: m.y, left: m.x },
1521
+ style: { top: u.y, left: u.x },
1460
1522
  role: "menu",
1461
1523
  onContextMenu: (f) => f.preventDefault(),
1462
- children: a.map((f, b) => /* @__PURE__ */ n("div", { children: [
1463
- f.separator && b > 0 && /* @__PURE__ */ t("div", { className: "border-t border-dt-border-light/40 my-0.5", role: "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" : d === b ? "bg-white/[0.08] text-dt-text-secondary" : "text-dt-text-secondary hover:bg-white/[0.06]"}`,
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 || x(b);
1534
+ f.disabled || p(m);
1473
1535
  },
1474
- onClick: (N) => {
1475
- N.stopPropagation(), f.disabled || (f.action(), i());
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
- ] }, b))
1545
+ ] }, m))
1484
1546
  }
1485
1547
  );
1486
1548
  }
1487
- function zt(e) {
1549
+ function Pt(e) {
1488
1550
  return e.type === "query" || e.type === "mutation" || e.type === "action";
1489
1551
  }
1490
- function Ht(e) {
1552
+ function Qt(e) {
1491
1553
  return e.type === "auth";
1492
1554
  }
1493
1555
  function Lt(e) {
1494
- return zt(e) || Ht(e);
1556
+ return Pt(e) || Qt(e);
1495
1557
  }
1496
- const _e = `
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, ie = 100, ft = 4e3, ze = {
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 Rt(e) {
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 Pe(e) {
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 qe({ eventStore: e, panelConnectionState: r }) {
1527
- const [a, i] = z([]), [d, x] = z("all"), [c, m] = z(""), [w, v] = z(At), [E, f] = z(null), [b, N] = z(0), [k, y] = z(null), [S, $] = z(null), P = Ct(null), M = E && zt(E) ? E : null, q = E && Ht(E) ? E : null, R = J(() => {
1528
- v(At), N(0);
1529
- }, []), p = J(
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
- x(o), R();
1593
+ p(o), H();
1532
1594
  },
1533
- [R]
1534
- ), u = J(
1595
+ [H]
1596
+ ), x = U(
1535
1597
  (o) => {
1536
- m(o), R();
1598
+ u(o), H();
1537
1599
  },
1538
- [R]
1600
+ [H]
1539
1601
  );
1540
- U(() => {
1602
+ K(() => {
1541
1603
  const o = () => {
1542
- i(e.getAllEvents());
1543
- }, l = e.subscribe(o);
1544
- return o(), l;
1545
- }, [e]), U(() => {
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
- x("all"), m(""), v(At), y(null), $(null), f(_), N(0);
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)), N(T));
1553
- }, l = e.subscribeFocus(o);
1554
- return o(e.getFocusedEventId()), l;
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 s = J((o) => {
1557
- const l = ct(o.args), h = [o.id, o.type, o.status, o.udfPath];
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(Rt(l)), o.result !== void 0 && h.push(Rt(o.result)), o.error && h.push(o.error), o.logLines && o.logLines.length > 0 && h.push(o.logLines.join(`
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
- }, []), C = J(
1629
+ }, []), N = U(
1568
1630
  (o) => {
1569
- if (zt(o))
1570
- return s(o);
1571
- const l = [o.id, o.type, o.status, o.direction, o.messageType];
1572
- return o.tokenType && l.push(o.tokenType), o.error && l.push(o.error), o.details !== void 0 && l.push(Rt(o.details)), l.join(`
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
- [s]
1576
- ), { filteredEvents: I, totalMatchCount: L, hasMoreResults: X } = V(() => {
1637
+ [i]
1638
+ ), { filteredEvents: $, totalMatchCount: D, hasMoreResults: Q } = V(() => {
1577
1639
  let o = a.filter(Lt);
1578
- d !== "all" && (d === "error" ? o = o.filter((g) => g.status === "error") : o = o.filter((g) => g.type === d));
1579
- const l = c.trim().toLowerCase().split(/\s+/).filter((g) => g.length > 0);
1580
- l.length > 0 && (o = o.filter((g) => {
1581
- const T = C(g);
1582
- return l.every((A) => T.includes(A));
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, d, c, w, C]);
1591
- U(() => {
1592
- if (I.length === 0) {
1593
- N(0);
1652
+ }, [a, l, d, w, N]);
1653
+ K(() => {
1654
+ if ($.length === 0) {
1655
+ k(0);
1594
1656
  return;
1595
1657
  }
1596
- N((o) => Math.min(o, I.length - 1));
1597
- }, [I.length]);
1658
+ k((o) => Math.min(o, $.length - 1));
1659
+ }, [$.length]);
1598
1660
  const B = V(() => {
1599
- const o = a.filter(Lt), l = 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;
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: l.length,
1663
+ queries: c.length,
1602
1664
  mutations: h.length,
1603
1665
  actions: _.length,
1604
1666
  auth: g.length,
1605
1667
  errors: T,
1606
- total: l.length + h.length + _.length + g.length
1668
+ total: c.length + h.length + _.length + g.length
1607
1669
  };
1608
- }, [a]), rt = !!r?.waitingForConnection && d === "all" && !c;
1609
- U(() => {
1610
- const o = (l) => {
1611
- if (Pt()) {
1612
- if ((l.metaKey || l.ctrlKey) && l.key === "k") {
1613
- l.preventDefault(), P.current?.focus();
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 (l.key === "Escape") {
1617
- l.preventDefault(), E ? f(null) : (d !== "all" || c) && (p("all"), u(""));
1678
+ if (c.key === "Escape") {
1679
+ c.preventDefault(), C ? f(null) : (l !== "all" || d) && (b("all"), x(""));
1618
1680
  return;
1619
1681
  }
1620
- if (pe() !== P.current && I.length !== 0) {
1621
- if (l.key === "ArrowDown")
1622
- l.preventDefault(), N((h) => Math.min(h + 1, I.length - 1));
1623
- else if (l.key === "ArrowUp")
1624
- l.preventDefault(), N((h) => Math.max(h - 1, 0));
1625
- else if (l.key === "Enter") {
1626
- l.preventDefault();
1627
- const h = I[b];
1628
- h && f(E?.id === h.id ? null : h);
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
- }, [I, b, E, d, c, p, u]);
1635
- const G = (o) => {
1696
+ }, [$, m, C, l, d, b, x]);
1697
+ const P = (o) => {
1636
1698
  if (o == null) return "0";
1637
- const l = JSON.stringify(o), h = new Blob([l]).size;
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
- }, D = (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`, tt = (o) => typeof o.duration != "number" || !Number.isFinite(o.duration) || o.duration < 0 ? null : o.duration, ot = (o) => typeof o.simulatedDelayMs != "number" || !Number.isFinite(o.simulatedDelayMs) || o.simulatedDelayMs <= 0 ? 0 : o.simulatedDelayMs, it = (o) => {
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 l = tt(o);
1643
- return l === null ? null : l + ot(o);
1644
- }, pt = (o) => {
1645
- const l = Date.now() - o;
1646
- return l < 2e3 ? "just now" : l < 6e4 ? `${Math.floor(l / 1e3)}s ago` : l < 36e5 ? `${Math.floor(l / 6e4)}m ago` : l < 864e5 ? `${Math.floor(l / 36e5)}h ago` : `${Math.floor(l / 864e5)}d ago`;
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) => zt(o) ? wt(o) ?? o.id : `${o.direction === "client" ? "C" : "S"}:${o.messageType}`, bt = J((o, l) => {
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 = l.right + h;
1656
- O + _ > g - h && (O = l.left - _ - h), O < h && (O = Math.max(h, g - _ - h));
1657
- let j = l.top + l.height / 2 - A / 2;
1658
- return j < h && (j = h), j + A > T - h && (j = Math.max(h, T - h - A)), { event: o, x: O, y: j };
1659
- }, []), St = J(
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 (Ht(o)) {
1723
+ if (Qt(o)) {
1662
1724
  const A = [
1663
- { label: "Copy Message Type", action: () => F(o.messageType), shortcut: "⌘C" }
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: () => F(o.error)
1729
+ action: () => R(o.error)
1668
1730
  }), o.details !== void 0 && A.push({
1669
1731
  label: "Copy Details",
1670
- action: () => F(JSON.stringify(o.details, null, 2))
1732
+ action: () => R(JSON.stringify(o.details, null, 2))
1671
1733
  }), A.push({
1672
1734
  label: "Filter by Type: auth",
1673
- action: () => p("auth"),
1735
+ action: () => b("auth"),
1674
1736
  separator: !0
1675
1737
  }), A.push({
1676
1738
  label: "Copy Event ID",
1677
- action: () => F(o.id),
1739
+ action: () => R(o.id),
1678
1740
  separator: !0
1679
1741
  }), A.push({
1680
1742
  label: "Copy as JSON",
1681
- action: () => F(JSON.stringify(o, null, 2))
1743
+ action: () => R(JSON.stringify(o, null, 2))
1682
1744
  }), A;
1683
1745
  }
1684
- const l = ct(o.args), h = l != null, _ = o.status === "success" && o.result !== void 0, g = o.status === "error" && !!o.error, T = [
1685
- { label: "Copy Function Path", action: () => F(o.udfPath), shortcut: "⌘C" }
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(l);
1750
+ const A = JSON.stringify(c);
1689
1751
  T.push({
1690
1752
  label: "Copy as convex run",
1691
- action: () => F(`npx convex run ${o.udfPath} '${A}'`)
1753
+ action: () => R(`npx convex run ${o.udfPath} '${A}'`)
1692
1754
  }), T.push({
1693
1755
  label: "Copy Arguments",
1694
- action: () => F(JSON.stringify(l, null, 2))
1756
+ action: () => R(JSON.stringify(c, null, 2))
1695
1757
  });
1696
1758
  }
1697
1759
  return _ && T.push({
1698
1760
  label: "Copy Result",
1699
- action: () => F(JSON.stringify(o.result, null, 2))
1761
+ action: () => R(JSON.stringify(o.result, null, 2))
1700
1762
  }), g && T.push({
1701
1763
  label: "Copy Error",
1702
- action: () => F(o.error)
1764
+ action: () => R(o.error)
1703
1765
  }), T.push({
1704
1766
  label: "Filter by Function",
1705
- action: () => u(o.udfPath),
1767
+ action: () => x(o.udfPath),
1706
1768
  separator: !0
1707
1769
  }), T.push({
1708
1770
  label: `Filter by Type: ${o.type}`,
1709
- action: () => p(o.type)
1771
+ action: () => b(o.type)
1710
1772
  }), T.push({
1711
1773
  label: "Copy Event ID",
1712
- action: () => F(o.id),
1774
+ action: () => R(o.id),
1713
1775
  separator: !0
1714
1776
  }), T.push({
1715
1777
  label: "Copy as JSON",
1716
- action: () => F(JSON.stringify(o, null, 2))
1778
+ action: () => R(JSON.stringify(o, null, 2))
1717
1779
  }), T;
1718
1780
  },
1719
- [p, u]
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: _e }),
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 ${d === 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"}`,
1728
- onClick: () => p(o),
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
- Xt,
1796
+ Gt,
1735
1797
  {
1736
- ref: P,
1737
- value: c,
1738
- onValueChange: u,
1739
- onClear: () => u(""),
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: (d !== "all" || c) && /* @__PURE__ */ t(
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
- p("all"), u("");
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
- I.length === 0 && /* @__PURE__ */ n("div", { className: "flex flex-col items-center justify-center py-12 text-dt-text-muted gap-2", children: [
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
- rt ? /* @__PURE__ */ n(et, { children: [
1823
+ Z ? /* @__PURE__ */ n(nt, { children: [
1762
1824
  /* @__PURE__ */ t("p", { children: "Waiting for Convex WebSocket activity" }),
1763
- r.needsReload ? /* @__PURE__ */ n(et, { children: [
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(et, { children: [
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: d !== "all" || c ? "No activity matches your current filters" : "Execute operations or auth flows to see them here" })
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
- I.length > 0 && /* @__PURE__ */ n("div", { className: "flex flex-1 overflow-hidden", children: [
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
- X && /* @__PURE__ */ n("div", { className: "text-center text-[10px] text-dt-text-muted/60 py-1 border-b border-dt-border-light/30", children: [
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
- I.length,
1856
+ $.length,
1795
1857
  " of ",
1796
- L
1858
+ D
1797
1859
  ] }),
1798
- I.map((o, l) => {
1799
- const h = E?.id === o.id, _ = l === b;
1860
+ $.map((o, c) => {
1861
+ const h = C?.id === o.id, _ = c === m;
1800
1862
  if (o.type === "auth") {
1801
- const W = o.direction === "client" ? "cli" : "srv", dt = o.direction === "client" ? "→" : "←", st = o.details && typeof o.details == "object" && !Array.isArray(o.details) ? Object.keys(o.details).length : null;
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), N(l);
1869
+ f(h ? null : o), k(c);
1808
1870
  },
1809
- onKeyDown: (H) => {
1810
- (H.key === "Enter" || H.key === " ") && (H.preventDefault(), f(h ? null : o), N(l));
1871
+ onKeyDown: (X) => {
1872
+ (X.key === "Enter" || X.key === " ") && (X.preventDefault(), f(h ? null : o), k(c));
1811
1873
  },
1812
- onContextMenu: (H) => {
1813
- H.preventDefault(), y(null), $({
1814
- x: H.clientX,
1815
- y: H.clientY,
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: (H) => {
1820
- const qt = H.currentTarget.getBoundingClientRect(), ht = bt(o, qt);
1821
- ht && y(ht);
1881
+ onMouseEnter: (X) => {
1882
+ const Ot = X.currentTarget.getBoundingClientRect(), xt = bt(o, Ot);
1883
+ xt && S(xt);
1822
1884
  },
1823
- onMouseMove: (H) => {
1824
- if (k?.event.id === o.id) {
1825
- const qt = H.currentTarget.getBoundingClientRect(), ht = bt(o, qt);
1826
- ht && y(
1827
- (yt) => yt && yt.event.id === o.id && (yt.x !== ht.x || yt.y !== ht.y) ? ht : yt
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
- y((H) => H && H.event.id === o.id ? null : H);
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
- dt,
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
- st !== null && /* @__PURE__ */ n("span", { className: "text-dt-text-muted/70 font-mono text-[10px]", children: [
1856
- st,
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: W }),
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 = ct(g.args), A = T !== void 0, O = g.type === "query" ? e.getSubscription(g.queryId) : null, j = O && O.updateCount > 0, Q = it(g), K = tt(g), Y = ot(g), nt = g.type === "query" ? "Query" : g.type === "mutation" ? "Mutation" : "Action", ut = g.status === "success" ? "succeeded" : g.status === "error" ? "failed" : "pending", xt = Y > 0 && K !== null, $t = `${nt} ${g.udfPath} ${ut}${Q !== null ? ` in ${xt ? `e2e ${D(Q)}` : `net ${D(Q)}`}` : ""}${xt ? ` (${D(K)} net + ${D(Y)} simulated)` : ""}`, Dt = j && g.type === "query";
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), N(l);
1936
+ f(h ? null : o), k(c);
1875
1937
  },
1876
- onKeyDown: (W) => {
1877
- (W.key === "Enter" || W.key === " ") && (W.preventDefault(), f(h ? null : o), N(l));
1938
+ onKeyDown: (Y) => {
1939
+ (Y.key === "Enter" || Y.key === " ") && (Y.preventDefault(), f(h ? null : o), k(c));
1878
1940
  },
1879
- onContextMenu: (W) => {
1880
- W.preventDefault(), y(null), $({
1881
- x: W.clientX,
1882
- y: W.clientY,
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: (W) => {
1887
- const dt = W.currentTarget.getBoundingClientRect(), st = bt(g, dt);
1888
- st && y(st);
1948
+ onMouseEnter: (Y) => {
1949
+ const ct = Y.currentTarget.getBoundingClientRect(), lt = bt(g, ct);
1950
+ lt && S(lt);
1889
1951
  },
1890
- onMouseMove: (W) => {
1891
- if (k?.event.id === g.id) {
1892
- const dt = W.currentTarget.getBoundingClientRect(), st = bt(g, dt);
1893
- st && y(
1894
- (H) => H && H.event.id === g.id && (H.x !== st.x || H.y !== st.y) ? st : H
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
- y((W) => W && W.event.id === g.id ? null : W);
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: at(T, 460),
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, ze) }),
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
- j && /* @__PURE__ */ n("span", { className: "text-dt-info text-[10px]", title: "Subscription update", children: [
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: at(g.result), children: [
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
- G(g.result)
2012
+ P(g.result)
1951
2013
  ] }),
1952
- Q !== null && (!j || Q > 100) && /* @__PURE__ */ n(
2014
+ G !== null && (!F || G > 100) && /* @__PURE__ */ n(
1953
2015
  "span",
1954
2016
  {
1955
2017
  className: "font-mono text-dt-text-muted",
1956
- title: xt ? `E2E ${D(Q)} = Net ${D(K)} + Sim ${D(Y)}` : `Net ${D(Q)}`,
2018
+ title: ht ? `E2E ${M(G)} = Net ${M(W)} + Sim ${M(et)}` : `Net ${M(G)}`,
1957
2019
  children: [
1958
- j && "Δ",
1959
- xt ? `E2E ${D(Q)}` : `Net ${D(Q)}`
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
- xt && /* @__PURE__ */ n("span", { className: "font-mono text-dt-text-muted/85 text-[10px]", title: "Server/network round-trip", children: [
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
- D(K)
2028
+ M(W)
1967
2029
  ] }),
1968
- Y > 0 && /* @__PURE__ */ n(
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
- D(Y)
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
- X && /* @__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: [
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
- I.length,
2062
+ $.length,
2001
2063
  " of ",
2002
- L
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 + ie, L)),
2071
+ onClick: () => v((o) => Math.min(o + se, D)),
2010
2072
  children: [
2011
2073
  "Load ",
2012
- Math.min(ie, L - I.length),
2074
+ Math.min(se, D - $.length),
2013
2075
  " more"
2014
2076
  ]
2015
2077
  }
2016
2078
  )
2017
2079
  ] })
2018
2080
  ] }),
2019
- E && /* @__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: [
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
- E.type === "query" && e.getSubscription(E.queryId) && (() => {
2033
- const o = e.getSubscription(E.queryId);
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
- pt(o.addedAt)
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
- M && (() => {
2059
- const o = M.udfPath, l = M.componentPath, h = new Date(M.timestamp), _ = wt(M), g = it(M), T = tt(M), A = ot(M), O = g !== null ? D(g) : null, j = T !== null ? D(T) : null, Q = A > 0 ? D(A) : null, K = ct(M.args), Y = M.status === "success" && "result" in M && M.result !== void 0 ? M.result : void 0;
2060
- return /* @__PURE__ */ n(et, { children: [
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 ${M.type === "query" ? "text-dt-query" : M.type === "mutation" ? "text-dt-mutation" : "text-dt-action"}`,
2067
- children: M.type === "query" ? "Query" : M.type === "mutation" ? "Mutation" : "Action"
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 ${M.status === "success" ? "text-dt-success" : M.status === "error" ? "text-dt-error" : "text-dt-warning"}`,
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: M.status }),
2076
- M.status?.toUpperCase() ?? "PENDING"
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: pt(M.timestamp)
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
- Q && j && /* @__PURE__ */ n("span", { className: "px-1.5 py-0.5 bg-dt-bg-tertiary rounded text-[10px] text-dt-text-muted font-mono", children: [
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
- j
2160
+ F
2099
2161
  ] }),
2100
- Q && /* @__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: [
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
- Q
2164
+ G
2103
2165
  ] })
2104
2166
  ] }),
2105
- l && /* @__PURE__ */ t("div", { className: "text-[10px] text-dt-text-muted/60 font-mono truncate", title: l, children: l }),
2106
- M.type === "query" && M.triggeredBy && /* @__PURE__ */ n(
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(M.triggeredBy),
2174
+ onClick: () => e.setFocusedEventId(E.triggeredBy),
2113
2175
  children: [
2114
2176
  /* @__PURE__ */ n("span", { children: [
2115
2177
  "Triggered by ",
2116
- Pe(M.triggeredBy)
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 M && K !== void 0 && /* @__PURE__ */ t(Et, { data: K, label: "Arguments", maxHeight: 200 }),
2124
- Y !== void 0 && /* @__PURE__ */ t(Et, { data: Y, label: "Result", maxHeight: 200 }),
2125
- M.status === "error" && "error" in M && M.error && /* @__PURE__ */ n("div", { className: "flex flex-col gap-1", children: [
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: M.error })
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
- M.logLines && M.logLines.length > 0 && /* @__PURE__ */ n("div", { className: "flex flex-col gap-1", children: [
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: M.logLines.map((nt, ut) => /* @__PURE__ */ t("div", { className: "text-dt-text-muted leading-relaxed", children: nt }, ut)) })
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
- M.trace && /* @__PURE__ */ t(Te, { trace: M.trace, maxHeight: 680 })
2195
+ E.trace && /* @__PURE__ */ t(ze, { trace: E.trace, maxHeight: 680 })
2134
2196
  ] });
2135
2197
  })(),
2136
- q && /* @__PURE__ */ n(et, { children: [
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: pt(q.timestamp)
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
- k && (() => {
2179
- const o = k.event;
2240
+ y && (() => {
2241
+ const o = y.event;
2180
2242
  if (o.type === "auth") {
2181
- const W = o.details !== void 0 ? at(o.details, 200) : null, dt = o.error && o.error.length > 160 ? `${o.error.slice(0, 157)}…` : o.error;
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: k.y, left: k.x },
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: pt(o.timestamp) }),
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
- W && /* @__PURE__ */ n("div", { className: "flex flex-col gap-0.5", children: [
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(Bt, { json: W }) })
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
- dt && /* @__PURE__ */ n("div", { className: "flex flex-col gap-0.5", children: [
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: dt })
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 l = vt(o), h = it(o), _ = tt(o), g = ot(o), T = h !== null ? D(h) : null, A = _ !== null ? D(_) : null, O = g > 0 ? D(g) : null, j = ct(o.args), Q = j !== void 0 ? at(j) : null, K = j !== void 0 ? G(j) : null, Y = j !== void 0 ? at(j) : "", nt = o.status === "success" && o.result !== void 0 ? o.result : void 0, ut = nt ? at(nt) : null, xt = nt ? at(nt) : "", $t = nt ? G(nt) : null, Dt = o.status === "error" && o.error ? o.error.length > 160 ? `${o.error.slice(0, 157)}…` : o.error : null;
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: k.y, left: k.x },
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: pt(o.timestamp) }),
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: l }),
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
- j !== void 0 && /* @__PURE__ */ n("div", { className: "flex flex-col gap-0.5", children: [
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
- K && /* @__PURE__ */ t("span", { className: "text-[9px] text-dt-text-muted/60 font-mono", children: K })
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: Q ?? void 0,
2287
- children: /* @__PURE__ */ t(Bt, { json: Y })
2348
+ title: G ?? void 0,
2349
+ children: /* @__PURE__ */ t(Vt, { json: et })
2288
2350
  }
2289
2351
  )
2290
2352
  ] }),
2291
- nt !== void 0 && /* @__PURE__ */ n("div", { className: "flex flex-col gap-0.5", children: [
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(Bt, { json: xt })
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
- S && /* @__PURE__ */ t(
2314
- Gt,
2375
+ I && /* @__PURE__ */ t(
2376
+ Yt,
2315
2377
  {
2316
- x: S.x,
2317
- y: S.y,
2318
- items: S.items,
2319
- onClose: () => $(null)
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 Bt({ json: e }) {
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 i = "cdv-json-value";
2329
- return /^"/.test(a) ? /:$/.test(a) ? i = "cdv-json-key" : i = "cdv-json-string" : /true|false/.test(a) ? i = "cdv-json-boolean" : /null/.test(a) ? i = "cdv-json-null" : i = "cdv-json-number", `<span class="${i}">${a}</span>`;
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 se = {
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 Oe({ eventStore: e }) {
2351
- const [r, a] = z([]), [i, d] = z(null), [x, c] = z(0), [m, w] = z("all"), [v, E] = z(""), [f, b] = z(null), [N, k] = z(null), y = Ct(null);
2352
- U(() => {
2353
- const p = () => {
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
- }, u = e.subscribe(p);
2356
- return p(), u;
2417
+ }, x = e.subscribeBatched(b);
2418
+ return b(), x;
2357
2419
  }, [e]);
2358
- const S = V(() => {
2359
- let p = r;
2360
- return m !== "all" && (p = p.filter((u) => u.status === m)), v && (p = p.filter(
2361
- (u) => u.udfPath.toLowerCase().includes(v.toLowerCase()) || u.componentPath?.toLowerCase().includes(v.toLowerCase())
2362
- )), [...p].sort((u, s) => u.lastUpdate !== s.lastUpdate ? s.lastUpdate - u.lastUpdate : u.addedAt !== s.addedAt ? s.addedAt - u.addedAt : s.queryId - u.queryId);
2363
- }, [r, m, v]);
2364
- U(() => {
2365
- const p = (u) => {
2366
- if (Pt()) {
2367
- if ((u.metaKey || u.ctrlKey) && u.key === "k") {
2368
- u.preventDefault(), y.current?.focus();
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 (u.key === "Escape") {
2372
- u.preventDefault(), i !== null ? d(null) : (m !== "all" || v) && (w("all"), E(""));
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 (pe() !== y.current && S.length !== 0) {
2376
- if (u.key === "ArrowDown")
2377
- u.preventDefault(), c((s) => Math.min(s + 1, S.length - 1));
2378
- else if (u.key === "ArrowUp")
2379
- u.preventDefault(), c((s) => Math.max(s - 1, 0));
2380
- else if (u.key === "Enter" || u.key === " ") {
2381
- u.preventDefault();
2382
- const s = S[x];
2383
- s && d(i === s.queryId ? null : s.queryId);
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", p), () => window.removeEventListener("keydown", p);
2389
- }, [S, x, i, m, v]), U(() => {
2390
- c(0);
2391
- }, [m, v]);
2392
- const $ = J((p) => {
2393
- F(p);
2394
- }, []), P = J((p, u) => {
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 s = 8, C = 300, I = window.innerWidth, L = window.innerHeight, X = Math.min(260, L - s * 2);
2397
- let B = u.right + s;
2398
- B + C > I - s && (B = u.left - C - s), B < s && (B = Math.max(s, I - C - s));
2399
- let rt = u.top + u.height / 2 - X / 2;
2400
- return rt < s && (rt = s), rt + X > L - s && (rt = Math.max(s, L - s - X)), { subscription: p, x: B, y: rt };
2401
- }, []), M = J((p) => {
2402
- if (p == null) return "0";
2403
- const u = JSON.stringify(p), s = new Blob([u]).size;
2404
- return s < 1024 ? `${s}B` : s < 1024 * 1024 ? `${(s / 1024).toFixed(1)}KB` : `${(s / (1024 * 1024)).toFixed(1)}MB`;
2405
- }, []), q = J(
2406
- (p) => {
2407
- const u = ct(p.args), s = u != null, C = p.currentValue !== void 0, I = [
2408
- { label: "Copy Function Path", action: () => F(p.udfPath), shortcut: "⌘C" }
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 s && I.push({
2472
+ return i && $.push({
2411
2473
  label: "Copy Arguments",
2412
- action: () => F(JSON.stringify(u, null, 2))
2413
- }), C && I.push({
2474
+ action: () => R(JSON.stringify(x, null, 2))
2475
+ }), N && $.push({
2414
2476
  label: "Copy Current Value",
2415
- action: () => F(JSON.stringify(p.currentValue, null, 2))
2416
- }), I.push({
2477
+ action: () => R(JSON.stringify(b.currentValue, null, 2))
2478
+ }), $.push({
2417
2479
  label: "Filter by Function",
2418
- action: () => E(p.udfPath),
2480
+ action: () => C(b.udfPath),
2419
2481
  separator: !0
2420
- }), I.push({
2482
+ }), $.push({
2421
2483
  label: "Copy Query ID",
2422
- action: () => F(String(p.queryId))
2423
- }), I;
2484
+ action: () => R(String(b.queryId))
2485
+ }), $;
2424
2486
  },
2425
2487
  []
2426
- ), R = (p) => {
2427
- const u = Math.floor((Date.now() - p) / 1e3);
2428
- if (u < 60) return `${u}s ago`;
2429
- const s = Math.floor(u / 60);
2430
- return s < 60 ? `${s}m ago` : `${Math.floor(s / 60)}h ago`;
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 ${m === "all" ? "bg-zinc-500/25 text-dt-text-tertiary shadow-[0_0_0_1px_rgba(161,161,170,0.4)]" : "text-dt-text-muted"}`,
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": m === "all",
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 ${m === "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"}`,
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": m === "active",
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 ${m === "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"}`,
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": m === "error",
2523
+ "aria-pressed": u === "error",
2462
2524
  children: "Errors"
2463
2525
  }
2464
2526
  )
2465
2527
  ] }),
2466
2528
  /* @__PURE__ */ t(
2467
- Xt,
2529
+ Gt,
2468
2530
  {
2469
- ref: y,
2531
+ ref: S,
2470
2532
  value: v,
2471
- onValueChange: E,
2472
- onClear: () => E(""),
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
- S.length === 0 && /* @__PURE__ */ n("div", { className: "flex flex-col items-center justify-center py-12 text-dt-text-muted gap-2", children: [
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" : m !== "all" || v ? "No subscriptions match your filters" : "No active subscriptions" }),
2482
- m !== "all" || v ? /* @__PURE__ */ t("p", { className: "text-[11px] text-dt-text-muted/60", children: "Try adjusting your filters or search" }) : null
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
- S.map((p, u) => {
2485
- const s = i === p.queryId, C = u === x, I = p.status === "error" ? "error" : "success", L = ct(p.args), X = L != null, B = JSON.stringify(L ?? null, null, 2), rt = `Subscription ${p.queryId} ${p.udfPath} ${p.status}${X ? ` with args ${Mt(L, se)}` : ""}`;
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 ${p.status === "error" ? "border-l-2 border-l-dt-error/40" : ""} ${s ? "bg-white/[0.03]" : ""} ${C ? "bg-white/[0.03] outline outline-1 outline-dt-info/30 -outline-offset-1" : ""}`,
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
- d(s ? null : p.queryId), c(u);
2558
+ l(i ? null : b.queryId), d(x);
2497
2559
  },
2498
- onKeyDown: (G) => {
2499
- (G.key === "Enter" || G.key === " ") && (G.preventDefault(), d(s ? null : p.queryId), c(u));
2560
+ onKeyDown: (P) => {
2561
+ (P.key === "Enter" || P.key === " ") && (P.preventDefault(), l(i ? null : b.queryId), d(x));
2500
2562
  },
2501
- onContextMenu: (G) => {
2502
- G.preventDefault(), b(null), k({
2503
- x: G.clientX,
2504
- y: G.clientY,
2505
- items: q(p)
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: (G) => {
2509
- const D = G.currentTarget.getBoundingClientRect(), tt = P(p, D);
2510
- tt && b(tt);
2570
+ onMouseEnter: (P) => {
2571
+ const M = P.currentTarget.getBoundingClientRect(), J = j(b, M);
2572
+ J && m(J);
2511
2573
  },
2512
- onMouseMove: (G) => {
2513
- if (f?.subscription.queryId === p.queryId) {
2514
- const D = G.currentTarget.getBoundingClientRect(), tt = P(p, D);
2515
- tt && b(
2516
- (ot) => ot && ot.subscription.queryId === p.queryId && (ot.x !== tt.x || ot.y !== tt.y) ? tt : ot
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 === p.queryId && b(null);
2583
+ f?.subscription.queryId === b.queryId && m(null);
2522
2584
  },
2523
2585
  role: "button",
2524
2586
  tabIndex: 0,
2525
- "aria-label": rt,
2526
- "aria-expanded": s,
2527
- "aria-current": C ? "true" : void 0,
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
- p.queryId
2593
+ b.queryId
2532
2594
  ] }),
2533
- /* @__PURE__ */ t("span", { className: `w-1.5 h-1.5 rounded-full shrink-0 ${I === "error" ? "bg-dt-error" : "bg-dt-success"}` }),
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 ${X ? "max-w-[44%]" : ""}`,
2539
- children: p.udfPath
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
- X && /* @__PURE__ */ n(
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: at(L, 360),
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(L, se) }),
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
- p.updateCount
2620
+ b.updateCount
2559
2621
  ] }),
2560
- /* @__PURE__ */ t("span", { className: "text-dt-text-muted/60 font-mono", children: R(p.lastUpdate) }),
2561
- /* @__PURE__ */ t("span", { className: "text-[10px] text-dt-text-muted/40", children: s ? "▼" : "▶" })
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
- s && /* @__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: [
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(p.addedAt).toLocaleTimeString()
2632
+ new Date(b.addedAt).toLocaleTimeString()
2571
2633
  ] }),
2572
- p.componentPath && /* @__PURE__ */ t(
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: p.componentPath,
2577
- children: p.componentPath
2638
+ title: b.componentPath,
2639
+ children: b.componentPath
2578
2640
  }
2579
2641
  )
2580
2642
  ] }),
2581
- p.status === "error" && p.error && /* @__PURE__ */ t("div", { className: "text-dt-error font-mono text-[11px] bg-dt-error/10 rounded px-2 py-1 break-words", children: p.error }),
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: L ?? null,
2647
+ data: D ?? null,
2586
2648
  label: "Args",
2587
- onCopy: () => $(B ?? "null"),
2649
+ onCopy: () => L(B ?? "null"),
2588
2650
  maxHeight: 200
2589
2651
  }
2590
2652
  ),
2591
- p.currentValue !== void 0 && p.previousValue !== void 0 && /* @__PURE__ */ t(je, { previous: p.previousValue, current: p.currentValue }),
2592
- p.currentValue !== void 0 && /* @__PURE__ */ t(
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: p.currentValue,
2657
+ data: b.currentValue,
2596
2658
  label: "Current Value",
2597
- onCopy: () => $(JSON.stringify(p.currentValue, null, 2)),
2659
+ onCopy: () => L(JSON.stringify(b.currentValue, null, 2)),
2598
2660
  maxHeight: 300
2599
2661
  }
2600
2662
  )
2601
2663
  ] })
2602
2664
  ]
2603
2665
  },
2604
- p.queryId
2666
+ b.queryId
2605
2667
  );
2606
2668
  })
2607
2669
  ] }),
2608
2670
  f && (() => {
2609
- const p = f.subscription, u = ct(p.args), s = u !== void 0 ? at(u) : null, C = u !== void 0 ? M(u) : null, I = u !== void 0 ? at(u) : "", L = p.currentValue, X = L !== void 0 ? at(L) : null, B = L !== void 0 ? at(L) : "", rt = L !== void 0 ? M(L) : null, G = p.status === "error" && p.error ? p.error.length > 160 ? `${p.error.slice(0, 157)}…` : p.error : null;
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: p.udfPath, children: p.udfPath }),
2614
- /* @__PURE__ */ n("span", { className: `text-[9px] font-bold uppercase flex items-center gap-0.5 px-1.5 py-0.5 rounded-full ${p.status === "error" ? "bg-dt-error/15 text-dt-error" : "bg-dt-success/15 text-dt-success"}`, children: [
2615
- p.status === "error" ? "❌" : "✓",
2616
- p.status.toUpperCase()
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
- p.queryId
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
- p.updateCount,
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: R(p.lastUpdate) })
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
- p.componentPath && /* @__PURE__ */ t("div", { className: "text-[10px] text-dt-text-muted/60 font-mono truncate", title: p.componentPath, children: p.componentPath }),
2632
- u !== void 0 && /* @__PURE__ */ n("div", { className: "flex flex-col gap-0.5", children: [
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
- C && /* @__PURE__ */ t("span", { className: "text-[9px] text-dt-text-muted/60 font-mono", children: C })
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: s ?? void 0, children: I })
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
- L !== void 0 && /* @__PURE__ */ n("div", { className: "flex flex-col gap-0.5", children: [
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
- rt && /* @__PURE__ */ t("span", { className: "text-[9px] text-dt-text-muted/60 font-mono", children: rt })
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: X ?? void 0, children: B })
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
- G && /* @__PURE__ */ n("div", { className: "flex flex-col gap-0.5", children: [
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: p.error, children: G })
2710
+ /* @__PURE__ */ t("span", { className: "text-[11px] text-dt-error", title: b.error, children: P })
2649
2711
  ] })
2650
2712
  ] });
2651
2713
  })(),
2652
- N && /* @__PURE__ */ t(
2653
- Gt,
2714
+ k && /* @__PURE__ */ t(
2715
+ Yt,
2654
2716
  {
2655
- x: N.x,
2656
- y: N.y,
2657
- items: N.items,
2658
- onClose: () => k(null)
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 je({ previous: e, current: r }) {
2664
- const [a, i] = z(!0), d = V(() => Qt(e, r), [e, r]);
2665
- return d.length === 0 ? null : /* @__PURE__ */ n("div", { className: "flex flex-col gap-1", children: [
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: () => i(!a),
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
- d.length,
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: d.map((x, c) => /* @__PURE__ */ n("div", { className: `py-px ${x.type === "added" ? "text-dt-success bg-dt-success/5" : x.type === "removed" ? "text-dt-error bg-dt-error/5" : "text-dt-warning bg-dt-warning/5"}`, children: [
2682
- /* @__PURE__ */ t("span", { className: "select-none opacity-60 mr-1", children: x.type === "added" ? "+" : x.type === "removed" ? "-" : "~" }),
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
- x.path,
2746
+ p.path,
2685
2747
  ":"
2686
2748
  ] }),
2687
2749
  " ",
2688
- x.type === "changed" ? /* @__PURE__ */ n(et, { children: [
2689
- /* @__PURE__ */ t("span", { className: "text-dt-error line-through opacity-70", children: x.oldVal }),
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: x.newVal })
2692
- ] }) : /* @__PURE__ */ t("span", { children: x.value })
2693
- ] }, c)) })
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 Qt(e, r, a = "$") {
2697
- const i = [], d = (x) => {
2698
- const c = JSON.stringify(x);
2699
- return c && c.length > 80 ? c.slice(0, 77) + "…" : c;
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 i;
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 i.push({ type: "changed", path: a, oldVal: d(e), newVal: d(r) }), i;
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 x = Math.max(e.length, r.length);
2706
- for (let c = 0; c < x && i.length < 50; c++)
2707
- c >= e.length ? i.push({ type: "added", path: `${a}[${c}]`, value: d(r[c]) }) : c >= r.length ? i.push({ type: "removed", path: `${a}[${c}]`, value: d(e[c]) }) : i.push(...Qt(e[c], r[c], `${a}[${c}]`));
2708
- return i;
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 x = e, c = r, m = /* @__PURE__ */ new Set([...Object.keys(x), ...Object.keys(c)]);
2712
- for (const w of m) {
2713
- if (i.length >= 50) break;
2714
- w in x ? w in c ? i.push(...Qt(x[w], c[w], `${a}.${w}`)) : i.push({ type: "removed", path: `${a}.${w}`, value: d(x[w]) }) : i.push({ type: "added", path: `${a}.${w}`, value: d(c[w]) });
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 i;
2779
+ return s;
2718
2780
  }
2719
- function Fe({ eventStore: e, onNavigate: r }) {
2720
- const [a, i] = z(null), [d, x] = z([]);
2721
- U(() => {
2722
- const y = () => {
2723
- i(e.getPerformanceMetrics()), x(e.getAllEvents());
2724
- }, S = e.subscribe(y);
2725
- return y(), S;
2726
- }, [e]);
2727
- const c = V(() => {
2728
- const y = (p) => {
2729
- const u = typeof p == "number" ? p : typeof p == "string" ? Number(p) : Number.NaN;
2730
- return !Number.isFinite(u) || u < 0 ? null : u;
2731
- }, S = Date.now(), $ = 6e4, P = 60, M = $ / P, q = d.flatMap((p) => {
2732
- if (p?.type !== "query" && p?.type !== "mutation" && p?.type !== "action")
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 u = typeof p.timestamp == "number" && Number.isFinite(p.timestamp) ? p.timestamp : null, s = y(p.endToEndDurationMs ?? p.duration);
2735
- return u === null || s === null ? [] : [{ type: p.type, timestamp: u, duration: s }];
2736
- }), R = (p) => {
2737
- const u = new Array(P).fill(0), s = new Array(P).fill(0);
2738
- for (const C of q) {
2739
- if (p && C.type !== p) continue;
2740
- const I = S - C.timestamp;
2741
- if (I > $ || I < 0) continue;
2742
- const L = Math.min(P - 1, Math.floor(($ - I) / M));
2743
- L < 0 || L >= P || (u[L] += C.duration, s[L]++);
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 u.map((C, I) => s[I] > 0 ? C / s[I] : 0);
2810
+ return M.map((tt, ot) => J[ot] > 0 ? tt / J[ot] : 0);
2746
2811
  };
2747
2812
  return {
2748
- all: R(),
2749
- query: R("query"),
2750
- mutation: R("mutation"),
2751
- action: R("action")
2813
+ all: Z(),
2814
+ query: Z("query"),
2815
+ mutation: Z("mutation"),
2816
+ action: Z("action")
2752
2817
  };
2753
- }, [d]), m = J((y) => {
2754
- e.setFocusedEventId(y), r?.("activity");
2755
- }, [e, r]);
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 w = a.totalQueries + a.totalMutations + a.totalActions > 0, v = d.some(
2759
- (y) => (y?.type === "query" || y?.type === "mutation" || y?.type === "action") && typeof y?.simulatedDelayMs == "number" && y.simulatedDelayMs > 0
2760
- ), E = a.totalQueries + a.totalMutations + a.totalActions, f = E > 0 ? a.totalQueries / E * 100 : 0, b = E > 0 ? a.totalMutations / E * 100 : 0, N = E > 0 ? a.totalActions / E * 100 : 0, k = Math.max(a.slowestOperations[0]?.duration ?? 0, 1);
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
- !w && /* @__PURE__ */ n("div", { className: "flex flex-col items-center justify-center py-12 text-dt-text-muted gap-2", children: [
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
- w && /* @__PURE__ */ n(et, { children: [
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
- f.toFixed(0),
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
- b.toFixed(0),
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
- N.toFixed(0),
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
- v && /* @__PURE__ */ t("span", { className: "ml-2 text-[10px] normal-case font-normal text-dt-warning/90", children: "includes simulated delay" })
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(_t, { label: "All", data: c.all, color: "#e4e4e7" }),
2801
- /* @__PURE__ */ t(_t, { label: "Query", data: c.query, color: "#60a5fa" }),
2802
- /* @__PURE__ */ t(_t, { label: "Mutation", data: c.mutation, color: "#a78bfa" }),
2803
- /* @__PURE__ */ t(_t, { label: "Action", data: c.action, color: "#34d399" })
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: Z(a.avgQueryDuration) }),
2817
- /* @__PURE__ */ t("span", { children: Z(a.p50QueryDuration) }),
2818
- /* @__PURE__ */ t("span", { children: Z(a.p90QueryDuration) }),
2819
- /* @__PURE__ */ t("span", { children: Z(a.p95QueryDuration) }),
2820
- /* @__PURE__ */ t("span", { children: Z(a.p99QueryDuration) })
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: Z(a.avgMutationDuration) }),
2825
- /* @__PURE__ */ t("span", { children: Z(a.p50MutationDuration) }),
2826
- /* @__PURE__ */ t("span", { children: Z(a.p90MutationDuration) }),
2827
- /* @__PURE__ */ t("span", { children: Z(a.p95MutationDuration) }),
2828
- /* @__PURE__ */ t("span", { children: Z(a.p99MutationDuration) })
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: Z(a.avgActionDuration) }),
2833
- /* @__PURE__ */ t("span", { children: Z(a.p50ActionDuration) }),
2834
- /* @__PURE__ */ t("span", { children: Z(a.p90ActionDuration) }),
2835
- /* @__PURE__ */ t("span", { children: Z(a.p95ActionDuration) }),
2836
- /* @__PURE__ */ t("span", { children: Z(a.p99ActionDuration) })
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((y, S) => /* @__PURE__ */ n(
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: () => m(y.eventId),
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: S + 1 }),
2850
- /* @__PURE__ */ t("span", { className: `inline-flex items-center justify-center w-4 h-4 rounded text-[9px] font-bold ${y.type === "query" ? "text-dt-query" : y.type === "mutation" ? "text-dt-mutation" : "text-dt-action"}`, children: y.type[0].toUpperCase() }),
2851
- /* @__PURE__ */ t("span", { className: "font-mono text-dt-text-secondary truncate flex-1", children: y.udfPath }),
2852
- /* @__PURE__ */ t("span", { className: "font-mono text-dt-text-muted shrink-0", children: Z(y.duration) }),
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 ${y.type === "query" ? "bg-dt-query" : y.type === "mutation" ? "bg-dt-mutation" : "bg-dt-action"}`,
2857
- style: { width: `${Math.min(100, Math.max(2, y.duration / k * 100))}%` }
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
- y.eventId
2987
+ i.eventId
2863
2988
  )) })
2864
2989
  ] })
2865
2990
  ] })
2866
2991
  ] }) });
2867
2992
  }
2868
- function _t({ label: e, data: r, color: a }) {
2869
- const i = r.map(
2870
- (c) => typeof c == "number" && Number.isFinite(c) && c > 0 ? c : 0
2871
- ), d = Math.max(...i, 1), x = i[i.length - 1] || 0;
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: i.map((c, m) => /* @__PURE__ */ t(
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, c / d * 100)}%`,
2880
- backgroundColor: c > 0 ? a : "rgba(63,63,70,0.3)",
2881
- opacity: c > 0 ? 0.5 + m / i.length * 0.5 : 0.2
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
- m
3031
+ u
2885
3032
  )) }),
2886
- /* @__PURE__ */ t("span", { className: "text-[10px] font-mono text-dt-text-muted w-14 text-right shrink-0", children: x > 0 ? Z(x) : "—" })
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 Z(e) {
2890
- return !Number.isFinite(e) || e < 0 ? "—" : e < 1e3 ? `${e.toFixed(3)}ms` : `${(e / 1e3).toFixed(3)}s`;
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 Re(e) {
3039
+ function Ve(e) {
2893
3040
  return e.type === "query" || e.type === "mutation" || e.type === "action";
2894
3041
  }
2895
- function le(e) {
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 Be({ eventStore: e, onNavigate: r }) {
2899
- const [a, i] = z([]), [d, x] = z(/* @__PURE__ */ new Map()), [c, m] = z(!0), [w, v] = z("all"), [E, f] = z(""), [b, N] = z(null), [k, y] = z(null), S = Ct(null), $ = Ct(null), P = J(
2900
- (s) => {
2901
- s && (e.setFocusedEventId(s), r?.("activity"));
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
- U(() => {
2906
- const s = () => {
2907
- const I = e.getAllEvents(), L = /* @__PURE__ */ new Map(), X = [];
2908
- for (const B of I) {
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
- X.push(B);
3057
+ Q.push(B);
2911
3058
  continue;
2912
3059
  }
2913
- Re(B) && L.set(B.id, B);
3060
+ Ve(B) && D.set(B.id, B);
2914
3061
  }
2915
- i(X), x(L);
2916
- }, C = e.subscribe(s);
2917
- return s(), C;
3062
+ s(Q), p(D);
3063
+ }, N = e.subscribeBatched(i);
3064
+ return i(), N;
2918
3065
  }, [e]);
2919
- const M = V(() => {
2920
- const s = E.trim().toLowerCase().split(/\s+/).filter((C) => C.length > 0);
2921
- return a.filter((C) => {
2922
- if (w !== "all" && C.level !== w) return !1;
2923
- if (s.length === 0) return !0;
2924
- const I = C.relatedEventId ? d.get(C.relatedEventId) : void 0, L = [
2925
- C.message,
2926
- C.level,
2927
- C.relatedEventId ?? "",
2928
- I?.udfPath ?? "",
2929
- I?.type ?? "",
2930
- I ? le(I) : ""
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 s.every((X) => L.includes(X));
3080
+ return i.every((Q) => D.includes(Q));
2934
3081
  });
2935
- }, [a, w, E, d]), q = J((s) => {
2936
- F(s.message), y(s.id), setTimeout(() => y(null), 300);
2937
- }, []), R = J((s) => `[${new Date(s.timestamp).toLocaleTimeString([], {
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
- })}] [${s.level.toUpperCase()}] ${s.message}`, []), p = J(() => {
2943
- const s = M.map(R).join(`
3089
+ })}] [${i.level.toUpperCase()}] ${i.message}`, []), b = U(() => {
3090
+ const i = E.map(H).join(`
2944
3091
  `);
2945
- F(s);
2946
- }, [M, R]);
2947
- U(() => {
2948
- const s = (C) => {
2949
- if (Pt()) {
2950
- if ((C.metaKey || C.ctrlKey) && C.key === "k") {
2951
- C.preventDefault(), S.current?.focus();
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
- C.key === "Escape" && (w !== "all" || E) && (C.preventDefault(), v("all"), f(""));
3101
+ N.key === "Escape" && (w !== "all" || C) && (N.preventDefault(), v("all"), f(""));
2955
3102
  }
2956
3103
  };
2957
- return window.addEventListener("keydown", s), () => window.removeEventListener("keydown", s);
2958
- }, [w, E]), U(() => {
2959
- c && $.current && $.current.scrollIntoView({ behavior: "smooth" });
2960
- }, [M.length, c]);
2961
- const u = J(
2962
- (s) => {
2963
- const C = s.relatedEventId ? d.get(s.relatedEventId) : void 0, I = new Date(s.timestamp).toLocaleTimeString([], {
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
- }), L = [
2969
- { label: "Copy Message", action: () => F(s.message), shortcut: "⌘C" },
2970
- { label: "Copy Timestamp", action: () => F(I) }
3115
+ }), D = [
3116
+ { label: "Copy Message", action: () => R(i.message), shortcut: "⌘C" },
3117
+ { label: "Copy Timestamp", action: () => R($) }
2971
3118
  ];
2972
- return L.push({
2973
- label: `Filter by Level: ${s.level}`,
2974
- action: () => v(s.level),
3119
+ return D.push({
3120
+ label: `Filter by Level: ${i.level}`,
3121
+ action: () => v(i.level),
2975
3122
  separator: !0
2976
- }), s.relatedEventId && L.push({
3123
+ }), i.relatedEventId && D.push({
2977
3124
  label: "Copy Related Event ID",
2978
- action: () => F(s.relatedEventId)
2979
- }), C && (L.push({
3125
+ action: () => R(i.relatedEventId)
3126
+ }), N && (D.push({
2980
3127
  label: "Copy Related Function Path",
2981
- action: () => F(C.udfPath)
2982
- }), L.push({
3128
+ action: () => R(N.udfPath)
3129
+ }), D.push({
2983
3130
  label: "Filter by Related Function",
2984
- action: () => f(C.udfPath)
2985
- })), s.relatedEventId && r && L.push({
3131
+ action: () => f(N.udfPath)
3132
+ })), i.relatedEventId && r && D.push({
2986
3133
  label: "Go to Related Event",
2987
- action: () => P(s.relatedEventId)
2988
- }), L.push({
3134
+ action: () => j(i.relatedEventId)
3135
+ }), D.push({
2989
3136
  label: "Copy as JSON",
2990
- action: () => F(JSON.stringify(s, null, 2)),
3137
+ action: () => R(JSON.stringify(i, null, 2)),
2991
3138
  separator: !0
2992
- }), L;
3139
+ }), D;
2993
3140
  },
2994
- [P, r, d]
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((s) => /* @__PURE__ */ t(
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 === s ? s === "info" ? "bg-dt-info/20 text-dt-info border-dt-info/30 font-medium" : s === "warn" ? "bg-dt-warning/20 text-dt-warning border-dt-warning/30 font-medium" : s === "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" : s === "info" ? "border-transparent text-dt-text-muted hover:bg-dt-info/15 hover:text-dt-info" : s === "warn" ? "border-transparent text-dt-text-muted hover:bg-dt-warning/15 hover:text-dt-warning" : s === "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"}`,
3002
- onClick: () => v(s),
3003
- children: s.charAt(0).toUpperCase() + s.slice(1)
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
- s
3152
+ i
3006
3153
  )) }),
3007
3154
  /* @__PURE__ */ t(
3008
- Xt,
3155
+ Gt,
3009
3156
  {
3010
- ref: S,
3011
- value: E,
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: p,
3024
- disabled: M.length === 0,
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
- M.length,
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: c, onChange: (s) => m(s.target.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
- M.length === 0 && /* @__PURE__ */ n("div", { className: "flex flex-col items-center justify-center py-12 text-dt-text-muted gap-2", children: [
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
- M.map((s) => {
3045
- const C = s.relatedEventId ? d.get(s.relatedEventId) : void 0, I = C ? le(C) : null;
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 ${k === s.id ? "bg-white/10" : `hover:bg-white/[0.02] ${s.level === "warn" ? "bg-dt-warning/5" : s.level === "error" ? "bg-dt-error/5" : ""}`}`,
3050
- onClick: () => q(s),
3051
- onContextMenu: (L) => {
3052
- L.preventDefault(), N({
3053
- x: L.clientX,
3054
- y: L.clientY,
3055
- items: u(s)
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(s.timestamp).toLocaleTimeString([], {
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] ${s.level === "info" ? "text-dt-info" : s.level === "warn" ? "text-dt-warning" : s.level === "error" ? "text-dt-error" : "text-dt-text-muted"}`, children: s.level.toUpperCase() }),
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: s.message }),
3068
- C && /* @__PURE__ */ n("div", { className: "text-[10px] text-dt-text-muted/70 truncate", title: `${C.type} ${C.udfPath}`, children: [
3069
- C.type,
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
- C.udfPath
3218
+ N.udfPath
3072
3219
  ] })
3073
3220
  ] }),
3074
- s.relatedEventId && /* @__PURE__ */ t(
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: (L) => {
3079
- L.stopPropagation(), P(s.relatedEventId);
3225
+ onClick: (D) => {
3226
+ D.stopPropagation(), j(i.relatedEventId);
3080
3227
  },
3081
- title: C ? `Open ${C.udfPath}` : `From: ${s.relatedEventId}`,
3082
- children: I ?? s.relatedEventId.split("-")[0]
3228
+ title: N ? `Open ${N.udfPath}` : `From: ${i.relatedEventId}`,
3229
+ children: $ ?? i.relatedEventId.split("-")[0]
3083
3230
  }
3084
3231
  )
3085
3232
  ]
3086
3233
  },
3087
- s.id
3234
+ i.id
3088
3235
  );
3089
3236
  }),
3090
- /* @__PURE__ */ t("div", { ref: $ })
3237
+ /* @__PURE__ */ t("div", { ref: L })
3091
3238
  ] }),
3092
- b && /* @__PURE__ */ t(
3093
- Gt,
3239
+ m && /* @__PURE__ */ t(
3240
+ Yt,
3094
3241
  {
3095
- x: b.x,
3096
- y: b.y,
3097
- items: b.items,
3098
- onClose: () => N(null)
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 Ve({ eventStore: e }) {
3104
- const [r, a] = z(e.getSettings()), [i, d] = z(e.getSnapshots()), x = e.isPausedState(), c = e.isPersistenceEnabled();
3105
- U(() => (a(e.getSettings()), e.subscribeSettings((y) => {
3106
- a(y);
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 m = (k, y) => {
3109
- e.saveSettings({ [k]: y });
3255
+ const u = (y, S) => {
3256
+ e.saveSettings({ [y]: S });
3110
3257
  }, w = () => {
3111
- const k = e.exportSession(), y = new Blob([JSON.stringify(k, null, 2)], {
3258
+ const y = e.exportSession(), S = new Blob([JSON.stringify(y, null, 2)], {
3112
3259
  type: "application/json"
3113
- }), S = URL.createObjectURL(y), $ = document.createElement("a");
3114
- $.href = S, $.download = `concave-devtools-${Date.now()}.json`, $.click(), URL.revokeObjectURL(S);
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 k = document.createElement("input");
3117
- k.type = "file", k.accept = ".json", k.onchange = async (y) => {
3118
- const S = y.target.files?.[0];
3119
- if (S)
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 $ = await S.text(), P = JSON.parse($), M = e.importSession(P);
3122
- alert(M ? "Session imported successfully!" : "Failed to import session. Invalid format.");
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
- }, k.click();
3127
- }, E = () => {
3128
- e.createSnapshot(), d(e.getSnapshots());
3129
- }, f = (k) => {
3130
- confirm("Restore to this snapshot? Current state will be replaced.") && e.restoreSnapshot(k) && d(e.getSnapshots());
3131
- }, b = () => {
3132
- x ? e.resume() : e.pause(), a({ ...e.getSettings() });
3133
- }, N = () => {
3134
- e.clear(), d([]);
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 ${x ? "bg-dt-warning/20 text-dt-warning" : "bg-dt-success/20 text-dt-success"}`,
3144
- children: x ? "Paused" : "Live"
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: x ? "No new events" : "Capturing events" }),
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 ${x ? "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"}`,
3153
- onClick: b,
3154
- children: x ? "Resume" : "Pause"
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] ${c ? "cursor-pointer" : "cursor-not-allowed opacity-70"}`,
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: !c,
3172
- onChange: (k) => m("persistEvents", k.target.checked)
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: c ? "localStorage" : "disabled in panel" })
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: (k) => m("captureLogLines", k.target.checked)
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: (k) => m("autoPauseOnError", k.target.checked)
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: (k) => m("maxEvents", parseInt(k.target.value, 10) || 1e3),
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: (k) => m("wsLatencyMs", Math.max(0, parseInt(k.target.value, 10) || 0)),
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: (k) => m("wsJitterMs", Math.max(0, parseInt(k.target.value, 10) || 0)),
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: N,
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: E,
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
- i.length,
3465
+ s.length,
3319
3466
  " saved"
3320
3467
  ] })
3321
3468
  ] }),
3322
- i.length > 0 ? /* @__PURE__ */ t("div", { className: "flex flex-col gap-1 max-h-[180px] overflow-y-auto pr-1", children: [...i].reverse().map((k) => /* @__PURE__ */ n(
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(k.timestamp).toLocaleString(),
3332
- children: new Date(k.timestamp).toLocaleTimeString([], {
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
- k.events.length,
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(k.timestamp),
3495
+ onClick: () => f(y.timestamp),
3349
3496
  children: "Restore"
3350
3497
  }
3351
3498
  )
3352
3499
  ]
3353
3500
  },
3354
- k.timestamp
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
- ce
3532
+ pe
3386
3533
  ] })
3387
3534
  ] })
3388
3535
  ] })
3389
3536
  ] });
3390
3537
  }
3391
- function Je({
3538
+ function Ke({
3392
3539
  eventStore: e,
3393
3540
  position: r = "bottom-right",
3394
3541
  mode: a = "overlay",
3395
- panelConnectionState: i
3542
+ panelConnectionState: s
3396
3543
  }) {
3397
- const d = a === "panel", [x, c] = z(() => {
3398
- if (d) return !0;
3399
- const u = Vt("concave-devtools-open");
3400
- return u ? JSON.parse(u) : !0;
3401
- }), [m, w] = z("activity"), [v, E] = z([]), [f, b] = z(!1);
3402
- U(() => {
3403
- const u = e.subscribe((s) => {
3404
- E(e.getAllEvents()), b(e.isPausedState());
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 E(e.getAllEvents()), b(e.isPausedState()), u;
3407
- }, [e]), U(() => {
3408
- d || Jt("concave-devtools-open", JSON.stringify(x));
3409
- }, [x, d]);
3410
- const N = J(() => {
3411
- e.clear(), E([]);
3412
- }, [e]), k = J(() => {
3413
- c(!1);
3414
- }, []), y = J(() => {
3415
- const u = e.exportSession(), s = new Blob([JSON.stringify(u, null, 2)], {
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
- }), C = URL.createObjectURL(s), I = document.createElement("a");
3418
- I.href = C, I.download = `concave-devtools-${Date.now()}.json`, I.click(), URL.revokeObjectURL(C);
3419
- }, [e]), S = J(() => {
3420
- e.isPausedState() ? (e.resume(), b(!1)) : (e.pause(), b(!0));
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
- U(() => {
3423
- const u = (s) => {
3424
- if ((s.metaKey || s.ctrlKey) && s.shiftKey && s.key === "D") {
3425
- s.preventDefault(), c((C) => !C);
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
- Pt() && ((s.metaKey || s.ctrlKey) && s.key === "e" && (s.preventDefault(), y()), (s.metaKey || s.ctrlKey) && s.key === "p" && (s.preventDefault(), S()));
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", u), () => window.removeEventListener("keydown", u);
3431
- }, [N, y, S]);
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], P = v.filter(
3438
- (u) => u.type === "query" || u.type === "mutation" || u.type === "action" || u.type === "auth"
3439
- ), M = e.getActiveSubscriptions().length, q = v.filter((u) => u.type === "log"), R = P.filter((u) => "status" in u && u.status === "error"), p = [
3440
- { id: "activity", label: "Activity", count: P.length, hasError: R.length > 0 },
3441
- { id: "subscriptions", label: "Subscriptions", count: M, hasError: !1 },
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: d ? "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 ${$}`, children: [
3447
- !d && !x && /* @__PURE__ */ n(
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: () => c(!0),
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: ye, fill: ve }),
3458
- /* @__PURE__ */ t("path", { d: ke, fill: "white" })
3604
+ /* @__PURE__ */ t("rect", { width: "32", height: "32", rx: Ne, fill: ke }),
3605
+ /* @__PURE__ */ t("path", { d: Ee, fill: "white" })
3459
3606
  ] }),
3460
- R.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: R.length }) : P.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: P.length }) : null
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
- (d || x) && /* @__PURE__ */ n("div", { className: d ? "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: [
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: p.map((u) => /* @__PURE__ */ n(
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-${u.id}`,
3470
- className: d ? `px-3 py-[7px] bg-transparent border-none text-[12px] cursor-pointer transition-colors whitespace-nowrap border-b-2 ${m === u.id ? "text-dt-info border-b-dt-info" : "text-dt-text-tertiary border-b-transparent hover:text-dt-text-secondary hover:bg-white/5"}` : `px-3 py-[7px] bg-transparent border-none text-[12px] cursor-pointer transition-colors whitespace-nowrap border-b-2 ${m === u.id ? "text-dt-info border-b-dt-info" : "text-dt-text-tertiary border-b-transparent hover:text-dt-text-secondary hover:bg-white/5"}`,
3471
- onClick: () => w(u.id),
3472
- "aria-label": `${u.label} panel`,
3473
- "aria-selected": m === u.id,
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-${u.id}`,
3622
+ "aria-controls": `panel-${x.id}`,
3476
3623
  children: [
3477
- /* @__PURE__ */ t("span", { children: u.label }),
3478
- u.count > 0 && /* @__PURE__ */ t("span", { className: d ? `ml-1.5 px-1.5 py-0 rounded-full text-[10px] font-medium ${u.hasError ? "bg-dt-error/20 text-dt-error" : "bg-dt-bg-tertiary text-dt-text-tertiary"}` : `ml-1.5 px-1.5 py-0 rounded-full text-[10px] font-medium ${u.hasError ? "bg-dt-error/20 text-dt-error" : "bg-dt-bg-tertiary text-dt-text-tertiary"}`, children: u.count })
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
- u.id
3628
+ x.id
3482
3629
  )) }),
3483
- /* @__PURE__ */ n("div", { className: d ? "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: [
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: d ? `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"}`,
3489
- onClick: S,
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: d ? "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]",
3501
- onClick: y,
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: d ? "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]",
3515
- onClick: N,
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
- !d && /* @__PURE__ */ t(
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: k,
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
- m === "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(qe, { eventStore: e, panelConnectionState: d ? i : void 0 }) }),
3539
- m === "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(Oe, { eventStore: e }) }),
3540
- m === "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(Fe, { eventStore: e, onNavigate: w }) }),
3541
- m === "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(Be, { eventStore: e, onNavigate: w }) }),
3542
- m === "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(Ve, { eventStore: e }) })
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 Ke(e = {}) {
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 = we(), a = window.__concaveDevToolsEvents || [];
3555
- console.log(`[DevTools] Loading ${a.length} captured events`), a.forEach((x) => {
3556
- r.addEvent(x);
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 i = a.length;
3705
+ let s = a.length;
3559
3706
  setInterval(() => {
3560
- const x = window.__concaveDevToolsEvents || [];
3561
- x.length > i && (x.slice(i).forEach((m) => {
3562
- r.addEvent(m);
3563
- }), i = x.length);
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 d = () => {
3566
- const x = document.createElement("div");
3567
- x.id = "concave-devtools-host", x.style.cssText = "position:fixed;z-index:999999;bottom:16px;right:16px;pointer-events:none;", document.body.appendChild(x);
3568
- const c = x.attachShadow({ mode: "open" }), m = document.createElement("style");
3569
- m.textContent = Ue, c.appendChild(m);
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;", c.appendChild(w), he(w).render(/* @__PURE__ */ t(Je, { eventStore: r, position: e.position })), console.log("[DevTools] UI mounted successfully");
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", d) : d(), window.__concaveDevTools = {
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
- Ke(e);
3727
+ Qe(e);
3581
3728
  }, 100);
3582
3729
  }
3583
3730
  export {
3584
- Je as D,
3731
+ Ke as D,
3585
3732
  Nt as E,
3586
- Be as L,
3587
- Fe as P,
3588
- Oe as S,
3589
- Ve as a,
3733
+ Je as L,
3734
+ Be as P,
3735
+ Fe as S,
3736
+ Ue as a,
3590
3737
  Et as b,
3591
- we as g,
3592
- Ke as i
3738
+ ye as g,
3739
+ Qe as i
3593
3740
  };