@elevasis/ui 2.15.0 → 2.17.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 -2
- package/dist/app/index.js +9 -7
- package/dist/auth/index.js +4 -3
- package/dist/charts/index.js +11 -10
- package/dist/{chunk-C7BX547M.js → chunk-2TDZBYXI.js} +9 -3
- package/dist/{chunk-5IBTTMWX.js → chunk-34NQLV2W.js} +2 -2
- package/dist/{chunk-FL67C3WY.js → chunk-6IA2OMAE.js} +1 -1
- package/dist/{chunk-L4XXM55J.js → chunk-7YQKVWSD.js} +1 -1
- package/dist/{chunk-XJ7KC54A.js → chunk-ABUDMATM.js} +7 -8
- package/dist/{chunk-TUXTSEAF.js → chunk-DK2HVHCY.js} +1 -1
- package/dist/{chunk-GHIPBT5V.js → chunk-E4WQGJNS.js} +1 -1
- package/dist/{chunk-5SXYCICG.js → chunk-FNWWVX5N.js} +8 -6
- package/dist/{chunk-IOKL7BKE.js → chunk-GCBWGGI6.js} +133 -1
- package/dist/chunk-GRGRBWIO.js +383 -0
- package/dist/{chunk-SLVC5OJ2.js → chunk-HQ7M6PBW.js} +1 -1
- package/dist/chunk-IRW7JMQ4.js +28 -0
- package/dist/{chunk-YNPVQDNB.js → chunk-JU6UB4YA.js} +4 -4
- package/dist/{chunk-SFW573HS.js → chunk-MDO4UCEJ.js} +4 -4
- package/dist/{chunk-STZJ7SY5.js → chunk-MJ6YV2B5.js} +3 -2
- package/dist/{chunk-D7HBX5US.js → chunk-MUZIYL5Q.js} +5 -4
- package/dist/{chunk-DKQQK3WX.js → chunk-OCCZRPER.js} +1 -1
- package/dist/{chunk-FFXHKADZ.js → chunk-OXWQQCDR.js} +13 -32
- package/dist/{chunk-ZB5GAV7J.js → chunk-P3TFNFZS.js} +6 -5
- package/dist/{chunk-QEPXAWE2.js → chunk-QHSW4WHM.js} +3 -26
- package/dist/{chunk-LXHZYSMQ.js → chunk-QSTH6T77.js} +2 -52
- package/dist/{chunk-U2RXVZGY.js → chunk-R7GKX4HW.js} +66 -461
- package/dist/{chunk-X75JEGHS.js → chunk-S6CYH4RI.js} +7 -6
- package/dist/{chunk-MTJ43R2E.js → chunk-SLH2QLKV.js} +1 -1
- package/dist/{chunk-32NXXCQU.js → chunk-TP5NMF6K.js} +6 -7
- package/dist/{chunk-SQQGLGHW.js → chunk-TTP62HWW.js} +3 -3
- package/dist/{chunk-NVOCKXUQ.js → chunk-VDM6DQES.js} +1 -1
- package/dist/chunk-ZTWA5H77.js +94 -0
- package/dist/components/index.d.ts +2640 -2640
- package/dist/components/index.js +38 -35
- package/dist/execution/index.js +2 -2
- package/dist/features/auth/index.js +5 -4
- package/dist/features/crm/index.d.ts +51 -51
- package/dist/features/crm/index.js +21 -19
- package/dist/features/dashboard/index.js +23 -21
- package/dist/features/delivery/index.d.ts +2604 -2604
- package/dist/features/delivery/index.js +21 -19
- package/dist/features/lead-gen/index.js +29 -26
- package/dist/features/monitoring/index.js +26 -24
- package/dist/features/monitoring/requests/index.d.ts +26 -26
- package/dist/features/monitoring/requests/index.js +21 -19
- package/dist/features/operations/index.d.ts +10 -10
- package/dist/features/operations/index.js +28 -25
- package/dist/features/seo/index.js +1 -1
- package/dist/features/settings/index.d.ts +34 -34
- package/dist/features/settings/index.js +22 -20
- package/dist/hooks/delivery/index.css +589 -0
- package/dist/hooks/delivery/index.d.ts +3044 -0
- package/dist/hooks/delivery/index.js +4 -0
- package/dist/hooks/index.d.ts +3103 -3120
- package/dist/hooks/index.js +20 -18
- package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +506 -0
- package/dist/hooks/operations/command-view/utils/transformCommandViewData.js +1 -0
- package/dist/hooks/published.d.ts +3103 -3120
- package/dist/hooks/published.js +20 -18
- package/dist/index.d.ts +3409 -3361
- package/dist/index.js +21 -19
- package/dist/initialization/index.js +4 -3
- package/dist/layout/index.js +3 -3
- package/dist/organization/index.js +4 -3
- package/dist/profile/index.js +2 -1
- package/dist/provider/ElevasisServiceContext.d.ts +54 -0
- package/dist/provider/ElevasisServiceContext.js +1 -0
- package/dist/provider/index.d.ts +244 -240
- package/dist/provider/index.js +17 -16
- package/dist/provider/published.d.ts +244 -240
- package/dist/provider/published.js +15 -14
- package/dist/types/index.d.ts +2349 -2332
- package/dist/utils/index.d.ts +73 -1
- package/dist/utils/index.js +2 -1
- package/dist/zustand/index.d.ts +7 -7
- package/package.json +3 -3
- package/dist/{chunk-4BF74JVD.js → chunk-6GUW5GGF.js} +1 -1
- package/dist/{chunk-ELJIFLCB.js → chunk-KRWALB24.js} +6 -6
package/dist/api/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import '../chunk-XCYKC6OZ.js';
|
|
2
|
-
export { ApiClientProvider, useApiClient, useApiClientContext } from '../chunk-
|
|
3
|
-
import '../chunk-
|
|
2
|
+
export { ApiClientProvider, useApiClient, useApiClientContext } from '../chunk-VDM6DQES.js';
|
|
3
|
+
import '../chunk-GCBWGGI6.js';
|
|
4
|
+
import '../chunk-KRWALB24.js';
|
|
4
5
|
import '../chunk-DD3CCMCZ.js';
|
package/dist/app/index.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import { ElevasisUIProvider } from '../chunk-
|
|
1
|
+
import { ElevasisUIProvider } from '../chunk-34NQLV2W.js';
|
|
2
2
|
import '../chunk-R73EHHPN.js';
|
|
3
3
|
import '../chunk-WLOQ4IBG.js';
|
|
4
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-P3TFNFZS.js';
|
|
5
5
|
import '../chunk-SZHARWKU.js';
|
|
6
|
-
import '../chunk-
|
|
7
|
-
import '../chunk-
|
|
6
|
+
import '../chunk-VDM6DQES.js';
|
|
7
|
+
import '../chunk-6IA2OMAE.js';
|
|
8
8
|
import '../chunk-QJ2KCHKX.js';
|
|
9
|
-
import '../chunk-
|
|
10
|
-
import
|
|
9
|
+
import '../chunk-GCBWGGI6.js';
|
|
10
|
+
import '../chunk-KRWALB24.js';
|
|
11
|
+
import { useInitialization } from '../chunk-DK2HVHCY.js';
|
|
11
12
|
import '../chunk-DD3CCMCZ.js';
|
|
12
|
-
import '../chunk-
|
|
13
|
+
import '../chunk-QHSW4WHM.js';
|
|
14
|
+
import '../chunk-IRW7JMQ4.js';
|
|
13
15
|
import '../chunk-BRJ3QZ4E.js';
|
|
14
16
|
import { useCallback, useEffect } from 'react';
|
|
15
17
|
import { RouterProvider } from '@tanstack/react-router';
|
package/dist/auth/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export { AdminGuard, ProtectedRoute, useSessionCheck as useRefocusSessionCheck, useSessionCheck, useStableAccessToken } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { AdminGuard, ProtectedRoute, useSessionCheck as useRefocusSessionCheck, useSessionCheck, useStableAccessToken } from '../chunk-SLH2QLKV.js';
|
|
2
|
+
import '../chunk-DK2HVHCY.js';
|
|
3
3
|
import '../chunk-DD3CCMCZ.js';
|
|
4
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-QHSW4WHM.js';
|
|
5
|
+
import '../chunk-IRW7JMQ4.js';
|
|
5
6
|
export { AuthProvider, useAuthContext } from '../chunk-BRJ3QZ4E.js';
|
package/dist/charts/index.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
export { ActivityTrendChart, ChartFrame, CombinedTrendChart, CostTrendChart, CyberAreaChart, CyberDonut, CyberDonutTooltip, CyberLegendItem, HeroStatsRow, getSeriesColor, useCyberColors } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { ActivityTrendChart, ChartFrame, CombinedTrendChart, CostTrendChart, CyberAreaChart, CyberDonut, CyberDonutTooltip, CyberLegendItem, HeroStatsRow, getSeriesColor, useCyberColors } from '../chunk-MJ6YV2B5.js';
|
|
2
|
+
import '../chunk-QSTH6T77.js';
|
|
3
|
+
import '../chunk-TTP62HWW.js';
|
|
4
|
+
import '../chunk-SZHARWKU.js';
|
|
4
5
|
import '../chunk-3KMDHCAR.js';
|
|
5
6
|
import '../chunk-NYBEU5TE.js';
|
|
6
|
-
import '../chunk-SZHARWKU.js';
|
|
7
7
|
import '../chunk-2IFYDILW.js';
|
|
8
|
-
import '../chunk-
|
|
8
|
+
import '../chunk-Q7DJKLEN.js';
|
|
9
9
|
import '../chunk-DT3QYZVU.js';
|
|
10
|
-
import '../chunk-
|
|
11
|
-
import '../chunk-
|
|
12
|
-
import '../chunk-
|
|
10
|
+
import '../chunk-GCBWGGI6.js';
|
|
11
|
+
import '../chunk-KRWALB24.js';
|
|
12
|
+
import '../chunk-SLH2QLKV.js';
|
|
13
|
+
import '../chunk-DK2HVHCY.js';
|
|
13
14
|
import '../chunk-DD3CCMCZ.js';
|
|
14
|
-
import '../chunk-
|
|
15
|
+
import '../chunk-QHSW4WHM.js';
|
|
16
|
+
import '../chunk-IRW7JMQ4.js';
|
|
15
17
|
import '../chunk-BRJ3QZ4E.js';
|
|
16
|
-
import '../chunk-Q7DJKLEN.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { SubshellContainer, SubshellSidebar, SubshellRightSideContainer } from './chunk-RX4UWZZR.js';
|
|
2
|
-
import { FeatureUnavailableState } from './chunk-
|
|
3
|
-
import { useInitialization } from './chunk-TUXTSEAF.js';
|
|
4
|
-
import { useOrganization } from './chunk-DD3CCMCZ.js';
|
|
2
|
+
import { FeatureUnavailableState } from './chunk-TTP62HWW.js';
|
|
5
3
|
import { useRouterContext } from './chunk-Q7DJKLEN.js';
|
|
4
|
+
import { useInitialization } from './chunk-DK2HVHCY.js';
|
|
5
|
+
import { useOrganization } from './chunk-DD3CCMCZ.js';
|
|
6
6
|
import { createContext, useMemo, useCallback, useContext } from 'react';
|
|
7
7
|
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
8
8
|
|
|
@@ -370,6 +370,8 @@ function ElevasisFeaturesProvider({
|
|
|
370
370
|
timeRange,
|
|
371
371
|
operationsApiUrl,
|
|
372
372
|
operationsSSEManager,
|
|
373
|
+
deliveryApiUrl,
|
|
374
|
+
deliverySSEManager,
|
|
373
375
|
disabledSubsectionPaths = [],
|
|
374
376
|
children
|
|
375
377
|
}) {
|
|
@@ -467,6 +469,8 @@ function ElevasisFeaturesProvider({
|
|
|
467
469
|
timeRange,
|
|
468
470
|
operationsApiUrl,
|
|
469
471
|
operationsSSEManager,
|
|
472
|
+
deliveryApiUrl,
|
|
473
|
+
deliverySSEManager,
|
|
470
474
|
disabledSubsectionPaths: normalizedDisabledSubsectionPaths,
|
|
471
475
|
isFeatureEnabled,
|
|
472
476
|
getResolvedFeature
|
|
@@ -481,6 +485,8 @@ function ElevasisFeaturesProvider({
|
|
|
481
485
|
timeRange,
|
|
482
486
|
operationsApiUrl,
|
|
483
487
|
operationsSSEManager,
|
|
488
|
+
deliveryApiUrl,
|
|
489
|
+
deliverySSEManager,
|
|
484
490
|
normalizedDisabledSubsectionPaths,
|
|
485
491
|
isFeatureEnabled,
|
|
486
492
|
getResolvedFeature
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { PRESETS, getPreset, generateShades, mantineThemeOverride, createCssVariablesResolver, PresetsProvider } from './chunk-R73EHHPN.js';
|
|
2
2
|
import { AppBackground } from './chunk-WLOQ4IBG.js';
|
|
3
|
-
import { ElevasisCoreProvider } from './chunk-
|
|
3
|
+
import { ElevasisCoreProvider } from './chunk-P3TFNFZS.js';
|
|
4
4
|
import { ElevasisLoader } from './chunk-SZHARWKU.js';
|
|
5
5
|
import { AppearanceProvider } from './chunk-QJ2KCHKX.js';
|
|
6
|
-
import { getErrorInfo, formatErrorMessage, getErrorTitle } from './chunk-
|
|
6
|
+
import { getErrorInfo, formatErrorMessage, getErrorTitle } from './chunk-GCBWGGI6.js';
|
|
7
7
|
import { useMemo, useEffect } from 'react';
|
|
8
8
|
import { Loader, mergeThemeOverrides, MantineProvider } from '@mantine/core';
|
|
9
9
|
import '@mantine/core/styles.css';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OrganizationContext } from './chunk-DD3CCMCZ.js';
|
|
2
|
-
import { useProfile } from './chunk-
|
|
2
|
+
import { useProfile } from './chunk-QHSW4WHM.js';
|
|
3
3
|
import { useAuthContext } from './chunk-BRJ3QZ4E.js';
|
|
4
4
|
import { useState, useRef, useEffect, useCallback, createElement } from 'react';
|
|
5
5
|
import { useQueryClient } from '@tanstack/react-query';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useUserProfile } from './chunk-
|
|
1
|
+
import { useUserProfile } from './chunk-QHSW4WHM.js';
|
|
2
2
|
import { useAuthContext } from './chunk-BRJ3QZ4E.js';
|
|
3
3
|
import { useState, useRef, useEffect, useCallback } from 'react';
|
|
4
4
|
import { Button, Loader, Menu, Text, Badge } from '@mantine/core';
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { ResourceHealthChart } from './chunk-LGKLC5MG.js';
|
|
2
|
-
import { useCyberColors, HeroStatsRow } from './chunk-
|
|
2
|
+
import { useCyberColors, HeroStatsRow } from './chunk-MJ6YV2B5.js';
|
|
3
3
|
import { AppShellCenteredContainer, AppShellLoader } from './chunk-M25JL54Z.js';
|
|
4
|
-
import { STATUS_COLORS, getStatusIcon, formatDuration, getStatusColors, AGENT_CONSTANTS, shouldAnimateEdge, TIMELINE_CONSTANTS, calculateBarPosition, CONTAINER_CONSTANTS, useExecutionPath, useUnifiedWorkflowLayout, WORKFLOW_CONSTANTS, useReactFlowAgent } from './chunk-
|
|
5
|
-
import { useExecuteResource, useDashboardMetrics, useResources, useTimeRangeDates, useUnresolvedErrors, useRecentExecutionsByResource, useCommandQueue, useScheduledTasks, useResourcesHealth } from './chunk-
|
|
6
|
-
import { getTimeRangeDates } from './chunk-LXHZYSMQ.js';
|
|
4
|
+
import { STATUS_COLORS, getStatusIcon, formatDuration, getStatusColors, AGENT_CONSTANTS, shouldAnimateEdge, TIMELINE_CONSTANTS, calculateBarPosition, CONTAINER_CONSTANTS, useExecutionPath, useUnifiedWorkflowLayout, WORKFLOW_CONSTANTS, useReactFlowAgent } from './chunk-E4WQGJNS.js';
|
|
5
|
+
import { useExecuteResource, useDashboardMetrics, useResources, useTimeRangeDates, useUnresolvedErrors, useRecentExecutionsByResource, useCommandQueue, useScheduledTasks, useResourcesHealth } from './chunk-R7GKX4HW.js';
|
|
7
6
|
import { Graph_module_css_default, useDirectedChainHighlighting, useNodeSelection, useFitViewTrigger } from './chunk-22UVE3RA.js';
|
|
8
7
|
import { glassBase } from './chunk-R73EHHPN.js';
|
|
9
|
-
import { GlowDot, CardHeader, EmptyState, PageTitleCaption, TabCountBadge } from './chunk-
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { useInitialization } from './chunk-
|
|
8
|
+
import { GlowDot, CardHeader, EmptyState, PageTitleCaption, TabCountBadge } from './chunk-TTP62HWW.js';
|
|
9
|
+
import { formatTimeAgo, getTimeRangeDates, formatRelativeTime } from './chunk-GCBWGGI6.js';
|
|
10
|
+
import { ResourceStatusColors } from './chunk-KRWALB24.js';
|
|
11
|
+
import { useInitialization } from './chunk-DK2HVHCY.js';
|
|
13
12
|
import { memo, useMemo, useEffect, useState, useCallback, Fragment } from 'react';
|
|
14
13
|
import { Paper, Stack, Text, Group, Badge, Box, useComputedColorScheme, Card, ActionIcon, Loader, SegmentedControl, TextInput, Textarea, Radio, Checkbox, Select, NumberInput, Button, Modal, Center, SimpleGrid, Title, Tabs, Grid, ThemeIcon } from '@mantine/core';
|
|
15
14
|
import { jsxs, jsx, Fragment as Fragment$1 } from 'react/jsx-runtime';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useOrganization } from './chunk-DD3CCMCZ.js';
|
|
2
|
-
import { useProfile } from './chunk-
|
|
2
|
+
import { useProfile } from './chunk-QHSW4WHM.js';
|
|
3
3
|
import { useAuthContext } from './chunk-BRJ3QZ4E.js';
|
|
4
4
|
import { createContext, useContext, useMemo, useCallback, createElement } from 'react';
|
|
5
5
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isStepStartedContext, isConditionalRouteContext, isStepCompletedContext, isStepFailedContext, isLifecycleEvent, isIterationEvent, isToolCallEvent, toWorkflowLogMessage } from './chunk-
|
|
1
|
+
import { isStepStartedContext, isConditionalRouteContext, isStepCompletedContext, isStepFailedContext, isLifecycleEvent, isIterationEvent, isToolCallEvent, toWorkflowLogMessage } from './chunk-KRWALB24.js';
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
3
|
import dagre from '@dagrejs/dagre';
|
|
4
4
|
import { IconCircleDot, IconLoader, IconAlertTriangle, IconX, IconCheck } from '@tabler/icons-react';
|
|
@@ -5,12 +5,13 @@ import { SubshellNavItem } from './chunk-CEWTOKE7.js';
|
|
|
5
5
|
import { SubshellSidebarSection } from './chunk-IIMU5YAJ.js';
|
|
6
6
|
import { FilterBar } from './chunk-PDHTXPSF.js';
|
|
7
7
|
import { CustomModal } from './chunk-GBMNCNHX.js';
|
|
8
|
-
import {
|
|
8
|
+
import { useProjectRealtime, useTableSort, sortData, usePaginationState, useTableSelection, useProjectActivities } from './chunk-R7GKX4HW.js';
|
|
9
|
+
import { useCreateTask, useCreateMilestone, useProjectMilestones, useUpdateTask, useProjects, useDeleteProject, useProject, useProjectNotes, useUpdateMilestone, useCreateNote, showApiErrorNotification, projectKeys } from './chunk-GRGRBWIO.js';
|
|
9
10
|
import { SubshellContentContainer } from './chunk-RX4UWZZR.js';
|
|
10
|
-
import { StatusBadge, EmptyState, PageTitleCaption, CenteredErrorState, StatCard } from './chunk-
|
|
11
|
-
import { PAGE_SIZE_DEFAULT, formatTimeAgo, formatDate, formatRelativeTime } from './chunk-IOKL7BKE.js';
|
|
12
|
-
import { useElevasisServices } from './chunk-QEPXAWE2.js';
|
|
11
|
+
import { StatusBadge, EmptyState, PageTitleCaption, CenteredErrorState, StatCard } from './chunk-TTP62HWW.js';
|
|
13
12
|
import { useRouterContext } from './chunk-Q7DJKLEN.js';
|
|
13
|
+
import { PAGE_SIZE_DEFAULT, formatTimeAgo, formatDate, formatRelativeTime } from './chunk-GCBWGGI6.js';
|
|
14
|
+
import { useElevasisServices } from './chunk-IRW7JMQ4.js';
|
|
14
15
|
import { useState, useMemo, useCallback } from 'react';
|
|
15
16
|
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, Divider, Tabs, Anchor, Chip } from '@mantine/core';
|
|
16
17
|
import { IconNotes, IconBriefcase, IconChecklist, IconFlag, IconX, IconPlus, IconHeartbeat, IconFileText, IconCalendar, IconInbox, IconLock, IconAlertTriangle, IconCircleCheck, IconClock, IconChevronDown, IconChevronRight, IconDownload, IconListCheck, IconMessageCircle, IconSearch, IconArrowLeft, IconCheck, IconCopy, IconTerminal2, IconCurrencyDollar, IconBuilding } from '@tabler/icons-react';
|
|
@@ -594,6 +595,7 @@ var STATUS_OPTIONS = [
|
|
|
594
595
|
{ value: "paused", label: "Paused" }
|
|
595
596
|
];
|
|
596
597
|
function ProjectsListPage({ onProjectClick } = {}) {
|
|
598
|
+
useProjectRealtime();
|
|
597
599
|
const [statusFilter, setStatusFilter] = useState(null);
|
|
598
600
|
const [searchQuery, setSearchQuery] = useState("");
|
|
599
601
|
const [showBatchDelete, setShowBatchDelete] = useState(false);
|
|
@@ -1176,8 +1178,6 @@ function LogBlockerModal({ opened, onClose, projectId }) {
|
|
|
1176
1178
|
function ProjectDetailPage({ projectId, onBack, backLabel = "Projects" }) {
|
|
1177
1179
|
useProjectRealtime(projectId);
|
|
1178
1180
|
const { data: project, isLoading, error } = useProject(projectId);
|
|
1179
|
-
const { data: milestones = [] } = useProjectMilestones(projectId);
|
|
1180
|
-
const { data: tasks = [] } = useProjectTasks(projectId);
|
|
1181
1181
|
const { data: notes } = useProjectNotes({ projectId });
|
|
1182
1182
|
const { mutate: deleteProject, isPending: isDeleting } = useDeleteProject();
|
|
1183
1183
|
const [addNoteOpen, setAddNoteOpen] = useState(false);
|
|
@@ -1195,6 +1195,8 @@ function ProjectDetailPage({ projectId, onBack, backLabel = "Projects" }) {
|
|
|
1195
1195
|
if (!project) {
|
|
1196
1196
|
return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsx(Center, { style: { flex: 1 }, children: /* @__PURE__ */ jsx(Alert, { color: "yellow", children: "Project not found" }) }) });
|
|
1197
1197
|
}
|
|
1198
|
+
const milestones = project.milestones ?? [];
|
|
1199
|
+
const tasks = project.tasks ?? [];
|
|
1198
1200
|
const totalMilestones = milestones.length;
|
|
1199
1201
|
const completedMilestones = milestones.filter((milestone) => milestone.status === "completed").length;
|
|
1200
1202
|
const totalTasks = tasks.length;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { formatDistanceToNow } from 'date-fns';
|
|
2
2
|
import { IconUser, IconExternalLink, IconPlug, IconBolt, IconGitBranch, IconBrain } from '@tabler/icons-react';
|
|
3
|
+
import { z } from 'zod';
|
|
3
4
|
|
|
4
5
|
// src/utils/dateFormatters.ts
|
|
5
6
|
function formatDateTime(dateString) {
|
|
@@ -146,6 +147,50 @@ Request ID: ${requestId}`;
|
|
|
146
147
|
return formatted;
|
|
147
148
|
}
|
|
148
149
|
|
|
150
|
+
// ../core/src/platform/utils/debounce.ts
|
|
151
|
+
function debounce(fn, wait) {
|
|
152
|
+
let timeoutId = null;
|
|
153
|
+
const debounced = (...args) => {
|
|
154
|
+
if (timeoutId !== null) {
|
|
155
|
+
clearTimeout(timeoutId);
|
|
156
|
+
}
|
|
157
|
+
timeoutId = setTimeout(() => {
|
|
158
|
+
fn(...args);
|
|
159
|
+
timeoutId = null;
|
|
160
|
+
}, wait);
|
|
161
|
+
};
|
|
162
|
+
debounced.cancel = () => {
|
|
163
|
+
if (timeoutId !== null) {
|
|
164
|
+
clearTimeout(timeoutId);
|
|
165
|
+
timeoutId = null;
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
return debounced;
|
|
169
|
+
}
|
|
170
|
+
var UuidSchema = z.string().uuid();
|
|
171
|
+
var NonEmptyStringSchema = z.string().trim().min(1).max(1e3);
|
|
172
|
+
var ResourceTypeSchema = z.enum(["agent", "workflow"]);
|
|
173
|
+
var OriginResourceTypeSchema = z.enum(["agent", "workflow", "scheduler", "api"]);
|
|
174
|
+
var CredentialNameSchema = z.string().trim().toLowerCase().min(1, "Credential name required").max(100, "Credential name too long (max 100 chars)").regex(
|
|
175
|
+
/^[a-z0-9]+(-[a-z0-9]+)+$/,
|
|
176
|
+
"Credential name must be lowercase letters, numbers, and hyphens in format: service-environment (e.g., gmail-prod, attio-dev)"
|
|
177
|
+
);
|
|
178
|
+
z.enum(["google-sheets", "dropbox"]);
|
|
179
|
+
z.string().min(10, "Authorization code too short").max(1e3, "Authorization code too long");
|
|
180
|
+
z.string().min(10, "State parameter too short").max(2048, "State parameter too long");
|
|
181
|
+
z.string().trim().transform((str) => str.replace(/[<>'"]/g, ""));
|
|
182
|
+
z.string().email();
|
|
183
|
+
z.string().url();
|
|
184
|
+
z.object({
|
|
185
|
+
limit: z.coerce.number().int().min(1).max(100).default(20),
|
|
186
|
+
offset: z.coerce.number().int().min(0).default(0)
|
|
187
|
+
});
|
|
188
|
+
z.string().datetime();
|
|
189
|
+
z.object({
|
|
190
|
+
startDate: z.string().datetime(),
|
|
191
|
+
endDate: z.string().datetime()
|
|
192
|
+
});
|
|
193
|
+
|
|
149
194
|
// ../core/src/platform/registry/domains.ts
|
|
150
195
|
var DOMAINS = {
|
|
151
196
|
// Business domains
|
|
@@ -295,6 +340,56 @@ function getResourceColor(type) {
|
|
|
295
340
|
return resourceTypeColors[type];
|
|
296
341
|
}
|
|
297
342
|
|
|
343
|
+
// ../core/src/operations/observability/utils.ts
|
|
344
|
+
function getTimeRangeDates(range) {
|
|
345
|
+
const end = /* @__PURE__ */ new Date();
|
|
346
|
+
const start = /* @__PURE__ */ new Date();
|
|
347
|
+
switch (range) {
|
|
348
|
+
case "1h":
|
|
349
|
+
start.setHours(start.getHours() - 1);
|
|
350
|
+
break;
|
|
351
|
+
case "24h":
|
|
352
|
+
start.setHours(start.getHours() - 24);
|
|
353
|
+
break;
|
|
354
|
+
case "7d":
|
|
355
|
+
start.setDate(start.getDate() - 7);
|
|
356
|
+
break;
|
|
357
|
+
case "30d":
|
|
358
|
+
start.setDate(start.getDate() - 30);
|
|
359
|
+
break;
|
|
360
|
+
}
|
|
361
|
+
return {
|
|
362
|
+
startDate: start.toISOString(),
|
|
363
|
+
endDate: end.toISOString()
|
|
364
|
+
};
|
|
365
|
+
}
|
|
366
|
+
function getTimeRangeLabel(range) {
|
|
367
|
+
switch (range) {
|
|
368
|
+
case "1h":
|
|
369
|
+
return "Last 1 hour";
|
|
370
|
+
case "24h":
|
|
371
|
+
return "Last 24 hours";
|
|
372
|
+
case "7d":
|
|
373
|
+
return "Last 7 days";
|
|
374
|
+
case "30d":
|
|
375
|
+
return "Last 30 days";
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
function formatBucketTime(timestamp, granularity) {
|
|
379
|
+
const date = new Date(timestamp);
|
|
380
|
+
if (granularity === "hour") {
|
|
381
|
+
return date.toLocaleTimeString("en-US", {
|
|
382
|
+
hour: "2-digit",
|
|
383
|
+
minute: "2-digit",
|
|
384
|
+
hour12: false
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
return date.toLocaleDateString("en-US", {
|
|
388
|
+
month: "short",
|
|
389
|
+
day: "numeric"
|
|
390
|
+
});
|
|
391
|
+
}
|
|
392
|
+
|
|
298
393
|
// src/utils/resource-icons.tsx
|
|
299
394
|
var iconNameToComponent = {
|
|
300
395
|
IconBrain,
|
|
@@ -372,4 +467,41 @@ function restoreConsole() {
|
|
|
372
467
|
console.warn = originalConsoleWarn;
|
|
373
468
|
}
|
|
374
469
|
|
|
375
|
-
|
|
470
|
+
// src/utils/browser-mocks.ts
|
|
471
|
+
function setupMatchMedia() {
|
|
472
|
+
const win = globalThis.window;
|
|
473
|
+
if (typeof win === "undefined") return;
|
|
474
|
+
Object.defineProperty(win, "matchMedia", {
|
|
475
|
+
writable: true,
|
|
476
|
+
value: (query) => ({
|
|
477
|
+
matches: false,
|
|
478
|
+
media: query,
|
|
479
|
+
onchange: null,
|
|
480
|
+
addListener: () => {
|
|
481
|
+
},
|
|
482
|
+
removeListener: () => {
|
|
483
|
+
},
|
|
484
|
+
addEventListener: () => {
|
|
485
|
+
},
|
|
486
|
+
removeEventListener: () => {
|
|
487
|
+
},
|
|
488
|
+
dispatchEvent: () => true
|
|
489
|
+
})
|
|
490
|
+
});
|
|
491
|
+
}
|
|
492
|
+
function setupResizeObserver() {
|
|
493
|
+
globalThis.ResizeObserver = class ResizeObserver {
|
|
494
|
+
observe() {
|
|
495
|
+
}
|
|
496
|
+
unobserve() {
|
|
497
|
+
}
|
|
498
|
+
disconnect() {
|
|
499
|
+
}
|
|
500
|
+
};
|
|
501
|
+
}
|
|
502
|
+
function setupBrowserMocks() {
|
|
503
|
+
setupMatchMedia();
|
|
504
|
+
setupResizeObserver();
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
export { APIClientError, API_URL, CredentialNameSchema, DEBOUNCE_FILTER, DEBOUNCE_SLIDER, DOMAIN_MAP, GC_TIME_LONG, GC_TIME_MEDIUM, GC_TIME_SHORT, LIMIT_ACTIVITY_FEED, NonEmptyStringSchema, OAUTH_FLOW_TIMEOUT, OAUTH_POPUP_CHECK_INTERVAL, OriginResourceTypeSchema, PAGE_SIZE_DEFAULT, REFETCH_INTERVAL_DASHBOARD, REFETCH_INTERVAL_REALTIME, REFETCH_INTERVAL_RUNNING, REFETCH_INTERVAL_RUNNING_FAST, ResourceTypeSchema, SSE_CLOSE_GRACE_PERIOD, SSE_TOKEN_REFRESH_DELAY, STALE_TIME_ADMIN, STALE_TIME_DEFAULT, STALE_TIME_MONITORING, UuidSchema, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, debounce, formatBucketTime, formatChartAxisDate, formatDate, formatDateTime, formatErrorMessage, formatRelativeTime, formatTimeAgo, getErrorInfo, getErrorTitle, getNodeId, getResourceColor, getResourceIcon, getTimeRangeDates, getTimeRangeLabel, isAPIClientError, restoreConsole, setupBrowserMocks, suppressKnownWarnings, validateEmail };
|