@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.
Files changed (42) hide show
  1. package/dist/{CoreAuthKitInner-Y6LQYIPX.js → CoreAuthKitInner-3J4RVQO6.js} +0 -1
  2. package/dist/api/index.js +0 -1
  3. package/dist/auth/context.js +0 -1
  4. package/dist/auth/index.js +0 -1
  5. package/dist/charts/index.css +112 -0
  6. package/dist/charts/index.d.ts +217 -2
  7. package/dist/charts/index.js +15 -384
  8. package/dist/{chunk-YJFTZUJJ.js → chunk-3Q5V2T6L.js} +2 -51
  9. package/dist/chunk-4KPI7YCY.js +1590 -0
  10. package/dist/chunk-6HZAMY6T.js +96 -0
  11. package/dist/{chunk-2ISUX46O.js → chunk-F6RBK7NJ.js} +1 -6
  12. package/dist/{chunk-G4TAF3T6.js → chunk-OK3XFSJJ.js} +77 -67
  13. package/dist/{chunk-K3YVC5RW.js → chunk-Y6DNK5ZD.js} +1 -1
  14. package/dist/{chunk-54S7KNJV.js → chunk-Y7UY3HI4.js} +1 -1
  15. package/dist/chunk-YZ6GTZXL.js +48 -0
  16. package/dist/components/index.d.ts +10 -4
  17. package/dist/components/index.js +107 -720
  18. package/dist/components/navigation/index.js +0 -1
  19. package/dist/execution/index.js +2 -2
  20. package/dist/graph/index.js +1 -2
  21. package/dist/hooks/index.d.ts +54 -2
  22. package/dist/hooks/index.js +2 -2
  23. package/dist/hooks/published.d.ts +54 -2
  24. package/dist/hooks/published.js +3 -3
  25. package/dist/index.d.ts +54 -2
  26. package/dist/index.js +7 -6
  27. package/dist/initialization/index.js +0 -1
  28. package/dist/layout/index.js +0 -1
  29. package/dist/organization/index.js +0 -1
  30. package/dist/profile/index.js +0 -1
  31. package/dist/provider/index.js +2 -3
  32. package/dist/provider/published.js +1 -2
  33. package/dist/router/context.js +0 -1
  34. package/dist/router/index.js +0 -1
  35. package/dist/sse/index.js +1 -1
  36. package/dist/supabase/index.js +0 -1
  37. package/dist/theme/index.js +0 -1
  38. package/dist/typeform/index.js +0 -1
  39. package/dist/typeform/schemas.js +0 -1
  40. package/dist/utils/index.js +0 -1
  41. package/package.json +3 -7
  42. package/dist/chunk-MLKGABMK.js +0 -7
@@ -1,5 +1,4 @@
1
1
  import { AuthProvider } from './chunk-7PLEQFHO.js';
2
- import './chunk-MLKGABMK.js';
3
2
  import { AuthKitProvider, useAuth } from '@workos-inc/authkit-react';
4
3
  import { useMemo } from 'react';
5
4
  import { jsx } from 'react/jsx-runtime';
package/dist/api/index.js CHANGED
@@ -3,4 +3,3 @@ export { ApiClientProvider, useApiClient, useApiClientContext } from '../chunk-L
3
3
  import '../chunk-LFYO3MDC.js';
4
4
  import '../chunk-4VGWQ5AN.js';
5
5
  import '../chunk-DD3CCMCZ.js';
6
- import '../chunk-MLKGABMK.js';
@@ -1,2 +1 @@
1
1
  export { AuthProvider, useAuthContext } from '../chunk-7PLEQFHO.js';
2
- import '../chunk-MLKGABMK.js';
@@ -5,4 +5,3 @@ import '../chunk-L2CM2CUA.js';
5
5
  import '../chunk-KA7LO7U5.js';
6
6
  import '../chunk-DD3CCMCZ.js';
7
7
  export { AuthProvider, useAuthContext } from '../chunk-7PLEQFHO.js';
8
- import '../chunk-MLKGABMK.js';
@@ -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
+ }
@@ -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
- export { CyberAreaChart, CyberLegendItem, getSeriesColor, useCyberColors };
96
- export type { CyberAreaChartProps, CyberColors, CyberSeries };
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 };