@devqubit/ui 0.1.10-beta-1 → 0.1.10

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,106 +1,106 @@
1
- import Rr, { useState as O, useEffect as xe, useContext as wr, useCallback as be, createContext as Er, useRef as br, forwardRef as He } from "react";
2
- import { useLocation as ls, Link as q, useSearchParams as Oe, useParams as Xe, useNavigate as os, Navigate as ds, createBrowserRouter as us, RouterProvider as hs } from "react-router-dom";
3
- var ke = { exports: {} }, pe = {};
4
- var Nr;
5
- function xs() {
6
- if (Nr) return pe;
7
- Nr = 1;
8
- var s = Rr, n = /* @__PURE__ */ Symbol.for("react.element"), t = /* @__PURE__ */ Symbol.for("react.fragment"), i = Object.prototype.hasOwnProperty, d = s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, o = { key: !0, ref: !0, __self: !0, __source: !0 };
9
- function m(a, u, x) {
10
- var g, f = {}, R = null, K = null;
11
- x !== void 0 && (R = "" + x), u.key !== void 0 && (R = "" + u.key), u.ref !== void 0 && (K = u.ref);
12
- for (g in u) i.call(u, g) && !o.hasOwnProperty(g) && (f[g] = u[g]);
13
- if (a && a.defaultProps) for (g in u = a.defaultProps, u) f[g] === void 0 && (f[g] = u[g]);
14
- return { $$typeof: n, type: a, key: R, ref: K, props: f, _owner: d.current };
1
+ import yr, { useState as U, useEffect as We, useContext as Rr, useCallback as me, createContext as wr, useRef as vr, forwardRef as Ve } from "react";
2
+ import { useLocation as is, Link as M, useSearchParams as Ce, useParams as Ye, useNavigate as cs, Navigate as ls, createBrowserRouter as os, RouterProvider as ds } from "react-router-dom";
3
+ var Se = { exports: {} }, ue = {};
4
+ var br;
5
+ function us() {
6
+ if (br) return ue;
7
+ br = 1;
8
+ var s = yr, n = /* @__PURE__ */ Symbol.for("react.element"), t = /* @__PURE__ */ Symbol.for("react.fragment"), a = Object.prototype.hasOwnProperty, d = s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, h = { key: !0, ref: !0, __self: !0, __source: !0 };
9
+ function f(i, x, o) {
10
+ var p, $ = {}, _ = null, G = null;
11
+ o !== void 0 && (_ = "" + o), x.key !== void 0 && (_ = "" + x.key), x.ref !== void 0 && (G = x.ref);
12
+ for (p in x) a.call(x, p) && !h.hasOwnProperty(p) && ($[p] = x[p]);
13
+ if (i && i.defaultProps) for (p in x = i.defaultProps, x) $[p] === void 0 && ($[p] = x[p]);
14
+ return { $$typeof: n, type: i, key: _, ref: G, props: $, _owner: d.current };
15
15
  }
16
- return pe.Fragment = t, pe.jsx = m, pe.jsxs = m, pe;
17
- }
18
- var ge = {};
19
- var yr;
20
- function ms() {
21
- return yr || (yr = 1, process.env.NODE_ENV !== "production" && (function() {
22
- var s = Rr, n = /* @__PURE__ */ Symbol.for("react.element"), t = /* @__PURE__ */ Symbol.for("react.portal"), i = /* @__PURE__ */ Symbol.for("react.fragment"), d = /* @__PURE__ */ Symbol.for("react.strict_mode"), o = /* @__PURE__ */ Symbol.for("react.profiler"), m = /* @__PURE__ */ Symbol.for("react.provider"), a = /* @__PURE__ */ Symbol.for("react.context"), u = /* @__PURE__ */ Symbol.for("react.forward_ref"), x = /* @__PURE__ */ Symbol.for("react.suspense"), g = /* @__PURE__ */ Symbol.for("react.suspense_list"), f = /* @__PURE__ */ Symbol.for("react.memo"), R = /* @__PURE__ */ Symbol.for("react.lazy"), K = /* @__PURE__ */ Symbol.for("react.offscreen"), w = Symbol.iterator, Q = "@@iterator";
23
- function J(r) {
16
+ return ue.Fragment = t, ue.jsx = f, ue.jsxs = f, ue;
17
+ }
18
+ var he = {};
19
+ var Nr;
20
+ function hs() {
21
+ return Nr || (Nr = 1, process.env.NODE_ENV !== "production" && (function() {
22
+ var s = yr, n = /* @__PURE__ */ Symbol.for("react.element"), t = /* @__PURE__ */ Symbol.for("react.portal"), a = /* @__PURE__ */ Symbol.for("react.fragment"), d = /* @__PURE__ */ Symbol.for("react.strict_mode"), h = /* @__PURE__ */ Symbol.for("react.profiler"), f = /* @__PURE__ */ Symbol.for("react.provider"), i = /* @__PURE__ */ Symbol.for("react.context"), x = /* @__PURE__ */ Symbol.for("react.forward_ref"), o = /* @__PURE__ */ Symbol.for("react.suspense"), p = /* @__PURE__ */ Symbol.for("react.suspense_list"), $ = /* @__PURE__ */ Symbol.for("react.memo"), _ = /* @__PURE__ */ Symbol.for("react.lazy"), G = /* @__PURE__ */ Symbol.for("react.offscreen"), J = Symbol.iterator, ce = "@@iterator";
23
+ function ge(r) {
24
24
  if (r === null || typeof r != "object")
25
25
  return null;
26
- var l = w && r[w] || r[Q];
26
+ var l = J && r[J] || r[ce];
27
27
  return typeof l == "function" ? l : null;
28
28
  }
29
- var H = s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
30
- function P(r) {
29
+ var X = s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
30
+ function C(r) {
31
31
  {
32
- for (var l = arguments.length, h = new Array(l > 1 ? l - 1 : 0), p = 1; p < l; p++)
33
- h[p - 1] = arguments[p];
34
- le("error", r, h);
32
+ for (var l = arguments.length, u = new Array(l > 1 ? l - 1 : 0), j = 1; j < l; j++)
33
+ u[j - 1] = arguments[j];
34
+ ve("error", r, u);
35
35
  }
36
36
  }
37
- function le(r, l, h) {
37
+ function ve(r, l, u) {
38
38
  {
39
- var p = H.ReactDebugCurrentFrame, E = p.getStackAddendum();
40
- E !== "" && (l += "%s", h = h.concat([E]));
41
- var T = h.map(function(_) {
42
- return String(_);
39
+ var j = X.ReactDebugCurrentFrame, y = j.getStackAddendum();
40
+ y !== "" && (l += "%s", u = u.concat([y]));
41
+ var R = u.map(function(N) {
42
+ return String(N);
43
43
  });
44
- T.unshift("Warning: " + l), Function.prototype.apply.call(console[r], console, T);
44
+ R.unshift("Warning: " + l), Function.prototype.apply.call(console[r], console, R);
45
45
  }
46
46
  }
47
- var oe = !1, Z = !1, Re = !1, we = !1, de = !1, me;
48
- me = /* @__PURE__ */ Symbol.for("react.module.reference");
49
- function Le(r) {
50
- return !!(typeof r == "string" || typeof r == "function" || r === i || r === o || de || r === d || r === x || r === g || we || r === K || oe || Z || Re || typeof r == "object" && r !== null && (r.$$typeof === R || r.$$typeof === f || r.$$typeof === m || r.$$typeof === a || r.$$typeof === u || // This needs to include all possible module reference object
47
+ var le = !1, be = !1, De = !1, ke = !1, Ae = !1, w;
48
+ w = /* @__PURE__ */ Symbol.for("react.module.reference");
49
+ function D(r) {
50
+ return !!(typeof r == "string" || typeof r == "function" || r === a || r === h || Ae || r === d || r === o || r === p || ke || r === G || le || be || De || typeof r == "object" && r !== null && (r.$$typeof === _ || r.$$typeof === $ || r.$$typeof === f || r.$$typeof === i || r.$$typeof === x || // This needs to include all possible module reference object
51
51
  // types supported by any Flight configuration anywhere since
52
52
  // we don't know which Flight build this will end up being used
53
53
  // with.
54
- r.$$typeof === me || r.getModuleId !== void 0));
54
+ r.$$typeof === w || r.getModuleId !== void 0));
55
55
  }
56
- function Ie(r, l, h) {
57
- var p = r.displayName;
58
- if (p)
59
- return p;
60
- var E = l.displayName || l.name || "";
61
- return E !== "" ? h + "(" + E + ")" : h;
56
+ function Ne(r, l, u) {
57
+ var j = r.displayName;
58
+ if (j)
59
+ return j;
60
+ var y = l.displayName || l.name || "";
61
+ return y !== "" ? u + "(" + y + ")" : u;
62
62
  }
63
- function Ee(r) {
63
+ function _e(r) {
64
64
  return r.displayName || "Context";
65
65
  }
66
- function b(r) {
66
+ function W(r) {
67
67
  if (r == null)
68
68
  return null;
69
- if (typeof r.tag == "number" && P("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), typeof r == "function")
69
+ if (typeof r.tag == "number" && C("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), typeof r == "function")
70
70
  return r.displayName || r.name || null;
71
71
  if (typeof r == "string")
72
72
  return r;
73
73
  switch (r) {
74
- case i:
74
+ case a:
75
75
  return "Fragment";
76
76
  case t:
77
77
  return "Portal";
78
- case o:
78
+ case h:
79
79
  return "Profiler";
80
80
  case d:
81
81
  return "StrictMode";
82
- case x:
82
+ case o:
83
83
  return "Suspense";
84
- case g:
84
+ case p:
85
85
  return "SuspenseList";
86
86
  }
87
87
  if (typeof r == "object")
88
88
  switch (r.$$typeof) {
89
- case a:
89
+ case i:
90
90
  var l = r;
91
- return Ee(l) + ".Consumer";
92
- case m:
93
- var h = r;
94
- return Ee(h._context) + ".Provider";
95
- case u:
96
- return Ie(r, r.render, "ForwardRef");
91
+ return _e(l) + ".Consumer";
97
92
  case f:
98
- var p = r.displayName || null;
99
- return p !== null ? p : b(r.type) || "Memo";
100
- case R: {
101
- var E = r, T = E._payload, _ = E._init;
93
+ var u = r;
94
+ return _e(u._context) + ".Provider";
95
+ case x:
96
+ return Ne(r, r.render, "ForwardRef");
97
+ case $:
98
+ var j = r.displayName || null;
99
+ return j !== null ? j : W(r.type) || "Memo";
100
+ case _: {
101
+ var y = r, R = y._payload, N = y._init;
102
102
  try {
103
- return b(_(T));
103
+ return W(N(R));
104
104
  } catch {
105
105
  return null;
106
106
  }
@@ -108,18 +108,18 @@ function ms() {
108
108
  }
109
109
  return null;
110
110
  }
111
- var C = Object.assign, se = 0, je, Te, ne, er, rr, sr, nr;
112
- function tr() {
111
+ var ee = Object.assign, oe = 0, He, Xe, Qe, Ze, er, rr, sr;
112
+ function nr() {
113
113
  }
114
- tr.__reactDisabledLog = !0;
115
- function Or() {
114
+ nr.__reactDisabledLog = !0;
115
+ function Ar() {
116
116
  {
117
- if (se === 0) {
118
- je = console.log, Te = console.info, ne = console.warn, er = console.error, rr = console.group, sr = console.groupCollapsed, nr = console.groupEnd;
117
+ if (oe === 0) {
118
+ He = console.log, Xe = console.info, Qe = console.warn, Ze = console.error, er = console.group, rr = console.groupCollapsed, sr = console.groupEnd;
119
119
  var r = {
120
120
  configurable: !0,
121
121
  enumerable: !0,
122
- value: tr,
122
+ value: nr,
123
123
  writable: !0
124
124
  };
125
125
  Object.defineProperties(console, {
@@ -132,332 +132,332 @@ function ms() {
132
132
  groupEnd: r
133
133
  });
134
134
  }
135
- se++;
135
+ oe++;
136
136
  }
137
137
  }
138
- function $r() {
138
+ function Or() {
139
139
  {
140
- if (se--, se === 0) {
140
+ if (oe--, oe === 0) {
141
141
  var r = {
142
142
  configurable: !0,
143
143
  enumerable: !0,
144
144
  writable: !0
145
145
  };
146
146
  Object.defineProperties(console, {
147
- log: C({}, r, {
148
- value: je
147
+ log: ee({}, r, {
148
+ value: He
149
+ }),
150
+ info: ee({}, r, {
151
+ value: Xe
149
152
  }),
150
- info: C({}, r, {
151
- value: Te
153
+ warn: ee({}, r, {
154
+ value: Qe
152
155
  }),
153
- warn: C({}, r, {
154
- value: ne
156
+ error: ee({}, r, {
157
+ value: Ze
155
158
  }),
156
- error: C({}, r, {
159
+ group: ee({}, r, {
157
160
  value: er
158
161
  }),
159
- group: C({}, r, {
162
+ groupCollapsed: ee({}, r, {
160
163
  value: rr
161
164
  }),
162
- groupCollapsed: C({}, r, {
165
+ groupEnd: ee({}, r, {
163
166
  value: sr
164
- }),
165
- groupEnd: C({}, r, {
166
- value: nr
167
167
  })
168
168
  });
169
169
  }
170
- se < 0 && P("disabledDepth fell below zero. This is a bug in React. Please file an issue.");
170
+ oe < 0 && C("disabledDepth fell below zero. This is a bug in React. Please file an issue.");
171
171
  }
172
172
  }
173
- var Ue = H.ReactCurrentDispatcher, Me;
174
- function Ce(r, l, h) {
173
+ var Oe = X.ReactCurrentDispatcher, Fe;
174
+ function ye(r, l, u) {
175
175
  {
176
- if (Me === void 0)
176
+ if (Fe === void 0)
177
177
  try {
178
178
  throw Error();
179
- } catch (E) {
180
- var p = E.stack.trim().match(/\n( *(at )?)/);
181
- Me = p && p[1] || "";
179
+ } catch (y) {
180
+ var j = y.stack.trim().match(/\n( *(at )?)/);
181
+ Fe = j && j[1] || "";
182
182
  }
183
183
  return `
184
- ` + Me + r;
184
+ ` + Fe + r;
185
185
  }
186
186
  }
187
- var qe = !1, Pe;
187
+ var $e = !1, Re;
188
188
  {
189
- var Br = typeof WeakMap == "function" ? WeakMap : Map;
190
- Pe = new Br();
189
+ var Fr = typeof WeakMap == "function" ? WeakMap : Map;
190
+ Re = new Fr();
191
191
  }
192
- function ar(r, l) {
193
- if (!r || qe)
192
+ function tr(r, l) {
193
+ if (!r || $e)
194
194
  return "";
195
195
  {
196
- var h = Pe.get(r);
197
- if (h !== void 0)
198
- return h;
196
+ var u = Re.get(r);
197
+ if (u !== void 0)
198
+ return u;
199
199
  }
200
- var p;
201
- qe = !0;
202
- var E = Error.prepareStackTrace;
200
+ var j;
201
+ $e = !0;
202
+ var y = Error.prepareStackTrace;
203
203
  Error.prepareStackTrace = void 0;
204
- var T;
205
- T = Ue.current, Ue.current = null, Or();
204
+ var R;
205
+ R = Oe.current, Oe.current = null, Ar();
206
206
  try {
207
207
  if (l) {
208
- var _ = function() {
208
+ var N = function() {
209
209
  throw Error();
210
210
  };
211
- if (Object.defineProperty(_.prototype, "props", {
211
+ if (Object.defineProperty(N.prototype, "props", {
212
212
  set: function() {
213
213
  throw Error();
214
214
  }
215
215
  }), typeof Reflect == "object" && Reflect.construct) {
216
216
  try {
217
- Reflect.construct(_, []);
218
- } catch (M) {
219
- p = M;
217
+ Reflect.construct(N, []);
218
+ } catch (L) {
219
+ j = L;
220
220
  }
221
- Reflect.construct(r, [], _);
221
+ Reflect.construct(r, [], N);
222
222
  } else {
223
223
  try {
224
- _.call();
225
- } catch (M) {
226
- p = M;
224
+ N.call();
225
+ } catch (L) {
226
+ j = L;
227
227
  }
228
- r.call(_.prototype);
228
+ r.call(N.prototype);
229
229
  }
230
230
  } else {
231
231
  try {
232
232
  throw Error();
233
- } catch (M) {
234
- p = M;
233
+ } catch (L) {
234
+ j = L;
235
235
  }
236
236
  r();
237
237
  }
238
- } catch (M) {
239
- if (M && p && typeof M.stack == "string") {
240
- for (var v = M.stack.split(`
241
- `), U = p.stack.split(`
242
- `), S = v.length - 1, A = U.length - 1; S >= 1 && A >= 0 && v[S] !== U[A]; )
243
- A--;
244
- for (; S >= 1 && A >= 0; S--, A--)
245
- if (v[S] !== U[A]) {
246
- if (S !== 1 || A !== 1)
238
+ } catch (L) {
239
+ if (L && j && typeof L.stack == "string") {
240
+ for (var g = L.stack.split(`
241
+ `), I = j.stack.split(`
242
+ `), E = g.length - 1, T = I.length - 1; E >= 1 && T >= 0 && g[E] !== I[T]; )
243
+ T--;
244
+ for (; E >= 1 && T >= 0; E--, T--)
245
+ if (g[E] !== I[T]) {
246
+ if (E !== 1 || T !== 1)
247
247
  do
248
- if (S--, A--, A < 0 || v[S] !== U[A]) {
249
- var Y = `
250
- ` + v[S].replace(" at new ", " at ");
251
- return r.displayName && Y.includes("<anonymous>") && (Y = Y.replace("<anonymous>", r.displayName)), typeof r == "function" && Pe.set(r, Y), Y;
248
+ if (E--, T--, T < 0 || g[E] !== I[T]) {
249
+ var z = `
250
+ ` + g[E].replace(" at new ", " at ");
251
+ return r.displayName && z.includes("<anonymous>") && (z = z.replace("<anonymous>", r.displayName)), typeof r == "function" && Re.set(r, z), z;
252
252
  }
253
- while (S >= 1 && A >= 0);
253
+ while (E >= 1 && T >= 0);
254
254
  break;
255
255
  }
256
256
  }
257
257
  } finally {
258
- qe = !1, Ue.current = T, $r(), Error.prepareStackTrace = E;
258
+ $e = !1, Oe.current = R, Or(), Error.prepareStackTrace = y;
259
259
  }
260
- var he = r ? r.displayName || r.name : "", te = he ? Ce(he) : "";
261
- return typeof r == "function" && Pe.set(r, te), te;
260
+ var ie = r ? r.displayName || r.name : "", re = ie ? ye(ie) : "";
261
+ return typeof r == "function" && Re.set(r, re), re;
262
262
  }
263
- function Lr(r, l, h) {
264
- return ar(r, !1);
263
+ function $r(r, l, u) {
264
+ return tr(r, !1);
265
265
  }
266
- function Ir(r) {
266
+ function Br(r) {
267
267
  var l = r.prototype;
268
268
  return !!(l && l.isReactComponent);
269
269
  }
270
- function Se(r, l, h) {
270
+ function we(r, l, u) {
271
271
  if (r == null)
272
272
  return "";
273
273
  if (typeof r == "function")
274
- return ar(r, Ir(r));
274
+ return tr(r, Br(r));
275
275
  if (typeof r == "string")
276
- return Ce(r);
276
+ return ye(r);
277
277
  switch (r) {
278
- case x:
279
- return Ce("Suspense");
280
- case g:
281
- return Ce("SuspenseList");
278
+ case o:
279
+ return ye("Suspense");
280
+ case p:
281
+ return ye("SuspenseList");
282
282
  }
283
283
  if (typeof r == "object")
284
284
  switch (r.$$typeof) {
285
- case u:
286
- return Lr(r.render);
287
- case f:
288
- return Se(r.type, l, h);
289
- case R: {
290
- var p = r, E = p._payload, T = p._init;
285
+ case x:
286
+ return $r(r.render);
287
+ case $:
288
+ return we(r.type, l, u);
289
+ case _: {
290
+ var j = r, y = j._payload, R = j._init;
291
291
  try {
292
- return Se(T(E), l, h);
292
+ return we(R(y), l, u);
293
293
  } catch {
294
294
  }
295
295
  }
296
296
  }
297
297
  return "";
298
298
  }
299
- var fe = Object.prototype.hasOwnProperty, ir = {}, cr = H.ReactDebugCurrentFrame;
300
- function De(r) {
299
+ var de = Object.prototype.hasOwnProperty, ar = {}, ir = X.ReactDebugCurrentFrame;
300
+ function Ee(r) {
301
301
  if (r) {
302
- var l = r._owner, h = Se(r.type, r._source, l ? l.type : null);
303
- cr.setExtraStackFrame(h);
302
+ var l = r._owner, u = we(r.type, r._source, l ? l.type : null);
303
+ ir.setExtraStackFrame(u);
304
304
  } else
305
- cr.setExtraStackFrame(null);
305
+ ir.setExtraStackFrame(null);
306
306
  }
307
- function Ur(r, l, h, p, E) {
307
+ function Ir(r, l, u, j, y) {
308
308
  {
309
- var T = Function.call.bind(fe);
310
- for (var _ in r)
311
- if (T(r, _)) {
312
- var v = void 0;
309
+ var R = Function.call.bind(de);
310
+ for (var N in r)
311
+ if (R(r, N)) {
312
+ var g = void 0;
313
313
  try {
314
- if (typeof r[_] != "function") {
315
- var U = Error((p || "React class") + ": " + h + " type `" + _ + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof r[_] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");
316
- throw U.name = "Invariant Violation", U;
314
+ if (typeof r[N] != "function") {
315
+ var I = Error((j || "React class") + ": " + u + " type `" + N + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof r[N] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");
316
+ throw I.name = "Invariant Violation", I;
317
317
  }
318
- v = r[_](l, _, p, h, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED");
319
- } catch (S) {
320
- v = S;
318
+ g = r[N](l, N, j, u, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED");
319
+ } catch (E) {
320
+ g = E;
321
321
  }
322
- v && !(v instanceof Error) && (De(E), P("%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).", p || "React class", h, _, typeof v), De(null)), v instanceof Error && !(v.message in ir) && (ir[v.message] = !0, De(E), P("Failed %s type: %s", h, v.message), De(null));
322
+ g && !(g instanceof Error) && (Ee(y), C("%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).", j || "React class", u, N, typeof g), Ee(null)), g instanceof Error && !(g.message in ar) && (ar[g.message] = !0, Ee(y), C("Failed %s type: %s", u, g.message), Ee(null));
323
323
  }
324
324
  }
325
325
  }
326
- var Mr = Array.isArray;
327
- function Ge(r) {
328
- return Mr(r);
326
+ var Lr = Array.isArray;
327
+ function Be(r) {
328
+ return Lr(r);
329
329
  }
330
- function qr(r) {
330
+ function Ur(r) {
331
331
  {
332
- var l = typeof Symbol == "function" && Symbol.toStringTag, h = l && r[Symbol.toStringTag] || r.constructor.name || "Object";
333
- return h;
332
+ var l = typeof Symbol == "function" && Symbol.toStringTag, u = l && r[Symbol.toStringTag] || r.constructor.name || "Object";
333
+ return u;
334
334
  }
335
335
  }
336
- function Gr(r) {
336
+ function Mr(r) {
337
337
  try {
338
- return lr(r), !1;
338
+ return cr(r), !1;
339
339
  } catch {
340
340
  return !0;
341
341
  }
342
342
  }
343
- function lr(r) {
343
+ function cr(r) {
344
344
  return "" + r;
345
345
  }
346
- function or(r) {
347
- if (Gr(r))
348
- return P("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", qr(r)), lr(r);
346
+ function lr(r) {
347
+ if (Mr(r))
348
+ return C("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", Ur(r)), cr(r);
349
349
  }
350
- var dr = H.ReactCurrentOwner, Vr = {
350
+ var or = X.ReactCurrentOwner, qr = {
351
351
  key: !0,
352
352
  ref: !0,
353
353
  __self: !0,
354
354
  __source: !0
355
- }, ur, hr;
356
- function Wr(r) {
357
- if (fe.call(r, "ref")) {
355
+ }, dr, ur;
356
+ function Gr(r) {
357
+ if (de.call(r, "ref")) {
358
358
  var l = Object.getOwnPropertyDescriptor(r, "ref").get;
359
359
  if (l && l.isReactWarning)
360
360
  return !1;
361
361
  }
362
362
  return r.ref !== void 0;
363
363
  }
364
- function Yr(r) {
365
- if (fe.call(r, "key")) {
364
+ function Wr(r) {
365
+ if (de.call(r, "key")) {
366
366
  var l = Object.getOwnPropertyDescriptor(r, "key").get;
367
367
  if (l && l.isReactWarning)
368
368
  return !1;
369
369
  }
370
370
  return r.key !== void 0;
371
371
  }
372
- function zr(r, l) {
373
- typeof r.ref == "string" && dr.current;
372
+ function Vr(r, l) {
373
+ typeof r.ref == "string" && or.current;
374
374
  }
375
- function Kr(r, l) {
375
+ function Yr(r, l) {
376
376
  {
377
- var h = function() {
378
- ur || (ur = !0, P("%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));
377
+ var u = function() {
378
+ dr || (dr = !0, C("%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
- h.isReactWarning = !0, Object.defineProperty(r, "key", {
381
- get: h,
380
+ u.isReactWarning = !0, Object.defineProperty(r, "key", {
381
+ get: u,
382
382
  configurable: !0
383
383
  });
384
384
  }
385
385
  }
386
- function Jr(r, l) {
386
+ function zr(r, l) {
387
387
  {
388
- var h = function() {
389
- hr || (hr = !0, P("%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));
388
+ var u = function() {
389
+ ur || (ur = !0, C("%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
- h.isReactWarning = !0, Object.defineProperty(r, "ref", {
392
- get: h,
391
+ u.isReactWarning = !0, Object.defineProperty(r, "ref", {
392
+ get: u,
393
393
  configurable: !0
394
394
  });
395
395
  }
396
396
  }
397
- var Hr = function(r, l, h, p, E, T, _) {
398
- var v = {
397
+ var Kr = function(r, l, u, j, y, R, N) {
398
+ var g = {
399
399
  // This tag allows us to uniquely identify this as a React Element
400
400
  $$typeof: n,
401
401
  // Built-in properties that belong on the element
402
402
  type: r,
403
403
  key: l,
404
- ref: h,
405
- props: _,
404
+ ref: u,
405
+ props: N,
406
406
  // Record the component responsible for creating this element.
407
- _owner: T
407
+ _owner: R
408
408
  };
409
- return v._store = {}, Object.defineProperty(v._store, "validated", {
409
+ return g._store = {}, Object.defineProperty(g._store, "validated", {
410
410
  configurable: !1,
411
411
  enumerable: !1,
412
412
  writable: !0,
413
413
  value: !1
414
- }), Object.defineProperty(v, "_self", {
414
+ }), Object.defineProperty(g, "_self", {
415
415
  configurable: !1,
416
416
  enumerable: !1,
417
417
  writable: !1,
418
- value: p
419
- }), Object.defineProperty(v, "_source", {
418
+ value: j
419
+ }), Object.defineProperty(g, "_source", {
420
420
  configurable: !1,
421
421
  enumerable: !1,
422
422
  writable: !1,
423
- value: E
424
- }), Object.freeze && (Object.freeze(v.props), Object.freeze(v)), v;
423
+ value: y
424
+ }), Object.freeze && (Object.freeze(g.props), Object.freeze(g)), g;
425
425
  };
426
- function Xr(r, l, h, p, E) {
426
+ function Jr(r, l, u, j, y) {
427
427
  {
428
- var T, _ = {}, v = null, U = null;
429
- h !== void 0 && (or(h), v = "" + h), Yr(l) && (or(l.key), v = "" + l.key), Wr(l) && (U = l.ref, zr(l, E));
430
- for (T in l)
431
- fe.call(l, T) && !Vr.hasOwnProperty(T) && (_[T] = l[T]);
428
+ var R, N = {}, g = null, I = null;
429
+ u !== void 0 && (lr(u), g = "" + u), Wr(l) && (lr(l.key), g = "" + l.key), Gr(l) && (I = l.ref, Vr(l, y));
430
+ for (R in l)
431
+ de.call(l, R) && !qr.hasOwnProperty(R) && (N[R] = l[R]);
432
432
  if (r && r.defaultProps) {
433
- var S = r.defaultProps;
434
- for (T in S)
435
- _[T] === void 0 && (_[T] = S[T]);
433
+ var E = r.defaultProps;
434
+ for (R in E)
435
+ N[R] === void 0 && (N[R] = E[R]);
436
436
  }
437
- if (v || U) {
438
- var A = typeof r == "function" ? r.displayName || r.name || "Unknown" : r;
439
- v && Kr(_, A), U && Jr(_, A);
437
+ if (g || I) {
438
+ var T = typeof r == "function" ? r.displayName || r.name || "Unknown" : r;
439
+ g && Yr(N, T), I && zr(N, T);
440
440
  }
441
- return Hr(r, v, U, E, p, dr.current, _);
441
+ return Kr(r, g, I, y, j, or.current, N);
442
442
  }
443
443
  }
444
- var Ve = H.ReactCurrentOwner, xr = H.ReactDebugCurrentFrame;
445
- function ue(r) {
444
+ var Ie = X.ReactCurrentOwner, hr = X.ReactDebugCurrentFrame;
445
+ function ae(r) {
446
446
  if (r) {
447
- var l = r._owner, h = Se(r.type, r._source, l ? l.type : null);
448
- xr.setExtraStackFrame(h);
447
+ var l = r._owner, u = we(r.type, r._source, l ? l.type : null);
448
+ hr.setExtraStackFrame(u);
449
449
  } else
450
- xr.setExtraStackFrame(null);
450
+ hr.setExtraStackFrame(null);
451
451
  }
452
- var We;
453
- We = !1;
454
- function Ye(r) {
452
+ var Le;
453
+ Le = !1;
454
+ function Ue(r) {
455
455
  return typeof r == "object" && r !== null && r.$$typeof === n;
456
456
  }
457
- function mr() {
457
+ function xr() {
458
458
  {
459
- if (Ve.current) {
460
- var r = b(Ve.current.type);
459
+ if (Ie.current) {
460
+ var r = W(Ie.current.type);
461
461
  if (r)
462
462
  return `
463
463
 
@@ -466,18 +466,18 @@ Check the render method of \`` + r + "`.";
466
466
  return "";
467
467
  }
468
468
  }
469
- function Qr(r) {
469
+ function Hr(r) {
470
470
  return "";
471
471
  }
472
- var jr = {};
473
- function Zr(r) {
472
+ var mr = {};
473
+ function Xr(r) {
474
474
  {
475
- var l = mr();
475
+ var l = xr();
476
476
  if (!l) {
477
- var h = typeof r == "string" ? r : r.displayName || r.name;
478
- h && (l = `
477
+ var u = typeof r == "string" ? r : r.displayName || r.name;
478
+ u && (l = `
479
479
 
480
- Check the top-level render call using <` + h + ">.");
480
+ Check the top-level render call using <` + u + ">.");
481
481
  }
482
482
  return l;
483
483
  }
@@ -487,136 +487,136 @@ Check the top-level render call using <` + h + ">.");
487
487
  if (!r._store || r._store.validated || r.key != null)
488
488
  return;
489
489
  r._store.validated = !0;
490
- var h = Zr(l);
491
- if (jr[h])
490
+ var u = Xr(l);
491
+ if (mr[u])
492
492
  return;
493
- jr[h] = !0;
494
- var p = "";
495
- r && r._owner && r._owner !== Ve.current && (p = " It was passed a child from " + b(r._owner.type) + "."), ue(r), P('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', h, p), ue(null);
493
+ mr[u] = !0;
494
+ var j = "";
495
+ r && r._owner && r._owner !== Ie.current && (j = " It was passed a child from " + W(r._owner.type) + "."), ae(r), C('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', u, j), ae(null);
496
496
  }
497
497
  }
498
- function pr(r, l) {
498
+ function jr(r, l) {
499
499
  {
500
500
  if (typeof r != "object")
501
501
  return;
502
- if (Ge(r))
503
- for (var h = 0; h < r.length; h++) {
504
- var p = r[h];
505
- Ye(p) && fr(p, l);
502
+ if (Be(r))
503
+ for (var u = 0; u < r.length; u++) {
504
+ var j = r[u];
505
+ Ue(j) && fr(j, l);
506
506
  }
507
- else if (Ye(r))
507
+ else if (Ue(r))
508
508
  r._store && (r._store.validated = !0);
509
509
  else if (r) {
510
- var E = J(r);
511
- if (typeof E == "function" && E !== r.entries)
512
- for (var T = E.call(r), _; !(_ = T.next()).done; )
513
- Ye(_.value) && fr(_.value, l);
510
+ var y = ge(r);
511
+ if (typeof y == "function" && y !== r.entries)
512
+ for (var R = y.call(r), N; !(N = R.next()).done; )
513
+ Ue(N.value) && fr(N.value, l);
514
514
  }
515
515
  }
516
516
  }
517
- function es(r) {
517
+ function Qr(r) {
518
518
  {
519
519
  var l = r.type;
520
520
  if (l == null || typeof l == "string")
521
521
  return;
522
- var h;
522
+ var u;
523
523
  if (typeof l == "function")
524
- h = l.propTypes;
525
- else if (typeof l == "object" && (l.$$typeof === u || // Note: Memo only checks outer props here.
524
+ u = l.propTypes;
525
+ else if (typeof l == "object" && (l.$$typeof === x || // Note: Memo only checks outer props here.
526
526
  // Inner props are checked in the reconciler.
527
- l.$$typeof === f))
528
- h = l.propTypes;
527
+ l.$$typeof === $))
528
+ u = l.propTypes;
529
529
  else
530
530
  return;
531
- if (h) {
532
- var p = b(l);
533
- Ur(h, r.props, "prop", p, r);
534
- } else if (l.PropTypes !== void 0 && !We) {
535
- We = !0;
536
- var E = b(l);
537
- P("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", E || "Unknown");
531
+ if (u) {
532
+ var j = W(l);
533
+ Ir(u, r.props, "prop", j, r);
534
+ } else if (l.PropTypes !== void 0 && !Le) {
535
+ Le = !0;
536
+ var y = W(l);
537
+ C("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", y || "Unknown");
538
538
  }
539
- typeof l.getDefaultProps == "function" && !l.getDefaultProps.isReactClassApproved && P("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.");
539
+ typeof l.getDefaultProps == "function" && !l.getDefaultProps.isReactClassApproved && C("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.");
540
540
  }
541
541
  }
542
- function rs(r) {
542
+ function Zr(r) {
543
543
  {
544
- for (var l = Object.keys(r.props), h = 0; h < l.length; h++) {
545
- var p = l[h];
546
- if (p !== "children" && p !== "key") {
547
- ue(r), P("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", p), ue(null);
544
+ for (var l = Object.keys(r.props), u = 0; u < l.length; u++) {
545
+ var j = l[u];
546
+ if (j !== "children" && j !== "key") {
547
+ ae(r), C("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", j), ae(null);
548
548
  break;
549
549
  }
550
550
  }
551
- r.ref !== null && (ue(r), P("Invalid attribute `ref` supplied to `React.Fragment`."), ue(null));
551
+ r.ref !== null && (ae(r), C("Invalid attribute `ref` supplied to `React.Fragment`."), ae(null));
552
552
  }
553
553
  }
554
- var gr = {};
555
- function vr(r, l, h, p, E, T) {
554
+ var pr = {};
555
+ function gr(r, l, u, j, y, R) {
556
556
  {
557
- var _ = Le(r);
558
- if (!_) {
559
- var v = "";
560
- (r === void 0 || typeof r == "object" && r !== null && Object.keys(r).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 U = Qr();
562
- U ? v += U : v += mr();
563
- var S;
564
- r === null ? S = "null" : Ge(r) ? S = "array" : r !== void 0 && r.$$typeof === n ? (S = "<" + (b(r.type) || "Unknown") + " />", v = " Did you accidentally export a JSX literal instead of a component?") : S = typeof r, P("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", S, v);
557
+ var N = D(r);
558
+ if (!N) {
559
+ var g = "";
560
+ (r === void 0 || typeof r == "object" && r !== null && Object.keys(r).length === 0) && (g += " 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 = Hr();
562
+ I ? g += I : g += xr();
563
+ var E;
564
+ r === null ? E = "null" : Be(r) ? E = "array" : r !== void 0 && r.$$typeof === n ? (E = "<" + (W(r.type) || "Unknown") + " />", g = " Did you accidentally export a JSX literal instead of a component?") : E = typeof r, C("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", E, g);
565
565
  }
566
- var A = Xr(r, l, h, E, T);
567
- if (A == null)
568
- return A;
569
- if (_) {
570
- var Y = l.children;
571
- if (Y !== void 0)
572
- if (p)
573
- if (Ge(Y)) {
574
- for (var he = 0; he < Y.length; he++)
575
- pr(Y[he], r);
576
- Object.freeze && Object.freeze(Y);
566
+ var T = Jr(r, l, u, y, R);
567
+ if (T == null)
568
+ return T;
569
+ if (N) {
570
+ var z = l.children;
571
+ if (z !== void 0)
572
+ if (j)
573
+ if (Be(z)) {
574
+ for (var ie = 0; ie < z.length; ie++)
575
+ jr(z[ie], r);
576
+ Object.freeze && Object.freeze(z);
577
577
  } else
578
- P("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
+ C("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
- pr(Y, r);
580
+ jr(z, r);
581
581
  }
582
- if (fe.call(l, "key")) {
583
- var te = b(r), M = Object.keys(l).filter(function(cs) {
584
- return cs !== "key";
585
- }), ze = M.length > 0 ? "{key: someKey, " + M.join(": ..., ") + ": ...}" : "{key: someKey}";
586
- if (!gr[te + ze]) {
587
- var is = M.length > 0 ? "{" + M.join(": ..., ") + ": ...}" : "{}";
588
- P(`A props object containing a "key" prop is being spread into JSX:
582
+ if (de.call(l, "key")) {
583
+ var re = W(r), L = Object.keys(l).filter(function(as) {
584
+ return as !== "key";
585
+ }), Me = L.length > 0 ? "{key: someKey, " + L.join(": ..., ") + ": ...}" : "{key: someKey}";
586
+ if (!pr[re + Me]) {
587
+ var ts = L.length > 0 ? "{" + L.join(": ..., ") + ": ...}" : "{}";
588
+ C(`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} />`, ze, te, is, te), gr[te + ze] = !0;
593
+ <%s key={someKey} {...props} />`, Me, re, ts, re), pr[re + Me] = !0;
594
594
  }
595
595
  }
596
- return r === i ? rs(A) : es(A), A;
596
+ return r === a ? Zr(T) : Qr(T), T;
597
597
  }
598
598
  }
599
- function ss(r, l, h) {
600
- return vr(r, l, h, !0);
599
+ function es(r, l, u) {
600
+ return gr(r, l, u, !0);
601
601
  }
602
- function ns(r, l, h) {
603
- return vr(r, l, h, !1);
602
+ function rs(r, l, u) {
603
+ return gr(r, l, u, !1);
604
604
  }
605
- var ts = ns, as = ss;
606
- ge.Fragment = i, ge.jsx = ts, ge.jsxs = as;
607
- })()), ge;
605
+ var ss = rs, ns = es;
606
+ he.Fragment = a, he.jsx = ss, he.jsxs = ns;
607
+ })()), he;
608
608
  }
609
609
  var _r;
610
- function js() {
611
- return _r || (_r = 1, process.env.NODE_ENV === "production" ? ke.exports = xs() : ke.exports = ms()), ke.exports;
610
+ function xs() {
611
+ return _r || (_r = 1, process.env.NODE_ENV === "production" ? Se.exports = us() : Se.exports = hs()), Se.exports;
612
612
  }
613
- var e = js();
614
- class Ne extends Error {
613
+ var e = xs();
614
+ class fe extends Error {
615
615
  constructor(n, t) {
616
616
  super(t), this.status = n, this.name = "ApiError";
617
617
  }
618
618
  }
619
- class fs {
619
+ class ms {
620
620
  baseUrl;
621
621
  headers;
622
622
  constructor(n = {}) {
@@ -625,27 +625,27 @@ class fs {
625
625
  ...n.headers
626
626
  };
627
627
  }
628
- async request(n, t, i = {}) {
628
+ async request(n, t, a = {}) {
629
629
  let d = `${this.baseUrl}${t}`;
630
- if (i.params) {
631
- const m = new URLSearchParams();
632
- Object.entries(i.params).forEach(([u, x]) => {
633
- x != null && x !== "" && m.set(u, String(x));
630
+ if (a.params) {
631
+ const f = new URLSearchParams();
632
+ Object.entries(a.params).forEach(([x, o]) => {
633
+ o != null && o !== "" && f.set(x, String(o));
634
634
  });
635
- const a = m.toString();
636
- a && (d += `?${a}`);
635
+ const i = f.toString();
636
+ i && (d += `?${i}`);
637
637
  }
638
- const o = await fetch(d, {
638
+ const h = await fetch(d, {
639
639
  method: n,
640
640
  headers: this.headers,
641
- body: i.body ? JSON.stringify(i.body) : void 0
641
+ body: a.body ? JSON.stringify(a.body) : void 0
642
642
  });
643
- if (!o.ok) {
644
- const m = await o.json().catch(() => ({ detail: "Unknown error" }));
645
- throw new Ne(o.status, m.detail || o.statusText);
643
+ if (!h.ok) {
644
+ const f = await h.json().catch(() => ({ detail: "Unknown error" }));
645
+ throw new fe(h.status, f.detail || h.statusText);
646
646
  }
647
- if (!(o.status === 204 || o.headers.get("content-length") === "0"))
648
- return o.json();
647
+ if (!(h.status === 204 || h.headers.get("content-length") === "0"))
648
+ return h.json();
649
649
  }
650
650
  async getCapabilities() {
651
651
  return this.request("GET", "/api/v1/capabilities");
@@ -685,56 +685,56 @@ class fs {
685
685
  return `${this.baseUrl}/api/runs/${n}/artifacts/${t}/raw`;
686
686
  }
687
687
  }
688
- const ps = new fs(), Tr = Er(null);
689
- function gs({
688
+ const fs = new ms(), Er = wr(null);
689
+ function js({
690
690
  children: s,
691
- api: n = ps,
691
+ api: n = fs,
692
692
  initialWorkspace: t = null
693
693
  }) {
694
- const [i, d] = O(null), [o, m] = O(t);
695
- return xe(() => {
694
+ const [a, d] = U(null), [h, f] = U(t);
695
+ return We(() => {
696
696
  n.getCapabilities().then(d).catch(console.error);
697
- }, [n]), /* @__PURE__ */ e.jsx(Tr.Provider, { value: { api: n, capabilities: i, currentWorkspace: o, setCurrentWorkspace: m }, children: s });
697
+ }, [n]), /* @__PURE__ */ e.jsx(Er.Provider, { value: { api: n, capabilities: a, currentWorkspace: h, setCurrentWorkspace: f }, children: s });
698
698
  }
699
- function W() {
700
- const s = wr(Tr);
699
+ function Y() {
700
+ const s = Rr(Er);
701
701
  if (!s) throw new Error("useApp must be used within AppProvider");
702
702
  return s;
703
703
  }
704
- function ie(s, n = []) {
705
- const [t, i] = O({
704
+ function ne(s, n = []) {
705
+ const [t, a] = U({
706
706
  data: null,
707
707
  loading: !0,
708
708
  error: null
709
- }), d = br(!0), o = br(s);
710
- o.current = s;
711
- const m = be(async () => {
712
- i((a) => ({ ...a, loading: !0, error: null }));
709
+ }), d = vr(!0), h = vr(s);
710
+ h.current = s;
711
+ const f = me(async () => {
712
+ a((i) => ({ ...i, loading: !0, error: null }));
713
713
  try {
714
- const a = await o.current();
715
- d.current && i({ data: a, loading: !1, error: null });
716
- } catch (a) {
717
- d.current && i({
714
+ const i = await h.current();
715
+ d.current && a({ data: i, loading: !1, error: null });
716
+ } catch (i) {
717
+ d.current && a({
718
718
  data: null,
719
719
  loading: !1,
720
- error: a instanceof Ne ? a : new Ne(500, String(a))
720
+ error: i instanceof fe ? i : new fe(500, String(i))
721
721
  });
722
722
  }
723
723
  }, []);
724
- return xe(() => (d.current = !0, m(), () => {
724
+ return We(() => (d.current = !0, f(), () => {
725
725
  d.current = !1;
726
- }), n), { ...t, refetch: m };
726
+ }), n), { ...t, refetch: f };
727
727
  }
728
- function Cr(s) {
729
- const { api: n, currentWorkspace: t } = W();
730
- return ie(
728
+ function Sr(s) {
729
+ const { api: n, currentWorkspace: t } = Y();
730
+ return ne(
731
731
  () => n.listRuns({ ...s, workspace: t?.id }),
732
732
  [n, t?.id, s?.project, s?.status, s?.q, s?.limit]
733
733
  );
734
734
  }
735
735
  function Pr(s) {
736
- const { api: n } = W();
737
- return ie(
736
+ const { api: n } = Y();
737
+ return ne(
738
738
  async () => {
739
739
  const { run: t } = await n.getRun(s);
740
740
  return t;
@@ -742,9 +742,9 @@ function Pr(s) {
742
742
  [n, s]
743
743
  );
744
744
  }
745
- function $e() {
746
- const { api: s, currentWorkspace: n } = W();
747
- return ie(
745
+ function ze() {
746
+ const { api: s, currentWorkspace: n } = Y();
747
+ return ne(
748
748
  async () => {
749
749
  const { projects: t } = await s.listProjects({ workspace: n?.id });
750
750
  return t;
@@ -752,150 +752,150 @@ function $e() {
752
752
  [s, n?.id]
753
753
  );
754
754
  }
755
- function vs(s) {
756
- const { api: n, currentWorkspace: t } = W();
757
- return ie(
755
+ function ps(s) {
756
+ const { api: n, currentWorkspace: t } = Y();
757
+ return ne(
758
758
  async () => {
759
- const { groups: i } = await n.listGroups({ ...s, workspace: t?.id });
760
- return i;
759
+ const { groups: a } = await n.listGroups({ ...s, workspace: t?.id });
760
+ return a;
761
761
  },
762
762
  [n, t?.id, s?.project]
763
763
  );
764
764
  }
765
- function bs(s) {
766
- const { api: n } = W();
767
- return ie(
765
+ function gs(s) {
766
+ const { api: n } = Y();
767
+ return ne(
768
768
  () => n.getGroup(s),
769
769
  [n, s]
770
770
  );
771
771
  }
772
- function Ns(s, n) {
773
- const { api: t } = W();
774
- return ie(
772
+ function vs(s, n) {
773
+ const { api: t } = Y();
774
+ return ne(
775
775
  () => t.getDiff(s, n),
776
776
  [t, s, n]
777
777
  );
778
778
  }
779
- function ys(s, n) {
780
- const { api: t } = W();
781
- return ie(
779
+ function bs(s, n) {
780
+ const { api: t } = Y();
781
+ return ne(
782
782
  () => t.getArtifact(s, n),
783
783
  [t, s, n]
784
784
  );
785
785
  }
786
- function ye(s) {
787
- const [n, t] = O(!1), [i, d] = O(null);
788
- return { mutate: be(async (...m) => {
786
+ function je(s) {
787
+ const [n, t] = U(!1), [a, d] = U(null);
788
+ return { mutate: me(async (...f) => {
789
789
  t(!0), d(null);
790
790
  try {
791
- return await s(...m);
792
- } catch (a) {
793
- const u = a instanceof Ne ? a : new Ne(500, String(a));
794
- throw d(u), u;
791
+ return await s(...f);
792
+ } catch (i) {
793
+ const x = i instanceof fe ? i : new fe(500, String(i));
794
+ throw d(x), x;
795
795
  } finally {
796
796
  t(!1);
797
797
  }
798
- }, [s]), loading: n, error: i };
798
+ }, [s]), loading: n, error: a };
799
799
  }
800
- function z(s) {
800
+ function K(s) {
801
801
  return s?.slice(0, 8) ?? "";
802
802
  }
803
- function Ke(s) {
803
+ function qe(s) {
804
804
  return s?.slice(0, 12) ?? "N/A";
805
805
  }
806
- function Fe(s) {
807
- const n = new Date(s), i = Math.floor(((/* @__PURE__ */ new Date()).getTime() - n.getTime()) / 1e3);
808
- if (i < 60) return "just now";
809
- if (i < 3600) {
810
- const o = Math.floor(i / 60);
811
- return `${o} minute${o !== 1 ? "s" : ""} ago`;
806
+ function Te(s) {
807
+ const n = new Date(s), a = Math.floor(((/* @__PURE__ */ new Date()).getTime() - n.getTime()) / 1e3);
808
+ if (a < 60) return "just now";
809
+ if (a < 3600) {
810
+ const h = Math.floor(a / 60);
811
+ return `${h} minute${h !== 1 ? "s" : ""} ago`;
812
812
  }
813
- if (i < 86400) {
814
- const o = Math.floor(i / 3600);
815
- return `${o} hour${o !== 1 ? "s" : ""} ago`;
813
+ if (a < 86400) {
814
+ const h = Math.floor(a / 3600);
815
+ return `${h} hour${h !== 1 ? "s" : ""} ago`;
816
816
  }
817
- if (i < 2592e3) {
818
- const o = Math.floor(i / 86400);
819
- return `${o} day${o !== 1 ? "s" : ""} ago`;
817
+ if (a < 2592e3) {
818
+ const h = Math.floor(a / 86400);
819
+ return `${h} day${h !== 1 ? "s" : ""} ago`;
820
820
  }
821
- if (i < 31536e3) {
822
- const o = Math.floor(i / 2592e3);
823
- return `${o} month${o !== 1 ? "s" : ""} ago`;
821
+ if (a < 31536e3) {
822
+ const h = Math.floor(a / 2592e3);
823
+ return `${h} month${h !== 1 ? "s" : ""} ago`;
824
824
  }
825
- const d = Math.floor(i / 31536e3);
825
+ const d = Math.floor(a / 31536e3);
826
826
  return `${d} year${d !== 1 ? "s" : ""} ago`;
827
827
  }
828
- function _s(s, n = 6) {
828
+ function Ns(s, n = 6) {
829
829
  return typeof s != "number" || isNaN(s) ? String(s) : Number(s.toPrecision(n)).toString();
830
830
  }
831
- function Ae(s) {
831
+ function Pe(s) {
832
832
  return s < 1024 ? `${s} bytes` : s < 1048576 ? `${(s / 1024).toFixed(1)} KB` : `${(s / 1048576).toFixed(1)} MB`;
833
833
  }
834
- function Rs(s) {
834
+ function _s(s) {
835
835
  return JSON.stringify(s, null, 2);
836
836
  }
837
- function ws(s, n = 60) {
837
+ function ys(s, n = 60) {
838
838
  return s ? s.length <= n ? s : s.slice(0, n - 3) + "..." : "";
839
839
  }
840
- function Vs(s, n) {
840
+ function Ws(s, n) {
841
841
  const t = new URLSearchParams();
842
- Object.entries(n).forEach(([d, o]) => {
843
- o != null && o !== "" && t.set(d, String(o));
842
+ Object.entries(n).forEach(([d, h]) => {
843
+ h != null && h !== "" && t.set(d, String(h));
844
844
  });
845
- const i = t.toString();
846
- return i ? `${s}?${i}` : s;
845
+ const a = t.toString();
846
+ return a ? `${s}?${a}` : s;
847
847
  }
848
- function $(...s) {
848
+ function A(...s) {
849
849
  return s.filter(Boolean).join(" ");
850
850
  }
851
- const Es = [
851
+ const Rs = [
852
852
  { href: "/runs", label: "Runs", matchPaths: ["/runs"] },
853
853
  { href: "/projects", label: "Projects", matchPaths: ["/projects"] },
854
854
  { href: "/groups", label: "Groups", matchPaths: ["/groups"] },
855
855
  { href: "/diff", label: "Compare", matchPaths: ["/diff"] },
856
856
  { href: "/search", label: "Search", matchPaths: ["/search"] }
857
- ], Sr = Er(null);
858
- function Ws({
857
+ ], Tr = wr(null);
858
+ function Vs({
859
859
  config: s,
860
860
  children: n
861
861
  }) {
862
- return /* @__PURE__ */ e.jsx(Sr.Provider, { value: s, children: n });
862
+ return /* @__PURE__ */ e.jsx(Tr.Provider, { value: s, children: n });
863
863
  }
864
- function Ts() {
865
- return wr(Sr);
864
+ function ws() {
865
+ return Rr(Tr);
866
866
  }
867
- function G({ children: s, config: n }) {
868
- const t = ls(), d = { ...Ts(), ...n }, o = d?.navLinks ?? Es, m = [
867
+ function q({ children: s, config: n }) {
868
+ const t = is(), d = { ...ws(), ...n }, h = d?.navLinks ?? Rs, f = [
869
869
  ...d?.prependNavLinks ?? [],
870
- ...o,
870
+ ...h,
871
871
  ...d?.appendNavLinks ?? []
872
- ], a = d?.logo ?? { text: "devqubit", icon: "⚛" }, u = (x) => x.matchPaths ? x.matchPaths.some((g) => t.pathname.startsWith(g)) : t.pathname === x.href;
873
- return /* @__PURE__ */ e.jsxs("div", { className: "min-h-screen bg-gray-50", children: [
874
- /* @__PURE__ */ e.jsx("header", { className: "bg-gray-900 h-14 sticky top-0 z-50 border-b border-gray-800", children: /* @__PURE__ */ e.jsxs("div", { className: "max-w-container mx-auto px-6 h-full flex items-center justify-between", children: [
872
+ ], i = d?.logo ?? { text: "devqubit", icon: "⚛" }, x = (o) => o.matchPaths ? o.matchPaths.some((p) => t.pathname.startsWith(p)) : t.pathname === o.href;
873
+ return /* @__PURE__ */ e.jsxs("div", { className: "min-h-screen bg-primary-bg", children: [
874
+ /* @__PURE__ */ e.jsx("header", { className: "bg-gray-900 h-14 sticky top-0 z-50", children: /* @__PURE__ */ e.jsxs("div", { className: "max-w-container mx-auto px-6 h-full flex items-center justify-between", children: [
875
875
  /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-8", children: [
876
- /* @__PURE__ */ e.jsxs(q, { to: "/", className: "text-lg font-semibold text-primary hover:text-primary-light flex items-center gap-2 transition-colors hover:no-underline", children: [
877
- a.icon && /* @__PURE__ */ e.jsx("span", { className: "text-xl", children: a.icon }),
878
- a.text
876
+ /* @__PURE__ */ e.jsxs(M, { to: "/", className: "text-lg font-bold text-primary hover:text-primary-light flex items-center gap-1.5", children: [
877
+ i.icon && /* @__PURE__ */ e.jsx("span", { children: i.icon }),
878
+ i.text
879
879
  ] }),
880
- /* @__PURE__ */ e.jsx("nav", { className: "flex gap-1", children: m.map((x) => /* @__PURE__ */ e.jsx(
881
- q,
880
+ /* @__PURE__ */ e.jsx("nav", { className: "flex gap-1", children: f.map((o) => /* @__PURE__ */ e.jsx(
881
+ M,
882
882
  {
883
- to: x.href,
884
- className: $(
885
- "px-3 py-1.5 rounded-md text-sm font-medium transition-all duration-150 hover:no-underline",
886
- u(x) ? "text-white bg-white/10" : "text-gray-400 hover:text-white hover:bg-white/5"
883
+ to: o.href,
884
+ className: A(
885
+ "px-3 py-2 rounded-md text-sm font-medium transition-all",
886
+ x(o) ? "text-white bg-primary/20" : "text-gray-400 hover:text-white hover:bg-white/10"
887
887
  ),
888
- children: x.label
888
+ children: o.label
889
889
  },
890
- x.href
890
+ o.href
891
891
  )) })
892
892
  ] }),
893
893
  /* @__PURE__ */ e.jsx("div", { className: "flex items-center gap-4", children: d?.headerRight })
894
894
  ] }) }),
895
- /* @__PURE__ */ e.jsx("main", { className: "max-w-container mx-auto p-6 fade-in", children: s })
895
+ /* @__PURE__ */ e.jsx("main", { className: "max-w-container mx-auto p-6", children: s })
896
896
  ] });
897
897
  }
898
- function _e({ title: s, subtitle: n, actions: t }) {
898
+ function pe({ title: s, subtitle: n, actions: t }) {
899
899
  return /* @__PURE__ */ e.jsxs("div", { className: "flex items-start justify-between mb-6 gap-4 flex-wrap", children: [
900
900
  /* @__PURE__ */ e.jsxs("div", { children: [
901
901
  /* @__PURE__ */ e.jsx("h1", { className: "text-2xl font-semibold text-gray-900 flex items-center gap-2 flex-wrap", children: s }),
@@ -904,22 +904,22 @@ function _e({ title: s, subtitle: n, actions: t }) {
904
904
  t && /* @__PURE__ */ e.jsx("div", { className: "flex gap-2", children: t })
905
905
  ] });
906
906
  }
907
- function B({ variant: s = "gray", className: n, children: t, ...i }) {
908
- return /* @__PURE__ */ e.jsx("span", { className: $("badge", `badge-${s}`, n), ...i, children: t });
907
+ function B({ variant: s = "gray", className: n, children: t, ...a }) {
908
+ return /* @__PURE__ */ e.jsx("span", { className: A("badge", `badge-${s}`, n), ...a, children: t });
909
909
  }
910
- const F = He(
911
- ({ variant: s = "secondary", size: n = "default", loading: t, className: i, children: d, disabled: o, ...m }, a) => /* @__PURE__ */ e.jsxs(
910
+ const k = Ve(
911
+ ({ variant: s = "secondary", size: n = "default", loading: t, className: a, children: d, disabled: h, ...f }, i) => /* @__PURE__ */ e.jsxs(
912
912
  "button",
913
913
  {
914
- ref: a,
915
- className: $(
914
+ ref: i,
915
+ className: A(
916
916
  "btn",
917
917
  s === "ghost-danger" ? "btn-ghost-danger" : `btn-${s}`,
918
918
  n === "sm" && "btn-sm",
919
- i
919
+ a
920
920
  ),
921
- disabled: o || t,
922
- ...m,
921
+ disabled: h || t,
922
+ ...f,
923
923
  children: [
924
924
  t && /* @__PURE__ */ e.jsx(V, {}),
925
925
  d
@@ -927,100 +927,93 @@ const F = He(
927
927
  }
928
928
  )
929
929
  );
930
- F.displayName = "Button";
931
- function N({ className: s, children: n, ...t }) {
932
- return /* @__PURE__ */ e.jsx("div", { className: $("card", s), ...t, children: n });
930
+ k.displayName = "Button";
931
+ function v({ className: s, children: n, ...t }) {
932
+ return /* @__PURE__ */ e.jsx("div", { className: A("card", s), ...t, children: n });
933
933
  }
934
- function D({ className: s, children: n, ...t }) {
935
- return /* @__PURE__ */ e.jsx("div", { className: $("card-header", s), ...t, children: n });
934
+ function S({ className: s, children: n, ...t }) {
935
+ return /* @__PURE__ */ e.jsx("div", { className: A("card-header", s), ...t, children: n });
936
936
  }
937
- function k({ className: s, children: n, ...t }) {
938
- return /* @__PURE__ */ e.jsx("h3", { className: $("card-title", s), ...t, children: n });
937
+ function P({ className: s, children: n, ...t }) {
938
+ return /* @__PURE__ */ e.jsx("h3", { className: A("card-title", s), ...t, children: n });
939
939
  }
940
- function Ys({ variant: s = "info", className: n, children: t, ...i }) {
941
- return /* @__PURE__ */ e.jsx("div", { className: $("alert", `alert-${s}`, n), ...i, children: t });
940
+ function Ys({ variant: s = "info", className: n, children: t, ...a }) {
941
+ return /* @__PURE__ */ e.jsx("div", { className: A("alert", `alert-${s}`, n), ...a, children: t });
942
942
  }
943
943
  function V({ className: s, ...n }) {
944
- return /* @__PURE__ */ e.jsx("span", { className: $("spinner", s), ...n });
944
+ return /* @__PURE__ */ e.jsx("span", { className: A("spinner", s), ...n });
945
945
  }
946
- function ce({ message: s, hint: n, className: t, ...i }) {
947
- return /* @__PURE__ */ e.jsxs("div", { className: $("empty-state", t), ...i, children: [
946
+ function te({ message: s, hint: n, className: t, ...a }) {
947
+ return /* @__PURE__ */ e.jsxs("div", { className: A("empty-state", t), ...a, children: [
948
948
  /* @__PURE__ */ e.jsx("p", { children: s }),
949
949
  n && /* @__PURE__ */ e.jsx("p", { className: "text-sm text-muted mt-2", children: n })
950
950
  ] });
951
951
  }
952
- function Je({ items: s, className: n, ...t }) {
953
- return /* @__PURE__ */ e.jsx("dl", { className: $("kv-list", n), ...t, children: s.map(({ label: i, value: d }) => /* @__PURE__ */ e.jsxs("div", { className: "contents", children: [
954
- /* @__PURE__ */ e.jsx("dt", { children: i }),
952
+ function Ge({ items: s, className: n, ...t }) {
953
+ return /* @__PURE__ */ e.jsx("dl", { className: A("kv-list", n), ...t, children: s.map(({ label: a, value: d }) => /* @__PURE__ */ e.jsxs("div", { className: "contents", children: [
954
+ /* @__PURE__ */ e.jsx("dt", { children: a }),
955
955
  /* @__PURE__ */ e.jsx("dd", { children: d })
956
- ] }, i)) });
956
+ ] }, a)) });
957
957
  }
958
- function Dr({ open: s, onClose: n, title: t, children: i, actions: d }) {
958
+ function Es({ open: s, onClose: n, title: t, children: a, actions: d }) {
959
959
  return s ? /* @__PURE__ */ e.jsx(
960
960
  "div",
961
961
  {
962
- className: $("modal-backdrop", s && "active"),
963
- onClick: (o) => o.target === o.currentTarget && n(),
964
- children: /* @__PURE__ */ e.jsxs("div", { className: "modal", onClick: (o) => o.stopPropagation(), children: [
962
+ className: A("modal-backdrop", s && "active"),
963
+ onClick: (h) => h.target === h.currentTarget && n(),
964
+ children: /* @__PURE__ */ e.jsxs("div", { className: "modal", onClick: (h) => h.stopPropagation(), children: [
965
965
  /* @__PURE__ */ e.jsx("h3", { className: "modal-title", children: t }),
966
- /* @__PURE__ */ e.jsx("div", { className: "modal-body", children: i }),
966
+ /* @__PURE__ */ e.jsx("div", { className: "modal-body", children: a }),
967
967
  d && /* @__PURE__ */ e.jsx("div", { className: "modal-actions", children: d })
968
968
  ] })
969
969
  }
970
970
  ) : null;
971
971
  }
972
- function Be({ message: s, variant: n = "info", visible: t, onClose: i }) {
972
+ function Ss({ message: s, variant: n = "info", visible: t, onClose: a }) {
973
973
  if (!t) return null;
974
974
  const d = {
975
- success: "",
976
- error: "",
977
- info: "i"
978
- }[n], o = {
979
- success: "text-[#059669]",
980
- error: "text-[#DC4A4A]",
981
- info: "text-[#2563EB]"
975
+ success: "bg-success-bg text-[#065f46] border-[#a7f3d0]",
976
+ error: "bg-danger-bg text-[#991b1b] border-[#fecaca]",
977
+ info: "bg-info-bg text-[#1e40af] border-[#bfdbfe]"
982
978
  }[n];
983
- return /* @__PURE__ */ e.jsxs("div", { className: "toast", onClick: i, children: [
984
- /* @__PURE__ */ e.jsx("span", { className: $("mr-2 font-bold", o), children: d }),
985
- s
986
- ] });
979
+ return /* @__PURE__ */ e.jsx("div", { className: A("toast", d), onClick: a, children: s });
987
980
  }
988
- function X({ children: s, className: n }) {
989
- return /* @__PURE__ */ e.jsx("div", { className: $("form-group", n), children: s });
981
+ function H({ children: s, className: n }) {
982
+ return /* @__PURE__ */ e.jsx("div", { className: A("form-group", n), children: s });
990
983
  }
991
- function re({ className: s, children: n, ...t }) {
992
- return /* @__PURE__ */ e.jsx("label", { className: $("form-label", s), ...t, children: n });
984
+ function Z({ className: s, children: n, ...t }) {
985
+ return /* @__PURE__ */ e.jsx("label", { className: A("form-label", s), ...t, children: n });
993
986
  }
994
- const Qe = He(
995
- ({ className: s, ...n }, t) => /* @__PURE__ */ e.jsx("input", { ref: t, className: $("form-input", s), ...n })
987
+ const Ke = Ve(
988
+ ({ className: s, ...n }, t) => /* @__PURE__ */ e.jsx("input", { ref: t, className: A("form-input", s), ...n })
996
989
  );
997
- Qe.displayName = "Input";
998
- const ae = He(
999
- ({ className: s, children: n, ...t }, i) => /* @__PURE__ */ e.jsx("select", { ref: i, className: $("form-input", s), ...t, children: n })
990
+ Ke.displayName = "Input";
991
+ const se = Ve(
992
+ ({ className: s, children: n, ...t }, a) => /* @__PURE__ */ e.jsx("select", { ref: a, className: A("form-input", s), ...t, children: n })
1000
993
  );
1001
- ae.displayName = "Select";
1002
- function kr({ children: s, className: n }) {
1003
- return /* @__PURE__ */ e.jsx("div", { className: $("form-row", n), children: s });
994
+ se.displayName = "Select";
995
+ function Cr({ children: s, className: n }) {
996
+ return /* @__PURE__ */ e.jsx("div", { className: A("form-row", n), children: s });
1004
997
  }
1005
- function L({ className: s, children: n, ...t }) {
1006
- return /* @__PURE__ */ e.jsx("table", { className: $("table", s), ...t, children: n });
998
+ function O({ className: s, children: n, ...t }) {
999
+ return /* @__PURE__ */ e.jsx("table", { className: A("table", s), ...t, children: n });
1007
1000
  }
1008
- function ee({ className: s, children: n, ...t }) {
1001
+ function Q({ className: s, children: n, ...t }) {
1009
1002
  return /* @__PURE__ */ e.jsx("thead", { className: s, ...t, children: n });
1010
1003
  }
1011
- function I({ className: s, children: n, ...t }) {
1004
+ function F({ className: s, children: n, ...t }) {
1012
1005
  return /* @__PURE__ */ e.jsx("tbody", { className: s, ...t, children: n });
1013
1006
  }
1014
- function j({ className: s, children: n, ...t }) {
1007
+ function m({ className: s, children: n, ...t }) {
1015
1008
  return /* @__PURE__ */ e.jsx("tr", { className: s, ...t, children: n });
1016
1009
  }
1017
- function y({ className: s, children: n, ...t }) {
1010
+ function b({ className: s, children: n, ...t }) {
1018
1011
  return /* @__PURE__ */ e.jsx("th", { className: s, ...t, children: n });
1019
1012
  }
1020
1013
  function c({ className: s, children: n, ...t }) {
1021
1014
  return /* @__PURE__ */ e.jsx("td", { className: s, ...t, children: n });
1022
1015
  }
1023
- function Ar({ status: s }) {
1016
+ function Dr({ status: s }) {
1024
1017
  const n = {
1025
1018
  FINISHED: "success",
1026
1019
  FAILED: "danger",
@@ -1029,122 +1022,85 @@ function Ar({ status: s }) {
1029
1022
  }[s];
1030
1023
  return /* @__PURE__ */ e.jsx(B, { variant: n, children: s });
1031
1024
  }
1032
- function Ze({ runs: s, onDelete: n, loading: t, emptyHint: i, baselineRunId: d }) {
1033
- const [o, m] = O(null), a = () => {
1034
- o && n && (n(o.run_id), m(null));
1035
- };
1036
- return s.length ? /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1037
- /* @__PURE__ */ e.jsxs(L, { children: [
1038
- /* @__PURE__ */ e.jsx(ee, { children: /* @__PURE__ */ e.jsxs(j, { children: [
1039
- /* @__PURE__ */ e.jsx(y, { children: "Run ID" }),
1040
- /* @__PURE__ */ e.jsx(y, { children: "Name" }),
1041
- /* @__PURE__ */ e.jsx(y, { children: "Project" }),
1042
- /* @__PURE__ */ e.jsx(y, { children: "Status" }),
1043
- /* @__PURE__ */ e.jsx(y, { children: "Created" }),
1044
- /* @__PURE__ */ e.jsx(y, { children: "Actions" })
1045
- ] }) }),
1046
- /* @__PURE__ */ e.jsx(I, { children: s.map((u) => /* @__PURE__ */ e.jsxs(j, { children: [
1047
- /* @__PURE__ */ e.jsxs(c, { children: [
1048
- /* @__PURE__ */ e.jsx(q, { to: `/runs/${u.run_id}`, className: "font-mono", children: z(u.run_id) }),
1049
- u.run_id === d && /* @__PURE__ */ e.jsx(B, { variant: "info", className: "ml-2", children: "Baseline" })
1050
- ] }),
1051
- /* @__PURE__ */ e.jsx(c, { children: u.run_name || "—" }),
1052
- /* @__PURE__ */ e.jsx(c, { children: u.project }),
1053
- /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(Ar, { status: u.status }) }),
1054
- /* @__PURE__ */ e.jsx(c, { className: "text-muted", children: Fe(u.created_at) }),
1055
- /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsxs("div", { className: "flex gap-2", children: [
1056
- /* @__PURE__ */ e.jsx(q, { to: `/runs/${u.run_id}`, children: /* @__PURE__ */ e.jsx(F, { variant: "secondary", size: "sm", children: "View" }) }),
1057
- n && /* @__PURE__ */ e.jsx(
1058
- F,
1059
- {
1060
- variant: "ghost-danger",
1061
- size: "sm",
1062
- onClick: () => m(u),
1063
- disabled: t,
1064
- children: "Delete"
1065
- }
1066
- )
1067
- ] }) })
1068
- ] }, u.run_id)) })
1069
- ] }),
1070
- /* @__PURE__ */ e.jsxs(
1071
- Dr,
1072
- {
1073
- open: !!o,
1074
- onClose: () => m(null),
1075
- title: "Delete Run",
1076
- actions: /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1077
- /* @__PURE__ */ e.jsx(F, { variant: "secondary", onClick: () => m(null), children: "Cancel" }),
1078
- /* @__PURE__ */ e.jsxs(F, { variant: "danger", onClick: a, disabled: t, children: [
1079
- t && /* @__PURE__ */ e.jsx(V, {}),
1080
- "Delete"
1081
- ] })
1082
- ] }),
1083
- children: [
1084
- /* @__PURE__ */ e.jsx("p", { children: "Are you sure you want to delete this run?" }),
1085
- o && /* @__PURE__ */ e.jsx("p", { className: "font-mono text-sm mt-2", children: z(o.run_id) }),
1086
- /* @__PURE__ */ e.jsx("p", { className: "text-sm text-danger mt-2", children: "This action cannot be undone." })
1087
- ]
1088
- }
1089
- )
1025
+ function Je({ runs: s, onDelete: n, loading: t, emptyHint: a }) {
1026
+ return s.length ? /* @__PURE__ */ e.jsxs(O, { children: [
1027
+ /* @__PURE__ */ e.jsx(Q, { children: /* @__PURE__ */ e.jsxs(m, { children: [
1028
+ /* @__PURE__ */ e.jsx(b, { children: "Run ID" }),
1029
+ /* @__PURE__ */ e.jsx(b, { children: "Name" }),
1030
+ /* @__PURE__ */ e.jsx(b, { children: "Project" }),
1031
+ /* @__PURE__ */ e.jsx(b, { children: "Status" }),
1032
+ /* @__PURE__ */ e.jsx(b, { children: "Created" }),
1033
+ /* @__PURE__ */ e.jsx(b, { children: "Actions" })
1034
+ ] }) }),
1035
+ /* @__PURE__ */ e.jsx(F, { children: s.map((d) => /* @__PURE__ */ e.jsxs(m, { children: [
1036
+ /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(M, { to: `/runs/${d.run_id}`, className: "font-mono", children: K(d.run_id) }) }),
1037
+ /* @__PURE__ */ e.jsx(c, { children: d.run_name || "" }),
1038
+ /* @__PURE__ */ e.jsx(c, { children: d.project }),
1039
+ /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(Dr, { status: d.status }) }),
1040
+ /* @__PURE__ */ e.jsx(c, { className: "text-muted", children: Te(d.created_at) }),
1041
+ /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsxs("div", { className: "flex gap-2", children: [
1042
+ /* @__PURE__ */ e.jsx(M, { to: `/runs/${d.run_id}`, children: /* @__PURE__ */ e.jsx(k, { variant: "secondary", size: "sm", children: "View" }) }),
1043
+ n && /* @__PURE__ */ e.jsx(
1044
+ k,
1045
+ {
1046
+ variant: "ghost-danger",
1047
+ size: "sm",
1048
+ onClick: () => {
1049
+ confirm(`Delete run ${K(d.run_id)}? This cannot be undone.`) && n(d.run_id);
1050
+ },
1051
+ disabled: t,
1052
+ children: "Delete"
1053
+ }
1054
+ )
1055
+ ] }) })
1056
+ ] }, d.run_id)) })
1090
1057
  ] }) : /* @__PURE__ */ e.jsx(
1091
- ce,
1058
+ te,
1092
1059
  {
1093
1060
  message: "No runs found",
1094
- hint: i ?? "Try adjusting your filters"
1061
+ hint: a ?? "Try adjusting your filters"
1095
1062
  }
1096
1063
  );
1097
1064
  }
1098
- function Cs() {
1099
- const [s, n] = Oe(), { api: t } = W(), { data: i } = $e(), [d, o] = O(null), [m, a] = O({
1065
+ function Ps() {
1066
+ const [s, n] = Ce(), { api: t } = Y(), { data: a } = ze(), [d, h] = U({
1100
1067
  project: s.get("project") || "",
1101
1068
  status: s.get("status") || "",
1102
1069
  q: s.get("q") || "",
1103
1070
  limit: parseInt(s.get("limit") || "25", 10)
1104
- }), { data: u, loading: x, refetch: g } = Cr(m), f = ye((w) => t.deleteRun(w));
1105
- xe(() => {
1106
- if (d) {
1107
- const w = setTimeout(() => o(null), 3e3);
1108
- return () => clearTimeout(w);
1109
- }
1110
- }, [d]);
1111
- const R = be((w, Q) => {
1112
- a((H) => ({ ...H, [w]: Q }));
1071
+ }), { data: f, loading: i, refetch: x } = Sr(d), o = je((_) => t.deleteRun(_)), p = me((_, G) => {
1072
+ h((ce) => ({ ...ce, [_]: G }));
1113
1073
  const J = new URLSearchParams(s);
1114
- Q ? J.set(w, String(Q)) : J.delete(w), n(J, { replace: !0 });
1115
- }, [s, n]), K = be(async (w) => {
1116
- try {
1117
- await f.mutate(w), o({ message: "Run deleted", variant: "success" }), g();
1118
- } catch {
1119
- o({ message: "Failed to delete run", variant: "error" });
1120
- }
1121
- }, [f, g]);
1122
- return /* @__PURE__ */ e.jsxs(G, { children: [
1123
- /* @__PURE__ */ e.jsx(_e, { title: "Runs" }),
1124
- /* @__PURE__ */ e.jsx(N, { className: "mb-4", children: /* @__PURE__ */ e.jsxs(kr, { children: [
1125
- /* @__PURE__ */ e.jsxs(X, { children: [
1126
- /* @__PURE__ */ e.jsx(re, { htmlFor: "project", children: "Project" }),
1074
+ G ? J.set(_, String(G)) : J.delete(_), n(J, { replace: !0 });
1075
+ }, [s, n]), $ = me(async (_) => {
1076
+ await o.mutate(_), x();
1077
+ }, [o, x]);
1078
+ return /* @__PURE__ */ e.jsxs(q, { children: [
1079
+ /* @__PURE__ */ e.jsx(pe, { title: "Runs" }),
1080
+ /* @__PURE__ */ e.jsx(v, { className: "mb-4", children: /* @__PURE__ */ e.jsxs(Cr, { children: [
1081
+ /* @__PURE__ */ e.jsxs(H, { children: [
1082
+ /* @__PURE__ */ e.jsx(Z, { htmlFor: "project", children: "Project" }),
1127
1083
  /* @__PURE__ */ e.jsxs(
1128
- ae,
1084
+ se,
1129
1085
  {
1130
1086
  id: "project",
1131
- value: m.project,
1132
- onChange: (w) => R("project", w.target.value),
1087
+ value: d.project,
1088
+ onChange: (_) => p("project", _.target.value),
1133
1089
  children: [
1134
1090
  /* @__PURE__ */ e.jsx("option", { value: "", children: "All projects" }),
1135
- i?.map((w) => /* @__PURE__ */ e.jsx("option", { value: w.name, children: w.name }, w.name))
1091
+ a?.map((_) => /* @__PURE__ */ e.jsx("option", { value: _.name, children: _.name }, _.name))
1136
1092
  ]
1137
1093
  }
1138
1094
  )
1139
1095
  ] }),
1140
- /* @__PURE__ */ e.jsxs(X, { children: [
1141
- /* @__PURE__ */ e.jsx(re, { htmlFor: "status", children: "Status" }),
1096
+ /* @__PURE__ */ e.jsxs(H, { children: [
1097
+ /* @__PURE__ */ e.jsx(Z, { htmlFor: "status", children: "Status" }),
1142
1098
  /* @__PURE__ */ e.jsxs(
1143
- ae,
1099
+ se,
1144
1100
  {
1145
1101
  id: "status",
1146
- value: m.status,
1147
- onChange: (w) => R("status", w.target.value),
1102
+ value: d.status,
1103
+ onChange: (_) => p("status", _.target.value),
1148
1104
  children: [
1149
1105
  /* @__PURE__ */ e.jsx("option", { value: "", children: "All" }),
1150
1106
  /* @__PURE__ */ e.jsx("option", { value: "FINISHED", children: "Finished" }),
@@ -1154,26 +1110,26 @@ function Cs() {
1154
1110
  }
1155
1111
  )
1156
1112
  ] }),
1157
- /* @__PURE__ */ e.jsxs(X, { children: [
1158
- /* @__PURE__ */ e.jsx(re, { htmlFor: "q", children: "Query" }),
1113
+ /* @__PURE__ */ e.jsxs(H, { children: [
1114
+ /* @__PURE__ */ e.jsx(Z, { htmlFor: "q", children: "Query" }),
1159
1115
  /* @__PURE__ */ e.jsx(
1160
- Qe,
1116
+ Ke,
1161
1117
  {
1162
1118
  id: "q",
1163
- value: m.q,
1164
- onChange: (w) => R("q", w.target.value),
1119
+ value: d.q,
1120
+ onChange: (_) => p("q", _.target.value),
1165
1121
  placeholder: "metric.fidelity > 0.9"
1166
1122
  }
1167
1123
  )
1168
1124
  ] }),
1169
- /* @__PURE__ */ e.jsxs(X, { children: [
1170
- /* @__PURE__ */ e.jsx(re, { htmlFor: "limit", children: "Limit" }),
1125
+ /* @__PURE__ */ e.jsxs(H, { children: [
1126
+ /* @__PURE__ */ e.jsx(Z, { htmlFor: "limit", children: "Limit" }),
1171
1127
  /* @__PURE__ */ e.jsxs(
1172
- ae,
1128
+ se,
1173
1129
  {
1174
1130
  id: "limit",
1175
- value: m.limit,
1176
- onChange: (w) => R("limit", parseInt(w.target.value, 10)),
1131
+ value: d.limit,
1132
+ onChange: (_) => p("limit", parseInt(_.target.value, 10)),
1177
1133
  children: [
1178
1134
  /* @__PURE__ */ e.jsx("option", { value: "25", children: "25" }),
1179
1135
  /* @__PURE__ */ e.jsx("option", { value: "50", children: "50" }),
@@ -1182,83 +1138,73 @@ function Cs() {
1182
1138
  }
1183
1139
  )
1184
1140
  ] }),
1185
- /* @__PURE__ */ e.jsxs(X, { className: "flex items-end gap-2", children: [
1186
- /* @__PURE__ */ e.jsx(F, { variant: "primary", onClick: () => g(), children: "Filter" }),
1187
- x && /* @__PURE__ */ e.jsx(V, {})
1141
+ /* @__PURE__ */ e.jsxs(H, { className: "flex items-end gap-2", children: [
1142
+ /* @__PURE__ */ e.jsx(k, { variant: "primary", onClick: () => x(), children: "Filter" }),
1143
+ i && /* @__PURE__ */ e.jsx(V, {})
1188
1144
  ] })
1189
1145
  ] }) }),
1190
- /* @__PURE__ */ e.jsx(N, { children: x && !u ? /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-8", children: /* @__PURE__ */ e.jsx(V, {}) }) : /* @__PURE__ */ e.jsx(
1191
- Ze,
1192
- {
1193
- runs: u?.runs ?? [],
1194
- onDelete: K,
1195
- loading: f.loading,
1196
- baselineRunId: m.project ? i?.find((w) => w.name === m.project)?.baseline?.run_id : void 0
1197
- }
1198
- ) }),
1199
- d && /* @__PURE__ */ e.jsx(
1200
- Be,
1146
+ /* @__PURE__ */ e.jsx(v, { children: i && !f ? /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-8", children: /* @__PURE__ */ e.jsx(V, {}) }) : /* @__PURE__ */ e.jsx(
1147
+ Je,
1201
1148
  {
1202
- message: d.message,
1203
- variant: d.variant,
1204
- visible: !!d,
1205
- onClose: () => o(null)
1149
+ runs: f?.runs ?? [],
1150
+ onDelete: $,
1151
+ loading: o.loading
1206
1152
  }
1207
- )
1153
+ ) })
1208
1154
  ] });
1209
1155
  }
1210
- function Ps({ projects: s, currentWorkspace: n }) {
1156
+ function Ts({ projects: s, currentWorkspace: n }) {
1211
1157
  if (!s.length)
1212
1158
  return /* @__PURE__ */ e.jsx(
1213
- ce,
1159
+ te,
1214
1160
  {
1215
1161
  message: "No projects yet",
1216
1162
  hint: "Projects are created automatically when you log runs"
1217
1163
  }
1218
1164
  );
1219
- const t = (i) => {
1220
- const d = new URLSearchParams({ project: i });
1165
+ const t = (a) => {
1166
+ const d = new URLSearchParams({ project: a });
1221
1167
  return n && d.set("workspace", n.id), `/runs?${d}`;
1222
1168
  };
1223
- return /* @__PURE__ */ e.jsxs(L, { children: [
1224
- /* @__PURE__ */ e.jsx(ee, { children: /* @__PURE__ */ e.jsxs(j, { children: [
1225
- /* @__PURE__ */ e.jsx(y, { children: "Project" }),
1226
- /* @__PURE__ */ e.jsx(y, { children: "Runs" }),
1227
- /* @__PURE__ */ e.jsx(y, { children: "Baseline" }),
1228
- /* @__PURE__ */ e.jsx(y, {})
1169
+ return /* @__PURE__ */ e.jsxs(O, { children: [
1170
+ /* @__PURE__ */ e.jsx(Q, { children: /* @__PURE__ */ e.jsxs(m, { children: [
1171
+ /* @__PURE__ */ e.jsx(b, { children: "Project" }),
1172
+ /* @__PURE__ */ e.jsx(b, { children: "Runs" }),
1173
+ /* @__PURE__ */ e.jsx(b, { children: "Baseline" }),
1174
+ /* @__PURE__ */ e.jsx(b, {})
1229
1175
  ] }) }),
1230
- /* @__PURE__ */ e.jsx(I, { children: s.map((i) => /* @__PURE__ */ e.jsxs(j, { children: [
1176
+ /* @__PURE__ */ e.jsx(F, { children: s.map((a) => /* @__PURE__ */ e.jsxs(m, { children: [
1231
1177
  /* @__PURE__ */ e.jsxs(c, { children: [
1232
- /* @__PURE__ */ e.jsx("span", { className: "font-medium", children: i.name }),
1233
- i.description && /* @__PURE__ */ e.jsx("p", { className: "text-muted text-sm", children: ws(i.description) })
1178
+ /* @__PURE__ */ e.jsx("span", { className: "font-medium", children: a.name }),
1179
+ a.description && /* @__PURE__ */ e.jsx("p", { className: "text-muted text-sm", children: ys(a.description) })
1234
1180
  ] }),
1235
- /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(B, { variant: "gray", children: i.run_count ?? 0 }) }),
1236
- /* @__PURE__ */ e.jsx(c, { children: i.baseline ? /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1237
- /* @__PURE__ */ e.jsx(q, { to: `/runs/${i.baseline.run_id}`, className: "font-mono text-sm", children: z(i.baseline.run_id) }),
1238
- i.baseline.run_name && /* @__PURE__ */ e.jsx("p", { className: "text-muted text-sm", children: i.baseline.run_name })
1181
+ /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(B, { variant: "gray", children: a.run_count ?? 0 }) }),
1182
+ /* @__PURE__ */ e.jsx(c, { children: a.baseline ? /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1183
+ /* @__PURE__ */ e.jsx(M, { to: `/runs/${a.baseline.run_id}`, className: "font-mono text-sm", children: K(a.baseline.run_id) }),
1184
+ a.baseline.run_name && /* @__PURE__ */ e.jsx("p", { className: "text-muted text-sm", children: a.baseline.run_name })
1239
1185
  ] }) : /* @__PURE__ */ e.jsx("span", { className: "text-muted", children: "—" }) }),
1240
- /* @__PURE__ */ e.jsx(c, { className: "text-right", children: /* @__PURE__ */ e.jsx(q, { to: t(i.name), children: /* @__PURE__ */ e.jsx(F, { variant: "secondary", size: "sm", children: "View Runs" }) }) })
1241
- ] }, i.name)) })
1186
+ /* @__PURE__ */ e.jsx(c, { className: "text-right", children: /* @__PURE__ */ e.jsx(M, { to: t(a.name), children: /* @__PURE__ */ e.jsx(k, { variant: "secondary", size: "sm", children: "View Runs" }) }) })
1187
+ ] }, a.name)) })
1242
1188
  ] });
1243
1189
  }
1244
- function Ss({ groups: s }) {
1245
- return s.length ? /* @__PURE__ */ e.jsxs(L, { children: [
1246
- /* @__PURE__ */ e.jsx(ee, { children: /* @__PURE__ */ e.jsxs(j, { children: [
1247
- /* @__PURE__ */ e.jsx(y, { children: "Group ID" }),
1248
- /* @__PURE__ */ e.jsx(y, { children: "Name" }),
1249
- /* @__PURE__ */ e.jsx(y, { children: "Project" }),
1250
- /* @__PURE__ */ e.jsx(y, { children: "Runs" }),
1251
- /* @__PURE__ */ e.jsx(y, { children: "Actions" })
1190
+ function Cs({ groups: s }) {
1191
+ return s.length ? /* @__PURE__ */ e.jsxs(O, { children: [
1192
+ /* @__PURE__ */ e.jsx(Q, { children: /* @__PURE__ */ e.jsxs(m, { children: [
1193
+ /* @__PURE__ */ e.jsx(b, { children: "Group ID" }),
1194
+ /* @__PURE__ */ e.jsx(b, { children: "Name" }),
1195
+ /* @__PURE__ */ e.jsx(b, { children: "Project" }),
1196
+ /* @__PURE__ */ e.jsx(b, { children: "Runs" }),
1197
+ /* @__PURE__ */ e.jsx(b, { children: "Actions" })
1252
1198
  ] }) }),
1253
- /* @__PURE__ */ e.jsx(I, { children: s.map((n) => /* @__PURE__ */ e.jsxs(j, { children: [
1254
- /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: z(n.group_id) }),
1199
+ /* @__PURE__ */ e.jsx(F, { children: s.map((n) => /* @__PURE__ */ e.jsxs(m, { children: [
1200
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: K(n.group_id) }),
1255
1201
  /* @__PURE__ */ e.jsx(c, { children: n.group_name || "—" }),
1256
1202
  /* @__PURE__ */ e.jsx(c, { children: n.project }),
1257
1203
  /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(B, { variant: "gray", children: n.run_count }) }),
1258
- /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(q, { to: `/groups/${n.group_id}`, children: /* @__PURE__ */ e.jsx(F, { variant: "secondary", size: "sm", children: "View Runs" }) }) })
1204
+ /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(M, { to: `/groups/${n.group_id}`, children: /* @__PURE__ */ e.jsx(k, { variant: "secondary", size: "sm", children: "View Runs" }) }) })
1259
1205
  ] }, n.group_id)) })
1260
1206
  ] }) : /* @__PURE__ */ e.jsx(
1261
- ce,
1207
+ te,
1262
1208
  {
1263
1209
  message: "No groups found",
1264
1210
  hint: "Groups are created when runs have a group_id set"
@@ -1266,325 +1212,282 @@ function Ss({ groups: s }) {
1266
1212
  );
1267
1213
  }
1268
1214
  function Ds() {
1269
- const { runId: s } = Xe(), n = os(), { api: t } = W(), { data: i, loading: d, error: o, refetch: m } = Pr(s), { data: a, refetch: u } = $e(), [x, g] = O(!1), [f, R] = O(null), { mutate: K, loading: w } = ye(
1270
- () => t.setBaseline(i.project, i.run_id)
1271
- ), { mutate: Q, loading: J } = ye(
1215
+ const { runId: s } = Ye(), n = cs(), { api: t } = Y(), { data: a, loading: d, error: h, refetch: f } = Pr(s), [i, x] = U(!1), [o, p] = U(null), { mutate: $, loading: _ } = je(
1216
+ () => t.setBaseline(a.project, a.run_id)
1217
+ ), { mutate: G, loading: J } = je(
1272
1218
  () => t.deleteRun(s)
1273
- ), P = a?.find((b) => b.name === i?.project)?.baseline?.run_id === s;
1274
- if (xe(() => {
1275
- if (f) {
1276
- const b = setTimeout(() => R(null), 3e3);
1277
- return () => clearTimeout(b);
1219
+ );
1220
+ if (We(() => {
1221
+ if (o) {
1222
+ const w = setTimeout(() => p(null), 3e3);
1223
+ return () => clearTimeout(w);
1278
1224
  }
1279
- }, [f]), d)
1280
- return /* @__PURE__ */ e.jsx(G, { children: /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e.jsx(V, {}) }) });
1281
- if (o || !i)
1282
- return /* @__PURE__ */ e.jsx(G, { children: /* @__PURE__ */ e.jsx(N, { children: /* @__PURE__ */ e.jsx(
1283
- ce,
1225
+ }, [o]), d)
1226
+ return /* @__PURE__ */ e.jsx(q, { children: /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e.jsx(V, {}) }) });
1227
+ if (h || !a)
1228
+ return /* @__PURE__ */ e.jsx(q, { children: /* @__PURE__ */ e.jsx(v, { children: /* @__PURE__ */ e.jsx(
1229
+ te,
1284
1230
  {
1285
1231
  message: "Run not found",
1286
- hint: o?.message || `Run ${s} does not exist`
1232
+ hint: h?.message || `Run ${s} does not exist`
1287
1233
  }
1288
1234
  ) }) });
1289
- const le = i.backend || {}, oe = i.fingerprints || {}, Z = i.data?.params || {}, Re = i.data?.metrics || {}, we = i.data?.tags || {}, de = i.artifacts || [], me = i.errors || [], Le = async () => {
1235
+ const ce = a.backend || {}, ge = a.fingerprints || {}, X = a.data?.params || {}, C = a.data?.metrics || {}, ve = a.data?.tags || {}, le = a.artifacts || [], be = a.errors || [], De = async () => {
1236
+ await $(), f();
1237
+ }, ke = async () => {
1238
+ await G(), n("/runs");
1239
+ }, Ae = async (w) => {
1290
1240
  try {
1291
- await K(), await u(), m(), R({ message: "Baseline updated", variant: "success" });
1241
+ const D = t.getArtifactDownloadUrl(a.run_id, w), Ne = await fetch(D);
1242
+ if (!Ne.ok) throw new Error("Download failed");
1243
+ const _e = await Ne.blob(), W = document.createElement("a");
1244
+ W.href = URL.createObjectURL(_e), W.download = `artifact-${w}`, W.click(), URL.revokeObjectURL(W.href), p({ message: "Download started", variant: "success" });
1292
1245
  } catch {
1293
- R({ message: "Failed to set baseline", variant: "error" });
1294
- }
1295
- }, Ie = async () => {
1296
- try {
1297
- await Q(), g(!1), R({ message: "Run deleted", variant: "success" }), setTimeout(() => n("/runs"), 1e3);
1298
- } catch {
1299
- R({ message: "Failed to delete run", variant: "error" }), g(!1);
1300
- }
1301
- }, Ee = async (b) => {
1302
- const C = de[b];
1303
- try {
1304
- const se = t.getArtifactDownloadUrl(i.run_id, b), je = await fetch(se);
1305
- if (!je.ok) throw new Error("Download failed");
1306
- const Te = await je.blob(), ne = document.createElement("a");
1307
- ne.href = URL.createObjectURL(Te), ne.download = C?.kind || `artifact-${b}`, ne.click(), URL.revokeObjectURL(ne.href), R({ message: "Download started", variant: "success" });
1308
- } catch {
1309
- R({ message: "Download failed", variant: "error" });
1246
+ p({ message: "Download failed", variant: "error" });
1310
1247
  }
1311
1248
  };
1312
- return /* @__PURE__ */ e.jsxs(G, { children: [
1313
- P && /* @__PURE__ */ e.jsxs("div", { className: "alert alert-info mb-4", children: [
1314
- 'This run is the current baseline for project "',
1315
- i.project,
1316
- '"'
1317
- ] }),
1249
+ return /* @__PURE__ */ e.jsxs(q, { children: [
1318
1250
  /* @__PURE__ */ e.jsxs("div", { className: "page-header", children: [
1319
1251
  /* @__PURE__ */ e.jsxs("div", { children: [
1320
- /* @__PURE__ */ e.jsx("h1", { className: "page-title", children: i.run_name || "Unnamed Run" }),
1321
- /* @__PURE__ */ e.jsx("p", { className: "text-muted text-sm font-mono", children: i.run_id })
1252
+ /* @__PURE__ */ e.jsx("h1", { className: "page-title", children: a.run_name || "Unnamed Run" }),
1253
+ /* @__PURE__ */ e.jsx("p", { className: "text-muted text-sm font-mono", children: a.run_id })
1322
1254
  ] }),
1323
1255
  /* @__PURE__ */ e.jsxs("div", { className: "flex gap-2", children: [
1324
- !P && /* @__PURE__ */ e.jsxs(F, { variant: "secondary", size: "sm", onClick: Le, disabled: w, children: [
1325
- w && /* @__PURE__ */ e.jsx(V, {}),
1256
+ /* @__PURE__ */ e.jsxs(k, { variant: "secondary", size: "sm", onClick: De, disabled: _, children: [
1257
+ _ && /* @__PURE__ */ e.jsx(V, {}),
1326
1258
  "Set as Baseline"
1327
1259
  ] }),
1328
- /* @__PURE__ */ e.jsx(F, { variant: "ghost-danger", size: "sm", onClick: () => g(!0), children: "Delete" })
1260
+ /* @__PURE__ */ e.jsx(k, { variant: "ghost-danger", size: "sm", onClick: () => x(!0), children: "Delete" })
1329
1261
  ] })
1330
1262
  ] }),
1331
1263
  /* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4 mb-4", children: [
1332
- /* @__PURE__ */ e.jsxs(N, { children: [
1333
- /* @__PURE__ */ e.jsx(D, { children: /* @__PURE__ */ e.jsx(k, { children: "Overview" }) }),
1334
- /* @__PURE__ */ e.jsx(Je, { items: [
1335
- { label: "Project", value: /* @__PURE__ */ e.jsx(q, { to: `/runs?project=${i.project}`, children: i.project }) },
1336
- { label: "Name", value: i.run_name || "—" },
1337
- { label: "Adapter", value: i.adapter || "N/A" },
1338
- { label: "Status", value: /* @__PURE__ */ e.jsx(Ar, { status: i.status }) },
1339
- { label: "Created", value: `${i.created_at} (${Fe(i.created_at)})` },
1340
- { label: "Backend", value: le.name || "N/A" },
1341
- ...i.group_id ? [{
1264
+ /* @__PURE__ */ e.jsxs(v, { children: [
1265
+ /* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Overview" }) }),
1266
+ /* @__PURE__ */ e.jsx(Ge, { items: [
1267
+ { label: "Project", value: /* @__PURE__ */ e.jsx(M, { to: `/runs?project=${a.project}`, children: a.project }) },
1268
+ { label: "Name", value: a.run_name || "—" },
1269
+ { label: "Adapter", value: a.adapter || "N/A" },
1270
+ { label: "Status", value: /* @__PURE__ */ e.jsx(Dr, { status: a.status }) },
1271
+ { label: "Created", value: `${a.created_at} (${Te(a.created_at)})` },
1272
+ { label: "Backend", value: ce.name || "N/A" },
1273
+ ...a.group_id ? [{
1342
1274
  label: "Group",
1343
- value: /* @__PURE__ */ e.jsx(q, { to: `/groups/${i.group_id}`, children: i.group_name || z(i.group_id) })
1275
+ value: /* @__PURE__ */ e.jsx(M, { to: `/groups/${a.group_id}`, children: a.group_name || K(a.group_id) })
1344
1276
  }] : []
1345
1277
  ] })
1346
1278
  ] }),
1347
- /* @__PURE__ */ e.jsxs(N, { children: [
1348
- /* @__PURE__ */ e.jsx(D, { children: /* @__PURE__ */ e.jsx(k, { children: "Fingerprints" }) }),
1349
- /* @__PURE__ */ e.jsx(Je, { items: [
1350
- { label: "Run", value: /* @__PURE__ */ e.jsx("span", { className: "font-mono text-sm truncate", children: oe.run || "N/A" }) },
1351
- { label: "Program", value: /* @__PURE__ */ e.jsx("span", { className: "font-mono text-sm truncate", children: oe.program || "N/A" }) }
1279
+ /* @__PURE__ */ e.jsxs(v, { children: [
1280
+ /* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Fingerprints" }) }),
1281
+ /* @__PURE__ */ e.jsx(Ge, { items: [
1282
+ { label: "Run", value: /* @__PURE__ */ e.jsx("span", { className: "font-mono text-sm truncate", children: ge.run || "N/A" }) },
1283
+ { label: "Program", value: /* @__PURE__ */ e.jsx("span", { className: "font-mono text-sm truncate", children: ge.program || "N/A" }) }
1352
1284
  ] })
1353
1285
  ] })
1354
1286
  ] }),
1355
1287
  /* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-4 mb-4", children: [
1356
- /* @__PURE__ */ e.jsxs(N, { children: [
1357
- /* @__PURE__ */ e.jsx(D, { children: /* @__PURE__ */ e.jsx(k, { children: "Parameters" }) }),
1358
- Object.keys(Z).length ? /* @__PURE__ */ e.jsx(L, { children: /* @__PURE__ */ e.jsx(I, { children: Object.entries(Z).map(([b, C]) => /* @__PURE__ */ e.jsxs(j, { children: [
1359
- /* @__PURE__ */ e.jsx(c, { children: b }),
1360
- /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: String(C) })
1361
- ] }, b)) }) }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "No parameters" })
1288
+ /* @__PURE__ */ e.jsxs(v, { children: [
1289
+ /* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Parameters" }) }),
1290
+ Object.keys(X).length ? /* @__PURE__ */ e.jsx(O, { children: /* @__PURE__ */ e.jsx(F, { children: Object.entries(X).map(([w, D]) => /* @__PURE__ */ e.jsxs(m, { children: [
1291
+ /* @__PURE__ */ e.jsx(c, { children: w }),
1292
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: String(D) })
1293
+ ] }, w)) }) }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "No parameters" })
1362
1294
  ] }),
1363
- /* @__PURE__ */ e.jsxs(N, { children: [
1364
- /* @__PURE__ */ e.jsx(D, { children: /* @__PURE__ */ e.jsx(k, { children: "Metrics" }) }),
1365
- Object.keys(Re).length ? /* @__PURE__ */ e.jsx(L, { children: /* @__PURE__ */ e.jsx(I, { children: Object.entries(Re).map(([b, C]) => /* @__PURE__ */ e.jsxs(j, { children: [
1366
- /* @__PURE__ */ e.jsx(c, { children: b }),
1367
- /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: typeof C == "number" ? _s(C) : String(C) })
1368
- ] }, b)) }) }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "No metrics" })
1295
+ /* @__PURE__ */ e.jsxs(v, { children: [
1296
+ /* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Metrics" }) }),
1297
+ Object.keys(C).length ? /* @__PURE__ */ e.jsx(O, { children: /* @__PURE__ */ e.jsx(F, { children: Object.entries(C).map(([w, D]) => /* @__PURE__ */ e.jsxs(m, { children: [
1298
+ /* @__PURE__ */ e.jsx(c, { children: w }),
1299
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: typeof D == "number" ? Ns(D) : String(D) })
1300
+ ] }, w)) }) }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "No metrics" })
1369
1301
  ] }),
1370
- /* @__PURE__ */ e.jsxs(N, { children: [
1371
- /* @__PURE__ */ e.jsx(D, { children: /* @__PURE__ */ e.jsx(k, { children: "Tags" }) }),
1372
- Object.keys(we).length ? /* @__PURE__ */ e.jsx("div", { className: "flex flex-wrap gap-2", children: Object.entries(we).map(([b, C]) => /* @__PURE__ */ e.jsxs(B, { variant: "gray", children: [
1373
- b,
1302
+ /* @__PURE__ */ e.jsxs(v, { children: [
1303
+ /* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Tags" }) }),
1304
+ Object.keys(ve).length ? /* @__PURE__ */ e.jsx("div", { className: "flex flex-wrap gap-2", children: Object.entries(ve).map(([w, D]) => /* @__PURE__ */ e.jsxs(B, { variant: "gray", children: [
1305
+ w,
1374
1306
  ": ",
1375
- String(C)
1376
- ] }, b)) }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "No tags" })
1307
+ String(D)
1308
+ ] }, w)) }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "No tags" })
1377
1309
  ] })
1378
1310
  ] }),
1379
- /* @__PURE__ */ e.jsxs(N, { className: "mb-4", children: [
1380
- /* @__PURE__ */ e.jsx(D, { children: /* @__PURE__ */ e.jsxs(k, { children: [
1311
+ /* @__PURE__ */ e.jsxs(v, { className: "mb-4", children: [
1312
+ /* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsxs(P, { children: [
1381
1313
  "Artifacts (",
1382
- de.length,
1314
+ le.length,
1383
1315
  ")"
1384
1316
  ] }) }),
1385
- de.length ? /* @__PURE__ */ e.jsxs(L, { children: [
1386
- /* @__PURE__ */ e.jsx(ee, { children: /* @__PURE__ */ e.jsxs(j, { children: [
1387
- /* @__PURE__ */ e.jsx(y, { children: "#" }),
1388
- /* @__PURE__ */ e.jsx(y, { children: "Kind" }),
1389
- /* @__PURE__ */ e.jsx(y, { children: "Role" }),
1390
- /* @__PURE__ */ e.jsx(y, { children: "Media Type" }),
1391
- /* @__PURE__ */ e.jsx(y, { children: "Digest" }),
1392
- /* @__PURE__ */ e.jsx(y, { children: "Actions" })
1317
+ le.length ? /* @__PURE__ */ e.jsxs(O, { children: [
1318
+ /* @__PURE__ */ e.jsx(Q, { children: /* @__PURE__ */ e.jsxs(m, { children: [
1319
+ /* @__PURE__ */ e.jsx(b, { children: "#" }),
1320
+ /* @__PURE__ */ e.jsx(b, { children: "Kind" }),
1321
+ /* @__PURE__ */ e.jsx(b, { children: "Role" }),
1322
+ /* @__PURE__ */ e.jsx(b, { children: "Media Type" }),
1323
+ /* @__PURE__ */ e.jsx(b, { children: "Digest" }),
1324
+ /* @__PURE__ */ e.jsx(b, { children: "Actions" })
1393
1325
  ] }) }),
1394
- /* @__PURE__ */ e.jsx(I, { children: de.map((b, C) => /* @__PURE__ */ e.jsxs(j, { children: [
1395
- /* @__PURE__ */ e.jsx(c, { children: C }),
1396
- /* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: b.kind }),
1397
- /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(B, { variant: "gray", children: b.role }) }),
1398
- /* @__PURE__ */ e.jsx(c, { className: "text-muted text-sm", children: b.media_type }),
1399
- /* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: Ke(b.digest) }),
1326
+ /* @__PURE__ */ e.jsx(F, { children: le.map((w, D) => /* @__PURE__ */ e.jsxs(m, { children: [
1327
+ /* @__PURE__ */ e.jsx(c, { children: D }),
1328
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: w.kind }),
1329
+ /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(B, { variant: "gray", children: w.role }) }),
1330
+ /* @__PURE__ */ e.jsx(c, { className: "text-muted text-sm", children: w.media_type }),
1331
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: qe(w.digest) }),
1400
1332
  /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsxs("div", { className: "flex gap-2", children: [
1401
- /* @__PURE__ */ e.jsx(q, { to: `/runs/${i.run_id}/artifacts/${C}`, children: /* @__PURE__ */ e.jsx(F, { variant: "secondary", size: "sm", children: "View" }) }),
1402
- /* @__PURE__ */ e.jsx(F, { variant: "secondary", size: "sm", onClick: () => Ee(C), children: "Download" })
1333
+ /* @__PURE__ */ e.jsx(M, { to: `/runs/${a.run_id}/artifacts/${D}`, children: /* @__PURE__ */ e.jsx(k, { variant: "secondary", size: "sm", children: "View" }) }),
1334
+ /* @__PURE__ */ e.jsx(k, { variant: "secondary", size: "sm", onClick: () => Ae(D), children: "Download" })
1403
1335
  ] }) })
1404
- ] }, C)) })
1336
+ ] }, D)) })
1405
1337
  ] }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "No artifacts" })
1406
1338
  ] }),
1407
- me.length > 0 && /* @__PURE__ */ e.jsxs(N, { children: [
1408
- /* @__PURE__ */ e.jsx(D, { children: /* @__PURE__ */ e.jsx(k, { className: "text-danger", children: "Errors" }) }),
1409
- me.map((b, C) => /* @__PURE__ */ e.jsxs("div", { className: "mb-2", children: [
1410
- /* @__PURE__ */ e.jsx("strong", { children: b.type }),
1339
+ be.length > 0 && /* @__PURE__ */ e.jsxs(v, { children: [
1340
+ /* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { className: "text-danger", children: "Errors" }) }),
1341
+ be.map((w, D) => /* @__PURE__ */ e.jsxs("div", { className: "mb-2", children: [
1342
+ /* @__PURE__ */ e.jsx("strong", { children: w.type }),
1411
1343
  ": ",
1412
- b.message,
1413
- b.traceback && /* @__PURE__ */ e.jsx("pre", { className: "mt-2", children: b.traceback })
1414
- ] }, C))
1344
+ w.message,
1345
+ w.traceback && /* @__PURE__ */ e.jsx("pre", { className: "mt-2", children: w.traceback })
1346
+ ] }, D))
1415
1347
  ] }),
1416
1348
  /* @__PURE__ */ e.jsxs(
1417
- Dr,
1349
+ Es,
1418
1350
  {
1419
- open: x,
1420
- onClose: () => g(!1),
1351
+ open: i,
1352
+ onClose: () => x(!1),
1421
1353
  title: "Delete Run",
1422
1354
  actions: /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1423
- /* @__PURE__ */ e.jsx(F, { variant: "secondary", onClick: () => g(!1), children: "Cancel" }),
1424
- /* @__PURE__ */ e.jsxs(F, { variant: "danger", onClick: Ie, disabled: J, children: [
1355
+ /* @__PURE__ */ e.jsx(k, { variant: "secondary", onClick: () => x(!1), children: "Cancel" }),
1356
+ /* @__PURE__ */ e.jsxs(k, { variant: "danger", onClick: ke, disabled: J, children: [
1425
1357
  J && /* @__PURE__ */ e.jsx(V, {}),
1426
1358
  "Delete"
1427
1359
  ] })
1428
1360
  ] }),
1429
1361
  children: [
1430
1362
  /* @__PURE__ */ e.jsx("p", { children: "Are you sure you want to delete this run?" }),
1431
- /* @__PURE__ */ e.jsx("p", { className: "font-mono text-sm mt-2", children: z(i.run_id) }),
1363
+ /* @__PURE__ */ e.jsx("p", { className: "font-mono text-sm mt-2", children: K(a.run_id) }),
1432
1364
  /* @__PURE__ */ e.jsx("p", { className: "text-sm text-danger mt-2", children: "This action cannot be undone." })
1433
1365
  ]
1434
1366
  }
1435
1367
  ),
1436
- f && /* @__PURE__ */ e.jsx(
1437
- Be,
1368
+ o && /* @__PURE__ */ e.jsx(
1369
+ Ss,
1438
1370
  {
1439
- message: f.message,
1440
- variant: f.variant,
1441
- visible: !!f,
1442
- onClose: () => R(null)
1371
+ message: o.message,
1372
+ variant: o.variant,
1373
+ visible: !!o,
1374
+ onClose: () => p(null)
1443
1375
  }
1444
1376
  )
1445
1377
  ] });
1446
1378
  }
1447
1379
  function ks() {
1448
- const { currentWorkspace: s } = W(), { data: n, loading: t } = $e();
1449
- return /* @__PURE__ */ e.jsxs(G, { children: [
1450
- /* @__PURE__ */ e.jsx(_e, { title: "Projects" }),
1451
- /* @__PURE__ */ e.jsx(N, { children: t ? /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-8", children: /* @__PURE__ */ e.jsx(V, {}) }) : /* @__PURE__ */ e.jsx(Ps, { projects: n ?? [], currentWorkspace: s }) })
1380
+ const { currentWorkspace: s } = Y(), { data: n, loading: t } = ze();
1381
+ return /* @__PURE__ */ e.jsxs(q, { children: [
1382
+ /* @__PURE__ */ e.jsx(pe, { title: "Projects" }),
1383
+ /* @__PURE__ */ e.jsx(v, { children: t ? /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-8", children: /* @__PURE__ */ e.jsx(V, {}) }) : /* @__PURE__ */ e.jsx(Ts, { projects: n ?? [], currentWorkspace: s }) })
1452
1384
  ] });
1453
1385
  }
1454
1386
  function As() {
1455
- const [s, n] = Oe(), { data: t } = $e(), [i, d] = O(s.get("project") || ""), { data: o, loading: m, refetch: a } = vs({ project: i || void 0 }), u = be((x) => {
1456
- d(x);
1457
- const g = new URLSearchParams(s);
1458
- x ? g.set("project", x) : g.delete("project"), n(g, { replace: !0 });
1387
+ const [s, n] = Ce(), { data: t } = ze(), [a, d] = U(s.get("project") || ""), { data: h, loading: f, refetch: i } = ps({ project: a || void 0 }), x = me((o) => {
1388
+ d(o);
1389
+ const p = new URLSearchParams(s);
1390
+ o ? p.set("project", o) : p.delete("project"), n(p, { replace: !0 });
1459
1391
  }, [s, n]);
1460
- return /* @__PURE__ */ e.jsxs(G, { children: [
1461
- /* @__PURE__ */ e.jsx(_e, { title: "Run Groups" }),
1462
- /* @__PURE__ */ e.jsx(N, { className: "mb-4", children: /* @__PURE__ */ e.jsxs(kr, { children: [
1463
- /* @__PURE__ */ e.jsxs(X, { children: [
1464
- /* @__PURE__ */ e.jsx(re, { htmlFor: "project", children: "Project" }),
1392
+ return /* @__PURE__ */ e.jsxs(q, { children: [
1393
+ /* @__PURE__ */ e.jsx(pe, { title: "Run Groups" }),
1394
+ /* @__PURE__ */ e.jsx(v, { className: "mb-4", children: /* @__PURE__ */ e.jsxs(Cr, { children: [
1395
+ /* @__PURE__ */ e.jsxs(H, { children: [
1396
+ /* @__PURE__ */ e.jsx(Z, { htmlFor: "project", children: "Project" }),
1465
1397
  /* @__PURE__ */ e.jsxs(
1466
- ae,
1398
+ se,
1467
1399
  {
1468
1400
  id: "project",
1469
- value: i,
1470
- onChange: (x) => u(x.target.value),
1401
+ value: a,
1402
+ onChange: (o) => x(o.target.value),
1471
1403
  children: [
1472
1404
  /* @__PURE__ */ e.jsx("option", { value: "", children: "All projects" }),
1473
- t?.map((x) => /* @__PURE__ */ e.jsx("option", { value: x.name, children: x.name }, x.name))
1405
+ t?.map((o) => /* @__PURE__ */ e.jsx("option", { value: o.name, children: o.name }, o.name))
1474
1406
  ]
1475
1407
  }
1476
1408
  )
1477
1409
  ] }),
1478
- /* @__PURE__ */ e.jsxs(X, { className: "flex items-end gap-2", children: [
1479
- /* @__PURE__ */ e.jsx(F, { variant: "primary", onClick: () => a(), children: "Filter" }),
1480
- m && /* @__PURE__ */ e.jsx(V, {})
1410
+ /* @__PURE__ */ e.jsxs(H, { className: "flex items-end gap-2", children: [
1411
+ /* @__PURE__ */ e.jsx(k, { variant: "primary", onClick: () => i(), children: "Filter" }),
1412
+ f && /* @__PURE__ */ e.jsx(V, {})
1481
1413
  ] })
1482
1414
  ] }) }),
1483
- /* @__PURE__ */ e.jsx(N, { children: m && !o ? /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-8", children: /* @__PURE__ */ e.jsx(V, {}) }) : /* @__PURE__ */ e.jsx(Ss, { groups: o ?? [] }) })
1415
+ /* @__PURE__ */ e.jsx(v, { children: f && !h ? /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-8", children: /* @__PURE__ */ e.jsx(V, {}) }) : /* @__PURE__ */ e.jsx(Cs, { groups: h ?? [] }) })
1484
1416
  ] });
1485
1417
  }
1486
- function Fs() {
1487
- const { groupId: s } = Xe(), { api: n } = W(), { data: t, loading: i, error: d, refetch: o } = bs(s), [m, a] = O(null), u = ye((g) => n.deleteRun(g));
1488
- xe(() => {
1489
- if (m) {
1490
- const g = setTimeout(() => a(null), 3e3);
1491
- return () => clearTimeout(g);
1492
- }
1493
- }, [m]);
1494
- const x = async (g) => {
1495
- try {
1496
- await u.mutate(g), a({ message: "Run deleted", variant: "success" }), o();
1497
- } catch {
1498
- a({ message: "Failed to delete run", variant: "error" });
1499
- }
1418
+ function Os() {
1419
+ const { groupId: s } = Ye(), { api: n } = Y(), { data: t, loading: a, error: d, refetch: h } = gs(s), f = je((x) => n.deleteRun(x)), i = async (x) => {
1420
+ await f.mutate(x), h();
1500
1421
  };
1501
- return i ? /* @__PURE__ */ e.jsx(G, { children: /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e.jsx(V, {}) }) }) : d || !t ? /* @__PURE__ */ e.jsx(G, { children: /* @__PURE__ */ e.jsx(N, { children: /* @__PURE__ */ e.jsx(ce, { message: "Group not found", hint: d?.message }) }) }) : /* @__PURE__ */ e.jsxs(G, { children: [
1422
+ return a ? /* @__PURE__ */ e.jsx(q, { children: /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e.jsx(V, {}) }) }) : d || !t ? /* @__PURE__ */ e.jsx(q, { children: /* @__PURE__ */ e.jsx(v, { children: /* @__PURE__ */ e.jsx(te, { message: "Group not found", hint: d?.message }) }) }) : /* @__PURE__ */ e.jsxs(q, { children: [
1502
1423
  /* @__PURE__ */ e.jsx(
1503
- _e,
1424
+ pe,
1504
1425
  {
1505
1426
  title: /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1506
1427
  "Group ",
1507
- /* @__PURE__ */ e.jsx("span", { className: "font-mono", children: z(s) })
1428
+ /* @__PURE__ */ e.jsx("span", { className: "font-mono", children: K(s) })
1508
1429
  ] }),
1509
1430
  subtitle: /* @__PURE__ */ e.jsx("span", { className: "font-mono text-muted", children: s })
1510
1431
  }
1511
1432
  ),
1512
- /* @__PURE__ */ e.jsxs(N, { children: [
1513
- /* @__PURE__ */ e.jsx(D, { children: /* @__PURE__ */ e.jsxs(k, { children: [
1433
+ /* @__PURE__ */ e.jsxs(v, { children: [
1434
+ /* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsxs(P, { children: [
1514
1435
  "Runs in Group (",
1515
1436
  t.runs.length,
1516
1437
  ")"
1517
1438
  ] }) }),
1518
1439
  /* @__PURE__ */ e.jsx(
1519
- Ze,
1440
+ Je,
1520
1441
  {
1521
1442
  runs: t.runs,
1522
- onDelete: x,
1523
- loading: u.loading
1443
+ onDelete: i,
1444
+ loading: f.loading
1524
1445
  }
1525
1446
  )
1526
- ] }),
1527
- m && /* @__PURE__ */ e.jsx(
1528
- Be,
1529
- {
1530
- message: m.message,
1531
- variant: m.variant,
1532
- visible: !!m,
1533
- onClose: () => a(null)
1534
- }
1535
- )
1447
+ ] })
1536
1448
  ] });
1537
1449
  }
1538
- function ve({ match: s, yesText: n = "✓ Match", noText: t = "✗ Different" }) {
1450
+ function xe({ match: s, yesText: n = "✓ Match", noText: t = "✗ Different" }) {
1539
1451
  return /* @__PURE__ */ e.jsx("span", { className: s ? "diff-match" : "diff-mismatch", children: s ? n : t });
1540
1452
  }
1541
- function Os() {
1542
- const [s, n] = Oe(), { data: t } = Cr({ limit: 100 }), i = t?.runs ?? [], [d, o] = O(s.get("a") || ""), [m, a] = O(s.get("b") || ""), [u, x] = O(""), g = (f) => {
1543
- if (f.preventDefault(), !d || !m) {
1544
- x("Please select both runs to compare");
1545
- return;
1546
- }
1547
- x(""), n({ a: d, b: m });
1453
+ function Fs() {
1454
+ const [s, n] = Ce(), { data: t } = Sr({ limit: 100 }), a = t?.runs ?? [], [d, h] = U(s.get("a") || ""), [f, i] = U(s.get("b") || ""), x = (o) => {
1455
+ o.preventDefault(), d && f && n({ a: d, b: f });
1548
1456
  };
1549
1457
  return /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1550
- /* @__PURE__ */ e.jsx(N, { children: /* @__PURE__ */ e.jsxs("form", { onSubmit: g, children: [
1458
+ /* @__PURE__ */ e.jsx(v, { children: /* @__PURE__ */ e.jsxs("form", { onSubmit: x, children: [
1551
1459
  /* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4 mb-4", children: [
1552
- /* @__PURE__ */ e.jsxs(X, { children: [
1553
- /* @__PURE__ */ e.jsx(re, { htmlFor: "a", children: "Run A (Baseline)" }),
1554
- /* @__PURE__ */ e.jsxs(ae, { id: "a", value: d, onChange: (f) => {
1555
- o(f.target.value), x("");
1556
- }, children: [
1460
+ /* @__PURE__ */ e.jsxs(H, { children: [
1461
+ /* @__PURE__ */ e.jsx(Z, { htmlFor: "a", children: "Run A (Baseline)" }),
1462
+ /* @__PURE__ */ e.jsxs(se, { id: "a", value: d, onChange: (o) => h(o.target.value), required: !0, children: [
1557
1463
  /* @__PURE__ */ e.jsx("option", { value: "", children: "Select run..." }),
1558
- i.map((f) => /* @__PURE__ */ e.jsxs("option", { value: f.run_id, children: [
1559
- f.run_name || "Unnamed",
1464
+ a.map((o) => /* @__PURE__ */ e.jsxs("option", { value: o.run_id, children: [
1465
+ o.run_name || "Unnamed",
1560
1466
  " (",
1561
- z(f.run_id),
1467
+ K(o.run_id),
1562
1468
  ") — ",
1563
- f.project
1564
- ] }, f.run_id))
1469
+ o.project
1470
+ ] }, o.run_id))
1565
1471
  ] })
1566
1472
  ] }),
1567
- /* @__PURE__ */ e.jsxs(X, { children: [
1568
- /* @__PURE__ */ e.jsx(re, { htmlFor: "b", children: "Run B (Candidate)" }),
1569
- /* @__PURE__ */ e.jsxs(ae, { id: "b", value: m, onChange: (f) => {
1570
- a(f.target.value), x("");
1571
- }, children: [
1473
+ /* @__PURE__ */ e.jsxs(H, { children: [
1474
+ /* @__PURE__ */ e.jsx(Z, { htmlFor: "b", children: "Run B (Candidate)" }),
1475
+ /* @__PURE__ */ e.jsxs(se, { id: "b", value: f, onChange: (o) => i(o.target.value), required: !0, children: [
1572
1476
  /* @__PURE__ */ e.jsx("option", { value: "", children: "Select run..." }),
1573
- i.map((f) => /* @__PURE__ */ e.jsxs("option", { value: f.run_id, children: [
1574
- f.run_name || "Unnamed",
1477
+ a.map((o) => /* @__PURE__ */ e.jsxs("option", { value: o.run_id, children: [
1478
+ o.run_name || "Unnamed",
1575
1479
  " (",
1576
- z(f.run_id),
1480
+ K(o.run_id),
1577
1481
  ") — ",
1578
- f.project
1579
- ] }, f.run_id))
1482
+ o.project
1483
+ ] }, o.run_id))
1580
1484
  ] })
1581
1485
  ] })
1582
1486
  ] }),
1583
- u && /* @__PURE__ */ e.jsx("p", { className: "text-sm text-danger mb-3", children: u }),
1584
- /* @__PURE__ */ e.jsx("div", { className: "pt-2", children: /* @__PURE__ */ e.jsx(F, { type: "submit", variant: "primary", children: "Compare" }) })
1487
+ /* @__PURE__ */ e.jsx(k, { type: "submit", variant: "primary", disabled: !d || !f, children: "Compare" })
1585
1488
  ] }) }),
1586
- /* @__PURE__ */ e.jsxs(N, { className: "mt-4", children: [
1587
- /* @__PURE__ */ e.jsx(D, { children: /* @__PURE__ */ e.jsx(k, { children: "Tips" }) }),
1489
+ /* @__PURE__ */ e.jsxs(v, { className: "mt-4", children: [
1490
+ /* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Tips" }) }),
1588
1491
  /* @__PURE__ */ e.jsxs("ul", { className: "text-muted text-sm list-disc pl-6 space-y-1", children: [
1589
1492
  /* @__PURE__ */ e.jsx("li", { children: "Select two runs to compare their parameters, metrics, and artifacts" }),
1590
1493
  /* @__PURE__ */ e.jsx("li", { children: "The diff will show changed values and compute TVD for result distributions" }),
@@ -1594,370 +1497,363 @@ function Os() {
1594
1497
  ] });
1595
1498
  }
1596
1499
  function $s({ runIdA: s, runIdB: n }) {
1597
- const { data: t, loading: i, error: d } = Ns(s, n);
1598
- if (i) return /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e.jsx(V, {}) });
1599
- if (d || !t) return /* @__PURE__ */ e.jsx(N, { children: /* @__PURE__ */ e.jsx(ce, { message: "Failed to load diff", hint: d?.message }) });
1600
- const { run_a: o, run_b: m, report: a } = t;
1500
+ const { data: t, loading: a, error: d } = vs(s, n);
1501
+ if (a) return /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e.jsx(V, {}) });
1502
+ if (d || !t) return /* @__PURE__ */ e.jsx(v, { children: /* @__PURE__ */ e.jsx(te, { message: "Failed to load diff", hint: d?.message }) });
1503
+ const { run_a: h, run_b: f, report: i } = t;
1601
1504
  return /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1602
- a.warnings && a.warnings.length > 0 && /* @__PURE__ */ e.jsxs("div", { className: "alert alert-warning mb-4", children: [
1505
+ i.warnings && i.warnings.length > 0 && /* @__PURE__ */ e.jsxs("div", { className: "alert alert-warning mb-4", children: [
1603
1506
  /* @__PURE__ */ e.jsx("strong", { children: "Warnings:" }),
1604
- /* @__PURE__ */ e.jsx("ul", { className: "list-disc pl-6 mt-1", children: a.warnings.map((u, x) => /* @__PURE__ */ e.jsx("li", { children: u }, x)) })
1507
+ /* @__PURE__ */ e.jsx("ul", { className: "list-disc pl-6 mt-1", children: i.warnings.map((x, o) => /* @__PURE__ */ e.jsx("li", { children: x }, o)) })
1605
1508
  ] }),
1606
- /* @__PURE__ */ e.jsx(N, { className: "mb-4", children: /* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [
1509
+ /* @__PURE__ */ e.jsx(v, { className: "mb-4", children: /* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [
1607
1510
  /* @__PURE__ */ e.jsxs("div", { children: [
1608
1511
  /* @__PURE__ */ e.jsx("h3", { className: "text-sm text-muted uppercase tracking-wider mb-1", children: "Run A (Baseline)" }),
1609
- /* @__PURE__ */ e.jsx("p", { children: /* @__PURE__ */ e.jsx(q, { to: `/runs/${o.run_id}`, children: o.run_name || "Unnamed Run" }) }),
1610
- /* @__PURE__ */ e.jsx("p", { className: "font-mono text-sm text-muted", children: z(o.run_id) }),
1512
+ /* @__PURE__ */ e.jsx("p", { children: /* @__PURE__ */ e.jsx(M, { to: `/runs/${h.run_id}`, children: h.run_name || "Unnamed Run" }) }),
1513
+ /* @__PURE__ */ e.jsx("p", { className: "font-mono text-sm text-muted", children: K(h.run_id) }),
1611
1514
  /* @__PURE__ */ e.jsxs("p", { className: "text-muted text-sm", children: [
1612
- o.project,
1515
+ h.project,
1613
1516
  " · ",
1614
- Fe(o.created_at)
1517
+ Te(h.created_at)
1615
1518
  ] })
1616
1519
  ] }),
1617
1520
  /* @__PURE__ */ e.jsxs("div", { children: [
1618
1521
  /* @__PURE__ */ e.jsx("h3", { className: "text-sm text-muted uppercase tracking-wider mb-1", children: "Run B (Candidate)" }),
1619
- /* @__PURE__ */ e.jsx("p", { children: /* @__PURE__ */ e.jsx(q, { to: `/runs/${m.run_id}`, children: m.run_name || "Unnamed Run" }) }),
1620
- /* @__PURE__ */ e.jsx("p", { className: "font-mono text-sm text-muted", children: z(m.run_id) }),
1522
+ /* @__PURE__ */ e.jsx("p", { children: /* @__PURE__ */ e.jsx(M, { to: `/runs/${f.run_id}`, children: f.run_name || "Unnamed Run" }) }),
1523
+ /* @__PURE__ */ e.jsx("p", { className: "font-mono text-sm text-muted", children: K(f.run_id) }),
1621
1524
  /* @__PURE__ */ e.jsxs("p", { className: "text-muted text-sm", children: [
1622
- m.project,
1525
+ f.project,
1623
1526
  " · ",
1624
- Fe(m.created_at)
1527
+ Te(f.created_at)
1625
1528
  ] })
1626
1529
  ] })
1627
1530
  ] }) }),
1628
1531
  /* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4 mb-4", children: [
1629
- /* @__PURE__ */ e.jsxs(N, { children: [
1630
- /* @__PURE__ */ e.jsx(D, { children: /* @__PURE__ */ e.jsx(k, { children: "Metadata" }) }),
1631
- /* @__PURE__ */ e.jsx(L, { children: /* @__PURE__ */ e.jsxs(I, { children: [
1632
- /* @__PURE__ */ e.jsxs(j, { children: [
1532
+ /* @__PURE__ */ e.jsxs(v, { children: [
1533
+ /* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Metadata" }) }),
1534
+ /* @__PURE__ */ e.jsx(O, { children: /* @__PURE__ */ e.jsxs(F, { children: [
1535
+ /* @__PURE__ */ e.jsxs(m, { children: [
1633
1536
  /* @__PURE__ */ e.jsx(c, { children: "Project" }),
1634
- /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(ve, { match: a.metadata.project_match }) })
1537
+ /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(xe, { match: i.metadata.project_match }) })
1635
1538
  ] }),
1636
- /* @__PURE__ */ e.jsxs(j, { children: [
1539
+ /* @__PURE__ */ e.jsxs(m, { children: [
1637
1540
  /* @__PURE__ */ e.jsx(c, { children: "Backend" }),
1638
- /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(ve, { match: a.metadata.backend_match }) })
1541
+ /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(xe, { match: i.metadata.backend_match }) })
1639
1542
  ] }),
1640
- !a.metadata.project_match && /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1641
- /* @__PURE__ */ e.jsxs(j, { children: [
1543
+ !i.metadata.project_match && /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1544
+ /* @__PURE__ */ e.jsxs(m, { children: [
1642
1545
  /* @__PURE__ */ e.jsx(c, { className: "text-muted text-sm", children: "Project A" }),
1643
- /* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: a.metadata.project_a || "N/A" })
1546
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: i.metadata.project_a || "N/A" })
1644
1547
  ] }),
1645
- /* @__PURE__ */ e.jsxs(j, { children: [
1548
+ /* @__PURE__ */ e.jsxs(m, { children: [
1646
1549
  /* @__PURE__ */ e.jsx(c, { className: "text-muted text-sm", children: "Project B" }),
1647
- /* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: a.metadata.project_b || "N/A" })
1550
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: i.metadata.project_b || "N/A" })
1648
1551
  ] })
1649
1552
  ] }),
1650
- !a.metadata.backend_match && /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1651
- /* @__PURE__ */ e.jsxs(j, { children: [
1553
+ !i.metadata.backend_match && /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1554
+ /* @__PURE__ */ e.jsxs(m, { children: [
1652
1555
  /* @__PURE__ */ e.jsx(c, { className: "text-muted text-sm", children: "Backend A" }),
1653
- /* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: a.metadata.backend_a || "N/A" })
1556
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: i.metadata.backend_a || "N/A" })
1654
1557
  ] }),
1655
- /* @__PURE__ */ e.jsxs(j, { children: [
1558
+ /* @__PURE__ */ e.jsxs(m, { children: [
1656
1559
  /* @__PURE__ */ e.jsx(c, { className: "text-muted text-sm", children: "Backend B" }),
1657
- /* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: a.metadata.backend_b || "N/A" })
1560
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: i.metadata.backend_b || "N/A" })
1658
1561
  ] })
1659
1562
  ] })
1660
1563
  ] }) })
1661
1564
  ] }),
1662
- /* @__PURE__ */ e.jsxs(N, { children: [
1663
- /* @__PURE__ */ e.jsx(D, { children: /* @__PURE__ */ e.jsx(k, { children: "Fingerprints" }) }),
1664
- /* @__PURE__ */ e.jsx(L, { children: /* @__PURE__ */ e.jsxs(I, { children: [
1665
- /* @__PURE__ */ e.jsxs(j, { children: [
1565
+ /* @__PURE__ */ e.jsxs(v, { children: [
1566
+ /* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Fingerprints" }) }),
1567
+ /* @__PURE__ */ e.jsx(O, { children: /* @__PURE__ */ e.jsxs(F, { children: [
1568
+ /* @__PURE__ */ e.jsxs(m, { children: [
1666
1569
  /* @__PURE__ */ e.jsx(c, { children: "Run A" }),
1667
- /* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: Ke(a.fingerprints.a) })
1570
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: qe(i.fingerprints.a) })
1668
1571
  ] }),
1669
- /* @__PURE__ */ e.jsxs(j, { children: [
1572
+ /* @__PURE__ */ e.jsxs(m, { children: [
1670
1573
  /* @__PURE__ */ e.jsx(c, { children: "Run B" }),
1671
- /* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: Ke(a.fingerprints.b) })
1574
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: qe(i.fingerprints.b) })
1672
1575
  ] }),
1673
- /* @__PURE__ */ e.jsxs(j, { children: [
1576
+ /* @__PURE__ */ e.jsxs(m, { children: [
1674
1577
  /* @__PURE__ */ e.jsx(c, { children: "Match" }),
1675
- /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(ve, { match: a.fingerprints.a === a.fingerprints.b, yesText: "✓ Yes", noText: "✗ No" }) })
1578
+ /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(xe, { match: i.fingerprints.a === i.fingerprints.b, yesText: "✓ Yes", noText: "✗ No" }) })
1676
1579
  ] })
1677
1580
  ] }) })
1678
1581
  ] })
1679
1582
  ] }),
1680
1583
  /* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4 mb-4", children: [
1681
- /* @__PURE__ */ e.jsxs(N, { children: [
1682
- /* @__PURE__ */ e.jsx(D, { children: /* @__PURE__ */ e.jsxs(k, { children: [
1584
+ /* @__PURE__ */ e.jsxs(v, { children: [
1585
+ /* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsxs(P, { children: [
1683
1586
  "Program",
1684
- a.program.exact_match ? /* @__PURE__ */ e.jsx(B, { variant: "success", children: "Exact Match" }) : a.program.structural_match ? /* @__PURE__ */ e.jsx(B, { variant: "info", children: "Structural Match" }) : /* @__PURE__ */ e.jsx(B, { variant: "warning", children: "Different" })
1587
+ i.program.exact_match ? /* @__PURE__ */ e.jsx(B, { variant: "success", children: "Exact Match" }) : i.program.structural_match ? /* @__PURE__ */ e.jsx(B, { variant: "info", children: "Structural Match" }) : /* @__PURE__ */ e.jsx(B, { variant: "warning", children: "Different" })
1685
1588
  ] }) }),
1686
- /* @__PURE__ */ e.jsx(L, { children: /* @__PURE__ */ e.jsxs(I, { children: [
1687
- /* @__PURE__ */ e.jsxs(j, { children: [
1589
+ /* @__PURE__ */ e.jsx(O, { children: /* @__PURE__ */ e.jsxs(F, { children: [
1590
+ /* @__PURE__ */ e.jsxs(m, { children: [
1688
1591
  /* @__PURE__ */ e.jsx(c, { children: "Exact Match" }),
1689
- /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(ve, { match: a.program.exact_match, yesText: "✓ Yes", noText: "✗ No" }) })
1592
+ /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(xe, { match: i.program.exact_match, yesText: "✓ Yes", noText: "✗ No" }) })
1690
1593
  ] }),
1691
- /* @__PURE__ */ e.jsxs(j, { children: [
1594
+ /* @__PURE__ */ e.jsxs(m, { children: [
1692
1595
  /* @__PURE__ */ e.jsx(c, { children: "Structural Match" }),
1693
- /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(ve, { match: a.program.structural_match, yesText: "✓ Yes", noText: "✗ No" }) })
1596
+ /* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(xe, { match: i.program.structural_match, yesText: "✓ Yes", noText: "✗ No" }) })
1694
1597
  ] })
1695
1598
  ] }) })
1696
1599
  ] }),
1697
- /* @__PURE__ */ e.jsxs(N, { children: [
1698
- /* @__PURE__ */ e.jsx(D, { children: /* @__PURE__ */ e.jsxs(k, { children: [
1600
+ /* @__PURE__ */ e.jsxs(v, { children: [
1601
+ /* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsxs(P, { children: [
1699
1602
  "Device Calibration",
1700
- a.device_drift?.significant_drift ? /* @__PURE__ */ e.jsx(B, { variant: "warning", children: "Drifted" }) : a.device_drift?.has_calibration_data ? /* @__PURE__ */ e.jsx(B, { variant: "success", children: "Stable" }) : /* @__PURE__ */ e.jsx(B, { variant: "gray", children: "N/A" })
1603
+ i.device_drift?.significant_drift ? /* @__PURE__ */ e.jsx(B, { variant: "warning", children: "Drifted" }) : i.device_drift?.has_calibration_data ? /* @__PURE__ */ e.jsx(B, { variant: "success", children: "Stable" }) : /* @__PURE__ */ e.jsx(B, { variant: "gray", children: "N/A" })
1701
1604
  ] }) }),
1702
- a.device_drift?.significant_drift ? /* @__PURE__ */ e.jsx("p", { className: "text-sm text-warning", children: "⚠ Significant calibration drift detected" }) : a.device_drift?.has_calibration_data ? /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "Calibration within acceptable thresholds" }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "No calibration data available" })
1605
+ i.device_drift?.significant_drift ? /* @__PURE__ */ e.jsx("p", { className: "text-sm text-warning", children: "⚠ Significant calibration drift detected" }) : i.device_drift?.has_calibration_data ? /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "Calibration within acceptable thresholds" }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "No calibration data available" })
1703
1606
  ] })
1704
1607
  ] }),
1705
- /* @__PURE__ */ e.jsxs(N, { className: "mb-4", children: [
1706
- /* @__PURE__ */ e.jsx(D, { children: /* @__PURE__ */ e.jsxs(k, { children: [
1608
+ /* @__PURE__ */ e.jsxs(v, { className: "mb-4", children: [
1609
+ /* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsxs(P, { children: [
1707
1610
  "Parameters ",
1708
- /* @__PURE__ */ e.jsx(B, { variant: a.params.match ? "success" : "warning", children: a.params.match ? "Match" : "Different" })
1611
+ /* @__PURE__ */ e.jsx(B, { variant: i.params.match ? "success" : "warning", children: i.params.match ? "Match" : "Different" })
1709
1612
  ] }) }),
1710
- a.params.match ? /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "All parameters match" }) : /* @__PURE__ */ e.jsx(e.Fragment, { children: a.params.changed && Object.keys(a.params.changed).length > 0 && /* @__PURE__ */ e.jsxs(L, { children: [
1711
- /* @__PURE__ */ e.jsx(ee, { children: /* @__PURE__ */ e.jsxs(j, { children: [
1712
- /* @__PURE__ */ e.jsx(y, { children: "Parameter" }),
1713
- /* @__PURE__ */ e.jsx(y, { children: "Run A" }),
1714
- /* @__PURE__ */ e.jsx(y, { children: "Run B" })
1613
+ 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(O, { children: [
1614
+ /* @__PURE__ */ e.jsx(Q, { children: /* @__PURE__ */ e.jsxs(m, { children: [
1615
+ /* @__PURE__ */ e.jsx(b, { children: "Parameter" }),
1616
+ /* @__PURE__ */ e.jsx(b, { children: "Run A" }),
1617
+ /* @__PURE__ */ e.jsx(b, { children: "Run B" })
1715
1618
  ] }) }),
1716
- /* @__PURE__ */ e.jsx(I, { children: Object.entries(a.params.changed).map(([u, x]) => /* @__PURE__ */ e.jsxs(j, { children: [
1717
- /* @__PURE__ */ e.jsx(c, { children: u }),
1718
- /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: String(x.a) }),
1719
- /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: String(x.b) })
1720
- ] }, u)) })
1619
+ /* @__PURE__ */ e.jsx(F, { children: Object.entries(i.params.changed).map(([x, o]) => /* @__PURE__ */ e.jsxs(m, { children: [
1620
+ /* @__PURE__ */ e.jsx(c, { children: x }),
1621
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: String(o.a) }),
1622
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: String(o.b) })
1623
+ ] }, x)) })
1721
1624
  ] }) })
1722
1625
  ] }),
1723
- /* @__PURE__ */ e.jsxs(N, { className: "mb-4", children: [
1724
- /* @__PURE__ */ e.jsx(D, { children: /* @__PURE__ */ e.jsxs(k, { children: [
1626
+ /* @__PURE__ */ e.jsxs(v, { className: "mb-4", children: [
1627
+ /* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsxs(P, { children: [
1725
1628
  "Metrics ",
1726
- /* @__PURE__ */ e.jsx(B, { variant: a.metrics.match ? "success" : "warning", children: a.metrics.match ? "Match" : "Different" })
1629
+ /* @__PURE__ */ e.jsx(B, { variant: i.metrics.match ? "success" : "warning", children: i.metrics.match ? "Match" : "Different" })
1727
1630
  ] }) }),
1728
- a.metrics.match ? /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "All metrics match" }) : /* @__PURE__ */ e.jsx(e.Fragment, { children: a.metrics.changed && Object.keys(a.metrics.changed).length > 0 && /* @__PURE__ */ e.jsxs(L, { children: [
1729
- /* @__PURE__ */ e.jsx(ee, { children: /* @__PURE__ */ e.jsxs(j, { children: [
1730
- /* @__PURE__ */ e.jsx(y, { children: "Metric" }),
1731
- /* @__PURE__ */ e.jsx(y, { children: "Run A" }),
1732
- /* @__PURE__ */ e.jsx(y, { children: "Run B" })
1631
+ 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(O, { children: [
1632
+ /* @__PURE__ */ e.jsx(Q, { children: /* @__PURE__ */ e.jsxs(m, { children: [
1633
+ /* @__PURE__ */ e.jsx(b, { children: "Metric" }),
1634
+ /* @__PURE__ */ e.jsx(b, { children: "Run A" }),
1635
+ /* @__PURE__ */ e.jsx(b, { children: "Run B" })
1733
1636
  ] }) }),
1734
- /* @__PURE__ */ e.jsx(I, { children: Object.entries(a.metrics.changed).map(([u, x]) => /* @__PURE__ */ e.jsxs(j, { children: [
1735
- /* @__PURE__ */ e.jsx(c, { children: u }),
1736
- /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: x.a }),
1737
- /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: x.b })
1738
- ] }, u)) })
1637
+ /* @__PURE__ */ e.jsx(F, { children: Object.entries(i.metrics.changed).map(([x, o]) => /* @__PURE__ */ e.jsxs(m, { children: [
1638
+ /* @__PURE__ */ e.jsx(c, { children: x }),
1639
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: o.a }),
1640
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: o.b })
1641
+ ] }, x)) })
1739
1642
  ] }) })
1740
1643
  ] }),
1741
- a.circuit_diff && /* @__PURE__ */ e.jsxs(N, { className: "mb-4", children: [
1742
- /* @__PURE__ */ e.jsx(D, { children: /* @__PURE__ */ e.jsxs(k, { children: [
1644
+ i.circuit_diff && /* @__PURE__ */ e.jsxs(v, { className: "mb-4", children: [
1645
+ /* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsxs(P, { children: [
1743
1646
  "Circuit",
1744
- /* @__PURE__ */ e.jsx(B, { variant: a.circuit_diff.match ? "success" : "warning", children: a.circuit_diff.match ? "Match" : "Different" })
1647
+ /* @__PURE__ */ e.jsx(B, { variant: i.circuit_diff.match ? "success" : "warning", children: i.circuit_diff.match ? "Match" : "Different" })
1745
1648
  ] }) }),
1746
- a.circuit_diff.match ? /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "Circuit structure matches" }) : /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1747
- a.circuit_diff.changed && Object.keys(a.circuit_diff.changed).length > 0 && /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1649
+ i.circuit_diff.match ? /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "Circuit structure matches" }) : /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1650
+ i.circuit_diff.changed && Object.keys(i.circuit_diff.changed).length > 0 && /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1748
1651
  /* @__PURE__ */ e.jsx("h4", { className: "text-sm text-muted mb-2", children: "Changed" }),
1749
- /* @__PURE__ */ e.jsxs(L, { children: [
1750
- /* @__PURE__ */ e.jsx(ee, { children: /* @__PURE__ */ e.jsxs(j, { children: [
1751
- /* @__PURE__ */ e.jsx(y, { children: "Property" }),
1752
- /* @__PURE__ */ e.jsx(y, { children: "Run A" }),
1753
- /* @__PURE__ */ e.jsx(y, { children: "Run B" }),
1754
- /* @__PURE__ */ e.jsx(y, { children: "Delta" })
1652
+ /* @__PURE__ */ e.jsxs(O, { children: [
1653
+ /* @__PURE__ */ e.jsx(Q, { children: /* @__PURE__ */ e.jsxs(m, { children: [
1654
+ /* @__PURE__ */ e.jsx(b, { children: "Property" }),
1655
+ /* @__PURE__ */ e.jsx(b, { children: "Run A" }),
1656
+ /* @__PURE__ */ e.jsx(b, { children: "Run B" }),
1657
+ /* @__PURE__ */ e.jsx(b, { children: "Delta" })
1755
1658
  ] }) }),
1756
- /* @__PURE__ */ e.jsx(I, { children: Object.entries(a.circuit_diff.changed).map(([u, x]) => /* @__PURE__ */ e.jsxs(j, { children: [
1757
- /* @__PURE__ */ e.jsx(c, { children: x.label || u }),
1758
- /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: String(x.a) }),
1759
- /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: String(x.b) }),
1760
- /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: x.delta != null && /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1761
- x.delta > 0 ? "+" : "",
1762
- x.delta,
1763
- x.pct != null && ` (${x.pct > 0 ? "+" : ""}${x.pct.toFixed(1)}%)`
1659
+ /* @__PURE__ */ e.jsx(F, { children: Object.entries(i.circuit_diff.changed).map(([x, o]) => /* @__PURE__ */ e.jsxs(m, { children: [
1660
+ /* @__PURE__ */ e.jsx(c, { children: o.label || x }),
1661
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: String(o.a) }),
1662
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: String(o.b) }),
1663
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: o.delta != null && /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1664
+ o.delta > 0 ? "+" : "",
1665
+ o.delta,
1666
+ o.pct != null && ` (${o.pct > 0 ? "+" : ""}${o.pct.toFixed(1)}%)`
1764
1667
  ] }) })
1765
- ] }, u)) })
1668
+ ] }, x)) })
1766
1669
  ] })
1767
1670
  ] }),
1768
- a.circuit_diff.is_clifford_changed && /* @__PURE__ */ e.jsxs("div", { className: "mt-4", children: [
1671
+ i.circuit_diff.is_clifford_changed && /* @__PURE__ */ e.jsxs("div", { className: "mt-4", children: [
1769
1672
  /* @__PURE__ */ e.jsx("h4", { className: "text-sm text-muted mb-2", children: "Clifford Status" }),
1770
- /* @__PURE__ */ e.jsx(L, { children: /* @__PURE__ */ e.jsxs(I, { children: [
1771
- /* @__PURE__ */ e.jsxs(j, { children: [
1673
+ /* @__PURE__ */ e.jsx(O, { children: /* @__PURE__ */ e.jsxs(F, { children: [
1674
+ /* @__PURE__ */ e.jsxs(m, { children: [
1772
1675
  /* @__PURE__ */ e.jsx(c, { children: "Run A" }),
1773
- /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: a.circuit_diff.is_clifford_a != null ? String(a.circuit_diff.is_clifford_a) : "unknown" })
1676
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: i.circuit_diff.is_clifford_a != null ? String(i.circuit_diff.is_clifford_a) : "unknown" })
1774
1677
  ] }),
1775
- /* @__PURE__ */ e.jsxs(j, { children: [
1678
+ /* @__PURE__ */ e.jsxs(m, { children: [
1776
1679
  /* @__PURE__ */ e.jsx(c, { children: "Run B" }),
1777
- /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: a.circuit_diff.is_clifford_b != null ? String(a.circuit_diff.is_clifford_b) : "unknown" })
1680
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: i.circuit_diff.is_clifford_b != null ? String(i.circuit_diff.is_clifford_b) : "unknown" })
1778
1681
  ] })
1779
1682
  ] }) })
1780
1683
  ] }),
1781
- a.circuit_diff.added_gates && a.circuit_diff.added_gates.length > 0 && /* @__PURE__ */ e.jsxs("div", { className: "mt-4", children: [
1684
+ i.circuit_diff.added_gates && i.circuit_diff.added_gates.length > 0 && /* @__PURE__ */ e.jsxs("div", { className: "mt-4", children: [
1782
1685
  /* @__PURE__ */ e.jsx("h4", { className: "text-sm text-muted mb-2", children: "New Gate Types (in B)" }),
1783
- /* @__PURE__ */ e.jsx("p", { className: "font-mono text-sm", children: a.circuit_diff.added_gates.join(", ") })
1686
+ /* @__PURE__ */ e.jsx("p", { className: "font-mono text-sm", children: i.circuit_diff.added_gates.join(", ") })
1784
1687
  ] }),
1785
- a.circuit_diff.removed_gates && a.circuit_diff.removed_gates.length > 0 && /* @__PURE__ */ e.jsxs("div", { className: "mt-4", children: [
1688
+ i.circuit_diff.removed_gates && i.circuit_diff.removed_gates.length > 0 && /* @__PURE__ */ e.jsxs("div", { className: "mt-4", children: [
1786
1689
  /* @__PURE__ */ e.jsx("h4", { className: "text-sm text-muted mb-2", children: "Removed Gate Types (from A)" }),
1787
- /* @__PURE__ */ e.jsx("p", { className: "font-mono text-sm", children: a.circuit_diff.removed_gates.join(", ") })
1690
+ /* @__PURE__ */ e.jsx("p", { className: "font-mono text-sm", children: i.circuit_diff.removed_gates.join(", ") })
1788
1691
  ] })
1789
1692
  ] })
1790
1693
  ] }),
1791
- a.tvd != null && /* @__PURE__ */ e.jsxs(N, { className: "mb-4", children: [
1792
- /* @__PURE__ */ e.jsx(D, { children: /* @__PURE__ */ e.jsx(k, { children: "Results" }) }),
1793
- /* @__PURE__ */ e.jsx(L, { children: /* @__PURE__ */ e.jsxs(I, { children: [
1794
- /* @__PURE__ */ e.jsxs(j, { children: [
1694
+ i.tvd != null && /* @__PURE__ */ e.jsxs(v, { className: "mb-4", children: [
1695
+ /* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Results" }) }),
1696
+ /* @__PURE__ */ e.jsx(O, { children: /* @__PURE__ */ e.jsxs(F, { children: [
1697
+ /* @__PURE__ */ e.jsxs(m, { children: [
1795
1698
  /* @__PURE__ */ e.jsx(c, { children: "Total Variation Distance (TVD)" }),
1796
- /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: a.tvd.toFixed(6) })
1699
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: i.tvd.toFixed(6) })
1797
1700
  ] }),
1798
- a.shots && /* @__PURE__ */ e.jsxs(j, { children: [
1701
+ i.shots && /* @__PURE__ */ e.jsxs(m, { children: [
1799
1702
  /* @__PURE__ */ e.jsx(c, { children: "Total Shots (A / B)" }),
1800
1703
  /* @__PURE__ */ e.jsxs(c, { className: "font-mono", children: [
1801
- a.shots.a,
1704
+ i.shots.a,
1802
1705
  " / ",
1803
- a.shots.b
1706
+ i.shots.b
1804
1707
  ] })
1805
1708
  ] }),
1806
- a.noise_context?.noise_p95 && /* @__PURE__ */ e.jsxs(j, { children: [
1709
+ i.noise_context?.noise_p95 && /* @__PURE__ */ e.jsxs(m, { children: [
1807
1710
  /* @__PURE__ */ e.jsx(c, { children: "Noise Threshold (p95)" }),
1808
- /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: a.noise_context.noise_p95.toFixed(6) })
1711
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: i.noise_context.noise_p95.toFixed(6) })
1809
1712
  ] }),
1810
- a.noise_context?.p_value != null && /* @__PURE__ */ e.jsxs(j, { children: [
1713
+ i.noise_context?.p_value != null && /* @__PURE__ */ e.jsxs(m, { children: [
1811
1714
  /* @__PURE__ */ e.jsx(c, { children: "p-value" }),
1812
- /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: a.noise_context.p_value.toFixed(3) })
1715
+ /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: i.noise_context.p_value.toFixed(3) })
1813
1716
  ] })
1814
1717
  ] }) }),
1815
- a.tvd > 0 && a.noise_context && /* @__PURE__ */ e.jsx("p", { className: "text-sm mt-4", children: a.noise_context.p_value != null ? a.noise_context.p_value >= 0.1 ? /* @__PURE__ */ e.jsx("span", { className: "text-success", children: "✓ Consistent with sampling noise — difference is not statistically significant." }) : a.noise_context.p_value >= 0.05 ? /* @__PURE__ */ e.jsxs("span", { className: "text-warning", children: [
1718
+ i.tvd > 0 && i.noise_context && /* @__PURE__ */ e.jsx("p", { className: "text-sm mt-4", children: i.noise_context.p_value != null ? i.noise_context.p_value >= 0.1 ? /* @__PURE__ */ e.jsx("span", { className: "text-success", children: "✓ Consistent with sampling noise — difference is not statistically significant." }) : i.noise_context.p_value >= 0.05 ? /* @__PURE__ */ e.jsxs("span", { className: "text-warning", children: [
1816
1719
  "⚠ Borderline (p=",
1817
- a.noise_context.p_value.toFixed(2),
1720
+ i.noise_context.p_value.toFixed(2),
1818
1721
  "). Consider increasing shots."
1819
1722
  ] }) : /* @__PURE__ */ e.jsxs("span", { className: "text-danger", children: [
1820
1723
  "✗ Statistically significant difference (p=",
1821
- a.noise_context.p_value.toFixed(2),
1724
+ i.noise_context.p_value.toFixed(2),
1822
1725
  ") — results show meaningful divergence."
1823
- ] }) : a.noise_context.noise_ratio != null ? a.noise_context.noise_ratio < 1.5 ? /* @__PURE__ */ e.jsx("span", { className: "text-success", children: "✓ TVD is within expected shot noise range." }) : a.noise_context.noise_ratio < 3 ? /* @__PURE__ */ e.jsxs("span", { className: "text-warning", children: [
1726
+ ] }) : i.noise_context.noise_ratio != null ? i.noise_context.noise_ratio < 1.5 ? /* @__PURE__ */ e.jsx("span", { className: "text-success", children: "✓ TVD is within expected shot noise range." }) : i.noise_context.noise_ratio < 3 ? /* @__PURE__ */ e.jsxs("span", { className: "text-warning", children: [
1824
1727
  "⚠ Ambiguous (",
1825
- a.noise_context.noise_ratio.toFixed(1),
1728
+ i.noise_context.noise_ratio.toFixed(1),
1826
1729
  "× expected noise). Consider increasing shots."
1827
1730
  ] }) : /* @__PURE__ */ e.jsxs("span", { className: "text-danger", children: [
1828
1731
  "✗ TVD exceeds expected noise (",
1829
- a.noise_context.noise_ratio.toFixed(1),
1732
+ i.noise_context.noise_ratio.toFixed(1),
1830
1733
  "×) — results show meaningful differences."
1831
1734
  ] }) : null })
1832
1735
  ] })
1833
1736
  ] });
1834
1737
  }
1835
1738
  function Bs() {
1836
- const [s] = Oe(), n = s.get("a"), t = s.get("b"), i = n && t;
1837
- return /* @__PURE__ */ e.jsxs(G, { children: [
1739
+ const [s] = Ce(), n = s.get("a"), t = s.get("b"), a = n && t;
1740
+ return /* @__PURE__ */ e.jsxs(q, { children: [
1838
1741
  /* @__PURE__ */ e.jsx("div", { className: "page-header", children: /* @__PURE__ */ e.jsxs("div", { children: [
1839
1742
  /* @__PURE__ */ e.jsxs("h1", { className: "page-title", children: [
1840
1743
  "Compare Runs",
1841
- i && /* @__PURE__ */ e.jsx(B, { variant: "info", children: "Comparing" })
1744
+ a && /* @__PURE__ */ e.jsx(B, { variant: "info", children: "Comparing" })
1842
1745
  ] }),
1843
- i && /* @__PURE__ */ e.jsx("p", { className: "text-muted text-sm", children: /* @__PURE__ */ e.jsx(q, { to: "/diff", children: "← Select different runs" }) })
1746
+ a && /* @__PURE__ */ e.jsx("p", { className: "text-muted text-sm", children: /* @__PURE__ */ e.jsx(M, { to: "/diff", children: "← Select different runs" }) })
1844
1747
  ] }) }),
1845
- i ? /* @__PURE__ */ e.jsx($s, { runIdA: n, runIdB: t }) : /* @__PURE__ */ e.jsx(Os, {})
1748
+ a ? /* @__PURE__ */ e.jsx($s, { runIdA: n, runIdB: t }) : /* @__PURE__ */ e.jsx(Fs, {})
1846
1749
  ] });
1847
1750
  }
1848
- function Ls() {
1849
- const { api: s } = W(), [n, t] = O(""), [i, d] = O(null), [o, m] = O(!1), [a, u] = O(""), { mutate: x, loading: g } = ye(async () => {
1850
- const R = await s.listRuns({ q: n, limit: 100 });
1851
- return d(R.runs), m(!0), R;
1852
- }), f = (R) => {
1853
- if (R.preventDefault(), !n.trim()) {
1854
- u("Please enter a search query");
1855
- return;
1856
- }
1857
- u(""), x();
1751
+ function Is() {
1752
+ const { api: s } = Y(), [n, t] = U(""), [a, d] = U(null), [h, f] = U(!1), { mutate: i, loading: x } = je(async () => {
1753
+ const p = await s.listRuns({ q: n, limit: 100 });
1754
+ return d(p.runs), f(!0), p;
1755
+ }), o = (p) => {
1756
+ p.preventDefault(), n.trim() && i();
1858
1757
  };
1859
- return /* @__PURE__ */ e.jsxs(G, { children: [
1758
+ return /* @__PURE__ */ e.jsxs(q, { children: [
1860
1759
  /* @__PURE__ */ e.jsx("div", { className: "page-header", children: /* @__PURE__ */ e.jsx("h1", { className: "page-title", children: "Search Runs" }) }),
1861
- /* @__PURE__ */ e.jsx(N, { className: "mb-4", children: /* @__PURE__ */ e.jsxs("form", { onSubmit: f, children: [
1862
- /* @__PURE__ */ e.jsxs(X, { children: [
1863
- /* @__PURE__ */ e.jsx(re, { htmlFor: "q", children: "Query" }),
1760
+ /* @__PURE__ */ e.jsx(v, { className: "mb-4", children: /* @__PURE__ */ e.jsxs("form", { onSubmit: o, children: [
1761
+ /* @__PURE__ */ e.jsxs(H, { children: [
1762
+ /* @__PURE__ */ e.jsx(Z, { htmlFor: "q", children: "Query" }),
1864
1763
  /* @__PURE__ */ e.jsx(
1865
- Qe,
1764
+ Ke,
1866
1765
  {
1867
1766
  id: "q",
1868
1767
  type: "text",
1869
1768
  value: n,
1870
- onChange: (R) => {
1871
- t(R.target.value), u("");
1872
- },
1769
+ onChange: (p) => t(p.target.value),
1873
1770
  placeholder: "metric.fidelity > 0.95 and params.shots = 1000",
1874
1771
  className: "font-mono"
1875
1772
  }
1876
1773
  )
1877
1774
  ] }),
1878
- a && /* @__PURE__ */ e.jsx("p", { className: "text-sm text-danger mb-3", children: a }),
1879
- /* @__PURE__ */ e.jsxs("div", { className: "flex gap-3 items-center pt-2", children: [
1880
- /* @__PURE__ */ e.jsxs(F, { type: "submit", variant: "primary", disabled: g, children: [
1881
- g && /* @__PURE__ */ e.jsx(V, {}),
1775
+ /* @__PURE__ */ e.jsxs("div", { className: "flex gap-2 items-center", children: [
1776
+ /* @__PURE__ */ e.jsxs(k, { type: "submit", variant: "primary", disabled: x || !n.trim(), children: [
1777
+ x && /* @__PURE__ */ e.jsx(V, {}),
1882
1778
  "Search"
1883
1779
  ] }),
1884
- g && /* @__PURE__ */ e.jsx("span", { className: "text-muted text-sm", children: "Searching..." })
1780
+ x && /* @__PURE__ */ e.jsx("span", { className: "text-muted text-sm", children: "Searching..." })
1885
1781
  ] })
1886
1782
  ] }) }),
1887
- o && i && /* @__PURE__ */ e.jsx(N, { className: "mb-4", children: i.length > 0 ? /* @__PURE__ */ e.jsx(Ze, { runs: i }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted text-center py-8", children: "No runs match your query" }) }),
1783
+ h && a && /* @__PURE__ */ e.jsx(v, { className: "mb-4", children: a.length > 0 ? /* @__PURE__ */ e.jsx(Je, { runs: a }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted text-center py-8", children: "No runs match your query" }) }),
1888
1784
  /* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [
1889
- /* @__PURE__ */ e.jsxs(N, { children: [
1890
- /* @__PURE__ */ e.jsx(D, { children: /* @__PURE__ */ e.jsx(k, { children: "Query Syntax" }) }),
1891
- /* @__PURE__ */ e.jsxs(L, { children: [
1892
- /* @__PURE__ */ e.jsx(ee, { children: /* @__PURE__ */ e.jsxs(j, { children: [
1893
- /* @__PURE__ */ e.jsx(y, { children: "Field" }),
1894
- /* @__PURE__ */ e.jsx(y, { children: "Description" })
1785
+ /* @__PURE__ */ e.jsxs(v, { children: [
1786
+ /* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Query Syntax" }) }),
1787
+ /* @__PURE__ */ e.jsxs(O, { children: [
1788
+ /* @__PURE__ */ e.jsx(Q, { children: /* @__PURE__ */ e.jsxs(m, { children: [
1789
+ /* @__PURE__ */ e.jsx(b, { children: "Field" }),
1790
+ /* @__PURE__ */ e.jsx(b, { children: "Description" })
1895
1791
  ] }) }),
1896
- /* @__PURE__ */ e.jsxs(I, { children: [
1897
- /* @__PURE__ */ e.jsxs(j, { children: [
1792
+ /* @__PURE__ */ e.jsxs(F, { children: [
1793
+ /* @__PURE__ */ e.jsxs(m, { children: [
1898
1794
  /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "params.X" }),
1899
1795
  /* @__PURE__ */ e.jsx(c, { children: "Parameter value" })
1900
1796
  ] }),
1901
- /* @__PURE__ */ e.jsxs(j, { children: [
1797
+ /* @__PURE__ */ e.jsxs(m, { children: [
1902
1798
  /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "metric.X" }),
1903
1799
  /* @__PURE__ */ e.jsx(c, { children: "Metric value" })
1904
1800
  ] }),
1905
- /* @__PURE__ */ e.jsxs(j, { children: [
1801
+ /* @__PURE__ */ e.jsxs(m, { children: [
1906
1802
  /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "tags.X" }),
1907
1803
  /* @__PURE__ */ e.jsx(c, { children: "Tag value" })
1908
1804
  ] }),
1909
- /* @__PURE__ */ e.jsxs(j, { children: [
1805
+ /* @__PURE__ */ e.jsxs(m, { children: [
1910
1806
  /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "status" }),
1911
1807
  /* @__PURE__ */ e.jsx(c, { children: "Run status" })
1912
1808
  ] }),
1913
- /* @__PURE__ */ e.jsxs(j, { children: [
1809
+ /* @__PURE__ */ e.jsxs(m, { children: [
1914
1810
  /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "project" }),
1915
1811
  /* @__PURE__ */ e.jsx(c, { children: "Project name" })
1916
1812
  ] }),
1917
- /* @__PURE__ */ e.jsxs(j, { children: [
1813
+ /* @__PURE__ */ e.jsxs(m, { children: [
1918
1814
  /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "backend" }),
1919
1815
  /* @__PURE__ */ e.jsx(c, { children: "Backend name" })
1920
1816
  ] })
1921
1817
  ] })
1922
1818
  ] })
1923
1819
  ] }),
1924
- /* @__PURE__ */ e.jsxs(N, { children: [
1925
- /* @__PURE__ */ e.jsx(D, { children: /* @__PURE__ */ e.jsx(k, { children: "Operators" }) }),
1926
- /* @__PURE__ */ e.jsxs(L, { children: [
1927
- /* @__PURE__ */ e.jsx(ee, { children: /* @__PURE__ */ e.jsxs(j, { children: [
1928
- /* @__PURE__ */ e.jsx(y, { children: "Operator" }),
1929
- /* @__PURE__ */ e.jsx(y, { children: "Description" })
1820
+ /* @__PURE__ */ e.jsxs(v, { children: [
1821
+ /* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Operators" }) }),
1822
+ /* @__PURE__ */ e.jsxs(O, { children: [
1823
+ /* @__PURE__ */ e.jsx(Q, { children: /* @__PURE__ */ e.jsxs(m, { children: [
1824
+ /* @__PURE__ */ e.jsx(b, { children: "Operator" }),
1825
+ /* @__PURE__ */ e.jsx(b, { children: "Description" })
1930
1826
  ] }) }),
1931
- /* @__PURE__ */ e.jsxs(I, { children: [
1932
- /* @__PURE__ */ e.jsxs(j, { children: [
1827
+ /* @__PURE__ */ e.jsxs(F, { children: [
1828
+ /* @__PURE__ */ e.jsxs(m, { children: [
1933
1829
  /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "=" }),
1934
1830
  /* @__PURE__ */ e.jsx(c, { children: "Equals" })
1935
1831
  ] }),
1936
- /* @__PURE__ */ e.jsxs(j, { children: [
1832
+ /* @__PURE__ */ e.jsxs(m, { children: [
1937
1833
  /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "!=" }),
1938
1834
  /* @__PURE__ */ e.jsx(c, { children: "Not equals" })
1939
1835
  ] }),
1940
- /* @__PURE__ */ e.jsxs(j, { children: [
1836
+ /* @__PURE__ */ e.jsxs(m, { children: [
1941
1837
  /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: ">" }),
1942
1838
  /* @__PURE__ */ e.jsx(c, { children: "Greater than" })
1943
1839
  ] }),
1944
- /* @__PURE__ */ e.jsxs(j, { children: [
1840
+ /* @__PURE__ */ e.jsxs(m, { children: [
1945
1841
  /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: ">=" }),
1946
1842
  /* @__PURE__ */ e.jsx(c, { children: "Greater or equal" })
1947
1843
  ] }),
1948
- /* @__PURE__ */ e.jsxs(j, { children: [
1844
+ /* @__PURE__ */ e.jsxs(m, { children: [
1949
1845
  /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "<" }),
1950
1846
  /* @__PURE__ */ e.jsx(c, { children: "Less than" })
1951
1847
  ] }),
1952
- /* @__PURE__ */ e.jsxs(j, { children: [
1848
+ /* @__PURE__ */ e.jsxs(m, { children: [
1953
1849
  /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "<=" }),
1954
1850
  /* @__PURE__ */ e.jsx(c, { children: "Less or equal" })
1955
1851
  ] }),
1956
- /* @__PURE__ */ e.jsxs(j, { children: [
1852
+ /* @__PURE__ */ e.jsxs(m, { children: [
1957
1853
  /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "~" }),
1958
1854
  /* @__PURE__ */ e.jsx(c, { children: "Contains" })
1959
1855
  ] }),
1960
- /* @__PURE__ */ e.jsxs(j, { children: [
1856
+ /* @__PURE__ */ e.jsxs(m, { children: [
1961
1857
  /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "and" }),
1962
1858
  /* @__PURE__ */ e.jsx(c, { children: "Combine conditions" })
1963
1859
  ] })
@@ -1965,26 +1861,26 @@ function Ls() {
1965
1861
  ] })
1966
1862
  ] })
1967
1863
  ] }),
1968
- /* @__PURE__ */ e.jsxs(N, { className: "mt-4", children: [
1969
- /* @__PURE__ */ e.jsx(D, { children: /* @__PURE__ */ e.jsx(k, { children: "Examples" }) }),
1970
- /* @__PURE__ */ e.jsx(L, { children: /* @__PURE__ */ e.jsxs(I, { children: [
1971
- /* @__PURE__ */ e.jsxs(j, { children: [
1864
+ /* @__PURE__ */ e.jsxs(v, { className: "mt-4", children: [
1865
+ /* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Examples" }) }),
1866
+ /* @__PURE__ */ e.jsx(O, { children: /* @__PURE__ */ e.jsxs(F, { children: [
1867
+ /* @__PURE__ */ e.jsxs(m, { children: [
1972
1868
  /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "metric.fidelity > 0.95" }),
1973
1869
  /* @__PURE__ */ e.jsx(c, { children: "High fidelity runs" })
1974
1870
  ] }),
1975
- /* @__PURE__ */ e.jsxs(j, { children: [
1871
+ /* @__PURE__ */ e.jsxs(m, { children: [
1976
1872
  /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "params.shots = 1000 and status = FINISHED" }),
1977
1873
  /* @__PURE__ */ e.jsx(c, { children: "Finished runs with 1000 shots" })
1978
1874
  ] }),
1979
- /* @__PURE__ */ e.jsxs(j, { children: [
1875
+ /* @__PURE__ */ e.jsxs(m, { children: [
1980
1876
  /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "tags.backend ~ ibm" }),
1981
1877
  /* @__PURE__ */ e.jsx(c, { children: "Runs with IBM backends" })
1982
1878
  ] }),
1983
- /* @__PURE__ */ e.jsxs(j, { children: [
1879
+ /* @__PURE__ */ e.jsxs(m, { children: [
1984
1880
  /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "metric.error < 0.01" }),
1985
1881
  /* @__PURE__ */ e.jsx(c, { children: "Low error runs" })
1986
1882
  ] }),
1987
- /* @__PURE__ */ e.jsxs(j, { children: [
1883
+ /* @__PURE__ */ e.jsxs(m, { children: [
1988
1884
  /* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "project = vqe and metric.energy < -2.0" }),
1989
1885
  /* @__PURE__ */ e.jsx(c, { children: "VQE runs with low energy" })
1990
1886
  ] })
@@ -1992,169 +1888,144 @@ function Ls() {
1992
1888
  ] })
1993
1889
  ] });
1994
1890
  }
1995
- function Is() {
1996
- const { runId: s, index: n } = Xe(), t = parseInt(n, 10), { api: i } = W(), { data: d } = Pr(s), { data: o, loading: m, error: a } = ys(s, t), [u, x] = O(null);
1997
- xe(() => {
1998
- if (u) {
1999
- const P = setTimeout(() => x(null), 3e3);
2000
- return () => clearTimeout(P);
2001
- }
2002
- }, [u]);
2003
- const g = async () => {
2004
- try {
2005
- const P = i.getArtifactDownloadUrl(s, t), le = await fetch(P);
2006
- if (!le.ok) throw new Error("Download failed");
2007
- const oe = await le.blob(), Z = document.createElement("a");
2008
- Z.href = URL.createObjectURL(oe), Z.download = f?.kind || `artifact-${t}`, Z.click(), URL.revokeObjectURL(Z.href), x({ message: "Download started", variant: "success" });
2009
- } catch {
2010
- x({ message: "Download failed", variant: "error" });
2011
- }
2012
- };
2013
- if (m)
2014
- return /* @__PURE__ */ e.jsx(G, { children: /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e.jsx(V, {}) }) });
2015
- if (a || !o)
2016
- return /* @__PURE__ */ e.jsx(G, { children: /* @__PURE__ */ e.jsx(N, { children: /* @__PURE__ */ e.jsx(ce, { message: "Artifact not found", hint: a?.message }) }) });
2017
- const { artifact: f, size: R, content: K, content_json: w, preview_available: Q, error: J } = o, H = 10 * 1024 * 1024;
2018
- return /* @__PURE__ */ e.jsxs(G, { children: [
1891
+ function Ls() {
1892
+ const { runId: s, index: n } = Ye(), t = parseInt(n, 10), { api: a } = Y(), { data: d } = Pr(s), { data: h, loading: f, error: i } = bs(s, t);
1893
+ if (f)
1894
+ return /* @__PURE__ */ e.jsx(q, { children: /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e.jsx(V, {}) }) });
1895
+ if (i || !h)
1896
+ return /* @__PURE__ */ e.jsx(q, { children: /* @__PURE__ */ e.jsx(v, { children: /* @__PURE__ */ e.jsx(te, { message: "Artifact not found", hint: i?.message }) }) });
1897
+ const { artifact: x, size: o, content: p, content_json: $, preview_available: _, error: G } = h, J = 10 * 1024 * 1024;
1898
+ return /* @__PURE__ */ e.jsxs(q, { children: [
2019
1899
  /* @__PURE__ */ e.jsx(
2020
- _e,
1900
+ pe,
2021
1901
  {
2022
- title: f.kind,
1902
+ title: x.kind,
2023
1903
  subtitle: /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
2024
1904
  "← Back to run ",
2025
- /* @__PURE__ */ e.jsxs(q, { to: `/runs/${s}`, children: [
2026
- z(s),
1905
+ /* @__PURE__ */ e.jsxs(M, { to: `/runs/${s}`, children: [
1906
+ K(s),
2027
1907
  d?.run_name && ` — ${d.run_name}`
2028
1908
  ] })
2029
1909
  ] }),
2030
- actions: /* @__PURE__ */ e.jsx(F, { variant: "primary", onClick: g, children: "Download" })
1910
+ actions: /* @__PURE__ */ e.jsx("a", { href: a.getArtifactDownloadUrl(s, t), children: /* @__PURE__ */ e.jsx(k, { variant: "primary", children: "Download" }) })
2031
1911
  }
2032
1912
  ),
2033
- /* @__PURE__ */ e.jsx(N, { className: "mb-4", children: /* @__PURE__ */ e.jsx(Je, { items: [
2034
- { label: "Kind", value: /* @__PURE__ */ e.jsx("span", { className: "font-mono", children: f.kind }) },
2035
- { label: "Role", value: /* @__PURE__ */ e.jsx(B, { variant: "gray", children: f.role }) },
2036
- { label: "Media Type", value: f.media_type },
2037
- { label: "Digest", value: /* @__PURE__ */ e.jsx("span", { className: "font-mono text-sm", children: f.digest }) },
2038
- { label: "Size", value: Ae(R) }
1913
+ /* @__PURE__ */ e.jsx(v, { className: "mb-4", children: /* @__PURE__ */ e.jsx(Ge, { items: [
1914
+ { label: "Kind", value: /* @__PURE__ */ e.jsx("span", { className: "font-mono", children: x.kind }) },
1915
+ { label: "Role", value: /* @__PURE__ */ e.jsx(B, { variant: "gray", children: x.role }) },
1916
+ { label: "Media Type", value: x.media_type },
1917
+ { label: "Digest", value: /* @__PURE__ */ e.jsx("span", { className: "font-mono text-sm", children: x.digest }) },
1918
+ { label: "Size", value: Pe(o) }
2039
1919
  ] }) }),
2040
- /* @__PURE__ */ e.jsxs(N, { children: [
2041
- /* @__PURE__ */ e.jsx(D, { children: /* @__PURE__ */ e.jsx(k, { children: "Content" }) }),
2042
- J ? /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1920
+ /* @__PURE__ */ e.jsxs(v, { children: [
1921
+ /* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Content" }) }),
1922
+ G ? /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
2043
1923
  /* @__PURE__ */ e.jsxs("p", { className: "text-sm text-danger", children: [
2044
- "Error loading artifact: ",
2045
- J
1924
+ "Error loading artifact: ",
1925
+ G
2046
1926
  ] }),
2047
- /* @__PURE__ */ e.jsx("p", { className: "text-muted mt-2", children: /* @__PURE__ */ e.jsx(F, { variant: "primary", onClick: g, children: "Download to view" }) })
2048
- ] }) : Q ? w ? /* @__PURE__ */ e.jsx("pre", { children: Rs(w) }) : K ? /* @__PURE__ */ e.jsx("pre", { children: K }) : /* @__PURE__ */ e.jsxs("p", { className: "text-muted", children: [
1927
+ /* @__PURE__ */ e.jsx("p", { className: "text-muted mt-2", children: /* @__PURE__ */ e.jsx("a", { href: a.getArtifactDownloadUrl(s, t), children: /* @__PURE__ */ e.jsx(k, { variant: "primary", children: "Download to view" }) }) })
1928
+ ] }) : _ ? $ ? /* @__PURE__ */ e.jsx("pre", { children: _s($) }) : p ? /* @__PURE__ */ e.jsx("pre", { children: p }) : /* @__PURE__ */ e.jsxs("p", { className: "text-muted", children: [
2049
1929
  "Binary content (",
2050
- Ae(R),
1930
+ Pe(o),
2051
1931
  ") — download to view"
2052
1932
  ] }) : /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
2053
1933
  /* @__PURE__ */ e.jsxs("p", { className: "text-muted", children: [
2054
1934
  /* @__PURE__ */ e.jsx("strong", { children: "Artifact too large for preview" }),
2055
1935
  " (",
2056
- Ae(R),
1936
+ Pe(o),
2057
1937
  " exceeds ",
2058
- Ae(H),
1938
+ Pe(J),
2059
1939
  " limit)"
2060
1940
  ] }),
2061
1941
  /* @__PURE__ */ e.jsx("p", { className: "text-sm text-muted mt-2", children: "Download the artifact to view its contents." }),
2062
- /* @__PURE__ */ e.jsx("p", { className: "mt-4", children: /* @__PURE__ */ e.jsx(F, { variant: "primary", onClick: g, children: "Download" }) })
1942
+ /* @__PURE__ */ e.jsx("p", { className: "mt-4", children: /* @__PURE__ */ e.jsx("a", { href: a.getArtifactDownloadUrl(s, t), children: /* @__PURE__ */ e.jsx(k, { variant: "primary", children: "Download" }) }) })
2063
1943
  ] })
2064
- ] }),
2065
- u && /* @__PURE__ */ e.jsx(
2066
- Be,
2067
- {
2068
- message: u.message,
2069
- variant: u.variant,
2070
- visible: !!u,
2071
- onClose: () => x(null)
2072
- }
2073
- )
1944
+ ] })
2074
1945
  ] });
2075
1946
  }
2076
1947
  const Us = [
2077
- { path: "/", element: /* @__PURE__ */ e.jsx(ds, { to: "/runs", replace: !0 }) },
2078
- { path: "/runs", element: /* @__PURE__ */ e.jsx(Cs, {}) },
1948
+ { path: "/", element: /* @__PURE__ */ e.jsx(ls, { to: "/runs", replace: !0 }) },
1949
+ { path: "/runs", element: /* @__PURE__ */ e.jsx(Ps, {}) },
2079
1950
  { path: "/runs/:runId", element: /* @__PURE__ */ e.jsx(Ds, {}) },
2080
- { path: "/runs/:runId/artifacts/:index", element: /* @__PURE__ */ e.jsx(Is, {}) },
1951
+ { path: "/runs/:runId/artifacts/:index", element: /* @__PURE__ */ e.jsx(Ls, {}) },
2081
1952
  { path: "/projects", element: /* @__PURE__ */ e.jsx(ks, {}) },
2082
1953
  { path: "/groups", element: /* @__PURE__ */ e.jsx(As, {}) },
2083
- { path: "/groups/:groupId", element: /* @__PURE__ */ e.jsx(Fs, {}) },
1954
+ { path: "/groups/:groupId", element: /* @__PURE__ */ e.jsx(Os, {}) },
2084
1955
  { path: "/diff", element: /* @__PURE__ */ e.jsx(Bs, {}) },
2085
- { path: "/search", element: /* @__PURE__ */ e.jsx(Ls, {}) }
1956
+ { path: "/search", element: /* @__PURE__ */ e.jsx(Is, {}) }
2086
1957
  ];
2087
- function Fr(s = []) {
2088
- return us([...Us, ...s]);
1958
+ function kr(s = []) {
1959
+ return os([...Us, ...s]);
2089
1960
  }
2090
- const Ms = Fr();
1961
+ const Ms = kr();
2091
1962
  function zs({ additionalRoutes: s, ...n }) {
2092
- const t = s?.length ? Fr(s) : Ms;
2093
- return /* @__PURE__ */ e.jsx(gs, { ...n, children: /* @__PURE__ */ e.jsx(hs, { router: t }) });
1963
+ const t = s?.length ? kr(s) : Ms;
1964
+ return /* @__PURE__ */ e.jsx(js, { ...n, children: /* @__PURE__ */ e.jsx(ds, { router: t }) });
2094
1965
  }
2095
1966
  export {
2096
1967
  Ys as Alert,
2097
- fs as ApiClient,
2098
- Ne as ApiError,
1968
+ ms as ApiClient,
1969
+ fe as ApiError,
2099
1970
  zs as App,
2100
- gs as AppProvider,
2101
- Is as ArtifactPage,
1971
+ js as AppProvider,
1972
+ Ls as ArtifactPage,
2102
1973
  B as Badge,
2103
- F as Button,
2104
- N as Card,
2105
- D as CardHeader,
2106
- k as CardTitle,
1974
+ k as Button,
1975
+ v as Card,
1976
+ S as CardHeader,
1977
+ P as CardTitle,
2107
1978
  Bs as DiffPage,
2108
- ce as EmptyState,
2109
- X as FormGroup,
2110
- kr as FormRow,
2111
- Fs as GroupDetailPage,
1979
+ te as EmptyState,
1980
+ H as FormGroup,
1981
+ Cr as FormRow,
1982
+ Os as GroupDetailPage,
2112
1983
  As as GroupsPage,
2113
- Ss as GroupsTable,
2114
- Qe as Input,
2115
- Je as KVList,
2116
- re as Label,
2117
- G as Layout,
2118
- Ws as LayoutConfigProvider,
2119
- Dr as Modal,
2120
- _e as PageHeader,
1984
+ Cs as GroupsTable,
1985
+ Ke as Input,
1986
+ Ge as KVList,
1987
+ Z as Label,
1988
+ q as Layout,
1989
+ Vs as LayoutConfigProvider,
1990
+ Es as Modal,
1991
+ pe as PageHeader,
2121
1992
  ks as ProjectsPage,
2122
- Ps as ProjectsTable,
1993
+ Ts as ProjectsTable,
2123
1994
  Ds as RunDetailPage,
2124
- Cs as RunsPage,
2125
- Ze as RunsTable,
2126
- Ls as SearchPage,
2127
- ae as Select,
1995
+ Ps as RunsPage,
1996
+ Je as RunsTable,
1997
+ Is as SearchPage,
1998
+ se as Select,
2128
1999
  V as Spinner,
2129
- Ar as StatusBadge,
2130
- L as Table,
2131
- I as TableBody,
2000
+ Dr as StatusBadge,
2001
+ O as Table,
2002
+ F as TableBody,
2132
2003
  c as TableCell,
2133
- ee as TableHead,
2134
- y as TableHeader,
2135
- j as TableRow,
2136
- Be as Toast,
2137
- ps as api,
2138
- Vs as buildUrl,
2139
- $ as cn,
2004
+ Q as TableHead,
2005
+ b as TableHeader,
2006
+ m as TableRow,
2007
+ Ss as Toast,
2008
+ fs as api,
2009
+ Ws as buildUrl,
2010
+ A as cn,
2140
2011
  Us as coreRoutes,
2141
- Fr as createRouter,
2142
- Ae as formatBytes,
2143
- _s as formatNumber,
2144
- Rs as jsonPretty,
2012
+ kr as createRouter,
2013
+ Pe as formatBytes,
2014
+ Ns as formatNumber,
2015
+ _s as jsonPretty,
2145
2016
  Ms as router,
2146
- Ke as shortDigest,
2147
- z as shortId,
2148
- Fe as timeAgo,
2149
- ws as truncate,
2150
- W as useApp,
2151
- ys as useArtifact,
2152
- Ns as useDiff,
2153
- bs as useGroup,
2154
- vs as useGroups,
2155
- Ts as useLayoutConfig,
2156
- ye as useMutation,
2157
- $e as useProjects,
2017
+ qe as shortDigest,
2018
+ K as shortId,
2019
+ Te as timeAgo,
2020
+ ys as truncate,
2021
+ Y as useApp,
2022
+ bs as useArtifact,
2023
+ vs as useDiff,
2024
+ gs as useGroup,
2025
+ ps as useGroups,
2026
+ ws as useLayoutConfig,
2027
+ je as useMutation,
2028
+ ze as useProjects,
2158
2029
  Pr as useRun,
2159
- Cr as useRuns
2030
+ Sr as useRuns
2160
2031
  };