@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,13 +1,16 @@
1
- import { OrganizationProvider } from './chunk-2YBPRE6H.js';
1
+ import { AppBackground, AppearanceProvider } from './chunk-HRG3KPL6.js';
2
+ import { ElevasisLoader } from './chunk-SZHARWKU.js';
3
+ import { OrganizationProvider } from './chunk-HGNP6EVB.js';
2
4
  import { ApiClientProvider, useApiClient } from './chunk-RULQSZYX.js';
3
5
  import { getErrorInfo, getErrorTitle, formatErrorMessage } from './chunk-FCFLBMVI.js';
4
- import { InitializationProvider } from './chunk-WUQWCUCB.js';
5
- import { ElevasisServiceProvider, ProfileProvider, useElevasisServices } from './chunk-GZVH423C.js';
6
+ import { InitializationProvider } from './chunk-3VTC7OWU.js';
7
+ import { ProfileProvider, ElevasisServiceProvider } from './chunk-BK4EIWNU.js';
6
8
  import { useOrganization } from './chunk-DD3CCMCZ.js';
7
- import { useAuthContext } from './chunk-7PLEQFHO.js';
9
+ import { useAuthContext } from './chunk-BRJ3QZ4E.js';
8
10
  import { createContext, lazy, useContext, Suspense, useRef } from 'react';
9
- import { jsx, Fragment } from 'react/jsx-runtime';
11
+ import { jsx } from 'react/jsx-runtime';
10
12
  import { QueryClientProvider, QueryClient } from '@tanstack/react-query';
13
+ import { Loader } from '@mantine/core';
11
14
 
12
15
  var consoleAdapter = {
13
16
  success(title, message) {
@@ -36,7 +39,7 @@ function NotificationProvider({ adapter, children }) {
36
39
  function useNotificationAdapter() {
37
40
  return useContext(NotificationContext);
38
41
  }
39
- var LazyCoreAuthKitInner = lazy(() => import('./CoreAuthKitInner-3J4RVQO6.js').then((m) => ({ default: m.CoreAuthKitInner })));
42
+ var LazyCoreAuthKitInner = lazy(() => import('./CoreAuthKitInner-I32JCNE7.js').then((m) => ({ default: m.CoreAuthKitInner })));
40
43
  var defaultQueryClient = null;
41
44
  function getDefaultQueryClient() {
42
45
  if (!defaultQueryClient) {
@@ -46,12 +49,30 @@ function getDefaultQueryClient() {
46
49
  }
47
50
  return defaultQueryClient;
48
51
  }
52
+ var consoleNotificationAdapter = {
53
+ success(title, message) {
54
+ console.log(`[Notification][Success] ${title}: ${message}`);
55
+ },
56
+ error(title, message) {
57
+ console.warn(`[Notification][Error] ${title}: ${message}`);
58
+ },
59
+ info(title, message) {
60
+ console.log(`[Notification][Info] ${title}: ${message}`);
61
+ },
62
+ warning(title, message) {
63
+ console.warn(`[Notification][Warning] ${title}: ${message}`);
64
+ },
65
+ apiError(error) {
66
+ console.warn(`[Notification][API Error]`, error);
67
+ }
68
+ };
49
69
  function ElevasisCoreProvider({
50
70
  auth,
51
71
  queryClient,
52
72
  apiUrl,
53
73
  onError,
54
74
  notifications,
75
+ appearance,
55
76
  children
56
77
  }) {
57
78
  if (auth.mode === "apiKey") {
@@ -60,11 +81,15 @@ function ElevasisCoreProvider({
60
81
  );
61
82
  }
62
83
  const resolvedQueryClient = queryClient ?? getDefaultQueryClient();
63
- const content = apiUrl ? /* @__PURE__ */ jsx(CoreServiceBridge, { apiUrl, onError, notifications, children }) : children;
84
+ const resolvedAppearance = {
85
+ background: appearance?.background ?? /* @__PURE__ */ jsx(AppBackground, {}),
86
+ loader: appearance?.loader ?? /* @__PURE__ */ jsx(Loader, { size: "xl", loaders: { elevasis: ElevasisLoader }, type: "elevasis" })
87
+ };
88
+ const content = apiUrl ? /* @__PURE__ */ jsx(ServiceStack, { apiUrl, onError, notifications, children }) : children;
64
89
  const AuthInner = /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(LazyCoreAuthKitInner, { auth, children: content }) });
65
- return /* @__PURE__ */ jsx(QueryClientProvider, { client: resolvedQueryClient, children: AuthInner });
90
+ return /* @__PURE__ */ jsx(QueryClientProvider, { client: resolvedQueryClient, children: /* @__PURE__ */ jsx(AppearanceProvider, { value: resolvedAppearance, children: AuthInner }) });
66
91
  }
67
- function CoreServiceBridge({
92
+ function ServiceStack({
68
93
  apiUrl,
69
94
  onError,
70
95
  notifications,
@@ -80,34 +105,30 @@ function CoreServiceBridge({
80
105
  getOrganizationId,
81
106
  isOrganizationReady: false,
82
107
  onError,
83
- children: /* @__PURE__ */ jsx(CoreServiceBridgeInner, { apiUrl, orgIdRef, notifications, children })
108
+ children: /* @__PURE__ */ jsx(ServiceStackInner, { apiUrl, orgIdRef, notifications, children })
84
109
  }
85
110
  );
86
111
  }
87
- function CoreServiceBridgeInner({
112
+ function ServiceStackInner({
88
113
  apiUrl,
89
114
  orgIdRef,
90
115
  notifications,
91
116
  children
92
117
  }) {
93
118
  const { apiRequest } = useApiClient(apiUrl);
94
- return /* @__PURE__ */ jsx(ElevasisServiceProvider, { apiRequest, organizationId: null, isReady: false, children: /* @__PURE__ */ jsx(ProfileProvider, { children: /* @__PURE__ */ jsx(OrganizationProvider, { children: /* @__PURE__ */ jsx(OrgIdBridge, { orgIdRef, children: /* @__PURE__ */ jsx(CoreNotificationLayer, { notifications, children: /* @__PURE__ */ jsx(InitializationProvider, { children }) }) }) }) }) });
95
- }
96
- function OrgIdBridge({ orgIdRef, children }) {
97
- const { currentWorkOSOrganizationId, isInitializing, isOrgRefreshing } = useOrganization();
98
- const { apiRequest } = useElevasisServices();
99
- orgIdRef.current = currentWorkOSOrganizationId;
100
- const isReady = !!currentWorkOSOrganizationId && !isInitializing && !isOrgRefreshing;
101
- return /* @__PURE__ */ jsx(ElevasisServiceProvider, { apiRequest, organizationId: currentWorkOSOrganizationId, isReady, children });
119
+ const resolvedNotifications = notifications ?? consoleNotificationAdapter;
120
+ return /* @__PURE__ */ jsx(ProfileProvider, { apiRequest, children: /* @__PURE__ */ jsx(OrganizationProvider, { apiRequest, children: /* @__PURE__ */ jsx(OrgServiceBridge, { orgIdRef, apiRequest, notifications: resolvedNotifications, children }) }) });
102
121
  }
103
- function CoreNotificationLayer({
122
+ function OrgServiceBridge({
123
+ orgIdRef,
124
+ apiRequest,
104
125
  notifications,
105
126
  children
106
127
  }) {
107
- if (notifications) {
108
- return /* @__PURE__ */ jsx(NotificationProvider, { adapter: notifications, children });
109
- }
110
- return /* @__PURE__ */ jsx(Fragment, { children });
128
+ const { currentWorkOSOrganizationId, isInitializing, isOrgRefreshing } = useOrganization();
129
+ orgIdRef.current = currentWorkOSOrganizationId;
130
+ const isReady = !!currentWorkOSOrganizationId && !isInitializing && !isOrgRefreshing;
131
+ return /* @__PURE__ */ jsx(ElevasisServiceProvider, { apiRequest, organizationId: currentWorkOSOrganizationId, isReady, children: /* @__PURE__ */ jsx(NotificationProvider, { adapter: notifications, children: /* @__PURE__ */ jsx(InitializationProvider, { children }) }) });
111
132
  }
112
133
 
113
134
  export { ElevasisCoreProvider, NotificationProvider, useNotificationAdapter };
@@ -0,0 +1,295 @@
1
+ import { createContext, useContext } from 'react';
2
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
+ import { useComputedColorScheme } from '@mantine/core';
4
+
5
+ // src/provider/AppearanceContext.tsx
6
+ var AppearanceContext = createContext(null);
7
+ function AppearanceProvider({ value, children }) {
8
+ return /* @__PURE__ */ jsx(AppearanceContext.Provider, { value, children });
9
+ }
10
+ function useAppearance() {
11
+ const ctx = useContext(AppearanceContext);
12
+ if (!ctx) {
13
+ throw new Error("useAppearance must be used within an AppearanceProvider (ElevasisCoreProvider)");
14
+ }
15
+ return ctx;
16
+ }
17
+ function PerspectiveGrid({
18
+ glowColor = "rgba(123, 123, 123, 0.1)",
19
+ className
20
+ }) {
21
+ const colorScheme = useComputedColorScheme();
22
+ const lineColor = colorScheme === "dark" ? "rgba(90, 90, 90, 0.1)" : "rgba(120, 120, 120, 0.1)";
23
+ return /* @__PURE__ */ jsxs(
24
+ "div",
25
+ {
26
+ className,
27
+ style: {
28
+ position: "absolute",
29
+ inset: 0,
30
+ pointerEvents: "none",
31
+ overflow: "hidden",
32
+ perspective: "500px"
33
+ },
34
+ children: [
35
+ /* @__PURE__ */ jsx(
36
+ "div",
37
+ {
38
+ style: {
39
+ position: "absolute",
40
+ bottom: 0,
41
+ left: "50%",
42
+ transform: "translateX(-50%)",
43
+ width: "100%",
44
+ height: "60%",
45
+ background: `radial-gradient(ellipse 90% 75% at 50% 112%, ${glowColor} -15%, transparent 45%)`,
46
+ pointerEvents: "none"
47
+ }
48
+ }
49
+ ),
50
+ /* @__PURE__ */ jsx(
51
+ "div",
52
+ {
53
+ style: {
54
+ position: "absolute",
55
+ left: "-50%",
56
+ right: "-50%",
57
+ bottom: 0,
58
+ height: "70%",
59
+ backgroundImage: `
60
+ linear-gradient(${lineColor} 2px, transparent 1px),
61
+ linear-gradient(90deg, ${lineColor} 2px, transparent 1px)
62
+ `,
63
+ backgroundSize: "120px 100px",
64
+ transform: "rotateX(60deg)",
65
+ transformOrigin: "bottom center",
66
+ maskImage: "linear-gradient(to bottom, transparent 0%, black 100%, black 100%, transparent 100%)",
67
+ WebkitMaskImage: "linear-gradient(to bottom, transparent 0%, black 100%, black 100%, transparent 100%)"
68
+ }
69
+ }
70
+ )
71
+ ]
72
+ }
73
+ );
74
+ }
75
+ var KEYFRAMES = `
76
+ @keyframes elevasis-glow-drift {
77
+ 0% { transform: translateY(0) scale(1); opacity: 1; }
78
+ 20% { transform: translateY(-8%) scale(1.12); opacity: 0.7; }
79
+ 40% { transform: translateY(3%) scale(0.92); opacity: 1; }
80
+ 60% { transform: translateY(5%) scale(1.08); opacity: 0.8; }
81
+ 80% { transform: translateY(-4%) scale(0.95); opacity: 0.9; }
82
+ 100% { transform: translateY(0) scale(1); opacity: 1; }
83
+ }
84
+ @keyframes elevasis-glow-drift-alt {
85
+ 0% { transform: translateY(0) scale(1); opacity: 0.8; }
86
+ 25% { transform: translateY(6%) scale(0.9); opacity: 1; }
87
+ 50% { transform: translateY(-7%) scale(1.15); opacity: 0.7; }
88
+ 75% { transform: translateY(-5%) scale(1.05); opacity: 0.9; }
89
+ 100% { transform: translateY(0) scale(1); opacity: 0.8; }
90
+ }
91
+ @keyframes elevasis-glow-drift-slow {
92
+ 0% { transform: translateY(0) scale(1); opacity: 0.9; }
93
+ 33% { transform: translateY(-4%) scale(1.1); opacity: 0.6; }
94
+ 66% { transform: translateY(6%) scale(0.88); opacity: 1; }
95
+ 100% { transform: translateY(0) scale(1); opacity: 0.9; }
96
+ }
97
+ `;
98
+ function RadiantGlow({
99
+ color = "var(--color-primary)",
100
+ opacity = 1,
101
+ className
102
+ }) {
103
+ return /* @__PURE__ */ jsxs(
104
+ "div",
105
+ {
106
+ className,
107
+ style: {
108
+ position: "absolute",
109
+ inset: 0,
110
+ pointerEvents: "none",
111
+ overflow: "clip",
112
+ opacity
113
+ },
114
+ children: [
115
+ /* @__PURE__ */ jsx("style", { children: KEYFRAMES }),
116
+ /* @__PURE__ */ jsx(
117
+ "div",
118
+ {
119
+ style: {
120
+ position: "absolute",
121
+ top: "-80%",
122
+ left: "50%",
123
+ transform: "translateX(-50%)",
124
+ width: "200%",
125
+ height: "200%",
126
+ background: `radial-gradient(ellipse at center, color-mix(in srgb, ${color} 0.8%, transparent) 0%, transparent 70%)`,
127
+ animation: "elevasis-glow-drift 20s ease-in-out infinite",
128
+ willChange: "transform"
129
+ }
130
+ }
131
+ ),
132
+ /* @__PURE__ */ jsx(
133
+ "div",
134
+ {
135
+ style: {
136
+ position: "absolute",
137
+ bottom: "-70%",
138
+ left: "50%",
139
+ transform: "translateX(-50%)",
140
+ width: "180%",
141
+ height: "180%",
142
+ background: `radial-gradient(ellipse at center, color-mix(in srgb, ${color} 0.6%, transparent) 0%, transparent 65%)`,
143
+ animation: "elevasis-glow-drift-alt 24s ease-in-out infinite",
144
+ willChange: "transform"
145
+ }
146
+ }
147
+ ),
148
+ /* @__PURE__ */ jsx(
149
+ "div",
150
+ {
151
+ style: {
152
+ position: "absolute",
153
+ top: "-20%",
154
+ left: "50%",
155
+ transform: "translateX(-50%)",
156
+ width: "120%",
157
+ height: "120%",
158
+ background: `radial-gradient(ellipse at center, color-mix(in srgb, ${color} 0.6%, transparent) 0%, transparent 60%)`,
159
+ animation: "elevasis-glow-drift-slow 28s ease-in-out infinite",
160
+ willChange: "transform"
161
+ }
162
+ }
163
+ )
164
+ ]
165
+ }
166
+ );
167
+ }
168
+ var KEYFRAMES2 = `
169
+ @keyframes elevasis-orb-float-0 {
170
+ 0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.5; }
171
+ 25% { transform: translate(12vw, -8vh) scale(1.2); opacity: 0.8; }
172
+ 50% { transform: translate(-5vw, -15vh) scale(0.9); opacity: 0.4; }
173
+ 75% { transform: translate(8vw, 5vh) scale(1.1); opacity: 0.7; }
174
+ }
175
+ @keyframes elevasis-orb-float-1 {
176
+ 0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.6; }
177
+ 30% { transform: translate(-10vw, 6vh) scale(0.85); opacity: 0.3; }
178
+ 60% { transform: translate(7vw, 12vh) scale(1.15); opacity: 0.7; }
179
+ }
180
+ @keyframes elevasis-orb-float-2 {
181
+ 0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.4; }
182
+ 20% { transform: translate(6vw, 10vh) scale(1.3); opacity: 0.7; }
183
+ 50% { transform: translate(-8vw, -4vh) scale(0.8); opacity: 0.3; }
184
+ 80% { transform: translate(3vw, -12vh) scale(1.1); opacity: 0.6; }
185
+ }
186
+ `;
187
+ var ORB_CONFIGS = [
188
+ { top: "10%", left: "15%", size: "25vw", anim: "elevasis-orb-float-0", dur: "22s" },
189
+ { top: "60%", left: "70%", size: "30vw", anim: "elevasis-orb-float-1", dur: "28s" },
190
+ { top: "30%", left: "50%", size: "20vw", anim: "elevasis-orb-float-2", dur: "32s" },
191
+ { top: "75%", left: "20%", size: "22vw", anim: "elevasis-orb-float-0", dur: "26s" },
192
+ { top: "5%", left: "75%", size: "18vw", anim: "elevasis-orb-float-1", dur: "30s" },
193
+ { top: "45%", left: "5%", size: "24vw", anim: "elevasis-orb-float-2", dur: "24s" }
194
+ ];
195
+ function FloatingOrbs({
196
+ color = "var(--color-primary)",
197
+ count = 6,
198
+ className
199
+ }) {
200
+ const orbs = ORB_CONFIGS.slice(0, count);
201
+ return /* @__PURE__ */ jsxs(
202
+ "div",
203
+ {
204
+ className,
205
+ style: {
206
+ position: "absolute",
207
+ inset: 0,
208
+ pointerEvents: "none",
209
+ overflow: "clip"
210
+ },
211
+ children: [
212
+ /* @__PURE__ */ jsx("style", { children: KEYFRAMES2 }),
213
+ orbs.map((orb, i) => /* @__PURE__ */ jsx(
214
+ "div",
215
+ {
216
+ style: {
217
+ position: "absolute",
218
+ top: orb.top,
219
+ left: orb.left,
220
+ width: orb.size,
221
+ height: orb.size,
222
+ borderRadius: "50%",
223
+ background: `radial-gradient(circle at center, color-mix(in srgb, ${color} 3%, transparent) 0%, transparent 70%)`,
224
+ filter: "blur(40px)",
225
+ animation: `${orb.anim} ${orb.dur} ease-in-out infinite`,
226
+ willChange: "transform, opacity"
227
+ }
228
+ },
229
+ i
230
+ ))
231
+ ]
232
+ }
233
+ );
234
+ }
235
+ var KEYFRAMES3 = `
236
+ @keyframes elevasis-grain-shift {
237
+ 0%, 100% { transform: translate(0, 0); }
238
+ 10% { transform: translate(-2%, -3%); }
239
+ 20% { transform: translate(3%, 1%); }
240
+ 30% { transform: translate(-1%, 4%); }
241
+ 40% { transform: translate(4%, -2%); }
242
+ 50% { transform: translate(-3%, 2%); }
243
+ 60% { transform: translate(2%, -4%); }
244
+ 70% { transform: translate(-4%, 1%); }
245
+ 80% { transform: translate(1%, 3%); }
246
+ 90% { transform: translate(3%, -1%); }
247
+ }
248
+ `;
249
+ function FilmGrain({ darkOpacity = 0.02, lightOpacity = 0.06, className }) {
250
+ const colorScheme = useComputedColorScheme();
251
+ const opacity = colorScheme === "dark" ? darkOpacity : lightOpacity;
252
+ return /* @__PURE__ */ jsxs(
253
+ "div",
254
+ {
255
+ className,
256
+ style: {
257
+ position: "absolute",
258
+ inset: 0,
259
+ pointerEvents: "none",
260
+ overflow: "clip",
261
+ opacity,
262
+ mixBlendMode: colorScheme === "dark" ? "screen" : "multiply"
263
+ },
264
+ children: [
265
+ /* @__PURE__ */ jsx("style", { children: KEYFRAMES3 }),
266
+ /* @__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" }) }) }),
267
+ /* @__PURE__ */ jsx(
268
+ "div",
269
+ {
270
+ style: {
271
+ position: "absolute",
272
+ inset: "-50%",
273
+ width: "200%",
274
+ height: "200%",
275
+ filter: "url(#elevasis-grain)",
276
+ animation: "elevasis-grain-shift 0.8s steps(4) infinite",
277
+ willChange: "transform"
278
+ }
279
+ }
280
+ )
281
+ ]
282
+ }
283
+ );
284
+ }
285
+ function AppBackground({ children }) {
286
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
287
+ /* @__PURE__ */ jsx(PerspectiveGrid, {}),
288
+ /* @__PURE__ */ jsx(RadiantGlow, {}),
289
+ /* @__PURE__ */ jsx(FloatingOrbs, {}),
290
+ /* @__PURE__ */ jsx(FilmGrain, {}),
291
+ children
292
+ ] });
293
+ }
294
+
295
+ export { AppBackground, AppearanceProvider, FilmGrain, FloatingOrbs, PerspectiveGrid, RadiantGlow, useAppearance };
@@ -1,4 +1,4 @@
1
- import { useAuthContext } from './chunk-7PLEQFHO.js';
1
+ import { useAuthContext } from './chunk-BRJ3QZ4E.js';
2
2
  import { createClient } from '@supabase/supabase-js';
3
3
  import { useMemo } from 'react';
4
4
 
@@ -1,7 +1,7 @@
1
- import { getTimeRangeLabel, getTimeRangeDates, useErrorTrends, formatBucketTime } from './chunk-ARZM3OTI.js';
1
+ import { getTimeRangeLabel, getTimeRangeDates, useErrorTrends, formatBucketTime } from './chunk-EQNXEBGZ.js';
2
2
  import { ResourceStatusColors } from './chunk-ELJIFLCB.js';
3
3
  import { getErrorInfo, getErrorTitle, getResourceIcon } from './chunk-FCFLBMVI.js';
4
- import { useAuthContext } from './chunk-7PLEQFHO.js';
4
+ import { useAuthContext } from './chunk-BRJ3QZ4E.js';
5
5
  import { useRouterContext } from './chunk-Q7DJKLEN.js';
6
6
  import { useMemo, useState, useEffect, useCallback } from 'react';
7
7
  import { useComputedColorScheme, Group, Text, Box, Stack, Center, Title, Button, Loader, Badge, Collapse, ScrollArea, Card, Skeleton, Select, Alert, Code, ThemeIcon, Paper, Grid, NumberFormatter, Space, Tooltip as Tooltip$1, SimpleGrid, SegmentedControl } from '@mantine/core';
@@ -0,0 +1,15 @@
1
+ import { forwardRef } from 'react';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+
4
+ // src/components/display/ElevasisLoader.tsx
5
+
6
+ // src/components/display/ElevasisLoader.module.css.js
7
+ var ElevasisLoader_module_css_default = { "wrapper": "wrapper", "loader": "loader", "chevron": "chevron", "c1": "c1", "c2": "c2", "c3": "c3" };
8
+ var ElevasisLoader = forwardRef(({ style, className, ...others }, ref) => /* @__PURE__ */ jsx("div", { ref, style, className: `${ElevasisLoader_module_css_default.wrapper} ${className ?? ""}`, ...others, children: /* @__PURE__ */ jsxs("svg", { className: ElevasisLoader_module_css_default.loader, viewBox: "-10 -5 60 50", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
9
+ /* @__PURE__ */ jsx("polyline", { className: `${ElevasisLoader_module_css_default.chevron} ${ElevasisLoader_module_css_default.c1}`, points: "5,36 20,25 35,36" }),
10
+ /* @__PURE__ */ jsx("polyline", { className: `${ElevasisLoader_module_css_default.chevron} ${ElevasisLoader_module_css_default.c2}`, points: "9,23 20,14 31,23" }),
11
+ /* @__PURE__ */ jsx("polyline", { className: `${ElevasisLoader_module_css_default.chevron} ${ElevasisLoader_module_css_default.c3}`, points: "13,11 20,5 27,11" })
12
+ ] }) }));
13
+ ElevasisLoader.displayName = "ElevasisLoader";
14
+
15
+ export { ElevasisLoader };
@@ -1,5 +1,5 @@
1
- import { useInitialization } from './chunk-WUQWCUCB.js';
2
- import { useAuthContext } from './chunk-7PLEQFHO.js';
1
+ import { useInitialization } from './chunk-3VTC7OWU.js';
2
+ import { useAuthContext } from './chunk-BRJ3QZ4E.js';
3
3
  import { useRef, useEffect } from 'react';
4
4
  import { useQueryClient } from '@tanstack/react-query';
5
5
  import { useNavigate, useLocation } from '@tanstack/react-router';
@@ -1,7 +1,6 @@
1
1
  import { UnstyledButton, Group, Box, ThemeIcon } from '@mantine/core';
2
2
  import { IconChevronRight } from '@tabler/icons-react';
3
3
  import { jsx, jsxs } from 'react/jsx-runtime';
4
- import { forwardRef } from 'react';
5
4
 
6
5
  // src/components/display/NavigationButton.tsx
7
6
  var NavigationButton = ({
@@ -117,13 +116,4 @@ var NavigationButton = ({
117
116
  );
118
117
  };
119
118
 
120
- // src/components/display/ElevasisLoader.module.css.js
121
- var ElevasisLoader_module_css_default = { "wrapper": "wrapper", "loader": "loader", "chevron": "chevron", "c1": "c1", "c2": "c2", "c3": "c3" };
122
- var ElevasisLoader = forwardRef(({ style, className, ...others }, ref) => /* @__PURE__ */ jsx("div", { ref, style, className: `${ElevasisLoader_module_css_default.wrapper} ${className ?? ""}`, ...others, children: /* @__PURE__ */ jsxs("svg", { className: ElevasisLoader_module_css_default.loader, viewBox: "-10 -5 60 50", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
123
- /* @__PURE__ */ jsx("polyline", { className: `${ElevasisLoader_module_css_default.chevron} ${ElevasisLoader_module_css_default.c1}`, points: "5,36 20,25 35,36" }),
124
- /* @__PURE__ */ jsx("polyline", { className: `${ElevasisLoader_module_css_default.chevron} ${ElevasisLoader_module_css_default.c2}`, points: "9,23 20,14 31,23" }),
125
- /* @__PURE__ */ jsx("polyline", { className: `${ElevasisLoader_module_css_default.chevron} ${ElevasisLoader_module_css_default.c3}`, points: "13,11 20,5 27,11" })
126
- ] }) }));
127
- ElevasisLoader.displayName = "ElevasisLoader";
128
-
129
- export { ElevasisLoader, NavigationButton };
119
+ export { NavigationButton };
@@ -3833,6 +3833,8 @@ interface APIExecutionDetail extends APIExecutionSummary {
3833
3833
  apiVersion?: string | null;
3834
3834
  resourceVersion?: string | null;
3835
3835
  sdkVersion?: string | null;
3836
+ isArchived?: boolean;
3837
+ archivedLogCount?: number;
3836
3838
  }
3837
3839
 
3838
3840
  /**
@@ -1,40 +1,42 @@
1
- import { useCyberColors, EmptyState, CyberLegendItem, CyberAreaChart, APIErrorAlert, CardHeader, StatsCardSkeleton, TrendIndicator, DetailCardSkeleton, ContextViewer, JsonViewer, StyledMarkdown, PageTitleCaption, StatCard, CyberDonut, CollapsibleSection, ListSkeleton } from '../chunk-CC6BRHQK.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-CC6BRHQK.js';
3
- import { SubshellLoader, SubshellContainer, SubshellSidebar, SubshellRightSideContainer, SubshellContentContainer, PageContainer, AppShellLoader, SubshellSidebarSection, PerspectiveGrid, RadiantGlow, FloatingOrbs, FilmGrain, CollapsibleSidebarGroup, SidebarListItem } from '../chunk-THXI3CDT.js';
4
- import { ElevasisLoader } from '../chunk-YGYF6G7W.js';
5
- export { ElevasisLoader, NavigationButton } from '../chunk-YGYF6G7W.js';
6
- import { useUpdateApiKey, useDeleteApiKey, useCreateApiKey, useListApiKeys, useDeleteCredential, useCreateCredential, useCredentials, useActivateDeployment, useDeactivateDeployment, useDeleteDeployment, useListDeployments, MEMBERSHIP_STATUS_COLORS, transformMembershipToTableRow, showApiErrorNotification, showSuccessNotification, CredentialSchemas, showErrorNotification } from '../chunk-7NX3WNBO.js';
7
- export { showApiErrorNotification, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification } from '../chunk-7NX3WNBO.js';
8
- import { useCommandViewLayout, useResourcesHealth, useResolveError, useResolveAllErrors, usePaginationState, useErrorDetails, useMarkAsRead, useMarkAllAsRead, useNotificationCount, useNotifications, useSubmitAction, useDeleteTask, useErrorDetail, useExecution, useDeleteExecution, useRetryExecution, useCancelExecution, useDeploymentDocs, useResources, useCreateSchedule, useListSchedules, usePauseSchedule, useResumeSchedule, useCancelSchedule, useDeleteSchedule, useCommandQueueTotals } from '../chunk-AQZGGSZZ.js';
9
- import { getTimeRangeDates, formatBucketTime } from '../chunk-ARZM3OTI.js';
10
- import '../chunk-JGJSZ3UE.js';
1
+ import { useCyberColors, EmptyState, CyberLegendItem, CyberAreaChart, APIErrorAlert, CardHeader, StatsCardSkeleton, TrendIndicator, DetailCardSkeleton, ContextViewer, JsonViewer, StyledMarkdown, PageTitleCaption, StatCard, CyberDonut, CollapsibleSection, ListSkeleton } from '../chunk-RM6ACTB3.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-RM6ACTB3.js';
3
+ import { SubshellLoader, SubshellContainer, SubshellSidebar, SubshellRightSideContainer, SubshellContentContainer, PageContainer, AppShellLoader, SubshellSidebarSection, CollapsibleSidebarGroup, SidebarListItem } from '../chunk-7RAT54LF.js';
4
+ export { NavigationButton } from '../chunk-YHTK43DV.js';
5
+ import { useUpdateApiKey, useDeleteApiKey, useCreateApiKey, useListApiKeys, useDeleteCredential, useCreateCredential, useCredentials, useActivateDeployment, useDeactivateDeployment, useDeleteDeployment, useListDeployments, MEMBERSHIP_STATUS_COLORS, transformMembershipToTableRow, showApiErrorNotification, showSuccessNotification, CredentialSchemas, showErrorNotification } from '../chunk-C27S6IIV.js';
6
+ export { showApiErrorNotification, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification } from '../chunk-C27S6IIV.js';
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-4TWGUI3L.js';
8
+ import { getTimeRangeDates, formatBucketTime } from '../chunk-EQNXEBGZ.js';
9
+ import '../chunk-NJJ3NQ7B.js';
11
10
  import '../chunk-LHQTTUL2.js';
12
11
  import { Graph_module_css_default, useDirectedChainHighlighting, useNodeSelection, GRAPH_CONSTANTS, useFitViewTrigger, useGraphHighlighting, calculateGraphHeight } from '../chunk-F6RBK7NJ.js';
13
12
  export { Graph_module_css_default as graphStyles } from '../chunk-F6RBK7NJ.js';
14
13
  import { STATUS_COLORS, getStatusIcon, formatDuration, getStatusColors, AGENT_CONSTANTS, shouldAnimateEdge, TIMELINE_CONSTANTS, calculateBarPosition, CONTAINER_CONSTANTS, useExecutionPath, useUnifiedWorkflowLayout, WORKFLOW_CONSTANTS, useReactFlowAgent, getResourceStatusColor } from '../chunk-XA34RETF.js';
15
14
  export { CONTAINER_CONSTANTS, SHARED_VIZ_CONSTANTS } from '../chunk-XA34RETF.js';
16
15
  import { ResourceStatusColors, toWorkflowLogMessages } from '../chunk-ELJIFLCB.js';
17
- import '../chunk-3I2LOKQU.js';
18
- import '../chunk-3PURTICE.js';
16
+ import '../chunk-GU46QC4Z.js';
17
+ import '../chunk-CKFTPEBC.js';
19
18
  import '../chunk-RNP5R5I3.js';
20
- import '../chunk-KPRCFAI4.js';
19
+ import '../chunk-4HLCZVS6.js';
21
20
  import '../chunk-WNRHQAJA.js';
22
- import '../chunk-564T2YKH.js';
23
- import '../chunk-2YBPRE6H.js';
21
+ import '../chunk-HLZMP7GN.js';
22
+ import { useAppearance } from '../chunk-HRG3KPL6.js';
23
+ import { ElevasisLoader } from '../chunk-SZHARWKU.js';
24
+ export { ElevasisLoader } from '../chunk-SZHARWKU.js';
25
+ import '../chunk-HGNP6EVB.js';
24
26
  import '../chunk-RULQSZYX.js';
25
27
  import { getResourceIcon, getResourceColor, formatChartAxisDate, PAGE_SIZE_DEFAULT, getErrorInfo, formatErrorMessage, formatDateTime } from '../chunk-FCFLBMVI.js';
26
- import '../chunk-6TMW6VQ2.js';
27
- import '../chunk-FWZJH3TL.js';
28
- import { useInitialization } from '../chunk-WUQWCUCB.js';
29
- import { useElevasisServices } from '../chunk-GZVH423C.js';
28
+ import '../chunk-V5GGPIDD.js';
29
+ import '../chunk-ALA56RGZ.js';
30
+ import { useInitialization } from '../chunk-3VTC7OWU.js';
31
+ import { useElevasisServices } from '../chunk-BK4EIWNU.js';
30
32
  import { useOrganization } from '../chunk-DD3CCMCZ.js';
31
- import '../chunk-7PLEQFHO.js';
33
+ import '../chunk-BRJ3QZ4E.js';
32
34
  import { useRouterContext } from '../chunk-Q7DJKLEN.js';
33
35
  import { z } from 'zod';
34
36
  import { Paper, Stack, Text, Group, Badge, Box, ThemeIcon, useComputedColorScheme, Card, ActionIcon, Modal, Center, Space, Button, Title, TextInput, Table, Textarea, Radio, Checkbox, Select, NumberInput, Tooltip, Loader, SegmentedControl, NumberFormatter, Alert, Switch, Pagination, UnstyledButton, Divider, ScrollArea, Popover, Indicator, Menu, Accordion, Collapse, SimpleGrid, CopyButton, Code, useMantineTheme, Timeline, RangeSlider, Progress, PasswordInput, Anchor } from '@mantine/core';
35
37
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
36
38
  import { memo, forwardRef, useMemo, useImperativeHandle, cloneElement, useState, useEffect, useCallback, Fragment as Fragment$1, useRef } from 'react';
37
- import { IconPlayerPlay, IconPlayerStop, IconArrowsSplit, IconSquare, IconBrain, IconFileText, IconDatabase, IconMessage, IconAlertCircle, IconCircleX, IconCircleCheck, IconBolt, IconHandClick, IconClock, IconWebhook, IconExternalLink, IconFocus2, IconMail, IconSend, IconArrowUp, IconMessageCircle, IconRocket, IconEye, IconEdit, IconAlertTriangle, IconRefresh, IconX, IconCheck, IconChevronUp, IconChevronDown, IconSelector, IconTrash, IconChartBar, IconThumbDown, IconThumbUp, IconSearch, IconFilterOff, IconArrowUpRight, IconDownload, IconInfoCircle, IconBug, IconChecks, IconCircle, IconCircleFilled, IconBell, IconRobot, IconGitBranch, IconDotsVertical, IconChevronRight, IconTool, IconSettings, IconCpu, IconClockHour4, IconVersions, IconNetwork, IconSitemap, IconCopy, IconReload, IconArrowLeft, IconBook2, IconFileOff, IconList, IconCalendarRepeat, IconCalendarEvent, IconCalendarTime, IconPlus, IconCalendar, IconKey, IconPlayerPause, IconCalendarDue, IconCalendarStats, IconCalendarOff, IconListCheck, IconFilter, IconCategory, IconPencil, IconExclamationMark, IconShieldLock, IconPower, IconTag, IconBuilding, IconUserX, IconUserCheck, IconArrowDown, IconUser, IconFolderOpen, IconFolder } from '@tabler/icons-react';
39
+ import { IconPlayerPlay, IconPlayerStop, IconArrowsSplit, IconSquare, IconBrain, IconFileText, IconDatabase, IconMessage, IconAlertCircle, IconCircleX, IconCircleCheck, IconBolt, IconHandClick, IconClock, IconWebhook, IconExternalLink, IconFocus2, IconMail, IconSend, IconArrowUp, IconMessageCircle, IconRocket, IconEye, IconEdit, IconAlertTriangle, IconRefresh, IconX, IconCheck, IconChevronUp, IconChevronDown, IconSelector, IconTrash, IconChartBar, IconThumbDown, IconThumbUp, IconSearch, IconFilterOff, IconArrowUpRight, IconDownload, IconInfoCircle, IconBug, IconChecks, IconCircle, IconCircleFilled, IconBell, IconRobot, IconGitBranch, IconDotsVertical, IconChevronRight, IconTool, IconSettings, IconCpu, IconClockHour4, IconVersions, IconNetwork, IconSitemap, IconCopy, IconReload, IconArrowLeft, IconBook2, IconFileOff, IconList, IconCalendarRepeat, IconCalendarEvent, IconCalendarTime, IconPlus, IconCalendar, IconKey, IconPlayerPause, IconCalendarDue, IconCalendarStats, IconCalendarOff, IconListCheck, IconFilter, IconCategory, IconPencil, IconExclamationMark, IconShieldLock, IconPower, IconTag, IconBuilding, IconUserX, IconUserCheck, IconArrowDown, IconUser, IconArchive, IconFolderOpen, IconFolder } from '@tabler/icons-react';
38
40
  import { AreaChart } from '@mantine/charts';
39
41
  import { formatDistanceToNow } from 'date-fns';
40
42
  import { useDisclosure, useClipboard } from '@mantine/hooks';
@@ -4190,6 +4192,31 @@ function ExecutionErrorSection({ executionId, fallbackError }) {
4190
4192
  }
4191
4193
  );
4192
4194
  }
4195
+ function ArchivedLogsNotice({ logCount, isLoading, error, onLoad }) {
4196
+ return /* @__PURE__ */ jsx(Paper, { withBorder: true, p: "md", radius: "md", bg: "color-mix(in srgb, var(--color-primary) 5%, transparent)", children: /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
4197
+ /* @__PURE__ */ jsxs(Group, { gap: "sm", children: [
4198
+ /* @__PURE__ */ jsx(IconArchive, { size: 18, style: { color: "var(--color-text-dimmed)" } }),
4199
+ /* @__PURE__ */ jsxs(Text, { size: "sm", c: "dimmed", children: [
4200
+ "Logs archived (",
4201
+ logCount.toLocaleString(),
4202
+ " entries)"
4203
+ ] })
4204
+ ] }),
4205
+ error && /* @__PURE__ */ jsx(Text, { size: "sm", c: "var(--color-error)", children: error }),
4206
+ /* @__PURE__ */ jsx(
4207
+ Button,
4208
+ {
4209
+ variant: "light",
4210
+ size: "xs",
4211
+ leftSection: isLoading ? /* @__PURE__ */ jsx(Loader, { size: 14 }) : /* @__PURE__ */ jsx(IconDownload, { size: 14 }),
4212
+ onClick: onLoad,
4213
+ disabled: isLoading,
4214
+ w: "fit-content",
4215
+ children: isLoading ? "Loading archived logs..." : "Load archived logs"
4216
+ }
4217
+ )
4218
+ ] }) });
4219
+ }
4193
4220
  function BaseExecutionLogs({
4194
4221
  resourceId,
4195
4222
  resourceType,
@@ -4203,7 +4230,15 @@ function BaseExecutionLogs({
4203
4230
  hideError = false
4204
4231
  }) {
4205
4232
  const { data: fetchedExecution, isLoading } = useExecution(resourceId, executionId || "");
4206
- const typedExecution = externalExecution ?? fetchedExecution;
4233
+ const baseExecution = externalExecution ?? fetchedExecution;
4234
+ const archivedLogs = useArchivedLogs(baseExecution?.isArchived ? executionId : void 0);
4235
+ const typedExecution = useMemo(() => {
4236
+ if (!baseExecution) return void 0;
4237
+ if (archivedLogs.logs) {
4238
+ return { ...baseExecution, executionLogs: archivedLogs.logs, isArchived: false };
4239
+ }
4240
+ return baseExecution;
4241
+ }, [baseExecution, archivedLogs.logs]);
4207
4242
  const [deleteModalOpened, setDeleteModalOpened] = useState(false);
4208
4243
  const [retryModalOpened, setRetryModalOpened] = useState(false);
4209
4244
  const [cancelModalOpened, setCancelModalOpened] = useState(false);
@@ -4273,7 +4308,16 @@ function BaseExecutionLogs({
4273
4308
  }
4274
4309
  ),
4275
4310
  !hideInput && typedExecution.input != null && /* @__PURE__ */ jsx(Paper, { withBorder: true, bg: "none", children: /* @__PURE__ */ jsx(CollapsibleJsonSection, { title: /* @__PURE__ */ jsx(Text, { fw: 500, children: "Input" }), data: typedExecution.input }) }),
4276
- renderLogsSection?.(typedExecution),
4311
+ typedExecution.isArchived && /* @__PURE__ */ jsx(
4312
+ ArchivedLogsNotice,
4313
+ {
4314
+ logCount: typedExecution.archivedLogCount ?? 0,
4315
+ isLoading: archivedLogs.isLoading,
4316
+ error: archivedLogs.error,
4317
+ onLoad: archivedLogs.fetch
4318
+ }
4319
+ ),
4320
+ !typedExecution.isArchived && renderLogsSection?.(typedExecution),
4277
4321
  !hideResult && typedExecution.result != null && /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsx(
4278
4322
  CollapsibleJsonSection,
4279
4323
  {
@@ -7724,6 +7768,7 @@ function buildErrorReport(opts) {
7724
7768
  return sections.filter(Boolean).join("\n");
7725
7769
  }
7726
7770
  function CrashErrorFallback({ error, componentStack, eventId, appVersion }) {
7771
+ const { background } = useAppearance();
7727
7772
  const errorMessage = error instanceof Error ? error.message : String(error);
7728
7773
  const errorStack = error instanceof Error ? error.stack : void 0;
7729
7774
  const errorName = getErrorName(error);
@@ -7743,10 +7788,7 @@ function CrashErrorFallback({ error, componentStack, eventId, appVersion }) {
7743
7788
  padding: 24
7744
7789
  },
7745
7790
  children: [
7746
- /* @__PURE__ */ jsx(PerspectiveGrid, {}),
7747
- /* @__PURE__ */ jsx(RadiantGlow, {}),
7748
- /* @__PURE__ */ jsx(FloatingOrbs, {}),
7749
- /* @__PURE__ */ jsx(FilmGrain, {}),
7791
+ background,
7750
7792
  /* @__PURE__ */ jsx("div", { style: { position: "relative", zIndex: 1, width: "100%", display: "flex", justifyContent: "center" }, children: /* @__PURE__ */ jsx(
7751
7793
  ErrorReportCard,
7752
7794
  {