@elevasis/ui 2.7.0 → 2.8.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 (46) hide show
  1. package/dist/{chunk-V6Z2U6ZV.js → chunk-4PHPENKX.js} +3044 -1753
  2. package/dist/chunk-7M2VOCYN.js +1 -0
  3. package/dist/{chunk-VGBMSGYC.js → chunk-7PDDPNQS.js} +1 -1
  4. package/dist/{chunk-YIWLA2B6.js → chunk-C2OFFC7J.js} +0 -1
  5. package/dist/{chunk-Z5RHDI7T.js → chunk-CTWYIRKW.js} +1 -2
  6. package/dist/{chunk-IFH4L6CR.js → chunk-F5QSLYUB.js} +4 -6
  7. package/dist/{chunk-6FDGVZFL.js → chunk-KGEYEUR5.js} +1 -3
  8. package/dist/{chunk-HRIJZKFL.js → chunk-MGEC63TE.js} +5 -6
  9. package/dist/{chunk-SMJLS23U.js → chunk-NYMKWGKN.js} +18 -1
  10. package/dist/{chunk-T6R3V4GW.js → chunk-OFT2QK6B.js} +6 -7
  11. package/dist/{chunk-SPMKW4VO.js → chunk-OPT74SGF.js} +96 -82
  12. package/dist/{chunk-X4HUZINF.js → chunk-UX3Q4YYN.js} +21 -13
  13. package/dist/{chunk-N6GYYWY3.js → chunk-YCHZ4U5V.js} +10 -2
  14. package/dist/{chunk-SBND6P3L.js → chunk-ZZ35VSNF.js} +1 -3
  15. package/dist/components/index.d.ts +132 -67
  16. package/dist/components/index.js +17 -17
  17. package/dist/features/auth/index.d.ts +3 -3
  18. package/dist/features/crm/index.d.ts +61 -5
  19. package/dist/features/crm/index.js +5 -5
  20. package/dist/features/dashboard/index.js +5 -5
  21. package/dist/features/delivery/index.d.ts +64 -4
  22. package/dist/features/delivery/index.js +5 -5
  23. package/dist/features/lead-gen/index.d.ts +61 -5
  24. package/dist/features/lead-gen/index.js +8 -8
  25. package/dist/features/monitoring/index.d.ts +20 -1
  26. package/dist/features/monitoring/index.js +6 -6
  27. package/dist/features/operations/index.d.ts +20 -1
  28. package/dist/features/operations/index.js +7 -7
  29. package/dist/features/seo/index.d.ts +20 -1
  30. package/dist/features/seo/index.js +1 -1
  31. package/dist/features/settings/index.d.ts +20 -1
  32. package/dist/features/settings/index.js +5 -5
  33. package/dist/hooks/index.d.ts +7735 -7720
  34. package/dist/hooks/index.js +4 -4
  35. package/dist/hooks/published.d.ts +3493 -47
  36. package/dist/hooks/published.js +3 -3
  37. package/dist/index.d.ts +1416 -1375
  38. package/dist/index.js +4 -4
  39. package/dist/layout/index.d.ts +60 -2
  40. package/dist/layout/index.js +1 -1
  41. package/dist/provider/index.d.ts +30 -4
  42. package/dist/provider/index.js +2 -2
  43. package/dist/provider/published.d.ts +20 -2
  44. package/dist/provider/published.js +1 -1
  45. package/package.json +3 -3
  46. package/dist/chunk-TENLM2GN.js +0 -1303
@@ -6984,68 +6984,6 @@ interface SortState {
6984
6984
  direction: SortDirection;
6985
6985
  }
6986
6986
 
6987
- interface ActivityFilters$1 {
6988
- activityType?: ActivityType | 'all';
6989
- status?: ActivityStatus | 'all';
6990
- search?: string;
6991
- }
6992
-
6993
- interface ExecutionLogsFilters$1 {
6994
- resourceId: string | undefined;
6995
- status: 'all' | ExecutionStatus;
6996
- resourceStatus: 'all' | 'dev' | 'prod';
6997
- }
6998
-
6999
- interface CreateApiKeyResponse {
7000
- id: string;
7001
- key: string;
7002
- message: string;
7003
- }
7004
-
7005
- /**
7006
- * GET /api/credentials - List credentials
7007
- */
7008
- declare const ListCredentialsResponseSchema = z.object({
7009
- credentials: z.array(
7010
- z.object({
7011
- id: UuidSchema,
7012
- name: z.string(),
7013
- type: z.string(),
7014
- provider: z.string().nullable(), // OAuth provider or null for non-OAuth
7015
- createdAt: z.string().datetime()
7016
- })
7017
- )
7018
- })
7019
-
7020
- /** API response type for a single credential list item */
7021
- type CredentialListItem = z.infer<typeof ListCredentialsResponseSchema>['credentials'][number]
7022
-
7023
- interface CreateCredentialResponse {
7024
- id: string;
7025
- name: string;
7026
- type: string;
7027
- }
7028
-
7029
- /**
7030
- * Response shape for a single webhook endpoint.
7031
- * NOT strict — response schemas allow extra fields for forward compatibility.
7032
- */
7033
- declare const WebhookEndpointResponseSchema = z.object({
7034
- id: UuidSchema,
7035
- organizationId: UuidSchema,
7036
- key: z.string(),
7037
- name: z.string(),
7038
- description: z.string().nullable(),
7039
- resourceId: z.string().nullable(),
7040
- status: WebhookEndpointStatusSchema,
7041
- lastTriggeredAt: z.string().datetime().nullable(),
7042
- requestCount: z.number().int().min(0),
7043
- createdAt: z.string().datetime(),
7044
- updatedAt: z.string().datetime()
7045
- })
7046
-
7047
- type WebhookEndpointResponse = z.infer<typeof WebhookEndpointResponseSchema>
7048
-
7049
6987
  interface DocFile {
7050
6988
  path: string;
7051
6989
  frontmatter: {
@@ -7168,6 +7106,68 @@ interface CommandViewGraph$1 {
7168
7106
  edges: CommandViewEdge$1[];
7169
7107
  }
7170
7108
 
7109
+ interface CreateApiKeyResponse {
7110
+ id: string;
7111
+ key: string;
7112
+ message: string;
7113
+ }
7114
+
7115
+ /**
7116
+ * GET /api/credentials - List credentials
7117
+ */
7118
+ declare const ListCredentialsResponseSchema = z.object({
7119
+ credentials: z.array(
7120
+ z.object({
7121
+ id: UuidSchema,
7122
+ name: z.string(),
7123
+ type: z.string(),
7124
+ provider: z.string().nullable(), // OAuth provider or null for non-OAuth
7125
+ createdAt: z.string().datetime()
7126
+ })
7127
+ )
7128
+ })
7129
+
7130
+ /** API response type for a single credential list item */
7131
+ type CredentialListItem = z.infer<typeof ListCredentialsResponseSchema>['credentials'][number]
7132
+
7133
+ interface CreateCredentialResponse {
7134
+ id: string;
7135
+ name: string;
7136
+ type: string;
7137
+ }
7138
+
7139
+ /**
7140
+ * Response shape for a single webhook endpoint.
7141
+ * NOT strict — response schemas allow extra fields for forward compatibility.
7142
+ */
7143
+ declare const WebhookEndpointResponseSchema = z.object({
7144
+ id: UuidSchema,
7145
+ organizationId: UuidSchema,
7146
+ key: z.string(),
7147
+ name: z.string(),
7148
+ description: z.string().nullable(),
7149
+ resourceId: z.string().nullable(),
7150
+ status: WebhookEndpointStatusSchema,
7151
+ lastTriggeredAt: z.string().datetime().nullable(),
7152
+ requestCount: z.number().int().min(0),
7153
+ createdAt: z.string().datetime(),
7154
+ updatedAt: z.string().datetime()
7155
+ })
7156
+
7157
+ type WebhookEndpointResponse = z.infer<typeof WebhookEndpointResponseSchema>
7158
+
7159
+ interface ActivityFilters$1 {
7160
+ activityType?: ActivityType | 'all';
7161
+ status?: ActivityStatus | 'all';
7162
+ search?: string;
7163
+ }
7164
+
7165
+ interface ExecutionLogsFilters$1 {
7166
+ resourceId: string | undefined;
7167
+ status: 'all' | ExecutionStatus;
7168
+ resourceStatus: 'all' | 'dev' | 'prod';
7169
+ }
7170
+
7171
7171
  interface SortableHeaderProps {
7172
7172
  column: string;
7173
7173
  children: React.ReactNode;
@@ -8641,7 +8641,43 @@ declare const CrmSidebar: () => react_jsx_runtime.JSX.Element;
8641
8641
 
8642
8642
  declare const CrmSidebarTop: () => react_jsx_runtime.JSX.Element;
8643
8643
 
8644
- declare const CrmSidebarMiddle: () => react_jsx_runtime.JSX.Element;
8644
+ /**
8645
+ * Shared nav-item shape used by feature sidebar middle components.
8646
+ *
8647
+ * Matches the subset of {@link SubshellNavItemProps} that the existing
8648
+ * hardcoded item arrays use. Consumers import this type alongside the
8649
+ * exported item arrays (e.g. `CRM_ITEMS`) to type their custom arrays.
8650
+ *
8651
+ * @example
8652
+ * import { NavItem, CRM_ITEMS } from '@elevasis/ui/features/crm'
8653
+ *
8654
+ * const customItems: NavItem[] = [
8655
+ * ...CRM_ITEMS,
8656
+ * { label: 'Reports', to: '/crm/reports', icon: IconFileText, exact: false },
8657
+ * ]
8658
+ */
8659
+ interface NavItem {
8660
+ /** Display label for the nav entry. */
8661
+ label: string;
8662
+ /** Route path the item links to. */
8663
+ to: string;
8664
+ /** Tabler icon component (or any component accepting `size` + `style`). */
8665
+ icon: ComponentType<{
8666
+ size?: number;
8667
+ style?: React.CSSProperties;
8668
+ }>;
8669
+ /**
8670
+ * When `true`, the item is only active when the path matches exactly.
8671
+ * When `false`, it is active for any path that starts with `to`.
8672
+ */
8673
+ exact: boolean;
8674
+ }
8675
+
8676
+ interface CrmSidebarMiddleProps {
8677
+ /** Override the default nav items. Defaults to {@link CRM_ITEMS}. */
8678
+ items?: NavItem[];
8679
+ }
8680
+ declare const CrmSidebarMiddle: ({ items }?: CrmSidebarMiddleProps) => react_jsx_runtime.JSX.Element;
8645
8681
 
8646
8682
  interface PipelineStageSummary {
8647
8683
  stage: DealStage;
@@ -8777,14 +8813,33 @@ interface FeatureNavEntry {
8777
8813
  }
8778
8814
  type FeatureSidebarComponent = ComponentType;
8779
8815
  interface FeatureModule {
8816
+ /** Unique stable identifier for this feature (e.g. `'crm'`, `'delivery'`). */
8780
8817
  key: string;
8781
- label?: string;
8818
+ /** Feature key used for access-flag gating in the organization model. */
8782
8819
  accessFeatureKey: OrganizationModelFeatureKey;
8820
+ /**
8821
+ * Semantic domain identifiers contributed by this feature.
8822
+ * Merged with surface-derived domain IDs during resolution.
8823
+ */
8783
8824
  domainIds?: OrganizationModelSemanticDomain['id'][];
8825
+ /**
8826
+ * Capability identifiers contributed by this feature.
8827
+ * Merged into `ResolvedFeatureSemantics.capabilityIds` at resolution time.
8828
+ * Not queried at runtime — kept for semantic graph completeness so that
8829
+ * capability membership is fully represented in the resolved model even when
8830
+ * a surface does not declare it directly.
8831
+ */
8784
8832
  capabilityIds?: string[];
8833
+ /** Top-level navigation entry rendered in the app shell when this feature is enabled. */
8785
8834
  navEntry?: FeatureNavEntry;
8835
+ /** Sidebar component rendered when a matching subshell route is active. */
8786
8836
  sidebar?: FeatureSidebarComponent;
8837
+ /** Route path prefixes that activate this feature's sidebar and subshell context. */
8787
8838
  subshellRoutes?: string[];
8839
+ /**
8840
+ * Operations-only bridge surface connecting this feature to the organization graph.
8841
+ * Ignored by all other features. Only one manifest in the registry should set this.
8842
+ */
8788
8843
  organizationGraph?: OrganizationGraphFeatureBridge;
8789
8844
  }
8790
8845
  interface OrganizationGraphFeatureBridge {
@@ -8806,7 +8861,11 @@ declare const LeadGenSidebar: () => react_jsx_runtime.JSX.Element;
8806
8861
 
8807
8862
  declare const LeadGenSidebarTop: () => react_jsx_runtime.JSX.Element;
8808
8863
 
8809
- declare const LeadGenSidebarMiddle: () => react_jsx_runtime.JSX.Element;
8864
+ interface LeadGenSidebarMiddleProps {
8865
+ /** Override the default nav items. Defaults to {@link LEAD_GEN_ITEMS}. */
8866
+ items?: NavItem[];
8867
+ }
8868
+ declare const LeadGenSidebarMiddle: ({ items }?: LeadGenSidebarMiddleProps) => react_jsx_runtime.JSX.Element;
8810
8869
 
8811
8870
  declare const leadGenManifest: FeatureModule;
8812
8871
 
@@ -8895,8 +8954,14 @@ declare const ProjectsSidebarTop: () => react_jsx_runtime.JSX.Element;
8895
8954
  interface ProjectsSidebarMiddleProps {
8896
8955
  currentPath?: string;
8897
8956
  onNavigate?: (to: string) => void;
8898
- }
8899
- declare const ProjectsSidebarMiddle: ({ currentPath, onNavigate }?: ProjectsSidebarMiddleProps) => react_jsx_runtime.JSX.Element;
8957
+ /** Override the project section items. Defaults to {@link DELIVERY_PROJECT_ITEMS}. */
8958
+ projectItems?: NavItem[];
8959
+ /** Override the work section items. Defaults to {@link DELIVERY_WORK_ITEMS}. */
8960
+ workItems?: NavItem[];
8961
+ /** Override the communication section items. Defaults to {@link DELIVERY_COMMUNICATION_ITEMS}. */
8962
+ communicationItems?: NavItem[];
8963
+ }
8964
+ declare const ProjectsSidebarMiddle: ({ currentPath, onNavigate, projectItems, workItems, communicationItems }?: ProjectsSidebarMiddleProps) => react_jsx_runtime.JSX.Element;
8900
8965
 
8901
8966
  declare const deliveryManifest: FeatureModule;
8902
8967
 
@@ -1,16 +1,16 @@
1
- import '../chunk-SMJLS23U.js';
1
+ import '../chunk-NYMKWGKN.js';
2
2
  import { useBreadcrumbs } from '../chunk-MG3NF7QL.js';
3
- export { AllTasksPage, HealthStatusCard, MilestoneTimeline, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, TaskCard, UpcomingMilestonesPage, calculateProgress, deliveryManifest, formatStatusLabel, milestoneStatusColors, noteTypeColors, projectStatusColors, taskStatusColors, taskTypeColors } from '../chunk-X4HUZINF.js';
4
- export { LEAD_GEN_ROUTE_LINKS, LIST_TEMPLATE_OPTIONS, LeadGenCompaniesPage, LeadGenContactsPage, LeadGenDeliverabilityPage, LeadGenListDetailPage, LeadGenListsPage, LeadGenOverviewPage, LeadGenRouteShell, LeadGenSidebar, LeadGenSidebarMiddle, LeadGenSidebarTop, buildListConfig, getEnrichmentColor, getStatusColor, leadGenManifest, useDeleteLists } from '../chunk-T6R3V4GW.js';
5
- export { ActionModal, AgentDefinitionDisplay, AgentExecutionLogs, BaseExecutionLogs, BaseExecutionLogsHeader, BaseExecutionLogsStates, CheckpointGroup, CollapsibleJsonSection, CommandQueueSidebar, CommandQueueSidebarMiddle, CommandQueueSidebarTop, CommandQueueTaskRow, ConfigCard, ContentSections, ContextUsageBadge, ContractDisplay, ExecutionErrorSection, FormFieldRenderer, LogEntry, LogGroup, NewKnowledgeMapEdge, NewKnowledgeMapGraph, NewKnowledgeMapNode, OperationsSidebar, OperationsSidebarMiddle, OperationsSidebarTop, ResourceDefinitionSection, ResourceErrorState, ResourceFilter, ResourceHeader, ResourceNotFoundState, SessionMemory, ToolsListDisplay, WorkflowDefinitionDisplay, WorkflowExecutionLogs, getExecutionStatusConfig, getIcon, getLogLevelConfig, iconMap, operationsManifest, useNewKnowledgeMapLayout } from '../chunk-IFH4L6CR.js';
3
+ export { AllTasksPage, HealthStatusCard, MilestoneTimeline, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, TaskCard, UpcomingMilestonesPage, calculateProgress, deliveryManifest, formatStatusLabel, milestoneStatusColors, noteTypeColors, projectStatusColors, taskStatusColors, taskTypeColors } from '../chunk-UX3Q4YYN.js';
4
+ export { LEAD_GEN_ROUTE_LINKS, LIST_TEMPLATE_OPTIONS, LeadGenCompaniesPage, LeadGenContactsPage, LeadGenDeliverabilityPage, LeadGenListDetailPage, LeadGenListsPage, LeadGenOverviewPage, LeadGenRouteShell, LeadGenSidebar, LeadGenSidebarMiddle, LeadGenSidebarTop, buildListConfig, getEnrichmentColor, getStatusColor, leadGenManifest, useDeleteLists } from '../chunk-OFT2QK6B.js';
5
+ export { ActionModal, AgentDefinitionDisplay, AgentExecutionLogs, BaseExecutionLogs, BaseExecutionLogsHeader, BaseExecutionLogsStates, CheckpointGroup, CollapsibleJsonSection, CommandQueueSidebar, CommandQueueSidebarMiddle, CommandQueueSidebarTop, CommandQueueTaskRow, ConfigCard, ContentSections, ContextUsageBadge, ContractDisplay, ExecutionErrorSection, FormFieldRenderer, LogEntry, LogGroup, NewKnowledgeMapEdge, NewKnowledgeMapGraph, NewKnowledgeMapNode, OperationsSidebar, OperationsSidebarMiddle, OperationsSidebarTop, ResourceDefinitionSection, ResourceErrorState, ResourceFilter, ResourceHeader, ResourceNotFoundState, SessionMemory, ToolsListDisplay, WorkflowDefinitionDisplay, WorkflowExecutionLogs, getExecutionStatusConfig, getIcon, getLogLevelConfig, iconMap, operationsManifest, useNewKnowledgeMapLayout } from '../chunk-F5QSLYUB.js';
6
6
  import '../chunk-ROSMICXG.js';
7
7
  import { SubshellLoader, CollapsibleSidebarGroup } from '../chunk-IDACMRGQ.js';
8
- import { NotificationList } from '../chunk-SBND6P3L.js';
9
- export { ActivityCard, ActivityFilters as ActivityFiltersBar, ActivityTable, BusinessImpactCard, CostBreakdownCard, CostByModelTable, CostMetricsCard, ErrorAnalysisCard, ErrorBreakdownTable, ExecutionBreakdownTable, ExecutionHealthCard, ExecutionLogsFilters as ExecutionLogsFilterBar, ExecutionLogsTable, NotificationItem, NotificationList, monitoringManifest } from '../chunk-SBND6P3L.js';
10
- export { ResourceHealthPanel } from '../chunk-VGBMSGYC.js';
11
- export { SEOSidebar, SEOSidebarMiddle, SEOSidebarTop, seoManifest } from '../chunk-YIWLA2B6.js';
12
- export { CreateCredentialModal, CredentialList, CredentialSettings, MembershipFeaturePanel, MembershipStatusBadge, OAuthConnectModal, OrganizationMembershipsList, WebhookUrlDisplayModal, settingsManifest } from '../chunk-6FDGVZFL.js';
13
- export { ActivityFeedWidget, CrmOverview, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, DealDetailPage, DealsListPage, MetricsStrip, MyTasksPanel, PIPELINE_FUNNEL_ORDER, PipelineFunnelWidget, QuickCreateActions, SAVED_VIEW_PRESETS, SavedViewsPanel, TasksDueWidget, crmManifest, useCrmPipelineSummary, useCrmQuickMetrics, useRecentCrmActivity } from '../chunk-HRIJZKFL.js';
8
+ import { NotificationList } from '../chunk-ZZ35VSNF.js';
9
+ export { ActivityCard, ActivityFilters as ActivityFiltersBar, ActivityTable, BusinessImpactCard, CostBreakdownCard, CostByModelTable, CostMetricsCard, ErrorAnalysisCard, ErrorBreakdownTable, ExecutionBreakdownTable, ExecutionHealthCard, ExecutionLogsFilters as ExecutionLogsFilterBar, ExecutionLogsTable, NotificationItem, NotificationList, monitoringManifest } from '../chunk-ZZ35VSNF.js';
10
+ export { ResourceHealthPanel } from '../chunk-7PDDPNQS.js';
11
+ export { SEOSidebar, SEOSidebarMiddle, SEOSidebarTop, seoManifest } from '../chunk-C2OFFC7J.js';
12
+ export { CreateCredentialModal, CredentialList, CredentialSettings, MembershipFeaturePanel, MembershipStatusBadge, OAuthConnectModal, OrganizationMembershipsList, WebhookUrlDisplayModal, settingsManifest } from '../chunk-KGEYEUR5.js';
13
+ export { ActivityFeedWidget, CrmOverview, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, DealDetailPage, DealsListPage, MetricsStrip, MyTasksPanel, PIPELINE_FUNNEL_ORDER, PipelineFunnelWidget, QuickCreateActions, SAVED_VIEW_PRESETS, SavedViewsPanel, TasksDueWidget, crmManifest, useCrmPipelineSummary, useCrmQuickMetrics, useRecentCrmActivity } from '../chunk-MGEC63TE.js';
14
14
  export { SortableHeader, TableSelectionToolbar } from '../chunk-TUMSNGTX.js';
15
15
  import { PageContainer } from '../chunk-BZZCNLT6.js';
16
16
  import { SubshellNavItem } from '../chunk-27COZ5AH.js';
@@ -18,23 +18,23 @@ import { FilterBar } from '../chunk-PDHTXPSF.js';
18
18
  export { FilterBar } from '../chunk-PDHTXPSF.js';
19
19
  import { CustomModal } from '../chunk-GBMNCNHX.js';
20
20
  export { ConfirmationInputModal, ConfirmationModal, CustomModal } from '../chunk-GBMNCNHX.js';
21
- import { BaseNode, useGraphTheme, BaseEdge, GraphBackground, GraphLegend, GraphFitViewButton } from '../chunk-Z5RHDI7T.js';
22
- export { AgentExecutionTimeline, AgentExecutionVisualizer, AgentIterationEdge, AgentIterationNode, BaseEdge, BaseNode, EmptyVisualizer, ExecutionStats, ExecutionStatusBadge, GraphBackground, GraphContainer, GraphFitViewButton, GraphFitViewHandler, GraphLegend, TimelineAxis, TimelineBar, TimelineContainer, TimelineRow, UnifiedWorkflowEdge, UnifiedWorkflowGraph, UnifiedWorkflowNode, VisualizerContainer, WorkflowExecutionTimeline, getGraphBackgroundStyles, useGraphBackgroundStyles, useGraphTheme } from '../chunk-Z5RHDI7T.js';
21
+ import { BaseNode, useGraphTheme, BaseEdge, GraphBackground, GraphLegend, GraphFitViewButton } from '../chunk-CTWYIRKW.js';
22
+ export { AgentExecutionTimeline, AgentExecutionVisualizer, AgentIterationEdge, AgentIterationNode, BaseEdge, BaseNode, EmptyVisualizer, ExecutionStats, ExecutionStatusBadge, GraphBackground, GraphContainer, GraphFitViewButton, GraphFitViewHandler, GraphLegend, TimelineAxis, TimelineBar, TimelineContainer, TimelineRow, UnifiedWorkflowEdge, UnifiedWorkflowGraph, UnifiedWorkflowNode, VisualizerContainer, WorkflowExecutionTimeline, getGraphBackgroundStyles, useGraphBackgroundStyles, useGraphTheme } from '../chunk-CTWYIRKW.js';
23
23
  export { ResourceHealthChart, getHealthColor } from '../chunk-LGKLC5MG.js';
24
24
  import '../chunk-KFICYU6S.js';
25
25
  import { AppShellLoader } from '../chunk-YEX4MQSY.js';
26
26
  import '../chunk-VNUOQQNY.js';
27
27
  export { CONTAINER_CONSTANTS, SHARED_VIZ_CONSTANTS } from '../chunk-XA34RETF.js';
28
- import { useUpdateApiKey, useDeleteApiKey, useCreateApiKey, useListApiKeys, useActivateDeployment, useDeactivateDeployment, useDeleteDeployment, useListDeployments } from '../chunk-TENLM2GN.js';
29
- import { useCommandViewLayout, usePaginationState, useDeploymentDocs, useResources, useCreateSchedule, useListSchedules, usePauseSchedule, useResumeSchedule, useCancelSchedule, useDeleteSchedule, useDealNotes, useCreateDealNote, useDeals, useSyncDealStage, dealKeys, useMarkAllAsRead, useNotifications, showErrorNotification, showSuccessNotification, showApiErrorNotification } from '../chunk-V6Z2U6ZV.js';
30
- export { showApiErrorNotification, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification } from '../chunk-V6Z2U6ZV.js';
28
+ import '../chunk-7M2VOCYN.js';
29
+ import { useCommandViewLayout, useUpdateApiKey, useDeleteApiKey, useCreateApiKey, useListApiKeys, usePaginationState, useActivateDeployment, useDeactivateDeployment, useDeleteDeployment, useListDeployments, useDeploymentDocs, useResources, useCreateSchedule, useListSchedules, usePauseSchedule, useResumeSchedule, useCancelSchedule, useDeleteSchedule, useDealNotes, useCreateDealNote, useDeals, useSyncDealStage, dealKeys, useMarkAllAsRead, useNotifications, showErrorNotification, showSuccessNotification, showApiErrorNotification } from '../chunk-4PHPENKX.js';
30
+ export { showApiErrorNotification, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification } from '../chunk-4PHPENKX.js';
31
31
  import '../chunk-LXHZYSMQ.js';
32
32
  import { Graph_module_css_default, useDirectedChainHighlighting, useNodeSelection, GRAPH_CONSTANTS } from '../chunk-22UVE3RA.js';
33
33
  export { Graph_module_css_default as graphStyles } from '../chunk-22UVE3RA.js';
34
- import '../chunk-N6GYYWY3.js';
34
+ import '../chunk-YCHZ4U5V.js';
35
35
  import '../chunk-47YILFON.js';
36
36
  import '../chunk-CYXZHBP4.js';
37
- import '../chunk-SPMKW4VO.js';
37
+ import '../chunk-OPT74SGF.js';
38
38
  import { SubshellContainer, SubshellSidebar, SubshellRightSideContainer, SubshellContentContainer } from '../chunk-RX4UWZZR.js';
39
39
  import { ListSkeleton, EmptyState, PageTitleCaption, StatCard, CenteredErrorState, CardHeader, ActivityTimeline } from '../chunk-Y3D3WFJG.js';
40
40
  export { APIErrorAlert, ActivityTimeline, CardHeader, CenteredErrorState, CollapsibleSection, ContextViewer, CustomSelector, DetailCardSkeleton, ElevasisLoader, EmptyState, FeatureUnavailableState, GlowDot, JsonViewer, ListSkeleton, PageNotFound, PageTitleCaption, ResourceCard, StatCard, StatCardSkeleton, StatsCardSkeleton, StatusBadge, TabCountBadge, TimeRangeSelector, TrendIndicator, catalogItemToResourceDefinition } from '../chunk-Y3D3WFJG.js';
@@ -2708,7 +2708,7 @@ interface FeatureGuardProps {
2708
2708
  deniedMessage?: string;
2709
2709
  /**
2710
2710
  * The `useFeatureAccess` hook instance to use for feature flag resolution.
2711
- * Must be created via `createUseFeatureAccess` from `@repo/ui/hooks`.
2711
+ * Must be created via `createFeatureAccessHook` from `@repo/ui/hooks`.
2712
2712
  */
2713
2713
  useFeatureAccess: UseFeatureAccessHook;
2714
2714
  }
@@ -2716,7 +2716,7 @@ interface FeatureGuardProps {
2716
2716
  * Route guard that restricts access to a named feature.
2717
2717
  *
2718
2718
  * Reads feature flags from the provided `useFeatureAccess` hook instance
2719
- * (created via `createUseFeatureAccess` from `@repo/ui/hooks`). When the
2719
+ * (created via `createFeatureAccessHook` from `@repo/ui/hooks`). When the
2720
2720
  * feature is not allowed, shows a Mantine notification and redirects to '/'.
2721
2721
  *
2722
2722
  * The `restrictedBy === 'membership'` branch surfaces a personal access
@@ -2725,7 +2725,7 @@ interface FeatureGuardProps {
2725
2725
  * @example
2726
2726
  * ```tsx
2727
2727
  * // In your app, create the hook once:
2728
- * export const useFeatureAccess = createUseFeatureAccess({ useInitialization, useOrganization })
2728
+ * export const useFeatureAccess = createFeatureAccessHook({ useInitialization, useOrganization })
2729
2729
  *
2730
2730
  * // Then use the guard:
2731
2731
  * function MonitoringLayout() {
@@ -1,12 +1,49 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ComponentType, ReactNode } from 'react';
2
3
  import { z } from 'zod';
3
- import { ReactNode, ComponentType } from 'react';
4
4
 
5
5
  declare const CrmSidebar: () => react_jsx_runtime.JSX.Element;
6
6
 
7
7
  declare const CrmSidebarTop: () => react_jsx_runtime.JSX.Element;
8
8
 
9
- declare const CrmSidebarMiddle: () => react_jsx_runtime.JSX.Element;
9
+ /**
10
+ * Shared nav-item shape used by feature sidebar middle components.
11
+ *
12
+ * Matches the subset of {@link SubshellNavItemProps} that the existing
13
+ * hardcoded item arrays use. Consumers import this type alongside the
14
+ * exported item arrays (e.g. `CRM_ITEMS`) to type their custom arrays.
15
+ *
16
+ * @example
17
+ * import { NavItem, CRM_ITEMS } from '@elevasis/ui/features/crm'
18
+ *
19
+ * const customItems: NavItem[] = [
20
+ * ...CRM_ITEMS,
21
+ * { label: 'Reports', to: '/crm/reports', icon: IconFileText, exact: false },
22
+ * ]
23
+ */
24
+ interface NavItem {
25
+ /** Display label for the nav entry. */
26
+ label: string;
27
+ /** Route path the item links to. */
28
+ to: string;
29
+ /** Tabler icon component (or any component accepting `size` + `style`). */
30
+ icon: ComponentType<{
31
+ size?: number;
32
+ style?: React.CSSProperties;
33
+ }>;
34
+ /**
35
+ * When `true`, the item is only active when the path matches exactly.
36
+ * When `false`, it is active for any path that starts with `to`.
37
+ */
38
+ exact: boolean;
39
+ }
40
+
41
+ declare const CRM_ITEMS: NavItem[];
42
+ interface CrmSidebarMiddleProps {
43
+ /** Override the default nav items. Defaults to {@link CRM_ITEMS}. */
44
+ items?: NavItem[];
45
+ }
46
+ declare const CrmSidebarMiddle: ({ items }?: CrmSidebarMiddleProps) => react_jsx_runtime.JSX.Element;
10
47
 
11
48
  type Json = string | number | boolean | null | {
12
49
  [key: string]: Json | undefined;
@@ -2821,14 +2858,33 @@ interface FeatureNavEntry {
2821
2858
  }
2822
2859
  type FeatureSidebarComponent = ComponentType;
2823
2860
  interface FeatureModule {
2861
+ /** Unique stable identifier for this feature (e.g. `'crm'`, `'delivery'`). */
2824
2862
  key: string;
2825
- label?: string;
2863
+ /** Feature key used for access-flag gating in the organization model. */
2826
2864
  accessFeatureKey: OrganizationModelFeatureKey;
2865
+ /**
2866
+ * Semantic domain identifiers contributed by this feature.
2867
+ * Merged with surface-derived domain IDs during resolution.
2868
+ */
2827
2869
  domainIds?: OrganizationModelSemanticDomain['id'][];
2870
+ /**
2871
+ * Capability identifiers contributed by this feature.
2872
+ * Merged into `ResolvedFeatureSemantics.capabilityIds` at resolution time.
2873
+ * Not queried at runtime — kept for semantic graph completeness so that
2874
+ * capability membership is fully represented in the resolved model even when
2875
+ * a surface does not declare it directly.
2876
+ */
2828
2877
  capabilityIds?: string[];
2878
+ /** Top-level navigation entry rendered in the app shell when this feature is enabled. */
2829
2879
  navEntry?: FeatureNavEntry;
2880
+ /** Sidebar component rendered when a matching subshell route is active. */
2830
2881
  sidebar?: FeatureSidebarComponent;
2882
+ /** Route path prefixes that activate this feature's sidebar and subshell context. */
2831
2883
  subshellRoutes?: string[];
2884
+ /**
2885
+ * Operations-only bridge surface connecting this feature to the organization graph.
2886
+ * Ignored by all other features. Only one manifest in the registry should set this.
2887
+ */
2832
2888
  organizationGraph?: OrganizationGraphFeatureBridge;
2833
2889
  }
2834
2890
  interface OrganizationGraphFeatureBridge {
@@ -2853,5 +2909,5 @@ interface DealDetailPageProps {
2853
2909
  }
2854
2910
  declare function DealDetailPage({ dealId, renderActions, onDealLoaded }: DealDetailPageProps): react_jsx_runtime.JSX.Element;
2855
2911
 
2856
- export { ActivityFeedWidget, CrmOverview, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, DEAL_STAGE_COLORS, DEAL_STAGE_OPTIONS, DealDetailPage, DealsListPage, MetricsStrip, MyTasksPanel, PIPELINE_FUNNEL_ORDER, PipelineFunnelWidget, QuickCreateActions, SAVED_VIEW_PRESETS, SavedViewsPanel, TasksDueWidget, crmManifest, formatDealStageLabel, useCrmPipelineSummary, useCrmQuickMetrics, useRecentCrmActivity };
2857
- export type { ActivityFeedWidgetProps, RecentActivityEntry as CrmActivityEntry, CrmActivityKind, CrmOverviewProps, CrmQuickMetrics, MyTasksPanelProps, PipelineFunnelWidgetProps, PipelineStageSummary, QuickCreateActionsProps, SavedViewPreset, SavedViewsPanelProps, TasksDueWidgetProps };
2912
+ export { ActivityFeedWidget, CRM_ITEMS, CrmOverview, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, DEAL_STAGE_COLORS, DEAL_STAGE_OPTIONS, DealDetailPage, DealsListPage, MetricsStrip, MyTasksPanel, PIPELINE_FUNNEL_ORDER, PipelineFunnelWidget, QuickCreateActions, SAVED_VIEW_PRESETS, SavedViewsPanel, TasksDueWidget, crmManifest, formatDealStageLabel, useCrmPipelineSummary, useCrmQuickMetrics, useRecentCrmActivity };
2913
+ export type { ActivityFeedWidgetProps, RecentActivityEntry as CrmActivityEntry, CrmActivityKind, CrmOverviewProps, CrmQuickMetrics, CrmSidebarMiddleProps, MyTasksPanelProps, PipelineFunnelWidgetProps, PipelineStageSummary, QuickCreateActionsProps, SavedViewPreset, SavedViewsPanelProps, TasksDueWidgetProps };
@@ -1,17 +1,17 @@
1
- export { ActivityFeedWidget, CrmOverview, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, DEAL_STAGE_COLORS, DEAL_STAGE_OPTIONS, DealDetailPage, DealsListPage, MetricsStrip, MyTasksPanel, PIPELINE_FUNNEL_ORDER, PipelineFunnelWidget, QuickCreateActions, SAVED_VIEW_PRESETS, SavedViewsPanel, TasksDueWidget, crmManifest, formatDealStageLabel, useCrmPipelineSummary, useCrmQuickMetrics, useRecentCrmActivity } from '../../chunk-HRIJZKFL.js';
1
+ export { ActivityFeedWidget, CRM_ITEMS, CrmOverview, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, DEAL_STAGE_COLORS, DEAL_STAGE_OPTIONS, DealDetailPage, DealsListPage, MetricsStrip, MyTasksPanel, PIPELINE_FUNNEL_ORDER, PipelineFunnelWidget, QuickCreateActions, SAVED_VIEW_PRESETS, SavedViewsPanel, TasksDueWidget, crmManifest, formatDealStageLabel, useCrmPipelineSummary, useCrmQuickMetrics, useRecentCrmActivity } from '../../chunk-MGEC63TE.js';
2
2
  import '../../chunk-TUMSNGTX.js';
3
3
  import '../../chunk-BZZCNLT6.js';
4
4
  import '../../chunk-27COZ5AH.js';
5
5
  import '../../chunk-PDHTXPSF.js';
6
6
  import '../../chunk-GBMNCNHX.js';
7
- import '../../chunk-TENLM2GN.js';
8
- import '../../chunk-V6Z2U6ZV.js';
7
+ import '../../chunk-7M2VOCYN.js';
8
+ import '../../chunk-4PHPENKX.js';
9
9
  import '../../chunk-LXHZYSMQ.js';
10
10
  import '../../chunk-22UVE3RA.js';
11
- import '../../chunk-N6GYYWY3.js';
11
+ import '../../chunk-YCHZ4U5V.js';
12
12
  import '../../chunk-47YILFON.js';
13
13
  import '../../chunk-CYXZHBP4.js';
14
- import '../../chunk-SPMKW4VO.js';
14
+ import '../../chunk-OPT74SGF.js';
15
15
  import '../../chunk-RX4UWZZR.js';
16
16
  import '../../chunk-Y3D3WFJG.js';
17
17
  import '../../chunk-3KMDHCAR.js';
@@ -1,16 +1,16 @@
1
- export { Dashboard, OperationsOverview, RecentExecutionsByResource, ResourceOverview, UnresolvedErrorsTeaser } from '../../chunk-Z5RHDI7T.js';
1
+ export { Dashboard, OperationsOverview, RecentExecutionsByResource, ResourceOverview, UnresolvedErrorsTeaser } from '../../chunk-CTWYIRKW.js';
2
2
  import '../../chunk-LGKLC5MG.js';
3
3
  import '../../chunk-KFICYU6S.js';
4
4
  import '../../chunk-YEX4MQSY.js';
5
5
  import '../../chunk-XA34RETF.js';
6
- import '../../chunk-TENLM2GN.js';
7
- import '../../chunk-V6Z2U6ZV.js';
6
+ import '../../chunk-7M2VOCYN.js';
7
+ import '../../chunk-4PHPENKX.js';
8
8
  import '../../chunk-LXHZYSMQ.js';
9
9
  import '../../chunk-22UVE3RA.js';
10
- import '../../chunk-N6GYYWY3.js';
10
+ import '../../chunk-YCHZ4U5V.js';
11
11
  import '../../chunk-47YILFON.js';
12
12
  import '../../chunk-CYXZHBP4.js';
13
- import '../../chunk-SPMKW4VO.js';
13
+ import '../../chunk-OPT74SGF.js';
14
14
  import '../../chunk-RX4UWZZR.js';
15
15
  import '../../chunk-Y3D3WFJG.js';
16
16
  import '../../chunk-3KMDHCAR.js';
@@ -1,6 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { z } from 'zod';
3
2
  import { ComponentType } from 'react';
3
+ import { z } from 'zod';
4
4
 
5
5
  interface HealthStatusCardProps {
6
6
  status: string;
@@ -2584,11 +2584,52 @@ declare const ProjectsSidebar: () => react_jsx_runtime.JSX.Element;
2584
2584
 
2585
2585
  declare const ProjectsSidebarTop: () => react_jsx_runtime.JSX.Element;
2586
2586
 
2587
+ /**
2588
+ * Shared nav-item shape used by feature sidebar middle components.
2589
+ *
2590
+ * Matches the subset of {@link SubshellNavItemProps} that the existing
2591
+ * hardcoded item arrays use. Consumers import this type alongside the
2592
+ * exported item arrays (e.g. `CRM_ITEMS`) to type their custom arrays.
2593
+ *
2594
+ * @example
2595
+ * import { NavItem, CRM_ITEMS } from '@elevasis/ui/features/crm'
2596
+ *
2597
+ * const customItems: NavItem[] = [
2598
+ * ...CRM_ITEMS,
2599
+ * { label: 'Reports', to: '/crm/reports', icon: IconFileText, exact: false },
2600
+ * ]
2601
+ */
2602
+ interface NavItem {
2603
+ /** Display label for the nav entry. */
2604
+ label: string;
2605
+ /** Route path the item links to. */
2606
+ to: string;
2607
+ /** Tabler icon component (or any component accepting `size` + `style`). */
2608
+ icon: ComponentType<{
2609
+ size?: number;
2610
+ style?: React.CSSProperties;
2611
+ }>;
2612
+ /**
2613
+ * When `true`, the item is only active when the path matches exactly.
2614
+ * When `false`, it is active for any path that starts with `to`.
2615
+ */
2616
+ exact: boolean;
2617
+ }
2618
+
2619
+ declare const DELIVERY_PROJECT_ITEMS: NavItem[];
2620
+ declare const DELIVERY_WORK_ITEMS: NavItem[];
2621
+ declare const DELIVERY_COMMUNICATION_ITEMS: NavItem[];
2587
2622
  interface ProjectsSidebarMiddleProps {
2588
2623
  currentPath?: string;
2589
2624
  onNavigate?: (to: string) => void;
2625
+ /** Override the project section items. Defaults to {@link DELIVERY_PROJECT_ITEMS}. */
2626
+ projectItems?: NavItem[];
2627
+ /** Override the work section items. Defaults to {@link DELIVERY_WORK_ITEMS}. */
2628
+ workItems?: NavItem[];
2629
+ /** Override the communication section items. Defaults to {@link DELIVERY_COMMUNICATION_ITEMS}. */
2630
+ communicationItems?: NavItem[];
2590
2631
  }
2591
- declare const ProjectsSidebarMiddle: ({ currentPath, onNavigate }?: ProjectsSidebarMiddleProps) => react_jsx_runtime.JSX.Element;
2632
+ declare const ProjectsSidebarMiddle: ({ currentPath, onNavigate, projectItems, workItems, communicationItems }?: ProjectsSidebarMiddleProps) => react_jsx_runtime.JSX.Element;
2592
2633
 
2593
2634
  declare const SemanticDomainSchema = DisplayMetadataSchema.extend({
2594
2635
  id: ModelIdSchema,
@@ -2629,14 +2670,33 @@ interface FeatureNavEntry {
2629
2670
  }
2630
2671
  type FeatureSidebarComponent = ComponentType;
2631
2672
  interface FeatureModule {
2673
+ /** Unique stable identifier for this feature (e.g. `'crm'`, `'delivery'`). */
2632
2674
  key: string;
2633
- label?: string;
2675
+ /** Feature key used for access-flag gating in the organization model. */
2634
2676
  accessFeatureKey: OrganizationModelFeatureKey;
2677
+ /**
2678
+ * Semantic domain identifiers contributed by this feature.
2679
+ * Merged with surface-derived domain IDs during resolution.
2680
+ */
2635
2681
  domainIds?: OrganizationModelSemanticDomain['id'][];
2682
+ /**
2683
+ * Capability identifiers contributed by this feature.
2684
+ * Merged into `ResolvedFeatureSemantics.capabilityIds` at resolution time.
2685
+ * Not queried at runtime — kept for semantic graph completeness so that
2686
+ * capability membership is fully represented in the resolved model even when
2687
+ * a surface does not declare it directly.
2688
+ */
2636
2689
  capabilityIds?: string[];
2690
+ /** Top-level navigation entry rendered in the app shell when this feature is enabled. */
2637
2691
  navEntry?: FeatureNavEntry;
2692
+ /** Sidebar component rendered when a matching subshell route is active. */
2638
2693
  sidebar?: FeatureSidebarComponent;
2694
+ /** Route path prefixes that activate this feature's sidebar and subshell context. */
2639
2695
  subshellRoutes?: string[];
2696
+ /**
2697
+ * Operations-only bridge surface connecting this feature to the organization graph.
2698
+ * Ignored by all other features. Only one manifest in the registry should set this.
2699
+ */
2640
2700
  organizationGraph?: OrganizationGraphFeatureBridge;
2641
2701
  }
2642
2702
  interface OrganizationGraphFeatureBridge {
@@ -2669,5 +2729,5 @@ declare const noteTypeColors: Record<string, string>;
2669
2729
  declare function formatStatusLabel(status: string): string;
2670
2730
  declare function calculateProgress(completed: number, total: number): number;
2671
2731
 
2672
- export { AllTasksPage, HealthStatusCard, MilestoneTimeline, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, TaskCard, UpcomingMilestonesPage, calculateProgress, deliveryManifest, formatStatusLabel, milestoneStatusColors, noteTypeColors, projectStatusColors, taskStatusColors, taskTypeColors };
2732
+ export { AllTasksPage, DELIVERY_COMMUNICATION_ITEMS, DELIVERY_PROJECT_ITEMS, DELIVERY_WORK_ITEMS, HealthStatusCard, MilestoneTimeline, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, TaskCard, UpcomingMilestonesPage, calculateProgress, deliveryManifest, formatStatusLabel, milestoneStatusColors, noteTypeColors, projectStatusColors, taskStatusColors, taskTypeColors };
2673
2733
  export type { ProjectsSidebarMiddleProps };
@@ -1,17 +1,17 @@
1
- export { AllTasksPage, HealthStatusCard, MilestoneTimeline, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, TaskCard, UpcomingMilestonesPage, calculateProgress, deliveryManifest, formatStatusLabel, milestoneStatusColors, noteTypeColors, projectStatusColors, taskStatusColors, taskTypeColors } from '../../chunk-X4HUZINF.js';
1
+ export { AllTasksPage, DELIVERY_COMMUNICATION_ITEMS, DELIVERY_PROJECT_ITEMS, DELIVERY_WORK_ITEMS, HealthStatusCard, MilestoneTimeline, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, TaskCard, UpcomingMilestonesPage, calculateProgress, deliveryManifest, formatStatusLabel, milestoneStatusColors, noteTypeColors, projectStatusColors, taskStatusColors, taskTypeColors } from '../../chunk-UX3Q4YYN.js';
2
2
  import '../../chunk-TUMSNGTX.js';
3
3
  import '../../chunk-BZZCNLT6.js';
4
4
  import '../../chunk-27COZ5AH.js';
5
5
  import '../../chunk-PDHTXPSF.js';
6
6
  import '../../chunk-GBMNCNHX.js';
7
- import '../../chunk-TENLM2GN.js';
8
- import '../../chunk-V6Z2U6ZV.js';
7
+ import '../../chunk-7M2VOCYN.js';
8
+ import '../../chunk-4PHPENKX.js';
9
9
  import '../../chunk-LXHZYSMQ.js';
10
10
  import '../../chunk-22UVE3RA.js';
11
- import '../../chunk-N6GYYWY3.js';
11
+ import '../../chunk-YCHZ4U5V.js';
12
12
  import '../../chunk-47YILFON.js';
13
13
  import '../../chunk-CYXZHBP4.js';
14
- import '../../chunk-SPMKW4VO.js';
14
+ import '../../chunk-OPT74SGF.js';
15
15
  import '../../chunk-RX4UWZZR.js';
16
16
  import '../../chunk-Y3D3WFJG.js';
17
17
  import '../../chunk-3KMDHCAR.js';