@uptime.link/statuspage 1.1.0 → 1.3.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 (29) hide show
  1. package/dist_bundle/bundle.js +1814 -917
  2. package/dist_bundle/bundle.js.map +3 -3
  3. package/dist_ts_web/00_commitinfo_data.js +1 -1
  4. package/dist_ts_web/elements/upl-statuspage-assetsselector.js +119 -45
  5. package/dist_ts_web/elements/upl-statuspage-footer.js +81 -27
  6. package/dist_ts_web/elements/upl-statuspage-header.js +79 -19
  7. package/dist_ts_web/elements/upl-statuspage-incidents.js +242 -55
  8. package/dist_ts_web/elements/upl-statuspage-statsgrid.d.ts +3 -0
  9. package/dist_ts_web/elements/upl-statuspage-statsgrid.js +239 -52
  10. package/dist_ts_web/elements/upl-statuspage-statusbar.js +58 -7
  11. package/dist_ts_web/elements/upl-statuspage-statusdetails.js +36 -11
  12. package/dist_ts_web/elements/upl-statuspage-statusmonth.d.ts +2 -0
  13. package/dist_ts_web/elements/upl-statuspage-statusmonth.js +415 -230
  14. package/dist_ts_web/styles/shared.styles.d.ts +22 -0
  15. package/dist_ts_web/styles/shared.styles.js +146 -3
  16. package/dist_watch/bundle.js +1425 -446
  17. package/dist_watch/bundle.js.map +3 -3
  18. package/dist_watch/index.html +1 -0
  19. package/package.json +1 -1
  20. package/ts_web/00_commitinfo_data.ts +1 -1
  21. package/ts_web/elements/upl-statuspage-assetsselector.ts +118 -44
  22. package/ts_web/elements/upl-statuspage-footer.ts +80 -26
  23. package/ts_web/elements/upl-statuspage-header.ts +87 -18
  24. package/ts_web/elements/upl-statuspage-incidents.ts +248 -56
  25. package/ts_web/elements/upl-statuspage-statsgrid.ts +235 -55
  26. package/ts_web/elements/upl-statuspage-statusbar.ts +57 -6
  27. package/ts_web/elements/upl-statuspage-statusdetails.ts +35 -10
  28. package/ts_web/elements/upl-statuspage-statusmonth.ts +436 -252
  29. package/ts_web/styles/shared.styles.ts +166 -2
@@ -12,6 +12,7 @@
12
12
 
13
13
  <!--Lets load standard fonts-->
14
14
  <link rel="preconnect" href="https://assetbroker.lossless.one/" crossorigin>
15
+ <link rel="preload" href="https://assetbroker.lossless.one/fonts/geist-sans/geistvf.woff2" as="font" type="font/woff2" crossorigin>
15
16
  <link rel="stylesheet" href="https://assetbroker.lossless.one/fonts/fonts.css">
16
17
 
17
18
  <style>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uptime.link/statuspage",
3
- "version": "1.1.0",
3
+ "version": "1.3.0",
4
4
  "private": false,
5
5
  "description": "A catalog of web components for the UptimeLink dashboard.",
6
6
  "main": "dist_ts_web/index.js",
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@uptime.link/statuspage',
6
- version: '1.1.0',
6
+ version: '1.3.0',
7
7
  description: 'A catalog of web components for the UptimeLink dashboard.'
8
8
  }
@@ -76,23 +76,24 @@ export class UplStatuspageAssetsselector extends DeesElement {
76
76
  flex: 1;
77
77
  min-width: 200px;
78
78
  padding: ${unsafeCSS(sharedStyles.spacing.xs)} ${unsafeCSS(sharedStyles.spacing.sm)};
79
- border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};
79
+ border: 1px solid ${sharedStyles.colors.border.default};
80
80
  border-radius: ${unsafeCSS(sharedStyles.borderRadius.base)};
81
- background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')};
82
- color: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};
81
+ background: ${sharedStyles.colors.background.card};
82
+ color: ${sharedStyles.colors.text.primary};
83
83
  font-size: 13px;
84
84
  font-family: ${unsafeCSS(sharedStyles.fonts.base)};
85
- transition: all 0.2s ease;
85
+ transition: all ${unsafeCSS(sharedStyles.durations.fast)} ${unsafeCSS(sharedStyles.easings.default)};
86
86
  height: 32px;
87
87
  }
88
88
 
89
89
  .search-input:focus {
90
90
  outline: none;
91
- border-color: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};
91
+ border-color: ${sharedStyles.colors.text.primary};
92
+ box-shadow: 0 0 0 2px ${cssManager.bdTheme('rgba(0, 0, 0, 0.05)', 'rgba(255, 255, 255, 0.05)')};
92
93
  }
93
94
 
94
95
  .search-input::placeholder {
95
- color: ${cssManager.bdTheme('#9ca3af', '#71717a')};
96
+ color: ${sharedStyles.colors.text.muted};
96
97
  }
97
98
 
98
99
  .filter-button {
@@ -100,27 +101,28 @@ export class UplStatuspageAssetsselector extends DeesElement {
100
101
  align-items: center;
101
102
  justify-content: center;
102
103
  padding: ${unsafeCSS(sharedStyles.spacing.xs)} ${unsafeCSS(sharedStyles.spacing.sm)};
103
- border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};
104
+ border: 1px solid ${sharedStyles.colors.border.default};
104
105
  border-radius: ${unsafeCSS(sharedStyles.borderRadius.base)};
105
- background: transparent;
106
- color: ${cssManager.bdTheme('#6b7280', '#a1a1aa')};
106
+ background: ${sharedStyles.colors.background.card};
107
+ color: ${sharedStyles.colors.text.secondary};
107
108
  cursor: pointer;
108
109
  font-size: 13px;
109
- font-weight: 400;
110
+ font-weight: 500;
110
111
  font-family: ${unsafeCSS(sharedStyles.fonts.base)};
111
- transition: all 0.2s ease;
112
+ transition: all ${unsafeCSS(sharedStyles.durations.fast)} ${unsafeCSS(sharedStyles.easings.default)};
112
113
  height: 32px;
113
114
  }
114
115
 
115
116
  .filter-button:hover {
116
- border-color: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};
117
- color: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};
117
+ border-color: ${sharedStyles.colors.border.muted};
118
+ color: ${sharedStyles.colors.text.primary};
119
+ box-shadow: ${unsafeCSS(sharedStyles.shadows.sm)};
118
120
  }
119
121
 
120
122
  .filter-button.active {
121
- background: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};
122
- color: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};
123
- border-color: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};
123
+ background: ${sharedStyles.colors.text.primary};
124
+ color: ${sharedStyles.colors.background.primary};
125
+ border-color: ${sharedStyles.colors.text.primary};
124
126
  }
125
127
 
126
128
  .selected-services {
@@ -134,56 +136,99 @@ export class UplStatuspageAssetsselector extends DeesElement {
134
136
  display: inline-flex;
135
137
  align-items: center;
136
138
  gap: ${unsafeCSS(sharedStyles.spacing.xs)};
137
- padding: ${unsafeCSS(sharedStyles.spacing.xs)} ${unsafeCSS(sharedStyles.spacing.md)};
138
- background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')};
139
- border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};
139
+ padding: 6px ${unsafeCSS(sharedStyles.spacing.md)};
140
+ background: ${sharedStyles.colors.background.card};
141
+ border: 1px solid ${sharedStyles.colors.border.default};
140
142
  border-radius: ${unsafeCSS(sharedStyles.borderRadius.full)};
141
143
  font-size: 13px;
142
- transition: all 0.2s ease;
144
+ font-weight: 500;
145
+ transition: all ${unsafeCSS(sharedStyles.durations.fast)} ${unsafeCSS(sharedStyles.easings.default)};
146
+ animation: pillFadeIn 0.3s ${unsafeCSS(sharedStyles.easings.default)} both;
147
+ }
148
+
149
+ .service-pill:nth-child(1) { animation-delay: 0ms; }
150
+ .service-pill:nth-child(2) { animation-delay: 30ms; }
151
+ .service-pill:nth-child(3) { animation-delay: 60ms; }
152
+ .service-pill:nth-child(4) { animation-delay: 90ms; }
153
+ .service-pill:nth-child(5) { animation-delay: 120ms; }
154
+
155
+ @keyframes pillFadeIn {
156
+ from {
157
+ opacity: 0;
158
+ transform: scale(0.9);
159
+ }
160
+ to {
161
+ opacity: 1;
162
+ transform: scale(1);
163
+ }
143
164
  }
144
165
 
145
166
  .service-pill:hover {
146
- border-color: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};
167
+ border-color: ${sharedStyles.colors.border.muted};
168
+ box-shadow: ${unsafeCSS(sharedStyles.shadows.sm)};
169
+ transform: translateY(-1px);
147
170
  }
148
171
 
149
172
  .service-pill .status-dot {
150
173
  width: 6px;
151
174
  height: 6px;
152
175
  border-radius: 50%;
176
+ flex-shrink: 0;
177
+ }
178
+
179
+ .service-pill .status-dot.operational {
180
+ box-shadow: 0 0 0 2px ${cssManager.bdTheme('rgba(34, 197, 94, 0.2)', 'rgba(34, 197, 94, 0.3)')};
153
181
  }
154
182
 
155
183
  .manage-button {
156
184
  display: inline-flex;
157
185
  align-items: center;
158
186
  gap: ${unsafeCSS(sharedStyles.spacing.xs)};
159
- padding: ${unsafeCSS(sharedStyles.spacing.xs)} ${unsafeCSS(sharedStyles.spacing.md)};
160
- background: transparent;
161
- border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};
187
+ padding: 6px ${unsafeCSS(sharedStyles.spacing.md)};
188
+ background: ${sharedStyles.colors.background.card};
189
+ border: 1px solid ${sharedStyles.colors.border.default};
162
190
  border-radius: ${unsafeCSS(sharedStyles.borderRadius.base)};
163
191
  font-size: 13px;
164
192
  font-weight: 500;
165
193
  cursor: pointer;
166
- transition: all 0.2s ease;
167
- color: ${cssManager.bdTheme('#6b7280', '#a1a1aa')};
194
+ transition: all ${unsafeCSS(sharedStyles.durations.fast)} ${unsafeCSS(sharedStyles.easings.default)};
195
+ color: ${sharedStyles.colors.text.secondary};
168
196
  font-family: ${unsafeCSS(sharedStyles.fonts.base)};
169
197
  }
170
198
 
171
199
  .manage-button:hover {
172
- border-color: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};
173
- color: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};
200
+ border-color: ${sharedStyles.colors.border.muted};
201
+ color: ${sharedStyles.colors.text.primary};
202
+ box-shadow: ${unsafeCSS(sharedStyles.shadows.sm)};
203
+ transform: translateY(-1px);
204
+ }
205
+
206
+ .manage-button:active {
207
+ transform: translateY(0);
174
208
  }
175
209
 
176
210
  .expandable-section {
177
211
  margin-top: ${unsafeCSS(sharedStyles.spacing.lg)};
178
212
  overflow: hidden;
179
- transition: all 0.3s ease;
213
+ animation: expandIn 0.3s ${unsafeCSS(sharedStyles.easings.default)};
214
+ }
215
+
216
+ @keyframes expandIn {
217
+ from {
218
+ opacity: 0;
219
+ transform: translateY(-8px);
220
+ }
221
+ to {
222
+ opacity: 1;
223
+ transform: translateY(0);
224
+ }
180
225
  }
181
226
 
182
227
  .expandable-content {
183
228
  padding: ${unsafeCSS(sharedStyles.spacing.lg)};
184
- background: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};
185
- border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};
186
- border-radius: ${unsafeCSS(sharedStyles.borderRadius.base)};
229
+ background: ${sharedStyles.colors.background.secondary};
230
+ border: 1px solid ${sharedStyles.colors.border.default};
231
+ border-radius: ${unsafeCSS(sharedStyles.borderRadius.lg)};
187
232
  }
188
233
 
189
234
  .assets-grid {
@@ -196,22 +241,40 @@ export class UplStatuspageAssetsselector extends DeesElement {
196
241
  .asset-card {
197
242
  display: flex;
198
243
  align-items: center;
199
- padding: ${unsafeCSS(sharedStyles.spacing.sm)} ${unsafeCSS(sharedStyles.spacing.md)};
200
- background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')};
244
+ padding: ${unsafeCSS(sharedStyles.spacing.md)};
245
+ background: ${sharedStyles.colors.background.card};
201
246
  border-radius: ${unsafeCSS(sharedStyles.borderRadius.base)};
202
247
  cursor: pointer;
203
- transition: all 0.2s ease;
204
- border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};
248
+ transition: all ${unsafeCSS(sharedStyles.durations.fast)} ${unsafeCSS(sharedStyles.easings.default)};
249
+ border: 1px solid ${sharedStyles.colors.border.default};
205
250
  gap: ${unsafeCSS(sharedStyles.spacing.sm)};
251
+ animation: cardFadeIn 0.3s ${unsafeCSS(sharedStyles.easings.default)} both;
252
+ }
253
+
254
+ @keyframes cardFadeIn {
255
+ from {
256
+ opacity: 0;
257
+ transform: translateY(8px);
258
+ }
259
+ to {
260
+ opacity: 1;
261
+ transform: translateY(0);
262
+ }
206
263
  }
207
264
 
208
265
  .asset-card:hover {
209
- border-color: ${cssManager.bdTheme('#d1d5db', '#3f3f46')};
266
+ border-color: ${sharedStyles.colors.border.muted};
267
+ box-shadow: ${unsafeCSS(sharedStyles.shadows.sm)};
268
+ transform: translateY(-2px);
210
269
  }
211
270
 
212
271
  .asset-card.selected {
213
- border-color: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};
214
- background: ${cssManager.bdTheme('#f9fafb', '#0f0f0f')};
272
+ border-color: ${sharedStyles.colors.text.primary};
273
+ background: ${sharedStyles.colors.background.secondary};
274
+ }
275
+
276
+ .asset-card.selected:hover {
277
+ box-shadow: ${unsafeCSS(sharedStyles.shadows.md)};
215
278
  }
216
279
 
217
280
  .asset-checkbox {
@@ -255,13 +318,24 @@ export class UplStatuspageAssetsselector extends DeesElement {
255
318
  width: 8px;
256
319
  height: 8px;
257
320
  border-radius: ${unsafeCSS(sharedStyles.borderRadius.full)};
321
+ flex-shrink: 0;
258
322
  }
259
323
 
260
- .status-indicator.operational, .status-dot.operational { background: #22c55e; }
261
- .status-indicator.degraded, .status-dot.degraded { background: #fbbf24; }
262
- .status-indicator.partial_outage, .status-dot.partial_outage { background: #f87171; }
263
- .status-indicator.major_outage, .status-dot.major_outage { background: #ef4444; }
264
- .status-indicator.maintenance, .status-dot.maintenance { background: #60a5fa; }
324
+ .status-indicator.operational, .status-dot.operational {
325
+ background: ${sharedStyles.colors.status.operational};
326
+ }
327
+ .status-indicator.degraded, .status-dot.degraded {
328
+ background: ${sharedStyles.colors.status.degraded};
329
+ }
330
+ .status-indicator.partial_outage, .status-dot.partial_outage {
331
+ background: ${sharedStyles.colors.status.partial};
332
+ }
333
+ .status-indicator.major_outage, .status-dot.major_outage {
334
+ background: ${sharedStyles.colors.status.major};
335
+ }
336
+ .status-indicator.maintenance, .status-dot.maintenance {
337
+ background: ${sharedStyles.colors.status.maintenance};
338
+ }
265
339
 
266
340
  .status-text {
267
341
  font-size: 12px;
@@ -144,17 +144,33 @@ export class UplStatuspageFooter extends DeesElement {
144
144
  }
145
145
 
146
146
  .footer-link {
147
- color: ${cssManager.bdTheme('#6b7280', '#a1a1aa')};
147
+ color: ${sharedStyles.colors.text.secondary};
148
148
  text-decoration: none;
149
- transition: color 0.15s ease;
149
+ transition: all ${unsafeCSS(sharedStyles.durations.fast)} ${unsafeCSS(sharedStyles.easings.default)};
150
150
  font-size: 13px;
151
151
  font-weight: 400;
152
+ position: relative;
152
153
  }
153
-
154
+
155
+ .footer-link::after {
156
+ content: '';
157
+ position: absolute;
158
+ bottom: -2px;
159
+ left: 0;
160
+ width: 0;
161
+ height: 1px;
162
+ background: ${sharedStyles.colors.text.primary};
163
+ transition: width ${unsafeCSS(sharedStyles.durations.fast)} ${unsafeCSS(sharedStyles.easings.default)};
164
+ }
165
+
154
166
  .footer-link:hover {
155
167
  color: ${sharedStyles.colors.text.primary};
156
168
  }
157
169
 
170
+ .footer-link:hover::after {
171
+ width: 100%;
172
+ }
173
+
158
174
  .footer-actions {
159
175
  display: flex;
160
176
  flex-direction: column;
@@ -164,25 +180,33 @@ export class UplStatuspageFooter extends DeesElement {
164
180
  .action-button {
165
181
  padding: 8px 16px;
166
182
  height: 36px;
167
- border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};
168
- background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')};
169
- border-radius: 6px;
183
+ border: 1px solid ${sharedStyles.colors.border.default};
184
+ background: ${sharedStyles.colors.background.card};
185
+ border-radius: ${unsafeCSS(sharedStyles.borderRadius.base)};
170
186
  cursor: pointer;
171
187
  text-align: center;
172
- transition: all 0.15s ease;
188
+ transition: all ${unsafeCSS(sharedStyles.durations.fast)} ${unsafeCSS(sharedStyles.easings.default)};
173
189
  white-space: nowrap;
174
190
  font-size: 13px;
175
- font-weight: 400;
191
+ font-weight: 500;
176
192
  color: ${sharedStyles.colors.text.primary};
177
193
  font-family: ${unsafeCSS(sharedStyles.fonts.base)};
178
194
  display: inline-flex;
179
195
  align-items: center;
180
196
  justify-content: center;
197
+ gap: 6px;
181
198
  }
182
-
199
+
183
200
  .action-button:hover {
184
- background: ${cssManager.bdTheme('#f9fafb', '#18181b')};
185
- border-color: ${cssManager.bdTheme('#d1d5db', '#3f3f46')};
201
+ background: ${sharedStyles.colors.background.secondary};
202
+ border-color: ${sharedStyles.colors.border.muted};
203
+ transform: translateY(-1px);
204
+ box-shadow: ${unsafeCSS(sharedStyles.shadows.sm)};
205
+ }
206
+
207
+ .action-button:active {
208
+ transform: translateY(0);
209
+ box-shadow: none;
186
210
  }
187
211
 
188
212
  .footer-bottom {
@@ -203,30 +227,43 @@ export class UplStatuspageFooter extends DeesElement {
203
227
 
204
228
  .social-links {
205
229
  display: flex;
206
- gap: ${unsafeCSS(sharedStyles.spacing.md)};
230
+ gap: ${unsafeCSS(sharedStyles.spacing.sm)};
207
231
  align-items: center;
208
232
  }
209
-
233
+
210
234
  .social-link {
211
235
  display: inline-flex;
212
236
  align-items: center;
213
237
  justify-content: center;
214
- width: 32px;
215
- height: 32px;
216
- border-radius: 6px;
217
- transition: all 0.15s ease;
218
- color: ${cssManager.bdTheme('#6b7280', '#a1a1aa')};
238
+ width: 34px;
239
+ height: 34px;
240
+ border-radius: ${unsafeCSS(sharedStyles.borderRadius.base)};
241
+ transition: all ${unsafeCSS(sharedStyles.durations.fast)} ${unsafeCSS(sharedStyles.easings.default)};
242
+ color: ${sharedStyles.colors.text.muted};
243
+ border: 1px solid transparent;
219
244
  }
220
-
245
+
221
246
  .social-link:hover {
222
247
  color: ${sharedStyles.colors.text.primary};
223
- background: ${cssManager.bdTheme('#f3f4f6', '#27272a')};
248
+ background: ${sharedStyles.colors.background.secondary};
249
+ border-color: ${sharedStyles.colors.border.default};
250
+ transform: translateY(-2px);
251
+ box-shadow: ${unsafeCSS(sharedStyles.shadows.sm)};
224
252
  }
225
-
253
+
254
+ .social-link:active {
255
+ transform: translateY(0);
256
+ }
257
+
226
258
  .social-link svg {
227
259
  width: 16px;
228
260
  height: 16px;
229
261
  fill: currentColor;
262
+ transition: transform ${unsafeCSS(sharedStyles.durations.fast)} ${unsafeCSS(sharedStyles.easings.default)};
263
+ }
264
+
265
+ .social-link:hover svg {
266
+ transform: scale(1.1);
230
267
  }
231
268
 
232
269
  .copyright {
@@ -241,20 +278,37 @@ export class UplStatuspageFooter extends DeesElement {
241
278
 
242
279
  .powered-by {
243
280
  font-size: 12px;
244
- color: ${cssManager.bdTheme('#9ca3af', '#71717a')};
281
+ color: ${sharedStyles.colors.text.muted};
245
282
  text-align: right;
246
283
  }
247
-
284
+
248
285
  .powered-by a {
249
- color: ${cssManager.bdTheme('#6b7280', '#a1a1aa')};
286
+ color: ${sharedStyles.colors.text.secondary};
250
287
  text-decoration: none;
251
- transition: color 0.15s ease;
288
+ transition: all ${unsafeCSS(sharedStyles.durations.fast)} ${unsafeCSS(sharedStyles.easings.default)};
289
+ font-weight: 500;
290
+ position: relative;
252
291
  }
253
-
292
+
293
+ .powered-by a::after {
294
+ content: '';
295
+ position: absolute;
296
+ bottom: -1px;
297
+ left: 0;
298
+ width: 0;
299
+ height: 1px;
300
+ background: ${sharedStyles.colors.text.primary};
301
+ transition: width ${unsafeCSS(sharedStyles.durations.fast)} ${unsafeCSS(sharedStyles.easings.default)};
302
+ }
303
+
254
304
  .powered-by a:hover {
255
305
  color: ${sharedStyles.colors.text.primary};
256
306
  }
257
307
 
308
+ .powered-by a:hover::after {
309
+ width: 100%;
310
+ }
311
+
258
312
  .status-update {
259
313
  padding: 12px 16px;
260
314
  background: ${cssManager.bdTheme('#f9fafb', '#18181b')};