@elevasis/ui 1.24.3 → 1.25.1

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 (42) hide show
  1. package/dist/charts/index.js +2 -2
  2. package/dist/{chunk-H3MU3WTM.js → chunk-7JJCGPYD.js} +2 -2
  3. package/dist/{chunk-TQBM3OEW.js → chunk-BS4J2LAW.js} +1 -1
  4. package/dist/{chunk-JR2C4XAN.js → chunk-CYXZHBP4.js} +202 -295
  5. package/dist/{chunk-ZDKC3V7C.js → chunk-EFPFPCP2.js} +57 -58
  6. package/dist/{chunk-OH74INP2.js → chunk-FEZZ3IDU.js} +434 -314
  7. package/dist/{chunk-JTUX5FDC.js → chunk-FURGQSSG.js} +374 -2
  8. package/dist/{chunk-IAZT3VO6.js → chunk-G25YWGUL.js} +4 -1
  9. package/dist/{chunk-QDO6NF2I.js → chunk-GQCQDCLJ.js} +380 -63
  10. package/dist/{chunk-CTF6FS2M.js → chunk-L3GVDMCA.js} +211 -1
  11. package/dist/{chunk-BGTZFEKR.js → chunk-LHNPRLSA.js} +6 -252
  12. package/dist/{chunk-VMMNFRAO.js → chunk-QNABH7YG.js} +3 -3
  13. package/dist/{chunk-WY5IJI37.js → chunk-QUL3XRLS.js} +3 -3
  14. package/dist/{chunk-TML32XBW.js → chunk-RMPXGBNI.js} +2 -2
  15. package/dist/{chunk-UG5565XQ.js → chunk-US4JUSI3.js} +3 -3
  16. package/dist/components/index.d.ts +3005 -192
  17. package/dist/components/index.js +1541 -26
  18. package/dist/features/auth/index.d.ts +108 -9
  19. package/dist/features/dashboard/index.js +8 -8
  20. package/dist/features/monitoring/index.js +9 -9
  21. package/dist/features/operations/index.d.ts +8 -2
  22. package/dist/features/operations/index.js +53 -56
  23. package/dist/features/settings/index.d.ts +108 -9
  24. package/dist/features/settings/index.js +28 -11
  25. package/dist/hooks/index.d.ts +3279 -185
  26. package/dist/hooks/index.js +5 -5
  27. package/dist/hooks/published.d.ts +345 -11
  28. package/dist/hooks/published.js +4 -4
  29. package/dist/index.d.ts +3285 -187
  30. package/dist/index.js +6 -6
  31. package/dist/initialization/index.d.ts +108 -9
  32. package/dist/layout/index.d.ts +60 -3
  33. package/dist/layout/index.js +2 -2
  34. package/dist/profile/index.d.ts +108 -9
  35. package/dist/provider/index.d.ts +6 -2
  36. package/dist/provider/index.js +3 -3
  37. package/dist/provider/published.d.ts +6 -2
  38. package/dist/supabase/index.d.ts +210 -18
  39. package/dist/theme/index.d.ts +6 -2
  40. package/dist/theme/index.js +3 -3
  41. package/dist/types/index.d.ts +143 -10
  42. package/package.json +1 -1
@@ -7,6 +7,212 @@ import { createContext, memo, useEffect, createElement, useContext, useRef, useL
7
7
  import { Collapse, HoverCard, Stack, Group, Text, UnstyledButton, Tooltip, ScrollArea, Menu, Avatar, useMantineColorScheme, Switch, Code } from '@mantine/core';
8
8
  import { IconLayoutSidebarLeftExpand, IconLayoutSidebarLeftCollapse, IconUser, IconLogout, IconMoonStars, IconSun } from '@tabler/icons-react';
9
9
 
10
+ var randRange = (min, max) => min + Math.random() * (max - min);
11
+ var FLUX_SPARKS = Array.from({ length: 30 }, () => {
12
+ const duration = randRange(12, 70);
13
+ const pulse = randRange(0.8, 2.2);
14
+ return {
15
+ left: randRange(0, 100),
16
+ size: randRange(1.5, 4.2),
17
+ duration,
18
+ delay: -randRange(0, duration),
19
+ drift: randRange(-35, 35),
20
+ peak: randRange(0.18, 0.5),
21
+ pulse,
22
+ pulseDelay: -randRange(0, pulse)
23
+ };
24
+ });
25
+ var FLUX_MOTES = Array.from({ length: 18 }, () => {
26
+ const duration = randRange(18, 90);
27
+ const pulse = randRange(1.6, 4);
28
+ return {
29
+ left: randRange(-2, 102),
30
+ size: randRange(3.5, 10),
31
+ duration,
32
+ delay: -randRange(0, duration),
33
+ drift: randRange(-55, 55),
34
+ blur: randRange(1.5, 5),
35
+ peak: randRange(0.22, 0.55),
36
+ pulse,
37
+ pulseDelay: -randRange(0, pulse)
38
+ };
39
+ });
40
+ var FLUX_GLOWS = Array.from({ length: 10 }, () => {
41
+ const duration = randRange(25, 130);
42
+ const pulse = randRange(3.5, 7);
43
+ return {
44
+ left: randRange(-5, 105),
45
+ size: randRange(3, 22),
46
+ duration,
47
+ delay: -randRange(0, duration),
48
+ drift: randRange(-80, 80),
49
+ blur: randRange(6, 16),
50
+ opacity: randRange(0.18, 0.42),
51
+ pulse,
52
+ pulseDelay: -randRange(0, pulse)
53
+ };
54
+ });
55
+ var KEYFRAMES = `
56
+ @keyframes elevasis-cyber-spark-rise {
57
+ 0% { transform: translate3d(0, 0, 0); opacity: 0; }
58
+ 10% { opacity: var(--cy-peak, 1); }
59
+ 85% { opacity: calc(var(--cy-peak, 1) * 0.9); }
60
+ 100% { transform: translate3d(var(--cy-drift, 0px), -112vh, 0); opacity: 0; }
61
+ }
62
+ @keyframes elevasis-cyber-spark-pulse {
63
+ 0%, 100% { filter: brightness(0.55); transform: scale(0.8); }
64
+ 50% { filter: brightness(1.7); transform: scale(1.25); }
65
+ }
66
+ @keyframes elevasis-cyber-glow-pulse {
67
+ 0%, 100% { transform: scale(0.85); }
68
+ 50% { transform: scale(1.2); }
69
+ }
70
+ @media (prefers-reduced-motion: reduce) {
71
+ .elevasis-cyber-spark,
72
+ .elevasis-cyber-spark-inner,
73
+ .elevasis-cyber-glow,
74
+ .elevasis-cyber-glow-inner {
75
+ animation: none !important;
76
+ }
77
+ .elevasis-cyber-spark,
78
+ .elevasis-cyber-glow {
79
+ opacity: 0 !important;
80
+ }
81
+ }
82
+ `;
83
+ function FluxGlows() {
84
+ return /* @__PURE__ */ jsx(Fragment, { children: FLUX_GLOWS.map((g, i) => /* @__PURE__ */ jsx(
85
+ "div",
86
+ {
87
+ className: "elevasis-cyber-glow",
88
+ style: {
89
+ position: "absolute",
90
+ bottom: "-5%",
91
+ left: `${g.left}%`,
92
+ width: `${g.size}px`,
93
+ height: `${g.size}px`,
94
+ filter: `blur(${g.blur}px)`,
95
+ animation: `elevasis-cyber-spark-rise ${g.duration}s linear infinite`,
96
+ animationDelay: `${g.delay}s`,
97
+ ["--cy-drift"]: `${g.drift}px`,
98
+ ["--cy-peak"]: `${g.opacity}`,
99
+ willChange: "transform, opacity"
100
+ },
101
+ children: /* @__PURE__ */ jsx(
102
+ "div",
103
+ {
104
+ className: "elevasis-cyber-glow-inner",
105
+ style: {
106
+ width: "100%",
107
+ height: "100%",
108
+ borderRadius: "50%",
109
+ background: `radial-gradient(circle, var(--color-primary) 0%, color-mix(in srgb, var(--color-primary) 60%, transparent) 45%, transparent 75%)`,
110
+ animation: `elevasis-cyber-glow-pulse ${g.pulse}s ease-in-out infinite`,
111
+ animationDelay: `${g.pulseDelay}s`,
112
+ willChange: "transform"
113
+ }
114
+ }
115
+ )
116
+ },
117
+ i
118
+ )) });
119
+ }
120
+ function FluxMotes() {
121
+ return /* @__PURE__ */ jsx(Fragment, { children: FLUX_MOTES.map((m, i) => /* @__PURE__ */ jsx(
122
+ "div",
123
+ {
124
+ className: "elevasis-cyber-spark",
125
+ style: {
126
+ position: "absolute",
127
+ bottom: "-3%",
128
+ left: `${m.left}%`,
129
+ width: `${m.size}px`,
130
+ height: `${m.size}px`,
131
+ filter: `blur(${m.blur}px)`,
132
+ animation: `elevasis-cyber-spark-rise ${m.duration}s linear infinite`,
133
+ animationDelay: `${m.delay}s`,
134
+ ["--cy-drift"]: `${m.drift}px`,
135
+ ["--cy-peak"]: `${m.peak}`,
136
+ willChange: "transform, opacity"
137
+ },
138
+ children: /* @__PURE__ */ jsx(
139
+ "div",
140
+ {
141
+ className: "elevasis-cyber-spark-inner",
142
+ style: {
143
+ width: "100%",
144
+ height: "100%",
145
+ borderRadius: "50%",
146
+ background: `radial-gradient(circle, var(--color-primary) 0%, color-mix(in srgb, var(--color-primary) 70%, transparent) 55%, transparent 90%)`,
147
+ boxShadow: `0 0 ${m.size * 1.2}px color-mix(in srgb, var(--color-primary) 40%, transparent)`,
148
+ animation: `elevasis-cyber-spark-pulse ${m.pulse}s ease-in-out infinite`,
149
+ animationDelay: `${m.pulseDelay}s`,
150
+ willChange: "transform, filter"
151
+ }
152
+ }
153
+ )
154
+ },
155
+ i
156
+ )) });
157
+ }
158
+ function FluxSparks() {
159
+ return /* @__PURE__ */ jsx(Fragment, { children: FLUX_SPARKS.map((s, i) => /* @__PURE__ */ jsx(
160
+ "div",
161
+ {
162
+ className: "elevasis-cyber-spark",
163
+ style: {
164
+ position: "absolute",
165
+ bottom: "-2%",
166
+ left: `${s.left}%`,
167
+ width: `${s.size}px`,
168
+ height: `${s.size}px`,
169
+ animation: `elevasis-cyber-spark-rise ${s.duration}s linear infinite`,
170
+ animationDelay: `${s.delay}s`,
171
+ ["--cy-drift"]: `${s.drift}px`,
172
+ ["--cy-peak"]: `${s.peak}`,
173
+ willChange: "transform, opacity"
174
+ },
175
+ children: /* @__PURE__ */ jsx(
176
+ "div",
177
+ {
178
+ className: "elevasis-cyber-spark-inner",
179
+ style: {
180
+ width: "100%",
181
+ height: "100%",
182
+ borderRadius: "50%",
183
+ background: "var(--color-primary)",
184
+ boxShadow: `0 0 ${s.size * 2.5}px var(--color-primary), 0 0 ${s.size * 5}px color-mix(in srgb, var(--color-primary) 50%, transparent)`,
185
+ animation: `elevasis-cyber-spark-pulse ${s.pulse}s ease-in-out infinite`,
186
+ animationDelay: `${s.pulseDelay}s`,
187
+ willChange: "transform, filter"
188
+ }
189
+ }
190
+ )
191
+ },
192
+ i
193
+ )) });
194
+ }
195
+ function CyberParticles({ variant: _variant, className }) {
196
+ return /* @__PURE__ */ jsxs(
197
+ "div",
198
+ {
199
+ className,
200
+ "aria-hidden": "true",
201
+ style: {
202
+ position: "absolute",
203
+ inset: 0,
204
+ pointerEvents: "none",
205
+ overflow: "hidden"
206
+ },
207
+ children: [
208
+ /* @__PURE__ */ jsx("style", { children: KEYFRAMES }),
209
+ /* @__PURE__ */ jsx(FluxGlows, {}),
210
+ /* @__PURE__ */ jsx(FluxMotes, {}),
211
+ /* @__PURE__ */ jsx(FluxSparks, {})
212
+ ]
213
+ }
214
+ );
215
+ }
10
216
  function Vignette({ strength = 0.35, className }) {
11
217
  return /* @__PURE__ */ jsx(
12
218
  "div",
@@ -313,6 +519,7 @@ var CollapsedWithHoverCard = ({
313
519
  style: {
314
520
  width: "100%",
315
521
  padding: "8px 12px",
522
+ borderRadius: "var(--mantine-radius-default)",
316
523
  backgroundColor: isActive ? "color-mix(in srgb, var(--color-primary) 10%, transparent)" : "transparent",
317
524
  color: isActive ? "var(--color-primary)" : "var(--color-text)",
318
525
  transition: "all var(--duration-fast) var(--easing)"
@@ -825,6 +1032,7 @@ var SubshellSidebar = ({
825
1032
  WebkitBackdropFilter: "var(--glass-blur)",
826
1033
  borderRight: "1px solid var(--color-border)",
827
1034
  boxShadow: "var(--card-shadow)",
1035
+ clipPath: "inset(-100px -100px -100px 0)",
828
1036
  minHeight: `calc(100vh - ${topbarHeight}px)`,
829
1037
  marginTop: `${topbarHeight}px`,
830
1038
  fontFamily: "var(--elevasis-font-family-subtitle)"
@@ -857,6 +1065,7 @@ var SubshellSidebar = ({
857
1065
  WebkitBackdropFilter: "var(--glass-blur)",
858
1066
  borderRight: isOpen ? "1px solid var(--color-border)" : "none",
859
1067
  boxShadow: isOpen ? "var(--card-shadow)" : "none",
1068
+ clipPath: isOpen ? "inset(-100px -100px -100px 0)" : "none",
860
1069
  height: "100%",
861
1070
  fontFamily: "var(--elevasis-font-family-subtitle)",
862
1071
  overflow: "hidden",
@@ -960,6 +1169,7 @@ var TopbarContainer = ({ children }) => {
960
1169
  WebkitBackdropFilter: "var(--glass-blur)",
961
1170
  borderBottom: "1px solid var(--color-border)",
962
1171
  boxShadow: "var(--card-shadow)",
1172
+ clipPath: "inset(-100px -100px -100px 0)",
963
1173
  padding: "var(--mantine-spacing-sm)",
964
1174
  display: "flex",
965
1175
  alignItems: "center",
@@ -1032,4 +1242,4 @@ var Topbar = ({ version, leftContent, children }) => {
1032
1242
  ] });
1033
1243
  };
1034
1244
 
1035
- export { AppShellContainer, AppShellContentContainer, AppShellRightSideContainer, AppShellRightSideOuterContainer, AppTopbarAdjusterWrapper, LinksGroup, Sidebar, SidebarContext, SidebarProvider, SubshellContainer, SubshellContentContainer, SubshellRightSideContainer, SubshellSidebar, Topbar, TopbarContainer, Vignette, subsidebarWidth, useSidebar, useSidebarCollapse };
1245
+ export { AppShellContainer, AppShellContentContainer, AppShellRightSideContainer, AppShellRightSideOuterContainer, AppTopbarAdjusterWrapper, CyberParticles, LinksGroup, Sidebar, SidebarContext, SidebarProvider, SubshellContainer, SubshellContentContainer, SubshellRightSideContainer, SubshellSidebar, Topbar, TopbarContainer, Vignette, subsidebarWidth, useSidebar, useSidebarCollapse };
@@ -1,17 +1,17 @@
1
1
  import { SubshellSidebarSection } from './chunk-AWT255UH.js';
2
2
  import { CustomModal, ConfirmationModal } from './chunk-GBMNCNHX.js';
3
- import { BaseNode, useGraphTheme, BaseEdge, GraphBackground, GraphLegend, GraphFitViewButton, GraphFitViewHandler } from './chunk-VMMNFRAO.js';
4
- import { useCyberColors, CyberDonut } from './chunk-UG5565XQ.js';
5
- import { JsonViewer, CardHeader, PageTitleCaption, CollapsibleSection, ContextViewer } from './chunk-IAZT3VO6.js';
3
+ import { BaseNode, useGraphTheme, BaseEdge, GraphBackground, GraphLegend, GraphFitViewButton, GraphFitViewHandler } from './chunk-QNABH7YG.js';
4
+ import { useCyberColors, CyberDonut } from './chunk-US4JUSI3.js';
5
+ import { JsonViewer, CardHeader, PageTitleCaption, CollapsibleSection } from './chunk-G25YWGUL.js';
6
6
  import { StyledMarkdown } from './chunk-3KMDHCAR.js';
7
- import { useCommandViewLayout, useErrorDetail, useExecution, useArchivedLogs, useDeleteExecution, useRetryExecution, useCancelExecution, useCommandQueueTotals, useSubmitAction, useDeleteTask, showApiErrorNotification, showSuccessNotification } from './chunk-QDO6NF2I.js';
7
+ import { useCommandViewLayout, useErrorDetail, useExecution, useArchivedLogs, useDeleteExecution, useRetryExecution, useCancelExecution, useCommandQueueTotals, showApiErrorNotification, showSuccessNotification } from './chunk-GQCQDCLJ.js';
8
8
  import { Graph_module_css_default, useDirectedChainHighlighting, useNodeSelection, GRAPH_CONSTANTS, useGraphHighlighting, calculateGraphHeight } from './chunk-F6RBK7NJ.js';
9
9
  import { getResourceStatusColor } from './chunk-XA34RETF.js';
10
10
  import { ResourceStatusColors, toWorkflowLogMessages } from './chunk-ELJIFLCB.js';
11
11
  import { useAppearance } from './chunk-QJ2KCHKX.js';
12
12
  import { getResourceIcon, getResourceColor, getErrorInfo, formatErrorMessage } from './chunk-IOKL7BKE.js';
13
13
  import { useOrganization } from './chunk-DD3CCMCZ.js';
14
- import { Stack, Group, Text, Badge, ThemeIcon, Box, TextInput, Textarea, Radio, Checkbox, Select, NumberInput, Title, Alert, Button, ActionIcon, Collapse, Card, SimpleGrid, Divider, Paper, Space, CopyButton, Center, Tooltip, Code, Menu, useMantineTheme, UnstyledButton, RangeSlider, Loader, Progress, Accordion, ScrollArea } from '@mantine/core';
14
+ import { Stack, Group, Text, Badge, ThemeIcon, Box, TextInput, Textarea, Radio, Checkbox, Select, NumberInput, Title, Alert, Button, ActionIcon, Collapse, Card, SimpleGrid, Divider, Paper, Space, CopyButton, Center, Tooltip, Code, Menu, useMantineTheme, UnstyledButton, RangeSlider, Loader, Progress, ScrollArea } from '@mantine/core';
15
15
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
16
16
  import { IconBrain, IconFileText, IconDatabase, IconMessage, IconAlertCircle, IconCircleX, IconCircleCheck, IconBolt, IconHandClick, IconClock, IconWebhook, IconExternalLink, IconMail, IconSend, IconArrowUp, IconMessageCircle, IconRocket, IconEye, IconEdit, IconAlertTriangle, IconRefresh, IconX, IconCheck, IconChevronRight, IconTool, IconSettings, IconCpu, IconClockHour4, IconVersions, IconPlayerPlay, IconNetwork, IconSitemap, IconCopy, IconPlayerStop, IconReload, IconTrash, IconTerminal2, IconBug, IconChevronDown, IconArrowLeft, IconRobot, IconGitBranch, IconDotsVertical, IconFilter, IconCategory, IconArchive, IconDownload } from '@tabler/icons-react';
17
17
  import { useForm } from '@mantine/form';
@@ -795,7 +795,6 @@ function ResourceDefinitionSection({
795
795
  if (isWorkflow) {
796
796
  return /* @__PURE__ */ jsx(Paper, { withBorder: true, p: "sm", children: /* @__PURE__ */ jsxs(Stack, { children: [
797
797
  /* @__PURE__ */ jsx(CardHeader, { icon: /* @__PURE__ */ jsx(IconSitemap, { size: 18 }), title: "Workflow Definition" }),
798
- /* @__PURE__ */ jsx(Space, { h: 0 }),
799
798
  /* @__PURE__ */ jsx(WorkflowDefinitionDisplay, { workflow: resourceDefinition, defaultExpanded })
800
799
  ] }) });
801
800
  }
@@ -2623,250 +2622,5 @@ var CommandViewGraph = forwardRef(
2623
2622
  return /* @__PURE__ */ jsx(ReactFlowProvider, { children: /* @__PURE__ */ jsx(CommandViewGraphInner, { ref, ...props }) });
2624
2623
  }
2625
2624
  );
2626
- function TaskCard({ task, onViewExecution, richTextRenderer }) {
2627
- const [isExpanded, setIsExpanded] = useState(false);
2628
- const { mutate: submitAction, isPending } = useSubmitAction();
2629
- const { mutate: deleteTask, isPending: isDeleting } = useDeleteTask();
2630
- const [actionModalOpened, setActionModalOpened] = useState(false);
2631
- const [selectedAction, setSelectedAction] = useState(null);
2632
- const [confirmAction, setConfirmAction] = useState(null);
2633
- const [deleteConfirmOpened, setDeleteConfirmOpened] = useState(false);
2634
- const handleActionClick = (action) => {
2635
- if (action.requiresConfirmation) {
2636
- setConfirmAction(action);
2637
- } else if (action.form) {
2638
- setSelectedAction(action);
2639
- setActionModalOpened(true);
2640
- } else {
2641
- submitAction({
2642
- taskId: task.id,
2643
- actionId: action.id
2644
- });
2645
- }
2646
- };
2647
- const handleConfirm = () => {
2648
- if (!confirmAction) return;
2649
- if (confirmAction.form) {
2650
- setSelectedAction(confirmAction);
2651
- setActionModalOpened(true);
2652
- } else {
2653
- submitAction({
2654
- taskId: task.id,
2655
- actionId: confirmAction.id
2656
- });
2657
- }
2658
- setConfirmAction(null);
2659
- };
2660
- const getPriorityColor2 = (priority) => {
2661
- if (priority >= 8) return "red";
2662
- if (priority >= 5) return "yellow";
2663
- return "gray";
2664
- };
2665
- const getStatusColor2 = (status) => {
2666
- switch (status) {
2667
- case "pending":
2668
- return "blue";
2669
- case "processing":
2670
- return "blue";
2671
- case "completed":
2672
- return "green";
2673
- case "failed":
2674
- return "red";
2675
- case "expired":
2676
- return "orange";
2677
- default:
2678
- return "gray";
2679
- }
2680
- };
2681
- const handleRetry = () => {
2682
- if (task.selectedAction) {
2683
- submitAction({
2684
- taskId: task.id,
2685
- actionId: task.selectedAction,
2686
- payload: task.actionPayload
2687
- });
2688
- }
2689
- };
2690
- const formatDate = (date) => {
2691
- const now = /* @__PURE__ */ new Date();
2692
- const diffMs = now.getTime() - date.getTime();
2693
- const diffMins = Math.floor(diffMs / 6e4);
2694
- const diffHours = Math.floor(diffMins / 60);
2695
- const diffDays = Math.floor(diffHours / 24);
2696
- if (diffMins < 60) return `${diffMins}m ago`;
2697
- if (diffHours < 24) return `${diffHours}h ago`;
2698
- return `${diffDays}d ago`;
2699
- };
2700
- return /* @__PURE__ */ jsx(
2701
- Card,
2702
- {
2703
- withBorder: true,
2704
- style: { transition: "box-shadow var(--duration-fast) var(--easing)" },
2705
- onMouseEnter: (e) => {
2706
- e.currentTarget.style.boxShadow = "var(--standard-box-shadow)";
2707
- },
2708
- onMouseLeave: (e) => {
2709
- e.currentTarget.style.boxShadow = "";
2710
- },
2711
- children: /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
2712
- /* @__PURE__ */ jsxs(Group, { justify: "space-between", wrap: "nowrap", children: [
2713
- /* @__PURE__ */ jsxs(Group, { gap: "sm", style: { flex: 1 }, children: [
2714
- /* @__PURE__ */ jsx(ThemeIcon, { size: "lg", variant: "light", color: task.originResourceType === "agent" ? "blue" : "grape", children: task.originResourceType === "agent" ? /* @__PURE__ */ jsx(IconRobot, { size: 20 }) : /* @__PURE__ */ jsx(IconGitBranch, { size: 20 }) }),
2715
- /* @__PURE__ */ jsxs("div", { style: { flex: 1 }, children: [
2716
- /* @__PURE__ */ jsxs(Group, { gap: "xs", mb: 4, children: [
2717
- /* @__PURE__ */ jsx(Text, { fw: 600, size: "sm", style: { fontFamily: "var(--mantine-font-family-headings)" }, children: task.description || "Task approval required" }),
2718
- /* @__PURE__ */ jsxs(Badge, { size: "xs", variant: "light", color: getPriorityColor2(task.priority), radius: "sm", children: [
2719
- "P",
2720
- task.priority
2721
- ] })
2722
- ] }),
2723
- /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
2724
- /* @__PURE__ */ jsxs(Text, { size: "xs", c: "dimmed", children: [
2725
- task.originResourceType === "agent" ? "Agent" : "Workflow",
2726
- ": ",
2727
- task.originResourceId
2728
- ] }),
2729
- /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", children: "\u2022" }),
2730
- /* @__PURE__ */ jsxs(Group, { gap: 4, children: [
2731
- /* @__PURE__ */ jsx(IconClock, { size: 12 }),
2732
- /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", children: formatDate(task.createdAt) })
2733
- ] })
2734
- ] })
2735
- ] })
2736
- ] }),
2737
- /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
2738
- /* @__PURE__ */ jsx(
2739
- Badge,
2740
- {
2741
- size: "sm",
2742
- variant: "light",
2743
- color: getStatusColor2(task.status),
2744
- radius: "sm",
2745
- leftSection: task.status === "processing" ? /* @__PURE__ */ jsx(Loader, { size: 6 }) : void 0,
2746
- children: task.status.charAt(0).toUpperCase() + task.status.slice(1)
2747
- }
2748
- ),
2749
- task.status === "failed" && /* @__PURE__ */ jsx(Button, { variant: "light", color: "red", size: "xs", loading: isPending, onClick: handleRetry, children: "Retry" }),
2750
- /* @__PURE__ */ jsxs(Menu, { shadow: "md", position: "bottom-end", offset: 8, children: [
2751
- /* @__PURE__ */ jsx(Menu.Target, { children: /* @__PURE__ */ jsx(ActionIcon, { variant: "subtle", color: "gray", size: "sm", children: /* @__PURE__ */ jsx(IconDotsVertical, { size: 16 }) }) }),
2752
- /* @__PURE__ */ jsx(Menu.Dropdown, { children: /* @__PURE__ */ jsx(
2753
- Menu.Item,
2754
- {
2755
- leftSection: /* @__PURE__ */ jsx(IconTrash, { size: 14 }),
2756
- disabled: task.status === "processing",
2757
- onClick: () => setDeleteConfirmOpened(true),
2758
- children: "Delete"
2759
- }
2760
- ) })
2761
- ] })
2762
- ] })
2763
- ] }),
2764
- /* @__PURE__ */ jsx(Accordion, { value: isExpanded ? "details" : null, onChange: (value) => setIsExpanded(!!value), children: /* @__PURE__ */ jsxs(Accordion.Item, { value: "details", children: [
2765
- /* @__PURE__ */ jsx(Accordion.Control, { children: /* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, children: "View Context" }) }),
2766
- /* @__PURE__ */ jsx(Accordion.Panel, { children: /* @__PURE__ */ jsx(ContextViewer, { data: task.context }) })
2767
- ] }) }),
2768
- task.status === "pending" && /* @__PURE__ */ jsx(Group, { gap: "xs", children: task.actions.map((action) => {
2769
- const Icon = getIcon(action.icon);
2770
- const variant = "light";
2771
- return /* @__PURE__ */ jsx(
2772
- Button,
2773
- {
2774
- variant,
2775
- color: action.color || (action.type === "danger" ? "red" : "blue"),
2776
- leftSection: Icon ? /* @__PURE__ */ jsx(Icon, { size: 16 }) : null,
2777
- loading: isPending,
2778
- onClick: () => handleActionClick(action),
2779
- title: action.description,
2780
- size: "xs",
2781
- radius: "xs",
2782
- children: action.label
2783
- },
2784
- action.id
2785
- );
2786
- }) }),
2787
- task.selectedAction && /* @__PURE__ */ jsx(Accordion, { children: /* @__PURE__ */ jsxs(Accordion.Item, { value: "submitted", children: [
2788
- /* @__PURE__ */ jsx(Accordion.Control, { children: /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
2789
- /* @__PURE__ */ jsx(ThemeIcon, { size: "sm", variant: "light", color: "green", radius: "xl", children: /* @__PURE__ */ jsx(IconCheck, { size: 12 }) }),
2790
- /* @__PURE__ */ jsxs(Text, { size: "sm", fw: 500, children: [
2791
- "Submitted: ",
2792
- task.actions.find((a) => a.id === task.selectedAction)?.label || task.selectedAction
2793
- ] }),
2794
- task.targetExecutionId && /* @__PURE__ */ jsx(Badge, { size: "xs", variant: "light", color: "cyan", leftSection: /* @__PURE__ */ jsx(IconPlayerPlay, { size: 10 }), children: "Executed" })
2795
- ] }) }),
2796
- /* @__PURE__ */ jsx(Accordion.Panel, { children: /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
2797
- task.actionPayload !== void 0 && task.actionPayload !== null && /* @__PURE__ */ jsx(JsonViewer, { data: task.actionPayload, maxHeight: 200 }),
2798
- task.completedAt && /* @__PURE__ */ jsxs(Text, { size: "xs", c: "dimmed", children: [
2799
- "Completed ",
2800
- formatDate(task.completedAt),
2801
- task.completedBy ? ` by ${task.completedBy}` : ""
2802
- ] }),
2803
- task.targetExecutionId && /* @__PURE__ */ jsx(
2804
- Button,
2805
- {
2806
- variant: "light",
2807
- size: "xs",
2808
- leftSection: /* @__PURE__ */ jsx(IconExternalLink, { size: 14 }),
2809
- onClick: () => {
2810
- onViewExecution?.({
2811
- resourceType: task.originResourceType,
2812
- resourceId: task.originResourceId,
2813
- executionId: task.targetExecutionId
2814
- });
2815
- },
2816
- children: "View Execution"
2817
- }
2818
- )
2819
- ] }) })
2820
- ] }) }),
2821
- /* @__PURE__ */ jsx(CustomModal, { opened: !!confirmAction, onClose: () => setConfirmAction(null), size: "sm", children: /* @__PURE__ */ jsxs(Stack, { children: [
2822
- /* @__PURE__ */ jsx(Text, { fw: 600, children: "Confirm Action" }),
2823
- /* @__PURE__ */ jsx(Text, { size: "sm", children: confirmAction?.confirmationMessage || `Are you sure you want to ${confirmAction?.label.toLowerCase()}?` }),
2824
- /* @__PURE__ */ jsxs(Group, { justify: "flex-end", children: [
2825
- /* @__PURE__ */ jsx(Button, { variant: "default", onClick: () => setConfirmAction(null), children: "Cancel" }),
2826
- /* @__PURE__ */ jsx(Button, { onClick: handleConfirm, children: confirmAction?.label })
2827
- ] })
2828
- ] }) }),
2829
- selectedAction && /* @__PURE__ */ jsx(
2830
- ActionModal,
2831
- {
2832
- action: selectedAction,
2833
- task,
2834
- opened: actionModalOpened,
2835
- onClose: () => setActionModalOpened(false),
2836
- onSubmit: (payload, notes) => {
2837
- submitAction({
2838
- taskId: task.id,
2839
- actionId: selectedAction.id,
2840
- payload,
2841
- notes
2842
- });
2843
- setActionModalOpened(false);
2844
- },
2845
- richTextRenderer
2846
- }
2847
- ),
2848
- /* @__PURE__ */ jsx(CustomModal, { opened: deleteConfirmOpened, onClose: () => setDeleteConfirmOpened(false), size: "sm", children: /* @__PURE__ */ jsxs(Stack, { children: [
2849
- /* @__PURE__ */ jsx(Text, { fw: 600, children: "Delete Task" }),
2850
- /* @__PURE__ */ jsx(Text, { size: "sm", children: "Are you sure you want to delete this task? This action cannot be undone." }),
2851
- /* @__PURE__ */ jsxs(Group, { justify: "flex-end", children: [
2852
- /* @__PURE__ */ jsx(Button, { variant: "default", onClick: () => setDeleteConfirmOpened(false), children: "Cancel" }),
2853
- /* @__PURE__ */ jsx(
2854
- Button,
2855
- {
2856
- color: "red",
2857
- loading: isDeleting,
2858
- onClick: () => {
2859
- deleteTask(task.id);
2860
- setDeleteConfirmOpened(false);
2861
- },
2862
- children: "Delete"
2863
- }
2864
- )
2865
- ] })
2866
- ] }) })
2867
- ] })
2868
- }
2869
- );
2870
- }
2871
2625
 
2872
- export { ActionModal, AgentDefinitionDisplay, AgentExecutionLogs, BaseExecutionLogs, BaseExecutionLogsHeader, BaseExecutionLogsStates, CheckpointGroup, CollapsibleJsonSection, CommandQueueSidebar, CommandQueueSidebarMiddle, CommandQueueSidebarTop, CommandQueueTaskRow, CommandViewEdge, CommandViewGraph, CommandViewNode, ConfigCard, ContentSections, ContextUsageBadge, ContractDisplay, ExecutionErrorSection, FormFieldRenderer, LogEntry, LogGroup, NewKnowledgeMapEdge, NewKnowledgeMapGraph, NewKnowledgeMapNode, ResourceDefinitionSection, ResourceErrorState, ResourceFilter, ResourceHeader, ResourceNotFoundState, SessionMemory, TaskCard, ToolsListDisplay, WorkflowDefinitionDisplay, WorkflowExecutionLogs, getExecutionStatusConfig, getIcon, getLogLevelConfig, iconMap, useNewKnowledgeMapLayout };
2626
+ export { ActionModal, AgentDefinitionDisplay, AgentExecutionLogs, BaseExecutionLogs, BaseExecutionLogsHeader, BaseExecutionLogsStates, CheckpointGroup, CollapsibleJsonSection, CommandQueueSidebar, CommandQueueSidebarMiddle, CommandQueueSidebarTop, CommandQueueTaskRow, CommandViewEdge, CommandViewGraph, CommandViewNode, ConfigCard, ContentSections, ContextUsageBadge, ContractDisplay, ExecutionErrorSection, FormFieldRenderer, LogEntry, LogGroup, NewKnowledgeMapEdge, NewKnowledgeMapGraph, NewKnowledgeMapNode, ResourceDefinitionSection, ResourceErrorState, ResourceFilter, ResourceHeader, ResourceNotFoundState, SessionMemory, ToolsListDisplay, WorkflowDefinitionDisplay, WorkflowExecutionLogs, getExecutionStatusConfig, getIcon, getLogLevelConfig, iconMap, useNewKnowledgeMapLayout };
@@ -1,8 +1,8 @@
1
- import { useCyberColors } from './chunk-UG5565XQ.js';
2
- import { GlowDot } from './chunk-IAZT3VO6.js';
1
+ import { useCyberColors } from './chunk-US4JUSI3.js';
2
+ import { GlowDot } from './chunk-G25YWGUL.js';
3
3
  import { Graph_module_css_default, useDirectedChainHighlighting, useNodeSelection, useFitViewTrigger } from './chunk-F6RBK7NJ.js';
4
4
  import { STATUS_COLORS, getStatusIcon, formatDuration, getStatusColors, AGENT_CONSTANTS, shouldAnimateEdge, TIMELINE_CONSTANTS, calculateBarPosition, CONTAINER_CONSTANTS, useExecutionPath, useUnifiedWorkflowLayout, WORKFLOW_CONSTANTS, useReactFlowAgent } from './chunk-XA34RETF.js';
5
- import { glassBase } from './chunk-OH74INP2.js';
5
+ import { glassBase } from './chunk-FEZZ3IDU.js';
6
6
  import { memo, useMemo, useEffect, useState, useCallback, Fragment } from 'react';
7
7
  import { Paper, Stack, Text, Group, Badge, Box, useComputedColorScheme, Card, ActionIcon, Loader, SegmentedControl } from '@mantine/core';
8
8
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -1,6 +1,6 @@
1
- import { useCyberColors, CyberLegendItem, CyberAreaChart } from './chunk-UG5565XQ.js';
2
- import { CardHeader, EmptyState } from './chunk-IAZT3VO6.js';
3
- import { useResourcesHealth } from './chunk-QDO6NF2I.js';
1
+ import { useCyberColors, CyberLegendItem, CyberAreaChart } from './chunk-US4JUSI3.js';
2
+ import { CardHeader, EmptyState } from './chunk-G25YWGUL.js';
3
+ import { useResourcesHealth } from './chunk-GQCQDCLJ.js';
4
4
  import { getTimeRangeDates, formatBucketTime } from './chunk-LXHZYSMQ.js';
5
5
  import { Paper, Center, Loader, Group } from '@mantine/core';
6
6
  import { IconActivity, IconChartBar } from '@tabler/icons-react';
@@ -1,6 +1,6 @@
1
1
  import { ElevasisLoader } from './chunk-SZHARWKU.js';
2
- import { PRESETS, getPreset, generateShades, mantineThemeOverride, createCssVariablesResolver, PresetsProvider } from './chunk-OH74INP2.js';
3
- import { AppBackground } from './chunk-JR2C4XAN.js';
2
+ import { PRESETS, getPreset, generateShades, mantineThemeOverride, createCssVariablesResolver, PresetsProvider } from './chunk-FEZZ3IDU.js';
3
+ import { AppBackground } from './chunk-CYXZHBP4.js';
4
4
  import { ElevasisCoreProvider } from './chunk-R7WLWGPO.js';
5
5
  import { AppearanceProvider } from './chunk-QJ2KCHKX.js';
6
6
  import { getErrorInfo, formatErrorMessage, getErrorTitle } from './chunk-IOKL7BKE.js';
@@ -1,4 +1,4 @@
1
- import { CardHeader, APIErrorAlert, TrendIndicator, EmptyState, StatCard } from './chunk-IAZT3VO6.js';
1
+ import { CardHeader, CenteredErrorState, TrendIndicator, EmptyState, StatCard } from './chunk-G25YWGUL.js';
2
2
  import { getTimeRangeLabel, getTimeRangeDates, useErrorTrends, formatBucketTime } from './chunk-LXHZYSMQ.js';
3
3
  import { useRef, useState, useLayoutEffect, useEffect, useMemo, useCallback } from 'react';
4
4
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -677,7 +677,7 @@ function CostTrendChart({ data, summaryData, isLoading, error }) {
677
677
  URL.revokeObjectURL(url);
678
678
  };
679
679
  if (error) {
680
- return /* @__PURE__ */ jsx(APIErrorAlert, { error, title: "Failed to load cost trends" });
680
+ return /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsx(CenteredErrorState, { error, title: "Failed to load cost trends" }) });
681
681
  }
682
682
  if (isLoading) {
683
683
  return /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsx(Center, { p: "xl", children: /* @__PURE__ */ jsx(Loader, {}) }) });
@@ -853,7 +853,7 @@ function CombinedTrendChart({
853
853
  });
854
854
  const xTickFormatter = useCallback((value) => formatBucketTime(value, granularity), [granularity]);
855
855
  if (error) {
856
- return /* @__PURE__ */ jsx(APIErrorAlert, { error, title: "Failed to load trend data" });
856
+ return /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsx(CenteredErrorState, { error, title: "Failed to load trend data" }) });
857
857
  }
858
858
  if (isLoading) {
859
859
  return /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsx(Center, { p: "xl", children: /* @__PURE__ */ jsx(Loader, {}) }) });