@elevasis/ui 2.20.0 → 2.22.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 (100) hide show
  1. package/dist/api/index.js +2 -2
  2. package/dist/app/index.js +5 -5
  3. package/dist/charts/index.js +3 -3
  4. package/dist/{chunk-TO7QXDBX.js → chunk-3HEUGBOT.js} +3 -3
  5. package/dist/chunk-AXXTN44Z.js +26 -0
  6. package/dist/{chunk-FMFX4K6E.js → chunk-B4FHWKEF.js} +3390 -2929
  7. package/dist/{chunk-AL23U6C3.js → chunk-BIWHHWCJ.js} +1 -2
  8. package/dist/{chunk-MZFJWCPH.js → chunk-BSZRKBAW.js} +277 -92
  9. package/dist/{chunk-GP3AFJYG.js → chunk-COG4ABRI.js} +8 -13
  10. package/dist/chunk-DDZOHLHB.js +48 -0
  11. package/dist/{chunk-ZE2KQSHL.js → chunk-GJ7EIABJ.js} +4 -4
  12. package/dist/{chunk-YP6T426C.js → chunk-IBUYJXA3.js} +1326 -1110
  13. package/dist/{chunk-2CFOFSSG.js → chunk-IOTLB6ND.js} +8 -13
  14. package/dist/{chunk-GBMNCNHX.js → chunk-KVJ3LFH2.js} +3 -1
  15. package/dist/chunk-LJWV4TWV.js +335 -0
  16. package/dist/{chunk-PJVG3ISO.js → chunk-LKVBEE63.js} +7 -9
  17. package/dist/{chunk-JR5WNTLA.js → chunk-LVJGPE6H.js} +11 -24
  18. package/dist/{chunk-OUYH2SBS.js → chunk-LVUCBY7X.js} +2 -2
  19. package/dist/{chunk-TIIPYB2Z.js → chunk-QZJM3RYI.js} +1 -1
  20. package/dist/{chunk-OD7GWIZS.js → chunk-SGXXJE52.js} +1 -121
  21. package/dist/{chunk-7YQKVWSD.js → chunk-SQ5JGELM.js} +25 -5
  22. package/dist/{chunk-R7OJCNL3.js → chunk-T6INEVX6.js} +1 -1
  23. package/dist/{chunk-RX4UWZZR.js → chunk-TKAYX2SP.js} +8 -3
  24. package/dist/{chunk-CTTY6FUT.js → chunk-TSSKOQBX.js} +2 -2
  25. package/dist/{chunk-GTYUP7MB.js → chunk-WWJ6S2HQ.js} +10 -22
  26. package/dist/{chunk-Q5HC6ENG.js → chunk-XOTJNW4Q.js} +1 -1
  27. package/dist/{chunk-BHR7IV72.js → chunk-XUYBOO32.js} +1 -1
  28. package/dist/{chunk-M7W7CGPL.js → chunk-Z6FAH4XV.js} +1 -1
  29. package/dist/{chunk-Q4QJOSVS.js → chunk-ZBCTB5CA.js} +1 -1
  30. package/dist/components/index.css +85 -85
  31. package/dist/components/index.d.ts +970 -746
  32. package/dist/components/index.js +246 -39
  33. package/dist/components/navigation/index.css +589 -0
  34. package/dist/components/navigation/index.d.ts +1 -13
  35. package/dist/components/navigation/index.js +11 -1
  36. package/dist/execution/index.d.ts +27 -0
  37. package/dist/features/auth/index.css +2 -2
  38. package/dist/features/auth/index.d.ts +184 -3
  39. package/dist/features/crm/index.css +2 -2
  40. package/dist/features/crm/index.d.ts +201 -38
  41. package/dist/features/crm/index.js +15 -14
  42. package/dist/features/dashboard/index.css +2 -2
  43. package/dist/features/dashboard/index.d.ts +25 -27
  44. package/dist/features/dashboard/index.js +15 -14
  45. package/dist/features/delivery/index.css +85 -85
  46. package/dist/features/delivery/index.d.ts +201 -38
  47. package/dist/features/delivery/index.js +15 -14
  48. package/dist/features/lead-gen/index.css +2 -2
  49. package/dist/features/lead-gen/index.d.ts +19 -37
  50. package/dist/features/lead-gen/index.js +15 -14
  51. package/dist/features/monitoring/index.css +85 -85
  52. package/dist/features/monitoring/index.d.ts +18 -36
  53. package/dist/features/monitoring/index.js +17 -16
  54. package/dist/features/monitoring/requests/index.css +2 -2
  55. package/dist/features/monitoring/requests/index.d.ts +18 -36
  56. package/dist/features/monitoring/requests/index.js +15 -14
  57. package/dist/features/operations/index.css +2 -2
  58. package/dist/features/operations/index.d.ts +49 -67
  59. package/dist/features/operations/index.js +18 -17
  60. package/dist/features/seo/index.d.ts +17 -35
  61. package/dist/features/seo/index.js +1 -1
  62. package/dist/features/settings/index.css +2 -2
  63. package/dist/features/settings/index.d.ts +222 -44
  64. package/dist/features/settings/index.js +16 -15
  65. package/dist/graph/index.css +2 -2
  66. package/dist/hooks/delivery/index.css +2 -2
  67. package/dist/hooks/delivery/index.d.ts +184 -3
  68. package/dist/hooks/delivery/index.js +2 -2
  69. package/dist/hooks/index.css +85 -85
  70. package/dist/hooks/index.d.ts +1862 -1582
  71. package/dist/hooks/index.js +13 -12
  72. package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +92 -121
  73. package/dist/hooks/published.css +85 -85
  74. package/dist/hooks/published.d.ts +1862 -1582
  75. package/dist/hooks/published.js +13 -12
  76. package/dist/index.css +12 -12
  77. package/dist/index.d.ts +689 -470
  78. package/dist/index.js +14 -13
  79. package/dist/initialization/index.d.ts +184 -3
  80. package/dist/layout/index.js +2 -2
  81. package/dist/organization/index.css +589 -0
  82. package/dist/organization/index.js +1 -1
  83. package/dist/profile/index.d.ts +184 -3
  84. package/dist/provider/index.css +384 -0
  85. package/dist/provider/index.d.ts +68 -125
  86. package/dist/provider/index.js +11 -10
  87. package/dist/provider/published.css +463 -0
  88. package/dist/provider/published.d.ts +68 -125
  89. package/dist/provider/published.js +8 -7
  90. package/dist/supabase/index.d.ts +359 -6
  91. package/dist/test-utils/index.d.ts +46 -2
  92. package/dist/test-utils/index.js +104 -3
  93. package/dist/theme/index.js +2 -2
  94. package/dist/types/index.d.ts +303 -141
  95. package/dist/utils/index.d.ts +26 -59
  96. package/dist/utils/index.js +1 -1
  97. package/package.json +4 -4
  98. package/dist/chunk-LR5CRY5A.js +0 -514
  99. package/dist/chunk-MG3NF7QL.js +0 -63
  100. /package/dist/{chunk-6GUW5GGF.js → chunk-6Z3G4U2R.js} +0 -0
@@ -1,39 +1,40 @@
1
- export { AllTasksPage, Checklist, CreateDeliveryEntityModal, 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-JR5WNTLA.js';
1
+ export { AllTasksPage, Checklist, CreateDeliveryEntityModal, 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-LVJGPE6H.js';
2
2
  import '../../chunk-442LZPIR.js';
3
3
  import '../../chunk-BZZCNLT6.js';
4
4
  import '../../chunk-TUMSNGTX.js';
5
5
  import '../../chunk-CEWTOKE7.js';
6
6
  import '../../chunk-IIMU5YAJ.js';
7
7
  import '../../chunk-PDHTXPSF.js';
8
- import '../../chunk-GBMNCNHX.js';
8
+ import '../../chunk-KVJ3LFH2.js';
9
9
  import '../../chunk-7M2VOCYN.js';
10
- import '../../chunk-FMFX4K6E.js';
10
+ import '../../chunk-B4FHWKEF.js';
11
11
  import '../../chunk-BRXELOHC.js';
12
12
  import '../../chunk-QSTH6T77.js';
13
- import '../../chunk-M7W7CGPL.js';
13
+ import '../../chunk-Z6FAH4XV.js';
14
14
  import '../../chunk-22UVE3RA.js';
15
15
  import '../../chunk-3ZMAGTWF.js';
16
- import '../../chunk-Q4QJOSVS.js';
17
- import '../../chunk-TO7QXDBX.js';
18
- import '../../chunk-Q5HC6ENG.js';
16
+ import '../../chunk-ZBCTB5CA.js';
17
+ import '../../chunk-3HEUGBOT.js';
18
+ import '../../chunk-XOTJNW4Q.js';
19
19
  import '../../chunk-WLOQ4IBG.js';
20
- import '../../chunk-LR5CRY5A.js';
21
- import '../../chunk-OUYH2SBS.js';
22
- import '../../chunk-RX4UWZZR.js';
23
- import '../../chunk-BHR7IV72.js';
20
+ import '../../chunk-AXXTN44Z.js';
21
+ import '../../chunk-LVUCBY7X.js';
22
+ import '../../chunk-LJWV4TWV.js';
23
+ import '../../chunk-TKAYX2SP.js';
24
+ import '../../chunk-XUYBOO32.js';
24
25
  import '../../chunk-SZHARWKU.js';
25
26
  import '../../chunk-3KMDHCAR.js';
26
27
  import '../../chunk-NYBEU5TE.js';
27
- import '../../chunk-R7OJCNL3.js';
28
+ import '../../chunk-T6INEVX6.js';
28
29
  import '../../chunk-2IFYDILW.js';
29
30
  import '../../chunk-Q7DJKLEN.js';
30
- import '../../chunk-7YQKVWSD.js';
31
+ import '../../chunk-SQ5JGELM.js';
31
32
  import '../../chunk-6IA2OMAE.js';
32
33
  import '../../chunk-QJ2KCHKX.js';
33
34
  import '../../chunk-HQ7M6PBW.js';
34
35
  import '../../chunk-DT3QYZVU.js';
35
36
  import '../../chunk-RNP5R5I3.js';
36
- import '../../chunk-OD7GWIZS.js';
37
+ import '../../chunk-SGXXJE52.js';
37
38
  import '../../chunk-KRWALB24.js';
38
39
  import '../../chunk-SLH2QLKV.js';
39
40
  import '../../chunk-DK2HVHCY.js';
@@ -309,7 +309,7 @@
309
309
  transparent 1px),
310
310
  radial-gradient(
311
311
  ellipse at 50% 50%,
312
- color-mix(in srgb, var(--color-primary) 5%, transparent) 0%,
312
+ color-mix(in srgb, var(--color-primary) 1.25%, transparent) 0%,
313
313
  transparent 70%);
314
314
  background-color: color-mix(in srgb, var(--color-background) 50%, var(--glass-background));
315
315
  backdrop-filter: var(--glass-blur);
@@ -328,7 +328,7 @@
328
328
  transparent 1px),
329
329
  radial-gradient(
330
330
  ellipse at 50% 50%,
331
- color-mix(in srgb, var(--color-primary) 9%, transparent) 0%,
331
+ color-mix(in srgb, var(--color-primary) 2.25%, transparent) 0%,
332
332
  transparent 70%);
333
333
  background-size:
334
334
  40px 40px,
@@ -200,50 +200,32 @@ type AcqCompanyResponse = z.infer<typeof AcqCompanyResponseSchema>;
200
200
  type AcqContactResponse = z.infer<typeof AcqContactResponseSchema>;
201
201
  type ListConfigInput = z.infer<typeof ListConfigSchema>;
202
202
 
203
- interface FeatureNavLink {
204
- label: string;
205
- link: string;
206
- featureKey?: string;
207
- onClick?: () => void;
208
- links?: FeatureNavLink[];
209
- }
210
- interface FeatureNavEntry {
211
- label: string;
212
- icon: ComponentType;
213
- link?: string;
214
- featureKey?: string;
215
- requiresAdmin?: boolean;
216
- dataOnboardingTourId?: string;
217
- links?: FeatureNavLink[];
218
- }
219
203
  type FeatureSidebarComponent = ComponentType;
204
+ type FeatureIconComponent = ComponentType<{
205
+ size?: number;
206
+ stroke?: number;
207
+ }>;
208
+ type FeatureSidebarWidthResolver = number | ((context: {
209
+ currentPath: string;
210
+ }) => number);
220
211
  interface FeatureModule {
221
- /** Unique stable identifier for this feature (e.g. `'crm'`, `'projects'`). */
212
+ /** Unique stable identifier for this feature module. */
222
213
  key: string;
223
- /** Feature ID used for access-flag gating — must match the `id` of a feature in the organization model. */
214
+ /** Organization Model feature id this module presents. */
224
215
  featureId: string;
225
- /**
226
- * Capability identifiers contributed by this feature.
227
- * Merged into `ResolvedFeatureSemantics.capabilityIds` at resolution time.
228
- * Not queried at runtime — kept for semantic graph completeness so that
229
- * capability membership is fully represented in the resolved model even when
230
- * a surface does not declare it directly.
231
- */
216
+ /** Capability identifiers contributed by this feature module. */
232
217
  capabilityIds?: string[];
233
- /** Top-level navigation entry rendered in the app shell when this feature is enabled. */
234
- navEntry?: FeatureNavEntry;
235
- /** Sidebar component rendered when a matching subshell route is active. */
218
+ /** Icon used when this feature node appears in shell navigation. */
219
+ icon?: FeatureIconComponent;
220
+ /** Sidebar component rendered when this feature's subtree route is active. */
236
221
  sidebar?: FeatureSidebarComponent;
237
- /** Route path prefixes that activate this feature's sidebar and subshell context. */
238
- subshellRoutes?: string[];
239
- /**
240
- * Operations-only bridge surface connecting this feature to the organization graph.
241
- * Ignored by all other features. Only one manifest in the registry should set this.
242
- */
222
+ /** Optional shell sidebar width override. Defaults to 250px. */
223
+ sidebarWidth?: FeatureSidebarWidthResolver;
224
+ /** Operations-only bridge connecting this feature to the organization graph node. */
243
225
  organizationGraph?: OrganizationGraphFeatureBridge;
244
226
  }
245
227
  interface OrganizationGraphFeatureBridge {
246
- surfaceId: string;
228
+ featureId: string;
247
229
  }
248
230
 
249
231
  declare const leadGenManifest: FeatureModule;
@@ -261,8 +243,8 @@ declare function LeadGenRouteShell({ title, caption, body, links }: {
261
243
  }): react_jsx_runtime.JSX.Element;
262
244
  declare function formatDate(dateValue: string | Date): string;
263
245
  declare function getStatusColor(status: string | null): "green" | "red" | "gray";
264
- declare function getEnrichmentColor(status: string): "green" | "red" | "gray" | "yellow";
265
- declare function getEnrichmentStatus(enrichmentData: Record<string, unknown> | null | undefined): "failed" | "pending" | "complete";
246
+ declare function getEnrichmentColor(status: string): "yellow" | "green" | "red" | "gray";
247
+ declare function getEnrichmentStatus(enrichmentData: Record<string, unknown> | null | undefined): "pending" | "failed" | "complete";
266
248
  type LeadGenCompanyListItem = AcqCompanyResponse;
267
249
  type LeadGenContactListItem = AcqContactResponse;
268
250
  declare function CompanyDetailModal({ company, onClose }: {
@@ -1,38 +1,39 @@
1
- export { CompanyDetailModal, ContactDetailModal, LEAD_GEN_ITEMS, LEAD_GEN_ROUTE_LINKS, LIST_TEMPLATE_OPTIONS, LeadGenCompaniesPage, LeadGenContactsPage, LeadGenListDetailPage, LeadGenListsPage, LeadGenOverviewPage, LeadGenRouteShell, LeadGenSidebar, LeadGenSidebarMiddle, LeadGenSidebarTop, buildListConfig, formatDate, getEnrichmentColor, getEnrichmentStatus, getStatusColor, leadGenManifest, useDeleteLists } from '../../chunk-GP3AFJYG.js';
1
+ export { CompanyDetailModal, ContactDetailModal, LEAD_GEN_ITEMS, LEAD_GEN_ROUTE_LINKS, LIST_TEMPLATE_OPTIONS, LeadGenCompaniesPage, LeadGenContactsPage, LeadGenListDetailPage, LeadGenListsPage, LeadGenOverviewPage, LeadGenRouteShell, LeadGenSidebar, LeadGenSidebarMiddle, LeadGenSidebarTop, buildListConfig, formatDate, getEnrichmentColor, getEnrichmentStatus, getStatusColor, leadGenManifest, useDeleteLists } from '../../chunk-COG4ABRI.js';
2
2
  import '../../chunk-BZZCNLT6.js';
3
3
  import '../../chunk-TUMSNGTX.js';
4
4
  import '../../chunk-CEWTOKE7.js';
5
5
  import '../../chunk-IIMU5YAJ.js';
6
6
  import '../../chunk-PDHTXPSF.js';
7
- import '../../chunk-GBMNCNHX.js';
7
+ import '../../chunk-KVJ3LFH2.js';
8
8
  import '../../chunk-7M2VOCYN.js';
9
- export { companyKeys as acquisitionCompanyKeys, contactKeys as acquisitionContactKeys, companyKeys, contactKeys, useCompanies, useCompany, useCompanyFacets, useContact, useContacts, useCreateCompany, useCreateContact, useDeleteCompanies, useDeleteContacts, useUpdateCompany, useUpdateContact } from '../../chunk-FMFX4K6E.js';
9
+ export { companyKeys as acquisitionCompanyKeys, contactKeys as acquisitionContactKeys, companyKeys, contactKeys, useCompanies, useCompany, useCompanyFacets, useContact, useContacts, useCreateCompany, useCreateContact, useDeleteCompanies, useDeleteContacts, useUpdateCompany, useUpdateContact } from '../../chunk-B4FHWKEF.js';
10
10
  import '../../chunk-BRXELOHC.js';
11
11
  import '../../chunk-QSTH6T77.js';
12
- import '../../chunk-M7W7CGPL.js';
12
+ import '../../chunk-Z6FAH4XV.js';
13
13
  import '../../chunk-22UVE3RA.js';
14
14
  import '../../chunk-3ZMAGTWF.js';
15
- import '../../chunk-Q4QJOSVS.js';
16
- import '../../chunk-TO7QXDBX.js';
17
- import '../../chunk-Q5HC6ENG.js';
15
+ import '../../chunk-ZBCTB5CA.js';
16
+ import '../../chunk-3HEUGBOT.js';
17
+ import '../../chunk-XOTJNW4Q.js';
18
18
  import '../../chunk-WLOQ4IBG.js';
19
- import '../../chunk-LR5CRY5A.js';
20
- import '../../chunk-OUYH2SBS.js';
21
- import '../../chunk-RX4UWZZR.js';
22
- import '../../chunk-BHR7IV72.js';
19
+ import '../../chunk-AXXTN44Z.js';
20
+ import '../../chunk-LVUCBY7X.js';
21
+ import '../../chunk-LJWV4TWV.js';
22
+ import '../../chunk-TKAYX2SP.js';
23
+ import '../../chunk-XUYBOO32.js';
23
24
  import '../../chunk-SZHARWKU.js';
24
25
  import '../../chunk-3KMDHCAR.js';
25
26
  import '../../chunk-NYBEU5TE.js';
26
- import '../../chunk-R7OJCNL3.js';
27
+ import '../../chunk-T6INEVX6.js';
27
28
  import '../../chunk-2IFYDILW.js';
28
29
  import '../../chunk-Q7DJKLEN.js';
29
- import '../../chunk-7YQKVWSD.js';
30
+ import '../../chunk-SQ5JGELM.js';
30
31
  import '../../chunk-6IA2OMAE.js';
31
32
  import '../../chunk-QJ2KCHKX.js';
32
33
  import '../../chunk-HQ7M6PBW.js';
33
34
  import '../../chunk-DT3QYZVU.js';
34
35
  import '../../chunk-RNP5R5I3.js';
35
- import '../../chunk-OD7GWIZS.js';
36
+ import '../../chunk-SGXXJE52.js';
36
37
  import '../../chunk-KRWALB24.js';
37
38
  import '../../chunk-SLH2QLKV.js';
38
39
  import '../../chunk-DK2HVHCY.js';
@@ -125,83 +125,14 @@
125
125
  }
126
126
  }
127
127
 
128
- /* src/theme/custom.css */
129
- .mantine-Button-root[data-variant=default] {
130
- background-color: var(--color-surface);
131
- backdrop-filter: var(--glass-blur);
132
- -webkit-backdrop-filter: var(--glass-blur);
133
- border: 1px solid var(--color-border);
134
- color: var(--color-text);
135
- }
136
- .mantine-Button-root[data-variant=default]:hover {
137
- background-color: var(--color-surface-hover);
138
- }
139
- .mantine-Accordion-control:hover {
140
- background-color: var(--color-surface-hover);
141
- }
142
- .mantine-Menu-item:hover:not([data-disabled]) {
143
- background-color: var(--color-surface-hover);
144
- }
145
- .mantine-Select-option:hover {
146
- background-color: var(--color-surface-hover) !important;
147
- }
148
- [data-mantine-color-scheme=dark] .mantine-Tabs-root {
149
- --tab-border-color: var(--color-border);
150
- }
151
- .mantine-Tabs-tab:hover {
152
- background-color: var(--color-surface-hover);
153
- }
154
- .mantine-Pagination-control:not([data-active]) {
155
- background: var(--color-surface);
156
- }
157
- ::-webkit-scrollbar {
158
- width: 5px;
159
- height: 5px;
160
- }
161
- ::-webkit-scrollbar-track {
162
- background: transparent;
163
- }
164
- ::-webkit-scrollbar-thumb {
165
- background: color-mix(in srgb, var(--color-text-subtle) 50%, var(--color-border));
166
- border-radius: 4px;
167
- }
168
- ::-webkit-scrollbar-thumb:hover {
169
- background: var(--color-text-subtle);
170
- }
171
- .mantine-Checkbox-input {
172
- background-color: var(--color-surface);
173
- border-color: var(--color-border);
174
- }
175
- .mantine-Checkbox-input:checked {
176
- background-color: var(--color-primary);
177
- border-color: var(--color-primary);
178
- }
179
- .mantine-Switch-root:has(input:not(:checked)) .mantine-Switch-track {
180
- background-color: var(--color-surface-hover);
181
- border-color: var(--color-border);
182
- }
183
- .mantine-Timeline-root {
184
- --tl-color: var(--color-primary);
185
- }
186
- .mantine-Timeline-item {
187
- --item-border-color: var(--color-border);
188
- }
189
- .mantine-Timeline-itemBullet {
190
- border-color: var(--color-border);
191
- }
192
- .mantine-Timeline-itemBullet:where([data-with-child]) {
193
- background-color: var(--color-primary);
194
- border-color: var(--color-primary);
195
- }
196
- .recharts-surface:focus {
197
- outline: none;
198
- }
199
- .hide-scrollbar {
200
- scrollbar-width: none;
201
- -ms-overflow-style: none;
128
+ /* src/graph/Graph.globals.css */
129
+ .elevasis-graph-root .react-flow__node.selected,
130
+ .elevasis-graph-root .react-flow__node:focus,
131
+ .elevasis-graph-root .react-flow__node:focus-visible {
132
+ outline: none !important;
202
133
  }
203
- .hide-scrollbar::-webkit-scrollbar {
204
- display: none;
134
+ .elevasis-graph-root .react-flow__node.selected > * {
135
+ box-shadow: none;
205
136
  }
206
137
 
207
138
  /* src/graph/Graph.module.css */
@@ -309,7 +240,7 @@
309
240
  transparent 1px),
310
241
  radial-gradient(
311
242
  ellipse at 50% 50%,
312
- color-mix(in srgb, var(--color-primary) 5%, transparent) 0%,
243
+ color-mix(in srgb, var(--color-primary) 1.25%, transparent) 0%,
313
244
  transparent 70%);
314
245
  background-color: color-mix(in srgb, var(--color-background) 50%, var(--glass-background));
315
246
  backdrop-filter: var(--glass-blur);
@@ -328,7 +259,7 @@
328
259
  transparent 1px),
329
260
  radial-gradient(
330
261
  ellipse at 50% 50%,
331
- color-mix(in srgb, var(--color-primary) 9%, transparent) 0%,
262
+ color-mix(in srgb, var(--color-primary) 2.25%, transparent) 0%,
332
263
  transparent 70%);
333
264
  background-size:
334
265
  40px 40px,
@@ -578,12 +509,81 @@
578
509
  }
579
510
  }
580
511
 
581
- /* src/graph/Graph.globals.css */
582
- .elevasis-graph-root .react-flow__node.selected,
583
- .elevasis-graph-root .react-flow__node:focus,
584
- .elevasis-graph-root .react-flow__node:focus-visible {
585
- outline: none !important;
512
+ /* src/theme/custom.css */
513
+ .mantine-Button-root[data-variant=default] {
514
+ background-color: var(--color-surface);
515
+ backdrop-filter: var(--glass-blur);
516
+ -webkit-backdrop-filter: var(--glass-blur);
517
+ border: 1px solid var(--color-border);
518
+ color: var(--color-text);
586
519
  }
587
- .elevasis-graph-root .react-flow__node.selected > * {
588
- box-shadow: none;
520
+ .mantine-Button-root[data-variant=default]:hover {
521
+ background-color: var(--color-surface-hover);
522
+ }
523
+ .mantine-Accordion-control:hover {
524
+ background-color: var(--color-surface-hover);
525
+ }
526
+ .mantine-Menu-item:hover:not([data-disabled]) {
527
+ background-color: var(--color-surface-hover);
528
+ }
529
+ .mantine-Select-option:hover {
530
+ background-color: var(--color-surface-hover) !important;
531
+ }
532
+ [data-mantine-color-scheme=dark] .mantine-Tabs-root {
533
+ --tab-border-color: var(--color-border);
534
+ }
535
+ .mantine-Tabs-tab:hover {
536
+ background-color: var(--color-surface-hover);
537
+ }
538
+ .mantine-Pagination-control:not([data-active]) {
539
+ background: var(--color-surface);
540
+ }
541
+ ::-webkit-scrollbar {
542
+ width: 5px;
543
+ height: 5px;
544
+ }
545
+ ::-webkit-scrollbar-track {
546
+ background: transparent;
547
+ }
548
+ ::-webkit-scrollbar-thumb {
549
+ background: color-mix(in srgb, var(--color-text-subtle) 50%, var(--color-border));
550
+ border-radius: 4px;
551
+ }
552
+ ::-webkit-scrollbar-thumb:hover {
553
+ background: var(--color-text-subtle);
554
+ }
555
+ .mantine-Checkbox-input {
556
+ background-color: var(--color-surface);
557
+ border-color: var(--color-border);
558
+ }
559
+ .mantine-Checkbox-input:checked {
560
+ background-color: var(--color-primary);
561
+ border-color: var(--color-primary);
562
+ }
563
+ .mantine-Switch-root:has(input:not(:checked)) .mantine-Switch-track {
564
+ background-color: var(--color-surface-hover);
565
+ border-color: var(--color-border);
566
+ }
567
+ .mantine-Timeline-root {
568
+ --tl-color: var(--color-primary);
569
+ }
570
+ .mantine-Timeline-item {
571
+ --item-border-color: var(--color-border);
572
+ }
573
+ .mantine-Timeline-itemBullet {
574
+ border-color: var(--color-border);
575
+ }
576
+ .mantine-Timeline-itemBullet:where([data-with-child]) {
577
+ background-color: var(--color-primary);
578
+ border-color: var(--color-primary);
579
+ }
580
+ .recharts-surface:focus {
581
+ outline: none;
582
+ }
583
+ .hide-scrollbar {
584
+ scrollbar-width: none;
585
+ -ms-overflow-style: none;
586
+ }
587
+ .hide-scrollbar::-webkit-scrollbar {
588
+ display: none;
589
589
  }
@@ -6,7 +6,7 @@ import { ComponentType } from 'react';
6
6
  */
7
7
  type TimeRange = '1h' | '24h' | '7d' | '30d';
8
8
 
9
- type ActivityType = 'workflow_execution' | 'agent_run' | 'hitl_action' | 'webhook_received' | 'webhook_executed' | 'webhook_failed' | 'credential_change' | 'api_key_change' | 'deployment_change' | 'membership_change';
9
+ type ActivityType = 'workflow_execution' | 'agent_run' | 'hitl_action' | 'webhook_received' | 'webhook_executed' | 'webhook_failed' | 'credential_change' | 'credential_read' | 'api_key_change' | 'deployment_change' | 'membership_change';
10
10
  type ActivityStatus = 'success' | 'failure' | 'pending' | 'approved' | 'rejected' | 'completed';
11
11
  interface Activity {
12
12
  id: string;
@@ -118,50 +118,32 @@ interface NotificationCenterProps {
118
118
  }
119
119
  declare function NotificationCenter({ pageSize }: NotificationCenterProps): react_jsx_runtime.JSX.Element;
120
120
 
121
- interface FeatureNavLink {
122
- label: string;
123
- link: string;
124
- featureKey?: string;
125
- onClick?: () => void;
126
- links?: FeatureNavLink[];
127
- }
128
- interface FeatureNavEntry {
129
- label: string;
130
- icon: ComponentType;
131
- link?: string;
132
- featureKey?: string;
133
- requiresAdmin?: boolean;
134
- dataOnboardingTourId?: string;
135
- links?: FeatureNavLink[];
136
- }
137
121
  type FeatureSidebarComponent = ComponentType;
122
+ type FeatureIconComponent = ComponentType<{
123
+ size?: number;
124
+ stroke?: number;
125
+ }>;
126
+ type FeatureSidebarWidthResolver = number | ((context: {
127
+ currentPath: string;
128
+ }) => number);
138
129
  interface FeatureModule {
139
- /** Unique stable identifier for this feature (e.g. `'crm'`, `'projects'`). */
130
+ /** Unique stable identifier for this feature module. */
140
131
  key: string;
141
- /** Feature ID used for access-flag gating — must match the `id` of a feature in the organization model. */
132
+ /** Organization Model feature id this module presents. */
142
133
  featureId: string;
143
- /**
144
- * Capability identifiers contributed by this feature.
145
- * Merged into `ResolvedFeatureSemantics.capabilityIds` at resolution time.
146
- * Not queried at runtime — kept for semantic graph completeness so that
147
- * capability membership is fully represented in the resolved model even when
148
- * a surface does not declare it directly.
149
- */
134
+ /** Capability identifiers contributed by this feature module. */
150
135
  capabilityIds?: string[];
151
- /** Top-level navigation entry rendered in the app shell when this feature is enabled. */
152
- navEntry?: FeatureNavEntry;
153
- /** Sidebar component rendered when a matching subshell route is active. */
136
+ /** Icon used when this feature node appears in shell navigation. */
137
+ icon?: FeatureIconComponent;
138
+ /** Sidebar component rendered when this feature's subtree route is active. */
154
139
  sidebar?: FeatureSidebarComponent;
155
- /** Route path prefixes that activate this feature's sidebar and subshell context. */
156
- subshellRoutes?: string[];
157
- /**
158
- * Operations-only bridge surface connecting this feature to the organization graph.
159
- * Ignored by all other features. Only one manifest in the registry should set this.
160
- */
140
+ /** Optional shell sidebar width override. Defaults to 250px. */
141
+ sidebarWidth?: FeatureSidebarWidthResolver;
142
+ /** Operations-only bridge connecting this feature to the organization graph node. */
161
143
  organizationGraph?: OrganizationGraphFeatureBridge;
162
144
  }
163
145
  interface OrganizationGraphFeatureBridge {
164
- surfaceId: string;
146
+ featureId: string;
165
147
  }
166
148
 
167
149
  declare const monitoringManifest: FeatureModule;
@@ -1,39 +1,40 @@
1
- export { ActivityFeed, ActivityLog, CostAnalytics, ErrorDetailsModal, ExecutionHealth, ExecutionLogsPage, NotificationCenter, monitoringManifest } from '../../chunk-GTYUP7MB.js';
2
- import '../../chunk-ZE2KQSHL.js';
1
+ export { ActivityFeed, ActivityLog, CostAnalytics, ErrorDetailsModal, ExecutionHealth, ExecutionLogsPage, NotificationCenter, monitoringManifest } from '../../chunk-WWJ6S2HQ.js';
2
+ import '../../chunk-GJ7EIABJ.js';
3
3
  import '../../chunk-LGKLC5MG.js';
4
- import '../../chunk-CTTY6FUT.js';
4
+ import '../../chunk-TSSKOQBX.js';
5
5
  import '../../chunk-M25JL54Z.js';
6
6
  import '../../chunk-PDHTXPSF.js';
7
- import '../../chunk-GBMNCNHX.js';
7
+ import '../../chunk-KVJ3LFH2.js';
8
8
  import '../../chunk-E4WQGJNS.js';
9
9
  import '../../chunk-7M2VOCYN.js';
10
- import '../../chunk-FMFX4K6E.js';
10
+ import '../../chunk-B4FHWKEF.js';
11
11
  import '../../chunk-BRXELOHC.js';
12
12
  import '../../chunk-QSTH6T77.js';
13
- import '../../chunk-M7W7CGPL.js';
13
+ import '../../chunk-Z6FAH4XV.js';
14
14
  import '../../chunk-22UVE3RA.js';
15
15
  import '../../chunk-3ZMAGTWF.js';
16
- import '../../chunk-Q4QJOSVS.js';
17
- import '../../chunk-TO7QXDBX.js';
18
- import '../../chunk-Q5HC6ENG.js';
16
+ import '../../chunk-ZBCTB5CA.js';
17
+ import '../../chunk-3HEUGBOT.js';
18
+ import '../../chunk-XOTJNW4Q.js';
19
19
  import '../../chunk-WLOQ4IBG.js';
20
- import '../../chunk-LR5CRY5A.js';
21
- import '../../chunk-OUYH2SBS.js';
22
- import '../../chunk-RX4UWZZR.js';
23
- import '../../chunk-BHR7IV72.js';
20
+ import '../../chunk-AXXTN44Z.js';
21
+ import '../../chunk-LVUCBY7X.js';
22
+ import '../../chunk-LJWV4TWV.js';
23
+ import '../../chunk-TKAYX2SP.js';
24
+ import '../../chunk-XUYBOO32.js';
24
25
  import '../../chunk-SZHARWKU.js';
25
26
  import '../../chunk-3KMDHCAR.js';
26
27
  import '../../chunk-NYBEU5TE.js';
27
- import '../../chunk-R7OJCNL3.js';
28
+ import '../../chunk-T6INEVX6.js';
28
29
  import '../../chunk-2IFYDILW.js';
29
30
  import '../../chunk-Q7DJKLEN.js';
30
- import '../../chunk-7YQKVWSD.js';
31
+ import '../../chunk-SQ5JGELM.js';
31
32
  import '../../chunk-6IA2OMAE.js';
32
33
  import '../../chunk-QJ2KCHKX.js';
33
34
  import '../../chunk-HQ7M6PBW.js';
34
35
  import '../../chunk-DT3QYZVU.js';
35
36
  import '../../chunk-RNP5R5I3.js';
36
- import '../../chunk-OD7GWIZS.js';
37
+ import '../../chunk-SGXXJE52.js';
37
38
  import '../../chunk-KRWALB24.js';
38
39
  import '../../chunk-SLH2QLKV.js';
39
40
  import '../../chunk-DK2HVHCY.js';
@@ -309,7 +309,7 @@
309
309
  transparent 1px),
310
310
  radial-gradient(
311
311
  ellipse at 50% 50%,
312
- color-mix(in srgb, var(--color-primary) 5%, transparent) 0%,
312
+ color-mix(in srgb, var(--color-primary) 1.25%, transparent) 0%,
313
313
  transparent 70%);
314
314
  background-color: color-mix(in srgb, var(--color-background) 50%, var(--glass-background));
315
315
  backdrop-filter: var(--glass-blur);
@@ -328,7 +328,7 @@
328
328
  transparent 1px),
329
329
  radial-gradient(
330
330
  ellipse at 50% 50%,
331
- color-mix(in srgb, var(--color-primary) 9%, transparent) 0%,
331
+ color-mix(in srgb, var(--color-primary) 2.25%, transparent) 0%,
332
332
  transparent 70%);
333
333
  background-size:
334
334
  40px 40px,
@@ -2,50 +2,32 @@ import { ComponentType } from 'react';
2
2
  import * as react_jsx_runtime from 'react/jsx-runtime';
3
3
  import { z } from 'zod';
4
4
 
5
- interface FeatureNavLink {
6
- label: string;
7
- link: string;
8
- featureKey?: string;
9
- onClick?: () => void;
10
- links?: FeatureNavLink[];
11
- }
12
- interface FeatureNavEntry {
13
- label: string;
14
- icon: ComponentType;
15
- link?: string;
16
- featureKey?: string;
17
- requiresAdmin?: boolean;
18
- dataOnboardingTourId?: string;
19
- links?: FeatureNavLink[];
20
- }
21
5
  type FeatureSidebarComponent = ComponentType;
6
+ type FeatureIconComponent = ComponentType<{
7
+ size?: number;
8
+ stroke?: number;
9
+ }>;
10
+ type FeatureSidebarWidthResolver = number | ((context: {
11
+ currentPath: string;
12
+ }) => number);
22
13
  interface FeatureModule {
23
- /** Unique stable identifier for this feature (e.g. `'crm'`, `'projects'`). */
14
+ /** Unique stable identifier for this feature module. */
24
15
  key: string;
25
- /** Feature ID used for access-flag gating — must match the `id` of a feature in the organization model. */
16
+ /** Organization Model feature id this module presents. */
26
17
  featureId: string;
27
- /**
28
- * Capability identifiers contributed by this feature.
29
- * Merged into `ResolvedFeatureSemantics.capabilityIds` at resolution time.
30
- * Not queried at runtime — kept for semantic graph completeness so that
31
- * capability membership is fully represented in the resolved model even when
32
- * a surface does not declare it directly.
33
- */
18
+ /** Capability identifiers contributed by this feature module. */
34
19
  capabilityIds?: string[];
35
- /** Top-level navigation entry rendered in the app shell when this feature is enabled. */
36
- navEntry?: FeatureNavEntry;
37
- /** Sidebar component rendered when a matching subshell route is active. */
20
+ /** Icon used when this feature node appears in shell navigation. */
21
+ icon?: FeatureIconComponent;
22
+ /** Sidebar component rendered when this feature's subtree route is active. */
38
23
  sidebar?: FeatureSidebarComponent;
39
- /** Route path prefixes that activate this feature's sidebar and subshell context. */
40
- subshellRoutes?: string[];
41
- /**
42
- * Operations-only bridge surface connecting this feature to the organization graph.
43
- * Ignored by all other features. Only one manifest in the registry should set this.
44
- */
24
+ /** Optional shell sidebar width override. Defaults to 250px. */
25
+ sidebarWidth?: FeatureSidebarWidthResolver;
26
+ /** Operations-only bridge connecting this feature to the organization graph node. */
45
27
  organizationGraph?: OrganizationGraphFeatureBridge;
46
28
  }
47
29
  interface OrganizationGraphFeatureBridge {
48
- surfaceId: string;
30
+ featureId: string;
49
31
  }
50
32
 
51
33
  declare const submittedRequestsManifest: FeatureModule;
@@ -79,8 +61,8 @@ declare const RequestSourceEnum: z.ZodEnum<{
79
61
  cli: "cli";
80
62
  }>;
81
63
  declare const RequestTypeEnum: z.ZodEnum<{
82
- other: "other";
83
64
  feature: "feature";
65
+ other: "other";
84
66
  bug: "bug";
85
67
  question: "question";
86
68
  }>;