@elevasis/ui 2.0.1 → 2.0.3

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.
Files changed (53) hide show
  1. package/dist/auth/index.js +1 -2
  2. package/dist/charts/index.js +7 -9
  3. package/dist/{chunk-QTD5HPKD.js → chunk-35QO7M43.js} +1 -1
  4. package/dist/{chunk-QJ2S46NI.js → chunk-DT3QYZVU.js} +2 -2
  5. package/dist/{chunk-NEST7NA4.js → chunk-H762MTQ5.js} +30 -24
  6. package/dist/{chunk-YUAE4IVA.js → chunk-KFICYU6S.js} +1 -1
  7. package/dist/{chunk-RWQIFKMJ.js → chunk-MTJ43R2E.js} +10 -2
  8. package/dist/{chunk-CD6UPIXK.js → chunk-MVJ4TSSA.js} +20 -110
  9. package/dist/{chunk-VB4MVOPL.js → chunk-MZPVNRPL.js} +130 -27
  10. package/dist/{chunk-NNKKBSJN.js → chunk-NYBEU5TE.js} +1 -1
  11. package/dist/{chunk-2IJCM3VQ.js → chunk-OCP2MBTY.js} +134 -118
  12. package/dist/{chunk-YVDYRV4Q.js → chunk-OKKGD3S6.js} +3 -3
  13. package/dist/{chunk-N5BS2VIA.js → chunk-PQNEE57X.js} +6 -6
  14. package/dist/{chunk-7QNDXJQW.js → chunk-PRLXFMNP.js} +2 -2
  15. package/dist/{chunk-ZT754TNZ.js → chunk-QITPFGWC.js} +3 -3
  16. package/dist/{chunk-ZNG35YAN.js → chunk-QRHLV74B.js} +23 -18
  17. package/dist/{chunk-TXPUIHX2.js → chunk-RB34YOIX.js} +5 -5
  18. package/dist/{chunk-5COLSYBE.js → chunk-RX4UWZZR.js} +1 -1
  19. package/dist/{chunk-C27LLJM6.js → chunk-SMJLS23U.js} +2 -2
  20. package/dist/{chunk-P6EELWRV.js → chunk-TZOGB3X4.js} +2 -2
  21. package/dist/{chunk-MCA6LOGM.js → chunk-Y3D3WFJG.js} +54 -5
  22. package/dist/{chunk-YYBM5LNJ.js → chunk-YEX4MQSY.js} +1 -1
  23. package/dist/components/index.d.ts +18 -14
  24. package/dist/components/index.js +87 -263
  25. package/dist/features/auth/index.js +3 -4
  26. package/dist/features/dashboard/index.d.ts +1 -0
  27. package/dist/features/dashboard/index.js +15 -17
  28. package/dist/features/monitoring/index.css +127 -127
  29. package/dist/features/monitoring/index.d.ts +1 -0
  30. package/dist/features/monitoring/index.js +16 -18
  31. package/dist/features/operations/index.d.ts +2 -1
  32. package/dist/features/operations/index.js +18 -20
  33. package/dist/features/settings/index.d.ts +1 -0
  34. package/dist/features/settings/index.js +15 -17
  35. package/dist/hooks/index.css +127 -127
  36. package/dist/hooks/index.js +12 -9
  37. package/dist/hooks/published.css +127 -127
  38. package/dist/hooks/published.js +11 -8
  39. package/dist/index.css +118 -118
  40. package/dist/index.d.ts +14 -2
  41. package/dist/index.js +13 -12
  42. package/dist/layout/index.d.ts +20 -44
  43. package/dist/layout/index.js +6 -6
  44. package/dist/provider/index.css +127 -59
  45. package/dist/provider/index.d.ts +14 -2
  46. package/dist/provider/index.js +10 -6
  47. package/dist/provider/published.css +126 -0
  48. package/dist/provider/published.d.ts +14 -2
  49. package/dist/provider/published.js +8 -3
  50. package/dist/theme/index.js +2 -2
  51. package/package.json +1 -1
  52. package/dist/chunk-ALA56RGZ.js +0 -13
  53. package/dist/chunk-SZHARWKU.js +0 -15
@@ -1,9 +1,112 @@
1
1
  import { useAppearance } from './chunk-QJ2KCHKX.js';
2
- import { sidebarGroupChevronSize, sidebarIconInnerSize, sidebarListItemIconSize } from './chunk-QJ2S46NI.js';
3
- import { Box, Group, Text, Center, Container, Stack, UnstyledButton, Collapse } from '@mantine/core';
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
- Text,
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
- size: "sm",
27
- fw: 600,
28
- c: "var(--color-text-subtle)",
29
- style: { fontFamily: "var(--mantine-font-family-headings)", flex: 1 },
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 activeColor = "var(--color-primary)";
167
+ var activeColor2 = "var(--color-primary)";
49
168
  var defaultTextColor = "var(--color-text)";
50
169
  var subtleColor = "var(--color-text-subtle)";
51
- var activeBg = `color-mix(in srgb, ${activeColor} 10%, transparent)`;
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 ? activeColor : subtleColor;
68
- const textColor = showActiveStyle ? activeColor : defaultTextColor;
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 ? activeBg : "transparent",
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: activeColor })
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, SidebarListItem, SubshellLoader, SubshellSidebarSection };
271
+ export { CollapsibleSidebarGroup, PageContainer, SubshellLoader, SubshellNavItem, SubshellSidebarSection };
@@ -1,7 +1,7 @@
1
- import { useCyberColors, CyberLegendItem, CyberAreaChart } from './chunk-YUAE4IVA.js';
2
- import { CardHeader, EmptyState } from './chunk-MCA6LOGM.js';
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,14 +1,14 @@
1
1
  import { ResourceHealthChart } from './chunk-LGKLC5MG.js';
2
- import { useCyberColors, HeroStatsRow } from './chunk-YUAE4IVA.js';
3
- import { GlowDot, CardHeader, EmptyState, PageTitleCaption, TabCountBadge } from './chunk-MCA6LOGM.js';
4
- import { AppShellCenteredContainer, AppShellLoader } from './chunk-YYBM5LNJ.js';
5
- import { useTimeRangeDates } from './chunk-7QNDXJQW.js';
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-RB34YOIX.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,6 +1,6 @@
1
- import { CredentialNameSchema, UuidSchema, useErrorNotification, showApiErrorNotification } from './chunk-P6EELWRV.js';
1
+ import { CredentialNameSchema, UuidSchema, useErrorNotification, showApiErrorNotification } from './chunk-TZOGB3X4.js';
2
2
  import { getTimeRangeDates } from './chunk-LXHZYSMQ.js';
3
- import { useNotificationAdapter } from './chunk-VB4MVOPL.js';
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,7 +1,7 @@
1
- import { ElevasisLoader } from './chunk-SZHARWKU.js';
2
- import { PRESETS, getPreset, generateShades, mantineThemeOverride, createCssVariablesResolver, PresetsProvider } from './chunk-TXPUIHX2.js';
1
+ import { PRESETS, getPreset, generateShades, mantineThemeOverride, createCssVariablesResolver, PresetsProvider } from './chunk-RB34YOIX.js';
3
2
  import { AppBackground } from './chunk-CYXZHBP4.js';
4
- import { ElevasisCoreProvider } from './chunk-VB4MVOPL.js';
3
+ import { ElevasisCoreProvider } from './chunk-MZPVNRPL.js';
4
+ import { ElevasisLoader } from './chunk-Y3D3WFJG.js';
5
5
  import { AppearanceProvider } from './chunk-QJ2KCHKX.js';
6
6
  import { getErrorInfo, formatErrorMessage, getErrorTitle } from './chunk-IOKL7BKE.js';
7
7
  import { useMemo, useEffect } from 'react';
@@ -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-YUAE4IVA.js';
4
- import { CenteredErrorState, CardHeader, StatsCardSkeleton, TrendIndicator, DetailCardSkeleton, EmptyState, PageTitleCaption, JsonViewer } from './chunk-MCA6LOGM.js';
5
- import { AppShellLoader } from './chunk-YYBM5LNJ.js';
6
- import { useExecutionLogsFilters, useTimeRangeDates, useActivityFilters } from './chunk-7QNDXJQW.js';
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: `/operations/resources/workflow/${primaryError.resourceId}`,
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":
@@ -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 0 1px rgba(255, 255, 255, 0.03), 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)",
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)",
@@ -1416,7 +1416,7 @@ var cyberVoidPreset = {
1416
1416
  var nirvanaPreset = {
1417
1417
  subtitleFontFamily: '"Inter", sans-serif',
1418
1418
  fontImports: [
1419
- "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Cormorant:wght@400;500;600;700&display=swap"
1419
+ "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Playfair+Display:wght@500;600;700&display=swap"
1420
1420
  ],
1421
1421
  background: /* @__PURE__ */ jsxs(Fragment$1, { children: [
1422
1422
  /* @__PURE__ */ jsx(WaveBackground, { variant: "nirvana" }),
@@ -1444,7 +1444,7 @@ var nirvanaPreset = {
1444
1444
  durationNormal: "250ms",
1445
1445
  easing: "cubic-bezier(0.4, 0, 0.2, 1)",
1446
1446
  destructiveFg: "#ffffff",
1447
- fontHeading: '"Cormorant", Georgia, "Times New Roman", serif',
1447
+ fontHeading: '"Playfair Display", Georgia, "Times New Roman", serif',
1448
1448
  fontSans: '"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif'
1449
1449
  },
1450
1450
  dark: {
@@ -1469,14 +1469,14 @@ var nirvanaPreset = {
1469
1469
  durationNormal: "250ms",
1470
1470
  easing: "cubic-bezier(0.4, 0, 0.2, 1)",
1471
1471
  destructiveFg: "#ffffff",
1472
- fontHeading: '"Cormorant", Georgia, "Times New Roman", serif',
1472
+ fontHeading: '"Playfair Display", Georgia, "Times New Roman", serif',
1473
1473
  fontSans: '"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif'
1474
1474
  },
1475
1475
  framework: {
1476
1476
  fontFamily: '"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
1477
1477
  defaultRadius: "xl",
1478
1478
  headings: {
1479
- fontFamily: '"Cormorant", Georgia, "Times New Roman", serif',
1479
+ fontFamily: '"Playfair Display", Georgia, "Times New Roman", serif',
1480
1480
  fontWeight: "600"
1481
1481
  }
1482
1482
  }
@@ -1,4 +1,4 @@
1
- import { topbarHeight, sidebarTransitionDuration, sidebarBottomSectionHeight } from './chunk-QJ2S46NI.js';
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-NNKKBSJN.js';
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-QJ2S46NI.js';
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,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-VB4MVOPL.js';
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-ALA56RGZ.js';
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';
@@ -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, { c: "dimmed", style: { fontFamily: "var(--elevasis-font-family-subtitle)" }, children: caption }) });
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", c: "dimmed", mt: 2, children: subtitle })
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-QJ2S46NI.js';
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';