@elevasis/ui 2.75.0 → 2.76.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/api/index.js +3 -3
- package/dist/app/index.d.ts +277 -249
- package/dist/app/index.js +12 -11
- package/dist/auth/index.js +6 -7
- package/dist/charts/index.js +6 -7
- package/dist/{chunk-CRPH5AAB.js → chunk-2GIHWU5O.js} +4 -3
- package/dist/chunk-2Y6AKWGU.js +42 -0
- package/dist/chunk-3QYRZSHP.js +854 -0
- package/dist/{chunk-L3NBMLRN.js → chunk-3RK2NNJX.js} +1 -1
- package/dist/{chunk-R6NMRXNO.js → chunk-4WLAVUPS.js} +1 -1
- package/dist/{chunk-DTEGVSJ6.js → chunk-5R4I2PAN.js} +9 -43
- package/dist/chunk-6B4ZPBQJ.js +7 -0
- package/dist/{chunk-QFS2GZMV.js → chunk-73G3I5HJ.js} +160 -160
- package/dist/{chunk-7OOFMEX6.js → chunk-BFLYDVEN.js} +28 -41
- package/dist/{chunk-VWGCURZF.js → chunk-BG6PWDJ3.js} +381 -381
- package/dist/{chunk-5VF5LPYS.js → chunk-BV2RNLPP.js} +1 -1
- package/dist/{chunk-NMHQAYZU.js → chunk-CTT4RDXE.js} +150 -151
- package/dist/chunk-E2LJ3FRA.js +237 -0
- package/dist/{chunk-5RH6NYZH.js → chunk-EFQLXRYT.js} +1 -2
- package/dist/{chunk-M6VAZAQW.js → chunk-EVNLJHDD.js} +3 -3
- package/dist/{chunk-NYIIRZSA.js → chunk-GDQQX5SL.js} +4 -42
- package/dist/{chunk-IYATYH5I.js → chunk-GFSOQH3N.js} +1 -1
- package/dist/{chunk-G7O4CBMC.js → chunk-H5AEYSVX.js} +164 -3
- package/dist/{chunk-ZFISGKYW.js → chunk-IIEZXXDD.js} +1 -1
- package/dist/{chunk-5SLRGUC4.js → chunk-INCEZAM3.js} +1 -1
- package/dist/{chunk-ZG6YJUT4.js → chunk-JZQNUQE4.js} +1 -1
- package/dist/{chunk-SB3IHM5Y.js → chunk-K55TU6CC.js} +2023 -1700
- package/dist/chunk-KB5CAN5D.js +33 -0
- package/dist/{chunk-OGHTJKBV.js → chunk-KMA4FOSV.js} +5682 -5675
- package/dist/{chunk-ICHDIVQO.js → chunk-KXNRTJAE.js} +1 -1
- package/dist/{chunk-MLHZUN2X.js → chunk-MGAELVTZ.js} +12 -12
- package/dist/chunk-MKH2KOAO.js +39 -0
- package/dist/{chunk-6BJ5HMMC.js → chunk-NAPXMYFW.js} +35 -362
- package/dist/{chunk-GDTK33QT.js → chunk-OGG3QJYW.js} +14 -5
- package/dist/{chunk-SN7X5N2A.js → chunk-P6HHXMLJ.js} +1 -1
- package/dist/{chunk-SEYOVNS5.js → chunk-QAILYRC2.js} +1 -1
- package/dist/{chunk-RBGVNPA6.js → chunk-RXZ3XDBM.js} +1 -1
- package/dist/{chunk-2ZRY3ARL.js → chunk-SPW6UA6B.js} +1 -1
- package/dist/{chunk-3H5DIJN7.js → chunk-SVZR4GYA.js} +1 -1
- package/dist/{chunk-47YJVIZE.js → chunk-UEY4AB3R.js} +789 -66
- package/dist/{chunk-LFLM723H.js → chunk-UL6MPMKY.js} +1 -1
- package/dist/{chunk-TX3UHDL5.js → chunk-WELN7DDV.js} +2 -2
- package/dist/{chunk-D3XXPCCK.js → chunk-WJN2VVVJ.js} +1 -1
- package/dist/{chunk-DMSTDZCJ.js → chunk-XODQUPFW.js} +11 -11
- package/dist/components/index.d.ts +135 -25
- package/dist/components/index.js +2165 -1996
- package/dist/components/navigation/index.js +7 -8
- package/dist/features/auth/index.d.ts +35 -3716
- package/dist/features/auth/index.js +9 -10
- package/dist/features/clients/index.js +18 -12
- package/dist/features/content/index.js +27 -27
- package/dist/features/crm/index.css +59 -59
- package/dist/features/crm/index.d.ts +18 -1
- package/dist/features/crm/index.js +13 -11
- package/dist/features/dashboard/index.css +59 -59
- package/dist/features/dashboard/index.js +8 -9
- package/dist/features/delivery/index.d.ts +3 -0
- package/dist/features/delivery/index.js +21 -20
- package/dist/features/knowledge/index.js +6 -7
- package/dist/features/lead-gen/index.css +59 -59
- package/dist/features/lead-gen/index.d.ts +3903 -2
- package/dist/features/lead-gen/index.js +15 -13
- package/dist/features/monitoring/index.js +10 -11
- package/dist/features/monitoring/requests/index.css +59 -59
- package/dist/features/monitoring/requests/index.js +8 -9
- package/dist/features/notes/index.js +4 -4
- package/dist/features/operations/index.css +59 -59
- package/dist/features/operations/index.js +13 -15
- package/dist/features/seo/index.css +659 -0
- package/dist/features/seo/index.d.ts +3962 -1
- package/dist/features/seo/index.js +31 -2
- package/dist/features/settings/index.css +59 -59
- package/dist/features/settings/index.d.ts +79 -3742
- package/dist/features/settings/index.js +10 -12
- package/dist/hooks/access/index.js +6 -7
- package/dist/hooks/delivery/index.css +59 -59
- package/dist/hooks/delivery/index.d.ts +13 -4
- package/dist/hooks/delivery/index.js +3 -3
- package/dist/hooks/published.d.ts +63 -25
- package/dist/hooks/published.js +19 -19
- package/dist/initialization/index.d.ts +35 -3716
- package/dist/knowledge/index.js +11 -11
- package/dist/layout/index.d.ts +55 -2
- package/dist/layout/index.js +10 -10
- package/dist/organization/index.css +59 -59
- package/dist/profile/index.d.ts +64 -3716
- package/dist/provider/index.d.ts +3 -0
- package/dist/provider/index.js +6 -7
- package/dist/provider/published.d.ts +3 -0
- package/dist/provider/published.js +6 -7
- package/dist/test-utils/index.js +3 -3
- package/dist/theme/index.js +3 -3
- package/dist/theme/presets/index.js +1 -1
- package/dist/types/index.d.ts +298 -251
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.js +1 -1
- package/package.json +5 -9
- package/src/hooks/README.md +22 -23
- package/dist/chunk-6ZAP3FOA.js +0 -93
- package/dist/chunk-AH52XQB7.js +0 -1
- package/dist/chunk-DVAOCHIF.js +0 -165
- package/dist/chunk-MISHPEJX.js +0 -244
- package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +0 -879
- package/dist/hooks/operations/command-view/utils/transformCommandViewData.js +0 -2
- /package/dist/{chunk-A2SB32YV.js → chunk-5ZK7K7YP.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getErrorInfo, formatErrorMessage, getErrorTitle } from './chunk-
|
|
1
|
+
import { getErrorInfo, formatErrorMessage, getErrorTitle } from './chunk-5ZK7K7YP.js';
|
|
2
2
|
import { notifications } from '@mantine/notifications';
|
|
3
3
|
|
|
4
4
|
var showInfoNotification = (message) => {
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { useProjectRealtime, useProjectActivities } from './chunk-
|
|
2
|
-
import { useCreateTask, useCreateMilestone, useProjectMilestones, useUpdateTask, useProjects, useDeleteProject, useProject, useProjectNotes, useUpdateMilestone, useCreateNote } from './chunk-
|
|
3
|
-
import { useTableSort, sortData } from './chunk-
|
|
1
|
+
import { useProjectRealtime, useProjectActivities } from './chunk-5R4I2PAN.js';
|
|
2
|
+
import { useCreateTask, useCreateMilestone, useProjectMilestones, useUpdateTask, useProjects, useDeleteProject, useProject, useProjectNotes, useUpdateMilestone, useCreateNote } from './chunk-GFSOQH3N.js';
|
|
3
|
+
import { useTableSort, sortData } from './chunk-2Y6AKWGU.js';
|
|
4
4
|
import { useTableSelection } from './chunk-WDBNW44Z.js';
|
|
5
5
|
import { milestoneStatusColors, formatStatusLabel, taskTypeColors, taskStatusColors, projectStatusColors, calculateProgress, noteTypeColors } from './chunk-DLR4SDZW.js';
|
|
6
|
+
import { SubshellPageLayout } from './chunk-6B4ZPBQJ.js';
|
|
6
7
|
import { PageContainer } from './chunk-BZZCNLT6.js';
|
|
7
8
|
import { TableSelectionToolbar, SortableHeader } from './chunk-TUMSNGTX.js';
|
|
8
9
|
import { FilterBar } from './chunk-PDHTXPSF.js';
|
|
9
|
-
import { StatusBadge, EmptyState,
|
|
10
|
-
import { SubshellSidebarSection, SubshellNavItem } from './chunk-MISHPEJX.js';
|
|
10
|
+
import { StatusBadge, EmptyState, SubshellSidebarSection, PageTitleCaption, usePaginationState, SubshellContentContainer, CenteredErrorState, CustomModal, StatCard, SubshellNavItem } from './chunk-K55TU6CC.js';
|
|
11
11
|
import { CardHeader } from './chunk-62GVNH5U.js';
|
|
12
|
-
import { PAGE_SIZE_DEFAULT, formatTimeAgo, formatDate, formatRelativeTime } from './chunk-
|
|
12
|
+
import { PAGE_SIZE_DEFAULT, formatTimeAgo, formatDate, formatRelativeTime } from './chunk-5ZK7K7YP.js';
|
|
13
13
|
import { useRouterContext } from './chunk-Q7DJKLEN.js';
|
|
14
14
|
import { useState, useMemo } from 'react';
|
|
15
15
|
import { Stack, Text, Group, Checkbox, ActionIcon, TextInput, Button, Modal, Title, Textarea, Select, SimpleGrid, Card, ThemeIcon, RingProgress, Paper, Timeline, Badge, Collapse, Center, Loader, Table, Pagination, Alert, CopyButton, Tooltip, Space, Tabs, Divider, Anchor, Chip, List } from '@mantine/core';
|
|
@@ -494,7 +494,7 @@ var ProjectsSidebar = ({ children } = {}) => {
|
|
|
494
494
|
] });
|
|
495
495
|
};
|
|
496
496
|
function AllTasksPage() {
|
|
497
|
-
return /* @__PURE__ */
|
|
497
|
+
return /* @__PURE__ */ jsxs(SubshellPageLayout, { children: [
|
|
498
498
|
/* @__PURE__ */ jsx(Stack, { children: /* @__PURE__ */ jsx(PageTitleCaption, { title: "All Tasks", caption: "Project tasks are scoped to an individual project" }) }),
|
|
499
499
|
/* @__PURE__ */ jsxs(Paper, { children: [
|
|
500
500
|
/* @__PURE__ */ jsx(
|
|
@@ -508,10 +508,10 @@ function AllTasksPage() {
|
|
|
508
508
|
),
|
|
509
509
|
/* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", ta: "center", pb: "xl", children: "This page is kept for route parity only." })
|
|
510
510
|
] })
|
|
511
|
-
] })
|
|
511
|
+
] });
|
|
512
512
|
}
|
|
513
513
|
function UpcomingMilestonesPage() {
|
|
514
|
-
return /* @__PURE__ */
|
|
514
|
+
return /* @__PURE__ */ jsxs(SubshellPageLayout, { children: [
|
|
515
515
|
/* @__PURE__ */ jsx(Stack, { children: /* @__PURE__ */ jsx(PageTitleCaption, { title: "Upcoming Milestones", caption: "Milestones are scoped to an individual project" }) }),
|
|
516
516
|
/* @__PURE__ */ jsxs(Paper, { children: [
|
|
517
517
|
/* @__PURE__ */ jsx(
|
|
@@ -525,7 +525,7 @@ function UpcomingMilestonesPage() {
|
|
|
525
525
|
),
|
|
526
526
|
/* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", ta: "center", pb: "xl", children: "This page is kept for route parity only." })
|
|
527
527
|
] })
|
|
528
|
-
] })
|
|
528
|
+
] });
|
|
529
529
|
}
|
|
530
530
|
var STATUS_OPTIONS = [
|
|
531
531
|
{ value: "active", label: "Active" },
|
|
@@ -1153,7 +1153,7 @@ function ProjectDetailPage({ projectId, onBack, backLabel = "Projects" }) {
|
|
|
1153
1153
|
(lastIndex, milestone, index) => milestone.status !== "upcoming" ? index : lastIndex,
|
|
1154
1154
|
-1
|
|
1155
1155
|
);
|
|
1156
|
-
return /* @__PURE__ */ jsx(
|
|
1156
|
+
return /* @__PURE__ */ jsx(SubshellPageLayout, { children: /* @__PURE__ */ jsxs(Stack, { children: [
|
|
1157
1157
|
/* @__PURE__ */ jsx(
|
|
1158
1158
|
PageTitleCaption,
|
|
1159
1159
|
{
|
|
@@ -1592,7 +1592,7 @@ function ProjectDetailPage({ projectId, onBack, backLabel = "Projects" }) {
|
|
|
1592
1592
|
)
|
|
1593
1593
|
] })
|
|
1594
1594
|
] }) })
|
|
1595
|
-
] }) })
|
|
1595
|
+
] }) });
|
|
1596
1596
|
}
|
|
1597
1597
|
|
|
1598
1598
|
export { AllTasksPage, Checklist, CreateDeliveryEntityModal, DELIVERY_COMMUNICATION_ITEMS, DELIVERY_PROJECT_ITEMS, DELIVERY_WORK_ITEMS, HealthStatusCard, MilestoneTimeline, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, TaskCard, UpcomingMilestonesPage };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { useAuthContext } from './chunk-BRJ3QZ4E.js';
|
|
2
|
+
import { createClient } from '@supabase/supabase-js';
|
|
3
|
+
import { useMemo } from 'react';
|
|
4
|
+
|
|
5
|
+
function getSupabaseConfig() {
|
|
6
|
+
const url = import.meta.env?.VITE_SUPABASE_URL;
|
|
7
|
+
const anonKey = import.meta.env?.VITE_SUPABASE_ANON_KEY;
|
|
8
|
+
if (!url || !anonKey) {
|
|
9
|
+
throw new Error("Missing Supabase environment variables (VITE_SUPABASE_URL, VITE_SUPABASE_ANON_KEY)");
|
|
10
|
+
}
|
|
11
|
+
return { url, anonKey };
|
|
12
|
+
}
|
|
13
|
+
var useSupabase = () => {
|
|
14
|
+
const { getAccessToken } = useAuthContext();
|
|
15
|
+
const { url, anonKey } = getSupabaseConfig();
|
|
16
|
+
return useMemo(
|
|
17
|
+
() => createClient(url, anonKey, {
|
|
18
|
+
global: {
|
|
19
|
+
headers: {
|
|
20
|
+
// Additional headers if needed
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
accessToken: async () => {
|
|
24
|
+
try {
|
|
25
|
+
const token = await getAccessToken();
|
|
26
|
+
if (!token) {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
return token;
|
|
30
|
+
} catch {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}),
|
|
35
|
+
[getAccessToken, url, anonKey]
|
|
36
|
+
);
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export { useSupabase };
|
|
@@ -1,23 +1,20 @@
|
|
|
1
|
-
import { useAvailablePresets } from './chunk-
|
|
2
|
-
import { MEMBERSHIP_STATUS_COLORS, PROVISIONING_STATE_DISPLAY, transformMembershipToTableRow, useUserMemberships, useUpdateWebhookEndpoint, useDeleteWebhookEndpoint, useCreateWebhookEndpoint, useListWebhookEndpoints, useOrgRoles, useAssignRole, useRevokeRole, useOrganizationMembers, usePermissionCatalog } from './chunk-
|
|
3
|
-
import {
|
|
4
|
-
import { AppShellLoader } from './chunk-5RH6NYZH.js';
|
|
1
|
+
import { useAvailablePresets } from './chunk-IIEZXXDD.js';
|
|
2
|
+
import { MEMBERSHIP_STATUS_COLORS, PROVISIONING_STATE_DISPLAY, transformMembershipToTableRow, useUserMemberships, useUpdateWebhookEndpoint, useDeleteWebhookEndpoint, useCreateWebhookEndpoint, useListWebhookEndpoints, useOrgRoles, useAssignRole, useRevokeRole, useOrganizationMembers, usePermissionCatalog } from './chunk-73G3I5HJ.js';
|
|
3
|
+
import { AppShellLoader } from './chunk-EFQLXRYT.js';
|
|
5
4
|
import { FilterBar } from './chunk-PDHTXPSF.js';
|
|
6
|
-
import { CustomModal, APIErrorAlert, EmptyState, PageTitleCaption, useResources, ListSkeleton, StatCard, useAccess, AccessKeys, AccessGuard } from './chunk-
|
|
7
|
-
import { showApiErrorNotification, showErrorNotification, showSuccessNotification } from './chunk-
|
|
5
|
+
import { CustomModal, APIErrorAlert, EmptyState, PageTitleCaption, useResources, ListSkeleton, StatCard, useAccess, AccessKeys, AccessGuard } from './chunk-K55TU6CC.js';
|
|
6
|
+
import { showApiErrorNotification, showErrorNotification, showSuccessNotification } from './chunk-KXNRTJAE.js';
|
|
8
7
|
import { CardHeader } from './chunk-62GVNH5U.js';
|
|
9
8
|
import { useInitialization } from './chunk-P45GQ3ZW.js';
|
|
10
9
|
import { RoleBadge } from './chunk-UD657ICS.js';
|
|
11
10
|
import { useOrganization } from './chunk-DD3CCMCZ.js';
|
|
12
|
-
import { isAPIClientError, formatDateTime, OAUTH_FLOW_TIMEOUT } from './chunk-
|
|
11
|
+
import { isAPIClientError, formatDateTime, OAUTH_FLOW_TIMEOUT } from './chunk-5ZK7K7YP.js';
|
|
13
12
|
import { useElevasisServices } from './chunk-BI5VDO2K.js';
|
|
14
|
-
import { brandSupabaseOrgId } from './chunk-MQZE7SUI.js';
|
|
15
13
|
import { useAuthContext } from './chunk-BRJ3QZ4E.js';
|
|
16
|
-
import { Text, Stack, Title, Alert, TextInput, Group, Button, Paper, SimpleGrid, Card, ThemeIcon, Badge, Tooltip, Select, Table, Center, Loader, Box, Code, CopyButton, ActionIcon, UnstyledButton, Switch, Divider, Textarea, MultiSelect
|
|
17
|
-
import { IconShieldOff, IconAlertCircle, IconBrandDropbox, IconBrandGoogleDrive, IconPlug, IconUsers, IconSearch, IconBuilding, IconWebhook, IconCheck, IconCopy, IconUser, IconMail, IconPalette, IconEye, IconSparkles, IconTrendingUp, IconExclamationMark, IconPencil, IconClock, IconPlayerPause, IconPlayerPlay, IconTrash, IconAlertTriangle, IconPlus, IconActivity, IconShieldLock, IconStar, IconUserCog, IconUsersGroup, IconSettings,
|
|
14
|
+
import { Text, Stack, Title, Alert, TextInput, Group, Button, Paper, SimpleGrid, Card, ThemeIcon, Badge, Tooltip, Select, Table, Center, Loader, Box, Code, CopyButton, ActionIcon, UnstyledButton, Switch, Divider, Textarea, MultiSelect } from '@mantine/core';
|
|
15
|
+
import { IconShieldOff, IconAlertCircle, IconBrandDropbox, IconBrandGoogleDrive, IconPlug, IconUsers, IconSearch, IconBuilding, IconWebhook, IconCheck, IconCopy, IconUser, IconMail, IconPalette, IconEye, IconSparkles, IconTrendingUp, IconExclamationMark, IconPencil, IconClock, IconPlayerPause, IconPlayerPlay, IconTrash, IconAlertTriangle, IconPlus, IconActivity, IconShieldLock, IconStar, IconUserCog, IconUsersGroup, IconSettings, IconEdit, IconUserX, IconUserCheck } from '@tabler/icons-react';
|
|
18
16
|
import { modals } from '@mantine/modals';
|
|
19
17
|
import { notifications } from '@mantine/notifications';
|
|
20
|
-
import { z } from 'zod';
|
|
21
18
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
22
19
|
import { useState, useEffect, useRef, useMemo, useCallback } from 'react';
|
|
23
20
|
import { useQueryClient } from '@tanstack/react-query';
|
|
@@ -85,178 +82,6 @@ var OAUTH_PROVIDERS = {
|
|
|
85
82
|
]
|
|
86
83
|
}
|
|
87
84
|
};
|
|
88
|
-
var CredentialFieldSchema = z.object({
|
|
89
|
-
key: z.string(),
|
|
90
|
-
label: z.string(),
|
|
91
|
-
type: z.enum(["password", "text"]),
|
|
92
|
-
required: z.boolean(),
|
|
93
|
-
placeholder: z.string().optional(),
|
|
94
|
-
description: z.string().optional()
|
|
95
|
-
});
|
|
96
|
-
var CredentialSchemaZod = z.object({
|
|
97
|
-
type: z.string(),
|
|
98
|
-
label: z.string(),
|
|
99
|
-
description: z.string(),
|
|
100
|
-
fields: z.array(CredentialFieldSchema).optional(),
|
|
101
|
-
docsUrl: z.string().url().optional(),
|
|
102
|
-
nameSuggestions: z.array(z.string()),
|
|
103
|
-
oauthProvider: z.string().optional()
|
|
104
|
-
});
|
|
105
|
-
var CREDENTIAL_SCHEMAS = {
|
|
106
|
-
"google-sheets": {
|
|
107
|
-
type: "oauth",
|
|
108
|
-
label: "Google Sheets",
|
|
109
|
-
description: "Google Sheets OAuth integration",
|
|
110
|
-
oauthProvider: "google-sheets",
|
|
111
|
-
nameSuggestions: ["google-sheets-prod", "google-sheets-dev", "sheets-workspace"]
|
|
112
|
-
},
|
|
113
|
-
dropbox: {
|
|
114
|
-
type: "oauth",
|
|
115
|
-
label: "Dropbox",
|
|
116
|
-
description: "Dropbox OAuth integration",
|
|
117
|
-
oauthProvider: "dropbox",
|
|
118
|
-
nameSuggestions: ["dropbox-prod", "dropbox-dev", "elevasis-dropbox"]
|
|
119
|
-
},
|
|
120
|
-
oauth: {
|
|
121
|
-
type: "oauth",
|
|
122
|
-
label: "OAuth",
|
|
123
|
-
description: "Generic OAuth credential",
|
|
124
|
-
nameSuggestions: []
|
|
125
|
-
},
|
|
126
|
-
"api-key": {
|
|
127
|
-
type: "single_field",
|
|
128
|
-
label: "API Key",
|
|
129
|
-
description: "Single-field API key credential",
|
|
130
|
-
fields: [
|
|
131
|
-
{
|
|
132
|
-
key: "apiKey",
|
|
133
|
-
label: "API Key",
|
|
134
|
-
type: "password",
|
|
135
|
-
required: true,
|
|
136
|
-
placeholder: "Enter your API key",
|
|
137
|
-
description: "API key for the service"
|
|
138
|
-
}
|
|
139
|
-
],
|
|
140
|
-
nameSuggestions: ["service-prod", "service-dev", "api-key"]
|
|
141
|
-
},
|
|
142
|
-
"webhook-secret": {
|
|
143
|
-
type: "single_field",
|
|
144
|
-
label: "Webhook Secret",
|
|
145
|
-
description: "Webhook signing secret for signature validation",
|
|
146
|
-
fields: [
|
|
147
|
-
{
|
|
148
|
-
key: "signingSecret",
|
|
149
|
-
label: "Signing Secret",
|
|
150
|
-
type: "password",
|
|
151
|
-
required: true,
|
|
152
|
-
placeholder: "whsec_...",
|
|
153
|
-
description: "Webhook signing secret from provider dashboard"
|
|
154
|
-
}
|
|
155
|
-
],
|
|
156
|
-
nameSuggestions: ["my-org-cal-com-webhook", "my-org-stripe-webhook", "my-org-signature-api-webhook"]
|
|
157
|
-
},
|
|
158
|
-
"api-key-secret": {
|
|
159
|
-
type: "api-key-secret",
|
|
160
|
-
label: "API Key + Secret",
|
|
161
|
-
description: "API key and secret pair authentication",
|
|
162
|
-
fields: [
|
|
163
|
-
{
|
|
164
|
-
key: "apiKey",
|
|
165
|
-
label: "API Key",
|
|
166
|
-
type: "password",
|
|
167
|
-
required: true
|
|
168
|
-
},
|
|
169
|
-
{
|
|
170
|
-
key: "apiSecret",
|
|
171
|
-
label: "API Secret",
|
|
172
|
-
type: "password",
|
|
173
|
-
required: true
|
|
174
|
-
}
|
|
175
|
-
],
|
|
176
|
-
nameSuggestions: []
|
|
177
|
-
},
|
|
178
|
-
apify: {
|
|
179
|
-
type: "single_field",
|
|
180
|
-
label: "Apify",
|
|
181
|
-
description: "Apify API token for running web-scraping actors (e.g. website crawl, Google Places scrape).",
|
|
182
|
-
fields: [
|
|
183
|
-
{
|
|
184
|
-
key: "apiKey",
|
|
185
|
-
label: "API Token",
|
|
186
|
-
type: "password",
|
|
187
|
-
required: true,
|
|
188
|
-
placeholder: "apify_api_...",
|
|
189
|
-
description: "Personal API token from https://console.apify.com/account/integrations"
|
|
190
|
-
}
|
|
191
|
-
],
|
|
192
|
-
docsUrl: "https://docs.apify.com/platform/integrations/api",
|
|
193
|
-
nameSuggestions: ["elevasis-apify", "apify-prod", "apify-dev"]
|
|
194
|
-
},
|
|
195
|
-
clickup: {
|
|
196
|
-
type: "single_field",
|
|
197
|
-
label: "ClickUp",
|
|
198
|
-
description: "ClickUp personal API token for creating tasks in tenant-managed ClickUp workspaces.",
|
|
199
|
-
fields: [
|
|
200
|
-
{
|
|
201
|
-
key: "apiToken",
|
|
202
|
-
label: "API Token",
|
|
203
|
-
type: "password",
|
|
204
|
-
required: true,
|
|
205
|
-
placeholder: "pk_...",
|
|
206
|
-
description: "Personal API token from ClickUp settings. Personal tokens start with pk_."
|
|
207
|
-
}
|
|
208
|
-
],
|
|
209
|
-
docsUrl: "https://developer.clickup.com/docs/authentication",
|
|
210
|
-
nameSuggestions: ["clickup-demo", "clickup-prod", "clickup-dev"]
|
|
211
|
-
},
|
|
212
|
-
instagram: {
|
|
213
|
-
type: "single_field",
|
|
214
|
-
label: "Instagram",
|
|
215
|
-
description: "Long-lived Instagram access token for publishing through Meta\u2019s Content Publishing API.",
|
|
216
|
-
fields: [
|
|
217
|
-
{
|
|
218
|
-
key: "accessToken",
|
|
219
|
-
label: "Access Token",
|
|
220
|
-
type: "password",
|
|
221
|
-
required: true,
|
|
222
|
-
placeholder: "IGAA...",
|
|
223
|
-
description: "Long-lived token from the Meta app dashboard. Valid 60 days from issue or last refresh."
|
|
224
|
-
},
|
|
225
|
-
{
|
|
226
|
-
key: "igUserId",
|
|
227
|
-
label: "Instagram User ID",
|
|
228
|
-
type: "text",
|
|
229
|
-
required: true,
|
|
230
|
-
placeholder: "17841400000000000",
|
|
231
|
-
description: "The Instagram professional account id shown beside the token on the same Meta screen."
|
|
232
|
-
}
|
|
233
|
-
],
|
|
234
|
-
docsUrl: "https://developers.facebook.com/docs/instagram-platform/instagram-api-with-instagram-login/content-publishing",
|
|
235
|
-
nameSuggestions: ["elevasis-instagram", "instagram-prod", "instagram-dev"]
|
|
236
|
-
}
|
|
237
|
-
};
|
|
238
|
-
function getCredentialSchema(type) {
|
|
239
|
-
const schema = CREDENTIAL_SCHEMAS[type] || CREDENTIAL_SCHEMAS["api-key"];
|
|
240
|
-
return CredentialSchemaZod.parse(schema);
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
// ../core/src/integrations/credentials/utils.ts
|
|
244
|
-
function buildCredentialValue(type, formValues) {
|
|
245
|
-
const schema = getCredentialSchema(type);
|
|
246
|
-
if (schema.type === "oauth") {
|
|
247
|
-
throw new Error(`buildCredentialValue should not be used for OAuth type: ${type}`);
|
|
248
|
-
}
|
|
249
|
-
const value = {};
|
|
250
|
-
if (schema.fields) {
|
|
251
|
-
for (const field of schema.fields) {
|
|
252
|
-
const fieldValue = formValues[field.key];
|
|
253
|
-
if (fieldValue !== void 0 && fieldValue !== null) {
|
|
254
|
-
value[field.key] = fieldValue.trim();
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
return value;
|
|
259
|
-
}
|
|
260
85
|
function showAuthError(error) {
|
|
261
86
|
if (isAPIClientError(error)) {
|
|
262
87
|
if (error.code === "LAST_OWNER_PROTECTED") {
|
|
@@ -1458,7 +1283,7 @@ function MemberAccessModal({ opened, onClose, orgId, member, defaultTab = "roles
|
|
|
1458
1283
|
] }) });
|
|
1459
1284
|
}
|
|
1460
1285
|
function RolesTabPanel({ orgId, member, onSaved }) {
|
|
1461
|
-
const { data: rolesData, isLoading: rolesLoading } = useOrgRoles(orgId
|
|
1286
|
+
const { data: rolesData, isLoading: rolesLoading } = useOrgRoles(orgId ?? void 0);
|
|
1462
1287
|
const assignMutation = useAssignRole();
|
|
1463
1288
|
const revokeMutation = useRevokeRole();
|
|
1464
1289
|
const canManagePrivileged = useAccess(AccessKeys.rolesManage).allowed;
|
|
@@ -1543,7 +1368,7 @@ function transformMemberForModal(member) {
|
|
|
1543
1368
|
};
|
|
1544
1369
|
}
|
|
1545
1370
|
function OrgMembersList({ orgId }) {
|
|
1546
|
-
const { data: members, isLoading, error } = useOrganizationMembers(
|
|
1371
|
+
const { data: members, isLoading, error } = useOrganizationMembers(orgId);
|
|
1547
1372
|
const [selectedMember, setSelectedMember] = useState(null);
|
|
1548
1373
|
const [modalOpened, setModalOpened] = useState(false);
|
|
1549
1374
|
const [defaultTab, setDefaultTab] = useState("roles");
|
|
@@ -1612,7 +1437,12 @@ function OrgMembersList({ orgId }) {
|
|
|
1612
1437
|
)
|
|
1613
1438
|
] });
|
|
1614
1439
|
}
|
|
1615
|
-
function OrganizationSettings({
|
|
1440
|
+
function OrganizationSettings({
|
|
1441
|
+
user,
|
|
1442
|
+
currentMembership,
|
|
1443
|
+
organizationId,
|
|
1444
|
+
isOrgAdmin
|
|
1445
|
+
}) {
|
|
1616
1446
|
return /* @__PURE__ */ jsxs(Stack, { children: [
|
|
1617
1447
|
/* @__PURE__ */ jsx(PageTitleCaption, { title: "Organization Settings", caption: "Manage your current organization" }),
|
|
1618
1448
|
currentMembership?.organization && /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsxs(Stack, { gap: "md", children: [
|
|
@@ -1663,7 +1493,7 @@ function OrganizationSettings({ user, currentMembership, isOrgAdmin }) {
|
|
|
1663
1493
|
] })
|
|
1664
1494
|
] })
|
|
1665
1495
|
] }) }),
|
|
1666
|
-
isOrgAdmin &&
|
|
1496
|
+
isOrgAdmin && organizationId && /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsxs(Stack, { children: [
|
|
1667
1497
|
/* @__PURE__ */ jsx(
|
|
1668
1498
|
CardHeader,
|
|
1669
1499
|
{
|
|
@@ -1672,7 +1502,7 @@ function OrganizationSettings({ user, currentMembership, isOrgAdmin }) {
|
|
|
1672
1502
|
subtitle: "Configure feature access for organization members."
|
|
1673
1503
|
}
|
|
1674
1504
|
),
|
|
1675
|
-
/* @__PURE__ */ jsx(OrgMembersList, { orgId:
|
|
1505
|
+
/* @__PURE__ */ jsx(OrgMembersList, { orgId: organizationId })
|
|
1676
1506
|
] }) })
|
|
1677
1507
|
] });
|
|
1678
1508
|
}
|
|
@@ -1698,7 +1528,13 @@ function MyRolesPage({ onManageMembers, onManageOrganizationRoles }) {
|
|
|
1698
1528
|
return groups;
|
|
1699
1529
|
}, {});
|
|
1700
1530
|
return /* @__PURE__ */ jsxs(Stack, { gap: "md", children: [
|
|
1701
|
-
/* @__PURE__ */ jsx(
|
|
1531
|
+
/* @__PURE__ */ jsx(
|
|
1532
|
+
PageTitleCaption,
|
|
1533
|
+
{
|
|
1534
|
+
title: "My Roles",
|
|
1535
|
+
caption: `Roles assigned to you in ${orgName} and what each one lets you do.`
|
|
1536
|
+
}
|
|
1537
|
+
),
|
|
1702
1538
|
/* @__PURE__ */ jsx(Paper, { withBorder: true, p: "md", children: /* @__PURE__ */ jsxs(Stack, { children: [
|
|
1703
1539
|
/* @__PURE__ */ jsx(
|
|
1704
1540
|
CardHeader,
|
|
@@ -1743,181 +1579,18 @@ function MyRolesPage({ onManageMembers, onManageOrganizationRoles }) {
|
|
|
1743
1579
|
),
|
|
1744
1580
|
/* @__PURE__ */ jsxs(Group, { children: [
|
|
1745
1581
|
onManageMembers ? /* @__PURE__ */ jsx(Button, { variant: "light", leftSection: /* @__PURE__ */ jsx(IconUsersGroup, { size: 14 }), onClick: onManageMembers, children: "Members" }) : null,
|
|
1746
|
-
onManageOrganizationRoles ? /* @__PURE__ */ jsx(AccessGuard, { accessKey: AccessKeys.organizationManage, children: /* @__PURE__ */ jsx(
|
|
1582
|
+
onManageOrganizationRoles ? /* @__PURE__ */ jsx(AccessGuard, { accessKey: AccessKeys.organizationManage, children: /* @__PURE__ */ jsx(
|
|
1583
|
+
Button,
|
|
1584
|
+
{
|
|
1585
|
+
variant: "light",
|
|
1586
|
+
leftSection: /* @__PURE__ */ jsx(IconShieldLock, { size: 14 }),
|
|
1587
|
+
onClick: onManageOrganizationRoles,
|
|
1588
|
+
children: "Organization roles"
|
|
1589
|
+
}
|
|
1590
|
+
) }) : null
|
|
1747
1591
|
] })
|
|
1748
1592
|
] }) }) })
|
|
1749
1593
|
] });
|
|
1750
1594
|
}
|
|
1751
|
-
function EditCredentialModal({ apiUrl, credential, onClose }) {
|
|
1752
|
-
const [credentialName, setCredentialName] = useState("");
|
|
1753
|
-
const [nameError, setNameError] = useState(null);
|
|
1754
|
-
const [fieldValues, setFieldValues] = useState({});
|
|
1755
|
-
const { authorize, isAuthorizing, error: oauthError } = useOAuthFlow({ apiUrl });
|
|
1756
|
-
const updateMutation = useUpdateCredential();
|
|
1757
|
-
useEffect(() => {
|
|
1758
|
-
if (credential) {
|
|
1759
|
-
setCredentialName(credential.name);
|
|
1760
|
-
}
|
|
1761
|
-
}, [credential]);
|
|
1762
|
-
if (!credential) return null;
|
|
1763
|
-
const credentialType = credential.type || "api-key";
|
|
1764
|
-
const schema = getCredentialSchema(credentialType);
|
|
1765
|
-
const provider = credential.provider;
|
|
1766
|
-
const isOAuth = !!provider || schema.type === "oauth";
|
|
1767
|
-
const hasMetadataChanged = credentialName !== credential.name;
|
|
1768
|
-
const isPending = isAuthorizing || updateMutation.isPending;
|
|
1769
|
-
const handleClose = () => {
|
|
1770
|
-
if (!isPending) {
|
|
1771
|
-
onClose();
|
|
1772
|
-
}
|
|
1773
|
-
};
|
|
1774
|
-
const handleOAuthReconnect = async () => {
|
|
1775
|
-
if (!provider) return;
|
|
1776
|
-
try {
|
|
1777
|
-
await authorize(provider, credential.name);
|
|
1778
|
-
onClose();
|
|
1779
|
-
} catch (err) {
|
|
1780
|
-
console.error("Reconnect failed:", err);
|
|
1781
|
-
}
|
|
1782
|
-
};
|
|
1783
|
-
const handleSaveChanges = async () => {
|
|
1784
|
-
const nameValidation = CredentialSchemas.UpdateRequest.shape.name.safeParse(credentialName);
|
|
1785
|
-
if (!nameValidation.success) {
|
|
1786
|
-
setNameError(nameValidation.error.issues[0]?.message || "Invalid credential name");
|
|
1787
|
-
return;
|
|
1788
|
-
}
|
|
1789
|
-
setNameError(null);
|
|
1790
|
-
const updateData = { name: credentialName };
|
|
1791
|
-
const validationResult = CredentialSchemas.UpdateRequest.safeParse(updateData);
|
|
1792
|
-
if (!validationResult.success) {
|
|
1793
|
-
console.error("Validation failed:", validationResult.error);
|
|
1794
|
-
return;
|
|
1795
|
-
}
|
|
1796
|
-
try {
|
|
1797
|
-
await updateMutation.mutateAsync({
|
|
1798
|
-
credentialId: credential.id,
|
|
1799
|
-
updates: updateData
|
|
1800
|
-
});
|
|
1801
|
-
onClose();
|
|
1802
|
-
} catch (err) {
|
|
1803
|
-
console.error("Save changes failed:", err);
|
|
1804
|
-
}
|
|
1805
|
-
};
|
|
1806
|
-
const handleCredentialUpdate = async () => {
|
|
1807
|
-
const hasValues = Object.values(fieldValues).some((v) => v.trim());
|
|
1808
|
-
if (!hasValues) return;
|
|
1809
|
-
try {
|
|
1810
|
-
const credentialValue = buildCredentialValue(credentialType, fieldValues);
|
|
1811
|
-
const updateData = { value: credentialValue };
|
|
1812
|
-
const validationResult = CredentialSchemas.UpdateRequest.safeParse(updateData);
|
|
1813
|
-
if (!validationResult.success) {
|
|
1814
|
-
console.error("Validation failed:", validationResult.error);
|
|
1815
|
-
return;
|
|
1816
|
-
}
|
|
1817
|
-
await updateMutation.mutateAsync({
|
|
1818
|
-
credentialId: credential.id,
|
|
1819
|
-
updates: updateData
|
|
1820
|
-
});
|
|
1821
|
-
onClose();
|
|
1822
|
-
} catch (err) {
|
|
1823
|
-
console.error("Update failed:", err);
|
|
1824
|
-
}
|
|
1825
|
-
};
|
|
1826
|
-
const handleFieldChange = (key, value) => {
|
|
1827
|
-
setFieldValues((prev) => ({ ...prev, [key]: value }));
|
|
1828
|
-
};
|
|
1829
|
-
const handleNameChange = (value) => {
|
|
1830
|
-
setCredentialName(value);
|
|
1831
|
-
if (nameError) setNameError(null);
|
|
1832
|
-
};
|
|
1833
|
-
const hasFieldValues = Object.values(fieldValues).some((v) => v.trim());
|
|
1834
|
-
return /* @__PURE__ */ jsx(CustomModal, { opened: true, onClose: handleClose, loading: isPending, children: /* @__PURE__ */ jsxs(Stack, { children: [
|
|
1835
|
-
/* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
|
|
1836
|
-
/* @__PURE__ */ jsx(IconSettings, { size: 24 }),
|
|
1837
|
-
/* @__PURE__ */ jsx(Title, { order: 3, children: isOAuth ? "Manage OAuth Credential" : "Edit API Key" })
|
|
1838
|
-
] }),
|
|
1839
|
-
/* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
|
|
1840
|
-
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, children: "Type:" }),
|
|
1841
|
-
/* @__PURE__ */ jsx(Badge, { variant: "light", size: "sm", children: schema.label })
|
|
1842
|
-
] }),
|
|
1843
|
-
/* @__PURE__ */ jsx(
|
|
1844
|
-
TextInput,
|
|
1845
|
-
{
|
|
1846
|
-
label: "Name",
|
|
1847
|
-
value: credentialName,
|
|
1848
|
-
onChange: (e) => handleNameChange(e.target.value),
|
|
1849
|
-
disabled: isPending,
|
|
1850
|
-
maxLength: 100,
|
|
1851
|
-
description: "Lowercase letters, numbers, and hyphens only (e.g., gmail-dev, notion-prod)",
|
|
1852
|
-
error: nameError
|
|
1853
|
-
}
|
|
1854
|
-
),
|
|
1855
|
-
isOAuth && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1856
|
-
/* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: 'OAuth credentials are managed by the provider. You can update the name above, or click "Reconnect" to refresh your connection and update access tokens.' }),
|
|
1857
|
-
oauthError && /* @__PURE__ */ jsx(Alert, { icon: /* @__PURE__ */ jsx(IconAlertCircle, { size: 16 }), color: "red", title: "Connection Failed", children: oauthError }),
|
|
1858
|
-
/* @__PURE__ */ jsxs(Group, { justify: "space-between", gap: "sm", children: [
|
|
1859
|
-
/* @__PURE__ */ jsx(Button, { variant: "light", onClick: handleClose, disabled: isPending, children: "Cancel" }),
|
|
1860
|
-
/* @__PURE__ */ jsxs(Group, { gap: "sm", children: [
|
|
1861
|
-
/* @__PURE__ */ jsx(
|
|
1862
|
-
Button,
|
|
1863
|
-
{
|
|
1864
|
-
variant: "light",
|
|
1865
|
-
onClick: handleSaveChanges,
|
|
1866
|
-
loading: updateMutation.isPending,
|
|
1867
|
-
disabled: !hasMetadataChanged || isAuthorizing,
|
|
1868
|
-
children: "Save Changes"
|
|
1869
|
-
}
|
|
1870
|
-
),
|
|
1871
|
-
/* @__PURE__ */ jsx(
|
|
1872
|
-
Button,
|
|
1873
|
-
{
|
|
1874
|
-
color: "blue",
|
|
1875
|
-
onClick: handleOAuthReconnect,
|
|
1876
|
-
loading: isAuthorizing,
|
|
1877
|
-
leftSection: /* @__PURE__ */ jsx(IconRefresh, { size: 16 }),
|
|
1878
|
-
disabled: updateMutation.isPending,
|
|
1879
|
-
children: "Reconnect OAuth"
|
|
1880
|
-
}
|
|
1881
|
-
)
|
|
1882
|
-
] })
|
|
1883
|
-
] })
|
|
1884
|
-
] }),
|
|
1885
|
-
!isOAuth && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1886
|
-
/* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Current values are encrypted and cannot be displayed. Enter new values below to replace them." }),
|
|
1887
|
-
schema.fields?.map((field) => {
|
|
1888
|
-
const Input = field.type === "text" ? TextInput : PasswordInput;
|
|
1889
|
-
return /* @__PURE__ */ jsx(
|
|
1890
|
-
Input,
|
|
1891
|
-
{
|
|
1892
|
-
label: `New ${field.label}`,
|
|
1893
|
-
placeholder: field.placeholder || `Enter new ${field.label.toLowerCase()}`,
|
|
1894
|
-
value: fieldValues[field.key] || "",
|
|
1895
|
-
onChange: (e) => handleFieldChange(field.key, e.target.value),
|
|
1896
|
-
description: field.description,
|
|
1897
|
-
disabled: isPending
|
|
1898
|
-
},
|
|
1899
|
-
field.key
|
|
1900
|
-
);
|
|
1901
|
-
}),
|
|
1902
|
-
updateMutation.error && /* @__PURE__ */ jsx(Alert, { icon: /* @__PURE__ */ jsx(IconAlertCircle, { size: 16 }), color: "red", title: "Update Failed", children: "Failed to update credential" }),
|
|
1903
|
-
/* @__PURE__ */ jsxs(Group, { justify: "space-between", gap: "sm", children: [
|
|
1904
|
-
/* @__PURE__ */ jsx(Button, { variant: "light", onClick: handleClose, disabled: isPending, children: "Cancel" }),
|
|
1905
|
-
/* @__PURE__ */ jsxs(Group, { gap: "sm", children: [
|
|
1906
|
-
/* @__PURE__ */ jsx(
|
|
1907
|
-
Button,
|
|
1908
|
-
{
|
|
1909
|
-
variant: "light",
|
|
1910
|
-
onClick: handleSaveChanges,
|
|
1911
|
-
loading: updateMutation.isPending,
|
|
1912
|
-
disabled: !hasMetadataChanged,
|
|
1913
|
-
children: "Save Name"
|
|
1914
|
-
}
|
|
1915
|
-
),
|
|
1916
|
-
/* @__PURE__ */ jsx(Button, { onClick: handleCredentialUpdate, loading: updateMutation.isPending, disabled: !hasFieldValues, children: "Save Credential" })
|
|
1917
|
-
] })
|
|
1918
|
-
] })
|
|
1919
|
-
] })
|
|
1920
|
-
] }) });
|
|
1921
|
-
}
|
|
1922
1595
|
|
|
1923
|
-
export { AccountSettings, AppearanceSettings,
|
|
1596
|
+
export { AccountSettings, AppearanceSettings, CreateWebhookEndpointModal, EditWebhookEndpointModal, MemberAccessModal, MembershipStatusBadge, MyRolesPage, OAuthConnectModal, OAuthIntegrationsCard, OrgMembersList, OrganizationMembershipsList, OrganizationSettings, ProvisioningStateBadge, WebhookEndpointList, WebhookEndpointSettings, WebhookUrlDisplayModal, showAuthError };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { useMarkAsRead, useExecutionLogsFilters, useExecutionLogs, useExecutionHealth, useCostSummary, useActivityFilters, useActivityTrend, useActivities, useNotifications, useMarkAllAsRead } from './chunk-
|
|
1
|
+
import { useMarkAsRead, useExecutionLogsFilters, useExecutionLogs, useExecutionHealth, useCostSummary, useActivityFilters, useActivityTrend, useActivities, useNotifications, useMarkAllAsRead } from './chunk-XODQUPFW.js';
|
|
2
|
+
import { AppShellLoader } from './chunk-EFQLXRYT.js';
|
|
2
3
|
import { useTimeRangeDates } from './chunk-YQQ5GRUR.js';
|
|
3
|
-
import { AppShellLoader } from './chunk-5RH6NYZH.js';
|
|
4
4
|
import { FilterBar } from './chunk-PDHTXPSF.js';
|
|
5
|
-
import { CenteredErrorState, StatsCardSkeleton, CyberAreaChart, TrendIndicator, DetailCardSkeleton, useResolveError, useResolveAllErrors, usePaginationState, useErrorDetails, EmptyState, PageTitleCaption, useErrorAnalysis, useErrorDetail, useResolveErrorsByExecution, useResources, CustomModal, JsonViewer, useCostTrends, useCostByModel, useCostBreakdown, CostTrendChart, ActivityTrendChart } from './chunk-
|
|
5
|
+
import { CenteredErrorState, StatsCardSkeleton, CyberAreaChart, TrendIndicator, DetailCardSkeleton, useResolveError, useResolveAllErrors, usePaginationState, useErrorDetails, EmptyState, PageTitleCaption, useErrorAnalysis, useErrorDetail, useResolveErrorsByExecution, useResources, CustomModal, JsonViewer, useCostTrends, useCostByModel, useCostBreakdown, CostTrendChart, ActivityTrendChart } from './chunk-K55TU6CC.js';
|
|
6
6
|
import { CardHeader } from './chunk-62GVNH5U.js';
|
|
7
7
|
import { formatDuration } from './chunk-BLXJEIQS.js';
|
|
8
|
-
import { PAGE_SIZE_DEFAULT } from './chunk-
|
|
8
|
+
import { PAGE_SIZE_DEFAULT } from './chunk-5ZK7K7YP.js';
|
|
9
9
|
import { formatBucketTime, getTimeRangeDates } from './chunk-Y6I3IC45.js';
|
|
10
10
|
import { useRouterContext } from './chunk-Q7DJKLEN.js';
|
|
11
11
|
import { useState, useMemo, useCallback } from 'react';
|
|
@@ -1553,7 +1553,16 @@ ${primaryError.errorContext ? JSON.stringify(primaryError.errorContext, null, 2)
|
|
|
1553
1553
|
] }),
|
|
1554
1554
|
/* @__PURE__ */ jsxs(Group, { children: [
|
|
1555
1555
|
/* @__PURE__ */ jsx(Button, { variant: "default", onClick: onClose, children: "Close" }),
|
|
1556
|
-
resourceDetailHref && /* @__PURE__ */ jsx(
|
|
1556
|
+
resourceDetailHref && /* @__PURE__ */ jsx(
|
|
1557
|
+
Button,
|
|
1558
|
+
{
|
|
1559
|
+
component: "a",
|
|
1560
|
+
href: resourceDetailHref,
|
|
1561
|
+
target: "_blank",
|
|
1562
|
+
leftSection: /* @__PURE__ */ jsx(IconExternalLink, { size: 16 }),
|
|
1563
|
+
children: "View Execution Log"
|
|
1564
|
+
}
|
|
1565
|
+
)
|
|
1557
1566
|
] })
|
|
1558
1567
|
] })
|
|
1559
1568
|
] })
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { showApiErrorNotification } from './chunk-
|
|
1
|
+
import { showApiErrorNotification } from './chunk-KXNRTJAE.js';
|
|
2
2
|
import { useElevasisServices } from './chunk-BI5VDO2K.js';
|
|
3
3
|
import { useQuery, useQueryClient, useMutation } from '@tanstack/react-query';
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useCyberColors, useResourcesHealth, EmptyState, CyberLegendItem, CyberAreaChart } from './chunk-
|
|
1
|
+
import { useCyberColors, useResourcesHealth, EmptyState, CyberLegendItem, CyberAreaChart } from './chunk-K55TU6CC.js';
|
|
2
2
|
import { CardHeader } from './chunk-62GVNH5U.js';
|
|
3
3
|
import { getTimeRangeDates, formatBucketTime } from './chunk-Y6I3IC45.js';
|
|
4
4
|
import { Paper, Center, Loader, Group } from '@mantine/core';
|
|
@@ -1169,7 +1169,7 @@ function ChromeBackground({ variant, beam }) {
|
|
|
1169
1169
|
] });
|
|
1170
1170
|
}
|
|
1171
1171
|
|
|
1172
|
-
// src/theme/presets/aurora.
|
|
1172
|
+
// src/theme/presets/aurora.ts
|
|
1173
1173
|
var auroraPreset = {
|
|
1174
1174
|
subtitleFontFamily: '"Nunito", sans-serif',
|
|
1175
1175
|
fontImports: ["https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700&display=swap"],
|