@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
|
@@ -76,66 +76,170 @@ export class UplStatuspageStatsgrid extends DeesElement {
|
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
.stat-card {
|
|
79
|
-
background: ${
|
|
80
|
-
border: 1px solid ${
|
|
81
|
-
border-radius: ${unsafeCSS(sharedStyles.borderRadius.
|
|
79
|
+
background: ${sharedStyles.colors.background.card};
|
|
80
|
+
border: 1px solid ${sharedStyles.colors.border.default};
|
|
81
|
+
border-radius: ${unsafeCSS(sharedStyles.borderRadius.lg)};
|
|
82
82
|
padding: ${unsafeCSS(sharedStyles.spacing.lg)};
|
|
83
|
-
transition: all
|
|
83
|
+
transition: all ${unsafeCSS(sharedStyles.durations.normal)} ${unsafeCSS(sharedStyles.easings.default)};
|
|
84
|
+
position: relative;
|
|
85
|
+
overflow: hidden;
|
|
86
|
+
animation: fadeInUp 0.4s ${unsafeCSS(sharedStyles.easings.default)} both;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.stat-card:nth-child(1) { animation-delay: 0ms; }
|
|
90
|
+
.stat-card:nth-child(2) { animation-delay: 50ms; }
|
|
91
|
+
.stat-card:nth-child(3) { animation-delay: 100ms; }
|
|
92
|
+
.stat-card:nth-child(4) { animation-delay: 150ms; }
|
|
93
|
+
|
|
94
|
+
@keyframes fadeInUp {
|
|
95
|
+
from {
|
|
96
|
+
opacity: 0;
|
|
97
|
+
transform: translateY(12px);
|
|
98
|
+
}
|
|
99
|
+
to {
|
|
100
|
+
opacity: 1;
|
|
101
|
+
transform: translateY(0);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* Status-colored top accent */
|
|
106
|
+
.stat-card::before {
|
|
107
|
+
content: '';
|
|
108
|
+
position: absolute;
|
|
109
|
+
top: 0;
|
|
110
|
+
left: 0;
|
|
111
|
+
right: 0;
|
|
112
|
+
height: 3px;
|
|
113
|
+
background: ${sharedStyles.colors.border.muted};
|
|
114
|
+
transition: all ${unsafeCSS(sharedStyles.durations.fast)} ${unsafeCSS(sharedStyles.easings.default)};
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.stat-card.status-card::before {
|
|
118
|
+
background: ${sharedStyles.colors.status.operational};
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.stat-card.status-card.degraded::before {
|
|
122
|
+
background: ${sharedStyles.colors.status.degraded};
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.stat-card.status-card.partial_outage::before {
|
|
126
|
+
background: ${sharedStyles.colors.status.partial};
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.stat-card.status-card.major_outage::before {
|
|
130
|
+
background: ${sharedStyles.colors.status.major};
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.stat-card.status-card.maintenance::before {
|
|
134
|
+
background: ${sharedStyles.colors.status.maintenance};
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.stat-card.uptime-card::before {
|
|
138
|
+
background: ${sharedStyles.colors.status.operational};
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.stat-card.response-card::before {
|
|
142
|
+
background: ${sharedStyles.colors.status.maintenance};
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.stat-card.incident-card::before {
|
|
146
|
+
background: ${sharedStyles.colors.status.partial};
|
|
84
147
|
}
|
|
85
148
|
|
|
86
149
|
.stat-card:hover {
|
|
87
|
-
border-color: ${
|
|
88
|
-
box-shadow: ${
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
150
|
+
border-color: ${sharedStyles.colors.border.muted};
|
|
151
|
+
box-shadow: ${unsafeCSS(sharedStyles.shadows.md)};
|
|
152
|
+
transform: translateY(-3px);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.stat-card:hover::before {
|
|
156
|
+
height: 4px;
|
|
92
157
|
}
|
|
93
158
|
|
|
94
159
|
.stat-label {
|
|
95
|
-
font-size:
|
|
96
|
-
color: ${
|
|
160
|
+
font-size: 11px;
|
|
161
|
+
color: ${sharedStyles.colors.text.muted};
|
|
97
162
|
text-transform: uppercase;
|
|
98
|
-
letter-spacing: 0.
|
|
99
|
-
font-weight:
|
|
163
|
+
letter-spacing: 0.06em;
|
|
164
|
+
font-weight: 600;
|
|
100
165
|
margin-bottom: ${unsafeCSS(sharedStyles.spacing.sm)};
|
|
101
166
|
display: flex;
|
|
102
167
|
align-items: center;
|
|
103
|
-
gap:
|
|
168
|
+
gap: 6px;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.stat-label svg {
|
|
172
|
+
width: 14px;
|
|
173
|
+
height: 14px;
|
|
174
|
+
opacity: 0.7;
|
|
104
175
|
}
|
|
105
176
|
|
|
106
177
|
.stat-value {
|
|
107
|
-
font-size:
|
|
108
|
-
font-weight:
|
|
109
|
-
color: ${
|
|
178
|
+
font-size: 28px;
|
|
179
|
+
font-weight: 700;
|
|
180
|
+
color: ${sharedStyles.colors.text.primary};
|
|
110
181
|
font-variant-numeric: tabular-nums;
|
|
111
182
|
line-height: 1.2;
|
|
183
|
+
letter-spacing: -0.02em;
|
|
184
|
+
transition: transform ${unsafeCSS(sharedStyles.durations.fast)} ${unsafeCSS(sharedStyles.easings.default)};
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.stat-card:hover .stat-value {
|
|
188
|
+
transform: scale(1.02);
|
|
112
189
|
}
|
|
113
190
|
|
|
114
191
|
.stat-unit {
|
|
115
|
-
font-size:
|
|
116
|
-
font-weight:
|
|
117
|
-
color: ${
|
|
118
|
-
margin-left:
|
|
192
|
+
font-size: 16px;
|
|
193
|
+
font-weight: 500;
|
|
194
|
+
color: ${sharedStyles.colors.text.secondary};
|
|
195
|
+
margin-left: 2px;
|
|
119
196
|
}
|
|
120
197
|
|
|
121
198
|
.stat-change {
|
|
122
199
|
font-size: 12px;
|
|
123
|
-
margin-top: ${unsafeCSS(sharedStyles.spacing.
|
|
200
|
+
margin-top: ${unsafeCSS(sharedStyles.spacing.sm)};
|
|
124
201
|
display: flex;
|
|
125
202
|
align-items: center;
|
|
126
203
|
gap: 4px;
|
|
204
|
+
padding: 4px 8px;
|
|
205
|
+
border-radius: ${unsafeCSS(sharedStyles.borderRadius.sm)};
|
|
206
|
+
width: fit-content;
|
|
127
207
|
}
|
|
128
208
|
|
|
129
209
|
.stat-change.positive {
|
|
130
|
-
color: ${
|
|
210
|
+
color: ${sharedStyles.colors.status.operational};
|
|
211
|
+
background: ${cssManager.bdTheme('rgba(22, 163, 74, 0.08)', 'rgba(34, 197, 94, 0.12)')};
|
|
131
212
|
}
|
|
132
213
|
|
|
133
214
|
.stat-change.negative {
|
|
134
|
-
color: ${
|
|
215
|
+
color: ${sharedStyles.colors.status.partial};
|
|
216
|
+
background: ${cssManager.bdTheme('rgba(239, 68, 68, 0.08)', 'rgba(248, 113, 113, 0.12)')};
|
|
135
217
|
}
|
|
136
218
|
|
|
137
219
|
.stat-change.neutral {
|
|
138
|
-
color: ${
|
|
220
|
+
color: ${sharedStyles.colors.text.muted};
|
|
221
|
+
background: ${sharedStyles.colors.background.muted};
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
/* Status text color variations */
|
|
225
|
+
.stat-value.operational {
|
|
226
|
+
color: ${sharedStyles.colors.status.operational};
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.stat-value.degraded {
|
|
230
|
+
color: ${sharedStyles.colors.status.degraded};
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
.stat-value.partial_outage {
|
|
234
|
+
color: ${sharedStyles.colors.status.partial};
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
.stat-value.major_outage {
|
|
238
|
+
color: ${sharedStyles.colors.status.major};
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
.stat-value.maintenance {
|
|
242
|
+
color: ${sharedStyles.colors.status.maintenance};
|
|
139
243
|
}
|
|
140
244
|
|
|
141
245
|
.loading-skeleton {
|
|
@@ -145,61 +249,102 @@ export class UplStatuspageStatsgrid extends DeesElement {
|
|
|
145
249
|
}
|
|
146
250
|
|
|
147
251
|
.skeleton-card {
|
|
148
|
-
background: ${
|
|
149
|
-
border: 1px solid ${
|
|
150
|
-
border-radius: ${unsafeCSS(sharedStyles.borderRadius.
|
|
252
|
+
background: ${sharedStyles.colors.background.card};
|
|
253
|
+
border: 1px solid ${sharedStyles.colors.border.default};
|
|
254
|
+
border-radius: ${unsafeCSS(sharedStyles.borderRadius.lg)};
|
|
151
255
|
padding: ${unsafeCSS(sharedStyles.spacing.lg)};
|
|
152
|
-
height:
|
|
256
|
+
height: 110px;
|
|
257
|
+
position: relative;
|
|
258
|
+
overflow: hidden;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
.skeleton-card::before {
|
|
262
|
+
content: '';
|
|
263
|
+
position: absolute;
|
|
264
|
+
top: 0;
|
|
265
|
+
left: 0;
|
|
266
|
+
right: 0;
|
|
267
|
+
height: 3px;
|
|
268
|
+
background: ${sharedStyles.colors.background.muted};
|
|
153
269
|
}
|
|
154
270
|
|
|
155
271
|
.skeleton-label {
|
|
156
|
-
height:
|
|
272
|
+
height: 12px;
|
|
157
273
|
width: 80px;
|
|
158
|
-
background: ${
|
|
274
|
+
background: ${sharedStyles.colors.background.muted};
|
|
159
275
|
border-radius: 4px;
|
|
160
276
|
margin-bottom: ${unsafeCSS(sharedStyles.spacing.sm)};
|
|
161
|
-
animation:
|
|
277
|
+
animation: shimmer 1.5s infinite;
|
|
162
278
|
}
|
|
163
279
|
|
|
164
280
|
.skeleton-value {
|
|
165
|
-
height:
|
|
166
|
-
width:
|
|
167
|
-
background: ${
|
|
168
|
-
border-radius:
|
|
169
|
-
animation:
|
|
281
|
+
height: 32px;
|
|
282
|
+
width: 100px;
|
|
283
|
+
background: ${sharedStyles.colors.background.muted};
|
|
284
|
+
border-radius: 6px;
|
|
285
|
+
animation: shimmer 1.5s infinite;
|
|
170
286
|
animation-delay: 0.1s;
|
|
171
287
|
}
|
|
172
288
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
289
|
+
.skeleton-change {
|
|
290
|
+
height: 20px;
|
|
291
|
+
width: 70px;
|
|
292
|
+
background: ${sharedStyles.colors.background.muted};
|
|
293
|
+
border-radius: 4px;
|
|
294
|
+
margin-top: ${unsafeCSS(sharedStyles.spacing.sm)};
|
|
295
|
+
animation: shimmer 1.5s infinite;
|
|
296
|
+
animation-delay: 0.2s;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
@keyframes shimmer {
|
|
300
|
+
0% { opacity: 0.5; }
|
|
301
|
+
50% { opacity: 1; }
|
|
302
|
+
100% { opacity: 0.5; }
|
|
176
303
|
}
|
|
177
304
|
|
|
178
305
|
.status-indicator {
|
|
179
306
|
display: inline-block;
|
|
180
|
-
width:
|
|
181
|
-
height:
|
|
307
|
+
width: 8px;
|
|
308
|
+
height: 8px;
|
|
182
309
|
border-radius: 50%;
|
|
310
|
+
flex-shrink: 0;
|
|
183
311
|
}
|
|
184
312
|
|
|
185
313
|
.status-indicator.operational {
|
|
186
314
|
background: ${sharedStyles.colors.status.operational};
|
|
315
|
+
box-shadow: 0 0 0 2px ${cssManager.bdTheme('rgba(22, 163, 74, 0.2)', 'rgba(34, 197, 94, 0.25)')};
|
|
316
|
+
animation: statusPulse 2s ease-in-out infinite;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
@keyframes statusPulse {
|
|
320
|
+
0%, 100% { box-shadow: 0 0 0 2px ${cssManager.bdTheme('rgba(22, 163, 74, 0.2)', 'rgba(34, 197, 94, 0.25)')}; }
|
|
321
|
+
50% { box-shadow: 0 0 0 4px ${cssManager.bdTheme('rgba(22, 163, 74, 0.1)', 'rgba(34, 197, 94, 0.15)')}; }
|
|
187
322
|
}
|
|
188
323
|
|
|
189
324
|
.status-indicator.degraded {
|
|
190
325
|
background: ${sharedStyles.colors.status.degraded};
|
|
326
|
+
box-shadow: 0 0 0 2px ${cssManager.bdTheme('rgba(217, 119, 6, 0.2)', 'rgba(251, 191, 36, 0.25)')};
|
|
191
327
|
}
|
|
192
328
|
|
|
193
329
|
.status-indicator.partial_outage {
|
|
194
330
|
background: ${sharedStyles.colors.status.partial};
|
|
331
|
+
box-shadow: 0 0 0 2px ${cssManager.bdTheme('rgba(239, 68, 68, 0.2)', 'rgba(248, 113, 113, 0.25)')};
|
|
195
332
|
}
|
|
196
333
|
|
|
197
334
|
.status-indicator.major_outage {
|
|
198
335
|
background: ${sharedStyles.colors.status.major};
|
|
336
|
+
box-shadow: 0 0 0 2px ${cssManager.bdTheme('rgba(185, 28, 28, 0.2)', 'rgba(239, 68, 68, 0.25)')};
|
|
337
|
+
animation: majorPulse 1s ease-in-out infinite;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
@keyframes majorPulse {
|
|
341
|
+
0%, 100% { opacity: 1; }
|
|
342
|
+
50% { opacity: 0.6; }
|
|
199
343
|
}
|
|
200
344
|
|
|
201
345
|
.status-indicator.maintenance {
|
|
202
346
|
background: ${sharedStyles.colors.status.maintenance};
|
|
347
|
+
box-shadow: 0 0 0 2px ${cssManager.bdTheme('rgba(37, 99, 235, 0.2)', 'rgba(96, 165, 250, 0.25)')};
|
|
203
348
|
}
|
|
204
349
|
|
|
205
350
|
@media (max-width: 640px) {
|
|
@@ -208,7 +353,7 @@ export class UplStatuspageStatsgrid extends DeesElement {
|
|
|
208
353
|
}
|
|
209
354
|
|
|
210
355
|
.stats-grid {
|
|
211
|
-
grid-template-columns: 1fr;
|
|
356
|
+
grid-template-columns: repeat(2, 1fr);
|
|
212
357
|
gap: ${unsafeCSS(sharedStyles.spacing.sm)};
|
|
213
358
|
}
|
|
214
359
|
|
|
@@ -217,7 +362,16 @@ export class UplStatuspageStatsgrid extends DeesElement {
|
|
|
217
362
|
}
|
|
218
363
|
|
|
219
364
|
.stat-value {
|
|
220
|
-
font-size:
|
|
365
|
+
font-size: 22px;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
.stat-label {
|
|
369
|
+
font-size: 10px;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
.stat-label svg {
|
|
373
|
+
width: 12px;
|
|
374
|
+
height: 12px;
|
|
221
375
|
}
|
|
222
376
|
}
|
|
223
377
|
`,
|
|
@@ -237,18 +391,23 @@ export class UplStatuspageStatsgrid extends DeesElement {
|
|
|
237
391
|
</div>
|
|
238
392
|
` : html`
|
|
239
393
|
<div class="stats-grid">
|
|
240
|
-
<div class="stat-card">
|
|
394
|
+
<div class="stat-card status-card ${this.currentStatus}">
|
|
241
395
|
<div class="stat-label">
|
|
242
396
|
<span class="status-indicator ${this.currentStatus}"></span>
|
|
243
397
|
Current Status
|
|
244
398
|
</div>
|
|
245
|
-
<div class="stat-value">
|
|
399
|
+
<div class="stat-value ${this.currentStatus}">
|
|
246
400
|
${this.formatStatus(this.currentStatus)}
|
|
247
401
|
</div>
|
|
248
402
|
</div>
|
|
249
403
|
|
|
250
|
-
<div class="stat-card">
|
|
251
|
-
<div class="stat-label">
|
|
404
|
+
<div class="stat-card uptime-card">
|
|
405
|
+
<div class="stat-label">
|
|
406
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
407
|
+
<polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline>
|
|
408
|
+
</svg>
|
|
409
|
+
Uptime
|
|
410
|
+
</div>
|
|
252
411
|
<div class="stat-value">
|
|
253
412
|
${this.uptime.toFixed(2)}<span class="stat-unit">%</span>
|
|
254
413
|
</div>
|
|
@@ -257,16 +416,29 @@ export class UplStatuspageStatsgrid extends DeesElement {
|
|
|
257
416
|
</div>
|
|
258
417
|
</div>
|
|
259
418
|
|
|
260
|
-
<div class="stat-card">
|
|
261
|
-
<div class="stat-label">
|
|
419
|
+
<div class="stat-card response-card">
|
|
420
|
+
<div class="stat-label">
|
|
421
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
422
|
+
<circle cx="12" cy="12" r="10"></circle>
|
|
423
|
+
<polyline points="12 6 12 12 16 14"></polyline>
|
|
424
|
+
</svg>
|
|
425
|
+
Avg Response
|
|
426
|
+
</div>
|
|
262
427
|
<div class="stat-value">
|
|
263
428
|
${this.avgResponseTime}<span class="stat-unit">ms</span>
|
|
264
429
|
</div>
|
|
265
430
|
${this.renderResponseChange()}
|
|
266
431
|
</div>
|
|
267
432
|
|
|
268
|
-
<div class="stat-card">
|
|
269
|
-
<div class="stat-label">
|
|
433
|
+
<div class="stat-card incident-card">
|
|
434
|
+
<div class="stat-label">
|
|
435
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
436
|
+
<path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path>
|
|
437
|
+
<line x1="12" y1="9" x2="12" y2="13"></line>
|
|
438
|
+
<line x1="12" y1="17" x2="12.01" y2="17"></line>
|
|
439
|
+
</svg>
|
|
440
|
+
Incidents
|
|
441
|
+
</div>
|
|
270
442
|
<div class="stat-value">
|
|
271
443
|
${this.totalIncidents}
|
|
272
444
|
</div>
|
|
@@ -54,22 +54,32 @@ export class UplStatuspageStatusbar extends DeesElement {
|
|
|
54
54
|
display: flex;
|
|
55
55
|
align-items: center;
|
|
56
56
|
justify-content: space-between;
|
|
57
|
-
min-height:
|
|
58
|
-
padding: ${unsafeCSS(sharedStyles.spacing.
|
|
59
|
-
border-radius: ${unsafeCSS(sharedStyles.borderRadius.
|
|
57
|
+
min-height: 72px;
|
|
58
|
+
padding: ${unsafeCSS(sharedStyles.spacing.lg)} ${unsafeCSS(sharedStyles.spacing.xl)};
|
|
59
|
+
border-radius: ${unsafeCSS(sharedStyles.borderRadius.xl)};
|
|
60
60
|
cursor: default;
|
|
61
|
-
transition: all ${unsafeCSS(sharedStyles.durations.
|
|
61
|
+
transition: all ${unsafeCSS(sharedStyles.durations.slow)} ${unsafeCSS(sharedStyles.easings.default)};
|
|
62
62
|
position: relative;
|
|
63
63
|
overflow: hidden;
|
|
64
64
|
font-weight: 500;
|
|
65
65
|
font-size: 15px;
|
|
66
66
|
letter-spacing: -0.01em;
|
|
67
|
-
background: ${sharedStyles.colors.background.card};
|
|
68
67
|
border: 1px solid ${sharedStyles.colors.border.default};
|
|
69
68
|
box-shadow: ${unsafeCSS(sharedStyles.shadows.sm)};
|
|
70
69
|
}
|
|
71
70
|
|
|
71
|
+
/* Gradient background overlay */
|
|
72
72
|
.statusbar-inner::before {
|
|
73
|
+
content: '';
|
|
74
|
+
position: absolute;
|
|
75
|
+
inset: 0;
|
|
76
|
+
opacity: 1;
|
|
77
|
+
transition: opacity ${unsafeCSS(sharedStyles.durations.slow)} ${unsafeCSS(sharedStyles.easings.default)};
|
|
78
|
+
z-index: 0;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/* Left accent border */
|
|
82
|
+
.statusbar-inner::after {
|
|
73
83
|
content: '';
|
|
74
84
|
position: absolute;
|
|
75
85
|
left: 0;
|
|
@@ -77,31 +87,72 @@ export class UplStatuspageStatusbar extends DeesElement {
|
|
|
77
87
|
bottom: 0;
|
|
78
88
|
width: 4px;
|
|
79
89
|
transition: background ${unsafeCSS(sharedStyles.durations.normal)} ${unsafeCSS(sharedStyles.easings.default)};
|
|
90
|
+
z-index: 1;
|
|
80
91
|
}
|
|
81
92
|
|
|
93
|
+
/* Operational - green gradient */
|
|
94
|
+
.statusbar-inner.operational {
|
|
95
|
+
background: ${sharedStyles.colors.background.card};
|
|
96
|
+
}
|
|
82
97
|
.statusbar-inner.operational::before {
|
|
98
|
+
background: ${sharedStyles.statusGradients.operational};
|
|
99
|
+
}
|
|
100
|
+
.statusbar-inner.operational::after {
|
|
83
101
|
background: ${sharedStyles.colors.status.operational};
|
|
84
102
|
}
|
|
85
103
|
|
|
104
|
+
/* Degraded - yellow/amber gradient */
|
|
105
|
+
.statusbar-inner.degraded {
|
|
106
|
+
background: ${sharedStyles.colors.background.card};
|
|
107
|
+
}
|
|
86
108
|
.statusbar-inner.degraded::before {
|
|
109
|
+
background: ${sharedStyles.statusGradients.degraded};
|
|
110
|
+
}
|
|
111
|
+
.statusbar-inner.degraded::after {
|
|
87
112
|
background: ${sharedStyles.colors.status.degraded};
|
|
88
113
|
}
|
|
89
114
|
|
|
115
|
+
/* Partial outage - orange/red gradient */
|
|
116
|
+
.statusbar-inner.partial_outage {
|
|
117
|
+
background: ${sharedStyles.colors.background.card};
|
|
118
|
+
}
|
|
90
119
|
.statusbar-inner.partial_outage::before {
|
|
120
|
+
background: ${sharedStyles.statusGradients.partial};
|
|
121
|
+
}
|
|
122
|
+
.statusbar-inner.partial_outage::after {
|
|
91
123
|
background: ${sharedStyles.colors.status.partial};
|
|
92
124
|
}
|
|
93
125
|
|
|
126
|
+
/* Major outage - red gradient */
|
|
127
|
+
.statusbar-inner.major_outage {
|
|
128
|
+
background: ${sharedStyles.colors.background.card};
|
|
129
|
+
}
|
|
94
130
|
.statusbar-inner.major_outage::before {
|
|
131
|
+
background: ${sharedStyles.statusGradients.major};
|
|
132
|
+
}
|
|
133
|
+
.statusbar-inner.major_outage::after {
|
|
95
134
|
background: ${sharedStyles.colors.status.major};
|
|
96
135
|
}
|
|
97
136
|
|
|
137
|
+
/* Maintenance - blue gradient */
|
|
138
|
+
.statusbar-inner.maintenance {
|
|
139
|
+
background: ${sharedStyles.colors.background.card};
|
|
140
|
+
}
|
|
98
141
|
.statusbar-inner.maintenance::before {
|
|
142
|
+
background: ${sharedStyles.statusGradients.maintenance};
|
|
143
|
+
}
|
|
144
|
+
.statusbar-inner.maintenance::after {
|
|
99
145
|
background: ${sharedStyles.colors.status.maintenance};
|
|
100
146
|
}
|
|
101
147
|
|
|
102
148
|
.statusbar-inner:hover {
|
|
103
149
|
border-color: ${sharedStyles.colors.border.muted};
|
|
104
|
-
box-shadow: ${unsafeCSS(sharedStyles.shadows.
|
|
150
|
+
box-shadow: ${unsafeCSS(sharedStyles.shadows.md)};
|
|
151
|
+
transform: translateY(-1px);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.statusbar-inner:hover::before {
|
|
155
|
+
opacity: 1.2;
|
|
105
156
|
}
|
|
106
157
|
|
|
107
158
|
.status-indicator {
|
|
@@ -73,6 +73,12 @@ export class UplStatuspageStatusdetails extends DeesElement {
|
|
|
73
73
|
|
|
74
74
|
.graph-container {
|
|
75
75
|
position: relative;
|
|
76
|
+
animation: fadeIn 0.3s ${unsafeCSS(sharedStyles.easings.default)};
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
@keyframes fadeIn {
|
|
80
|
+
from { opacity: 0; }
|
|
81
|
+
to { opacity: 1; }
|
|
76
82
|
}
|
|
77
83
|
|
|
78
84
|
.mainbox {
|
|
@@ -98,14 +104,29 @@ export class UplStatuspageStatusdetails extends DeesElement {
|
|
|
98
104
|
flex: 1;
|
|
99
105
|
height: 100%;
|
|
100
106
|
cursor: pointer;
|
|
101
|
-
transition: all
|
|
107
|
+
transition: all ${unsafeCSS(sharedStyles.durations.fast)} ${unsafeCSS(sharedStyles.easings.default)};
|
|
102
108
|
position: relative;
|
|
103
|
-
border-radius:
|
|
109
|
+
border-radius: 3px;
|
|
110
|
+
animation: barGrow 0.4s ${unsafeCSS(sharedStyles.easings.default)} both;
|
|
111
|
+
animation-delay: calc(var(--bar-index, 0) * 8ms);
|
|
112
|
+
transform-origin: bottom;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
@keyframes barGrow {
|
|
116
|
+
from {
|
|
117
|
+
transform: scaleY(0);
|
|
118
|
+
opacity: 0;
|
|
119
|
+
}
|
|
120
|
+
to {
|
|
121
|
+
transform: scaleY(1);
|
|
122
|
+
opacity: 1;
|
|
123
|
+
}
|
|
104
124
|
}
|
|
105
125
|
|
|
106
126
|
.mainbox .barContainer .bar:hover {
|
|
107
|
-
transform: scaleY(1.
|
|
108
|
-
box-shadow: 0 2px
|
|
127
|
+
transform: scaleY(1.15);
|
|
128
|
+
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
|
|
129
|
+
z-index: 1;
|
|
109
130
|
}
|
|
110
131
|
|
|
111
132
|
.mainbox .barContainer .bar.operational {
|
|
@@ -149,20 +170,23 @@ export class UplStatuspageStatusdetails extends DeesElement {
|
|
|
149
170
|
position: absolute;
|
|
150
171
|
background: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};
|
|
151
172
|
color: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};
|
|
152
|
-
padding:
|
|
153
|
-
border-radius:
|
|
173
|
+
padding: 8px 12px;
|
|
174
|
+
border-radius: ${unsafeCSS(sharedStyles.borderRadius.base)};
|
|
154
175
|
font-size: 11px;
|
|
155
176
|
pointer-events: none;
|
|
156
177
|
opacity: 0;
|
|
157
|
-
transition: opacity
|
|
178
|
+
transition: opacity ${unsafeCSS(sharedStyles.durations.fast)} ${unsafeCSS(sharedStyles.easings.default)},
|
|
179
|
+
transform ${unsafeCSS(sharedStyles.durations.fast)} ${unsafeCSS(sharedStyles.easings.default)};
|
|
158
180
|
z-index: 50;
|
|
159
181
|
white-space: nowrap;
|
|
160
|
-
box-shadow:
|
|
161
|
-
line-height: 1.
|
|
182
|
+
box-shadow: ${unsafeCSS(sharedStyles.shadows.lg)};
|
|
183
|
+
line-height: 1.5;
|
|
184
|
+
transform: translateY(4px);
|
|
162
185
|
}
|
|
163
186
|
|
|
164
187
|
.tooltip.visible {
|
|
165
188
|
opacity: 1;
|
|
189
|
+
transform: translateY(0);
|
|
166
190
|
}
|
|
167
191
|
|
|
168
192
|
.tooltip-time {
|
|
@@ -274,8 +298,9 @@ export class UplStatuspageStatusdetails extends DeesElement {
|
|
|
274
298
|
const responseTime = dataPoint?.responseTime || 0;
|
|
275
299
|
|
|
276
300
|
bars.push(html`
|
|
277
|
-
<div
|
|
301
|
+
<div
|
|
278
302
|
class="bar ${status}"
|
|
303
|
+
style="--bar-index: ${i}"
|
|
279
304
|
@mouseenter=${(e: MouseEvent) => this.showTooltip(e, timestamp, status, responseTime)}
|
|
280
305
|
@click=${() => this.handleBarClick(timestamp, status, responseTime)}
|
|
281
306
|
></div>
|