@uptime.link/statuspage 1.0.73 → 1.1.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 (96) hide show
  1. package/dist_bundle/bundle.js +4096 -504
  2. package/dist_bundle/bundle.js.map +4 -4
  3. package/dist_ts_web/00_commitinfo_data.js +2 -2
  4. package/dist_ts_web/elements/index.d.ts +3 -0
  5. package/dist_ts_web/elements/index.js +6 -1
  6. package/dist_ts_web/elements/internal/uplinternal-miniheading.d.ts +1 -0
  7. package/dist_ts_web/elements/internal/uplinternal-miniheading.js +78 -28
  8. package/dist_ts_web/elements/upl-statuspage-assetsselector.d.ts +14 -0
  9. package/dist_ts_web/elements/upl-statuspage-assetsselector.demo.d.ts +1 -0
  10. package/dist_ts_web/elements/upl-statuspage-assetsselector.demo.js +575 -0
  11. package/dist_ts_web/elements/upl-statuspage-assetsselector.js +605 -43
  12. package/dist_ts_web/elements/upl-statuspage-footer.d.ts +46 -2
  13. package/dist_ts_web/elements/upl-statuspage-footer.demo.d.ts +1 -0
  14. package/dist_ts_web/elements/upl-statuspage-footer.demo.js +679 -0
  15. package/dist_ts_web/elements/upl-statuspage-footer.js +792 -61
  16. package/dist_ts_web/elements/upl-statuspage-header.d.ts +5 -1
  17. package/dist_ts_web/elements/upl-statuspage-header.demo.d.ts +1 -0
  18. package/dist_ts_web/elements/upl-statuspage-header.demo.js +220 -0
  19. package/dist_ts_web/elements/upl-statuspage-header.js +313 -86
  20. package/dist_ts_web/elements/upl-statuspage-incidents.d.ts +22 -4
  21. package/dist_ts_web/elements/upl-statuspage-incidents.demo.d.ts +1 -0
  22. package/dist_ts_web/elements/upl-statuspage-incidents.demo.js +1147 -0
  23. package/dist_ts_web/elements/upl-statuspage-incidents.js +750 -74
  24. package/dist_ts_web/elements/upl-statuspage-pagetitle.d.ts +15 -0
  25. package/dist_ts_web/elements/upl-statuspage-pagetitle.demo.d.ts +1 -0
  26. package/dist_ts_web/elements/upl-statuspage-pagetitle.demo.js +25 -0
  27. package/dist_ts_web/elements/upl-statuspage-pagetitle.js +148 -0
  28. package/dist_ts_web/elements/upl-statuspage-statsgrid.d.ts +23 -0
  29. package/dist_ts_web/elements/upl-statuspage-statsgrid.demo.d.ts +1 -0
  30. package/dist_ts_web/elements/upl-statuspage-statsgrid.demo.js +295 -0
  31. package/dist_ts_web/elements/upl-statuspage-statsgrid.js +374 -0
  32. package/dist_ts_web/elements/upl-statuspage-statusbar.d.ts +4 -0
  33. package/dist_ts_web/elements/upl-statuspage-statusbar.demo.d.ts +1 -0
  34. package/dist_ts_web/elements/upl-statuspage-statusbar.demo.js +365 -0
  35. package/dist_ts_web/elements/upl-statuspage-statusbar.js +357 -44
  36. package/dist_ts_web/elements/upl-statuspage-statusdetails.d.ts +14 -0
  37. package/dist_ts_web/elements/upl-statuspage-statusdetails.demo.d.ts +1 -0
  38. package/dist_ts_web/elements/upl-statuspage-statusdetails.demo.js +706 -0
  39. package/dist_ts_web/elements/upl-statuspage-statusdetails.js +373 -63
  40. package/dist_ts_web/elements/upl-statuspage-statusmonth.d.ts +15 -0
  41. package/dist_ts_web/elements/upl-statuspage-statusmonth.demo.d.ts +1 -0
  42. package/dist_ts_web/elements/upl-statuspage-statusmonth.demo.js +798 -0
  43. package/dist_ts_web/elements/upl-statuspage-statusmonth.js +474 -100
  44. package/dist_ts_web/interfaces/index.d.ts +84 -0
  45. package/dist_ts_web/interfaces/index.js +4 -0
  46. package/dist_ts_web/pages/index.d.ts +4 -1
  47. package/dist_ts_web/pages/index.js +5 -2
  48. package/dist_ts_web/pages/statuspage-allgreen.d.ts +1 -0
  49. package/dist_ts_web/pages/statuspage-allgreen.js +386 -0
  50. package/dist_ts_web/pages/statuspage-demo.d.ts +1 -0
  51. package/dist_ts_web/pages/statuspage-demo.js +616 -0
  52. package/dist_ts_web/pages/statuspage-maintenance.d.ts +1 -0
  53. package/dist_ts_web/pages/statuspage-maintenance.js +544 -0
  54. package/dist_ts_web/pages/statuspage-outage.d.ts +1 -0
  55. package/dist_ts_web/pages/statuspage-outage.js +543 -0
  56. package/dist_ts_web/styles/shared.styles.d.ts +80 -0
  57. package/dist_ts_web/styles/shared.styles.js +351 -0
  58. package/dist_watch/bundle.js +54534 -26433
  59. package/dist_watch/bundle.js.map +4 -4
  60. package/dist_watch/index.html +3 -10
  61. package/npmextra.json +9 -3
  62. package/package.json +19 -19
  63. package/readme.hints.md +292 -0
  64. package/readme.md +326 -149
  65. package/readme.plan.md +261 -0
  66. package/ts_web/00_commitinfo_data.ts +1 -1
  67. package/ts_web/elements/index.ts +6 -0
  68. package/ts_web/elements/internal/uplinternal-miniheading.ts +24 -17
  69. package/ts_web/elements/upl-statuspage-assetsselector.demo.ts +607 -0
  70. package/ts_web/elements/upl-statuspage-assetsselector.ts +526 -18
  71. package/ts_web/elements/upl-statuspage-footer.demo.ts +744 -0
  72. package/ts_web/elements/upl-statuspage-footer.ts +608 -30
  73. package/ts_web/elements/upl-statuspage-header.demo.ts +241 -0
  74. package/ts_web/elements/upl-statuspage-header.ts +220 -52
  75. package/ts_web/elements/upl-statuspage-incidents.demo.ts +1216 -0
  76. package/ts_web/elements/upl-statuspage-incidents.ts +649 -26
  77. package/ts_web/elements/upl-statuspage-pagetitle.demo.ts +25 -0
  78. package/ts_web/elements/upl-statuspage-pagetitle.ts +89 -0
  79. package/ts_web/elements/upl-statuspage-statsgrid.demo.ts +315 -0
  80. package/ts_web/elements/upl-statuspage-statsgrid.ts +306 -0
  81. package/ts_web/elements/upl-statuspage-statusbar.demo.ts +393 -0
  82. package/ts_web/elements/upl-statuspage-statusbar.ts +281 -20
  83. package/ts_web/elements/upl-statuspage-statusdetails.demo.ts +754 -0
  84. package/ts_web/elements/upl-statuspage-statusdetails.ts +297 -38
  85. package/ts_web/elements/upl-statuspage-statusmonth.demo.ts +876 -0
  86. package/ts_web/elements/upl-statuspage-statusmonth.ts +397 -76
  87. package/ts_web/interfaces/index.ts +95 -0
  88. package/ts_web/pages/index.ts +4 -1
  89. package/ts_web/pages/statuspage-allgreen.ts +412 -0
  90. package/ts_web/pages/statuspage-demo.ts +653 -0
  91. package/ts_web/pages/statuspage-maintenance.ts +570 -0
  92. package/ts_web/pages/statuspage-outage.ts +568 -0
  93. package/ts_web/styles/shared.styles.ts +367 -0
  94. package/dist_ts_web/pages/page1.d.ts +0 -1
  95. package/dist_ts_web/pages/page1.js +0 -11
  96. package/ts_web/pages/page1.ts +0 -11
@@ -0,0 +1,543 @@
1
+ import { html, cssManager } from "@design.estate/dees-element";
2
+ export const statuspageOutage = () => html `
3
+ <style>
4
+ .demo-page-wrapper {
5
+ min-height: 100vh;
6
+ background: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};
7
+ }
8
+ .demo-page-wrapper > dees-demowrapper {
9
+ display: flex;
10
+ flex-direction: column;
11
+ gap: 24px;
12
+ }
13
+ </style>
14
+
15
+ <div class="demo-page-wrapper">
16
+
17
+ <dees-demowrapper
18
+ .runAfterRender=${async (wrapperElement) => {
19
+ const header = wrapperElement.querySelector('upl-statuspage-header');
20
+ const statusBar = wrapperElement.querySelector('upl-statuspage-statusbar');
21
+ const statsGrid = wrapperElement.querySelector('upl-statuspage-statsgrid');
22
+ const assetsSelector = wrapperElement.querySelector('upl-statuspage-assetsselector');
23
+ const statusDetails = wrapperElement.querySelector('upl-statuspage-statusdetails');
24
+ const statusMonth = wrapperElement.querySelector('upl-statuspage-statusmonth');
25
+ const incidents = wrapperElement.querySelector('upl-statuspage-incidents');
26
+ const footer = wrapperElement.querySelector('upl-statuspage-footer');
27
+ // Configure Header
28
+ header.pageTitle = 'DataStream';
29
+ header.showReportButton = true;
30
+ header.showSubscribeButton = true;
31
+ header.logoUrl = 'https://via.placeholder.com/150x50/F44336/ffffff?text=DS';
32
+ // Configure Overall Status - Major Outage
33
+ statusBar.overallStatus = {
34
+ status: 'major_outage',
35
+ message: 'Major service disruption affecting multiple regions',
36
+ lastUpdated: Date.now(),
37
+ affectedServices: 8,
38
+ totalServices: 15
39
+ };
40
+ // Configure Services - Multiple Outages
41
+ const services = [
42
+ // Core Services - Major Outage
43
+ {
44
+ id: 'api-gateway',
45
+ name: 'api-gateway',
46
+ displayName: 'API Gateway',
47
+ description: 'Main API endpoint',
48
+ currentStatus: 'major_outage',
49
+ lastChecked: Date.now(),
50
+ uptime30d: 85.2,
51
+ uptime90d: 92.5,
52
+ responseTime: 2500,
53
+ category: 'Core Infrastructure',
54
+ selected: true
55
+ },
56
+ {
57
+ id: 'auth-service',
58
+ name: 'auth-service',
59
+ displayName: 'Authentication',
60
+ description: 'Login and authorization',
61
+ currentStatus: 'major_outage',
62
+ lastChecked: Date.now(),
63
+ uptime30d: 84.8,
64
+ uptime90d: 91.2,
65
+ responseTime: 3200,
66
+ category: 'Core Infrastructure',
67
+ selected: true
68
+ },
69
+ {
70
+ id: 'web-portal',
71
+ name: 'web-portal',
72
+ displayName: 'Web Portal',
73
+ description: 'Customer web interface',
74
+ currentStatus: 'partial_outage',
75
+ lastChecked: Date.now(),
76
+ uptime30d: 88.5,
77
+ uptime90d: 94.2,
78
+ responseTime: 1800,
79
+ category: 'Frontend',
80
+ selected: true
81
+ },
82
+ // Database Services - Critical
83
+ {
84
+ id: 'primary-db',
85
+ name: 'primary-db',
86
+ displayName: 'Primary Database',
87
+ description: 'Main data storage',
88
+ currentStatus: 'major_outage',
89
+ lastChecked: Date.now(),
90
+ uptime30d: 82.1,
91
+ uptime90d: 90.5,
92
+ responseTime: 5000,
93
+ category: 'Data Layer',
94
+ selected: true
95
+ },
96
+ {
97
+ id: 'replica-db',
98
+ name: 'replica-db',
99
+ displayName: 'Database Replicas',
100
+ description: 'Read replicas',
101
+ currentStatus: 'partial_outage',
102
+ lastChecked: Date.now(),
103
+ uptime30d: 86.7,
104
+ uptime90d: 93.1,
105
+ responseTime: 2200,
106
+ category: 'Data Layer',
107
+ selected: true
108
+ },
109
+ {
110
+ id: 'cache-layer',
111
+ name: 'cache-layer',
112
+ displayName: 'Cache Layer',
113
+ description: 'Redis cache',
114
+ currentStatus: 'degraded',
115
+ lastChecked: Date.now(),
116
+ uptime30d: 92.3,
117
+ uptime90d: 95.8,
118
+ responseTime: 450,
119
+ category: 'Data Layer',
120
+ selected: true
121
+ },
122
+ // Regional Services
123
+ {
124
+ id: 'us-east',
125
+ name: 'us-east',
126
+ displayName: 'US East Region',
127
+ description: 'Primary US datacenter',
128
+ currentStatus: 'major_outage',
129
+ lastChecked: Date.now(),
130
+ uptime30d: 81.5,
131
+ uptime90d: 89.2,
132
+ responseTime: 4500,
133
+ category: 'Regional',
134
+ selected: true
135
+ },
136
+ {
137
+ id: 'us-west',
138
+ name: 'us-west',
139
+ displayName: 'US West Region',
140
+ description: 'Secondary US datacenter',
141
+ currentStatus: 'degraded',
142
+ lastChecked: Date.now(),
143
+ uptime30d: 94.2,
144
+ uptime90d: 96.8,
145
+ responseTime: 180,
146
+ category: 'Regional',
147
+ selected: true
148
+ },
149
+ {
150
+ id: 'eu-central',
151
+ name: 'eu-central',
152
+ displayName: 'EU Central Region',
153
+ description: 'European datacenter',
154
+ currentStatus: 'major_outage',
155
+ lastChecked: Date.now(),
156
+ uptime30d: 83.7,
157
+ uptime90d: 91.2,
158
+ responseTime: 3800,
159
+ category: 'Regional',
160
+ selected: true
161
+ },
162
+ // Some operational services
163
+ {
164
+ id: 'status-page',
165
+ name: 'status-page',
166
+ displayName: 'Status Page',
167
+ description: 'This status page',
168
+ currentStatus: 'operational',
169
+ lastChecked: Date.now(),
170
+ uptime30d: 99.9,
171
+ uptime90d: 99.8,
172
+ responseTime: 45,
173
+ category: 'Support',
174
+ selected: false
175
+ },
176
+ {
177
+ id: 'support-portal',
178
+ name: 'support-portal',
179
+ displayName: 'Support Portal',
180
+ description: 'Customer support system',
181
+ currentStatus: 'operational',
182
+ lastChecked: Date.now(),
183
+ uptime30d: 98.5,
184
+ uptime90d: 99.1,
185
+ responseTime: 120,
186
+ category: 'Support',
187
+ selected: false
188
+ },
189
+ // Degraded services
190
+ {
191
+ id: 'email-service',
192
+ name: 'email-service',
193
+ displayName: 'Email Notifications',
194
+ description: 'Automated emails',
195
+ currentStatus: 'degraded',
196
+ lastChecked: Date.now(),
197
+ uptime30d: 91.2,
198
+ uptime90d: 94.5,
199
+ responseTime: 850,
200
+ category: 'Communication',
201
+ selected: true
202
+ },
203
+ {
204
+ id: 'analytics',
205
+ name: 'analytics',
206
+ displayName: 'Analytics Platform',
207
+ description: 'Usage analytics',
208
+ currentStatus: 'partial_outage',
209
+ lastChecked: Date.now(),
210
+ uptime30d: 87.3,
211
+ uptime90d: 92.8,
212
+ responseTime: 1200,
213
+ category: 'Services',
214
+ selected: false
215
+ },
216
+ {
217
+ id: 'backup-system',
218
+ name: 'backup-system',
219
+ displayName: 'Backup System',
220
+ description: 'Data backups',
221
+ currentStatus: 'degraded',
222
+ lastChecked: Date.now(),
223
+ uptime30d: 95.2,
224
+ uptime90d: 97.1,
225
+ responseTime: 320,
226
+ category: 'Services',
227
+ selected: false
228
+ },
229
+ {
230
+ id: 'monitoring',
231
+ name: 'monitoring',
232
+ displayName: 'Monitoring System',
233
+ description: 'Infrastructure monitoring',
234
+ currentStatus: 'operational',
235
+ lastChecked: Date.now(),
236
+ uptime30d: 98.7,
237
+ uptime90d: 99.2,
238
+ responseTime: 65,
239
+ category: 'Services',
240
+ selected: true
241
+ }
242
+ ];
243
+ assetsSelector.services = services;
244
+ // Configure Stats Grid - Major outage metrics
245
+ const operationalCount = services.filter(s => s.currentStatus === 'operational').length;
246
+ const avgResponseTime = services.reduce((sum, s) => sum + (s.responseTime || 0), 0) / services.length;
247
+ const avgUptime = services.reduce((sum, s) => sum + (s.uptime30d || 0), 0) / services.length;
248
+ statsGrid.currentStatus = 'major_outage';
249
+ statsGrid.uptime = avgUptime;
250
+ statsGrid.avgResponseTime = Math.round(avgResponseTime);
251
+ statsGrid.totalIncidents = 15; // High number of incidents
252
+ statsGrid.affectedServices = services.filter(s => s.currentStatus !== 'operational').length;
253
+ statsGrid.totalServices = services.length;
254
+ statsGrid.timePeriod = '30 days';
255
+ // Configure Status Details - Showing the outage timeline
256
+ const generateStatusDetails = () => {
257
+ const details = [];
258
+ const now = new Date();
259
+ for (let i = 47; i >= 0; i--) {
260
+ const date = new Date(now);
261
+ date.setMinutes(0, 0, 0);
262
+ date.setHours(date.getHours() - i);
263
+ let status = 'operational';
264
+ let value = 100;
265
+ let responseTime = 30;
266
+ // Outage started 8 hours ago
267
+ if (i <= 8) {
268
+ status = 'major_outage';
269
+ value = 15 + Math.random() * 20;
270
+ responseTime = 2000 + Math.random() * 3000;
271
+ }
272
+ else if (i <= 12) {
273
+ // Degradation before the outage
274
+ status = 'degraded';
275
+ value = 70 + Math.random() * 20;
276
+ responseTime = 200 + Math.random() * 800;
277
+ }
278
+ else if (i <= 24) {
279
+ // Some issues yesterday
280
+ if (Math.random() > 0.7) {
281
+ status = 'degraded';
282
+ value = 85 + Math.random() * 10;
283
+ responseTime = 100 + Math.random() * 200;
284
+ }
285
+ }
286
+ details.push({
287
+ timestamp: date.getTime(),
288
+ status,
289
+ responseTime
290
+ });
291
+ }
292
+ return details;
293
+ };
294
+ statusDetails.dataPoints = generateStatusDetails();
295
+ statusDetails.serviceId = 'primary-db';
296
+ statusDetails.serviceName = 'Primary Database';
297
+ // Configure Monthly Status - Poor performance
298
+ const generateMonthlyData = () => {
299
+ const months = [];
300
+ const now = new Date();
301
+ for (let m = 4; m >= 0; m--) {
302
+ const monthDate = new Date(now.getFullYear(), now.getMonth() - m, 1);
303
+ const daysInMonth = new Date(monthDate.getFullYear(), monthDate.getMonth() + 1, 0).getDate();
304
+ const monthKey = monthDate.toISOString().slice(0, 7);
305
+ const days = [];
306
+ let totalUptime = 0;
307
+ let incidents = 0;
308
+ for (let d = 1; d <= daysInMonth; d++) {
309
+ const dayDate = new Date(monthDate.getFullYear(), monthDate.getMonth(), d);
310
+ const isToday = dayDate.toDateString() === now.toDateString();
311
+ const isFuture = dayDate > now;
312
+ if (isFuture)
313
+ continue;
314
+ let status = 'operational';
315
+ let uptime = 100;
316
+ let dayIncidents = 0;
317
+ // Today - major outage
318
+ if (isToday) {
319
+ status = 'major_outage';
320
+ uptime = 45;
321
+ dayIncidents = 3;
322
+ }
323
+ else if (Math.random() > 0.7) {
324
+ // Frequent issues
325
+ if (Math.random() > 0.5) {
326
+ status = 'partial_outage';
327
+ uptime = 75 + Math.random() * 15;
328
+ dayIncidents = 2;
329
+ }
330
+ else {
331
+ status = 'degraded';
332
+ uptime = 85 + Math.random() * 10;
333
+ dayIncidents = 1;
334
+ }
335
+ }
336
+ days.push({
337
+ date: dayDate.toISOString().slice(0, 10),
338
+ status,
339
+ uptime,
340
+ incidents: dayIncidents,
341
+ totalDowntime: Math.round((100 - uptime) * 14.4)
342
+ });
343
+ totalUptime += uptime;
344
+ incidents += dayIncidents;
345
+ }
346
+ months.push({
347
+ month: monthKey,
348
+ days,
349
+ overallUptime: totalUptime / days.length,
350
+ totalIncidents: incidents
351
+ });
352
+ }
353
+ return months;
354
+ };
355
+ statusMonth.monthlyData = generateMonthlyData();
356
+ statusMonth.serviceId = 'all-services';
357
+ statusMonth.serviceName = 'All Services';
358
+ // Configure Incidents - Multiple current incidents
359
+ const currentIncidents = [
360
+ {
361
+ id: 'inc-2024-crit-001',
362
+ title: 'Complete Database Failure in Multiple Regions',
363
+ impact: 'Users unable to access any services. Complete system outage.',
364
+ severity: 'critical',
365
+ status: 'investigating',
366
+ startTime: Date.now() - 8 * 60 * 60 * 1000,
367
+ affectedServices: ['Primary Database', 'Database Replicas', 'API Gateway', 'Authentication', 'US East Region', 'EU Central Region'],
368
+ updates: [
369
+ {
370
+ id: 'update-1',
371
+ timestamp: Date.now() - 8 * 60 * 60 * 1000,
372
+ status: 'investigating',
373
+ message: 'Multiple alerts triggered. Complete service failure detected across regions.',
374
+ author: 'Automated Monitoring'
375
+ },
376
+ {
377
+ id: 'update-2',
378
+ timestamp: Date.now() - 7.5 * 60 * 60 * 1000,
379
+ status: 'investigating',
380
+ message: 'All hands on deck. Engineering teams mobilized. Initial investigation points to cascading database failure.',
381
+ author: 'Incident Commander'
382
+ },
383
+ {
384
+ id: 'update-3',
385
+ timestamp: Date.now() - 6 * 60 * 60 * 1000,
386
+ status: 'identified',
387
+ message: 'Root cause identified: Corrupted replication logs causing database cluster failures. Working on recovery.',
388
+ author: 'Database Team'
389
+ },
390
+ {
391
+ id: 'update-4',
392
+ timestamp: Date.now() - 4 * 60 * 60 * 1000,
393
+ status: 'monitoring',
394
+ message: 'Attempting to restore from backups. This is a complex operation and will take time.',
395
+ author: 'Infrastructure Team'
396
+ },
397
+ {
398
+ id: 'update-5',
399
+ timestamp: Date.now() - 2 * 60 * 60 * 1000,
400
+ status: 'monitoring',
401
+ message: 'Partial recovery in progress. Some read-only operations may become available soon.',
402
+ author: 'Database Team'
403
+ },
404
+ {
405
+ id: 'update-6',
406
+ timestamp: Date.now() - 30 * 60 * 1000,
407
+ status: 'monitoring',
408
+ message: 'Critical update: Recovery is taking longer than expected. We are exploring all options including failover to disaster recovery site.',
409
+ author: 'CTO'
410
+ }
411
+ ]
412
+ },
413
+ {
414
+ id: 'inc-2024-maj-002',
415
+ title: 'API Gateway Overload',
416
+ impact: 'API requests failing or timing out',
417
+ severity: 'major',
418
+ status: 'monitoring',
419
+ startTime: Date.now() - 6 * 60 * 60 * 1000,
420
+ affectedServices: ['API Gateway', 'Web Portal'],
421
+ updates: [
422
+ {
423
+ id: 'update-7',
424
+ timestamp: Date.now() - 6 * 60 * 60 * 1000,
425
+ status: 'investigating',
426
+ message: 'API Gateway experiencing extreme load due to retry storms from database failures.',
427
+ author: 'API Team'
428
+ },
429
+ {
430
+ id: 'update-8',
431
+ timestamp: Date.now() - 5 * 60 * 60 * 1000,
432
+ status: 'identified',
433
+ message: 'Implementing rate limiting and circuit breakers to prevent cascade failures.',
434
+ author: 'API Team'
435
+ },
436
+ {
437
+ id: 'update-9',
438
+ timestamp: Date.now() - 3 * 60 * 60 * 1000,
439
+ status: 'monitoring',
440
+ message: 'Rate limiting in place. Load is stabilizing but service remains degraded.',
441
+ author: 'API Team'
442
+ }
443
+ ]
444
+ },
445
+ {
446
+ id: 'inc-2024-maj-003',
447
+ title: 'Email Service Delays',
448
+ impact: 'Notification emails delayed by up to 2 hours',
449
+ severity: 'major',
450
+ status: 'monitoring',
451
+ startTime: Date.now() - 5 * 60 * 60 * 1000,
452
+ affectedServices: ['Email Notifications'],
453
+ updates: [
454
+ {
455
+ id: 'update-10',
456
+ timestamp: Date.now() - 5 * 60 * 60 * 1000,
457
+ status: 'investigating',
458
+ message: 'Email queue backing up due to system outages.',
459
+ author: 'Communications Team'
460
+ },
461
+ {
462
+ id: 'update-11',
463
+ timestamp: Date.now() - 3 * 60 * 60 * 1000,
464
+ status: 'monitoring',
465
+ message: 'Processing backlog slowly. Prioritizing critical notifications.',
466
+ author: 'Communications Team'
467
+ }
468
+ ]
469
+ }
470
+ ];
471
+ const pastIncidents = [
472
+ {
473
+ id: 'inc-2024-prev-001',
474
+ title: 'Previous Major Outage',
475
+ impact: 'Services unavailable for 4 hours',
476
+ severity: 'critical',
477
+ status: 'resolved',
478
+ startTime: Date.now() - 30 * 24 * 60 * 60 * 1000,
479
+ endTime: Date.now() - 30 * 24 * 60 * 60 * 1000 + 4 * 60 * 60 * 1000,
480
+ affectedServices: ['All Services'],
481
+ rootCause: 'Power failure at primary datacenter with UPS failure.',
482
+ resolution: 'Power restored. UPS systems replaced and tested.',
483
+ updates: [
484
+ {
485
+ id: 'update-12',
486
+ timestamp: Date.now() - 30 * 24 * 60 * 60 * 1000,
487
+ status: 'investigating',
488
+ message: 'Complete datacenter power loss.',
489
+ author: 'Operations'
490
+ },
491
+ {
492
+ id: 'update-13',
493
+ timestamp: Date.now() - 30 * 24 * 60 * 60 * 1000 + 4 * 60 * 60 * 1000,
494
+ status: 'resolved',
495
+ message: 'Power restored. Services coming back online.',
496
+ author: 'Operations'
497
+ },
498
+ {
499
+ id: 'update-14',
500
+ timestamp: Date.now() - 29 * 24 * 60 * 60 * 1000,
501
+ status: 'postmortem',
502
+ message: 'Postmortem published. Multiple redundancy improvements implemented.',
503
+ author: 'Engineering'
504
+ }
505
+ ]
506
+ }
507
+ ];
508
+ incidents.currentIncidents = currentIncidents;
509
+ incidents.pastIncidents = pastIncidents;
510
+ // Configure Footer
511
+ footer.companyName = 'DataStream Platform';
512
+ footer.legalUrl = 'https://datastream.example.com/legal';
513
+ footer.supportEmail = 'emergency@datastream.example.com';
514
+ footer.statusPageUrl = 'https://status.datastream.example.com';
515
+ footer.lastUpdated = Date.now();
516
+ footer.currentYear = new Date().getFullYear();
517
+ footer.socialLinks = [
518
+ { platform: 'twitter', url: 'https://twitter.com/datastream' }
519
+ ];
520
+ footer.rssFeedUrl = 'https://status.datastream.example.com/rss';
521
+ footer.apiStatusUrl = 'https://api.datastream.example.com/v1/status';
522
+ footer.enableSubscribe = true;
523
+ footer.enableReportIssue = true;
524
+ footer.subscriberCount = 15234;
525
+ footer.errorMessage = 'Critical: Multiple services experiencing major outages';
526
+ footer.additionalLinks = [
527
+ { label: 'Emergency Support', url: 'tel:+1-800-HELP-NOW' },
528
+ { label: 'Incident Updates', url: 'https://datastream.example.com/incidents' }
529
+ ];
530
+ }}
531
+ >
532
+ <upl-statuspage-header></upl-statuspage-header>
533
+ <upl-statuspage-statusbar></upl-statuspage-statusbar>
534
+ <upl-statuspage-statsgrid></upl-statuspage-statsgrid>
535
+ <upl-statuspage-assetsselector></upl-statuspage-assetsselector>
536
+ <upl-statuspage-statusdetails></upl-statuspage-statusdetails>
537
+ <upl-statuspage-statusmonth></upl-statuspage-statusmonth>
538
+ <upl-statuspage-incidents></upl-statuspage-incidents>
539
+ <upl-statuspage-footer></upl-statuspage-footer>
540
+ </dees-demowrapper>
541
+ </div>
542
+ `;
543
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzcGFnZS1vdXRhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvcGFnZXMvc3RhdHVzcGFnZS1vdXRhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUcvRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUE7Ozs7b0JBSXRCLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7Ozs7Ozs7Ozs7O3NCQVl0QyxLQUFLLEVBQUUsY0FBbUIsRUFBRSxFQUFFO0lBQzlDLE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQVEsQ0FBQztJQUM1RSxNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDLDBCQUEwQixDQUFRLENBQUM7SUFDbEYsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBUSxDQUFDO0lBQ2xGLE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUMsK0JBQStCLENBQVEsQ0FBQztJQUM1RixNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDLDhCQUE4QixDQUFRLENBQUM7SUFDMUYsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyw0QkFBNEIsQ0FBUSxDQUFDO0lBQ3RGLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUMsMEJBQTBCLENBQVEsQ0FBQztJQUNsRixNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFRLENBQUM7SUFFNUUsbUJBQW1CO0lBQ25CLE1BQU0sQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDO0lBQ2hDLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDL0IsTUFB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
@@ -0,0 +1,80 @@
1
+ export declare const fonts: {
2
+ base: string;
3
+ mono: string;
4
+ };
5
+ export declare const colors: {
6
+ background: {
7
+ primary: import("@design.estate/dees-element").CSSResult;
8
+ secondary: import("@design.estate/dees-element").CSSResult;
9
+ muted: import("@design.estate/dees-element").CSSResult;
10
+ card: import("@design.estate/dees-element").CSSResult;
11
+ elevated: import("@design.estate/dees-element").CSSResult;
12
+ };
13
+ border: {
14
+ default: import("@design.estate/dees-element").CSSResult;
15
+ muted: import("@design.estate/dees-element").CSSResult;
16
+ subtle: import("@design.estate/dees-element").CSSResult;
17
+ };
18
+ text: {
19
+ primary: import("@design.estate/dees-element").CSSResult;
20
+ secondary: import("@design.estate/dees-element").CSSResult;
21
+ muted: import("@design.estate/dees-element").CSSResult;
22
+ };
23
+ status: {
24
+ operational: import("@design.estate/dees-element").CSSResult;
25
+ degraded: import("@design.estate/dees-element").CSSResult;
26
+ partial: import("@design.estate/dees-element").CSSResult;
27
+ major: import("@design.estate/dees-element").CSSResult;
28
+ maintenance: import("@design.estate/dees-element").CSSResult;
29
+ };
30
+ accent: {
31
+ primary: import("@design.estate/dees-element").CSSResult;
32
+ hover: import("@design.estate/dees-element").CSSResult;
33
+ focus: import("@design.estate/dees-element").CSSResult;
34
+ };
35
+ };
36
+ export declare const shadows: {
37
+ xs: string;
38
+ sm: string;
39
+ base: string;
40
+ md: string;
41
+ lg: string;
42
+ xl: string;
43
+ inner: string;
44
+ glow: string;
45
+ };
46
+ export declare const borderRadius: {
47
+ xs: string;
48
+ sm: string;
49
+ base: string;
50
+ md: string;
51
+ lg: string;
52
+ xl: string;
53
+ '2xl': string;
54
+ full: string;
55
+ };
56
+ export declare const spacing: {
57
+ xs: string;
58
+ sm: string;
59
+ md: string;
60
+ lg: string;
61
+ xl: string;
62
+ '2xl': string;
63
+ '3xl': string;
64
+ '4xl': string;
65
+ };
66
+ export declare const easings: {
67
+ default: string;
68
+ smooth: string;
69
+ bounce: string;
70
+ snappy: string;
71
+ };
72
+ export declare const durations: {
73
+ fast: string;
74
+ normal: string;
75
+ slow: string;
76
+ slower: string;
77
+ };
78
+ export declare const commonStyles: import("@design.estate/dees-element").CSSResult;
79
+ export declare const getStatusColor: (status: string) => import("@design.estate/dees-element").CSSResult;
80
+ export declare const getStatusIcon: (status: string) => "!" | "?" | "✓" | "⚠" | "✕" | "🔧";