@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.
Files changed (78) hide show
  1. package/dist/api/index.js +3 -2
  2. package/dist/app/index.js +9 -7
  3. package/dist/auth/index.js +4 -3
  4. package/dist/charts/index.js +11 -10
  5. package/dist/{chunk-C7BX547M.js → chunk-2TDZBYXI.js} +9 -3
  6. package/dist/{chunk-5IBTTMWX.js → chunk-34NQLV2W.js} +2 -2
  7. package/dist/{chunk-FL67C3WY.js → chunk-6IA2OMAE.js} +1 -1
  8. package/dist/{chunk-L4XXM55J.js → chunk-7YQKVWSD.js} +1 -1
  9. package/dist/{chunk-XJ7KC54A.js → chunk-ABUDMATM.js} +7 -8
  10. package/dist/{chunk-TUXTSEAF.js → chunk-DK2HVHCY.js} +1 -1
  11. package/dist/{chunk-GHIPBT5V.js → chunk-E4WQGJNS.js} +1 -1
  12. package/dist/{chunk-5SXYCICG.js → chunk-FNWWVX5N.js} +8 -6
  13. package/dist/{chunk-IOKL7BKE.js → chunk-GCBWGGI6.js} +133 -1
  14. package/dist/chunk-GRGRBWIO.js +383 -0
  15. package/dist/{chunk-SLVC5OJ2.js → chunk-HQ7M6PBW.js} +1 -1
  16. package/dist/chunk-IRW7JMQ4.js +28 -0
  17. package/dist/{chunk-YNPVQDNB.js → chunk-JU6UB4YA.js} +4 -4
  18. package/dist/{chunk-SFW573HS.js → chunk-MDO4UCEJ.js} +4 -4
  19. package/dist/{chunk-STZJ7SY5.js → chunk-MJ6YV2B5.js} +3 -2
  20. package/dist/{chunk-D7HBX5US.js → chunk-MUZIYL5Q.js} +5 -4
  21. package/dist/{chunk-DKQQK3WX.js → chunk-OCCZRPER.js} +1 -1
  22. package/dist/{chunk-FFXHKADZ.js → chunk-OXWQQCDR.js} +13 -32
  23. package/dist/{chunk-ZB5GAV7J.js → chunk-P3TFNFZS.js} +6 -5
  24. package/dist/{chunk-QEPXAWE2.js → chunk-QHSW4WHM.js} +3 -26
  25. package/dist/{chunk-LXHZYSMQ.js → chunk-QSTH6T77.js} +2 -52
  26. package/dist/{chunk-U2RXVZGY.js → chunk-R7GKX4HW.js} +66 -461
  27. package/dist/{chunk-X75JEGHS.js → chunk-S6CYH4RI.js} +7 -6
  28. package/dist/{chunk-MTJ43R2E.js → chunk-SLH2QLKV.js} +1 -1
  29. package/dist/{chunk-32NXXCQU.js → chunk-TP5NMF6K.js} +6 -7
  30. package/dist/{chunk-SQQGLGHW.js → chunk-TTP62HWW.js} +3 -3
  31. package/dist/{chunk-NVOCKXUQ.js → chunk-VDM6DQES.js} +1 -1
  32. package/dist/chunk-ZTWA5H77.js +94 -0
  33. package/dist/components/index.d.ts +2640 -2640
  34. package/dist/components/index.js +38 -35
  35. package/dist/execution/index.js +2 -2
  36. package/dist/features/auth/index.js +5 -4
  37. package/dist/features/crm/index.d.ts +51 -51
  38. package/dist/features/crm/index.js +21 -19
  39. package/dist/features/dashboard/index.js +23 -21
  40. package/dist/features/delivery/index.d.ts +2604 -2604
  41. package/dist/features/delivery/index.js +21 -19
  42. package/dist/features/lead-gen/index.js +29 -26
  43. package/dist/features/monitoring/index.js +26 -24
  44. package/dist/features/monitoring/requests/index.d.ts +26 -26
  45. package/dist/features/monitoring/requests/index.js +21 -19
  46. package/dist/features/operations/index.d.ts +10 -10
  47. package/dist/features/operations/index.js +28 -25
  48. package/dist/features/seo/index.js +1 -1
  49. package/dist/features/settings/index.d.ts +34 -34
  50. package/dist/features/settings/index.js +22 -20
  51. package/dist/hooks/delivery/index.css +589 -0
  52. package/dist/hooks/delivery/index.d.ts +3044 -0
  53. package/dist/hooks/delivery/index.js +4 -0
  54. package/dist/hooks/index.d.ts +3103 -3120
  55. package/dist/hooks/index.js +20 -18
  56. package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +506 -0
  57. package/dist/hooks/operations/command-view/utils/transformCommandViewData.js +1 -0
  58. package/dist/hooks/published.d.ts +3103 -3120
  59. package/dist/hooks/published.js +20 -18
  60. package/dist/index.d.ts +3409 -3361
  61. package/dist/index.js +21 -19
  62. package/dist/initialization/index.js +4 -3
  63. package/dist/layout/index.js +3 -3
  64. package/dist/organization/index.js +4 -3
  65. package/dist/profile/index.js +2 -1
  66. package/dist/provider/ElevasisServiceContext.d.ts +54 -0
  67. package/dist/provider/ElevasisServiceContext.js +1 -0
  68. package/dist/provider/index.d.ts +244 -240
  69. package/dist/provider/index.js +17 -16
  70. package/dist/provider/published.d.ts +244 -240
  71. package/dist/provider/published.js +15 -14
  72. package/dist/types/index.d.ts +2349 -2332
  73. package/dist/utils/index.d.ts +73 -1
  74. package/dist/utils/index.js +2 -1
  75. package/dist/zustand/index.d.ts +7 -7
  76. package/package.json +3 -3
  77. package/dist/{chunk-4BF74JVD.js → chunk-6GUW5GGF.js} +1 -1
  78. 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-NVOCKXUQ.js';
3
- import '../chunk-IOKL7BKE.js';
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-5IBTTMWX.js';
1
+ import { ElevasisUIProvider } from '../chunk-34NQLV2W.js';
2
2
  import '../chunk-R73EHHPN.js';
3
3
  import '../chunk-WLOQ4IBG.js';
4
- import '../chunk-ZB5GAV7J.js';
4
+ import '../chunk-P3TFNFZS.js';
5
5
  import '../chunk-SZHARWKU.js';
6
- import '../chunk-NVOCKXUQ.js';
7
- import '../chunk-FL67C3WY.js';
6
+ import '../chunk-VDM6DQES.js';
7
+ import '../chunk-6IA2OMAE.js';
8
8
  import '../chunk-QJ2KCHKX.js';
9
- import '../chunk-IOKL7BKE.js';
10
- import { useInitialization } from '../chunk-TUXTSEAF.js';
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-QEPXAWE2.js';
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';
@@ -1,5 +1,6 @@
1
- export { AdminGuard, ProtectedRoute, useSessionCheck as useRefocusSessionCheck, useSessionCheck, useStableAccessToken } from '../chunk-MTJ43R2E.js';
2
- import '../chunk-TUXTSEAF.js';
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-QEPXAWE2.js';
4
+ import '../chunk-QHSW4WHM.js';
5
+ import '../chunk-IRW7JMQ4.js';
5
6
  export { AuthProvider, useAuthContext } from '../chunk-BRJ3QZ4E.js';
@@ -1,16 +1,17 @@
1
- export { ActivityTrendChart, ChartFrame, CombinedTrendChart, CostTrendChart, CyberAreaChart, CyberDonut, CyberDonutTooltip, CyberLegendItem, HeroStatsRow, getSeriesColor, useCyberColors } from '../chunk-STZJ7SY5.js';
2
- import '../chunk-LXHZYSMQ.js';
3
- import '../chunk-SQQGLGHW.js';
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-ELJIFLCB.js';
8
+ import '../chunk-Q7DJKLEN.js';
9
9
  import '../chunk-DT3QYZVU.js';
10
- import '../chunk-IOKL7BKE.js';
11
- import '../chunk-MTJ43R2E.js';
12
- import '../chunk-TUXTSEAF.js';
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-QEPXAWE2.js';
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-SQQGLGHW.js';
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-ZB5GAV7J.js';
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-IOKL7BKE.js';
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-QEPXAWE2.js';
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-QEPXAWE2.js';
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-STZJ7SY5.js';
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-GHIPBT5V.js';
5
- import { useExecuteResource, useDashboardMetrics, useResources, useTimeRangeDates, useUnresolvedErrors, useRecentExecutionsByResource, useCommandQueue, useScheduledTasks, useResourcesHealth } from './chunk-U2RXVZGY.js';
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-SQQGLGHW.js';
10
- import { ResourceStatusColors } from './chunk-ELJIFLCB.js';
11
- import { formatTimeAgo, formatRelativeTime } from './chunk-IOKL7BKE.js';
12
- import { useInitialization } from './chunk-TUXTSEAF.js';
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-QEPXAWE2.js';
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-ELJIFLCB.js';
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 { useCreateTask, useCreateMilestone, useProjectMilestones, useUpdateTask, useProjects, useDeleteProject, useTableSort, sortData, usePaginationState, useTableSelection, useProjectRealtime, useProject, useProjectTasks, useProjectNotes, useUpdateMilestone, useProjectActivities, useCreateNote, showApiErrorNotification, projectKeys } from './chunk-U2RXVZGY.js';
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-SQQGLGHW.js';
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
- export { APIClientError, API_URL, DEBOUNCE_FILTER, DEBOUNCE_SLIDER, DOMAIN_MAP, GC_TIME_LONG, GC_TIME_MEDIUM, GC_TIME_SHORT, LIMIT_ACTIVITY_FEED, OAUTH_FLOW_TIMEOUT, OAUTH_POPUP_CHECK_INTERVAL, PAGE_SIZE_DEFAULT, REFETCH_INTERVAL_DASHBOARD, REFETCH_INTERVAL_REALTIME, REFETCH_INTERVAL_RUNNING, REFETCH_INTERVAL_RUNNING_FAST, SSE_CLOSE_GRACE_PERIOD, SSE_TOKEN_REFRESH_DELAY, STALE_TIME_ADMIN, STALE_TIME_DEFAULT, STALE_TIME_MONITORING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, formatChartAxisDate, formatDate, formatDateTime, formatErrorMessage, formatRelativeTime, formatTimeAgo, getErrorInfo, getErrorTitle, getNodeId, getResourceColor, getResourceIcon, isAPIClientError, restoreConsole, suppressKnownWarnings, validateEmail };
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 };