@devqubit/ui 0.1.11-beta.1 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
- import Ps, { useContext as Xe, createContext as Qe, useState as S, useEffect as je, useCallback as _e, useRef as Rs, forwardRef as Ze } from "react";
2
- import { useLocation as hr, Link as z, useSearchParams as $e, useParams as es, useNavigate as xr, Navigate as mr, createBrowserRouter as fr, RouterProvider as jr } from "react-router-dom";
1
+ import ks, { useState as T, useEffect as je, useContext as Ss, useCallback as _e, createContext as Ps, useRef as _s, forwardRef as Xe } from "react";
2
+ import { useLocation as ur, Link as z, useSearchParams as $e, useParams as Qe, useNavigate as hr, Navigate as xr, createBrowserRouter as mr, RouterProvider as fr } from "react-router-dom";
3
3
  var Fe = { exports: {} }, be = {};
4
- var Es;
5
- function pr() {
6
- if (Es) return be;
7
- Es = 1;
8
- var r = Ps, t = /* @__PURE__ */ Symbol.for("react.element"), n = /* @__PURE__ */ Symbol.for("react.fragment"), a = Object.prototype.hasOwnProperty, u = r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, o = { key: !0, ref: !0, __self: !0, __source: !0 };
4
+ var ws;
5
+ function jr() {
6
+ if (ws) return be;
7
+ ws = 1;
8
+ var r = ks, t = /* @__PURE__ */ Symbol.for("react.element"), n = /* @__PURE__ */ Symbol.for("react.fragment"), a = Object.prototype.hasOwnProperty, u = r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, o = { key: !0, ref: !0, __self: !0, __source: !0 };
9
9
  function d(i, f, h) {
10
10
  var m, p = {}, _ = null, U = null;
11
11
  h !== void 0 && (_ = "" + h), f.key !== void 0 && (_ = "" + f.key), f.ref !== void 0 && (U = f.ref);
@@ -15,11 +15,11 @@ function pr() {
15
15
  }
16
16
  return be.Fragment = n, be.jsx = d, be.jsxs = d, be;
17
17
  }
18
- var Ne = {};
19
- var Cs;
20
- function gr() {
21
- return Cs || (Cs = 1, process.env.NODE_ENV !== "production" && (function() {
22
- var r = Ps, t = /* @__PURE__ */ Symbol.for("react.element"), n = /* @__PURE__ */ Symbol.for("react.portal"), a = /* @__PURE__ */ Symbol.for("react.fragment"), u = /* @__PURE__ */ Symbol.for("react.strict_mode"), o = /* @__PURE__ */ Symbol.for("react.profiler"), d = /* @__PURE__ */ Symbol.for("react.provider"), i = /* @__PURE__ */ Symbol.for("react.context"), f = /* @__PURE__ */ Symbol.for("react.forward_ref"), h = /* @__PURE__ */ Symbol.for("react.suspense"), m = /* @__PURE__ */ Symbol.for("react.suspense_list"), p = /* @__PURE__ */ Symbol.for("react.memo"), _ = /* @__PURE__ */ Symbol.for("react.lazy"), U = /* @__PURE__ */ Symbol.for("react.offscreen"), w = Symbol.iterator, H = "@@iterator";
18
+ var ye = {};
19
+ var Rs;
20
+ function pr() {
21
+ return Rs || (Rs = 1, process.env.NODE_ENV !== "production" && (function() {
22
+ var r = ks, t = /* @__PURE__ */ Symbol.for("react.element"), n = /* @__PURE__ */ Symbol.for("react.portal"), a = /* @__PURE__ */ Symbol.for("react.fragment"), u = /* @__PURE__ */ Symbol.for("react.strict_mode"), o = /* @__PURE__ */ Symbol.for("react.profiler"), d = /* @__PURE__ */ Symbol.for("react.provider"), i = /* @__PURE__ */ Symbol.for("react.context"), f = /* @__PURE__ */ Symbol.for("react.forward_ref"), h = /* @__PURE__ */ Symbol.for("react.suspense"), m = /* @__PURE__ */ Symbol.for("react.suspense_list"), p = /* @__PURE__ */ Symbol.for("react.memo"), _ = /* @__PURE__ */ Symbol.for("react.lazy"), U = /* @__PURE__ */ Symbol.for("react.offscreen"), w = Symbol.iterator, H = "@@iterator";
23
23
  function k(s) {
24
24
  if (s === null || typeof s != "object")
25
25
  return null;
@@ -27,7 +27,7 @@ function gr() {
27
27
  return typeof l == "function" ? l : null;
28
28
  }
29
29
  var O = r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
30
- function T(s) {
30
+ function S(s) {
31
31
  {
32
32
  for (var l = arguments.length, x = new Array(l > 1 ? l - 1 : 0), g = 1; g < l; g++)
33
33
  x[g - 1] = arguments[g];
@@ -53,7 +53,7 @@ function gr() {
53
53
  // with.
54
54
  s.$$typeof === pe || s.getModuleId !== void 0));
55
55
  }
56
- function qe(s, l, x) {
56
+ function Ie(s, l, x) {
57
57
  var g = s.displayName;
58
58
  if (g)
59
59
  return g;
@@ -63,10 +63,10 @@ function gr() {
63
63
  function ke(s) {
64
64
  return s.displayName || "Context";
65
65
  }
66
- function N(s) {
66
+ function y(s) {
67
67
  if (s == null)
68
68
  return null;
69
- if (typeof s.tag == "number" && T("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), typeof s == "function")
69
+ if (typeof s.tag == "number" && S("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), typeof s == "function")
70
70
  return s.displayName || s.name || null;
71
71
  if (typeof s == "string")
72
72
  return s;
@@ -93,14 +93,14 @@ function gr() {
93
93
  var x = s;
94
94
  return ke(x._context) + ".Provider";
95
95
  case f:
96
- return qe(s, s.render, "ForwardRef");
96
+ return Ie(s, s.render, "ForwardRef");
97
97
  case p:
98
98
  var g = s.displayName || null;
99
- return g !== null ? g : N(s.type) || "Memo";
99
+ return g !== null ? g : y(s.type) || "Memo";
100
100
  case _: {
101
101
  var E = s, C = E._payload, R = E._init;
102
102
  try {
103
- return N(R(C));
103
+ return y(R(C));
104
104
  } catch {
105
105
  return null;
106
106
  }
@@ -108,18 +108,18 @@ function gr() {
108
108
  }
109
109
  return null;
110
110
  }
111
- var P = Object.assign, ce = 0, ge, Te, le, as, is, cs, ls;
112
- function os() {
111
+ var P = Object.assign, ce = 0, ge, Se, le, ts, ns, as, is;
112
+ function cs() {
113
113
  }
114
- os.__reactDisabledLog = !0;
115
- function qs() {
114
+ cs.__reactDisabledLog = !0;
115
+ function Bs() {
116
116
  {
117
117
  if (ce === 0) {
118
- ge = console.log, Te = console.info, le = console.warn, as = console.error, is = console.group, cs = console.groupCollapsed, ls = console.groupEnd;
118
+ ge = console.log, Se = console.info, le = console.warn, ts = console.error, ns = console.group, as = console.groupCollapsed, is = console.groupEnd;
119
119
  var s = {
120
120
  configurable: !0,
121
121
  enumerable: !0,
122
- value: os,
122
+ value: cs,
123
123
  writable: !0
124
124
  };
125
125
  Object.defineProperties(console, {
@@ -148,29 +148,29 @@ function gr() {
148
148
  value: ge
149
149
  }),
150
150
  info: P({}, s, {
151
- value: Te
151
+ value: Se
152
152
  }),
153
153
  warn: P({}, s, {
154
154
  value: le
155
155
  }),
156
156
  error: P({}, s, {
157
- value: as
157
+ value: ts
158
158
  }),
159
159
  group: P({}, s, {
160
- value: is
160
+ value: ns
161
161
  }),
162
162
  groupCollapsed: P({}, s, {
163
- value: cs
163
+ value: as
164
164
  }),
165
165
  groupEnd: P({}, s, {
166
- value: ls
166
+ value: is
167
167
  })
168
168
  });
169
169
  }
170
- ce < 0 && T("disabledDepth fell below zero. This is a bug in React. Please file an issue.");
170
+ ce < 0 && S("disabledDepth fell below zero. This is a bug in React. Please file an issue.");
171
171
  }
172
172
  }
173
- var Ie = O.ReactCurrentDispatcher, Ue;
173
+ var qe = O.ReactCurrentDispatcher, Ue;
174
174
  function Pe(s, l, x) {
175
175
  {
176
176
  if (Ue === void 0)
@@ -184,16 +184,16 @@ function gr() {
184
184
  ` + Ue + s;
185
185
  }
186
186
  }
187
- var Me = !1, Se;
187
+ var Me = !1, Te;
188
188
  {
189
- var Us = typeof WeakMap == "function" ? WeakMap : Map;
190
- Se = new Us();
189
+ var qs = typeof WeakMap == "function" ? WeakMap : Map;
190
+ Te = new qs();
191
191
  }
192
- function ds(s, l) {
192
+ function ls(s, l) {
193
193
  if (!s || Me)
194
194
  return "";
195
195
  {
196
- var x = Se.get(s);
196
+ var x = Te.get(s);
197
197
  if (x !== void 0)
198
198
  return x;
199
199
  }
@@ -202,7 +202,7 @@ function gr() {
202
202
  var E = Error.prepareStackTrace;
203
203
  Error.prepareStackTrace = void 0;
204
204
  var C;
205
- C = Ie.current, Ie.current = null, qs();
205
+ C = qe.current, qe.current = null, Bs();
206
206
  try {
207
207
  if (l) {
208
208
  var R = function() {
@@ -238,32 +238,32 @@ function gr() {
238
238
  } catch (M) {
239
239
  if (M && g && typeof M.stack == "string") {
240
240
  for (var v = M.stack.split(`
241
- `), I = g.stack.split(`
242
- `), A = v.length - 1, F = I.length - 1; A >= 1 && F >= 0 && v[A] !== I[F]; )
241
+ `), q = g.stack.split(`
242
+ `), A = v.length - 1, F = q.length - 1; A >= 1 && F >= 0 && v[A] !== q[F]; )
243
243
  F--;
244
244
  for (; A >= 1 && F >= 0; A--, F--)
245
- if (v[A] !== I[F]) {
245
+ if (v[A] !== q[F]) {
246
246
  if (A !== 1 || F !== 1)
247
247
  do
248
- if (A--, F--, F < 0 || v[A] !== I[F]) {
248
+ if (A--, F--, F < 0 || v[A] !== q[F]) {
249
249
  var X = `
250
250
  ` + v[A].replace(" at new ", " at ");
251
- return s.displayName && X.includes("<anonymous>") && (X = X.replace("<anonymous>", s.displayName)), typeof s == "function" && Se.set(s, X), X;
251
+ return s.displayName && X.includes("<anonymous>") && (X = X.replace("<anonymous>", s.displayName)), typeof s == "function" && Te.set(s, X), X;
252
252
  }
253
253
  while (A >= 1 && F >= 0);
254
254
  break;
255
255
  }
256
256
  }
257
257
  } finally {
258
- Me = !1, Ie.current = C, Is(), Error.prepareStackTrace = E;
258
+ Me = !1, qe.current = C, Is(), Error.prepareStackTrace = E;
259
259
  }
260
260
  var fe = s ? s.displayName || s.name : "", oe = fe ? Pe(fe) : "";
261
- return typeof s == "function" && Se.set(s, oe), oe;
261
+ return typeof s == "function" && Te.set(s, oe), oe;
262
262
  }
263
- function Ms(s, l, x) {
264
- return ds(s, !1);
263
+ function Us(s, l, x) {
264
+ return ls(s, !1);
265
265
  }
266
- function Ws(s) {
266
+ function Ms(s) {
267
267
  var l = s.prototype;
268
268
  return !!(l && l.isReactComponent);
269
269
  }
@@ -271,7 +271,7 @@ function gr() {
271
271
  if (s == null)
272
272
  return "";
273
273
  if (typeof s == "function")
274
- return ds(s, Ws(s));
274
+ return ls(s, Ms(s));
275
275
  if (typeof s == "string")
276
276
  return Pe(s);
277
277
  switch (s) {
@@ -283,7 +283,7 @@ function gr() {
283
283
  if (typeof s == "object")
284
284
  switch (s.$$typeof) {
285
285
  case f:
286
- return Ms(s.render);
286
+ return Us(s.render);
287
287
  case p:
288
288
  return De(s.type, l, x);
289
289
  case _: {
@@ -296,15 +296,15 @@ function gr() {
296
296
  }
297
297
  return "";
298
298
  }
299
- var ve = Object.prototype.hasOwnProperty, us = {}, hs = O.ReactDebugCurrentFrame;
299
+ var ve = Object.prototype.hasOwnProperty, os = {}, ds = O.ReactDebugCurrentFrame;
300
300
  function Ae(s) {
301
301
  if (s) {
302
302
  var l = s._owner, x = De(s.type, s._source, l ? l.type : null);
303
- hs.setExtraStackFrame(x);
303
+ ds.setExtraStackFrame(x);
304
304
  } else
305
- hs.setExtraStackFrame(null);
305
+ ds.setExtraStackFrame(null);
306
306
  }
307
- function Gs(s, l, x, g, E) {
307
+ function Ws(s, l, x, g, E) {
308
308
  {
309
309
  var C = Function.call.bind(ve);
310
310
  for (var R in s)
@@ -312,48 +312,48 @@ function gr() {
312
312
  var v = void 0;
313
313
  try {
314
314
  if (typeof s[R] != "function") {
315
- var I = Error((g || "React class") + ": " + x + " type `" + R + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof s[R] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");
316
- throw I.name = "Invariant Violation", I;
315
+ var q = Error((g || "React class") + ": " + x + " type `" + R + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof s[R] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");
316
+ throw q.name = "Invariant Violation", q;
317
317
  }
318
318
  v = s[R](l, R, g, x, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED");
319
319
  } catch (A) {
320
320
  v = A;
321
321
  }
322
- v && !(v instanceof Error) && (Ae(E), T("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", g || "React class", x, R, typeof v), Ae(null)), v instanceof Error && !(v.message in us) && (us[v.message] = !0, Ae(E), T("Failed %s type: %s", x, v.message), Ae(null));
322
+ v && !(v instanceof Error) && (Ae(E), S("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", g || "React class", x, R, typeof v), Ae(null)), v instanceof Error && !(v.message in os) && (os[v.message] = !0, Ae(E), S("Failed %s type: %s", x, v.message), Ae(null));
323
323
  }
324
324
  }
325
325
  }
326
- var Vs = Array.isArray;
326
+ var Gs = Array.isArray;
327
327
  function We(s) {
328
- return Vs(s);
328
+ return Gs(s);
329
329
  }
330
- function zs(s) {
330
+ function Vs(s) {
331
331
  {
332
332
  var l = typeof Symbol == "function" && Symbol.toStringTag, x = l && s[Symbol.toStringTag] || s.constructor.name || "Object";
333
333
  return x;
334
334
  }
335
335
  }
336
- function Ys(s) {
336
+ function zs(s) {
337
337
  try {
338
- return xs(s), !1;
338
+ return us(s), !1;
339
339
  } catch {
340
340
  return !0;
341
341
  }
342
342
  }
343
- function xs(s) {
343
+ function us(s) {
344
344
  return "" + s;
345
345
  }
346
- function ms(s) {
347
- if (Ys(s))
348
- return T("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", zs(s)), xs(s);
346
+ function hs(s) {
347
+ if (zs(s))
348
+ return S("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", Vs(s)), us(s);
349
349
  }
350
- var fs = O.ReactCurrentOwner, Ks = {
350
+ var xs = O.ReactCurrentOwner, Ys = {
351
351
  key: !0,
352
352
  ref: !0,
353
353
  __self: !0,
354
354
  __source: !0
355
- }, js, ps;
356
- function Hs(s) {
355
+ }, ms, fs;
356
+ function Ks(s) {
357
357
  if (ve.call(s, "ref")) {
358
358
  var l = Object.getOwnPropertyDescriptor(s, "ref").get;
359
359
  if (l && l.isReactWarning)
@@ -361,7 +361,7 @@ function gr() {
361
361
  }
362
362
  return s.ref !== void 0;
363
363
  }
364
- function Js(s) {
364
+ function Hs(s) {
365
365
  if (ve.call(s, "key")) {
366
366
  var l = Object.getOwnPropertyDescriptor(s, "key").get;
367
367
  if (l && l.isReactWarning)
@@ -369,13 +369,13 @@ function gr() {
369
369
  }
370
370
  return s.key !== void 0;
371
371
  }
372
- function Xs(s, l) {
373
- typeof s.ref == "string" && fs.current;
372
+ function Js(s, l) {
373
+ typeof s.ref == "string" && xs.current;
374
374
  }
375
- function Qs(s, l) {
375
+ function Xs(s, l) {
376
376
  {
377
377
  var x = function() {
378
- js || (js = !0, T("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", l));
378
+ ms || (ms = !0, S("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", l));
379
379
  };
380
380
  x.isReactWarning = !0, Object.defineProperty(s, "key", {
381
381
  get: x,
@@ -383,10 +383,10 @@ function gr() {
383
383
  });
384
384
  }
385
385
  }
386
- function Zs(s, l) {
386
+ function Qs(s, l) {
387
387
  {
388
388
  var x = function() {
389
- ps || (ps = !0, T("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", l));
389
+ fs || (fs = !0, S("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", l));
390
390
  };
391
391
  x.isReactWarning = !0, Object.defineProperty(s, "ref", {
392
392
  get: x,
@@ -394,7 +394,7 @@ function gr() {
394
394
  });
395
395
  }
396
396
  }
397
- var er = function(s, l, x, g, E, C, R) {
397
+ var Zs = function(s, l, x, g, E, C, R) {
398
398
  var v = {
399
399
  // This tag allows us to uniquely identify this as a React Element
400
400
  $$typeof: t,
@@ -423,41 +423,41 @@ function gr() {
423
423
  value: E
424
424
  }), Object.freeze && (Object.freeze(v.props), Object.freeze(v)), v;
425
425
  };
426
- function sr(s, l, x, g, E) {
426
+ function er(s, l, x, g, E) {
427
427
  {
428
- var C, R = {}, v = null, I = null;
429
- x !== void 0 && (ms(x), v = "" + x), Js(l) && (ms(l.key), v = "" + l.key), Hs(l) && (I = l.ref, Xs(l, E));
428
+ var C, R = {}, v = null, q = null;
429
+ x !== void 0 && (hs(x), v = "" + x), Hs(l) && (hs(l.key), v = "" + l.key), Ks(l) && (q = l.ref, Js(l, E));
430
430
  for (C in l)
431
- ve.call(l, C) && !Ks.hasOwnProperty(C) && (R[C] = l[C]);
431
+ ve.call(l, C) && !Ys.hasOwnProperty(C) && (R[C] = l[C]);
432
432
  if (s && s.defaultProps) {
433
433
  var A = s.defaultProps;
434
434
  for (C in A)
435
435
  R[C] === void 0 && (R[C] = A[C]);
436
436
  }
437
- if (v || I) {
437
+ if (v || q) {
438
438
  var F = typeof s == "function" ? s.displayName || s.name || "Unknown" : s;
439
- v && Qs(R, F), I && Zs(R, F);
439
+ v && Xs(R, F), q && Qs(R, F);
440
440
  }
441
- return er(s, v, I, E, g, fs.current, R);
441
+ return Zs(s, v, q, E, g, xs.current, R);
442
442
  }
443
443
  }
444
- var Ge = O.ReactCurrentOwner, gs = O.ReactDebugCurrentFrame;
444
+ var Ge = O.ReactCurrentOwner, js = O.ReactDebugCurrentFrame;
445
445
  function me(s) {
446
446
  if (s) {
447
447
  var l = s._owner, x = De(s.type, s._source, l ? l.type : null);
448
- gs.setExtraStackFrame(x);
448
+ js.setExtraStackFrame(x);
449
449
  } else
450
- gs.setExtraStackFrame(null);
450
+ js.setExtraStackFrame(null);
451
451
  }
452
452
  var Ve;
453
453
  Ve = !1;
454
454
  function ze(s) {
455
455
  return typeof s == "object" && s !== null && s.$$typeof === t;
456
456
  }
457
- function vs() {
457
+ function ps() {
458
458
  {
459
459
  if (Ge.current) {
460
- var s = N(Ge.current.type);
460
+ var s = y(Ge.current.type);
461
461
  if (s)
462
462
  return `
463
463
 
@@ -466,13 +466,13 @@ Check the render method of \`` + s + "`.";
466
466
  return "";
467
467
  }
468
468
  }
469
- function rr(s) {
469
+ function sr(s) {
470
470
  return "";
471
471
  }
472
- var bs = {};
473
- function tr(s) {
472
+ var gs = {};
473
+ function rr(s) {
474
474
  {
475
- var l = vs();
475
+ var l = ps();
476
476
  if (!l) {
477
477
  var x = typeof s == "string" ? s : s.displayName || s.name;
478
478
  x && (l = `
@@ -482,27 +482,27 @@ Check the top-level render call using <` + x + ">.");
482
482
  return l;
483
483
  }
484
484
  }
485
- function Ns(s, l) {
485
+ function vs(s, l) {
486
486
  {
487
487
  if (!s._store || s._store.validated || s.key != null)
488
488
  return;
489
489
  s._store.validated = !0;
490
- var x = tr(l);
491
- if (bs[x])
490
+ var x = rr(l);
491
+ if (gs[x])
492
492
  return;
493
- bs[x] = !0;
493
+ gs[x] = !0;
494
494
  var g = "";
495
- s && s._owner && s._owner !== Ge.current && (g = " It was passed a child from " + N(s._owner.type) + "."), me(s), T('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', x, g), me(null);
495
+ s && s._owner && s._owner !== Ge.current && (g = " It was passed a child from " + y(s._owner.type) + "."), me(s), S('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', x, g), me(null);
496
496
  }
497
497
  }
498
- function ys(s, l) {
498
+ function bs(s, l) {
499
499
  {
500
500
  if (typeof s != "object")
501
501
  return;
502
502
  if (We(s))
503
503
  for (var x = 0; x < s.length; x++) {
504
504
  var g = s[x];
505
- ze(g) && Ns(g, l);
505
+ ze(g) && vs(g, l);
506
506
  }
507
507
  else if (ze(s))
508
508
  s._store && (s._store.validated = !0);
@@ -510,11 +510,11 @@ Check the top-level render call using <` + x + ">.");
510
510
  var E = k(s);
511
511
  if (typeof E == "function" && E !== s.entries)
512
512
  for (var C = E.call(s), R; !(R = C.next()).done; )
513
- ze(R.value) && Ns(R.value, l);
513
+ ze(R.value) && vs(R.value, l);
514
514
  }
515
515
  }
516
516
  }
517
- function nr(s) {
517
+ function tr(s) {
518
518
  {
519
519
  var l = s.type;
520
520
  if (l == null || typeof l == "string")
@@ -529,41 +529,41 @@ Check the top-level render call using <` + x + ">.");
529
529
  else
530
530
  return;
531
531
  if (x) {
532
- var g = N(l);
533
- Gs(x, s.props, "prop", g, s);
532
+ var g = y(l);
533
+ Ws(x, s.props, "prop", g, s);
534
534
  } else if (l.PropTypes !== void 0 && !Ve) {
535
535
  Ve = !0;
536
- var E = N(l);
537
- T("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", E || "Unknown");
536
+ var E = y(l);
537
+ S("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", E || "Unknown");
538
538
  }
539
- typeof l.getDefaultProps == "function" && !l.getDefaultProps.isReactClassApproved && T("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.");
539
+ typeof l.getDefaultProps == "function" && !l.getDefaultProps.isReactClassApproved && S("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.");
540
540
  }
541
541
  }
542
- function ar(s) {
542
+ function nr(s) {
543
543
  {
544
544
  for (var l = Object.keys(s.props), x = 0; x < l.length; x++) {
545
545
  var g = l[x];
546
546
  if (g !== "children" && g !== "key") {
547
- me(s), T("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", g), me(null);
547
+ me(s), S("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", g), me(null);
548
548
  break;
549
549
  }
550
550
  }
551
- s.ref !== null && (me(s), T("Invalid attribute `ref` supplied to `React.Fragment`."), me(null));
551
+ s.ref !== null && (me(s), S("Invalid attribute `ref` supplied to `React.Fragment`."), me(null));
552
552
  }
553
553
  }
554
- var _s = {};
555
- function ws(s, l, x, g, E, C) {
554
+ var ys = {};
555
+ function Ns(s, l, x, g, E, C) {
556
556
  {
557
557
  var R = Be(s);
558
558
  if (!R) {
559
559
  var v = "";
560
560
  (s === void 0 || typeof s == "object" && s !== null && Object.keys(s).length === 0) && (v += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");
561
- var I = rr();
562
- I ? v += I : v += vs();
561
+ var q = sr();
562
+ q ? v += q : v += ps();
563
563
  var A;
564
- s === null ? A = "null" : We(s) ? A = "array" : s !== void 0 && s.$$typeof === t ? (A = "<" + (N(s.type) || "Unknown") + " />", v = " Did you accidentally export a JSX literal instead of a component?") : A = typeof s, T("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", A, v);
564
+ s === null ? A = "null" : We(s) ? A = "array" : s !== void 0 && s.$$typeof === t ? (A = "<" + (y(s.type) || "Unknown") + " />", v = " Did you accidentally export a JSX literal instead of a component?") : A = typeof s, S("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", A, v);
565
565
  }
566
- var F = sr(s, l, x, E, C);
566
+ var F = er(s, l, x, E, C);
567
567
  if (F == null)
568
568
  return F;
569
569
  if (R) {
@@ -572,51 +572,51 @@ Check the top-level render call using <` + x + ">.");
572
572
  if (g)
573
573
  if (We(X)) {
574
574
  for (var fe = 0; fe < X.length; fe++)
575
- ys(X[fe], s);
575
+ bs(X[fe], s);
576
576
  Object.freeze && Object.freeze(X);
577
577
  } else
578
- T("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");
578
+ S("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");
579
579
  else
580
- ys(X, s);
580
+ bs(X, s);
581
581
  }
582
582
  if (ve.call(l, "key")) {
583
- var oe = N(s), M = Object.keys(l).filter(function(ur) {
584
- return ur !== "key";
583
+ var oe = y(s), M = Object.keys(l).filter(function(dr) {
584
+ return dr !== "key";
585
585
  }), Ye = M.length > 0 ? "{key: someKey, " + M.join(": ..., ") + ": ...}" : "{key: someKey}";
586
- if (!_s[oe + Ye]) {
587
- var dr = M.length > 0 ? "{" + M.join(": ..., ") + ": ...}" : "{}";
588
- T(`A props object containing a "key" prop is being spread into JSX:
586
+ if (!ys[oe + Ye]) {
587
+ var or = M.length > 0 ? "{" + M.join(": ..., ") + ": ...}" : "{}";
588
+ S(`A props object containing a "key" prop is being spread into JSX:
589
589
  let props = %s;
590
590
  <%s {...props} />
591
591
  React keys must be passed directly to JSX without using spread:
592
592
  let props = %s;
593
- <%s key={someKey} {...props} />`, Ye, oe, dr, oe), _s[oe + Ye] = !0;
593
+ <%s key={someKey} {...props} />`, Ye, oe, or, oe), ys[oe + Ye] = !0;
594
594
  }
595
595
  }
596
- return s === a ? ar(F) : nr(F), F;
596
+ return s === a ? nr(F) : tr(F), F;
597
597
  }
598
598
  }
599
- function ir(s, l, x) {
600
- return ws(s, l, x, !0);
599
+ function ar(s, l, x) {
600
+ return Ns(s, l, x, !0);
601
601
  }
602
- function cr(s, l, x) {
603
- return ws(s, l, x, !1);
602
+ function ir(s, l, x) {
603
+ return Ns(s, l, x, !1);
604
604
  }
605
- var lr = cr, or = ir;
606
- Ne.Fragment = a, Ne.jsx = lr, Ne.jsxs = or;
607
- })()), Ne;
605
+ var cr = ir, lr = ar;
606
+ ye.Fragment = a, ye.jsx = cr, ye.jsxs = lr;
607
+ })()), ye;
608
608
  }
609
- var ks;
610
- function vr() {
611
- return ks || (ks = 1, process.env.NODE_ENV === "production" ? Fe.exports = pr() : Fe.exports = gr()), Fe.exports;
609
+ var Es;
610
+ function gr() {
611
+ return Es || (Es = 1, process.env.NODE_ENV === "production" ? Fe.exports = jr() : Fe.exports = pr()), Fe.exports;
612
612
  }
613
- var e = vr();
613
+ var e = gr();
614
614
  class we extends Error {
615
615
  constructor(t, n) {
616
616
  super(n), this.status = t, this.name = "ApiError";
617
617
  }
618
618
  }
619
- class br {
619
+ class vr {
620
620
  baseUrl;
621
621
  headers;
622
622
  constructor(t = {}) {
@@ -694,54 +694,28 @@ class br {
694
694
  return `${this.baseUrl}/api/runs/${t}/export/download`;
695
695
  }
696
696
  }
697
- const Nr = new br(), Ss = Qe(null);
698
- function nt({ children: r }) {
699
- const t = {
700
- theme: "light",
701
- resolvedTheme: "light",
702
- setTheme: () => {
703
- },
704
- toggleTheme: () => {
705
- }
706
- };
707
- return /* @__PURE__ */ e.jsx(Ss.Provider, { value: t, children: r });
708
- }
709
- function yr() {
710
- const r = Xe(Ss);
711
- return r || {
712
- theme: "light",
713
- resolvedTheme: "light",
714
- setTheme: () => {
715
- },
716
- toggleTheme: () => {
717
- }
718
- };
719
- }
720
- function at() {
721
- return yr();
722
- }
723
- const Ds = Qe(null);
724
- function _r({
697
+ const br = new vr(), Ts = Ps(null);
698
+ function yr({
725
699
  children: r,
726
- api: t = Nr,
700
+ api: t = br,
727
701
  initialWorkspace: n = null
728
702
  }) {
729
- const [a, u] = S(null), [o, d] = S(n);
703
+ const [a, u] = T(null), [o, d] = T(n);
730
704
  return je(() => {
731
705
  t.getCapabilities().then(u).catch(console.error);
732
- }, [t]), /* @__PURE__ */ e.jsx(Ds.Provider, { value: { api: t, capabilities: a, currentWorkspace: o, setCurrentWorkspace: d }, children: r });
706
+ }, [t]), /* @__PURE__ */ e.jsx(Ts.Provider, { value: { api: t, capabilities: a, currentWorkspace: o, setCurrentWorkspace: d }, children: r });
733
707
  }
734
708
  function K() {
735
- const r = Xe(Ds);
709
+ const r = Ss(Ts);
736
710
  if (!r) throw new Error("useApp must be used within AppProvider");
737
711
  return r;
738
712
  }
739
713
  function ue(r, t = []) {
740
- const [n, a] = S({
714
+ const [n, a] = T({
741
715
  data: null,
742
716
  loading: !0,
743
717
  error: null
744
- }), u = Rs(!0), o = Rs(r);
718
+ }), u = _s(!0), o = _s(r);
745
719
  o.current = r;
746
720
  const d = _e(async () => {
747
721
  a((i) => ({ ...i, loading: !0, error: null }));
@@ -760,14 +734,14 @@ function ue(r, t = []) {
760
734
  u.current = !1;
761
735
  }), t), { ...n, refetch: d };
762
736
  }
763
- function As(r) {
737
+ function Ds(r) {
764
738
  const { api: t, currentWorkspace: n } = K();
765
739
  return ue(
766
740
  () => t.listRuns({ ...r, workspace: n?.id }),
767
741
  [t, n?.id, r?.project, r?.status, r?.q, r?.limit]
768
742
  );
769
743
  }
770
- function Fs(r) {
744
+ function As(r) {
771
745
  const { api: t } = K();
772
746
  return ue(
773
747
  async () => {
@@ -787,7 +761,7 @@ function Le() {
787
761
  [r, t?.id]
788
762
  );
789
763
  }
790
- function wr(r) {
764
+ function Nr(r) {
791
765
  const { api: t, currentWorkspace: n } = K();
792
766
  return ue(
793
767
  async () => {
@@ -797,21 +771,21 @@ function wr(r) {
797
771
  [t, n?.id, r?.project]
798
772
  );
799
773
  }
800
- function Rr(r) {
774
+ function _r(r) {
801
775
  const { api: t } = K();
802
776
  return ue(
803
777
  () => t.getGroup(r),
804
778
  [t, r]
805
779
  );
806
780
  }
807
- function Er(r, t) {
781
+ function wr(r, t) {
808
782
  const { api: n } = K();
809
783
  return ue(
810
784
  () => n.getDiff(r, t),
811
785
  [n, r, t]
812
786
  );
813
787
  }
814
- function Cr(r, t) {
788
+ function Rr(r, t) {
815
789
  const { api: n } = K();
816
790
  return ue(
817
791
  () => n.getArtifact(r, t),
@@ -819,7 +793,7 @@ function Cr(r, t) {
819
793
  );
820
794
  }
821
795
  function Re(r) {
822
- const [t, n] = S(!1), [a, u] = S(null);
796
+ const [t, n] = T(!1), [a, u] = T(null);
823
797
  return { mutate: _e(async (...d) => {
824
798
  n(!0), u(null);
825
799
  try {
@@ -838,7 +812,7 @@ function Q(r) {
838
812
  function He(r) {
839
813
  return r?.slice(0, 12) ?? "N/A";
840
814
  }
841
- function ss(r) {
815
+ function Ze(r) {
842
816
  const t = new Date(r), a = Math.floor(((/* @__PURE__ */ new Date()).getTime() - t.getTime()) / 1e3);
843
817
  if (a < 60) return "just now";
844
818
  if (a < 3600) {
@@ -860,19 +834,19 @@ function ss(r) {
860
834
  const u = Math.floor(a / 31536e3);
861
835
  return `${u} year${u !== 1 ? "s" : ""} ago`;
862
836
  }
863
- function kr(r, t = 6) {
837
+ function Er(r, t = 6) {
864
838
  return typeof r != "number" || isNaN(r) ? String(r) : Number(r.toPrecision(t)).toString();
865
839
  }
866
840
  function Oe(r) {
867
841
  return r < 1024 ? `${r} bytes` : r < 1048576 ? `${(r / 1024).toFixed(1)} KB` : `${(r / 1048576).toFixed(1)} MB`;
868
842
  }
869
- function Tr(r) {
843
+ function Cr(r) {
870
844
  return JSON.stringify(r, null, 2);
871
845
  }
872
- function Pr(r, t = 60) {
846
+ function kr(r, t = 60) {
873
847
  return r ? r.length <= t ? r : r.slice(0, t - 3) + "..." : "";
874
848
  }
875
- function it(r, t) {
849
+ function rt(r, t) {
876
850
  const n = new URLSearchParams();
877
851
  Object.entries(t).forEach(([u, o]) => {
878
852
  o != null && o !== "" && n.set(u, String(o));
@@ -889,48 +863,51 @@ const Sr = [
889
863
  { href: "/groups", label: "Groups", matchPaths: ["/groups"] },
890
864
  { href: "/diff", label: "Compare", matchPaths: ["/diff"] },
891
865
  { href: "/search", label: "Search", matchPaths: ["/search"] }
892
- ], Os = Qe(null);
893
- function ct({
866
+ ], Fs = Ps(null);
867
+ function tt({
894
868
  config: r,
895
869
  children: t
896
870
  }) {
897
- return /* @__PURE__ */ e.jsx(Os.Provider, { value: r, children: t });
871
+ return /* @__PURE__ */ e.jsx(Fs.Provider, { value: r, children: t });
898
872
  }
899
- function Dr() {
900
- return Xe(Os);
873
+ function Pr() {
874
+ return Ss(Fs);
901
875
  }
902
876
  function V({ children: r, config: t }) {
903
- const n = hr(), u = { ...Dr(), ...t }, o = u?.navLinks ?? Sr, d = [
877
+ const n = ur(), u = { ...Pr(), ...t }, o = u?.navLinks ?? Sr, d = [
904
878
  ...u?.prependNavLinks ?? [],
905
879
  ...o,
906
880
  ...u?.appendNavLinks ?? []
907
881
  ], i = u?.logo ?? { text: "devqubit", icon: "⚛" }, f = (h) => h.matchPaths ? h.matchPaths.some((m) => n.pathname.startsWith(m)) : n.pathname === h.href;
908
- return /* @__PURE__ */ e.jsxs("div", { className: "dq-layout", children: [
909
- /* @__PURE__ */ e.jsx("header", { className: "dq-header", children: /* @__PURE__ */ e.jsxs("div", { className: "dq-header-inner", children: [
910
- /* @__PURE__ */ e.jsxs("div", { className: "dq-header-left", children: [
911
- /* @__PURE__ */ e.jsxs(z, { to: "/", className: "dq-logo", children: [
912
- i.icon && /* @__PURE__ */ e.jsx("span", { className: "dq-logo-icon", children: i.icon }),
882
+ return /* @__PURE__ */ e.jsxs("div", { className: "min-h-screen bg-gray-50", children: [
883
+ /* @__PURE__ */ e.jsx("header", { className: "bg-gray-900 h-14 sticky top-0 z-50 shadow-sm", children: /* @__PURE__ */ e.jsxs("div", { className: "max-w-container mx-auto px-6 h-full flex items-center justify-between", children: [
884
+ /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-8", children: [
885
+ /* @__PURE__ */ e.jsxs(z, { to: "/", className: "text-lg font-semibold text-primary hover:text-primary-light flex items-center gap-2 transition-colors", children: [
886
+ i.icon && /* @__PURE__ */ e.jsx("span", { className: "text-xl", children: i.icon }),
913
887
  i.text
914
888
  ] }),
915
- /* @__PURE__ */ e.jsx("nav", { className: "dq-nav", children: d.map((h) => /* @__PURE__ */ e.jsx(
889
+ /* @__PURE__ */ e.jsx("nav", { className: "flex gap-1", children: d.map((h) => /* @__PURE__ */ e.jsx(
916
890
  z,
917
891
  {
918
892
  to: h.href,
919
- className: $("dq-nav-link", f(h) && "active"),
893
+ className: $(
894
+ "px-3 py-2 rounded-md text-sm font-medium transition-colors duration-150",
895
+ f(h) ? "text-white bg-white/10" : "text-gray-400 hover:text-white hover:bg-white/5"
896
+ ),
920
897
  children: h.label
921
898
  },
922
899
  h.href
923
900
  )) })
924
901
  ] }),
925
- /* @__PURE__ */ e.jsx("div", { className: "dq-header-right", children: u?.headerRight })
902
+ /* @__PURE__ */ e.jsx("div", { className: "flex items-center gap-4", children: u?.headerRight })
926
903
  ] }) }),
927
- /* @__PURE__ */ e.jsx("main", { className: "dq-main fade-in", children: r })
904
+ /* @__PURE__ */ e.jsx("main", { className: "max-w-container mx-auto p-6 fade-in", children: r })
928
905
  ] });
929
906
  }
930
907
  function Ee({ title: r, subtitle: t, actions: n }) {
931
- return /* @__PURE__ */ e.jsxs("div", { className: "page-header", children: [
908
+ return /* @__PURE__ */ e.jsxs("div", { className: "flex items-start justify-between mb-6 gap-4 flex-wrap", children: [
932
909
  /* @__PURE__ */ e.jsxs("div", { children: [
933
- /* @__PURE__ */ e.jsx("h1", { className: "page-title", children: r }),
910
+ /* @__PURE__ */ e.jsx("h1", { className: "text-2xl font-semibold text-gray-900 flex items-center gap-2 flex-wrap", children: r }),
934
911
  t && /* @__PURE__ */ e.jsx("p", { className: "text-sm text-muted mt-1", children: t })
935
912
  ] }),
936
913
  n && /* @__PURE__ */ e.jsx("div", { className: "flex gap-2", children: n })
@@ -939,7 +916,7 @@ function Ee({ title: r, subtitle: t, actions: n }) {
939
916
  function Y({ variant: r = "gray", className: t, children: n, ...a }) {
940
917
  return /* @__PURE__ */ e.jsx("span", { className: $("badge", `badge-${r}`, t), ...a, children: n });
941
918
  }
942
- const D = Ze(
919
+ const D = Xe(
943
920
  ({ variant: r = "secondary", size: t = "default", loading: n, className: a, children: u, disabled: o, ...d }, i) => /* @__PURE__ */ e.jsxs(
944
921
  "button",
945
922
  {
@@ -953,7 +930,7 @@ const D = Ze(
953
930
  disabled: o || n,
954
931
  ...d,
955
932
  children: [
956
- n && /* @__PURE__ */ e.jsx(q, {}),
933
+ n && /* @__PURE__ */ e.jsx(I, {}),
957
934
  u
958
935
  ]
959
936
  }
@@ -969,10 +946,10 @@ function W({ className: r, children: t, ...n }) {
969
946
  function G({ className: r, children: t, ...n }) {
970
947
  return /* @__PURE__ */ e.jsx("h3", { className: $("card-title", r), ...n, children: t });
971
948
  }
972
- function lt({ variant: r = "info", className: t, children: n, ...a }) {
949
+ function nt({ variant: r = "info", className: t, children: n, ...a }) {
973
950
  return /* @__PURE__ */ e.jsx("div", { className: $("alert", `alert-${r}`, t), ...a, children: n });
974
951
  }
975
- function q({ className: r, ...t }) {
952
+ function I({ className: r, ...t }) {
976
953
  return /* @__PURE__ */ e.jsx("span", { className: $("spinner", r), ...t });
977
954
  }
978
955
  function he({ message: r, hint: t, className: n, ...a }) {
@@ -987,7 +964,7 @@ function Je({ items: r, className: t, ...n }) {
987
964
  /* @__PURE__ */ e.jsx("dd", { children: u })
988
965
  ] }, a)) });
989
966
  }
990
- function rs({ open: r, onClose: t, title: n, children: a, actions: u }) {
967
+ function es({ open: r, onClose: t, title: n, children: a, actions: u }) {
991
968
  return r ? /* @__PURE__ */ e.jsx(
992
969
  "div",
993
970
  {
@@ -1023,15 +1000,15 @@ function ee({ children: r, className: t }) {
1023
1000
  function ie({ className: r, children: t, ...n }) {
1024
1001
  return /* @__PURE__ */ e.jsx("label", { className: $("form-label", r), ...n, children: t });
1025
1002
  }
1026
- const ts = Ze(
1003
+ const ss = Xe(
1027
1004
  ({ className: r, ...t }, n) => /* @__PURE__ */ e.jsx("input", { ref: n, className: $("form-input", r), ...t })
1028
1005
  );
1029
- ts.displayName = "Input";
1030
- const de = Ze(
1006
+ ss.displayName = "Input";
1007
+ const de = Xe(
1031
1008
  ({ className: r, children: t, ...n }, a) => /* @__PURE__ */ e.jsx("select", { ref: a, className: $("form-input", r), ...n, children: t })
1032
1009
  );
1033
1010
  de.displayName = "Select";
1034
- function $s({ children: r, className: t }) {
1011
+ function Os({ children: r, className: t }) {
1035
1012
  return /* @__PURE__ */ e.jsx("div", { className: $("form-row", t), children: r });
1036
1013
  }
1037
1014
  function L({ className: r, children: t, ...n }) {
@@ -1046,13 +1023,13 @@ function B({ className: r, children: t, ...n }) {
1046
1023
  function j({ className: r, children: t, ...n }) {
1047
1024
  return /* @__PURE__ */ e.jsx("tr", { className: r, ...n, children: t });
1048
1025
  }
1049
- function y({ className: r, children: t, ...n }) {
1026
+ function N({ className: r, children: t, ...n }) {
1050
1027
  return /* @__PURE__ */ e.jsx("th", { className: r, ...n, children: t });
1051
1028
  }
1052
1029
  function c({ className: r, children: t, ...n }) {
1053
1030
  return /* @__PURE__ */ e.jsx("td", { className: r, ...n, children: t });
1054
1031
  }
1055
- function Ls({ status: r }) {
1032
+ function $s({ status: r }) {
1056
1033
  const t = {
1057
1034
  FINISHED: "success",
1058
1035
  FAILED: "danger",
@@ -1061,19 +1038,19 @@ function Ls({ status: r }) {
1061
1038
  }[r];
1062
1039
  return /* @__PURE__ */ e.jsx(Y, { variant: t, children: r });
1063
1040
  }
1064
- function ns({ runs: r, onDelete: t, loading: n, emptyHint: a, baselineRunId: u }) {
1065
- const [o, d] = S(null), i = () => {
1041
+ function rs({ runs: r, onDelete: t, loading: n, emptyHint: a, baselineRunId: u }) {
1042
+ const [o, d] = T(null), i = () => {
1066
1043
  o && t && (t(o.run_id), d(null));
1067
1044
  };
1068
1045
  return r.length ? /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1069
1046
  /* @__PURE__ */ e.jsxs(L, { children: [
1070
1047
  /* @__PURE__ */ e.jsx(re, { children: /* @__PURE__ */ e.jsxs(j, { children: [
1071
- /* @__PURE__ */ e.jsx(y, { children: "Run ID" }),
1072
- /* @__PURE__ */ e.jsx(y, { children: "Name" }),
1073
- /* @__PURE__ */ e.jsx(y, { children: "Project" }),
1074
- /* @__PURE__ */ e.jsx(y, { children: "Status" }),
1075
- /* @__PURE__ */ e.jsx(y, { children: "Created" }),
1076
- /* @__PURE__ */ e.jsx(y, { children: "Actions" })
1048
+ /* @__PURE__ */ e.jsx(N, { children: "Run ID" }),
1049
+ /* @__PURE__ */ e.jsx(N, { children: "Name" }),
1050
+ /* @__PURE__ */ e.jsx(N, { children: "Project" }),
1051
+ /* @__PURE__ */ e.jsx(N, { children: "Status" }),
1052
+ /* @__PURE__ */ e.jsx(N, { children: "Created" }),
1053
+ /* @__PURE__ */ e.jsx(N, { children: "Actions" })
1077
1054
  ] }) }),
1078
1055
  /* @__PURE__ */ e.jsx(B, { children: r.map((f) => /* @__PURE__ */ e.jsxs(j, { children: [
1079
1056
  /* @__PURE__ */ e.jsxs(c, { children: [
@@ -1082,8 +1059,8 @@ function ns({ runs: r, onDelete: t, loading: n, emptyHint: a, baselineRunId: u }
1082
1059
  ] }),
1083
1060
  /* @__PURE__ */ e.jsx(c, { children: f.run_name || "—" }),
1084
1061
  /* @__PURE__ */ e.jsx(c, { children: f.project }),
1085
- /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(Ls, { status: f.status }) }),
1086
- /* @__PURE__ */ e.jsx(c, { className: "text-muted", children: ss(f.created_at) }),
1062
+ /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx($s, { status: f.status }) }),
1063
+ /* @__PURE__ */ e.jsx(c, { className: "text-muted", children: Ze(f.created_at) }),
1087
1064
  /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsxs("div", { className: "flex gap-2", children: [
1088
1065
  /* @__PURE__ */ e.jsx(z, { to: `/runs/${f.run_id}`, children: /* @__PURE__ */ e.jsx(D, { variant: "secondary", size: "sm", children: "View" }) }),
1089
1066
  t && /* @__PURE__ */ e.jsx(
@@ -1100,7 +1077,7 @@ function ns({ runs: r, onDelete: t, loading: n, emptyHint: a, baselineRunId: u }
1100
1077
  ] }, f.run_id)) })
1101
1078
  ] }),
1102
1079
  /* @__PURE__ */ e.jsxs(
1103
- rs,
1080
+ es,
1104
1081
  {
1105
1082
  open: !!o,
1106
1083
  onClose: () => d(null),
@@ -1108,7 +1085,7 @@ function ns({ runs: r, onDelete: t, loading: n, emptyHint: a, baselineRunId: u }
1108
1085
  actions: /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1109
1086
  /* @__PURE__ */ e.jsx(D, { variant: "secondary", onClick: () => d(null), children: "Cancel" }),
1110
1087
  /* @__PURE__ */ e.jsxs(D, { variant: "danger", onClick: i, disabled: n, children: [
1111
- n && /* @__PURE__ */ e.jsx(q, {}),
1088
+ n && /* @__PURE__ */ e.jsx(I, {}),
1112
1089
  "Delete"
1113
1090
  ] })
1114
1091
  ] }),
@@ -1127,13 +1104,13 @@ function ns({ runs: r, onDelete: t, loading: n, emptyHint: a, baselineRunId: u }
1127
1104
  }
1128
1105
  );
1129
1106
  }
1130
- function Ar() {
1131
- const [r, t] = $e(), { api: n } = K(), { data: a } = Le(), [u, o] = S(null), [d, i] = S({
1107
+ function Tr() {
1108
+ const [r, t] = $e(), { api: n } = K(), { data: a } = Le(), [u, o] = T(null), [d, i] = T({
1132
1109
  project: r.get("project") || "",
1133
1110
  status: r.get("status") || "",
1134
1111
  q: r.get("q") || "",
1135
1112
  limit: parseInt(r.get("limit") || "25", 10)
1136
- }), { data: f, loading: h, refetch: m } = As(d), p = Re((w) => n.deleteRun(w));
1113
+ }), { data: f, loading: h, refetch: m } = Ds(d), p = Re((w) => n.deleteRun(w));
1137
1114
  je(() => {
1138
1115
  if (u) {
1139
1116
  const w = setTimeout(() => o(null), 3e3);
@@ -1153,7 +1130,7 @@ function Ar() {
1153
1130
  }, [p, m]);
1154
1131
  return /* @__PURE__ */ e.jsxs(V, { children: [
1155
1132
  /* @__PURE__ */ e.jsx(Ee, { title: "Runs" }),
1156
- /* @__PURE__ */ e.jsx(b, { className: "mb-4", children: /* @__PURE__ */ e.jsxs($s, { children: [
1133
+ /* @__PURE__ */ e.jsx(b, { className: "mb-4", children: /* @__PURE__ */ e.jsxs(Os, { children: [
1157
1134
  /* @__PURE__ */ e.jsxs(ee, { children: [
1158
1135
  /* @__PURE__ */ e.jsx(ie, { htmlFor: "project", children: "Project" }),
1159
1136
  /* @__PURE__ */ e.jsxs(
@@ -1189,7 +1166,7 @@ function Ar() {
1189
1166
  /* @__PURE__ */ e.jsxs(ee, { children: [
1190
1167
  /* @__PURE__ */ e.jsx(ie, { htmlFor: "q", children: "Query" }),
1191
1168
  /* @__PURE__ */ e.jsx(
1192
- ts,
1169
+ ss,
1193
1170
  {
1194
1171
  id: "q",
1195
1172
  value: d.q,
@@ -1216,11 +1193,11 @@ function Ar() {
1216
1193
  ] }),
1217
1194
  /* @__PURE__ */ e.jsxs(ee, { className: "flex items-end gap-2", children: [
1218
1195
  /* @__PURE__ */ e.jsx(D, { variant: "primary", onClick: () => m(), children: "Filter" }),
1219
- h && /* @__PURE__ */ e.jsx(q, {})
1196
+ h && /* @__PURE__ */ e.jsx(I, {})
1220
1197
  ] })
1221
1198
  ] }) }),
1222
- /* @__PURE__ */ e.jsx(b, { children: h && !f ? /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-8", children: /* @__PURE__ */ e.jsx(q, {}) }) : /* @__PURE__ */ e.jsx(
1223
- ns,
1199
+ /* @__PURE__ */ e.jsx(b, { children: h && !f ? /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-8", children: /* @__PURE__ */ e.jsx(I, {}) }) : /* @__PURE__ */ e.jsx(
1200
+ rs,
1224
1201
  {
1225
1202
  runs: f?.runs ?? [],
1226
1203
  onDelete: U,
@@ -1239,7 +1216,7 @@ function Ar() {
1239
1216
  )
1240
1217
  ] });
1241
1218
  }
1242
- function Fr({ projects: r, currentWorkspace: t }) {
1219
+ function Dr({ projects: r, currentWorkspace: t }) {
1243
1220
  if (!r.length)
1244
1221
  return /* @__PURE__ */ e.jsx(
1245
1222
  he,
@@ -1254,15 +1231,15 @@ function Fr({ projects: r, currentWorkspace: t }) {
1254
1231
  };
1255
1232
  return /* @__PURE__ */ e.jsxs(L, { children: [
1256
1233
  /* @__PURE__ */ e.jsx(re, { children: /* @__PURE__ */ e.jsxs(j, { children: [
1257
- /* @__PURE__ */ e.jsx(y, { children: "Project" }),
1258
- /* @__PURE__ */ e.jsx(y, { children: "Runs" }),
1259
- /* @__PURE__ */ e.jsx(y, { children: "Baseline" }),
1260
- /* @__PURE__ */ e.jsx(y, {})
1234
+ /* @__PURE__ */ e.jsx(N, { children: "Project" }),
1235
+ /* @__PURE__ */ e.jsx(N, { children: "Runs" }),
1236
+ /* @__PURE__ */ e.jsx(N, { children: "Baseline" }),
1237
+ /* @__PURE__ */ e.jsx(N, {})
1261
1238
  ] }) }),
1262
1239
  /* @__PURE__ */ e.jsx(B, { children: r.map((a) => /* @__PURE__ */ e.jsxs(j, { children: [
1263
1240
  /* @__PURE__ */ e.jsxs(c, { children: [
1264
1241
  /* @__PURE__ */ e.jsx("span", { className: "font-medium", children: a.name }),
1265
- a.description && /* @__PURE__ */ e.jsx("p", { className: "text-muted text-sm", children: Pr(a.description) })
1242
+ a.description && /* @__PURE__ */ e.jsx("p", { className: "text-muted text-sm", children: kr(a.description) })
1266
1243
  ] }),
1267
1244
  /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(Y, { variant: "gray", children: a.run_count ?? 0 }) }),
1268
1245
  /* @__PURE__ */ e.jsx(c, { children: a.baseline ? /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
@@ -1273,14 +1250,14 @@ function Fr({ projects: r, currentWorkspace: t }) {
1273
1250
  ] }, a.name)) })
1274
1251
  ] });
1275
1252
  }
1276
- function Or({ groups: r }) {
1253
+ function Ar({ groups: r }) {
1277
1254
  return r.length ? /* @__PURE__ */ e.jsxs(L, { children: [
1278
1255
  /* @__PURE__ */ e.jsx(re, { children: /* @__PURE__ */ e.jsxs(j, { children: [
1279
- /* @__PURE__ */ e.jsx(y, { children: "Group ID" }),
1280
- /* @__PURE__ */ e.jsx(y, { children: "Name" }),
1281
- /* @__PURE__ */ e.jsx(y, { children: "Project" }),
1282
- /* @__PURE__ */ e.jsx(y, { children: "Runs" }),
1283
- /* @__PURE__ */ e.jsx(y, { children: "Actions" })
1256
+ /* @__PURE__ */ e.jsx(N, { children: "Group ID" }),
1257
+ /* @__PURE__ */ e.jsx(N, { children: "Name" }),
1258
+ /* @__PURE__ */ e.jsx(N, { children: "Project" }),
1259
+ /* @__PURE__ */ e.jsx(N, { children: "Runs" }),
1260
+ /* @__PURE__ */ e.jsx(N, { children: "Actions" })
1284
1261
  ] }) }),
1285
1262
  /* @__PURE__ */ e.jsx(B, { children: r.map((t) => /* @__PURE__ */ e.jsxs(j, { children: [
1286
1263
  /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: Q(t.group_id) }),
@@ -1297,7 +1274,7 @@ function Or({ groups: r }) {
1297
1274
  }
1298
1275
  );
1299
1276
  }
1300
- function $r({
1277
+ function Fr({
1301
1278
  runId: r,
1302
1279
  runName: t,
1303
1280
  variant: n = "secondary",
@@ -1305,7 +1282,7 @@ function $r({
1305
1282
  className: u = "",
1306
1283
  apiBaseUrl: o = ""
1307
1284
  }) {
1308
- const [d, i] = S({ status: "idle" }), [f, h] = S(!1), [m, p] = S(null), _ = async () => {
1285
+ const [d, i] = T({ status: "idle" }), [f, h] = T(!1), [m, p] = T(null), _ = async () => {
1309
1286
  i({ status: "preparing", message: "Preparing bundle..." }), h(!0);
1310
1287
  try {
1311
1288
  const k = await fetch(`${o}/api/runs/${r}/export`, {
@@ -1327,10 +1304,10 @@ function $r({
1327
1304
  status: "downloading",
1328
1305
  message: "Downloading bundle..."
1329
1306
  }));
1330
- const T = await fetch(`${o}/api/runs/${r}/export/download`);
1331
- if (!T.ok)
1307
+ const S = await fetch(`${o}/api/runs/${r}/export/download`);
1308
+ if (!S.ok)
1332
1309
  throw new Error("Download failed");
1333
- const se = await T.blob(), te = t ? `${t.replace(/[^a-zA-Z0-9_-]/g, "_")}_${r.slice(0, 8)}.zip` : `run_${r.slice(0, 8)}.zip`, J = URL.createObjectURL(se), Z = document.createElement("a");
1310
+ const se = await S.blob(), te = t ? `${t.replace(/[^a-zA-Z0-9_-]/g, "_")}_${r.slice(0, 8)}.zip` : `run_${r.slice(0, 8)}.zip`, J = URL.createObjectURL(se), Z = document.createElement("a");
1334
1311
  Z.href = J, Z.download = te, document.body.appendChild(Z), Z.click(), document.body.removeChild(Z), URL.revokeObjectURL(J), i({
1335
1312
  status: "complete",
1336
1313
  message: "Export complete!",
@@ -1357,14 +1334,14 @@ function $r({
1357
1334
  disabled: H,
1358
1335
  className: u,
1359
1336
  children: [
1360
- H && /* @__PURE__ */ e.jsx(q, {}),
1361
- /* @__PURE__ */ e.jsx(Lr, {}),
1337
+ H && /* @__PURE__ */ e.jsx(I, {}),
1338
+ /* @__PURE__ */ e.jsx(Or, {}),
1362
1339
  "Export"
1363
1340
  ]
1364
1341
  }
1365
1342
  ),
1366
1343
  /* @__PURE__ */ e.jsx(
1367
- rs,
1344
+ es,
1368
1345
  {
1369
1346
  open: f,
1370
1347
  onClose: U,
@@ -1372,7 +1349,7 @@ function $r({
1372
1349
  actions: d.status === "error" || d.status === "complete" ? /* @__PURE__ */ e.jsx(D, { variant: "secondary", onClick: U, children: "Close" }) : void 0,
1373
1350
  children: /* @__PURE__ */ e.jsxs("div", { className: "py-4", children: [
1374
1351
  /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-3 mb-4", children: [
1375
- d.status === "error" ? /* @__PURE__ */ e.jsx("div", { className: "w-10 h-10 rounded-full bg-[var(--dq-danger-bg)] flex items-center justify-center", children: /* @__PURE__ */ e.jsx(qr, {}) }) : d.status === "complete" ? /* @__PURE__ */ e.jsx("div", { className: "w-10 h-10 rounded-full bg-[var(--dq-success-bg)] flex items-center justify-center", children: /* @__PURE__ */ e.jsx(Br, {}) }) : /* @__PURE__ */ e.jsx("div", { className: "w-10 h-10 rounded-full bg-[var(--dq-primary-bg)] flex items-center justify-center", children: /* @__PURE__ */ e.jsx(q, {}) }),
1352
+ d.status === "error" ? /* @__PURE__ */ e.jsx("div", { className: "w-10 h-10 rounded-full bg-[var(--dq-danger-bg)] flex items-center justify-center", children: /* @__PURE__ */ e.jsx(Lr, {}) }) : d.status === "complete" ? /* @__PURE__ */ e.jsx("div", { className: "w-10 h-10 rounded-full bg-[var(--dq-success-bg)] flex items-center justify-center", children: /* @__PURE__ */ e.jsx($r, {}) }) : /* @__PURE__ */ e.jsx("div", { className: "w-10 h-10 rounded-full bg-[var(--dq-primary-bg)] flex items-center justify-center", children: /* @__PURE__ */ e.jsx(I, {}) }),
1376
1353
  /* @__PURE__ */ e.jsxs("div", { children: [
1377
1354
  /* @__PURE__ */ e.jsx("p", { className: "font-medium", children: d.message }),
1378
1355
  d.status === "error" && /* @__PURE__ */ e.jsx("p", { className: "text-sm text-[var(--dq-text-muted)]", children: "Please try again or contact support." })
@@ -1413,7 +1390,7 @@ function $r({
1413
1390
  )
1414
1391
  ] });
1415
1392
  }
1416
- function Lr() {
1393
+ function Or() {
1417
1394
  return /* @__PURE__ */ e.jsxs(
1418
1395
  "svg",
1419
1396
  {
@@ -1433,7 +1410,7 @@ function Lr() {
1433
1410
  }
1434
1411
  );
1435
1412
  }
1436
- function Br() {
1413
+ function $r() {
1437
1414
  return /* @__PURE__ */ e.jsx(
1438
1415
  "svg",
1439
1416
  {
@@ -1449,7 +1426,7 @@ function Br() {
1449
1426
  }
1450
1427
  );
1451
1428
  }
1452
- function qr() {
1429
+ function Lr() {
1453
1430
  return /* @__PURE__ */ e.jsxs(
1454
1431
  "svg",
1455
1432
  {
@@ -1469,19 +1446,19 @@ function qr() {
1469
1446
  }
1470
1447
  );
1471
1448
  }
1472
- function Ir() {
1473
- const { runId: r } = es(), t = xr(), { api: n } = K(), { data: a, loading: u, error: o, refetch: d } = Fs(r), { data: i, refetch: f } = Le(), [h, m] = S(!1), [p, _] = S(null), { mutate: U, loading: w } = Re(
1449
+ function Br() {
1450
+ const { runId: r } = Qe(), t = hr(), { api: n } = K(), { data: a, loading: u, error: o, refetch: d } = As(r), { data: i, refetch: f } = Le(), [h, m] = T(!1), [p, _] = T(null), { mutate: U, loading: w } = Re(
1474
1451
  () => n.setBaseline(a.project, a.run_id)
1475
1452
  ), { mutate: H, loading: k } = Re(
1476
1453
  () => n.deleteRun(r)
1477
- ), T = i?.find((N) => N.name === a?.project)?.baseline?.run_id === r;
1454
+ ), S = i?.find((y) => y.name === a?.project)?.baseline?.run_id === r;
1478
1455
  if (je(() => {
1479
1456
  if (p) {
1480
- const N = setTimeout(() => _(null), 3e3);
1481
- return () => clearTimeout(N);
1457
+ const y = setTimeout(() => _(null), 3e3);
1458
+ return () => clearTimeout(y);
1482
1459
  }
1483
1460
  }, [p]), u)
1484
- return /* @__PURE__ */ e.jsx(V, { children: /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e.jsx(q, {}) }) });
1461
+ return /* @__PURE__ */ e.jsx(V, { children: /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e.jsx(I, {}) }) });
1485
1462
  if (o || !a)
1486
1463
  return /* @__PURE__ */ e.jsx(V, { children: /* @__PURE__ */ e.jsx(b, { children: /* @__PURE__ */ e.jsx(
1487
1464
  he,
@@ -1496,25 +1473,25 @@ function Ir() {
1496
1473
  } catch {
1497
1474
  _({ message: "Failed to set baseline", variant: "error" });
1498
1475
  }
1499
- }, qe = async () => {
1476
+ }, Ie = async () => {
1500
1477
  try {
1501
1478
  await H(), m(!1), _({ message: "Run deleted", variant: "success" }), setTimeout(() => t("/runs"), 1e3);
1502
1479
  } catch {
1503
1480
  _({ message: "Failed to delete run", variant: "error" }), m(!1);
1504
1481
  }
1505
- }, ke = async (N) => {
1506
- const P = xe[N];
1482
+ }, ke = async (y) => {
1483
+ const P = xe[y];
1507
1484
  try {
1508
- const ce = n.getArtifactDownloadUrl(a.run_id, N), ge = await fetch(ce);
1485
+ const ce = n.getArtifactDownloadUrl(a.run_id, y), ge = await fetch(ce);
1509
1486
  if (!ge.ok) throw new Error("Download failed");
1510
- const Te = await ge.blob(), le = document.createElement("a");
1511
- le.href = URL.createObjectURL(Te), le.download = P?.kind || `artifact-${N}`, le.click(), URL.revokeObjectURL(le.href), _({ message: "Download started", variant: "success" });
1487
+ const Se = await ge.blob(), le = document.createElement("a");
1488
+ le.href = URL.createObjectURL(Se), le.download = P?.kind || `artifact-${y}`, le.click(), URL.revokeObjectURL(le.href), _({ message: "Download started", variant: "success" });
1512
1489
  } catch {
1513
1490
  _({ message: "Download failed", variant: "error" });
1514
1491
  }
1515
1492
  };
1516
1493
  return /* @__PURE__ */ e.jsxs(V, { children: [
1517
- T && /* @__PURE__ */ e.jsxs("div", { className: "mb-4 px-4 py-3 bg-[#EFF6FF] border border-[#2563EB]/20 rounded-md text-[#2563EB] text-sm font-medium", children: [
1494
+ S && /* @__PURE__ */ e.jsxs("div", { className: "mb-4 px-4 py-3 bg-[#EFF6FF] border border-[#2563EB]/20 rounded-md text-[#2563EB] text-sm font-medium", children: [
1518
1495
  'This run is the current baseline for project "',
1519
1496
  a.project,
1520
1497
  '"'
@@ -1525,9 +1502,9 @@ function Ir() {
1525
1502
  /* @__PURE__ */ e.jsx("p", { className: "text-muted text-sm font-mono", children: a.run_id })
1526
1503
  ] }),
1527
1504
  /* @__PURE__ */ e.jsxs("div", { className: "flex gap-2", children: [
1528
- /* @__PURE__ */ e.jsx($r, { runId: a.run_id, runName: a.run_name }),
1529
- !T && /* @__PURE__ */ e.jsxs(D, { variant: "secondary", size: "sm", onClick: Be, disabled: w, children: [
1530
- w && /* @__PURE__ */ e.jsx(q, {}),
1505
+ /* @__PURE__ */ e.jsx(Fr, { runId: a.run_id, runName: a.run_name }),
1506
+ !S && /* @__PURE__ */ e.jsxs(D, { variant: "secondary", size: "sm", onClick: Be, disabled: w, children: [
1507
+ w && /* @__PURE__ */ e.jsx(I, {}),
1531
1508
  "Set as Baseline"
1532
1509
  ] }),
1533
1510
  /* @__PURE__ */ e.jsx(D, { variant: "ghost-danger", size: "sm", onClick: () => m(!0), children: "Delete" })
@@ -1540,8 +1517,8 @@ function Ir() {
1540
1517
  { label: "Project", value: /* @__PURE__ */ e.jsx(z, { to: `/runs?project=${a.project}`, children: a.project }) },
1541
1518
  { label: "Name", value: a.run_name || "—" },
1542
1519
  { label: "Adapter", value: a.adapter || "N/A" },
1543
- { label: "Status", value: /* @__PURE__ */ e.jsx(Ls, { status: a.status }) },
1544
- { label: "Created", value: `${a.created_at} (${ss(a.created_at)})` },
1520
+ { label: "Status", value: /* @__PURE__ */ e.jsx($s, { status: a.status }) },
1521
+ { label: "Created", value: `${a.created_at} (${Ze(a.created_at)})` },
1545
1522
  { label: "Backend", value: se.name || "N/A" },
1546
1523
  ...a.group_id ? [{
1547
1524
  label: "Group",
@@ -1560,25 +1537,25 @@ function Ir() {
1560
1537
  /* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-4 mb-4", children: [
1561
1538
  /* @__PURE__ */ e.jsxs(b, { children: [
1562
1539
  /* @__PURE__ */ e.jsx(W, { children: /* @__PURE__ */ e.jsx(G, { children: "Parameters" }) }),
1563
- Object.keys(J).length ? /* @__PURE__ */ e.jsx(L, { children: /* @__PURE__ */ e.jsx(B, { children: Object.entries(J).map(([N, P]) => /* @__PURE__ */ e.jsxs(j, { children: [
1564
- /* @__PURE__ */ e.jsx(c, { children: N }),
1540
+ Object.keys(J).length ? /* @__PURE__ */ e.jsx(L, { children: /* @__PURE__ */ e.jsx(B, { children: Object.entries(J).map(([y, P]) => /* @__PURE__ */ e.jsxs(j, { children: [
1541
+ /* @__PURE__ */ e.jsx(c, { children: y }),
1565
1542
  /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: String(P) })
1566
- ] }, N)) }) }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "No parameters" })
1543
+ ] }, y)) }) }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "No parameters" })
1567
1544
  ] }),
1568
1545
  /* @__PURE__ */ e.jsxs(b, { children: [
1569
1546
  /* @__PURE__ */ e.jsx(W, { children: /* @__PURE__ */ e.jsx(G, { children: "Metrics" }) }),
1570
- Object.keys(Z).length ? /* @__PURE__ */ e.jsx(L, { children: /* @__PURE__ */ e.jsx(B, { children: Object.entries(Z).map(([N, P]) => /* @__PURE__ */ e.jsxs(j, { children: [
1571
- /* @__PURE__ */ e.jsx(c, { children: N }),
1572
- /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: typeof P == "number" ? kr(P) : String(P) })
1573
- ] }, N)) }) }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "No metrics" })
1547
+ Object.keys(Z).length ? /* @__PURE__ */ e.jsx(L, { children: /* @__PURE__ */ e.jsx(B, { children: Object.entries(Z).map(([y, P]) => /* @__PURE__ */ e.jsxs(j, { children: [
1548
+ /* @__PURE__ */ e.jsx(c, { children: y }),
1549
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: typeof P == "number" ? Er(P) : String(P) })
1550
+ ] }, y)) }) }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "No metrics" })
1574
1551
  ] }),
1575
1552
  /* @__PURE__ */ e.jsxs(b, { children: [
1576
1553
  /* @__PURE__ */ e.jsx(W, { children: /* @__PURE__ */ e.jsx(G, { children: "Tags" }) }),
1577
- Object.keys(ne).length ? /* @__PURE__ */ e.jsx("div", { className: "flex flex-wrap gap-2", children: Object.entries(ne).map(([N, P]) => /* @__PURE__ */ e.jsxs(Y, { variant: "gray", children: [
1578
- N,
1554
+ Object.keys(ne).length ? /* @__PURE__ */ e.jsx("div", { className: "flex flex-wrap gap-2", children: Object.entries(ne).map(([y, P]) => /* @__PURE__ */ e.jsxs(Y, { variant: "gray", children: [
1555
+ y,
1579
1556
  ": ",
1580
1557
  String(P)
1581
- ] }, N)) }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "No tags" })
1558
+ ] }, y)) }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "No tags" })
1582
1559
  ] })
1583
1560
  ] }),
1584
1561
  /* @__PURE__ */ e.jsxs(b, { className: "mb-4", children: [
@@ -1589,19 +1566,19 @@ function Ir() {
1589
1566
  ] }) }),
1590
1567
  xe.length ? /* @__PURE__ */ e.jsxs(L, { children: [
1591
1568
  /* @__PURE__ */ e.jsx(re, { children: /* @__PURE__ */ e.jsxs(j, { children: [
1592
- /* @__PURE__ */ e.jsx(y, { children: "#" }),
1593
- /* @__PURE__ */ e.jsx(y, { children: "Kind" }),
1594
- /* @__PURE__ */ e.jsx(y, { children: "Role" }),
1595
- /* @__PURE__ */ e.jsx(y, { children: "Media Type" }),
1596
- /* @__PURE__ */ e.jsx(y, { children: "Digest" }),
1597
- /* @__PURE__ */ e.jsx(y, { children: "Actions" })
1569
+ /* @__PURE__ */ e.jsx(N, { children: "#" }),
1570
+ /* @__PURE__ */ e.jsx(N, { children: "Kind" }),
1571
+ /* @__PURE__ */ e.jsx(N, { children: "Role" }),
1572
+ /* @__PURE__ */ e.jsx(N, { children: "Media Type" }),
1573
+ /* @__PURE__ */ e.jsx(N, { children: "Digest" }),
1574
+ /* @__PURE__ */ e.jsx(N, { children: "Actions" })
1598
1575
  ] }) }),
1599
- /* @__PURE__ */ e.jsx(B, { children: xe.map((N, P) => /* @__PURE__ */ e.jsxs(j, { children: [
1576
+ /* @__PURE__ */ e.jsx(B, { children: xe.map((y, P) => /* @__PURE__ */ e.jsxs(j, { children: [
1600
1577
  /* @__PURE__ */ e.jsx(c, { children: P }),
1601
- /* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: N.kind }),
1602
- /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(Y, { variant: "gray", children: N.role }) }),
1603
- /* @__PURE__ */ e.jsx(c, { className: "text-muted text-sm", children: N.media_type }),
1604
- /* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: He(N.digest) }),
1578
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: y.kind }),
1579
+ /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(Y, { variant: "gray", children: y.role }) }),
1580
+ /* @__PURE__ */ e.jsx(c, { className: "text-muted text-sm", children: y.media_type }),
1581
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: He(y.digest) }),
1605
1582
  /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsxs("div", { className: "flex gap-2", children: [
1606
1583
  /* @__PURE__ */ e.jsx(z, { to: `/runs/${a.run_id}/artifacts/${P}`, children: /* @__PURE__ */ e.jsx(D, { variant: "secondary", size: "sm", children: "View" }) }),
1607
1584
  /* @__PURE__ */ e.jsx(D, { variant: "secondary", size: "sm", onClick: () => ke(P), children: "Download" })
@@ -1611,23 +1588,23 @@ function Ir() {
1611
1588
  ] }),
1612
1589
  pe.length > 0 && /* @__PURE__ */ e.jsxs(b, { children: [
1613
1590
  /* @__PURE__ */ e.jsx(W, { children: /* @__PURE__ */ e.jsx(G, { className: "text-danger", children: "Errors" }) }),
1614
- pe.map((N, P) => /* @__PURE__ */ e.jsxs("div", { className: "mb-2", children: [
1615
- /* @__PURE__ */ e.jsx("strong", { children: N.type }),
1591
+ pe.map((y, P) => /* @__PURE__ */ e.jsxs("div", { className: "mb-2", children: [
1592
+ /* @__PURE__ */ e.jsx("strong", { children: y.type }),
1616
1593
  ": ",
1617
- N.message,
1618
- N.traceback && /* @__PURE__ */ e.jsx("pre", { className: "mt-2", children: N.traceback })
1594
+ y.message,
1595
+ y.traceback && /* @__PURE__ */ e.jsx("pre", { className: "mt-2", children: y.traceback })
1619
1596
  ] }, P))
1620
1597
  ] }),
1621
1598
  /* @__PURE__ */ e.jsxs(
1622
- rs,
1599
+ es,
1623
1600
  {
1624
1601
  open: h,
1625
1602
  onClose: () => m(!1),
1626
1603
  title: "Delete Run",
1627
1604
  actions: /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1628
1605
  /* @__PURE__ */ e.jsx(D, { variant: "secondary", onClick: () => m(!1), children: "Cancel" }),
1629
- /* @__PURE__ */ e.jsxs(D, { variant: "danger", onClick: qe, disabled: k, children: [
1630
- k && /* @__PURE__ */ e.jsx(q, {}),
1606
+ /* @__PURE__ */ e.jsxs(D, { variant: "danger", onClick: Ie, disabled: k, children: [
1607
+ k && /* @__PURE__ */ e.jsx(I, {}),
1631
1608
  "Delete"
1632
1609
  ] })
1633
1610
  ] }),
@@ -1649,22 +1626,22 @@ function Ir() {
1649
1626
  )
1650
1627
  ] });
1651
1628
  }
1652
- function Ur() {
1629
+ function Ir() {
1653
1630
  const { currentWorkspace: r } = K(), { data: t, loading: n } = Le();
1654
1631
  return /* @__PURE__ */ e.jsxs(V, { children: [
1655
1632
  /* @__PURE__ */ e.jsx(Ee, { title: "Projects" }),
1656
- /* @__PURE__ */ e.jsx(b, { children: n ? /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-8", children: /* @__PURE__ */ e.jsx(q, {}) }) : /* @__PURE__ */ e.jsx(Fr, { projects: t ?? [], currentWorkspace: r }) })
1633
+ /* @__PURE__ */ e.jsx(b, { children: n ? /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-8", children: /* @__PURE__ */ e.jsx(I, {}) }) : /* @__PURE__ */ e.jsx(Dr, { projects: t ?? [], currentWorkspace: r }) })
1657
1634
  ] });
1658
1635
  }
1659
- function Mr() {
1660
- const [r, t] = $e(), { data: n } = Le(), [a, u] = S(r.get("project") || ""), { data: o, loading: d, refetch: i } = wr({ project: a || void 0 }), f = _e((h) => {
1636
+ function qr() {
1637
+ const [r, t] = $e(), { data: n } = Le(), [a, u] = T(r.get("project") || ""), { data: o, loading: d, refetch: i } = Nr({ project: a || void 0 }), f = _e((h) => {
1661
1638
  u(h);
1662
1639
  const m = new URLSearchParams(r);
1663
1640
  h ? m.set("project", h) : m.delete("project"), t(m, { replace: !0 });
1664
1641
  }, [r, t]);
1665
1642
  return /* @__PURE__ */ e.jsxs(V, { children: [
1666
1643
  /* @__PURE__ */ e.jsx(Ee, { title: "Run Groups" }),
1667
- /* @__PURE__ */ e.jsx(b, { className: "mb-4", children: /* @__PURE__ */ e.jsxs($s, { children: [
1644
+ /* @__PURE__ */ e.jsx(b, { className: "mb-4", children: /* @__PURE__ */ e.jsxs(Os, { children: [
1668
1645
  /* @__PURE__ */ e.jsxs(ee, { children: [
1669
1646
  /* @__PURE__ */ e.jsx(ie, { htmlFor: "project", children: "Project" }),
1670
1647
  /* @__PURE__ */ e.jsxs(
@@ -1682,14 +1659,14 @@ function Mr() {
1682
1659
  ] }),
1683
1660
  /* @__PURE__ */ e.jsxs(ee, { className: "flex items-end gap-2", children: [
1684
1661
  /* @__PURE__ */ e.jsx(D, { variant: "primary", onClick: () => i(), children: "Filter" }),
1685
- d && /* @__PURE__ */ e.jsx(q, {})
1662
+ d && /* @__PURE__ */ e.jsx(I, {})
1686
1663
  ] })
1687
1664
  ] }) }),
1688
- /* @__PURE__ */ e.jsx(b, { children: d && !o ? /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-8", children: /* @__PURE__ */ e.jsx(q, {}) }) : /* @__PURE__ */ e.jsx(Or, { groups: o ?? [] }) })
1665
+ /* @__PURE__ */ e.jsx(b, { children: d && !o ? /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-8", children: /* @__PURE__ */ e.jsx(I, {}) }) : /* @__PURE__ */ e.jsx(Ar, { groups: o ?? [] }) })
1689
1666
  ] });
1690
1667
  }
1691
- function Wr() {
1692
- const { groupId: r } = es(), { api: t } = K(), { data: n, loading: a, error: u, refetch: o } = Rr(r), [d, i] = S(null), f = Re((m) => t.deleteRun(m));
1668
+ function Ur() {
1669
+ const { groupId: r } = Qe(), { api: t } = K(), { data: n, loading: a, error: u, refetch: o } = _r(r), [d, i] = T(null), f = Re((m) => t.deleteRun(m));
1693
1670
  je(() => {
1694
1671
  if (d) {
1695
1672
  const m = setTimeout(() => i(null), 3e3);
@@ -1703,7 +1680,7 @@ function Wr() {
1703
1680
  i({ message: "Failed to delete run", variant: "error" });
1704
1681
  }
1705
1682
  };
1706
- return a ? /* @__PURE__ */ e.jsx(V, { children: /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e.jsx(q, {}) }) }) : u || !n ? /* @__PURE__ */ e.jsx(V, { children: /* @__PURE__ */ e.jsx(b, { children: /* @__PURE__ */ e.jsx(he, { message: "Group not found", hint: u?.message }) }) }) : /* @__PURE__ */ e.jsxs(V, { children: [
1683
+ return a ? /* @__PURE__ */ e.jsx(V, { children: /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e.jsx(I, {}) }) }) : u || !n ? /* @__PURE__ */ e.jsx(V, { children: /* @__PURE__ */ e.jsx(b, { children: /* @__PURE__ */ e.jsx(he, { message: "Group not found", hint: u?.message }) }) }) : /* @__PURE__ */ e.jsxs(V, { children: [
1707
1684
  /* @__PURE__ */ e.jsx(
1708
1685
  Ee,
1709
1686
  {
@@ -1721,7 +1698,7 @@ function Wr() {
1721
1698
  ")"
1722
1699
  ] }) }),
1723
1700
  /* @__PURE__ */ e.jsx(
1724
- ns,
1701
+ rs,
1725
1702
  {
1726
1703
  runs: n.runs,
1727
1704
  onDelete: h,
@@ -1740,16 +1717,16 @@ function Wr() {
1740
1717
  )
1741
1718
  ] });
1742
1719
  }
1743
- function Gr({ className: r = "" }) {
1720
+ function Mr({ className: r = "" }) {
1744
1721
  return /* @__PURE__ */ e.jsx("svg", { className: r, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ e.jsx("polyline", { points: "20 6 9 17 4 12" }) });
1745
1722
  }
1746
- function Vr({ className: r = "" }) {
1723
+ function Wr({ className: r = "" }) {
1747
1724
  return /* @__PURE__ */ e.jsxs("svg", { className: r, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [
1748
1725
  /* @__PURE__ */ e.jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
1749
1726
  /* @__PURE__ */ e.jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
1750
1727
  ] });
1751
1728
  }
1752
- function zr({ className: r = "" }) {
1729
+ function Gr({ className: r = "" }) {
1753
1730
  return /* @__PURE__ */ e.jsxs("svg", { className: r, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
1754
1731
  /* @__PURE__ */ e.jsx("path", { d: "M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z" }),
1755
1732
  /* @__PURE__ */ e.jsx("line", { x1: "12", y1: "9", x2: "12", y2: "13" }),
@@ -1763,25 +1740,25 @@ function Ke({ className: r = "" }) {
1763
1740
  /* @__PURE__ */ e.jsx("line", { x1: "12", y1: "8", x2: "12.01", y2: "8" })
1764
1741
  ] });
1765
1742
  }
1766
- function ye({ match: r }) {
1743
+ function Ne({ match: r }) {
1767
1744
  return r ? /* @__PURE__ */ e.jsxs("span", { className: "diff-match inline-flex items-center gap-1.5", children: [
1768
- /* @__PURE__ */ e.jsx(Gr, { className: "flex-shrink-0" }),
1745
+ /* @__PURE__ */ e.jsx(Mr, { className: "flex-shrink-0" }),
1769
1746
  /* @__PURE__ */ e.jsx("span", { className: "font-medium", children: "Match" })
1770
1747
  ] }) : /* @__PURE__ */ e.jsxs("span", { className: "diff-mismatch inline-flex items-center gap-1.5", children: [
1771
- /* @__PURE__ */ e.jsx(Vr, { className: "flex-shrink-0" }),
1748
+ /* @__PURE__ */ e.jsx(Wr, { className: "flex-shrink-0" }),
1772
1749
  /* @__PURE__ */ e.jsx("span", { className: "font-medium", children: "Different" })
1773
1750
  ] });
1774
1751
  }
1775
- function Yr({ warnings: r }) {
1752
+ function Vr({ warnings: r }) {
1776
1753
  return !r || r.length === 0 ? null : /* @__PURE__ */ e.jsx("div", { className: "alert alert-warning mb-4", children: /* @__PURE__ */ e.jsxs("div", { className: "flex gap-3", children: [
1777
- /* @__PURE__ */ e.jsx(zr, { className: "flex-shrink-0 mt-0.5" }),
1754
+ /* @__PURE__ */ e.jsx(Gr, { className: "flex-shrink-0 mt-0.5" }),
1778
1755
  /* @__PURE__ */ e.jsxs("div", { className: "flex-1", children: [
1779
1756
  /* @__PURE__ */ e.jsx("p", { className: "font-semibold mb-1", children: r.length === 1 ? "Warning" : `${r.length} Warnings` }),
1780
1757
  /* @__PURE__ */ e.jsx("ul", { className: "space-y-1", children: r.map((t, n) => /* @__PURE__ */ e.jsx("li", { className: "text-sm", children: t }, n)) })
1781
1758
  ] })
1782
1759
  ] }) });
1783
1760
  }
1784
- function Ts({
1761
+ function Cs({
1785
1762
  label: r,
1786
1763
  run: t,
1787
1764
  variant: n
@@ -1795,7 +1772,7 @@ function Ts({
1795
1772
  /* @__PURE__ */ e.jsxs("p", { className: "text-sm mt-1 text-muted", children: [
1796
1773
  t.project,
1797
1774
  " · ",
1798
- ss(t.created_at)
1775
+ Ze(t.created_at)
1799
1776
  ] })
1800
1777
  ] })
1801
1778
  ] });
@@ -1809,7 +1786,7 @@ function ae({
1809
1786
  t && /* @__PURE__ */ e.jsx(Y, { variant: t.variant, children: t.label })
1810
1787
  ] }) }) });
1811
1788
  }
1812
- function Kr({
1789
+ function zr({
1813
1790
  tvd: r,
1814
1791
  noiseContext: t
1815
1792
  }) {
@@ -1835,8 +1812,8 @@ function Kr({
1835
1812
  "×) — results show meaningful differences"
1836
1813
  ] }) : null;
1837
1814
  }
1838
- function Hr() {
1839
- const [r, t] = $e(), { data: n } = As({ limit: 100 }), a = n?.runs ?? [], [u, o] = S(r.get("a") || ""), [d, i] = S(r.get("b") || ""), [f, h] = S(""), m = (p) => {
1815
+ function Yr() {
1816
+ const [r, t] = $e(), { data: n } = Ds({ limit: 100 }), a = n?.runs ?? [], [u, o] = T(r.get("a") || ""), [d, i] = T(r.get("b") || ""), [f, h] = T(""), m = (p) => {
1840
1817
  if (p.preventDefault(), !u || !d) {
1841
1818
  h("Please select both runs to compare");
1842
1819
  return;
@@ -1919,21 +1896,21 @@ function Hr() {
1919
1896
  ] })
1920
1897
  ] });
1921
1898
  }
1922
- function Jr({ runIdA: r, runIdB: t }) {
1923
- const { data: n, loading: a, error: u } = Er(r, t);
1899
+ function Kr({ runIdA: r, runIdB: t }) {
1900
+ const { data: n, loading: a, error: u } = wr(r, t);
1924
1901
  if (a)
1925
1902
  return /* @__PURE__ */ e.jsx(b, { children: /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col items-center justify-center py-12 gap-3", children: [
1926
- /* @__PURE__ */ e.jsx(q, {}),
1903
+ /* @__PURE__ */ e.jsx(I, {}),
1927
1904
  /* @__PURE__ */ e.jsx("p", { className: "text-sm text-muted", children: "Comparing runs..." })
1928
1905
  ] }) });
1929
1906
  if (u || !n)
1930
1907
  return /* @__PURE__ */ e.jsx(b, { children: /* @__PURE__ */ e.jsx(he, { message: "Failed to load diff", hint: u?.message }) });
1931
1908
  const { run_a: o, run_b: d, report: i } = n, f = i.device_drift?.significant_drift ? { variant: "warning", label: "Drift Detected" } : i.device_drift?.has_calibration_data ? { variant: "success", label: "Stable" } : { variant: "gray", label: "No Data" };
1932
1909
  return /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1933
- /* @__PURE__ */ e.jsx(Yr, { warnings: i.warnings || [] }),
1910
+ /* @__PURE__ */ e.jsx(Vr, { warnings: i.warnings || [] }),
1934
1911
  /* @__PURE__ */ e.jsx(b, { className: "mb-4", children: /* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [
1935
- /* @__PURE__ */ e.jsx(Ts, { label: "Run A (Baseline)", run: o, variant: "a" }),
1936
- /* @__PURE__ */ e.jsx(Ts, { label: "Run B (Candidate)", run: d, variant: "b" })
1912
+ /* @__PURE__ */ e.jsx(Cs, { label: "Run A (Baseline)", run: o, variant: "a" }),
1913
+ /* @__PURE__ */ e.jsx(Cs, { label: "Run B (Candidate)", run: d, variant: "b" })
1937
1914
  ] }) }),
1938
1915
  /* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4 mb-4", children: [
1939
1916
  /* @__PURE__ */ e.jsxs(b, { children: [
@@ -1941,11 +1918,11 @@ function Jr({ runIdA: r, runIdB: t }) {
1941
1918
  /* @__PURE__ */ e.jsx(L, { children: /* @__PURE__ */ e.jsxs(B, { children: [
1942
1919
  /* @__PURE__ */ e.jsxs(j, { children: [
1943
1920
  /* @__PURE__ */ e.jsx(c, { children: "Project" }),
1944
- /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(ye, { match: i.metadata.project_match }) })
1921
+ /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(Ne, { match: i.metadata.project_match }) })
1945
1922
  ] }),
1946
1923
  /* @__PURE__ */ e.jsxs(j, { children: [
1947
1924
  /* @__PURE__ */ e.jsx(c, { children: "Backend" }),
1948
- /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(ye, { match: i.metadata.backend_match }) })
1925
+ /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(Ne, { match: i.metadata.backend_match }) })
1949
1926
  ] }),
1950
1927
  !i.metadata.project_match && /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1951
1928
  /* @__PURE__ */ e.jsxs(j, { children: [
@@ -1982,7 +1959,7 @@ function Jr({ runIdA: r, runIdB: t }) {
1982
1959
  ] }),
1983
1960
  /* @__PURE__ */ e.jsxs(j, { children: [
1984
1961
  /* @__PURE__ */ e.jsx(c, { children: "Match" }),
1985
- /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(ye, { match: i.fingerprints.a === i.fingerprints.b }) })
1962
+ /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(Ne, { match: i.fingerprints.a === i.fingerprints.b }) })
1986
1963
  ] })
1987
1964
  ] }) })
1988
1965
  ] })
@@ -2002,11 +1979,11 @@ function Jr({ runIdA: r, runIdB: t }) {
2002
1979
  /* @__PURE__ */ e.jsx(L, { children: /* @__PURE__ */ e.jsxs(B, { children: [
2003
1980
  /* @__PURE__ */ e.jsxs(j, { children: [
2004
1981
  /* @__PURE__ */ e.jsx(c, { children: "Exact Match" }),
2005
- /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(ye, { match: i.program.exact_match }) })
1982
+ /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(Ne, { match: i.program.exact_match }) })
2006
1983
  ] }),
2007
1984
  /* @__PURE__ */ e.jsxs(j, { children: [
2008
1985
  /* @__PURE__ */ e.jsx(c, { children: "Structural Match" }),
2009
- /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(ye, { match: i.program.structural_match }) })
1986
+ /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(Ne, { match: i.program.structural_match }) })
2010
1987
  ] })
2011
1988
  ] }) })
2012
1989
  ] }),
@@ -2019,9 +1996,9 @@ function Jr({ runIdA: r, runIdB: t }) {
2019
1996
  /* @__PURE__ */ e.jsx(ae, { badge: { variant: i.params.match ? "success" : "warning", label: i.params.match ? "Match" : "Different" }, children: "Parameters" }),
2020
1997
  i.params.match ? /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "All parameters match" }) : /* @__PURE__ */ e.jsx(e.Fragment, { children: i.params.changed && Object.keys(i.params.changed).length > 0 && /* @__PURE__ */ e.jsxs(L, { children: [
2021
1998
  /* @__PURE__ */ e.jsx(re, { children: /* @__PURE__ */ e.jsxs(j, { children: [
2022
- /* @__PURE__ */ e.jsx(y, { children: "Parameter" }),
2023
- /* @__PURE__ */ e.jsx(y, { children: "Run A" }),
2024
- /* @__PURE__ */ e.jsx(y, { children: "Run B" })
1999
+ /* @__PURE__ */ e.jsx(N, { children: "Parameter" }),
2000
+ /* @__PURE__ */ e.jsx(N, { children: "Run A" }),
2001
+ /* @__PURE__ */ e.jsx(N, { children: "Run B" })
2025
2002
  ] }) }),
2026
2003
  /* @__PURE__ */ e.jsx(B, { children: Object.entries(i.params.changed).map(([h, m]) => /* @__PURE__ */ e.jsxs(j, { children: [
2027
2004
  /* @__PURE__ */ e.jsx(c, { children: h }),
@@ -2034,9 +2011,9 @@ function Jr({ runIdA: r, runIdB: t }) {
2034
2011
  /* @__PURE__ */ e.jsx(ae, { badge: { variant: i.metrics.match ? "success" : "warning", label: i.metrics.match ? "Match" : "Different" }, children: "Metrics" }),
2035
2012
  i.metrics.match ? /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "All metrics match" }) : /* @__PURE__ */ e.jsx(e.Fragment, { children: i.metrics.changed && Object.keys(i.metrics.changed).length > 0 && /* @__PURE__ */ e.jsxs(L, { children: [
2036
2013
  /* @__PURE__ */ e.jsx(re, { children: /* @__PURE__ */ e.jsxs(j, { children: [
2037
- /* @__PURE__ */ e.jsx(y, { children: "Metric" }),
2038
- /* @__PURE__ */ e.jsx(y, { children: "Run A" }),
2039
- /* @__PURE__ */ e.jsx(y, { children: "Run B" })
2014
+ /* @__PURE__ */ e.jsx(N, { children: "Metric" }),
2015
+ /* @__PURE__ */ e.jsx(N, { children: "Run A" }),
2016
+ /* @__PURE__ */ e.jsx(N, { children: "Run B" })
2040
2017
  ] }) }),
2041
2018
  /* @__PURE__ */ e.jsx(B, { children: Object.entries(i.metrics.changed).map(([h, m]) => /* @__PURE__ */ e.jsxs(j, { children: [
2042
2019
  /* @__PURE__ */ e.jsx(c, { children: h }),
@@ -2052,10 +2029,10 @@ function Jr({ runIdA: r, runIdB: t }) {
2052
2029
  /* @__PURE__ */ e.jsx("h4", { className: "text-sm font-medium mb-2 text-muted", children: "Changed Properties" }),
2053
2030
  /* @__PURE__ */ e.jsxs(L, { children: [
2054
2031
  /* @__PURE__ */ e.jsx(re, { children: /* @__PURE__ */ e.jsxs(j, { children: [
2055
- /* @__PURE__ */ e.jsx(y, { children: "Property" }),
2056
- /* @__PURE__ */ e.jsx(y, { children: "Run A" }),
2057
- /* @__PURE__ */ e.jsx(y, { children: "Run B" }),
2058
- /* @__PURE__ */ e.jsx(y, { children: "Delta" })
2032
+ /* @__PURE__ */ e.jsx(N, { children: "Property" }),
2033
+ /* @__PURE__ */ e.jsx(N, { children: "Run A" }),
2034
+ /* @__PURE__ */ e.jsx(N, { children: "Run B" }),
2035
+ /* @__PURE__ */ e.jsx(N, { children: "Delta" })
2059
2036
  ] }) }),
2060
2037
  /* @__PURE__ */ e.jsx(B, { children: Object.entries(i.circuit_diff.changed).map(([h, m]) => /* @__PURE__ */ e.jsxs(j, { children: [
2061
2038
  /* @__PURE__ */ e.jsx(c, { children: m.label || h }),
@@ -2116,22 +2093,22 @@ function Jr({ runIdA: r, runIdB: t }) {
2116
2093
  /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: i.noise_context.p_value.toFixed(4) })
2117
2094
  ] })
2118
2095
  ] }) }),
2119
- /* @__PURE__ */ e.jsx(Kr, { tvd: i.tvd, noiseContext: i.noise_context })
2096
+ /* @__PURE__ */ e.jsx(zr, { tvd: i.tvd, noiseContext: i.noise_context })
2120
2097
  ] })
2121
2098
  ] });
2122
2099
  }
2123
- function Xr() {
2100
+ function Hr() {
2124
2101
  const [r] = $e(), t = r.get("a"), n = r.get("b"), a = t && n;
2125
2102
  return /* @__PURE__ */ e.jsxs(V, { children: [
2126
2103
  /* @__PURE__ */ e.jsx("div", { className: "page-header", children: /* @__PURE__ */ e.jsxs("div", { children: [
2127
2104
  /* @__PURE__ */ e.jsx("h1", { className: "page-title", children: "Compare Runs" }),
2128
2105
  a && /* @__PURE__ */ e.jsx("p", { className: "text-sm mt-1 text-muted", children: /* @__PURE__ */ e.jsx(z, { to: "/diff", children: "← Select different runs" }) })
2129
2106
  ] }) }),
2130
- a ? /* @__PURE__ */ e.jsx(Jr, { runIdA: t, runIdB: n }) : /* @__PURE__ */ e.jsx(Hr, {})
2107
+ a ? /* @__PURE__ */ e.jsx(Kr, { runIdA: t, runIdB: n }) : /* @__PURE__ */ e.jsx(Yr, {})
2131
2108
  ] });
2132
2109
  }
2133
- function Qr() {
2134
- const { api: r } = K(), [t, n] = S(""), [a, u] = S(null), [o, d] = S(!1), [i, f] = S(""), { mutate: h, loading: m } = Re(async () => {
2110
+ function Jr() {
2111
+ const { api: r } = K(), [t, n] = T(""), [a, u] = T(null), [o, d] = T(!1), [i, f] = T(""), { mutate: h, loading: m } = Re(async () => {
2135
2112
  const _ = await r.listRuns({ q: t, limit: 100 });
2136
2113
  return u(_.runs), d(!0), _;
2137
2114
  }), p = (_) => {
@@ -2147,7 +2124,7 @@ function Qr() {
2147
2124
  /* @__PURE__ */ e.jsxs(ee, { children: [
2148
2125
  /* @__PURE__ */ e.jsx(ie, { htmlFor: "q", children: "Query" }),
2149
2126
  /* @__PURE__ */ e.jsx(
2150
- ts,
2127
+ ss,
2151
2128
  {
2152
2129
  id: "q",
2153
2130
  type: "text",
@@ -2163,20 +2140,20 @@ function Qr() {
2163
2140
  i && /* @__PURE__ */ e.jsx("p", { className: "text-sm text-[#DC4A4A] mb-3", children: i }),
2164
2141
  /* @__PURE__ */ e.jsxs("div", { className: "flex gap-2 items-center", children: [
2165
2142
  /* @__PURE__ */ e.jsxs(D, { type: "submit", variant: "primary", disabled: m, children: [
2166
- m && /* @__PURE__ */ e.jsx(q, {}),
2143
+ m && /* @__PURE__ */ e.jsx(I, {}),
2167
2144
  "Search"
2168
2145
  ] }),
2169
2146
  m && /* @__PURE__ */ e.jsx("span", { className: "text-muted text-sm", children: "Searching..." })
2170
2147
  ] })
2171
2148
  ] }) }),
2172
- o && a && /* @__PURE__ */ e.jsx(b, { className: "mb-4", children: a.length > 0 ? /* @__PURE__ */ e.jsx(ns, { runs: a }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted text-center py-8", children: "No runs match your query" }) }),
2149
+ o && a && /* @__PURE__ */ e.jsx(b, { className: "mb-4", children: a.length > 0 ? /* @__PURE__ */ e.jsx(rs, { runs: a }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted text-center py-8", children: "No runs match your query" }) }),
2173
2150
  /* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [
2174
2151
  /* @__PURE__ */ e.jsxs(b, { children: [
2175
2152
  /* @__PURE__ */ e.jsx(W, { children: /* @__PURE__ */ e.jsx(G, { children: "Query Syntax" }) }),
2176
2153
  /* @__PURE__ */ e.jsxs(L, { children: [
2177
2154
  /* @__PURE__ */ e.jsx(re, { children: /* @__PURE__ */ e.jsxs(j, { children: [
2178
- /* @__PURE__ */ e.jsx(y, { children: "Field" }),
2179
- /* @__PURE__ */ e.jsx(y, { children: "Description" })
2155
+ /* @__PURE__ */ e.jsx(N, { children: "Field" }),
2156
+ /* @__PURE__ */ e.jsx(N, { children: "Description" })
2180
2157
  ] }) }),
2181
2158
  /* @__PURE__ */ e.jsxs(B, { children: [
2182
2159
  /* @__PURE__ */ e.jsxs(j, { children: [
@@ -2210,8 +2187,8 @@ function Qr() {
2210
2187
  /* @__PURE__ */ e.jsx(W, { children: /* @__PURE__ */ e.jsx(G, { children: "Operators" }) }),
2211
2188
  /* @__PURE__ */ e.jsxs(L, { children: [
2212
2189
  /* @__PURE__ */ e.jsx(re, { children: /* @__PURE__ */ e.jsxs(j, { children: [
2213
- /* @__PURE__ */ e.jsx(y, { children: "Operator" }),
2214
- /* @__PURE__ */ e.jsx(y, { children: "Description" })
2190
+ /* @__PURE__ */ e.jsx(N, { children: "Operator" }),
2191
+ /* @__PURE__ */ e.jsx(N, { children: "Description" })
2215
2192
  ] }) }),
2216
2193
  /* @__PURE__ */ e.jsxs(B, { children: [
2217
2194
  /* @__PURE__ */ e.jsxs(j, { children: [
@@ -2277,17 +2254,17 @@ function Qr() {
2277
2254
  ] })
2278
2255
  ] });
2279
2256
  }
2280
- function Zr() {
2281
- const { runId: r, index: t } = es(), n = parseInt(t, 10), { api: a } = K(), { data: u } = Fs(r), { data: o, loading: d, error: i } = Cr(r, n), [f, h] = S(null);
2257
+ function Xr() {
2258
+ const { runId: r, index: t } = Qe(), n = parseInt(t, 10), { api: a } = K(), { data: u } = As(r), { data: o, loading: d, error: i } = Rr(r, n), [f, h] = T(null);
2282
2259
  je(() => {
2283
2260
  if (f) {
2284
- const T = setTimeout(() => h(null), 3e3);
2285
- return () => clearTimeout(T);
2261
+ const S = setTimeout(() => h(null), 3e3);
2262
+ return () => clearTimeout(S);
2286
2263
  }
2287
2264
  }, [f]);
2288
2265
  const m = async () => {
2289
2266
  try {
2290
- const T = a.getArtifactDownloadUrl(r, n), se = await fetch(T);
2267
+ const S = a.getArtifactDownloadUrl(r, n), se = await fetch(S);
2291
2268
  if (!se.ok) throw new Error("Download failed");
2292
2269
  const te = await se.blob(), J = document.createElement("a");
2293
2270
  J.href = URL.createObjectURL(te), J.download = p?.kind || `artifact-${n}`, J.click(), URL.revokeObjectURL(J.href), h({ message: "Download started", variant: "success" });
@@ -2296,7 +2273,7 @@ function Zr() {
2296
2273
  }
2297
2274
  };
2298
2275
  if (d)
2299
- return /* @__PURE__ */ e.jsx(V, { children: /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e.jsx(q, {}) }) });
2276
+ return /* @__PURE__ */ e.jsx(V, { children: /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e.jsx(I, {}) }) });
2300
2277
  if (i || !o)
2301
2278
  return /* @__PURE__ */ e.jsx(V, { children: /* @__PURE__ */ e.jsx(b, { children: /* @__PURE__ */ e.jsx(he, { message: "Artifact not found", hint: i?.message }) }) });
2302
2279
  const { artifact: p, size: _, content: U, content_json: w, preview_available: H, error: k } = o, O = 10 * 1024 * 1024;
@@ -2330,7 +2307,7 @@ function Zr() {
2330
2307
  k
2331
2308
  ] }),
2332
2309
  /* @__PURE__ */ e.jsx("p", { className: "text-muted mt-2", children: /* @__PURE__ */ e.jsx(D, { variant: "primary", onClick: m, children: "Download to view" }) })
2333
- ] }) : H ? w ? /* @__PURE__ */ e.jsx("pre", { children: Tr(w) }) : U ? /* @__PURE__ */ e.jsx("pre", { children: U }) : /* @__PURE__ */ e.jsxs("p", { className: "text-muted", children: [
2310
+ ] }) : H ? w ? /* @__PURE__ */ e.jsx("pre", { children: Cr(w) }) : U ? /* @__PURE__ */ e.jsx("pre", { children: U }) : /* @__PURE__ */ e.jsxs("p", { className: "text-muted", children: [
2334
2311
  "Binary content (",
2335
2312
  Oe(_),
2336
2313
  ") — download to view"
@@ -2358,91 +2335,88 @@ function Zr() {
2358
2335
  )
2359
2336
  ] });
2360
2337
  }
2361
- const et = [
2362
- { path: "/", element: /* @__PURE__ */ e.jsx(mr, { to: "/runs", replace: !0 }) },
2363
- { path: "/runs", element: /* @__PURE__ */ e.jsx(Ar, {}) },
2364
- { path: "/runs/:runId", element: /* @__PURE__ */ e.jsx(Ir, {}) },
2365
- { path: "/runs/:runId/artifacts/:index", element: /* @__PURE__ */ e.jsx(Zr, {}) },
2366
- { path: "/projects", element: /* @__PURE__ */ e.jsx(Ur, {}) },
2367
- { path: "/groups", element: /* @__PURE__ */ e.jsx(Mr, {}) },
2368
- { path: "/groups/:groupId", element: /* @__PURE__ */ e.jsx(Wr, {}) },
2369
- { path: "/diff", element: /* @__PURE__ */ e.jsx(Xr, {}) },
2370
- { path: "/search", element: /* @__PURE__ */ e.jsx(Qr, {}) }
2338
+ const Qr = [
2339
+ { path: "/", element: /* @__PURE__ */ e.jsx(xr, { to: "/runs", replace: !0 }) },
2340
+ { path: "/runs", element: /* @__PURE__ */ e.jsx(Tr, {}) },
2341
+ { path: "/runs/:runId", element: /* @__PURE__ */ e.jsx(Br, {}) },
2342
+ { path: "/runs/:runId/artifacts/:index", element: /* @__PURE__ */ e.jsx(Xr, {}) },
2343
+ { path: "/projects", element: /* @__PURE__ */ e.jsx(Ir, {}) },
2344
+ { path: "/groups", element: /* @__PURE__ */ e.jsx(qr, {}) },
2345
+ { path: "/groups/:groupId", element: /* @__PURE__ */ e.jsx(Ur, {}) },
2346
+ { path: "/diff", element: /* @__PURE__ */ e.jsx(Hr, {}) },
2347
+ { path: "/search", element: /* @__PURE__ */ e.jsx(Jr, {}) }
2371
2348
  ];
2372
- function Bs(r = []) {
2373
- return fr([...et, ...r]);
2349
+ function Ls(r = []) {
2350
+ return mr([...Qr, ...r]);
2374
2351
  }
2375
- const st = Bs();
2376
- function ot({ additionalRoutes: r, ...t }) {
2377
- const n = r?.length ? Bs(r) : st;
2378
- return /* @__PURE__ */ e.jsx(_r, { ...t, children: /* @__PURE__ */ e.jsx(jr, { router: n }) });
2352
+ const Zr = Ls();
2353
+ function at({ additionalRoutes: r, ...t }) {
2354
+ const n = r?.length ? Ls(r) : Zr;
2355
+ return /* @__PURE__ */ e.jsx(yr, { ...t, children: /* @__PURE__ */ e.jsx(fr, { router: n }) });
2379
2356
  }
2380
2357
  export {
2381
- lt as Alert,
2382
- br as ApiClient,
2358
+ nt as Alert,
2359
+ vr as ApiClient,
2383
2360
  we as ApiError,
2384
- ot as App,
2385
- _r as AppProvider,
2386
- Zr as ArtifactPage,
2361
+ at as App,
2362
+ yr as AppProvider,
2363
+ Xr as ArtifactPage,
2387
2364
  Y as Badge,
2388
2365
  D as Button,
2389
2366
  b as Card,
2390
2367
  W as CardHeader,
2391
2368
  G as CardTitle,
2392
- Xr as DiffPage,
2369
+ Hr as DiffPage,
2393
2370
  he as EmptyState,
2394
2371
  ee as FormGroup,
2395
- $s as FormRow,
2396
- Wr as GroupDetailPage,
2397
- Mr as GroupsPage,
2398
- Or as GroupsTable,
2399
- ts as Input,
2372
+ Os as FormRow,
2373
+ Ur as GroupDetailPage,
2374
+ qr as GroupsPage,
2375
+ Ar as GroupsTable,
2376
+ ss as Input,
2400
2377
  Je as KVList,
2401
2378
  ie as Label,
2402
2379
  V as Layout,
2403
- ct as LayoutConfigProvider,
2404
- rs as Modal,
2380
+ tt as LayoutConfigProvider,
2381
+ es as Modal,
2405
2382
  Ee as PageHeader,
2406
- Ur as ProjectsPage,
2407
- Fr as ProjectsTable,
2408
- Ir as RunDetailPage,
2409
- Ar as RunsPage,
2410
- ns as RunsTable,
2411
- Qr as SearchPage,
2383
+ Ir as ProjectsPage,
2384
+ Dr as ProjectsTable,
2385
+ Br as RunDetailPage,
2386
+ Tr as RunsPage,
2387
+ rs as RunsTable,
2388
+ Jr as SearchPage,
2412
2389
  de as Select,
2413
- q as Spinner,
2414
- Ls as StatusBadge,
2390
+ I as Spinner,
2391
+ $s as StatusBadge,
2415
2392
  L as Table,
2416
2393
  B as TableBody,
2417
2394
  c as TableCell,
2418
2395
  re as TableHead,
2419
- y as TableHeader,
2396
+ N as TableHeader,
2420
2397
  j as TableRow,
2421
- nt as ThemeProvider,
2422
2398
  Ce as Toast,
2423
- Nr as api,
2424
- it as buildUrl,
2399
+ br as api,
2400
+ rt as buildUrl,
2425
2401
  $ as cn,
2426
- et as coreRoutes,
2427
- Bs as createRouter,
2402
+ Qr as coreRoutes,
2403
+ Ls as createRouter,
2428
2404
  Oe as formatBytes,
2429
- kr as formatNumber,
2430
- Tr as jsonPretty,
2431
- st as router,
2405
+ Er as formatNumber,
2406
+ Cr as jsonPretty,
2407
+ Zr as router,
2432
2408
  He as shortDigest,
2433
2409
  Q as shortId,
2434
- ss as timeAgo,
2435
- Pr as truncate,
2410
+ Ze as timeAgo,
2411
+ kr as truncate,
2436
2412
  K as useApp,
2437
- Cr as useArtifact,
2438
- Er as useDiff,
2439
- Rr as useGroup,
2440
- wr as useGroups,
2441
- Dr as useLayoutConfig,
2413
+ Rr as useArtifact,
2414
+ wr as useDiff,
2415
+ _r as useGroup,
2416
+ Nr as useGroups,
2417
+ Pr as useLayoutConfig,
2442
2418
  Re as useMutation,
2443
2419
  Le as useProjects,
2444
- Fs as useRun,
2445
- As as useRuns,
2446
- yr as useTheme,
2447
- at as useThemeOptional
2420
+ As as useRun,
2421
+ Ds as useRuns
2448
2422
  };