@authrim/setup 0.1.63 → 0.1.66
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/__tests__/migrate.test.d.ts +5 -0
- package/dist/__tests__/migrate.test.d.ts.map +1 -0
- package/dist/__tests__/migrate.test.js +273 -0
- package/dist/__tests__/migrate.test.js.map +1 -0
- package/dist/__tests__/paths.test.d.ts +2 -0
- package/dist/__tests__/paths.test.d.ts.map +1 -0
- package/dist/__tests__/paths.test.js +257 -0
- package/dist/__tests__/paths.test.js.map +1 -0
- package/dist/cli/commands/config.d.ts +1 -0
- package/dist/cli/commands/config.d.ts.map +1 -1
- package/dist/cli/commands/config.js +41 -7
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/deploy.d.ts +1 -0
- package/dist/cli/commands/deploy.d.ts.map +1 -1
- package/dist/cli/commands/deploy.js +181 -19
- package/dist/cli/commands/deploy.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +267 -82
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/migrate.d.ts +21 -0
- package/dist/cli/commands/migrate.d.ts.map +1 -0
- package/dist/cli/commands/migrate.js +166 -0
- package/dist/cli/commands/migrate.js.map +1 -0
- package/dist/core/admin.d.ts +18 -1
- package/dist/core/admin.d.ts.map +1 -1
- package/dist/core/admin.js +36 -7
- package/dist/core/admin.js.map +1 -1
- package/dist/core/config.d.ts +10 -2
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +6 -2
- package/dist/core/config.js.map +1 -1
- package/dist/core/keys.d.ts +55 -4
- package/dist/core/keys.d.ts.map +1 -1
- package/dist/core/keys.js +104 -12
- package/dist/core/keys.js.map +1 -1
- package/dist/core/lock.d.ts +60 -3
- package/dist/core/lock.d.ts.map +1 -1
- package/dist/core/lock.js +108 -4
- package/dist/core/lock.js.map +1 -1
- package/dist/core/migrate.d.ts +95 -0
- package/dist/core/migrate.d.ts.map +1 -0
- package/dist/core/migrate.js +549 -0
- package/dist/core/migrate.js.map +1 -0
- package/dist/core/paths.d.ts +171 -0
- package/dist/core/paths.d.ts.map +1 -0
- package/dist/core/paths.js +319 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/wrangler-sync.d.ts +88 -0
- package/dist/core/wrangler-sync.d.ts.map +1 -0
- package/dist/core/wrangler-sync.js +242 -0
- package/dist/core/wrangler-sync.js.map +1 -0
- package/dist/index.js +16 -1
- package/dist/index.js.map +1 -1
- package/dist/web/api.d.ts.map +1 -1
- package/dist/web/api.js +102 -28
- package/dist/web/api.js.map +1 -1
- package/dist/web/ui.d.ts.map +1 -1
- package/dist/web/ui.js +859 -276
- package/dist/web/ui.js.map +1 -1
- package/package.json +1 -1
package/dist/web/ui.js
CHANGED
|
@@ -14,18 +14,74 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
14
14
|
<meta charset="UTF-8">
|
|
15
15
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
16
16
|
<title>Authrim Setup</title>
|
|
17
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
18
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
19
|
+
<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;0,700;1,400&family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap" rel="stylesheet">
|
|
17
20
|
<style>
|
|
18
21
|
:root {
|
|
22
|
+
/* Typography */
|
|
23
|
+
--font-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
|
|
24
|
+
--font-sans: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
25
|
+
--font-mono: 'SF Mono', Monaco, 'Cascadia Code', 'Consolas', monospace;
|
|
26
|
+
|
|
27
|
+
/* Light theme colors */
|
|
19
28
|
--primary: #2563eb;
|
|
20
29
|
--primary-dark: #1d4ed8;
|
|
21
|
-
--
|
|
22
|
-
--
|
|
23
|
-
--
|
|
24
|
-
--
|
|
25
|
-
--
|
|
26
|
-
--
|
|
27
|
-
--
|
|
28
|
-
--
|
|
30
|
+
--primary-light: #3b82f6;
|
|
31
|
+
--accent: #c2410c;
|
|
32
|
+
--success: #059669;
|
|
33
|
+
--error: #dc2626;
|
|
34
|
+
--warning: #d97706;
|
|
35
|
+
--bg: #f8f5e3;
|
|
36
|
+
--bg-secondary: #f3eed6;
|
|
37
|
+
--card-bg: #fffefa;
|
|
38
|
+
--card-bg-hover: #fdfcf4;
|
|
39
|
+
--text: #1c1917;
|
|
40
|
+
--text-muted: #57534e;
|
|
41
|
+
--text-subtle: #78716c;
|
|
42
|
+
--border: #d6d3d1;
|
|
43
|
+
--border-light: #e7e5e4;
|
|
44
|
+
|
|
45
|
+
/* Splash */
|
|
46
|
+
--splash-bg: #1c1917;
|
|
47
|
+
--splash-text: #f8f5e3;
|
|
48
|
+
|
|
49
|
+
/* Shadows & Effects */
|
|
50
|
+
--shadow-sm: 0 1px 2px rgba(28, 25, 23, 0.04);
|
|
51
|
+
--shadow-md: 0 4px 12px rgba(28, 25, 23, 0.06);
|
|
52
|
+
--shadow-lg: 0 12px 32px rgba(28, 25, 23, 0.08);
|
|
53
|
+
--shadow-card: 0 1px 3px rgba(28, 25, 23, 0.04), 0 4px 12px rgba(28, 25, 23, 0.02);
|
|
54
|
+
|
|
55
|
+
/* Transitions */
|
|
56
|
+
--transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
|
|
57
|
+
--transition-base: 250ms cubic-bezier(0.4, 0, 0.2, 1);
|
|
58
|
+
--transition-slow: 400ms cubic-bezier(0.4, 0, 0.2, 1);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* Dark theme */
|
|
62
|
+
[data-theme="dark"] {
|
|
63
|
+
--primary: #60a5fa;
|
|
64
|
+
--primary-dark: #3b82f6;
|
|
65
|
+
--primary-light: #93c5fd;
|
|
66
|
+
--accent: #fb923c;
|
|
67
|
+
--success: #34d399;
|
|
68
|
+
--error: #f87171;
|
|
69
|
+
--warning: #fbbf24;
|
|
70
|
+
--bg: #0c0a09;
|
|
71
|
+
--bg-secondary: #1c1917;
|
|
72
|
+
--card-bg: #1c1917;
|
|
73
|
+
--card-bg-hover: #292524;
|
|
74
|
+
--text: #fafaf9;
|
|
75
|
+
--text-muted: #a8a29e;
|
|
76
|
+
--text-subtle: #78716c;
|
|
77
|
+
--border: #44403c;
|
|
78
|
+
--border-light: #292524;
|
|
79
|
+
--splash-bg: #0c0a09;
|
|
80
|
+
--splash-text: #f8f5e3;
|
|
81
|
+
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.2);
|
|
82
|
+
--shadow-md: 0 4px 12px rgba(0, 0, 0, 0.3);
|
|
83
|
+
--shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.4);
|
|
84
|
+
--shadow-card: 0 1px 3px rgba(0, 0, 0, 0.2), 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
29
85
|
}
|
|
30
86
|
|
|
31
87
|
* {
|
|
@@ -35,155 +91,397 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
35
91
|
}
|
|
36
92
|
|
|
37
93
|
body {
|
|
38
|
-
font-family: -
|
|
94
|
+
font-family: var(--font-sans);
|
|
39
95
|
background: var(--bg);
|
|
40
96
|
color: var(--text);
|
|
41
97
|
line-height: 1.6;
|
|
42
98
|
min-height: 100vh;
|
|
99
|
+
transition: background-color var(--transition-slow), color var(--transition-slow);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/* Subtle grain texture */
|
|
103
|
+
body::before {
|
|
104
|
+
content: '';
|
|
105
|
+
position: fixed;
|
|
106
|
+
top: 0;
|
|
107
|
+
left: 0;
|
|
108
|
+
width: 100%;
|
|
109
|
+
height: 100%;
|
|
110
|
+
pointer-events: none;
|
|
111
|
+
opacity: 0.015;
|
|
112
|
+
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
|
|
113
|
+
z-index: 9998;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
[data-theme="dark"] body::before {
|
|
117
|
+
opacity: 0.03;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/* ========================================
|
|
121
|
+
SPLASH SCREEN
|
|
122
|
+
======================================== */
|
|
123
|
+
.splash {
|
|
124
|
+
position: fixed;
|
|
125
|
+
inset: 0;
|
|
126
|
+
z-index: 10000;
|
|
127
|
+
background: var(--splash-bg);
|
|
128
|
+
display: flex;
|
|
129
|
+
align-items: center;
|
|
130
|
+
justify-content: center;
|
|
131
|
+
opacity: 1;
|
|
132
|
+
visibility: visible;
|
|
133
|
+
transition: opacity 600ms ease, visibility 600ms ease;
|
|
43
134
|
}
|
|
44
135
|
|
|
136
|
+
.splash.fade-out {
|
|
137
|
+
opacity: 0;
|
|
138
|
+
visibility: hidden;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.splash-content {
|
|
142
|
+
text-align: center;
|
|
143
|
+
opacity: 0;
|
|
144
|
+
transform: translateY(16px);
|
|
145
|
+
animation: splash-reveal 800ms ease forwards;
|
|
146
|
+
animation-delay: 200ms;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.splash-title {
|
|
150
|
+
font-family: var(--font-serif);
|
|
151
|
+
font-size: clamp(3.5rem, 10vw, 5.5rem);
|
|
152
|
+
font-weight: 600;
|
|
153
|
+
color: var(--splash-text);
|
|
154
|
+
letter-spacing: -0.03em;
|
|
155
|
+
line-height: 1;
|
|
156
|
+
margin-bottom: 1rem;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.splash-tagline {
|
|
160
|
+
font-family: var(--font-sans);
|
|
161
|
+
font-size: 0.85rem;
|
|
162
|
+
font-weight: 500;
|
|
163
|
+
color: var(--text-subtle);
|
|
164
|
+
letter-spacing: 0.2em;
|
|
165
|
+
text-transform: uppercase;
|
|
166
|
+
margin-bottom: 3rem;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.splash-loader {
|
|
170
|
+
width: 32px;
|
|
171
|
+
height: 32px;
|
|
172
|
+
margin: 0 auto;
|
|
173
|
+
border: 2px solid var(--border);
|
|
174
|
+
border-top-color: var(--splash-text);
|
|
175
|
+
border-radius: 50%;
|
|
176
|
+
animation: spin 1s linear infinite;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
@keyframes splash-reveal {
|
|
180
|
+
to {
|
|
181
|
+
opacity: 1;
|
|
182
|
+
transform: translateY(0);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/* ========================================
|
|
187
|
+
BACKGROUND TYPOGRAPHY
|
|
188
|
+
======================================== */
|
|
189
|
+
.bg-typography {
|
|
190
|
+
position: fixed;
|
|
191
|
+
top: -16%;
|
|
192
|
+
left: -5%;
|
|
193
|
+
font-family: var(--font-serif);
|
|
194
|
+
font-size: clamp(26rem, 25vw, 28rem);
|
|
195
|
+
font-weight: 700;
|
|
196
|
+
color: rgba(209, 201, 173, 0.18);
|
|
197
|
+
letter-spacing: -0.04em;
|
|
198
|
+
white-space: nowrap;
|
|
199
|
+
pointer-events: none;
|
|
200
|
+
z-index: 0;
|
|
201
|
+
user-select: none;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
[data-theme="dark"] .bg-typography {
|
|
205
|
+
color: rgba(255, 255, 255, 0.025);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/* ========================================
|
|
209
|
+
THEME TOGGLE
|
|
210
|
+
======================================== */
|
|
211
|
+
.theme-toggle {
|
|
212
|
+
position: fixed;
|
|
213
|
+
top: 1.25rem;
|
|
214
|
+
right: 1.5rem;
|
|
215
|
+
z-index: 100;
|
|
216
|
+
width: 44px;
|
|
217
|
+
height: 44px;
|
|
218
|
+
background: var(--card-bg);
|
|
219
|
+
border: 1px solid var(--border);
|
|
220
|
+
border-radius: 12px;
|
|
221
|
+
display: flex;
|
|
222
|
+
align-items: center;
|
|
223
|
+
justify-content: center;
|
|
224
|
+
cursor: pointer;
|
|
225
|
+
font-size: 1.25rem;
|
|
226
|
+
transition: all var(--transition-fast);
|
|
227
|
+
box-shadow: var(--shadow-sm);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.theme-toggle:hover {
|
|
231
|
+
background: var(--card-bg-hover);
|
|
232
|
+
border-color: var(--primary);
|
|
233
|
+
transform: scale(1.05);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
.theme-toggle:active {
|
|
237
|
+
transform: scale(0.95);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/* ========================================
|
|
241
|
+
LAYOUT
|
|
242
|
+
======================================== */
|
|
45
243
|
.container {
|
|
46
|
-
|
|
244
|
+
position: relative;
|
|
245
|
+
z-index: 1;
|
|
246
|
+
max-width: 820px;
|
|
47
247
|
margin: 0 auto;
|
|
48
|
-
padding: 2rem;
|
|
248
|
+
padding: 2.5rem 2rem;
|
|
49
249
|
}
|
|
50
250
|
|
|
51
251
|
header {
|
|
52
252
|
text-align: center;
|
|
53
253
|
margin-bottom: 2rem;
|
|
254
|
+
padding-top: 0.5rem;
|
|
54
255
|
}
|
|
55
256
|
|
|
56
257
|
h1 {
|
|
57
|
-
font-
|
|
58
|
-
|
|
258
|
+
font-family: var(--font-serif);
|
|
259
|
+
font-size: clamp(2.25rem, 6vw, 3rem);
|
|
260
|
+
font-weight: 600;
|
|
261
|
+
color: var(--text);
|
|
262
|
+
letter-spacing: -0.03em;
|
|
263
|
+
line-height: 1;
|
|
59
264
|
margin-bottom: 0.5rem;
|
|
60
265
|
}
|
|
61
266
|
|
|
267
|
+
.header-wizard {
|
|
268
|
+
font-family: var(--font-serif);
|
|
269
|
+
font-size: 1.15rem;
|
|
270
|
+
font-weight: 400;
|
|
271
|
+
font-style: italic;
|
|
272
|
+
color: var(--primary);
|
|
273
|
+
margin-bottom: 0.375rem;
|
|
274
|
+
}
|
|
275
|
+
|
|
62
276
|
.subtitle {
|
|
277
|
+
font-family: var(--font-sans);
|
|
278
|
+
font-size: 0.85rem;
|
|
63
279
|
color: var(--text-muted);
|
|
280
|
+
letter-spacing: 0.03em;
|
|
64
281
|
}
|
|
65
282
|
|
|
283
|
+
/* ========================================
|
|
284
|
+
CARDS
|
|
285
|
+
======================================== */
|
|
66
286
|
.card {
|
|
287
|
+
position: relative;
|
|
288
|
+
z-index: 1;
|
|
67
289
|
background: var(--card-bg);
|
|
68
|
-
border-radius:
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
290
|
+
border-radius: 16px;
|
|
291
|
+
border: 1px solid var(--border-light);
|
|
292
|
+
padding: 2rem;
|
|
293
|
+
margin-bottom: 1.75rem;
|
|
294
|
+
box-shadow: var(--shadow-card);
|
|
295
|
+
transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
.card:hover {
|
|
299
|
+
border-color: var(--border);
|
|
72
300
|
}
|
|
73
301
|
|
|
74
302
|
.card-title {
|
|
75
|
-
font-
|
|
303
|
+
font-family: var(--font-sans);
|
|
304
|
+
font-size: 1.35rem;
|
|
76
305
|
font-weight: 600;
|
|
77
|
-
margin-bottom:
|
|
306
|
+
margin-bottom: 1.25rem;
|
|
78
307
|
display: flex;
|
|
79
308
|
align-items: center;
|
|
80
|
-
gap: 0.
|
|
309
|
+
gap: 0.625rem;
|
|
310
|
+
color: var(--text);
|
|
81
311
|
}
|
|
82
312
|
|
|
313
|
+
/* ========================================
|
|
314
|
+
STATUS BADGES
|
|
315
|
+
======================================== */
|
|
83
316
|
.status-badge {
|
|
84
|
-
font-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
317
|
+
font-family: var(--font-sans);
|
|
318
|
+
font-size: 0.7rem;
|
|
319
|
+
font-weight: 600;
|
|
320
|
+
padding: 0.3rem 0.625rem;
|
|
321
|
+
border-radius: 6px;
|
|
322
|
+
letter-spacing: 0.02em;
|
|
323
|
+
text-transform: uppercase;
|
|
88
324
|
}
|
|
89
325
|
|
|
90
|
-
.status-pending {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
.status-
|
|
326
|
+
.status-pending {
|
|
327
|
+
background: var(--bg-secondary);
|
|
328
|
+
color: var(--text-muted);
|
|
329
|
+
}
|
|
330
|
+
.status-running {
|
|
331
|
+
background: rgba(37, 99, 235, 0.1);
|
|
332
|
+
color: var(--primary);
|
|
333
|
+
}
|
|
334
|
+
.status-success {
|
|
335
|
+
background: rgba(5, 150, 105, 0.1);
|
|
336
|
+
color: var(--success);
|
|
337
|
+
}
|
|
338
|
+
.status-error {
|
|
339
|
+
background: rgba(220, 38, 38, 0.1);
|
|
340
|
+
color: var(--error);
|
|
341
|
+
}
|
|
342
|
+
.status-warning {
|
|
343
|
+
background: rgba(217, 119, 6, 0.1);
|
|
344
|
+
color: var(--warning);
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
[data-theme="dark"] .status-running { background: rgba(96, 165, 250, 0.15); }
|
|
348
|
+
[data-theme="dark"] .status-success { background: rgba(52, 211, 153, 0.15); }
|
|
349
|
+
[data-theme="dark"] .status-error { background: rgba(248, 113, 113, 0.15); }
|
|
350
|
+
[data-theme="dark"] .status-warning { background: rgba(251, 191, 36, 0.15); }
|
|
95
351
|
|
|
96
|
-
/*
|
|
352
|
+
/* ========================================
|
|
353
|
+
MODE SELECTION CARDS
|
|
354
|
+
======================================== */
|
|
97
355
|
.mode-cards {
|
|
98
356
|
display: grid;
|
|
99
|
-
grid-template-columns: repeat(auto-fit, minmax(
|
|
100
|
-
gap:
|
|
101
|
-
margin-bottom:
|
|
357
|
+
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
|
|
358
|
+
gap: 1.25rem;
|
|
359
|
+
margin-bottom: 1.25rem;
|
|
102
360
|
}
|
|
103
361
|
|
|
104
362
|
.mode-card {
|
|
105
|
-
|
|
106
|
-
border
|
|
107
|
-
|
|
363
|
+
background: var(--card-bg);
|
|
364
|
+
border: 2px solid var(--border-light);
|
|
365
|
+
border-radius: 14px;
|
|
366
|
+
padding: 1.75rem;
|
|
108
367
|
cursor: pointer;
|
|
109
|
-
transition: all
|
|
368
|
+
transition: all var(--transition-base);
|
|
110
369
|
position: relative;
|
|
111
370
|
}
|
|
112
371
|
|
|
113
372
|
.mode-card:hover {
|
|
114
373
|
border-color: var(--primary);
|
|
115
|
-
background:
|
|
374
|
+
background: var(--card-bg-hover);
|
|
375
|
+
transform: translateY(-2px);
|
|
376
|
+
box-shadow: var(--shadow-md);
|
|
116
377
|
}
|
|
117
378
|
|
|
118
379
|
.mode-card.selected {
|
|
119
380
|
border-color: var(--primary);
|
|
120
|
-
background:
|
|
381
|
+
background: rgba(37, 99, 235, 0.04);
|
|
382
|
+
box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
[data-theme="dark"] .mode-card.selected {
|
|
386
|
+
background: rgba(96, 165, 250, 0.08);
|
|
387
|
+
box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.15);
|
|
121
388
|
}
|
|
122
389
|
|
|
123
390
|
.mode-card .mode-icon {
|
|
124
|
-
font-size:
|
|
125
|
-
margin-bottom: 0.
|
|
391
|
+
font-size: 2.25rem;
|
|
392
|
+
margin-bottom: 0.75rem;
|
|
393
|
+
display: block;
|
|
126
394
|
}
|
|
127
395
|
|
|
128
396
|
.mode-card h3 {
|
|
397
|
+
font-family: var(--font-sans);
|
|
129
398
|
font-size: 1.1rem;
|
|
399
|
+
font-weight: 600;
|
|
130
400
|
margin-bottom: 0.5rem;
|
|
401
|
+
color: var(--text);
|
|
131
402
|
}
|
|
132
403
|
|
|
133
404
|
.mode-card p {
|
|
134
|
-
font-size: 0.
|
|
405
|
+
font-size: 0.9rem;
|
|
135
406
|
color: var(--text-muted);
|
|
136
|
-
margin-bottom: 0.
|
|
407
|
+
margin-bottom: 0.875rem;
|
|
408
|
+
line-height: 1.5;
|
|
137
409
|
}
|
|
138
410
|
|
|
139
411
|
.mode-card ul {
|
|
140
412
|
font-size: 0.8rem;
|
|
141
|
-
color: var(--text-
|
|
413
|
+
color: var(--text-subtle);
|
|
142
414
|
margin-left: 1rem;
|
|
415
|
+
line-height: 1.6;
|
|
143
416
|
}
|
|
144
417
|
|
|
145
418
|
.mode-card ul li {
|
|
146
|
-
margin-bottom: 0.
|
|
419
|
+
margin-bottom: 0.3rem;
|
|
147
420
|
}
|
|
148
421
|
|
|
149
422
|
.mode-badge {
|
|
150
423
|
position: absolute;
|
|
151
|
-
top: -
|
|
152
|
-
right:
|
|
153
|
-
background: var(--primary);
|
|
424
|
+
top: -10px;
|
|
425
|
+
right: 12px;
|
|
426
|
+
background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
|
|
154
427
|
color: white;
|
|
155
|
-
font-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
428
|
+
font-family: var(--font-sans);
|
|
429
|
+
font-size: 0.65rem;
|
|
430
|
+
font-weight: 600;
|
|
431
|
+
padding: 0.35rem 0.625rem;
|
|
432
|
+
border-radius: 6px;
|
|
433
|
+
letter-spacing: 0.03em;
|
|
434
|
+
text-transform: uppercase;
|
|
435
|
+
box-shadow: 0 2px 8px rgba(37, 99, 235, 0.3);
|
|
159
436
|
}
|
|
160
437
|
|
|
438
|
+
/* ========================================
|
|
439
|
+
FORMS
|
|
440
|
+
======================================== */
|
|
161
441
|
.form-group {
|
|
162
|
-
margin-bottom:
|
|
442
|
+
margin-bottom: 1.25rem;
|
|
163
443
|
}
|
|
164
444
|
|
|
165
445
|
label {
|
|
166
446
|
display: block;
|
|
447
|
+
font-family: var(--font-sans);
|
|
167
448
|
font-weight: 500;
|
|
449
|
+
font-size: 0.9rem;
|
|
168
450
|
margin-bottom: 0.5rem;
|
|
451
|
+
color: var(--text);
|
|
169
452
|
}
|
|
170
453
|
|
|
171
454
|
input[type="text"],
|
|
172
455
|
input[type="password"],
|
|
456
|
+
input[type="email"],
|
|
173
457
|
input[type="file"],
|
|
174
458
|
select {
|
|
175
459
|
width: 100%;
|
|
176
|
-
padding: 0.
|
|
460
|
+
padding: 0.875rem 1rem;
|
|
177
461
|
border: 1px solid var(--border);
|
|
178
|
-
border-radius:
|
|
179
|
-
font-
|
|
180
|
-
|
|
462
|
+
border-radius: 10px;
|
|
463
|
+
font-family: var(--font-sans);
|
|
464
|
+
font-size: 0.95rem;
|
|
465
|
+
background: var(--card-bg);
|
|
466
|
+
color: var(--text);
|
|
467
|
+
transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
input::placeholder,
|
|
471
|
+
select::placeholder {
|
|
472
|
+
color: var(--text-subtle);
|
|
181
473
|
}
|
|
182
474
|
|
|
183
475
|
input:focus,
|
|
184
476
|
select:focus {
|
|
185
477
|
outline: none;
|
|
186
478
|
border-color: var(--primary);
|
|
479
|
+
box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
[data-theme="dark"] input:focus,
|
|
483
|
+
[data-theme="dark"] select:focus {
|
|
484
|
+
box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.15);
|
|
187
485
|
}
|
|
188
486
|
|
|
189
487
|
/* Fix browser autofill/autocomplete styling */
|
|
@@ -191,9 +489,17 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
191
489
|
input:-webkit-autofill:hover,
|
|
192
490
|
input:-webkit-autofill:focus,
|
|
193
491
|
input:-webkit-autofill:active {
|
|
194
|
-
-webkit-box-shadow: 0 0 0 30px
|
|
195
|
-
-webkit-text-fill-color:
|
|
196
|
-
caret-color:
|
|
492
|
+
-webkit-box-shadow: 0 0 0 30px var(--card-bg) inset !important;
|
|
493
|
+
-webkit-text-fill-color: var(--text) !important;
|
|
494
|
+
caret-color: var(--text) !important;
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
small {
|
|
498
|
+
display: block;
|
|
499
|
+
font-size: 0.8rem;
|
|
500
|
+
color: var(--text-muted);
|
|
501
|
+
margin-top: 0.375rem;
|
|
502
|
+
line-height: 1.4;
|
|
197
503
|
}
|
|
198
504
|
|
|
199
505
|
.checkbox-group {
|
|
@@ -206,28 +512,42 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
206
512
|
display: flex;
|
|
207
513
|
align-items: center;
|
|
208
514
|
gap: 0.5rem;
|
|
515
|
+
cursor: pointer;
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
.checkbox-item input[type="checkbox"] {
|
|
519
|
+
width: 18px;
|
|
520
|
+
height: 18px;
|
|
521
|
+
accent-color: var(--primary);
|
|
522
|
+
cursor: pointer;
|
|
209
523
|
}
|
|
210
524
|
|
|
211
|
-
/*
|
|
525
|
+
/* ========================================
|
|
526
|
+
INFRASTRUCTURE INFO SECTION
|
|
527
|
+
======================================== */
|
|
212
528
|
.infra-section {
|
|
213
|
-
background:
|
|
214
|
-
border: 1px solid var(--border);
|
|
215
|
-
border-radius:
|
|
216
|
-
padding:
|
|
217
|
-
margin-bottom:
|
|
529
|
+
background: var(--bg-secondary);
|
|
530
|
+
border: 1px solid var(--border-light);
|
|
531
|
+
border-radius: 12px;
|
|
532
|
+
padding: 1.25rem;
|
|
533
|
+
margin-bottom: 1.25rem;
|
|
218
534
|
}
|
|
219
535
|
|
|
220
536
|
.infra-section h4 {
|
|
221
|
-
margin: 0 0 0.
|
|
222
|
-
font-
|
|
537
|
+
margin: 0 0 0.875rem 0;
|
|
538
|
+
font-family: var(--font-sans);
|
|
539
|
+
font-size: 0.85rem;
|
|
540
|
+
font-weight: 600;
|
|
223
541
|
color: var(--text-muted);
|
|
542
|
+
text-transform: uppercase;
|
|
543
|
+
letter-spacing: 0.04em;
|
|
224
544
|
}
|
|
225
545
|
|
|
226
546
|
.infra-item {
|
|
227
547
|
display: flex;
|
|
228
548
|
justify-content: space-between;
|
|
229
|
-
padding: 0.
|
|
230
|
-
font-size: 0.
|
|
549
|
+
padding: 0.375rem 0;
|
|
550
|
+
font-size: 0.875rem;
|
|
231
551
|
}
|
|
232
552
|
|
|
233
553
|
.infra-label {
|
|
@@ -235,22 +555,27 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
235
555
|
}
|
|
236
556
|
|
|
237
557
|
.infra-value {
|
|
238
|
-
font-family:
|
|
558
|
+
font-family: var(--font-mono);
|
|
559
|
+
font-size: 0.8rem;
|
|
239
560
|
color: var(--primary);
|
|
240
561
|
}
|
|
241
562
|
|
|
242
|
-
/*
|
|
563
|
+
/* ========================================
|
|
564
|
+
DOMAIN CONFIGURATION SECTION
|
|
565
|
+
======================================== */
|
|
243
566
|
.domain-section {
|
|
244
|
-
background: var(--bg);
|
|
245
|
-
border: 1px solid var(--border);
|
|
246
|
-
border-radius:
|
|
247
|
-
padding:
|
|
248
|
-
margin-bottom:
|
|
567
|
+
background: var(--bg-secondary);
|
|
568
|
+
border: 1px solid var(--border-light);
|
|
569
|
+
border-radius: 12px;
|
|
570
|
+
padding: 1.25rem;
|
|
571
|
+
margin-bottom: 1.25rem;
|
|
249
572
|
}
|
|
250
573
|
|
|
251
574
|
.domain-section h4 {
|
|
252
|
-
margin: 0 0 0.
|
|
253
|
-
font-
|
|
575
|
+
margin: 0 0 0.625rem 0;
|
|
576
|
+
font-family: var(--font-sans);
|
|
577
|
+
font-size: 1rem;
|
|
578
|
+
font-weight: 600;
|
|
254
579
|
color: var(--text);
|
|
255
580
|
display: flex;
|
|
256
581
|
align-items: center;
|
|
@@ -261,9 +586,14 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
261
586
|
font-size: 0.8rem;
|
|
262
587
|
color: var(--text-muted);
|
|
263
588
|
margin-bottom: 1rem;
|
|
264
|
-
padding: 0.
|
|
265
|
-
background:
|
|
266
|
-
border-radius:
|
|
589
|
+
padding: 0.625rem 0.75rem;
|
|
590
|
+
background: rgba(37, 99, 235, 0.06);
|
|
591
|
+
border-radius: 8px;
|
|
592
|
+
line-height: 1.5;
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
[data-theme="dark"] .domain-section .section-hint {
|
|
596
|
+
background: rgba(96, 165, 250, 0.1);
|
|
267
597
|
}
|
|
268
598
|
|
|
269
599
|
.domain-row {
|
|
@@ -294,14 +624,15 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
294
624
|
|
|
295
625
|
.domain-default {
|
|
296
626
|
position: absolute;
|
|
297
|
-
right:
|
|
627
|
+
right: 12px;
|
|
298
628
|
top: 50%;
|
|
299
629
|
transform: translateY(-50%);
|
|
300
|
-
font-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
630
|
+
font-family: var(--font-mono);
|
|
631
|
+
font-size: 0.65rem;
|
|
632
|
+
color: var(--text-subtle);
|
|
633
|
+
background: var(--bg);
|
|
634
|
+
padding: 3px 8px;
|
|
635
|
+
border-radius: 5px;
|
|
305
636
|
max-width: 160px;
|
|
306
637
|
overflow: hidden;
|
|
307
638
|
text-overflow: ellipsis;
|
|
@@ -309,11 +640,15 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
309
640
|
}
|
|
310
641
|
|
|
311
642
|
.issuer-preview {
|
|
312
|
-
margin-top: 0.
|
|
313
|
-
padding: 0.
|
|
314
|
-
background:
|
|
315
|
-
border-radius:
|
|
316
|
-
font-size: 0.
|
|
643
|
+
margin-top: 0.875rem;
|
|
644
|
+
padding: 0.625rem 0.75rem;
|
|
645
|
+
background: rgba(5, 150, 105, 0.08);
|
|
646
|
+
border-radius: 8px;
|
|
647
|
+
font-size: 0.875rem;
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
[data-theme="dark"] .issuer-preview {
|
|
651
|
+
background: rgba(52, 211, 153, 0.1);
|
|
317
652
|
}
|
|
318
653
|
|
|
319
654
|
.issuer-preview .label {
|
|
@@ -322,82 +657,101 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
322
657
|
}
|
|
323
658
|
|
|
324
659
|
.issuer-preview .value {
|
|
325
|
-
color:
|
|
326
|
-
font-family:
|
|
660
|
+
color: var(--success);
|
|
661
|
+
font-family: var(--font-mono);
|
|
662
|
+
font-size: 0.8rem;
|
|
327
663
|
word-break: break-all;
|
|
328
664
|
}
|
|
329
665
|
|
|
666
|
+
/* ========================================
|
|
667
|
+
BUTTONS
|
|
668
|
+
======================================== */
|
|
330
669
|
button {
|
|
331
|
-
padding: 0.
|
|
332
|
-
border-radius:
|
|
333
|
-
font-
|
|
334
|
-
font-
|
|
670
|
+
padding: 0.875rem 1.75rem;
|
|
671
|
+
border-radius: 10px;
|
|
672
|
+
font-family: var(--font-sans);
|
|
673
|
+
font-size: 0.95rem;
|
|
674
|
+
font-weight: 600;
|
|
335
675
|
cursor: pointer;
|
|
336
|
-
transition: all
|
|
676
|
+
transition: all var(--transition-fast);
|
|
337
677
|
border: none;
|
|
338
678
|
}
|
|
339
679
|
|
|
340
680
|
.btn-primary {
|
|
341
|
-
background: var(--primary);
|
|
681
|
+
background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
|
|
342
682
|
color: white;
|
|
683
|
+
box-shadow: 0 2px 8px rgba(37, 99, 235, 0.25);
|
|
343
684
|
}
|
|
344
685
|
|
|
345
686
|
.btn-primary:hover:not(:disabled) {
|
|
346
|
-
|
|
687
|
+
transform: translateY(-1px);
|
|
688
|
+
box-shadow: 0 4px 12px rgba(37, 99, 235, 0.35);
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
.btn-primary:active:not(:disabled) {
|
|
692
|
+
transform: translateY(0);
|
|
347
693
|
}
|
|
348
694
|
|
|
349
695
|
.btn-primary:disabled {
|
|
350
|
-
opacity: 0.
|
|
696
|
+
opacity: 0.5;
|
|
351
697
|
cursor: not-allowed;
|
|
698
|
+
box-shadow: none;
|
|
352
699
|
}
|
|
353
700
|
|
|
354
701
|
.btn-secondary {
|
|
355
|
-
background: var(--
|
|
702
|
+
background: var(--bg-secondary);
|
|
356
703
|
color: var(--text);
|
|
704
|
+
border: 1px solid var(--border);
|
|
357
705
|
}
|
|
358
706
|
|
|
359
707
|
.btn-secondary:hover {
|
|
360
|
-
background:
|
|
708
|
+
background: var(--border-light);
|
|
709
|
+
border-color: var(--border);
|
|
361
710
|
}
|
|
362
711
|
|
|
363
712
|
.button-group {
|
|
364
713
|
display: flex;
|
|
365
714
|
gap: 1rem;
|
|
366
|
-
margin-top:
|
|
715
|
+
margin-top: 2rem;
|
|
367
716
|
}
|
|
368
717
|
|
|
718
|
+
/* ========================================
|
|
719
|
+
PROGRESS LOG
|
|
720
|
+
======================================== */
|
|
369
721
|
.progress-log {
|
|
370
|
-
background: #
|
|
371
|
-
border-radius:
|
|
372
|
-
padding:
|
|
373
|
-
max-height:
|
|
722
|
+
background: #0f172a;
|
|
723
|
+
border-radius: 12px;
|
|
724
|
+
padding: 1.25rem;
|
|
725
|
+
max-height: 320px;
|
|
374
726
|
overflow-y: auto;
|
|
375
|
-
font-family:
|
|
376
|
-
font-size: 0.
|
|
727
|
+
font-family: var(--font-mono);
|
|
728
|
+
font-size: 0.8rem;
|
|
729
|
+
border: 1px solid #1e293b;
|
|
377
730
|
}
|
|
378
731
|
|
|
379
732
|
.progress-log pre {
|
|
380
733
|
color: #e2e8f0;
|
|
381
734
|
white-space: pre-wrap;
|
|
382
735
|
word-break: break-word;
|
|
736
|
+
line-height: 1.6;
|
|
383
737
|
}
|
|
384
738
|
|
|
385
739
|
/* Progress UI Components */
|
|
386
740
|
.progress-container {
|
|
387
|
-
margin:
|
|
741
|
+
margin: 1.25rem 0;
|
|
388
742
|
}
|
|
389
743
|
|
|
390
744
|
.progress-status {
|
|
391
745
|
display: flex;
|
|
392
746
|
align-items: center;
|
|
393
|
-
gap: 0.
|
|
394
|
-
margin-bottom:
|
|
747
|
+
gap: 0.875rem;
|
|
748
|
+
margin-bottom: 1rem;
|
|
395
749
|
}
|
|
396
750
|
|
|
397
751
|
.progress-status .spinner {
|
|
398
|
-
width:
|
|
399
|
-
height:
|
|
400
|
-
border: 2px solid
|
|
752
|
+
width: 22px;
|
|
753
|
+
height: 22px;
|
|
754
|
+
border: 2px solid var(--border);
|
|
401
755
|
border-top-color: var(--primary);
|
|
402
756
|
border-radius: 50%;
|
|
403
757
|
animation: spin 0.8s linear infinite;
|
|
@@ -408,126 +762,228 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
408
762
|
}
|
|
409
763
|
|
|
410
764
|
.progress-bar-wrapper {
|
|
411
|
-
background:
|
|
412
|
-
border-radius:
|
|
413
|
-
height:
|
|
765
|
+
background: var(--bg-secondary);
|
|
766
|
+
border-radius: 6px;
|
|
767
|
+
height: 10px;
|
|
414
768
|
overflow: hidden;
|
|
415
|
-
margin-bottom: 0.
|
|
769
|
+
margin-bottom: 0.625rem;
|
|
416
770
|
}
|
|
417
771
|
|
|
418
772
|
.progress-bar {
|
|
419
773
|
height: 100%;
|
|
420
|
-
background: var(--primary);
|
|
421
|
-
border-radius:
|
|
422
|
-
transition: width 0.
|
|
774
|
+
background: linear-gradient(90deg, var(--primary) 0%, var(--primary-light) 100%);
|
|
775
|
+
border-radius: 6px;
|
|
776
|
+
transition: width 0.4s ease;
|
|
423
777
|
}
|
|
424
778
|
|
|
425
779
|
.progress-text {
|
|
426
|
-
font-
|
|
780
|
+
font-family: var(--font-sans);
|
|
781
|
+
font-size: 0.85rem;
|
|
427
782
|
color: var(--text-muted);
|
|
428
783
|
}
|
|
429
784
|
|
|
430
785
|
.log-toggle {
|
|
431
|
-
display: flex;
|
|
786
|
+
display: inline-flex;
|
|
432
787
|
align-items: center;
|
|
433
788
|
gap: 0.5rem;
|
|
434
|
-
padding: 0.
|
|
435
|
-
background:
|
|
436
|
-
border: 1px solid var(--border);
|
|
437
|
-
border-radius:
|
|
789
|
+
padding: 0.625rem 1rem;
|
|
790
|
+
background: var(--bg-secondary);
|
|
791
|
+
border: 1px solid var(--border-light);
|
|
792
|
+
border-radius: 8px;
|
|
438
793
|
cursor: pointer;
|
|
439
|
-
font-
|
|
794
|
+
font-family: var(--font-sans);
|
|
795
|
+
font-size: 0.85rem;
|
|
440
796
|
color: var(--text-muted);
|
|
441
797
|
margin-top: 1rem;
|
|
798
|
+
transition: all var(--transition-fast);
|
|
442
799
|
}
|
|
443
800
|
|
|
444
801
|
.log-toggle:hover {
|
|
445
|
-
background:
|
|
802
|
+
background: var(--border-light);
|
|
803
|
+
color: var(--text);
|
|
446
804
|
}
|
|
447
805
|
|
|
448
806
|
.log-toggle .arrow {
|
|
449
|
-
transition: transform
|
|
807
|
+
transition: transform var(--transition-fast);
|
|
450
808
|
}
|
|
451
809
|
|
|
452
810
|
.log-toggle.open .arrow {
|
|
453
811
|
transform: rotate(90deg);
|
|
454
812
|
}
|
|
455
813
|
|
|
814
|
+
/* ========================================
|
|
815
|
+
STEP INDICATOR - Refined Minimal Design
|
|
816
|
+
======================================== */
|
|
456
817
|
.step-indicator {
|
|
818
|
+
position: relative;
|
|
457
819
|
display: flex;
|
|
458
820
|
justify-content: center;
|
|
459
|
-
|
|
460
|
-
|
|
821
|
+
align-items: center;
|
|
822
|
+
gap: 0;
|
|
823
|
+
margin-bottom: 2.5rem;
|
|
824
|
+
padding: 0.75rem 0;
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
/* The connecting line */
|
|
828
|
+
.step-indicator::before {
|
|
829
|
+
content: '';
|
|
830
|
+
position: absolute;
|
|
831
|
+
top: 50%;
|
|
832
|
+
left: 50%;
|
|
833
|
+
transform: translate(-50%, -50%);
|
|
834
|
+
width: calc(100% - 80px);
|
|
835
|
+
max-width: 500px;
|
|
836
|
+
height: 1px;
|
|
837
|
+
background: var(--border);
|
|
461
838
|
}
|
|
462
839
|
|
|
463
840
|
.step {
|
|
464
|
-
|
|
465
|
-
|
|
841
|
+
position: relative;
|
|
842
|
+
z-index: 1;
|
|
843
|
+
width: 28px;
|
|
844
|
+
height: 28px;
|
|
466
845
|
border-radius: 50%;
|
|
467
846
|
display: flex;
|
|
468
847
|
align-items: center;
|
|
469
848
|
justify-content: center;
|
|
470
|
-
font-
|
|
471
|
-
font-
|
|
849
|
+
font-family: var(--font-sans);
|
|
850
|
+
font-weight: 500;
|
|
851
|
+
font-size: 0.7rem;
|
|
852
|
+
background: var(--bg);
|
|
853
|
+
transition: all var(--transition-base);
|
|
472
854
|
}
|
|
473
855
|
|
|
474
856
|
.step-active {
|
|
475
|
-
|
|
476
|
-
|
|
857
|
+
width: 32px;
|
|
858
|
+
height: 32px;
|
|
859
|
+
background: var(--text);
|
|
860
|
+
color: var(--bg);
|
|
861
|
+
font-weight: 600;
|
|
862
|
+
font-size: 0.75rem;
|
|
863
|
+
box-shadow: 0 0 0 4px var(--bg), 0 0 0 5px var(--text);
|
|
864
|
+
}
|
|
865
|
+
|
|
866
|
+
[data-theme="dark"] .step-active {
|
|
867
|
+
background: var(--splash-text);
|
|
868
|
+
color: var(--bg);
|
|
869
|
+
box-shadow: 0 0 0 4px var(--bg), 0 0 0 5px var(--splash-text);
|
|
477
870
|
}
|
|
478
871
|
|
|
479
872
|
.step-complete {
|
|
480
|
-
background: var(--
|
|
481
|
-
color:
|
|
873
|
+
background: var(--text);
|
|
874
|
+
color: var(--bg);
|
|
875
|
+
font-size: 0;
|
|
876
|
+
}
|
|
877
|
+
|
|
878
|
+
.step-complete::after {
|
|
879
|
+
content: '✓';
|
|
880
|
+
font-size: 0.7rem;
|
|
881
|
+
}
|
|
882
|
+
|
|
883
|
+
[data-theme="dark"] .step-complete {
|
|
884
|
+
background: var(--splash-text);
|
|
885
|
+
color: var(--bg);
|
|
482
886
|
}
|
|
483
887
|
|
|
484
888
|
.step-pending {
|
|
485
|
-
background: var(--
|
|
486
|
-
color: var(--text-
|
|
889
|
+
background: var(--bg);
|
|
890
|
+
color: var(--text-subtle);
|
|
891
|
+
border: 1px solid var(--border);
|
|
487
892
|
}
|
|
488
893
|
|
|
489
894
|
.step-connector {
|
|
490
895
|
width: 40px;
|
|
491
|
-
height:
|
|
492
|
-
background:
|
|
896
|
+
height: 1px;
|
|
897
|
+
background: transparent;
|
|
493
898
|
align-self: center;
|
|
494
899
|
}
|
|
495
900
|
|
|
901
|
+
/* ========================================
|
|
902
|
+
ALERTS
|
|
903
|
+
======================================== */
|
|
496
904
|
.alert {
|
|
497
|
-
padding: 1rem;
|
|
498
|
-
border-radius:
|
|
499
|
-
margin-bottom:
|
|
905
|
+
padding: 1rem 1.25rem;
|
|
906
|
+
border-radius: 10px;
|
|
907
|
+
margin-bottom: 1.25rem;
|
|
908
|
+
font-size: 0.9rem;
|
|
909
|
+
line-height: 1.5;
|
|
500
910
|
}
|
|
501
911
|
|
|
502
|
-
.alert-success {
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
912
|
+
.alert-success {
|
|
913
|
+
background: rgba(5, 150, 105, 0.08);
|
|
914
|
+
color: var(--success);
|
|
915
|
+
border: 1px solid rgba(5, 150, 105, 0.2);
|
|
916
|
+
}
|
|
917
|
+
.alert-error {
|
|
918
|
+
background: rgba(220, 38, 38, 0.08);
|
|
919
|
+
color: var(--error);
|
|
920
|
+
border: 1px solid rgba(220, 38, 38, 0.2);
|
|
921
|
+
}
|
|
922
|
+
.alert-warning {
|
|
923
|
+
background: rgba(217, 119, 6, 0.08);
|
|
924
|
+
color: var(--warning);
|
|
925
|
+
border: 1px solid rgba(217, 119, 6, 0.2);
|
|
926
|
+
}
|
|
927
|
+
.alert-info {
|
|
928
|
+
background: rgba(37, 99, 235, 0.06);
|
|
929
|
+
color: var(--primary);
|
|
930
|
+
border: 1px solid rgba(37, 99, 235, 0.15);
|
|
931
|
+
}
|
|
932
|
+
|
|
933
|
+
[data-theme="dark"] .alert-success {
|
|
934
|
+
background: rgba(52, 211, 153, 0.1);
|
|
935
|
+
border-color: rgba(52, 211, 153, 0.25);
|
|
936
|
+
}
|
|
937
|
+
[data-theme="dark"] .alert-error {
|
|
938
|
+
background: rgba(248, 113, 113, 0.1);
|
|
939
|
+
border-color: rgba(248, 113, 113, 0.25);
|
|
940
|
+
}
|
|
941
|
+
[data-theme="dark"] .alert-warning {
|
|
942
|
+
background: rgba(251, 191, 36, 0.1);
|
|
943
|
+
border-color: rgba(251, 191, 36, 0.25);
|
|
944
|
+
}
|
|
945
|
+
[data-theme="dark"] .alert-info {
|
|
946
|
+
background: rgba(96, 165, 250, 0.1);
|
|
947
|
+
border-color: rgba(96, 165, 250, 0.2);
|
|
948
|
+
}
|
|
506
949
|
|
|
950
|
+
/* ========================================
|
|
951
|
+
URL DISPLAY
|
|
952
|
+
======================================== */
|
|
507
953
|
.url-display {
|
|
508
|
-
background: var(--bg);
|
|
509
|
-
padding:
|
|
510
|
-
border-radius:
|
|
511
|
-
margin-top:
|
|
954
|
+
background: var(--bg-secondary);
|
|
955
|
+
padding: 1.25rem;
|
|
956
|
+
border-radius: 12px;
|
|
957
|
+
margin-top: 1.25rem;
|
|
958
|
+
border: 1px solid var(--border-light);
|
|
512
959
|
}
|
|
513
960
|
|
|
514
961
|
.url-item {
|
|
515
962
|
display: flex;
|
|
516
|
-
gap: 0.
|
|
517
|
-
margin-bottom: 0.
|
|
963
|
+
gap: 0.75rem;
|
|
964
|
+
margin-bottom: 0.625rem;
|
|
965
|
+
align-items: baseline;
|
|
518
966
|
}
|
|
519
967
|
|
|
520
968
|
.url-label {
|
|
521
|
-
font-
|
|
522
|
-
|
|
969
|
+
font-family: var(--font-sans);
|
|
970
|
+
font-weight: 600;
|
|
971
|
+
font-size: 0.85rem;
|
|
972
|
+
min-width: 110px;
|
|
973
|
+
color: var(--text-muted);
|
|
523
974
|
}
|
|
524
975
|
|
|
525
976
|
.url-value {
|
|
977
|
+
font-family: var(--font-mono);
|
|
978
|
+
font-size: 0.8rem;
|
|
526
979
|
color: var(--primary);
|
|
527
980
|
word-break: break-all;
|
|
528
981
|
overflow-wrap: break-word;
|
|
529
982
|
}
|
|
530
983
|
|
|
984
|
+
/* ========================================
|
|
985
|
+
FILE INPUT
|
|
986
|
+
======================================== */
|
|
531
987
|
.file-input-wrapper {
|
|
532
988
|
position: relative;
|
|
533
989
|
overflow: hidden;
|
|
@@ -545,74 +1001,92 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
545
1001
|
}
|
|
546
1002
|
|
|
547
1003
|
.file-input-btn {
|
|
548
|
-
display: inline-
|
|
549
|
-
|
|
550
|
-
|
|
1004
|
+
display: inline-flex;
|
|
1005
|
+
align-items: center;
|
|
1006
|
+
gap: 0.5rem;
|
|
1007
|
+
padding: 0.875rem 1.5rem;
|
|
1008
|
+
background: var(--bg-secondary);
|
|
551
1009
|
color: var(--text);
|
|
552
|
-
border
|
|
1010
|
+
border: 1px solid var(--border);
|
|
1011
|
+
border-radius: 10px;
|
|
553
1012
|
cursor: pointer;
|
|
1013
|
+
font-family: var(--font-sans);
|
|
1014
|
+
font-weight: 500;
|
|
1015
|
+
transition: all var(--transition-fast);
|
|
554
1016
|
}
|
|
555
1017
|
|
|
556
1018
|
.file-input-btn:hover {
|
|
557
|
-
background:
|
|
1019
|
+
background: var(--border-light);
|
|
1020
|
+
border-color: var(--primary);
|
|
558
1021
|
}
|
|
559
1022
|
|
|
560
1023
|
.config-preview {
|
|
561
|
-
background: var(--bg);
|
|
562
|
-
border
|
|
1024
|
+
background: var(--bg-secondary);
|
|
1025
|
+
border: 1px solid var(--border-light);
|
|
1026
|
+
border-radius: 10px;
|
|
563
1027
|
padding: 1rem;
|
|
564
1028
|
margin-top: 1rem;
|
|
565
|
-
font-family:
|
|
566
|
-
font-size: 0.
|
|
1029
|
+
font-family: var(--font-mono);
|
|
1030
|
+
font-size: 0.75rem;
|
|
567
1031
|
max-height: 200px;
|
|
568
1032
|
overflow-y: auto;
|
|
1033
|
+
line-height: 1.5;
|
|
569
1034
|
}
|
|
570
1035
|
|
|
571
1036
|
.hidden { display: none; }
|
|
572
1037
|
|
|
573
|
-
/*
|
|
1038
|
+
/* ========================================
|
|
1039
|
+
MODAL
|
|
1040
|
+
======================================== */
|
|
574
1041
|
.modal {
|
|
575
1042
|
position: fixed;
|
|
576
|
-
|
|
577
|
-
left: 0;
|
|
578
|
-
right: 0;
|
|
579
|
-
bottom: 0;
|
|
1043
|
+
inset: 0;
|
|
580
1044
|
z-index: 1000;
|
|
581
1045
|
display: flex;
|
|
582
1046
|
align-items: center;
|
|
583
1047
|
justify-content: center;
|
|
584
1048
|
}
|
|
585
1049
|
.modal.hidden { display: none; }
|
|
1050
|
+
|
|
586
1051
|
.modal-backdrop {
|
|
587
1052
|
position: absolute;
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
bottom: 0;
|
|
592
|
-
background: rgba(0, 0, 0, 0.5);
|
|
1053
|
+
inset: 0;
|
|
1054
|
+
background: rgba(0, 0, 0, 0.6);
|
|
1055
|
+
backdrop-filter: blur(4px);
|
|
593
1056
|
}
|
|
1057
|
+
|
|
594
1058
|
.modal-content {
|
|
595
1059
|
position: relative;
|
|
596
1060
|
background: var(--card-bg);
|
|
597
|
-
border-radius:
|
|
598
|
-
padding:
|
|
599
|
-
max-width:
|
|
1061
|
+
border-radius: 16px;
|
|
1062
|
+
padding: 2rem;
|
|
1063
|
+
max-width: 460px;
|
|
600
1064
|
width: 90%;
|
|
601
|
-
box-shadow:
|
|
1065
|
+
box-shadow: var(--shadow-lg);
|
|
1066
|
+
border: 1px solid var(--border-light);
|
|
602
1067
|
}
|
|
603
1068
|
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
border-radius: 8px;
|
|
609
|
-
padding: 1rem;
|
|
1069
|
+
.modal-content h3 {
|
|
1070
|
+
font-family: var(--font-sans);
|
|
1071
|
+
font-size: 1.25rem;
|
|
1072
|
+
font-weight: 600;
|
|
610
1073
|
margin-bottom: 1rem;
|
|
611
1074
|
}
|
|
612
1075
|
|
|
1076
|
+
/* ========================================
|
|
1077
|
+
RESOURCE PREVIEW
|
|
1078
|
+
======================================== */
|
|
1079
|
+
.resource-preview {
|
|
1080
|
+
background: var(--bg-secondary);
|
|
1081
|
+
border: 1px solid var(--border-light);
|
|
1082
|
+
border-radius: 12px;
|
|
1083
|
+
padding: 1.25rem;
|
|
1084
|
+
margin-bottom: 1.25rem;
|
|
1085
|
+
}
|
|
1086
|
+
|
|
613
1087
|
.resource-list {
|
|
614
1088
|
display: grid;
|
|
615
|
-
gap:
|
|
1089
|
+
gap: 1.25rem;
|
|
616
1090
|
}
|
|
617
1091
|
|
|
618
1092
|
.resource-category {
|
|
@@ -621,6 +1095,8 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
621
1095
|
|
|
622
1096
|
.resource-category strong {
|
|
623
1097
|
display: block;
|
|
1098
|
+
font-family: var(--font-sans);
|
|
1099
|
+
font-weight: 600;
|
|
624
1100
|
margin-bottom: 0.5rem;
|
|
625
1101
|
color: var(--text);
|
|
626
1102
|
}
|
|
@@ -632,9 +1108,9 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
632
1108
|
}
|
|
633
1109
|
|
|
634
1110
|
.resource-category li {
|
|
635
|
-
font-family:
|
|
636
|
-
font-size: 0.
|
|
637
|
-
margin-bottom: 0.
|
|
1111
|
+
font-family: var(--font-mono);
|
|
1112
|
+
font-size: 0.75rem;
|
|
1113
|
+
margin-bottom: 0.3rem;
|
|
638
1114
|
}
|
|
639
1115
|
|
|
640
1116
|
/* Progress spinner */
|
|
@@ -658,6 +1134,8 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
658
1134
|
align-items: center;
|
|
659
1135
|
margin-bottom: 0.5rem;
|
|
660
1136
|
color: #e2e8f0;
|
|
1137
|
+
font-family: var(--font-mono);
|
|
1138
|
+
font-size: 0.8rem;
|
|
661
1139
|
}
|
|
662
1140
|
|
|
663
1141
|
.progress-item.complete {
|
|
@@ -668,28 +1146,32 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
668
1146
|
color: var(--error);
|
|
669
1147
|
}
|
|
670
1148
|
|
|
671
|
-
/*
|
|
1149
|
+
/* ========================================
|
|
1150
|
+
ENVIRONMENT CARDS
|
|
1151
|
+
======================================== */
|
|
672
1152
|
.env-cards {
|
|
673
1153
|
display: grid;
|
|
674
1154
|
gap: 1rem;
|
|
675
|
-
margin-bottom:
|
|
1155
|
+
margin-bottom: 1.25rem;
|
|
676
1156
|
}
|
|
677
1157
|
|
|
678
1158
|
.env-card {
|
|
679
|
-
|
|
680
|
-
border
|
|
681
|
-
|
|
1159
|
+
background: var(--card-bg);
|
|
1160
|
+
border: 1px solid var(--border-light);
|
|
1161
|
+
border-radius: 12px;
|
|
1162
|
+
padding: 1.25rem;
|
|
682
1163
|
display: flex;
|
|
683
1164
|
justify-content: space-between;
|
|
684
1165
|
align-items: center;
|
|
685
1166
|
cursor: pointer;
|
|
686
|
-
transition:
|
|
1167
|
+
transition: all var(--transition-fast);
|
|
687
1168
|
}
|
|
688
1169
|
|
|
689
1170
|
.env-card:hover {
|
|
690
1171
|
border-color: var(--primary);
|
|
691
|
-
background:
|
|
692
|
-
box-shadow:
|
|
1172
|
+
background: var(--card-bg-hover);
|
|
1173
|
+
box-shadow: var(--shadow-md);
|
|
1174
|
+
transform: translateY(-1px);
|
|
693
1175
|
}
|
|
694
1176
|
|
|
695
1177
|
.env-card-info {
|
|
@@ -697,14 +1179,16 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
697
1179
|
}
|
|
698
1180
|
|
|
699
1181
|
.env-card-name {
|
|
1182
|
+
font-family: var(--font-sans);
|
|
700
1183
|
font-size: 1.1rem;
|
|
701
1184
|
font-weight: 600;
|
|
702
1185
|
margin-bottom: 0.5rem;
|
|
1186
|
+
color: var(--text);
|
|
703
1187
|
}
|
|
704
1188
|
|
|
705
1189
|
.env-card-stats {
|
|
706
1190
|
display: flex;
|
|
707
|
-
gap:
|
|
1191
|
+
gap: 1.25rem;
|
|
708
1192
|
font-size: 0.8rem;
|
|
709
1193
|
color: var(--text-muted);
|
|
710
1194
|
}
|
|
@@ -712,70 +1196,79 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
712
1196
|
.env-card-stat {
|
|
713
1197
|
display: flex;
|
|
714
1198
|
align-items: center;
|
|
715
|
-
gap: 0.
|
|
1199
|
+
gap: 0.375rem;
|
|
716
1200
|
}
|
|
717
1201
|
|
|
718
1202
|
.env-card-actions {
|
|
719
1203
|
display: flex;
|
|
720
|
-
gap: 0.
|
|
1204
|
+
gap: 0.625rem;
|
|
721
1205
|
}
|
|
722
1206
|
|
|
723
1207
|
.btn-danger {
|
|
724
1208
|
background: var(--error);
|
|
725
1209
|
color: white;
|
|
726
|
-
padding: 0.
|
|
727
|
-
font-size: 0.
|
|
1210
|
+
padding: 0.625rem 1rem;
|
|
1211
|
+
font-size: 0.85rem;
|
|
1212
|
+
border-radius: 8px;
|
|
728
1213
|
}
|
|
729
1214
|
|
|
730
1215
|
.btn-danger:hover {
|
|
731
|
-
background: #
|
|
1216
|
+
background: #b91c1c;
|
|
1217
|
+
transform: translateY(-1px);
|
|
732
1218
|
}
|
|
733
1219
|
|
|
734
1220
|
.btn-info {
|
|
735
1221
|
background: var(--primary);
|
|
736
1222
|
color: white;
|
|
737
|
-
padding: 0.
|
|
738
|
-
font-size: 0.
|
|
1223
|
+
padding: 0.625rem 1rem;
|
|
1224
|
+
font-size: 0.85rem;
|
|
1225
|
+
border-radius: 8px;
|
|
739
1226
|
}
|
|
740
1227
|
|
|
741
1228
|
.btn-info:hover {
|
|
742
1229
|
background: var(--primary-dark);
|
|
1230
|
+
transform: translateY(-1px);
|
|
743
1231
|
}
|
|
744
1232
|
|
|
745
|
-
/*
|
|
1233
|
+
/* ========================================
|
|
1234
|
+
RESOURCE LIST (Details view)
|
|
1235
|
+
======================================== */
|
|
746
1236
|
.resource-section {
|
|
747
|
-
margin-bottom: 1.
|
|
1237
|
+
margin-bottom: 1.75rem;
|
|
748
1238
|
}
|
|
749
1239
|
|
|
750
1240
|
.resource-section-title {
|
|
1241
|
+
font-family: var(--font-sans);
|
|
751
1242
|
font-size: 1rem;
|
|
752
1243
|
font-weight: 600;
|
|
753
|
-
margin-bottom: 0.
|
|
1244
|
+
margin-bottom: 0.875rem;
|
|
754
1245
|
display: flex;
|
|
755
1246
|
align-items: center;
|
|
756
1247
|
gap: 0.5rem;
|
|
1248
|
+
color: var(--text);
|
|
757
1249
|
}
|
|
758
1250
|
|
|
759
1251
|
.resource-section-title .count {
|
|
760
1252
|
font-size: 0.8rem;
|
|
761
1253
|
color: var(--text-muted);
|
|
762
|
-
font-weight:
|
|
1254
|
+
font-weight: 500;
|
|
763
1255
|
}
|
|
764
1256
|
|
|
765
1257
|
.resource-list {
|
|
766
|
-
background: var(--bg);
|
|
767
|
-
border-radius:
|
|
768
|
-
padding: 0.
|
|
1258
|
+
background: var(--bg-secondary);
|
|
1259
|
+
border-radius: 10px;
|
|
1260
|
+
padding: 0.875rem;
|
|
1261
|
+
border: 1px solid var(--border-light);
|
|
769
1262
|
}
|
|
770
1263
|
|
|
771
1264
|
.resource-item {
|
|
772
|
-
font-family:
|
|
773
|
-
font-size: 0.
|
|
774
|
-
padding: 0.
|
|
775
|
-
margin-bottom: 0.
|
|
1265
|
+
font-family: var(--font-mono);
|
|
1266
|
+
font-size: 0.75rem;
|
|
1267
|
+
padding: 0.5rem 0.75rem;
|
|
1268
|
+
margin-bottom: 0.375rem;
|
|
776
1269
|
background: var(--card-bg);
|
|
777
|
-
border-radius:
|
|
778
|
-
border: 1px solid var(--border);
|
|
1270
|
+
border-radius: 6px;
|
|
1271
|
+
border: 1px solid var(--border-light);
|
|
779
1272
|
}
|
|
780
1273
|
|
|
781
1274
|
.resource-item:last-child {
|
|
@@ -783,14 +1276,14 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
783
1276
|
}
|
|
784
1277
|
|
|
785
1278
|
.resource-item-name {
|
|
786
|
-
font-weight:
|
|
1279
|
+
font-weight: 600;
|
|
787
1280
|
}
|
|
788
1281
|
|
|
789
1282
|
.resource-item-details {
|
|
790
|
-
font-size: 0.
|
|
1283
|
+
font-size: 0.7rem;
|
|
791
1284
|
color: var(--text-muted);
|
|
792
1285
|
margin-top: 0.25rem;
|
|
793
|
-
font-family: -
|
|
1286
|
+
font-family: var(--font-sans);
|
|
794
1287
|
}
|
|
795
1288
|
|
|
796
1289
|
.resource-item-details span {
|
|
@@ -817,29 +1310,35 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
817
1310
|
font-size: 0.875rem;
|
|
818
1311
|
}
|
|
819
1312
|
|
|
820
|
-
/*
|
|
1313
|
+
/* ========================================
|
|
1314
|
+
DELETE OPTIONS
|
|
1315
|
+
======================================== */
|
|
821
1316
|
.delete-options {
|
|
822
1317
|
display: grid;
|
|
823
|
-
gap: 0.
|
|
1318
|
+
gap: 0.875rem;
|
|
824
1319
|
}
|
|
825
1320
|
|
|
826
1321
|
.delete-option {
|
|
827
1322
|
display: flex;
|
|
828
1323
|
align-items: center;
|
|
829
|
-
gap: 0.
|
|
830
|
-
padding:
|
|
831
|
-
border: 1px solid var(--border);
|
|
832
|
-
border-radius:
|
|
1324
|
+
gap: 0.875rem;
|
|
1325
|
+
padding: 1rem;
|
|
1326
|
+
border: 1px solid var(--border-light);
|
|
1327
|
+
border-radius: 10px;
|
|
833
1328
|
cursor: pointer;
|
|
1329
|
+
background: var(--card-bg);
|
|
1330
|
+
transition: all var(--transition-fast);
|
|
834
1331
|
}
|
|
835
1332
|
|
|
836
1333
|
.delete-option:hover {
|
|
837
|
-
background: var(--bg);
|
|
1334
|
+
background: var(--bg-secondary);
|
|
1335
|
+
border-color: var(--border);
|
|
838
1336
|
}
|
|
839
1337
|
|
|
840
1338
|
.delete-option input[type="checkbox"] {
|
|
841
1339
|
width: 18px;
|
|
842
1340
|
height: 18px;
|
|
1341
|
+
accent-color: var(--error);
|
|
843
1342
|
}
|
|
844
1343
|
|
|
845
1344
|
.delete-option span {
|
|
@@ -852,37 +1351,43 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
852
1351
|
font-size: 0.8rem;
|
|
853
1352
|
}
|
|
854
1353
|
|
|
855
|
-
/*
|
|
1354
|
+
/* ========================================
|
|
1355
|
+
DATABASE CONFIGURATION
|
|
1356
|
+
======================================== */
|
|
856
1357
|
.database-config-grid {
|
|
857
1358
|
display: grid;
|
|
858
1359
|
grid-template-columns: 1fr 1fr;
|
|
859
1360
|
gap: 1.5rem;
|
|
860
|
-
margin-bottom: 1.
|
|
1361
|
+
margin-bottom: 1.75rem;
|
|
861
1362
|
}
|
|
862
1363
|
|
|
863
1364
|
.database-config-stack {
|
|
864
1365
|
display: flex;
|
|
865
1366
|
flex-direction: column;
|
|
866
1367
|
gap: 1.5rem;
|
|
867
|
-
margin-bottom: 1.
|
|
1368
|
+
margin-bottom: 1.75rem;
|
|
868
1369
|
}
|
|
869
1370
|
|
|
870
1371
|
.database-card {
|
|
871
|
-
background: var(--bg);
|
|
872
|
-
border: 1px solid var(--border);
|
|
873
|
-
border-radius:
|
|
874
|
-
padding: 1.
|
|
1372
|
+
background: var(--bg-secondary);
|
|
1373
|
+
border: 1px solid var(--border-light);
|
|
1374
|
+
border-radius: 12px;
|
|
1375
|
+
padding: 1.5rem;
|
|
875
1376
|
}
|
|
876
1377
|
|
|
877
1378
|
.database-card h3 {
|
|
878
|
-
margin: 0 0
|
|
1379
|
+
margin: 0 0 1.125rem 0;
|
|
1380
|
+
font-family: var(--font-sans);
|
|
879
1381
|
font-size: 1.1rem;
|
|
1382
|
+
font-weight: 600;
|
|
1383
|
+
color: var(--text);
|
|
880
1384
|
}
|
|
881
1385
|
|
|
882
1386
|
.db-description {
|
|
883
1387
|
font-size: 0.875rem;
|
|
884
1388
|
color: var(--text-muted);
|
|
885
|
-
margin-bottom:
|
|
1389
|
+
margin-bottom: 1.25rem;
|
|
1390
|
+
line-height: 1.6;
|
|
886
1391
|
}
|
|
887
1392
|
|
|
888
1393
|
.db-description p {
|
|
@@ -895,21 +1400,28 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
895
1400
|
}
|
|
896
1401
|
|
|
897
1402
|
.db-description li {
|
|
898
|
-
margin-bottom: 0.
|
|
1403
|
+
margin-bottom: 0.3rem;
|
|
899
1404
|
}
|
|
900
1405
|
|
|
901
1406
|
.db-hint {
|
|
902
1407
|
font-style: italic;
|
|
903
|
-
margin-top: 0.
|
|
904
|
-
padding: 0.
|
|
905
|
-
background:
|
|
906
|
-
border-radius:
|
|
1408
|
+
margin-top: 0.875rem;
|
|
1409
|
+
padding: 0.625rem 0.75rem;
|
|
1410
|
+
background: rgba(37, 99, 235, 0.06);
|
|
1411
|
+
border-radius: 8px;
|
|
1412
|
+
font-size: 0.85rem;
|
|
1413
|
+
}
|
|
1414
|
+
|
|
1415
|
+
[data-theme="dark"] .db-hint {
|
|
1416
|
+
background: rgba(96, 165, 250, 0.1);
|
|
907
1417
|
}
|
|
908
1418
|
|
|
909
1419
|
.region-selection h4 {
|
|
910
|
-
margin: 0 0 0.
|
|
1420
|
+
margin: 0 0 0.875rem 0;
|
|
1421
|
+
font-family: var(--font-sans);
|
|
911
1422
|
font-size: 0.95rem;
|
|
912
1423
|
font-weight: 600;
|
|
1424
|
+
color: var(--text);
|
|
913
1425
|
}
|
|
914
1426
|
|
|
915
1427
|
.radio-group {
|
|
@@ -921,24 +1433,27 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
921
1433
|
.radio-item {
|
|
922
1434
|
display: flex;
|
|
923
1435
|
align-items: center;
|
|
924
|
-
gap: 0.
|
|
1436
|
+
gap: 0.625rem;
|
|
925
1437
|
cursor: pointer;
|
|
926
|
-
padding: 0.
|
|
1438
|
+
padding: 0.375rem 0;
|
|
1439
|
+
font-size: 0.9rem;
|
|
927
1440
|
}
|
|
928
1441
|
|
|
929
1442
|
.radio-item input[type="radio"] {
|
|
930
1443
|
margin: 0;
|
|
931
|
-
width:
|
|
932
|
-
height:
|
|
1444
|
+
width: 18px;
|
|
1445
|
+
height: 18px;
|
|
1446
|
+
accent-color: var(--primary);
|
|
933
1447
|
}
|
|
934
1448
|
|
|
935
1449
|
.radio-separator {
|
|
936
|
-
font-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
1450
|
+
font-family: var(--font-sans);
|
|
1451
|
+
font-size: 0.7rem;
|
|
1452
|
+
color: var(--text-subtle);
|
|
1453
|
+
margin: 0.75rem 0 0.375rem 0;
|
|
1454
|
+
font-weight: 600;
|
|
940
1455
|
text-transform: uppercase;
|
|
941
|
-
letter-spacing: 0.
|
|
1456
|
+
letter-spacing: 0.08em;
|
|
942
1457
|
}
|
|
943
1458
|
|
|
944
1459
|
@media (max-width: 768px) {
|
|
@@ -949,21 +1464,28 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
949
1464
|
</style>
|
|
950
1465
|
</head>
|
|
951
1466
|
<body>
|
|
1467
|
+
<!-- Background Typography -->
|
|
1468
|
+
<div class="bg-typography" aria-hidden="true">Authrim</div>
|
|
1469
|
+
|
|
1470
|
+
<!-- Splash Screen -->
|
|
1471
|
+
<div id="splash" class="splash">
|
|
1472
|
+
<div class="splash-content">
|
|
1473
|
+
<h1 class="splash-title">Authrim</h1>
|
|
1474
|
+
<p class="splash-tagline">Identity & Access Platform</p>
|
|
1475
|
+
<div class="splash-loader"></div>
|
|
1476
|
+
</div>
|
|
1477
|
+
</div>
|
|
1478
|
+
|
|
1479
|
+
<!-- Theme Toggle -->
|
|
1480
|
+
<button id="theme-toggle" class="theme-toggle" aria-label="Toggle theme">🌙</button>
|
|
1481
|
+
|
|
952
1482
|
<div class="container">
|
|
953
1483
|
<header>
|
|
954
|
-
<h1
|
|
1484
|
+
<h1>Authrim</h1>
|
|
1485
|
+
<p class="header-wizard">Setup Wizard</p>
|
|
955
1486
|
<p class="subtitle">OIDC Provider on Cloudflare Workers</p>
|
|
956
1487
|
</header>
|
|
957
1488
|
|
|
958
|
-
<!-- Development Warning Banner -->
|
|
959
|
-
<div style="background: #fef3c7; border: 2px solid #f59e0b; border-radius: 0.5rem; padding: 1rem; margin-bottom: 1.5rem; text-align: center;">
|
|
960
|
-
<strong style="color: #92400e;">⚠️ WARNING: Under Development!</strong>
|
|
961
|
-
<p style="color: #78350f; margin: 0.5rem 0 0 0; font-size: 0.875rem;">
|
|
962
|
-
This project is still under active development and does not work correctly yet.<br>
|
|
963
|
-
Admin UI is incomplete and does not support login functionality.
|
|
964
|
-
</p>
|
|
965
|
-
</div>
|
|
966
|
-
|
|
967
1489
|
<div class="step-indicator" id="step-indicator">
|
|
968
1490
|
<div class="step step-active" id="step-1">1</div>
|
|
969
1491
|
<div class="step-connector"></div>
|
|
@@ -1822,6 +2344,67 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
1822
2344
|
</div>
|
|
1823
2345
|
|
|
1824
2346
|
<script>
|
|
2347
|
+
// ========================================
|
|
2348
|
+
// THEME MANAGEMENT
|
|
2349
|
+
// ========================================
|
|
2350
|
+
function initTheme() {
|
|
2351
|
+
const savedTheme = localStorage.getItem('authrim-theme');
|
|
2352
|
+
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
2353
|
+
const theme = savedTheme || (prefersDark ? 'dark' : 'light');
|
|
2354
|
+
document.documentElement.setAttribute('data-theme', theme);
|
|
2355
|
+
updateThemeToggle(theme);
|
|
2356
|
+
}
|
|
2357
|
+
|
|
2358
|
+
function toggleTheme() {
|
|
2359
|
+
const current = document.documentElement.getAttribute('data-theme') || 'light';
|
|
2360
|
+
const newTheme = current === 'dark' ? 'light' : 'dark';
|
|
2361
|
+
document.documentElement.setAttribute('data-theme', newTheme);
|
|
2362
|
+
localStorage.setItem('authrim-theme', newTheme);
|
|
2363
|
+
updateThemeToggle(newTheme);
|
|
2364
|
+
}
|
|
2365
|
+
|
|
2366
|
+
function updateThemeToggle(theme) {
|
|
2367
|
+
const toggle = document.getElementById('theme-toggle');
|
|
2368
|
+
if (toggle) {
|
|
2369
|
+
toggle.textContent = theme === 'dark' ? '☀️' : '🌙';
|
|
2370
|
+
toggle.setAttribute('aria-label', theme === 'dark' ? 'Switch to light mode' : 'Switch to dark mode');
|
|
2371
|
+
}
|
|
2372
|
+
}
|
|
2373
|
+
|
|
2374
|
+
// Listen for system preference changes
|
|
2375
|
+
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {
|
|
2376
|
+
if (!localStorage.getItem('authrim-theme')) {
|
|
2377
|
+
const theme = e.matches ? 'dark' : 'light';
|
|
2378
|
+
document.documentElement.setAttribute('data-theme', theme);
|
|
2379
|
+
updateThemeToggle(theme);
|
|
2380
|
+
}
|
|
2381
|
+
});
|
|
2382
|
+
|
|
2383
|
+
// Initialize theme immediately
|
|
2384
|
+
initTheme();
|
|
2385
|
+
|
|
2386
|
+
// Theme toggle event
|
|
2387
|
+
document.getElementById('theme-toggle').addEventListener('click', toggleTheme);
|
|
2388
|
+
|
|
2389
|
+
// ========================================
|
|
2390
|
+
// SPLASH SCREEN
|
|
2391
|
+
// ========================================
|
|
2392
|
+
function hideSplash() {
|
|
2393
|
+
const splash = document.getElementById('splash');
|
|
2394
|
+
if (splash) {
|
|
2395
|
+
splash.classList.add('fade-out');
|
|
2396
|
+
setTimeout(() => {
|
|
2397
|
+
splash.style.display = 'none';
|
|
2398
|
+
}, 600);
|
|
2399
|
+
}
|
|
2400
|
+
}
|
|
2401
|
+
|
|
2402
|
+
// Hide splash after 2500ms
|
|
2403
|
+
setTimeout(hideSplash, 2500);
|
|
2404
|
+
|
|
2405
|
+
// ========================================
|
|
2406
|
+
// MAIN APPLICATION
|
|
2407
|
+
// ========================================
|
|
1825
2408
|
// Session token for API authentication (embedded by server)
|
|
1826
2409
|
const SESSION_TOKEN = '${safeToken}';
|
|
1827
2410
|
const MANAGE_ONLY = ${manageOnlyFlag};
|
|
@@ -2872,8 +3455,8 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
2872
3455
|
output.textContent += '\\n';
|
|
2873
3456
|
scrollToBottom(log);
|
|
2874
3457
|
|
|
2875
|
-
// Show keys saved location (
|
|
2876
|
-
keysPath.textContent = workingDirectory ? workingDirectory + '/.
|
|
3458
|
+
// Show keys saved location (new structure: .authrim/{env}/keys/)
|
|
3459
|
+
keysPath.textContent = workingDirectory ? workingDirectory + '/.authrim/' + config.env + '/keys/' : './.authrim/' + config.env + '/keys/';
|
|
2877
3460
|
|
|
2878
3461
|
// Provision resources
|
|
2879
3462
|
output.textContent += '☁️ Provisioning Cloudflare resources...\\n';
|
|
@@ -3049,7 +3632,7 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
3049
3632
|
|
|
3050
3633
|
output.textContent += ' API URL: ' + apiUrl + '\\n';
|
|
3051
3634
|
output.textContent += ' Login UI URL: ' + loginUiUrl + '\\n';
|
|
3052
|
-
output.textContent += ' Keys Dir: .
|
|
3635
|
+
output.textContent += ' Keys Dir: .authrim/' + config.env + '/keys/\\n';
|
|
3053
3636
|
scrollToBottom(log);
|
|
3054
3637
|
|
|
3055
3638
|
let adminSetupResult;
|
|
@@ -3059,7 +3642,7 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
3059
3642
|
body: {
|
|
3060
3643
|
env: config.env,
|
|
3061
3644
|
baseUrl: apiUrl, // Setup page is served by ar-auth worker (API)
|
|
3062
|
-
keysDir
|
|
3645
|
+
// keysDir is auto-detected by API using paths.ts
|
|
3063
3646
|
},
|
|
3064
3647
|
});
|
|
3065
3648
|
output.textContent += ' API Response: ' + JSON.stringify(adminSetupResult) + '\\n';
|
|
@@ -3180,8 +3763,8 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
3180
3763
|
|
|
3181
3764
|
// Resource naming functions
|
|
3182
3765
|
function getResourceNames(env) {
|
|
3183
|
-
// Keys are stored in environment-specific subdirectory: .
|
|
3184
|
-
const keysDir = workingDirectory ? workingDirectory + '/.
|
|
3766
|
+
// Keys are stored in environment-specific subdirectory: .authrim/{env}/keys/
|
|
3767
|
+
const keysDir = workingDirectory ? workingDirectory + '/.authrim/' + env + '/keys' : '.authrim/' + env + '/keys';
|
|
3185
3768
|
return {
|
|
3186
3769
|
d1: [
|
|
3187
3770
|
env + '-authrim-core-db',
|
|
@@ -3348,7 +3931,7 @@ export function getHtmlTemplate(sessionToken, manageOnly) {
|
|
|
3348
3931
|
policy: true,
|
|
3349
3932
|
},
|
|
3350
3933
|
keys: {
|
|
3351
|
-
secretsPath: '
|
|
3934
|
+
secretsPath: './keys/', // Relative path within .authrim/{env}/ structure
|
|
3352
3935
|
},
|
|
3353
3936
|
database: config.database || {
|
|
3354
3937
|
core: { location: 'auto', jurisdiction: 'none' },
|