@elevasis/ui 1.11.2 → 1.13.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 (51) hide show
  1. package/dist/{CoreAuthKitInner-3J4RVQO6.js → CoreAuthKitInner-I32JCNE7.js} +1 -1
  2. package/dist/auth/context.js +1 -1
  3. package/dist/auth/index.js +5 -5
  4. package/dist/charts/index.js +9 -8
  5. package/dist/{chunk-WUQWCUCB.js → chunk-3VTC7OWU.js} +2 -2
  6. package/dist/{chunk-KPRCFAI4.js → chunk-4HLCZVS6.js} +8 -33
  7. package/dist/{chunk-AQZGGSZZ.js → chunk-4TWGUI3L.js} +30 -8
  8. package/dist/{chunk-THXI3CDT.js → chunk-7RAT54LF.js} +9 -276
  9. package/dist/{chunk-FWZJH3TL.js → chunk-ALA56RGZ.js} +1 -1
  10. package/dist/{chunk-GZVH423C.js → chunk-BK4EIWNU.js} +11 -5
  11. package/dist/{chunk-7PLEQFHO.js → chunk-BRJ3QZ4E.js} +1 -1
  12. package/dist/{chunk-7NX3WNBO.js → chunk-C27S6IIV.js} +4 -4
  13. package/dist/{chunk-3PURTICE.js → chunk-CKFTPEBC.js} +2 -2
  14. package/dist/{chunk-ARZM3OTI.js → chunk-EQNXEBGZ.js} +1 -1
  15. package/dist/{chunk-3I2LOKQU.js → chunk-GU46QC4Z.js} +2 -2
  16. package/dist/{chunk-2YBPRE6H.js → chunk-HGNP6EVB.js} +3 -4
  17. package/dist/{chunk-564T2YKH.js → chunk-HLZMP7GN.js} +45 -24
  18. package/dist/chunk-HRG3KPL6.js +295 -0
  19. package/dist/{chunk-JGJSZ3UE.js → chunk-NJJ3NQ7B.js} +1 -1
  20. package/dist/{chunk-CC6BRHQK.js → chunk-RM6ACTB3.js} +2 -2
  21. package/dist/chunk-SZHARWKU.js +15 -0
  22. package/dist/{chunk-6TMW6VQ2.js → chunk-V5GGPIDD.js} +2 -2
  23. package/dist/{chunk-YGYF6G7W.js → chunk-YHTK43DV.js} +1 -11
  24. package/dist/components/index.d.ts +2 -0
  25. package/dist/components/index.js +69 -27
  26. package/dist/execution/index.d.ts +2 -0
  27. package/dist/hooks/index.css +45 -0
  28. package/dist/hooks/index.d.ts +19 -3
  29. package/dist/hooks/index.js +14 -12
  30. package/dist/hooks/published.css +45 -0
  31. package/dist/hooks/published.d.ts +17 -1
  32. package/dist/hooks/published.js +13 -11
  33. package/dist/index.css +45 -0
  34. package/dist/index.d.ts +69 -63
  35. package/dist/index.js +16 -14
  36. package/dist/initialization/index.js +4 -4
  37. package/dist/layout/index.d.ts +6 -2
  38. package/dist/layout/index.js +4 -2
  39. package/dist/organization/index.d.ts +5 -2
  40. package/dist/organization/index.js +4 -4
  41. package/dist/profile/index.d.ts +14 -4
  42. package/dist/profile/index.js +2 -2
  43. package/dist/provider/index.css +45 -0
  44. package/dist/provider/index.d.ts +34 -57
  45. package/dist/provider/index.js +8 -6
  46. package/dist/provider/published.css +44 -0
  47. package/dist/provider/published.d.ts +32 -27
  48. package/dist/provider/published.js +7 -5
  49. package/dist/supabase/index.js +2 -2
  50. package/dist/types/index.d.ts +2 -0
  51. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { AuthProvider } from './chunk-7PLEQFHO.js';
1
+ import { AuthProvider } from './chunk-BRJ3QZ4E.js';
2
2
  import { AuthKitProvider, useAuth } from '@workos-inc/authkit-react';
3
3
  import { useMemo } from 'react';
4
4
  import { jsx } from 'react/jsx-runtime';
@@ -1 +1 @@
1
- export { AuthProvider, useAuthContext } from '../chunk-7PLEQFHO.js';
1
+ export { AuthProvider, useAuthContext } from '../chunk-BRJ3QZ4E.js';
@@ -1,6 +1,6 @@
1
- export { AdminGuard, ProtectedRoute, useSessionCheck as useRefocusSessionCheck, useSessionCheck } from '../chunk-6TMW6VQ2.js';
2
- export { useStableAccessToken } from '../chunk-FWZJH3TL.js';
3
- import '../chunk-WUQWCUCB.js';
4
- import '../chunk-GZVH423C.js';
1
+ export { AdminGuard, ProtectedRoute, useSessionCheck as useRefocusSessionCheck, useSessionCheck } from '../chunk-V5GGPIDD.js';
2
+ export { useStableAccessToken } from '../chunk-ALA56RGZ.js';
3
+ import '../chunk-3VTC7OWU.js';
4
+ import '../chunk-BK4EIWNU.js';
5
5
  import '../chunk-DD3CCMCZ.js';
6
- export { AuthProvider, useAuthContext } from '../chunk-7PLEQFHO.js';
6
+ export { AuthProvider, useAuthContext } from '../chunk-BRJ3QZ4E.js';
@@ -1,13 +1,14 @@
1
- export { ActivityTrendChart, CombinedTrendChart, CostTrendChart, CyberAreaChart, CyberDonut, CyberDonutTooltip, CyberLegendItem, HeroStatsRow, getSeriesColor, useCyberColors } from '../chunk-CC6BRHQK.js';
2
- import '../chunk-YGYF6G7W.js';
3
- import '../chunk-ARZM3OTI.js';
1
+ export { ActivityTrendChart, CombinedTrendChart, CostTrendChart, CyberAreaChart, CyberDonut, CyberDonutTooltip, CyberLegendItem, HeroStatsRow, getSeriesColor, useCyberColors } from '../chunk-RM6ACTB3.js';
2
+ import '../chunk-YHTK43DV.js';
3
+ import '../chunk-EQNXEBGZ.js';
4
4
  import '../chunk-LHQTTUL2.js';
5
5
  import '../chunk-ELJIFLCB.js';
6
+ import '../chunk-SZHARWKU.js';
6
7
  import '../chunk-FCFLBMVI.js';
7
- import '../chunk-6TMW6VQ2.js';
8
- import '../chunk-FWZJH3TL.js';
9
- import '../chunk-WUQWCUCB.js';
10
- import '../chunk-GZVH423C.js';
8
+ import '../chunk-V5GGPIDD.js';
9
+ import '../chunk-ALA56RGZ.js';
10
+ import '../chunk-3VTC7OWU.js';
11
+ import '../chunk-BK4EIWNU.js';
11
12
  import '../chunk-DD3CCMCZ.js';
12
- import '../chunk-7PLEQFHO.js';
13
+ import '../chunk-BRJ3QZ4E.js';
13
14
  import '../chunk-Q7DJKLEN.js';
@@ -1,6 +1,6 @@
1
- import { useProfile } from './chunk-GZVH423C.js';
1
+ import { useProfile } from './chunk-BK4EIWNU.js';
2
2
  import { useOrganization } from './chunk-DD3CCMCZ.js';
3
- import { useAuthContext } from './chunk-7PLEQFHO.js';
3
+ import { useAuthContext } from './chunk-BRJ3QZ4E.js';
4
4
  import { createContext, useContext, useMemo, useCallback, createElement } from 'react';
5
5
 
6
6
  var InitializationContext = createContext(null);
@@ -1,5 +1,5 @@
1
1
  import { PRESETS, getPreset, generateShades, mantineThemeOverride, createCssVariablesResolver, PresetsProvider } from './chunk-WNRHQAJA.js';
2
- import { ElevasisCoreProvider } from './chunk-564T2YKH.js';
2
+ import { ElevasisCoreProvider } from './chunk-HLZMP7GN.js';
3
3
  import { getErrorInfo, formatErrorMessage, getErrorTitle } from './chunk-FCFLBMVI.js';
4
4
  import { useMemo, useEffect } from 'react';
5
5
  import { mergeThemeOverrides, MantineProvider } from '@mantine/core';
@@ -8,42 +8,18 @@ import '@mantine/notifications/styles.css';
8
8
  import { notifications } from '@mantine/notifications';
9
9
  import { jsx } from 'react/jsx-runtime';
10
10
 
11
- var mantineNotificationAdapter = {
11
+ var mantineAdapter = {
12
12
  success(title, message) {
13
- notifications.show({
14
- title,
15
- message,
16
- autoClose: 5e3,
17
- color: "green",
18
- position: "top-right"
19
- });
13
+ notifications.show({ title, message, autoClose: 5e3, color: "green", position: "top-right" });
20
14
  },
21
15
  error(title, message) {
22
- notifications.show({
23
- title,
24
- message,
25
- autoClose: 5e3,
26
- color: "red",
27
- position: "top-right"
28
- });
16
+ notifications.show({ title, message, autoClose: 5e3, color: "red", position: "top-right" });
29
17
  },
30
18
  info(title, message) {
31
- notifications.show({
32
- title,
33
- message,
34
- autoClose: 5e3,
35
- color: "blue",
36
- position: "top-right"
37
- });
19
+ notifications.show({ title, message, autoClose: 5e3, color: "blue", position: "top-right" });
38
20
  },
39
21
  warning(title, message) {
40
- notifications.show({
41
- title,
42
- message,
43
- autoClose: 5e3,
44
- color: "orange",
45
- position: "top-right"
46
- });
22
+ notifications.show({ title, message, autoClose: 5e3, color: "orange", position: "top-right" });
47
23
  },
48
24
  apiError(error) {
49
25
  const { message, code, requestId, fields, retryAfter } = getErrorInfo(error);
@@ -104,10 +80,9 @@ function ElevasisUIProvider({ theme, children, ...coreProps }) {
104
80
  theme: resolvedTheme,
105
81
  defaultColorScheme: resolvedColorScheme,
106
82
  cssVariablesResolver,
107
- children: /* @__PURE__ */ jsx(PresetsProvider, { value: activePresets, children: /* @__PURE__ */ jsx(ElevasisCoreProvider, { notifications: mantineNotificationAdapter, ...coreProps, children }) })
83
+ children: /* @__PURE__ */ jsx(PresetsProvider, { value: activePresets, children: /* @__PURE__ */ jsx(ElevasisCoreProvider, { notifications: mantineAdapter, ...coreProps, children }) })
108
84
  }
109
85
  );
110
86
  }
111
- var ElevasisProvider = ElevasisUIProvider;
112
87
 
113
- export { ElevasisProvider, ElevasisUIProvider, mantineNotificationAdapter };
88
+ export { ElevasisUIProvider };
@@ -1,16 +1,16 @@
1
- import { getTimeRangeDates, observabilityKeys } from './chunk-ARZM3OTI.js';
2
- import { useSupabase } from './chunk-JGJSZ3UE.js';
1
+ import { getTimeRangeDates, observabilityKeys } from './chunk-EQNXEBGZ.js';
2
+ import { useSupabase } from './chunk-NJJ3NQ7B.js';
3
3
  import { GRAPH_CONSTANTS } from './chunk-F6RBK7NJ.js';
4
- import { useNotificationAdapter } from './chunk-564T2YKH.js';
4
+ import { useNotificationAdapter } from './chunk-HLZMP7GN.js';
5
5
  import { HTTP_HEADERS } from './chunk-RULQSZYX.js';
6
6
  import { STALE_TIME_MONITORING, REFETCH_INTERVAL_DASHBOARD, REFETCH_INTERVAL_RUNNING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, STALE_TIME_DEFAULT, STALE_TIME_ADMIN } from './chunk-FCFLBMVI.js';
7
- import { useStableAccessToken } from './chunk-FWZJH3TL.js';
8
- import { useElevasisServices } from './chunk-GZVH423C.js';
7
+ import { useStableAccessToken } from './chunk-ALA56RGZ.js';
8
+ import { useElevasisServices } from './chunk-BK4EIWNU.js';
9
9
  import { useOrganization } from './chunk-DD3CCMCZ.js';
10
- import { useAuthContext } from './chunk-7PLEQFHO.js';
10
+ import { useAuthContext } from './chunk-BRJ3QZ4E.js';
11
11
  import { useQuery, useQueryClient, useMutation, useQueries } from '@tanstack/react-query';
12
12
  import { z } from 'zod';
13
- import { useCallback, useMemo, useState, useRef, useEffect, useId } from 'react';
13
+ import { useState, useCallback, useMemo, useRef, useEffect, useId } from 'react';
14
14
  import { useNavigate, useSearch } from '@tanstack/react-router';
15
15
  import { create } from 'zustand';
16
16
  import { persist } from 'zustand/middleware';
@@ -534,6 +534,28 @@ function useResourceDefinition(resourceId, enabled = true) {
534
534
  retryDelay: (attemptIndex) => Math.min(1e3 * 2 ** attemptIndex, 3e4)
535
535
  });
536
536
  }
537
+ function useArchivedLogs(executionId) {
538
+ const { apiRequest } = useElevasisServices();
539
+ const [logs, setLogs] = useState(null);
540
+ const [isLoading, setIsLoading] = useState(false);
541
+ const [error, setError] = useState(null);
542
+ const fetch = useCallback(async () => {
543
+ if (!executionId || isLoading) return;
544
+ setIsLoading(true);
545
+ setError(null);
546
+ try {
547
+ const response = await apiRequest(
548
+ `/observability/executions/${executionId}/archived-logs`
549
+ );
550
+ setLogs(response.logs);
551
+ } catch (err) {
552
+ setError(err instanceof Error ? err.message : "Failed to load archived logs");
553
+ } finally {
554
+ setIsLoading(false);
555
+ }
556
+ }, [executionId, apiRequest, isLoading]);
557
+ return { logs, isLoading, error, fetch };
558
+ }
537
559
  function useActivityTrend(params = {}) {
538
560
  const { apiRequest, isReady, organizationId } = useElevasisServices();
539
561
  return useQuery({
@@ -2547,4 +2569,4 @@ function useResourceExecutions({ resourceId, timeRange, enabled = true }) {
2547
2569
  });
2548
2570
  }
2549
2571
 
2550
- export { CredentialNameSchema, OperationsService, UuidSchema, createUseFeatureAccess, executionsKeys, isSessionCapable, operationsKeys, scheduleKeys, sessionsKeys, sortData, useActivities, useActivityTrend, useArchiveSession, 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 };
2572
+ export { CredentialNameSchema, OperationsService, UuidSchema, 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 };
@@ -1,7 +1,9 @@
1
- import { NavigationButton, ElevasisLoader } from './chunk-YGYF6G7W.js';
1
+ import { NavigationButton } from './chunk-YHTK43DV.js';
2
+ import { useAppearance } from './chunk-HRG3KPL6.js';
3
+ import { ElevasisLoader } from './chunk-SZHARWKU.js';
2
4
  import { useRouterContext } from './chunk-Q7DJKLEN.js';
3
- import { Collapse, HoverCard, Stack, Group, Text, UnstyledButton, Tooltip, ScrollArea, Menu, Avatar, useComputedColorScheme, Container, Loader, Title, Button, Box, Center, useMantineColorScheme, Switch, Code } from '@mantine/core';
4
5
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
6
+ import { Collapse, HoverCard, Stack, Group, Text, UnstyledButton, Tooltip, ScrollArea, Menu, Avatar, Container, Loader, Title, Button, Box, Center, useMantineColorScheme, Switch, Code } from '@mantine/core';
5
7
  import { IconLayoutSidebarLeftExpand, IconLayoutSidebarLeftCollapse, IconUser, IconLogout, IconAlertCircle, IconChevronDown, IconChevronRight, IconMoonStars, IconSun } from '@tabler/icons-react';
6
8
  import { createContext, memo, useEffect, createElement, useContext, useState } from 'react';
7
9
 
@@ -11,274 +13,6 @@ var sidebarCollapsedWidth = 72;
11
13
  var sidebarTransitionDuration = 200;
12
14
  var sidebarHoverDelay = 100;
13
15
  var topbarHeight = 54;
14
- var KEYFRAMES = `
15
- @keyframes elevasis-grain-shift {
16
- 0%, 100% { transform: translate(0, 0); }
17
- 10% { transform: translate(-2%, -3%); }
18
- 20% { transform: translate(3%, 1%); }
19
- 30% { transform: translate(-1%, 4%); }
20
- 40% { transform: translate(4%, -2%); }
21
- 50% { transform: translate(-3%, 2%); }
22
- 60% { transform: translate(2%, -4%); }
23
- 70% { transform: translate(-4%, 1%); }
24
- 80% { transform: translate(1%, 3%); }
25
- 90% { transform: translate(3%, -1%); }
26
- }
27
- `;
28
- function FilmGrain({ darkOpacity = 0.02, lightOpacity = 0.06, className }) {
29
- const colorScheme = useComputedColorScheme();
30
- const opacity = colorScheme === "dark" ? darkOpacity : lightOpacity;
31
- return /* @__PURE__ */ jsxs(
32
- "div",
33
- {
34
- className,
35
- style: {
36
- position: "absolute",
37
- inset: 0,
38
- pointerEvents: "none",
39
- overflow: "clip",
40
- opacity,
41
- mixBlendMode: colorScheme === "dark" ? "screen" : "multiply"
42
- },
43
- children: [
44
- /* @__PURE__ */ jsx("style", { children: KEYFRAMES }),
45
- /* @__PURE__ */ jsx("svg", { style: { position: "absolute", width: 0, height: 0 }, children: /* @__PURE__ */ jsx("filter", { id: "elevasis-grain", children: /* @__PURE__ */ jsx("feTurbulence", { type: "fractalNoise", baseFrequency: "0.65", numOctaves: "3", stitchTiles: "stitch" }) }) }),
46
- /* @__PURE__ */ jsx(
47
- "div",
48
- {
49
- style: {
50
- position: "absolute",
51
- inset: "-50%",
52
- width: "200%",
53
- height: "200%",
54
- filter: "url(#elevasis-grain)",
55
- animation: "elevasis-grain-shift 0.8s steps(4) infinite",
56
- willChange: "transform"
57
- }
58
- }
59
- )
60
- ]
61
- }
62
- );
63
- }
64
- var KEYFRAMES2 = `
65
- @keyframes elevasis-orb-float-0 {
66
- 0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.5; }
67
- 25% { transform: translate(12vw, -8vh) scale(1.2); opacity: 0.8; }
68
- 50% { transform: translate(-5vw, -15vh) scale(0.9); opacity: 0.4; }
69
- 75% { transform: translate(8vw, 5vh) scale(1.1); opacity: 0.7; }
70
- }
71
- @keyframes elevasis-orb-float-1 {
72
- 0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.6; }
73
- 30% { transform: translate(-10vw, 6vh) scale(0.85); opacity: 0.3; }
74
- 60% { transform: translate(7vw, 12vh) scale(1.15); opacity: 0.7; }
75
- }
76
- @keyframes elevasis-orb-float-2 {
77
- 0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.4; }
78
- 20% { transform: translate(6vw, 10vh) scale(1.3); opacity: 0.7; }
79
- 50% { transform: translate(-8vw, -4vh) scale(0.8); opacity: 0.3; }
80
- 80% { transform: translate(3vw, -12vh) scale(1.1); opacity: 0.6; }
81
- }
82
- `;
83
- var ORB_CONFIGS = [
84
- { top: "10%", left: "15%", size: "25vw", anim: "elevasis-orb-float-0", dur: "22s" },
85
- { top: "60%", left: "70%", size: "30vw", anim: "elevasis-orb-float-1", dur: "28s" },
86
- { top: "30%", left: "50%", size: "20vw", anim: "elevasis-orb-float-2", dur: "32s" },
87
- { top: "75%", left: "20%", size: "22vw", anim: "elevasis-orb-float-0", dur: "26s" },
88
- { top: "5%", left: "75%", size: "18vw", anim: "elevasis-orb-float-1", dur: "30s" },
89
- { top: "45%", left: "5%", size: "24vw", anim: "elevasis-orb-float-2", dur: "24s" }
90
- ];
91
- function FloatingOrbs({
92
- color = "var(--color-primary)",
93
- count = 6,
94
- className
95
- }) {
96
- const orbs = ORB_CONFIGS.slice(0, count);
97
- return /* @__PURE__ */ jsxs(
98
- "div",
99
- {
100
- className,
101
- style: {
102
- position: "absolute",
103
- inset: 0,
104
- pointerEvents: "none",
105
- overflow: "clip"
106
- },
107
- children: [
108
- /* @__PURE__ */ jsx("style", { children: KEYFRAMES2 }),
109
- orbs.map((orb, i) => /* @__PURE__ */ jsx(
110
- "div",
111
- {
112
- style: {
113
- position: "absolute",
114
- top: orb.top,
115
- left: orb.left,
116
- width: orb.size,
117
- height: orb.size,
118
- borderRadius: "50%",
119
- background: `radial-gradient(circle at center, color-mix(in srgb, ${color} 3%, transparent) 0%, transparent 70%)`,
120
- filter: "blur(40px)",
121
- animation: `${orb.anim} ${orb.dur} ease-in-out infinite`,
122
- willChange: "transform, opacity"
123
- }
124
- },
125
- i
126
- ))
127
- ]
128
- }
129
- );
130
- }
131
- function PerspectiveGrid({
132
- glowColor = "rgba(123, 123, 123, 0.1)",
133
- className
134
- }) {
135
- const colorScheme = useComputedColorScheme();
136
- const lineColor = colorScheme === "dark" ? "rgba(90, 90, 90, 0.1)" : "rgba(120, 120, 120, 0.1)";
137
- return /* @__PURE__ */ jsxs(
138
- "div",
139
- {
140
- className,
141
- style: {
142
- position: "absolute",
143
- inset: 0,
144
- pointerEvents: "none",
145
- overflow: "hidden",
146
- perspective: "500px"
147
- },
148
- children: [
149
- /* @__PURE__ */ jsx(
150
- "div",
151
- {
152
- style: {
153
- position: "absolute",
154
- bottom: 0,
155
- left: "50%",
156
- transform: "translateX(-50%)",
157
- width: "100%",
158
- height: "60%",
159
- background: `radial-gradient(ellipse 90% 75% at 50% 112%, ${glowColor} -15%, transparent 45%)`,
160
- pointerEvents: "none"
161
- }
162
- }
163
- ),
164
- /* @__PURE__ */ jsx(
165
- "div",
166
- {
167
- style: {
168
- position: "absolute",
169
- left: "-50%",
170
- right: "-50%",
171
- bottom: 0,
172
- height: "70%",
173
- backgroundImage: `
174
- linear-gradient(${lineColor} 2px, transparent 1px),
175
- linear-gradient(90deg, ${lineColor} 2px, transparent 1px)
176
- `,
177
- backgroundSize: "120px 100px",
178
- transform: "rotateX(60deg)",
179
- transformOrigin: "bottom center",
180
- maskImage: "linear-gradient(to bottom, transparent 0%, black 100%, black 100%, transparent 100%)",
181
- WebkitMaskImage: "linear-gradient(to bottom, transparent 0%, black 100%, black 100%, transparent 100%)"
182
- }
183
- }
184
- )
185
- ]
186
- }
187
- );
188
- }
189
- var KEYFRAMES3 = `
190
- @keyframes elevasis-glow-drift {
191
- 0% { transform: translateY(0) scale(1); opacity: 1; }
192
- 20% { transform: translateY(-8%) scale(1.12); opacity: 0.7; }
193
- 40% { transform: translateY(3%) scale(0.92); opacity: 1; }
194
- 60% { transform: translateY(5%) scale(1.08); opacity: 0.8; }
195
- 80% { transform: translateY(-4%) scale(0.95); opacity: 0.9; }
196
- 100% { transform: translateY(0) scale(1); opacity: 1; }
197
- }
198
- @keyframes elevasis-glow-drift-alt {
199
- 0% { transform: translateY(0) scale(1); opacity: 0.8; }
200
- 25% { transform: translateY(6%) scale(0.9); opacity: 1; }
201
- 50% { transform: translateY(-7%) scale(1.15); opacity: 0.7; }
202
- 75% { transform: translateY(-5%) scale(1.05); opacity: 0.9; }
203
- 100% { transform: translateY(0) scale(1); opacity: 0.8; }
204
- }
205
- @keyframes elevasis-glow-drift-slow {
206
- 0% { transform: translateY(0) scale(1); opacity: 0.9; }
207
- 33% { transform: translateY(-4%) scale(1.1); opacity: 0.6; }
208
- 66% { transform: translateY(6%) scale(0.88); opacity: 1; }
209
- 100% { transform: translateY(0) scale(1); opacity: 0.9; }
210
- }
211
- `;
212
- function RadiantGlow({
213
- color = "var(--color-primary)",
214
- opacity = 1,
215
- className
216
- }) {
217
- return /* @__PURE__ */ jsxs(
218
- "div",
219
- {
220
- className,
221
- style: {
222
- position: "absolute",
223
- inset: 0,
224
- pointerEvents: "none",
225
- overflow: "clip",
226
- opacity
227
- },
228
- children: [
229
- /* @__PURE__ */ jsx("style", { children: KEYFRAMES3 }),
230
- /* @__PURE__ */ jsx(
231
- "div",
232
- {
233
- style: {
234
- position: "absolute",
235
- top: "-80%",
236
- left: "50%",
237
- transform: "translateX(-50%)",
238
- width: "200%",
239
- height: "200%",
240
- background: `radial-gradient(ellipse at center, color-mix(in srgb, ${color} 0.8%, transparent) 0%, transparent 70%)`,
241
- animation: "elevasis-glow-drift 20s ease-in-out infinite",
242
- willChange: "transform"
243
- }
244
- }
245
- ),
246
- /* @__PURE__ */ jsx(
247
- "div",
248
- {
249
- style: {
250
- position: "absolute",
251
- bottom: "-70%",
252
- left: "50%",
253
- transform: "translateX(-50%)",
254
- width: "180%",
255
- height: "180%",
256
- background: `radial-gradient(ellipse at center, color-mix(in srgb, ${color} 0.6%, transparent) 0%, transparent 65%)`,
257
- animation: "elevasis-glow-drift-alt 24s ease-in-out infinite",
258
- willChange: "transform"
259
- }
260
- }
261
- ),
262
- /* @__PURE__ */ jsx(
263
- "div",
264
- {
265
- style: {
266
- position: "absolute",
267
- top: "-20%",
268
- left: "50%",
269
- transform: "translateX(-50%)",
270
- width: "120%",
271
- height: "120%",
272
- background: `radial-gradient(ellipse at center, color-mix(in srgb, ${color} 0.6%, transparent) 0%, transparent 60%)`,
273
- animation: "elevasis-glow-drift-slow 28s ease-in-out infinite",
274
- willChange: "transform"
275
- }
276
- }
277
- )
278
- ]
279
- }
280
- );
281
- }
282
16
  function Vignette({ strength = 0.35, className }) {
283
17
  return /* @__PURE__ */ jsx(
284
18
  "div",
@@ -294,6 +28,7 @@ function Vignette({ strength = 0.35, className }) {
294
28
  );
295
29
  }
296
30
  var AppShellContainer = ({ children }) => {
31
+ const { background } = useAppearance();
297
32
  return /* @__PURE__ */ jsxs(
298
33
  "div",
299
34
  {
@@ -304,10 +39,7 @@ var AppShellContainer = ({ children }) => {
304
39
  position: "relative"
305
40
  },
306
41
  children: [
307
- /* @__PURE__ */ jsx(PerspectiveGrid, {}),
308
- /* @__PURE__ */ jsx(RadiantGlow, {}),
309
- /* @__PURE__ */ jsx(FloatingOrbs, {}),
310
- /* @__PURE__ */ jsx(FilmGrain, {}),
42
+ background,
311
43
  children
312
44
  ]
313
45
  }
@@ -1344,7 +1076,8 @@ var SubshellSidebarSection = ({
1344
1076
  // src/components/layout/sub-shell/constants.ts
1345
1077
  var subsidebarWidth = 200;
1346
1078
  function SubshellLoader() {
1347
- return /* @__PURE__ */ jsx(Center, { mih: "calc(100vh - 70px)", children: /* @__PURE__ */ jsx(Loader, { size: "lg", loaders: { elevasis: ElevasisLoader }, type: "elevasis" }) });
1079
+ const { loader } = useAppearance();
1080
+ return /* @__PURE__ */ jsx(Center, { mih: "calc(100vh - 70px)", children: loader });
1348
1081
  }
1349
1082
  var TopbarContainer = ({ children }) => {
1350
1083
  const { isCollapsed } = useSidebar();
@@ -1435,4 +1168,4 @@ var Topbar = ({ version, leftContent, children }) => {
1435
1168
  ] });
1436
1169
  };
1437
1170
 
1438
- export { 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, sidebarHoverDelay, sidebarTransitionDuration, sidebarWidth, subsidebarWidth, topbarHeight, useSidebar, useSidebarCollapse };
1171
+ export { AppShellCenteredContainer, AppShellContainer, AppShellContentContainer, AppShellError, AppShellLoader, AppShellRightSideContainer, AppShellRightSideOuterContainer, AppTopbarAdjusterWrapper, CollapsibleSidebarGroup, LinksGroup, PageContainer, Sidebar, SidebarListItem, SidebarProvider, SubshellContainer, SubshellContentContainer, SubshellLoader, SubshellRightSideContainer, SubshellSidebar, SubshellSidebarSection, Topbar, TopbarContainer, Vignette, sidebarCollapsedWidth, sidebarHoverDelay, sidebarTransitionDuration, sidebarWidth, subsidebarWidth, topbarHeight, useSidebar, useSidebarCollapse };
@@ -1,4 +1,4 @@
1
- import { useAuthContext } from './chunk-7PLEQFHO.js';
1
+ import { useAuthContext } from './chunk-BRJ3QZ4E.js';
2
2
  import { useRef, useCallback } from 'react';
3
3
 
4
4
  function useStableAccessToken() {
@@ -1,4 +1,4 @@
1
- import { useAuthContext } from './chunk-7PLEQFHO.js';
1
+ import { useAuthContext } from './chunk-BRJ3QZ4E.js';
2
2
  import { createContext, useContext, useMemo, useState, useEffect, createElement } from 'react';
3
3
  import { jsx } from 'react/jsx-runtime';
4
4
 
@@ -7,7 +7,7 @@ function useElevasisServices() {
7
7
  const ctx = useContext(ElevasisServiceContext);
8
8
  if (!ctx) {
9
9
  throw new Error(
10
- "useElevasisServices must be used within an ElevasisServiceProvider or an ElevasisProvider with apiUrl configured."
10
+ "useElevasisServices must be used within an ElevasisServiceProvider or an ElevasisUIProvider with apiUrl configured."
11
11
  );
12
12
  }
13
13
  return ctx;
@@ -90,7 +90,13 @@ var UserProfileService = class {
90
90
  };
91
91
  var useUserProfile = (options) => {
92
92
  const { user, isLoading: authLoading } = useAuthContext();
93
- const { apiRequest } = useElevasisServices();
93
+ const serviceCtx = useContext(ElevasisServiceContext);
94
+ const apiRequest = options?.apiRequest ?? serviceCtx?.apiRequest;
95
+ if (!apiRequest) {
96
+ throw new Error(
97
+ "useUserProfile: no apiRequest available. Either pass it via options or use within ElevasisServiceProvider."
98
+ );
99
+ }
94
100
  const [profile, setProfile] = useState(null);
95
101
  const [loading, setLoading] = useState(true);
96
102
  const [error, setError] = useState(null);
@@ -156,8 +162,8 @@ function useProfile() {
156
162
  }
157
163
  return ctx;
158
164
  }
159
- function ProfileProvider({ children }) {
160
- const value = useUserProfile();
165
+ function ProfileProvider({ apiRequest, children }) {
166
+ const value = useUserProfile({ apiRequest });
161
167
  return createElement(ProfileContext.Provider, { value }, children);
162
168
  }
163
169
 
@@ -6,7 +6,7 @@ function useAuthContext() {
6
6
  const ctx = useContext(AuthContext);
7
7
  if (!ctx) {
8
8
  throw new Error(
9
- "useAuthContext must be used within an AuthProvider. Wrap your app with <ElevasisProvider> or a custom AuthProvider."
9
+ "useAuthContext must be used within an AuthProvider. Wrap your app with <ElevasisUIProvider> or a custom AuthProvider."
10
10
  );
11
11
  }
12
12
  return ctx;
@@ -1,8 +1,8 @@
1
- import { CredentialNameSchema, UuidSchema, useErrorNotification } from './chunk-AQZGGSZZ.js';
2
- import { getTimeRangeDates } from './chunk-ARZM3OTI.js';
3
- import { useNotificationAdapter } from './chunk-564T2YKH.js';
1
+ import { CredentialNameSchema, UuidSchema, useErrorNotification } from './chunk-4TWGUI3L.js';
2
+ import { getTimeRangeDates } from './chunk-EQNXEBGZ.js';
3
+ import { useNotificationAdapter } from './chunk-HLZMP7GN.js';
4
4
  import { GC_TIME_SHORT, STALE_TIME_MONITORING, GC_TIME_MEDIUM, STALE_TIME_DEFAULT, getErrorInfo, formatErrorMessage, getErrorTitle } from './chunk-FCFLBMVI.js';
5
- import { useElevasisServices } from './chunk-GZVH423C.js';
5
+ import { useElevasisServices } from './chunk-BK4EIWNU.js';
6
6
  import { z } from 'zod';
7
7
  import { create } from 'zustand';
8
8
  import { useState, useRef, useEffect, useCallback, useMemo } from 'react';
@@ -1,5 +1,5 @@
1
- import { useUserProfile } from './chunk-GZVH423C.js';
2
- import { useAuthContext } from './chunk-7PLEQFHO.js';
1
+ import { useUserProfile } from './chunk-BK4EIWNU.js';
2
+ import { useAuthContext } from './chunk-BRJ3QZ4E.js';
3
3
  import { useMemo, useCallback } from 'react';
4
4
 
5
5
  function createUseAppInitialization(useOrgInitialization) {
@@ -1,4 +1,4 @@
1
- import { useElevasisServices } from './chunk-GZVH423C.js';
1
+ import { useElevasisServices } from './chunk-BK4EIWNU.js';
2
2
  import { useQuery } from '@tanstack/react-query';
3
3
 
4
4
  // src/hooks/observability/queryKeys.ts
@@ -1,5 +1,5 @@
1
- import { useUserProfile } from './chunk-GZVH423C.js';
2
- import { useAuthContext } from './chunk-7PLEQFHO.js';
1
+ import { useUserProfile } from './chunk-BK4EIWNU.js';
2
+ import { useAuthContext } from './chunk-BRJ3QZ4E.js';
3
3
  import { useState, useRef, useEffect, useCallback } from 'react';
4
4
 
5
5
  // src/organization/store/organizationsSlice.ts
@@ -1,12 +1,11 @@
1
- import { useElevasisServices, useProfile } from './chunk-GZVH423C.js';
1
+ import { useProfile } from './chunk-BK4EIWNU.js';
2
2
  import { OrganizationContext } from './chunk-DD3CCMCZ.js';
3
- import { useAuthContext } from './chunk-7PLEQFHO.js';
3
+ import { useAuthContext } from './chunk-BRJ3QZ4E.js';
4
4
  import { useState, useRef, useEffect, useCallback, createElement } from 'react';
5
5
  import { useQueryClient } from '@tanstack/react-query';
6
6
 
7
- function OrganizationProvider({ children }) {
7
+ function OrganizationProvider({ apiRequest, children }) {
8
8
  const { user, organizationId: workosOrgId } = useAuthContext();
9
- const { apiRequest } = useElevasisServices();
10
9
  const { profile } = useProfile();
11
10
  const queryClient = useQueryClient();
12
11
  const [memberships, setMemberships] = useState([]);