@serve.zone/catalog 1.0.1

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 (122) hide show
  1. package/dist_ts_web/00_commitinfo_data.d.ts +8 -0
  2. package/dist_ts_web/00_commitinfo_data.js +9 -0
  3. package/dist_ts_web/elements/index.d.ts +33 -0
  4. package/dist_ts_web/elements/index.js +45 -0
  5. package/dist_ts_web/elements/sz-certificates-card.d.ts +14 -0
  6. package/dist_ts_web/elements/sz-certificates-card.js +210 -0
  7. package/dist_ts_web/elements/sz-dashboard-view.d.ts +33 -0
  8. package/dist_ts_web/elements/sz-dashboard-view.js +242 -0
  9. package/dist_ts_web/elements/sz-demo-view-dashboard.d.ts +18 -0
  10. package/dist_ts_web/elements/sz-demo-view-dashboard.js +184 -0
  11. package/dist_ts_web/elements/sz-demo-view-network.d.ts +32 -0
  12. package/dist_ts_web/elements/sz-demo-view-network.js +384 -0
  13. package/dist_ts_web/elements/sz-demo-view-registries.d.ts +22 -0
  14. package/dist_ts_web/elements/sz-demo-view-registries.js +240 -0
  15. package/dist_ts_web/elements/sz-demo-view-services.d.ts +32 -0
  16. package/dist_ts_web/elements/sz-demo-view-services.js +468 -0
  17. package/dist_ts_web/elements/sz-demo-view-settings.d.ts +19 -0
  18. package/dist_ts_web/elements/sz-demo-view-settings.js +151 -0
  19. package/dist_ts_web/elements/sz-demo-view-tokens.d.ts +20 -0
  20. package/dist_ts_web/elements/sz-demo-view-tokens.js +141 -0
  21. package/dist_ts_web/elements/sz-dns-ssl-card.d.ts +13 -0
  22. package/dist_ts_web/elements/sz-dns-ssl-card.js +180 -0
  23. package/dist_ts_web/elements/sz-domain-detail-view.d.ts +48 -0
  24. package/dist_ts_web/elements/sz-domain-detail-view.js +789 -0
  25. package/dist_ts_web/elements/sz-login-view.d.ts +18 -0
  26. package/dist_ts_web/elements/sz-login-view.js +384 -0
  27. package/dist_ts_web/elements/sz-network-dns-view.d.ts +20 -0
  28. package/dist_ts_web/elements/sz-network-dns-view.js +244 -0
  29. package/dist_ts_web/elements/sz-network-domains-view.d.ts +28 -0
  30. package/dist_ts_web/elements/sz-network-domains-view.js +312 -0
  31. package/dist_ts_web/elements/sz-network-proxy-view.d.ts +39 -0
  32. package/dist_ts_web/elements/sz-network-proxy-view.js +510 -0
  33. package/dist_ts_web/elements/sz-platform-service-detail-view.d.ts +49 -0
  34. package/dist_ts_web/elements/sz-platform-service-detail-view.js +733 -0
  35. package/dist_ts_web/elements/sz-platform-services-card.d.ts +19 -0
  36. package/dist_ts_web/elements/sz-platform-services-card.js +196 -0
  37. package/dist_ts_web/elements/sz-quick-actions-card.d.ts +19 -0
  38. package/dist_ts_web/elements/sz-quick-actions-card.js +194 -0
  39. package/dist_ts_web/elements/sz-registry-external-view.d.ts +22 -0
  40. package/dist_ts_web/elements/sz-registry-external-view.js +313 -0
  41. package/dist_ts_web/elements/sz-registry-onebox-view.d.ts +14 -0
  42. package/dist_ts_web/elements/sz-registry-onebox-view.js +307 -0
  43. package/dist_ts_web/elements/sz-resource-usage-card.d.ts +25 -0
  44. package/dist_ts_web/elements/sz-resource-usage-card.js +323 -0
  45. package/dist_ts_web/elements/sz-reverse-proxy-card.d.ts +16 -0
  46. package/dist_ts_web/elements/sz-reverse-proxy-card.js +216 -0
  47. package/dist_ts_web/elements/sz-service-create-view.d.ts +67 -0
  48. package/dist_ts_web/elements/sz-service-create-view.js +828 -0
  49. package/dist_ts_web/elements/sz-service-detail-view.d.ts +57 -0
  50. package/dist_ts_web/elements/sz-service-detail-view.js +728 -0
  51. package/dist_ts_web/elements/sz-services-backups-view.d.ts +37 -0
  52. package/dist_ts_web/elements/sz-services-backups-view.js +413 -0
  53. package/dist_ts_web/elements/sz-services-list-view.d.ts +20 -0
  54. package/dist_ts_web/elements/sz-services-list-view.js +272 -0
  55. package/dist_ts_web/elements/sz-settings-view.d.ts +30 -0
  56. package/dist_ts_web/elements/sz-settings-view.js +448 -0
  57. package/dist_ts_web/elements/sz-stat-card.d.ts +17 -0
  58. package/dist_ts_web/elements/sz-stat-card.js +249 -0
  59. package/dist_ts_web/elements/sz-status-grid-cluster.d.ts +19 -0
  60. package/dist_ts_web/elements/sz-status-grid-cluster.js +142 -0
  61. package/dist_ts_web/elements/sz-status-grid-infra.d.ts +17 -0
  62. package/dist_ts_web/elements/sz-status-grid-infra.js +140 -0
  63. package/dist_ts_web/elements/sz-status-grid-network.d.ts +30 -0
  64. package/dist_ts_web/elements/sz-status-grid-network.js +190 -0
  65. package/dist_ts_web/elements/sz-status-grid-services.d.ts +17 -0
  66. package/dist_ts_web/elements/sz-status-grid-services.js +145 -0
  67. package/dist_ts_web/elements/sz-tokens-view.d.ts +26 -0
  68. package/dist_ts_web/elements/sz-tokens-view.js +344 -0
  69. package/dist_ts_web/elements/sz-traffic-card.d.ts +24 -0
  70. package/dist_ts_web/elements/sz-traffic-card.js +255 -0
  71. package/dist_ts_web/index.d.ts +2 -0
  72. package/dist_ts_web/index.js +3 -0
  73. package/dist_ts_web/pages/index.d.ts +3 -0
  74. package/dist_ts_web/pages/index.js +4 -0
  75. package/dist_ts_web/pages/mainpage.d.ts +1 -0
  76. package/dist_ts_web/pages/mainpage.js +46 -0
  77. package/dist_ts_web/pages/sz-demo-app-shell.d.ts +13 -0
  78. package/dist_ts_web/pages/sz-demo-app-shell.js +212 -0
  79. package/dist_ts_web/pages/sz-demo-app.d.ts +2 -0
  80. package/dist_ts_web/pages/sz-demo-app.js +20 -0
  81. package/npmextra.json +24 -0
  82. package/package.json +45 -0
  83. package/ts_web/00_commitinfo_data.ts +8 -0
  84. package/ts_web/elements/index.ts +54 -0
  85. package/ts_web/elements/sz-certificates-card.ts +155 -0
  86. package/ts_web/elements/sz-dashboard-view.ts +217 -0
  87. package/ts_web/elements/sz-demo-view-dashboard.ts +150 -0
  88. package/ts_web/elements/sz-demo-view-network.ts +354 -0
  89. package/ts_web/elements/sz-demo-view-registries.ts +206 -0
  90. package/ts_web/elements/sz-demo-view-services.ts +434 -0
  91. package/ts_web/elements/sz-demo-view-settings.ts +118 -0
  92. package/ts_web/elements/sz-demo-view-tokens.ts +109 -0
  93. package/ts_web/elements/sz-dns-ssl-card.ts +130 -0
  94. package/ts_web/elements/sz-domain-detail-view.ts +766 -0
  95. package/ts_web/elements/sz-login-view.ts +329 -0
  96. package/ts_web/elements/sz-network-dns-view.ts +208 -0
  97. package/ts_web/elements/sz-network-domains-view.ts +273 -0
  98. package/ts_web/elements/sz-network-proxy-view.ts +456 -0
  99. package/ts_web/elements/sz-platform-service-detail-view.ts +714 -0
  100. package/ts_web/elements/sz-platform-services-card.ts +163 -0
  101. package/ts_web/elements/sz-quick-actions-card.ts +161 -0
  102. package/ts_web/elements/sz-registry-external-view.ts +279 -0
  103. package/ts_web/elements/sz-registry-onebox-view.ts +258 -0
  104. package/ts_web/elements/sz-resource-usage-card.ts +284 -0
  105. package/ts_web/elements/sz-reverse-proxy-card.ts +151 -0
  106. package/ts_web/elements/sz-service-create-view.ts +773 -0
  107. package/ts_web/elements/sz-service-detail-view.ts +710 -0
  108. package/ts_web/elements/sz-services-backups-view.ts +390 -0
  109. package/ts_web/elements/sz-services-list-view.ts +237 -0
  110. package/ts_web/elements/sz-settings-view.ts +417 -0
  111. package/ts_web/elements/sz-stat-card.ts +187 -0
  112. package/ts_web/elements/sz-status-grid-cluster.ts +105 -0
  113. package/ts_web/elements/sz-status-grid-infra.ts +88 -0
  114. package/ts_web/elements/sz-status-grid-network.ts +152 -0
  115. package/ts_web/elements/sz-status-grid-services.ts +99 -0
  116. package/ts_web/elements/sz-tokens-view.ts +308 -0
  117. package/ts_web/elements/sz-traffic-card.ts +222 -0
  118. package/ts_web/index.ts +2 -0
  119. package/ts_web/pages/index.ts +3 -0
  120. package/ts_web/pages/mainpage.ts +46 -0
  121. package/ts_web/pages/sz-demo-app-shell.ts +179 -0
  122. package/ts_web/pages/sz-demo-app.ts +20 -0
@@ -0,0 +1,273 @@
1
+ import {
2
+ DeesElement,
3
+ customElement,
4
+ html,
5
+ css,
6
+ cssManager,
7
+ property,
8
+ type TemplateResult,
9
+ } from '@design.estate/dees-element';
10
+
11
+ import './sz-stat-card.js';
12
+
13
+ declare global {
14
+ interface HTMLElementTagNameMap {
15
+ 'sz-network-domains-view': SzNetworkDomainsView;
16
+ }
17
+ }
18
+
19
+ export interface IDomainRecord {
20
+ domain: string;
21
+ provider: string;
22
+ serviceCount: number;
23
+ certificateStatus: 'valid' | 'expiring' | 'expired' | 'pending';
24
+ expiresIn?: string;
25
+ }
26
+
27
+ @customElement('sz-network-domains-view')
28
+ export class SzNetworkDomainsView extends DeesElement {
29
+ public static demo = () => html`
30
+ <div style="padding: 24px; max-width: 1200px;">
31
+ <sz-network-domains-view
32
+ .domains=${[
33
+ { domain: 'bleu.de', provider: 'cloudflare', serviceCount: 2, certificateStatus: 'valid', expiresIn: '52 days' },
34
+ { domain: 'task.vc', provider: 'cloudflare', serviceCount: 1, certificateStatus: 'valid', expiresIn: '52 days' },
35
+ { domain: 'example.com', provider: 'cloudflare', serviceCount: 0, certificateStatus: 'expiring', expiresIn: '7 days' },
36
+ ]}
37
+ .stats=${{ total: 3, valid: 2, expiring: 1, expired: 0 }}
38
+ ></sz-network-domains-view>
39
+ </div>
40
+ `;
41
+
42
+ @property({ type: Array })
43
+ public accessor domains: IDomainRecord[] = [];
44
+
45
+ @property({ type: Object })
46
+ public accessor stats: { total: number; valid: number; expiring: number; expired: number } = {
47
+ total: 0,
48
+ valid: 0,
49
+ expiring: 0,
50
+ expired: 0,
51
+ };
52
+
53
+ public static styles = [
54
+ cssManager.defaultStyles,
55
+ css`
56
+ :host {
57
+ display: block;
58
+ }
59
+
60
+ .header {
61
+ display: flex;
62
+ justify-content: space-between;
63
+ align-items: center;
64
+ margin-bottom: 16px;
65
+ }
66
+
67
+ .description {
68
+ font-size: 14px;
69
+ color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
70
+ }
71
+
72
+ .sync-button {
73
+ display: inline-flex;
74
+ align-items: center;
75
+ gap: 8px;
76
+ padding: 8px 16px;
77
+ background: ${cssManager.bdTheme('#ffffff', '#09090b')};
78
+ border: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')};
79
+ border-radius: 6px;
80
+ font-size: 14px;
81
+ font-weight: 500;
82
+ color: ${cssManager.bdTheme('#18181b', '#fafafa')};
83
+ cursor: pointer;
84
+ transition: all 200ms ease;
85
+ }
86
+
87
+ .sync-button:hover {
88
+ background: ${cssManager.bdTheme('#f4f4f5', '#18181b')};
89
+ border-color: ${cssManager.bdTheme('#d4d4d8', '#3f3f46')};
90
+ }
91
+
92
+ .stats-grid {
93
+ display: grid;
94
+ grid-template-columns: repeat(2, 1fr);
95
+ gap: 16px;
96
+ margin-bottom: 24px;
97
+ }
98
+
99
+ @media (min-width: 768px) {
100
+ .stats-grid {
101
+ grid-template-columns: repeat(4, 1fr);
102
+ }
103
+ }
104
+
105
+ .table-container {
106
+ background: ${cssManager.bdTheme('#ffffff', '#09090b')};
107
+ border: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')};
108
+ border-radius: 8px;
109
+ overflow: hidden;
110
+ }
111
+
112
+ .table-header {
113
+ display: grid;
114
+ grid-template-columns: 2fr 1fr 80px 100px 100px 80px;
115
+ gap: 16px;
116
+ padding: 12px 16px;
117
+ background: ${cssManager.bdTheme('#f4f4f5', '#18181b')};
118
+ border-bottom: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')};
119
+ font-size: 12px;
120
+ font-weight: 600;
121
+ text-transform: uppercase;
122
+ letter-spacing: 0.05em;
123
+ color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
124
+ }
125
+
126
+ .table-row {
127
+ display: grid;
128
+ grid-template-columns: 2fr 1fr 80px 100px 100px 80px;
129
+ gap: 16px;
130
+ padding: 12px 16px;
131
+ border-bottom: 1px solid ${cssManager.bdTheme('#f4f4f5', '#27272a')};
132
+ font-size: 14px;
133
+ color: ${cssManager.bdTheme('#18181b', '#fafafa')};
134
+ align-items: center;
135
+ transition: background 200ms ease;
136
+ }
137
+
138
+ .table-row:last-child {
139
+ border-bottom: none;
140
+ }
141
+
142
+ .table-row:hover {
143
+ background: ${cssManager.bdTheme('#f4f4f5', '#18181b')};
144
+ }
145
+
146
+ .domain-name {
147
+ font-weight: 500;
148
+ }
149
+
150
+ .provider {
151
+ color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
152
+ }
153
+
154
+ .status-badge {
155
+ display: inline-flex;
156
+ align-items: center;
157
+ padding: 2px 8px;
158
+ border-radius: 9999px;
159
+ font-size: 12px;
160
+ font-weight: 500;
161
+ }
162
+
163
+ .status-badge.valid {
164
+ background: ${cssManager.bdTheme('#dcfce7', 'rgba(34, 197, 94, 0.2)')};
165
+ color: ${cssManager.bdTheme('#16a34a', '#22c55e')};
166
+ }
167
+
168
+ .status-badge.expiring {
169
+ background: ${cssManager.bdTheme('#fef9c3', 'rgba(250, 204, 21, 0.2)')};
170
+ color: ${cssManager.bdTheme('#ca8a04', '#facc15')};
171
+ }
172
+
173
+ .status-badge.expired,
174
+ .status-badge.pending {
175
+ background: ${cssManager.bdTheme('#fee2e2', 'rgba(239, 68, 68, 0.2)')};
176
+ color: ${cssManager.bdTheme('#dc2626', '#ef4444')};
177
+ }
178
+
179
+ .expires {
180
+ color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
181
+ }
182
+
183
+ .view-button {
184
+ padding: 6px 12px;
185
+ background: ${cssManager.bdTheme('#ffffff', '#09090b')};
186
+ border: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')};
187
+ border-radius: 4px;
188
+ font-size: 13px;
189
+ color: ${cssManager.bdTheme('#18181b', '#fafafa')};
190
+ cursor: pointer;
191
+ transition: all 200ms ease;
192
+ }
193
+
194
+ .view-button:hover {
195
+ background: ${cssManager.bdTheme('#f4f4f5', '#18181b')};
196
+ }
197
+
198
+ .empty-state {
199
+ padding: 48px 24px;
200
+ text-align: center;
201
+ color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
202
+ }
203
+ `,
204
+ ];
205
+
206
+ public render(): TemplateResult {
207
+ return html`
208
+ <div class="header">
209
+ <span class="description">Manage domains and SSL certificates</span>
210
+ <button class="sync-button" @click=${() => this.handleSync()}>Sync Cloudflare</button>
211
+ </div>
212
+
213
+ <div class="stats-grid">
214
+ <sz-stat-card
215
+ label="Total Domains"
216
+ value="${this.stats.total}"
217
+ icon="server"
218
+ ></sz-stat-card>
219
+ <sz-stat-card
220
+ label="Valid Certificates"
221
+ value="${this.stats.valid}"
222
+ icon="check"
223
+ variant="success"
224
+ ></sz-stat-card>
225
+ <sz-stat-card
226
+ label="Expiring Soon"
227
+ value="${this.stats.expiring}"
228
+ icon="stop"
229
+ variant="${this.stats.expiring > 0 ? 'warning' : 'default'}"
230
+ ></sz-stat-card>
231
+ <sz-stat-card
232
+ label="Expired/Pending"
233
+ value="${this.stats.expired}"
234
+ icon="stop"
235
+ variant="${this.stats.expired > 0 ? 'error' : 'default'}"
236
+ ></sz-stat-card>
237
+ </div>
238
+
239
+ <div class="table-container">
240
+ <div class="table-header">
241
+ <span>Domain</span>
242
+ <span>Provider</span>
243
+ <span>Services</span>
244
+ <span>Certificate</span>
245
+ <span>Expires</span>
246
+ <span>Actions</span>
247
+ </div>
248
+ ${this.domains.length > 0 ? this.domains.map(domain => html`
249
+ <div class="table-row">
250
+ <span class="domain-name">${domain.domain}</span>
251
+ <span class="provider">${domain.provider}</span>
252
+ <span>${domain.serviceCount}</span>
253
+ <span><span class="status-badge ${domain.certificateStatus}">${domain.certificateStatus}</span></span>
254
+ <span class="expires">${domain.expiresIn || '-'}</span>
255
+ <span>
256
+ <button class="view-button" @click=${() => this.handleView(domain)}>View</button>
257
+ </span>
258
+ </div>
259
+ `) : html`
260
+ <div class="empty-state">No domains configured</div>
261
+ `}
262
+ </div>
263
+ `;
264
+ }
265
+
266
+ private handleSync() {
267
+ this.dispatchEvent(new CustomEvent('sync', { bubbles: true, composed: true }));
268
+ }
269
+
270
+ private handleView(domain: IDomainRecord) {
271
+ this.dispatchEvent(new CustomEvent('view', { detail: domain, bubbles: true, composed: true }));
272
+ }
273
+ }