@elevasis/ui 1.14.5 → 1.15.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.
@@ -1,4 +1,4 @@
1
- import { usePresetsContext } from './chunk-6ZNKDPAO.js';
1
+ import { usePresetsContext } from './chunk-KUK3ZK4D.js';
2
2
  import { useMemo } from 'react';
3
3
 
4
4
  var BUILT_IN_NAMES = /* @__PURE__ */ new Set([
@@ -1220,6 +1220,27 @@ function CardHeader({ icon, title, subtitle, rightSection }) {
1220
1220
  rightSection
1221
1221
  ] });
1222
1222
  }
1223
+ var SIZE_MAP = {
1224
+ sm: { dot: 7, inner: 6, outer: 12 },
1225
+ md: { dot: 10, inner: 8, outer: 16 },
1226
+ lg: { dot: 12, inner: 10, outer: 20 }
1227
+ };
1228
+ function GlowDot({ color, size = "md" }) {
1229
+ const { dot, inner, outer } = SIZE_MAP[size];
1230
+ return /* @__PURE__ */ jsx(
1231
+ "div",
1232
+ {
1233
+ style: {
1234
+ width: dot,
1235
+ height: dot,
1236
+ borderRadius: "50%",
1237
+ backgroundColor: color,
1238
+ boxShadow: `0 0 ${inner}px ${color}, 0 0 ${outer}px ${color}40`,
1239
+ flexShrink: 0
1240
+ }
1241
+ }
1242
+ );
1243
+ }
1223
1244
  var GRANULARITY_MAP = {
1224
1245
  "1h": "hour",
1225
1246
  "24h": "hour",
@@ -1586,4 +1607,4 @@ function CombinedTrendChart({
1586
1607
  ] });
1587
1608
  }
1588
1609
 
1589
- export { APIErrorAlert, ActivityTrendChart, CardHeader, CollapsibleSection, CombinedTrendChart, ContextViewer, CostTrendChart, CustomSelector, CyberAreaChart, CyberDonut, CyberDonutTooltip, CyberLegendItem, DetailCardSkeleton, EmptyState, HeroStatsRow, JsonViewer, ListSkeleton, PageNotFound, PageTitleCaption, ResourceCard, StatCard, StatCardSkeleton, StatsCardSkeleton, StyledMarkdown, TabCountBadge, TimeRangeSelector, TrendIndicator, catalogItemToResourceDefinition, getSeriesColor, useCyberColors };
1610
+ export { APIErrorAlert, ActivityTrendChart, CardHeader, CollapsibleSection, CombinedTrendChart, ContextViewer, CostTrendChart, CustomSelector, CyberAreaChart, CyberDonut, CyberDonutTooltip, CyberLegendItem, DetailCardSkeleton, EmptyState, GlowDot, HeroStatsRow, JsonViewer, ListSkeleton, PageNotFound, PageTitleCaption, ResourceCard, StatCard, StatCardSkeleton, StatsCardSkeleton, StyledMarkdown, TabCountBadge, TimeRangeSelector, TrendIndicator, catalogItemToResourceDefinition, getSeriesColor, useCyberColors };
@@ -1,10 +1,10 @@
1
- import { sidebarItemGap, sidebarSubLinkPaddingY, sidebarSubLinkPaddingX, sidebarSubLinkIndent, sidebarHoverDelay, sidebarTransitionDuration, sidebarCollapsedWidth, sidebarWidth, topbarHeight, sidebarToggleIconSize, sidebarSectionPadding, NavigationButton, sidebarGroupChevronSize, sidebarIconInnerSize, sidebarListItemIconSize } from './chunk-MYRCM7VD.js';
1
+ import { sidebarItemGap, sidebarSubLinkPaddingY, sidebarSubLinkPaddingX, sidebarSubLinkIndent, sidebarHoverDelay, sidebarTransitionDuration, sidebarCollapsedWidth, sidebarWidth, topbarHeight, sidebarToggleIconSize, sidebarSectionPadding, NavigationButton, sidebarGroupChevronSize, sidebarIconInnerSize, sidebarListItemIconSize, sidebarBottomSectionHeight } from './chunk-KBLGVZBD.js';
2
2
  import { useAppearance } from './chunk-QJ2KCHKX.js';
3
3
  import { useRouterContext } from './chunk-Q7DJKLEN.js';
4
4
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
5
5
  import { Collapse, HoverCard, Stack, Group, Text, UnstyledButton, Tooltip, ScrollArea, Menu, Avatar, Container, Title, Button, Box, Center, useMantineColorScheme, Switch, Code } from '@mantine/core';
6
6
  import { IconLayoutSidebarLeftExpand, IconLayoutSidebarLeftCollapse, IconUser, IconLogout, IconAlertCircle, IconChevronDown, IconChevronRight, IconMoonStars, IconSun } from '@tabler/icons-react';
7
- import { createContext, memo, useEffect, createElement, useContext, useState } from 'react';
7
+ import { createContext, memo, useEffect, createElement, useContext, useRef, useLayoutEffect, useState } from 'react';
8
8
 
9
9
  function Vignette({ strength = 0.35, className }) {
10
10
  return /* @__PURE__ */ jsx(
@@ -591,14 +591,31 @@ var SidebarTopSection = ({ logo }) => {
591
591
  }
592
592
  );
593
593
  };
594
+ var BOTTOM_SECTION_HEIGHT_VAR = "--elevasis-sidebar-bottom-section-height";
594
595
  var SidebarBottomSection = ({ user, onLogout, onAccountClick }) => {
595
596
  const { isCollapsed } = useSidebar();
597
+ const rootRef = useRef(null);
598
+ useLayoutEffect(() => {
599
+ const el = rootRef.current;
600
+ if (!el) return;
601
+ const update = () => {
602
+ document.documentElement.style.setProperty(BOTTOM_SECTION_HEIGHT_VAR, `${el.offsetHeight}px`);
603
+ };
604
+ update();
605
+ const observer = new ResizeObserver(update);
606
+ observer.observe(el);
607
+ return () => {
608
+ observer.disconnect();
609
+ document.documentElement.style.removeProperty(BOTTOM_SECTION_HEIGHT_VAR);
610
+ };
611
+ }, [user]);
596
612
  if (!user) {
597
613
  return null;
598
614
  }
599
615
  return /* @__PURE__ */ jsx(
600
616
  "div",
601
617
  {
618
+ ref: rootRef,
602
619
  style: {
603
620
  padding: "var(--mantine-spacing-sm)",
604
621
  borderTop: "1px solid var(--color-border)",
@@ -1033,10 +1050,11 @@ var SubshellSidebar = ({
1033
1050
  flexShrink: 0,
1034
1051
  display: "flex",
1035
1052
  flexDirection: "column",
1036
- backgroundColor: "var(--glass-background)",
1053
+ backgroundColor: "color-mix(in srgb, var(--glass-background) 60%, transparent)",
1037
1054
  backdropFilter: "var(--glass-blur)",
1038
1055
  WebkitBackdropFilter: "var(--glass-blur)",
1039
1056
  borderRight: "1px solid var(--color-border)",
1057
+ boxShadow: "var(--card-shadow)",
1040
1058
  minHeight: `calc(100vh - ${topbarHeight}px)`,
1041
1059
  marginTop: `${topbarHeight}px`,
1042
1060
  fontFamily: "var(--elevasis-font-family-subtitle)"
@@ -1064,10 +1082,11 @@ var SubshellSidebar = ({
1064
1082
  flexShrink: 0,
1065
1083
  display: "flex",
1066
1084
  flexDirection: "column",
1067
- backgroundColor: "var(--glass-background)",
1085
+ backgroundColor: "color-mix(in srgb, var(--glass-background) 60%, transparent)",
1068
1086
  backdropFilter: "var(--glass-blur)",
1069
1087
  WebkitBackdropFilter: "var(--glass-blur)",
1070
1088
  borderRight: isOpen ? "1px solid var(--color-border)" : "none",
1089
+ boxShadow: isOpen ? "var(--card-shadow)" : "none",
1071
1090
  height: "100%",
1072
1091
  fontFamily: "var(--elevasis-font-family-subtitle)",
1073
1092
  overflow: "hidden",
@@ -1096,19 +1115,25 @@ var SubshellSidebar = ({
1096
1115
  style: {
1097
1116
  position: "absolute",
1098
1117
  right: 0,
1099
- bottom: "12px",
1118
+ bottom: 0,
1100
1119
  transform: "translateX(100%)",
1101
1120
  width: "20px",
1102
- height: "64px",
1121
+ // Match the live height of the outer Sidebar's bottom profile section.
1122
+ // SidebarBottomSection publishes --elevasis-sidebar-bottom-section-height
1123
+ // via ResizeObserver so this follows its actual height through
1124
+ // collapse/expand transitions. Falls back to the expanded-state
1125
+ // constant when rendered outside a Sidebar layout.
1126
+ height: `var(--elevasis-sidebar-bottom-section-height, ${sidebarBottomSectionHeight}px)`,
1103
1127
  display: "flex",
1104
1128
  alignItems: "center",
1105
1129
  justifyContent: "center",
1106
- backgroundColor: "var(--glass-background)",
1130
+ backgroundColor: "color-mix(in srgb, var(--glass-background) 80%, transparent)",
1107
1131
  backdropFilter: "var(--glass-blur)",
1108
1132
  WebkitBackdropFilter: "var(--glass-blur)",
1109
1133
  border: "1px solid var(--color-border)",
1110
1134
  borderLeft: "none",
1111
- borderRadius: "0 4px 4px 0",
1135
+ borderBottom: "none",
1136
+ borderRadius: "0 4px 0 0",
1112
1137
  cursor: "pointer",
1113
1138
  color: "var(--color-text-subtle)",
1114
1139
  padding: 0,
@@ -1272,4 +1297,4 @@ var Topbar = ({ version, leftContent, children }) => {
1272
1297
  ] });
1273
1298
  };
1274
1299
 
1275
- export { AppShellCenteredContainer, AppShellContainer, AppShellContentContainer, AppShellError, AppShellLoader, AppShellRightSideContainer, AppShellRightSideOuterContainer, AppTopbarAdjusterWrapper, CollapsibleSidebarGroup, LinksGroup, PageContainer, Sidebar, SidebarListItem, SidebarProvider, SubshellContainer, SubshellContentContainer, SubshellLoader, SubshellRightSideContainer, SubshellSidebar, SubshellSidebarSection, Topbar, TopbarContainer, Vignette, subsidebarWidth, useSidebar, useSidebarCollapse };
1300
+ export { AppShellCenteredContainer, AppShellContainer, AppShellContentContainer, AppShellError, AppShellLoader, AppShellRightSideContainer, AppShellRightSideOuterContainer, AppTopbarAdjusterWrapper, CollapsibleSidebarGroup, LinksGroup, PageContainer, Sidebar, SidebarContext, SidebarListItem, SidebarProvider, SubshellContainer, SubshellContentContainer, SubshellLoader, SubshellRightSideContainer, SubshellSidebar, SubshellSidebarSection, Topbar, TopbarContainer, Vignette, subsidebarWidth, useSidebar, useSidebarCollapse };
@@ -3986,6 +3986,20 @@ declare function CardHeader({ icon, title, subtitle, rightSection }: CardHeaderP
3986
3986
  */
3987
3987
  declare const ElevasisLoader: MantineLoaderComponent;
3988
3988
 
3989
+ /**
3990
+ * Shared glow indicator primitive. Renders a colored circle with a dual-layer
3991
+ * box-shadow glow effect suitable for status indicators, legend dots, and metric
3992
+ * chips. Pass a resolved cyber-neon color from `useCyberColors()` as the `color`
3993
+ * prop to match the dashboard's cyber aesthetic.
3994
+ */
3995
+ interface GlowDotProps {
3996
+ /** The dot/glow color. Pass a cyber-theme color (e.g. cyberColors.green). */
3997
+ color: string;
3998
+ /** Size variant. Defaults to 'md'. */
3999
+ size?: 'sm' | 'md' | 'lg';
4000
+ }
4001
+ declare function GlowDot({ color, size }: GlowDotProps): react_jsx_runtime.JSX.Element;
4002
+
3989
4003
  interface ICustomModalProps {
3990
4004
  opened: boolean;
3991
4005
  onClose: () => void;
@@ -5633,5 +5647,5 @@ interface WebhookUrlDisplayModalProps {
5633
5647
  }
5634
5648
  declare function WebhookUrlDisplayModal({ opened, endpoint, webhookUrl, onClose }: WebhookUrlDisplayModalProps): react_jsx_runtime.JSX.Element;
5635
5649
 
5636
- export { APIErrorAlert, AbsoluteScheduleForm, ActionModal, ActivityCard, ActivityFilters as ActivityFiltersBar, ActivityTable, AgentDefinitionDisplay, AgentExecutionLogs, AgentExecutionTimeline, AgentExecutionVisualizer, AgentIterationEdge, AgentIterationNode, ApiKeyDisplayModal, ApiKeyList, ApiKeySettings, BaseEdge, BaseExecutionLogs, BaseExecutionLogsHeader, BaseExecutionLogsStates, BaseNode, BusinessImpactCard, CONTAINER_CONSTANTS, CardHeader, CheckpointGroup, CollapsibleJsonSection, CollapsibleSection, CommandQueueSidebar, CommandQueueSidebarMiddle, CommandQueueSidebarTop, CommandQueueTaskRow, CommandViewEdge, CommandViewGraph, CommandViewNode, ConfigCard, ConfirmationInputModal, ConfirmationModal, ContentSections, ContextUsageBadge, ContextViewer, ContractDisplay, CostBreakdownCard, CostByModelTable, CostMetricsCard, CrashErrorFallback, CreateApiKeyModal, CreateCredentialModal, CreateScheduleModal, CredentialList, CredentialSettings, CustomModal, CustomSelector, DeleteScheduleModal, DeploymentDetailModal, DeploymentList, DeploymentSettings, DeploymentStatusBadge, DetailCardSkeleton, DocTreeNav, EditApiKeyModal, ElevasisLoader, EmptyState, EmptyVisualizer, ErrorAnalysisCard, ErrorBreakdownTable, ErrorReportCard, ExecutionBreakdownTable, ExecutionErrorSection, ExecutionHealthCard, ExecutionLogsFilters as ExecutionLogsFilterBar, ExecutionLogsTable, ExecutionStats, ExecutionStatusBadge, FilterBar, FormFieldRenderer, GraphBackground, GraphContainer, GraphFitViewButton, GraphFitViewHandler, GraphLegend, JsonViewer, KnowledgeBasePage, ListSkeleton, LogEntry, LogGroup, MembershipFeaturePanel, MembershipStatusBadge, NavigationButton, NewKnowledgeMapEdge, NewKnowledgeMapGraph, NewKnowledgeMapNode, NotificationBell, NotificationItem, NotificationList, NotificationPanel, OAuthConnectModal, OrganizationMembershipsList, PageNotFound, PageTitleCaption, RecurringScheduleForm, RelativeScheduleForm, ResourceCard, ResourceDefinitionSection, ResourceErrorState, ResourceFilter, ResourceHeader, ResourceHealthChart, ResourceHealthPanel, ResourceNotFoundState, SHARED_VIZ_CONSTANTS, ScheduleCard, ScheduleDetailModal, ScheduleTypeSelector, SessionMemory, SortableHeader, StatCard, StatCardSkeleton, StatsCardSkeleton, StyledMarkdown, TabCountBadge, TableSelectionToolbar, TaskCard, TaskScheduler, TimeRangeSelector, TimelineAxis, TimelineBar, TimelineContainer, TimelineRow, ToolsListDisplay, TrendIndicator, UnifiedWorkflowEdge, UnifiedWorkflowGraph, UnifiedWorkflowNode, VisualizerContainer, WebhookUrlDisplayModal, WorkflowDefinitionDisplay, WorkflowExecutionLogs, WorkflowExecutionTimeline, buildErrorReport, catalogItemToResourceDefinition, getExecutionStatusConfig, getGraphBackgroundStyles, getHealthColor, getIcon, getLogLevelConfig, iconMap, showApiErrorNotification, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification, useGraphBackgroundStyles, useGraphTheme, useNewKnowledgeMapLayout };
5650
+ export { APIErrorAlert, AbsoluteScheduleForm, ActionModal, ActivityCard, ActivityFilters as ActivityFiltersBar, ActivityTable, AgentDefinitionDisplay, AgentExecutionLogs, AgentExecutionTimeline, AgentExecutionVisualizer, AgentIterationEdge, AgentIterationNode, ApiKeyDisplayModal, ApiKeyList, ApiKeySettings, BaseEdge, BaseExecutionLogs, BaseExecutionLogsHeader, BaseExecutionLogsStates, BaseNode, BusinessImpactCard, CONTAINER_CONSTANTS, CardHeader, CheckpointGroup, CollapsibleJsonSection, CollapsibleSection, CommandQueueSidebar, CommandQueueSidebarMiddle, CommandQueueSidebarTop, CommandQueueTaskRow, CommandViewEdge, CommandViewGraph, CommandViewNode, ConfigCard, ConfirmationInputModal, ConfirmationModal, ContentSections, ContextUsageBadge, ContextViewer, ContractDisplay, CostBreakdownCard, CostByModelTable, CostMetricsCard, CrashErrorFallback, CreateApiKeyModal, CreateCredentialModal, CreateScheduleModal, CredentialList, CredentialSettings, CustomModal, CustomSelector, DeleteScheduleModal, DeploymentDetailModal, DeploymentList, DeploymentSettings, DeploymentStatusBadge, DetailCardSkeleton, DocTreeNav, EditApiKeyModal, ElevasisLoader, EmptyState, EmptyVisualizer, ErrorAnalysisCard, ErrorBreakdownTable, ErrorReportCard, ExecutionBreakdownTable, ExecutionErrorSection, ExecutionHealthCard, ExecutionLogsFilters as ExecutionLogsFilterBar, ExecutionLogsTable, ExecutionStats, ExecutionStatusBadge, FilterBar, FormFieldRenderer, GlowDot, GraphBackground, GraphContainer, GraphFitViewButton, GraphFitViewHandler, GraphLegend, JsonViewer, KnowledgeBasePage, ListSkeleton, LogEntry, LogGroup, MembershipFeaturePanel, MembershipStatusBadge, NavigationButton, NewKnowledgeMapEdge, NewKnowledgeMapGraph, NewKnowledgeMapNode, NotificationBell, NotificationItem, NotificationList, NotificationPanel, OAuthConnectModal, OrganizationMembershipsList, PageNotFound, PageTitleCaption, RecurringScheduleForm, RelativeScheduleForm, ResourceCard, ResourceDefinitionSection, ResourceErrorState, ResourceFilter, ResourceHeader, ResourceHealthChart, ResourceHealthPanel, ResourceNotFoundState, SHARED_VIZ_CONSTANTS, ScheduleCard, ScheduleDetailModal, ScheduleTypeSelector, SessionMemory, SortableHeader, StatCard, StatCardSkeleton, StatsCardSkeleton, StyledMarkdown, TabCountBadge, TableSelectionToolbar, TaskCard, TaskScheduler, TimeRangeSelector, TimelineAxis, TimelineBar, TimelineContainer, TimelineRow, ToolsListDisplay, TrendIndicator, UnifiedWorkflowEdge, UnifiedWorkflowGraph, UnifiedWorkflowNode, VisualizerContainer, WebhookUrlDisplayModal, WorkflowDefinitionDisplay, WorkflowExecutionLogs, WorkflowExecutionTimeline, buildErrorReport, catalogItemToResourceDefinition, getExecutionStatusConfig, getGraphBackgroundStyles, getHealthColor, getIcon, getLogLevelConfig, iconMap, showApiErrorNotification, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification, useGraphBackgroundStyles, useGraphTheme, useNewKnowledgeMapLayout };
5637
5651
  export type { ActivityFiltersProps, ActivityTableProps, BaseEdgeProps, BaseExecutionLogsProps, CommandViewGraphRef, ContextViewerProps, CostByModelTableProps, CrashErrorFallbackProps, ErrorAnalysisCardProps, ErrorReportCardProps, ExecutionBreakdownTableProps, ExecutionHealthCardProps, ExecutionLogEntry, ExecutionLogsFiltersProps, ExecutionLogsTableProps, FitViewButtonVariant, GraphFitViewHandlerProps, JsonViewerProps, KnowledgeMapEdgeData, KnowledgeMapNodeData, LogLevel, NavigationButtonProps, ResourceHealthPanelProps, ScheduleType, SerializedKnowledgeMap, SerializedKnowledgeNode, StatCardProps, StyledMarkdownProps, TaskFilterStatus, TrendIndicatorProps };
@@ -1,7 +1,7 @@
1
- import { useCyberColors, EmptyState, CyberLegendItem, CyberAreaChart, APIErrorAlert, CardHeader, StatsCardSkeleton, TrendIndicator, DetailCardSkeleton, ContextViewer, JsonViewer, StyledMarkdown, PageTitleCaption, StatCard, CyberDonut, CollapsibleSection, ListSkeleton } from '../chunk-HGUJ6SSM.js';
2
- export { APIErrorAlert, CardHeader, CollapsibleSection, ContextViewer, CustomSelector, DetailCardSkeleton, EmptyState, JsonViewer, ListSkeleton, PageNotFound, PageTitleCaption, ResourceCard, StatCard, StatCardSkeleton, StatsCardSkeleton, StyledMarkdown, TabCountBadge, TimeRangeSelector, TrendIndicator, catalogItemToResourceDefinition } from '../chunk-HGUJ6SSM.js';
3
- import { SubshellLoader, SubshellContainer, SubshellSidebar, SubshellRightSideContainer, SubshellContentContainer, PageContainer, AppShellLoader, SubshellSidebarSection, CollapsibleSidebarGroup, SidebarListItem } from '../chunk-5OJM7FHM.js';
4
- export { NavigationButton } from '../chunk-MYRCM7VD.js';
1
+ import { useCyberColors, EmptyState, CyberLegendItem, CyberAreaChart, APIErrorAlert, CardHeader, StatsCardSkeleton, TrendIndicator, DetailCardSkeleton, GlowDot, ContextViewer, JsonViewer, StyledMarkdown, PageTitleCaption, StatCard, CyberDonut, CollapsibleSection, ListSkeleton } from '../chunk-PCC3PLDV.js';
2
+ export { APIErrorAlert, CardHeader, CollapsibleSection, ContextViewer, CustomSelector, DetailCardSkeleton, EmptyState, GlowDot, JsonViewer, ListSkeleton, PageNotFound, PageTitleCaption, ResourceCard, StatCard, StatCardSkeleton, StatsCardSkeleton, StyledMarkdown, TabCountBadge, TimeRangeSelector, TrendIndicator, catalogItemToResourceDefinition } from '../chunk-PCC3PLDV.js';
3
+ import { SubshellLoader, SubshellContainer, SubshellSidebar, SubshellRightSideContainer, SubshellContentContainer, PageContainer, AppShellLoader, SubshellSidebarSection, CollapsibleSidebarGroup, SidebarListItem } from '../chunk-UCTTJ2RS.js';
4
+ export { NavigationButton } from '../chunk-KBLGVZBD.js';
5
5
  import { useUpdateApiKey, useDeleteApiKey, useCreateApiKey, useListApiKeys, useDeleteCredential, useCreateCredential, useCredentials, useActivateDeployment, useDeactivateDeployment, useDeleteDeployment, useListDeployments, MEMBERSHIP_STATUS_COLORS, transformMembershipToTableRow, showApiErrorNotification, showSuccessNotification, CredentialSchemas, showErrorNotification } from '../chunk-PMSLNXUS.js';
6
6
  export { showApiErrorNotification, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification } from '../chunk-PMSLNXUS.js';
7
7
  import { useCommandViewLayout, useResourcesHealth, useResolveError, useResolveAllErrors, usePaginationState, useErrorDetails, useMarkAsRead, useMarkAllAsRead, useNotificationCount, useNotifications, useSubmitAction, useDeleteTask, useErrorDetail, useExecution, useArchivedLogs, useDeleteExecution, useRetryExecution, useCancelExecution, useDeploymentDocs, useResources, useCreateSchedule, useListSchedules, usePauseSchedule, useResumeSchedule, useCancelSchedule, useDeleteSchedule, useCommandQueueTotals } from '../chunk-NOGBWAGU.js';
@@ -16,10 +16,11 @@ import { ResourceStatusColors, toWorkflowLogMessages } from '../chunk-ELJIFLCB.j
16
16
  import '../chunk-GU46QC4Z.js';
17
17
  import '../chunk-CKFTPEBC.js';
18
18
  import '../chunk-RNP5R5I3.js';
19
- import '../chunk-RHHWAM22.js';
19
+ import '../chunk-IKKYFTYZ.js';
20
20
  export { ElevasisLoader } from '../chunk-SZHARWKU.js';
21
- import '../chunk-6ZNKDPAO.js';
22
- import '../chunk-TBRTRBJV.js';
21
+ import '../chunk-KUK3ZK4D.js';
22
+ import '../chunk-GATPOCUD.js';
23
+ import '../chunk-GIQPDIG5.js';
23
24
  import '../chunk-YCOTIVEZ.js';
24
25
  import { useAppearance } from '../chunk-QJ2KCHKX.js';
25
26
  import '../chunk-4J3GVBB7.js';
@@ -1771,6 +1772,7 @@ function ExecutionStats({
1771
1772
  align = "flex-end",
1772
1773
  compact = false
1773
1774
  }) {
1775
+ const cyberColors = useCyberColors();
1774
1776
  if (totalExecutions === 0 && !compact) {
1775
1777
  return null;
1776
1778
  }
@@ -1788,11 +1790,11 @@ function ExecutionStats({
1788
1790
  "%"
1789
1791
  ] }),
1790
1792
  /* @__PURE__ */ jsxs(Group, { gap: 5, wrap: "nowrap", children: [
1791
- /* @__PURE__ */ jsx("div", { style: { width: 7, height: 7, borderRadius: "50%", background: "var(--color-success)" } }),
1793
+ /* @__PURE__ */ jsx(GlowDot, { size: "sm", color: cyberColors.green }),
1792
1794
  /* @__PURE__ */ jsx(Text, { size: "sm", fw: 600, c: "green", children: successCount })
1793
1795
  ] }),
1794
1796
  failureCount > 0 && /* @__PURE__ */ jsxs(Group, { gap: 5, wrap: "nowrap", children: [
1795
- /* @__PURE__ */ jsx("div", { style: { width: 7, height: 7, borderRadius: "50%", background: "var(--color-error)" } }),
1797
+ /* @__PURE__ */ jsx(GlowDot, { size: "sm", color: cyberColors.red }),
1796
1798
  /* @__PURE__ */ jsx(Text, { size: "sm", fw: 600, c: "red", children: failureCount })
1797
1799
  ] })
1798
1800
  ] }),
@@ -3213,7 +3213,7 @@ interface MembershipFeatureConfig {
3213
3213
  */
3214
3214
  interface UserConfig {
3215
3215
  theme?: {
3216
- preset?: 'default' | 'tactical' | 'regal' | 'cyber-volt' | 'aurora' | 'rose-gold' | 'midnight' | 'ember' | 'obsidian' | 'honey' | 'abyss' | 'canopy' | 'slate' | 'cyber-strike' | 'cyber-flux' | 'cyber-void';
3216
+ preset?: 'default' | 'tactical' | 'regal' | 'cyber-volt' | 'aurora' | 'rose-gold' | 'midnight' | 'ember' | 'obsidian' | 'honey' | 'abyss' | 'canopy' | 'slate' | 'cyber-strike' | 'cyber-flux' | 'cyber-void' | 'nirvana' | 'wave';
3217
3217
  colorScheme?: 'light' | 'dark' | 'auto';
3218
3218
  };
3219
3219
  onboarding?: {
@@ -5,10 +5,11 @@ import '../chunk-NJJ3NQ7B.js';
5
5
  import '../chunk-F6RBK7NJ.js';
6
6
  import '../chunk-GU46QC4Z.js';
7
7
  import '../chunk-RNP5R5I3.js';
8
- import '../chunk-RHHWAM22.js';
8
+ import '../chunk-IKKYFTYZ.js';
9
9
  import '../chunk-SZHARWKU.js';
10
- import '../chunk-6ZNKDPAO.js';
11
- import '../chunk-TBRTRBJV.js';
10
+ import '../chunk-KUK3ZK4D.js';
11
+ import '../chunk-GATPOCUD.js';
12
+ import '../chunk-GIQPDIG5.js';
12
13
  import '../chunk-YCOTIVEZ.js';
13
14
  import '../chunk-QJ2KCHKX.js';
14
15
  import '../chunk-4J3GVBB7.js';
@@ -3642,7 +3642,7 @@ interface MembershipFeatureConfig {
3642
3642
  */
3643
3643
  interface UserConfig {
3644
3644
  theme?: {
3645
- preset?: 'default' | 'tactical' | 'regal' | 'cyber-volt' | 'aurora' | 'rose-gold' | 'midnight' | 'ember' | 'obsidian' | 'honey' | 'abyss' | 'canopy' | 'slate' | 'cyber-strike' | 'cyber-flux' | 'cyber-void';
3645
+ preset?: 'default' | 'tactical' | 'regal' | 'cyber-volt' | 'aurora' | 'rose-gold' | 'midnight' | 'ember' | 'obsidian' | 'honey' | 'abyss' | 'canopy' | 'slate' | 'cyber-strike' | 'cyber-flux' | 'cyber-void' | 'nirvana' | 'wave';
3646
3646
  colorScheme?: 'light' | 'dark' | 'auto';
3647
3647
  };
3648
3648
  onboarding?: {
@@ -4,10 +4,11 @@ import '../chunk-NJJ3NQ7B.js';
4
4
  import '../chunk-F6RBK7NJ.js';
5
5
  import '../chunk-GU46QC4Z.js';
6
6
  import '../chunk-RNP5R5I3.js';
7
- import '../chunk-RHHWAM22.js';
7
+ import '../chunk-IKKYFTYZ.js';
8
8
  import '../chunk-SZHARWKU.js';
9
- import '../chunk-6ZNKDPAO.js';
10
- import '../chunk-TBRTRBJV.js';
9
+ import '../chunk-KUK3ZK4D.js';
10
+ import '../chunk-GATPOCUD.js';
11
+ import '../chunk-GIQPDIG5.js';
11
12
  import '../chunk-YCOTIVEZ.js';
12
13
  import '../chunk-QJ2KCHKX.js';
13
14
  import '../chunk-4J3GVBB7.js';
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import * as _tanstack_react_query from '@tanstack/react-query';
2
- import { QueryClient } from '@tanstack/react-query';
3
1
  import * as react from 'react';
4
2
  import { ReactNode, MouseEvent, AnchorHTMLAttributes, ElementType } from 'react';
3
+ import * as _tanstack_react_query from '@tanstack/react-query';
4
+ import { QueryClient } from '@tanstack/react-query';
5
5
  import * as react_jsx_runtime from 'react/jsx-runtime';
6
6
  import { CSSVariablesResolver, MantineThemeOverride } from '@mantine/core';
7
7
  import { Node, Edge, NodeMouseHandler } from '@xyflow/react';
@@ -269,8 +269,18 @@ interface ThemePreset {
269
269
  description?: string;
270
270
  /** Three representative hex colors for swatch display: [primary, dark-bg, light-bg]. */
271
271
  colors?: [string, string, string];
272
+ /**
273
+ * Background layers rendered behind app content when this preset is active.
274
+ * Overridden by `theme.background` on the provider if both are set.
275
+ */
276
+ background?: ReactNode;
277
+ /**
278
+ * Loader element used in loading states when this preset is active.
279
+ * Overridden by `theme.loader` on the provider if both are set.
280
+ */
281
+ loader?: ReactNode;
272
282
  }
273
- type PresetName = 'default' | 'tactical' | 'regal' | 'cyber-volt' | 'aurora' | 'rose-gold' | 'midnight' | 'ember' | 'obsidian' | 'honey' | 'abyss' | 'canopy' | 'slate' | 'cyber-strike' | 'cyber-flux' | 'cyber-void';
283
+ type PresetName = 'default' | 'tactical' | 'regal' | 'cyber-volt' | 'aurora' | 'rose-gold' | 'midnight' | 'ember' | 'honey' | 'canopy' | 'slate' | 'cyber-strike' | 'cyber-flux' | 'cyber-void' | 'nirvana' | 'wave';
274
284
 
275
285
  /** 10-shade color tuple (light → dark), compatible with Mantine's color format. */
276
286
  type ColorShadesTuple = [string, string, string, string, string, string, string, string, string, string];
@@ -3661,7 +3671,7 @@ interface MembershipFeatureConfig {
3661
3671
  */
3662
3672
  interface UserConfig {
3663
3673
  theme?: {
3664
- preset?: 'default' | 'tactical' | 'regal' | 'cyber-volt' | 'aurora' | 'rose-gold' | 'midnight' | 'ember' | 'obsidian' | 'honey' | 'abyss' | 'canopy' | 'slate' | 'cyber-strike' | 'cyber-flux' | 'cyber-void';
3674
+ preset?: 'default' | 'tactical' | 'regal' | 'cyber-volt' | 'aurora' | 'rose-gold' | 'midnight' | 'ember' | 'obsidian' | 'honey' | 'abyss' | 'canopy' | 'slate' | 'cyber-strike' | 'cyber-flux' | 'cyber-void' | 'nirvana' | 'wave';
3665
3675
  colorScheme?: 'light' | 'dark' | 'auto';
3666
3676
  };
3667
3677
  onboarding?: {
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { useAvailablePresets } from './chunk-E72FC2ZF.js';
1
+ export { useAvailablePresets } from './chunk-KZGJPBXT.js';
2
2
  import './chunk-XCYKC6OZ.js';
3
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-PMSLNXUS.js';
4
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, 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-NOGBWAGU.js';
@@ -11,10 +11,11 @@ import './chunk-ELJIFLCB.js';
11
11
  export { createOrganizationsSlice, createUseOrgInitialization, createUseOrganizations } from './chunk-GU46QC4Z.js';
12
12
  export { createUseAppInitialization } from './chunk-CKFTPEBC.js';
13
13
  import './chunk-RNP5R5I3.js';
14
- export { ElevasisUIProvider } from './chunk-RHHWAM22.js';
14
+ export { ElevasisUIProvider } from './chunk-IKKYFTYZ.js';
15
15
  import './chunk-SZHARWKU.js';
16
- export { PresetsProvider, TOKEN_VAR_MAP, componentThemes, createCssVariablesResolver, generateShades, getPreset, mantineThemeOverride, PRESETS as presets, usePresetsContext } from './chunk-6ZNKDPAO.js';
17
- import './chunk-TBRTRBJV.js';
16
+ export { PresetsProvider, TOKEN_VAR_MAP, componentThemes, createCssVariablesResolver, generateShades, getPreset, mantineThemeOverride, PRESETS as presets, usePresetsContext } from './chunk-KUK3ZK4D.js';
17
+ import './chunk-GATPOCUD.js';
18
+ import './chunk-GIQPDIG5.js';
18
19
  export { ElevasisCoreProvider, NotificationProvider, useNotificationAdapter } from './chunk-YCOTIVEZ.js';
19
20
  export { AppearanceProvider, useAppearance } from './chunk-QJ2KCHKX.js';
20
21
  export { OrganizationProvider } from './chunk-4J3GVBB7.js';
@@ -6,6 +6,10 @@ declare const sidebarCollapsedWidth = 72;
6
6
  declare const sidebarTransitionDuration = 200;
7
7
  declare const sidebarHoverDelay = 100;
8
8
  declare const topbarHeight = 54;
9
+ /** Height of SidebarBottomSection when expanded: outer padding sm (12+12) + 1px top border + inner padding (4+4) + Avatar md (38) = 71px */
10
+ declare const sidebarBottomSectionHeight = 71;
11
+ /** Height of SidebarBottomSection when collapsed: outer padding sm (12+12) + 1px top border + inner padding (4+4) + Avatar sm (26) = 59px */
12
+ declare const sidebarBottomSectionCollapsedHeight = 59;
9
13
  /** Height of a main navigation button (px) */
10
14
  declare const sidebarItemHeight = 42;
11
15
  /** Padding inside main navigation buttons (px) */
@@ -37,6 +41,57 @@ declare function AppBackground({ children }: {
37
41
  children?: ReactNode;
38
42
  }): react_jsx_runtime.JSX.Element;
39
43
 
44
+ type CyberVariant = 'flux' | 'strike' | 'void' | 'volt';
45
+ interface CyberParticlesProps {
46
+ /** Which particle flavor to render. */
47
+ variant: CyberVariant;
48
+ className?: string;
49
+ }
50
+ /**
51
+ * Techy particle layer for cyber-themed presets.
52
+ *
53
+ * Sits alongside `PerspectiveGrid` / `RadiantGlow` / `FloatingOrbs` / `FilmGrain`
54
+ * at the same z-level (via document order) and adds rising electric sparks
55
+ * that inherit their color from `var(--color-primary)` so they automatically
56
+ * match the active preset's accent:
57
+ *
58
+ * - `flux` — yellow sparks
59
+ * - `strike` — red sparks
60
+ * - `void` — blue sparks
61
+ * - `volt` — cyan sparks
62
+ *
63
+ * The `variant` prop is currently unused at the render level (all four
64
+ * cyber presets share the same spark effect), but is kept in the API so
65
+ * individual variants can diverge again without changing preset wiring.
66
+ *
67
+ * Particle field is generated once at module load (fresh per page reload).
68
+ * All animations are disabled under `prefers-reduced-motion`.
69
+ */
70
+ declare function CyberParticles({ variant: _variant, className }: CyberParticlesProps): React$1.JSX.Element;
71
+
72
+ interface CyberBackgroundProps {
73
+ /** Which techy particle effect to layer on top of the default background. */
74
+ variant: CyberVariant;
75
+ }
76
+ /**
77
+ * Composite background for cyber-themed presets.
78
+ *
79
+ * Extends the default `AppBackground` (PerspectiveGrid + RadiantGlow +
80
+ * FloatingOrbs + FilmGrain) with a variant-specific `CyberParticles` layer
81
+ * inserted just below the film grain so the particles feel embedded in
82
+ * the scene rather than sitting flat on top.
83
+ *
84
+ * Designed to be bundled into cyber-themed presets via
85
+ * `ThemePreset.background`. Consumers can still override the full background
86
+ * per-app via `<ElevasisUIProvider theme={{ background: <Custom/> }}>`.
87
+ *
88
+ * - `flux` — Rising electric sparks (hazard yellow)
89
+ * - `strike` — Combat HUD scan sweep + radar pings + targeting brackets
90
+ * - `void` — Matrix-style digital rain
91
+ * - `volt` — Circuit-board data flow with animated pulses
92
+ */
93
+ declare function CyberBackground({ variant }: CyberBackgroundProps): React$1.JSX.Element;
94
+
40
95
  interface FilmGrainProps {
41
96
  /** Opacity in dark mode (0-1). Defaults to 0.04. */
42
97
  darkOpacity?: number;
@@ -66,12 +121,14 @@ declare function FloatingOrbs({ color, count, className }: FloatingOrbsProps): R
66
121
 
67
122
  interface PerspectiveGridProps {
68
123
  glowColor?: string;
124
+ /** Override the grid line color. Defaults to a neutral gray scoped to the color scheme. */
125
+ lineColor?: string;
69
126
  className?: string;
70
127
  }
71
128
  /**
72
129
  * 3D perspective grid background using CSS transforms
73
130
  */
74
- declare function PerspectiveGrid({ glowColor, className }: PerspectiveGridProps): React$1.JSX.Element;
131
+ declare function PerspectiveGrid({ glowColor, lineColor: lineColorProp, className }: PerspectiveGridProps): React$1.JSX.Element;
75
132
 
76
133
  interface RadiantGlowProps {
77
134
  /** Override the glow color. Defaults to var(--color-primary). */
@@ -179,6 +236,7 @@ interface SidebarContextType {
179
236
  toggleCollapsed: () => void;
180
237
  setCollapsed: (value: boolean) => void;
181
238
  }
239
+ declare const SidebarContext: React$1.Context<SidebarContextType | undefined>;
182
240
  interface SidebarProviderProps {
183
241
  children: ReactNode;
184
242
  }
@@ -359,5 +417,5 @@ declare const TopbarContainer: ({ children }: {
359
417
  children: React.ReactNode;
360
418
  }) => react_jsx_runtime.JSX.Element;
361
419
 
362
- export { AppBackground, AppShellCenteredContainer, AppShellContainer, AppShellContentContainer, AppShellError, AppShellLoader, AppShellRightSideContainer, AppShellRightSideOuterContainer, AppTopbarAdjusterWrapper, CollapsibleSidebarGroup, FilmGrain, FloatingOrbs, LinksGroup, PageContainer, PerspectiveGrid, RadiantGlow, Sidebar, SidebarListItem, SidebarProvider, SubshellContainer, SubshellContentContainer, SubshellLoader, SubshellRightSideContainer, SubshellSidebar, SubshellSidebarSection, Topbar, TopbarContainer, Vignette, sidebarCollapsedWidth, sidebarGroupChevronSize, sidebarHoverDelay, sidebarIconInnerSize, sidebarIconSize, sidebarIconStroke, sidebarItemGap, sidebarItemHeight, sidebarItemPadding, sidebarListItemIconSize, sidebarSectionPadding, sidebarSubLinkIndent, sidebarSubLinkPaddingX, sidebarSubLinkPaddingY, sidebarToggleIconSize, sidebarTransitionDuration, sidebarWidth, subsidebarWidth, topbarHeight, useSidebar, useSidebarCollapse };
363
- export type { CollapsibleSidebarGroupProps, LinkItem, LinksGroupProps, SidebarListItemProps, SidebarNestedProps, SubshellContainerProps, SubshellContentContainerProps, SubshellRightSideContainerProps, SubshellSidebarContainerProps, SubshellSidebarProps, SubshellSidebarSectionProps, TopbarProps };
420
+ export { AppBackground, AppShellCenteredContainer, AppShellContainer, AppShellContentContainer, AppShellError, AppShellLoader, AppShellRightSideContainer, AppShellRightSideOuterContainer, AppTopbarAdjusterWrapper, CollapsibleSidebarGroup, CyberBackground, CyberParticles, FilmGrain, FloatingOrbs, LinksGroup, PageContainer, PerspectiveGrid, RadiantGlow, Sidebar, SidebarContext, SidebarListItem, SidebarProvider, SubshellContainer, SubshellContentContainer, SubshellLoader, SubshellRightSideContainer, SubshellSidebar, SubshellSidebarSection, Topbar, TopbarContainer, Vignette, sidebarBottomSectionCollapsedHeight, sidebarBottomSectionHeight, sidebarCollapsedWidth, sidebarGroupChevronSize, sidebarHoverDelay, sidebarIconInnerSize, sidebarIconSize, sidebarIconStroke, sidebarItemGap, sidebarItemHeight, sidebarItemPadding, sidebarListItemIconSize, sidebarSectionPadding, sidebarSubLinkIndent, sidebarSubLinkPaddingX, sidebarSubLinkPaddingY, sidebarToggleIconSize, sidebarTransitionDuration, sidebarWidth, subsidebarWidth, topbarHeight, useSidebar, useSidebarCollapse };
421
+ export type { CollapsibleSidebarGroupProps, CyberVariant, LinkItem, LinksGroupProps, SidebarListItemProps, SidebarNestedProps, SubshellContainerProps, SubshellContentContainerProps, SubshellRightSideContainerProps, SubshellSidebarContainerProps, SubshellSidebarProps, SubshellSidebarSectionProps, TopbarProps };
@@ -1,6 +1,7 @@
1
- export { AppShellCenteredContainer, AppShellContainer, AppShellContentContainer, AppShellError, AppShellLoader, AppShellRightSideContainer, AppShellRightSideOuterContainer, AppTopbarAdjusterWrapper, CollapsibleSidebarGroup, LinksGroup, PageContainer, Sidebar, SidebarListItem, SidebarProvider, SubshellContainer, SubshellContentContainer, SubshellLoader, SubshellRightSideContainer, SubshellSidebar, SubshellSidebarSection, Topbar, TopbarContainer, Vignette, subsidebarWidth, useSidebar, useSidebarCollapse } from '../chunk-5OJM7FHM.js';
2
- export { sidebarCollapsedWidth, sidebarGroupChevronSize, sidebarHoverDelay, sidebarIconInnerSize, sidebarIconSize, sidebarIconStroke, sidebarItemGap, sidebarItemHeight, sidebarItemPadding, sidebarListItemIconSize, sidebarSectionPadding, sidebarSubLinkIndent, sidebarSubLinkPaddingX, sidebarSubLinkPaddingY, sidebarToggleIconSize, sidebarTransitionDuration, sidebarWidth, topbarHeight } from '../chunk-MYRCM7VD.js';
1
+ export { AppShellCenteredContainer, AppShellContainer, AppShellContentContainer, AppShellError, AppShellLoader, AppShellRightSideContainer, AppShellRightSideOuterContainer, AppTopbarAdjusterWrapper, CollapsibleSidebarGroup, LinksGroup, PageContainer, Sidebar, SidebarContext, SidebarListItem, SidebarProvider, SubshellContainer, SubshellContentContainer, SubshellLoader, SubshellRightSideContainer, SubshellSidebar, SubshellSidebarSection, Topbar, TopbarContainer, Vignette, subsidebarWidth, useSidebar, useSidebarCollapse } from '../chunk-UCTTJ2RS.js';
2
+ export { sidebarBottomSectionCollapsedHeight, sidebarBottomSectionHeight, sidebarCollapsedWidth, sidebarGroupChevronSize, sidebarHoverDelay, sidebarIconInnerSize, sidebarIconSize, sidebarIconStroke, sidebarItemGap, sidebarItemHeight, sidebarItemPadding, sidebarListItemIconSize, sidebarSectionPadding, sidebarSubLinkIndent, sidebarSubLinkPaddingX, sidebarSubLinkPaddingY, sidebarToggleIconSize, sidebarTransitionDuration, sidebarWidth, topbarHeight } from '../chunk-KBLGVZBD.js';
3
3
  import '../chunk-LHQTTUL2.js';
4
- export { AppBackground, FilmGrain, FloatingOrbs, PerspectiveGrid, RadiantGlow } from '../chunk-TBRTRBJV.js';
4
+ export { AppBackground } from '../chunk-GATPOCUD.js';
5
+ export { CyberBackground, CyberParticles, FilmGrain, FloatingOrbs, PerspectiveGrid, RadiantGlow } from '../chunk-GIQPDIG5.js';
5
6
  import '../chunk-QJ2KCHKX.js';
6
7
  import '../chunk-Q7DJKLEN.js';
@@ -1,6 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { QueryClient } from '@tanstack/react-query';
3
2
  import { ReactNode } from 'react';
3
+ import { QueryClient } from '@tanstack/react-query';
4
4
  import { MantineThemeOverride } from '@mantine/core';
5
5
 
6
6
  /** Framework-agnostic theme overrides bundled with a preset (fonts, radius, component styles). */
@@ -31,8 +31,18 @@ interface ThemePreset {
31
31
  description?: string;
32
32
  /** Three representative hex colors for swatch display: [primary, dark-bg, light-bg]. */
33
33
  colors?: [string, string, string];
34
+ /**
35
+ * Background layers rendered behind app content when this preset is active.
36
+ * Overridden by `theme.background` on the provider if both are set.
37
+ */
38
+ background?: ReactNode;
39
+ /**
40
+ * Loader element used in loading states when this preset is active.
41
+ * Overridden by `theme.loader` on the provider if both are set.
42
+ */
43
+ loader?: ReactNode;
34
44
  }
35
- type PresetName = 'default' | 'tactical' | 'regal' | 'cyber-volt' | 'aurora' | 'rose-gold' | 'midnight' | 'ember' | 'obsidian' | 'honey' | 'abyss' | 'canopy' | 'slate' | 'cyber-strike' | 'cyber-flux' | 'cyber-void';
45
+ type PresetName = 'default' | 'tactical' | 'regal' | 'cyber-volt' | 'aurora' | 'rose-gold' | 'midnight' | 'ember' | 'honey' | 'canopy' | 'slate' | 'cyber-strike' | 'cyber-flux' | 'cyber-void' | 'nirvana' | 'wave';
36
46
 
37
47
  interface ApiErrorDetails {
38
48
  method: string;
@@ -1,7 +1,8 @@
1
- export { ElevasisUIProvider } from '../chunk-RHHWAM22.js';
1
+ export { ElevasisUIProvider } from '../chunk-IKKYFTYZ.js';
2
2
  import '../chunk-SZHARWKU.js';
3
- import '../chunk-6ZNKDPAO.js';
4
- import '../chunk-TBRTRBJV.js';
3
+ import '../chunk-KUK3ZK4D.js';
4
+ import '../chunk-GATPOCUD.js';
5
+ import '../chunk-GIQPDIG5.js';
5
6
  export { ElevasisCoreProvider, NotificationProvider, useNotificationAdapter } from '../chunk-YCOTIVEZ.js';
6
7
  export { AppearanceProvider, useAppearance } from '../chunk-QJ2KCHKX.js';
7
8
  import '../chunk-4J3GVBB7.js';
@@ -1,6 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { QueryClient } from '@tanstack/react-query';
3
2
  import { ReactNode } from 'react';
3
+ import { QueryClient } from '@tanstack/react-query';
4
4
 
5
5
  /** Framework-agnostic theme overrides bundled with a preset (fonts, radius, component styles). */
6
6
  interface FrameworkThemeOverrides {
@@ -30,8 +30,18 @@ interface ThemePreset {
30
30
  description?: string;
31
31
  /** Three representative hex colors for swatch display: [primary, dark-bg, light-bg]. */
32
32
  colors?: [string, string, string];
33
+ /**
34
+ * Background layers rendered behind app content when this preset is active.
35
+ * Overridden by `theme.background` on the provider if both are set.
36
+ */
37
+ background?: ReactNode;
38
+ /**
39
+ * Loader element used in loading states when this preset is active.
40
+ * Overridden by `theme.loader` on the provider if both are set.
41
+ */
42
+ loader?: ReactNode;
33
43
  }
34
- type PresetName = 'default' | 'tactical' | 'regal' | 'cyber-volt' | 'aurora' | 'rose-gold' | 'midnight' | 'ember' | 'obsidian' | 'honey' | 'abyss' | 'canopy' | 'slate' | 'cyber-strike' | 'cyber-flux' | 'cyber-void';
44
+ type PresetName = 'default' | 'tactical' | 'regal' | 'cyber-volt' | 'aurora' | 'rose-gold' | 'midnight' | 'ember' | 'honey' | 'canopy' | 'slate' | 'cyber-strike' | 'cyber-flux' | 'cyber-void' | 'nirvana' | 'wave';
35
45
 
36
46
  interface ApiErrorDetails {
37
47
  method: string;
@@ -1,5 +1,6 @@
1
- import { CSSVariablesResolver, MantineThemeOverride } from '@mantine/core';
2
1
  import * as react from 'react';
2
+ import { ReactNode } from 'react';
3
+ import { CSSVariablesResolver, MantineThemeOverride } from '@mantine/core';
3
4
 
4
5
  /** Flat + per-scheme override pattern. Flat values apply to both; `light`/`dark` win over flat. */
5
6
  type WithSchemes<T> = T & {
@@ -84,8 +85,18 @@ interface ThemePreset {
84
85
  description?: string;
85
86
  /** Three representative hex colors for swatch display: [primary, dark-bg, light-bg]. */
86
87
  colors?: [string, string, string];
88
+ /**
89
+ * Background layers rendered behind app content when this preset is active.
90
+ * Overridden by `theme.background` on the provider if both are set.
91
+ */
92
+ background?: ReactNode;
93
+ /**
94
+ * Loader element used in loading states when this preset is active.
95
+ * Overridden by `theme.loader` on the provider if both are set.
96
+ */
97
+ loader?: ReactNode;
87
98
  }
88
- type PresetName = 'default' | 'tactical' | 'regal' | 'cyber-volt' | 'aurora' | 'rose-gold' | 'midnight' | 'ember' | 'obsidian' | 'honey' | 'abyss' | 'canopy' | 'slate' | 'cyber-strike' | 'cyber-flux' | 'cyber-void';
99
+ type PresetName = 'default' | 'tactical' | 'regal' | 'cyber-volt' | 'aurora' | 'rose-gold' | 'midnight' | 'ember' | 'honey' | 'canopy' | 'slate' | 'cyber-strike' | 'cyber-flux' | 'cyber-void' | 'nirvana' | 'wave';
89
100
 
90
101
  /** 10-shade color tuple (light → dark), compatible with Mantine's color format. */
91
102
  type ColorShadesTuple = [string, string, string, string, string, string, string, string, string, string];
@@ -1,2 +1,3 @@
1
- export { useAvailablePresets } from '../chunk-E72FC2ZF.js';
2
- export { PresetsProvider, TOKEN_VAR_MAP, componentThemes, createCssVariablesResolver, generateShades, getPreset, mantineThemeOverride, PRESETS as presets, usePresetsContext } from '../chunk-6ZNKDPAO.js';
1
+ export { useAvailablePresets } from '../chunk-KZGJPBXT.js';
2
+ export { PresetsProvider, TOKEN_VAR_MAP, componentThemes, createCssVariablesResolver, generateShades, getPreset, mantineThemeOverride, PRESETS as presets, usePresetsContext } from '../chunk-KUK3ZK4D.js';
3
+ import '../chunk-GIQPDIG5.js';
@@ -2957,7 +2957,7 @@ interface MembershipFeatureConfig {
2957
2957
  */
2958
2958
  interface UserConfig {
2959
2959
  theme?: {
2960
- preset?: 'default' | 'tactical' | 'regal' | 'cyber-volt' | 'aurora' | 'rose-gold' | 'midnight' | 'ember' | 'obsidian' | 'honey' | 'abyss' | 'canopy' | 'slate' | 'cyber-strike' | 'cyber-flux' | 'cyber-void';
2960
+ preset?: 'default' | 'tactical' | 'regal' | 'cyber-volt' | 'aurora' | 'rose-gold' | 'midnight' | 'ember' | 'obsidian' | 'honey' | 'abyss' | 'canopy' | 'slate' | 'cyber-strike' | 'cyber-flux' | 'cyber-void' | 'nirvana' | 'wave';
2961
2961
  colorScheme?: 'light' | 'dark' | 'auto';
2962
2962
  };
2963
2963
  onboarding?: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elevasis/ui",
3
- "version": "1.14.5",
3
+ "version": "1.15.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",
@@ -182,8 +182,8 @@
182
182
  "typescript": "5.9.2",
183
183
  "vite": "^7.0.0",
184
184
  "@repo/core": "0.0.0",
185
- "@repo/typescript-config": "0.0.0",
186
- "@repo/eslint-config": "0.0.0"
185
+ "@repo/eslint-config": "0.0.0",
186
+ "@repo/typescript-config": "0.0.0"
187
187
  },
188
188
  "dependencies": {
189
189
  "@dagrejs/dagre": "^1.1.4",