@elevasis/ui 2.73.0 → 2.75.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 +58 -0
- package/dist/app/index.js +9 -10
- package/dist/auth/index.js +5 -6
- package/dist/charts/index.js +5 -6
- package/dist/chunk-2GIJBHZT.js +60 -0
- package/dist/{chunk-Z4ICFQXG.js → chunk-2ZRY3ARL.js} +1 -1
- package/dist/{chunk-5B2ZFO44.js → chunk-3H5DIJN7.js} +1 -1
- package/dist/{chunk-LZT2H2MA.js → chunk-47YJVIZE.js} +36 -43
- package/dist/{chunk-3TS5U5BL.js → chunk-5RH6NYZH.js} +1 -1
- package/dist/chunk-5SLRGUC4.js +224 -0
- package/dist/{chunk-JYBJMVNY.js → chunk-5VF5LPYS.js} +1 -1
- package/dist/{chunk-SWKAH2YM.js → chunk-6BJ5HMMC.js} +282 -553
- package/dist/{chunk-NI37YNRP.js → chunk-7OOFMEX6.js} +11 -5
- package/dist/{chunk-IBCEAVB2.js → chunk-A2SB32YV.js} +65 -5
- package/dist/{chunk-CJ2232PQ.js → chunk-CRPH5AAB.js} +1 -1
- package/dist/chunk-D3XXPCCK.js +69 -0
- package/dist/chunk-DMSTDZCJ.js +305 -0
- package/dist/chunk-DTEGVSJ6.js +645 -0
- package/dist/chunk-DVAOCHIF.js +165 -0
- package/dist/chunk-G7O4CBMC.js +231 -0
- package/dist/{chunk-IGBPWD6S.js → chunk-GDTK33QT.js} +5 -3
- package/dist/chunk-ICHDIVQO.js +54 -0
- package/dist/{chunk-U2H3TIHD.js → chunk-IYATYH5I.js} +2 -52
- package/dist/chunk-L3NBMLRN.js +49 -0
- package/dist/{chunk-LEPYXLJ2.js → chunk-LFLM723H.js} +1 -1
- package/dist/chunk-M6VAZAQW.js +45 -0
- package/dist/{chunk-AJOVWB47.js → chunk-MLHZUN2X.js} +6 -3
- package/dist/chunk-N6K2Q5BM.js +393 -0
- package/dist/chunk-NMHQAYZU.js +439 -0
- package/dist/chunk-NYIIRZSA.js +286 -0
- package/dist/{chunk-ETN3TTRT.js → chunk-OGHTJKBV.js} +115 -8
- package/dist/{chunk-M7WWRZ5Z.js → chunk-QFGNRKIE.js} +1 -78
- package/dist/chunk-QFS2GZMV.js +515 -0
- package/dist/{chunk-OCVSPAKM.js → chunk-SB3IHM5Y.js} +1150 -4346
- package/dist/{chunk-4CW2C5BD.js → chunk-SEYOVNS5.js} +1 -1
- package/dist/chunk-SN7X5N2A.js +116 -0
- package/dist/{chunk-PQ4B62HH.js → chunk-TX3UHDL5.js} +2 -2
- package/dist/chunk-VM2OWOXL.js +24 -0
- package/dist/{chunk-ZDKPHFTH.js → chunk-VWGCURZF.js} +5 -3
- package/dist/chunk-WDBNW44Z.js +49 -0
- package/dist/chunk-YQQ5GRUR.js +21 -0
- package/dist/{chunk-NHNTX6ZL.js → chunk-ZG6YJUT4.js} +3 -2
- package/dist/components/index.d.ts +228 -6
- package/dist/components/index.js +321 -35
- package/dist/components/navigation/index.js +6 -7
- package/dist/features/auth/index.d.ts +78 -2
- package/dist/features/auth/index.js +18 -9
- package/dist/features/clients/index.js +7 -7
- package/dist/features/content/index.d.ts +226 -5
- package/dist/features/content/index.js +270 -19
- package/dist/features/crm/index.d.ts +58 -0
- package/dist/features/crm/index.js +10 -8
- package/dist/features/dashboard/index.js +9 -8
- package/dist/features/delivery/index.d.ts +58 -0
- package/dist/features/delivery/index.js +23 -7
- package/dist/features/knowledge/index.js +5 -6
- package/dist/features/lead-gen/index.d.ts +9 -15
- package/dist/features/lead-gen/index.js +12 -8
- package/dist/features/monitoring/index.js +11 -9
- package/dist/features/monitoring/requests/index.js +8 -7
- package/dist/features/operations/index.js +15 -11
- package/dist/features/public-agent-chat/index.js +3 -1
- package/dist/features/settings/index.d.ts +66 -3
- package/dist/features/settings/index.js +9 -8
- package/dist/hooks/access/index.js +5 -6
- package/dist/hooks/delivery/index.d.ts +58 -0
- package/dist/hooks/delivery/index.js +3 -2
- package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +1 -1
- package/dist/hooks/published.d.ts +181 -5
- package/dist/hooks/published.js +22 -6
- package/dist/initialization/index.d.ts +58 -0
- package/dist/knowledge/index.js +167 -11
- package/dist/{knowledge-search-index-RZLIVWPJ.js → knowledge-search-index-6GQK55IQ.js} +1 -1
- package/dist/layout/index.js +8 -9
- package/dist/profile/index.d.ts +58 -0
- package/dist/provider/index.d.ts +77 -1
- package/dist/provider/index.js +5 -6
- package/dist/provider/published.d.ts +105 -1
- package/dist/provider/published.js +5 -6
- package/dist/test-utils/index.d.ts +16 -5
- package/dist/test-utils/index.js +17 -18
- package/dist/types/index.d.ts +73 -1
- package/dist/utils/index.d.ts +83 -3
- package/dist/utils/index.js +1 -1
- package/package.json +10 -5
- package/dist/chunk-6M6OLGQY.js +0 -36
- package/dist/chunk-MKH2KOAO.js +0 -39
- package/dist/hooks/index.css +0 -659
- package/dist/hooks/index.d.ts +0 -14073
- package/dist/hooks/index.js +0 -27
- package/dist/supabase/index.d.ts +0 -7118
- package/dist/supabase/index.js +0 -3
- package/dist/typeform/index.d.ts +0 -462
- package/dist/typeform/index.js +0 -2051
- package/dist/typeform/schemas.d.ts +0 -67
- package/dist/typeform/schemas.js +0 -2
package/dist/components/index.js
CHANGED
|
@@ -1,46 +1,63 @@
|
|
|
1
|
-
export { AppErrorBoundary, CrashErrorFallback, ErrorReportCard, buildErrorReport } from '../chunk-
|
|
2
|
-
import { useBreadcrumbs } from '../chunk-
|
|
1
|
+
export { AppErrorBoundary, CrashErrorFallback, ErrorReportCard, buildErrorReport } from '../chunk-LFLM723H.js';
|
|
2
|
+
import { useBreadcrumbs } from '../chunk-5VF5LPYS.js';
|
|
3
3
|
import '../chunk-AH52XQB7.js';
|
|
4
|
-
import { showAuthError } from '../chunk-
|
|
5
|
-
export {
|
|
4
|
+
import { showAuthError, getCredentialSchema, CREDENTIAL_SCHEMAS, OAuthIntegrationsCard, buildCredentialValue } from '../chunk-6BJ5HMMC.js';
|
|
5
|
+
export { MembershipStatusBadge, OAuthConnectModal, OAuthIntegrationsCard, OrganizationMembershipsList, ProvisioningStateBadge, WebhookUrlDisplayModal, showAuthError } from '../chunk-6BJ5HMMC.js';
|
|
6
6
|
import '../chunk-ZFISGKYW.js';
|
|
7
|
-
import '../chunk-
|
|
8
|
-
import { setDealReferrer, compareDealsByPriority } from '../chunk-
|
|
9
|
-
export { ActivityFeedWidget, CompanyDetailPage, ContactDetailPage, CrmOverview, CrmSidebar, CrmSidebarTop, DealDetailPage, DealsListPage, MetricsStrip, PIPELINE_FUNNEL_ORDER, PipelineFunnelWidget, useCrmPipelineSummary, useCrmQuickMetrics, useRecentCrmActivity } from '../chunk-
|
|
10
|
-
export { AllTasksPage, HealthStatusCard, MilestoneTimeline, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, TaskCard, UpcomingMilestonesPage } from '../chunk-
|
|
11
|
-
|
|
12
|
-
import '../chunk-
|
|
13
|
-
|
|
7
|
+
import '../chunk-CRPH5AAB.js';
|
|
8
|
+
import { setDealReferrer, compareDealsByPriority } from '../chunk-7OOFMEX6.js';
|
|
9
|
+
export { ActivityFeedWidget, CompanyDetailPage, ContactDetailPage, CrmOverview, CrmSidebar, CrmSidebarTop, DealDetailPage, DealsListPage, MetricsStrip, PIPELINE_FUNNEL_ORDER, PipelineFunnelWidget, useCrmPipelineSummary, useCrmQuickMetrics, useRecentCrmActivity } from '../chunk-7OOFMEX6.js';
|
|
10
|
+
export { AllTasksPage, HealthStatusCard, MilestoneTimeline, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, TaskCard, UpcomingMilestonesPage } from '../chunk-MLHZUN2X.js';
|
|
11
|
+
import { useCreateOrgRole, useUpdateApiKey, useDeleteApiKey, useCreateApiKey, useListApiKeys, useActivateDeployment, useDeactivateDeployment, useDeleteDeployment, useListDeployments, useTransitionItem } from '../chunk-DTEGVSJ6.js';
|
|
12
|
+
import '../chunk-IYATYH5I.js';
|
|
13
|
+
import { usePermissionCatalog } from '../chunk-QFS2GZMV.js';
|
|
14
|
+
import '../chunk-M6VAZAQW.js';
|
|
15
|
+
export { LEAD_GEN_ROUTE_LINKS, LeadGenCompaniesPage, LeadGenContactsPage, LeadGenListDetailPage, LeadGenListsPage, LeadGenOverviewPage, LeadGenRouteShell, LeadGenSidebar, LeadGenSidebarTop, StepConfigForm, TabSection, getEnrichmentColor, getStatusColor, useDeleteLists } from '../chunk-47YJVIZE.js';
|
|
16
|
+
import '../chunk-TX3UHDL5.js';
|
|
17
|
+
import '../chunk-DVAOCHIF.js';
|
|
18
|
+
import { useDeleteCredential, useCreateCredential, useCredentials, CredentialSchemas } from '../chunk-G7O4CBMC.js';
|
|
19
|
+
import '../chunk-NYIIRZSA.js';
|
|
20
|
+
export { ActionModal, AgentDefinitionDisplay, AgentExecutionLogs, BaseExecutionLogs, BaseExecutionLogsHeader, BaseExecutionLogsStates, CommandQueueTaskRow, ConfigCard, ContentSections, ContextUsageBadge, ContractDisplay, ExecutionErrorSection, LogEntry, LogGroup, ResourceDefinitionSection, ResourceErrorState, ResourceFilter, ResourceHeader, ResourceNotFoundState, SessionMemory, ToolsListDisplay, WorkflowDefinitionDisplay, WorkflowExecutionLogs, getExecutionStatusConfig, getIcon, getLogLevelConfig, iconMap } from '../chunk-OGHTJKBV.js';
|
|
14
21
|
import '../chunk-6ZAP3FOA.js';
|
|
15
|
-
import '../chunk-
|
|
16
|
-
export { AgentExecutionTimeline, AgentExecutionVisualizer, AgentIterationDetailPanel, AgentIterationEdge, AgentIterationNode, BaseEdge, BaseNode, CollapsibleJsonSection, EmptyVisualizer, ExecutionStats, ExecutionStatusBadge, GraphBackground, GraphContainer, GraphFitViewButton, GraphFitViewHandler, GraphLegend, RunResourceButton, TimelineAxis, TimelineBar, TimelineContainer, TimelineRow, UnifiedWorkflowEdge, UnifiedWorkflowGraph, UnifiedWorkflowNode, VisualizerContainer, WorkflowExecutionTimeline, getGraphBackgroundStyles, useGraphBackgroundStyles, useGraphTheme } from '../chunk-
|
|
22
|
+
import '../chunk-2ZRY3ARL.js';
|
|
23
|
+
export { AgentExecutionTimeline, AgentExecutionVisualizer, AgentIterationDetailPanel, AgentIterationEdge, AgentIterationNode, BaseEdge, BaseNode, CollapsibleJsonSection, EmptyVisualizer, ExecutionStats, ExecutionStatusBadge, GraphBackground, GraphContainer, GraphFitViewButton, GraphFitViewHandler, GraphLegend, RunResourceButton, TimelineAxis, TimelineBar, TimelineContainer, TimelineRow, UnifiedWorkflowEdge, UnifiedWorkflowGraph, UnifiedWorkflowNode, VisualizerContainer, WorkflowExecutionTimeline, getGraphBackgroundStyles, useGraphBackgroundStyles, useGraphTheme } from '../chunk-VWGCURZF.js';
|
|
24
|
+
import '../chunk-NMHQAYZU.js';
|
|
25
|
+
import { useCreateSchedule, useListSchedules, usePauseSchedule, useResumeSchedule, useCancelSchedule, useDeleteSchedule } from '../chunk-N6K2Q5BM.js';
|
|
26
|
+
import '../chunk-L3NBMLRN.js';
|
|
17
27
|
export { ZodFormRenderer } from '../chunk-3MEXPLWT.js';
|
|
18
28
|
import '../chunk-SNZDFCOQ.js';
|
|
19
|
-
import
|
|
20
|
-
|
|
21
|
-
export {
|
|
29
|
+
import '../chunk-QFGNRKIE.js';
|
|
30
|
+
import { NotificationList } from '../chunk-GDTK33QT.js';
|
|
31
|
+
export { ActivityCard, ActivityFilters as ActivityFiltersBar, ActivityTable, BusinessImpactCard, CostBreakdownCard, CostByModelTable, CostMetricsCard, ErrorAnalysisCard, ErrorBreakdownTable, ExecutionBreakdownTable, ExecutionHealthCard, ExecutionLogsFilters as ExecutionLogsFilterBar, ExecutionLogsTable, NotificationItem, NotificationList } from '../chunk-GDTK33QT.js';
|
|
32
|
+
import { useMarkAllAsRead, useNotifications } from '../chunk-DMSTDZCJ.js';
|
|
33
|
+
export { ResourceHealthPanel } from '../chunk-SEYOVNS5.js';
|
|
22
34
|
export { ResourceHealthChart, getHealthColor } from '../chunk-LGKLC5MG.js';
|
|
35
|
+
import '../chunk-YQQ5GRUR.js';
|
|
36
|
+
import '../chunk-VM2OWOXL.js';
|
|
37
|
+
import '../chunk-D3XXPCCK.js';
|
|
38
|
+
import '../chunk-WDBNW44Z.js';
|
|
23
39
|
export { Graph_module_css_default as graphStyles } from '../chunk-HENXLGVD.js';
|
|
24
|
-
import { AppShellLoader } from '../chunk-
|
|
40
|
+
import { AppShellLoader } from '../chunk-5RH6NYZH.js';
|
|
25
41
|
export { calculateProgress, formatStatusLabel, milestoneStatusColors, noteTypeColors, projectStatusColors, taskStatusColors, taskTypeColors } from '../chunk-DLR4SDZW.js';
|
|
42
|
+
import '../chunk-SN7X5N2A.js';
|
|
43
|
+
import { useCloudStorageFolder, useCloudStorageThumbnails } from '../chunk-5SLRGUC4.js';
|
|
26
44
|
import '../chunk-BZZCNLT6.js';
|
|
27
45
|
export { SortableHeader, TableSelectionToolbar } from '../chunk-TUMSNGTX.js';
|
|
28
46
|
import { FilterBar } from '../chunk-PDHTXPSF.js';
|
|
29
47
|
export { FilterBar } from '../chunk-PDHTXPSF.js';
|
|
30
|
-
import {
|
|
31
|
-
export { APIErrorAlert, ActivityTimeline, CenteredErrorState, CheckpointGroup, CollapsibleSection, CommandQueueSidebar, CommandQueueSidebarMiddle, CommandQueueSidebarTop, ConfirmationInputModal, ConfirmationModal, ContextViewer, CrmSidebarMiddle, CustomModal, CustomSelector, DetailCardSkeleton, ElevasisLoader, EmptyState, FeatureUnavailableState, GlowDot, JsonViewer, LeadGenSidebarMiddle, ListSkeleton, MyTasksPanel, NavigationButton, OperationsSidebar, OperationsSidebarMiddle, OperationsSidebarTop, OrganizationModelDriftActionIcon, PageNotFound, PageTitleCaption, QuickCreateActions, ResourceCard, SAVED_VIEW_PRESETS, SavedViewsPanel, StatCard, StatCardSkeleton, StatsCardSkeleton, StatusBadge, TabCountBadge, TimeRangeSelector, TrendIndicator, crmManifest, deliveryManifest, leadGenManifest, monitoringManifest, operationsManifest, settingsManifest } from '../chunk-
|
|
48
|
+
import { CustomModal, ListSkeleton, EmptyState, PageTitleCaption, StatCard, usePaginationState, useResources, CenteredErrorState, useDeals, dealKeys, SubshellContentContainer } from '../chunk-SB3IHM5Y.js';
|
|
49
|
+
export { APIErrorAlert, ActivityTimeline, CenteredErrorState, CheckpointGroup, CollapsibleSection, CommandQueueSidebar, CommandQueueSidebarMiddle, CommandQueueSidebarTop, ConfirmationInputModal, ConfirmationModal, ContextViewer, CrmSidebarMiddle, CustomModal, CustomSelector, DetailCardSkeleton, ElevasisLoader, EmptyState, FeatureUnavailableState, GlowDot, JsonViewer, LeadGenSidebarMiddle, ListSkeleton, MyTasksPanel, NavigationButton, NoAccessState, OperationsSidebar, OperationsSidebarMiddle, OperationsSidebarTop, OrganizationModelDriftActionIcon, PageNotFound, PageTitleCaption, QuickCreateActions, ResourceCard, SAVED_VIEW_PRESETS, SavedViewsPanel, StatCard, StatCardSkeleton, StatsCardSkeleton, StatusBadge, SystemReadinessAlert, SystemUnavailableState, TabCountBadge, TimeRangeSelector, TrendIndicator, crmManifest, deliveryManifest, leadGenManifest, monitoringManifest, operationsManifest, settingsManifest } from '../chunk-SB3IHM5Y.js';
|
|
32
50
|
import '../chunk-R6NMRXNO.js';
|
|
33
51
|
import '../chunk-RBGVNPA6.js';
|
|
34
|
-
import '../chunk-
|
|
35
|
-
import '../chunk-NHNTX6ZL.js';
|
|
52
|
+
import '../chunk-ZG6YJUT4.js';
|
|
36
53
|
import '../chunk-L7BZZ4SI.js';
|
|
37
|
-
import { showSuccessNotification, showErrorNotification, showApiErrorNotification } from '../chunk-
|
|
38
|
-
export { showApiErrorNotification, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification } from '../chunk-
|
|
54
|
+
import { showSuccessNotification, showErrorNotification, showApiErrorNotification } from '../chunk-ICHDIVQO.js';
|
|
55
|
+
export { showApiErrorNotification, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification } from '../chunk-ICHDIVQO.js';
|
|
39
56
|
export { SEOSidebar, SEOSidebarMiddle, SEOSidebarTop, seoManifest } from '../chunk-MISHPEJX.js';
|
|
40
57
|
import { CardHeader } from '../chunk-62GVNH5U.js';
|
|
41
58
|
export { CardHeader } from '../chunk-62GVNH5U.js';
|
|
42
59
|
import { useInitialization } from '../chunk-P45GQ3ZW.js';
|
|
43
|
-
import '../chunk-
|
|
60
|
+
import '../chunk-2GIJBHZT.js';
|
|
44
61
|
export { StyledMarkdown } from '../chunk-3KMDHCAR.js';
|
|
45
62
|
import '../chunk-2IFYDILW.js';
|
|
46
63
|
export { CONTAINER_CONSTANTS, SHARED_VIZ_CONSTANTS } from '../chunk-BLXJEIQS.js';
|
|
@@ -48,7 +65,7 @@ export { RoleBadge } from '../chunk-UD657ICS.js';
|
|
|
48
65
|
import '../chunk-DD3CCMCZ.js';
|
|
49
66
|
import '../chunk-RNP5R5I3.js';
|
|
50
67
|
import '../chunk-RT4KRGZT.js';
|
|
51
|
-
import { formatDateTime, PAGE_SIZE_DEFAULT, formatTimeAgo } from '../chunk-
|
|
68
|
+
import { formatDateTime, PAGE_SIZE_DEFAULT, formatTimeAgo } from '../chunk-A2SB32YV.js';
|
|
52
69
|
import '../chunk-Y6I3IC45.js';
|
|
53
70
|
import '../chunk-6SSQGWK7.js';
|
|
54
71
|
import { useElevasisServices } from '../chunk-BI5VDO2K.js';
|
|
@@ -57,8 +74,8 @@ import '../chunk-TVTSASST.js';
|
|
|
57
74
|
import '../chunk-BRJ3QZ4E.js';
|
|
58
75
|
import { useRouterContext } from '../chunk-Q7DJKLEN.js';
|
|
59
76
|
import '../chunk-I2KLQ2HA.js';
|
|
60
|
-
import { Stack, Card, Title, Checkbox, Group, Text, Tooltip,
|
|
61
|
-
import { IconLock, IconBell, IconPencil, IconAlertCircle, IconKey, IconCalendar, IconClock, IconTrash, IconAlertTriangle, IconExclamationMark, IconShieldLock, IconCheck, IconCopy, IconPlus, IconRocket, IconRefresh, IconPower, IconPlayerPlay, IconCircleCheck, IconTag, IconCalendarRepeat, IconCalendarEvent, IconCalendarTime, IconRobot, IconGitBranch, IconSettings, IconExternalLink, IconDotsVertical, IconPlayerPause, IconPlayerStop, IconCalendarDue, IconCalendarStats, IconCalendarOff, IconListCheck, IconFolder, IconPhoto, IconCloudOff } from '@tabler/icons-react';
|
|
77
|
+
import { Stack, Card, Title, Checkbox, Group, Text, Tooltip, TextInput, Textarea, Loader, Alert, Button, Box, Divider, ScrollArea, Popover, Indicator, ActionIcon, Table, Paper, Code, CopyButton, SimpleGrid, Select, PasswordInput, Anchor, Badge, Pagination, SegmentedControl, Switch, Menu, Timeline, ThemeIcon, Tabs, Breadcrumbs as Breadcrumbs$1, Center, UnstyledButton, Image, Flex } from '@mantine/core';
|
|
78
|
+
import { IconLock, IconBell, IconPencil, IconAlertCircle, IconKey, IconCalendar, IconClock, IconTrash, IconAlertTriangle, IconExclamationMark, IconShieldLock, IconCheck, IconCopy, IconPlus, IconInfoCircle, IconRocket, IconRefresh, IconPower, IconPlayerPlay, IconCircleCheck, IconTag, IconCalendarRepeat, IconCalendarEvent, IconCalendarTime, IconRobot, IconGitBranch, IconSettings, IconExternalLink, IconDotsVertical, IconPlayerPause, IconPlayerStop, IconCalendarDue, IconCalendarStats, IconCalendarOff, IconListCheck, IconFolder, IconPhoto, IconCloudOff } from '@tabler/icons-react';
|
|
62
79
|
import * as runtime from 'react/jsx-runtime';
|
|
63
80
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
64
81
|
import { useForm } from '@mantine/form';
|
|
@@ -136,13 +153,6 @@ function PermissionMatrix({ catalog, selectedKeys, onChange, systemLocked }) {
|
|
|
136
153
|
}) })
|
|
137
154
|
] }, domain)) });
|
|
138
155
|
}
|
|
139
|
-
function NoAccessState() {
|
|
140
|
-
return /* @__PURE__ */ jsx(Center, { style: { flex: 1, minHeight: "100%", width: "100%", padding: 24 }, children: /* @__PURE__ */ jsxs(Stack, { align: "center", gap: "xs", style: { maxWidth: 480, textAlign: "center" }, children: [
|
|
141
|
-
/* @__PURE__ */ jsx(IconLock, { size: 44, stroke: 1.8, color: "var(--color-text-subtle)" }),
|
|
142
|
-
/* @__PURE__ */ jsx(Title, { order: 3, children: "Access restricted" }),
|
|
143
|
-
/* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "You don't have permission to view this page. Contact an org admin if you need access." })
|
|
144
|
-
] }) });
|
|
145
|
-
}
|
|
146
156
|
var CreateRoleFormSchema = z.object({
|
|
147
157
|
name: z.string().trim().min(2).max(50),
|
|
148
158
|
slug: z.string().regex(/^[a-z0-9-]+$/, "lowercase, numbers, dashes only").min(2).max(50),
|
|
@@ -641,6 +651,282 @@ function ApiKeySettings() {
|
|
|
641
651
|
newApiKey && /* @__PURE__ */ jsx(ApiKeyDisplayModal, { opened: true, apiKey: newApiKey, onClose: () => setNewApiKey(null) })
|
|
642
652
|
] });
|
|
643
653
|
}
|
|
654
|
+
function CredentialList({ credentials, isLoading, onEdit }) {
|
|
655
|
+
const [deleteCredential, setDeleteCredential] = useState(null);
|
|
656
|
+
const deleteMutation = useDeleteCredential();
|
|
657
|
+
const handleDelete = () => {
|
|
658
|
+
if (deleteCredential) {
|
|
659
|
+
deleteMutation.mutate(deleteCredential.id);
|
|
660
|
+
setDeleteCredential(null);
|
|
661
|
+
}
|
|
662
|
+
};
|
|
663
|
+
const handleCloseDelete = () => {
|
|
664
|
+
if (!deleteMutation.isPending) {
|
|
665
|
+
setDeleteCredential(null);
|
|
666
|
+
}
|
|
667
|
+
};
|
|
668
|
+
if (isLoading) {
|
|
669
|
+
return /* @__PURE__ */ jsx(ListSkeleton, { rows: 3, rowHeight: 60 });
|
|
670
|
+
}
|
|
671
|
+
if (credentials.length === 0) {
|
|
672
|
+
return /* @__PURE__ */ jsx(
|
|
673
|
+
EmptyState,
|
|
674
|
+
{
|
|
675
|
+
icon: IconKey,
|
|
676
|
+
title: "No credentials yet",
|
|
677
|
+
description: "Create your first credential to enable external service integrations"
|
|
678
|
+
}
|
|
679
|
+
);
|
|
680
|
+
}
|
|
681
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
682
|
+
/* @__PURE__ */ jsxs(Table, { children: [
|
|
683
|
+
/* @__PURE__ */ jsx(Table.Thead, { children: /* @__PURE__ */ jsxs(Table.Tr, { children: [
|
|
684
|
+
/* @__PURE__ */ jsx(Table.Th, { children: "Name" }),
|
|
685
|
+
/* @__PURE__ */ jsx(Table.Th, { children: "Created" }),
|
|
686
|
+
/* @__PURE__ */ jsx(Table.Th, { w: 100 })
|
|
687
|
+
] }) }),
|
|
688
|
+
/* @__PURE__ */ jsx(Table.Tbody, { children: credentials.map((credential) => /* @__PURE__ */ jsxs(Table.Tr, { children: [
|
|
689
|
+
/* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
|
|
690
|
+
/* @__PURE__ */ jsx(IconKey, { size: 16, style: { opacity: 0.6 } }),
|
|
691
|
+
/* @__PURE__ */ jsx(Text, { fw: 500, children: credential.name })
|
|
692
|
+
] }) }),
|
|
693
|
+
/* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsxs(Group, { gap: 4, children: [
|
|
694
|
+
/* @__PURE__ */ jsx(IconCalendar, { size: 14, style: { opacity: 0.5 } }),
|
|
695
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: formatDateTime(credential.createdAt) })
|
|
696
|
+
] }) }),
|
|
697
|
+
/* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsxs(Group, { gap: "xs", justify: "flex-end", children: [
|
|
698
|
+
onEdit && /* @__PURE__ */ jsx(Tooltip, { label: "Edit credential", children: /* @__PURE__ */ jsx(
|
|
699
|
+
ActionIcon,
|
|
700
|
+
{
|
|
701
|
+
variant: "subtle",
|
|
702
|
+
color: "gray",
|
|
703
|
+
onClick: () => onEdit(credential),
|
|
704
|
+
disabled: deleteMutation.isPending,
|
|
705
|
+
children: /* @__PURE__ */ jsx(IconPencil, { size: 16 })
|
|
706
|
+
}
|
|
707
|
+
) }),
|
|
708
|
+
/* @__PURE__ */ jsx(Tooltip, { label: "Delete credential", position: "left", children: /* @__PURE__ */ jsx(
|
|
709
|
+
ActionIcon,
|
|
710
|
+
{
|
|
711
|
+
variant: "subtle",
|
|
712
|
+
color: "red",
|
|
713
|
+
onClick: () => setDeleteCredential(credential),
|
|
714
|
+
disabled: deleteMutation.isPending,
|
|
715
|
+
children: /* @__PURE__ */ jsx(IconTrash, { size: 16 })
|
|
716
|
+
}
|
|
717
|
+
) })
|
|
718
|
+
] }) })
|
|
719
|
+
] }, credential.id)) })
|
|
720
|
+
] }),
|
|
721
|
+
/* @__PURE__ */ jsx(CustomModal, { opened: !!deleteCredential, onClose: handleCloseDelete, size: "md", loading: deleteMutation.isPending, children: /* @__PURE__ */ jsxs(Stack, { children: [
|
|
722
|
+
/* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
|
|
723
|
+
/* @__PURE__ */ jsx(IconAlertTriangle, { size: 24, color: "var(--color-error)" }),
|
|
724
|
+
/* @__PURE__ */ jsx(Title, { order: 3, children: "Delete Credential" })
|
|
725
|
+
] }),
|
|
726
|
+
/* @__PURE__ */ jsxs(Text, { size: "sm", children: [
|
|
727
|
+
"Are you sure you want to delete",
|
|
728
|
+
" ",
|
|
729
|
+
/* @__PURE__ */ jsxs(Text, { span: true, fw: 600, children: [
|
|
730
|
+
'"',
|
|
731
|
+
deleteCredential?.name,
|
|
732
|
+
'"'
|
|
733
|
+
] }),
|
|
734
|
+
"?"
|
|
735
|
+
] }),
|
|
736
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "This action cannot be undone. Any agents or tools using this credential will stop working immediately." }),
|
|
737
|
+
/* @__PURE__ */ jsxs(Group, { justify: "space-between", gap: "sm", children: [
|
|
738
|
+
/* @__PURE__ */ jsx(Button, { variant: "light", onClick: handleCloseDelete, disabled: deleteMutation.isPending, children: "Cancel" }),
|
|
739
|
+
/* @__PURE__ */ jsx(
|
|
740
|
+
Button,
|
|
741
|
+
{
|
|
742
|
+
color: "red",
|
|
743
|
+
onClick: handleDelete,
|
|
744
|
+
loading: deleteMutation.isPending,
|
|
745
|
+
leftSection: /* @__PURE__ */ jsx(IconTrash, { size: 16 }),
|
|
746
|
+
children: "Delete Credential"
|
|
747
|
+
}
|
|
748
|
+
)
|
|
749
|
+
] })
|
|
750
|
+
] }) })
|
|
751
|
+
] });
|
|
752
|
+
}
|
|
753
|
+
function CreateCredentialModal({ opened, onClose, onSuccess }) {
|
|
754
|
+
const createCredential = useCreateCredential();
|
|
755
|
+
const [selectedType, setSelectedType] = useState("api-key");
|
|
756
|
+
const [schema, setSchema] = useState(getCredentialSchema("api-key"));
|
|
757
|
+
useEffect(() => {
|
|
758
|
+
setSchema(getCredentialSchema(selectedType));
|
|
759
|
+
}, [selectedType]);
|
|
760
|
+
const getInitialValues = (currentSchema) => {
|
|
761
|
+
const values = { name: "" };
|
|
762
|
+
if (currentSchema.fields) {
|
|
763
|
+
currentSchema.fields.forEach((field) => {
|
|
764
|
+
values[field.key] = "";
|
|
765
|
+
});
|
|
766
|
+
}
|
|
767
|
+
return values;
|
|
768
|
+
};
|
|
769
|
+
const getValidation = (currentSchema) => {
|
|
770
|
+
const validation = {
|
|
771
|
+
name: (value) => {
|
|
772
|
+
const result = CredentialSchemas.CreateRequest.shape.name.safeParse(value);
|
|
773
|
+
return result.success ? null : result.error.issues[0]?.message || "Invalid credential name";
|
|
774
|
+
}
|
|
775
|
+
};
|
|
776
|
+
if (currentSchema.fields) {
|
|
777
|
+
currentSchema.fields.forEach((field) => {
|
|
778
|
+
if (field.required) {
|
|
779
|
+
validation[field.key] = (value) => !value.trim() ? `${field.label} is required` : null;
|
|
780
|
+
}
|
|
781
|
+
});
|
|
782
|
+
}
|
|
783
|
+
return validation;
|
|
784
|
+
};
|
|
785
|
+
const form = useForm({
|
|
786
|
+
initialValues: getInitialValues(schema),
|
|
787
|
+
validate: getValidation(schema)
|
|
788
|
+
});
|
|
789
|
+
useEffect(() => {
|
|
790
|
+
const newValues = getInitialValues(schema);
|
|
791
|
+
form.setValues(newValues);
|
|
792
|
+
form.setFieldValue("name", form.values.name || "");
|
|
793
|
+
form.resetDirty();
|
|
794
|
+
}, [selectedType]);
|
|
795
|
+
const handleSubmit = async (values) => {
|
|
796
|
+
if (schema.type === "oauth") {
|
|
797
|
+
console.error("OAuth credentials cannot be created via this modal");
|
|
798
|
+
return;
|
|
799
|
+
}
|
|
800
|
+
const data = {
|
|
801
|
+
name: values.name.trim(),
|
|
802
|
+
type: selectedType,
|
|
803
|
+
value: buildCredentialValue(selectedType, values)
|
|
804
|
+
};
|
|
805
|
+
const validationResult = CredentialSchemas.CreateRequest.safeParse(data);
|
|
806
|
+
if (!validationResult.success) {
|
|
807
|
+
console.error("Validation failed:", validationResult.error);
|
|
808
|
+
return;
|
|
809
|
+
}
|
|
810
|
+
try {
|
|
811
|
+
const result = await createCredential.mutateAsync(data);
|
|
812
|
+
form.reset();
|
|
813
|
+
setSelectedType("api-key");
|
|
814
|
+
onSuccess(result);
|
|
815
|
+
} catch (error) {
|
|
816
|
+
console.error("Failed to create credential:", error);
|
|
817
|
+
}
|
|
818
|
+
};
|
|
819
|
+
const handleClose = () => {
|
|
820
|
+
if (!createCredential.isPending) {
|
|
821
|
+
form.reset();
|
|
822
|
+
setSelectedType("api-key");
|
|
823
|
+
onClose();
|
|
824
|
+
}
|
|
825
|
+
};
|
|
826
|
+
return /* @__PURE__ */ jsx(CustomModal, { opened, onClose: handleClose, size: "lg", loading: createCredential.isPending, children: /* @__PURE__ */ jsx("form", { onSubmit: form.onSubmit(handleSubmit), children: /* @__PURE__ */ jsxs(Stack, { children: [
|
|
827
|
+
/* @__PURE__ */ jsx(Title, { order: 3, children: "Create New Credential" }),
|
|
828
|
+
/* @__PURE__ */ jsx(
|
|
829
|
+
Select,
|
|
830
|
+
{
|
|
831
|
+
label: "Credential Type",
|
|
832
|
+
description: "Select the integration type",
|
|
833
|
+
placeholder: "Select credential type",
|
|
834
|
+
data: Object.entries(CREDENTIAL_SCHEMAS).filter(([_, s]) => s.type !== "oauth").map(([key, s]) => ({ value: key, label: s.label })),
|
|
835
|
+
value: selectedType,
|
|
836
|
+
onChange: (value) => setSelectedType(value || "api-key"),
|
|
837
|
+
required: true,
|
|
838
|
+
disabled: createCredential.isPending
|
|
839
|
+
}
|
|
840
|
+
),
|
|
841
|
+
/* @__PURE__ */ jsx(
|
|
842
|
+
TextInput,
|
|
843
|
+
{
|
|
844
|
+
label: "Credential Name",
|
|
845
|
+
description: schema.nameSuggestions.length > 0 ? `Suggested: ${schema.nameSuggestions.join(", ")}` : "Lowercase letters, numbers, and hyphens only (e.g., service-dev, service-prod)",
|
|
846
|
+
placeholder: schema.nameSuggestions[0] || "e.g., service-prod",
|
|
847
|
+
leftSection: /* @__PURE__ */ jsx(IconKey, { size: 16 }),
|
|
848
|
+
maxLength: 100,
|
|
849
|
+
required: true,
|
|
850
|
+
...form.getInputProps("name"),
|
|
851
|
+
disabled: createCredential.isPending
|
|
852
|
+
}
|
|
853
|
+
),
|
|
854
|
+
schema.type === "oauth" ? /* @__PURE__ */ jsxs(Alert, { icon: /* @__PURE__ */ jsx(IconInfoCircle, { size: 16 }), color: "blue", children: [
|
|
855
|
+
schema.label,
|
|
856
|
+
" uses OAuth authentication. Please go to the OAuth Integrations page to connect your",
|
|
857
|
+
" ",
|
|
858
|
+
schema.label,
|
|
859
|
+
" account."
|
|
860
|
+
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
861
|
+
schema.fields?.map((field) => {
|
|
862
|
+
const Input = field.type === "text" ? TextInput : PasswordInput;
|
|
863
|
+
return /* @__PURE__ */ jsx(
|
|
864
|
+
Input,
|
|
865
|
+
{
|
|
866
|
+
label: field.label,
|
|
867
|
+
description: field.description,
|
|
868
|
+
placeholder: field.placeholder,
|
|
869
|
+
required: field.required,
|
|
870
|
+
value: form.values[field.key] || "",
|
|
871
|
+
onChange: (e) => form.setFieldValue(field.key, e.target.value),
|
|
872
|
+
error: form.errors[field.key],
|
|
873
|
+
disabled: createCredential.isPending
|
|
874
|
+
},
|
|
875
|
+
field.key
|
|
876
|
+
);
|
|
877
|
+
}),
|
|
878
|
+
schema.docsUrl && /* @__PURE__ */ jsxs(Text, { size: "sm", c: "dimmed", children: [
|
|
879
|
+
"Get credentials from",
|
|
880
|
+
" ",
|
|
881
|
+
/* @__PURE__ */ jsx(Anchor, { href: schema.docsUrl, target: "_blank", rel: "noopener noreferrer", children: schema.docsUrl })
|
|
882
|
+
] })
|
|
883
|
+
] }),
|
|
884
|
+
createCredential.error && /* @__PURE__ */ jsx(Alert, { icon: /* @__PURE__ */ jsx(IconExclamationMark, { size: 16 }), color: "red", children: createCredential.error instanceof Error ? createCredential.error.message : "An error occurred while creating the credential" }),
|
|
885
|
+
/* @__PURE__ */ jsxs(Group, { justify: "flex-end", gap: "sm", children: [
|
|
886
|
+
/* @__PURE__ */ jsx(Button, { variant: "subtle", onClick: handleClose, disabled: createCredential.isPending, children: "Cancel" }),
|
|
887
|
+
/* @__PURE__ */ jsx(Button, { type: "submit", loading: createCredential.isPending, leftSection: /* @__PURE__ */ jsx(IconKey, { size: 16 }), children: "Create Credential" })
|
|
888
|
+
] })
|
|
889
|
+
] }) }) });
|
|
890
|
+
}
|
|
891
|
+
function CredentialSettings({ oauthSection } = {}) {
|
|
892
|
+
const { organizationReady } = useInitialization();
|
|
893
|
+
const [showCreateModal, setShowCreateModal] = useState(false);
|
|
894
|
+
const { data: credentials = [], isLoading } = useCredentials();
|
|
895
|
+
if (!organizationReady) return /* @__PURE__ */ jsx(AppShellLoader, {});
|
|
896
|
+
const handleCredentialCreated = () => {
|
|
897
|
+
setShowCreateModal(false);
|
|
898
|
+
};
|
|
899
|
+
return /* @__PURE__ */ jsxs(Stack, { children: [
|
|
900
|
+
/* @__PURE__ */ jsx(
|
|
901
|
+
PageTitleCaption,
|
|
902
|
+
{
|
|
903
|
+
title: "Organization Credentials",
|
|
904
|
+
caption: "Manage encrypted credentials for third-party service integrations"
|
|
905
|
+
}
|
|
906
|
+
),
|
|
907
|
+
oauthSection === void 0 ? /* @__PURE__ */ jsx(OAuthIntegrationsCard, {}) : oauthSection,
|
|
908
|
+
/* @__PURE__ */ jsxs(Paper, { withBorder: true, children: [
|
|
909
|
+
/* @__PURE__ */ jsx(
|
|
910
|
+
CardHeader,
|
|
911
|
+
{
|
|
912
|
+
icon: /* @__PURE__ */ jsx(IconKey, { size: 18 }),
|
|
913
|
+
title: "Credentials",
|
|
914
|
+
subtitle: "Configured API keys and credentials",
|
|
915
|
+
rightSection: /* @__PURE__ */ jsx(Button, { leftSection: /* @__PURE__ */ jsx(IconPlus, { size: 16 }), onClick: () => setShowCreateModal(true), variant: "light", children: "Create Credential" })
|
|
916
|
+
}
|
|
917
|
+
),
|
|
918
|
+
/* @__PURE__ */ jsx(CredentialList, { credentials, isLoading })
|
|
919
|
+
] }),
|
|
920
|
+
/* @__PURE__ */ jsx(
|
|
921
|
+
CreateCredentialModal,
|
|
922
|
+
{
|
|
923
|
+
opened: showCreateModal,
|
|
924
|
+
onClose: () => setShowCreateModal(false),
|
|
925
|
+
onSuccess: handleCredentialCreated
|
|
926
|
+
}
|
|
927
|
+
)
|
|
928
|
+
] });
|
|
929
|
+
}
|
|
644
930
|
var statusConfig = {
|
|
645
931
|
active: { color: "green", label: "Active" },
|
|
646
932
|
deploying: { color: "blue", label: "Deploying" },
|
|
@@ -3075,4 +3361,4 @@ function CloudStorageBrowser({
|
|
|
3075
3361
|
] }) });
|
|
3076
3362
|
}
|
|
3077
3363
|
|
|
3078
|
-
export { AbsoluteScheduleForm, ApiKeyDisplayModal, ApiKeyList, ApiKeySettings, Breadcrumbs, CloudStorageBrowser, CloudStorageFileCard, CloudStorageFileGrid, CloudStorageFolderTree, CreateApiKeyModal, CreateRoleModal, CreateScheduleModal, DEAL_STAGES, DEFAULT_KANBAN_CONFIG, DealKanbanCard, DeleteScheduleModal, DeploymentDetailModal, DeploymentList, DeploymentSettings, DeploymentStatusBadge, EditApiKeyModal, KanbanBoard, MdxRenderer,
|
|
3364
|
+
export { AbsoluteScheduleForm, ApiKeyDisplayModal, ApiKeyList, ApiKeySettings, Breadcrumbs, CloudStorageBrowser, CloudStorageFileCard, CloudStorageFileGrid, CloudStorageFolderTree, CreateApiKeyModal, CreateCredentialModal, CreateRoleModal, CreateScheduleModal, CredentialList, CredentialSettings, DEAL_STAGES, DEFAULT_KANBAN_CONFIG, DealKanbanCard, DeleteScheduleModal, DeploymentDetailModal, DeploymentList, DeploymentSettings, DeploymentStatusBadge, EditApiKeyModal, KanbanBoard, MdxRenderer, NotificationBell, NotificationPanel, PermissionMatrix, RecurringScheduleForm, RelativeScheduleForm, RichTextEditor, ScheduleCard, ScheduleDetailModal, ScheduleTypeSelector, TaskScheduler, mdxComponents };
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
export { useBreadcrumbs } from '../../chunk-
|
|
2
|
-
import '../../chunk-
|
|
1
|
+
export { useBreadcrumbs } from '../../chunk-5VF5LPYS.js';
|
|
2
|
+
import '../../chunk-SB3IHM5Y.js';
|
|
3
3
|
import '../../chunk-R6NMRXNO.js';
|
|
4
4
|
import '../../chunk-RBGVNPA6.js';
|
|
5
|
-
import '../../chunk-
|
|
6
|
-
import '../../chunk-NHNTX6ZL.js';
|
|
5
|
+
import '../../chunk-ZG6YJUT4.js';
|
|
7
6
|
import '../../chunk-L7BZZ4SI.js';
|
|
8
|
-
import '../../chunk-
|
|
7
|
+
import '../../chunk-ICHDIVQO.js';
|
|
9
8
|
import '../../chunk-MISHPEJX.js';
|
|
10
9
|
import '../../chunk-62GVNH5U.js';
|
|
11
10
|
import '../../chunk-P45GQ3ZW.js';
|
|
12
|
-
import '../../chunk-
|
|
11
|
+
import '../../chunk-2GIJBHZT.js';
|
|
13
12
|
import '../../chunk-3KMDHCAR.js';
|
|
14
13
|
import '../../chunk-2IFYDILW.js';
|
|
15
14
|
import '../../chunk-BLXJEIQS.js';
|
|
@@ -17,7 +16,7 @@ import '../../chunk-UD657ICS.js';
|
|
|
17
16
|
import '../../chunk-DD3CCMCZ.js';
|
|
18
17
|
import '../../chunk-RNP5R5I3.js';
|
|
19
18
|
import '../../chunk-RT4KRGZT.js';
|
|
20
|
-
import '../../chunk-
|
|
19
|
+
import '../../chunk-A2SB32YV.js';
|
|
21
20
|
import '../../chunk-Y6I3IC45.js';
|
|
22
21
|
import '../../chunk-6SSQGWK7.js';
|
|
23
22
|
import '../../chunk-BI5VDO2K.js';
|
|
@@ -1456,6 +1456,64 @@ type Database = {
|
|
|
1456
1456
|
}
|
|
1457
1457
|
];
|
|
1458
1458
|
};
|
|
1459
|
+
content_distribution_metrics: {
|
|
1460
|
+
Row: {
|
|
1461
|
+
captured_at: string;
|
|
1462
|
+
created_at: string;
|
|
1463
|
+
distribution_id: string;
|
|
1464
|
+
id: string;
|
|
1465
|
+
metrics: Json;
|
|
1466
|
+
organization_id: string;
|
|
1467
|
+
raw: Json;
|
|
1468
|
+
source: string;
|
|
1469
|
+
source_execution_id: string | null;
|
|
1470
|
+
};
|
|
1471
|
+
Insert: {
|
|
1472
|
+
captured_at?: string;
|
|
1473
|
+
created_at?: string;
|
|
1474
|
+
distribution_id: string;
|
|
1475
|
+
id?: string;
|
|
1476
|
+
metrics?: Json;
|
|
1477
|
+
organization_id: string;
|
|
1478
|
+
raw?: Json;
|
|
1479
|
+
source: string;
|
|
1480
|
+
source_execution_id?: string | null;
|
|
1481
|
+
};
|
|
1482
|
+
Update: {
|
|
1483
|
+
captured_at?: string;
|
|
1484
|
+
created_at?: string;
|
|
1485
|
+
distribution_id?: string;
|
|
1486
|
+
id?: string;
|
|
1487
|
+
metrics?: Json;
|
|
1488
|
+
organization_id?: string;
|
|
1489
|
+
raw?: Json;
|
|
1490
|
+
source?: string;
|
|
1491
|
+
source_execution_id?: string | null;
|
|
1492
|
+
};
|
|
1493
|
+
Relationships: [
|
|
1494
|
+
{
|
|
1495
|
+
foreignKeyName: "content_distribution_metrics_distribution_fkey";
|
|
1496
|
+
columns: ["distribution_id", "organization_id"];
|
|
1497
|
+
isOneToOne: false;
|
|
1498
|
+
referencedRelation: "content_distributions";
|
|
1499
|
+
referencedColumns: ["id", "organization_id"];
|
|
1500
|
+
},
|
|
1501
|
+
{
|
|
1502
|
+
foreignKeyName: "content_distribution_metrics_organization_id_fkey";
|
|
1503
|
+
columns: ["organization_id"];
|
|
1504
|
+
isOneToOne: false;
|
|
1505
|
+
referencedRelation: "organizations";
|
|
1506
|
+
referencedColumns: ["id"];
|
|
1507
|
+
},
|
|
1508
|
+
{
|
|
1509
|
+
foreignKeyName: "content_distribution_metrics_source_execution_id_fkey";
|
|
1510
|
+
columns: ["source_execution_id"];
|
|
1511
|
+
isOneToOne: false;
|
|
1512
|
+
referencedRelation: "execution_logs";
|
|
1513
|
+
referencedColumns: ["execution_id"];
|
|
1514
|
+
}
|
|
1515
|
+
];
|
|
1516
|
+
};
|
|
1459
1517
|
content_distributions: {
|
|
1460
1518
|
Row: {
|
|
1461
1519
|
adapted_body: string | null;
|
|
@@ -3769,6 +3827,24 @@ interface AccessGuardProps {
|
|
|
3769
3827
|
*/
|
|
3770
3828
|
declare function AccessGuard({ accessKey, children, fallback, loadingFallback, redirectTo }: AccessGuardProps): react_jsx_runtime.JSX.Element;
|
|
3771
3829
|
|
|
3830
|
+
interface ProtectedSystemRouteProps {
|
|
3831
|
+
/** The System path (or `{ systemPath, action }`) this route requires access to. */
|
|
3832
|
+
accessKey: AccessKeyInput;
|
|
3833
|
+
children: ReactNode;
|
|
3834
|
+
}
|
|
3835
|
+
/**
|
|
3836
|
+
* Route-guard helper for a System's top-level route file. Collapses the
|
|
3837
|
+
* `ProtectedRoute` + `AccessGuard` boilerplate every System route repeats
|
|
3838
|
+
* (see `external/_template/ui/src/routes/crm.tsx` and its siblings) into a
|
|
3839
|
+
* single call, and supplies {@link SystemUnavailableState} as the guard's
|
|
3840
|
+
* `fallback` so a denial renders the specific reason `checkAccess` already
|
|
3841
|
+
* computed instead of the guard's own blank `fallback = null` default.
|
|
3842
|
+
*
|
|
3843
|
+
* `createFileRoute` stays in the route file -- TanStack's file-based routing
|
|
3844
|
+
* requires it there; this component only replaces the route's layout body.
|
|
3845
|
+
*/
|
|
3846
|
+
declare function ProtectedSystemRoute({ accessKey, children }: ProtectedSystemRouteProps): react_jsx_runtime.JSX.Element;
|
|
3847
|
+
|
|
3772
3848
|
type ApiRequestFn = <T>(endpoint: string, options?: RequestInit) => Promise<T>;
|
|
3773
3849
|
interface UseUserProfileOptions {
|
|
3774
3850
|
/**
|
|
@@ -3890,5 +3966,5 @@ interface LoginScreenProps {
|
|
|
3890
3966
|
*/
|
|
3891
3967
|
declare function LoginScreen({ lightModeLogo, darkModeLogo, appName, appConfig }: LoginScreenProps): react_jsx_runtime.JSX.Element;
|
|
3892
3968
|
|
|
3893
|
-
export { AccessGuard, AuthRedirectLoadingScreen, LoginScreen, ProtectedRoute, USER_PROFILE_QUERY_KEY, useUserProfile, validateLoginSearch };
|
|
3894
|
-
export type { AccessGuardProps, AuthMode, AuthRedirectLoadingScreenProps, LoginScreenAppConfig, LoginScreenProps, LoginSearchParams, ProtectedRouteProps, UseUserProfileReturn };
|
|
3969
|
+
export { AccessGuard, AuthRedirectLoadingScreen, LoginScreen, ProtectedRoute, ProtectedSystemRoute, USER_PROFILE_QUERY_KEY, useUserProfile, validateLoginSearch };
|
|
3970
|
+
export type { AccessGuardProps, AuthMode, AuthRedirectLoadingScreenProps, LoginScreenAppConfig, LoginScreenProps, LoginSearchParams, ProtectedRouteProps, ProtectedSystemRouteProps, UseUserProfileReturn };
|
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import { AppShellError } from '../../chunk-
|
|
2
|
-
import { computeProtectedRouteGate, DEFAULT_WAIT_FOR_ORGANIZATION, ProtectedRoute, AppearanceContext, useAppearance } from '../../chunk-
|
|
3
|
-
export { AccessGuard } from '../../chunk-
|
|
1
|
+
import { AppShellError } from '../../chunk-5RH6NYZH.js';
|
|
2
|
+
import { computeProtectedRouteGate, DEFAULT_WAIT_FOR_ORGANIZATION, ProtectedRoute, AppearanceContext, AccessGuard, SystemUnavailableState, useAppearance } from '../../chunk-SB3IHM5Y.js';
|
|
3
|
+
export { AccessGuard } from '../../chunk-SB3IHM5Y.js';
|
|
4
4
|
import '../../chunk-R6NMRXNO.js';
|
|
5
5
|
import '../../chunk-RBGVNPA6.js';
|
|
6
|
-
import '../../chunk-
|
|
7
|
-
import '../../chunk-NHNTX6ZL.js';
|
|
6
|
+
import '../../chunk-ZG6YJUT4.js';
|
|
8
7
|
import '../../chunk-L7BZZ4SI.js';
|
|
9
|
-
import '../../chunk-
|
|
8
|
+
import '../../chunk-ICHDIVQO.js';
|
|
10
9
|
import '../../chunk-MISHPEJX.js';
|
|
11
10
|
import '../../chunk-62GVNH5U.js';
|
|
12
11
|
import { useInitialization } from '../../chunk-P45GQ3ZW.js';
|
|
13
|
-
import '../../chunk-
|
|
12
|
+
import '../../chunk-2GIJBHZT.js';
|
|
14
13
|
import '../../chunk-3KMDHCAR.js';
|
|
15
14
|
import '../../chunk-2IFYDILW.js';
|
|
16
15
|
import '../../chunk-BLXJEIQS.js';
|
|
@@ -18,7 +17,7 @@ import '../../chunk-UD657ICS.js';
|
|
|
18
17
|
import '../../chunk-DD3CCMCZ.js';
|
|
19
18
|
import '../../chunk-RNP5R5I3.js';
|
|
20
19
|
export { USER_PROFILE_QUERY_KEY, useUserProfile } from '../../chunk-RT4KRGZT.js';
|
|
21
|
-
import '../../chunk-
|
|
20
|
+
import '../../chunk-A2SB32YV.js';
|
|
22
21
|
import '../../chunk-Y6I3IC45.js';
|
|
23
22
|
import '../../chunk-6SSQGWK7.js';
|
|
24
23
|
import '../../chunk-BI5VDO2K.js';
|
|
@@ -146,6 +145,16 @@ function AuthRedirectLoadingScreen({
|
|
|
146
145
|
}
|
|
147
146
|
);
|
|
148
147
|
}
|
|
148
|
+
function ProtectedSystemRoute({ accessKey, children }) {
|
|
149
|
+
return /* @__PURE__ */ jsx(ProtectedRoute2, { children: /* @__PURE__ */ jsx(
|
|
150
|
+
AccessGuard,
|
|
151
|
+
{
|
|
152
|
+
accessKey,
|
|
153
|
+
fallback: (answer) => /* @__PURE__ */ jsx(SystemUnavailableState, { accessKey, reason: answer.reason }),
|
|
154
|
+
children
|
|
155
|
+
}
|
|
156
|
+
) });
|
|
157
|
+
}
|
|
149
158
|
function getStringSearchParam(value) {
|
|
150
159
|
return typeof value === "string" ? value : void 0;
|
|
151
160
|
}
|
|
@@ -279,4 +288,4 @@ function LoginScreen({ lightModeLogo, darkModeLogo, appName, appConfig }) {
|
|
|
279
288
|
);
|
|
280
289
|
}
|
|
281
290
|
|
|
282
|
-
export { AuthRedirectLoadingScreen, LoginScreen, ProtectedRoute2 as ProtectedRoute, validateLoginSearch };
|
|
291
|
+
export { AuthRedirectLoadingScreen, LoginScreen, ProtectedRoute2 as ProtectedRoute, ProtectedSystemRoute, validateLoginSearch };
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import '../../chunk-DLR4SDZW.js';
|
|
2
|
+
import { useClientStatus, useCreateClient, useUpdateClient, useDeleteClient, useClients, useClient } from '../../chunk-SN7X5N2A.js';
|
|
2
3
|
import { PageContainer } from '../../chunk-BZZCNLT6.js';
|
|
3
4
|
import '../../chunk-TUMSNGTX.js';
|
|
4
5
|
import { FilterBar } from '../../chunk-PDHTXPSF.js';
|
|
5
|
-
import {
|
|
6
|
-
export { clientsManifest } from '../../chunk-
|
|
6
|
+
import { StatCard, EmptyState, CustomModal, usePaginationState, SubshellContentContainer, PageTitleCaption, CenteredErrorState } from '../../chunk-SB3IHM5Y.js';
|
|
7
|
+
export { clientsManifest } from '../../chunk-SB3IHM5Y.js';
|
|
7
8
|
import '../../chunk-R6NMRXNO.js';
|
|
8
9
|
import '../../chunk-RBGVNPA6.js';
|
|
9
|
-
import '../../chunk-
|
|
10
|
-
import '../../chunk-NHNTX6ZL.js';
|
|
10
|
+
import '../../chunk-ZG6YJUT4.js';
|
|
11
11
|
import '../../chunk-L7BZZ4SI.js';
|
|
12
|
-
import { showApiErrorNotification } from '../../chunk-
|
|
12
|
+
import { showApiErrorNotification } from '../../chunk-ICHDIVQO.js';
|
|
13
13
|
import '../../chunk-MISHPEJX.js';
|
|
14
14
|
import { CardHeader } from '../../chunk-62GVNH5U.js';
|
|
15
15
|
import '../../chunk-P45GQ3ZW.js';
|
|
16
|
-
import '../../chunk-
|
|
16
|
+
import '../../chunk-2GIJBHZT.js';
|
|
17
17
|
import '../../chunk-3KMDHCAR.js';
|
|
18
18
|
import '../../chunk-2IFYDILW.js';
|
|
19
19
|
import '../../chunk-BLXJEIQS.js';
|
|
@@ -21,7 +21,7 @@ import '../../chunk-UD657ICS.js';
|
|
|
21
21
|
import '../../chunk-DD3CCMCZ.js';
|
|
22
22
|
import '../../chunk-RNP5R5I3.js';
|
|
23
23
|
import '../../chunk-RT4KRGZT.js';
|
|
24
|
-
import { PAGE_SIZE_DEFAULT, formatTimeAgo } from '../../chunk-
|
|
24
|
+
import { PAGE_SIZE_DEFAULT, formatTimeAgo } from '../../chunk-A2SB32YV.js';
|
|
25
25
|
import '../../chunk-Y6I3IC45.js';
|
|
26
26
|
import '../../chunk-6SSQGWK7.js';
|
|
27
27
|
import '../../chunk-BI5VDO2K.js';
|