@uptime.link/statuspage 1.0.74 → 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.
Files changed (96) hide show
  1. package/dist_bundle/bundle.js +5019 -519
  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 +679 -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 +846 -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 +373 -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 +937 -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 +549 -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 +408 -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 +397 -62
  40. package/dist_ts_web/elements/upl-statuspage-statusmonth.d.ts +17 -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 +662 -103
  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 +102 -0
  57. package/dist_ts_web/styles/shared.styles.js +494 -0
  58. package/dist_watch/bundle.js +52265 -32033
  59. package/dist_watch/bundle.js.map +4 -4
  60. package/dist_watch/index.html +1 -0
  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 +600 -18
  71. package/ts_web/elements/upl-statuspage-footer.demo.ts +744 -0
  72. package/ts_web/elements/upl-statuspage-footer.ts +662 -30
  73. package/ts_web/elements/upl-statuspage-header.demo.ts +241 -0
  74. package/ts_web/elements/upl-statuspage-header.ts +289 -52
  75. package/ts_web/elements/upl-statuspage-incidents.demo.ts +1216 -0
  76. package/ts_web/elements/upl-statuspage-incidents.ts +840 -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 +478 -0
  81. package/ts_web/elements/upl-statuspage-statusbar.demo.ts +393 -0
  82. package/ts_web/elements/upl-statuspage-statusbar.ts +332 -20
  83. package/ts_web/elements/upl-statuspage-statusdetails.demo.ts +754 -0
  84. package/ts_web/elements/upl-statuspage-statusdetails.ts +321 -37
  85. package/ts_web/elements/upl-statuspage-statusmonth.demo.ts +876 -0
  86. package/ts_web/elements/upl-statuspage-statusmonth.ts +584 -79
  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 +531 -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
package/readme.plan.md ADDED
@@ -0,0 +1,261 @@
1
+ # Production-Ready Elements Implementation Plan
2
+
3
+ ## First: Reread CLAUDE.md guidelines
4
+
5
+ ## Overview
6
+ Transform the @uptime.link/statuspage components from UI shells into fully functional, production-ready web components with real data integration, proper error handling, accessibility, and comprehensive testing.
7
+
8
+ ## Phase 1: Core Infrastructure (Foundation)
9
+
10
+ ### 1.1 Data Layer & API Client
11
+ - [ ] Create `ts_web/services/api.client.ts` for API communication
12
+ - [ ] Implement authentication/token management
13
+ - [ ] Add request/response interceptors for error handling
14
+ - [ ] Create retry logic with exponential backoff
15
+ - [ ] Add request caching mechanism
16
+
17
+ ### 1.2 TypeScript Interfaces & Models
18
+ - [ ] Create `ts_web/interfaces/` directory
19
+ - [ ] Define comprehensive interfaces for:
20
+ - Service status data
21
+ - Incident details with severity levels
22
+ - Asset/service definitions
23
+ - API responses
24
+ - Configuration options
25
+ - User preferences
26
+
27
+ ### 1.3 State Management
28
+ - [ ] Create `ts_web/services/state.manager.ts`
29
+ - [ ] Implement observable state pattern
30
+ - [ ] Add state persistence (localStorage)
31
+ - [ ] Create state update notifications
32
+
33
+ ### 1.4 Real-time Updates
34
+ - [ ] Create `ts_web/services/realtime.service.ts`
35
+ - [ ] Implement WebSocket connection management
36
+ - [ ] Add fallback to Server-Sent Events (SSE)
37
+ - [ ] Create reconnection logic
38
+ - [ ] Add heartbeat/ping mechanism
39
+
40
+ ### 1.5 Configuration System
41
+ - [ ] Create `ts_web/config/default.config.ts`
42
+ - [ ] Add environment-based configuration
43
+ - [ ] Implement config validation
44
+ - [ ] Add runtime config updates
45
+
46
+ ## Phase 2: Component Implementation
47
+
48
+ ### 2.1 upl-statuspage-header
49
+ - [ ] Add loading state during actions
50
+ - [ ] Implement proper event handling with data
51
+ - [ ] Add keyboard shortcuts (Alt+R for report, Alt+S for subscribe)
52
+ - [ ] Add ARIA labels and roles
53
+ - [ ] Implement focus management
54
+
55
+ ### 2.2 upl-statuspage-statusbar
56
+ - [ ] Connect to real status data
57
+ - [ ] Implement dynamic status calculation
58
+ - [ ] Add status levels (operational, degraded, partial outage, major outage)
59
+ - [ ] Color coding (green, yellow, orange, red)
60
+ - [ ] Add animated transitions between states
61
+ - [ ] Implement click to expand details
62
+ - [ ] Add ARIA live region for status changes
63
+
64
+ ### 2.3 upl-statuspage-assetsselector
65
+ - [ ] Implement complete asset listing UI
66
+ - [ ] Add search/filter functionality
67
+ - [ ] Create checkbox/toggle selection
68
+ - [ ] Add select all/none buttons
69
+ - [ ] Implement category grouping
70
+ - [ ] Add asset status indicators
71
+ - [ ] Emit selection change events
72
+ - [ ] Add keyboard navigation (arrow keys)
73
+
74
+ ### 2.4 upl-statuspage-statusdetails
75
+ - [ ] Connect to real hourly status data
76
+ - [ ] Implement dynamic color coding
77
+ - [ ] Add hover tooltips with exact times
78
+ - [ ] Create time zone support
79
+ - [ ] Add zoom in/out functionality
80
+ - [ ] Implement data aggregation options
81
+ - [ ] Add export to CSV/JSON
82
+ - [ ] Make responsive for mobile
83
+
84
+ ### 2.5 upl-statuspage-statusmonth
85
+ - [ ] Connect to real daily uptime data
86
+ - [ ] Add month/year navigation
87
+ - [ ] Implement uptime percentage calculation
88
+ - [ ] Color coding by uptime percentage
89
+ - [ ] Add detailed day tooltips
90
+ - [ ] Create calendar grid with proper labels
91
+ - [ ] Add click to drill down
92
+ - [ ] Implement date range selection
93
+
94
+ ### 2.6 upl-statuspage-incidents
95
+ - [ ] Create incident card component
96
+ - [ ] Implement incident rendering from data
97
+ - [ ] Add severity indicators (critical, major, minor)
98
+ - [ ] Create incident timeline
99
+ - [ ] Add affected services display
100
+ - [ ] Implement status updates (investigating, identified, monitoring, resolved)
101
+ - [ ] Add time calculations (duration, time to resolution)
102
+ - [ ] Create incident filtering/search
103
+ - [ ] Add pagination for historical incidents
104
+
105
+ ### 2.7 upl-statuspage-footer
106
+ - [ ] Implement configurable footer content
107
+ - [ ] Add RSS feed link
108
+ - [ ] Create API status endpoint link
109
+ - [ ] Add social media links
110
+ - [ ] Implement "Report Incident" modal
111
+ - [ ] Create "Subscribe" functionality
112
+ - [ ] Add language selector
113
+ - [ ] Include last update timestamp
114
+
115
+ ## Phase 3: User Experience Enhancements
116
+
117
+ ### 3.1 Loading States
118
+ - [ ] Create skeleton screens for each component
119
+ - [ ] Add loading spinners/indicators
120
+ - [ ] Implement progressive loading
121
+ - [ ] Add loading progress for large datasets
122
+
123
+ ### 3.2 Error Handling
124
+ - [ ] Create error boundary components
125
+ - [ ] Design error state UI for each component
126
+ - [ ] Add retry buttons
127
+ - [ ] Implement offline detection
128
+ - [ ] Create fallback content
129
+ - [ ] Add error logging/reporting
130
+
131
+ ### 3.3 Accessibility (WCAG 2.1 AA)
132
+ - [ ] Add comprehensive ARIA labels
133
+ - [ ] Implement keyboard navigation
134
+ - [ ] Create skip navigation links
135
+ - [ ] Add focus indicators
136
+ - [ ] Implement screen reader announcements
137
+ - [ ] Ensure color contrast compliance
138
+ - [ ] Add reduced motion support
139
+
140
+ ### 3.4 Responsive Design
141
+ - [ ] Create mobile breakpoints
142
+ - [ ] Implement touch-friendly interactions
143
+ - [ ] Add swipe gestures for navigation
144
+ - [ ] Create responsive typography
145
+ - [ ] Optimize layouts for tablets
146
+ - [ ] Add horizontal scroll prevention
147
+
148
+ ### 3.5 Internationalization
149
+ - [ ] Create i18n service
150
+ - [ ] Add translation files (en, de, es, fr, ja)
151
+ - [ ] Implement locale detection
152
+ - [ ] Add date/time formatting
153
+ - [ ] Create number formatting
154
+ - [ ] Add RTL support
155
+ - [ ] Implement pluralization rules
156
+
157
+ ## Phase 4: Advanced Features
158
+
159
+ ### 4.1 Performance Optimization
160
+ - [ ] Implement virtual scrolling for long lists
161
+ - [ ] Add lazy loading for historical data
162
+ - [ ] Create data pagination
163
+ - [ ] Implement request debouncing
164
+ - [ ] Add response caching
165
+ - [ ] Optimize re-renders
166
+
167
+ ### 4.2 Analytics & Monitoring
168
+ - [ ] Add page view tracking
169
+ - [ ] Implement user interaction tracking
170
+ - [ ] Create performance metrics
171
+ - [ ] Add error tracking
172
+ - [ ] Implement custom event tracking
173
+
174
+ ### 4.3 PWA Capabilities
175
+ - [ ] Create service worker
176
+ - [ ] Implement offline support
177
+ - [ ] Add push notifications
178
+ - [ ] Create app manifest
179
+ - [ ] Enable installation prompt
180
+
181
+ ### 4.4 Export & Reporting
182
+ - [ ] Add PDF export for status reports
183
+ - [ ] Create CSV export for data
184
+ - [ ] Implement scheduled reports
185
+ - [ ] Add print stylesheets
186
+ - [ ] Create shareable status links
187
+
188
+ ## Phase 5: Testing & Documentation
189
+
190
+ ### 5.1 Unit Tests
191
+ - [ ] Set up testing framework (@git.zone/tstest)
192
+ - [ ] Create tests for all services
193
+ - [ ] Test component logic
194
+ - [ ] Add API client tests
195
+ - [ ] Test state management
196
+ - [ ] Create test utilities
197
+
198
+ ### 5.2 Integration Tests
199
+ - [ ] Test component interactions
200
+ - [ ] Test data flow
201
+ - [ ] Test error scenarios
202
+ - [ ] Test real-time updates
203
+ - [ ] Test offline behavior
204
+
205
+ ### 5.3 E2E Tests
206
+ - [ ] Set up Playwright
207
+ - [ ] Test user workflows
208
+ - [ ] Test accessibility
209
+ - [ ] Test responsive behavior
210
+ - [ ] Test cross-browser compatibility
211
+
212
+ ### 5.4 Documentation
213
+ - [ ] Create component API documentation
214
+ - [ ] Add usage examples
215
+ - [ ] Create integration guide
216
+ - [ ] Add configuration documentation
217
+ - [ ] Create troubleshooting guide
218
+
219
+ ## Implementation Order
220
+
221
+ 1. **Week 1-2**: Core Infrastructure (Phase 1)
222
+ 2. **Week 3-4**: Basic Component Functionality (Phase 2.1-2.3)
223
+ 3. **Week 5-6**: Advanced Components (Phase 2.4-2.7)
224
+ 4. **Week 7**: User Experience (Phase 3)
225
+ 5. **Week 8**: Advanced Features (Phase 4)
226
+ 6. **Week 9-10**: Testing & Documentation (Phase 5)
227
+
228
+ ## Success Criteria
229
+
230
+ - All components display real data from API
231
+ - Full accessibility compliance (WCAG 2.1 AA)
232
+ - 90%+ test coverage
233
+ - Sub-3 second initial load time
234
+ - Works offline with cached data
235
+ - Supports 5+ languages
236
+ - Mobile-responsive design
237
+ - Real-time updates working
238
+ - Comprehensive error handling
239
+ - Production-ready documentation
240
+
241
+ ## Dependencies to Add
242
+
243
+ ```json
244
+ {
245
+ "dependencies": {
246
+ "@push.rocks/smartrequest": "*",
247
+ "@push.rocks/smartwebsocket": "*",
248
+ "@push.rocks/smartstate": "*",
249
+ "@push.rocks/smarti18n": "*",
250
+ "@push.rocks/smarttime": "*"
251
+ },
252
+ "devDependencies": {
253
+ "@git.zone/tstest": "*",
254
+ "@playwright/test": "*"
255
+ }
256
+ }
257
+ ```
258
+
259
+ ---
260
+
261
+ Would you like me to proceed with implementing this plan? I recommend starting with Phase 1 (Core Infrastructure) as it provides the foundation for all other functionality.
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@uptime.link/statuspage',
6
- version: '1.0.74',
6
+ version: '1.2.0',
7
7
  description: 'A catalog of web components for the UptimeLink dashboard.'
8
8
  }
@@ -1,7 +1,13 @@
1
+ // Export components
1
2
  export * from './upl-statuspage-assetsselector.js';
2
3
  export * from './upl-statuspage-footer.js';
3
4
  export * from './upl-statuspage-header.js';
4
5
  export * from './upl-statuspage-incidents.js';
6
+ export * from './upl-statuspage-pagetitle.js';
5
7
  export * from './upl-statuspage-statusbar.js';
6
8
  export * from './upl-statuspage-statusdetails.js';
7
9
  export * from './upl-statuspage-statusmonth.js';
10
+ export * from './upl-statuspage-statsgrid.js';
11
+
12
+ // Export interfaces
13
+ export * from '../interfaces/index.js';
@@ -1,26 +1,33 @@
1
- import { customElement, DeesElement, html, type TemplateResult } from '@design.estate/dees-element';
2
-
1
+ import { customElement, DeesElement, html, type TemplateResult, css, cssManager, unsafeCSS } from '@design.estate/dees-element';
3
2
  import * as domtools from '@design.estate/dees-domtools';
3
+ import * as sharedStyles from '../../styles/shared.styles.js';
4
4
 
5
5
  @customElement('uplinternal-miniheading')
6
6
  export class UplinternalMiniheading extends DeesElement {
7
+ public static styles = [
8
+ domtools.elementBasic.staticStyles,
9
+ css`
10
+ :host {
11
+ display: block;
12
+ font-family: ${unsafeCSS(sharedStyles.fonts.base)};
13
+ }
14
+
15
+ h5 {
16
+ display: block;
17
+ max-width: 1200px;
18
+ margin: 0px auto;
19
+ padding: 0px 0px ${unsafeCSS(sharedStyles.spacing.sm)} 0px;
20
+ color: ${sharedStyles.colors.text.secondary};
21
+ font-size: 12px;
22
+ font-weight: 600;
23
+ letter-spacing: 0.05em;
24
+ text-transform: uppercase;
25
+ }
26
+ `
27
+ ];
28
+
7
29
  public render(): TemplateResult {
8
30
  return html`
9
- ${domtools.elementBasic.styles}
10
- <style>
11
- :host {
12
- display: block;
13
- font-family: Inter;
14
- }
15
-
16
- h5 {
17
- display: block;
18
- max-width: 900px;
19
- margin: 0px auto;
20
- padding: 0px 0px 10px 0px;
21
- color: #707070;
22
- }
23
- </style>
24
31
  <h5>${this.textContent}</h5>
25
32
  `;
26
33
  }