@elevasis/ui 2.9.1 → 2.10.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 (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-YCHZ4U5V.js → chunk-5VBR74ZS.js} +5 -13
  7. package/dist/chunk-ADSSLKKP.js +10 -0
  8. package/dist/{chunk-C2OFFC7J.js → chunk-AL23U6C3.js} +3 -2
  9. package/dist/{chunk-27COZ5AH.js → chunk-CEWTOKE7.js} +3 -50
  10. package/dist/{chunk-AQQYVAFK.js → chunk-CLXMNMIS.js} +8 -7
  11. package/dist/{chunk-4PHPENKX.js → chunk-E3IFHX6A.js} +27 -377
  12. package/dist/{chunk-4JPW5U5I.js → chunk-E4W7LB37.js} +53 -54
  13. package/dist/{chunk-CYXZHBP4.js → chunk-F4TPY6YL.js} +14 -3
  14. package/dist/chunk-G2TDX3W6.js +5 -0
  15. package/dist/chunk-IIMU5YAJ.js +53 -0
  16. package/dist/{chunk-W4VYXIN7.js → chunk-L4XXM55J.js} +3 -142
  17. package/dist/{chunk-KGEYEUR5.js → chunk-MOHVG62K.js} +7 -6
  18. package/dist/{chunk-F5QSLYUB.js → chunk-N47Z6LD4.js} +317 -1060
  19. package/dist/{chunk-47YILFON.js → chunk-OS5GFW2O.js} +156 -141
  20. package/dist/chunk-P5VHGY5P.js +13 -0
  21. package/dist/chunk-R7WLWGPO.js +126 -0
  22. package/dist/{chunk-Y3D3WFJG.js → chunk-SQQGLGHW.js} +2 -11
  23. package/dist/{chunk-KFICYU6S.js → chunk-STZJ7SY5.js} +1 -1
  24. package/dist/chunk-SZHARWKU.js +15 -0
  25. package/dist/{chunk-7PDDPNQS.js → chunk-TSX4I3NW.js} +3 -3
  26. package/dist/{chunk-CTWYIRKW.js → chunk-U23TW6NP.js} +24 -34
  27. package/dist/{chunk-OPT74SGF.js → chunk-USVBMGMP.js} +26 -172
  28. package/dist/chunk-V7XHGJQZ.js +145 -0
  29. package/dist/{chunk-UE5QQDCR.js → chunk-WHQXDETX.js} +5 -5
  30. package/dist/{chunk-ZZ35VSNF.js → chunk-YQLE5HR5.js} +4 -4
  31. package/dist/{chunk-VNUOQQNY.js → chunk-Z3OWD3A4.js} +2 -2
  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 -1323
  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 +96 -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 +44 -65
  64. package/dist/provider/index.js +10 -6
  65. package/dist/provider/published.d.ts +44 -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-Z3OWD3A4.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-P5VHGY5P.js';
9
+ export { ElevasisUIProvider } from './chunk-5VBR74ZS.js';
10
+ export { PresetsProvider, TOKEN_VAR_MAP, componentThemes, createCssVariablesResolver, generateShades, getPreset, mantineThemeOverride, PRESETS as presets, usePresetsContext } from './chunk-OS5GFW2O.js';
11
+ import './chunk-F4TPY6YL.js';
12
+ export { ElevasisFeaturesProvider, FeatureShell, createFeatureAccessHook, createUseFeatureAccess, useElevasisFeatures, useOptionalElevasisFeatures } from './chunk-USVBMGMP.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,24 +278,6 @@ 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,
@@ -303,8 +285,8 @@ declare const SurfaceDefinitionSchema = z.object({
303
285
  surfaceType: SurfaceTypeSchema,
304
286
  description: DescriptionSchema.optional(),
305
287
  icon: IconNameSchema.optional(),
306
- featureKey: FeatureKeySchema.optional(),
307
- domainIds: ReferenceIdsSchema,
288
+ featureId: ModelIdSchema.optional(),
289
+ featureIds: ReferenceIdsSchema,
308
290
  entityIds: ReferenceIdsSchema,
309
291
  resourceIds: ReferenceIdsSchema,
310
292
  capabilityIds: ReferenceIdsSchema,
@@ -312,7 +294,7 @@ declare const SurfaceDefinitionSchema = z.object({
312
294
  })
313
295
 
314
296
  declare const OrganizationModelSchema = OrganizationModelSchemaBase.superRefine((model, ctx) => {
315
- const domainsById = collectIds(model.domains, ctx, ['domains'], 'Domain')
297
+ const featuresById = collectIds(model.features, ctx, ['features'], 'Feature')
316
298
  const surfacesById = collectIds(model.navigation.surfaces, ctx, ['navigation', 'surfaces'], 'Surface')
317
299
  collectIds(model.navigation.groups, ctx, ['navigation', 'groups'], 'Navigation group')
318
300
  collectIds(model.resourceMappings, ctx, ['resourceMappings'], 'Resource mapping')
@@ -351,48 +333,51 @@ declare const OrganizationModelSchema = OrganizationModelSchemaBase.superRefine(
351
333
  })
352
334
  })
353
335
 
354
- model.domains.forEach((domain, domainIndex) => {
355
- domain.surfaceIds.forEach((surfaceId, surfaceIndex) => {
336
+ // Feature -> Surface bidirectional validation
337
+ model.features.forEach((feature, featureIndex) => {
338
+ feature.surfaceIds.forEach((surfaceId, surfaceIndex) => {
356
339
  const surface = surfacesById.get(surfaceId)
357
340
  if (!surface) {
358
341
  addIssue(
359
342
  ctx,
360
- ['domains', domainIndex, 'surfaceIds', surfaceIndex],
361
- `Domain "${domain.id}" references unknown surface "${surfaceId}"`
343
+ ['features', featureIndex, 'surfaceIds', surfaceIndex],
344
+ `Feature "${feature.id}" references unknown surface "${surfaceId}"`
362
345
  )
363
346
  return
364
347
  }
365
348
 
366
- if (!surface.domainIds.includes(domain.id)) {
349
+ if (!surface.featureIds.includes(feature.id)) {
367
350
  addIssue(
368
351
  ctx,
369
- ['domains', domainIndex, 'surfaceIds', surfaceIndex],
370
- `Domain "${domain.id}" references surface "${surfaceId}" but that surface does not include domain "${domain.id}"`
352
+ ['features', featureIndex, 'surfaceIds', surfaceIndex],
353
+ `Feature "${feature.id}" references surface "${surfaceId}" but that surface does not include feature "${feature.id}"`
371
354
  )
372
355
  }
373
356
  })
374
357
 
375
- domain.resourceIds.forEach((resourceId, resourceIndex) => {
358
+ // Feature -> Resource bidirectional validation
359
+ feature.resourceIds.forEach((resourceId, resourceIndex) => {
376
360
  const resourceMapping = resourceMappingsByResourceId.get(resourceId)
377
361
  if (!resourceMapping) {
378
362
  addIssue(
379
363
  ctx,
380
- ['domains', domainIndex, 'resourceIds', resourceIndex],
381
- `Domain "${domain.id}" references unknown resource "${resourceId}"`
364
+ ['features', featureIndex, 'resourceIds', resourceIndex],
365
+ `Feature "${feature.id}" references unknown resource "${resourceId}"`
382
366
  )
383
367
  return
384
368
  }
385
369
 
386
- if (!resourceMapping.domainIds.includes(domain.id)) {
370
+ if (!resourceMapping.featureIds.includes(feature.id)) {
387
371
  addIssue(
388
372
  ctx,
389
- ['domains', domainIndex, 'resourceIds', resourceIndex],
390
- `Domain "${domain.id}" references resource "${resourceId}" but that resource mapping does not include domain "${domain.id}"`
373
+ ['features', featureIndex, 'resourceIds', resourceIndex],
374
+ `Feature "${feature.id}" references resource "${resourceId}" but that resource mapping does not include feature "${feature.id}"`
391
375
  )
392
376
  }
393
377
  })
394
378
  })
395
379
 
380
+ // Surface -> Feature bidirectional validation and other surface refs
396
381
  model.navigation.surfaces.forEach((surface, surfaceIndex) => {
397
382
  if (surface.parentId && !surfacesById.has(surface.parentId)) {
398
383
  addIssue(
@@ -402,26 +387,27 @@ declare const OrganizationModelSchema = OrganizationModelSchemaBase.superRefine(
402
387
  )
403
388
  }
404
389
 
405
- surface.domainIds.forEach((domainId, domainIndex) => {
406
- const domain = domainsById.get(domainId)
407
- if (!domain) {
390
+ surface.featureIds.forEach((featureId, featureIndex) => {
391
+ const feature = featuresById.get(featureId)
392
+ if (!feature) {
408
393
  addIssue(
409
394
  ctx,
410
- ['navigation', 'surfaces', surfaceIndex, 'domainIds', domainIndex],
411
- `Surface "${surface.id}" references unknown domain "${domainId}"`
395
+ ['navigation', 'surfaces', surfaceIndex, 'featureIds', featureIndex],
396
+ `Surface "${surface.id}" references unknown feature "${featureId}"`
412
397
  )
413
398
  return
414
399
  }
415
400
 
416
- if (!domain.surfaceIds.includes(surface.id)) {
401
+ if (!feature.surfaceIds.includes(surface.id)) {
417
402
  addIssue(
418
403
  ctx,
419
- ['navigation', 'surfaces', surfaceIndex, 'domainIds', domainIndex],
420
- `Surface "${surface.id}" references domain "${domainId}" but that domain does not include surface "${surface.id}"`
404
+ ['navigation', 'surfaces', surfaceIndex, 'featureIds', featureIndex],
405
+ `Surface "${surface.id}" references feature "${featureId}" but that feature does not include surface "${surface.id}"`
421
406
  )
422
407
  }
423
408
  })
424
409
 
410
+ // Surface -> Resource bidirectional validation
425
411
  surface.resourceIds.forEach((resourceId, resourceIndex) => {
426
412
  const resourceMapping = resourceMappingsByResourceId.get(resourceId)
427
413
  if (!resourceMapping) {
@@ -443,23 +429,24 @@ declare const OrganizationModelSchema = OrganizationModelSchemaBase.superRefine(
443
429
  })
444
430
  })
445
431
 
432
+ // ResourceMapping -> Feature and Surface bidirectional validation
446
433
  model.resourceMappings.forEach((resourceMapping, resourceIndex) => {
447
- resourceMapping.domainIds.forEach((domainId, domainIndex) => {
448
- const domain = domainsById.get(domainId)
449
- if (!domain) {
434
+ resourceMapping.featureIds.forEach((featureId, featureIndex) => {
435
+ const feature = featuresById.get(featureId)
436
+ if (!feature) {
450
437
  addIssue(
451
438
  ctx,
452
- ['resourceMappings', resourceIndex, 'domainIds', domainIndex],
453
- `Resource mapping "${resourceMapping.id}" references unknown domain "${domainId}"`
439
+ ['resourceMappings', resourceIndex, 'featureIds', featureIndex],
440
+ `Resource mapping "${resourceMapping.id}" references unknown feature "${featureId}"`
454
441
  )
455
442
  return
456
443
  }
457
444
 
458
- if (!domain.resourceIds.includes(resourceMapping.resourceId)) {
445
+ if (!feature.resourceIds.includes(resourceMapping.resourceId)) {
459
446
  addIssue(
460
447
  ctx,
461
- ['resourceMappings', resourceIndex, 'domainIds', domainIndex],
462
- `Resource mapping "${resourceMapping.id}" references domain "${domainId}" but that domain does not include resource "${resourceMapping.resourceId}"`
448
+ ['resourceMappings', resourceIndex, 'featureIds', featureIndex],
449
+ `Resource mapping "${resourceMapping.id}" references feature "${featureId}" but that feature does not include resource "${resourceMapping.resourceId}"`
463
450
  )
464
451
  }
465
452
  })
@@ -487,9 +474,7 @@ declare const OrganizationModelSchema = OrganizationModelSchemaBase.superRefine(
487
474
  })
488
475
 
489
476
  type OrganizationModel = z.infer<typeof OrganizationModelSchema>
490
- type OrganizationModelFeatureKey = z.infer<typeof FeatureKeySchema>
491
477
  type OrganizationModelSurface = z.infer<typeof SurfaceDefinitionSchema>
492
- type OrganizationModelSemanticDomain = z.infer<typeof SemanticDomainSchema>
493
478
 
494
479
  interface EventSourceMessage {
495
480
  id: string;
@@ -538,15 +523,10 @@ interface FeatureNavEntry {
538
523
  }
539
524
  type FeatureSidebarComponent = ComponentType;
540
525
  interface FeatureModule {
541
- /** Unique stable identifier for this feature (e.g. `'crm'`, `'delivery'`). */
526
+ /** Unique stable identifier for this feature (e.g. `'crm'`, `'projects'`). */
542
527
  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'][];
528
+ /** Feature ID used for access-flag gating — must match the `id` of a feature in the organization model. */
529
+ featureId: string;
550
530
  /**
551
531
  * Capability identifiers contributed by this feature.
552
532
  * Merged into `ResolvedFeatureSemantics.capabilityIds` at resolution time.
@@ -568,11 +548,10 @@ interface FeatureModule {
568
548
  organizationGraph?: OrganizationGraphFeatureBridge;
569
549
  }
570
550
  interface ResolvedFeatureAccess {
571
- featureKey: string;
551
+ featureId: string;
572
552
  enabled: boolean;
573
553
  }
574
554
  interface ResolvedFeatureSemantics {
575
- domainIds: OrganizationModelSemanticDomain['id'][];
576
555
  capabilityIds: string[];
577
556
  surfaceIds: string[];
578
557
  surfaces: OrganizationModelSurface[];
@@ -586,7 +565,7 @@ type ShellNavSource = 'app' | 'feature';
586
565
  interface ResolvedShellNavItem extends FeatureNavEntry {
587
566
  placement: ShellNavPlacement;
588
567
  source: ShellNavSource;
589
- accessFeatureKey?: string;
568
+ featureId?: string;
590
569
  }
591
570
  interface ResolvedShellModel {
592
571
  navItems: ResolvedShellNavItem[];
@@ -614,7 +593,7 @@ interface OrganizationGraphContextValue {
614
593
  surfaceId?: string;
615
594
  surfacePath?: string;
616
595
  surfaceType?: OrganizationModelSurface['surfaceType'];
617
- featureKey?: OrganizationModelFeatureKey;
596
+ featureId?: string;
618
597
  }
619
598
  interface ElevasisFeaturesProviderProps {
620
599
  features: FeatureModule[];