@uptime.link/statuspage 1.1.0 → 1.2.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.
- package/dist_bundle/bundle.js +1823 -915
- package/dist_bundle/bundle.js.map +3 -3
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/upl-statuspage-assetsselector.js +119 -45
- package/dist_ts_web/elements/upl-statuspage-footer.js +81 -27
- package/dist_ts_web/elements/upl-statuspage-header.js +79 -19
- package/dist_ts_web/elements/upl-statuspage-incidents.js +242 -55
- package/dist_ts_web/elements/upl-statuspage-statsgrid.js +225 -50
- package/dist_ts_web/elements/upl-statuspage-statusbar.js +58 -7
- package/dist_ts_web/elements/upl-statuspage-statusdetails.js +36 -11
- package/dist_ts_web/elements/upl-statuspage-statusmonth.d.ts +2 -0
- package/dist_ts_web/elements/upl-statuspage-statusmonth.js +415 -230
- package/dist_ts_web/styles/shared.styles.d.ts +22 -0
- package/dist_ts_web/styles/shared.styles.js +146 -3
- package/dist_watch/bundle.js +1417 -444
- package/dist_watch/bundle.js.map +3 -3
- package/dist_watch/index.html +1 -0
- package/package.json +1 -1
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/upl-statuspage-assetsselector.ts +118 -44
- package/ts_web/elements/upl-statuspage-footer.ts +80 -26
- package/ts_web/elements/upl-statuspage-header.ts +87 -18
- package/ts_web/elements/upl-statuspage-incidents.ts +247 -56
- package/ts_web/elements/upl-statuspage-statsgrid.ts +224 -52
- package/ts_web/elements/upl-statuspage-statusbar.ts +57 -6
- package/ts_web/elements/upl-statuspage-statusdetails.ts +35 -10
- package/ts_web/elements/upl-statuspage-statusmonth.ts +436 -252
- package/ts_web/styles/shared.styles.ts +166 -2
|
@@ -68,12 +68,34 @@ export declare const easings: {
|
|
|
68
68
|
smooth: string;
|
|
69
69
|
bounce: string;
|
|
70
70
|
snappy: string;
|
|
71
|
+
spring: string;
|
|
71
72
|
};
|
|
72
73
|
export declare const durations: {
|
|
74
|
+
instant: string;
|
|
73
75
|
fast: string;
|
|
74
76
|
normal: string;
|
|
75
77
|
slow: string;
|
|
76
78
|
slower: string;
|
|
79
|
+
slowest: string;
|
|
80
|
+
};
|
|
81
|
+
export declare const statusGradients: {
|
|
82
|
+
operational: import("@design.estate/dees-element").CSSResult;
|
|
83
|
+
degraded: import("@design.estate/dees-element").CSSResult;
|
|
84
|
+
partial: import("@design.estate/dees-element").CSSResult;
|
|
85
|
+
major: import("@design.estate/dees-element").CSSResult;
|
|
86
|
+
maintenance: import("@design.estate/dees-element").CSSResult;
|
|
87
|
+
};
|
|
88
|
+
export declare const glass: {
|
|
89
|
+
light: string;
|
|
90
|
+
dark: string;
|
|
91
|
+
subtle: import("@design.estate/dees-element").CSSResult;
|
|
92
|
+
};
|
|
93
|
+
export declare const statusGlows: {
|
|
94
|
+
operational: string;
|
|
95
|
+
degraded: string;
|
|
96
|
+
partial: string;
|
|
97
|
+
major: string;
|
|
98
|
+
maintenance: string;
|
|
77
99
|
};
|
|
78
100
|
export declare const commonStyles: import("@design.estate/dees-element").CSSResult;
|
|
79
101
|
export declare const getStatusColor: (status: string) => import("@design.estate/dees-element").CSSResult;
|
|
@@ -74,14 +74,39 @@ export const easings = {
|
|
|
74
74
|
default: 'cubic-bezier(0.4, 0, 0.2, 1)',
|
|
75
75
|
smooth: 'cubic-bezier(0.4, 0, 0.6, 1)',
|
|
76
76
|
bounce: 'cubic-bezier(0.68, -0.55, 0.265, 1.55)',
|
|
77
|
-
snappy: 'cubic-bezier(0.2, 0, 0, 1)'
|
|
77
|
+
snappy: 'cubic-bezier(0.2, 0, 0, 1)',
|
|
78
|
+
spring: 'cubic-bezier(0.175, 0.885, 0.32, 1.275)'
|
|
78
79
|
};
|
|
79
80
|
// Durations
|
|
80
81
|
export const durations = {
|
|
82
|
+
instant: '50ms',
|
|
81
83
|
fast: '100ms',
|
|
82
84
|
normal: '200ms',
|
|
83
85
|
slow: '300ms',
|
|
84
|
-
slower: '500ms'
|
|
86
|
+
slower: '500ms',
|
|
87
|
+
slowest: '800ms'
|
|
88
|
+
};
|
|
89
|
+
// Status gradients for backgrounds
|
|
90
|
+
export const statusGradients = {
|
|
91
|
+
operational: cssManager.bdTheme('linear-gradient(135deg, rgba(22, 163, 74, 0.08) 0%, rgba(22, 163, 74, 0.02) 100%)', 'linear-gradient(135deg, rgba(34, 197, 94, 0.12) 0%, rgba(34, 197, 94, 0.03) 100%)'),
|
|
92
|
+
degraded: cssManager.bdTheme('linear-gradient(135deg, rgba(217, 119, 6, 0.08) 0%, rgba(217, 119, 6, 0.02) 100%)', 'linear-gradient(135deg, rgba(251, 191, 36, 0.12) 0%, rgba(251, 191, 36, 0.03) 100%)'),
|
|
93
|
+
partial: cssManager.bdTheme('linear-gradient(135deg, rgba(220, 38, 38, 0.08) 0%, rgba(220, 38, 38, 0.02) 100%)', 'linear-gradient(135deg, rgba(248, 113, 113, 0.12) 0%, rgba(248, 113, 113, 0.03) 100%)'),
|
|
94
|
+
major: cssManager.bdTheme('linear-gradient(135deg, rgba(185, 28, 28, 0.10) 0%, rgba(185, 28, 28, 0.03) 100%)', 'linear-gradient(135deg, rgba(239, 68, 68, 0.15) 0%, rgba(239, 68, 68, 0.04) 100%)'),
|
|
95
|
+
maintenance: cssManager.bdTheme('linear-gradient(135deg, rgba(37, 99, 235, 0.08) 0%, rgba(37, 99, 235, 0.02) 100%)', 'linear-gradient(135deg, rgba(96, 165, 250, 0.12) 0%, rgba(96, 165, 250, 0.03) 100%)')
|
|
96
|
+
};
|
|
97
|
+
// Glassmorphism styles
|
|
98
|
+
export const glass = {
|
|
99
|
+
light: 'background: rgba(255, 255, 255, 0.7); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);',
|
|
100
|
+
dark: 'background: rgba(9, 9, 11, 0.8); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);',
|
|
101
|
+
subtle: cssManager.bdTheme('background: rgba(255, 255, 255, 0.5); backdrop-filter: blur(8px);', 'background: rgba(9, 9, 11, 0.6); backdrop-filter: blur(8px);')
|
|
102
|
+
};
|
|
103
|
+
// Status glow shadows
|
|
104
|
+
export const statusGlows = {
|
|
105
|
+
operational: '0 0 20px -5px rgba(34, 197, 94, 0.4)',
|
|
106
|
+
degraded: '0 0 20px -5px rgba(251, 191, 36, 0.4)',
|
|
107
|
+
partial: '0 0 20px -5px rgba(248, 113, 113, 0.4)',
|
|
108
|
+
major: '0 0 20px -5px rgba(239, 68, 68, 0.5)',
|
|
109
|
+
maintenance: '0 0 20px -5px rgba(96, 165, 250, 0.4)'
|
|
85
110
|
};
|
|
86
111
|
export const commonStyles = css `
|
|
87
112
|
/* Button styles */
|
|
@@ -197,6 +222,28 @@ export const commonStyles = css `
|
|
|
197
222
|
50% { opacity: 0.5; }
|
|
198
223
|
}
|
|
199
224
|
|
|
225
|
+
/* Pulse ring animation for active status */
|
|
226
|
+
@keyframes pulse-ring {
|
|
227
|
+
0% {
|
|
228
|
+
transform: scale(1);
|
|
229
|
+
opacity: 0.8;
|
|
230
|
+
}
|
|
231
|
+
100% {
|
|
232
|
+
transform: scale(2.5);
|
|
233
|
+
opacity: 0;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/* Shimmer effect for loading states */
|
|
238
|
+
@keyframes shimmer {
|
|
239
|
+
0% {
|
|
240
|
+
background-position: -200% 0;
|
|
241
|
+
}
|
|
242
|
+
100% {
|
|
243
|
+
background-position: 200% 0;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
|
|
200
247
|
/* Fade in animation */
|
|
201
248
|
@keyframes fadeIn {
|
|
202
249
|
from { opacity: 0; transform: translateY(4px); }
|
|
@@ -207,6 +254,22 @@ export const commonStyles = css `
|
|
|
207
254
|
animation: fadeIn ${unsafeCSS(durations.slow)} ${unsafeCSS(easings.default)} forwards;
|
|
208
255
|
}
|
|
209
256
|
|
|
257
|
+
/* Fade in up animation */
|
|
258
|
+
@keyframes fadeInUp {
|
|
259
|
+
from {
|
|
260
|
+
opacity: 0;
|
|
261
|
+
transform: translateY(16px);
|
|
262
|
+
}
|
|
263
|
+
to {
|
|
264
|
+
opacity: 1;
|
|
265
|
+
transform: translateY(0);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
.fade-in-up {
|
|
270
|
+
animation: fadeInUp ${unsafeCSS(durations.slower)} ${unsafeCSS(easings.default)} forwards;
|
|
271
|
+
}
|
|
272
|
+
|
|
210
273
|
/* Scale in animation */
|
|
211
274
|
@keyframes scaleIn {
|
|
212
275
|
from { opacity: 0; transform: scale(0.95); }
|
|
@@ -217,6 +280,86 @@ export const commonStyles = css `
|
|
|
217
280
|
animation: scaleIn ${unsafeCSS(durations.slow)} ${unsafeCSS(easings.bounce)} forwards;
|
|
218
281
|
}
|
|
219
282
|
|
|
283
|
+
/* Slide down animation for expanding content */
|
|
284
|
+
@keyframes slideDown {
|
|
285
|
+
from {
|
|
286
|
+
opacity: 0;
|
|
287
|
+
transform: translateY(-8px);
|
|
288
|
+
}
|
|
289
|
+
to {
|
|
290
|
+
opacity: 1;
|
|
291
|
+
transform: translateY(0);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
.slide-down {
|
|
296
|
+
animation: slideDown ${unsafeCSS(durations.slow)} ${unsafeCSS(easings.default)} forwards;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
/* Stagger animation delay utilities */
|
|
300
|
+
.stagger-1 { animation-delay: 50ms; }
|
|
301
|
+
.stagger-2 { animation-delay: 100ms; }
|
|
302
|
+
.stagger-3 { animation-delay: 150ms; }
|
|
303
|
+
.stagger-4 { animation-delay: 200ms; }
|
|
304
|
+
.stagger-5 { animation-delay: 250ms; }
|
|
305
|
+
|
|
306
|
+
/* Status indicator with pulse ring */
|
|
307
|
+
.status-dot-animated {
|
|
308
|
+
position: relative;
|
|
309
|
+
width: 10px;
|
|
310
|
+
height: 10px;
|
|
311
|
+
border-radius: 50%;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
.status-dot-animated::before {
|
|
315
|
+
content: '';
|
|
316
|
+
position: absolute;
|
|
317
|
+
inset: 0;
|
|
318
|
+
border-radius: 50%;
|
|
319
|
+
background: inherit;
|
|
320
|
+
animation: pulse-ring 2s ${unsafeCSS(easings.default)} infinite;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
.status-dot-animated.operational::before {
|
|
324
|
+
background: ${colors.status.operational};
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
.status-dot-animated.degraded::before,
|
|
328
|
+
.status-dot-animated.partial_outage::before,
|
|
329
|
+
.status-dot-animated.major_outage::before {
|
|
330
|
+
animation: pulse-ring 1.5s ${unsafeCSS(easings.default)} infinite;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
/* Hover lift effect */
|
|
334
|
+
.hover-lift {
|
|
335
|
+
transition: transform ${unsafeCSS(durations.normal)} ${unsafeCSS(easings.default)},
|
|
336
|
+
box-shadow ${unsafeCSS(durations.normal)} ${unsafeCSS(easings.default)};
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
.hover-lift:hover {
|
|
340
|
+
transform: translateY(-2px);
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
/* Icon animation */
|
|
344
|
+
.icon-spin {
|
|
345
|
+
animation: spin 1s linear infinite;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
@keyframes spin {
|
|
349
|
+
from { transform: rotate(0deg); }
|
|
350
|
+
to { transform: rotate(360deg); }
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
/* Bounce animation for attention */
|
|
354
|
+
@keyframes bounce {
|
|
355
|
+
0%, 100% { transform: translateY(0); }
|
|
356
|
+
50% { transform: translateY(-4px); }
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
.bounce {
|
|
360
|
+
animation: bounce 1s ${unsafeCSS(easings.bounce)} infinite;
|
|
361
|
+
}
|
|
362
|
+
|
|
220
363
|
/* Container styles */
|
|
221
364
|
.container {
|
|
222
365
|
max-width: 1200px;
|
|
@@ -348,4 +491,4 @@ export const getStatusIcon = (status) => {
|
|
|
348
491
|
return '?';
|
|
349
492
|
}
|
|
350
493
|
};
|
|
351
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
494
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLnN0eWxlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9zdHlsZXMvc2hhcmVkLnN0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV6RSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDbkIsSUFBSSxFQUFFLGlLQUFpSztJQUN2SyxJQUFJLEVBQUUsc0dBQXNHO0NBQzdHLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUc7SUFDcEIsb0JBQW9CO0lBQ3BCLFVBQVUsRUFBRTtRQUNWLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7UUFDakQsU0FBUyxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztRQUNuRCxLQUFLLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO1FBQy9DLElBQUksRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7UUFDOUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztLQUNuRDtJQUVELGdCQUFnQjtJQUNoQixNQUFNLEVBQUU7UUFDTixPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO1FBQ2pELEtBQUssRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7UUFDL0MsTUFBTSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztLQUNqRDtJQUVELGNBQWM7SUFDZCxJQUFJLEVBQUU7UUFDSixPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxD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
|