@elevasis/ui 2.9.1 → 2.10.1

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 (74) hide show
  1. package/dist/app/index.css +137 -0
  2. package/dist/app/index.d.ts +223 -0
  3. package/dist/app/index.js +95 -0
  4. package/dist/charts/index.js +3 -2
  5. package/dist/{chunk-NYMKWGKN.js → chunk-4BF74JVD.js} +110 -7
  6. package/dist/{chunk-47YILFON.js → chunk-6PNHW4X2.js} +159 -144
  7. package/dist/chunk-ADSSLKKP.js +10 -0
  8. package/dist/chunk-AEBKE4IX.js +13 -0
  9. package/dist/{chunk-C2OFFC7J.js → chunk-AL23U6C3.js} +3 -2
  10. package/dist/{chunk-27COZ5AH.js → chunk-CEWTOKE7.js} +3 -50
  11. package/dist/{chunk-AQQYVAFK.js → chunk-CLXMNMIS.js} +8 -7
  12. package/dist/{chunk-4PHPENKX.js → chunk-E3IFHX6A.js} +27 -377
  13. package/dist/{chunk-CYXZHBP4.js → chunk-F4TPY6YL.js} +14 -3
  14. package/dist/chunk-G2TDX3W6.js +5 -0
  15. package/dist/{chunk-CTWYIRKW.js → chunk-GJVGV7QZ.js} +24 -34
  16. package/dist/chunk-IIMU5YAJ.js +53 -0
  17. package/dist/{chunk-VNUOQQNY.js → chunk-KYOF6NYW.js} +2 -2
  18. package/dist/{chunk-W4VYXIN7.js → chunk-L4XXM55J.js} +3 -142
  19. package/dist/{chunk-YCHZ4U5V.js → chunk-LPSBID5V.js} +5 -13
  20. package/dist/{chunk-F5QSLYUB.js → chunk-LW5NKRI7.js} +1189 -1300
  21. package/dist/{chunk-KGEYEUR5.js → chunk-M6ZZ2FW5.js} +7 -6
  22. package/dist/{chunk-OPT74SGF.js → chunk-N5CLIRBS.js} +31 -176
  23. package/dist/chunk-R7WLWGPO.js +126 -0
  24. package/dist/{chunk-Y3D3WFJG.js → chunk-SQQGLGHW.js} +2 -11
  25. package/dist/{chunk-KFICYU6S.js → chunk-STZJ7SY5.js} +1 -1
  26. package/dist/chunk-SZHARWKU.js +15 -0
  27. package/dist/{chunk-7PDDPNQS.js → chunk-TSX4I3NW.js} +3 -3
  28. package/dist/chunk-V7XHGJQZ.js +145 -0
  29. package/dist/{chunk-UE5QQDCR.js → chunk-WHQXDETX.js} +5 -5
  30. package/dist/{chunk-4JPW5U5I.js → chunk-XB4NWSI3.js} +53 -54
  31. package/dist/{chunk-ZZ35VSNF.js → chunk-YQLE5HR5.js} +4 -4
  32. package/dist/components/index.d.ts +6 -253
  33. package/dist/components/index.js +31 -25
  34. package/dist/features/auth/index.d.ts +0 -107
  35. package/dist/features/auth/index.js +0 -1
  36. package/dist/features/crm/index.d.ts +3 -136
  37. package/dist/features/crm/index.js +14 -9
  38. package/dist/features/dashboard/index.js +13 -9
  39. package/dist/features/delivery/index.d.ts +3 -137
  40. package/dist/features/delivery/index.js +15 -9
  41. package/dist/features/lead-gen/index.d.ts +3 -29
  42. package/dist/features/lead-gen/index.js +20 -14
  43. package/dist/features/monitoring/index.d.ts +3 -30
  44. package/dist/features/monitoring/index.js +14 -10
  45. package/dist/features/operations/index.d.ts +18 -1324
  46. package/dist/features/operations/index.js +18 -13
  47. package/dist/features/seo/index.d.ts +3 -30
  48. package/dist/features/seo/index.js +3 -2
  49. package/dist/features/settings/index.d.ts +6 -146
  50. package/dist/features/settings/index.js +13 -9
  51. package/dist/hooks/index.d.ts +10 -1403
  52. package/dist/hooks/index.js +11 -7
  53. package/dist/hooks/published.d.ts +10 -1403
  54. package/dist/hooks/published.js +11 -7
  55. package/dist/index.d.ts +97 -1510
  56. package/dist/index.js +12 -8
  57. package/dist/initialization/index.d.ts +3 -117
  58. package/dist/layout/index.d.ts +12 -2
  59. package/dist/layout/index.js +5 -4
  60. package/dist/organization/index.d.ts +3 -10
  61. package/dist/organization/index.js +2 -1
  62. package/dist/profile/index.d.ts +0 -107
  63. package/dist/provider/index.d.ts +45 -65
  64. package/dist/provider/index.js +10 -6
  65. package/dist/provider/published.d.ts +45 -65
  66. package/dist/provider/published.js +6 -3
  67. package/dist/supabase/index.d.ts +0 -209
  68. package/dist/theme/index.d.ts +1 -1
  69. package/dist/theme/index.js +3 -3
  70. package/dist/typeform/index.js +10 -10
  71. package/dist/types/index.d.ts +68 -1738
  72. package/package.json +20 -4
  73. package/src/app/README.md +24 -0
  74. package/dist/chunk-IDACMRGQ.js +0 -115
package/dist/index.js CHANGED
@@ -1,22 +1,26 @@
1
1
  import './chunk-XCYKC6OZ.js';
2
- export { useAvailablePresets } from './chunk-VNUOQQNY.js';
2
+ export { useAvailablePresets } from './chunk-KYOF6NYW.js';
3
3
  export { AGENT_CONSTANTS, CONTAINER_CONSTANTS, SHARED_VIZ_CONSTANTS, STATUS_COLORS, TIMELINE_CONSTANTS, WORKFLOW_CONSTANTS, calculateBarPosition, formatDuration, getEdgeColor, getEdgeOpacity, getResourceStatusColor, getStatusColors, getStatusIcon, shouldAnimateEdge, useAgentIterationData, useExecutionPath, useMergedExecution, useReactFlowAgent, useTimelineData, useUnifiedWorkflowLayout, useWorkflowStepsLayout } from './chunk-XA34RETF.js';
4
4
  import './chunk-7M2VOCYN.js';
5
- export { ApiKeyService, CredentialService, DeploymentService, OperationsService, OrganizationMembershipService, WebhookEndpointService, acquisitionListKeys, calibrationKeys, companyKeys, contactKeys, dealKeys, dealNoteKeys, dealTaskKeys, executionsKeys, filterByDomainFilters, isSessionCapable, milestoneKeys, noteKeys, operationsKeys, projectKeys, scheduleKeys, sessionsKeys, sortData, taskKeys, useActivateDeployment, useActivities, useActivityFilters, useActivityTrend, useAllCalibrationProjects, useArchiveSession, useArchivedLogs, useBatchDelete, useBatchTelemetry, useBatchedResourcesHealth, useBulkDeleteExecutions, useBusinessImpact, useCalibrationProject, useCalibrationProjects, useCalibrationRun, useCalibrationRunFull, useCalibrationRuns, useCalibrationSSE, useCancelExecution, useCancelSchedule, useCheckpointTasks, useCommandQueue, useCommandQueueTotals, useCommandViewData, useCommandViewDomainFilters, useCommandViewLayout, useCommandViewStats, useCommandViewStore, useCompanies, useCompany, useCompleteDealTask, useContact, useContacts, useCostBreakdown, useCostByModel, useCostSummary, useCostTrends, useCreateApiKey, useCreateCompany, useCreateContact, useCreateCredential, useCreateDealNote, useCreateDealTask, useCreateProject2 as useCreateDeliveryProject, useCreateList, useCreateMilestone, useCreateNote, useCreateProject, useCreateRun, useCreateSchedule, useCreateSession, useCreateWebhookEndpoint, useCredentials, useDashboardMetrics, useDeactivateDeployment, useDeactivateMembership, useDealDetail, useDealNotes, useDealTasks, useDealTasksDue, useDeals, useDeleteApiKey, useDeleteCompanies, useDeleteContacts, useDeleteCredential, useDeleteDeal, useDeleteProject2 as useDeleteDeliveryProject, useDeleteTask2 as useDeleteDeliveryTask, useDeleteDeployment, useDeleteExecution, useDeleteList, useDeleteMilestone, useDeleteProject, useDeleteRun, useDeleteSchedule, useDeleteSession, useDeleteTask, useDeleteWebhookEndpoint, useDeploymentDocs, useErrorAnalysis, useErrorDetail, useErrorDetails, useErrorDistribution, useErrorNotification, useExecuteAsync, useExecuteRun, useExecuteWorkflow, useExecution, useExecutionHealth, useExecutionLogSSE, useExecutionLogs, useExecutionLogsFilters, useExecutionPanelState, useExecutions, useGetExecutionHistory, useGetSchedule, useGradeRun, useGraphStats, useList, useListApiKeys, useListDeployments, useListExecutions, useListProgress, useListSchedules, useListWebhookEndpoints, useLists, useListsTelemetry, useMarkAllAsRead, useMarkAsRead, useMilestones, useNotificationCount as useNotificationCountSSE, useNotifications, useOrganizationMembers, usePaginationState, usePatchTask, usePauseSchedule, useProject, useProjectNotes, useProjects, useReactivateMembership, useRecentExecutionsByResource, useResolveAllErrors, useResolveError, useResolveErrorsByExecution, useResourceDefinition, useResourceErrors, useResourceExecutions, useResourceSearch, useResources, useResourcesDomainFilters, useResourcesHealth, useResumeSchedule, useRetryExecution, useSSEConnection, useScheduledTasks, useSession, useSessionExecution, useSessionExecutions, useSessionMessages, useSessionWebSocket, useSessions, useSortedData, useStatusFilter, useSubmitAction, useSuccessNotification, useSyncDealStage, useTableSelection, useTableSort, useTasks, useTestNotification, useTimeRangeDates, useTopFailingResources, useUnresolveError, useUnresolvedErrors, useUpdateAnchor, useUpdateApiKey, useUpdateCompany, useUpdateContact, useUpdateCredential, useUpdateProject2 as useUpdateDeliveryProject, useUpdateList, useUpdateListConfig, useUpdateMemberConfig, useUpdateMilestone, useUpdateProject, useUpdateSchedule, useUpdateWebhookEndpoint, useUserMemberships, useVisibleResources, useWarningNotification } from './chunk-4PHPENKX.js';
5
+ export { ApiKeyService, CredentialService, DeploymentService, OperationsService, OrganizationMembershipService, WebhookEndpointService, acquisitionListKeys, companyKeys, contactKeys, dealKeys, dealNoteKeys, dealTaskKeys, executionsKeys, filterByDomainFilters, isSessionCapable, milestoneKeys, noteKeys, operationsKeys, projectKeys, scheduleKeys, sessionsKeys, sortData, taskKeys, useActivateDeployment, useActivities, useActivityFilters, useActivityTrend, useArchiveSession, useArchivedLogs, useBatchDelete, useBatchTelemetry, useBatchedResourcesHealth, useBulkDeleteExecutions, useBusinessImpact, useCancelExecution, useCancelSchedule, useCheckpointTasks, useCommandQueue, useCommandQueueTotals, useCommandViewData, useCommandViewDomainFilters, useCommandViewLayout, useCommandViewStats, useCommandViewStore, useCompanies, useCompany, useCompleteDealTask, useContact, useContacts, useCostBreakdown, useCostByModel, useCostSummary, useCostTrends, useCreateApiKey, useCreateCompany, useCreateContact, useCreateCredential, useCreateDealNote, useCreateDealTask, useCreateProject as useCreateDeliveryProject, useCreateList, useCreateMilestone, useCreateNote, useCreateSchedule, useCreateSession, useCreateWebhookEndpoint, useCredentials, useDashboardMetrics, useDeactivateDeployment, useDeactivateMembership, useDealDetail, useDealNotes, useDealTasks, useDealTasksDue, useDeals, useDeleteApiKey, useDeleteCompanies, useDeleteContacts, useDeleteCredential, useDeleteDeal, useDeleteProject as useDeleteDeliveryProject, useDeleteTask2 as useDeleteDeliveryTask, useDeleteDeployment, useDeleteExecution, useDeleteList, useDeleteMilestone, useDeleteSchedule, useDeleteSession, useDeleteTask, useDeleteWebhookEndpoint, useDeploymentDocs, useErrorAnalysis, useErrorDetail, useErrorDetails, useErrorDistribution, useErrorNotification, useExecuteAsync, useExecuteWorkflow, useExecution, useExecutionHealth, useExecutionLogSSE, useExecutionLogs, useExecutionLogsFilters, useExecutionPanelState, useExecutions, useGetExecutionHistory, useGetSchedule, useGraphStats, useList, useListApiKeys, useListDeployments, useListExecutions, useListProgress, useListSchedules, useListWebhookEndpoints, useLists, useListsTelemetry, useMarkAllAsRead, useMarkAsRead, useMilestones, useNotificationCount as useNotificationCountSSE, useNotifications, useOrganizationMembers, usePaginationState, usePatchTask, usePauseSchedule, useProject, useProjectNotes, useProjects, useReactivateMembership, useRecentExecutionsByResource, useResolveAllErrors, useResolveError, useResolveErrorsByExecution, useResourceDefinition, useResourceErrors, useResourceExecutions, useResourceSearch, useResources, useResourcesDomainFilters, useResourcesHealth, useResumeSchedule, useRetryExecution, useSSEConnection, useScheduledTasks, useSession, useSessionExecution, useSessionExecutions, useSessionMessages, useSessionWebSocket, useSessions, useSortedData, useStatusFilter, useSubmitAction, useSuccessNotification, useSyncDealStage, useTableSelection, useTableSort, useTasks, useTestNotification, useTimeRangeDates, useTopFailingResources, useUnresolveError, useUnresolvedErrors, useUpdateAnchor, useUpdateApiKey, useUpdateCompany, useUpdateContact, useUpdateCredential, useUpdateProject as useUpdateDeliveryProject, useUpdateList, useUpdateListConfig, useUpdateMemberConfig, useUpdateMilestone, useUpdateSchedule, useUpdateWebhookEndpoint, useUserMemberships, useVisibleResources, useWarningNotification } from './chunk-E3IFHX6A.js';
6
6
  export { observabilityKeys, useErrorTrends } from './chunk-LXHZYSMQ.js';
7
7
  export { GRAPH_CONSTANTS, calculateGraphHeight, useConnectionHighlight, useDirectedChainHighlighting, useFitViewTrigger, useGraphHighlighting, useNodeSelection } from './chunk-22UVE3RA.js';
8
- export { ElevasisUIProvider, createTestFeaturesProvider } from './chunk-YCHZ4U5V.js';
9
- export { PresetsProvider, TOKEN_VAR_MAP, componentThemes, createCssVariablesResolver, generateShades, getPreset, mantineThemeOverride, PRESETS as presets, usePresetsContext } from './chunk-47YILFON.js';
10
- import './chunk-CYXZHBP4.js';
11
- export { ElevasisCoreProvider, ElevasisFeaturesProvider, FEATURE_KEY_ALIASES, FeatureShell, NotificationProvider, createFeatureAccessHook, createUseFeatureAccess, useElevasisFeatures, useNotificationAdapter, useOptionalElevasisFeatures } from './chunk-OPT74SGF.js';
8
+ export { createTestFeaturesProvider } from './chunk-AEBKE4IX.js';
9
+ export { ElevasisUIProvider } from './chunk-LPSBID5V.js';
10
+ export { PresetsProvider, TOKEN_VAR_MAP, componentThemes, createCssVariablesResolver, generateShades, getPreset, mantineThemeOverride, PRESETS as presets, usePresetsContext } from './chunk-6PNHW4X2.js';
11
+ import './chunk-F4TPY6YL.js';
12
+ export { ElevasisFeaturesProvider, FeatureShell, createFeatureAccessHook, createUseFeatureAccess, useElevasisFeatures, useOptionalElevasisFeatures } from './chunk-N5CLIRBS.js';
12
13
  import './chunk-RX4UWZZR.js';
13
- import './chunk-Y3D3WFJG.js';
14
+ import './chunk-SQQGLGHW.js';
14
15
  import './chunk-3KMDHCAR.js';
15
16
  import './chunk-NYBEU5TE.js';
17
+ export { ElevasisCoreProvider, NotificationProvider, useNotificationAdapter } from './chunk-R7WLWGPO.js';
18
+ import './chunk-SZHARWKU.js';
16
19
  export { ApiClientProvider, useApiClient, useApiClientContext } from './chunk-NVOCKXUQ.js';
17
20
  export { ScrollToTop, TanStackRouterBridge } from './chunk-2IFYDILW.js';
18
21
  import './chunk-ELJIFLCB.js';
19
- export { OrganizationProvider, OrganizationSwitcher, createOrganizationsSlice, createUseOrgInitialization, createUseOrganizations } from './chunk-W4VYXIN7.js';
22
+ export { OrganizationSwitcher, createOrganizationsSlice, createUseOrgInitialization, createUseOrganizations } from './chunk-L4XXM55J.js';
23
+ export { OrganizationProvider } from './chunk-V7XHGJQZ.js';
20
24
  export { AppearanceProvider, useAppearance } from './chunk-QJ2KCHKX.js';
21
25
  import './chunk-DT3QYZVU.js';
22
26
  export { createUseAppInitialization } from './chunk-SLVC5OJ2.js';
@@ -1113,113 +1113,6 @@ type Database = {
1113
1113
  }
1114
1114
  ];
1115
1115
  };
1116
- calibration_projects: {
1117
- Row: {
1118
- created_at: string | null;
1119
- description: string | null;
1120
- id: string;
1121
- name: string;
1122
- organization_id: string;
1123
- resource_id: string;
1124
- resource_type: string;
1125
- updated_at: string | null;
1126
- };
1127
- Insert: {
1128
- created_at?: string | null;
1129
- description?: string | null;
1130
- id?: string;
1131
- name: string;
1132
- organization_id: string;
1133
- resource_id: string;
1134
- resource_type: string;
1135
- updated_at?: string | null;
1136
- };
1137
- Update: {
1138
- created_at?: string | null;
1139
- description?: string | null;
1140
- id?: string;
1141
- name?: string;
1142
- organization_id?: string;
1143
- resource_id?: string;
1144
- resource_type?: string;
1145
- updated_at?: string | null;
1146
- };
1147
- Relationships: [
1148
- {
1149
- foreignKeyName: "calibration_projects_organization_id_fkey";
1150
- columns: ["organization_id"];
1151
- isOneToOne: false;
1152
- referencedRelation: "organizations";
1153
- referencedColumns: ["id"];
1154
- }
1155
- ];
1156
- };
1157
- calibration_runs: {
1158
- Row: {
1159
- completed_at: string | null;
1160
- config_variants: Json;
1161
- created_at: string | null;
1162
- description: string | null;
1163
- execution_mode: string;
1164
- grader_model: string | null;
1165
- grading_rubric: Json | null;
1166
- id: string;
1167
- name: string;
1168
- organization_id: string;
1169
- project_id: string;
1170
- results: Json;
1171
- status: string;
1172
- test_inputs: Json;
1173
- };
1174
- Insert: {
1175
- completed_at?: string | null;
1176
- config_variants: Json;
1177
- created_at?: string | null;
1178
- description?: string | null;
1179
- execution_mode?: string;
1180
- grader_model?: string | null;
1181
- grading_rubric?: Json | null;
1182
- id?: string;
1183
- name: string;
1184
- organization_id: string;
1185
- project_id: string;
1186
- results?: Json;
1187
- status?: string;
1188
- test_inputs: Json;
1189
- };
1190
- Update: {
1191
- completed_at?: string | null;
1192
- config_variants?: Json;
1193
- created_at?: string | null;
1194
- description?: string | null;
1195
- execution_mode?: string;
1196
- grader_model?: string | null;
1197
- grading_rubric?: Json | null;
1198
- id?: string;
1199
- name?: string;
1200
- organization_id?: string;
1201
- project_id?: string;
1202
- results?: Json;
1203
- status?: string;
1204
- test_inputs?: Json;
1205
- };
1206
- Relationships: [
1207
- {
1208
- foreignKeyName: "calibration_runs_organization_id_fkey";
1209
- columns: ["organization_id"];
1210
- isOneToOne: false;
1211
- referencedRelation: "organizations";
1212
- referencedColumns: ["id"];
1213
- },
1214
- {
1215
- foreignKeyName: "calibration_runs_project_id_fkey";
1216
- columns: ["project_id"];
1217
- isOneToOne: false;
1218
- referencedRelation: "calibration_projects";
1219
- referencedColumns: ["id"];
1220
- }
1221
- ];
1222
- };
1223
1116
  command_queue: {
1224
1117
  Row: {
1225
1118
  action_payload: Json | null;
@@ -2618,18 +2511,11 @@ type SupabaseUserProfile = Tables<'users'>;
2618
2511
  */
2619
2512
  /**
2620
2513
  * Per-user-per-org config (stored in org_memberships.config)
2621
- * Controls which features a specific member can access within their org
2622
- * Valid feature keys: operations, monitoring, acquisition, delivery, calibration, seo
2514
+ * Controls which features a specific member can access within their org.
2515
+ * Keys are feature IDs from the organization model (e.g. crm, lead-gen, projects, seo).
2623
2516
  */
2624
2517
  interface MembershipFeatureConfig {
2625
- features?: {
2626
- operations?: boolean;
2627
- monitoring?: boolean;
2628
- acquisition?: boolean;
2629
- delivery?: boolean;
2630
- calibration?: boolean;
2631
- seo?: boolean;
2632
- };
2518
+ features?: Record<string, boolean>;
2633
2519
  }
2634
2520
 
2635
2521
  /**
@@ -96,6 +96,11 @@ interface CyberBackgroundProps {
96
96
  * Defaults to a per-variant value tuned for each primary's lightness.
97
97
  */
98
98
  perspectiveGridRadialGlowIntensity?: number;
99
+ /**
100
+ * Percentage (0-100) scaling the visible intensity of the perspective
101
+ * grid lines. 100 = full lineColor, 0 = invisible. Defaults to 100.
102
+ */
103
+ perspectiveGridLineIntensity?: number;
99
104
  }
100
105
  /**
101
106
  * Composite background for cyber-themed presets.
@@ -114,7 +119,7 @@ interface CyberBackgroundProps {
114
119
  * - `void` — Matrix-style digital rain
115
120
  * - `volt` — Circuit-board data flow with animated pulses
116
121
  */
117
- declare function CyberBackground({ variant, perspectiveGridRadialGlowIntensity }: CyberBackgroundProps): React$1.JSX.Element;
122
+ declare function CyberBackground({ variant, perspectiveGridRadialGlowIntensity, perspectiveGridLineIntensity }: CyberBackgroundProps): React$1.JSX.Element;
118
123
 
119
124
  type WaveVariant = 'nirvana' | 'wave' | 'honey' | 'canopy' | 'quarry';
120
125
  interface WaveBackgroundProps {
@@ -203,12 +208,17 @@ interface PerspectiveGridProps {
203
208
  * non-cyber presets keep the original subtle glow.
204
209
  */
205
210
  prominentGlow?: boolean;
211
+ /**
212
+ * Percentage (0-100) scaling the visible intensity of the grid lines.
213
+ * 100 = full lineColor, 0 = invisible. Defaults to 100.
214
+ */
215
+ lineIntensity?: number;
206
216
  className?: string;
207
217
  }
208
218
  /**
209
219
  * 3D perspective grid background using CSS transforms
210
220
  */
211
- declare function PerspectiveGrid({ glowColor: glowColorProp, lineColor: lineColorProp, prominentGlow, className }: PerspectiveGridProps): React$1.JSX.Element;
221
+ declare function PerspectiveGrid({ glowColor: glowColorProp, lineColor: lineColorProp, prominentGlow, lineIntensity, className }: PerspectiveGridProps): React$1.JSX.Element;
212
222
 
213
223
  interface RadiantGlowProps {
214
224
  /** Override the glow color. Defaults to var(--color-primary). */
@@ -1,9 +1,10 @@
1
- export { AppShellContainer, AppShellContentContainer, AppShellRightSideContainer, AppShellRightSideOuterContainer, AppTopbarAdjusterWrapper, CyberParticles, LinksGroup, Sidebar, SidebarContext, SidebarProvider, SubshellNavList, Topbar, TopbarContainer, Vignette, subsidebarWidth, useSidebar, useSidebarCollapse } from '../chunk-NYMKWGKN.js';
2
- export { CollapsibleSidebarGroup, SubshellLoader } from '../chunk-IDACMRGQ.js';
1
+ export { AppShellContainer, AppShellContentContainer, AppShellRightSideContainer, AppShellRightSideOuterContainer, AppTopbarAdjusterWrapper, CollapsibleSidebarGroup, CyberParticles, LinksGroup, Sidebar, SidebarContext, SidebarProvider, SubshellNavList, Topbar, TopbarContainer, Vignette, subsidebarWidth, useSidebar, useSidebarCollapse } from '../chunk-4BF74JVD.js';
2
+ export { SubshellLoader } from '../chunk-ADSSLKKP.js';
3
3
  export { PageContainer } from '../chunk-BZZCNLT6.js';
4
- export { SubshellNavItem, SubshellSidebarSection } from '../chunk-27COZ5AH.js';
4
+ export { SubshellNavItem } from '../chunk-CEWTOKE7.js';
5
+ export { SubshellSidebarSection } from '../chunk-IIMU5YAJ.js';
5
6
  export { AppShellCenteredContainer, AppShellError, AppShellLoader } from '../chunk-YEX4MQSY.js';
6
- export { AmbientBloomGrid, AppBackground, CyberBackground, FilmGrain, FloatingMotes, FloatingOrbs, PerspectiveGrid, RadiantGlow, WaveBackground } from '../chunk-CYXZHBP4.js';
7
+ export { AmbientBloomGrid, AppBackground, CyberBackground, FilmGrain, FloatingMotes, FloatingOrbs, PerspectiveGrid, RadiantGlow, WaveBackground } from '../chunk-F4TPY6YL.js';
7
8
  export { SubshellContainer, SubshellContentContainer, SubshellRightSideContainer, SubshellSidebar } from '../chunk-RX4UWZZR.js';
8
9
  import '../chunk-NYBEU5TE.js';
9
10
  import '../chunk-2IFYDILW.js';
@@ -13,18 +13,11 @@ import { UseBoundStore, StoreApi } from 'zustand';
13
13
  */
14
14
  /**
15
15
  * Per-user-per-org config (stored in org_memberships.config)
16
- * Controls which features a specific member can access within their org
17
- * Valid feature keys: operations, monitoring, acquisition, delivery, calibration, seo
16
+ * Controls which features a specific member can access within their org.
17
+ * Keys are feature IDs from the organization model (e.g. crm, lead-gen, projects, seo).
18
18
  */
19
19
  interface MembershipFeatureConfig {
20
- features?: {
21
- operations?: boolean;
22
- monitoring?: boolean;
23
- acquisition?: boolean;
24
- delivery?: boolean;
25
- calibration?: boolean;
26
- seo?: boolean;
27
- };
20
+ features?: Record<string, boolean>;
28
21
  }
29
22
 
30
23
  /**
@@ -1,4 +1,5 @@
1
- export { OrganizationProvider, OrganizationSwitcher, createOrganizationsSlice, createUseOrgInitialization, createUseOrganizations } from '../chunk-W4VYXIN7.js';
1
+ export { OrganizationSwitcher, createOrganizationsSlice, createUseOrgInitialization, createUseOrganizations } from '../chunk-L4XXM55J.js';
2
+ export { OrganizationProvider } from '../chunk-V7XHGJQZ.js';
2
3
  import '../chunk-RNP5R5I3.js';
3
4
  export { OrganizationContext, useOrganization } from '../chunk-DD3CCMCZ.js';
4
5
  import '../chunk-QEPXAWE2.js';
@@ -1113,113 +1113,6 @@ type Database = {
1113
1113
  }
1114
1114
  ];
1115
1115
  };
1116
- calibration_projects: {
1117
- Row: {
1118
- created_at: string | null;
1119
- description: string | null;
1120
- id: string;
1121
- name: string;
1122
- organization_id: string;
1123
- resource_id: string;
1124
- resource_type: string;
1125
- updated_at: string | null;
1126
- };
1127
- Insert: {
1128
- created_at?: string | null;
1129
- description?: string | null;
1130
- id?: string;
1131
- name: string;
1132
- organization_id: string;
1133
- resource_id: string;
1134
- resource_type: string;
1135
- updated_at?: string | null;
1136
- };
1137
- Update: {
1138
- created_at?: string | null;
1139
- description?: string | null;
1140
- id?: string;
1141
- name?: string;
1142
- organization_id?: string;
1143
- resource_id?: string;
1144
- resource_type?: string;
1145
- updated_at?: string | null;
1146
- };
1147
- Relationships: [
1148
- {
1149
- foreignKeyName: "calibration_projects_organization_id_fkey";
1150
- columns: ["organization_id"];
1151
- isOneToOne: false;
1152
- referencedRelation: "organizations";
1153
- referencedColumns: ["id"];
1154
- }
1155
- ];
1156
- };
1157
- calibration_runs: {
1158
- Row: {
1159
- completed_at: string | null;
1160
- config_variants: Json;
1161
- created_at: string | null;
1162
- description: string | null;
1163
- execution_mode: string;
1164
- grader_model: string | null;
1165
- grading_rubric: Json | null;
1166
- id: string;
1167
- name: string;
1168
- organization_id: string;
1169
- project_id: string;
1170
- results: Json;
1171
- status: string;
1172
- test_inputs: Json;
1173
- };
1174
- Insert: {
1175
- completed_at?: string | null;
1176
- config_variants: Json;
1177
- created_at?: string | null;
1178
- description?: string | null;
1179
- execution_mode?: string;
1180
- grader_model?: string | null;
1181
- grading_rubric?: Json | null;
1182
- id?: string;
1183
- name: string;
1184
- organization_id: string;
1185
- project_id: string;
1186
- results?: Json;
1187
- status?: string;
1188
- test_inputs: Json;
1189
- };
1190
- Update: {
1191
- completed_at?: string | null;
1192
- config_variants?: Json;
1193
- created_at?: string | null;
1194
- description?: string | null;
1195
- execution_mode?: string;
1196
- grader_model?: string | null;
1197
- grading_rubric?: Json | null;
1198
- id?: string;
1199
- name?: string;
1200
- organization_id?: string;
1201
- project_id?: string;
1202
- results?: Json;
1203
- status?: string;
1204
- test_inputs?: Json;
1205
- };
1206
- Relationships: [
1207
- {
1208
- foreignKeyName: "calibration_runs_organization_id_fkey";
1209
- columns: ["organization_id"];
1210
- isOneToOne: false;
1211
- referencedRelation: "organizations";
1212
- referencedColumns: ["id"];
1213
- },
1214
- {
1215
- foreignKeyName: "calibration_runs_project_id_fkey";
1216
- columns: ["project_id"];
1217
- isOneToOne: false;
1218
- referencedRelation: "calibration_projects";
1219
- referencedColumns: ["id"];
1220
- }
1221
- ];
1222
- };
1223
1116
  command_queue: {
1224
1117
  Row: {
1225
1118
  action_payload: Json | null;
@@ -45,7 +45,7 @@ interface ThemePreset {
45
45
  */
46
46
  loader?: ReactNode;
47
47
  }
48
- type PresetName = 'default' | 'tactical' | 'regal' | 'cyber-volt' | 'aurora' | 'rose-gold' | 'midnight' | 'ember' | 'canopy' | 'slate' | 'cyber-strike' | 'cyber-chrome' | 'cyber-void' | 'nirvana' | 'wave' | 'synapse' | 'cortex' | 'helios' | 'graphite' | 'quarry';
48
+ type PresetName = 'default' | 'tactical' | 'regal' | 'cyber-volt' | 'aurora' | 'rose-gold' | 'midnight' | 'titanium' | 'canopy' | 'slate' | 'cyber-strike' | 'cyber-chrome' | 'cyber-void' | 'nirvana' | 'wave' | 'synapse' | 'cortex' | 'helios' | 'graphite' | 'quarry';
49
49
 
50
50
  interface ApiErrorDetails {
51
51
  method: string;
@@ -278,33 +278,16 @@ declare function ElevasisCoreProvider({ auth, queryClient, apiUrl, onError, noti
278
278
  */
279
279
  type TimeRange = '1h' | '24h' | '7d' | '30d';
280
280
 
281
- declare const SemanticDomainSchema = DisplayMetadataSchema.extend({
282
- id: ModelIdSchema,
283
- entityIds: ReferenceIdsSchema,
284
- surfaceIds: ReferenceIdsSchema,
285
- resourceIds: ReferenceIdsSchema,
286
- capabilityIds: ReferenceIdsSchema
287
- })
288
-
289
- declare const FeatureKeySchema = z.enum([
290
- 'acquisition',
291
- 'delivery',
292
- 'operations',
293
- 'monitoring',
294
- 'settings',
295
- 'seo',
296
- 'calibration'
297
- ])
298
-
299
281
  declare const SurfaceDefinitionSchema = z.object({
300
282
  id: ModelIdSchema,
301
283
  label: LabelSchema,
302
284
  path: PathSchema,
303
285
  surfaceType: SurfaceTypeSchema,
304
286
  description: DescriptionSchema.optional(),
287
+ enabled: z.boolean().default(true),
305
288
  icon: IconNameSchema.optional(),
306
- featureKey: FeatureKeySchema.optional(),
307
- domainIds: ReferenceIdsSchema,
289
+ featureId: ModelIdSchema.optional(),
290
+ featureIds: ReferenceIdsSchema,
308
291
  entityIds: ReferenceIdsSchema,
309
292
  resourceIds: ReferenceIdsSchema,
310
293
  capabilityIds: ReferenceIdsSchema,
@@ -312,7 +295,7 @@ declare const SurfaceDefinitionSchema = z.object({
312
295
  })
313
296
 
314
297
  declare const OrganizationModelSchema = OrganizationModelSchemaBase.superRefine((model, ctx) => {
315
- const domainsById = collectIds(model.domains, ctx, ['domains'], 'Domain')
298
+ const featuresById = collectIds(model.features, ctx, ['features'], 'Feature')
316
299
  const surfacesById = collectIds(model.navigation.surfaces, ctx, ['navigation', 'surfaces'], 'Surface')
317
300
  collectIds(model.navigation.groups, ctx, ['navigation', 'groups'], 'Navigation group')
318
301
  collectIds(model.resourceMappings, ctx, ['resourceMappings'], 'Resource mapping')
@@ -351,48 +334,51 @@ declare const OrganizationModelSchema = OrganizationModelSchemaBase.superRefine(
351
334
  })
352
335
  })
353
336
 
354
- model.domains.forEach((domain, domainIndex) => {
355
- domain.surfaceIds.forEach((surfaceId, surfaceIndex) => {
337
+ // Feature -> Surface bidirectional validation
338
+ model.features.forEach((feature, featureIndex) => {
339
+ feature.surfaceIds.forEach((surfaceId, surfaceIndex) => {
356
340
  const surface = surfacesById.get(surfaceId)
357
341
  if (!surface) {
358
342
  addIssue(
359
343
  ctx,
360
- ['domains', domainIndex, 'surfaceIds', surfaceIndex],
361
- `Domain "${domain.id}" references unknown surface "${surfaceId}"`
344
+ ['features', featureIndex, 'surfaceIds', surfaceIndex],
345
+ `Feature "${feature.id}" references unknown surface "${surfaceId}"`
362
346
  )
363
347
  return
364
348
  }
365
349
 
366
- if (!surface.domainIds.includes(domain.id)) {
350
+ if (!surface.featureIds.includes(feature.id)) {
367
351
  addIssue(
368
352
  ctx,
369
- ['domains', domainIndex, 'surfaceIds', surfaceIndex],
370
- `Domain "${domain.id}" references surface "${surfaceId}" but that surface does not include domain "${domain.id}"`
353
+ ['features', featureIndex, 'surfaceIds', surfaceIndex],
354
+ `Feature "${feature.id}" references surface "${surfaceId}" but that surface does not include feature "${feature.id}"`
371
355
  )
372
356
  }
373
357
  })
374
358
 
375
- domain.resourceIds.forEach((resourceId, resourceIndex) => {
359
+ // Feature -> Resource bidirectional validation
360
+ feature.resourceIds.forEach((resourceId, resourceIndex) => {
376
361
  const resourceMapping = resourceMappingsByResourceId.get(resourceId)
377
362
  if (!resourceMapping) {
378
363
  addIssue(
379
364
  ctx,
380
- ['domains', domainIndex, 'resourceIds', resourceIndex],
381
- `Domain "${domain.id}" references unknown resource "${resourceId}"`
365
+ ['features', featureIndex, 'resourceIds', resourceIndex],
366
+ `Feature "${feature.id}" references unknown resource "${resourceId}"`
382
367
  )
383
368
  return
384
369
  }
385
370
 
386
- if (!resourceMapping.domainIds.includes(domain.id)) {
371
+ if (!resourceMapping.featureIds.includes(feature.id)) {
387
372
  addIssue(
388
373
  ctx,
389
- ['domains', domainIndex, 'resourceIds', resourceIndex],
390
- `Domain "${domain.id}" references resource "${resourceId}" but that resource mapping does not include domain "${domain.id}"`
374
+ ['features', featureIndex, 'resourceIds', resourceIndex],
375
+ `Feature "${feature.id}" references resource "${resourceId}" but that resource mapping does not include feature "${feature.id}"`
391
376
  )
392
377
  }
393
378
  })
394
379
  })
395
380
 
381
+ // Surface -> Feature bidirectional validation and other surface refs
396
382
  model.navigation.surfaces.forEach((surface, surfaceIndex) => {
397
383
  if (surface.parentId && !surfacesById.has(surface.parentId)) {
398
384
  addIssue(
@@ -402,26 +388,27 @@ declare const OrganizationModelSchema = OrganizationModelSchemaBase.superRefine(
402
388
  )
403
389
  }
404
390
 
405
- surface.domainIds.forEach((domainId, domainIndex) => {
406
- const domain = domainsById.get(domainId)
407
- if (!domain) {
391
+ surface.featureIds.forEach((featureId, featureIndex) => {
392
+ const feature = featuresById.get(featureId)
393
+ if (!feature) {
408
394
  addIssue(
409
395
  ctx,
410
- ['navigation', 'surfaces', surfaceIndex, 'domainIds', domainIndex],
411
- `Surface "${surface.id}" references unknown domain "${domainId}"`
396
+ ['navigation', 'surfaces', surfaceIndex, 'featureIds', featureIndex],
397
+ `Surface "${surface.id}" references unknown feature "${featureId}"`
412
398
  )
413
399
  return
414
400
  }
415
401
 
416
- if (!domain.surfaceIds.includes(surface.id)) {
402
+ if (!feature.surfaceIds.includes(surface.id)) {
417
403
  addIssue(
418
404
  ctx,
419
- ['navigation', 'surfaces', surfaceIndex, 'domainIds', domainIndex],
420
- `Surface "${surface.id}" references domain "${domainId}" but that domain does not include surface "${surface.id}"`
405
+ ['navigation', 'surfaces', surfaceIndex, 'featureIds', featureIndex],
406
+ `Surface "${surface.id}" references feature "${featureId}" but that feature does not include surface "${surface.id}"`
421
407
  )
422
408
  }
423
409
  })
424
410
 
411
+ // Surface -> Resource bidirectional validation
425
412
  surface.resourceIds.forEach((resourceId, resourceIndex) => {
426
413
  const resourceMapping = resourceMappingsByResourceId.get(resourceId)
427
414
  if (!resourceMapping) {
@@ -443,23 +430,24 @@ declare const OrganizationModelSchema = OrganizationModelSchemaBase.superRefine(
443
430
  })
444
431
  })
445
432
 
433
+ // ResourceMapping -> Feature and Surface bidirectional validation
446
434
  model.resourceMappings.forEach((resourceMapping, resourceIndex) => {
447
- resourceMapping.domainIds.forEach((domainId, domainIndex) => {
448
- const domain = domainsById.get(domainId)
449
- if (!domain) {
435
+ resourceMapping.featureIds.forEach((featureId, featureIndex) => {
436
+ const feature = featuresById.get(featureId)
437
+ if (!feature) {
450
438
  addIssue(
451
439
  ctx,
452
- ['resourceMappings', resourceIndex, 'domainIds', domainIndex],
453
- `Resource mapping "${resourceMapping.id}" references unknown domain "${domainId}"`
440
+ ['resourceMappings', resourceIndex, 'featureIds', featureIndex],
441
+ `Resource mapping "${resourceMapping.id}" references unknown feature "${featureId}"`
454
442
  )
455
443
  return
456
444
  }
457
445
 
458
- if (!domain.resourceIds.includes(resourceMapping.resourceId)) {
446
+ if (!feature.resourceIds.includes(resourceMapping.resourceId)) {
459
447
  addIssue(
460
448
  ctx,
461
- ['resourceMappings', resourceIndex, 'domainIds', domainIndex],
462
- `Resource mapping "${resourceMapping.id}" references domain "${domainId}" but that domain does not include resource "${resourceMapping.resourceId}"`
449
+ ['resourceMappings', resourceIndex, 'featureIds', featureIndex],
450
+ `Resource mapping "${resourceMapping.id}" references feature "${featureId}" but that feature does not include resource "${resourceMapping.resourceId}"`
463
451
  )
464
452
  }
465
453
  })
@@ -487,9 +475,7 @@ declare const OrganizationModelSchema = OrganizationModelSchemaBase.superRefine(
487
475
  })
488
476
 
489
477
  type OrganizationModel = z.infer<typeof OrganizationModelSchema>
490
- type OrganizationModelFeatureKey = z.infer<typeof FeatureKeySchema>
491
478
  type OrganizationModelSurface = z.infer<typeof SurfaceDefinitionSchema>
492
- type OrganizationModelSemanticDomain = z.infer<typeof SemanticDomainSchema>
493
479
 
494
480
  interface EventSourceMessage {
495
481
  id: string;
@@ -538,15 +524,10 @@ interface FeatureNavEntry {
538
524
  }
539
525
  type FeatureSidebarComponent = ComponentType;
540
526
  interface FeatureModule {
541
- /** Unique stable identifier for this feature (e.g. `'crm'`, `'delivery'`). */
527
+ /** Unique stable identifier for this feature (e.g. `'crm'`, `'projects'`). */
542
528
  key: string;
543
- /** Feature key used for access-flag gating in the organization model. */
544
- accessFeatureKey: OrganizationModelFeatureKey;
545
- /**
546
- * Semantic domain identifiers contributed by this feature.
547
- * Merged with surface-derived domain IDs during resolution.
548
- */
549
- domainIds?: OrganizationModelSemanticDomain['id'][];
529
+ /** Feature ID used for access-flag gating — must match the `id` of a feature in the organization model. */
530
+ featureId: string;
550
531
  /**
551
532
  * Capability identifiers contributed by this feature.
552
533
  * Merged into `ResolvedFeatureSemantics.capabilityIds` at resolution time.
@@ -568,11 +549,10 @@ interface FeatureModule {
568
549
  organizationGraph?: OrganizationGraphFeatureBridge;
569
550
  }
570
551
  interface ResolvedFeatureAccess {
571
- featureKey: string;
552
+ featureId: string;
572
553
  enabled: boolean;
573
554
  }
574
555
  interface ResolvedFeatureSemantics {
575
- domainIds: OrganizationModelSemanticDomain['id'][];
576
556
  capabilityIds: string[];
577
557
  surfaceIds: string[];
578
558
  surfaces: OrganizationModelSurface[];
@@ -586,7 +566,7 @@ type ShellNavSource = 'app' | 'feature';
586
566
  interface ResolvedShellNavItem extends FeatureNavEntry {
587
567
  placement: ShellNavPlacement;
588
568
  source: ShellNavSource;
589
- accessFeatureKey?: string;
569
+ featureId?: string;
590
570
  }
591
571
  interface ResolvedShellModel {
592
572
  navItems: ResolvedShellNavItem[];
@@ -614,7 +594,7 @@ interface OrganizationGraphContextValue {
614
594
  surfaceId?: string;
615
595
  surfacePath?: string;
616
596
  surfaceType?: OrganizationModelSurface['surfaceType'];
617
- featureKey?: OrganizationModelFeatureKey;
597
+ featureId?: string;
618
598
  }
619
599
  interface ElevasisFeaturesProviderProps {
620
600
  features: FeatureModule[];