@elevasis/ui 2.73.0 → 2.74.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-ETN3TTRT.js → chunk-2MRRDF32.js} +115 -8
  8. package/dist/chunk-3LOKYZJC.js +231 -0
  9. package/dist/chunk-3QHX4ZKV.js +224 -0
  10. package/dist/chunk-43LC6XAX.js +69 -0
  11. package/dist/chunk-4M2BSHVT.js +116 -0
  12. package/dist/{chunk-SWKAH2YM.js → chunk-4MXNHJTA.js} +63 -30
  13. package/dist/{chunk-LZT2H2MA.js → chunk-5A6KCFS5.js} +36 -43
  14. package/dist/{chunk-OCVSPAKM.js → chunk-6JN2TLV2.js} +1150 -4346
  15. package/dist/{chunk-JYBJMVNY.js → chunk-7ARBBELS.js} +1 -1
  16. package/dist/{chunk-AJOVWB47.js → chunk-7RJ7P6S6.js} +6 -3
  17. package/dist/chunk-ARAFQBNI.js +515 -0
  18. package/dist/{chunk-Z4ICFQXG.js → chunk-BA3AZJUR.js} +1 -1
  19. package/dist/chunk-BRTGCFBH.js +305 -0
  20. package/dist/{chunk-IGBPWD6S.js → chunk-CQPULKKL.js} +5 -3
  21. package/dist/chunk-CRA7WQZH.js +49 -0
  22. package/dist/{chunk-U2H3TIHD.js → chunk-DCQKTDIG.js} +2 -52
  23. package/dist/{chunk-3TS5U5BL.js → chunk-E6YGA5WH.js} +1 -1
  24. package/dist/chunk-FA7LMNQO.js +439 -0
  25. package/dist/chunk-FZSG6M6W.js +45 -0
  26. package/dist/chunk-GDOR57D7.js +165 -0
  27. package/dist/{chunk-CJ2232PQ.js → chunk-GO4XJ5D4.js} +1 -1
  28. package/dist/chunk-GPQQGQGT.js +645 -0
  29. package/dist/chunk-HYQOGRWG.js +54 -0
  30. package/dist/{chunk-LEPYXLJ2.js → chunk-LN4UW6S4.js} +1 -1
  31. package/dist/chunk-N6K2Q5BM.js +393 -0
  32. package/dist/{chunk-NHNTX6ZL.js → chunk-O32UQ26A.js} +3 -2
  33. package/dist/{chunk-M7WWRZ5Z.js → chunk-QFGNRKIE.js} +1 -78
  34. package/dist/{chunk-IBCEAVB2.js → chunk-R5UGIFYU.js} +41 -5
  35. package/dist/{chunk-5B2ZFO44.js → chunk-RFNJ2PTO.js} +1 -1
  36. package/dist/chunk-VM2OWOXL.js +24 -0
  37. package/dist/{chunk-ZDKPHFTH.js → chunk-W2QRBQQA.js} +5 -3
  38. package/dist/chunk-WDBNW44Z.js +49 -0
  39. package/dist/{chunk-4CW2C5BD.js → chunk-WZU3MCKI.js} +1 -1
  40. package/dist/chunk-YQQ5GRUR.js +21 -0
  41. package/dist/{chunk-PQ4B62HH.js → chunk-ZFA56VSR.js} +2 -2
  42. package/dist/{chunk-NI37YNRP.js → chunk-ZWI62BQ6.js} +7 -4
  43. package/dist/chunk-ZYNVCWDZ.js +286 -0
  44. package/dist/components/index.d.ts +187 -2
  45. package/dist/components/index.js +44 -34
  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 +263 -15
  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 +58 -0
  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 +175 -3
  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 +59 -1
  84. package/dist/utils/index.d.ts +83 -3
  85. package/dist/utils/index.js +1 -1
  86. package/package.json +6 -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-LN4UW6S4.js';
2
+ import { useBreadcrumbs } from '../chunk-7ARBBELS.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 } from '../chunk-4MXNHJTA.js';
5
+ export { CreateCredentialModal, CredentialList, CredentialSettings, MembershipStatusBadge, OAuthConnectModal, OrganizationMembershipsList, ProvisioningStateBadge, WebhookUrlDisplayModal, showAuthError } from '../chunk-4MXNHJTA.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-GO4XJ5D4.js';
8
+ import { setDealReferrer, compareDealsByPriority } from '../chunk-ZWI62BQ6.js';
9
+ export { ActivityFeedWidget, CompanyDetailPage, ContactDetailPage, CrmOverview, CrmSidebar, CrmSidebarTop, DealDetailPage, DealsListPage, MetricsStrip, PIPELINE_FUNNEL_ORDER, PipelineFunnelWidget, useCrmPipelineSummary, useCrmQuickMetrics, useRecentCrmActivity } from '../chunk-ZWI62BQ6.js';
10
+ export { AllTasksPage, HealthStatusCard, MilestoneTimeline, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, TaskCard, UpcomingMilestonesPage } from '../chunk-7RJ7P6S6.js';
11
+ import { useCreateOrgRole, useUpdateApiKey, useDeleteApiKey, useCreateApiKey, useListApiKeys, useActivateDeployment, useDeactivateDeployment, useDeleteDeployment, useListDeployments, useTransitionItem } from '../chunk-GPQQGQGT.js';
12
+ import '../chunk-DCQKTDIG.js';
13
+ import { usePermissionCatalog } from '../chunk-ARAFQBNI.js';
14
+ import '../chunk-FZSG6M6W.js';
15
+ export { LEAD_GEN_ROUTE_LINKS, LeadGenCompaniesPage, LeadGenContactsPage, LeadGenListDetailPage, LeadGenListsPage, LeadGenOverviewPage, LeadGenRouteShell, LeadGenSidebar, LeadGenSidebarTop, StepConfigForm, TabSection, getEnrichmentColor, getStatusColor, useDeleteLists } from '../chunk-5A6KCFS5.js';
16
+ import '../chunk-ZFA56VSR.js';
17
+ import '../chunk-GDOR57D7.js';
18
+ import '../chunk-3LOKYZJC.js';
19
+ import '../chunk-ZYNVCWDZ.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-2MRRDF32.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-BA3AZJUR.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-W2QRBQQA.js';
24
+ import '../chunk-FA7LMNQO.js';
25
+ import { useCreateSchedule, useListSchedules, usePauseSchedule, useResumeSchedule, useCancelSchedule, useDeleteSchedule } from '../chunk-N6K2Q5BM.js';
26
+ import '../chunk-CRA7WQZH.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-CQPULKKL.js';
31
+ export { ActivityCard, ActivityFilters as ActivityFiltersBar, ActivityTable, BusinessImpactCard, CostBreakdownCard, CostByModelTable, CostMetricsCard, ErrorAnalysisCard, ErrorBreakdownTable, ExecutionBreakdownTable, ExecutionHealthCard, ExecutionLogsFilters as ExecutionLogsFilterBar, ExecutionLogsTable, NotificationItem, NotificationList } from '../chunk-CQPULKKL.js';
32
+ import { useMarkAllAsRead, useNotifications } from '../chunk-BRTGCFBH.js';
33
+ export { ResourceHealthPanel } from '../chunk-WZU3MCKI.js';
22
34
  export { ResourceHealthChart, getHealthColor } from '../chunk-LGKLC5MG.js';
35
+ import '../chunk-YQQ5GRUR.js';
36
+ import '../chunk-VM2OWOXL.js';
37
+ import '../chunk-43LC6XAX.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-E6YGA5WH.js';
25
41
  export { calculateProgress, formatStatusLabel, milestoneStatusColors, noteTypeColors, projectStatusColors, taskStatusColors, taskTypeColors } from '../chunk-DLR4SDZW.js';
42
+ import '../chunk-4M2BSHVT.js';
43
+ import { useCloudStorageFolder, useCloudStorageThumbnails } from '../chunk-3QHX4ZKV.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-6JN2TLV2.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-6JN2TLV2.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-O32UQ26A.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-HYQOGRWG.js';
55
+ export { showApiErrorNotification, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification } from '../chunk-HYQOGRWG.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-R5UGIFYU.js';
52
69
  import '../chunk-Y6I3IC45.js';
53
70
  import '../chunk-6SSQGWK7.js';
54
71
  import { useElevasisServices } from '../chunk-BI5VDO2K.js';
@@ -57,7 +74,7 @@ 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';
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, Badge, Pagination, SegmentedControl, Switch, Select, Menu, Timeline, ThemeIcon, Tabs, Breadcrumbs as Breadcrumbs$1, Center, UnstyledButton, Image, Flex } from '@mantine/core';
61
78
  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';
62
79
  import * as runtime from 'react/jsx-runtime';
63
80
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -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),
@@ -3075,4 +3085,4 @@ function CloudStorageBrowser({
3075
3085
  ] }) });
3076
3086
  }
3077
3087
 
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 };
3088
+ 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, 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-7ARBBELS.js';
2
+ import '../../chunk-6JN2TLV2.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-O32UQ26A.js';
7
6
  import '../../chunk-L7BZZ4SI.js';
8
- import '../../chunk-U2H3TIHD.js';
7
+ import '../../chunk-HYQOGRWG.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-R5UGIFYU.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-E6YGA5WH.js';
2
+ import { computeProtectedRouteGate, DEFAULT_WAIT_FOR_ORGANIZATION, ProtectedRoute, AppearanceContext, AccessGuard, SystemUnavailableState, useAppearance } from '../../chunk-6JN2TLV2.js';
3
+ export { AccessGuard } from '../../chunk-6JN2TLV2.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-O32UQ26A.js';
8
7
  import '../../chunk-L7BZZ4SI.js';
9
- import '../../chunk-U2H3TIHD.js';
8
+ import '../../chunk-HYQOGRWG.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-R5UGIFYU.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-4M2BSHVT.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-6JN2TLV2.js';
7
+ export { clientsManifest } from '../../chunk-6JN2TLV2.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-O32UQ26A.js';
11
11
  import '../../chunk-L7BZZ4SI.js';
12
- import { showApiErrorNotification } from '../../chunk-U2H3TIHD.js';
12
+ import { showApiErrorNotification } from '../../chunk-HYQOGRWG.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-R5UGIFYU.js';
25
25
  import '../../chunk-Y6I3IC45.js';
26
26
  import '../../chunk-6SSQGWK7.js';
27
27
  import '../../chunk-BI5VDO2K.js';
@@ -200,10 +200,25 @@ interface SidebarGroupNode {
200
200
  }
201
201
  type SidebarNode = SidebarSurfaceNode | SidebarGroupNode;
202
202
 
203
- /** D5: who/what executes a content pipeline step. */
203
+ /**
204
+ * D5: who/what executes a content pipeline step.
205
+ *
206
+ * `'human'` was added on 2026-08-21, when the workspace shell started rendering its
207
+ * stepper from `steps[]`. Before that a step meant "a pass that writes a
208
+ * `content_item_attempts` row", so the stages a person walks -- picking files,
209
+ * framing them, sending the post -- were declared nowhere and lived as integer
210
+ * constants in one tenant's page. A catalog that describes only the automated half
211
+ * of a pipeline cannot be the thing a workspace renders, so the vocabulary widened
212
+ * to cover the whole sequence rather than the shell inventing a second one.
213
+ *
214
+ * A `'human'` step writes no attempt. That is expected, not a gap: `reviewMode`
215
+ * still says whether a decision gates it, and the surfaces that group by
216
+ * `stepKey` simply find no rows against it.
217
+ */
204
218
  declare const ContentPipelineStepActorSchema: z.ZodEnum<{
205
219
  agent: "agent";
206
220
  workflow: "workflow";
221
+ human: "human";
207
222
  vendor: "vendor";
208
223
  }>;
209
224
  type ContentPipelineStepActor = z.infer<typeof ContentPipelineStepActorSchema>;
@@ -1416,9 +1431,50 @@ declare const ContentSourceAssetResponseSchema: z.ZodObject<{
1416
1431
  createdAt: z.ZodString;
1417
1432
  updatedAt: z.ZodString;
1418
1433
  }, z.core.$strip>;
1434
+ declare const ContentDistributionResponseSchema: z.ZodObject<{
1435
+ id: z.ZodString;
1436
+ organizationId: z.ZodString;
1437
+ contentItemId: z.ZodString;
1438
+ platform: z.ZodString;
1439
+ format: z.ZodString;
1440
+ status: z.ZodString;
1441
+ adaptedBody: z.ZodNullable<z.ZodString>;
1442
+ platformContent: z.ZodNullable<z.ZodUnknown>;
1443
+ checklist: z.ZodNullable<z.ZodUnknown>;
1444
+ mediaUrls: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1445
+ kind: z.ZodLiteral<"storage">;
1446
+ bucket: z.ZodString;
1447
+ path: z.ZodString;
1448
+ }, z.core.$strict>, z.ZodObject<{
1449
+ kind: z.ZodLiteral<"url">;
1450
+ url: z.ZodString;
1451
+ }, z.core.$strict>], "kind">>;
1452
+ processingState: z.ZodRecord<z.ZodString, z.ZodObject<{
1453
+ status: z.ZodEnum<{
1454
+ error: "error";
1455
+ success: "success";
1456
+ running: "running";
1457
+ no_result: "no_result";
1458
+ skipped: "skipped";
1459
+ }>;
1460
+ attemptId: z.ZodString;
1461
+ executionId: z.ZodNullable<z.ZodString>;
1462
+ attemptedAt: z.ZodString;
1463
+ data: z.ZodOptional<z.ZodUnknown>;
1464
+ }, z.core.$loose>>;
1465
+ publishMethod: z.ZodNullable<z.ZodString>;
1466
+ publishedAt: z.ZodNullable<z.ZodString>;
1467
+ platformPostId: z.ZodNullable<z.ZodString>;
1468
+ platformUrl: z.ZodNullable<z.ZodString>;
1469
+ metrics: z.ZodUnknown;
1470
+ metricsUpdatedAt: z.ZodNullable<z.ZodString>;
1471
+ createdAt: z.ZodString;
1472
+ updatedAt: z.ZodString;
1473
+ }, z.core.$strip>;
1419
1474
  type ContentAssetCrop = z.infer<typeof ContentAssetCropSchema>;
1420
1475
  type ContentItemResponse = z.infer<typeof ContentItemResponseSchema>;
1421
1476
  type ContentSourceAssetResponse = z.infer<typeof ContentSourceAssetResponseSchema>;
1477
+ type ContentDistributionResponse = z.infer<typeof ContentDistributionResponseSchema>;
1422
1478
 
1423
1479
  /**
1424
1480
  * `deriveContentBoard` -- a pure function of `(items, pipeline, now)`. No React, no
@@ -2438,7 +2494,7 @@ interface ContentSidebarProps {
2438
2494
  declare const ContentSidebar: ({ workspaceItems, createItems, children }?: ContentSidebarProps) => react_jsx_runtime.JSX.Element;
2439
2495
 
2440
2496
  /**
2441
- * Static two-entry default, built from {@link DEFAULT_CONTENT_VOCABULARY}. Exists for
2497
+ * Static three-entry default, built from {@link DEFAULT_CONTENT_VOCABULARY}. Exists for
2442
2498
  * consumers that spread it at module load time (see `extend-content.md`), where a
2443
2499
  * tenant's declared vocabulary isn't available. `ContentSidebarMiddle` itself renders
2444
2500
  * the live, vocabulary-aware version instead of this constant.
@@ -2463,7 +2519,7 @@ interface ContentSidebarMiddleProps {
2463
2519
  * that section now holds review too.
2464
2520
  */
2465
2521
  createItems?: NavItem[];
2466
- /** Override the pipeline nav items. Defaults to the two-entry nav built from the tenant's declared vocabulary. */
2522
+ /** Override the pipeline nav items. Defaults to the three-entry nav built from the tenant's declared vocabulary. */
2467
2523
  items?: NavItem[];
2468
2524
  }
2469
2525
  /**
@@ -2511,5 +2567,170 @@ interface MyReviewQueuePanelProps {
2511
2567
  */
2512
2568
  declare function MyReviewQueuePanel({ onItemClick, onSeeAll, showSectionLabel }: MyReviewQueuePanelProps): react_jsx_runtime.JSX.Element;
2513
2569
 
2514
- export { AlternatesPanel, AssetCropEditor, CAPTION_STEP_KEY, CAPTION_WORKFLOW_ID, CONTENT_DERIVATIVES_BUCKET, CONTENT_ITEMS, CROP_ASPECT_OPTIONS, CaptionPanel, ContentDistributionDetailPage, ContentDistributionsPage, ContentItemReviewPage, ContentItemsPage, ContentOverviewPage, ContentPipelineBoardPage, ContentPipelineBoardPage as ContentPipelineWorkspacePage, ContentPipelinesPage, ContentReviewCard, ContentSidebar, ContentSidebarMiddle, DEFAULT_CONTENT_VOCABULARY, DERIVATIVE_JPEG_QUALITY, DERIVATIVE_MAX_WIDTH, IMAGE_ANALYSIS_WORKFLOW_ID, MyReviewQueuePanel, PayloadBody, PostPreview, ProcessingStateStrip, ReviewActionBar, SelectedAssetStrip, SlideAnalysisPanel, SourceAssetsPanel, contentManifest, cropStyle, derivativeObjectKey, deriveContentBoard, firstLine, formatElapsed, getContentItemIdentity, isDerivativeStale, lastLine, readStoredAnalysis, renderCropToJpeg, resolveContentStepResource, resolveContentVocabulary, swapFirstLine, swapLastLine, useContentConfig };
2515
- export type { AlternatesPanelProps, AssetCropEditorProps, CaptionPanelProps, ContentAlternateOption, ContentBoard, ContentBoardCard, ContentBoardColumn, ContentBoardGate, ContentConfig, ContentDistributionDetailPageSlots, ContentDistributionsPageSlots, ContentFidelityCheck, ContentItemReviewPageSlots, ContentItemsPageSlots, ContentNoun, ContentOverviewPageSlots, ContentPayloadField, ContentPipelineBoardPageSlots, ContentPipelineBoardPageSlots as ContentPipelineWorkspacePageSlots, ContentPipelinesPageSlots, ContentProcessingStatus, ContentProcessingStep, ContentReviewAction, ContentReviewCardProps, ContentSidebarMiddleProps, ContentSidebarProps, ContentStepResourceBinding, ContentVocabulary, CropAspectOption, MyReviewQueuePanelProps, PayloadBodyProps, PostPreviewProps, PostPreviewSlide, ProcessingStateStripProps, RenderCropOptions, ReviewActionBarProps, ReviewMode, SelectedAssetStripProps, SlideAnalysisPanelProps, SourceAssetsPanelProps, StoredSlideAnalysis };
2570
+ /**
2571
+ * What every step panel is handed, and the only thing the workspace shell owns.
2572
+ *
2573
+ * The shell fixes four things and nothing else: it remembers the work in progress,
2574
+ * it moves between steps, it draws the stepper from the tenant's own step list, and
2575
+ * it renders the panel that tenant's map names for the active step. Step count, step
2576
+ * order, labels, actors, review modes, statuses, platforms and every screen a step
2577
+ * puts up come from the model and from the composing app.
2578
+ *
2579
+ * `TDraft` is whatever the composing app's panels share and the shell has no opinion
2580
+ * about -- a cloud-storage selection, per-slide crops, a chosen platform. It is
2581
+ * carried, never read.
2582
+ */
2583
+ interface ContentWorkspaceState<TDraft> {
2584
+ /** The pipeline being walked, resolved from the organization model. */
2585
+ pipeline: ContentPipelineTemplate;
2586
+ /** Its steps, in declared order. Never assume a length or a particular member. */
2587
+ steps: ContentPipelineStepEntry[];
2588
+ /** The step on screen. */
2589
+ step: ContentPipelineStepEntry;
2590
+ /** Its index within {@link steps}. */
2591
+ stepIndex: number;
2592
+ /**
2593
+ * The item, once something has written one. `null` before that.
2594
+ *
2595
+ * Kept live rather than held as the create response: a caption promoted by a panel
2596
+ * changes `body`, and a preview reading the create snapshot would show the old one.
2597
+ */
2598
+ item: ContentItemResponse | null;
2599
+ /** Adopt a written item -- after creating one, or on resuming an existing one. */
2600
+ setItem: (item: ContentItemResponse | null) => void;
2601
+ /**
2602
+ * The item's body as it stands: the unsaved draft when a panel has reported one,
2603
+ * the saved body otherwise.
2604
+ *
2605
+ * This is shell state rather than tenant draft state because every pipeline that
2606
+ * writes a body has an in-progress one, and more than one step reads it -- the step
2607
+ * that writes it, the preview beside it, and the step that sends it out. Leaving it
2608
+ * to each app is how the two disagree.
2609
+ */
2610
+ body: string;
2611
+ /** The unsaved body, or `null` when no panel has reported one. */
2612
+ bodyDraft: string | null;
2613
+ setBodyDraft: (draft: string | null) => void;
2614
+ /**
2615
+ * The distribution row for this item, or `null`. First row only -- a second
2616
+ * platform is a second distribution and nothing here creates one yet.
2617
+ */
2618
+ distribution: ContentDistributionResponse | null;
2619
+ /** Re-read the distributions after a panel has written one. */
2620
+ refetchDistributions: () => void;
2621
+ /** Whatever the composing app's own panels share. */
2622
+ draft: TDraft;
2623
+ /** Merge a patch, or replace via an updater. */
2624
+ setDraft: (update: Partial<TDraft> | ((current: TDraft) => TDraft)) => void;
2625
+ /** Move to a step by key. Ignored when the key names no step in this pipeline. */
2626
+ goToStep: (stepKey: string) => void;
2627
+ goToNextStep: () => void;
2628
+ goToPreviousStep: () => void;
2629
+ /** Whether a step can be opened right now, per the composing app's own rule. */
2630
+ canOpenStep: (step: ContentPipelineStepEntry) => boolean;
2631
+ /**
2632
+ * Install a guard the shell awaits before leaving the active step, or clear it
2633
+ * with `null`.
2634
+ *
2635
+ * This exists because some steps have work that only makes sense to finish on the
2636
+ * way out -- rendering a crop, flushing an edit -- and the panel is the only thing
2637
+ * that knows what that work is. Install it from an effect and clear it on unmount.
2638
+ */
2639
+ registerLeaveGuard: (guard: ((to: ContentPipelineStepEntry) => Promise<void> | void) | null) => void;
2640
+ /** Drop everything and return to the start. */
2641
+ restart: () => void;
2642
+ }
2643
+ /** A component registered to render one step. */
2644
+ type ContentStepPanel<TDraft> = ComponentType<ContentWorkspaceState<TDraft>>;
2645
+ /**
2646
+ * Which panel renders which step, keyed by step key.
2647
+ *
2648
+ * An explicit map rather than a convention on the step key: a tenant that renames a
2649
+ * step would otherwise silently lose its panel with nothing on screen to say so,
2650
+ * whereas a missing entry here is reported. It also takes any component, so a tenant
2651
+ * can use published panels for some steps and its own for the rest.
2652
+ */
2653
+ type ContentStepPanelMap<TDraft> = Record<string, ContentStepPanel<TDraft>>;
2654
+ /** What the opening screen can do, when the composing app renders one. */
2655
+ interface ContentWorkspaceStartControls {
2656
+ /** Begin a new item at the first step. */
2657
+ onStartNew: () => void;
2658
+ /** Pick up an existing item. The shell adopts it and opens `resumeAtStepKey`. */
2659
+ onResume: (item: ContentItemResponse, resumeAtStepKey?: string) => void;
2660
+ }
2661
+ interface ContentWorkspaceShellProps<TDraft> {
2662
+ /**
2663
+ * Which pipeline to walk. Defaults to the content System's own
2664
+ * `config.defaultPipelineId` when omitted.
2665
+ */
2666
+ pipelineId?: string;
2667
+ /** See {@link ContentStepPanelMap}. */
2668
+ panels: ContentStepPanelMap<TDraft>;
2669
+ /** The starting value of the app's own shared draft. Also what `restart` returns to. */
2670
+ initialDraft: TDraft;
2671
+ title: string;
2672
+ caption?: string;
2673
+ /** Rendered at the right of the page title -- a credential badge, a mode switch. */
2674
+ headerRight?: ReactNode;
2675
+ /**
2676
+ * The opening screen, before any step is shown: a resume picker, a template
2677
+ * chooser, or nothing. Omit it and the shell opens on the first step.
2678
+ */
2679
+ renderStart?: (controls: ContentWorkspaceStartControls) => ReactNode;
2680
+ /**
2681
+ * Rendered on every step whatever panel is active, between the stepper and the
2682
+ * panel. For the banner naming the work in progress, and for cross-step effects
2683
+ * that must outlive the panel that started them.
2684
+ */
2685
+ renderPersistent?: (state: ContentWorkspaceState<TDraft>) => ReactNode;
2686
+ /**
2687
+ * The column beside the active panel -- typically the thing being built. Return
2688
+ * `null` for a step that wants the full width, and the shell drops the column
2689
+ * rather than rendering an empty one.
2690
+ */
2691
+ renderAside?: (state: ContentWorkspaceState<TDraft>) => ReactNode;
2692
+ /**
2693
+ * Whether a step is openable. Defaults to "any step at or before the furthest one
2694
+ * reached", which is what makes going back free and going forward deliberate.
2695
+ */
2696
+ canOpenStep?: (step: ContentPipelineStepEntry, state: ContentWorkspaceState<TDraft>) => boolean;
2697
+ /** Test id on the page root, so a composing app's tests can find its own workspace. */
2698
+ testId?: string;
2699
+ }
2700
+
2701
+ /**
2702
+ * The frame a tenant's content pipeline is walked in.
2703
+ *
2704
+ * **It draws the stepper from the model, not from itself.** One `Stepper.Step` per
2705
+ * entry in `ContentPipelineTemplate.steps`, using that entry's own label and order,
2706
+ * its description below the row once the step is active, and the panel the composing
2707
+ * app registered for its key. A pipeline with
2708
+ * three steps renders three; one with seven renders seven; one that puts the caption
2709
+ * second renders it second. Nothing here knows what a crop or a carousel is.
2710
+ *
2711
+ * **It owns only what every step shares** -- the item, its unsaved body, the
2712
+ * distribution row, and where in the sequence you are. Everything else is the
2713
+ * composing app's, carried through `draft` untouched. The panels are stateless and
2714
+ * take this object; the app decides what they are.
2715
+ *
2716
+ * The reason the frame owns that much rather than less: those are exactly the values
2717
+ * more than one step reads, and the two live defects in the page this replaced were
2718
+ * both cross-step state bugs. Pushing them into each app reproduces those bugs once
2719
+ * per tenant.
2720
+ */
2721
+ declare function ContentWorkspaceShell<TDraft>({ pipelineId, panels, initialDraft, title, caption, headerRight, renderStart, renderPersistent, renderAside, canOpenStep, testId }: ContentWorkspaceShellProps<TDraft>): react_jsx_runtime.JSX.Element;
2722
+
2723
+ /**
2724
+ * The analysis step, ready to register.
2725
+ *
2726
+ * `SlideAnalysisPanel` was already universal -- it takes an item id and nothing else
2727
+ * -- so what was missing was only the shape the shell calls it with. That is all this
2728
+ * is: the panel, plus the two moves either side of it.
2729
+ *
2730
+ * Registers under whatever key the tenant's own step catalog uses; nothing here reads
2731
+ * a step key.
2732
+ */
2733
+ declare function ContentAnalysisStepPanel<TDraft>(state: ContentWorkspaceState<TDraft>): react_jsx_runtime.JSX.Element;
2734
+
2735
+ export { AlternatesPanel, AssetCropEditor, CAPTION_STEP_KEY, CAPTION_WORKFLOW_ID, CONTENT_DERIVATIVES_BUCKET, CONTENT_ITEMS, CROP_ASPECT_OPTIONS, CaptionPanel, ContentAnalysisStepPanel, ContentDistributionDetailPage, ContentDistributionsPage, ContentItemReviewPage, ContentItemsPage, ContentOverviewPage, ContentPipelineBoardPage, ContentPipelineBoardPage as ContentPipelineWorkspacePage, ContentPipelinesPage, ContentReviewCard, ContentSidebar, ContentSidebarMiddle, ContentWorkspaceShell, DEFAULT_CONTENT_VOCABULARY, DERIVATIVE_JPEG_QUALITY, DERIVATIVE_MAX_WIDTH, IMAGE_ANALYSIS_WORKFLOW_ID, MyReviewQueuePanel, PayloadBody, PostPreview, ProcessingStateStrip, ReviewActionBar, SelectedAssetStrip, SlideAnalysisPanel, SourceAssetsPanel, contentManifest, cropStyle, derivativeObjectKey, deriveContentBoard, firstLine, formatElapsed, getContentItemIdentity, isDerivativeStale, lastLine, readStoredAnalysis, renderCropToJpeg, resolveContentStepResource, resolveContentVocabulary, swapFirstLine, swapLastLine, useContentConfig };
2736
+ export type { AlternatesPanelProps, AssetCropEditorProps, CaptionPanelProps, ContentAlternateOption, ContentBoard, ContentBoardCard, ContentBoardColumn, ContentBoardGate, ContentConfig, ContentDistributionDetailPageSlots, ContentDistributionsPageSlots, ContentFidelityCheck, ContentItemReviewPageSlots, ContentItemsPageSlots, ContentNoun, ContentOverviewPageSlots, ContentPayloadField, ContentPipelineBoardPageSlots, ContentPipelineBoardPageSlots as ContentPipelineWorkspacePageSlots, ContentPipelinesPageSlots, ContentProcessingStatus, ContentProcessingStep, ContentReviewAction, ContentReviewCardProps, ContentSidebarMiddleProps, ContentSidebarProps, ContentStepPanel, ContentStepPanelMap, ContentStepResourceBinding, ContentVocabulary, ContentWorkspaceShellProps, ContentWorkspaceStartControls, ContentWorkspaceState, CropAspectOption, MyReviewQueuePanelProps, PayloadBodyProps, PostPreviewProps, PostPreviewSlide, ProcessingStateStripProps, RenderCropOptions, ReviewActionBarProps, ReviewMode, SelectedAssetStripProps, SlideAnalysisPanelProps, SourceAssetsPanelProps, StoredSlideAnalysis };