codexmate 0.0.27 → 0.0.29
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/README.md +1 -1
- package/README.zh.md +1 -1
- package/cli/builtin-proxy.js +430 -4
- package/cli/openai-bridge.js +498 -13
- package/cli.js +130 -41
- package/lib/cli-models-utils.js +71 -10
- package/lib/cli-webhook.js +126 -0
- package/package.json +76 -74
- package/plugins/prompt-templates/computed.mjs +1 -1
- package/plugins/prompt-templates/methods.mjs +0 -66
- package/plugins/prompt-templates/overview.mjs +1 -0
- package/web-ui/app.js +21 -16
- package/web-ui/index.html +1 -0
- package/web-ui/logic.codex.mjs +69 -0
- package/web-ui/modules/app.computed.dashboard.mjs +54 -0
- package/web-ui/modules/app.computed.session.mjs +22 -17
- package/web-ui/modules/app.methods.claude-config.mjs +24 -8
- package/web-ui/modules/app.methods.codex-config.mjs +35 -3
- package/web-ui/modules/app.methods.index.mjs +2 -0
- package/web-ui/modules/app.methods.navigation.mjs +21 -3
- package/web-ui/modules/app.methods.providers.mjs +96 -7
- package/web-ui/modules/app.methods.session-actions.mjs +3 -6
- package/web-ui/modules/app.methods.session-browser.mjs +1 -6
- package/web-ui/modules/app.methods.session-trash.mjs +6 -7
- package/web-ui/modules/app.methods.startup-claude.mjs +8 -1
- package/web-ui/modules/app.methods.webhook.mjs +79 -0
- package/web-ui/modules/i18n.dict.mjs +1104 -104
- package/web-ui/modules/i18n.mjs +9 -3
- package/web-ui/modules/provider-url-display.mjs +17 -0
- package/web-ui/partials/index/layout-header.html +25 -0
- package/web-ui/partials/index/modals-basic.html +0 -3
- package/web-ui/partials/index/panel-config-claude.html +10 -3
- package/web-ui/partials/index/panel-config-codex.html +44 -4
- package/web-ui/partials/index/panel-plugins.html +3 -29
- package/web-ui/partials/index/panel-sessions.html +0 -10
- package/web-ui/partials/index/panel-settings.html +93 -177
- package/web-ui/partials/index/panel-trash.html +88 -0
- package/web-ui/session-helpers.mjs +2 -2
- package/web-ui/styles/base-theme.css +47 -34
- package/web-ui/styles/controls-forms.css +27 -28
- package/web-ui/styles/docs-panel.css +63 -39
- package/web-ui/styles/layout-shell.css +69 -46
- package/web-ui/styles/modals-core.css +12 -10
- package/web-ui/styles/navigation-panels.css +36 -35
- package/web-ui/styles/responsive.css +4 -4
- package/web-ui/styles/sessions-list.css +10 -6
- package/web-ui/styles/settings-panel.css +197 -33
- package/web-ui/styles/titles-cards.css +90 -26
- package/web-ui/styles/trash-panel.css +90 -0
- package/web-ui/styles/webhook.css +81 -0
- package/web-ui/styles.css +2 -0
|
@@ -17,7 +17,9 @@
|
|
|
17
17
|
left: 0;
|
|
18
18
|
right: 0;
|
|
19
19
|
bottom: 0;
|
|
20
|
-
background:
|
|
20
|
+
background:
|
|
21
|
+
radial-gradient(circle at 50% 18%, rgba(255, 248, 241, 0.22), rgba(255, 248, 241, 0) 36%),
|
|
22
|
+
linear-gradient(to bottom, rgba(31, 26, 23, 0.28) 0%, rgba(31, 26, 23, 0.48) 100%);
|
|
21
23
|
display: flex;
|
|
22
24
|
justify-content: center;
|
|
23
25
|
align-items: center;
|
|
@@ -28,16 +30,16 @@
|
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
.modal {
|
|
31
|
-
background: linear-gradient(to bottom,
|
|
33
|
+
background: linear-gradient(to bottom, rgba(255, 255, 255, 0.96) 0%, rgba(255, 250, 246, 0.94) 100%);
|
|
32
34
|
width: 90%;
|
|
33
35
|
max-width: 400px;
|
|
34
36
|
max-height: 90vh;
|
|
35
37
|
overflow-y: auto;
|
|
36
38
|
overscroll-behavior: contain;
|
|
37
|
-
border-radius: var(--radius-
|
|
39
|
+
border-radius: var(--radius-xl);
|
|
38
40
|
padding: var(--spacing-md);
|
|
39
41
|
box-shadow: var(--shadow-modal);
|
|
40
|
-
border: 1px solid rgba(255, 255, 255, 0.
|
|
42
|
+
border: 1px solid rgba(255, 255, 255, 0.72);
|
|
41
43
|
animation: modalSlideUp var(--transition-slow) var(--ease-spring);
|
|
42
44
|
}
|
|
43
45
|
|
|
@@ -75,8 +77,8 @@
|
|
|
75
77
|
margin-top: 0;
|
|
76
78
|
padding: var(--spacing-sm) var(--spacing-md) var(--spacing-md);
|
|
77
79
|
border-top: 1px solid var(--color-border-soft);
|
|
78
|
-
background: linear-gradient(to bottom, rgba(255,
|
|
79
|
-
backdrop-filter: blur(
|
|
80
|
+
background: linear-gradient(to bottom, rgba(255, 250, 246, 0.78) 0%, rgba(255, 250, 246, 0.96) 100%);
|
|
81
|
+
backdrop-filter: blur(10px);
|
|
80
82
|
}
|
|
81
83
|
|
|
82
84
|
.modal-title {
|
|
@@ -116,8 +118,8 @@
|
|
|
116
118
|
gap: var(--spacing-sm);
|
|
117
119
|
padding: 10px 12px;
|
|
118
120
|
border: 1px solid var(--color-border-soft);
|
|
119
|
-
border-radius: var(--radius-
|
|
120
|
-
background:
|
|
121
|
+
border-radius: var(--radius-md);
|
|
122
|
+
background: rgba(255, 255, 255, 0.48);
|
|
121
123
|
}
|
|
122
124
|
|
|
123
125
|
.install-row-main {
|
|
@@ -138,7 +140,7 @@
|
|
|
138
140
|
font-size: var(--font-size-secondary);
|
|
139
141
|
color: var(--color-text-primary);
|
|
140
142
|
word-break: break-all;
|
|
141
|
-
background: rgba(255, 255, 255, 0.
|
|
143
|
+
background: rgba(255, 255, 255, 0.72);
|
|
142
144
|
padding: 8px 10px;
|
|
143
145
|
border-radius: var(--radius-sm);
|
|
144
146
|
border: 1px solid var(--color-border-soft);
|
|
@@ -156,7 +158,7 @@
|
|
|
156
158
|
|
|
157
159
|
.install-action-tabs .btn-mini.active {
|
|
158
160
|
background: var(--color-brand-light);
|
|
159
|
-
border-color: rgba(
|
|
161
|
+
border-color: rgba(200, 121, 99, 0.22);
|
|
160
162
|
color: var(--color-brand-dark);
|
|
161
163
|
}
|
|
162
164
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
color: var(--color-text-secondary);
|
|
15
15
|
font-size: var(--font-size-body);
|
|
16
16
|
font-weight: var(--font-weight-secondary);
|
|
17
|
-
box-shadow: var(--shadow-
|
|
17
|
+
box-shadow: var(--shadow-card);
|
|
18
18
|
transition: all var(--transition-normal) var(--ease-spring);
|
|
19
19
|
}
|
|
20
20
|
|
|
@@ -62,23 +62,23 @@
|
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
.lang-toggle-btn:hover {
|
|
65
|
-
border-color:
|
|
65
|
+
border-color: var(--color-border-strong);
|
|
66
66
|
background: var(--color-surface);
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
.lang-toggle-btn.active {
|
|
70
|
-
background:
|
|
71
|
-
border-color: rgba(
|
|
72
|
-
color: var(--color-
|
|
70
|
+
background: var(--color-brand-light);
|
|
71
|
+
border-color: rgba(200, 121, 99, 0.28);
|
|
72
|
+
color: var(--color-brand-dark);
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
.status-chip {
|
|
76
76
|
min-width: 0;
|
|
77
77
|
max-width: 100%;
|
|
78
78
|
padding: 6px 10px;
|
|
79
|
-
border: 1px solid var(--color-border);
|
|
80
|
-
background:
|
|
81
|
-
box-shadow:
|
|
79
|
+
border: 1px solid var(--color-border-soft);
|
|
80
|
+
background: rgba(255, 255, 255, 0.62);
|
|
81
|
+
box-shadow: var(--shadow-subtle);
|
|
82
82
|
display: inline-flex;
|
|
83
83
|
flex-direction: row;
|
|
84
84
|
align-items: center;
|
|
@@ -109,10 +109,10 @@
|
|
|
109
109
|
.provider-fast-switch {
|
|
110
110
|
margin: 0 0 14px;
|
|
111
111
|
padding: 10px 12px;
|
|
112
|
-
border-radius:
|
|
113
|
-
border: 1px solid var(--color-border);
|
|
114
|
-
background:
|
|
115
|
-
box-shadow:
|
|
112
|
+
border-radius: var(--radius-md);
|
|
113
|
+
border: 1px solid var(--color-border-soft);
|
|
114
|
+
background: rgba(255, 255, 255, 0.58);
|
|
115
|
+
box-shadow: var(--shadow-card);
|
|
116
116
|
display: grid;
|
|
117
117
|
gap: 6px;
|
|
118
118
|
}
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
border-radius: var(--radius-sm);
|
|
134
134
|
font-size: var(--font-size-body);
|
|
135
135
|
color: var(--color-text-primary);
|
|
136
|
-
background-color:
|
|
136
|
+
background-color: rgba(255, 255, 255, 0.72);
|
|
137
137
|
outline: none;
|
|
138
138
|
cursor: pointer;
|
|
139
139
|
appearance: none;
|
|
@@ -158,7 +158,7 @@
|
|
|
158
158
|
|
|
159
159
|
.main-panel {
|
|
160
160
|
min-width: 0;
|
|
161
|
-
background:
|
|
161
|
+
background: transparent;
|
|
162
162
|
border: none;
|
|
163
163
|
border-radius: 0;
|
|
164
164
|
box-shadow: none;
|
|
@@ -181,10 +181,10 @@
|
|
|
181
181
|
position: sticky;
|
|
182
182
|
top: 0;
|
|
183
183
|
z-index: 12;
|
|
184
|
-
margin: 0 -28px
|
|
185
|
-
padding: 0 28px
|
|
184
|
+
margin: 0 -28px 18px;
|
|
185
|
+
padding: 0 28px 14px;
|
|
186
186
|
background: linear-gradient(180deg, var(--color-bg-topbar-strong) 0%, var(--color-bg-topbar-soft) 78%, var(--color-bg-topbar-clear) 100%);
|
|
187
|
-
backdrop-filter: blur(
|
|
187
|
+
backdrop-filter: blur(18px) saturate(130%);
|
|
188
188
|
}
|
|
189
189
|
|
|
190
190
|
.panel-header {
|
|
@@ -198,8 +198,8 @@
|
|
|
198
198
|
justify-content: space-between;
|
|
199
199
|
gap: 14px;
|
|
200
200
|
margin: 0 0 14px;
|
|
201
|
-
padding:
|
|
202
|
-
border-bottom: 1px solid
|
|
201
|
+
padding: 20px 0 16px;
|
|
202
|
+
border-bottom: 1px solid rgba(137, 111, 94, 0.14);
|
|
203
203
|
background: transparent;
|
|
204
204
|
}
|
|
205
205
|
|
|
@@ -277,16 +277,16 @@
|
|
|
277
277
|
}
|
|
278
278
|
|
|
279
279
|
.top-tab {
|
|
280
|
-
border: 1px solid var(--color-border);
|
|
280
|
+
border: 1px solid var(--color-border-soft);
|
|
281
281
|
border-radius: 999px;
|
|
282
|
-
background:
|
|
282
|
+
background: rgba(255, 255, 255, 0.66);
|
|
283
283
|
padding: 6px 10px;
|
|
284
284
|
font-size: 11px;
|
|
285
285
|
color: var(--color-text-secondary);
|
|
286
286
|
text-align: center;
|
|
287
287
|
cursor: pointer;
|
|
288
|
-
transition: border-color var(--transition-fast) var(--ease-smooth), background-color var(--transition-fast) var(--ease-smooth), color var(--transition-fast) var(--ease-smooth);
|
|
289
|
-
box-shadow:
|
|
288
|
+
transition: border-color var(--transition-fast) var(--ease-smooth), background-color var(--transition-fast) var(--ease-smooth), color var(--transition-fast) var(--ease-smooth), box-shadow var(--transition-fast) var(--ease-smooth), transform var(--transition-fast) var(--ease-smooth);
|
|
289
|
+
box-shadow: var(--shadow-subtle);
|
|
290
290
|
flex: 0 0 auto;
|
|
291
291
|
scroll-snap-align: start;
|
|
292
292
|
}
|
|
@@ -294,14 +294,15 @@
|
|
|
294
294
|
.top-tab:hover {
|
|
295
295
|
border-color: var(--color-border-strong);
|
|
296
296
|
color: var(--color-text-primary);
|
|
297
|
+
transform: translateY(-1px);
|
|
297
298
|
}
|
|
298
299
|
|
|
299
300
|
.top-tab.active,
|
|
300
301
|
.top-tab.nav-intent-active {
|
|
301
|
-
border-color: rgba(
|
|
302
|
+
border-color: rgba(200, 121, 99, 0.28);
|
|
302
303
|
color: var(--color-brand-dark);
|
|
303
|
-
background:
|
|
304
|
-
box-shadow:
|
|
304
|
+
background: rgba(255, 255, 255, 0.82);
|
|
305
|
+
box-shadow: 0 10px 24px rgba(92, 68, 52, 0.1);
|
|
305
306
|
}
|
|
306
307
|
|
|
307
308
|
.top-tab.nav-intent-inactive,
|
|
@@ -321,17 +322,17 @@
|
|
|
321
322
|
gap: 6px;
|
|
322
323
|
margin-bottom: 12px;
|
|
323
324
|
padding: 4px;
|
|
324
|
-
background: rgba(
|
|
325
|
-
border-radius:
|
|
326
|
-
border: 1px solid
|
|
327
|
-
box-shadow:
|
|
325
|
+
background: rgba(255, 255, 255, 0.42);
|
|
326
|
+
border-radius: var(--radius-md);
|
|
327
|
+
border: 1px solid var(--color-border-soft);
|
|
328
|
+
box-shadow: var(--shadow-subtle);
|
|
328
329
|
}
|
|
329
330
|
|
|
330
331
|
.config-subtab {
|
|
331
332
|
border: 1px solid rgba(216, 201, 184, 0.3);
|
|
332
|
-
border-radius:
|
|
333
|
+
border-radius: var(--radius-sm);
|
|
333
334
|
padding: 8px 10px;
|
|
334
|
-
background: rgba(255, 255, 255, 0.
|
|
335
|
+
background: rgba(255, 255, 255, 0.62);
|
|
335
336
|
color: var(--color-text-secondary);
|
|
336
337
|
cursor: pointer;
|
|
337
338
|
font-size: 13px;
|
|
@@ -346,10 +347,10 @@
|
|
|
346
347
|
}
|
|
347
348
|
|
|
348
349
|
.config-subtab.active {
|
|
349
|
-
border-color: rgba(
|
|
350
|
+
border-color: rgba(200, 121, 99, 0.34);
|
|
350
351
|
color: var(--color-text-primary);
|
|
351
352
|
background: rgba(255, 255, 255, 0.98);
|
|
352
|
-
box-shadow: 0
|
|
353
|
+
box-shadow: 0 8px 20px rgba(92, 68, 52, 0.08);
|
|
353
354
|
}
|
|
354
355
|
|
|
355
356
|
.settings-subtabs {
|
|
@@ -365,7 +366,7 @@
|
|
|
365
366
|
margin-left: 6px;
|
|
366
367
|
padding: 0 6px;
|
|
367
368
|
border-radius: 999px;
|
|
368
|
-
background: rgba(
|
|
369
|
+
background: rgba(200, 121, 99, 0.14);
|
|
369
370
|
color: var(--color-text-secondary);
|
|
370
371
|
font-size: 11px;
|
|
371
372
|
line-height: 1;
|
|
@@ -233,9 +233,9 @@ textarea:focus-visible {
|
|
|
233
233
|
}
|
|
234
234
|
|
|
235
235
|
.session-item {
|
|
236
|
-
min-height:
|
|
237
|
-
height:
|
|
238
|
-
contain-intrinsic-size:
|
|
236
|
+
min-height: 108px;
|
|
237
|
+
height: auto;
|
|
238
|
+
contain-intrinsic-size: 108px;
|
|
239
239
|
padding: 12px 14px;
|
|
240
240
|
}
|
|
241
241
|
|
|
@@ -278,7 +278,7 @@ textarea:focus-visible {
|
|
|
278
278
|
}
|
|
279
279
|
|
|
280
280
|
.session-item-meta {
|
|
281
|
-
margin-top:
|
|
281
|
+
margin-top: 4px;
|
|
282
282
|
margin-bottom: 0;
|
|
283
283
|
gap: 4px;
|
|
284
284
|
align-items: center;
|
|
@@ -205,9 +205,9 @@
|
|
|
205
205
|
min-width: 0;
|
|
206
206
|
position: relative;
|
|
207
207
|
overflow: hidden;
|
|
208
|
-
min-height:
|
|
208
|
+
min-height: 108px;
|
|
209
209
|
content-visibility: auto;
|
|
210
|
-
contain-intrinsic-size:
|
|
210
|
+
contain-intrinsic-size: 108px;
|
|
211
211
|
}
|
|
212
212
|
|
|
213
213
|
.session-item-header {
|
|
@@ -370,8 +370,8 @@
|
|
|
370
370
|
display: flex;
|
|
371
371
|
flex-wrap: wrap;
|
|
372
372
|
align-items: center;
|
|
373
|
-
gap: 6px;
|
|
374
|
-
margin-top:
|
|
373
|
+
gap: 6px 8px;
|
|
374
|
+
margin-top: 4px;
|
|
375
375
|
margin-bottom: 2px;
|
|
376
376
|
}
|
|
377
377
|
|
|
@@ -393,9 +393,13 @@
|
|
|
393
393
|
}
|
|
394
394
|
|
|
395
395
|
.session-item-cwd {
|
|
396
|
-
flex: 1
|
|
397
|
-
min-width:
|
|
396
|
+
flex: 1 0 100%;
|
|
397
|
+
min-width: 0;
|
|
398
398
|
color: var(--color-text-muted);
|
|
399
|
+
white-space: normal;
|
|
400
|
+
overflow: visible;
|
|
401
|
+
text-overflow: clip;
|
|
402
|
+
overflow-wrap: anywhere;
|
|
399
403
|
}
|
|
400
404
|
|
|
401
405
|
.session-preview {
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
/* ============================================
|
|
2
|
-
Settings Panel
|
|
3
|
-
- Keep existing warm-neutral theme
|
|
4
|
-
- Add clearer hierarchy, grid rhythm, and card affordance
|
|
2
|
+
Settings Panel — refined visual layer
|
|
5
3
|
============================================ */
|
|
6
4
|
|
|
7
5
|
.settings-layout {
|
|
@@ -11,36 +9,33 @@
|
|
|
11
9
|
.settings-grid {
|
|
12
10
|
display: grid;
|
|
13
11
|
grid-template-columns: repeat(12, minmax(0, 1fr));
|
|
14
|
-
gap:
|
|
12
|
+
gap: 18px;
|
|
15
13
|
}
|
|
16
14
|
|
|
15
|
+
/* ---- Card shell ---- */
|
|
17
16
|
.settings-card {
|
|
18
17
|
grid-column: span 6;
|
|
19
18
|
border-radius: var(--radius-xl);
|
|
20
19
|
border: 1px solid rgba(216, 201, 184, 0.42);
|
|
21
20
|
background:
|
|
22
|
-
linear-gradient(180deg, rgba(255, 255, 255, 0.
|
|
21
|
+
linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(255, 253, 252, 0.9) 100%);
|
|
23
22
|
box-shadow: var(--shadow-card);
|
|
24
|
-
padding:
|
|
23
|
+
padding: 16px 16px 14px;
|
|
25
24
|
display: flex;
|
|
26
25
|
flex-direction: column;
|
|
27
|
-
gap: 10px;
|
|
28
26
|
min-width: 0;
|
|
29
27
|
position: relative;
|
|
30
28
|
overflow: hidden;
|
|
29
|
+
transition: box-shadow var(--transition-normal) var(--ease-smooth),
|
|
30
|
+
transform var(--transition-normal) var(--ease-smooth);
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
.settings-card
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
inset: 0;
|
|
37
|
-
background:
|
|
38
|
-
radial-gradient(900px 240px at 10% 0%, rgba(199, 116, 98, 0.12) 0%, rgba(199, 116, 98, 0) 55%),
|
|
39
|
-
radial-gradient(700px 240px at 90% 10%, rgba(199, 116, 98, 0.07) 0%, rgba(199, 116, 98, 0) 60%);
|
|
40
|
-
pointer-events: none;
|
|
41
|
-
opacity: 0.7;
|
|
33
|
+
.settings-card:hover {
|
|
34
|
+
box-shadow: var(--shadow-card-hover);
|
|
35
|
+
transform: translateY(-1px);
|
|
42
36
|
}
|
|
43
37
|
|
|
38
|
+
|
|
44
39
|
.settings-card > * {
|
|
45
40
|
position: relative;
|
|
46
41
|
z-index: 1;
|
|
@@ -51,26 +46,22 @@
|
|
|
51
46
|
}
|
|
52
47
|
|
|
53
48
|
.settings-card--danger {
|
|
54
|
-
border-color: rgba(196, 69, 54, 0.
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.settings-card--danger::before {
|
|
58
|
-
background:
|
|
59
|
-
radial-gradient(980px 260px at 10% 0%, rgba(196, 69, 54, 0.13) 0%, rgba(196, 69, 54, 0) 55%),
|
|
60
|
-
radial-gradient(740px 240px at 90% 10%, rgba(199, 116, 98, 0.08) 0%, rgba(199, 116, 98, 0) 60%);
|
|
49
|
+
border-color: rgba(196, 69, 54, 0.22);
|
|
61
50
|
}
|
|
62
51
|
|
|
52
|
+
/* ---- Card header ---- */
|
|
63
53
|
.settings-card-header {
|
|
64
54
|
display: flex;
|
|
65
55
|
flex-direction: column;
|
|
66
56
|
gap: 3px;
|
|
57
|
+
padding-bottom: 0;
|
|
67
58
|
}
|
|
68
59
|
|
|
69
60
|
.settings-card-header-row {
|
|
70
61
|
flex-direction: row;
|
|
71
62
|
justify-content: space-between;
|
|
72
63
|
align-items: flex-start;
|
|
73
|
-
gap:
|
|
64
|
+
gap: 16px;
|
|
74
65
|
}
|
|
75
66
|
|
|
76
67
|
.settings-card-title {
|
|
@@ -78,6 +69,22 @@
|
|
|
78
69
|
font-weight: 700;
|
|
79
70
|
letter-spacing: -0.01em;
|
|
80
71
|
color: var(--color-text-primary);
|
|
72
|
+
display: flex;
|
|
73
|
+
align-items: center;
|
|
74
|
+
gap: 7px;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.settings-card-title-icon {
|
|
78
|
+
display: inline-flex;
|
|
79
|
+
align-items: center;
|
|
80
|
+
justify-content: center;
|
|
81
|
+
width: 22px;
|
|
82
|
+
height: 22px;
|
|
83
|
+
border-radius: 6px;
|
|
84
|
+
background: var(--color-brand-light);
|
|
85
|
+
color: var(--color-brand-dark);
|
|
86
|
+
font-size: 12px;
|
|
87
|
+
flex-shrink: 0;
|
|
81
88
|
}
|
|
82
89
|
|
|
83
90
|
.settings-card-meta {
|
|
@@ -86,6 +93,7 @@
|
|
|
86
93
|
line-height: 1.35;
|
|
87
94
|
}
|
|
88
95
|
|
|
96
|
+
/* ---- Card body ---- */
|
|
89
97
|
.settings-card-body {
|
|
90
98
|
display: flex;
|
|
91
99
|
flex-direction: column;
|
|
@@ -109,6 +117,7 @@
|
|
|
109
117
|
color: var(--color-text-secondary);
|
|
110
118
|
}
|
|
111
119
|
|
|
120
|
+
/* ---- Field row ---- */
|
|
112
121
|
.settings-field-row {
|
|
113
122
|
display: grid;
|
|
114
123
|
grid-template-columns: 88px minmax(0, 1fr);
|
|
@@ -123,6 +132,7 @@
|
|
|
123
132
|
letter-spacing: 0.02em;
|
|
124
133
|
}
|
|
125
134
|
|
|
135
|
+
/* ---- Actions ---- */
|
|
126
136
|
.settings-actions {
|
|
127
137
|
display: flex;
|
|
128
138
|
flex-wrap: wrap;
|
|
@@ -140,39 +150,180 @@
|
|
|
140
150
|
margin-top: 2px;
|
|
141
151
|
}
|
|
142
152
|
|
|
153
|
+
/* ---- Toggle switch (replaces checkbox) ---- */
|
|
143
154
|
.settings-toggle {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
155
|
+
display: inline-flex;
|
|
156
|
+
align-items: center;
|
|
157
|
+
gap: 10px;
|
|
158
|
+
cursor: pointer;
|
|
159
|
+
padding: 0;
|
|
160
|
+
border: none;
|
|
161
|
+
background: none;
|
|
162
|
+
border-radius: 0;
|
|
163
|
+
user-select: none;
|
|
148
164
|
}
|
|
149
165
|
|
|
166
|
+
.settings-toggle input[type="checkbox"] {
|
|
167
|
+
appearance: none;
|
|
168
|
+
-webkit-appearance: none;
|
|
169
|
+
width: 40px;
|
|
170
|
+
height: 22px;
|
|
171
|
+
border-radius: 11px;
|
|
172
|
+
background: rgba(137, 111, 94, 0.22);
|
|
173
|
+
border: 1px solid rgba(137, 111, 94, 0.16);
|
|
174
|
+
cursor: pointer;
|
|
175
|
+
position: relative;
|
|
176
|
+
transition: background var(--transition-fast) var(--ease-smooth),
|
|
177
|
+
border-color var(--transition-fast) var(--ease-smooth);
|
|
178
|
+
flex-shrink: 0;
|
|
179
|
+
margin: 0;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.settings-toggle input[type="checkbox"]::after {
|
|
183
|
+
content: '';
|
|
184
|
+
position: absolute;
|
|
185
|
+
top: 2px;
|
|
186
|
+
left: 2px;
|
|
187
|
+
width: 16px;
|
|
188
|
+
height: 16px;
|
|
189
|
+
border-radius: 50%;
|
|
190
|
+
background: #fff;
|
|
191
|
+
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
|
|
192
|
+
transition: transform var(--transition-fast) var(--ease-spring);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.settings-toggle input[type="checkbox"]:checked {
|
|
196
|
+
background: var(--color-brand);
|
|
197
|
+
border-color: var(--color-brand);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.settings-toggle input[type="checkbox"]:checked::after {
|
|
201
|
+
transform: translateX(18px);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
.settings-toggle input[type="checkbox"]:focus-visible {
|
|
205
|
+
outline: 2px solid var(--color-brand);
|
|
206
|
+
outline-offset: 2px;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.settings-toggle span {
|
|
210
|
+
font-size: var(--font-size-secondary);
|
|
211
|
+
color: var(--color-text-secondary);
|
|
212
|
+
font-weight: var(--font-weight-body);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/* ---- Retention row ---- */
|
|
150
216
|
.settings-retention-row {
|
|
151
217
|
display: flex;
|
|
152
218
|
align-items: center;
|
|
153
219
|
gap: 10px;
|
|
154
|
-
padding: 8px
|
|
220
|
+
padding: 8px 12px;
|
|
155
221
|
border-radius: 12px;
|
|
156
222
|
border: 1px solid rgba(216, 201, 184, 0.4);
|
|
157
223
|
background: rgba(248, 243, 238, 0.6);
|
|
158
224
|
}
|
|
159
225
|
|
|
160
226
|
.settings-retention-input {
|
|
161
|
-
width:
|
|
227
|
+
width: 64px;
|
|
162
228
|
padding: 4px 8px;
|
|
163
229
|
border: 1px solid rgba(216, 201, 184, 0.6);
|
|
164
230
|
border-radius: 8px;
|
|
165
231
|
font-size: 14px;
|
|
166
232
|
text-align: center;
|
|
233
|
+
font-weight: 600;
|
|
234
|
+
color: var(--color-text-primary);
|
|
235
|
+
background: var(--color-surface);
|
|
236
|
+
transition: border-color var(--transition-fast) var(--ease-smooth);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
.settings-retention-input:focus {
|
|
240
|
+
border-color: var(--color-brand);
|
|
241
|
+
outline: none;
|
|
242
|
+
box-shadow: 0 0 0 3px var(--color-brand-light);
|
|
167
243
|
}
|
|
168
244
|
|
|
169
|
-
/*
|
|
245
|
+
/* ---- Backup grid ---- */
|
|
246
|
+
.settings-backup-grid {
|
|
247
|
+
display: grid;
|
|
248
|
+
grid-template-columns: 1fr 1fr;
|
|
249
|
+
gap: 16px;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.settings-backup-slot {
|
|
253
|
+
display: flex;
|
|
254
|
+
flex-direction: column;
|
|
255
|
+
gap: 8px;
|
|
256
|
+
padding: 12px 14px;
|
|
257
|
+
border-radius: var(--radius-md);
|
|
258
|
+
background: rgba(247, 240, 233, 0.45);
|
|
259
|
+
border: 1px solid var(--color-border-soft);
|
|
260
|
+
transition: border-color var(--transition-fast) var(--ease-smooth);
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
.settings-backup-slot:hover {
|
|
264
|
+
border-color: var(--color-border);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
.settings-backup-slot-label {
|
|
268
|
+
font-size: var(--font-size-caption);
|
|
269
|
+
font-weight: var(--font-weight-secondary);
|
|
270
|
+
color: var(--color-text-muted);
|
|
271
|
+
letter-spacing: 0.03em;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/* ---- Trash config grid ---- */
|
|
275
|
+
.settings-trash-config-grid {
|
|
276
|
+
display: flex;
|
|
277
|
+
align-items: center;
|
|
278
|
+
gap: 16px;
|
|
279
|
+
flex-wrap: wrap;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/* ---- Subtab bar ---- */
|
|
283
|
+
.settings-subtabs-bar {
|
|
284
|
+
display: flex;
|
|
285
|
+
align-items: center;
|
|
286
|
+
gap: 4px;
|
|
287
|
+
margin-bottom: 22px;
|
|
288
|
+
padding: 4px;
|
|
289
|
+
background: rgba(247, 240, 233, 0.4);
|
|
290
|
+
border-radius: var(--radius-md);
|
|
291
|
+
border: 1px solid var(--color-border-soft);
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
.settings-subtab {
|
|
295
|
+
position: relative;
|
|
296
|
+
padding: 8px 18px;
|
|
297
|
+
border: none;
|
|
298
|
+
border-radius: var(--radius-sm);
|
|
299
|
+
background: transparent;
|
|
300
|
+
color: var(--color-text-muted);
|
|
301
|
+
cursor: pointer;
|
|
302
|
+
font-size: 13px;
|
|
303
|
+
font-weight: var(--font-weight-secondary);
|
|
304
|
+
transition: all var(--transition-fast) var(--ease-smooth);
|
|
305
|
+
letter-spacing: 0.01em;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
.settings-subtab:hover {
|
|
309
|
+
color: var(--color-text-primary);
|
|
310
|
+
background: rgba(255, 255, 255, 0.6);
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
.settings-subtab.active {
|
|
314
|
+
color: var(--color-brand-dark);
|
|
315
|
+
font-weight: 700;
|
|
316
|
+
background: var(--color-surface);
|
|
317
|
+
box-shadow: var(--shadow-subtle);
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
/* ---- Buttons inside cards ---- */
|
|
170
321
|
.settings-card .btn-tool {
|
|
171
322
|
width: auto;
|
|
172
323
|
max-width: 100%;
|
|
173
324
|
}
|
|
174
325
|
|
|
175
|
-
/* Mobile
|
|
326
|
+
/* ---- Mobile ---- */
|
|
176
327
|
@media (max-width: 860px) {
|
|
177
328
|
.settings-card {
|
|
178
329
|
grid-column: 1 / -1;
|
|
@@ -181,5 +332,18 @@
|
|
|
181
332
|
grid-template-columns: 1fr;
|
|
182
333
|
align-items: stretch;
|
|
183
334
|
}
|
|
335
|
+
.settings-backup-grid {
|
|
336
|
+
grid-template-columns: 1fr;
|
|
337
|
+
}
|
|
338
|
+
.settings-trash-config-grid {
|
|
339
|
+
flex-direction: column;
|
|
340
|
+
align-items: stretch;
|
|
341
|
+
}
|
|
342
|
+
.settings-subtabs-bar {
|
|
343
|
+
gap: 2px;
|
|
344
|
+
}
|
|
345
|
+
.settings-subtab {
|
|
346
|
+
padding: 8px 14px;
|
|
347
|
+
font-size: 12px;
|
|
348
|
+
}
|
|
184
349
|
}
|
|
185
|
-
|