@elevasis/ui 2.0.1 → 2.0.2
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/auth/index.js +1 -2
- package/dist/charts/index.js +7 -9
- package/dist/{chunk-ZT754TNZ.js → chunk-2DSYC52I.js} +3 -3
- package/dist/{chunk-NEST7NA4.js → chunk-CTU2JO57.js} +30 -24
- package/dist/{chunk-QJ2S46NI.js → chunk-DT3QYZVU.js} +2 -2
- package/dist/{chunk-QTD5HPKD.js → chunk-EIHG5JZN.js} +1 -1
- package/dist/{chunk-YUAE4IVA.js → chunk-KFICYU6S.js} +1 -1
- package/dist/{chunk-CD6UPIXK.js → chunk-MELNDAZY.js} +20 -110
- package/dist/{chunk-RWQIFKMJ.js → chunk-MTJ43R2E.js} +10 -2
- package/dist/{chunk-VB4MVOPL.js → chunk-MZPVNRPL.js} +130 -27
- package/dist/{chunk-NNKKBSJN.js → chunk-NYBEU5TE.js} +1 -1
- package/dist/{chunk-2IJCM3VQ.js → chunk-OCP2MBTY.js} +134 -118
- package/dist/{chunk-YVDYRV4Q.js → chunk-OKKGD3S6.js} +3 -3
- package/dist/{chunk-7QNDXJQW.js → chunk-PRLXFMNP.js} +2 -2
- package/dist/{chunk-ZNG35YAN.js → chunk-QRHLV74B.js} +23 -18
- package/dist/{chunk-5COLSYBE.js → chunk-RX4UWZZR.js} +1 -1
- package/dist/{chunk-C27LLJM6.js → chunk-SMJLS23U.js} +2 -2
- package/dist/{chunk-N5BS2VIA.js → chunk-TQ3HK7ZR.js} +6 -6
- package/dist/{chunk-P6EELWRV.js → chunk-TZOGB3X4.js} +2 -2
- package/dist/{chunk-TXPUIHX2.js → chunk-X7CHQ3RE.js} +1 -1
- package/dist/{chunk-MCA6LOGM.js → chunk-Y3D3WFJG.js} +54 -5
- package/dist/{chunk-YYBM5LNJ.js → chunk-YEX4MQSY.js} +1 -1
- package/dist/components/index.d.ts +18 -14
- package/dist/components/index.js +87 -263
- package/dist/features/auth/index.js +3 -4
- package/dist/features/dashboard/index.d.ts +1 -0
- package/dist/features/dashboard/index.js +15 -17
- package/dist/features/monitoring/index.css +127 -127
- package/dist/features/monitoring/index.d.ts +1 -0
- package/dist/features/monitoring/index.js +16 -18
- package/dist/features/operations/index.d.ts +2 -1
- package/dist/features/operations/index.js +18 -20
- package/dist/features/settings/index.d.ts +1 -0
- package/dist/features/settings/index.js +15 -17
- package/dist/hooks/index.css +127 -127
- package/dist/hooks/index.js +12 -9
- package/dist/hooks/published.css +127 -127
- package/dist/hooks/published.js +11 -8
- package/dist/index.css +118 -118
- package/dist/index.d.ts +14 -2
- package/dist/index.js +13 -12
- package/dist/layout/index.d.ts +20 -44
- package/dist/layout/index.js +6 -6
- package/dist/provider/index.css +127 -59
- package/dist/provider/index.d.ts +14 -2
- package/dist/provider/index.js +10 -6
- package/dist/provider/published.css +126 -0
- package/dist/provider/published.d.ts +14 -2
- package/dist/provider/published.js +8 -3
- package/dist/theme/index.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-ALA56RGZ.js +0 -13
- package/dist/chunk-SZHARWKU.js +0 -15
|
@@ -1,9 +1,112 @@
|
|
|
1
1
|
import { useAppearance } from './chunk-QJ2KCHKX.js';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { subshellNavItemIconSize, sidebarIconSize, sidebarIconStroke, sidebarIconInnerSize, sidebarGroupChevronSize } from './chunk-DT3QYZVU.js';
|
|
3
|
+
import { UnstyledButton, Stack, Group, Text, Box, ThemeIcon, Center, Container, Collapse } from '@mantine/core';
|
|
4
4
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
5
5
|
import { IconChevronDown, IconChevronRight } from '@tabler/icons-react';
|
|
6
6
|
|
|
7
|
+
var activeColor = "var(--color-primary)";
|
|
8
|
+
var defaultColor = "var(--color-text-subtle)";
|
|
9
|
+
var hoverColor = "var(--color-text)";
|
|
10
|
+
var activeBg = `color-mix(in srgb, ${activeColor} 10%, transparent)`;
|
|
11
|
+
var SubshellNavItem = ({
|
|
12
|
+
icon: Icon,
|
|
13
|
+
label,
|
|
14
|
+
isActive = false,
|
|
15
|
+
onClick,
|
|
16
|
+
description,
|
|
17
|
+
badge,
|
|
18
|
+
disabled = false
|
|
19
|
+
}) => {
|
|
20
|
+
return /* @__PURE__ */ jsx(
|
|
21
|
+
UnstyledButton,
|
|
22
|
+
{
|
|
23
|
+
onClick: disabled ? void 0 : onClick,
|
|
24
|
+
disabled,
|
|
25
|
+
style: {
|
|
26
|
+
width: "100%",
|
|
27
|
+
padding: "var(--mantine-spacing-xs)",
|
|
28
|
+
backgroundColor: isActive ? activeBg : "transparent",
|
|
29
|
+
borderRadius: "var(--mantine-radius-default)",
|
|
30
|
+
transition: `all var(--duration-fast) var(--easing)`,
|
|
31
|
+
cursor: disabled ? "not-allowed" : "pointer",
|
|
32
|
+
opacity: disabled ? 0.5 : 1
|
|
33
|
+
},
|
|
34
|
+
onMouseEnter: (e) => {
|
|
35
|
+
if (!isActive && !disabled) {
|
|
36
|
+
e.currentTarget.style.backgroundColor = "var(--color-surface-hover)";
|
|
37
|
+
const textElements = e.currentTarget.querySelectorAll("[data-text-element]");
|
|
38
|
+
textElements.forEach((el) => {
|
|
39
|
+
el.style.color = hoverColor;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
onMouseLeave: (e) => {
|
|
44
|
+
if (!isActive && !disabled) {
|
|
45
|
+
e.currentTarget.style.backgroundColor = "transparent";
|
|
46
|
+
const textElements = e.currentTarget.querySelectorAll("[data-text-element]");
|
|
47
|
+
textElements.forEach((el) => {
|
|
48
|
+
el.style.color = defaultColor;
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
children: /* @__PURE__ */ jsxs(Stack, { gap: 2, children: [
|
|
53
|
+
/* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "nowrap", children: [
|
|
54
|
+
/* @__PURE__ */ jsx(
|
|
55
|
+
Icon,
|
|
56
|
+
{
|
|
57
|
+
size: subshellNavItemIconSize,
|
|
58
|
+
style: {
|
|
59
|
+
flexShrink: 0,
|
|
60
|
+
opacity: isActive ? 1 : 0.6,
|
|
61
|
+
color: isActive ? activeColor : defaultColor
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
),
|
|
65
|
+
/* @__PURE__ */ jsx(
|
|
66
|
+
Text,
|
|
67
|
+
{
|
|
68
|
+
size: "sm",
|
|
69
|
+
fw: isActive ? 600 : 400,
|
|
70
|
+
style: {
|
|
71
|
+
overflow: "hidden",
|
|
72
|
+
textOverflow: "ellipsis",
|
|
73
|
+
whiteSpace: "nowrap",
|
|
74
|
+
flex: 1,
|
|
75
|
+
fontFamily: "var(--elevasis-font-family-subtitle)",
|
|
76
|
+
color: isActive ? activeColor : defaultColor,
|
|
77
|
+
transition: `color var(--duration-fast) var(--easing)`
|
|
78
|
+
},
|
|
79
|
+
"data-text-element": true,
|
|
80
|
+
children: label
|
|
81
|
+
}
|
|
82
|
+
),
|
|
83
|
+
badge && /* @__PURE__ */ jsx("div", { style: { flexShrink: 0 }, children: badge })
|
|
84
|
+
] }),
|
|
85
|
+
description && /* @__PURE__ */ jsx(
|
|
86
|
+
Text,
|
|
87
|
+
{
|
|
88
|
+
size: "xs",
|
|
89
|
+
c: "dimmed",
|
|
90
|
+
style: {
|
|
91
|
+
paddingLeft: "22px",
|
|
92
|
+
lineHeight: 1.2,
|
|
93
|
+
color: isActive ? activeColor : defaultColor,
|
|
94
|
+
opacity: isActive ? 0.8 : 0.6,
|
|
95
|
+
transition: `all var(--duration-fast) var(--easing)`,
|
|
96
|
+
display: "-webkit-box",
|
|
97
|
+
WebkitLineClamp: 2,
|
|
98
|
+
WebkitBoxOrient: "vertical",
|
|
99
|
+
overflow: "hidden",
|
|
100
|
+
textOverflow: "ellipsis"
|
|
101
|
+
},
|
|
102
|
+
"data-text-element": true,
|
|
103
|
+
children: description
|
|
104
|
+
}
|
|
105
|
+
)
|
|
106
|
+
] })
|
|
107
|
+
}
|
|
108
|
+
);
|
|
109
|
+
};
|
|
7
110
|
var SubshellSidebarSection = ({
|
|
8
111
|
icon: Icon,
|
|
9
112
|
label,
|
|
@@ -19,14 +122,30 @@ var SubshellSidebarSection = ({
|
|
|
19
122
|
borderBottom: "1px solid var(--color-border)"
|
|
20
123
|
},
|
|
21
124
|
children: /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
|
|
22
|
-
/* @__PURE__ */ jsx(Icon, { size: 16, color: "var(--color-text-subtle)" }),
|
|
23
125
|
/* @__PURE__ */ jsx(
|
|
24
|
-
|
|
126
|
+
ThemeIcon,
|
|
127
|
+
{
|
|
128
|
+
variant: "light",
|
|
129
|
+
size: sidebarIconSize,
|
|
130
|
+
style: {
|
|
131
|
+
backgroundColor: "var(--color-surface)",
|
|
132
|
+
color: "var(--color-primary)",
|
|
133
|
+
flexShrink: 0
|
|
134
|
+
},
|
|
135
|
+
children: /* @__PURE__ */ jsx(Icon, { size: sidebarIconInnerSize, stroke: sidebarIconStroke })
|
|
136
|
+
}
|
|
137
|
+
),
|
|
138
|
+
/* @__PURE__ */ jsx(
|
|
139
|
+
Box,
|
|
25
140
|
{
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
141
|
+
c: "var(--color-text)",
|
|
142
|
+
style: {
|
|
143
|
+
fontFamily: "var(--elevasis-font-family-subtitle)",
|
|
144
|
+
flex: 1,
|
|
145
|
+
fontSize: "var(--mantine-font-size-md)",
|
|
146
|
+
fontWeight: 500,
|
|
147
|
+
lineHeight: 1.2
|
|
148
|
+
},
|
|
30
149
|
children: label
|
|
31
150
|
}
|
|
32
151
|
),
|
|
@@ -45,10 +164,10 @@ var PageContainer = ({ children }) => {
|
|
|
45
164
|
/* @__PURE__ */ jsx(Container, { size: "xl", p: 0, w: "100%", children: /* @__PURE__ */ jsx(Stack, { gap: "lg", children }) })
|
|
46
165
|
);
|
|
47
166
|
};
|
|
48
|
-
var
|
|
167
|
+
var activeColor2 = "var(--color-primary)";
|
|
49
168
|
var defaultTextColor = "var(--color-text)";
|
|
50
169
|
var subtleColor = "var(--color-text-subtle)";
|
|
51
|
-
var
|
|
170
|
+
var activeBg2 = `color-mix(in srgb, ${activeColor2} 10%, transparent)`;
|
|
52
171
|
var CollapsibleSidebarGroup = ({
|
|
53
172
|
icon: Icon,
|
|
54
173
|
label,
|
|
@@ -64,8 +183,8 @@ var CollapsibleSidebarGroup = ({
|
|
|
64
183
|
loadingComponent
|
|
65
184
|
}) => {
|
|
66
185
|
const showActiveStyle = !isExpanded && isActive;
|
|
67
|
-
const iconColor = showActiveStyle ?
|
|
68
|
-
const textColor = showActiveStyle ?
|
|
186
|
+
const iconColor = showActiveStyle ? activeColor2 : subtleColor;
|
|
187
|
+
const textColor = showActiveStyle ? activeColor2 : defaultTextColor;
|
|
69
188
|
const fontWeight = showActiveStyle ? 600 : 500;
|
|
70
189
|
const handleLabelClick = (e) => {
|
|
71
190
|
if (onLabelClick) {
|
|
@@ -84,7 +203,7 @@ var CollapsibleSidebarGroup = ({
|
|
|
84
203
|
width: "100%",
|
|
85
204
|
padding: "var(--mantine-spacing-xs)",
|
|
86
205
|
color: textColor,
|
|
87
|
-
backgroundColor: showActiveStyle ?
|
|
206
|
+
backgroundColor: showActiveStyle ? activeBg2 : "transparent",
|
|
88
207
|
transition: `all var(--duration-fast) var(--easing)`,
|
|
89
208
|
cursor: "pointer",
|
|
90
209
|
overflow: "hidden"
|
|
@@ -106,7 +225,7 @@ var CollapsibleSidebarGroup = ({
|
|
|
106
225
|
{
|
|
107
226
|
style: { flexShrink: 0, color: iconColor, cursor: onLabelClick ? "pointer" : "inherit" },
|
|
108
227
|
onClick: onLabelClick ? handleLabelClick : void 0,
|
|
109
|
-
children: /* @__PURE__ */ jsx(Icon, { size: sidebarIconInnerSize, color:
|
|
228
|
+
children: /* @__PURE__ */ jsx(Icon, { size: sidebarIconInnerSize, color: activeColor2 })
|
|
110
229
|
}
|
|
111
230
|
),
|
|
112
231
|
/* @__PURE__ */ jsx(
|
|
@@ -148,108 +267,5 @@ var CollapsibleSidebarGroup = ({
|
|
|
148
267
|
) })
|
|
149
268
|
] });
|
|
150
269
|
};
|
|
151
|
-
var activeColor2 = "var(--color-primary)";
|
|
152
|
-
var defaultColor = "var(--color-text-subtle)";
|
|
153
|
-
var hoverColor = "var(--color-text)";
|
|
154
|
-
var activeBg2 = `color-mix(in srgb, ${activeColor2} 10%, transparent)`;
|
|
155
|
-
var SidebarListItem = ({
|
|
156
|
-
icon: Icon,
|
|
157
|
-
label,
|
|
158
|
-
isActive = false,
|
|
159
|
-
onClick,
|
|
160
|
-
description,
|
|
161
|
-
badge,
|
|
162
|
-
disabled = false
|
|
163
|
-
}) => {
|
|
164
|
-
return /* @__PURE__ */ jsx(
|
|
165
|
-
UnstyledButton,
|
|
166
|
-
{
|
|
167
|
-
onClick: disabled ? void 0 : onClick,
|
|
168
|
-
disabled,
|
|
169
|
-
style: {
|
|
170
|
-
width: "100%",
|
|
171
|
-
padding: "var(--mantine-spacing-xs)",
|
|
172
|
-
backgroundColor: isActive ? activeBg2 : "transparent",
|
|
173
|
-
borderRadius: "var(--mantine-radius-default)",
|
|
174
|
-
transition: `all var(--duration-fast) var(--easing)`,
|
|
175
|
-
cursor: disabled ? "not-allowed" : "pointer",
|
|
176
|
-
opacity: disabled ? 0.5 : 1
|
|
177
|
-
},
|
|
178
|
-
onMouseEnter: (e) => {
|
|
179
|
-
if (!isActive && !disabled) {
|
|
180
|
-
e.currentTarget.style.backgroundColor = "var(--color-surface-hover)";
|
|
181
|
-
const textElements = e.currentTarget.querySelectorAll("[data-text-element]");
|
|
182
|
-
textElements.forEach((el) => {
|
|
183
|
-
el.style.color = hoverColor;
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
},
|
|
187
|
-
onMouseLeave: (e) => {
|
|
188
|
-
if (!isActive && !disabled) {
|
|
189
|
-
e.currentTarget.style.backgroundColor = "transparent";
|
|
190
|
-
const textElements = e.currentTarget.querySelectorAll("[data-text-element]");
|
|
191
|
-
textElements.forEach((el) => {
|
|
192
|
-
el.style.color = defaultColor;
|
|
193
|
-
});
|
|
194
|
-
}
|
|
195
|
-
},
|
|
196
|
-
children: /* @__PURE__ */ jsxs(Stack, { gap: 2, children: [
|
|
197
|
-
/* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "nowrap", children: [
|
|
198
|
-
/* @__PURE__ */ jsx(
|
|
199
|
-
Icon,
|
|
200
|
-
{
|
|
201
|
-
size: sidebarListItemIconSize,
|
|
202
|
-
style: {
|
|
203
|
-
flexShrink: 0,
|
|
204
|
-
opacity: isActive ? 1 : 0.6,
|
|
205
|
-
color: isActive ? activeColor2 : defaultColor
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
),
|
|
209
|
-
/* @__PURE__ */ jsx(
|
|
210
|
-
Text,
|
|
211
|
-
{
|
|
212
|
-
size: "sm",
|
|
213
|
-
fw: isActive ? 600 : 400,
|
|
214
|
-
style: {
|
|
215
|
-
overflow: "hidden",
|
|
216
|
-
textOverflow: "ellipsis",
|
|
217
|
-
whiteSpace: "nowrap",
|
|
218
|
-
flex: 1,
|
|
219
|
-
fontFamily: "var(--elevasis-font-family-subtitle)",
|
|
220
|
-
color: isActive ? activeColor2 : defaultColor,
|
|
221
|
-
transition: `color var(--duration-fast) var(--easing)`
|
|
222
|
-
},
|
|
223
|
-
"data-text-element": true,
|
|
224
|
-
children: label
|
|
225
|
-
}
|
|
226
|
-
),
|
|
227
|
-
badge && /* @__PURE__ */ jsx("div", { style: { flexShrink: 0 }, children: badge })
|
|
228
|
-
] }),
|
|
229
|
-
description && /* @__PURE__ */ jsx(
|
|
230
|
-
Text,
|
|
231
|
-
{
|
|
232
|
-
size: "xs",
|
|
233
|
-
c: "dimmed",
|
|
234
|
-
style: {
|
|
235
|
-
paddingLeft: "22px",
|
|
236
|
-
lineHeight: 1.2,
|
|
237
|
-
color: isActive ? activeColor2 : defaultColor,
|
|
238
|
-
opacity: isActive ? 0.8 : 0.6,
|
|
239
|
-
transition: `all var(--duration-fast) var(--easing)`,
|
|
240
|
-
display: "-webkit-box",
|
|
241
|
-
WebkitLineClamp: 2,
|
|
242
|
-
WebkitBoxOrient: "vertical",
|
|
243
|
-
overflow: "hidden",
|
|
244
|
-
textOverflow: "ellipsis"
|
|
245
|
-
},
|
|
246
|
-
"data-text-element": true,
|
|
247
|
-
children: description
|
|
248
|
-
}
|
|
249
|
-
)
|
|
250
|
-
] })
|
|
251
|
-
}
|
|
252
|
-
);
|
|
253
|
-
};
|
|
254
270
|
|
|
255
|
-
export { CollapsibleSidebarGroup, PageContainer,
|
|
271
|
+
export { CollapsibleSidebarGroup, PageContainer, SubshellLoader, SubshellNavItem, SubshellSidebarSection };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { useCyberColors, CyberLegendItem, CyberAreaChart } from './chunk-
|
|
2
|
-
import {
|
|
3
|
-
import { useResourcesHealth } from './chunk-P6EELWRV.js';
|
|
1
|
+
import { useCyberColors, CyberLegendItem, CyberAreaChart } from './chunk-KFICYU6S.js';
|
|
2
|
+
import { useResourcesHealth } from './chunk-TZOGB3X4.js';
|
|
4
3
|
import { getTimeRangeDates, formatBucketTime } from './chunk-LXHZYSMQ.js';
|
|
4
|
+
import { CardHeader, EmptyState } from './chunk-Y3D3WFJG.js';
|
|
5
5
|
import { Paper, Center, Loader, Group } from '@mantine/core';
|
|
6
6
|
import { IconActivity, IconChartBar } from '@tabler/icons-react';
|
|
7
7
|
import { useMemo } from 'react';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { CredentialNameSchema, UuidSchema, useErrorNotification, showApiErrorNotification } from './chunk-
|
|
1
|
+
import { CredentialNameSchema, UuidSchema, useErrorNotification, showApiErrorNotification } from './chunk-TZOGB3X4.js';
|
|
2
2
|
import { getTimeRangeDates } from './chunk-LXHZYSMQ.js';
|
|
3
|
-
import { useNotificationAdapter } from './chunk-
|
|
3
|
+
import { useNotificationAdapter } from './chunk-MZPVNRPL.js';
|
|
4
4
|
import { GC_TIME_SHORT, STALE_TIME_MONITORING, GC_TIME_MEDIUM, STALE_TIME_DEFAULT } from './chunk-IOKL7BKE.js';
|
|
5
5
|
import { useElevasisServices } from './chunk-QEPXAWE2.js';
|
|
6
6
|
import { z } from 'zod';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { FilterBar } from './chunk-PDHTXPSF.js';
|
|
2
2
|
import { CustomModal } from './chunk-GBMNCNHX.js';
|
|
3
|
-
import { CyberAreaChart, CostTrendChart, ActivityTrendChart } from './chunk-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { useResolveError, useResolveAllErrors, usePaginationState, useErrorDetails, useMarkAsRead, useExecutionLogs, useExecutionHealth, useErrorAnalysis, useErrorDetail, useResolveErrorsByExecution, useResources, useCostTrends, useCostSummary, useCostByModel, useCostBreakdown, useActivityTrend, useActivities, useNotifications, useMarkAllAsRead, useTestNotification } from './chunk-P6EELWRV.js';
|
|
3
|
+
import { CyberAreaChart, CostTrendChart, ActivityTrendChart } from './chunk-KFICYU6S.js';
|
|
4
|
+
import { AppShellLoader } from './chunk-YEX4MQSY.js';
|
|
5
|
+
import { useExecutionLogsFilters, useTimeRangeDates, useActivityFilters } from './chunk-PRLXFMNP.js';
|
|
6
|
+
import { useResolveError, useResolveAllErrors, usePaginationState, useErrorDetails, useMarkAsRead, useExecutionLogs, useExecutionHealth, useErrorAnalysis, useErrorDetail, useResolveErrorsByExecution, useResources, useCostTrends, useCostSummary, useCostByModel, useCostBreakdown, useActivityTrend, useActivities, useNotifications, useMarkAllAsRead, useTestNotification } from './chunk-TZOGB3X4.js';
|
|
8
7
|
import { formatBucketTime, getTimeRangeDates } from './chunk-LXHZYSMQ.js';
|
|
9
8
|
import { formatDuration } from './chunk-XA34RETF.js';
|
|
9
|
+
import { CenteredErrorState, CardHeader, StatsCardSkeleton, TrendIndicator, DetailCardSkeleton, EmptyState, PageTitleCaption, JsonViewer } from './chunk-Y3D3WFJG.js';
|
|
10
10
|
import { PAGE_SIZE_DEFAULT } from './chunk-IOKL7BKE.js';
|
|
11
11
|
import { useRouterContext } from './chunk-Q7DJKLEN.js';
|
|
12
12
|
import { useState, useMemo, useCallback } from 'react';
|
|
@@ -1360,8 +1360,22 @@ function ErrorDetailsModal({ executionId, opened, onClose, organizationName }) {
|
|
|
1360
1360
|
}
|
|
1361
1361
|
return map;
|
|
1362
1362
|
}, [resources]);
|
|
1363
|
+
const resourceTypeMap = useMemo(() => {
|
|
1364
|
+
const map = /* @__PURE__ */ new Map();
|
|
1365
|
+
if (resources) {
|
|
1366
|
+
for (const r of resources.workflows) {
|
|
1367
|
+
map.set(r.resourceId, "workflow");
|
|
1368
|
+
}
|
|
1369
|
+
for (const r of resources.agents) {
|
|
1370
|
+
map.set(r.resourceId, "agent");
|
|
1371
|
+
}
|
|
1372
|
+
}
|
|
1373
|
+
return map;
|
|
1374
|
+
}, [resources]);
|
|
1363
1375
|
const primaryError = errors?.[0];
|
|
1364
1376
|
const resolvedResourceName = primaryError ? resourceNameMap.get(primaryError.resourceId) ?? primaryError.resourceId : void 0;
|
|
1377
|
+
const resolvedResourceType = primaryError ? resourceTypeMap.get(primaryError.resourceId) : void 0;
|
|
1378
|
+
const resourceDetailHref = primaryError && resolvedResourceType ? `/operations/resources/${resolvedResourceType}/${primaryError.resourceId}` : null;
|
|
1365
1379
|
const allResolved = errors?.every((e) => e.resolved) ?? false;
|
|
1366
1380
|
const hasRetries = errors && errors.length > 1;
|
|
1367
1381
|
const handleCopyDetails = () => {
|
|
@@ -1432,13 +1446,13 @@ ${primaryError.errorContext ? JSON.stringify(primaryError.errorContext, null, 2)
|
|
|
1432
1446
|
/* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
|
|
1433
1447
|
/* @__PURE__ */ jsx(Code, { children: primaryError.executionId }),
|
|
1434
1448
|
/* @__PURE__ */ jsx(CopyButton, { value: `"${organizationName}/${primaryError.resourceId}" ${primaryError.executionId}`, children: ({ copied, copy }) => /* @__PURE__ */ jsx(Tooltip, { label: copied ? "Copied" : "Copy Execution Ref", children: /* @__PURE__ */ jsx(ActionIcon, { variant: "subtle", size: "sm", color: copied ? "teal" : "gray", onClick: copy, children: copied ? /* @__PURE__ */ jsx(IconCheck, { size: 14 }) : /* @__PURE__ */ jsx(IconCopy, { size: 14 }) }) }) }),
|
|
1435
|
-
/* @__PURE__ */ jsx(
|
|
1449
|
+
resourceDetailHref && /* @__PURE__ */ jsx(
|
|
1436
1450
|
ActionIcon,
|
|
1437
1451
|
{
|
|
1438
1452
|
variant: "subtle",
|
|
1439
1453
|
size: "sm",
|
|
1440
1454
|
component: "a",
|
|
1441
|
-
href:
|
|
1455
|
+
href: resourceDetailHref,
|
|
1442
1456
|
target: "_blank",
|
|
1443
1457
|
title: "View Execution Log",
|
|
1444
1458
|
children: /* @__PURE__ */ jsx(IconExternalLink, { size: 14 })
|
|
@@ -1545,16 +1559,7 @@ ${primaryError.errorContext ? JSON.stringify(primaryError.errorContext, null, 2)
|
|
|
1545
1559
|
] }),
|
|
1546
1560
|
/* @__PURE__ */ jsxs(Group, { children: [
|
|
1547
1561
|
/* @__PURE__ */ jsx(Button, { variant: "default", onClick: onClose, children: "Close" }),
|
|
1548
|
-
/* @__PURE__ */ jsx(
|
|
1549
|
-
Button,
|
|
1550
|
-
{
|
|
1551
|
-
component: "a",
|
|
1552
|
-
href: `/operations/resources/workflow/${primaryError.resourceId}`,
|
|
1553
|
-
target: "_blank",
|
|
1554
|
-
leftSection: /* @__PURE__ */ jsx(IconExternalLink, { size: 16 }),
|
|
1555
|
-
children: "View Execution Log"
|
|
1556
|
-
}
|
|
1557
|
-
)
|
|
1562
|
+
resourceDetailHref && /* @__PURE__ */ jsx(Button, { component: "a", href: resourceDetailHref, target: "_blank", leftSection: /* @__PURE__ */ jsx(IconExternalLink, { size: 16 }), children: "View Execution Log" })
|
|
1558
1563
|
] })
|
|
1559
1564
|
] })
|
|
1560
1565
|
] })
|
|
@@ -1594,7 +1599,7 @@ function getNavigationPath2(activity) {
|
|
|
1594
1599
|
case "agent_run":
|
|
1595
1600
|
return `/operations/resources/agent/${activity.entityId}`;
|
|
1596
1601
|
case "hitl_action":
|
|
1597
|
-
return "/command-queue";
|
|
1602
|
+
return "/operations/command-queue";
|
|
1598
1603
|
case "credential_change":
|
|
1599
1604
|
return "/settings/credentials";
|
|
1600
1605
|
case "api_key_change":
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { topbarHeight, sidebarTransitionDuration, sidebarBottomSectionHeight } from './chunk-
|
|
1
|
+
import { topbarHeight, sidebarTransitionDuration, sidebarBottomSectionHeight } from './chunk-DT3QYZVU.js';
|
|
2
2
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
3
|
import { useState } from 'react';
|
|
4
4
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { NavigationButton } from './chunk-
|
|
1
|
+
import { NavigationButton } from './chunk-NYBEU5TE.js';
|
|
2
2
|
import { useAppearance } from './chunk-QJ2KCHKX.js';
|
|
3
|
-
import { sidebarItemGap, sidebarSubLinkPaddingY, sidebarSubLinkPaddingX, sidebarSubLinkIndent, sidebarHoverDelay, sidebarTransitionDuration, sidebarCollapsedWidth, sidebarWidth, topbarHeight, sidebarToggleIconSize, sidebarSectionPadding } from './chunk-
|
|
3
|
+
import { sidebarItemGap, sidebarSubLinkPaddingY, sidebarSubLinkPaddingX, sidebarSubLinkIndent, sidebarHoverDelay, sidebarTransitionDuration, sidebarCollapsedWidth, sidebarWidth, topbarHeight, sidebarToggleIconSize, sidebarSectionPadding } from './chunk-DT3QYZVU.js';
|
|
4
4
|
import { useRouterContext } from './chunk-Q7DJKLEN.js';
|
|
5
5
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
6
6
|
import { createContext, memo, useEffect, createElement, useContext, useRef, useLayoutEffect, useState } from 'react';
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { ResourceHealthChart } from './chunk-LGKLC5MG.js';
|
|
2
|
-
import { useCyberColors, HeroStatsRow } from './chunk-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { useDashboardMetrics, useResources, useUnresolvedErrors, useRecentExecutionsByResource, useCommandQueue, useScheduledTasks, useResourcesHealth } from './chunk-P6EELWRV.js';
|
|
2
|
+
import { useCyberColors, HeroStatsRow } from './chunk-KFICYU6S.js';
|
|
3
|
+
import { AppShellCenteredContainer, AppShellLoader } from './chunk-YEX4MQSY.js';
|
|
4
|
+
import { useTimeRangeDates } from './chunk-PRLXFMNP.js';
|
|
5
|
+
import { useDashboardMetrics, useResources, useUnresolvedErrors, useRecentExecutionsByResource, useCommandQueue, useScheduledTasks, useResourcesHealth } from './chunk-TZOGB3X4.js';
|
|
7
6
|
import { getTimeRangeDates } from './chunk-LXHZYSMQ.js';
|
|
8
7
|
import { Graph_module_css_default, useDirectedChainHighlighting, useNodeSelection, useFitViewTrigger } from './chunk-F6RBK7NJ.js';
|
|
9
8
|
import { STATUS_COLORS, getStatusIcon, formatDuration, getStatusColors, AGENT_CONSTANTS, shouldAnimateEdge, TIMELINE_CONSTANTS, calculateBarPosition, CONTAINER_CONSTANTS, useExecutionPath, useUnifiedWorkflowLayout, WORKFLOW_CONSTANTS, useReactFlowAgent } from './chunk-XA34RETF.js';
|
|
9
|
+
import { glassBase } from './chunk-X7CHQ3RE.js';
|
|
10
|
+
import { GlowDot, CardHeader, EmptyState, PageTitleCaption, TabCountBadge } from './chunk-Y3D3WFJG.js';
|
|
10
11
|
import { ResourceStatusColors } from './chunk-ELJIFLCB.js';
|
|
11
|
-
import { glassBase } from './chunk-TXPUIHX2.js';
|
|
12
12
|
import { formatTimeAgo, formatRelativeTime } from './chunk-IOKL7BKE.js';
|
|
13
13
|
import { useInitialization } from './chunk-TUXTSEAF.js';
|
|
14
14
|
import { memo, useMemo, useEffect, useState, useCallback, Fragment } from 'react';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { getTimeRangeDates, observabilityKeys } from './chunk-LXHZYSMQ.js';
|
|
2
2
|
import { GRAPH_CONSTANTS } from './chunk-F6RBK7NJ.js';
|
|
3
|
-
import { useNotificationAdapter } from './chunk-
|
|
3
|
+
import { useNotificationAdapter } from './chunk-MZPVNRPL.js';
|
|
4
4
|
import { HTTP_HEADERS } from './chunk-NVOCKXUQ.js';
|
|
5
5
|
import { STALE_TIME_MONITORING, REFETCH_INTERVAL_DASHBOARD, REFETCH_INTERVAL_RUNNING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, getErrorInfo, formatErrorMessage, getErrorTitle, STALE_TIME_DEFAULT, STALE_TIME_ADMIN, APIClientError } from './chunk-IOKL7BKE.js';
|
|
6
|
-
import { useStableAccessToken } from './chunk-
|
|
6
|
+
import { useStableAccessToken } from './chunk-MTJ43R2E.js';
|
|
7
7
|
import { useOrganization } from './chunk-DD3CCMCZ.js';
|
|
8
8
|
import { useElevasisServices } from './chunk-QEPXAWE2.js';
|
|
9
9
|
import { useAuthContext } from './chunk-BRJ3QZ4E.js';
|
|
@@ -173,7 +173,7 @@ var tacticalPreset = {
|
|
|
173
173
|
glassBackground: "rgba(14, 15, 17, 0.6)",
|
|
174
174
|
glassBlur: "blur(24px) saturate(170%)",
|
|
175
175
|
shadow: "0px 1px 2px rgba(0, 0, 0, 0.5), 0px 12px 32px -8px rgba(0, 0, 0, 0.6)",
|
|
176
|
-
cardShadow: "inset 0 1px 0 rgba(255, 255, 255, 0.04), inset 0 0
|
|
176
|
+
cardShadow: "inset 0 1px 0 rgba(255, 255, 255, 0.04), inset 0 0 8px -6px rgba(255, 255, 255, 0.1), 0 2px 8px rgba(0, 0, 0, 0.3), 0 12px 32px -8px rgba(0, 0, 0, 0.4), 0 32px 64px -16px rgba(0, 0, 0, 0.3)",
|
|
177
177
|
durationFast: "100ms",
|
|
178
178
|
durationNormal: "180ms",
|
|
179
179
|
easing: "cubic-bezier(0.22, 0, 0.1, 1)",
|
|
@@ -5,8 +5,8 @@ import { useAuthContext } from './chunk-BRJ3QZ4E.js';
|
|
|
5
5
|
import { useRouterContext } from './chunk-Q7DJKLEN.js';
|
|
6
6
|
import { Center, Stack, Title, Text, Button, Box, Loader, Badge, Group, Collapse, ScrollArea, Card, Select, Alert, Code, ThemeIcon, Paper, Grid, Timeline, Space } from '@mantine/core';
|
|
7
7
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
8
|
-
import { IconMinus, IconTrendingUp, IconTrendingDown, IconChevronUp, IconChevronDown, IconAlertCircle, IconClock, IconInfoCircle, IconChevronRight, IconInbox, IconHeartHandshake, IconUserOff, IconMailForward, IconBell, IconCalendarEvent, IconCalendarCancel, IconMessageReply, IconCircleCheck, IconCreditCard, IconX, IconEye, IconSend, IconFileText, IconArrowRight, IconPlus, IconActivity } from '@tabler/icons-react';
|
|
9
|
-
import { useState } from 'react';
|
|
8
|
+
import { IconMinus, IconTrendingUp, IconTrendingDown, IconChevronUp, IconChevronDown, IconAlertCircle, IconClock, IconInfoCircle, IconBan, IconChevronRight, IconInbox, IconHeartHandshake, IconUserOff, IconMailForward, IconBell, IconCalendarEvent, IconCalendarCancel, IconMessageReply, IconCircleCheck, IconCreditCard, IconX, IconEye, IconSend, IconFileText, IconArrowRight, IconPlus, IconActivity } from '@tabler/icons-react';
|
|
9
|
+
import { forwardRef, useState } from 'react';
|
|
10
10
|
import { Prism } from 'react-syntax-highlighter';
|
|
11
11
|
import { oneDark } from 'react-syntax-highlighter/dist/esm/styles/prism';
|
|
12
12
|
|
|
@@ -92,7 +92,7 @@ function CollapsibleSection({
|
|
|
92
92
|
var PageTitleCaption = ({ title, caption, rightSection }) => {
|
|
93
93
|
const renderCaption = () => {
|
|
94
94
|
if (!caption) return null;
|
|
95
|
-
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(Text, {
|
|
95
|
+
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(Text, { style: { fontFamily: "var(--elevasis-font-family-subtitle)", color: "var(--color-text-dimmed)" }, children: caption }) });
|
|
96
96
|
};
|
|
97
97
|
const titleContent = /* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "column" }, children: [
|
|
98
98
|
/* @__PURE__ */ jsx(Title, { order: 1, children: title }),
|
|
@@ -425,6 +425,46 @@ function PageNotFound() {
|
|
|
425
425
|
/* @__PURE__ */ jsx(Group, { justify: "center", children: /* @__PURE__ */ jsx(Button, { size: "md", onClick: () => navigate("/"), children: "Go Home" }) })
|
|
426
426
|
] }) });
|
|
427
427
|
}
|
|
428
|
+
function FeatureUnavailableState({ path }) {
|
|
429
|
+
const { navigate } = useRouterContext();
|
|
430
|
+
return /* @__PURE__ */ jsx(
|
|
431
|
+
Center,
|
|
432
|
+
{
|
|
433
|
+
style: {
|
|
434
|
+
flex: 1,
|
|
435
|
+
minHeight: "100%",
|
|
436
|
+
width: "100%",
|
|
437
|
+
padding: 24,
|
|
438
|
+
background: "linear-gradient(180deg, color-mix(in srgb, var(--color-surface) 72%, transparent), transparent)"
|
|
439
|
+
},
|
|
440
|
+
children: /* @__PURE__ */ jsxs(
|
|
441
|
+
Stack,
|
|
442
|
+
{
|
|
443
|
+
align: "center",
|
|
444
|
+
gap: "md",
|
|
445
|
+
style: {
|
|
446
|
+
maxWidth: 560,
|
|
447
|
+
padding: "32px 28px",
|
|
448
|
+
borderRadius: 24,
|
|
449
|
+
border: "1px solid var(--color-border)",
|
|
450
|
+
background: "color-mix(in srgb, var(--glass-background) 86%, transparent)",
|
|
451
|
+
boxShadow: "var(--card-shadow)",
|
|
452
|
+
backdropFilter: "var(--glass-blur)",
|
|
453
|
+
textAlign: "center"
|
|
454
|
+
},
|
|
455
|
+
children: [
|
|
456
|
+
/* @__PURE__ */ jsx(IconBan, { size: 44, stroke: 1.8, color: "var(--color-text-subtle)" }),
|
|
457
|
+
/* @__PURE__ */ jsxs(Stack, { gap: 6, align: "center", children: [
|
|
458
|
+
/* @__PURE__ */ jsx(Title, { order: 2, children: "This section is unavailable" }),
|
|
459
|
+
/* @__PURE__ */ jsx(Text, { c: "dimmed", size: "sm", maw: 420, children: path ? `The requested route ${path} is currently disabled in this workspace.` : "The requested subsection is currently disabled in this workspace." })
|
|
460
|
+
] }),
|
|
461
|
+
/* @__PURE__ */ jsx(Group, { gap: "sm", justify: "center", children: /* @__PURE__ */ jsx(Button, { onClick: () => navigate("/"), children: "Go home" }) })
|
|
462
|
+
]
|
|
463
|
+
}
|
|
464
|
+
)
|
|
465
|
+
}
|
|
466
|
+
);
|
|
467
|
+
}
|
|
428
468
|
function ResourceCard({
|
|
429
469
|
resource,
|
|
430
470
|
onClick,
|
|
@@ -612,7 +652,7 @@ function CardHeader({ icon, title, subtitle, rightSection }) {
|
|
|
612
652
|
wrappedIcon,
|
|
613
653
|
/* @__PURE__ */ jsx(Title, { order: 3, children: title })
|
|
614
654
|
] }),
|
|
615
|
-
/* @__PURE__ */ jsx(Text, { size: "sm",
|
|
655
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", mt: 2, style: { color: "var(--color-text-dimmed)" }, children: subtitle })
|
|
616
656
|
] }) : /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
|
|
617
657
|
wrappedIcon,
|
|
618
658
|
/* @__PURE__ */ jsx(Title, { order: 3, children: title })
|
|
@@ -620,6 +660,15 @@ function CardHeader({ icon, title, subtitle, rightSection }) {
|
|
|
620
660
|
rightSection
|
|
621
661
|
] });
|
|
622
662
|
}
|
|
663
|
+
|
|
664
|
+
// src/components/display/ElevasisLoader.module.css.js
|
|
665
|
+
var ElevasisLoader_module_css_default = { "wrapper": "wrapper", "loader": "loader", "chevron": "chevron", "c1": "c1", "c2": "c2", "c3": "c3" };
|
|
666
|
+
var ElevasisLoader = forwardRef(({ style, className, ...others }, ref) => /* @__PURE__ */ jsx("div", { ref, style, className: `${ElevasisLoader_module_css_default.wrapper} ${className ?? ""}`, ...others, children: /* @__PURE__ */ jsxs("svg", { className: ElevasisLoader_module_css_default.loader, viewBox: "-10 -5 60 50", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
667
|
+
/* @__PURE__ */ jsx("polyline", { className: `${ElevasisLoader_module_css_default.chevron} ${ElevasisLoader_module_css_default.c1}`, points: "5,36 20,25 35,36" }),
|
|
668
|
+
/* @__PURE__ */ jsx("polyline", { className: `${ElevasisLoader_module_css_default.chevron} ${ElevasisLoader_module_css_default.c2}`, points: "9,23 20,14 31,23" }),
|
|
669
|
+
/* @__PURE__ */ jsx("polyline", { className: `${ElevasisLoader_module_css_default.chevron} ${ElevasisLoader_module_css_default.c3}`, points: "13,11 20,5 27,11" })
|
|
670
|
+
] }) }));
|
|
671
|
+
ElevasisLoader.displayName = "ElevasisLoader";
|
|
623
672
|
var SIZE_MAP = {
|
|
624
673
|
sm: { dot: 7, inner: 6, outer: 12 },
|
|
625
674
|
md: { dot: 10, inner: 8, outer: 16 },
|
|
@@ -715,4 +764,4 @@ function ActivityTimeline({ activities }) {
|
|
|
715
764
|
}) }) });
|
|
716
765
|
}
|
|
717
766
|
|
|
718
|
-
export { APIErrorAlert, ActivityTimeline, CardHeader, CenteredErrorState, CollapsibleSection, ContextViewer, CustomSelector, DetailCardSkeleton, EmptyState, GlowDot, JsonViewer, ListSkeleton, PageNotFound, PageTitleCaption, ResourceCard, StatCard, StatCardSkeleton, StatsCardSkeleton, StatusBadge, TabCountBadge, TimeRangeSelector, TrendIndicator, catalogItemToResourceDefinition };
|
|
767
|
+
export { APIErrorAlert, ActivityTimeline, CardHeader, CenteredErrorState, CollapsibleSection, ContextViewer, CustomSelector, DetailCardSkeleton, ElevasisLoader, EmptyState, FeatureUnavailableState, GlowDot, JsonViewer, ListSkeleton, PageNotFound, PageTitleCaption, ResourceCard, StatCard, StatCardSkeleton, StatsCardSkeleton, StatusBadge, TabCountBadge, TimeRangeSelector, TrendIndicator, catalogItemToResourceDefinition };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useAppearance } from './chunk-QJ2KCHKX.js';
|
|
2
|
-
import { topbarHeight } from './chunk-
|
|
2
|
+
import { topbarHeight } from './chunk-DT3QYZVU.js';
|
|
3
3
|
import { Title, Button } from '@mantine/core';
|
|
4
4
|
import { IconAlertCircle } from '@tabler/icons-react';
|
|
5
5
|
import { jsx, jsxs } from 'react/jsx-runtime';
|