@elevasis/ui 2.25.6 → 2.26.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 (105) hide show
  1. package/dist/api/index.js +2 -2
  2. package/dist/app/index.css +15 -5
  3. package/dist/app/index.d.ts +61 -14
  4. package/dist/app/index.js +6 -6
  5. package/dist/charts/index.js +6 -5
  6. package/dist/chunk-3MEXPLWT.js +265 -0
  7. package/dist/{chunk-BDKM56TP.js → chunk-4KTLOK7K.js} +1 -1
  8. package/dist/{chunk-KMAXFJPH.js → chunk-CW3UNAF2.js} +5 -409
  9. package/dist/{chunk-HKBEURCV.js → chunk-G26INIF3.js} +1 -1
  10. package/dist/{chunk-7F3IQMLI.js → chunk-G66QFZXD.js} +11 -214
  11. package/dist/{chunk-QIW6OCEI.js → chunk-HLFFKKT3.js} +27 -373
  12. package/dist/chunk-JDNEWB5F.js +10 -0
  13. package/dist/{chunk-L7D6KNHV.js → chunk-JKBGDFX2.js} +890 -749
  14. package/dist/{chunk-YRKQNPK2.js → chunk-JPGX3533.js} +4 -3
  15. package/dist/chunk-KEFWANZY.js +155 -0
  16. package/dist/chunk-LH4GPYDX.js +448 -0
  17. package/dist/{chunk-JXSBOG2R.js → chunk-LWKZ3BCC.js} +5 -4
  18. package/dist/chunk-MYEOTM7D.js +92 -0
  19. package/dist/chunk-OGXKOMUT.js +412 -0
  20. package/dist/chunk-OHXU5WWK.js +3731 -0
  21. package/dist/chunk-ONFKASZI.js +2004 -0
  22. package/dist/{chunk-U36X6NZM.js → chunk-RIFTUOPE.js} +2 -14
  23. package/dist/{chunk-T6INEVX6.js → chunk-SGS4CQ2B.js} +1 -1
  24. package/dist/{chunk-C7IBFI5B.js → chunk-UPMX5GJI.js} +5 -5
  25. package/dist/{chunk-ARJPZ66V.js → chunk-UY5I2KOZ.js} +208 -3124
  26. package/dist/chunk-W2ZTLH7Y.js +662 -0
  27. package/dist/{chunk-KNISO652.js → chunk-WUVR4QY6.js} +9 -9
  28. package/dist/{chunk-Q5BEODAT.js → chunk-X2SUMO3P.js} +2 -1
  29. package/dist/{chunk-SNHGSCKH.js → chunk-XBMCDGHA.js} +1 -1
  30. package/dist/{chunk-N55DVMAG.js → chunk-XQQEKWTL.js} +2 -6
  31. package/dist/{chunk-SBQ4MYQV.js → chunk-XZSEPJZQ.js} +5 -6
  32. package/dist/{chunk-CPAJXBTL.js → chunk-YHBPR67D.js} +490 -676
  33. package/dist/{chunk-QARSVM7Q.js → chunk-YO2YORW4.js} +4 -4
  34. package/dist/{chunk-TAIX4NO3.js → chunk-ZFLM2YVW.js} +2 -2
  35. package/dist/components/index.css +15 -5
  36. package/dist/components/index.d.ts +202 -383
  37. package/dist/components/index.js +43 -429
  38. package/dist/components/navigation/index.css +25 -15
  39. package/dist/execution/index.d.ts +0 -73
  40. package/dist/features/auth/index.css +25 -15
  41. package/dist/features/crm/index.css +25 -15
  42. package/dist/features/crm/index.d.ts +49 -49
  43. package/dist/features/crm/index.js +14 -15
  44. package/dist/features/dashboard/index.css +25 -15
  45. package/dist/features/dashboard/index.js +18 -16
  46. package/dist/features/delivery/index.css +15 -5
  47. package/dist/features/delivery/index.js +14 -15
  48. package/dist/features/knowledge/index.css +611 -0
  49. package/dist/features/knowledge/index.js +375 -72
  50. package/dist/features/lead-gen/index.css +25 -15
  51. package/dist/features/lead-gen/index.d.ts +60 -21
  52. package/dist/features/lead-gen/index.js +16 -16
  53. package/dist/features/monitoring/index.css +15 -5
  54. package/dist/features/monitoring/index.js +17 -17
  55. package/dist/features/monitoring/requests/index.css +25 -15
  56. package/dist/features/monitoring/requests/index.js +13 -14
  57. package/dist/features/operations/index.css +25 -15
  58. package/dist/features/operations/index.d.ts +16 -98
  59. package/dist/features/operations/index.js +26 -22
  60. package/dist/features/settings/index.css +25 -15
  61. package/dist/features/settings/index.d.ts +1 -0
  62. package/dist/features/settings/index.js +15 -16
  63. package/dist/hooks/delivery/index.css +25 -15
  64. package/dist/hooks/delivery/index.js +2 -2
  65. package/dist/hooks/index.css +15 -5
  66. package/dist/hooks/index.d.ts +172 -380
  67. package/dist/hooks/index.js +13 -14
  68. package/dist/hooks/published.css +15 -5
  69. package/dist/hooks/published.d.ts +172 -380
  70. package/dist/hooks/published.js +13 -14
  71. package/dist/index.css +15 -5
  72. package/dist/index.d.ts +988 -403
  73. package/dist/index.js +15 -15
  74. package/dist/initialization/index.d.ts +1 -0
  75. package/dist/knowledge/index.d.ts +981 -41
  76. package/dist/knowledge/index.js +5449 -294
  77. package/dist/layout/index.d.ts +2 -0
  78. package/dist/layout/index.js +3 -2
  79. package/dist/organization/index.css +25 -15
  80. package/dist/organization/index.d.ts +1 -0
  81. package/dist/provider/index.css +25 -15
  82. package/dist/provider/index.d.ts +818 -26
  83. package/dist/provider/index.js +11 -11
  84. package/dist/provider/published.css +25 -15
  85. package/dist/provider/published.d.ts +817 -25
  86. package/dist/provider/published.js +8 -9
  87. package/dist/test-utils/index.js +2 -2
  88. package/dist/test-utils/setup.js +1 -1
  89. package/dist/theme/index.js +3 -2
  90. package/dist/theme/presets/index.d.ts +97 -0
  91. package/dist/theme/presets/index.js +3 -0
  92. package/dist/types/index.d.ts +71 -126
  93. package/dist/utils/index.js +1 -1
  94. package/dist/vite/index.d.ts +7 -0
  95. package/dist/vite/index.js +10 -0
  96. package/dist/vite-plugin-knowledge/index.d.ts +1 -33
  97. package/dist/vite-plugin-knowledge/index.js +1 -66
  98. package/package.json +16 -3
  99. package/src/knowledge/README.md +8 -8
  100. package/src/theme/presets/README.md +19 -0
  101. package/dist/chunk-5RLYII6P.js +0 -314
  102. package/dist/chunk-6U7AIIHF.js +0 -880
  103. package/dist/chunk-HAEJ4M54.js +0 -94
  104. package/dist/chunk-LPM7O6XM.js +0 -293
  105. /package/dist/{chunk-SGXXJE52.js → chunk-QD4X4H5A.js} +0 -0
@@ -1,13 +1,12 @@
1
- export { FeatureShell } from '../chunk-TAIX4NO3.js';
2
- import '../chunk-TKAYX2SP.js';
3
- import '../chunk-U36X6NZM.js';
4
- import '../chunk-NYBEU5TE.js';
5
- export { ElevasisCoreProvider, NotificationProvider, useNotificationAdapter } from '../chunk-LPM7O6XM.js';
1
+ export { FeatureShell } from '../chunk-ZFLM2YVW.js';
2
+ import '../chunk-RIFTUOPE.js';
3
+ import '../chunk-3KMDHCAR.js';
4
+ export { ElevasisCoreProvider, NotificationProvider, useNotificationAdapter } from '../chunk-W2ZTLH7Y.js';
6
5
  import '../chunk-SZHARWKU.js';
7
6
  export { ElevasisFeaturesProvider, useElevasisFeatures, useOptionalElevasisFeatures } from '../chunk-V3HUIZJX.js';
8
- import '../chunk-3KMDHCAR.js';
9
- import '../chunk-5RLYII6P.js';
10
- import '../chunk-T6INEVX6.js';
7
+ import '../chunk-TKAYX2SP.js';
8
+ import '../chunk-NYBEU5TE.js';
9
+ import '../chunk-SGS4CQ2B.js';
11
10
  import '../chunk-2IFYDILW.js';
12
11
  import '../chunk-Q7DJKLEN.js';
13
12
  import '../chunk-GESXCQWY.js';
@@ -16,7 +15,7 @@ export { AppearanceProvider, useAppearance } from '../chunk-E565XMTQ.js';
16
15
  import '../chunk-KU7ZDWQ7.js';
17
16
  import '../chunk-DT3QYZVU.js';
18
17
  import '../chunk-RNP5R5I3.js';
19
- import '../chunk-SGXXJE52.js';
18
+ import '../chunk-QD4X4H5A.js';
20
19
  import '../chunk-KRWALB24.js';
21
20
  import '../chunk-WFTNY755.js';
22
21
  import '../chunk-WKJ47GIW.js';
@@ -3,8 +3,8 @@ export { handlers, server } from '../chunk-7XKCG5CT.js';
3
3
  import { mockWorkOSUser, mockUseAuth, mockUnauthenticatedUser, mockAuthenticatedUser, mockAuthLoading, createMockUseAuth } from '../chunk-DRQPEMJI.js';
4
4
  export { createMockUseAuth, mockAuthLoading, mockAuthenticatedUser, mockUnauthenticatedUser, mockUseAuth, mockWorkOSUser } from '../chunk-DRQPEMJI.js';
5
5
  import '../chunk-XCYKC6OZ.js';
6
- import { ApiClientProvider } from '../chunk-T6INEVX6.js';
7
- import '../chunk-SGXXJE52.js';
6
+ import { ApiClientProvider } from '../chunk-SGS4CQ2B.js';
7
+ import '../chunk-QD4X4H5A.js';
8
8
  import '../chunk-KRWALB24.js';
9
9
  import '../chunk-DD3CCMCZ.js';
10
10
  import { ElevasisServiceProvider } from '../chunk-5WWZXCS5.js';
@@ -1,5 +1,5 @@
1
- import { server } from '../chunk-7XKCG5CT.js';
2
1
  import { setupBrowserMocks } from '../chunk-HJ4CJIWN.js';
2
+ import { server } from '../chunk-7XKCG5CT.js';
3
3
  import { mockUseAuth } from '../chunk-DRQPEMJI.js';
4
4
  import '../chunk-I2KLQ2HA.js';
5
5
  import '@testing-library/jest-dom/vitest';
@@ -1,4 +1,5 @@
1
- export { useAvailablePresets } from '../chunk-SNHGSCKH.js';
2
- export { PresetsProvider, TOKEN_VAR_MAP, componentThemes, createCssVariablesResolver, generateShades, getPreset, mantineThemeOverride, PRESETS as presets, usePresetsContext } from '../chunk-QIW6OCEI.js';
1
+ export { useAvailablePresets } from '../chunk-XBMCDGHA.js';
2
+ export { PresetsProvider, TOKEN_VAR_MAP, componentThemes, createCssVariablesResolver, mantineThemeOverride, usePresetsContext } from '../chunk-LH4GPYDX.js';
3
+ export { generateShades, getPreset, PRESETS as presets } from '../chunk-HLFFKKT3.js';
3
4
  import '../chunk-WLOQ4IBG.js';
4
5
  import '../chunk-I2KLQ2HA.js';
@@ -0,0 +1,97 @@
1
+ import { ReactNode } from 'react';
2
+ export { THEME_PRESETS, ThemePresetEnum, ThemePresetName } from '@repo/core/auth';
3
+
4
+ /**
5
+ * Theme token overrides. Each key maps 1:1 to a CSS variable.
6
+ * All optional — defaults come from Elevasis design system.
7
+ */
8
+ interface ElevasisTokenOverrides {
9
+ primary?: string;
10
+ /** Text color that contrasts with `primary`. Defaults to '#fff'. */
11
+ primaryContrast?: string;
12
+ background?: string;
13
+ surface?: string;
14
+ surfaceHover?: string;
15
+ /** Opaque surface for floating overlays (modals, menus, popovers) — guarantees readable contrast against decorative backgrounds. */
16
+ elevatedSurface?: string;
17
+ text?: string;
18
+ textDimmed?: string;
19
+ textSubtle?: string;
20
+ border?: string;
21
+ error?: string;
22
+ warning?: string;
23
+ success?: string;
24
+ glassBackground?: string;
25
+ glassBlur?: string;
26
+ shadow?: string;
27
+ cardShadow?: string;
28
+ durationFast?: string;
29
+ durationNormal?: string;
30
+ easing?: string;
31
+ /** Foreground text color for destructive/error buttons. Defaults to '#fff'. */
32
+ destructiveFg?: string;
33
+ /** Heading font family — used for titles, section headers. */
34
+ fontHeading?: string;
35
+ /** Body font family — used for general text. */
36
+ fontSans?: string;
37
+ }
38
+
39
+ /** Framework-agnostic theme overrides bundled with a preset (fonts, radius, component styles). */
40
+ interface FrameworkThemeOverrides {
41
+ fontFamily?: string;
42
+ defaultRadius?: string;
43
+ headings?: {
44
+ fontFamily?: string;
45
+ fontWeight?: string;
46
+ };
47
+ components?: Record<string, unknown>;
48
+ }
49
+ /** Tokens every preset must define. `elevatedSurface` is progressively adopted and stays optional. */
50
+ type PresetTokens = Required<Omit<ElevasisTokenOverrides, 'elevatedSurface'>> & Pick<ElevasisTokenOverrides, 'elevatedSurface'>;
51
+ interface ThemePreset {
52
+ light: PresetTokens;
53
+ dark: PresetTokens;
54
+ /** Optional framework theme overrides bundled with this preset (fonts, radius, etc.). */
55
+ framework?: FrameworkThemeOverrides;
56
+ /**
57
+ * Subtitle font family — used for card names, section labels, and nav items.
58
+ * Sits between heading and body in the typographic hierarchy.
59
+ */
60
+ subtitleFontFamily?: string;
61
+ /** Google Fonts URLs to load when this preset is active. */
62
+ fontImports?: string[];
63
+ /** Display label for settings UI (e.g. "Tactical"). Built-in presets define this; custom presets must provide it. */
64
+ label?: string;
65
+ /** Short description for settings UI (e.g. "Tactical command center aesthetic"). */
66
+ description?: string;
67
+ /** Three representative hex colors for swatch display: [primary, dark-bg, light-bg]. */
68
+ colors?: [string, string, string];
69
+ /**
70
+ * Background layers rendered behind app content when this preset is active.
71
+ * Overridden by `theme.background` on the provider if both are set.
72
+ */
73
+ background?: ReactNode;
74
+ /**
75
+ * Loader element used in loading states when this preset is active.
76
+ * Overridden by `theme.loader` on the provider if both are set.
77
+ */
78
+ loader?: ReactNode;
79
+ }
80
+ 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';
81
+
82
+ /** 10-shade color tuple (light → dark), compatible with Mantine's color format. */
83
+ type ColorShadesTuple = [string, string, string, string, string, string, string, string, string, string];
84
+ /**
85
+ * Generate a 10-shade Mantine color tuple from a single hex color.
86
+ * Input color maps to shade 6 (Mantine's default primary shade).
87
+ * Shades 0-5 are progressively lighter, 7-9 are progressively darker.
88
+ */
89
+ declare function generateShades(hex: string): ColorShadesTuple;
90
+
91
+ declare const PRESETS: Record<PresetName, ThemePreset>;
92
+
93
+ /** Look up a preset by name. Falls back to default preset for unknown names. */
94
+ declare function getPreset(name: PresetName | (string & {}), presetsMap?: Record<string, ThemePreset>): ThemePreset;
95
+
96
+ export { generateShades, getPreset, PRESETS as presets };
97
+ export type { FrameworkThemeOverrides, PresetName, ThemePreset };
@@ -0,0 +1,3 @@
1
+ export { THEME_PRESETS, ThemePresetEnum, generateShades, getPreset, PRESETS as presets } from '../../chunk-HLFFKKT3.js';
2
+ import '../../chunk-WLOQ4IBG.js';
3
+ import '../../chunk-I2KLQ2HA.js';
@@ -209,56 +209,6 @@ interface ExecutionLogMessage {
209
209
  context?: LogContext;
210
210
  }
211
211
 
212
- /**
213
- * Shared form field types for dynamic form generation
214
- * Used by: Command Queue, Execution Runner UI, future form-based features
215
- */
216
- /**
217
- * Supported form field types for action payloads
218
- * Maps to Mantine form components
219
- */
220
- type FormFieldType = 'text' | 'textarea' | 'number' | 'select' | 'checkbox' | 'radio' | 'richtext';
221
- /**
222
- * Form field definition
223
- */
224
- interface FormField {
225
- /** Field key in payload object */
226
- name: string;
227
- /** Field label for UI */
228
- label: string;
229
- /** Field type (determines UI component) */
230
- type: FormFieldType;
231
- /** Default value */
232
- defaultValue?: unknown;
233
- /** Required field */
234
- required?: boolean;
235
- /** Placeholder text */
236
- placeholder?: string;
237
- /** Help text */
238
- description?: string;
239
- /** Options for select/radio */
240
- options?: Array<{
241
- label: string;
242
- value: string | number;
243
- }>;
244
- /** Min/max for number */
245
- min?: number;
246
- max?: number;
247
- /** Path to context value for pre-filling (dot notation, e.g., 'proposal.summary') */
248
- defaultValueFromContext?: string;
249
- }
250
- /**
251
- * Form schema for action payload collection
252
- */
253
- interface FormSchema {
254
- /** Form title */
255
- title?: string;
256
- /** Form description */
257
- description?: string;
258
- /** Form fields */
259
- fields: FormField[];
260
- }
261
-
262
212
  /**
263
213
  * Serialized Registry Types
264
214
  *
@@ -266,67 +216,6 @@ interface FormSchema {
266
216
  * Serialization happens once at API startup, enabling instant response times.
267
217
  */
268
218
 
269
- /**
270
- * Serialized form field for API responses
271
- */
272
- interface SerializedFormField {
273
- name: string;
274
- label: string;
275
- type: FormFieldType;
276
- defaultValue?: unknown;
277
- required?: boolean;
278
- placeholder?: string;
279
- description?: string;
280
- options?: Array<{
281
- label: string;
282
- value: string | number;
283
- }>;
284
- min?: number;
285
- max?: number;
286
- }
287
- /**
288
- * Serialized form schema for API responses
289
- */
290
- interface SerializedFormSchema {
291
- title?: string;
292
- description?: string;
293
- fields: SerializedFormField[];
294
- layout?: 'vertical' | 'horizontal' | 'grid';
295
- }
296
- /**
297
- * Serialized execution form schema for API responses
298
- */
299
- interface SerializedExecutionFormSchema extends SerializedFormSchema {
300
- fieldMappings?: Record<string, string>;
301
- submitButton?: {
302
- label?: string;
303
- loadingLabel?: string;
304
- confirmMessage?: string;
305
- };
306
- }
307
- /**
308
- * Serialized schedule config for API responses
309
- */
310
- interface SerializedScheduleConfig {
311
- enabled: boolean;
312
- defaultSchedule?: string;
313
- allowedPatterns?: string[];
314
- }
315
- /**
316
- * Serialized webhook config for API responses
317
- */
318
- interface SerializedWebhookConfig {
319
- enabled: boolean;
320
- payloadSchema?: unknown;
321
- }
322
- /**
323
- * Serialized execution interface for API responses
324
- */
325
- interface SerializedExecutionInterface {
326
- form: SerializedExecutionFormSchema;
327
- schedule?: SerializedScheduleConfig;
328
- webhook?: SerializedWebhookConfig;
329
- }
330
219
  /**
331
220
  * Serialized agent definition (JSON-safe)
332
221
  * Result of serializeDefinition(AgentDefinition)
@@ -382,7 +271,6 @@ interface SerializedAgentDefinition {
382
271
  }>;
383
272
  };
384
273
  metricsConfig?: object;
385
- interface?: SerializedExecutionInterface;
386
274
  }
387
275
  /**
388
276
  * Serialized workflow definition (JSON-safe)
@@ -422,7 +310,6 @@ interface SerializedWorkflowDefinition {
422
310
  outputSchema?: object;
423
311
  };
424
312
  metricsConfig?: object;
425
- interface?: SerializedExecutionInterface;
426
313
  }
427
314
 
428
315
  /**
@@ -523,6 +410,56 @@ interface ModelConfig {
523
410
  modelOptions?: ModelSpecificOptions;
524
411
  }
525
412
 
413
+ /**
414
+ * Shared form field types for dynamic form generation
415
+ * Used by: Command Queue, Execution Runner UI, future form-based features
416
+ */
417
+ /**
418
+ * Supported form field types for action payloads
419
+ * Maps to Mantine form components
420
+ */
421
+ type FormFieldType = 'text' | 'textarea' | 'number' | 'select' | 'checkbox' | 'radio' | 'richtext';
422
+ /**
423
+ * Form field definition
424
+ */
425
+ interface FormField {
426
+ /** Field key in payload object */
427
+ name: string;
428
+ /** Field label for UI */
429
+ label: string;
430
+ /** Field type (determines UI component) */
431
+ type: FormFieldType;
432
+ /** Default value */
433
+ defaultValue?: unknown;
434
+ /** Required field */
435
+ required?: boolean;
436
+ /** Placeholder text */
437
+ placeholder?: string;
438
+ /** Help text */
439
+ description?: string;
440
+ /** Options for select/radio */
441
+ options?: Array<{
442
+ label: string;
443
+ value: string | number;
444
+ }>;
445
+ /** Min/max for number */
446
+ min?: number;
447
+ max?: number;
448
+ /** Path to context value for pre-filling (dot notation, e.g., 'proposal.summary') */
449
+ defaultValueFromContext?: string;
450
+ }
451
+ /**
452
+ * Form schema for action payload collection
453
+ */
454
+ interface FormSchema {
455
+ /** Form title */
456
+ title?: string;
457
+ /** Form description */
458
+ description?: string;
459
+ /** Form fields */
460
+ fields: FormField[];
461
+ }
462
+
526
463
  /**
527
464
  * Workflow step state
528
465
  * Aggregates step context events with timing and logs
@@ -3909,6 +3846,22 @@ interface SessionTokenUsage {
3909
3846
  contextWindowSize: number;
3910
3847
  }
3911
3848
 
3849
+ /**
3850
+ * Single source of truth for all active theme preset names.
3851
+ *
3852
+ * This is the canonical list. To add a preset:
3853
+ * 1. Add the name here.
3854
+ * 2. Create `packages/ui/src/theme/presets/{name}.ts` exporting `{name}Preset: ThemePreset`.
3855
+ * 3. Add to `PRESETS` record in `packages/ui/src/theme/presets/index.ts`.
3856
+ * 4. Add to `PresetName` union in `packages/ui/src/theme/presets/types.ts`.
3857
+ * 5. Add a card in `apps/command-center/src/features/settings/appearance/components/AppearanceSettings.tsx`.
3858
+ *
3859
+ * The union type (`ThemePresetName`) and Zod enum (`ThemePresetEnum`) are derived
3860
+ * automatically — no other files need updating.
3861
+ */
3862
+ declare const THEME_PRESETS: readonly ["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"];
3863
+ type ThemePresetName = (typeof THEME_PRESETS)[number];
3864
+
3912
3865
  /**
3913
3866
  * Multi-tenancy configuration types
3914
3867
  *
@@ -3917,6 +3870,7 @@ interface SessionTokenUsage {
3917
3870
  * - org_memberships.config: Per-user-per-org feature overrides
3918
3871
  * - users.config: User-global config
3919
3872
  */
3873
+
3920
3874
  /**
3921
3875
  * Per-user-per-org config (stored in org_memberships.config)
3922
3876
  * Controls which features a specific member can access within their org.
@@ -3931,7 +3885,7 @@ interface MembershipFeatureConfig {
3931
3885
  */
3932
3886
  interface UserConfig {
3933
3887
  theme?: {
3934
- preset?: 'default' | 'tactical' | 'regal' | 'cyber-volt' | 'aurora' | 'rose-gold' | 'midnight' | 'titanium' | 'obsidian' | 'honey' | 'abyss' | 'canopy' | 'slate' | 'cyber-strike' | 'cyber-chrome' | 'cyber-void' | 'nirvana' | 'wave' | 'synapse' | 'cortex' | 'helios' | 'graphite' | 'quarry' | 'canyon' | 'nord' | 'catppuccin' | 'tokyo-night' | 'gruvbox';
3888
+ preset?: ThemePresetName;
3935
3889
  colorScheme?: 'light' | 'dark' | 'auto';
3936
3890
  };
3937
3891
  onboarding?: {
@@ -4865,7 +4819,7 @@ interface APIExecutionListResponse {
4865
4819
  }
4866
4820
 
4867
4821
  /**
4868
- * @deprecated Use TimeRange from '@repo/core' directly. Kept as alias for backward compatibility.
4822
+ * @deprecated Use TimeRange from '@elevasis/core' directly. Kept as alias for backward compatibility.
4869
4823
  */
4870
4824
  type StatsTimeRange = TimeRange;
4871
4825
  /** Stats returned by /command-view/stats (counts only, no error details) */
@@ -5043,7 +4997,7 @@ type CommandQueueSSEEvent = CommandQueueTaskUpdatedEvent | CommandQueueConnected
5043
4997
  /**
5044
4998
  * Execution Runner Types
5045
4999
  *
5046
- * Shared types for the Execution Runner UI feature.
5000
+ * Shared types for execution history and run responses.
5047
5001
  * Used by both API (apps/api) and frontend (apps/command-center).
5048
5002
  */
5049
5003
 
@@ -5052,15 +5006,6 @@ interface ExecutionMetrics {
5052
5006
  stepCount?: number;
5053
5007
  toolCallCount?: number;
5054
5008
  }
5055
- interface ExecutionRunnerCatalogItem {
5056
- resourceId: string;
5057
- resourceName: string;
5058
- resourceType: 'workflow' | 'agent';
5059
- description?: string;
5060
- status: 'dev' | 'prod';
5061
- version: string;
5062
- interface: SerializedExecutionInterface;
5063
- }
5064
5009
  interface ExecutionSummary {
5065
5010
  id: string;
5066
5011
  resourceId: string;
@@ -5287,4 +5232,4 @@ declare const WebhookEndpointResponseSchema: z.ZodObject<{
5287
5232
  }, z.core.$strip>;
5288
5233
  type WebhookEndpointResponse = z.infer<typeof WebhookEndpointResponseSchema>;
5289
5234
 
5290
- export type { AIResourceDefinition, APIExecutionDetail, APIExecutionListResponse, APIExecutionSummary, AbsoluteScheduleConfig, AbsoluteScheduleItem, ActionConfig, Activity, ActivitySSEEvent, ActivityStatus, ActivityType, AgentIterationData, AgentMemory, ApiKeyListItem, BusinessImpactMetrics, ChatMessage, CheckpointListResponse, CommandQueueSSEEvent, CommandViewAgent, CommandViewData, CommandViewNode, CommandViewNodeType, CommandViewStatsResponse, CommandViewWorkflow, CostBreakdownMetrics, CostByModelResponse, CostSummaryResponse, CostTrendsResponse, CreateWebhookEndpointRequest, CredentialField, CredentialListItem, CredentialSchema, DashboardMetrics, DealListItem, DealStage, Deployment, DeploymentStatus, ErrorAnalysisMetrics, ErrorDetailFull, ErrorDetailResponse, ErrorTrend, ExecutionHealthMetrics, ExecutionHistoryItem, ExecutionHistoryResponse, ExecutionLogMessage, ExecutionMetricsDetail, ExecutionRunnerCatalogItem, ExecutionSSEEvent, ExecutionStatus, ExecutionSummary, FailingResource, HumanCheckpointDefinition, HumanCheckpointStats, KanbanBoardConfig, ListMembershipsParams, MembershipFeatureConfig, MembershipStatus, MembershipWithDetails, MessageEvent, MessageType, ModelConfig, NotificationDTO, NotificationSSEEvent, OAuthProviderConfig, PatchTaskParams, QueueTaskStatus, RecentExecutionsByResourceResponse, RecurringScheduleConfig, RelativeScheduleConfig, RelativeScheduleItem, ResourceCategory, ResourceDefinition, ResourceErrorsResponse, ResourceExecutionSummary, ResourceExecutionsResponse, ResourceHealth, ResourceIdentifier, ResourceLink, ResourceStats, ResourceStatus, ResourceType, ResourcesHealthResponse, SerializedAgentDefinition, SerializedExecutionInterface, SerializedWorkflowDefinition, SessionDTO, SessionTokenUsage, StatsTimeRange, SupabaseUserProfile, Task, TaskSchedule, TaskScheduleConfig, TimeRange, WorkflowNodeVisualizerData as TimelineData, UpdateWebhookEndpointRequest, UserConfig, WebhookEndpoint, WebhookEndpointResponse };
5235
+ export type { AIResourceDefinition, APIExecutionDetail, APIExecutionListResponse, APIExecutionSummary, AbsoluteScheduleConfig, AbsoluteScheduleItem, ActionConfig, Activity, ActivitySSEEvent, ActivityStatus, ActivityType, AgentIterationData, AgentMemory, ApiKeyListItem, BusinessImpactMetrics, ChatMessage, CheckpointListResponse, CommandQueueSSEEvent, CommandViewAgent, CommandViewData, CommandViewNode, CommandViewNodeType, CommandViewStatsResponse, CommandViewWorkflow, CostBreakdownMetrics, CostByModelResponse, CostSummaryResponse, CostTrendsResponse, CreateWebhookEndpointRequest, CredentialField, CredentialListItem, CredentialSchema, DashboardMetrics, DealListItem, DealStage, Deployment, DeploymentStatus, ErrorAnalysisMetrics, ErrorDetailFull, ErrorDetailResponse, ErrorTrend, ExecutionHealthMetrics, ExecutionHistoryItem, ExecutionHistoryResponse, ExecutionLogMessage, ExecutionMetricsDetail, ExecutionSSEEvent, ExecutionStatus, ExecutionSummary, FailingResource, HumanCheckpointDefinition, HumanCheckpointStats, KanbanBoardConfig, ListMembershipsParams, MembershipFeatureConfig, MembershipStatus, MembershipWithDetails, MessageEvent, MessageType, ModelConfig, NotificationDTO, NotificationSSEEvent, OAuthProviderConfig, PatchTaskParams, QueueTaskStatus, RecentExecutionsByResourceResponse, RecurringScheduleConfig, RelativeScheduleConfig, RelativeScheduleItem, ResourceCategory, ResourceDefinition, ResourceErrorsResponse, ResourceExecutionSummary, ResourceExecutionsResponse, ResourceHealth, ResourceIdentifier, ResourceLink, ResourceStats, ResourceStatus, ResourceType, ResourcesHealthResponse, SerializedAgentDefinition, SerializedWorkflowDefinition, SessionDTO, SessionTokenUsage, StatsTimeRange, SupabaseUserProfile, Task, TaskSchedule, TaskScheduleConfig, TimeRange, WorkflowNodeVisualizerData as TimelineData, UpdateWebhookEndpointRequest, UserConfig, WebhookEndpoint, WebhookEndpointResponse };
@@ -1,3 +1,3 @@
1
- export { APIClientError, API_URL, DEBOUNCE_FILTER, DEBOUNCE_SLIDER, GC_TIME_LONG, GC_TIME_MEDIUM, GC_TIME_SHORT, LIMIT_ACTIVITY_FEED, OAUTH_FLOW_TIMEOUT, OAUTH_POPUP_CHECK_INTERVAL, PAGE_SIZE_DEFAULT, REFETCH_INTERVAL_DASHBOARD, REFETCH_INTERVAL_REALTIME, REFETCH_INTERVAL_RUNNING, REFETCH_INTERVAL_RUNNING_FAST, SSE_CLOSE_GRACE_PERIOD, SSE_TOKEN_REFRESH_DELAY, STALE_TIME_ADMIN, STALE_TIME_DEFAULT, STALE_TIME_MONITORING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, debounce, formatChartAxisDate, formatDate, formatDateTime, formatErrorMessage, formatRelativeTime, formatTimeAgo, getErrorInfo, getErrorTitle, getResourceColor, getResourceIcon, getTimeRangeDates, getTimeRangeLabel, isAPIClientError, restoreConsole, setupBrowserMocks, suppressKnownWarnings, validateEmail } from '../chunk-SGXXJE52.js';
1
+ export { APIClientError, API_URL, DEBOUNCE_FILTER, DEBOUNCE_SLIDER, GC_TIME_LONG, GC_TIME_MEDIUM, GC_TIME_SHORT, LIMIT_ACTIVITY_FEED, OAUTH_FLOW_TIMEOUT, OAUTH_POPUP_CHECK_INTERVAL, PAGE_SIZE_DEFAULT, REFETCH_INTERVAL_DASHBOARD, REFETCH_INTERVAL_REALTIME, REFETCH_INTERVAL_RUNNING, REFETCH_INTERVAL_RUNNING_FAST, SSE_CLOSE_GRACE_PERIOD, SSE_TOKEN_REFRESH_DELAY, STALE_TIME_ADMIN, STALE_TIME_DEFAULT, STALE_TIME_MONITORING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, debounce, formatChartAxisDate, formatDate, formatDateTime, formatErrorMessage, formatRelativeTime, formatTimeAgo, getErrorInfo, getErrorTitle, getResourceColor, getResourceIcon, getTimeRangeDates, getTimeRangeLabel, isAPIClientError, restoreConsole, setupBrowserMocks, suppressKnownWarnings, validateEmail } from '../chunk-QD4X4H5A.js';
2
2
  export { ResourceStatusColors } from '../chunk-KRWALB24.js';
3
3
  import '../chunk-I2KLQ2HA.js';
@@ -0,0 +1,7 @@
1
+ import { Plugin } from 'vite';
2
+
3
+ declare function knowledgePlugin(): Plugin;
4
+
5
+ declare function elevasisVite(): Plugin[];
6
+
7
+ export { elevasisVite, knowledgePlugin };
@@ -0,0 +1,10 @@
1
+ import { knowledgePlugin } from '../chunk-MYEOTM7D.js';
2
+ export { knowledgePlugin } from '../chunk-MYEOTM7D.js';
3
+ import '../chunk-I2KLQ2HA.js';
4
+
5
+ // src/vite/index.ts
6
+ function elevasisVite() {
7
+ return [knowledgePlugin()];
8
+ }
9
+
10
+ export { elevasisVite };
@@ -1,37 +1,5 @@
1
1
  import { Plugin } from 'vite';
2
2
 
3
- /**
4
- * @elevasis/ui Vite plugin for knowledge bodies codegen.
5
- *
6
- * Runs the knowledge-bodies codegen at the following trigger points:
7
- * - buildStart: cold start (covers both `vite dev` and `vite build`)
8
- * - handleHotUpdate: file changes under packages/core/src/organization-model/
9
- *
10
- * Usage in vite.config.ts:
11
- *
12
- * import { knowledgePlugin } from '@repo/ui/vite-plugin-knowledge'
13
- * // or (after publish):
14
- * import { knowledgePlugin } from '@elevasis/ui/vite-plugin-knowledge'
15
- *
16
- * export default defineConfig({
17
- * plugins: [knowledgePlugin()],
18
- * })
19
- *
20
- * Wave 5a wires this into apps/command-center/vite.config.ts.
21
- */
22
-
23
- interface KnowledgePluginOptions {
24
- /**
25
- * Absolute path to the monorepo root.
26
- * Defaults to auto-detected from this file's location (packages/ui/src/vite-plugin-knowledge/).
27
- * Override when the plugin is used from a project where the monorepo root differs.
28
- */
29
- monorepoRoot?: string;
30
- }
31
- /**
32
- * Vite plugin: knowledge bodies codegen + HMR.
33
- */
34
- declare function knowledgePlugin(options?: KnowledgePluginOptions): Plugin;
3
+ declare function knowledgePlugin(): Plugin;
35
4
 
36
5
  export { knowledgePlugin };
37
- export type { KnowledgePluginOptions };
@@ -1,67 +1,2 @@
1
+ export { knowledgePlugin } from '../chunk-MYEOTM7D.js';
1
2
  import '../chunk-I2KLQ2HA.js';
2
- import { spawnSync } from 'child_process';
3
- import { resolve } from 'path';
4
-
5
- function defaultMonorepoRoot() {
6
- return resolve(import.meta.dirname, "..", "..", "..", "..");
7
- }
8
- function generatedBodiesPath(monorepoRoot) {
9
- return resolve(monorepoRoot, "packages", "ui", "src", "knowledge", "_generated", "knowledge-bodies.tsx");
10
- }
11
- function runCodegen(monorepoRoot, logger) {
12
- const scriptPath = resolve(monorepoRoot, "packages", "ui", "scripts", "generate-knowledge-bodies.ts");
13
- logger.info("[knowledge-plugin] Regenerating knowledge bodies...");
14
- const result = spawnSync("pnpm", ["--filter", "@repo/ui", "exec", "tsx", scriptPath], {
15
- stdio: "inherit",
16
- cwd: monorepoRoot,
17
- shell: process.platform === "win32"
18
- });
19
- if (result.error) {
20
- logger.error(`[knowledge-plugin] Codegen spawn failed: ${result.error.message}`);
21
- throw result.error;
22
- }
23
- if (result.status !== 0) {
24
- throw new Error(`[knowledge-plugin] Codegen exited with status ${result.status}`);
25
- }
26
- logger.info("[knowledge-plugin] Knowledge bodies regenerated.");
27
- }
28
- function knowledgePlugin(options = {}) {
29
- const monorepoRoot = options.monorepoRoot ?? defaultMonorepoRoot();
30
- let resolvedConfig;
31
- let watchRoot;
32
- return {
33
- name: "elevasis:knowledge-bodies",
34
- configResolved(config) {
35
- resolvedConfig = config;
36
- watchRoot = resolve(monorepoRoot, "packages", "core", "src", "organization-model");
37
- },
38
- buildStart() {
39
- const logger = resolvedConfig?.logger ?? {
40
- info: (msg) => console.log(msg),
41
- error: (msg) => console.error(msg)
42
- };
43
- runCodegen(monorepoRoot, logger);
44
- if (resolvedConfig?.command === "serve") {
45
- this.addWatchFile(watchRoot);
46
- }
47
- },
48
- handleHotUpdate({ file, server }) {
49
- const isOrgModelChange = file.startsWith(watchRoot);
50
- if (!isOrgModelChange) return;
51
- const logger = server.config.logger;
52
- try {
53
- runCodegen(monorepoRoot, logger);
54
- } catch (err) {
55
- server.config.logger.error(`[knowledge-plugin] Codegen failed: ${String(err)}`);
56
- return;
57
- }
58
- const bodiesModule = server.moduleGraph.getModuleById(generatedBodiesPath(monorepoRoot));
59
- if (bodiesModule) {
60
- server.moduleGraph.invalidateModule(bodiesModule);
61
- server.hot.send({ type: "full-reload" });
62
- }
63
- }
64
- };
65
- }
66
-
67
- export { knowledgePlugin };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elevasis/ui",
3
- "version": "2.25.6",
3
+ "version": "2.26.1",
4
4
  "description": "UI components and platform-aware hooks for building custom frontends on the Elevasis platform",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -108,6 +108,10 @@
108
108
  "types": "./dist/theme/index.d.ts",
109
109
  "import": "./dist/theme/index.js"
110
110
  },
111
+ "./theme/presets": {
112
+ "types": "./dist/theme/presets/index.d.ts",
113
+ "import": "./dist/theme/presets/index.js"
114
+ },
111
115
  "./api": {
112
116
  "types": "./dist/api/index.d.ts",
113
117
  "import": "./dist/api/index.js"
@@ -128,6 +132,10 @@
128
132
  "types": "./dist/knowledge/index.d.ts",
129
133
  "import": "./dist/knowledge/index.js"
130
134
  },
135
+ "./vite": {
136
+ "types": "./dist/vite/index.d.ts",
137
+ "import": "./dist/vite/index.js"
138
+ },
131
139
  "./vite-plugin-knowledge": {
132
140
  "types": "./dist/vite-plugin-knowledge/index.d.ts",
133
141
  "import": "./dist/vite-plugin-knowledge/index.js"
@@ -189,6 +197,7 @@
189
197
  }
190
198
  },
191
199
  "peerDependencies": {
200
+ "@elevasis/sdk": "^1.16.0",
192
201
  "react": "^19.2.0",
193
202
  "react-dom": "^19.2.0",
194
203
  "@tanstack/react-query": "^5.76.2",
@@ -228,6 +237,7 @@
228
237
  "cytoscape": "^3.33.1",
229
238
  "globals": "^16.3.0",
230
239
  "recharts": "^3.2.1",
240
+ "remark-gfm": "^4.0.1",
231
241
  "rollup": "^4.59.0",
232
242
  "rollup-plugin-dts": "^6.3.0",
233
243
  "tsup": "^8.0.0",
@@ -237,13 +247,16 @@
237
247
  "@testing-library/jest-dom": "^6.9.1",
238
248
  "msw": "^2.11.0",
239
249
  "vitest": "^3.2.4",
240
- "@repo/core": "0.15.1",
250
+ "@elevasis/sdk": "1.16.0",
251
+ "@repo/core": "0.16.0",
252
+ "@repo/eslint-config": "0.0.0",
241
253
  "@repo/typescript-config": "0.0.0",
242
- "@repo/eslint-config": "0.0.0"
254
+ "@repo/elevasis-core": "1.0.0"
243
255
  },
244
256
  "dependencies": {
245
257
  "@dagrejs/dagre": "^1.1.4",
246
258
  "@microsoft/fetch-event-source": "^2.0.1",
259
+ "mantine-form-zod-resolver": "^1.3.0",
247
260
  "react-json-pretty": "^2.2.0"
248
261
  },
249
262
  "peerDependenciesMeta": {