@elevasis/ui 1.7.3 → 1.7.5
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.
- package/dist/{CoreAuthKitInner-Y6LQYIPX.js → CoreAuthKitInner-3J4RVQO6.js} +0 -1
- package/dist/api/index.js +0 -1
- package/dist/auth/context.js +0 -1
- package/dist/auth/index.js +0 -1
- package/dist/charts/index.css +112 -0
- package/dist/charts/index.d.ts +217 -2
- package/dist/charts/index.js +15 -384
- package/dist/{chunk-YJFTZUJJ.js → chunk-3Q5V2T6L.js} +2 -51
- package/dist/chunk-4KPI7YCY.js +1590 -0
- package/dist/chunk-6HZAMY6T.js +96 -0
- package/dist/{chunk-2ISUX46O.js → chunk-F6RBK7NJ.js} +1 -6
- package/dist/{chunk-G4TAF3T6.js → chunk-OK3XFSJJ.js} +77 -67
- package/dist/{chunk-K3YVC5RW.js → chunk-Y6DNK5ZD.js} +1 -1
- package/dist/{chunk-54S7KNJV.js → chunk-Y7UY3HI4.js} +1 -1
- package/dist/chunk-YZ6GTZXL.js +48 -0
- package/dist/components/index.d.ts +10 -4
- package/dist/components/index.js +107 -720
- package/dist/components/navigation/index.js +0 -1
- package/dist/execution/index.js +2 -2
- package/dist/graph/index.js +1 -2
- package/dist/hooks/index.d.ts +54 -2
- package/dist/hooks/index.js +2 -2
- package/dist/hooks/published.d.ts +54 -2
- package/dist/hooks/published.js +3 -3
- package/dist/index.d.ts +54 -2
- package/dist/index.js +7 -6
- package/dist/initialization/index.js +0 -1
- package/dist/layout/index.js +0 -1
- package/dist/organization/index.js +0 -1
- package/dist/profile/index.js +0 -1
- package/dist/provider/index.js +2 -3
- package/dist/provider/published.js +1 -2
- package/dist/router/context.js +0 -1
- package/dist/router/index.js +0 -1
- package/dist/sse/index.js +1 -1
- package/dist/supabase/index.js +0 -1
- package/dist/theme/index.js +0 -1
- package/dist/typeform/index.js +0 -1
- package/dist/typeform/schemas.js +0 -1
- package/dist/utils/index.js +0 -1
- package/package.json +3 -7
- package/dist/chunk-MLKGABMK.js +0 -7
package/dist/api/index.js
CHANGED
package/dist/auth/context.js
CHANGED
package/dist/auth/index.js
CHANGED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/* src/components/display/StatCard.module.css */
|
|
2
|
+
.heroCard {
|
|
3
|
+
background: var(--glass-background);
|
|
4
|
+
backdrop-filter: var(--glass-blur);
|
|
5
|
+
border: 1px solid var(--color-border);
|
|
6
|
+
}
|
|
7
|
+
.iconRing {
|
|
8
|
+
position: relative;
|
|
9
|
+
display: flex;
|
|
10
|
+
align-items: center;
|
|
11
|
+
justify-content: center;
|
|
12
|
+
width: 46px;
|
|
13
|
+
height: 46px;
|
|
14
|
+
border-radius: 50%;
|
|
15
|
+
background: color-mix(in srgb, var(--color-primary) 12%, transparent);
|
|
16
|
+
border: 1px solid color-mix(in srgb, var(--color-primary) 25%, transparent);
|
|
17
|
+
color: var(--color-primary);
|
|
18
|
+
flex-shrink: 0;
|
|
19
|
+
box-shadow: 0 0 12px color-mix(in srgb, var(--color-primary) 15%, transparent);
|
|
20
|
+
}
|
|
21
|
+
.iconRingSm {
|
|
22
|
+
position: relative;
|
|
23
|
+
display: flex;
|
|
24
|
+
align-items: center;
|
|
25
|
+
justify-content: center;
|
|
26
|
+
width: 36px;
|
|
27
|
+
height: 36px;
|
|
28
|
+
border-radius: 50%;
|
|
29
|
+
background: color-mix(in srgb, var(--color-primary) 12%, transparent);
|
|
30
|
+
border: 1px solid color-mix(in srgb, var(--color-primary) 25%, transparent);
|
|
31
|
+
color: var(--color-primary);
|
|
32
|
+
flex-shrink: 0;
|
|
33
|
+
box-shadow: 0 0 8px color-mix(in srgb, var(--color-primary) 12%, transparent);
|
|
34
|
+
}
|
|
35
|
+
.heroValue {
|
|
36
|
+
font-family: var(--elevasis-font-family-subtitle);
|
|
37
|
+
font-size: 1.85rem;
|
|
38
|
+
font-weight: 800;
|
|
39
|
+
line-height: 1;
|
|
40
|
+
letter-spacing: -0.02em;
|
|
41
|
+
font-variant-numeric: tabular-nums;
|
|
42
|
+
}
|
|
43
|
+
[data-mantine-color-scheme=dark] .heroValue {
|
|
44
|
+
text-shadow: 0 0 20px color-mix(in srgb, var(--color-primary) 20%, transparent);
|
|
45
|
+
}
|
|
46
|
+
.heroValueSm {
|
|
47
|
+
font-family: var(--elevasis-font-family-subtitle);
|
|
48
|
+
font-size: 1.35rem;
|
|
49
|
+
font-weight: 700;
|
|
50
|
+
line-height: 1;
|
|
51
|
+
letter-spacing: -0.02em;
|
|
52
|
+
font-variant-numeric: tabular-nums;
|
|
53
|
+
}
|
|
54
|
+
.heroLabel {
|
|
55
|
+
font-size: 0.68rem;
|
|
56
|
+
font-weight: 700;
|
|
57
|
+
text-transform: uppercase;
|
|
58
|
+
letter-spacing: 0.12em;
|
|
59
|
+
color: var(--color-text-dimmed);
|
|
60
|
+
}
|
|
61
|
+
.heroLabelSm {
|
|
62
|
+
font-size: 0.62rem;
|
|
63
|
+
font-weight: 700;
|
|
64
|
+
text-transform: uppercase;
|
|
65
|
+
letter-spacing: 0.12em;
|
|
66
|
+
color: var(--color-text-dimmed);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* src/components/display/ElevasisLoader.module.css */
|
|
70
|
+
.wrapper {
|
|
71
|
+
display: inline-flex;
|
|
72
|
+
align-items: center;
|
|
73
|
+
justify-content: center;
|
|
74
|
+
width: var(--loader-size);
|
|
75
|
+
height: var(--loader-size);
|
|
76
|
+
overflow: visible;
|
|
77
|
+
}
|
|
78
|
+
.loader {
|
|
79
|
+
width: 100%;
|
|
80
|
+
height: 100%;
|
|
81
|
+
display: block;
|
|
82
|
+
overflow: visible;
|
|
83
|
+
}
|
|
84
|
+
.chevron {
|
|
85
|
+
stroke: var(--loader-color);
|
|
86
|
+
stroke-width: 2;
|
|
87
|
+
stroke-linecap: square;
|
|
88
|
+
stroke-linejoin: miter;
|
|
89
|
+
fill: none;
|
|
90
|
+
opacity: 0.15;
|
|
91
|
+
animation: chevronPulse 2s ease-in-out infinite;
|
|
92
|
+
filter: drop-shadow(0 0 1.5px var(--loader-color));
|
|
93
|
+
}
|
|
94
|
+
.c1 {
|
|
95
|
+
animation-delay: 0s;
|
|
96
|
+
}
|
|
97
|
+
.c2 {
|
|
98
|
+
animation-delay: 0.2s;
|
|
99
|
+
}
|
|
100
|
+
.c3 {
|
|
101
|
+
animation-delay: 0.4s;
|
|
102
|
+
}
|
|
103
|
+
@keyframes chevronPulse {
|
|
104
|
+
0%, 100% {
|
|
105
|
+
opacity: 0.12;
|
|
106
|
+
filter: drop-shadow(0 0 1px var(--loader-color));
|
|
107
|
+
}
|
|
108
|
+
40%, 60% {
|
|
109
|
+
opacity: 1;
|
|
110
|
+
filter: drop-shadow(0 0 3px var(--loader-color));
|
|
111
|
+
}
|
|
112
|
+
}
|
package/dist/charts/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* CyberAreaChart — Reusable area chart with cyber/high-tech aesthetic.
|
|
@@ -92,5 +93,219 @@ declare function useCyberColors(): CyberColors;
|
|
|
92
93
|
/** Map a series dataKey to its color from the palette. */
|
|
93
94
|
declare function getSeriesColor(key: string, colors: CyberColors): string;
|
|
94
95
|
|
|
95
|
-
|
|
96
|
-
|
|
96
|
+
interface CyberDonutSegment {
|
|
97
|
+
name: string;
|
|
98
|
+
value: number;
|
|
99
|
+
color: string;
|
|
100
|
+
}
|
|
101
|
+
interface CyberDonutProps {
|
|
102
|
+
/** Title shown above the ring. Omit to suppress. */
|
|
103
|
+
title?: string;
|
|
104
|
+
/** Segment data. Component handles empty-state detection internally. */
|
|
105
|
+
segments: CyberDonutSegment[];
|
|
106
|
+
/** Center value displayed in the donut hole. */
|
|
107
|
+
centerValue: string | number;
|
|
108
|
+
/** Sub-label below the center value. */
|
|
109
|
+
centerLabel: string;
|
|
110
|
+
/** Color override for the center value text. Defaults to var(--mantine-color-text). */
|
|
111
|
+
centerValueColor?: string;
|
|
112
|
+
/** SVG filter ID namespace. REQUIRED when multiple donuts coexist on the same page. */
|
|
113
|
+
glowId: string;
|
|
114
|
+
/** Cyber color palette. Obtain via useCyberColors(). */
|
|
115
|
+
colors: CyberColors;
|
|
116
|
+
/** Donut size in px. Defaults to 120. */
|
|
117
|
+
size?: number;
|
|
118
|
+
/** Inner radius of the ring. Defaults to 36. */
|
|
119
|
+
innerRadius?: number;
|
|
120
|
+
/** Outer radius of the ring. Defaults to 52. */
|
|
121
|
+
outerRadius?: number;
|
|
122
|
+
/** When true, shows '-' for center value and legend counts. */
|
|
123
|
+
isLoading?: boolean;
|
|
124
|
+
/** Whether to show the legend below the donut. Defaults to true. */
|
|
125
|
+
showLegend?: boolean;
|
|
126
|
+
}
|
|
127
|
+
declare function CyberDonutTooltip({ active, payload, colors }: {
|
|
128
|
+
active?: boolean;
|
|
129
|
+
payload?: Array<{
|
|
130
|
+
name?: string;
|
|
131
|
+
value?: number;
|
|
132
|
+
payload?: {
|
|
133
|
+
color?: string;
|
|
134
|
+
};
|
|
135
|
+
}>;
|
|
136
|
+
colors: CyberColors;
|
|
137
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
138
|
+
declare function CyberDonut({ title, segments, centerValue, centerLabel, centerValueColor, glowId, colors, size, innerRadius, outerRadius, isLoading, showLegend }: CyberDonutProps): react_jsx_runtime.JSX.Element;
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Time range selector for dashboard metrics
|
|
142
|
+
*/
|
|
143
|
+
type TimeRange = '1h' | '24h' | '7d' | '30d';
|
|
144
|
+
/**
|
|
145
|
+
* Execution health metrics response
|
|
146
|
+
* Success rate, P95 duration, execution counts, and trend data
|
|
147
|
+
* trendData includes executionCount for throughput visualization (eliminates separate API call)
|
|
148
|
+
*/
|
|
149
|
+
interface ExecutionHealthMetrics {
|
|
150
|
+
successRate: number;
|
|
151
|
+
p95Duration: number;
|
|
152
|
+
totalExecutions: number;
|
|
153
|
+
trendData: Array<{
|
|
154
|
+
time: string;
|
|
155
|
+
rate: number;
|
|
156
|
+
successCount: number;
|
|
157
|
+
errorCount: number;
|
|
158
|
+
warningCount: number;
|
|
159
|
+
executionCount: number;
|
|
160
|
+
}>;
|
|
161
|
+
statusCounts: {
|
|
162
|
+
success: number;
|
|
163
|
+
failed: number;
|
|
164
|
+
pending: number;
|
|
165
|
+
warning: number;
|
|
166
|
+
};
|
|
167
|
+
peakPeriod: string;
|
|
168
|
+
granularity: 'hour' | 'day';
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Error analysis metrics response
|
|
172
|
+
* Error categories and top failing resources
|
|
173
|
+
*/
|
|
174
|
+
interface ErrorAnalysisMetrics {
|
|
175
|
+
totalErrors: number;
|
|
176
|
+
errorsByCategory: Array<{
|
|
177
|
+
category: string;
|
|
178
|
+
count: number;
|
|
179
|
+
percentage: number;
|
|
180
|
+
}>;
|
|
181
|
+
topFailingResources: Array<{
|
|
182
|
+
resourceId: string;
|
|
183
|
+
name: string;
|
|
184
|
+
errorCount: number;
|
|
185
|
+
failureRate: number;
|
|
186
|
+
}>;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Business impact metrics response
|
|
190
|
+
* ROI, labor savings, and cost analysis
|
|
191
|
+
*/
|
|
192
|
+
interface BusinessImpactMetrics {
|
|
193
|
+
totalSavingsUsd: number;
|
|
194
|
+
totalCostUsd: number;
|
|
195
|
+
netSavingsUsd: number;
|
|
196
|
+
roi: number;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Cost breakdown metrics response
|
|
200
|
+
* Per-resource cost analysis
|
|
201
|
+
*/
|
|
202
|
+
interface CostBreakdownMetrics {
|
|
203
|
+
resources: Array<{
|
|
204
|
+
resourceId: string;
|
|
205
|
+
totalCostUsd: number;
|
|
206
|
+
executionCount: number;
|
|
207
|
+
avgCostUsd: number;
|
|
208
|
+
}>;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Dashboard metrics response
|
|
212
|
+
* Aggregates core observability metrics in a single response
|
|
213
|
+
* Note: Throughput data is now included in executionHealth.trendData.executionCount
|
|
214
|
+
*/
|
|
215
|
+
interface DashboardMetrics {
|
|
216
|
+
executionHealth: ExecutionHealthMetrics;
|
|
217
|
+
costBreakdown: CostBreakdownMetrics;
|
|
218
|
+
businessImpact: BusinessImpactMetrics;
|
|
219
|
+
/** ISO timestamp of the currently active deployment, or null if none */
|
|
220
|
+
activeDeploymentDate: string | null;
|
|
221
|
+
/** Deployment version of the active deployment, or null if none */
|
|
222
|
+
activeDeploymentVersion: string | null;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Cost trend data point for time-series charts
|
|
226
|
+
* Represents a single time bucket (hour or day)
|
|
227
|
+
*/
|
|
228
|
+
interface CostTrendDataPoint {
|
|
229
|
+
time: string;
|
|
230
|
+
totalCostUsd: number;
|
|
231
|
+
executionCount: number;
|
|
232
|
+
avgCostPerExecution: number;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Cost trends response (time-series data)
|
|
236
|
+
*/
|
|
237
|
+
interface CostTrendsResponse {
|
|
238
|
+
trendData: CostTrendDataPoint[];
|
|
239
|
+
granularity: 'hour' | 'day';
|
|
240
|
+
totalCostUsd: number;
|
|
241
|
+
totalExecutions: number;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Cost summary response with MTD and projections
|
|
245
|
+
*/
|
|
246
|
+
interface CostSummaryResponse {
|
|
247
|
+
current: {
|
|
248
|
+
totalCostUsd: number;
|
|
249
|
+
executionCount: number;
|
|
250
|
+
};
|
|
251
|
+
previous: {
|
|
252
|
+
totalCostUsd: number;
|
|
253
|
+
executionCount: number;
|
|
254
|
+
};
|
|
255
|
+
mtd: {
|
|
256
|
+
totalCostUsd: number;
|
|
257
|
+
daysElapsed: number;
|
|
258
|
+
};
|
|
259
|
+
projection: {
|
|
260
|
+
monthlyCostUsd: number;
|
|
261
|
+
confidence: 'low' | 'medium' | 'high';
|
|
262
|
+
};
|
|
263
|
+
trend: {
|
|
264
|
+
changePercent: number;
|
|
265
|
+
direction: 'up' | 'down' | 'flat';
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
interface ActivityTrendChartProps {
|
|
270
|
+
timestamps: Date[];
|
|
271
|
+
total: number;
|
|
272
|
+
isLoading: boolean;
|
|
273
|
+
timeRange: TimeRange;
|
|
274
|
+
}
|
|
275
|
+
declare function ActivityTrendChart({ timestamps, total, isLoading, timeRange }: ActivityTrendChartProps): react_jsx_runtime.JSX.Element;
|
|
276
|
+
|
|
277
|
+
interface CostTrendChartProps {
|
|
278
|
+
data?: CostTrendsResponse;
|
|
279
|
+
summaryData?: CostSummaryResponse;
|
|
280
|
+
isLoading: boolean;
|
|
281
|
+
error?: Error | null;
|
|
282
|
+
}
|
|
283
|
+
declare function CostTrendChart({ data, summaryData, isLoading, error }: CostTrendChartProps): react_jsx_runtime.JSX.Element;
|
|
284
|
+
|
|
285
|
+
interface HeroStatsRowProps {
|
|
286
|
+
resourcesData?: {
|
|
287
|
+
workflows: unknown[];
|
|
288
|
+
agents: unknown[];
|
|
289
|
+
total: number;
|
|
290
|
+
};
|
|
291
|
+
resourcesLoading: boolean;
|
|
292
|
+
dashboardData?: DashboardMetrics;
|
|
293
|
+
dashboardLoading: boolean;
|
|
294
|
+
unresolvedErrorCount: number | null;
|
|
295
|
+
errorsLoading: boolean;
|
|
296
|
+
}
|
|
297
|
+
declare function HeroStatsRow({ resourcesData, resourcesLoading, dashboardData, dashboardLoading, unresolvedErrorCount, errorsLoading }: HeroStatsRowProps): react_jsx_runtime.JSX.Element;
|
|
298
|
+
|
|
299
|
+
interface CombinedTrendChartProps {
|
|
300
|
+
healthData?: ExecutionHealthMetrics;
|
|
301
|
+
errorData?: ErrorAnalysisMetrics;
|
|
302
|
+
isLoading: boolean;
|
|
303
|
+
error?: Error | null;
|
|
304
|
+
timeRange: TimeRange;
|
|
305
|
+
/** Optional navigation action rendered in the header (e.g., a Link button). */
|
|
306
|
+
navigationAction?: ReactNode;
|
|
307
|
+
}
|
|
308
|
+
declare function CombinedTrendChart({ healthData, errorData: _errorData, isLoading, error, timeRange, navigationAction }: CombinedTrendChartProps): react_jsx_runtime.JSX.Element;
|
|
309
|
+
|
|
310
|
+
export { ActivityTrendChart, CombinedTrendChart, CostTrendChart, CyberAreaChart, CyberDonut, CyberDonutTooltip, CyberLegendItem, HeroStatsRow, getSeriesColor, useCyberColors };
|
|
311
|
+
export type { ActivityTrendChartProps, CombinedTrendChartProps, CostTrendChartProps, CyberAreaChartProps, CyberColors, CyberDonutProps, CyberDonutSegment, CyberSeries, HeroStatsRowProps };
|