@workflow/web 5.0.0-beta.3 → 5.0.0-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/build/client/assets/{highlighted-body-B3W2YXNL-Be0uLJd8.js → highlighted-body-B3W2YXNL-B7T9pqeb.js} +1 -1
- package/build/client/assets/{home-Ce97yLJ7.js → home-BIQJMe_Q.js} +2 -2
- package/build/client/assets/{manifest-923d96a0.js → manifest-77894282.js} +1 -1
- package/build/client/assets/{mermaid-3ZIDBTTL-BSJR0c5A.js → mermaid-3ZIDBTTL-w46Kr90n.js} +148 -164
- package/build/client/assets/root-C0Tu5TVN.css +1 -0
- package/build/client/assets/{root-DdOfCnSG.js → root-sXuXrryl.js} +1 -1
- package/build/client/assets/{run-detail-JQ32aJru.js → run-detail-7Pj2mQLs.js} +411 -67
- package/build/client/assets/server-build-DqaxIrF0.css +1 -0
- package/build/client/assets/{workflow-graph-viewer-DYhMo9jl.js → workflow-graph-viewer-De9JQkZc.js} +1 -1
- package/build/server/assets/{app-Bh_7yjpl.js → app-CtOg8_v5.js} +1 -1
- package/build/server/assets/{highlighted-body-B3W2YXNL-Cdb-ypB4.js → highlighted-body-B3W2YXNL-uaucauLI.js} +2 -2
- package/build/server/assets/{index-CNvEtg5c.js → index-D02biwxV.js} +3 -3
- package/build/server/assets/{mermaid-3ZIDBTTL-CE8Volk5.js → mermaid-3ZIDBTTL-DrZ5V6uv.js} +2 -2
- package/build/server/assets/{server-build-DztRAoMd.js → server-build-DT0Hg0Yf.js} +666 -340
- package/build/server/assets/{token-DMEdoEUo.js → token-D7_Lld85.js} +2 -2
- package/build/server/assets/{token-util-DsMisyo3.js → token-util-CfY4anoc.js} +2 -2
- package/build/server/index.js +1 -1
- package/package.json +5 -5
- package/build/client/assets/root-DXDFWibD.css +0 -1
- package/build/client/assets/server-build-pZ5ucXET.css +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { R, K as Ks, Q as Qe } from "./mermaid-3ZIDBTTL-
|
|
1
|
+
import { R, K as Ks, Q as Qe } from "./mermaid-3ZIDBTTL-w46Kr90n.js";
|
|
2
2
|
import { r as reactExports, j as jsxRuntimeExports } from "./index-DQa-BExo.js";
|
|
3
3
|
var L = ({ code: s, language: t, raw: e, className: n, ...d$1 }) => {
|
|
4
4
|
let { shikiTheme: l } = reactExports.useContext(R), o = Ks(), [m, i] = reactExports.useState(e);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as reactExports, C as ReactDOM, j as jsxRuntimeExports, z as Link, f as reactDomExports, B as useSearchParams, A as useNavigate, D as useLocation, w as withComponentProps } from "./index-DQa-BExo.js";
|
|
2
|
-
import { R as ResolveHookModal, S as Send, a as Skeleton, u as unwrapOrThrow, W as WorkflowWebAPIError, b as RelativeTime, A as Alert, C as CircleAlert, c as AlertTitle, d as AlertDescription, g as getErrorMessage, e as CopyableText, D as DropdownMenu, f as DropdownMenuTrigger, E as Ellipsis, h as DropdownMenuContent, i as DropdownMenuItem, j as ChevronRight, r as resumeHook, k as createCollection, l as hideOthers, m as ReactRemoveScroll, n as useDirection, o as ChevronDown, p as Check, X, q as useControllableState$1, P as Primitive$1, s as composeEventHandlers$1, t as Presence, v as useSize, w as createContextScope$1, x as cancelRun, y as reenqueueRun, z as parseWorkflowName, B as StatusBadge, Z as Zap, F as CircleX, G as RunActionsDropdownItems, H as unwrapServerActionResult, I as WorkflowGraphViewer, T as Tabs, J as TabsList, K as TabsTrigger, L as TabsContent, M as ErrorBoundary } from "./workflow-graph-viewer-
|
|
3
|
-
import { g as useLayoutEffect2, P as Primitive, c as createLucideIcon, h as useToast, d as cn, D as DEFAULT_PAGE_SIZE, i as fetchRuns, j as fetchHooks, k as getPaginationDisplay, T as Tooltip, a as TooltipTrigger, B as Button, b as TooltipContent, l as fetchEvents, m as useCallbackRef, n as useComposedRefs, A as Anchor, o as composeEventHandlers, p as useId, q as createPopperScope, s as DismissableLayer, v as createContextScope, w as createSlot, C as Content$1, x as useControllableState, y as Root2$1, V as VISUALLY_HIDDEN_STYLES, z as Arrow, E as useComposedRefs$1, u as useServerConfig, t as toast, L as LoaderCircle, F as fetchRun, G as cva, H as Presence$1, I as createContext2, J as fetchWorkflowsManifest } from "./mermaid-3ZIDBTTL-
|
|
2
|
+
import { R as ResolveHookModal, S as Send, a as Skeleton, u as unwrapOrThrow, W as WorkflowWebAPIError, b as RelativeTime, A as Alert, C as CircleAlert, c as AlertTitle, d as AlertDescription, g as getErrorMessage, e as CopyableText, D as DropdownMenu, f as DropdownMenuTrigger, E as Ellipsis, h as DropdownMenuContent, i as DropdownMenuItem, j as ChevronRight, r as resumeHook, k as createCollection, l as hideOthers, m as ReactRemoveScroll, n as useDirection, o as ChevronDown, p as Check, X, q as useControllableState$1, P as Primitive$1, s as composeEventHandlers$1, t as Presence, v as useSize, w as createContextScope$1, x as cancelRun, y as reenqueueRun, z as parseWorkflowName, B as StatusBadge, Z as Zap, F as CircleX, G as RunActionsDropdownItems, H as unwrapServerActionResult, I as WorkflowGraphViewer, T as Tabs, J as TabsList, K as TabsTrigger, L as TabsContent, M as ErrorBoundary } from "./workflow-graph-viewer-De9JQkZc.js";
|
|
3
|
+
import { g as useLayoutEffect2, P as Primitive, c as createLucideIcon, h as useToast, d as cn, D as DEFAULT_PAGE_SIZE, i as fetchRuns, j as fetchHooks, k as getPaginationDisplay, T as Tooltip, a as TooltipTrigger, B as Button, b as TooltipContent, l as fetchEvents, m as useCallbackRef, n as useComposedRefs, A as Anchor, o as composeEventHandlers, p as useId, q as createPopperScope, s as DismissableLayer, v as createContextScope, w as createSlot, C as Content$1, x as useControllableState, y as Root2$1, V as VISUALLY_HIDDEN_STYLES, z as Arrow, E as useComposedRefs$1, u as useServerConfig, t as toast, L as LoaderCircle, F as fetchRun, G as cva, H as Presence$1, I as createContext2, J as fetchWorkflowsManifest } from "./mermaid-3ZIDBTTL-w46Kr90n.js";
|
|
4
4
|
var PORTAL_NAME$2 = "Portal";
|
|
5
5
|
var Portal$2 = reactExports.forwardRef((props, forwardedRef) => {
|
|
6
6
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
window.__reactRouterManifest={"entry":{"module":"/assets/entry.client-BWsSsWQm.js","imports":["/assets/index-DQa-BExo.js"],"css":[]},"routes":{"root":{"id":"root","path":"","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":true,"module":"/assets/root-
|
|
1
|
+
window.__reactRouterManifest={"entry":{"module":"/assets/entry.client-BWsSsWQm.js","imports":["/assets/index-DQa-BExo.js"],"css":[]},"routes":{"root":{"id":"root","path":"","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":true,"module":"/assets/root-sXuXrryl.js","imports":["/assets/index-DQa-BExo.js","/assets/mermaid-3ZIDBTTL-w46Kr90n.js"],"css":["/assets/root-C0Tu5TVN.css","/assets/mermaid-3ZIDBTTL-DKxHcEOp.css"]},"routes/home":{"id":"routes/home","parentId":"root","index":true,"hasAction":false,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":false,"module":"/assets/home-BIQJMe_Q.js","imports":["/assets/index-DQa-BExo.js","/assets/workflow-graph-viewer-De9JQkZc.js","/assets/mermaid-3ZIDBTTL-w46Kr90n.js"],"css":["/assets/workflow-graph-viewer-DnlNuQQH.css","/assets/mermaid-3ZIDBTTL-DKxHcEOp.css"]},"routes/run-detail":{"id":"routes/run-detail","parentId":"root","path":"run/:runId","hasAction":false,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":false,"module":"/assets/run-detail-7Pj2mQLs.js","imports":["/assets/index-DQa-BExo.js","/assets/workflow-graph-viewer-De9JQkZc.js","/assets/mermaid-3ZIDBTTL-w46Kr90n.js","/assets/encryption-80GMP4r0.js"],"css":["/assets/workflow-graph-viewer-DnlNuQQH.css","/assets/mermaid-3ZIDBTTL-DKxHcEOp.css"]},"routes/api.rpc":{"id":"routes/api.rpc","parentId":"root","path":"api/rpc","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":false,"hasErrorBoundary":false,"module":"/assets/api.rpc-l0sNRNKZ.js","imports":[],"css":[]},"routes/api.stream.$streamId":{"id":"routes/api.stream.$streamId","parentId":"root","path":"api/stream/:streamId","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":false,"hasErrorBoundary":false,"module":"/assets/api.stream._streamId-l0sNRNKZ.js","imports":[],"css":[]}},"url":"/assets/manifest-77894282.js","version":"77894282"};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/highlighted-body-B3W2YXNL-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/highlighted-body-B3W2YXNL-B7T9pqeb.js","assets/index-DQa-BExo.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4
4
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
@@ -6673,6 +6673,28 @@ const createLucideIcon = (iconName, iconNode) => {
|
|
|
6673
6673
|
Component.displayName = toPascalCase(iconName);
|
|
6674
6674
|
return Component;
|
|
6675
6675
|
};
|
|
6676
|
+
/**
|
|
6677
|
+
* @license lucide-react v0.575.0 - ISC
|
|
6678
|
+
*
|
|
6679
|
+
* This source code is licensed under the ISC license.
|
|
6680
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6681
|
+
*/
|
|
6682
|
+
const __iconNode$3 = [
|
|
6683
|
+
["path", { d: "m12 19-7-7 7-7", key: "1l729n" }],
|
|
6684
|
+
["path", { d: "M19 12H5", key: "x3x0zl" }]
|
|
6685
|
+
];
|
|
6686
|
+
const ArrowLeft = createLucideIcon("arrow-left", __iconNode$3);
|
|
6687
|
+
/**
|
|
6688
|
+
* @license lucide-react v0.575.0 - ISC
|
|
6689
|
+
*
|
|
6690
|
+
* This source code is licensed under the ISC license.
|
|
6691
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6692
|
+
*/
|
|
6693
|
+
const __iconNode$2 = [
|
|
6694
|
+
["path", { d: "M5 12h14", key: "1ays0h" }],
|
|
6695
|
+
["path", { d: "m12 5 7 7-7 7", key: "xquz4c" }]
|
|
6696
|
+
];
|
|
6697
|
+
const ArrowRight = createLucideIcon("arrow-right", __iconNode$2);
|
|
6676
6698
|
/**
|
|
6677
6699
|
* @license lucide-react v0.575.0 - ISC
|
|
6678
6700
|
*
|
|
@@ -6695,10 +6717,6 @@ const Lock = createLucideIcon("lock", __iconNode);
|
|
|
6695
6717
|
function cn$4(...inputs) {
|
|
6696
6718
|
return twMerge(clsx(inputs));
|
|
6697
6719
|
}
|
|
6698
|
-
const secondsFormatter = new Intl.NumberFormat(void 0, {
|
|
6699
|
-
minimumFractionDigits: 2,
|
|
6700
|
-
maximumFractionDigits: 2
|
|
6701
|
-
});
|
|
6702
6720
|
const MS_IN_SECOND = 1e3;
|
|
6703
6721
|
const MS_IN_MINUTE = 60 * MS_IN_SECOND;
|
|
6704
6722
|
const MS_IN_HOUR = 60 * MS_IN_MINUTE;
|
|
@@ -6707,23 +6725,28 @@ function formatDuration(ms, compact = false) {
|
|
|
6707
6725
|
if (ms === 0) {
|
|
6708
6726
|
return "0s";
|
|
6709
6727
|
}
|
|
6710
|
-
if (ms <
|
|
6711
|
-
|
|
6728
|
+
if (ms < MS_IN_SECOND) {
|
|
6729
|
+
const roundedMs2 = Math.round(ms);
|
|
6730
|
+
return roundedMs2 < MS_IN_SECOND ? `${roundedMs2}ms` : "1s";
|
|
6731
|
+
}
|
|
6732
|
+
const roundedMs = Math.round(ms / MS_IN_SECOND) * MS_IN_SECOND;
|
|
6733
|
+
if (roundedMs < MS_IN_MINUTE) {
|
|
6734
|
+
return `${Math.floor(roundedMs / MS_IN_SECOND)}s`;
|
|
6712
6735
|
}
|
|
6713
6736
|
if (compact) {
|
|
6714
|
-
if (
|
|
6715
|
-
const m3 = Math.floor(
|
|
6716
|
-
const s2 = Math.floor(
|
|
6737
|
+
if (roundedMs < MS_IN_HOUR) {
|
|
6738
|
+
const m3 = Math.floor(roundedMs / MS_IN_MINUTE);
|
|
6739
|
+
const s2 = Math.floor(roundedMs % MS_IN_MINUTE / MS_IN_SECOND);
|
|
6717
6740
|
return s2 > 0 ? `${m3}m ${s2}s` : `${m3}m`;
|
|
6718
6741
|
}
|
|
6719
|
-
const h2 = Math.floor(
|
|
6720
|
-
const m2 = Math.floor(
|
|
6742
|
+
const h2 = Math.floor(roundedMs / MS_IN_HOUR);
|
|
6743
|
+
const m2 = Math.floor(roundedMs % MS_IN_HOUR / MS_IN_MINUTE);
|
|
6721
6744
|
return m2 > 0 ? `${h2}h ${m2}m` : `${h2}h`;
|
|
6722
6745
|
}
|
|
6723
|
-
const days = Math.floor(
|
|
6724
|
-
const hours = Math.floor(
|
|
6725
|
-
const minutes = Math.floor(
|
|
6726
|
-
const seconds =
|
|
6746
|
+
const days = Math.floor(roundedMs / MS_IN_DAY);
|
|
6747
|
+
const hours = Math.floor(roundedMs % MS_IN_DAY / MS_IN_HOUR);
|
|
6748
|
+
const minutes = Math.floor(roundedMs % MS_IN_HOUR / MS_IN_MINUTE);
|
|
6749
|
+
const seconds = Math.floor(roundedMs % MS_IN_MINUTE / MS_IN_SECOND);
|
|
6727
6750
|
const parts = [];
|
|
6728
6751
|
if (days > 0) {
|
|
6729
6752
|
parts.push(`${days}d`);
|
|
@@ -6734,7 +6757,7 @@ function formatDuration(ms, compact = false) {
|
|
|
6734
6757
|
if (minutes > 0) {
|
|
6735
6758
|
parts.push(`${minutes}m`);
|
|
6736
6759
|
}
|
|
6737
|
-
parts.push(`${
|
|
6760
|
+
parts.push(`${seconds}s`);
|
|
6738
6761
|
return parts.join(" ");
|
|
6739
6762
|
}
|
|
6740
6763
|
function isDoStreamStep(stepName) {
|
|
@@ -42941,7 +42964,7 @@ var tn = f("block", "before:content-[counter(line)]", "before:inline-block", "be
|
|
|
42941
42964
|
var et = ({ className: e, language: t, style: o, isIncomplete: n, ...s2 }) => jsxRuntimeExports.jsx("div", { className: f("my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2", e), "data-incomplete": n || void 0, "data-language": t, "data-streamdown": "code-block", style: { contentVisibility: "auto", containIntrinsicSize: "auto 200px", ...o }, ...s2 });
|
|
42942
42965
|
var Se = reactExports.createContext({ code: "" }), de = () => reactExports.useContext(Se);
|
|
42943
42966
|
var ot = ({ language: e }) => jsxRuntimeExports.jsx("div", { className: "flex h-8 items-center text-muted-foreground text-xs", "data-language": e, "data-streamdown": "code-block-header", children: jsxRuntimeExports.jsx("span", { className: "ml-1 font-mono lowercase", children: e }) });
|
|
42944
|
-
var cn$1 = /\n+$/, dn = reactExports.lazy(() => __vitePreload(() => import("./highlighted-body-B3W2YXNL-
|
|
42967
|
+
var cn$1 = /\n+$/, dn = reactExports.lazy(() => __vitePreload(() => import("./highlighted-body-B3W2YXNL-B7T9pqeb.js"), true ? __vite__mapDeps([0,1]) : void 0).then((e) => ({ default: e.HighlightedCodeBlockBody }))), rt = ({ code: e, language: t, className: o, children: n, isIncomplete: s2 = false, ...r2 }) => {
|
|
42945
42968
|
let i = reactExports.useMemo(() => e.replace(cn$1, ""), [e]), c = reactExports.useMemo(() => ({ bg: "transparent", fg: "inherit", tokens: i.split(`
|
|
42946
42969
|
`).map((a2) => [{ content: a2, color: "inherit", bgColor: "transparent", htmlStyle: {}, offset: 0 }]) }), [i]);
|
|
42947
42970
|
return jsxRuntimeExports.jsx(Se.Provider, { value: { code: e }, children: jsxRuntimeExports.jsxs(et, { isIncomplete: s2, language: t, children: [jsxRuntimeExports.jsx(ot, { language: t }), n ? jsxRuntimeExports.jsx("div", { className: "pointer-events-none sticky top-2 z-10 -mt-10 flex h-8 items-center justify-end", children: jsxRuntimeExports.jsx("div", { className: "pointer-events-auto flex shrink-0 items-center gap-2 rounded-md border border-sidebar bg-sidebar/80 px-1.5 py-1 supports-[backdrop-filter]:bg-sidebar/70 supports-[backdrop-filter]:backdrop-blur", "data-streamdown": "code-block-actions", children: n }) }) : null, jsxRuntimeExports.jsx(reactExports.Suspense, { fallback: jsxRuntimeExports.jsx(Qe, { className: o, language: t, result: c, ...r2 }), children: jsxRuntimeExports.jsx(dn, { className: o, code: i, language: t, raw: c, ...r2 }) })] }) });
|
|
@@ -44994,19 +45017,8 @@ function computeRootBounds(spans) {
|
|
|
44994
45017
|
const duration2 = Math.max(maxEnd - minStart, 1);
|
|
44995
45018
|
return { startTime: minStart, endTime: maxEnd, duration: duration2 };
|
|
44996
45019
|
}
|
|
44997
|
-
function
|
|
44998
|
-
|
|
44999
|
-
return {
|
|
45000
|
-
isCompressed: false,
|
|
45001
|
-
toVisual(time2) {
|
|
45002
|
-
if (range <= 0)
|
|
45003
|
-
return 0;
|
|
45004
|
-
return Math.min(Math.max((time2 - viewStart) / range, 0), 1);
|
|
45005
|
-
},
|
|
45006
|
-
fromVisual(fraction) {
|
|
45007
|
-
return viewStart + fraction * range;
|
|
45008
|
-
}
|
|
45009
|
-
};
|
|
45020
|
+
function getSpanDurationMs(span) {
|
|
45021
|
+
return Math.max(0, getHighResInMs(span.endTime) - getHighResInMs(span.startTime));
|
|
45010
45022
|
}
|
|
45011
45023
|
const NICE_INTERVALS = [
|
|
45012
45024
|
1,
|
|
@@ -45061,37 +45073,18 @@ function computeTimeMarkers(viewDuration, offset2) {
|
|
|
45061
45073
|
continue;
|
|
45062
45074
|
markers2.push({
|
|
45063
45075
|
position: Math.min(Math.max(position2, 0), 1),
|
|
45064
|
-
label: formatDuration(Math.abs(t), true)
|
|
45076
|
+
label: formatDuration(Math.abs(t), true),
|
|
45077
|
+
value: t
|
|
45065
45078
|
});
|
|
45066
45079
|
if (markers2.length >= MAX_MARKERS)
|
|
45067
45080
|
break;
|
|
45068
45081
|
}
|
|
45069
45082
|
return markers2;
|
|
45070
45083
|
}
|
|
45071
|
-
function
|
|
45072
|
-
const
|
|
45073
|
-
if (
|
|
45084
|
+
function computeSpanGaps(spans, viewStart, viewEnd) {
|
|
45085
|
+
const range = viewEnd - viewStart;
|
|
45086
|
+
if (range <= 0)
|
|
45074
45087
|
return [];
|
|
45075
|
-
const maxTicks = 6;
|
|
45076
|
-
const interval = pickInterval(viewDuration, maxTicks);
|
|
45077
|
-
const offset2 = viewStart - rootStart;
|
|
45078
|
-
const firstTick = Math.ceil(offset2 / interval) * interval;
|
|
45079
|
-
const markers2 = [];
|
|
45080
|
-
for (let t = firstTick; t <= offset2 + viewDuration; t += interval) {
|
|
45081
|
-
const absTime = rootStart + t;
|
|
45082
|
-
const position2 = compression.toVisual(absTime);
|
|
45083
|
-
if (position2 < -0.01 || position2 > 1.01)
|
|
45084
|
-
continue;
|
|
45085
|
-
markers2.push({
|
|
45086
|
-
position: Math.min(Math.max(position2, 0), 1),
|
|
45087
|
-
label: formatDuration(Math.abs(t), true)
|
|
45088
|
-
});
|
|
45089
|
-
if (markers2.length >= MAX_MARKERS)
|
|
45090
|
-
break;
|
|
45091
|
-
}
|
|
45092
|
-
return markers2;
|
|
45093
|
-
}
|
|
45094
|
-
function computeSpanGaps(spans, compression) {
|
|
45095
45088
|
const gaps = [];
|
|
45096
45089
|
for (let i = 0; i < spans.length - 1; i++) {
|
|
45097
45090
|
const endTime = getHighResInMs(spans[i].endTime);
|
|
@@ -45099,8 +45092,8 @@ function computeSpanGaps(spans, compression) {
|
|
|
45099
45092
|
const gapMs = startTime - endTime;
|
|
45100
45093
|
if (gapMs <= 0)
|
|
45101
45094
|
continue;
|
|
45102
|
-
const leftFrac =
|
|
45103
|
-
const rightFrac =
|
|
45095
|
+
const leftFrac = Math.min(Math.max((endTime - viewStart) / range, 0), 1);
|
|
45096
|
+
const rightFrac = Math.min(Math.max((startTime - viewStart) / range, 0), 1);
|
|
45104
45097
|
if (rightFrac - leftFrac < 1e-3)
|
|
45105
45098
|
continue;
|
|
45106
45099
|
gaps.push({ gapMs, leftFrac, rightFrac, rowIndex: i });
|
|
@@ -45231,29 +45224,10 @@ function computeHookSegmentsFromSpan(startMs, duration2, events) {
|
|
|
45231
45224
|
}
|
|
45232
45225
|
return segments;
|
|
45233
45226
|
}
|
|
45234
|
-
function computeSleepSegmentsFromSpan(
|
|
45235
|
-
const segments = [];
|
|
45227
|
+
function computeSleepSegmentsFromSpan(_startMs, duration2, _events) {
|
|
45236
45228
|
if (duration2 <= 0)
|
|
45237
|
-
return
|
|
45238
|
-
|
|
45239
|
-
if (completedTime === void 0) {
|
|
45240
|
-
segments.push({ startFraction: 0, endFraction: 1, status: "sleeping" });
|
|
45241
|
-
return segments;
|
|
45242
|
-
}
|
|
45243
|
-
const completedFrac = timeToFraction(completedTime, startMs, duration2);
|
|
45244
|
-
if (completedFrac > 1e-3) {
|
|
45245
|
-
segments.push({
|
|
45246
|
-
startFraction: 0,
|
|
45247
|
-
endFraction: completedFrac,
|
|
45248
|
-
status: "sleeping"
|
|
45249
|
-
});
|
|
45250
|
-
}
|
|
45251
|
-
segments.push({
|
|
45252
|
-
startFraction: completedFrac,
|
|
45253
|
-
endFraction: 1,
|
|
45254
|
-
status: "succeeded"
|
|
45255
|
-
});
|
|
45256
|
-
return segments;
|
|
45229
|
+
return [];
|
|
45230
|
+
return [{ startFraction: 0, endFraction: 1, status: "sleeping" }];
|
|
45257
45231
|
}
|
|
45258
45232
|
function computeRunSegmentsFromSpan(startMs, duration2, activeStartMs, events, attributes) {
|
|
45259
45233
|
const segments = [];
|
|
@@ -45309,8 +45283,7 @@ function computeV1RunSegments(startMs, duration2, activeStartMs, runStatus) {
|
|
|
45309
45283
|
}
|
|
45310
45284
|
function computeSpanSegments(span) {
|
|
45311
45285
|
const startMs = getHighResInMs(span.startTime);
|
|
45312
|
-
const
|
|
45313
|
-
const duration2 = endMs - startMs;
|
|
45286
|
+
const duration2 = getSpanDurationMs(span);
|
|
45314
45287
|
const activeStartMs = span.activeStartTime ? getHighResInMs(span.activeStartTime) : void 0;
|
|
45315
45288
|
switch (span.resource) {
|
|
45316
45289
|
case "step":
|
|
@@ -45325,25 +45298,27 @@ function computeSpanSegments(span) {
|
|
|
45325
45298
|
return [];
|
|
45326
45299
|
}
|
|
45327
45300
|
}
|
|
45328
|
-
const QUEUED_BACKGROUND = "radial-gradient(circle, var(--ds-gray-400) 2px, transparent 2px) center / 20px 20px space no-repeat, var(--ds-gray-500)";
|
|
45329
|
-
const HATCHED_BACKGROUND = "repeating-linear-gradient(-45deg, var(--ds-gray-400) 0px, var(--ds-gray-400) 3px, var(--ds-gray-500) 3px, var(--ds-gray-500) 6px)";
|
|
45330
45301
|
const SEGMENT_CONFIG = {
|
|
45331
|
-
queued: {
|
|
45302
|
+
queued: { className: "bg-gray-500" },
|
|
45332
45303
|
retrying: {
|
|
45333
45304
|
className: "box-border bg-gray-500"
|
|
45334
45305
|
},
|
|
45335
|
-
waiting: {
|
|
45306
|
+
waiting: { className: "bg-gray-500" },
|
|
45336
45307
|
running: { className: "bg-blue-700" },
|
|
45337
45308
|
failed: { className: "bg-red-700" },
|
|
45338
45309
|
succeeded: { className: "bg-green-700" },
|
|
45339
|
-
sleeping: { className: "bg-
|
|
45310
|
+
sleeping: { className: "bg-gray-500" },
|
|
45340
45311
|
received: { className: "bg-blue-700" }
|
|
45341
45312
|
};
|
|
45342
|
-
const
|
|
45313
|
+
const BAR_HEIGHT_PX = 24;
|
|
45314
|
+
const TINY_BAR_BOX_SIZE_PX = 24;
|
|
45315
|
+
const TINY_BAR_WIDTH_PX = 4;
|
|
45343
45316
|
const SEGMENT_GAP_PX = 1;
|
|
45344
|
-
const ROW_HEIGHT =
|
|
45317
|
+
const ROW_HEIGHT = 40;
|
|
45345
45318
|
const CONTAINER_PAD_Y = 8;
|
|
45346
45319
|
const END_CAP_HEIGHT = 8;
|
|
45320
|
+
const TIMELINE_PADDING_PX = 16;
|
|
45321
|
+
const ORIGIN_MARKER_EPSILON = 1e-6;
|
|
45347
45322
|
const DeltaIndicator = reactExports.memo(function DeltaIndicator2({ leftFrac, rightFrac, label, rowIndex }) {
|
|
45348
45323
|
const centerY = CONTAINER_PAD_Y + (rowIndex + 1) * ROW_HEIGHT;
|
|
45349
45324
|
return jsxRuntimeExports.jsxs("div", { className: "absolute pointer-events-none", style: {
|
|
@@ -45353,38 +45328,34 @@ const DeltaIndicator = reactExports.memo(function DeltaIndicator2({ leftFrac, ri
|
|
|
45353
45328
|
height: END_CAP_HEIGHT
|
|
45354
45329
|
}, children: [jsxRuntimeExports.jsx("div", { className: "absolute left-0 top-0 w-px h-full bg-amber-800" }), jsxRuntimeExports.jsx("div", { className: "absolute left-0 right-0 top-1/2 h-px bg-amber-800" }), jsxRuntimeExports.jsx("div", { className: "absolute right-0 top-0 w-px h-full bg-amber-800" }), jsxRuntimeExports.jsx("span", { className: "absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 text-label-12 leading-none whitespace-nowrap rounded-xs px-1 py-0.5 text-gray-100 bg-amber-800", children: label })] });
|
|
45355
45330
|
});
|
|
45356
|
-
const TimelineBar = reactExports.memo(function TimelineBar2({ span,
|
|
45331
|
+
const TimelineBar = reactExports.memo(function TimelineBar2({ span, viewStart, viewDuration, containerWidth, isSelected, onClick }) {
|
|
45357
45332
|
var _a3;
|
|
45358
45333
|
const startTime = getHighResInMs(span.startTime);
|
|
45359
45334
|
const endTime = getHighResInMs(span.endTime);
|
|
45360
|
-
const totalDurationMs =
|
|
45361
|
-
const
|
|
45362
|
-
const
|
|
45363
|
-
const widthFrac =
|
|
45364
|
-
const leftPct =
|
|
45335
|
+
const totalDurationMs = getSpanDurationMs(span);
|
|
45336
|
+
const leftFracRaw = viewDuration > 0 ? (startTime - viewStart) / viewDuration : 0;
|
|
45337
|
+
const rightFracRaw = viewDuration > 0 ? (endTime - viewStart) / viewDuration : 0;
|
|
45338
|
+
const widthFrac = rightFracRaw - leftFracRaw;
|
|
45339
|
+
const leftPct = leftFracRaw * 100;
|
|
45365
45340
|
const widthPct = widthFrac * 100;
|
|
45366
45341
|
const pixelWidth = widthFrac * containerWidth;
|
|
45367
|
-
const
|
|
45342
|
+
const visibleLeftFrac = Math.max(0, Math.min(1, leftFracRaw));
|
|
45343
|
+
const visibleRightFrac = Math.max(0, Math.min(1, rightFracRaw));
|
|
45344
|
+
const visiblePixelWidth = Math.max(0, visibleRightFrac - visibleLeftFrac) * containerWidth;
|
|
45345
|
+
const isTinyBar = containerWidth > 0 && visiblePixelWidth < TINY_BAR_BOX_SIZE_PX;
|
|
45368
45346
|
const [isRowHovered, setIsRowHovered] = reactExports.useState(false);
|
|
45369
45347
|
const segments = reactExports.useMemo(() => computeSpanSegments(span), [span]);
|
|
45370
|
-
const finalSegment = segments[segments.length - 1];
|
|
45371
45348
|
const workflowStatus = (_a3 = span.attributes.data) == null ? void 0 : _a3.status;
|
|
45372
45349
|
const isErrored = span.status.code === 2 || workflowStatus === "failed";
|
|
45373
45350
|
const colors = getResourceColor(span.resource);
|
|
45374
45351
|
const fallbackColor = isErrored ? colors.errorBar ?? "var(--ds-red-700)" : colors.bar;
|
|
45375
|
-
const compressedSegmentStatus = isErrored ? "failed" : span.resource === "hook" ? "received" : finalSegment == null ? void 0 : finalSegment.status;
|
|
45376
|
-
const compressedSegmentStyle = compressedSegmentStatus === "queued" ? { background: "var(--ds-gray-500)" } : compressedSegmentStatus ? SEGMENT_CONFIG[compressedSegmentStatus].style : void 0;
|
|
45377
|
-
const compressedSegmentClassName = compressedSegmentStatus ? SEGMENT_CONFIG[compressedSegmentStatus].className : void 0;
|
|
45378
|
-
const hasCompressedStatus = Boolean(compressedSegmentClassName || compressedSegmentStyle);
|
|
45379
45352
|
const renderDurationLabel = (label) => jsxRuntimeExports.jsx("span", { className: "pointer-events-none absolute inset-0 flex items-center justify-start overflow-hidden px-1 text-[10px] font-mono font-medium leading-none whitespace-nowrap text-left text-white tabular-nums", style: { textShadow: "0 1px 1px rgba(0, 0, 0, 0.45)" }, children: label });
|
|
45380
45353
|
const getMinDurationLabelWidthPx = (label) => Math.max(40, label.length * 6 + 12);
|
|
45381
45354
|
const totalDurationLabel = formatDuration(totalDurationMs);
|
|
45382
45355
|
const showBarDurationLabel = isRowHovered && pixelWidth >= getMinDurationLabelWidthPx(totalDurationLabel);
|
|
45383
|
-
const
|
|
45384
|
-
|
|
45385
|
-
|
|
45386
|
-
...compressedSegmentStyle
|
|
45387
|
-
}, children: showBarDurationLabel ? renderDurationLabel(totalDurationLabel) : null }) : segments.length > 0 ? jsxRuntimeExports.jsx("div", { className: "relative w-full h-4 top-[3px]", children: segments.map((seg, i) => {
|
|
45356
|
+
const showBoundaryArrow = isTinyBar && (leftFracRaw < 0 || rightFracRaw > 1);
|
|
45357
|
+
const BoundaryArrow = leftFracRaw < 0.5 ? ArrowLeft : ArrowRight;
|
|
45358
|
+
const barContent = showBoundaryArrow ? jsxRuntimeExports.jsx("div", { className: "flex h-6 w-6 items-center justify-center rounded-[0.25rem]", children: jsxRuntimeExports.jsx(BoundaryArrow, { className: "size-3 text-gray-900" }) }) : isTinyBar ? jsxRuntimeExports.jsx("div", { className: "h-6 rounded-[0.25rem]", style: { background: fallbackColor } }) : segments.length > 0 ? jsxRuntimeExports.jsx("div", { className: "relative h-6 w-full", children: segments.map((seg, i) => {
|
|
45388
45359
|
const segPixelWidth = (seg.endFraction - seg.startFraction) * pixelWidth;
|
|
45389
45360
|
const segDurationLabel = formatDuration((seg.endFraction - seg.startFraction) * totalDurationMs);
|
|
45390
45361
|
const showSegmentDurationLabel = isRowHovered && segPixelWidth >= getMinDurationLabelWidthPx(segDurationLabel);
|
|
@@ -45395,24 +45366,28 @@ const TimelineBar = reactExports.memo(function TimelineBar2({ span, compression,
|
|
|
45395
45366
|
minWidth: 1,
|
|
45396
45367
|
...segStyle
|
|
45397
45368
|
}, children: showSegmentDurationLabel ? renderDurationLabel(segDurationLabel) : null }, `${seg.status}-${i}`);
|
|
45398
|
-
}) }) : jsxRuntimeExports.jsx("div", { className: "relative h-
|
|
45369
|
+
}) }) : jsxRuntimeExports.jsx("div", { className: "relative h-6 rounded-[0.25rem]", style: {
|
|
45399
45370
|
width: "100%",
|
|
45400
45371
|
minWidth: 4,
|
|
45401
45372
|
background: fallbackColor
|
|
45402
45373
|
}, children: showBarDurationLabel ? renderDurationLabel(totalDurationLabel) : null });
|
|
45403
|
-
return jsxRuntimeExports.jsx("div", { role: "treeitem", "aria-selected": isSelected, "aria-expanded": isSelected, "aria-level": 1, className: cn$4("h-
|
|
45404
|
-
left:
|
|
45405
|
-
|
|
45406
|
-
}, children:
|
|
45374
|
+
return jsxRuntimeExports.jsx("div", { role: "treeitem", "aria-selected": isSelected, "aria-expanded": isSelected, "aria-level": 1, className: cn$4("h-10 relative flex items-center hover:bg-gray-100 aria-selected:bg-gray-100 aria-selected:hover:bg-gray-200"), onMouseEnter: () => setIsRowHovered(true), onMouseLeave: () => setIsRowHovered(false), onClick, children: jsxRuntimeExports.jsx("div", { className: "absolute inset-y-0", style: {
|
|
45375
|
+
left: TIMELINE_PADDING_PX,
|
|
45376
|
+
right: TIMELINE_PADDING_PX
|
|
45377
|
+
}, children: jsxRuntimeExports.jsx("div", { className: "absolute top-1/2 -translate-y-1/2", style: {
|
|
45378
|
+
left: showBoundaryArrow ? `min(max(${leftPct}%, 0px), calc(100% - ${TINY_BAR_BOX_SIZE_PX}px))` : isTinyBar ? `min(${leftPct}%, calc(100% - ${TINY_BAR_WIDTH_PX}px))` : `${leftPct}%`,
|
|
45379
|
+
width: showBoundaryArrow ? `${TINY_BAR_BOX_SIZE_PX}px` : isTinyBar ? `${TINY_BAR_WIDTH_PX}px` : `max(${widthPct}%, 4px)`,
|
|
45380
|
+
height: BAR_HEIGHT_PX
|
|
45381
|
+
}, children: barContent }) }) });
|
|
45407
45382
|
});
|
|
45408
|
-
function TimelineHeader({
|
|
45409
|
-
|
|
45410
|
-
const markers2 = reactExports.useMemo(() => compression.isCompressed ? computeCompressedTimeMarkers(compression, viewStart, viewEnd, rootStart) : computeTimeMarkers(viewDuration, viewStart - rootStart), [compression, viewStart, viewEnd, viewDuration, rootStart]);
|
|
45411
|
-
return jsxRuntimeExports.jsxs("div", { className: "relative bg-background-100 border-b border-gray-alpha-400 h-10 min-h-10 flex items-end px-2 pb-1", children: [jsxRuntimeExports.jsxs("div", { className: "relative h-full flex-1", children: [markers2.map((m2, i) => jsxRuntimeExports.jsx("span", { className: "absolute bottom-1 font-mono text-xs font-normal leading-4 text-gray-900 whitespace-nowrap", style: { left: `${m2.position * 100}%` }, children: m2.label }, i)), hoverInfo2 && jsxRuntimeExports.jsx("span", { className: "absolute top-1 pointer-events-none z-10 font-mono text-[11px] leading-4 text-gray-1000 whitespace-nowrap bg-background-100 border border-gray-alpha-400 rounded px-1 -translate-x-1/2", style: { left: `${hoverInfo2.fraction * 100}%` }, children: hoverInfo2.label })] }), isZoomed && jsxRuntimeExports.jsx("button", { type: "button", className: "absolute right-2 top-1/2 -translate-y-1/2 z-[5] flex items-center py-0.5 px-2 border border-gray-alpha-400 rounded-md bg-background-100 font-sans text-[11px] font-medium text-gray-900 cursor-pointer whitespace-nowrap transition-[color,border-color] duration-[120ms] ease-in-out hover:text-gray-1000 hover:border-gray-600", onClick: onResetZoom, children: "Reset zoom" })] });
|
|
45383
|
+
function TimelineHeader({ markers: markers2, hoverInfo: hoverInfo2 }) {
|
|
45384
|
+
return jsxRuntimeExports.jsx("div", { className: "relative bg-background-100 border-b border-gray-alpha-400 h-10 min-h-10 flex items-end px-4 pb-1", children: jsxRuntimeExports.jsxs("div", { className: "relative h-full flex-1", children: [markers2.map((m2) => jsxRuntimeExports.jsx("span", { className: "absolute bottom-1 font-mono text-xs font-normal leading-4 text-gray-900 whitespace-nowrap", style: { left: `${m2.position * 100}%` }, children: m2.label }, `${m2.position}-${m2.label}`)), hoverInfo2 && jsxRuntimeExports.jsx("span", { className: "absolute top-1 pointer-events-none z-10 font-mono text-[11px] leading-4 text-gray-1000 whitespace-nowrap bg-background-100 border border-gray-alpha-400 rounded px-1 -translate-x-1/2", style: { left: `${hoverInfo2.fraction * 100}%` }, children: hoverInfo2.label })] }) });
|
|
45412
45385
|
}
|
|
45413
|
-
function Timeline({ spans,
|
|
45386
|
+
function Timeline({ spans, viewStart, viewEnd, markers: markers2, selectedId, onSelect, hoverFraction, altHeld = false }) {
|
|
45414
45387
|
const containerRef = reactExports.useRef(null);
|
|
45415
45388
|
const [containerWidth, setContainerWidth] = reactExports.useState(0);
|
|
45389
|
+
const viewDuration = viewEnd - viewStart;
|
|
45390
|
+
const timelineWidth = Math.max(0, containerWidth - TIMELINE_PADDING_PX * 2);
|
|
45416
45391
|
reactExports.useEffect(() => {
|
|
45417
45392
|
const el = containerRef.current;
|
|
45418
45393
|
if (!el)
|
|
@@ -45423,8 +45398,17 @@ function Timeline({ spans, compression, selectedId, onSelect, hoverFraction, alt
|
|
|
45423
45398
|
ro2.observe(el);
|
|
45424
45399
|
return () => ro2.disconnect();
|
|
45425
45400
|
}, []);
|
|
45426
|
-
const gaps = reactExports.useMemo(() => computeSpanGaps(spans,
|
|
45427
|
-
return jsxRuntimeExports.jsxs("div", { ref: containerRef, className: "relative
|
|
45401
|
+
const gaps = reactExports.useMemo(() => computeSpanGaps(spans, viewStart, viewEnd), [spans, viewStart, viewEnd]);
|
|
45402
|
+
return jsxRuntimeExports.jsxs("div", { ref: containerRef, className: "relative h-full overflow-hidden", children: [jsxRuntimeExports.jsx("div", { "aria-hidden": true, className: "absolute inset-y-0 pointer-events-none", style: {
|
|
45403
|
+
left: TIMELINE_PADDING_PX,
|
|
45404
|
+
right: TIMELINE_PADDING_PX
|
|
45405
|
+
}, children: markers2.map((marker2) => Math.abs(marker2.value) > ORIGIN_MARKER_EPSILON ? jsxRuntimeExports.jsx("div", { className: "absolute top-0 bottom-0 w-px bg-gray-alpha-300", style: { left: `${marker2.position * 100}%` } }, `${marker2.position}-${marker2.label}`) : null) }), hoverFraction != null && jsxRuntimeExports.jsx("div", { className: "absolute inset-y-0 pointer-events-none z-10", style: {
|
|
45406
|
+
left: TIMELINE_PADDING_PX,
|
|
45407
|
+
right: TIMELINE_PADDING_PX
|
|
45408
|
+
}, children: jsxRuntimeExports.jsx("div", { className: "absolute top-0 bottom-0 w-px bg-gray-alpha-400", style: { left: `${hoverFraction * 100}%` } }) }), spans.map((span) => jsxRuntimeExports.jsx(TimelineBar, { span, viewStart, viewDuration, containerWidth: timelineWidth, isSelected: selectedId === span.spanId, onClick: () => onSelect(span.spanId) }, span.spanId)), altHeld && jsxRuntimeExports.jsx("div", { "aria-hidden": true, className: "absolute inset-y-0 pointer-events-none", style: {
|
|
45409
|
+
left: TIMELINE_PADDING_PX,
|
|
45410
|
+
right: TIMELINE_PADDING_PX
|
|
45411
|
+
}, children: gaps.map((gap) => jsxRuntimeExports.jsx(DeltaIndicator, { leftFrac: gap.leftFrac, rightFrac: gap.rightFrac, label: formatDuration(gap.gapMs, true), rowIndex: gap.rowIndex }, gap.rowIndex)) })] });
|
|
45428
45412
|
}
|
|
45429
45413
|
const ActiveSpanContext = reactExports.createContext(null);
|
|
45430
45414
|
ActiveSpanContext.displayName = "ActiveSpanContext";
|
|
@@ -45433,16 +45417,14 @@ function ActiveSpanProvider({ spans, children: children2 }) {
|
|
|
45433
45417
|
const [activeSpanId, setActiveSpanId] = reactExports.useState(((_a3 = spans[0]) == null ? void 0 : _a3.spanId) ?? null);
|
|
45434
45418
|
reactExports.useEffect(() => {
|
|
45435
45419
|
setActiveSpanId((currentSpanId) => {
|
|
45436
|
-
if (
|
|
45420
|
+
if (!currentSpanId) {
|
|
45437
45421
|
return null;
|
|
45438
45422
|
}
|
|
45439
|
-
|
|
45440
|
-
|
|
45441
|
-
|
|
45442
|
-
return currentSpanId;
|
|
45443
|
-
}
|
|
45423
|
+
const hasCurrentSpan = spans.some((span) => span.spanId === currentSpanId);
|
|
45424
|
+
if (hasCurrentSpan) {
|
|
45425
|
+
return currentSpanId;
|
|
45444
45426
|
}
|
|
45445
|
-
return
|
|
45427
|
+
return null;
|
|
45446
45428
|
});
|
|
45447
45429
|
}, [spans]);
|
|
45448
45430
|
const activeSpan = reactExports.useMemo(() => {
|
|
@@ -48049,46 +48031,48 @@ export {
|
|
|
48049
48031
|
EVENT_DATA_REF_FIELDS as a4,
|
|
48050
48032
|
clsx as a5,
|
|
48051
48033
|
cn$4 as a6,
|
|
48052
|
-
|
|
48053
|
-
|
|
48054
|
-
|
|
48055
|
-
|
|
48056
|
-
|
|
48057
|
-
|
|
48058
|
-
|
|
48059
|
-
|
|
48060
|
-
|
|
48061
|
-
|
|
48062
|
-
|
|
48063
|
-
|
|
48064
|
-
|
|
48065
|
-
|
|
48066
|
-
|
|
48067
|
-
|
|
48068
|
-
|
|
48069
|
-
|
|
48070
|
-
|
|
48071
|
-
|
|
48072
|
-
|
|
48073
|
-
|
|
48074
|
-
|
|
48075
|
-
|
|
48076
|
-
|
|
48077
|
-
|
|
48078
|
-
|
|
48079
|
-
|
|
48080
|
-
|
|
48081
|
-
|
|
48082
|
-
|
|
48083
|
-
|
|
48084
|
-
|
|
48085
|
-
|
|
48086
|
-
|
|
48087
|
-
|
|
48088
|
-
|
|
48089
|
-
|
|
48090
|
-
|
|
48091
|
-
|
|
48034
|
+
getSpanDurationMs as a7,
|
|
48035
|
+
getHighResInMs as a8,
|
|
48036
|
+
ActiveSpanProvider as a9,
|
|
48037
|
+
offset as aA,
|
|
48038
|
+
shift as aB,
|
|
48039
|
+
limitShift as aC,
|
|
48040
|
+
flip as aD,
|
|
48041
|
+
size as aE,
|
|
48042
|
+
arrow as aF,
|
|
48043
|
+
hide as aG,
|
|
48044
|
+
autoUpdate as aH,
|
|
48045
|
+
cancelRun as aI,
|
|
48046
|
+
reenqueueRun as aJ,
|
|
48047
|
+
wakeUpRun as aK,
|
|
48048
|
+
resumeHook as aL,
|
|
48049
|
+
recreateRun as aM,
|
|
48050
|
+
useActiveSpan as aa,
|
|
48051
|
+
useSidebarDataOptional as ab,
|
|
48052
|
+
computeRootBounds as ac,
|
|
48053
|
+
computeTimeMarkers as ad,
|
|
48054
|
+
TIMELINE_PADDING_PX as ae,
|
|
48055
|
+
Timeline as af,
|
|
48056
|
+
TimelineHeader as ag,
|
|
48057
|
+
SidebarDataProvider as ah,
|
|
48058
|
+
hydrateResourceIOWithKey as ai,
|
|
48059
|
+
hydrateResourceIO as aj,
|
|
48060
|
+
fetchHook as ak,
|
|
48061
|
+
fetchStep as al,
|
|
48062
|
+
hasEncryptedFields as am,
|
|
48063
|
+
fetchStreams as an,
|
|
48064
|
+
Slot as ao,
|
|
48065
|
+
Slottable as ap,
|
|
48066
|
+
buttonVariants as aq,
|
|
48067
|
+
isEncryptedData as ar,
|
|
48068
|
+
hydrateData as as,
|
|
48069
|
+
getWebRevivers as at,
|
|
48070
|
+
LIVE_UPDATE_INTERVAL_MS as au,
|
|
48071
|
+
fetchEvent as av,
|
|
48072
|
+
getEncryptionKeyForRun as aw,
|
|
48073
|
+
StreamViewer as ax,
|
|
48074
|
+
composeRefs as ay,
|
|
48075
|
+
useFloating as az,
|
|
48092
48076
|
TooltipContent as b,
|
|
48093
48077
|
createLucideIcon as c,
|
|
48094
48078
|
cn as d,
|