@elevasis/ui 1.20.1 → 1.21.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 (58) hide show
  1. package/dist/charts/index.js +3 -2
  2. package/dist/{chunk-COTI2QPO.js → chunk-2WLVOFK7.js} +1 -1
  3. package/dist/chunk-3KMDHCAR.js +52 -0
  4. package/dist/chunk-AWT255UH.js +255 -0
  5. package/dist/{chunk-AWMZCYKH.js → chunk-BC6TJEON.js} +2 -45
  6. package/dist/{chunk-VLTVZXP6.js → chunk-CRFV2TVK.js} +1 -1
  7. package/dist/{chunk-EMN755L5.js → chunk-CTF6FS2M.js} +10 -216
  8. package/dist/{chunk-4SY4EQSK.js → chunk-CYJILY7M.js} +3 -3
  9. package/dist/{chunk-AQ5MQDSS.js → chunk-EDAYKRPJ.js} +404 -2
  10. package/dist/{chunk-XOTN3X3Z.js → chunk-FATKFO7X.js} +3 -54
  11. package/dist/{chunk-ERVB3QJQ.js → chunk-FVBYSDM4.js} +1 -1
  12. package/dist/{chunk-OFAXUZPZ.js → chunk-MOBXWBES.js} +212 -67
  13. package/dist/{chunk-JIABC3AE.js → chunk-NL6EFQYE.js} +515 -265
  14. package/dist/chunk-ROSMICXG.js +668 -0
  15. package/dist/{chunk-C7AD6N23.js → chunk-ST2RSBQ3.js} +364 -364
  16. package/dist/{chunk-JZEXFQ6N.js → chunk-UZWZY7TJ.js} +2 -2
  17. package/dist/{chunk-UMFPUM7Q.js → chunk-V422ET6W.js} +12 -12
  18. package/dist/components/chat/index.d.ts +202 -0
  19. package/dist/components/chat/index.js +2 -0
  20. package/dist/components/index.js +2651 -2899
  21. package/dist/features/dashboard/index.js +8 -7
  22. package/dist/features/monitoring/index.js +9 -8
  23. package/dist/features/operations/index.d.ts +245 -10
  24. package/dist/features/operations/index.js +1114 -168
  25. package/dist/features/settings/index.js +8 -7
  26. package/dist/hooks/index.css +68 -0
  27. package/dist/hooks/index.d.ts +1164 -3
  28. package/dist/hooks/index.js +4 -4
  29. package/dist/hooks/published.css +68 -0
  30. package/dist/hooks/published.d.ts +1164 -3
  31. package/dist/hooks/published.js +3 -3
  32. package/dist/index.css +68 -0
  33. package/dist/index.d.ts +1165 -4
  34. package/dist/index.js +5 -5
  35. package/dist/layout/index.d.ts +3 -3
  36. package/dist/layout/index.js +2 -2
  37. package/dist/provider/index.d.ts +1 -1
  38. package/dist/provider/index.js +2 -2
  39. package/dist/provider/published.d.ts +1 -1
  40. package/dist/theme/index.d.ts +1 -1
  41. package/dist/theme/index.js +2 -2
  42. package/dist/theme/presets/synapse.d.ts +10 -0
  43. package/dist/theme/presets/synapse.d.ts.map +1 -0
  44. package/dist/theme/presets/synapse.js +75 -0
  45. package/package.json +7 -2
  46. package/dist/chunk-JFRG2JJE.js +0 -47
  47. package/dist/theme/presets/__tests__/getPreset.test.d.ts +0 -2
  48. package/dist/theme/presets/__tests__/getPreset.test.d.ts.map +0 -1
  49. package/dist/theme/presets/__tests__/getPreset.test.js +0 -92
  50. package/dist/theme/presets/cyber-volt.d.ts +0 -12
  51. package/dist/theme/presets/cyber-volt.d.ts.map +0 -1
  52. package/dist/theme/presets/cyber-volt.js +0 -70
  53. package/dist/theme/presets/regal.d.ts +0 -8
  54. package/dist/theme/presets/regal.d.ts.map +0 -1
  55. package/dist/theme/presets/regal.js +0 -69
  56. package/dist/theme/presets/rose-gold.d.ts +0 -12
  57. package/dist/theme/presets/rose-gold.d.ts.map +0 -1
  58. package/dist/theme/presets/rose-gold.js +0 -76
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
- export { useAvailablePresets } from './chunk-COTI2QPO.js';
1
+ export { useAvailablePresets } from './chunk-2WLVOFK7.js';
2
2
  import './chunk-XCYKC6OZ.js';
3
- export { ApiKeyService, CredentialService, DeploymentService, OrganizationMembershipService, WebhookEndpointService, filterByDomainFilters, useActivateDeployment, useActivityFilters, useCommandViewDomainFilters, useCreateApiKey, useCreateCredential, useCreateWebhookEndpoint, useCredentials, useDeactivateDeployment, useDeactivateMembership, useDeleteApiKey, useDeleteCredential, useDeleteDeployment, useDeleteWebhookEndpoint, useExecutionLogsFilters, useListApiKeys, useListDeployments, useListWebhookEndpoints, useOrganizationMembers, useReactivateMembership, useResourceSearch, useResourcesDomainFilters, useStatusFilter, useTimeRangeDates, useUpdateApiKey, useUpdateCredential, useUpdateMemberConfig, useUpdateWebhookEndpoint, useUserMemberships, useVisibleResources } from './chunk-XOTN3X3Z.js';
4
- export { OperationsService, createUseFeatureAccess, executionsKeys, isSessionCapable, operationsKeys, scheduleKeys, sessionsKeys, sortData, useActivities, useActivityTrend, useArchiveSession, useArchivedLogs, useBatchDelete, useBatchedResourcesHealth, useBulkDeleteExecutions, useBusinessImpact, useCancelExecution, useCancelSchedule, useCheckpointTasks, useCommandQueue, useCommandQueueTotals, useCommandViewData, useCommandViewLayout, useCommandViewStats, useCommandViewStore, useCostBreakdown, useCostByModel, useCostSummary, useCostTrends, useCreateSchedule, useCreateSession, useDashboardMetrics, useDeleteExecution, useDeleteSchedule, useDeleteSession, useDeleteTask, useDeploymentDocs, useErrorAnalysis, useErrorDetail, useErrorDetails, useErrorDistribution, useErrorNotification, useExecuteAsync, useExecution, useExecutionHealth, useExecutionLogSSE, useExecutionLogs, useExecutionPanelState, useExecutions, useGetExecutionHistory, useGetSchedule, useGraphStats, useListSchedules, useMarkAllAsRead, useMarkAsRead, useNotificationCount as useNotificationCountSSE, useNotifications, usePaginationState, usePatchTask, usePauseSchedule, useRecentExecutionsByResource, useResolveAllErrors, useResolveError, useResolveErrorsByExecution, useResourceDefinition, useResourceErrors, useResourceExecutions, useResources, useResourcesHealth, useResumeSchedule, useRetryExecution, useSSEConnection, useScheduledTasks, useSession, useSessionExecution, useSessionExecutions, useSessionMessages, useSessionWebSocket, useSessions, useSortedData, useSubmitAction, useSuccessNotification, useTableSelection, useTableSort, useTestNotification, useTopFailingResources, useUnresolveError, useUnresolvedErrors, useUpdateAnchor, useUpdateSchedule, useWarningNotification } from './chunk-AQ5MQDSS.js';
3
+ export { ApiKeyService, CredentialService, DeploymentService, OrganizationMembershipService, WebhookEndpointService, filterByDomainFilters, useActivateDeployment, useActivityFilters, useCommandViewDomainFilters, useCreateApiKey, useCreateCredential, useCreateWebhookEndpoint, useCredentials, useDeactivateDeployment, useDeactivateMembership, useDeleteApiKey, useDeleteCredential, useDeleteDeployment, useDeleteWebhookEndpoint, useExecutionLogsFilters, useListApiKeys, useListDeployments, useListWebhookEndpoints, useOrganizationMembers, useReactivateMembership, useResourceSearch, useResourcesDomainFilters, useStatusFilter, useTimeRangeDates, useUpdateApiKey, useUpdateCredential, useUpdateMemberConfig, useUpdateWebhookEndpoint, useUserMemberships, useVisibleResources } from './chunk-FATKFO7X.js';
4
+ export { OperationsService, calibrationKeys, createUseFeatureAccess, executionsKeys, isSessionCapable, operationsKeys, scheduleKeys, sessionsKeys, sortData, useActivities, useActivityTrend, useAllCalibrationProjects, useArchiveSession, useArchivedLogs, useBatchDelete, useBatchedResourcesHealth, useBulkDeleteExecutions, useBusinessImpact, useCalibrationProject, useCalibrationProjects, useCalibrationRun, useCalibrationRunFull, useCalibrationRuns, useCalibrationSSE, useCancelExecution, useCancelSchedule, useCheckpointTasks, useCommandQueue, useCommandQueueTotals, useCommandViewData, useCommandViewLayout, useCommandViewStats, useCommandViewStore, useCostBreakdown, useCostByModel, useCostSummary, useCostTrends, useCreateProject, useCreateRun, useCreateSchedule, useCreateSession, useDashboardMetrics, useDeleteExecution, useDeleteProject, useDeleteRun, useDeleteSchedule, useDeleteSession, useDeleteTask, useDeploymentDocs, useErrorAnalysis, useErrorDetail, useErrorDetails, useErrorDistribution, useErrorNotification, useExecuteAsync, useExecuteRun, useExecution, useExecutionHealth, useExecutionLogSSE, useExecutionLogs, useExecutionPanelState, useExecutions, useGetExecutionHistory, useGetSchedule, useGradeRun, useGraphStats, useListSchedules, useMarkAllAsRead, useMarkAsRead, useNotificationCount as useNotificationCountSSE, useNotifications, usePaginationState, usePatchTask, usePauseSchedule, useRecentExecutionsByResource, useResolveAllErrors, useResolveError, useResolveErrorsByExecution, useResourceDefinition, useResourceErrors, useResourceExecutions, useResources, useResourcesHealth, useResumeSchedule, useRetryExecution, useSSEConnection, useScheduledTasks, useSession, useSessionExecution, useSessionExecutions, useSessionMessages, useSessionWebSocket, useSessions, useSortedData, useSubmitAction, useSuccessNotification, useTableSelection, useTableSort, useTestNotification, useTopFailingResources, useUnresolveError, useUnresolvedErrors, useUpdateAnchor, useUpdateProject, useUpdateSchedule, useWarningNotification } from './chunk-EDAYKRPJ.js';
5
5
  import './chunk-NJJ3NQ7B.js';
6
6
  export { observabilityKeys, useErrorTrends } from './chunk-LXHZYSMQ.js';
7
7
  export { ScrollToTop, TanStackRouterBridge } from './chunk-MHW43EOH.js';
@@ -11,10 +11,10 @@ import './chunk-ELJIFLCB.js';
11
11
  export { OrganizationSwitcher, createOrganizationsSlice, createUseOrgInitialization, createUseOrganizations } from './chunk-L4XXM55J.js';
12
12
  export { createUseAppInitialization } from './chunk-SLVC5OJ2.js';
13
13
  import './chunk-RNP5R5I3.js';
14
- export { ElevasisUIProvider } from './chunk-VLTVZXP6.js';
14
+ export { ElevasisUIProvider } from './chunk-CRFV2TVK.js';
15
15
  import './chunk-R3R367QY.js';
16
16
  import './chunk-SZHARWKU.js';
17
- export { PresetsProvider, TOKEN_VAR_MAP, componentThemes, createCssVariablesResolver, generateShades, getPreset, mantineThemeOverride, PRESETS as presets, usePresetsContext } from './chunk-OFAXUZPZ.js';
17
+ export { PresetsProvider, TOKEN_VAR_MAP, componentThemes, createCssVariablesResolver, generateShades, getPreset, mantineThemeOverride, PRESETS as presets, usePresetsContext } from './chunk-MOBXWBES.js';
18
18
  import './chunk-3DIU726S.js';
19
19
  export { ElevasisCoreProvider, NotificationProvider, useNotificationAdapter } from './chunk-R7WLWGPO.js';
20
20
  export { ApiClientProvider, useApiClient, useApiClientContext } from './chunk-NVOCKXUQ.js';
@@ -41,7 +41,7 @@ declare function AppBackground({ children }: {
41
41
  children?: ReactNode;
42
42
  }): react_jsx_runtime.JSX.Element;
43
43
 
44
- type CyberVariant = 'punk' | 'strike' | 'void' | 'volt';
44
+ type CyberVariant = 'chrome' | 'strike' | 'void' | 'volt';
45
45
  interface CyberParticlesProps {
46
46
  /** Which particle flavor to render. */
47
47
  variant: CyberVariant;
@@ -55,7 +55,7 @@ interface CyberParticlesProps {
55
55
  * that inherit their color from `var(--color-primary)` so they automatically
56
56
  * match the active preset's accent:
57
57
  *
58
- * - `punk` violet sparks
58
+ * - `chrome` brushed slate sparks
59
59
  * - `strike` — red sparks
60
60
  * - `void` — blue sparks
61
61
  * - `volt` — cyan sparks
@@ -85,7 +85,7 @@ interface CyberBackgroundProps {
85
85
  * `ThemePreset.background`. Consumers can still override the full background
86
86
  * per-app via `<ElevasisUIProvider theme={{ background: <Custom/> }}>`.
87
87
  *
88
- * - `punk` — Rising electric sparks (neon violet)
88
+ * - `chrome` — Rising sparks tinted by the slate primary (cool metallic shimmer)
89
89
  * - `strike` — Combat HUD scan sweep + radar pings + targeting brackets
90
90
  * - `void` — Matrix-style digital rain
91
91
  * - `volt` — Circuit-board data flow with animated pulses
@@ -1,5 +1,5 @@
1
- export { AppShellContainer, AppShellContentContainer, AppShellRightSideContainer, AppShellRightSideOuterContainer, AppTopbarAdjusterWrapper, CollapsibleSidebarGroup, LinksGroup, Sidebar, SidebarContext, SidebarListItem, SidebarProvider, SubshellContainer, SubshellContentContainer, SubshellRightSideContainer, SubshellSidebar, Topbar, TopbarContainer, Vignette, subsidebarWidth, useSidebar, useSidebarCollapse } from '../chunk-EMN755L5.js';
2
- export { PageContainer, SubshellLoader, SubshellSidebarSection } from '../chunk-JFRG2JJE.js';
1
+ export { AppShellContainer, AppShellContentContainer, AppShellRightSideContainer, AppShellRightSideOuterContainer, AppTopbarAdjusterWrapper, LinksGroup, Sidebar, SidebarContext, SidebarProvider, SubshellContainer, SubshellContentContainer, SubshellRightSideContainer, SubshellSidebar, Topbar, TopbarContainer, Vignette, subsidebarWidth, useSidebar, useSidebarCollapse } from '../chunk-CTF6FS2M.js';
2
+ export { CollapsibleSidebarGroup, PageContainer, SidebarListItem, SubshellLoader, SubshellSidebarSection } from '../chunk-AWT255UH.js';
3
3
  import '../chunk-NNKKBSJN.js';
4
4
  export { AppShellCenteredContainer, AppShellError, AppShellLoader } from '../chunk-WWEMNIHW.js';
5
5
  export { sidebarBottomSectionCollapsedHeight, sidebarBottomSectionHeight, sidebarCollapsedWidth, sidebarGroupChevronSize, sidebarHoverDelay, sidebarIconInnerSize, sidebarIconSize, sidebarIconStroke, sidebarItemGap, sidebarItemHeight, sidebarItemPadding, sidebarListItemIconSize, sidebarSectionPadding, sidebarSubLinkIndent, sidebarSubLinkPaddingX, sidebarSubLinkPaddingY, sidebarToggleIconSize, sidebarTransitionDuration, sidebarWidth, topbarHeight } from '../chunk-QJ2S46NI.js';
@@ -42,7 +42,7 @@ interface ThemePreset {
42
42
  */
43
43
  loader?: ReactNode;
44
44
  }
45
- type PresetName = 'default' | 'tactical' | 'regal' | 'cyber-volt' | 'aurora' | 'rose-gold' | 'midnight' | 'ember' | 'honey' | 'canopy' | 'slate' | 'cyber-strike' | 'cyber-punk' | 'cyber-void' | 'nirvana' | 'wave' | 'synapse' | 'cortex' | 'helios' | 'graphite';
45
+ type PresetName = 'default' | 'tactical' | 'regal' | 'cyber-volt' | 'aurora' | 'rose-gold' | 'midnight' | 'ember' | 'honey' | 'canopy' | 'slate' | 'cyber-strike' | 'cyber-chrome' | 'cyber-void' | 'nirvana' | 'wave' | 'synapse' | 'cortex' | 'helios' | 'graphite';
46
46
 
47
47
  interface ApiErrorDetails {
48
48
  method: string;
@@ -1,7 +1,7 @@
1
- export { ElevasisUIProvider } from '../chunk-VLTVZXP6.js';
1
+ export { ElevasisUIProvider } from '../chunk-CRFV2TVK.js';
2
2
  import '../chunk-R3R367QY.js';
3
3
  import '../chunk-SZHARWKU.js';
4
- import '../chunk-OFAXUZPZ.js';
4
+ import '../chunk-MOBXWBES.js';
5
5
  import '../chunk-3DIU726S.js';
6
6
  export { ElevasisCoreProvider, NotificationProvider, useNotificationAdapter } from '../chunk-R7WLWGPO.js';
7
7
  import '../chunk-NVOCKXUQ.js';
@@ -41,7 +41,7 @@ interface ThemePreset {
41
41
  */
42
42
  loader?: ReactNode;
43
43
  }
44
- type PresetName = 'default' | 'tactical' | 'regal' | 'cyber-volt' | 'aurora' | 'rose-gold' | 'midnight' | 'ember' | 'honey' | 'canopy' | 'slate' | 'cyber-strike' | 'cyber-punk' | 'cyber-void' | 'nirvana' | 'wave' | 'synapse' | 'cortex' | 'helios' | 'graphite';
44
+ type PresetName = 'default' | 'tactical' | 'regal' | 'cyber-volt' | 'aurora' | 'rose-gold' | 'midnight' | 'ember' | 'honey' | 'canopy' | 'slate' | 'cyber-strike' | 'cyber-chrome' | 'cyber-void' | 'nirvana' | 'wave' | 'synapse' | 'cortex' | 'helios' | 'graphite';
45
45
 
46
46
  interface ApiErrorDetails {
47
47
  method: string;
@@ -96,7 +96,7 @@ interface ThemePreset {
96
96
  */
97
97
  loader?: ReactNode;
98
98
  }
99
- type PresetName = 'default' | 'tactical' | 'regal' | 'cyber-volt' | 'aurora' | 'rose-gold' | 'midnight' | 'ember' | 'honey' | 'canopy' | 'slate' | 'cyber-strike' | 'cyber-punk' | 'cyber-void' | 'nirvana' | 'wave' | 'synapse' | 'cortex' | 'helios' | 'graphite';
99
+ type PresetName = 'default' | 'tactical' | 'regal' | 'cyber-volt' | 'aurora' | 'rose-gold' | 'midnight' | 'ember' | 'honey' | 'canopy' | 'slate' | 'cyber-strike' | 'cyber-chrome' | 'cyber-void' | 'nirvana' | 'wave' | 'synapse' | 'cortex' | 'helios' | 'graphite';
100
100
 
101
101
  /** 10-shade color tuple (light → dark), compatible with Mantine's color format. */
102
102
  type ColorShadesTuple = [string, string, string, string, string, string, string, string, string, string];
@@ -1,3 +1,3 @@
1
- export { useAvailablePresets } from '../chunk-COTI2QPO.js';
2
- export { PresetsProvider, TOKEN_VAR_MAP, componentThemes, createCssVariablesResolver, generateShades, getPreset, mantineThemeOverride, PRESETS as presets, usePresetsContext } from '../chunk-OFAXUZPZ.js';
1
+ export { useAvailablePresets } from '../chunk-2WLVOFK7.js';
2
+ export { PresetsProvider, TOKEN_VAR_MAP, componentThemes, createCssVariablesResolver, generateShades, getPreset, mantineThemeOverride, PRESETS as presets, usePresetsContext } from '../chunk-MOBXWBES.js';
3
3
  import '../chunk-3DIU726S.js';
@@ -0,0 +1,10 @@
1
+ import type { ThemePreset } from './types';
2
+ /**
3
+ * Synapse preset — scientific / neural network aesthetic:
4
+ * - Space Grotesk headings / Inter body
5
+ * - Cyan `#22D3EE` brand accent on near-black background
6
+ * - Drifting constellation canvas background (canvas-based particle network)
7
+ * - Clean, cerebral feel with subtle glass surfaces
8
+ */
9
+ export declare const synapsePreset: ThemePreset;
10
+ //# sourceMappingURL=synapse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synapse.d.ts","sourceRoot":"","sources":["../../../src/theme/presets/synapse.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,EAAE,WAuE3B,CAAA"}
@@ -0,0 +1,75 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { AmbientBloom } from '../../components/layout/backgrounds/AmbientBloom';
3
+ import { ConstellationBackground } from '../../components/layout/backgrounds/ConstellationBackground';
4
+ /**
5
+ * Synapse preset — scientific / neural network aesthetic:
6
+ * - Space Grotesk headings / Inter body
7
+ * - Cyan `#22D3EE` brand accent on near-black background
8
+ * - Drifting constellation canvas background (canvas-based particle network)
9
+ * - Clean, cerebral feel with subtle glass surfaces
10
+ */
11
+ export const synapsePreset = {
12
+ subtitleFontFamily: '"Space Grotesk", sans-serif',
13
+ fontImports: [
14
+ 'https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap',
15
+ 'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap'
16
+ ],
17
+ colors: ['#22D3EE', '#020305', '#F0FAFB'],
18
+ background: (_jsxs(_Fragment, { children: [_jsx(ConstellationBackground, {}), _jsx(AmbientBloom, { intensity: 0.12 })] })),
19
+ light: {
20
+ primary: '#0891B2',
21
+ primaryContrast: '#ffffff',
22
+ background: '#F0FAFB',
23
+ surface: 'transparent',
24
+ surfaceHover: 'rgba(8, 145, 178, 0.08)',
25
+ text: '#04141A',
26
+ textDimmed: '#1A3D48',
27
+ textSubtle: '#547078',
28
+ border: 'rgba(4, 20, 26, 0.11)',
29
+ error: '#DC2626',
30
+ warning: '#F59E0B',
31
+ success: '#16A34A',
32
+ glassBackground: 'rgba(240, 250, 251, 0.42)',
33
+ glassBlur: 'blur(20px) saturate(180%)',
34
+ shadow: '0px 1px 2px rgba(4, 20, 26, 0.04), 0px 8px 24px -8px rgba(8, 145, 178, 0.14)',
35
+ cardShadow: 'inset 0 1px 0 rgba(255, 255, 255, 0.6), inset 0 0 0 1px rgba(255, 255, 255, 0.4), 0 1px 2px rgba(4, 20, 26, 0.04), 0 8px 24px -8px rgba(8, 145, 178, 0.12), 0 24px 48px -16px rgba(8, 145, 178, 0.08)',
36
+ durationFast: '120ms',
37
+ durationNormal: '220ms',
38
+ easing: 'cubic-bezier(0.22, 0, 0.1, 1)',
39
+ destructiveFg: '#ffffff',
40
+ fontHeading: '"Space Grotesk", sans-serif',
41
+ fontSans: '"Inter", sans-serif'
42
+ },
43
+ dark: {
44
+ primary: '#0A8A9E',
45
+ primaryContrast: '#ffffff',
46
+ background: '#000000',
47
+ surface: 'transparent',
48
+ surfaceHover: 'rgba(34, 211, 238, 0.06)',
49
+ text: '#ECFEFF',
50
+ textDimmed: '#A5F3FC',
51
+ textSubtle: '#5F8A94',
52
+ border: 'rgba(34, 211, 238, 0.1)',
53
+ error: '#F87171',
54
+ warning: '#FBBF24',
55
+ success: '#4ADE80',
56
+ glassBackground: 'rgba(6, 12, 16, 0.2)',
57
+ glassBlur: 'blur(20px) saturate(180%)',
58
+ shadow: '0 1px 2px rgba(0, 0, 0, 0.4), 0 4px 12px rgba(0, 0, 0, 0.3), 0 16px 36px -14px rgba(0, 0, 0, 0.4)',
59
+ cardShadow: 'inset 0 1px 0 rgba(255, 255, 255, 0.04), inset 0 0 0 1px rgba(34, 211, 238, 0.06), 0 1px 2px rgba(0, 0, 0, 0.6), 0 4px 10px rgba(0, 0, 0, 0.35), 0 14px 28px -10px rgba(0, 0, 0, 0.45), 0 24px 48px -18px rgba(0, 0, 0, 0.35)',
60
+ durationFast: '120ms',
61
+ durationNormal: '220ms',
62
+ easing: 'cubic-bezier(0.22, 0, 0.1, 1)',
63
+ destructiveFg: '#ffffff',
64
+ fontHeading: '"Space Grotesk", sans-serif',
65
+ fontSans: '"Inter", sans-serif'
66
+ },
67
+ framework: {
68
+ fontFamily: '"Inter", sans-serif',
69
+ defaultRadius: 'md',
70
+ headings: {
71
+ fontFamily: '"Space Grotesk", sans-serif',
72
+ fontWeight: '600'
73
+ }
74
+ }
75
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elevasis/ui",
3
- "version": "1.20.1",
3
+ "version": "1.21.0",
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",
@@ -115,6 +115,10 @@
115
115
  "types": "./dist/components/navigation/index.d.ts",
116
116
  "import": "./dist/components/navigation/index.js"
117
117
  },
118
+ "./components/chat": {
119
+ "types": "./dist/components/chat/index.d.ts",
120
+ "import": "./dist/components/chat/index.js"
121
+ },
118
122
  "./components/index.css": "./dist/components/index.css",
119
123
  "./graph/index.css": "./dist/graph/index.css",
120
124
  "./provider/index.css": "./dist/provider/index.css",
@@ -240,7 +244,8 @@
240
244
  },
241
245
  "dependencies": {
242
246
  "@dagrejs/dagre": "^1.1.4",
243
- "@microsoft/fetch-event-source": "^2.0.1"
247
+ "@microsoft/fetch-event-source": "^2.0.1",
248
+ "react-json-pretty": "^2.2.0"
244
249
  },
245
250
  "scripts": {
246
251
  "build": "tsc --noEmit",
@@ -1,47 +0,0 @@
1
- import { useAppearance } from './chunk-QJ2KCHKX.js';
2
- import { Container, Stack, Box, Group, Text, Center } from '@mantine/core';
3
- import { jsx, jsxs } from 'react/jsx-runtime';
4
-
5
- var PageContainer = ({ children }) => {
6
- return (
7
- // Add padding to the top of the container to adjust for the topbar height
8
- /* @__PURE__ */ jsx(Container, { size: "xl", p: 0, w: "100%", children: /* @__PURE__ */ jsx(Stack, { gap: "lg", children }) })
9
- );
10
- };
11
- var SubshellSidebarSection = ({
12
- icon: Icon,
13
- label,
14
- rightSection,
15
- withTopBorder = false
16
- }) => {
17
- return /* @__PURE__ */ jsx(
18
- Box,
19
- {
20
- p: "sm",
21
- style: {
22
- borderTop: withTopBorder ? "1px solid var(--color-border)" : void 0,
23
- borderBottom: "1px solid var(--color-border)"
24
- },
25
- children: /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
26
- /* @__PURE__ */ jsx(Icon, { size: 16, color: "var(--color-text-subtle)" }),
27
- /* @__PURE__ */ jsx(
28
- Text,
29
- {
30
- size: "sm",
31
- fw: 600,
32
- c: "var(--color-text-subtle)",
33
- style: { fontFamily: "var(--mantine-font-family-headings)", flex: 1 },
34
- children: label
35
- }
36
- ),
37
- rightSection
38
- ] })
39
- }
40
- );
41
- };
42
- function SubshellLoader() {
43
- const { loader } = useAppearance();
44
- return /* @__PURE__ */ jsx(Center, { mih: "calc(100vh - 70px)", children: loader });
45
- }
46
-
47
- export { PageContainer, SubshellLoader, SubshellSidebarSection };
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=getPreset.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getPreset.test.d.ts","sourceRoot":"","sources":["../../../../src/theme/presets/__tests__/getPreset.test.ts"],"names":[],"mappings":""}
@@ -1,92 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { getPreset } from '../index';
3
- const ALL_PRESETS = [
4
- 'default',
5
- 'tactical',
6
- 'regal',
7
- 'cyber-volt',
8
- 'aurora',
9
- 'rose-gold',
10
- 'midnight',
11
- 'ember',
12
- 'honey',
13
- 'canopy',
14
- 'slate',
15
- 'cyber-strike',
16
- 'cyber-punk',
17
- 'cyber-void',
18
- 'nirvana',
19
- 'wave',
20
- 'synapse',
21
- 'cortex',
22
- 'helios',
23
- 'graphite'
24
- ];
25
- /** Verify a preset has the required shape to prevent runtime crashes. */
26
- function assertValidPreset(preset, name) {
27
- expect(preset, `${name}: preset is defined`).toBeDefined();
28
- expect(preset.light, `${name}: has light tokens`).toBeDefined();
29
- expect(preset.dark, `${name}: has dark tokens`).toBeDefined();
30
- expect(preset.light.primary, `${name}: light.primary`).toBeTruthy();
31
- expect(preset.dark.primary, `${name}: dark.primary`).toBeTruthy();
32
- }
33
- describe('getPreset', () => {
34
- it.each(ALL_PRESETS)('returns a valid preset for "%s"', (name) => {
35
- const preset = getPreset(name);
36
- assertValidPreset(preset, name);
37
- });
38
- it('falls back to default preset for unknown names', () => {
39
- const fallback = getPreset('nonexistent-theme');
40
- const defaultPreset = getPreset('default');
41
- expect(fallback).toBe(defaultPreset);
42
- });
43
- it('falls back to default preset for empty string', () => {
44
- const fallback = getPreset('');
45
- const defaultPreset = getPreset('default');
46
- expect(fallback).toBe(defaultPreset);
47
- });
48
- it('every preset has fontImports array (prevents fontImports crash)', () => {
49
- for (const name of ALL_PRESETS) {
50
- const preset = getPreset(name);
51
- // fontImports is optional in the type, but every real preset should define it
52
- // to avoid confusion — verify they all have it
53
- expect(Array.isArray(preset.fontImports), `${name}: fontImports is array`).toBe(true);
54
- expect(preset.fontImports.length, `${name}: has at least one font import`).toBeGreaterThan(0);
55
- }
56
- });
57
- it('every preset has subtitleFontFamily', () => {
58
- for (const name of ALL_PRESETS) {
59
- const preset = getPreset(name);
60
- expect(preset.subtitleFontFamily, `${name}: subtitleFontFamily`).toBeTruthy();
61
- }
62
- });
63
- it('all required token keys are present in light and dark', () => {
64
- const requiredKeys = [
65
- 'primary',
66
- 'background',
67
- 'surface',
68
- 'surfaceHover',
69
- 'text',
70
- 'textDimmed',
71
- 'textSubtle',
72
- 'border',
73
- 'error',
74
- 'warning',
75
- 'success',
76
- 'glassBackground',
77
- 'glassBlur',
78
- 'shadow',
79
- 'cardShadow',
80
- 'durationFast',
81
- 'durationNormal',
82
- 'easing'
83
- ];
84
- for (const name of ALL_PRESETS) {
85
- const preset = getPreset(name);
86
- for (const key of requiredKeys) {
87
- expect(preset.light[key], `${name}.light.${key}`).toBeTruthy();
88
- expect(preset.dark[key], `${name}.dark.${key}`).toBeTruthy();
89
- }
90
- }
91
- });
92
- });
@@ -1,12 +0,0 @@
1
- import type { ThemePreset } from './types';
2
- /**
3
- * Cyber-Volt preset — electric, neon-soaked, futuristic.
4
- * Design: deep black base, electric cyan accent, neon micro-glow effects.
5
- * Evokes: sci-fi interfaces, hacker terminals, retro-futurism.
6
- *
7
- * Bundled background: `CyberBackground` variant `volt` — default layers plus
8
- * a circuit-board data flow (SVG traces with animated dash pulses + pulsing
9
- * circuit nodes).
10
- */
11
- export declare const cyberVoltPreset: ThemePreset;
12
- //# sourceMappingURL=cyber-volt.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cyber-volt.d.ts","sourceRoot":"","sources":["../../../src/theme/presets/cyber-volt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAG1C;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,EAAE,WA4D7B,CAAA"}
@@ -1,70 +0,0 @@
1
- import { createElement } from 'react';
2
- import { CyberBackground } from '../../components/layout/backgrounds/CyberBackground';
3
- /**
4
- * Cyber-Volt preset — electric, neon-soaked, futuristic.
5
- * Design: deep black base, electric cyan accent, neon micro-glow effects.
6
- * Evokes: sci-fi interfaces, hacker terminals, retro-futurism.
7
- *
8
- * Bundled background: `CyberBackground` variant `volt` — default layers plus
9
- * a circuit-board data flow (SVG traces with animated dash pulses + pulsing
10
- * circuit nodes).
11
- */
12
- export const cyberVoltPreset = {
13
- background: createElement(CyberBackground, { variant: 'volt' }),
14
- light: {
15
- primary: '#0097A7',
16
- primaryContrast: '#ffffff',
17
- background: '#F5FAFB',
18
- surface: 'transparent',
19
- surfaceHover: 'rgba(0, 151, 167, 0.08)',
20
- text: '#0A0E14',
21
- textDimmed: '#2E3A4D',
22
- textSubtle: '#556680',
23
- border: 'rgba(10, 14, 20, 0.08)',
24
- error: '#FF1744',
25
- warning: '#FF9100',
26
- success: '#00E676',
27
- glassBackground: 'rgba(245, 250, 251, 0.25)',
28
- glassBlur: 'blur(8px) saturate(180%)',
29
- shadow: '0px 2px 6px rgba(0, 0, 0, 0.05), 0px 20px 48px -8px rgba(0, 0, 0, 0.14)',
30
- cardShadow: 'inset 0 1px 0 rgba(255, 255, 255, 0.6), inset 0 0 0 1px rgba(255, 255, 255, 0.4), 0 1px 3px rgba(0, 0, 0, 0.03), 0 8px 24px -8px rgba(0, 0, 0, 0.06), 0 20px 48px -16px rgba(0, 0, 0, 0.04)',
31
- durationFast: '80ms',
32
- durationNormal: '160ms',
33
- easing: 'cubic-bezier(0.16, 1, 0.3, 1)',
34
- destructiveFg: '#ffffff',
35
- fontHeading: '"Chakra Petch", sans-serif',
36
- fontSans: '"Chakra Petch", sans-serif'
37
- },
38
- dark: {
39
- primary: '#00A8BD',
40
- primaryContrast: '#001418',
41
- background: '#030506',
42
- surface: 'transparent',
43
- surfaceHover: 'rgba(0, 229, 255, 0.06)',
44
- text: '#E0F7FA',
45
- textDimmed: '#80DEEA',
46
- textSubtle: '#5E8A94',
47
- border: 'rgba(0, 229, 255, 0.14)',
48
- error: '#FF1744',
49
- warning: '#FF9100',
50
- success: '#00E676',
51
- glassBackground: 'rgba(6, 14, 20, 0.4)',
52
- glassBlur: 'blur(14px) saturate(200%)',
53
- shadow: '0 1px 2px rgba(0, 0, 0, 0.4), 0 4px 12px rgba(0, 0, 0, 0.3), 0 16px 36px -14px rgba(0, 0, 0, 0.4)',
54
- cardShadow: 'inset 0 1px 0 rgba(255, 255, 255, 0.04), inset 0 0 0 1px rgba(0, 229, 255, 0.06), 0 1px 2px rgba(0, 0, 0, 0.6), 0 4px 10px rgba(0, 0, 0, 0.35), 0 14px 28px -10px rgba(0, 0, 0, 0.45), 0 24px 48px -18px rgba(0, 0, 0, 0.35)',
55
- durationFast: '80ms',
56
- durationNormal: '160ms',
57
- easing: 'cubic-bezier(0.16, 1, 0.3, 1)',
58
- destructiveFg: '#ffffff',
59
- fontHeading: '"Chakra Petch", sans-serif',
60
- fontSans: '"Chakra Petch", sans-serif'
61
- },
62
- subtitleFontFamily: '"Chakra Petch", sans-serif',
63
- framework: {
64
- fontFamily: '"Chakra Petch", sans-serif',
65
- headings: {
66
- fontFamily: '"Chakra Petch", sans-serif'
67
- }
68
- },
69
- fontImports: ['https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@400;500;600;700&display=swap']
70
- };
@@ -1,8 +0,0 @@
1
- import type { ThemePreset } from './types';
2
- /**
3
- * Regal preset — luxurious, commanding, distinguished.
4
- * Design: deep black base, rich gold accent, elegant serif headings.
5
- * Evokes: royal courts, gilt architecture, fine craftsmanship.
6
- */
7
- export declare const regalPreset: ThemePreset;
8
- //# sourceMappingURL=regal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"regal.d.ts","sourceRoot":"","sources":["../../../src/theme/presets/regal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,WAiEzB,CAAA"}
@@ -1,69 +0,0 @@
1
- /**
2
- * Regal preset — luxurious, commanding, distinguished.
3
- * Design: deep black base, rich gold accent, elegant serif headings.
4
- * Evokes: royal courts, gilt architecture, fine craftsmanship.
5
- */
6
- export const regalPreset = {
7
- light: {
8
- primary: '#B8922F',
9
- primaryContrast: '#ffffff',
10
- background: '#F0F0F2',
11
- surface: '#F7F7F8',
12
- surfaceHover: '#E9E9EB',
13
- text: '#2E2E30',
14
- textDimmed: '#50505A',
15
- textSubtle: '#8E8E96',
16
- border: '#CCCCD2',
17
- error: '#A83232',
18
- warning: '#B87A1A',
19
- success: '#3A7A3A',
20
- glassBackground: 'rgba(247, 247, 248, 0.6)',
21
- glassBlur: 'blur(12px)',
22
- shadow: '0px 2px 6px -2px rgba(20, 20, 20, 0.12)',
23
- cardShadow: 'inset 0 1px 0 rgba(255, 255, 255, 0.5), inset 0 0 0 1px rgba(255, 255, 255, 0.3), 0 2px 4px rgba(20, 20, 20, 0.06), 0 4px 8px rgba(20, 20, 20, 0.04)',
24
- durationFast: '180ms',
25
- durationNormal: '320ms',
26
- easing: 'cubic-bezier(0.25, 0.1, 0.25, 1)',
27
- destructiveFg: '#ffffff',
28
- fontHeading: '"Cinzel", serif',
29
- fontSans: '"Inter", sans-serif'
30
- },
31
- dark: {
32
- primary: '#AE8730',
33
- primaryContrast: '#1A1400',
34
- background: '#000000',
35
- surface: '#0E0E0E',
36
- surfaceHover: '#181818',
37
- text: '#F5EEE0',
38
- textDimmed: '#C8BA98',
39
- textSubtle: '#A89880',
40
- border: '#1D1D1D',
41
- error: '#E05252',
42
- warning: '#D4943C',
43
- success: '#4AA84A',
44
- glassBackground: 'rgba(14, 14, 14, 0.6)',
45
- glassBlur: 'blur(14px)',
46
- shadow: '0px 1px 2px rgba(0, 0, 0, 0.5), 0px 12px 32px -8px rgba(0, 0, 0, 0.6)',
47
- cardShadow: 'inset 0 1px 0 rgba(212, 168, 67, 0.08), inset 0 0 0 1px rgba(212, 168, 67, 0.04), 0 2px 8px rgba(0, 0, 0, 0.4), 0 12px 32px -8px rgba(0, 0, 0, 0.5), 0 32px 64px -16px rgba(0, 0, 0, 0.4)',
48
- durationFast: '180ms',
49
- durationNormal: '320ms',
50
- easing: 'cubic-bezier(0.25, 0.1, 0.25, 1)',
51
- destructiveFg: '#ffffff',
52
- fontHeading: '"Cinzel", serif',
53
- fontSans: '"Inter", sans-serif'
54
- },
55
- subtitleFontFamily: '"Raleway", sans-serif',
56
- framework: {
57
- defaultRadius: 'xs',
58
- fontFamily: '"Inter", sans-serif',
59
- headings: {
60
- fontFamily: '"Cinzel", serif',
61
- fontWeight: '600'
62
- }
63
- },
64
- fontImports: [
65
- 'https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600;700&display=swap',
66
- 'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap',
67
- 'https://fonts.googleapis.com/css2?family=Raleway:wght@400;500;600;700&display=swap'
68
- ]
69
- };
@@ -1,12 +0,0 @@
1
- import type { ThemePreset } from './types';
2
- /**
3
- * Rose Gold preset — warm copper/rose luxury through a chrome refraction lens.
4
- * - Playfair Display headings / DM Sans body
5
- * - Copper-rose primary `#C8897C` on deep rose dark / muted copper `#A8695E` on pale rose light
6
- * - Transparent surfaces so RoseGoldBackground's rotating copper beams bleed through cards
7
- * - Heavy frosted glass (`blur(28px) saturate(180%)`) for legibility over animated beams
8
- * - Pill-shaped buttons (`defaultRadius: 'xl'`)
9
- * - RoseGoldBackground: eight slowly-rotating rose/copper light beams
10
- */
11
- export declare const roseGoldPreset: ThemePreset;
12
- //# sourceMappingURL=rose-gold.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rose-gold.d.ts","sourceRoot":"","sources":["../../../src/theme/presets/rose-gold.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAG1C;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,EAAE,WAkE5B,CAAA"}