@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.
Files changed (97) hide show
  1. package/dist/api/index.js +3 -3
  2. package/dist/app/index.d.ts +58 -0
  3. package/dist/app/index.js +9 -10
  4. package/dist/auth/index.js +5 -6
  5. package/dist/charts/index.js +5 -6
  6. package/dist/chunk-2GIJBHZT.js +60 -0
  7. package/dist/{chunk-Z4ICFQXG.js → chunk-2ZRY3ARL.js} +1 -1
  8. package/dist/{chunk-5B2ZFO44.js → chunk-3H5DIJN7.js} +1 -1
  9. package/dist/{chunk-LZT2H2MA.js → chunk-47YJVIZE.js} +36 -43
  10. package/dist/{chunk-3TS5U5BL.js → chunk-5RH6NYZH.js} +1 -1
  11. package/dist/chunk-5SLRGUC4.js +224 -0
  12. package/dist/{chunk-JYBJMVNY.js → chunk-5VF5LPYS.js} +1 -1
  13. package/dist/{chunk-SWKAH2YM.js → chunk-6BJ5HMMC.js} +282 -553
  14. package/dist/{chunk-NI37YNRP.js → chunk-7OOFMEX6.js} +11 -5
  15. package/dist/{chunk-IBCEAVB2.js → chunk-A2SB32YV.js} +65 -5
  16. package/dist/{chunk-CJ2232PQ.js → chunk-CRPH5AAB.js} +1 -1
  17. package/dist/chunk-D3XXPCCK.js +69 -0
  18. package/dist/chunk-DMSTDZCJ.js +305 -0
  19. package/dist/chunk-DTEGVSJ6.js +645 -0
  20. package/dist/chunk-DVAOCHIF.js +165 -0
  21. package/dist/chunk-G7O4CBMC.js +231 -0
  22. package/dist/{chunk-IGBPWD6S.js → chunk-GDTK33QT.js} +5 -3
  23. package/dist/chunk-ICHDIVQO.js +54 -0
  24. package/dist/{chunk-U2H3TIHD.js → chunk-IYATYH5I.js} +2 -52
  25. package/dist/chunk-L3NBMLRN.js +49 -0
  26. package/dist/{chunk-LEPYXLJ2.js → chunk-LFLM723H.js} +1 -1
  27. package/dist/chunk-M6VAZAQW.js +45 -0
  28. package/dist/{chunk-AJOVWB47.js → chunk-MLHZUN2X.js} +6 -3
  29. package/dist/chunk-N6K2Q5BM.js +393 -0
  30. package/dist/chunk-NMHQAYZU.js +439 -0
  31. package/dist/chunk-NYIIRZSA.js +286 -0
  32. package/dist/{chunk-ETN3TTRT.js → chunk-OGHTJKBV.js} +115 -8
  33. package/dist/{chunk-M7WWRZ5Z.js → chunk-QFGNRKIE.js} +1 -78
  34. package/dist/chunk-QFS2GZMV.js +515 -0
  35. package/dist/{chunk-OCVSPAKM.js → chunk-SB3IHM5Y.js} +1150 -4346
  36. package/dist/{chunk-4CW2C5BD.js → chunk-SEYOVNS5.js} +1 -1
  37. package/dist/chunk-SN7X5N2A.js +116 -0
  38. package/dist/{chunk-PQ4B62HH.js → chunk-TX3UHDL5.js} +2 -2
  39. package/dist/chunk-VM2OWOXL.js +24 -0
  40. package/dist/{chunk-ZDKPHFTH.js → chunk-VWGCURZF.js} +5 -3
  41. package/dist/chunk-WDBNW44Z.js +49 -0
  42. package/dist/chunk-YQQ5GRUR.js +21 -0
  43. package/dist/{chunk-NHNTX6ZL.js → chunk-ZG6YJUT4.js} +3 -2
  44. package/dist/components/index.d.ts +228 -6
  45. package/dist/components/index.js +321 -35
  46. package/dist/components/navigation/index.js +6 -7
  47. package/dist/features/auth/index.d.ts +78 -2
  48. package/dist/features/auth/index.js +18 -9
  49. package/dist/features/clients/index.js +7 -7
  50. package/dist/features/content/index.d.ts +226 -5
  51. package/dist/features/content/index.js +270 -19
  52. package/dist/features/crm/index.d.ts +58 -0
  53. package/dist/features/crm/index.js +10 -8
  54. package/dist/features/dashboard/index.js +9 -8
  55. package/dist/features/delivery/index.d.ts +58 -0
  56. package/dist/features/delivery/index.js +23 -7
  57. package/dist/features/knowledge/index.js +5 -6
  58. package/dist/features/lead-gen/index.d.ts +9 -15
  59. package/dist/features/lead-gen/index.js +12 -8
  60. package/dist/features/monitoring/index.js +11 -9
  61. package/dist/features/monitoring/requests/index.js +8 -7
  62. package/dist/features/operations/index.js +15 -11
  63. package/dist/features/public-agent-chat/index.js +3 -1
  64. package/dist/features/settings/index.d.ts +66 -3
  65. package/dist/features/settings/index.js +9 -8
  66. package/dist/hooks/access/index.js +5 -6
  67. package/dist/hooks/delivery/index.d.ts +58 -0
  68. package/dist/hooks/delivery/index.js +3 -2
  69. package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +1 -1
  70. package/dist/hooks/published.d.ts +181 -5
  71. package/dist/hooks/published.js +22 -6
  72. package/dist/initialization/index.d.ts +58 -0
  73. package/dist/knowledge/index.js +167 -11
  74. package/dist/{knowledge-search-index-RZLIVWPJ.js → knowledge-search-index-6GQK55IQ.js} +1 -1
  75. package/dist/layout/index.js +8 -9
  76. package/dist/profile/index.d.ts +58 -0
  77. package/dist/provider/index.d.ts +77 -1
  78. package/dist/provider/index.js +5 -6
  79. package/dist/provider/published.d.ts +105 -1
  80. package/dist/provider/published.js +5 -6
  81. package/dist/test-utils/index.d.ts +16 -5
  82. package/dist/test-utils/index.js +17 -18
  83. package/dist/types/index.d.ts +73 -1
  84. package/dist/utils/index.d.ts +83 -3
  85. package/dist/utils/index.js +1 -1
  86. package/package.json +10 -5
  87. package/dist/chunk-6M6OLGQY.js +0 -36
  88. package/dist/chunk-MKH2KOAO.js +0 -39
  89. package/dist/hooks/index.css +0 -659
  90. package/dist/hooks/index.d.ts +0 -14073
  91. package/dist/hooks/index.js +0 -27
  92. package/dist/supabase/index.d.ts +0 -7118
  93. package/dist/supabase/index.js +0 -3
  94. package/dist/typeform/index.d.ts +0 -462
  95. package/dist/typeform/index.js +0 -2051
  96. package/dist/typeform/schemas.d.ts +0 -67
  97. package/dist/typeform/schemas.js +0 -2
@@ -1,46 +1,63 @@
1
- export { AppErrorBoundary, CrashErrorFallback, ErrorReportCard, buildErrorReport } from '../chunk-LEPYXLJ2.js';
2
- import { useBreadcrumbs } from '../chunk-JYBJMVNY.js';
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-SWKAH2YM.js';
5
- export { CreateCredentialModal, CredentialList, CredentialSettings, MembershipStatusBadge, OAuthConnectModal, OrganizationMembershipsList, ProvisioningStateBadge, WebhookUrlDisplayModal, showAuthError } from '../chunk-SWKAH2YM.js';
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-CJ2232PQ.js';
8
- import { setDealReferrer, compareDealsByPriority } from '../chunk-NI37YNRP.js';
9
- export { ActivityFeedWidget, CompanyDetailPage, ContactDetailPage, CrmOverview, CrmSidebar, CrmSidebarTop, DealDetailPage, DealsListPage, MetricsStrip, PIPELINE_FUNNEL_ORDER, PipelineFunnelWidget, useCrmPipelineSummary, useCrmQuickMetrics, useRecentCrmActivity } from '../chunk-NI37YNRP.js';
10
- export { AllTasksPage, HealthStatusCard, MilestoneTimeline, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, TaskCard, UpcomingMilestonesPage } from '../chunk-AJOVWB47.js';
11
- export { LEAD_GEN_ROUTE_LINKS, LeadGenCompaniesPage, LeadGenContactsPage, LeadGenListDetailPage, LeadGenListsPage, LeadGenOverviewPage, LeadGenRouteShell, LeadGenSidebar, LeadGenSidebarTop, StepConfigForm, TabSection, getEnrichmentColor, getStatusColor, useDeleteLists } from '../chunk-LZT2H2MA.js';
12
- import '../chunk-PQ4B62HH.js';
13
- 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-ETN3TTRT.js';
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-Z4ICFQXG.js';
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-ZDKPHFTH.js';
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 { NotificationList } from '../chunk-IGBPWD6S.js';
20
- export { ActivityCard, ActivityFilters as ActivityFiltersBar, ActivityTable, BusinessImpactCard, CostBreakdownCard, CostByModelTable, CostMetricsCard, ErrorAnalysisCard, ErrorBreakdownTable, ExecutionBreakdownTable, ExecutionHealthCard, ExecutionLogsFilters as ExecutionLogsFilterBar, ExecutionLogsTable, NotificationItem, NotificationList } from '../chunk-IGBPWD6S.js';
21
- export { ResourceHealthPanel } from '../chunk-4CW2C5BD.js';
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-3TS5U5BL.js';
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 { useCreateOrgRole, usePermissionCatalog, CustomModal, useMarkAllAsRead, useNotifications, useUpdateApiKey, useDeleteApiKey, ListSkeleton, EmptyState, useCreateApiKey, useListApiKeys, PageTitleCaption, StatCard, usePaginationState, useActivateDeployment, useDeactivateDeployment, useDeleteDeployment, useListDeployments, useResources, useCreateSchedule, useListSchedules, usePauseSchedule, useResumeSchedule, useCancelSchedule, useDeleteSchedule, CenteredErrorState, useDeals, useTransitionItem, dealKeys, SubshellContentContainer, useCloudStorageFolder, useCloudStorageThumbnails } from '../chunk-OCVSPAKM.js';
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-OCVSPAKM.js';
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-MKH2KOAO.js';
35
- import '../chunk-NHNTX6ZL.js';
52
+ import '../chunk-ZG6YJUT4.js';
36
53
  import '../chunk-L7BZZ4SI.js';
37
- import { showSuccessNotification, showErrorNotification, showApiErrorNotification } from '../chunk-U2H3TIHD.js';
38
- export { showApiErrorNotification, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification } from '../chunk-U2H3TIHD.js';
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-M7WWRZ5Z.js';
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-IBCEAVB2.js';
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, Center, TextInput, Textarea, Loader, Alert, Button, Box, Divider, ScrollArea, Popover, Indicator, ActionIcon, Table, Paper, Code, CopyButton, SimpleGrid, Badge, Pagination, SegmentedControl, Switch, Select, Menu, Timeline, ThemeIcon, Tabs, Breadcrumbs as Breadcrumbs$1, UnstyledButton, Image, Flex } from '@mantine/core';
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, NoAccessState, NotificationBell, NotificationPanel, PermissionMatrix, RecurringScheduleForm, RelativeScheduleForm, RichTextEditor, ScheduleCard, ScheduleDetailModal, ScheduleTypeSelector, TaskScheduler, mdxComponents };
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-JYBJMVNY.js';
2
- import '../../chunk-OCVSPAKM.js';
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-MKH2KOAO.js';
6
- import '../../chunk-NHNTX6ZL.js';
5
+ import '../../chunk-ZG6YJUT4.js';
7
6
  import '../../chunk-L7BZZ4SI.js';
8
- import '../../chunk-U2H3TIHD.js';
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-M7WWRZ5Z.js';
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-IBCEAVB2.js';
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-3TS5U5BL.js';
2
- import { computeProtectedRouteGate, DEFAULT_WAIT_FOR_ORGANIZATION, ProtectedRoute, AppearanceContext, useAppearance } from '../../chunk-OCVSPAKM.js';
3
- export { AccessGuard } from '../../chunk-OCVSPAKM.js';
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-MKH2KOAO.js';
7
- import '../../chunk-NHNTX6ZL.js';
6
+ import '../../chunk-ZG6YJUT4.js';
8
7
  import '../../chunk-L7BZZ4SI.js';
9
- import '../../chunk-U2H3TIHD.js';
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-M7WWRZ5Z.js';
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-IBCEAVB2.js';
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 { useClientStatus, StatCard, EmptyState, useCreateClient, CustomModal, useUpdateClient, useDeleteClient, usePaginationState, useClients, SubshellContentContainer, PageTitleCaption, CenteredErrorState, useClient } from '../../chunk-OCVSPAKM.js';
6
- export { clientsManifest } from '../../chunk-OCVSPAKM.js';
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-MKH2KOAO.js';
10
- import '../../chunk-NHNTX6ZL.js';
10
+ import '../../chunk-ZG6YJUT4.js';
11
11
  import '../../chunk-L7BZZ4SI.js';
12
- import { showApiErrorNotification } from '../../chunk-U2H3TIHD.js';
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-M7WWRZ5Z.js';
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-IBCEAVB2.js';
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';