@devqubit/ui 0.1.11-beta.2 → 0.1.11-beta.4
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/api/client.d.ts +9 -4
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/components/ExportRunButton/ExportRunButton.d.ts.map +1 -1
- package/dist/hooks/index.d.ts +31 -14
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/useTheme.d.ts +5 -5
- package/dist/hooks/useTheme.d.ts.map +1 -1
- package/dist/index.cjs +6 -6
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +498 -469
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useLocation as pt, Link as Y, useSearchParams as
|
|
3
|
-
var $e = { exports: {} },
|
|
4
|
-
var
|
|
1
|
+
import Ds, { useContext as ss, createContext as ts, useState as P, useEffect as ne, useCallback as pe, useRef as Cs, forwardRef as rs } from "react";
|
|
2
|
+
import { useLocation as pt, Link as Y, useSearchParams as Ie, useParams as ns, useNavigate as gt, Navigate as vt, createBrowserRouter as bt, RouterProvider as Nt } from "react-router-dom";
|
|
3
|
+
var $e = { exports: {} }, Ne = {};
|
|
4
|
+
var Ts;
|
|
5
5
|
function yt() {
|
|
6
|
-
if (
|
|
7
|
-
|
|
8
|
-
var s =
|
|
9
|
-
function u(i,
|
|
6
|
+
if (Ts) return Ne;
|
|
7
|
+
Ts = 1;
|
|
8
|
+
var s = Ds, r = /* @__PURE__ */ Symbol.for("react.element"), a = /* @__PURE__ */ Symbol.for("react.fragment"), n = Object.prototype.hasOwnProperty, o = s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, d = { key: !0, ref: !0, __self: !0, __source: !0 };
|
|
9
|
+
function u(i, x, h) {
|
|
10
10
|
var m, p = {}, y = null, M = null;
|
|
11
|
-
h !== void 0 && (y = "" + h),
|
|
12
|
-
for (m in
|
|
13
|
-
if (i && i.defaultProps) for (m in
|
|
11
|
+
h !== void 0 && (y = "" + h), x.key !== void 0 && (y = "" + x.key), x.ref !== void 0 && (M = x.ref);
|
|
12
|
+
for (m in x) n.call(x, m) && !d.hasOwnProperty(m) && (p[m] = x[m]);
|
|
13
|
+
if (i && i.defaultProps) for (m in x = i.defaultProps, x) p[m] === void 0 && (p[m] = x[m]);
|
|
14
14
|
return { $$typeof: r, type: i, key: y, ref: M, props: p, _owner: o.current };
|
|
15
15
|
}
|
|
16
|
-
return
|
|
16
|
+
return Ne.Fragment = a, Ne.jsx = u, Ne.jsxs = u, Ne;
|
|
17
17
|
}
|
|
18
|
-
var
|
|
19
|
-
var
|
|
18
|
+
var ye = {};
|
|
19
|
+
var ks;
|
|
20
20
|
function _t() {
|
|
21
|
-
return
|
|
22
|
-
var s =
|
|
21
|
+
return ks || (ks = 1, process.env.NODE_ENV !== "production" && (function() {
|
|
22
|
+
var s = Ds, r = /* @__PURE__ */ Symbol.for("react.element"), a = /* @__PURE__ */ Symbol.for("react.portal"), n = /* @__PURE__ */ Symbol.for("react.fragment"), o = /* @__PURE__ */ Symbol.for("react.strict_mode"), d = /* @__PURE__ */ Symbol.for("react.profiler"), u = /* @__PURE__ */ Symbol.for("react.provider"), i = /* @__PURE__ */ Symbol.for("react.context"), x = /* @__PURE__ */ Symbol.for("react.forward_ref"), h = /* @__PURE__ */ Symbol.for("react.suspense"), m = /* @__PURE__ */ Symbol.for("react.suspense_list"), p = /* @__PURE__ */ Symbol.for("react.memo"), y = /* @__PURE__ */ Symbol.for("react.lazy"), M = /* @__PURE__ */ Symbol.for("react.offscreen"), _ = Symbol.iterator, H = "@@iterator";
|
|
23
23
|
function T(t) {
|
|
24
24
|
if (t === null || typeof t != "object")
|
|
25
25
|
return null;
|
|
26
26
|
var l = _ && t[_] || t[H];
|
|
27
27
|
return typeof l == "function" ? l : null;
|
|
28
28
|
}
|
|
29
|
-
var
|
|
29
|
+
var I = s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
|
|
30
30
|
function k(t) {
|
|
31
31
|
{
|
|
32
|
-
for (var l = arguments.length,
|
|
33
|
-
|
|
34
|
-
te("error", t,
|
|
32
|
+
for (var l = arguments.length, f = new Array(l > 1 ? l - 1 : 0), g = 1; g < l; g++)
|
|
33
|
+
f[g - 1] = arguments[g];
|
|
34
|
+
te("error", t, f);
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
function te(t, l,
|
|
37
|
+
function te(t, l, f) {
|
|
38
38
|
{
|
|
39
|
-
var g =
|
|
40
|
-
E !== "" && (l += "%s",
|
|
41
|
-
var C =
|
|
39
|
+
var g = I.ReactDebugCurrentFrame, E = g.getStackAddendum();
|
|
40
|
+
E !== "" && (l += "%s", f = f.concat([E]));
|
|
41
|
+
var C = f.map(function(R) {
|
|
42
42
|
return String(R);
|
|
43
43
|
});
|
|
44
44
|
C.unshift("Warning: " + l), Function.prototype.apply.call(console[t], console, C);
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
-
var ae = !1, J = !1, Z = !1, xe = !1, me = !1,
|
|
48
|
-
|
|
49
|
-
function
|
|
50
|
-
return !!(typeof t == "string" || typeof t == "function" || t === n || t === d || me || t === o || t === h || t === m || xe || t === M || ae || J || Z || typeof t == "object" && t !== null && (t.$$typeof === y || t.$$typeof === p || t.$$typeof === u || t.$$typeof === i || t.$$typeof ===
|
|
47
|
+
var ae = !1, J = !1, Z = !1, xe = !1, me = !1, ge;
|
|
48
|
+
ge = /* @__PURE__ */ Symbol.for("react.module.reference");
|
|
49
|
+
function Me(t) {
|
|
50
|
+
return !!(typeof t == "string" || typeof t == "function" || t === n || t === d || me || t === o || t === h || t === m || xe || t === M || ae || J || Z || typeof t == "object" && t !== null && (t.$$typeof === y || t.$$typeof === p || t.$$typeof === u || t.$$typeof === i || t.$$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
|
-
t.$$typeof ===
|
|
54
|
+
t.$$typeof === ge || t.getModuleId !== void 0));
|
|
55
55
|
}
|
|
56
|
-
function
|
|
56
|
+
function Ue(t, l, f) {
|
|
57
57
|
var g = t.displayName;
|
|
58
58
|
if (g)
|
|
59
59
|
return g;
|
|
60
60
|
var E = l.displayName || l.name || "";
|
|
61
|
-
return E !== "" ?
|
|
61
|
+
return E !== "" ? f + "(" + E + ")" : f;
|
|
62
62
|
}
|
|
63
63
|
function Te(t) {
|
|
64
64
|
return t.displayName || "Context";
|
|
@@ -90,10 +90,10 @@ function _t() {
|
|
|
90
90
|
var l = t;
|
|
91
91
|
return Te(l) + ".Consumer";
|
|
92
92
|
case u:
|
|
93
|
-
var
|
|
94
|
-
return Te(
|
|
95
|
-
case
|
|
96
|
-
return
|
|
93
|
+
var f = t;
|
|
94
|
+
return Te(f._context) + ".Provider";
|
|
95
|
+
case x:
|
|
96
|
+
return Ue(t, t.render, "ForwardRef");
|
|
97
97
|
case p:
|
|
98
98
|
var g = t.displayName || null;
|
|
99
99
|
return g !== null ? g : ee(t.type) || "Memo";
|
|
@@ -108,18 +108,18 @@ function _t() {
|
|
|
108
108
|
}
|
|
109
109
|
return null;
|
|
110
110
|
}
|
|
111
|
-
var w = Object.assign,
|
|
112
|
-
function
|
|
111
|
+
var w = Object.assign, S = 0, ke, ve, Pe, le, ls, os, ds;
|
|
112
|
+
function us() {
|
|
113
113
|
}
|
|
114
|
-
|
|
115
|
-
function
|
|
114
|
+
us.__reactDisabledLog = !0;
|
|
115
|
+
function Ws() {
|
|
116
116
|
{
|
|
117
|
-
if (
|
|
118
|
-
ke = console.log,
|
|
117
|
+
if (S === 0) {
|
|
118
|
+
ke = console.log, ve = console.info, Pe = console.warn, le = console.error, ls = console.group, os = console.groupCollapsed, ds = console.groupEnd;
|
|
119
119
|
var t = {
|
|
120
120
|
configurable: !0,
|
|
121
121
|
enumerable: !0,
|
|
122
|
-
value:
|
|
122
|
+
value: us,
|
|
123
123
|
writable: !0
|
|
124
124
|
};
|
|
125
125
|
Object.defineProperties(console, {
|
|
@@ -132,12 +132,12 @@ function _t() {
|
|
|
132
132
|
groupEnd: t
|
|
133
133
|
});
|
|
134
134
|
}
|
|
135
|
-
|
|
135
|
+
S++;
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
138
|
function Vs() {
|
|
139
139
|
{
|
|
140
|
-
if (
|
|
140
|
+
if (S--, S === 0) {
|
|
141
141
|
var t = {
|
|
142
142
|
configurable: !0,
|
|
143
143
|
enumerable: !0,
|
|
@@ -148,30 +148,30 @@ function _t() {
|
|
|
148
148
|
value: ke
|
|
149
149
|
}),
|
|
150
150
|
info: w({}, t, {
|
|
151
|
-
value:
|
|
151
|
+
value: ve
|
|
152
152
|
}),
|
|
153
153
|
warn: w({}, t, {
|
|
154
|
-
value:
|
|
154
|
+
value: Pe
|
|
155
155
|
}),
|
|
156
156
|
error: w({}, t, {
|
|
157
157
|
value: le
|
|
158
158
|
}),
|
|
159
159
|
group: w({}, t, {
|
|
160
|
-
value:
|
|
160
|
+
value: ls
|
|
161
161
|
}),
|
|
162
162
|
groupCollapsed: w({}, t, {
|
|
163
|
-
value:
|
|
163
|
+
value: os
|
|
164
164
|
}),
|
|
165
165
|
groupEnd: w({}, t, {
|
|
166
|
-
value:
|
|
166
|
+
value: ds
|
|
167
167
|
})
|
|
168
168
|
});
|
|
169
169
|
}
|
|
170
|
-
|
|
170
|
+
S < 0 && k("disabledDepth fell below zero. This is a bug in React. Please file an issue.");
|
|
171
171
|
}
|
|
172
172
|
}
|
|
173
|
-
var
|
|
174
|
-
function
|
|
173
|
+
var Ge = I.ReactCurrentDispatcher, We;
|
|
174
|
+
function Se(t, l, f) {
|
|
175
175
|
{
|
|
176
176
|
if (We === void 0)
|
|
177
177
|
try {
|
|
@@ -184,25 +184,25 @@ function _t() {
|
|
|
184
184
|
` + We + t;
|
|
185
185
|
}
|
|
186
186
|
}
|
|
187
|
-
var
|
|
187
|
+
var Ve = !1, De;
|
|
188
188
|
{
|
|
189
189
|
var zs = typeof WeakMap == "function" ? WeakMap : Map;
|
|
190
190
|
De = new zs();
|
|
191
191
|
}
|
|
192
|
-
function
|
|
193
|
-
if (!t ||
|
|
192
|
+
function hs(t, l) {
|
|
193
|
+
if (!t || Ve)
|
|
194
194
|
return "";
|
|
195
195
|
{
|
|
196
|
-
var
|
|
197
|
-
if (
|
|
198
|
-
return
|
|
196
|
+
var f = De.get(t);
|
|
197
|
+
if (f !== void 0)
|
|
198
|
+
return f;
|
|
199
199
|
}
|
|
200
200
|
var g;
|
|
201
|
-
|
|
201
|
+
Ve = !0;
|
|
202
202
|
var E = Error.prepareStackTrace;
|
|
203
203
|
Error.prepareStackTrace = void 0;
|
|
204
204
|
var C;
|
|
205
|
-
C =
|
|
205
|
+
C = Ge.current, Ge.current = null, Ws();
|
|
206
206
|
try {
|
|
207
207
|
if (l) {
|
|
208
208
|
var R = function() {
|
|
@@ -255,106 +255,106 @@ function _t() {
|
|
|
255
255
|
}
|
|
256
256
|
}
|
|
257
257
|
} finally {
|
|
258
|
-
|
|
258
|
+
Ve = !1, Ge.current = C, Vs(), Error.prepareStackTrace = E;
|
|
259
259
|
}
|
|
260
|
-
var je = t ? t.displayName || t.name : "", oe = je ?
|
|
260
|
+
var je = t ? t.displayName || t.name : "", oe = je ? Se(je) : "";
|
|
261
261
|
return typeof t == "function" && De.set(t, oe), oe;
|
|
262
262
|
}
|
|
263
|
-
function Ys(t, l,
|
|
264
|
-
return
|
|
263
|
+
function Ys(t, l, f) {
|
|
264
|
+
return hs(t, !1);
|
|
265
265
|
}
|
|
266
266
|
function Ks(t) {
|
|
267
267
|
var l = t.prototype;
|
|
268
268
|
return !!(l && l.isReactComponent);
|
|
269
269
|
}
|
|
270
|
-
function Ae(t, l,
|
|
270
|
+
function Ae(t, l, f) {
|
|
271
271
|
if (t == null)
|
|
272
272
|
return "";
|
|
273
273
|
if (typeof t == "function")
|
|
274
|
-
return
|
|
274
|
+
return hs(t, Ks(t));
|
|
275
275
|
if (typeof t == "string")
|
|
276
|
-
return
|
|
276
|
+
return Se(t);
|
|
277
277
|
switch (t) {
|
|
278
278
|
case h:
|
|
279
|
-
return
|
|
279
|
+
return Se("Suspense");
|
|
280
280
|
case m:
|
|
281
|
-
return
|
|
281
|
+
return Se("SuspenseList");
|
|
282
282
|
}
|
|
283
283
|
if (typeof t == "object")
|
|
284
284
|
switch (t.$$typeof) {
|
|
285
|
-
case
|
|
285
|
+
case x:
|
|
286
286
|
return Ys(t.render);
|
|
287
287
|
case p:
|
|
288
|
-
return Ae(t.type, l,
|
|
288
|
+
return Ae(t.type, l, f);
|
|
289
289
|
case y: {
|
|
290
290
|
var g = t, E = g._payload, C = g._init;
|
|
291
291
|
try {
|
|
292
|
-
return Ae(C(E), l,
|
|
292
|
+
return Ae(C(E), l, f);
|
|
293
293
|
} catch {
|
|
294
294
|
}
|
|
295
295
|
}
|
|
296
296
|
}
|
|
297
297
|
return "";
|
|
298
298
|
}
|
|
299
|
-
var
|
|
299
|
+
var be = Object.prototype.hasOwnProperty, xs = {}, ms = I.ReactDebugCurrentFrame;
|
|
300
300
|
function Fe(t) {
|
|
301
301
|
if (t) {
|
|
302
|
-
var l = t._owner,
|
|
303
|
-
|
|
302
|
+
var l = t._owner, f = Ae(t.type, t._source, l ? l.type : null);
|
|
303
|
+
ms.setExtraStackFrame(f);
|
|
304
304
|
} else
|
|
305
|
-
|
|
305
|
+
ms.setExtraStackFrame(null);
|
|
306
306
|
}
|
|
307
|
-
function Hs(t, l,
|
|
307
|
+
function Hs(t, l, f, g, E) {
|
|
308
308
|
{
|
|
309
|
-
var C = Function.call.bind(
|
|
309
|
+
var C = Function.call.bind(be);
|
|
310
310
|
for (var R in t)
|
|
311
311
|
if (C(t, R)) {
|
|
312
312
|
var v = void 0;
|
|
313
313
|
try {
|
|
314
314
|
if (typeof t[R] != "function") {
|
|
315
|
-
var q = Error((g || "React class") + ": " +
|
|
315
|
+
var q = Error((g || "React class") + ": " + f + " type `" + R + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof t[R] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");
|
|
316
316
|
throw q.name = "Invariant Violation", q;
|
|
317
317
|
}
|
|
318
|
-
v = t[R](l, R, g,
|
|
318
|
+
v = t[R](l, R, g, f, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED");
|
|
319
319
|
} catch (A) {
|
|
320
320
|
v = A;
|
|
321
321
|
}
|
|
322
|
-
v && !(v instanceof Error) && (Fe(E), k("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", g || "React class",
|
|
322
|
+
v && !(v instanceof Error) && (Fe(E), k("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", g || "React class", f, R, typeof v), Fe(null)), v instanceof Error && !(v.message in xs) && (xs[v.message] = !0, Fe(E), k("Failed %s type: %s", f, v.message), Fe(null));
|
|
323
323
|
}
|
|
324
324
|
}
|
|
325
325
|
}
|
|
326
326
|
var Js = Array.isArray;
|
|
327
|
-
function
|
|
327
|
+
function ze(t) {
|
|
328
328
|
return Js(t);
|
|
329
329
|
}
|
|
330
330
|
function Xs(t) {
|
|
331
331
|
{
|
|
332
|
-
var l = typeof Symbol == "function" && Symbol.toStringTag,
|
|
333
|
-
return
|
|
332
|
+
var l = typeof Symbol == "function" && Symbol.toStringTag, f = l && t[Symbol.toStringTag] || t.constructor.name || "Object";
|
|
333
|
+
return f;
|
|
334
334
|
}
|
|
335
335
|
}
|
|
336
336
|
function Qs(t) {
|
|
337
337
|
try {
|
|
338
|
-
return
|
|
338
|
+
return fs(t), !1;
|
|
339
339
|
} catch {
|
|
340
340
|
return !0;
|
|
341
341
|
}
|
|
342
342
|
}
|
|
343
|
-
function
|
|
343
|
+
function fs(t) {
|
|
344
344
|
return "" + t;
|
|
345
345
|
}
|
|
346
|
-
function
|
|
346
|
+
function js(t) {
|
|
347
347
|
if (Qs(t))
|
|
348
|
-
return k("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", Xs(t)),
|
|
348
|
+
return k("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", Xs(t)), fs(t);
|
|
349
349
|
}
|
|
350
|
-
var
|
|
350
|
+
var ps = I.ReactCurrentOwner, Zs = {
|
|
351
351
|
key: !0,
|
|
352
352
|
ref: !0,
|
|
353
353
|
__self: !0,
|
|
354
354
|
__source: !0
|
|
355
|
-
},
|
|
355
|
+
}, gs, vs;
|
|
356
356
|
function et(t) {
|
|
357
|
-
if (
|
|
357
|
+
if (be.call(t, "ref")) {
|
|
358
358
|
var l = Object.getOwnPropertyDescriptor(t, "ref").get;
|
|
359
359
|
if (l && l.isReactWarning)
|
|
360
360
|
return !1;
|
|
@@ -362,7 +362,7 @@ function _t() {
|
|
|
362
362
|
return t.ref !== void 0;
|
|
363
363
|
}
|
|
364
364
|
function st(t) {
|
|
365
|
-
if (
|
|
365
|
+
if (be.call(t, "key")) {
|
|
366
366
|
var l = Object.getOwnPropertyDescriptor(t, "key").get;
|
|
367
367
|
if (l && l.isReactWarning)
|
|
368
368
|
return !1;
|
|
@@ -370,38 +370,38 @@ function _t() {
|
|
|
370
370
|
return t.key !== void 0;
|
|
371
371
|
}
|
|
372
372
|
function tt(t, l) {
|
|
373
|
-
typeof t.ref == "string" &&
|
|
373
|
+
typeof t.ref == "string" && ps.current;
|
|
374
374
|
}
|
|
375
375
|
function rt(t, l) {
|
|
376
376
|
{
|
|
377
|
-
var
|
|
378
|
-
|
|
377
|
+
var f = function() {
|
|
378
|
+
gs || (gs = !0, k("%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
|
-
|
|
381
|
-
get:
|
|
380
|
+
f.isReactWarning = !0, Object.defineProperty(t, "key", {
|
|
381
|
+
get: f,
|
|
382
382
|
configurable: !0
|
|
383
383
|
});
|
|
384
384
|
}
|
|
385
385
|
}
|
|
386
386
|
function nt(t, l) {
|
|
387
387
|
{
|
|
388
|
-
var
|
|
389
|
-
|
|
388
|
+
var f = function() {
|
|
389
|
+
vs || (vs = !0, k("%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
|
-
|
|
392
|
-
get:
|
|
391
|
+
f.isReactWarning = !0, Object.defineProperty(t, "ref", {
|
|
392
|
+
get: f,
|
|
393
393
|
configurable: !0
|
|
394
394
|
});
|
|
395
395
|
}
|
|
396
396
|
}
|
|
397
|
-
var at = function(t, l,
|
|
397
|
+
var at = function(t, l, f, g, E, C, R) {
|
|
398
398
|
var v = {
|
|
399
399
|
// This tag allows us to uniquely identify this as a React Element
|
|
400
400
|
$$typeof: r,
|
|
401
401
|
// Built-in properties that belong on the element
|
|
402
402
|
type: t,
|
|
403
403
|
key: l,
|
|
404
|
-
ref:
|
|
404
|
+
ref: f,
|
|
405
405
|
props: R,
|
|
406
406
|
// Record the component responsible for creating this element.
|
|
407
407
|
_owner: C
|
|
@@ -423,12 +423,12 @@ function _t() {
|
|
|
423
423
|
value: E
|
|
424
424
|
}), Object.freeze && (Object.freeze(v.props), Object.freeze(v)), v;
|
|
425
425
|
};
|
|
426
|
-
function it(t, l,
|
|
426
|
+
function it(t, l, f, g, E) {
|
|
427
427
|
{
|
|
428
428
|
var C, R = {}, v = null, q = null;
|
|
429
|
-
|
|
429
|
+
f !== void 0 && (js(f), v = "" + f), st(l) && (js(l.key), v = "" + l.key), et(l) && (q = l.ref, tt(l, E));
|
|
430
430
|
for (C in l)
|
|
431
|
-
|
|
431
|
+
be.call(l, C) && !Zs.hasOwnProperty(C) && (R[C] = l[C]);
|
|
432
432
|
if (t && t.defaultProps) {
|
|
433
433
|
var A = t.defaultProps;
|
|
434
434
|
for (C in A)
|
|
@@ -438,26 +438,26 @@ function _t() {
|
|
|
438
438
|
var F = typeof t == "function" ? t.displayName || t.name || "Unknown" : t;
|
|
439
439
|
v && rt(R, F), q && nt(R, F);
|
|
440
440
|
}
|
|
441
|
-
return at(t, v, q, E, g,
|
|
441
|
+
return at(t, v, q, E, g, ps.current, R);
|
|
442
442
|
}
|
|
443
443
|
}
|
|
444
|
-
var
|
|
444
|
+
var Ye = I.ReactCurrentOwner, bs = I.ReactDebugCurrentFrame;
|
|
445
445
|
function fe(t) {
|
|
446
446
|
if (t) {
|
|
447
|
-
var l = t._owner,
|
|
448
|
-
|
|
447
|
+
var l = t._owner, f = Ae(t.type, t._source, l ? l.type : null);
|
|
448
|
+
bs.setExtraStackFrame(f);
|
|
449
449
|
} else
|
|
450
|
-
|
|
450
|
+
bs.setExtraStackFrame(null);
|
|
451
451
|
}
|
|
452
|
-
var
|
|
453
|
-
|
|
454
|
-
function
|
|
452
|
+
var Ke;
|
|
453
|
+
Ke = !1;
|
|
454
|
+
function He(t) {
|
|
455
455
|
return typeof t == "object" && t !== null && t.$$typeof === r;
|
|
456
456
|
}
|
|
457
|
-
function
|
|
457
|
+
function Ns() {
|
|
458
458
|
{
|
|
459
|
-
if (
|
|
460
|
-
var t = ee(
|
|
459
|
+
if (Ye.current) {
|
|
460
|
+
var t = ee(Ye.current.type);
|
|
461
461
|
if (t)
|
|
462
462
|
return `
|
|
463
463
|
|
|
@@ -469,48 +469,48 @@ Check the render method of \`` + t + "`.";
|
|
|
469
469
|
function ct(t) {
|
|
470
470
|
return "";
|
|
471
471
|
}
|
|
472
|
-
var
|
|
472
|
+
var ys = {};
|
|
473
473
|
function lt(t) {
|
|
474
474
|
{
|
|
475
|
-
var l =
|
|
475
|
+
var l = Ns();
|
|
476
476
|
if (!l) {
|
|
477
|
-
var
|
|
478
|
-
|
|
477
|
+
var f = typeof t == "string" ? t : t.displayName || t.name;
|
|
478
|
+
f && (l = `
|
|
479
479
|
|
|
480
|
-
Check the top-level render call using <` +
|
|
480
|
+
Check the top-level render call using <` + f + ">.");
|
|
481
481
|
}
|
|
482
482
|
return l;
|
|
483
483
|
}
|
|
484
484
|
}
|
|
485
|
-
function
|
|
485
|
+
function _s(t, l) {
|
|
486
486
|
{
|
|
487
487
|
if (!t._store || t._store.validated || t.key != null)
|
|
488
488
|
return;
|
|
489
489
|
t._store.validated = !0;
|
|
490
|
-
var
|
|
491
|
-
if (
|
|
490
|
+
var f = lt(l);
|
|
491
|
+
if (ys[f])
|
|
492
492
|
return;
|
|
493
|
-
|
|
493
|
+
ys[f] = !0;
|
|
494
494
|
var g = "";
|
|
495
|
-
t && t._owner && t._owner !==
|
|
495
|
+
t && t._owner && t._owner !== Ye.current && (g = " It was passed a child from " + ee(t._owner.type) + "."), fe(t), k('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', f, g), fe(null);
|
|
496
496
|
}
|
|
497
497
|
}
|
|
498
|
-
function
|
|
498
|
+
function ws(t, l) {
|
|
499
499
|
{
|
|
500
500
|
if (typeof t != "object")
|
|
501
501
|
return;
|
|
502
|
-
if (
|
|
503
|
-
for (var
|
|
504
|
-
var g = t[
|
|
505
|
-
|
|
502
|
+
if (ze(t))
|
|
503
|
+
for (var f = 0; f < t.length; f++) {
|
|
504
|
+
var g = t[f];
|
|
505
|
+
He(g) && _s(g, l);
|
|
506
506
|
}
|
|
507
|
-
else if (
|
|
507
|
+
else if (He(t))
|
|
508
508
|
t._store && (t._store.validated = !0);
|
|
509
509
|
else if (t) {
|
|
510
510
|
var E = T(t);
|
|
511
511
|
if (typeof E == "function" && E !== t.entries)
|
|
512
512
|
for (var C = E.call(t), R; !(R = C.next()).done; )
|
|
513
|
-
|
|
513
|
+
He(R.value) && _s(R.value, l);
|
|
514
514
|
}
|
|
515
515
|
}
|
|
516
516
|
}
|
|
@@ -519,20 +519,20 @@ Check the top-level render call using <` + x + ">.");
|
|
|
519
519
|
var l = t.type;
|
|
520
520
|
if (l == null || typeof l == "string")
|
|
521
521
|
return;
|
|
522
|
-
var
|
|
522
|
+
var f;
|
|
523
523
|
if (typeof l == "function")
|
|
524
|
-
|
|
525
|
-
else if (typeof l == "object" && (l.$$typeof ===
|
|
524
|
+
f = 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
527
|
l.$$typeof === p))
|
|
528
|
-
|
|
528
|
+
f = l.propTypes;
|
|
529
529
|
else
|
|
530
530
|
return;
|
|
531
|
-
if (
|
|
531
|
+
if (f) {
|
|
532
532
|
var g = ee(l);
|
|
533
|
-
Hs(
|
|
534
|
-
} else if (l.PropTypes !== void 0 && !
|
|
535
|
-
|
|
533
|
+
Hs(f, t.props, "prop", g, t);
|
|
534
|
+
} else if (l.PropTypes !== void 0 && !Ke) {
|
|
535
|
+
Ke = !0;
|
|
536
536
|
var E = ee(l);
|
|
537
537
|
k("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", E || "Unknown");
|
|
538
538
|
}
|
|
@@ -541,8 +541,8 @@ Check the top-level render call using <` + x + ">.");
|
|
|
541
541
|
}
|
|
542
542
|
function dt(t) {
|
|
543
543
|
{
|
|
544
|
-
for (var l = Object.keys(t.props),
|
|
545
|
-
var g = l[
|
|
544
|
+
for (var l = Object.keys(t.props), f = 0; f < l.length; f++) {
|
|
545
|
+
var g = l[f];
|
|
546
546
|
if (g !== "children" && g !== "key") {
|
|
547
547
|
fe(t), k("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", g), fe(null);
|
|
548
548
|
break;
|
|
@@ -551,64 +551,64 @@ Check the top-level render call using <` + x + ">.");
|
|
|
551
551
|
t.ref !== null && (fe(t), k("Invalid attribute `ref` supplied to `React.Fragment`."), fe(null));
|
|
552
552
|
}
|
|
553
553
|
}
|
|
554
|
-
var
|
|
555
|
-
function
|
|
554
|
+
var Rs = {};
|
|
555
|
+
function Es(t, l, f, g, E, C) {
|
|
556
556
|
{
|
|
557
|
-
var R =
|
|
557
|
+
var R = Me(t);
|
|
558
558
|
if (!R) {
|
|
559
559
|
var v = "";
|
|
560
560
|
(t === void 0 || typeof t == "object" && t !== null && Object.keys(t).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
561
|
var q = ct();
|
|
562
|
-
q ? v += q : v +=
|
|
562
|
+
q ? v += q : v += Ns();
|
|
563
563
|
var A;
|
|
564
|
-
t === null ? A = "null" :
|
|
564
|
+
t === null ? A = "null" : ze(t) ? A = "array" : t !== void 0 && t.$$typeof === r ? (A = "<" + (ee(t.type) || "Unknown") + " />", v = " Did you accidentally export a JSX literal instead of a component?") : A = typeof t, k("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", A, v);
|
|
565
565
|
}
|
|
566
|
-
var F = it(t, l,
|
|
566
|
+
var F = it(t, l, f, E, C);
|
|
567
567
|
if (F == null)
|
|
568
568
|
return F;
|
|
569
569
|
if (R) {
|
|
570
570
|
var X = l.children;
|
|
571
571
|
if (X !== void 0)
|
|
572
572
|
if (g)
|
|
573
|
-
if (
|
|
573
|
+
if (ze(X)) {
|
|
574
574
|
for (var je = 0; je < X.length; je++)
|
|
575
|
-
|
|
575
|
+
ws(X[je], t);
|
|
576
576
|
Object.freeze && Object.freeze(X);
|
|
577
577
|
} else
|
|
578
578
|
k("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
|
-
|
|
580
|
+
ws(X, t);
|
|
581
581
|
}
|
|
582
|
-
if (
|
|
582
|
+
if (be.call(l, "key")) {
|
|
583
583
|
var oe = ee(t), U = Object.keys(l).filter(function(jt) {
|
|
584
584
|
return jt !== "key";
|
|
585
|
-
}),
|
|
586
|
-
if (!
|
|
585
|
+
}), Je = U.length > 0 ? "{key: someKey, " + U.join(": ..., ") + ": ...}" : "{key: someKey}";
|
|
586
|
+
if (!Rs[oe + Je]) {
|
|
587
587
|
var ft = U.length > 0 ? "{" + U.join(": ..., ") + ": ...}" : "{}";
|
|
588
588
|
k(`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} />`,
|
|
593
|
+
<%s key={someKey} {...props} />`, Je, oe, ft, oe), Rs[oe + Je] = !0;
|
|
594
594
|
}
|
|
595
595
|
}
|
|
596
596
|
return t === n ? dt(F) : ot(F), F;
|
|
597
597
|
}
|
|
598
598
|
}
|
|
599
|
-
function ut(t, l,
|
|
600
|
-
return
|
|
599
|
+
function ut(t, l, f) {
|
|
600
|
+
return Es(t, l, f, !0);
|
|
601
601
|
}
|
|
602
|
-
function ht(t, l,
|
|
603
|
-
return
|
|
602
|
+
function ht(t, l, f) {
|
|
603
|
+
return Es(t, l, f, !1);
|
|
604
604
|
}
|
|
605
605
|
var xt = ht, mt = ut;
|
|
606
|
-
|
|
607
|
-
})()),
|
|
606
|
+
ye.Fragment = n, ye.jsx = xt, ye.jsxs = mt;
|
|
607
|
+
})()), ye;
|
|
608
608
|
}
|
|
609
|
-
var
|
|
609
|
+
var Ps;
|
|
610
610
|
function wt() {
|
|
611
|
-
return
|
|
611
|
+
return Ps || (Ps = 1, process.env.NODE_ENV === "production" ? $e.exports = yt() : $e.exports = _t()), $e.exports;
|
|
612
612
|
}
|
|
613
613
|
var e = wt();
|
|
614
614
|
class we extends Error {
|
|
@@ -629,16 +629,18 @@ class Rt {
|
|
|
629
629
|
let o = `${this.baseUrl}${a}`;
|
|
630
630
|
if (n.params) {
|
|
631
631
|
const u = new URLSearchParams();
|
|
632
|
-
Object.entries(n.params).forEach(([
|
|
633
|
-
h != null && h !== "" && u.set(
|
|
632
|
+
Object.entries(n.params).forEach(([x, h]) => {
|
|
633
|
+
h != null && h !== "" && u.set(x, String(h));
|
|
634
634
|
});
|
|
635
635
|
const i = u.toString();
|
|
636
636
|
i && (o += `?${i}`);
|
|
637
637
|
}
|
|
638
638
|
const d = await fetch(o, {
|
|
639
639
|
method: r,
|
|
640
|
-
headers: this.headers,
|
|
641
|
-
body: n.body ? JSON.stringify(n.body) : void 0
|
|
640
|
+
headers: { ...this.headers, ...n.headers },
|
|
641
|
+
body: n.body ? JSON.stringify(n.body) : void 0,
|
|
642
|
+
credentials: n.credentials,
|
|
643
|
+
cache: "no-store"
|
|
642
644
|
});
|
|
643
645
|
if (!d.ok) {
|
|
644
646
|
const u = await d.json().catch(() => ({ detail: "Unknown error" }));
|
|
@@ -698,7 +700,7 @@ const Et = new Rt();
|
|
|
698
700
|
function Q(s) {
|
|
699
701
|
return s?.slice(0, 8) ?? "";
|
|
700
702
|
}
|
|
701
|
-
function
|
|
703
|
+
function Ze(s) {
|
|
702
704
|
return s?.slice(0, 12) ?? "N/A";
|
|
703
705
|
}
|
|
704
706
|
function Le(s) {
|
|
@@ -735,7 +737,7 @@ function Tt(s) {
|
|
|
735
737
|
function kt(s, r = 60) {
|
|
736
738
|
return s ? s.length <= r ? s : s.slice(0, r - 3) + "..." : "";
|
|
737
739
|
}
|
|
738
|
-
function
|
|
740
|
+
function hr(s, r) {
|
|
739
741
|
const a = new URLSearchParams();
|
|
740
742
|
Object.entries(r).forEach(([o, d]) => {
|
|
741
743
|
d != null && d !== "" && a.set(o, String(d));
|
|
@@ -746,20 +748,20 @@ function ur(s, r) {
|
|
|
746
748
|
function $(...s) {
|
|
747
749
|
return s.filter(Boolean).join(" ");
|
|
748
750
|
}
|
|
749
|
-
function
|
|
751
|
+
function As(s, r) {
|
|
750
752
|
const a = new Date(s).getTime(), n = r ? new Date(r).getTime() : Date.now();
|
|
751
753
|
return Math.max(0, Math.floor((n - a) / 1e3));
|
|
752
754
|
}
|
|
753
|
-
function
|
|
755
|
+
function Fs(s) {
|
|
754
756
|
if (s < 60) return `${s}s`;
|
|
755
757
|
const r = Math.floor(s / 86400), a = Math.floor(s % 86400 / 3600), n = Math.floor(s % 3600 / 60), o = s % 60;
|
|
756
758
|
return r > 0 ? `${r}d ${a}h ${n}m` : a > 0 ? `${a}h ${n}m ${o}s` : `${n}m ${o}s`;
|
|
757
759
|
}
|
|
758
|
-
function
|
|
760
|
+
function Be(s) {
|
|
759
761
|
return s === "FINISHED" || s === "FAILED" || s === "KILLED";
|
|
760
762
|
}
|
|
761
|
-
const
|
|
762
|
-
function
|
|
763
|
+
const $s = ts(null);
|
|
764
|
+
function xr({ children: s }) {
|
|
763
765
|
const r = {
|
|
764
766
|
theme: "light",
|
|
765
767
|
resolvedTheme: "light",
|
|
@@ -768,10 +770,10 @@ function hr({ children: s }) {
|
|
|
768
770
|
toggleTheme: () => {
|
|
769
771
|
}
|
|
770
772
|
};
|
|
771
|
-
return /* @__PURE__ */ e.jsx(
|
|
773
|
+
return /* @__PURE__ */ e.jsx($s.Provider, { value: r, children: s });
|
|
772
774
|
}
|
|
773
|
-
function
|
|
774
|
-
const s =
|
|
775
|
+
function Pt() {
|
|
776
|
+
const s = ss($s);
|
|
775
777
|
return s || {
|
|
776
778
|
theme: "light",
|
|
777
779
|
resolvedTheme: "light",
|
|
@@ -781,78 +783,107 @@ function St() {
|
|
|
781
783
|
}
|
|
782
784
|
};
|
|
783
785
|
}
|
|
784
|
-
function
|
|
785
|
-
return
|
|
786
|
+
function mr() {
|
|
787
|
+
return Pt();
|
|
786
788
|
}
|
|
787
|
-
const
|
|
788
|
-
|
|
789
|
+
const Xe = 1e3, St = {
|
|
790
|
+
runsActive: Xe,
|
|
791
|
+
runsIdle: Xe,
|
|
792
|
+
runDetail: Xe
|
|
793
|
+
}, Os = ts(null);
|
|
794
|
+
function Dt({
|
|
789
795
|
children: s,
|
|
790
796
|
api: r = Et,
|
|
791
|
-
initialWorkspace: a = null
|
|
797
|
+
initialWorkspace: a = null,
|
|
798
|
+
pollingConfig: n
|
|
792
799
|
}) {
|
|
793
|
-
const [
|
|
800
|
+
const [o, d] = P(null), [u, i] = P(a), x = {
|
|
801
|
+
...St,
|
|
802
|
+
...n
|
|
803
|
+
};
|
|
794
804
|
return ne(() => {
|
|
795
|
-
r.getCapabilities().then(
|
|
796
|
-
}, [r]), /* @__PURE__ */ e.jsx(Os.Provider, { value: { api: r, capabilities:
|
|
805
|
+
r.getCapabilities().then(d).catch(console.error);
|
|
806
|
+
}, [r]), /* @__PURE__ */ e.jsx(Os.Provider, { value: { api: r, capabilities: o, currentWorkspace: u, setCurrentWorkspace: i, pollingConfig: x }, children: s });
|
|
797
807
|
}
|
|
798
808
|
function z() {
|
|
799
|
-
const s =
|
|
809
|
+
const s = ss(Os);
|
|
800
810
|
if (!s) throw new Error("useApp must be used within AppProvider");
|
|
801
811
|
return s;
|
|
802
812
|
}
|
|
803
813
|
function ue(s, r = []) {
|
|
804
|
-
const [a, n] =
|
|
814
|
+
const [a, n] = P({
|
|
805
815
|
data: null,
|
|
806
816
|
loading: !0,
|
|
807
817
|
error: null
|
|
808
|
-
}), o =
|
|
818
|
+
}), o = Cs(!0), d = Cs(s);
|
|
809
819
|
d.current = s;
|
|
810
|
-
const u =
|
|
811
|
-
n((
|
|
820
|
+
const u = pe(async (x) => {
|
|
821
|
+
x || n((h) => ({ ...h, loading: !0, error: null }));
|
|
812
822
|
try {
|
|
813
|
-
const
|
|
814
|
-
o.current && n({ data:
|
|
815
|
-
} catch (
|
|
816
|
-
o.current
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
823
|
+
const h = await d.current();
|
|
824
|
+
o.current && n({ data: h, loading: !1, error: null });
|
|
825
|
+
} catch (h) {
|
|
826
|
+
if (o.current) {
|
|
827
|
+
const m = h instanceof we ? h : new we(500, String(h));
|
|
828
|
+
n((p) => ({
|
|
829
|
+
data: x ? p.data : null,
|
|
830
|
+
loading: !1,
|
|
831
|
+
error: m
|
|
832
|
+
}));
|
|
833
|
+
}
|
|
821
834
|
}
|
|
822
835
|
}, []);
|
|
823
|
-
|
|
836
|
+
ne(() => (o.current = !0, u(!1), () => {
|
|
824
837
|
o.current = !1;
|
|
825
|
-
}), r)
|
|
838
|
+
}), r);
|
|
839
|
+
const i = pe(() => u(!0), [u]);
|
|
840
|
+
return { ...a, refetch: i };
|
|
826
841
|
}
|
|
827
842
|
function Ls(s, r, a) {
|
|
828
843
|
ne(() => {
|
|
829
844
|
if (!a) return;
|
|
830
|
-
|
|
831
|
-
|
|
845
|
+
let n, o = !1;
|
|
846
|
+
const d = () => {
|
|
847
|
+
if (o) return;
|
|
848
|
+
const x = r * 0.1 * (Math.random() * 2 - 1);
|
|
849
|
+
n = setTimeout(u, Math.max(500, r + x));
|
|
850
|
+
}, u = async () => {
|
|
851
|
+
if (!o && document.visibilityState !== "hidden") {
|
|
852
|
+
try {
|
|
853
|
+
await s();
|
|
854
|
+
} catch {
|
|
855
|
+
}
|
|
856
|
+
d();
|
|
857
|
+
}
|
|
832
858
|
};
|
|
833
|
-
|
|
834
|
-
|
|
859
|
+
d();
|
|
860
|
+
const i = () => {
|
|
861
|
+
o || document.visibilityState !== "visible" || (clearTimeout(n), Promise.resolve(s()).catch(() => {
|
|
862
|
+
}).finally(d));
|
|
863
|
+
};
|
|
864
|
+
return document.addEventListener("visibilitychange", i), () => {
|
|
865
|
+
o = !0, clearTimeout(n), document.removeEventListener("visibilitychange", i);
|
|
835
866
|
};
|
|
836
867
|
}, [s, r, a]);
|
|
837
868
|
}
|
|
838
|
-
function
|
|
839
|
-
const { api: r, currentWorkspace: a } = z(),
|
|
869
|
+
function Is(s) {
|
|
870
|
+
const { api: r, currentWorkspace: a, pollingConfig: n } = z(), o = ue(
|
|
840
871
|
() => r.listRuns({ ...s, workspace: a?.id }),
|
|
841
872
|
[r, a?.id, s?.project, s?.status, s?.q, s?.limit]
|
|
842
|
-
);
|
|
843
|
-
return Ls(
|
|
873
|
+
), u = o.data?.runs.some((i) => !Be(i.status)) ?? !1 ? n.runsActive : n.runsIdle;
|
|
874
|
+
return Ls(o.refetch, u, !0), o;
|
|
844
875
|
}
|
|
845
|
-
function
|
|
846
|
-
const { api: r } = z(),
|
|
876
|
+
function Bs(s) {
|
|
877
|
+
const { api: r, pollingConfig: a } = z(), n = ue(
|
|
847
878
|
async () => {
|
|
848
|
-
const { run:
|
|
849
|
-
return
|
|
879
|
+
const { run: d } = await r.getRun(s);
|
|
880
|
+
return d;
|
|
850
881
|
},
|
|
851
882
|
[r, s]
|
|
852
|
-
),
|
|
853
|
-
return Ls(
|
|
883
|
+
), o = n.data ? !Be(n.data.status) : !1;
|
|
884
|
+
return Ls(n.refetch, a.runDetail, o), n;
|
|
854
885
|
}
|
|
855
|
-
function
|
|
886
|
+
function qe() {
|
|
856
887
|
const { api: s, currentWorkspace: r } = z();
|
|
857
888
|
return ue(
|
|
858
889
|
async () => {
|
|
@@ -862,7 +893,7 @@ function Ie() {
|
|
|
862
893
|
[s, r?.id]
|
|
863
894
|
);
|
|
864
895
|
}
|
|
865
|
-
function
|
|
896
|
+
function At(s) {
|
|
866
897
|
const { api: r, currentWorkspace: a } = z();
|
|
867
898
|
return ue(
|
|
868
899
|
async () => {
|
|
@@ -872,21 +903,21 @@ function Dt(s) {
|
|
|
872
903
|
[r, a?.id, s?.project]
|
|
873
904
|
);
|
|
874
905
|
}
|
|
875
|
-
function
|
|
906
|
+
function Ft(s) {
|
|
876
907
|
const { api: r } = z();
|
|
877
908
|
return ue(
|
|
878
909
|
() => r.getGroup(s),
|
|
879
910
|
[r, s]
|
|
880
911
|
);
|
|
881
912
|
}
|
|
882
|
-
function
|
|
913
|
+
function $t(s, r) {
|
|
883
914
|
const { api: a } = z();
|
|
884
915
|
return ue(
|
|
885
916
|
() => a.getDiff(s, r),
|
|
886
917
|
[a, s, r]
|
|
887
918
|
);
|
|
888
919
|
}
|
|
889
|
-
function
|
|
920
|
+
function Ot(s, r) {
|
|
890
921
|
const { api: a } = z();
|
|
891
922
|
return ue(
|
|
892
923
|
() => a.getArtifact(s, r),
|
|
@@ -894,41 +925,41 @@ function $t(s, r) {
|
|
|
894
925
|
);
|
|
895
926
|
}
|
|
896
927
|
function Re(s) {
|
|
897
|
-
const [r, a] =
|
|
898
|
-
return { mutate:
|
|
928
|
+
const [r, a] = P(!1), [n, o] = P(null);
|
|
929
|
+
return { mutate: pe(async (...u) => {
|
|
899
930
|
a(!0), o(null);
|
|
900
931
|
try {
|
|
901
932
|
return await s(...u);
|
|
902
933
|
} catch (i) {
|
|
903
|
-
const
|
|
904
|
-
throw o(
|
|
934
|
+
const x = i instanceof we ? i : new we(500, String(i));
|
|
935
|
+
throw o(x), x;
|
|
905
936
|
} finally {
|
|
906
937
|
a(!1);
|
|
907
938
|
}
|
|
908
939
|
}, [s]), loading: r, error: n };
|
|
909
940
|
}
|
|
910
|
-
const
|
|
941
|
+
const Lt = [
|
|
911
942
|
{ href: "/runs", label: "Runs", matchPaths: ["/runs"] },
|
|
912
943
|
{ href: "/projects", label: "Projects", matchPaths: ["/projects"] },
|
|
913
944
|
{ href: "/groups", label: "Groups", matchPaths: ["/groups"] },
|
|
914
945
|
{ href: "/diff", label: "Compare", matchPaths: ["/diff"] },
|
|
915
946
|
{ href: "/search", label: "Search", matchPaths: ["/search"] }
|
|
916
|
-
], qs =
|
|
917
|
-
function
|
|
947
|
+
], qs = ts(null);
|
|
948
|
+
function fr({
|
|
918
949
|
config: s,
|
|
919
950
|
children: r
|
|
920
951
|
}) {
|
|
921
952
|
return /* @__PURE__ */ e.jsx(qs.Provider, { value: s, children: r });
|
|
922
953
|
}
|
|
923
|
-
function
|
|
924
|
-
return
|
|
954
|
+
function It() {
|
|
955
|
+
return ss(qs);
|
|
925
956
|
}
|
|
926
957
|
function V({ children: s, config: r }) {
|
|
927
|
-
const a = pt(), o = { ...
|
|
958
|
+
const a = pt(), o = { ...It(), ...r }, d = o?.navLinks ?? Lt, u = [
|
|
928
959
|
...o?.prependNavLinks ?? [],
|
|
929
960
|
...d,
|
|
930
961
|
...o?.appendNavLinks ?? []
|
|
931
|
-
], i = o?.logo ?? { text: "devqubit", icon: "⚛" },
|
|
962
|
+
], i = o?.logo ?? { text: "devqubit", icon: "⚛" }, x = (h) => h.matchPaths ? h.matchPaths.some((m) => a.pathname.startsWith(m)) : a.pathname === h.href;
|
|
932
963
|
return /* @__PURE__ */ e.jsxs("div", { className: "dq-layout", children: [
|
|
933
964
|
/* @__PURE__ */ e.jsx("header", { className: "dq-header", children: /* @__PURE__ */ e.jsxs("div", { className: "dq-header-inner", children: [
|
|
934
965
|
/* @__PURE__ */ e.jsxs("div", { className: "dq-header-left", children: [
|
|
@@ -940,7 +971,7 @@ function V({ children: s, config: r }) {
|
|
|
940
971
|
Y,
|
|
941
972
|
{
|
|
942
973
|
to: h.href,
|
|
943
|
-
className: $("dq-nav-link",
|
|
974
|
+
className: $("dq-nav-link", x(h) && "active"),
|
|
944
975
|
children: h.label
|
|
945
976
|
},
|
|
946
977
|
h.href
|
|
@@ -963,7 +994,7 @@ function Ee({ title: s, subtitle: r, actions: a }) {
|
|
|
963
994
|
function K({ variant: s = "gray", className: r, children: a, ...n }) {
|
|
964
995
|
return /* @__PURE__ */ e.jsx("span", { className: $("badge", `badge-${s}`, r), ...n, children: a });
|
|
965
996
|
}
|
|
966
|
-
const D =
|
|
997
|
+
const D = rs(
|
|
967
998
|
({ variant: s = "secondary", size: r = "default", loading: a, className: n, children: o, disabled: d, ...u }, i) => /* @__PURE__ */ e.jsxs(
|
|
968
999
|
"button",
|
|
969
1000
|
{
|
|
@@ -977,7 +1008,7 @@ const D = ss(
|
|
|
977
1008
|
disabled: d || a,
|
|
978
1009
|
...u,
|
|
979
1010
|
children: [
|
|
980
|
-
a && /* @__PURE__ */ e.jsx(
|
|
1011
|
+
a && /* @__PURE__ */ e.jsx(B, {}),
|
|
981
1012
|
o
|
|
982
1013
|
]
|
|
983
1014
|
}
|
|
@@ -987,16 +1018,16 @@ D.displayName = "Button";
|
|
|
987
1018
|
function b({ className: s, children: r, ...a }) {
|
|
988
1019
|
return /* @__PURE__ */ e.jsx("div", { className: $("card", s), ...a, children: r });
|
|
989
1020
|
}
|
|
990
|
-
function
|
|
1021
|
+
function G({ className: s, children: r, ...a }) {
|
|
991
1022
|
return /* @__PURE__ */ e.jsx("div", { className: $("card-header", s), ...a, children: r });
|
|
992
1023
|
}
|
|
993
|
-
function
|
|
1024
|
+
function W({ className: s, children: r, ...a }) {
|
|
994
1025
|
return /* @__PURE__ */ e.jsx("h3", { className: $("card-title", s), ...a, children: r });
|
|
995
1026
|
}
|
|
996
|
-
function
|
|
1027
|
+
function jr({ variant: s = "info", className: r, children: a, ...n }) {
|
|
997
1028
|
return /* @__PURE__ */ e.jsx("div", { className: $("alert", `alert-${s}`, r), ...n, children: a });
|
|
998
1029
|
}
|
|
999
|
-
function
|
|
1030
|
+
function B({ className: s, ...r }) {
|
|
1000
1031
|
return /* @__PURE__ */ e.jsx("span", { className: $("spinner", s), ...r });
|
|
1001
1032
|
}
|
|
1002
1033
|
function he({ message: s, hint: r, className: a, ...n }) {
|
|
@@ -1005,13 +1036,13 @@ function he({ message: s, hint: r, className: a, ...n }) {
|
|
|
1005
1036
|
r && /* @__PURE__ */ e.jsx("p", { className: "text-sm text-muted mt-2", children: r })
|
|
1006
1037
|
] });
|
|
1007
1038
|
}
|
|
1008
|
-
function
|
|
1039
|
+
function es({ items: s, className: r, ...a }) {
|
|
1009
1040
|
return /* @__PURE__ */ e.jsx("dl", { className: $("kv-list", r), ...a, children: s.map(({ label: n, value: o }) => /* @__PURE__ */ e.jsxs("div", { className: "contents", children: [
|
|
1010
1041
|
/* @__PURE__ */ e.jsx("dt", { children: n }),
|
|
1011
1042
|
/* @__PURE__ */ e.jsx("dd", { children: o })
|
|
1012
1043
|
] }, n)) });
|
|
1013
1044
|
}
|
|
1014
|
-
function
|
|
1045
|
+
function as({ open: s, onClose: r, title: a, children: n, actions: o }) {
|
|
1015
1046
|
return s ? /* @__PURE__ */ e.jsx(
|
|
1016
1047
|
"div",
|
|
1017
1048
|
{
|
|
@@ -1047,11 +1078,11 @@ function se({ children: s, className: r }) {
|
|
|
1047
1078
|
function ce({ className: s, children: r, ...a }) {
|
|
1048
1079
|
return /* @__PURE__ */ e.jsx("label", { className: $("form-label", s), ...a, children: r });
|
|
1049
1080
|
}
|
|
1050
|
-
const
|
|
1081
|
+
const is = rs(
|
|
1051
1082
|
({ className: s, ...r }, a) => /* @__PURE__ */ e.jsx("input", { ref: a, className: $("form-input", s), ...r })
|
|
1052
1083
|
);
|
|
1053
|
-
|
|
1054
|
-
const de =
|
|
1084
|
+
is.displayName = "Input";
|
|
1085
|
+
const de = rs(
|
|
1055
1086
|
({ className: s, children: r, ...a }, n) => /* @__PURE__ */ e.jsx("select", { ref: n, className: $("form-input", s), ...a, children: r })
|
|
1056
1087
|
);
|
|
1057
1088
|
de.displayName = "Select";
|
|
@@ -1087,17 +1118,17 @@ function Us({ status: s }) {
|
|
|
1087
1118
|
return /* @__PURE__ */ e.jsx(K, { variant: r, children: s });
|
|
1088
1119
|
}
|
|
1089
1120
|
function Bt({ createdAt: s, endedAt: r, status: a }) {
|
|
1090
|
-
const n = !
|
|
1121
|
+
const n = !Be(a), [o, d] = P(Date.now());
|
|
1091
1122
|
ne(() => {
|
|
1092
1123
|
if (!n) return;
|
|
1093
1124
|
const h = setInterval(() => d(Date.now()), 1e3);
|
|
1094
1125
|
return () => clearInterval(h);
|
|
1095
1126
|
}, [n]);
|
|
1096
|
-
const i =
|
|
1097
|
-
return /* @__PURE__ */ e.jsx("span", { className: n ? "tabular-nums" : void 0, children:
|
|
1127
|
+
const i = As(s, n ? void 0 : r), x = n ? Math.max(0, Math.floor((o - new Date(s).getTime()) / 1e3)) : i;
|
|
1128
|
+
return /* @__PURE__ */ e.jsx("span", { className: n ? "tabular-nums" : void 0, children: Fs(x) });
|
|
1098
1129
|
}
|
|
1099
|
-
function
|
|
1100
|
-
const [d, u] =
|
|
1130
|
+
function cs({ runs: s, onDelete: r, loading: a, emptyHint: n, baselineRunId: o }) {
|
|
1131
|
+
const [d, u] = P(null), i = () => {
|
|
1101
1132
|
d && r && (r(d.run_id), u(null));
|
|
1102
1133
|
};
|
|
1103
1134
|
return s.length ? /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
@@ -1111,40 +1142,40 @@ function is({ runs: s, onDelete: r, loading: a, emptyHint: n, baselineRunId: o }
|
|
|
1111
1142
|
/* @__PURE__ */ e.jsx(N, { children: "Created" }),
|
|
1112
1143
|
/* @__PURE__ */ e.jsx(N, { children: "Actions" })
|
|
1113
1144
|
] }) }),
|
|
1114
|
-
/* @__PURE__ */ e.jsx(L, { children: s.map((
|
|
1145
|
+
/* @__PURE__ */ e.jsx(L, { children: s.map((x) => /* @__PURE__ */ e.jsxs(j, { children: [
|
|
1115
1146
|
/* @__PURE__ */ e.jsxs(c, { children: [
|
|
1116
|
-
/* @__PURE__ */ e.jsx(Y, { to: `/runs/${
|
|
1117
|
-
|
|
1147
|
+
/* @__PURE__ */ e.jsx(Y, { to: `/runs/${x.run_id}`, className: "font-mono", children: Q(x.run_id) }),
|
|
1148
|
+
x.run_id === o && /* @__PURE__ */ e.jsx(K, { variant: "info", className: "ml-2", children: "Baseline" })
|
|
1118
1149
|
] }),
|
|
1119
|
-
/* @__PURE__ */ e.jsx(c, { children:
|
|
1120
|
-
/* @__PURE__ */ e.jsx(c, { children:
|
|
1121
|
-
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(Us, { status:
|
|
1150
|
+
/* @__PURE__ */ e.jsx(c, { children: x.run_name || "—" }),
|
|
1151
|
+
/* @__PURE__ */ e.jsx(c, { children: x.project }),
|
|
1152
|
+
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(Us, { status: x.status }) }),
|
|
1122
1153
|
/* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: /* @__PURE__ */ e.jsx(
|
|
1123
1154
|
Bt,
|
|
1124
1155
|
{
|
|
1125
|
-
createdAt:
|
|
1126
|
-
endedAt:
|
|
1127
|
-
status:
|
|
1156
|
+
createdAt: x.created_at,
|
|
1157
|
+
endedAt: x.ended_at,
|
|
1158
|
+
status: x.status
|
|
1128
1159
|
}
|
|
1129
1160
|
) }),
|
|
1130
|
-
/* @__PURE__ */ e.jsx(c, { className: "text-muted", children: Le(
|
|
1161
|
+
/* @__PURE__ */ e.jsx(c, { className: "text-muted", children: Le(x.created_at) }),
|
|
1131
1162
|
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsxs("div", { className: "flex gap-2", children: [
|
|
1132
|
-
/* @__PURE__ */ e.jsx(Y, { to: `/runs/${
|
|
1163
|
+
/* @__PURE__ */ e.jsx(Y, { to: `/runs/${x.run_id}`, children: /* @__PURE__ */ e.jsx(D, { variant: "secondary", size: "sm", children: "View" }) }),
|
|
1133
1164
|
r && /* @__PURE__ */ e.jsx(
|
|
1134
1165
|
D,
|
|
1135
1166
|
{
|
|
1136
1167
|
variant: "ghost-danger",
|
|
1137
1168
|
size: "sm",
|
|
1138
|
-
onClick: () => u(
|
|
1169
|
+
onClick: () => u(x),
|
|
1139
1170
|
disabled: a,
|
|
1140
1171
|
children: "Delete"
|
|
1141
1172
|
}
|
|
1142
1173
|
)
|
|
1143
1174
|
] }) })
|
|
1144
|
-
] },
|
|
1175
|
+
] }, x.run_id)) })
|
|
1145
1176
|
] }),
|
|
1146
1177
|
/* @__PURE__ */ e.jsxs(
|
|
1147
|
-
|
|
1178
|
+
as,
|
|
1148
1179
|
{
|
|
1149
1180
|
open: !!d,
|
|
1150
1181
|
onClose: () => u(null),
|
|
@@ -1152,7 +1183,7 @@ function is({ runs: s, onDelete: r, loading: a, emptyHint: n, baselineRunId: o }
|
|
|
1152
1183
|
actions: /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
1153
1184
|
/* @__PURE__ */ e.jsx(D, { variant: "secondary", onClick: () => u(null), children: "Cancel" }),
|
|
1154
1185
|
/* @__PURE__ */ e.jsxs(D, { variant: "danger", onClick: i, disabled: a, children: [
|
|
1155
|
-
a && /* @__PURE__ */ e.jsx(
|
|
1186
|
+
a && /* @__PURE__ */ e.jsx(B, {}),
|
|
1156
1187
|
"Delete"
|
|
1157
1188
|
] })
|
|
1158
1189
|
] }),
|
|
@@ -1171,24 +1202,24 @@ function is({ runs: s, onDelete: r, loading: a, emptyHint: n, baselineRunId: o }
|
|
|
1171
1202
|
}
|
|
1172
1203
|
);
|
|
1173
1204
|
}
|
|
1174
|
-
function
|
|
1175
|
-
const [s, r] =
|
|
1205
|
+
function qt() {
|
|
1206
|
+
const [s, r] = Ie(), { api: a } = z(), { data: n } = qe(), [o, d] = P(null), [u, i] = P({
|
|
1176
1207
|
project: s.get("project") || "",
|
|
1177
1208
|
status: s.get("status") || "",
|
|
1178
1209
|
q: s.get("q") || "",
|
|
1179
1210
|
limit: parseInt(s.get("limit") || "25", 10)
|
|
1180
|
-
}), { data:
|
|
1211
|
+
}), { data: x, loading: h, refetch: m } = Is(u), p = Re((_) => a.deleteRun(_));
|
|
1181
1212
|
ne(() => {
|
|
1182
1213
|
if (o) {
|
|
1183
1214
|
const _ = setTimeout(() => d(null), 3e3);
|
|
1184
1215
|
return () => clearTimeout(_);
|
|
1185
1216
|
}
|
|
1186
1217
|
}, [o]);
|
|
1187
|
-
const y =
|
|
1188
|
-
i((
|
|
1218
|
+
const y = pe((_, H) => {
|
|
1219
|
+
i((I) => ({ ...I, [_]: H }));
|
|
1189
1220
|
const T = new URLSearchParams(s);
|
|
1190
1221
|
H ? T.set(_, String(H)) : T.delete(_), r(T, { replace: !0 });
|
|
1191
|
-
}, [s, r]), M =
|
|
1222
|
+
}, [s, r]), M = pe(async (_) => {
|
|
1192
1223
|
try {
|
|
1193
1224
|
await p.mutate(_), d({ message: "Run deleted", variant: "success" }), m();
|
|
1194
1225
|
} catch {
|
|
@@ -1233,7 +1264,7 @@ function It() {
|
|
|
1233
1264
|
/* @__PURE__ */ e.jsxs(se, { children: [
|
|
1234
1265
|
/* @__PURE__ */ e.jsx(ce, { htmlFor: "q", children: "Query" }),
|
|
1235
1266
|
/* @__PURE__ */ e.jsx(
|
|
1236
|
-
|
|
1267
|
+
is,
|
|
1237
1268
|
{
|
|
1238
1269
|
id: "q",
|
|
1239
1270
|
value: u.q,
|
|
@@ -1260,13 +1291,13 @@ function It() {
|
|
|
1260
1291
|
] }),
|
|
1261
1292
|
/* @__PURE__ */ e.jsxs(se, { className: "flex items-end gap-2", children: [
|
|
1262
1293
|
/* @__PURE__ */ e.jsx(D, { variant: "primary", onClick: () => m(), children: "Filter" }),
|
|
1263
|
-
h && /* @__PURE__ */ e.jsx(
|
|
1294
|
+
h && /* @__PURE__ */ e.jsx(B, {})
|
|
1264
1295
|
] })
|
|
1265
1296
|
] }) }),
|
|
1266
|
-
/* @__PURE__ */ e.jsx(b, { children: h && !
|
|
1267
|
-
|
|
1297
|
+
/* @__PURE__ */ e.jsx(b, { children: h && !x ? /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-8", children: /* @__PURE__ */ e.jsx(B, {}) }) : /* @__PURE__ */ e.jsx(
|
|
1298
|
+
cs,
|
|
1268
1299
|
{
|
|
1269
|
-
runs:
|
|
1300
|
+
runs: x?.runs ?? [],
|
|
1270
1301
|
onDelete: M,
|
|
1271
1302
|
loading: p.loading,
|
|
1272
1303
|
baselineRunId: u.project ? n?.find((_) => _.name === u.project)?.baseline?.run_id : void 0
|
|
@@ -1283,7 +1314,7 @@ function It() {
|
|
|
1283
1314
|
)
|
|
1284
1315
|
] });
|
|
1285
1316
|
}
|
|
1286
|
-
function
|
|
1317
|
+
function Mt({ projects: s, currentWorkspace: r }) {
|
|
1287
1318
|
if (!s.length)
|
|
1288
1319
|
return /* @__PURE__ */ e.jsx(
|
|
1289
1320
|
he,
|
|
@@ -1317,7 +1348,7 @@ function qt({ projects: s, currentWorkspace: r }) {
|
|
|
1317
1348
|
] }, n.name)) })
|
|
1318
1349
|
] });
|
|
1319
1350
|
}
|
|
1320
|
-
function
|
|
1351
|
+
function Ut({ groups: s }) {
|
|
1321
1352
|
return s.length ? /* @__PURE__ */ e.jsxs(O, { children: [
|
|
1322
1353
|
/* @__PURE__ */ e.jsx(re, { children: /* @__PURE__ */ e.jsxs(j, { children: [
|
|
1323
1354
|
/* @__PURE__ */ e.jsx(N, { children: "Group ID" }),
|
|
@@ -1341,14 +1372,14 @@ function Mt({ groups: s }) {
|
|
|
1341
1372
|
}
|
|
1342
1373
|
);
|
|
1343
1374
|
}
|
|
1344
|
-
function
|
|
1375
|
+
function Gt({
|
|
1345
1376
|
runId: s,
|
|
1346
1377
|
runName: r,
|
|
1347
1378
|
variant: a = "secondary",
|
|
1348
1379
|
size: n = "sm",
|
|
1349
1380
|
className: o = ""
|
|
1350
1381
|
}) {
|
|
1351
|
-
const { api: d } = z(), [u, i] =
|
|
1382
|
+
const { api: d } = z(), [u, i] = P({ status: "idle" }), [x, h] = P(!1), [m, p] = P(null), y = async () => {
|
|
1352
1383
|
i({ status: "preparing", message: "Preparing bundle..." }), h(!0);
|
|
1353
1384
|
try {
|
|
1354
1385
|
const T = await d.createExport(s);
|
|
@@ -1362,7 +1393,7 @@ function Ut({
|
|
|
1362
1393
|
status: "downloading",
|
|
1363
1394
|
message: "Downloading bundle..."
|
|
1364
1395
|
}));
|
|
1365
|
-
const
|
|
1396
|
+
const I = d.getExportDownloadUrl(s), k = await fetch(I, {
|
|
1366
1397
|
credentials: "same-origin"
|
|
1367
1398
|
});
|
|
1368
1399
|
if (!k.ok)
|
|
@@ -1374,12 +1405,10 @@ function Ut({
|
|
|
1374
1405
|
bundleSize: te.size,
|
|
1375
1406
|
artifactCount: T.artifact_count,
|
|
1376
1407
|
objectCount: T.object_count
|
|
1377
|
-
})
|
|
1378
|
-
h(!1), i({ status: "idle" });
|
|
1379
|
-
}, 2e3);
|
|
1408
|
+
});
|
|
1380
1409
|
} catch (T) {
|
|
1381
|
-
const
|
|
1382
|
-
i({ status: "error", message:
|
|
1410
|
+
const I = T instanceof Error ? T.message : "Export failed";
|
|
1411
|
+
i({ status: "error", message: I }), p({ message: I, variant: "error" });
|
|
1383
1412
|
}
|
|
1384
1413
|
}, M = () => {
|
|
1385
1414
|
u.status !== "preparing" && u.status !== "packing" && u.status !== "downloading" && (h(!1), i({ status: "idle" }));
|
|
@@ -1394,22 +1423,22 @@ function Ut({
|
|
|
1394
1423
|
disabled: H,
|
|
1395
1424
|
className: o,
|
|
1396
1425
|
children: [
|
|
1397
|
-
H && /* @__PURE__ */ e.jsx(
|
|
1426
|
+
H && /* @__PURE__ */ e.jsx(B, {}),
|
|
1398
1427
|
/* @__PURE__ */ e.jsx(Wt, {}),
|
|
1399
1428
|
"Export"
|
|
1400
1429
|
]
|
|
1401
1430
|
}
|
|
1402
1431
|
),
|
|
1403
1432
|
/* @__PURE__ */ e.jsx(
|
|
1404
|
-
|
|
1433
|
+
as,
|
|
1405
1434
|
{
|
|
1406
|
-
open:
|
|
1435
|
+
open: x,
|
|
1407
1436
|
onClose: M,
|
|
1408
1437
|
title: "Export Run",
|
|
1409
1438
|
actions: u.status === "error" || u.status === "complete" ? /* @__PURE__ */ e.jsx(D, { variant: "secondary", onClick: M, children: "Close" }) : void 0,
|
|
1410
1439
|
children: /* @__PURE__ */ e.jsxs("div", { className: "py-4", children: [
|
|
1411
1440
|
/* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-3 mb-4", children: [
|
|
1412
|
-
u.status === "error" ? /* @__PURE__ */ e.jsx("div", { className: "w-10 h-10 rounded-full bg-[var(--dq-danger-bg)] flex items-center justify-center", children: /* @__PURE__ */ e.jsx(
|
|
1441
|
+
u.status === "error" ? /* @__PURE__ */ e.jsx("div", { className: "w-10 h-10 rounded-full bg-[var(--dq-danger-bg)] flex items-center justify-center", children: /* @__PURE__ */ e.jsx(zt, {}) }) : u.status === "complete" ? /* @__PURE__ */ e.jsx("div", { className: "w-10 h-10 rounded-full bg-[var(--dq-success-bg)] flex items-center justify-center", children: /* @__PURE__ */ e.jsx(Vt, {}) }) : /* @__PURE__ */ e.jsx("div", { className: "w-10 h-10 rounded-full bg-[var(--dq-primary-bg)] flex items-center justify-center", children: /* @__PURE__ */ e.jsx(B, {}) }),
|
|
1413
1442
|
/* @__PURE__ */ e.jsxs("div", { children: [
|
|
1414
1443
|
/* @__PURE__ */ e.jsx("p", { className: "font-medium", children: u.message }),
|
|
1415
1444
|
u.status === "error" && /* @__PURE__ */ e.jsx("p", { className: "text-sm text-[var(--dq-text-muted)]", children: "Please try again or contact support." })
|
|
@@ -1470,7 +1499,7 @@ function Wt() {
|
|
|
1470
1499
|
}
|
|
1471
1500
|
);
|
|
1472
1501
|
}
|
|
1473
|
-
function
|
|
1502
|
+
function Vt() {
|
|
1474
1503
|
return /* @__PURE__ */ e.jsx(
|
|
1475
1504
|
"svg",
|
|
1476
1505
|
{
|
|
@@ -1486,7 +1515,7 @@ function Gt() {
|
|
|
1486
1515
|
}
|
|
1487
1516
|
);
|
|
1488
1517
|
}
|
|
1489
|
-
function
|
|
1518
|
+
function zt() {
|
|
1490
1519
|
return /* @__PURE__ */ e.jsxs(
|
|
1491
1520
|
"svg",
|
|
1492
1521
|
{
|
|
@@ -1506,18 +1535,18 @@ function Vt() {
|
|
|
1506
1535
|
}
|
|
1507
1536
|
);
|
|
1508
1537
|
}
|
|
1509
|
-
function
|
|
1510
|
-
const n = !
|
|
1538
|
+
function Yt({ createdAt: s, endedAt: r, status: a }) {
|
|
1539
|
+
const n = !Be(a), [o, d] = P(Date.now());
|
|
1511
1540
|
ne(() => {
|
|
1512
1541
|
if (!n) return;
|
|
1513
1542
|
const i = setInterval(() => d(Date.now()), 1e3);
|
|
1514
1543
|
return () => clearInterval(i);
|
|
1515
1544
|
}, [n]);
|
|
1516
|
-
const u = n ? Math.max(0, Math.floor((o - new Date(s).getTime()) / 1e3)) :
|
|
1517
|
-
return /* @__PURE__ */ e.jsx("span", { className: n ? "tabular-nums" : void 0, children:
|
|
1545
|
+
const u = n ? Math.max(0, Math.floor((o - new Date(s).getTime()) / 1e3)) : As(s, r);
|
|
1546
|
+
return /* @__PURE__ */ e.jsx("span", { className: n ? "tabular-nums" : void 0, children: Fs(u) });
|
|
1518
1547
|
}
|
|
1519
|
-
function
|
|
1520
|
-
const { runId: s } =
|
|
1548
|
+
function Kt() {
|
|
1549
|
+
const { runId: s } = ns(), r = gt(), { api: a } = z(), { data: n, loading: o, error: d, refetch: u } = Bs(s), { data: i, refetch: x } = qe(), [h, m] = P(!1), [p, y] = P(null), { mutate: M, loading: _ } = Re(
|
|
1521
1550
|
() => a.setBaseline(n.project, n.run_id)
|
|
1522
1551
|
), { mutate: H, loading: T } = Re(
|
|
1523
1552
|
() => a.deleteRun(s)
|
|
@@ -1528,7 +1557,7 @@ function Yt() {
|
|
|
1528
1557
|
return () => clearTimeout(w);
|
|
1529
1558
|
}
|
|
1530
1559
|
}, [p]), o)
|
|
1531
|
-
return /* @__PURE__ */ e.jsx(V, { children: /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e.jsx(
|
|
1560
|
+
return /* @__PURE__ */ e.jsx(V, { children: /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e.jsx(B, {}) }) });
|
|
1532
1561
|
if (d || !n)
|
|
1533
1562
|
return /* @__PURE__ */ e.jsx(V, { children: /* @__PURE__ */ e.jsx(b, { children: /* @__PURE__ */ e.jsx(
|
|
1534
1563
|
he,
|
|
@@ -1537,25 +1566,25 @@ function Yt() {
|
|
|
1537
1566
|
hint: d?.message || `Run ${s} does not exist`
|
|
1538
1567
|
}
|
|
1539
1568
|
) }) });
|
|
1540
|
-
const te = n.backend || {}, ae = n.fingerprints || {}, J = n.data?.params || {}, Z = n.data?.metrics || {}, xe = n.data?.tags || {}, me = n.artifacts || [],
|
|
1569
|
+
const te = n.backend || {}, ae = n.fingerprints || {}, J = n.data?.params || {}, Z = n.data?.metrics || {}, xe = n.data?.tags || {}, me = n.artifacts || [], ge = n.errors || [], Me = async () => {
|
|
1541
1570
|
try {
|
|
1542
|
-
await M(), await
|
|
1571
|
+
await M(), await x(), u(), y({ message: "Baseline updated", variant: "success" });
|
|
1543
1572
|
} catch {
|
|
1544
1573
|
y({ message: "Failed to set baseline", variant: "error" });
|
|
1545
1574
|
}
|
|
1546
|
-
},
|
|
1575
|
+
}, Ue = async () => {
|
|
1547
1576
|
try {
|
|
1548
1577
|
await H(), m(!1), y({ message: "Run deleted", variant: "success" }), setTimeout(() => r("/runs"), 1e3);
|
|
1549
1578
|
} catch {
|
|
1550
1579
|
y({ message: "Failed to delete run", variant: "error" }), m(!1);
|
|
1551
1580
|
}
|
|
1552
1581
|
}, Te = async (w) => {
|
|
1553
|
-
const
|
|
1582
|
+
const S = me[w];
|
|
1554
1583
|
try {
|
|
1555
|
-
const ke = a.getArtifactDownloadUrl(n.run_id, w),
|
|
1556
|
-
if (!
|
|
1557
|
-
const
|
|
1558
|
-
le.href = URL.createObjectURL(
|
|
1584
|
+
const ke = a.getArtifactDownloadUrl(n.run_id, w), ve = await fetch(ke);
|
|
1585
|
+
if (!ve.ok) throw new Error("Download failed");
|
|
1586
|
+
const Pe = await ve.blob(), le = document.createElement("a");
|
|
1587
|
+
le.href = URL.createObjectURL(Pe), le.download = S?.kind || `artifact-${w}`, le.click(), URL.revokeObjectURL(le.href), y({ message: "Download complete", variant: "success" });
|
|
1559
1588
|
} catch {
|
|
1560
1589
|
y({ message: "Download failed", variant: "error" });
|
|
1561
1590
|
}
|
|
@@ -1567,7 +1596,7 @@ function Yt() {
|
|
|
1567
1596
|
{ label: "Created", value: `${n.created_at} (${Le(n.created_at)})` },
|
|
1568
1597
|
{
|
|
1569
1598
|
label: "Duration",
|
|
1570
|
-
value: /* @__PURE__ */ e.jsx(
|
|
1599
|
+
value: /* @__PURE__ */ e.jsx(Yt, { createdAt: n.created_at, endedAt: n.ended_at, status: n.status })
|
|
1571
1600
|
},
|
|
1572
1601
|
...n.ended_at ? [{ label: "Ended", value: `${n.ended_at} (${Le(n.ended_at)})` }] : [],
|
|
1573
1602
|
{ label: "Backend", value: te.name || "N/A" },
|
|
@@ -1588,9 +1617,9 @@ function Yt() {
|
|
|
1588
1617
|
/* @__PURE__ */ e.jsx("p", { className: "text-muted text-sm font-mono", children: n.run_id })
|
|
1589
1618
|
] }),
|
|
1590
1619
|
/* @__PURE__ */ e.jsxs("div", { className: "flex gap-2", children: [
|
|
1591
|
-
/* @__PURE__ */ e.jsx(
|
|
1592
|
-
!k && /* @__PURE__ */ e.jsxs(D, { variant: "secondary", size: "sm", onClick:
|
|
1593
|
-
_ && /* @__PURE__ */ e.jsx(
|
|
1620
|
+
/* @__PURE__ */ e.jsx(Gt, { runId: n.run_id, runName: n.run_name }),
|
|
1621
|
+
!k && /* @__PURE__ */ e.jsxs(D, { variant: "secondary", size: "sm", onClick: Me, disabled: _, children: [
|
|
1622
|
+
_ && /* @__PURE__ */ e.jsx(B, {}),
|
|
1594
1623
|
"Set as Baseline"
|
|
1595
1624
|
] }),
|
|
1596
1625
|
/* @__PURE__ */ e.jsx(D, { variant: "ghost-danger", size: "sm", onClick: () => m(!0), children: "Delete" })
|
|
@@ -1598,12 +1627,12 @@ function Yt() {
|
|
|
1598
1627
|
] }),
|
|
1599
1628
|
/* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4 mb-4", children: [
|
|
1600
1629
|
/* @__PURE__ */ e.jsxs(b, { children: [
|
|
1601
|
-
/* @__PURE__ */ e.jsx(
|
|
1602
|
-
/* @__PURE__ */ e.jsx(
|
|
1630
|
+
/* @__PURE__ */ e.jsx(G, { children: /* @__PURE__ */ e.jsx(W, { children: "Overview" }) }),
|
|
1631
|
+
/* @__PURE__ */ e.jsx(es, { items: ee })
|
|
1603
1632
|
] }),
|
|
1604
1633
|
/* @__PURE__ */ e.jsxs(b, { children: [
|
|
1605
|
-
/* @__PURE__ */ e.jsx(
|
|
1606
|
-
/* @__PURE__ */ e.jsx(
|
|
1634
|
+
/* @__PURE__ */ e.jsx(G, { children: /* @__PURE__ */ e.jsx(W, { children: "Fingerprints" }) }),
|
|
1635
|
+
/* @__PURE__ */ e.jsx(es, { items: [
|
|
1607
1636
|
{ label: "Run", value: /* @__PURE__ */ e.jsx("span", { className: "font-mono text-sm truncate", children: ae.run || "N/A" }) },
|
|
1608
1637
|
{ label: "Program", value: /* @__PURE__ */ e.jsx("span", { className: "font-mono text-sm truncate", children: ae.program || "N/A" }) }
|
|
1609
1638
|
] })
|
|
@@ -1611,30 +1640,30 @@ function Yt() {
|
|
|
1611
1640
|
] }),
|
|
1612
1641
|
/* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-4 mb-4", children: [
|
|
1613
1642
|
/* @__PURE__ */ e.jsxs(b, { children: [
|
|
1614
|
-
/* @__PURE__ */ e.jsx(
|
|
1615
|
-
Object.keys(J).length ? /* @__PURE__ */ e.jsx(O, { children: /* @__PURE__ */ e.jsx(L, { children: Object.entries(J).map(([w,
|
|
1643
|
+
/* @__PURE__ */ e.jsx(G, { children: /* @__PURE__ */ e.jsx(W, { children: "Parameters" }) }),
|
|
1644
|
+
Object.keys(J).length ? /* @__PURE__ */ e.jsx(O, { children: /* @__PURE__ */ e.jsx(L, { children: Object.entries(J).map(([w, S]) => /* @__PURE__ */ e.jsxs(j, { children: [
|
|
1616
1645
|
/* @__PURE__ */ e.jsx(c, { children: w }),
|
|
1617
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: String(
|
|
1646
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: String(S) })
|
|
1618
1647
|
] }, w)) }) }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "No parameters" })
|
|
1619
1648
|
] }),
|
|
1620
1649
|
/* @__PURE__ */ e.jsxs(b, { children: [
|
|
1621
|
-
/* @__PURE__ */ e.jsx(
|
|
1622
|
-
Object.keys(Z).length ? /* @__PURE__ */ e.jsx(O, { children: /* @__PURE__ */ e.jsx(L, { children: Object.entries(Z).map(([w,
|
|
1650
|
+
/* @__PURE__ */ e.jsx(G, { children: /* @__PURE__ */ e.jsx(W, { children: "Metrics" }) }),
|
|
1651
|
+
Object.keys(Z).length ? /* @__PURE__ */ e.jsx(O, { children: /* @__PURE__ */ e.jsx(L, { children: Object.entries(Z).map(([w, S]) => /* @__PURE__ */ e.jsxs(j, { children: [
|
|
1623
1652
|
/* @__PURE__ */ e.jsx(c, { children: w }),
|
|
1624
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: typeof
|
|
1653
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: typeof S == "number" ? Ct(S) : String(S) })
|
|
1625
1654
|
] }, w)) }) }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "No metrics" })
|
|
1626
1655
|
] }),
|
|
1627
1656
|
/* @__PURE__ */ e.jsxs(b, { children: [
|
|
1628
|
-
/* @__PURE__ */ e.jsx(
|
|
1629
|
-
Object.keys(xe).length ? /* @__PURE__ */ e.jsx("div", { className: "flex flex-wrap gap-2", children: Object.entries(xe).map(([w,
|
|
1657
|
+
/* @__PURE__ */ e.jsx(G, { children: /* @__PURE__ */ e.jsx(W, { children: "Tags" }) }),
|
|
1658
|
+
Object.keys(xe).length ? /* @__PURE__ */ e.jsx("div", { className: "flex flex-wrap gap-2", children: Object.entries(xe).map(([w, S]) => /* @__PURE__ */ e.jsxs(K, { variant: "gray", children: [
|
|
1630
1659
|
w,
|
|
1631
1660
|
": ",
|
|
1632
|
-
String(
|
|
1661
|
+
String(S)
|
|
1633
1662
|
] }, w)) }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "No tags" })
|
|
1634
1663
|
] })
|
|
1635
1664
|
] }),
|
|
1636
1665
|
/* @__PURE__ */ e.jsxs(b, { className: "mb-4", children: [
|
|
1637
|
-
/* @__PURE__ */ e.jsx(
|
|
1666
|
+
/* @__PURE__ */ e.jsx(G, { children: /* @__PURE__ */ e.jsxs(W, { children: [
|
|
1638
1667
|
"Artifacts (",
|
|
1639
1668
|
me.length,
|
|
1640
1669
|
")"
|
|
@@ -1648,38 +1677,38 @@ function Yt() {
|
|
|
1648
1677
|
/* @__PURE__ */ e.jsx(N, { children: "Digest" }),
|
|
1649
1678
|
/* @__PURE__ */ e.jsx(N, { children: "Actions" })
|
|
1650
1679
|
] }) }),
|
|
1651
|
-
/* @__PURE__ */ e.jsx(L, { children: me.map((w,
|
|
1652
|
-
/* @__PURE__ */ e.jsx(c, { children:
|
|
1680
|
+
/* @__PURE__ */ e.jsx(L, { children: me.map((w, S) => /* @__PURE__ */ e.jsxs(j, { children: [
|
|
1681
|
+
/* @__PURE__ */ e.jsx(c, { children: S }),
|
|
1653
1682
|
/* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: w.kind }),
|
|
1654
1683
|
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(K, { variant: "gray", children: w.role }) }),
|
|
1655
1684
|
/* @__PURE__ */ e.jsx(c, { className: "text-muted text-sm", children: w.media_type }),
|
|
1656
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children:
|
|
1685
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: Ze(w.digest) }),
|
|
1657
1686
|
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsxs("div", { className: "flex gap-2", children: [
|
|
1658
|
-
/* @__PURE__ */ e.jsx(Y, { to: `/runs/${n.run_id}/artifacts/${
|
|
1659
|
-
/* @__PURE__ */ e.jsx(D, { variant: "secondary", size: "sm", onClick: () => Te(
|
|
1687
|
+
/* @__PURE__ */ e.jsx(Y, { to: `/runs/${n.run_id}/artifacts/${S}`, children: /* @__PURE__ */ e.jsx(D, { variant: "secondary", size: "sm", children: "View" }) }),
|
|
1688
|
+
/* @__PURE__ */ e.jsx(D, { variant: "secondary", size: "sm", onClick: () => Te(S), children: "Download" })
|
|
1660
1689
|
] }) })
|
|
1661
|
-
] },
|
|
1690
|
+
] }, S)) })
|
|
1662
1691
|
] }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "No artifacts" })
|
|
1663
1692
|
] }),
|
|
1664
|
-
|
|
1665
|
-
/* @__PURE__ */ e.jsx(
|
|
1666
|
-
|
|
1693
|
+
ge.length > 0 && /* @__PURE__ */ e.jsxs(b, { children: [
|
|
1694
|
+
/* @__PURE__ */ e.jsx(G, { children: /* @__PURE__ */ e.jsx(W, { className: "text-danger", children: "Errors" }) }),
|
|
1695
|
+
ge.map((w, S) => /* @__PURE__ */ e.jsxs("div", { className: "mb-2", children: [
|
|
1667
1696
|
/* @__PURE__ */ e.jsx("strong", { children: w.type }),
|
|
1668
1697
|
": ",
|
|
1669
1698
|
w.message,
|
|
1670
1699
|
w.traceback && /* @__PURE__ */ e.jsx("pre", { className: "mt-2", children: w.traceback })
|
|
1671
|
-
] },
|
|
1700
|
+
] }, S))
|
|
1672
1701
|
] }),
|
|
1673
1702
|
/* @__PURE__ */ e.jsxs(
|
|
1674
|
-
|
|
1703
|
+
as,
|
|
1675
1704
|
{
|
|
1676
1705
|
open: h,
|
|
1677
1706
|
onClose: () => m(!1),
|
|
1678
1707
|
title: "Delete Run",
|
|
1679
1708
|
actions: /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
1680
1709
|
/* @__PURE__ */ e.jsx(D, { variant: "secondary", onClick: () => m(!1), children: "Cancel" }),
|
|
1681
|
-
/* @__PURE__ */ e.jsxs(D, { variant: "danger", onClick:
|
|
1682
|
-
T && /* @__PURE__ */ e.jsx(
|
|
1710
|
+
/* @__PURE__ */ e.jsxs(D, { variant: "danger", onClick: Ue, disabled: T, children: [
|
|
1711
|
+
T && /* @__PURE__ */ e.jsx(B, {}),
|
|
1683
1712
|
"Delete"
|
|
1684
1713
|
] })
|
|
1685
1714
|
] }),
|
|
@@ -1701,15 +1730,15 @@ function Yt() {
|
|
|
1701
1730
|
)
|
|
1702
1731
|
] });
|
|
1703
1732
|
}
|
|
1704
|
-
function
|
|
1705
|
-
const { currentWorkspace: s } = z(), { data: r, loading: a } =
|
|
1733
|
+
function Ht() {
|
|
1734
|
+
const { currentWorkspace: s } = z(), { data: r, loading: a } = qe();
|
|
1706
1735
|
return /* @__PURE__ */ e.jsxs(V, { children: [
|
|
1707
1736
|
/* @__PURE__ */ e.jsx(Ee, { title: "Projects" }),
|
|
1708
|
-
/* @__PURE__ */ e.jsx(b, { children: a ? /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-8", children: /* @__PURE__ */ e.jsx(
|
|
1737
|
+
/* @__PURE__ */ e.jsx(b, { children: a ? /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-8", children: /* @__PURE__ */ e.jsx(B, {}) }) : /* @__PURE__ */ e.jsx(Mt, { projects: r ?? [], currentWorkspace: s }) })
|
|
1709
1738
|
] });
|
|
1710
1739
|
}
|
|
1711
|
-
function
|
|
1712
|
-
const [s, r] =
|
|
1740
|
+
function Jt() {
|
|
1741
|
+
const [s, r] = Ie(), { data: a } = qe(), [n, o] = P(s.get("project") || ""), { data: d, loading: u, refetch: i } = At({ project: n || void 0 }), x = pe((h) => {
|
|
1713
1742
|
o(h);
|
|
1714
1743
|
const m = new URLSearchParams(s);
|
|
1715
1744
|
h ? m.set("project", h) : m.delete("project"), r(m, { replace: !0 });
|
|
@@ -1724,7 +1753,7 @@ function Ht() {
|
|
|
1724
1753
|
{
|
|
1725
1754
|
id: "project",
|
|
1726
1755
|
value: n,
|
|
1727
|
-
onChange: (h) =>
|
|
1756
|
+
onChange: (h) => x(h.target.value),
|
|
1728
1757
|
children: [
|
|
1729
1758
|
/* @__PURE__ */ e.jsx("option", { value: "", children: "All projects" }),
|
|
1730
1759
|
a?.map((h) => /* @__PURE__ */ e.jsx("option", { value: h.name, children: h.name }, h.name))
|
|
@@ -1734,14 +1763,14 @@ function Ht() {
|
|
|
1734
1763
|
] }),
|
|
1735
1764
|
/* @__PURE__ */ e.jsxs(se, { className: "flex items-end gap-2", children: [
|
|
1736
1765
|
/* @__PURE__ */ e.jsx(D, { variant: "primary", onClick: () => i(), children: "Filter" }),
|
|
1737
|
-
u && /* @__PURE__ */ e.jsx(
|
|
1766
|
+
u && /* @__PURE__ */ e.jsx(B, {})
|
|
1738
1767
|
] })
|
|
1739
1768
|
] }) }),
|
|
1740
|
-
/* @__PURE__ */ e.jsx(b, { children: u && !d ? /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-8", children: /* @__PURE__ */ e.jsx(
|
|
1769
|
+
/* @__PURE__ */ e.jsx(b, { children: u && !d ? /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-8", children: /* @__PURE__ */ e.jsx(B, {}) }) : /* @__PURE__ */ e.jsx(Ut, { groups: d ?? [] }) })
|
|
1741
1770
|
] });
|
|
1742
1771
|
}
|
|
1743
|
-
function
|
|
1744
|
-
const { groupId: s } =
|
|
1772
|
+
function Xt() {
|
|
1773
|
+
const { groupId: s } = ns(), { api: r } = z(), { data: a, loading: n, error: o, refetch: d } = Ft(s), [u, i] = P(null), x = Re((m) => r.deleteRun(m));
|
|
1745
1774
|
ne(() => {
|
|
1746
1775
|
if (u) {
|
|
1747
1776
|
const m = setTimeout(() => i(null), 3e3);
|
|
@@ -1750,12 +1779,12 @@ function Jt() {
|
|
|
1750
1779
|
}, [u]);
|
|
1751
1780
|
const h = async (m) => {
|
|
1752
1781
|
try {
|
|
1753
|
-
await
|
|
1782
|
+
await x.mutate(m), i({ message: "Run deleted", variant: "success" }), d();
|
|
1754
1783
|
} catch {
|
|
1755
1784
|
i({ message: "Failed to delete run", variant: "error" });
|
|
1756
1785
|
}
|
|
1757
1786
|
};
|
|
1758
|
-
return n ? /* @__PURE__ */ e.jsx(V, { children: /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e.jsx(
|
|
1787
|
+
return n ? /* @__PURE__ */ e.jsx(V, { children: /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e.jsx(B, {}) }) }) : o || !a ? /* @__PURE__ */ e.jsx(V, { children: /* @__PURE__ */ e.jsx(b, { children: /* @__PURE__ */ e.jsx(he, { message: "Group not found", hint: o?.message }) }) }) : /* @__PURE__ */ e.jsxs(V, { children: [
|
|
1759
1788
|
/* @__PURE__ */ e.jsx(
|
|
1760
1789
|
Ee,
|
|
1761
1790
|
{
|
|
@@ -1767,17 +1796,17 @@ function Jt() {
|
|
|
1767
1796
|
}
|
|
1768
1797
|
),
|
|
1769
1798
|
/* @__PURE__ */ e.jsxs(b, { children: [
|
|
1770
|
-
/* @__PURE__ */ e.jsx(
|
|
1799
|
+
/* @__PURE__ */ e.jsx(G, { children: /* @__PURE__ */ e.jsxs(W, { children: [
|
|
1771
1800
|
"Runs in Group (",
|
|
1772
1801
|
a.runs.length,
|
|
1773
1802
|
")"
|
|
1774
1803
|
] }) }),
|
|
1775
1804
|
/* @__PURE__ */ e.jsx(
|
|
1776
|
-
|
|
1805
|
+
cs,
|
|
1777
1806
|
{
|
|
1778
1807
|
runs: a.runs,
|
|
1779
1808
|
onDelete: h,
|
|
1780
|
-
loading:
|
|
1809
|
+
loading: x.loading
|
|
1781
1810
|
}
|
|
1782
1811
|
)
|
|
1783
1812
|
] }),
|
|
@@ -1792,41 +1821,41 @@ function Jt() {
|
|
|
1792
1821
|
)
|
|
1793
1822
|
] });
|
|
1794
1823
|
}
|
|
1795
|
-
function
|
|
1824
|
+
function Qt({ className: s = "" }) {
|
|
1796
1825
|
return /* @__PURE__ */ e.jsx("svg", { className: s, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ e.jsx("polyline", { points: "20 6 9 17 4 12" }) });
|
|
1797
1826
|
}
|
|
1798
|
-
function
|
|
1827
|
+
function Zt({ className: s = "" }) {
|
|
1799
1828
|
return /* @__PURE__ */ e.jsxs("svg", { className: s, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
1800
1829
|
/* @__PURE__ */ e.jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
|
|
1801
1830
|
/* @__PURE__ */ e.jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
|
|
1802
1831
|
] });
|
|
1803
1832
|
}
|
|
1804
|
-
function
|
|
1833
|
+
function er({ className: s = "" }) {
|
|
1805
1834
|
return /* @__PURE__ */ e.jsxs("svg", { className: s, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
1806
1835
|
/* @__PURE__ */ e.jsx("path", { d: "M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z" }),
|
|
1807
1836
|
/* @__PURE__ */ e.jsx("line", { x1: "12", y1: "9", x2: "12", y2: "13" }),
|
|
1808
1837
|
/* @__PURE__ */ e.jsx("line", { x1: "12", y1: "17", x2: "12.01", y2: "17" })
|
|
1809
1838
|
] });
|
|
1810
1839
|
}
|
|
1811
|
-
function
|
|
1840
|
+
function Qe({ className: s = "" }) {
|
|
1812
1841
|
return /* @__PURE__ */ e.jsxs("svg", { className: s, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
1813
1842
|
/* @__PURE__ */ e.jsx("circle", { cx: "12", cy: "12", r: "10" }),
|
|
1814
1843
|
/* @__PURE__ */ e.jsx("line", { x1: "12", y1: "16", x2: "12", y2: "12" }),
|
|
1815
1844
|
/* @__PURE__ */ e.jsx("line", { x1: "12", y1: "8", x2: "12.01", y2: "8" })
|
|
1816
1845
|
] });
|
|
1817
1846
|
}
|
|
1818
|
-
function
|
|
1847
|
+
function _e({ match: s }) {
|
|
1819
1848
|
return s ? /* @__PURE__ */ e.jsxs("span", { className: "diff-match inline-flex items-center gap-1.5", children: [
|
|
1820
|
-
/* @__PURE__ */ e.jsx(
|
|
1849
|
+
/* @__PURE__ */ e.jsx(Qt, { className: "flex-shrink-0" }),
|
|
1821
1850
|
/* @__PURE__ */ e.jsx("span", { className: "font-medium", children: "Match" })
|
|
1822
1851
|
] }) : /* @__PURE__ */ e.jsxs("span", { className: "diff-mismatch inline-flex items-center gap-1.5", children: [
|
|
1823
|
-
/* @__PURE__ */ e.jsx(
|
|
1852
|
+
/* @__PURE__ */ e.jsx(Zt, { className: "flex-shrink-0" }),
|
|
1824
1853
|
/* @__PURE__ */ e.jsx("span", { className: "font-medium", children: "Different" })
|
|
1825
1854
|
] });
|
|
1826
1855
|
}
|
|
1827
|
-
function
|
|
1856
|
+
function sr({ warnings: s }) {
|
|
1828
1857
|
return !s || s.length === 0 ? null : /* @__PURE__ */ e.jsx("div", { className: "alert alert-warning mb-4", children: /* @__PURE__ */ e.jsxs("div", { className: "flex gap-3", children: [
|
|
1829
|
-
/* @__PURE__ */ e.jsx(
|
|
1858
|
+
/* @__PURE__ */ e.jsx(er, { className: "flex-shrink-0 mt-0.5" }),
|
|
1830
1859
|
/* @__PURE__ */ e.jsxs("div", { className: "flex-1", children: [
|
|
1831
1860
|
/* @__PURE__ */ e.jsx("p", { className: "font-semibold mb-1", children: s.length === 1 ? "Warning" : `${s.length} Warnings` }),
|
|
1832
1861
|
/* @__PURE__ */ e.jsx("ul", { className: "space-y-1", children: s.map((r, a) => /* @__PURE__ */ e.jsx("li", { className: "text-sm", children: r }, a)) })
|
|
@@ -1856,12 +1885,12 @@ function ie({
|
|
|
1856
1885
|
children: s,
|
|
1857
1886
|
badge: r
|
|
1858
1887
|
}) {
|
|
1859
|
-
return /* @__PURE__ */ e.jsx(
|
|
1888
|
+
return /* @__PURE__ */ e.jsx(G, { children: /* @__PURE__ */ e.jsx(W, { children: /* @__PURE__ */ e.jsxs("span", { className: "flex items-center gap-2 flex-wrap", children: [
|
|
1860
1889
|
s,
|
|
1861
1890
|
r && /* @__PURE__ */ e.jsx(K, { variant: r.variant, children: r.label })
|
|
1862
1891
|
] }) }) });
|
|
1863
1892
|
}
|
|
1864
|
-
function
|
|
1893
|
+
function tr({
|
|
1865
1894
|
tvd: s,
|
|
1866
1895
|
noiseContext: r
|
|
1867
1896
|
}) {
|
|
@@ -1887,8 +1916,8 @@ function sr({
|
|
|
1887
1916
|
"×) — results show meaningful differences"
|
|
1888
1917
|
] }) : null;
|
|
1889
1918
|
}
|
|
1890
|
-
function
|
|
1891
|
-
const [s, r] =
|
|
1919
|
+
function rr() {
|
|
1920
|
+
const [s, r] = Ie(), { data: a } = Is({ limit: 100 }), n = a?.runs ?? [], [o, d] = P(s.get("a") || ""), [u, i] = P(s.get("b") || ""), [x, h] = P(""), m = (p) => {
|
|
1892
1921
|
if (p.preventDefault(), !o || !u) {
|
|
1893
1922
|
h("Please select both runs to compare");
|
|
1894
1923
|
return;
|
|
@@ -1949,40 +1978,40 @@ function tr() {
|
|
|
1949
1978
|
)
|
|
1950
1979
|
] })
|
|
1951
1980
|
] }),
|
|
1952
|
-
|
|
1981
|
+
x && /* @__PURE__ */ e.jsx("p", { className: "text-sm mb-3 text-danger", children: x }),
|
|
1953
1982
|
/* @__PURE__ */ e.jsx(D, { type: "submit", variant: "primary", children: "Compare" })
|
|
1954
1983
|
] }) }),
|
|
1955
1984
|
/* @__PURE__ */ e.jsxs(b, { className: "mt-4", children: [
|
|
1956
|
-
/* @__PURE__ */ e.jsx(
|
|
1985
|
+
/* @__PURE__ */ e.jsx(G, { children: /* @__PURE__ */ e.jsx(W, { children: "How it works" }) }),
|
|
1957
1986
|
/* @__PURE__ */ e.jsxs("div", { className: "space-y-2 text-sm text-muted", children: [
|
|
1958
1987
|
/* @__PURE__ */ e.jsxs("div", { className: "flex items-start gap-2", children: [
|
|
1959
|
-
/* @__PURE__ */ e.jsx(
|
|
1988
|
+
/* @__PURE__ */ e.jsx(Qe, { className: "flex-shrink-0 mt-0.5" }),
|
|
1960
1989
|
/* @__PURE__ */ e.jsx("span", { children: "Select two runs to compare their parameters, metrics, and artifacts" })
|
|
1961
1990
|
] }),
|
|
1962
1991
|
/* @__PURE__ */ e.jsxs("div", { className: "flex items-start gap-2", children: [
|
|
1963
|
-
/* @__PURE__ */ e.jsx(
|
|
1992
|
+
/* @__PURE__ */ e.jsx(Qe, { className: "flex-shrink-0 mt-0.5" }),
|
|
1964
1993
|
/* @__PURE__ */ e.jsx("span", { children: "The diff shows changed values and computes TVD for result distributions" })
|
|
1965
1994
|
] }),
|
|
1966
1995
|
/* @__PURE__ */ e.jsxs("div", { className: "flex items-start gap-2", children: [
|
|
1967
|
-
/* @__PURE__ */ e.jsx(
|
|
1996
|
+
/* @__PURE__ */ e.jsx(Qe, { className: "flex-shrink-0 mt-0.5" }),
|
|
1968
1997
|
/* @__PURE__ */ e.jsx("span", { children: "You can also compare from the run detail page" })
|
|
1969
1998
|
] })
|
|
1970
1999
|
] })
|
|
1971
2000
|
] })
|
|
1972
2001
|
] });
|
|
1973
2002
|
}
|
|
1974
|
-
function
|
|
1975
|
-
const { data: a, loading: n, error: o } =
|
|
2003
|
+
function nr({ runIdA: s, runIdB: r }) {
|
|
2004
|
+
const { data: a, loading: n, error: o } = $t(s, r);
|
|
1976
2005
|
if (n)
|
|
1977
2006
|
return /* @__PURE__ */ e.jsx(b, { children: /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col items-center justify-center py-12 gap-3", children: [
|
|
1978
|
-
/* @__PURE__ */ e.jsx(
|
|
2007
|
+
/* @__PURE__ */ e.jsx(B, {}),
|
|
1979
2008
|
/* @__PURE__ */ e.jsx("p", { className: "text-sm text-muted", children: "Comparing runs..." })
|
|
1980
2009
|
] }) });
|
|
1981
2010
|
if (o || !a)
|
|
1982
2011
|
return /* @__PURE__ */ e.jsx(b, { children: /* @__PURE__ */ e.jsx(he, { message: "Failed to load diff", hint: o?.message }) });
|
|
1983
|
-
const { run_a: d, run_b: u, report: i } = a,
|
|
2012
|
+
const { run_a: d, run_b: u, report: i } = a, x = i.device_drift?.significant_drift ? { variant: "warning", label: "Drift Detected" } : i.device_drift?.has_calibration_data ? { variant: "success", label: "Stable" } : { variant: "gray", label: "No Data" };
|
|
1984
2013
|
return /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
1985
|
-
/* @__PURE__ */ e.jsx(
|
|
2014
|
+
/* @__PURE__ */ e.jsx(sr, { warnings: i.warnings || [] }),
|
|
1986
2015
|
/* @__PURE__ */ e.jsx(b, { className: "mb-4", children: /* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [
|
|
1987
2016
|
/* @__PURE__ */ e.jsx(Ss, { label: "Run A (Baseline)", run: d, variant: "a" }),
|
|
1988
2017
|
/* @__PURE__ */ e.jsx(Ss, { label: "Run B (Candidate)", run: u, variant: "b" })
|
|
@@ -1993,11 +2022,11 @@ function rr({ runIdA: s, runIdB: r }) {
|
|
|
1993
2022
|
/* @__PURE__ */ e.jsx(O, { children: /* @__PURE__ */ e.jsxs(L, { children: [
|
|
1994
2023
|
/* @__PURE__ */ e.jsxs(j, { children: [
|
|
1995
2024
|
/* @__PURE__ */ e.jsx(c, { children: "Project" }),
|
|
1996
|
-
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(
|
|
2025
|
+
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(_e, { match: i.metadata.project_match }) })
|
|
1997
2026
|
] }),
|
|
1998
2027
|
/* @__PURE__ */ e.jsxs(j, { children: [
|
|
1999
2028
|
/* @__PURE__ */ e.jsx(c, { children: "Backend" }),
|
|
2000
|
-
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(
|
|
2029
|
+
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(_e, { match: i.metadata.backend_match }) })
|
|
2001
2030
|
] }),
|
|
2002
2031
|
!i.metadata.project_match && /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
2003
2032
|
/* @__PURE__ */ e.jsxs(j, { children: [
|
|
@@ -2026,15 +2055,15 @@ function rr({ runIdA: s, runIdB: r }) {
|
|
|
2026
2055
|
/* @__PURE__ */ e.jsx(O, { children: /* @__PURE__ */ e.jsxs(L, { children: [
|
|
2027
2056
|
/* @__PURE__ */ e.jsxs(j, { children: [
|
|
2028
2057
|
/* @__PURE__ */ e.jsx(c, { children: "Run A" }),
|
|
2029
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children:
|
|
2058
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: Ze(i.fingerprints.a) })
|
|
2030
2059
|
] }),
|
|
2031
2060
|
/* @__PURE__ */ e.jsxs(j, { children: [
|
|
2032
2061
|
/* @__PURE__ */ e.jsx(c, { children: "Run B" }),
|
|
2033
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children:
|
|
2062
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: Ze(i.fingerprints.b) })
|
|
2034
2063
|
] }),
|
|
2035
2064
|
/* @__PURE__ */ e.jsxs(j, { children: [
|
|
2036
2065
|
/* @__PURE__ */ e.jsx(c, { children: "Match" }),
|
|
2037
|
-
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(
|
|
2066
|
+
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(_e, { match: i.fingerprints.a === i.fingerprints.b }) })
|
|
2038
2067
|
] })
|
|
2039
2068
|
] }) })
|
|
2040
2069
|
] })
|
|
@@ -2054,16 +2083,16 @@ function rr({ runIdA: s, runIdB: r }) {
|
|
|
2054
2083
|
/* @__PURE__ */ e.jsx(O, { children: /* @__PURE__ */ e.jsxs(L, { children: [
|
|
2055
2084
|
/* @__PURE__ */ e.jsxs(j, { children: [
|
|
2056
2085
|
/* @__PURE__ */ e.jsx(c, { children: "Exact Match" }),
|
|
2057
|
-
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(
|
|
2086
|
+
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(_e, { match: i.program.exact_match }) })
|
|
2058
2087
|
] }),
|
|
2059
2088
|
/* @__PURE__ */ e.jsxs(j, { children: [
|
|
2060
2089
|
/* @__PURE__ */ e.jsx(c, { children: "Structural Match" }),
|
|
2061
|
-
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(
|
|
2090
|
+
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(_e, { match: i.program.structural_match }) })
|
|
2062
2091
|
] })
|
|
2063
2092
|
] }) })
|
|
2064
2093
|
] }),
|
|
2065
2094
|
/* @__PURE__ */ e.jsxs(b, { children: [
|
|
2066
|
-
/* @__PURE__ */ e.jsx(ie, { badge:
|
|
2095
|
+
/* @__PURE__ */ e.jsx(ie, { badge: x, children: "Device Calibration" }),
|
|
2067
2096
|
i.device_drift?.significant_drift ? /* @__PURE__ */ e.jsx("p", { className: "text-sm text-warning", children: "Significant calibration drift detected between runs" }) : 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" })
|
|
2068
2097
|
] })
|
|
2069
2098
|
] }),
|
|
@@ -2168,30 +2197,30 @@ function rr({ runIdA: s, runIdB: r }) {
|
|
|
2168
2197
|
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: i.noise_context.p_value.toFixed(4) })
|
|
2169
2198
|
] })
|
|
2170
2199
|
] }) }),
|
|
2171
|
-
/* @__PURE__ */ e.jsx(
|
|
2200
|
+
/* @__PURE__ */ e.jsx(tr, { tvd: i.tvd, noiseContext: i.noise_context })
|
|
2172
2201
|
] })
|
|
2173
2202
|
] });
|
|
2174
2203
|
}
|
|
2175
|
-
function
|
|
2176
|
-
const [s] =
|
|
2204
|
+
function ar() {
|
|
2205
|
+
const [s] = Ie(), r = s.get("a"), a = s.get("b"), n = r && a;
|
|
2177
2206
|
return /* @__PURE__ */ e.jsxs(V, { children: [
|
|
2178
2207
|
/* @__PURE__ */ e.jsx("div", { className: "page-header", children: /* @__PURE__ */ e.jsxs("div", { children: [
|
|
2179
2208
|
/* @__PURE__ */ e.jsx("h1", { className: "page-title", children: "Compare Runs" }),
|
|
2180
2209
|
n && /* @__PURE__ */ e.jsx("p", { className: "text-sm mt-1 text-muted", children: /* @__PURE__ */ e.jsx(Y, { to: "/diff", children: "← Select different runs" }) })
|
|
2181
2210
|
] }) }),
|
|
2182
|
-
n ? /* @__PURE__ */ e.jsx(
|
|
2211
|
+
n ? /* @__PURE__ */ e.jsx(nr, { runIdA: r, runIdB: a }) : /* @__PURE__ */ e.jsx(rr, {})
|
|
2183
2212
|
] });
|
|
2184
2213
|
}
|
|
2185
|
-
function
|
|
2186
|
-
const { api: s } = z(), [r, a] =
|
|
2214
|
+
function ir() {
|
|
2215
|
+
const { api: s } = z(), [r, a] = P(""), [n, o] = P(null), [d, u] = P(!1), [i, x] = P(""), { mutate: h, loading: m } = Re(async () => {
|
|
2187
2216
|
const y = await s.listRuns({ q: r, limit: 100 });
|
|
2188
2217
|
return o(y.runs), u(!0), y;
|
|
2189
2218
|
}), p = (y) => {
|
|
2190
2219
|
if (y.preventDefault(), !r.trim()) {
|
|
2191
|
-
|
|
2220
|
+
x("Please enter a search query");
|
|
2192
2221
|
return;
|
|
2193
2222
|
}
|
|
2194
|
-
|
|
2223
|
+
x(""), h();
|
|
2195
2224
|
};
|
|
2196
2225
|
return /* @__PURE__ */ e.jsxs(V, { children: [
|
|
2197
2226
|
/* @__PURE__ */ e.jsx("div", { className: "page-header", children: /* @__PURE__ */ e.jsx("h1", { className: "page-title", children: "Search Runs" }) }),
|
|
@@ -2199,13 +2228,13 @@ function ar() {
|
|
|
2199
2228
|
/* @__PURE__ */ e.jsxs(se, { children: [
|
|
2200
2229
|
/* @__PURE__ */ e.jsx(ce, { htmlFor: "q", children: "Query" }),
|
|
2201
2230
|
/* @__PURE__ */ e.jsx(
|
|
2202
|
-
|
|
2231
|
+
is,
|
|
2203
2232
|
{
|
|
2204
2233
|
id: "q",
|
|
2205
2234
|
type: "text",
|
|
2206
2235
|
value: r,
|
|
2207
2236
|
onChange: (y) => {
|
|
2208
|
-
a(y.target.value),
|
|
2237
|
+
a(y.target.value), x("");
|
|
2209
2238
|
},
|
|
2210
2239
|
placeholder: "metric.fidelity > 0.95 and params.shots = 1000",
|
|
2211
2240
|
className: "font-mono"
|
|
@@ -2215,16 +2244,16 @@ function ar() {
|
|
|
2215
2244
|
i && /* @__PURE__ */ e.jsx("p", { className: "text-sm text-[#DC4A4A] mb-3", children: i }),
|
|
2216
2245
|
/* @__PURE__ */ e.jsxs("div", { className: "flex gap-2 items-center", children: [
|
|
2217
2246
|
/* @__PURE__ */ e.jsxs(D, { type: "submit", variant: "primary", disabled: m, children: [
|
|
2218
|
-
m && /* @__PURE__ */ e.jsx(
|
|
2247
|
+
m && /* @__PURE__ */ e.jsx(B, {}),
|
|
2219
2248
|
"Search"
|
|
2220
2249
|
] }),
|
|
2221
2250
|
m && /* @__PURE__ */ e.jsx("span", { className: "text-muted text-sm", children: "Searching..." })
|
|
2222
2251
|
] })
|
|
2223
2252
|
] }) }),
|
|
2224
|
-
d && n && /* @__PURE__ */ e.jsx(b, { className: "mb-4", children: n.length > 0 ? /* @__PURE__ */ e.jsx(
|
|
2253
|
+
d && n && /* @__PURE__ */ e.jsx(b, { className: "mb-4", children: n.length > 0 ? /* @__PURE__ */ e.jsx(cs, { runs: n }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted text-center py-8", children: "No runs match your query" }) }),
|
|
2225
2254
|
/* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [
|
|
2226
2255
|
/* @__PURE__ */ e.jsxs(b, { children: [
|
|
2227
|
-
/* @__PURE__ */ e.jsx(
|
|
2256
|
+
/* @__PURE__ */ e.jsx(G, { children: /* @__PURE__ */ e.jsx(W, { children: "Query Syntax" }) }),
|
|
2228
2257
|
/* @__PURE__ */ e.jsxs(O, { children: [
|
|
2229
2258
|
/* @__PURE__ */ e.jsx(re, { children: /* @__PURE__ */ e.jsxs(j, { children: [
|
|
2230
2259
|
/* @__PURE__ */ e.jsx(N, { children: "Field" }),
|
|
@@ -2259,7 +2288,7 @@ function ar() {
|
|
|
2259
2288
|
] })
|
|
2260
2289
|
] }),
|
|
2261
2290
|
/* @__PURE__ */ e.jsxs(b, { children: [
|
|
2262
|
-
/* @__PURE__ */ e.jsx(
|
|
2291
|
+
/* @__PURE__ */ e.jsx(G, { children: /* @__PURE__ */ e.jsx(W, { children: "Operators" }) }),
|
|
2263
2292
|
/* @__PURE__ */ e.jsxs(O, { children: [
|
|
2264
2293
|
/* @__PURE__ */ e.jsx(re, { children: /* @__PURE__ */ e.jsxs(j, { children: [
|
|
2265
2294
|
/* @__PURE__ */ e.jsx(N, { children: "Operator" }),
|
|
@@ -2303,7 +2332,7 @@ function ar() {
|
|
|
2303
2332
|
] })
|
|
2304
2333
|
] }),
|
|
2305
2334
|
/* @__PURE__ */ e.jsxs(b, { className: "mt-4", children: [
|
|
2306
|
-
/* @__PURE__ */ e.jsx(
|
|
2335
|
+
/* @__PURE__ */ e.jsx(G, { children: /* @__PURE__ */ e.jsx(W, { children: "Examples" }) }),
|
|
2307
2336
|
/* @__PURE__ */ e.jsx(O, { children: /* @__PURE__ */ e.jsxs(L, { children: [
|
|
2308
2337
|
/* @__PURE__ */ e.jsxs(j, { children: [
|
|
2309
2338
|
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "metric.fidelity > 0.95" }),
|
|
@@ -2329,29 +2358,29 @@ function ar() {
|
|
|
2329
2358
|
] })
|
|
2330
2359
|
] });
|
|
2331
2360
|
}
|
|
2332
|
-
function
|
|
2333
|
-
const { runId: s, index: r } =
|
|
2361
|
+
function cr() {
|
|
2362
|
+
const { runId: s, index: r } = ns(), a = parseInt(r, 10), { api: n } = z(), { data: o } = Bs(s), { data: d, loading: u, error: i } = Ot(s, a), [x, h] = P(null);
|
|
2334
2363
|
ne(() => {
|
|
2335
|
-
if (
|
|
2364
|
+
if (x) {
|
|
2336
2365
|
const k = setTimeout(() => h(null), 3e3);
|
|
2337
2366
|
return () => clearTimeout(k);
|
|
2338
2367
|
}
|
|
2339
|
-
}, [
|
|
2368
|
+
}, [x]);
|
|
2340
2369
|
const m = async () => {
|
|
2341
2370
|
try {
|
|
2342
2371
|
const k = n.getArtifactDownloadUrl(s, a), te = await fetch(k);
|
|
2343
2372
|
if (!te.ok) throw new Error("Download failed");
|
|
2344
2373
|
const ae = await te.blob(), J = document.createElement("a");
|
|
2345
|
-
J.href = URL.createObjectURL(ae), J.download = p?.kind || `artifact-${a}`, J.click(), URL.revokeObjectURL(J.href), h({ message: "Download
|
|
2374
|
+
J.href = URL.createObjectURL(ae), J.download = p?.kind || `artifact-${a}`, J.click(), URL.revokeObjectURL(J.href), h({ message: "Download complete", variant: "success" });
|
|
2346
2375
|
} catch {
|
|
2347
2376
|
h({ message: "Download failed", variant: "error" });
|
|
2348
2377
|
}
|
|
2349
2378
|
};
|
|
2350
2379
|
if (u)
|
|
2351
|
-
return /* @__PURE__ */ e.jsx(V, { children: /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e.jsx(
|
|
2380
|
+
return /* @__PURE__ */ e.jsx(V, { children: /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e.jsx(B, {}) }) });
|
|
2352
2381
|
if (i || !d)
|
|
2353
2382
|
return /* @__PURE__ */ e.jsx(V, { children: /* @__PURE__ */ e.jsx(b, { children: /* @__PURE__ */ e.jsx(he, { message: "Artifact not found", hint: i?.message }) }) });
|
|
2354
|
-
const { artifact: p, size: y, content: M, content_json: _, preview_available: H, error: T } = d,
|
|
2383
|
+
const { artifact: p, size: y, content: M, content_json: _, preview_available: H, error: T } = d, I = 10 * 1024 * 1024;
|
|
2355
2384
|
return /* @__PURE__ */ e.jsxs(V, { children: [
|
|
2356
2385
|
/* @__PURE__ */ e.jsx(
|
|
2357
2386
|
Ee,
|
|
@@ -2367,7 +2396,7 @@ function ir() {
|
|
|
2367
2396
|
actions: /* @__PURE__ */ e.jsx(D, { variant: "primary", onClick: m, children: "Download" })
|
|
2368
2397
|
}
|
|
2369
2398
|
),
|
|
2370
|
-
/* @__PURE__ */ e.jsx(b, { className: "mb-4", children: /* @__PURE__ */ e.jsx(
|
|
2399
|
+
/* @__PURE__ */ e.jsx(b, { className: "mb-4", children: /* @__PURE__ */ e.jsx(es, { items: [
|
|
2371
2400
|
{ label: "Kind", value: /* @__PURE__ */ e.jsx("span", { className: "font-mono", children: p.kind }) },
|
|
2372
2401
|
{ label: "Role", value: /* @__PURE__ */ e.jsx(K, { variant: "gray", children: p.role }) },
|
|
2373
2402
|
{ label: "Media Type", value: p.media_type },
|
|
@@ -2375,7 +2404,7 @@ function ir() {
|
|
|
2375
2404
|
{ label: "Size", value: Oe(y) }
|
|
2376
2405
|
] }) }),
|
|
2377
2406
|
/* @__PURE__ */ e.jsxs(b, { children: [
|
|
2378
|
-
/* @__PURE__ */ e.jsx(
|
|
2407
|
+
/* @__PURE__ */ e.jsx(G, { children: /* @__PURE__ */ e.jsx(W, { children: "Content" }) }),
|
|
2379
2408
|
T ? /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
2380
2409
|
/* @__PURE__ */ e.jsxs("p", { className: "text-sm text-danger", children: [
|
|
2381
2410
|
"Error loading artifact: ",
|
|
@@ -2392,79 +2421,79 @@ function ir() {
|
|
|
2392
2421
|
" (",
|
|
2393
2422
|
Oe(y),
|
|
2394
2423
|
" exceeds ",
|
|
2395
|
-
Oe(
|
|
2424
|
+
Oe(I),
|
|
2396
2425
|
" limit)"
|
|
2397
2426
|
] }),
|
|
2398
2427
|
/* @__PURE__ */ e.jsx("p", { className: "text-sm text-muted mt-2", children: "Download the artifact to view its contents." }),
|
|
2399
2428
|
/* @__PURE__ */ e.jsx("p", { className: "mt-4", children: /* @__PURE__ */ e.jsx(D, { variant: "primary", onClick: m, children: "Download" }) })
|
|
2400
2429
|
] })
|
|
2401
2430
|
] }),
|
|
2402
|
-
|
|
2431
|
+
x && /* @__PURE__ */ e.jsx(
|
|
2403
2432
|
Ce,
|
|
2404
2433
|
{
|
|
2405
|
-
message:
|
|
2406
|
-
variant:
|
|
2407
|
-
visible: !!
|
|
2434
|
+
message: x.message,
|
|
2435
|
+
variant: x.variant,
|
|
2436
|
+
visible: !!x,
|
|
2408
2437
|
onClose: () => h(null)
|
|
2409
2438
|
}
|
|
2410
2439
|
)
|
|
2411
2440
|
] });
|
|
2412
2441
|
}
|
|
2413
|
-
const
|
|
2442
|
+
const lr = [
|
|
2414
2443
|
{ path: "/", element: /* @__PURE__ */ e.jsx(vt, { to: "/runs", replace: !0 }) },
|
|
2415
|
-
{ path: "/runs", element: /* @__PURE__ */ e.jsx(
|
|
2416
|
-
{ path: "/runs/:runId", element: /* @__PURE__ */ e.jsx(
|
|
2417
|
-
{ path: "/runs/:runId/artifacts/:index", element: /* @__PURE__ */ e.jsx(
|
|
2418
|
-
{ path: "/projects", element: /* @__PURE__ */ e.jsx(
|
|
2419
|
-
{ path: "/groups", element: /* @__PURE__ */ e.jsx(
|
|
2420
|
-
{ path: "/groups/:groupId", element: /* @__PURE__ */ e.jsx(
|
|
2421
|
-
{ path: "/diff", element: /* @__PURE__ */ e.jsx(
|
|
2422
|
-
{ path: "/search", element: /* @__PURE__ */ e.jsx(
|
|
2444
|
+
{ path: "/runs", element: /* @__PURE__ */ e.jsx(qt, {}) },
|
|
2445
|
+
{ path: "/runs/:runId", element: /* @__PURE__ */ e.jsx(Kt, {}) },
|
|
2446
|
+
{ path: "/runs/:runId/artifacts/:index", element: /* @__PURE__ */ e.jsx(cr, {}) },
|
|
2447
|
+
{ path: "/projects", element: /* @__PURE__ */ e.jsx(Ht, {}) },
|
|
2448
|
+
{ path: "/groups", element: /* @__PURE__ */ e.jsx(Jt, {}) },
|
|
2449
|
+
{ path: "/groups/:groupId", element: /* @__PURE__ */ e.jsx(Xt, {}) },
|
|
2450
|
+
{ path: "/diff", element: /* @__PURE__ */ e.jsx(ar, {}) },
|
|
2451
|
+
{ path: "/search", element: /* @__PURE__ */ e.jsx(ir, {}) }
|
|
2423
2452
|
];
|
|
2424
|
-
function
|
|
2425
|
-
return bt([...
|
|
2453
|
+
function Gs(s = []) {
|
|
2454
|
+
return bt([...lr, ...s]);
|
|
2426
2455
|
}
|
|
2427
|
-
const
|
|
2428
|
-
function
|
|
2429
|
-
const a = s?.length ?
|
|
2430
|
-
return /* @__PURE__ */ e.jsx(
|
|
2456
|
+
const or = Gs();
|
|
2457
|
+
function pr({ additionalRoutes: s, ...r }) {
|
|
2458
|
+
const a = s?.length ? Gs(s) : or;
|
|
2459
|
+
return /* @__PURE__ */ e.jsx(Dt, { ...r, children: /* @__PURE__ */ e.jsx(Nt, { router: a }) });
|
|
2431
2460
|
}
|
|
2432
2461
|
export {
|
|
2433
|
-
|
|
2462
|
+
jr as Alert,
|
|
2434
2463
|
Rt as ApiClient,
|
|
2435
2464
|
we as ApiError,
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2465
|
+
pr as App,
|
|
2466
|
+
Dt as AppProvider,
|
|
2467
|
+
cr as ArtifactPage,
|
|
2439
2468
|
K as Badge,
|
|
2440
2469
|
D as Button,
|
|
2441
2470
|
b as Card,
|
|
2442
|
-
|
|
2443
|
-
|
|
2444
|
-
|
|
2471
|
+
G as CardHeader,
|
|
2472
|
+
W as CardTitle,
|
|
2473
|
+
ar as DiffPage,
|
|
2445
2474
|
he as EmptyState,
|
|
2446
|
-
|
|
2475
|
+
Gt as ExportRunButton,
|
|
2447
2476
|
se as FormGroup,
|
|
2448
2477
|
Ms as FormRow,
|
|
2449
|
-
|
|
2450
|
-
|
|
2451
|
-
|
|
2452
|
-
|
|
2453
|
-
|
|
2478
|
+
Xt as GroupDetailPage,
|
|
2479
|
+
Jt as GroupsPage,
|
|
2480
|
+
Ut as GroupsTable,
|
|
2481
|
+
is as Input,
|
|
2482
|
+
es as KVList,
|
|
2454
2483
|
ce as Label,
|
|
2455
2484
|
V as Layout,
|
|
2456
|
-
|
|
2457
|
-
|
|
2458
|
-
|
|
2485
|
+
fr as LayoutConfigProvider,
|
|
2486
|
+
as as Modal,
|
|
2487
|
+
Xe as POLL_INTERVAL,
|
|
2459
2488
|
Ee as PageHeader,
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
|
|
2463
|
-
|
|
2464
|
-
|
|
2465
|
-
|
|
2489
|
+
Ht as ProjectsPage,
|
|
2490
|
+
Mt as ProjectsTable,
|
|
2491
|
+
Kt as RunDetailPage,
|
|
2492
|
+
qt as RunsPage,
|
|
2493
|
+
cs as RunsTable,
|
|
2494
|
+
ir as SearchPage,
|
|
2466
2495
|
de as Select,
|
|
2467
|
-
|
|
2496
|
+
B as Spinner,
|
|
2468
2497
|
Us as StatusBadge,
|
|
2469
2498
|
O as Table,
|
|
2470
2499
|
L as TableBody,
|
|
@@ -2472,35 +2501,35 @@ export {
|
|
|
2472
2501
|
re as TableHead,
|
|
2473
2502
|
N as TableHeader,
|
|
2474
2503
|
j as TableRow,
|
|
2475
|
-
|
|
2504
|
+
xr as ThemeProvider,
|
|
2476
2505
|
Ce as Toast,
|
|
2477
2506
|
Et as api,
|
|
2478
|
-
|
|
2507
|
+
hr as buildUrl,
|
|
2479
2508
|
$ as cn,
|
|
2480
|
-
|
|
2481
|
-
|
|
2482
|
-
|
|
2509
|
+
lr as coreRoutes,
|
|
2510
|
+
Gs as createRouter,
|
|
2511
|
+
As as elapsedSeconds,
|
|
2483
2512
|
Oe as formatBytes,
|
|
2484
|
-
|
|
2513
|
+
Fs as formatDuration,
|
|
2485
2514
|
Ct as formatNumber,
|
|
2486
|
-
|
|
2515
|
+
Be as isTerminalStatus,
|
|
2487
2516
|
Tt as jsonPretty,
|
|
2488
|
-
|
|
2489
|
-
|
|
2517
|
+
or as router,
|
|
2518
|
+
Ze as shortDigest,
|
|
2490
2519
|
Q as shortId,
|
|
2491
2520
|
Le as timeAgo,
|
|
2492
2521
|
kt as truncate,
|
|
2493
2522
|
z as useApp,
|
|
2494
|
-
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
|
|
2523
|
+
Ot as useArtifact,
|
|
2524
|
+
$t as useDiff,
|
|
2525
|
+
Ft as useGroup,
|
|
2526
|
+
At as useGroups,
|
|
2527
|
+
It as useLayoutConfig,
|
|
2499
2528
|
Re as useMutation,
|
|
2500
2529
|
Ls as usePolling,
|
|
2501
|
-
|
|
2502
|
-
|
|
2503
|
-
|
|
2504
|
-
|
|
2505
|
-
|
|
2530
|
+
qe as useProjects,
|
|
2531
|
+
Bs as useRun,
|
|
2532
|
+
Is as useRuns,
|
|
2533
|
+
Pt as useTheme,
|
|
2534
|
+
mr as useThemeOptional
|
|
2506
2535
|
};
|