@elevasis/ui 1.21.0 → 1.23.0
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/charts/index.js +2 -2
- package/dist/{chunk-CYJILY7M.js → chunk-5266RV46.js} +2 -2
- package/dist/{chunk-V422ET6W.js → chunk-7TLPKXC2.js} +2 -2
- package/dist/{chunk-UZWZY7TJ.js → chunk-HOYZWSNV.js} +90 -79
- package/dist/{chunk-BC6TJEON.js → chunk-IAZT3VO6.js} +157 -38
- package/dist/{chunk-2WLVOFK7.js → chunk-MRBYKPRI.js} +4 -3
- package/dist/{chunk-FVBYSDM4.js → chunk-N5SDJP44.js} +1 -1
- package/dist/{chunk-3DIU726S.js → chunk-NVSKJG3L.js} +25 -4
- package/dist/{chunk-NL6EFQYE.js → chunk-PCOE5EBU.js} +4 -4
- package/dist/{chunk-MOBXWBES.js → chunk-QGQECEOT.js} +458 -411
- package/dist/{chunk-CRFV2TVK.js → chunk-U3LCNE7V.js} +2 -2
- package/dist/{chunk-ST2RSBQ3.js → chunk-VDGE7JR6.js} +3 -3
- package/dist/components/index.css +0 -3
- package/dist/components/index.d.ts +37 -37
- package/dist/components/index.js +13 -15
- package/dist/features/auth/index.css +0 -3
- package/dist/features/dashboard/index.css +0 -3
- package/dist/features/dashboard/index.js +6 -7
- package/dist/features/monitoring/index.css +0 -3
- package/dist/features/monitoring/index.js +7 -8
- package/dist/features/operations/index.css +0 -3
- package/dist/features/operations/index.js +8 -9
- package/dist/features/settings/index.css +0 -3
- package/dist/features/settings/index.js +6 -7
- package/dist/hooks/index.css +0 -3
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/index.js +3 -4
- package/dist/hooks/published.css +0 -3
- package/dist/hooks/published.d.ts +1 -1
- package/dist/hooks/published.js +3 -4
- package/dist/index.css +0 -3
- package/dist/index.d.ts +2 -2
- package/dist/index.js +4 -5
- package/dist/layout/index.d.ts +1 -1
- package/dist/layout/index.js +1 -2
- package/dist/provider/index.css +0 -3
- package/dist/provider/index.d.ts +1 -1
- package/dist/provider/index.js +3 -4
- package/dist/provider/published.d.ts +1 -1
- package/dist/theme/index.d.ts +1 -1
- package/dist/theme/index.js +3 -3
- package/dist/types/index.d.ts +1 -1
- package/package.json +3 -3
- package/dist/chunk-R3R367QY.js +0 -14
- package/dist/theme/presets/synapse.d.ts +0 -10
- package/dist/theme/presets/synapse.d.ts.map +0 -1
- package/dist/theme/presets/synapse.js +0 -75
package/dist/charts/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { ActivityTrendChart, ChartFrame, CombinedTrendChart, CostTrendChart, CyberAreaChart, CyberDonut, CyberDonutTooltip, CyberLegendItem, HeroStatsRow, getSeriesColor, useCyberColors } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { ActivityTrendChart, ChartFrame, CombinedTrendChart, CostTrendChart, CyberAreaChart, CyberDonut, CyberDonutTooltip, CyberLegendItem, HeroStatsRow, getSeriesColor, useCyberColors } from '../chunk-N5SDJP44.js';
|
|
2
|
+
import '../chunk-IAZT3VO6.js';
|
|
3
3
|
import '../chunk-3KMDHCAR.js';
|
|
4
4
|
import '../chunk-NNKKBSJN.js';
|
|
5
5
|
import '../chunk-QJ2S46NI.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { useCyberColors, CyberLegendItem, CyberAreaChart } from './chunk-
|
|
2
|
-
import { CardHeader, EmptyState } from './chunk-
|
|
1
|
+
import { useCyberColors, CyberLegendItem, CyberAreaChart } from './chunk-N5SDJP44.js';
|
|
2
|
+
import { CardHeader, EmptyState } from './chunk-IAZT3VO6.js';
|
|
3
3
|
import { useResourcesHealth } from './chunk-EDAYKRPJ.js';
|
|
4
4
|
import { getTimeRangeDates, formatBucketTime } from './chunk-LXHZYSMQ.js';
|
|
5
5
|
import { Paper, Center, Loader, Group } from '@mantine/core';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FilterBar } from './chunk-PDHTXPSF.js';
|
|
2
|
-
import { CyberAreaChart } from './chunk-
|
|
3
|
-
import { APIErrorAlert, CardHeader, StatsCardSkeleton, TrendIndicator, DetailCardSkeleton, EmptyState } from './chunk-
|
|
2
|
+
import { CyberAreaChart } from './chunk-N5SDJP44.js';
|
|
3
|
+
import { APIErrorAlert, CardHeader, StatsCardSkeleton, TrendIndicator, DetailCardSkeleton, EmptyState } from './chunk-IAZT3VO6.js';
|
|
4
4
|
import { useResolveError, useResolveAllErrors, usePaginationState, useErrorDetails, useMarkAsRead } from './chunk-EDAYKRPJ.js';
|
|
5
5
|
import { formatBucketTime } from './chunk-LXHZYSMQ.js';
|
|
6
6
|
import { formatDuration } from './chunk-XA34RETF.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FilterBar } from './chunk-PDHTXPSF.js';
|
|
2
2
|
import { CustomModal } from './chunk-GBMNCNHX.js';
|
|
3
|
-
import { ListSkeleton, EmptyState, PageTitleCaption, CardHeader, APIErrorAlert } from './chunk-
|
|
3
|
+
import { ListSkeleton, EmptyState, PageTitleCaption, CardHeader, APIErrorAlert } from './chunk-IAZT3VO6.js';
|
|
4
4
|
import { AppShellLoader } from './chunk-WWEMNIHW.js';
|
|
5
5
|
import { useDeleteCredential, useCreateCredential, useCredentials, MEMBERSHIP_STATUS_COLORS, transformMembershipToTableRow, CredentialSchemas } from './chunk-FATKFO7X.js';
|
|
6
6
|
import { formatDateTime } from './chunk-IOKL7BKE.js';
|
|
@@ -535,85 +535,96 @@ function OrganizationMembershipsList({
|
|
|
535
535
|
subtitle: loading ? "Loading memberships..." : `Showing ${filteredRows.length} ${filteredRows.length === 1 ? "membership" : "memberships"}`
|
|
536
536
|
}
|
|
537
537
|
),
|
|
538
|
-
/* @__PURE__ */ jsxs(
|
|
539
|
-
/* @__PURE__ */
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
/* @__PURE__ */ jsx(Table.
|
|
569
|
-
/* @__PURE__ */ jsx(Table.
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
/* @__PURE__ */ jsx(Table.Tbody, { children: loading ? /* @__PURE__ */ jsx(Table.Tr, { children: /* @__PURE__ */ jsx(Table.Td, { colSpan: 5, children: /* @__PURE__ */ jsx(Center, { p: "xl", children: /* @__PURE__ */ jsx(Loader, {}) }) }) }) : filteredRows.length === 0 ? /* @__PURE__ */ jsx(Table.Tr, { children: /* @__PURE__ */ jsx(Table.Td, { colSpan: 5, children: /* @__PURE__ */ jsx(
|
|
576
|
-
EmptyState,
|
|
577
|
-
{
|
|
578
|
-
icon: IconBuilding,
|
|
579
|
-
title: "No memberships found",
|
|
580
|
-
description: searchTerm || statusFilter ? "Try adjusting your search or filter criteria" : "You are not a member of any organizations yet"
|
|
581
|
-
}
|
|
582
|
-
) }) }) : filteredRows.map((row) => /* @__PURE__ */ jsxs(Table.Tr, { children: [
|
|
583
|
-
/* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsxs(Group, { gap: "sm", children: [
|
|
584
|
-
/* @__PURE__ */ jsx(IconBuilding, { size: 16 }),
|
|
585
|
-
/* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsx(Text, { fw: 500, size: "sm", children: row.organizationName }) })
|
|
538
|
+
/* @__PURE__ */ jsxs(Stack, { children: [
|
|
539
|
+
/* @__PURE__ */ jsxs(FilterBar, { children: [
|
|
540
|
+
/* @__PURE__ */ jsx(
|
|
541
|
+
TextInput,
|
|
542
|
+
{
|
|
543
|
+
placeholder: "Search organizations or roles...",
|
|
544
|
+
leftSection: /* @__PURE__ */ jsx(IconSearch, { size: 16 }),
|
|
545
|
+
value: searchTerm,
|
|
546
|
+
onChange: (event) => setSearchTerm(event.currentTarget.value),
|
|
547
|
+
style: { flex: 1 },
|
|
548
|
+
disabled: loading
|
|
549
|
+
}
|
|
550
|
+
),
|
|
551
|
+
/* @__PURE__ */ jsx(
|
|
552
|
+
Select,
|
|
553
|
+
{
|
|
554
|
+
placeholder: "Filter by status",
|
|
555
|
+
value: statusFilter,
|
|
556
|
+
onChange: (value) => setStatusFilter(value),
|
|
557
|
+
data: [
|
|
558
|
+
{ value: "", label: "All Statuses" },
|
|
559
|
+
{ value: "active", label: "Active" },
|
|
560
|
+
{ value: "inactive", label: "Inactive" }
|
|
561
|
+
],
|
|
562
|
+
style: { minWidth: 150 },
|
|
563
|
+
clearable: true,
|
|
564
|
+
disabled: loading
|
|
565
|
+
}
|
|
566
|
+
)
|
|
567
|
+
] }),
|
|
568
|
+
/* @__PURE__ */ jsx(Table.ScrollContainer, { minWidth: 700, children: /* @__PURE__ */ jsxs(Table, { children: [
|
|
569
|
+
/* @__PURE__ */ jsx(Table.Thead, { children: /* @__PURE__ */ jsxs(Table.Tr, { children: [
|
|
570
|
+
/* @__PURE__ */ jsx(Table.Th, { children: "Organization" }),
|
|
571
|
+
/* @__PURE__ */ jsx(Table.Th, { children: "Role" }),
|
|
572
|
+
/* @__PURE__ */ jsx(Table.Th, { children: "Status" }),
|
|
573
|
+
/* @__PURE__ */ jsx(Table.Th, { children: "Joined" }),
|
|
574
|
+
/* @__PURE__ */ jsx(Table.Th, { align: "right", children: "Actions" })
|
|
586
575
|
] }) }),
|
|
587
|
-
/* @__PURE__ */ jsx(Table.
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
),
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
576
|
+
/* @__PURE__ */ jsx(Table.Tbody, { children: loading ? /* @__PURE__ */ jsx(Table.Tr, { children: /* @__PURE__ */ jsx(Table.Td, { colSpan: 5, children: /* @__PURE__ */ jsx(Center, { p: "xl", children: /* @__PURE__ */ jsx(Loader, {}) }) }) }) : filteredRows.length === 0 ? /* @__PURE__ */ jsx(Table.Tr, { children: /* @__PURE__ */ jsx(Table.Td, { colSpan: 5, children: /* @__PURE__ */ jsx(
|
|
577
|
+
EmptyState,
|
|
578
|
+
{
|
|
579
|
+
icon: IconBuilding,
|
|
580
|
+
title: "No memberships found",
|
|
581
|
+
description: searchTerm || statusFilter ? "Try adjusting your search or filter criteria" : "You are not a member of any organizations yet"
|
|
582
|
+
}
|
|
583
|
+
) }) }) : filteredRows.map((row) => /* @__PURE__ */ jsxs(Table.Tr, { children: [
|
|
584
|
+
/* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsxs(Group, { gap: "sm", children: [
|
|
585
|
+
/* @__PURE__ */ jsx(IconBuilding, { size: 16 }),
|
|
586
|
+
/* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsx(Text, { fw: 500, size: "sm", children: row.organizationName }) })
|
|
587
|
+
] }) }),
|
|
588
|
+
/* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsx(Badge, { variant: "light", color: "blue", size: "sm", children: row.role }) }),
|
|
589
|
+
/* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsx(MembershipStatusBadge, { status: row.status }) }),
|
|
590
|
+
/* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: row.joinedAt.toLocaleDateString() }) }),
|
|
591
|
+
/* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
|
|
592
|
+
row.canEdit && onEditRole && /* @__PURE__ */ jsx(
|
|
593
|
+
ActionIcon,
|
|
594
|
+
{
|
|
595
|
+
variant: "subtle",
|
|
596
|
+
size: "sm",
|
|
597
|
+
color: "blue",
|
|
598
|
+
onClick: () => onEditRole(row.id),
|
|
599
|
+
disabled: row.status !== "active",
|
|
600
|
+
children: /* @__PURE__ */ jsx(IconEdit, { size: 16 })
|
|
601
|
+
}
|
|
602
|
+
),
|
|
603
|
+
row.canRemove && onLeaveOrganization && row.status === "active" && /* @__PURE__ */ jsx(
|
|
604
|
+
ActionIcon,
|
|
605
|
+
{
|
|
606
|
+
variant: "subtle",
|
|
607
|
+
size: "sm",
|
|
608
|
+
color: "red",
|
|
609
|
+
onClick: () => onLeaveOrganization(row.id),
|
|
610
|
+
children: /* @__PURE__ */ jsx(IconUserX, { size: 16 })
|
|
611
|
+
}
|
|
612
|
+
),
|
|
613
|
+
row.status === "inactive" && /* @__PURE__ */ jsx(
|
|
614
|
+
ActionIcon,
|
|
615
|
+
{
|
|
616
|
+
variant: "subtle",
|
|
617
|
+
size: "sm",
|
|
618
|
+
color: "green",
|
|
619
|
+
disabled: true,
|
|
620
|
+
title: "Contact admin to reactivate",
|
|
621
|
+
children: /* @__PURE__ */ jsx(IconUserCheck, { size: 16 })
|
|
622
|
+
}
|
|
623
|
+
)
|
|
624
|
+
] }) })
|
|
625
|
+
] }, row.id)) })
|
|
626
|
+
] }) })
|
|
627
|
+
] })
|
|
617
628
|
] });
|
|
618
629
|
}
|
|
619
630
|
function WebhookUrlDisplayModal({ opened, endpoint, webhookUrl, onClose }) {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { StyledMarkdown } from './chunk-3KMDHCAR.js';
|
|
2
2
|
import { ResourceStatusColors } from './chunk-ELJIFLCB.js';
|
|
3
|
-
import { getErrorInfo, getErrorTitle, getResourceIcon } from './chunk-IOKL7BKE.js';
|
|
3
|
+
import { getErrorInfo, getErrorTitle, getResourceIcon, formatTimeAgo } from './chunk-IOKL7BKE.js';
|
|
4
4
|
import { useAuthContext } from './chunk-BRJ3QZ4E.js';
|
|
5
5
|
import { useRouterContext } from './chunk-Q7DJKLEN.js';
|
|
6
|
-
import { Center, Stack, Title, Text, Button, Box, Loader, Badge, Group, Collapse, ScrollArea, Card,
|
|
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 } from '@tabler/icons-react';
|
|
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
9
|
import { useState } from 'react';
|
|
10
10
|
import { Prism } from 'react-syntax-highlighter';
|
|
11
11
|
import { oneDark } from 'react-syntax-highlighter/dist/esm/styles/prism';
|
|
@@ -107,30 +107,14 @@ var PageTitleCaption = ({ title, caption, rightSection }) => {
|
|
|
107
107
|
rightSection
|
|
108
108
|
] });
|
|
109
109
|
};
|
|
110
|
-
function StatsCardSkeleton({ chartHeight =
|
|
111
|
-
return /* @__PURE__ */
|
|
112
|
-
/* @__PURE__ */ jsx(Skeleton, { height: 24, width: 150, mb: "md" }),
|
|
113
|
-
/* @__PURE__ */ jsxs(Group, { justify: "space-between", mb: "xl", children: [
|
|
114
|
-
/* @__PURE__ */ jsx(Skeleton, { height: 60, width: 100 }),
|
|
115
|
-
statCount >= 2 && /* @__PURE__ */ jsx(Skeleton, { height: 60, width: 100 }),
|
|
116
|
-
/* @__PURE__ */ jsx(Skeleton, { height: 40, circle: true })
|
|
117
|
-
] }),
|
|
118
|
-
withChart && /* @__PURE__ */ jsx(Skeleton, { height: chartHeight })
|
|
119
|
-
] });
|
|
110
|
+
function StatsCardSkeleton({ chartHeight = 200 }) {
|
|
111
|
+
return /* @__PURE__ */ jsx(Card, { withBorder: true, children: /* @__PURE__ */ jsx(Center, { mih: chartHeight, children: /* @__PURE__ */ jsx(Loader, { size: "md" }) }) });
|
|
120
112
|
}
|
|
121
113
|
function ListSkeleton({ rows = 3, rowHeight = 50 }) {
|
|
122
|
-
return /* @__PURE__ */ jsx(Stack, {
|
|
114
|
+
return /* @__PURE__ */ jsx(Stack, { children: /* @__PURE__ */ jsx(Center, { mih: rows * rowHeight, children: /* @__PURE__ */ jsx(Loader, { size: "md" }) }) });
|
|
123
115
|
}
|
|
124
116
|
function DetailCardSkeleton({ rows = 3 }) {
|
|
125
|
-
return /* @__PURE__ */
|
|
126
|
-
/* @__PURE__ */ jsx(Skeleton, { height: 24, width: 150, mb: "md" }),
|
|
127
|
-
/* @__PURE__ */ jsxs(Group, { justify: "space-between", mb: "lg", children: [
|
|
128
|
-
/* @__PURE__ */ jsx(Skeleton, { height: 80, width: 100 }),
|
|
129
|
-
/* @__PURE__ */ jsx(Skeleton, { height: 80, width: 100 }),
|
|
130
|
-
/* @__PURE__ */ jsx(Skeleton, { height: 40, circle: true })
|
|
131
|
-
] }),
|
|
132
|
-
/* @__PURE__ */ jsx(Stack, { gap: "xs", children: Array.from({ length: rows }, (_, i) => /* @__PURE__ */ jsx(Skeleton, { height: 60 }, i)) })
|
|
133
|
-
] });
|
|
117
|
+
return /* @__PURE__ */ jsx(Card, { withBorder: true, children: /* @__PURE__ */ jsx(Center, { mih: rows * 60 + 100, children: /* @__PURE__ */ jsx(Loader, { size: "md" }) }) });
|
|
134
118
|
}
|
|
135
119
|
function CustomSelector({
|
|
136
120
|
value,
|
|
@@ -239,13 +223,7 @@ function HeroStatCard({
|
|
|
239
223
|
const sm = size === "sm";
|
|
240
224
|
const iconSize = sm ? 36 : 46;
|
|
241
225
|
if (isLoading) {
|
|
242
|
-
return /* @__PURE__ */ jsx(Paper, { p: sm ? "md" : "lg", className: StatCard_module_css_default.heroCard, children: /* @__PURE__ */
|
|
243
|
-
/* @__PURE__ */ jsx(Skeleton, { circle: true, height: iconSize }),
|
|
244
|
-
/* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
|
|
245
|
-
/* @__PURE__ */ jsx(Skeleton, { height: sm ? 24 : 32, width: 60 }),
|
|
246
|
-
/* @__PURE__ */ jsx(Skeleton, { height: 12, width: 80 })
|
|
247
|
-
] })
|
|
248
|
-
] }) });
|
|
226
|
+
return /* @__PURE__ */ jsx(Paper, { p: sm ? "md" : "lg", className: StatCard_module_css_default.heroCard, children: /* @__PURE__ */ jsx(Center, { mih: iconSize + 16, children: /* @__PURE__ */ jsx(Loader, { size: "sm" }) }) });
|
|
249
227
|
}
|
|
250
228
|
return /* @__PURE__ */ jsx(Paper, { p: sm ? "md" : "lg", className: StatCard_module_css_default.heroCard, children: /* @__PURE__ */ jsxs(Group, { gap: sm ? "sm" : "md", wrap: "nowrap", children: [
|
|
251
229
|
/* @__PURE__ */ jsx("div", { className: sm ? StatCard_module_css_default.iconRingSm : StatCard_module_css_default.iconRing, children: /* @__PURE__ */ jsx(IconComponent, { size: sm ? 18 : 22 }) }),
|
|
@@ -266,7 +244,7 @@ function HeroStatCard({
|
|
|
266
244
|
] }) });
|
|
267
245
|
}
|
|
268
246
|
function StatCardSkeleton() {
|
|
269
|
-
return /* @__PURE__ */ jsx(Card, { withBorder: true, children: /* @__PURE__ */ jsx(
|
|
247
|
+
return /* @__PURE__ */ jsx(Card, { withBorder: true, children: /* @__PURE__ */ jsx(Center, { mih: 60, children: /* @__PURE__ */ jsx(Loader, { size: "sm" }) }) });
|
|
270
248
|
}
|
|
271
249
|
var jsonTheme = Object.fromEntries(
|
|
272
250
|
Object.entries(oneDark).map(([key, value]) => [
|
|
@@ -449,13 +427,14 @@ function ResourceCard({
|
|
|
449
427
|
onClick,
|
|
450
428
|
layout = "stack",
|
|
451
429
|
rightSection,
|
|
430
|
+
topSection,
|
|
452
431
|
lastRunLabel,
|
|
453
432
|
style,
|
|
454
433
|
...rest
|
|
455
434
|
}) {
|
|
456
435
|
const Icon = getResourceIcon(resource.type);
|
|
457
436
|
if (!Icon) {
|
|
458
|
-
return /* @__PURE__ */ jsx(
|
|
437
|
+
return /* @__PURE__ */ jsx(Card, { shadow: "sm", withBorder: true, children: /* @__PURE__ */ jsxs(Text, { children: [
|
|
459
438
|
"Invalid resource type: ",
|
|
460
439
|
resource.type
|
|
461
440
|
] }) });
|
|
@@ -494,13 +473,55 @@ function ResourceCard({
|
|
|
494
473
|
/* @__PURE__ */ jsx(Text, { size: layout === "grid" ? "sm" : "xs", c: "dimmed", ff: "monospace", children: resource.resourceId })
|
|
495
474
|
] })
|
|
496
475
|
] });
|
|
497
|
-
if (layout === "
|
|
476
|
+
if (layout === "card") {
|
|
498
477
|
return /* @__PURE__ */ jsx(
|
|
499
|
-
|
|
478
|
+
Card,
|
|
500
479
|
{
|
|
501
480
|
withBorder: true,
|
|
502
|
-
|
|
481
|
+
padding: 0,
|
|
482
|
+
style: cardStyle,
|
|
483
|
+
onClick: () => onClick(resource),
|
|
484
|
+
"data-resource-id": rest["data-resource-id"],
|
|
485
|
+
children: /* @__PURE__ */ jsxs(Stack, { gap: 8, p: "sm", pb: "xs", children: [
|
|
486
|
+
/* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "nowrap", justify: "space-between", children: [
|
|
487
|
+
/* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "nowrap", style: { minWidth: 0 }, children: [
|
|
488
|
+
/* @__PURE__ */ jsx(Icon, { size: 20, color: "var(--color-primary)", style: { flexShrink: 0 } }),
|
|
489
|
+
/* @__PURE__ */ jsx(Text, { fw: 600, size: "md", style: { fontFamily: "var(--elevasis-font-family-subtitle)" }, truncate: true, children: resource.name })
|
|
490
|
+
] }),
|
|
491
|
+
/* @__PURE__ */ jsxs(Group, { gap: 6, wrap: "nowrap", style: { flexShrink: 0 }, children: [
|
|
492
|
+
resource.version && /* @__PURE__ */ jsxs(Badge, { variant: "light", size: "sm", children: [
|
|
493
|
+
"v",
|
|
494
|
+
resource.version
|
|
495
|
+
] }),
|
|
496
|
+
/* @__PURE__ */ jsx(Badge, { color: ResourceStatusColors[resource.status], variant: "light", size: "sm", children: resource.status.toUpperCase() })
|
|
497
|
+
] })
|
|
498
|
+
] }),
|
|
499
|
+
resource.description && /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", truncate: true, children: resource.description }),
|
|
500
|
+
/* @__PURE__ */ jsxs(Group, { gap: "xs", justify: "space-between", wrap: "nowrap", children: [
|
|
501
|
+
rightSection || /* @__PURE__ */ jsx("span", {}),
|
|
502
|
+
lastRunLabel && /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", style: { whiteSpace: "nowrap" }, children: lastRunLabel })
|
|
503
|
+
] }),
|
|
504
|
+
topSection
|
|
505
|
+
] })
|
|
506
|
+
}
|
|
507
|
+
);
|
|
508
|
+
}
|
|
509
|
+
if (layout === "row") {
|
|
510
|
+
const [hovered, setHovered] = useState(false);
|
|
511
|
+
return /* @__PURE__ */ jsx(
|
|
512
|
+
Card,
|
|
513
|
+
{
|
|
514
|
+
padding: 0,
|
|
515
|
+
style: {
|
|
516
|
+
cursor: "pointer",
|
|
517
|
+
border: "1px solid var(--color-border)",
|
|
518
|
+
transition: "background 150ms ease",
|
|
519
|
+
background: hovered ? "var(--active-background)" : "var(--color-surface)",
|
|
520
|
+
...style
|
|
521
|
+
},
|
|
503
522
|
onClick: () => onClick(resource),
|
|
523
|
+
onMouseEnter: () => setHovered(true),
|
|
524
|
+
onMouseLeave: () => setHovered(false),
|
|
504
525
|
"data-resource-id": rest["data-resource-id"],
|
|
505
526
|
children: /* @__PURE__ */ jsxs(
|
|
506
527
|
"div",
|
|
@@ -524,15 +545,40 @@ function ResourceCard({
|
|
|
524
545
|
/* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", truncate: true, style: { minWidth: 0 }, children: resource.description || "" }),
|
|
525
546
|
/* @__PURE__ */ jsx("div", { style: { whiteSpace: "nowrap" }, children: rightSection }),
|
|
526
547
|
/* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", style: { whiteSpace: "nowrap", textAlign: "right" }, children: lastRunLabel || "" }),
|
|
527
|
-
/* @__PURE__ */ jsx(
|
|
548
|
+
/* @__PURE__ */ jsx(
|
|
549
|
+
IconChevronRight,
|
|
550
|
+
{
|
|
551
|
+
size: 14,
|
|
552
|
+
style: {
|
|
553
|
+
opacity: hovered ? 0.7 : 0,
|
|
554
|
+
transition: "opacity 150ms ease"
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
)
|
|
528
558
|
]
|
|
529
559
|
}
|
|
530
560
|
)
|
|
531
561
|
}
|
|
532
562
|
);
|
|
533
563
|
}
|
|
564
|
+
if (layout === "grid") {
|
|
565
|
+
return /* @__PURE__ */ jsx(
|
|
566
|
+
Card,
|
|
567
|
+
{
|
|
568
|
+
withBorder: true,
|
|
569
|
+
padding: "sm",
|
|
570
|
+
style: cardStyle,
|
|
571
|
+
onClick: () => onClick(resource),
|
|
572
|
+
"data-resource-id": rest["data-resource-id"],
|
|
573
|
+
children: /* @__PURE__ */ jsxs(Grid, { gutter: "sm", align: "center", children: [
|
|
574
|
+
/* @__PURE__ */ jsx(Grid.Col, { span: 8, children: details }),
|
|
575
|
+
rightSection && /* @__PURE__ */ jsx(Grid.Col, { span: 4, children: /* @__PURE__ */ jsx(Group, { justify: "flex-end", gap: "md", wrap: "nowrap", children: rightSection }) })
|
|
576
|
+
] })
|
|
577
|
+
}
|
|
578
|
+
);
|
|
579
|
+
}
|
|
534
580
|
return /* @__PURE__ */ jsx(
|
|
535
|
-
|
|
581
|
+
Card,
|
|
536
582
|
{
|
|
537
583
|
shadow: "sm",
|
|
538
584
|
withBorder: true,
|
|
@@ -592,5 +638,78 @@ function GlowDot({ color, size = "md" }) {
|
|
|
592
638
|
}
|
|
593
639
|
);
|
|
594
640
|
}
|
|
641
|
+
var STATUS_COLORS = {
|
|
642
|
+
// Project
|
|
643
|
+
active: "blue",
|
|
644
|
+
on_track: "green",
|
|
645
|
+
at_risk: "yellow",
|
|
646
|
+
blocked: "red",
|
|
647
|
+
completed: "teal",
|
|
648
|
+
paused: "gray",
|
|
649
|
+
// Milestone
|
|
650
|
+
upcoming: "gray",
|
|
651
|
+
in_progress: "blue",
|
|
652
|
+
overdue: "red",
|
|
653
|
+
// Task
|
|
654
|
+
pending: "gray",
|
|
655
|
+
planned: "gray",
|
|
656
|
+
submitted: "yellow",
|
|
657
|
+
approved: "green",
|
|
658
|
+
rejected: "red",
|
|
659
|
+
revision_requested: "orange",
|
|
660
|
+
cancelled: "gray",
|
|
661
|
+
// Note
|
|
662
|
+
call_note: "blue",
|
|
663
|
+
status_update: "green",
|
|
664
|
+
issue: "yellow",
|
|
665
|
+
blocker: "red"
|
|
666
|
+
};
|
|
667
|
+
function StatusBadge({ status, ...props }) {
|
|
668
|
+
const label = status.split("_").map((w) => w.charAt(0).toUpperCase() + w.slice(1)).join(" ");
|
|
669
|
+
return /* @__PURE__ */ jsx(Badge, { variant: "light", color: STATUS_COLORS[status] || "gray", size: "sm", ...props, children: label });
|
|
670
|
+
}
|
|
671
|
+
var ICON_MAP = {
|
|
672
|
+
deal_created: IconPlus,
|
|
673
|
+
stage_change: IconArrowRight,
|
|
674
|
+
discovery_submitted: IconFileText,
|
|
675
|
+
proposal_generated: IconFileText,
|
|
676
|
+
proposal_sent: IconSend,
|
|
677
|
+
proposal_reviewed: IconEye,
|
|
678
|
+
closed_lost: IconX,
|
|
679
|
+
fees_updated: IconCreditCard,
|
|
680
|
+
closed_won: IconCircleCheck,
|
|
681
|
+
reply_received: IconMessageReply,
|
|
682
|
+
booking_cancelled: IconCalendarCancel,
|
|
683
|
+
booking_rescheduled: IconCalendarEvent,
|
|
684
|
+
reminder_sent: IconBell,
|
|
685
|
+
reply_sent_to_lead: IconMailForward,
|
|
686
|
+
followup_email_sent: IconMailForward,
|
|
687
|
+
no_show: IconUserOff,
|
|
688
|
+
moved_to_nurturing: IconHeartHandshake
|
|
689
|
+
};
|
|
690
|
+
function ActivityTimeline({ activities }) {
|
|
691
|
+
if (!activities.length) {
|
|
692
|
+
return /* @__PURE__ */ jsx(EmptyState, { icon: IconInbox, title: "No activity events yet" });
|
|
693
|
+
}
|
|
694
|
+
const sorted = [...activities].reverse();
|
|
695
|
+
return /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsx(Timeline, { active: sorted.length - 1, bulletSize: 28, lineWidth: 2, color: "var(--color-primary)", children: sorted.map((activity, index) => {
|
|
696
|
+
const Icon = ICON_MAP[activity.type] || IconActivity;
|
|
697
|
+
return /* @__PURE__ */ jsx(
|
|
698
|
+
Timeline.Item,
|
|
699
|
+
{
|
|
700
|
+
bullet: /* @__PURE__ */ jsx(ThemeIcon, { size: 28, variant: "filled", color: "var(--color-primary)", radius: "xl", children: /* @__PURE__ */ jsx(Icon, { size: 14 }) }),
|
|
701
|
+
children: /* @__PURE__ */ jsxs(Stack, { gap: 2, children: [
|
|
702
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, children: activity.title }),
|
|
703
|
+
activity.description && /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", children: activity.description }),
|
|
704
|
+
/* @__PURE__ */ jsxs(Text, { size: "xs", c: "dimmed", children: [
|
|
705
|
+
formatTimeAgo(activity.occurredAt),
|
|
706
|
+
activity.actor && ` by ${activity.actor}`
|
|
707
|
+
] })
|
|
708
|
+
] })
|
|
709
|
+
},
|
|
710
|
+
index
|
|
711
|
+
);
|
|
712
|
+
}) }) });
|
|
713
|
+
}
|
|
595
714
|
|
|
596
|
-
export { APIErrorAlert, CardHeader, CollapsibleSection, ContextViewer, CustomSelector, DetailCardSkeleton, EmptyState, GlowDot, JsonViewer, ListSkeleton, PageNotFound, PageTitleCaption, ResourceCard, StatCard, StatCardSkeleton, StatsCardSkeleton, TabCountBadge, TimeRangeSelector, TrendIndicator, catalogItemToResourceDefinition };
|
|
715
|
+
export { APIErrorAlert, ActivityTimeline, CardHeader, CollapsibleSection, ContextViewer, CustomSelector, DetailCardSkeleton, EmptyState, GlowDot, JsonViewer, ListSkeleton, PageNotFound, PageTitleCaption, ResourceCard, StatCard, StatCardSkeleton, StatsCardSkeleton, StatusBadge, TabCountBadge, TimeRangeSelector, TrendIndicator, catalogItemToResourceDefinition };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { usePresetsContext } from './chunk-
|
|
1
|
+
import { usePresetsContext } from './chunk-QGQECEOT.js';
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
3
|
|
|
4
4
|
var BUILT_IN_NAMES = /* @__PURE__ */ new Set([
|
|
@@ -16,8 +16,9 @@ var BUILT_IN_NAMES = /* @__PURE__ */ new Set([
|
|
|
16
16
|
"canopy",
|
|
17
17
|
"slate",
|
|
18
18
|
"cyber-strike",
|
|
19
|
-
"cyber-
|
|
20
|
-
"cyber-void"
|
|
19
|
+
"cyber-chrome",
|
|
20
|
+
"cyber-void",
|
|
21
|
+
"quarry"
|
|
21
22
|
]);
|
|
22
23
|
function titleCase(str) {
|
|
23
24
|
return str.replace(/(^|-)(\w)/g, (_, sep, char) => (sep ? " " : "") + char.toUpperCase());
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CardHeader, APIErrorAlert, TrendIndicator, EmptyState, StatCard } from './chunk-
|
|
1
|
+
import { CardHeader, APIErrorAlert, TrendIndicator, EmptyState, StatCard } from './chunk-IAZT3VO6.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';
|
|
@@ -276,8 +276,17 @@ function FilmGrain({ darkOpacity = 0.02, lightOpacity = 0.06, className }) {
|
|
|
276
276
|
}
|
|
277
277
|
);
|
|
278
278
|
}
|
|
279
|
+
function AppBackground({ children }) {
|
|
280
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
281
|
+
/* @__PURE__ */ jsx(PerspectiveGrid, {}),
|
|
282
|
+
/* @__PURE__ */ jsx(RadiantGlow, {}),
|
|
283
|
+
/* @__PURE__ */ jsx(FloatingOrbs, {}),
|
|
284
|
+
/* @__PURE__ */ jsx(FilmGrain, {}),
|
|
285
|
+
children
|
|
286
|
+
] });
|
|
287
|
+
}
|
|
279
288
|
var randRange = (min, max) => min + Math.random() * (max - min);
|
|
280
|
-
var FLUX_SPARKS = Array.from({ length:
|
|
289
|
+
var FLUX_SPARKS = Array.from({ length: 30 }, () => {
|
|
281
290
|
const duration = randRange(12, 70);
|
|
282
291
|
const pulse = randRange(0.8, 2.2);
|
|
283
292
|
return {
|
|
@@ -291,7 +300,7 @@ var FLUX_SPARKS = Array.from({ length: 32 }, () => {
|
|
|
291
300
|
pulseDelay: -randRange(0, pulse)
|
|
292
301
|
};
|
|
293
302
|
});
|
|
294
|
-
var FLUX_MOTES = Array.from({ length:
|
|
303
|
+
var FLUX_MOTES = Array.from({ length: 18 }, () => {
|
|
295
304
|
const duration = randRange(18, 90);
|
|
296
305
|
const pulse = randRange(1.6, 4);
|
|
297
306
|
return {
|
|
@@ -483,7 +492,7 @@ function CyberParticles({ variant: _variant, className }) {
|
|
|
483
492
|
);
|
|
484
493
|
}
|
|
485
494
|
function CyberBackground({ variant }) {
|
|
486
|
-
const glowColor = variant === "volt" ? "color-mix(in srgb, var(--color-primary)
|
|
495
|
+
const glowColor = variant === "chrome" ? void 0 : variant === "volt" || variant === "void" ? "color-mix(in srgb, var(--color-primary) 25%, transparent)" : "color-mix(in srgb, var(--color-primary) 35%, transparent)";
|
|
487
496
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
488
497
|
/* @__PURE__ */ jsx(PerspectiveGrid, { lineColor: "var(--color-border)", prominentGlow: true, glowColor }),
|
|
489
498
|
/* @__PURE__ */ jsx(RadiantGlow, {}),
|
|
@@ -545,6 +554,12 @@ var STYLE = `
|
|
|
545
554
|
--wavy-mote-core: rgba(140, 205, 155, 0.85);
|
|
546
555
|
--wavy-mote-halo: rgba(140, 205, 155, 0.3);
|
|
547
556
|
}
|
|
557
|
+
.wavy-bg-root[data-variant="quarry"] {
|
|
558
|
+
--wavy-wave-front: #dde0e4;
|
|
559
|
+
--wavy-wave-back: #e6e9ed;
|
|
560
|
+
--wavy-mote-core: rgba(150, 158, 170, 0.85);
|
|
561
|
+
--wavy-mote-halo: rgba(150, 158, 170, 0.3);
|
|
562
|
+
}
|
|
548
563
|
/* Variant palettes (dark mode overrides) */
|
|
549
564
|
[data-mantine-color-scheme="dark"] .wavy-bg-root[data-variant="nirvana"] {
|
|
550
565
|
--wavy-wave-front: #140804;
|
|
@@ -570,6 +585,12 @@ var STYLE = `
|
|
|
570
585
|
--wavy-mote-core: rgba(74, 168, 96, 0.4);
|
|
571
586
|
--wavy-mote-halo: rgba(74, 168, 96, 0.12);
|
|
572
587
|
}
|
|
588
|
+
[data-mantine-color-scheme="dark"] .wavy-bg-root[data-variant="quarry"] {
|
|
589
|
+
--wavy-wave-front: #0d0c0a;
|
|
590
|
+
--wavy-wave-back: #070605;
|
|
591
|
+
--wavy-mote-core: rgba(168, 164, 156, 0.4);
|
|
592
|
+
--wavy-mote-halo: rgba(168, 164, 156, 0.12);
|
|
593
|
+
}
|
|
573
594
|
.wavy-bg-layer {
|
|
574
595
|
position: absolute;
|
|
575
596
|
top: 0;
|
|
@@ -706,4 +727,4 @@ function WaveBackground({ variant }) {
|
|
|
706
727
|
] });
|
|
707
728
|
}
|
|
708
729
|
|
|
709
|
-
export { CyberBackground, CyberParticles, FilmGrain, FloatingOrbs, PerspectiveGrid, RadiantGlow, WaveBackground };
|
|
730
|
+
export { AppBackground, CyberBackground, CyberParticles, FilmGrain, FloatingOrbs, PerspectiveGrid, RadiantGlow, WaveBackground };
|
|
@@ -1,8 +1,8 @@
|
|
|
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-
|
|
4
|
-
import { useCyberColors, CyberDonut } from './chunk-
|
|
5
|
-
import { JsonViewer, CardHeader, PageTitleCaption, CollapsibleSection, ContextViewer } from './chunk-
|
|
3
|
+
import { BaseNode, useGraphTheme, BaseEdge, GraphBackground, GraphLegend, GraphFitViewButton, GraphFitViewHandler } from './chunk-VDGE7JR6.js';
|
|
4
|
+
import { useCyberColors, CyberDonut } from './chunk-N5SDJP44.js';
|
|
5
|
+
import { JsonViewer, CardHeader, PageTitleCaption, CollapsibleSection, ContextViewer } from './chunk-IAZT3VO6.js';
|
|
6
6
|
import { StyledMarkdown } from './chunk-3KMDHCAR.js';
|
|
7
7
|
import { useCommandViewLayout, useErrorDetail, useExecution, useArchivedLogs, useDeleteExecution, useRetryExecution, useCancelExecution, useCommandQueueTotals, useSubmitAction, useDeleteTask, showApiErrorNotification, showSuccessNotification } from './chunk-EDAYKRPJ.js';
|
|
8
8
|
import { Graph_module_css_default, useDirectedChainHighlighting, useNodeSelection, GRAPH_CONSTANTS, useGraphHighlighting, calculateGraphHeight } from './chunk-F6RBK7NJ.js';
|
|
@@ -1850,7 +1850,7 @@ function CommandQueueTaskRow({ task, onClick, onDelete }) {
|
|
|
1850
1850
|
cursor: "pointer",
|
|
1851
1851
|
border: "1px solid var(--color-border)",
|
|
1852
1852
|
transition: "background var(--duration-fast) var(--easing)",
|
|
1853
|
-
background: hovered ? "var(--active-background)" : "var(--
|
|
1853
|
+
background: hovered ? "var(--active-background)" : "var(--color-surface)"
|
|
1854
1854
|
},
|
|
1855
1855
|
onClick: (e) => {
|
|
1856
1856
|
if (e.target.closest("[data-menu-dropdown]") || e.target.closest("button")) {
|