@co0ontty/wand 1.7.0 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/git-worktree.d.ts +17 -1
- package/dist/git-worktree.js +244 -0
- package/dist/resume-policy.d.ts +0 -77
- package/dist/resume-policy.js +0 -162
- package/dist/server-session-routes.js +153 -0
- package/dist/server.js +27 -1
- package/dist/storage.d.ts +1 -0
- package/dist/storage.js +205 -141
- package/dist/types.d.ts +34 -0
- package/dist/web-ui/content/scripts.js +850 -174
- package/dist/web-ui/content/styles.css +854 -144
- package/dist/web-ui/scripts.js +3 -6
- package/package.json +1 -1
|
@@ -100,6 +100,7 @@
|
|
|
100
100
|
/* ===== 布局尺寸 ===== */
|
|
101
101
|
--sidebar-width: 300px;
|
|
102
102
|
--file-panel-width: 320px;
|
|
103
|
+
--safe-bottom: 0px;
|
|
103
104
|
|
|
104
105
|
/* ===== 高级缓动函数 ===== */
|
|
105
106
|
--ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
|
|
@@ -122,13 +123,12 @@
|
|
|
122
123
|
|
|
123
124
|
/* ===== PWA 独立窗口模式 ===== */
|
|
124
125
|
@media (display-mode: standalone) {
|
|
125
|
-
|
|
126
|
-
|
|
126
|
+
:root {
|
|
127
|
+
--safe-bottom: env(safe-area-inset-bottom, 0px);
|
|
127
128
|
}
|
|
128
129
|
.app-container {
|
|
129
130
|
--pwa-top-inset: env(safe-area-inset-top, 0px);
|
|
130
131
|
padding-top: env(safe-area-inset-top, 0px);
|
|
131
|
-
padding-bottom: env(safe-area-inset-bottom, 0px);
|
|
132
132
|
}
|
|
133
133
|
.sidebar-header {
|
|
134
134
|
padding-top: calc(14px + env(safe-area-inset-top, 0px));
|
|
@@ -139,25 +139,18 @@
|
|
|
139
139
|
}
|
|
140
140
|
|
|
141
141
|
/* iOS Safari PWA fallback (navigator.standalone adds .is-pwa via JS) */
|
|
142
|
-
.is-pwa
|
|
143
|
-
|
|
142
|
+
.is-pwa {
|
|
143
|
+
--safe-bottom: env(safe-area-inset-bottom, 0px);
|
|
144
144
|
}
|
|
145
145
|
.is-pwa .app-container {
|
|
146
146
|
--pwa-top-inset: env(safe-area-inset-top, 0px);
|
|
147
147
|
padding-top: env(safe-area-inset-top, 0px);
|
|
148
|
-
padding-bottom: env(safe-area-inset-bottom, 0px);
|
|
149
148
|
}
|
|
150
149
|
.is-pwa .sidebar-header {
|
|
151
150
|
padding-top: calc(14px + env(safe-area-inset-top, 0px));
|
|
152
151
|
}
|
|
153
152
|
|
|
154
153
|
/* ===== PWA 窗口控件覆盖模式 (Window Controls Overlay) ===== */
|
|
155
|
-
@media (display-mode: window-controls-overlay) {
|
|
156
|
-
.floating-sidebar-toggle {
|
|
157
|
-
top: max(10px, env(titlebar-area-y, 10px));
|
|
158
|
-
left: max(10px, env(titlebar-area-x, 10px));
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
154
|
|
|
162
155
|
/* ===== 首帧过渡抑制 ===== */
|
|
163
156
|
html.no-transition,
|
|
@@ -242,18 +235,17 @@
|
|
|
242
235
|
overflow: hidden;
|
|
243
236
|
}
|
|
244
237
|
|
|
245
|
-
/* =====
|
|
238
|
+
/* ===== 侧栏切换按钮 ===== */
|
|
246
239
|
.floating-sidebar-toggle {
|
|
247
|
-
position:
|
|
248
|
-
|
|
249
|
-
left: 10px;
|
|
250
|
-
z-index: 200;
|
|
240
|
+
position: relative;
|
|
241
|
+
z-index: 1;
|
|
251
242
|
width: 34px;
|
|
252
243
|
height: 34px;
|
|
253
244
|
padding: 0;
|
|
254
|
-
display: flex;
|
|
245
|
+
display: inline-flex;
|
|
255
246
|
align-items: center;
|
|
256
247
|
justify-content: center;
|
|
248
|
+
flex-shrink: 0;
|
|
257
249
|
background: rgba(255, 251, 245, 0.85);
|
|
258
250
|
border: 1px solid var(--border-subtle);
|
|
259
251
|
border-radius: var(--radius-sm);
|
|
@@ -263,6 +255,42 @@
|
|
|
263
255
|
transition: all var(--transition-fast);
|
|
264
256
|
}
|
|
265
257
|
|
|
258
|
+
.main-header-row .floating-sidebar-toggle {
|
|
259
|
+
margin-right: 2px;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
.main-header-row .floating-sidebar-toggle.active {
|
|
263
|
+
opacity: 1;
|
|
264
|
+
pointer-events: auto;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
.main-header-row .floating-sidebar-toggle.active .hamburger-icon span:nth-child(1) {
|
|
268
|
+
transform: translateY(5px) rotate(45deg);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
.main-header-row .floating-sidebar-toggle.active .hamburger-icon span:nth-child(2) {
|
|
272
|
+
opacity: 0;
|
|
273
|
+
transform: scaleX(0);
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
.main-header-row .floating-sidebar-toggle.active .hamburger-icon span:nth-child(3) {
|
|
277
|
+
transform: translateY(-5px) rotate(-45deg);
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
.main-header-row .floating-sidebar-toggle:hover {
|
|
281
|
+
background: rgba(255, 251, 245, 0.95);
|
|
282
|
+
box-shadow: 0 3px 12px rgba(0, 0, 0, 0.1);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
.main-header-row .floating-sidebar-toggle:active {
|
|
286
|
+
transform: scale(0.92);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
.main-header-row .floating-sidebar-toggle.active:hover .hamburger-icon span,
|
|
290
|
+
.main-header-row .floating-sidebar-toggle:hover .hamburger-icon span {
|
|
291
|
+
background: var(--text-primary);
|
|
292
|
+
}
|
|
293
|
+
|
|
266
294
|
.floating-sidebar-toggle:hover {
|
|
267
295
|
background: rgba(255, 251, 245, 0.95);
|
|
268
296
|
box-shadow: 0 3px 12px rgba(0, 0, 0, 0.1);
|
|
@@ -1086,19 +1114,512 @@
|
|
|
1086
1114
|
color: var(--accent);
|
|
1087
1115
|
}
|
|
1088
1116
|
|
|
1089
|
-
.session-action-btn:active {
|
|
1090
|
-
transform: scale(0.9);
|
|
1091
|
-
transition-duration: 0.1s;
|
|
1117
|
+
.session-action-btn:active {
|
|
1118
|
+
transform: scale(0.9);
|
|
1119
|
+
transition-duration: 0.1s;
|
|
1120
|
+
}
|
|
1121
|
+
|
|
1122
|
+
.session-action-btn svg {
|
|
1123
|
+
flex-shrink: 0;
|
|
1124
|
+
}
|
|
1125
|
+
|
|
1126
|
+
/* Delete icon button in actions */
|
|
1127
|
+
.session-action-btn.delete-btn:hover {
|
|
1128
|
+
background: rgba(231, 76, 60, 0.08);
|
|
1129
|
+
color: #d35244;
|
|
1130
|
+
}
|
|
1131
|
+
|
|
1132
|
+
.session-action-btn.merge-btn:hover {
|
|
1133
|
+
background: rgba(47, 128, 237, 0.1);
|
|
1134
|
+
color: #2f80ed;
|
|
1135
|
+
}
|
|
1136
|
+
|
|
1137
|
+
.session-kind-badge.worktree-merge {
|
|
1138
|
+
background: rgba(47, 128, 237, 0.12);
|
|
1139
|
+
color: #2f80ed;
|
|
1140
|
+
}
|
|
1141
|
+
|
|
1142
|
+
.session-kind-badge.worktree-merge.failed {
|
|
1143
|
+
background: rgba(231, 76, 60, 0.12);
|
|
1144
|
+
color: #d35244;
|
|
1145
|
+
}
|
|
1146
|
+
|
|
1147
|
+
.session-kind-badge.worktree-merge.merged {
|
|
1148
|
+
background: rgba(39, 174, 96, 0.12);
|
|
1149
|
+
color: #219653;
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1152
|
+
.session-kind-badge.worktree-merge.merging,
|
|
1153
|
+
.session-kind-badge.worktree-merge.checking {
|
|
1154
|
+
background: rgba(242, 153, 74, 0.12);
|
|
1155
|
+
color: #c17c2b;
|
|
1156
|
+
}
|
|
1157
|
+
|
|
1158
|
+
.worktree-merge-content {
|
|
1159
|
+
display: flex;
|
|
1160
|
+
flex-direction: column;
|
|
1161
|
+
gap: 10px;
|
|
1162
|
+
}
|
|
1163
|
+
|
|
1164
|
+
.worktree-merge-row {
|
|
1165
|
+
display: flex;
|
|
1166
|
+
justify-content: space-between;
|
|
1167
|
+
gap: 16px;
|
|
1168
|
+
padding: 10px 12px;
|
|
1169
|
+
border: 1px solid var(--border-subtle);
|
|
1170
|
+
border-radius: 12px;
|
|
1171
|
+
background: rgba(255, 255, 255, 0.5);
|
|
1172
|
+
font-size: 0.875rem;
|
|
1173
|
+
}
|
|
1174
|
+
|
|
1175
|
+
.worktree-merge-row span {
|
|
1176
|
+
color: var(--text-secondary);
|
|
1177
|
+
}
|
|
1178
|
+
|
|
1179
|
+
.worktree-merge-row strong {
|
|
1180
|
+
color: var(--text-primary);
|
|
1181
|
+
word-break: break-all;
|
|
1182
|
+
text-align: right;
|
|
1183
|
+
}
|
|
1184
|
+
|
|
1185
|
+
.worktree-merge-actions {
|
|
1186
|
+
display: flex;
|
|
1187
|
+
justify-content: flex-end;
|
|
1188
|
+
gap: 10px;
|
|
1189
|
+
margin-top: 16px;
|
|
1190
|
+
}
|
|
1191
|
+
|
|
1192
|
+
.worktree-merge-modal {
|
|
1193
|
+
max-width: 620px;
|
|
1194
|
+
}
|
|
1195
|
+
|
|
1196
|
+
.modal-subtitle {
|
|
1197
|
+
margin-top: 4px;
|
|
1198
|
+
font-size: 0.8125rem;
|
|
1199
|
+
color: var(--text-muted);
|
|
1200
|
+
}
|
|
1201
|
+
|
|
1202
|
+
.session-action-btn[disabled] {
|
|
1203
|
+
opacity: 0.45;
|
|
1204
|
+
cursor: not-allowed;
|
|
1205
|
+
}
|
|
1206
|
+
|
|
1207
|
+
.session-action-btn[disabled]:hover {
|
|
1208
|
+
background: transparent;
|
|
1209
|
+
color: var(--text-muted);
|
|
1210
|
+
}
|
|
1211
|
+
|
|
1212
|
+
.worktree-merge-actions .btn[disabled] {
|
|
1213
|
+
opacity: 0.5;
|
|
1214
|
+
cursor: not-allowed;
|
|
1215
|
+
}
|
|
1216
|
+
|
|
1217
|
+
.worktree-merge-actions .btn[disabled]:hover {
|
|
1218
|
+
transform: none;
|
|
1219
|
+
}
|
|
1220
|
+
|
|
1221
|
+
.worktree-merge-actions .btn[disabled]:active {
|
|
1222
|
+
transform: none;
|
|
1223
|
+
}
|
|
1224
|
+
|
|
1225
|
+
.worktree-merge-actions .btn {
|
|
1226
|
+
min-width: 120px;
|
|
1227
|
+
}
|
|
1228
|
+
|
|
1229
|
+
.worktree-merge-modal .modal-body {
|
|
1230
|
+
min-height: 260px;
|
|
1231
|
+
}
|
|
1232
|
+
|
|
1233
|
+
.worktree-merge-modal .error-message {
|
|
1234
|
+
margin-top: 12px;
|
|
1235
|
+
}
|
|
1236
|
+
|
|
1237
|
+
.worktree-merge-content .field-hint {
|
|
1238
|
+
margin-top: 0;
|
|
1239
|
+
}
|
|
1240
|
+
|
|
1241
|
+
.worktree-merge-row + .field-hint {
|
|
1242
|
+
margin-top: 2px;
|
|
1243
|
+
}
|
|
1244
|
+
|
|
1245
|
+
.worktree-merge-content .field-hint + .field-hint {
|
|
1246
|
+
margin-top: 4px;
|
|
1247
|
+
}
|
|
1248
|
+
|
|
1249
|
+
.worktree-merge-modal .modal-subtitle {
|
|
1250
|
+
max-width: 420px;
|
|
1251
|
+
}
|
|
1252
|
+
|
|
1253
|
+
.worktree-merge-modal strong {
|
|
1254
|
+
font-weight: 600;
|
|
1255
|
+
}
|
|
1256
|
+
|
|
1257
|
+
.worktree-merge-modal .modal-header {
|
|
1258
|
+
align-items: flex-start;
|
|
1259
|
+
}
|
|
1260
|
+
|
|
1261
|
+
.worktree-merge-content p {
|
|
1262
|
+
margin: 0;
|
|
1263
|
+
}
|
|
1264
|
+
|
|
1265
|
+
.worktree-merge-content .field-hint strong {
|
|
1266
|
+
color: var(--text-primary);
|
|
1267
|
+
}
|
|
1268
|
+
|
|
1269
|
+
.worktree-merge-row strong:empty::after {
|
|
1270
|
+
content: "-";
|
|
1271
|
+
color: var(--text-muted);
|
|
1272
|
+
}
|
|
1273
|
+
|
|
1274
|
+
.worktree-merge-content .field-hint code {
|
|
1275
|
+
font-family: inherit;
|
|
1276
|
+
}
|
|
1277
|
+
|
|
1278
|
+
.worktree-merge-actions .btn-secondary {
|
|
1279
|
+
background: transparent;
|
|
1280
|
+
}
|
|
1281
|
+
|
|
1282
|
+
.worktree-merge-actions .btn-secondary:hover {
|
|
1283
|
+
background: rgba(0, 0, 0, 0.04);
|
|
1284
|
+
}
|
|
1285
|
+
|
|
1286
|
+
.worktree-merge-actions .btn-secondary:active {
|
|
1287
|
+
background: rgba(0, 0, 0, 0.07);
|
|
1288
|
+
}
|
|
1289
|
+
|
|
1290
|
+
.worktree-merge-content .field-hint:last-child {
|
|
1291
|
+
margin-bottom: 0;
|
|
1292
|
+
}
|
|
1293
|
+
|
|
1294
|
+
.worktree-merge-row:first-child {
|
|
1295
|
+
margin-top: 2px;
|
|
1296
|
+
}
|
|
1297
|
+
|
|
1298
|
+
.worktree-merge-row:last-child {
|
|
1299
|
+
margin-bottom: 0;
|
|
1300
|
+
}
|
|
1301
|
+
|
|
1302
|
+
.worktree-merge-content .field-hint.muted {
|
|
1303
|
+
color: var(--text-muted);
|
|
1304
|
+
}
|
|
1305
|
+
|
|
1306
|
+
.worktree-merge-content .field-hint.error {
|
|
1307
|
+
color: #d35244;
|
|
1308
|
+
}
|
|
1309
|
+
|
|
1310
|
+
.worktree-merge-content .field-hint.success {
|
|
1311
|
+
color: #219653;
|
|
1312
|
+
}
|
|
1313
|
+
|
|
1314
|
+
.worktree-merge-content .field-hint.warning {
|
|
1315
|
+
color: #c17c2b;
|
|
1316
|
+
}
|
|
1317
|
+
|
|
1318
|
+
.worktree-merge-content .field-hint.info {
|
|
1319
|
+
color: var(--text-secondary);
|
|
1320
|
+
}
|
|
1321
|
+
|
|
1322
|
+
.worktree-merge-content .field-hint + .worktree-merge-row {
|
|
1323
|
+
margin-top: 2px;
|
|
1324
|
+
}
|
|
1325
|
+
|
|
1326
|
+
.worktree-merge-content .worktree-merge-row + .worktree-merge-row {
|
|
1327
|
+
margin-top: 0;
|
|
1328
|
+
}
|
|
1329
|
+
|
|
1330
|
+
.worktree-merge-content .worktree-merge-row strong small {
|
|
1331
|
+
color: var(--text-muted);
|
|
1332
|
+
}
|
|
1333
|
+
|
|
1334
|
+
.worktree-merge-content .worktree-merge-row strong code {
|
|
1335
|
+
font-family: inherit;
|
|
1336
|
+
}
|
|
1337
|
+
|
|
1338
|
+
.worktree-merge-content .worktree-merge-row span code {
|
|
1339
|
+
font-family: inherit;
|
|
1340
|
+
}
|
|
1341
|
+
|
|
1342
|
+
.worktree-merge-content .worktree-merge-row code {
|
|
1343
|
+
background: transparent;
|
|
1344
|
+
padding: 0;
|
|
1345
|
+
}
|
|
1346
|
+
|
|
1347
|
+
.worktree-merge-content .worktree-merge-row em {
|
|
1348
|
+
font-style: normal;
|
|
1349
|
+
color: var(--text-muted);
|
|
1350
|
+
}
|
|
1351
|
+
|
|
1352
|
+
.worktree-merge-content .worktree-merge-row small {
|
|
1353
|
+
color: var(--text-muted);
|
|
1354
|
+
}
|
|
1355
|
+
|
|
1356
|
+
.worktree-merge-content .worktree-merge-row .muted {
|
|
1357
|
+
color: var(--text-muted);
|
|
1358
|
+
}
|
|
1359
|
+
|
|
1360
|
+
.worktree-merge-content .worktree-merge-row .warning {
|
|
1361
|
+
color: #c17c2b;
|
|
1362
|
+
}
|
|
1363
|
+
|
|
1364
|
+
.worktree-merge-content .worktree-merge-row .success {
|
|
1365
|
+
color: #219653;
|
|
1366
|
+
}
|
|
1367
|
+
|
|
1368
|
+
.worktree-merge-content .worktree-merge-row .error {
|
|
1369
|
+
color: #d35244;
|
|
1370
|
+
}
|
|
1371
|
+
|
|
1372
|
+
.worktree-merge-content .worktree-merge-row .info {
|
|
1373
|
+
color: var(--text-secondary);
|
|
1374
|
+
}
|
|
1375
|
+
|
|
1376
|
+
.worktree-merge-content .worktree-merge-row .nowrap {
|
|
1377
|
+
white-space: nowrap;
|
|
1378
|
+
}
|
|
1379
|
+
|
|
1380
|
+
.worktree-merge-content .worktree-merge-row .break-all {
|
|
1381
|
+
word-break: break-all;
|
|
1382
|
+
}
|
|
1383
|
+
|
|
1384
|
+
.worktree-merge-content .worktree-merge-row .text-right {
|
|
1385
|
+
text-align: right;
|
|
1386
|
+
}
|
|
1387
|
+
|
|
1388
|
+
.worktree-merge-content .worktree-merge-row .text-left {
|
|
1389
|
+
text-align: left;
|
|
1390
|
+
}
|
|
1391
|
+
|
|
1392
|
+
.worktree-merge-content .worktree-merge-row .font-normal {
|
|
1393
|
+
font-weight: 400;
|
|
1394
|
+
}
|
|
1395
|
+
|
|
1396
|
+
.worktree-merge-content .worktree-merge-row .font-semibold {
|
|
1397
|
+
font-weight: 600;
|
|
1398
|
+
}
|
|
1399
|
+
|
|
1400
|
+
.worktree-merge-content .worktree-merge-row .font-bold {
|
|
1401
|
+
font-weight: 700;
|
|
1402
|
+
}
|
|
1403
|
+
|
|
1404
|
+
.worktree-merge-content .worktree-merge-row .opacity-70 {
|
|
1405
|
+
opacity: 0.7;
|
|
1406
|
+
}
|
|
1407
|
+
|
|
1408
|
+
.worktree-merge-content .worktree-merge-row .opacity-50 {
|
|
1409
|
+
opacity: 0.5;
|
|
1410
|
+
}
|
|
1411
|
+
|
|
1412
|
+
.worktree-merge-content .worktree-merge-row .opacity-40 {
|
|
1413
|
+
opacity: 0.4;
|
|
1414
|
+
}
|
|
1415
|
+
|
|
1416
|
+
.worktree-merge-content .worktree-merge-row .truncate {
|
|
1417
|
+
overflow: hidden;
|
|
1418
|
+
text-overflow: ellipsis;
|
|
1419
|
+
}
|
|
1420
|
+
|
|
1421
|
+
.worktree-merge-content .worktree-merge-row .monospace {
|
|
1422
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
|
|
1423
|
+
}
|
|
1424
|
+
|
|
1425
|
+
.worktree-merge-content .worktree-merge-row .tiny {
|
|
1426
|
+
font-size: 0.75rem;
|
|
1427
|
+
}
|
|
1428
|
+
|
|
1429
|
+
.worktree-merge-content .worktree-merge-row .small {
|
|
1430
|
+
font-size: 0.8125rem;
|
|
1431
|
+
}
|
|
1432
|
+
|
|
1433
|
+
.worktree-merge-content .worktree-merge-row .normal {
|
|
1434
|
+
font-size: 0.875rem;
|
|
1435
|
+
}
|
|
1436
|
+
|
|
1437
|
+
.worktree-merge-content .worktree-merge-row .large {
|
|
1438
|
+
font-size: 0.9375rem;
|
|
1439
|
+
}
|
|
1440
|
+
|
|
1441
|
+
.worktree-merge-content .worktree-merge-row .xlarge {
|
|
1442
|
+
font-size: 1rem;
|
|
1443
|
+
}
|
|
1444
|
+
|
|
1445
|
+
.worktree-merge-content .worktree-merge-row .caps {
|
|
1446
|
+
text-transform: uppercase;
|
|
1447
|
+
}
|
|
1448
|
+
|
|
1449
|
+
.worktree-merge-content .worktree-merge-row .lowercase {
|
|
1450
|
+
text-transform: lowercase;
|
|
1451
|
+
}
|
|
1452
|
+
|
|
1453
|
+
.worktree-merge-content .worktree-merge-row .capitalize {
|
|
1454
|
+
text-transform: capitalize;
|
|
1455
|
+
}
|
|
1456
|
+
|
|
1457
|
+
.worktree-merge-content .worktree-merge-row .letter-tight {
|
|
1458
|
+
letter-spacing: -0.01em;
|
|
1459
|
+
}
|
|
1460
|
+
|
|
1461
|
+
.worktree-merge-content .worktree-merge-row .letter-normal {
|
|
1462
|
+
letter-spacing: 0;
|
|
1463
|
+
}
|
|
1464
|
+
|
|
1465
|
+
.worktree-merge-content .worktree-merge-row .letter-wide {
|
|
1466
|
+
letter-spacing: 0.02em;
|
|
1467
|
+
}
|
|
1468
|
+
|
|
1469
|
+
.worktree-merge-content .worktree-merge-row .line-tight {
|
|
1470
|
+
line-height: 1.3;
|
|
1471
|
+
}
|
|
1472
|
+
|
|
1473
|
+
.worktree-merge-content .worktree-merge-row .line-normal {
|
|
1474
|
+
line-height: 1.5;
|
|
1475
|
+
}
|
|
1476
|
+
|
|
1477
|
+
.worktree-merge-content .worktree-merge-row .line-loose {
|
|
1478
|
+
line-height: 1.7;
|
|
1479
|
+
}
|
|
1480
|
+
|
|
1481
|
+
.worktree-merge-content .worktree-merge-row .block {
|
|
1482
|
+
display: block;
|
|
1483
|
+
}
|
|
1484
|
+
|
|
1485
|
+
.worktree-merge-content .worktree-merge-row .inline {
|
|
1486
|
+
display: inline;
|
|
1487
|
+
}
|
|
1488
|
+
|
|
1489
|
+
.worktree-merge-content .worktree-merge-row .inline-block {
|
|
1490
|
+
display: inline-block;
|
|
1491
|
+
}
|
|
1492
|
+
|
|
1493
|
+
.worktree-merge-content .worktree-merge-row .flex {
|
|
1494
|
+
display: flex;
|
|
1495
|
+
}
|
|
1496
|
+
|
|
1497
|
+
.worktree-merge-content .worktree-merge-row .grid {
|
|
1498
|
+
display: grid;
|
|
1499
|
+
}
|
|
1500
|
+
|
|
1501
|
+
.worktree-merge-content .worktree-merge-row .gap-sm {
|
|
1502
|
+
gap: 6px;
|
|
1503
|
+
}
|
|
1504
|
+
|
|
1505
|
+
.worktree-merge-content .worktree-merge-row .gap-md {
|
|
1506
|
+
gap: 10px;
|
|
1507
|
+
}
|
|
1508
|
+
|
|
1509
|
+
.worktree-merge-content .worktree-merge-row .gap-lg {
|
|
1510
|
+
gap: 16px;
|
|
1511
|
+
}
|
|
1512
|
+
|
|
1513
|
+
.worktree-merge-content .worktree-merge-row .items-center {
|
|
1514
|
+
align-items: center;
|
|
1515
|
+
}
|
|
1516
|
+
|
|
1517
|
+
.worktree-merge-content .worktree-merge-row .items-start {
|
|
1518
|
+
align-items: flex-start;
|
|
1519
|
+
}
|
|
1520
|
+
|
|
1521
|
+
.worktree-merge-content .worktree-merge-row .items-end {
|
|
1522
|
+
align-items: flex-end;
|
|
1523
|
+
}
|
|
1524
|
+
|
|
1525
|
+
.worktree-merge-content .worktree-merge-row .justify-between {
|
|
1526
|
+
justify-content: space-between;
|
|
1527
|
+
}
|
|
1528
|
+
|
|
1529
|
+
.worktree-merge-content .worktree-merge-row .justify-end {
|
|
1530
|
+
justify-content: flex-end;
|
|
1531
|
+
}
|
|
1532
|
+
|
|
1533
|
+
.worktree-merge-content .worktree-merge-row .justify-start {
|
|
1534
|
+
justify-content: flex-start;
|
|
1535
|
+
}
|
|
1536
|
+
|
|
1537
|
+
.worktree-merge-content .worktree-merge-row .flex-1 {
|
|
1538
|
+
flex: 1 1 auto;
|
|
1539
|
+
}
|
|
1540
|
+
|
|
1541
|
+
.worktree-merge-content .worktree-merge-row .shrink-0 {
|
|
1542
|
+
flex-shrink: 0;
|
|
1543
|
+
}
|
|
1544
|
+
|
|
1545
|
+
.worktree-merge-content .worktree-merge-row .grow-0 {
|
|
1546
|
+
flex-grow: 0;
|
|
1547
|
+
}
|
|
1548
|
+
|
|
1549
|
+
.worktree-merge-content .worktree-merge-row .grow-1 {
|
|
1550
|
+
flex-grow: 1;
|
|
1551
|
+
}
|
|
1552
|
+
|
|
1553
|
+
.worktree-merge-content .worktree-merge-row .min-w-0 {
|
|
1554
|
+
min-width: 0;
|
|
1555
|
+
}
|
|
1556
|
+
|
|
1557
|
+
.worktree-merge-content .worktree-merge-row .w-full {
|
|
1558
|
+
width: 100%;
|
|
1559
|
+
}
|
|
1560
|
+
|
|
1561
|
+
.worktree-merge-content .worktree-merge-row .rounded {
|
|
1562
|
+
border-radius: 8px;
|
|
1563
|
+
}
|
|
1564
|
+
|
|
1565
|
+
.worktree-merge-content .worktree-merge-row .rounded-lg {
|
|
1566
|
+
border-radius: 12px;
|
|
1567
|
+
}
|
|
1568
|
+
|
|
1569
|
+
.worktree-merge-content .worktree-merge-row .rounded-full {
|
|
1570
|
+
border-radius: 999px;
|
|
1571
|
+
}
|
|
1572
|
+
|
|
1573
|
+
.worktree-merge-content .worktree-merge-row .bg-subtle {
|
|
1574
|
+
background: rgba(0, 0, 0, 0.03);
|
|
1575
|
+
}
|
|
1576
|
+
|
|
1577
|
+
.worktree-merge-content .worktree-merge-row .border-subtle {
|
|
1578
|
+
border: 1px solid var(--border-subtle);
|
|
1579
|
+
}
|
|
1580
|
+
|
|
1581
|
+
.worktree-merge-content .worktree-merge-row .px-sm {
|
|
1582
|
+
padding-left: 6px;
|
|
1583
|
+
padding-right: 6px;
|
|
1584
|
+
}
|
|
1585
|
+
|
|
1586
|
+
.worktree-merge-content .worktree-merge-row .px-md {
|
|
1587
|
+
padding-left: 10px;
|
|
1588
|
+
padding-right: 10px;
|
|
1589
|
+
}
|
|
1590
|
+
|
|
1591
|
+
.worktree-merge-content .worktree-merge-row .py-sm {
|
|
1592
|
+
padding-top: 4px;
|
|
1593
|
+
padding-bottom: 4px;
|
|
1594
|
+
}
|
|
1595
|
+
|
|
1596
|
+
.worktree-merge-content .worktree-merge-row .py-md {
|
|
1597
|
+
padding-top: 8px;
|
|
1598
|
+
padding-bottom: 8px;
|
|
1599
|
+
}
|
|
1600
|
+
|
|
1601
|
+
.worktree-merge-content .worktree-merge-row .mt-sm {
|
|
1602
|
+
margin-top: 4px;
|
|
1603
|
+
}
|
|
1604
|
+
|
|
1605
|
+
.worktree-merge-content .worktree-merge-row .mt-md {
|
|
1606
|
+
margin-top: 8px;
|
|
1607
|
+
}
|
|
1608
|
+
|
|
1609
|
+
.worktree-merge-content .worktree-merge-row .mt-lg {
|
|
1610
|
+
margin-top: 12px;
|
|
1611
|
+
}
|
|
1612
|
+
|
|
1613
|
+
.worktree-merge-content .worktree-merge-row .mb-sm {
|
|
1614
|
+
margin-bottom: 4px;
|
|
1092
1615
|
}
|
|
1093
1616
|
|
|
1094
|
-
.
|
|
1095
|
-
|
|
1617
|
+
.worktree-merge-content .worktree-merge-row .mb-md {
|
|
1618
|
+
margin-bottom: 8px;
|
|
1096
1619
|
}
|
|
1097
1620
|
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
background: rgba(231, 76, 60, 0.08);
|
|
1101
|
-
color: #d35244;
|
|
1621
|
+
.worktree-merge-content .worktree-merge-row .mb-lg {
|
|
1622
|
+
margin-bottom: 12px;
|
|
1102
1623
|
}
|
|
1103
1624
|
|
|
1104
1625
|
/* PC: hover to show action buttons */
|
|
@@ -1302,6 +1823,12 @@
|
|
|
1302
1823
|
.topbar-btn:active {
|
|
1303
1824
|
transform: scale(0.95);
|
|
1304
1825
|
}
|
|
1826
|
+
.topbar-btn.active {
|
|
1827
|
+
background: rgba(255, 255, 255, 0.7);
|
|
1828
|
+
color: var(--text-primary);
|
|
1829
|
+
font-weight: 600;
|
|
1830
|
+
box-shadow: 0 1px 4px rgba(89, 58, 32, 0.1);
|
|
1831
|
+
}
|
|
1305
1832
|
|
|
1306
1833
|
/* Square icon variant — exactly 32×32px */
|
|
1307
1834
|
.topbar-btn.square {
|
|
@@ -1514,7 +2041,18 @@
|
|
|
1514
2041
|
|
|
1515
2042
|
.terminal-info { font-size: 0.625rem; color: var(--text-muted); font-weight: 500; }
|
|
1516
2043
|
|
|
1517
|
-
/*
|
|
2044
|
+
/* ===== 主内容区顶部行 ===== */
|
|
2045
|
+
.main-header-row {
|
|
2046
|
+
display: flex;
|
|
2047
|
+
align-items: center;
|
|
2048
|
+
justify-content: flex-start;
|
|
2049
|
+
padding: 4px 10px;
|
|
2050
|
+
flex-shrink: 0;
|
|
2051
|
+
min-height: 0;
|
|
2052
|
+
gap: 8px;
|
|
2053
|
+
}
|
|
2054
|
+
|
|
2055
|
+
/* Current task indicator */
|
|
1518
2056
|
.current-task {
|
|
1519
2057
|
display: flex;
|
|
1520
2058
|
align-items: center;
|
|
@@ -1527,7 +2065,9 @@
|
|
|
1527
2065
|
padding: 2px 8px 2px 5px;
|
|
1528
2066
|
font-weight: 500;
|
|
1529
2067
|
max-width: 280px;
|
|
2068
|
+
min-width: 0;
|
|
1530
2069
|
overflow: hidden;
|
|
2070
|
+
flex-shrink: 1;
|
|
1531
2071
|
text-overflow: ellipsis;
|
|
1532
2072
|
white-space: nowrap;
|
|
1533
2073
|
}
|
|
@@ -1744,6 +2284,25 @@
|
|
|
1744
2284
|
50% { opacity: 1; }
|
|
1745
2285
|
}
|
|
1746
2286
|
|
|
2287
|
+
/* 容器底部渐变 — 为 jump-to-bottom 按钮提供视觉承托 */
|
|
2288
|
+
.terminal-container::after {
|
|
2289
|
+
content: "";
|
|
2290
|
+
position: absolute;
|
|
2291
|
+
bottom: 0;
|
|
2292
|
+
left: 0;
|
|
2293
|
+
right: 0;
|
|
2294
|
+
height: 48px;
|
|
2295
|
+
background: linear-gradient(to top, rgba(26, 22, 19, 0.5), transparent);
|
|
2296
|
+
pointer-events: none;
|
|
2297
|
+
opacity: 0;
|
|
2298
|
+
transition: opacity 0.3s ease;
|
|
2299
|
+
z-index: 12;
|
|
2300
|
+
border-radius: 0 0 var(--radius-md) var(--radius-md);
|
|
2301
|
+
}
|
|
2302
|
+
.terminal-container.has-jump-btn::after {
|
|
2303
|
+
opacity: 1;
|
|
2304
|
+
}
|
|
2305
|
+
|
|
1747
2306
|
/* Chat View — matches topbar-btn height (32px) */
|
|
1748
2307
|
.view-toggle {
|
|
1749
2308
|
display: flex;
|
|
@@ -1862,22 +2421,22 @@
|
|
|
1862
2421
|
min-width: 78px;
|
|
1863
2422
|
height: 32px;
|
|
1864
2423
|
padding: 0 12px;
|
|
1865
|
-
border: 1px solid rgba(255, 255, 255, 0.
|
|
2424
|
+
border: 1px solid rgba(255, 255, 255, 0.15);
|
|
1866
2425
|
border-radius: 999px;
|
|
1867
2426
|
background: rgba(24, 20, 17, 0.72);
|
|
1868
2427
|
color: rgba(255, 247, 239, 0.92);
|
|
1869
|
-
box-shadow: 0
|
|
2428
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
|
|
1870
2429
|
backdrop-filter: blur(10px);
|
|
1871
2430
|
cursor: pointer;
|
|
1872
2431
|
z-index: 13;
|
|
1873
2432
|
opacity: 0;
|
|
1874
|
-
transform: translateY(
|
|
2433
|
+
transform: translateY(12px) scale(0.92);
|
|
1875
2434
|
pointer-events: none;
|
|
1876
|
-
transition: opacity 0.
|
|
2435
|
+
transition: opacity 0.28s var(--ease-out-expo), transform 0.28s var(--ease-out-expo), background 0.18s ease, border-color 0.18s ease;
|
|
1877
2436
|
}
|
|
1878
2437
|
.terminal-jump-bottom.visible {
|
|
1879
2438
|
opacity: 1;
|
|
1880
|
-
transform: translateY(0);
|
|
2439
|
+
transform: translateY(0) scale(1);
|
|
1881
2440
|
pointer-events: auto;
|
|
1882
2441
|
}
|
|
1883
2442
|
.terminal-jump-bottom:hover {
|
|
@@ -1885,7 +2444,7 @@
|
|
|
1885
2444
|
border-color: rgba(214, 123, 82, 0.28);
|
|
1886
2445
|
}
|
|
1887
2446
|
.terminal-jump-bottom:active {
|
|
1888
|
-
transform: translateY(1px);
|
|
2447
|
+
transform: translateY(1px) scale(0.97);
|
|
1889
2448
|
}
|
|
1890
2449
|
|
|
1891
2450
|
/* Terminal interactive mode indicator */
|
|
@@ -2232,19 +2791,19 @@
|
|
|
2232
2791
|
border-radius: 999px;
|
|
2233
2792
|
background: rgba(255, 250, 242, 0.9);
|
|
2234
2793
|
color: var(--text-primary);
|
|
2235
|
-
box-shadow: 0
|
|
2794
|
+
box-shadow: 0 4px 12px rgba(89, 58, 32, 0.10);
|
|
2236
2795
|
backdrop-filter: blur(10px);
|
|
2237
2796
|
cursor: pointer;
|
|
2238
2797
|
z-index: 13;
|
|
2239
2798
|
opacity: 0;
|
|
2240
|
-
transform: translateY(
|
|
2799
|
+
transform: translateY(12px) scale(0.92);
|
|
2241
2800
|
pointer-events: none;
|
|
2242
|
-
transition: opacity 0.
|
|
2801
|
+
transition: opacity 0.28s var(--ease-out-expo), transform 0.28s var(--ease-out-expo), background 0.18s ease, border-color 0.18s ease;
|
|
2243
2802
|
}
|
|
2244
2803
|
|
|
2245
2804
|
.chat-jump-bottom.visible {
|
|
2246
2805
|
opacity: 1;
|
|
2247
|
-
transform: translateY(0);
|
|
2806
|
+
transform: translateY(0) scale(1);
|
|
2248
2807
|
pointer-events: auto;
|
|
2249
2808
|
}
|
|
2250
2809
|
|
|
@@ -2259,6 +2818,23 @@
|
|
|
2259
2818
|
|
|
2260
2819
|
.chat-container.active { display: flex; }
|
|
2261
2820
|
|
|
2821
|
+
.chat-container::after {
|
|
2822
|
+
content: "";
|
|
2823
|
+
position: absolute;
|
|
2824
|
+
bottom: 0;
|
|
2825
|
+
left: 0;
|
|
2826
|
+
right: 0;
|
|
2827
|
+
height: 48px;
|
|
2828
|
+
background: linear-gradient(to top, rgba(255, 252, 248, 0.6), transparent);
|
|
2829
|
+
pointer-events: none;
|
|
2830
|
+
opacity: 0;
|
|
2831
|
+
transition: opacity 0.3s ease;
|
|
2832
|
+
z-index: 12;
|
|
2833
|
+
}
|
|
2834
|
+
.chat-container.has-jump-btn::after {
|
|
2835
|
+
opacity: 1;
|
|
2836
|
+
}
|
|
2837
|
+
|
|
2262
2838
|
/* ===== 聊天消息列表 ===== */
|
|
2263
2839
|
.chat-messages {
|
|
2264
2840
|
flex: 1;
|
|
@@ -2882,8 +3458,8 @@
|
|
|
2882
3458
|
}
|
|
2883
3459
|
.ask-user-option {
|
|
2884
3460
|
display: flex;
|
|
2885
|
-
align-items:
|
|
2886
|
-
gap:
|
|
3461
|
+
align-items: center;
|
|
3462
|
+
gap: 10px;
|
|
2887
3463
|
padding: 8px 12px;
|
|
2888
3464
|
border: 1px solid var(--border-default);
|
|
2889
3465
|
border-radius: var(--radius-sm);
|
|
@@ -2892,15 +3468,119 @@
|
|
|
2892
3468
|
transition: all var(--transition-fast);
|
|
2893
3469
|
text-align: left;
|
|
2894
3470
|
}
|
|
2895
|
-
.ask-user-option:hover {
|
|
3471
|
+
.ask-user-option:hover:not(:disabled) {
|
|
2896
3472
|
border-color: var(--accent);
|
|
2897
3473
|
background: rgba(197, 101, 61, 0.06);
|
|
2898
3474
|
}
|
|
3475
|
+
.ask-user-option:disabled {
|
|
3476
|
+
opacity: 0.5;
|
|
3477
|
+
cursor: not-allowed;
|
|
3478
|
+
}
|
|
3479
|
+
.ask-user-option.selected {
|
|
3480
|
+
border-color: var(--accent);
|
|
3481
|
+
background: rgba(197, 101, 61, 0.08);
|
|
3482
|
+
}
|
|
3483
|
+
/* Radio / Checkbox indicator */
|
|
3484
|
+
.ask-user-indicator {
|
|
3485
|
+
width: 16px;
|
|
3486
|
+
height: 16px;
|
|
3487
|
+
flex-shrink: 0;
|
|
3488
|
+
border: 2px solid var(--border-default);
|
|
3489
|
+
border-radius: 50%;
|
|
3490
|
+
transition: all var(--transition-fast);
|
|
3491
|
+
position: relative;
|
|
3492
|
+
display: flex;
|
|
3493
|
+
align-items: center;
|
|
3494
|
+
justify-content: center;
|
|
3495
|
+
}
|
|
3496
|
+
.ask-user-options[data-multi-select="true"] .ask-user-indicator {
|
|
3497
|
+
border-radius: 3px;
|
|
3498
|
+
}
|
|
3499
|
+
.ask-user-option.selected .ask-user-indicator {
|
|
3500
|
+
border-color: var(--accent);
|
|
3501
|
+
background: var(--accent);
|
|
3502
|
+
}
|
|
3503
|
+
.ask-user-option.selected .ask-user-indicator::after {
|
|
3504
|
+
content: "";
|
|
3505
|
+
width: 6px;
|
|
3506
|
+
height: 6px;
|
|
3507
|
+
background: white;
|
|
3508
|
+
border-radius: 50%;
|
|
3509
|
+
}
|
|
3510
|
+
.ask-user-options[data-multi-select="true"] .ask-user-option.selected .ask-user-indicator::after {
|
|
3511
|
+
width: 4px;
|
|
3512
|
+
height: 8px;
|
|
3513
|
+
border: solid white;
|
|
3514
|
+
border-width: 0 2px 2px 0;
|
|
3515
|
+
border-radius: 0;
|
|
3516
|
+
background: none;
|
|
3517
|
+
transform: rotate(45deg);
|
|
3518
|
+
margin-bottom: 2px;
|
|
3519
|
+
}
|
|
3520
|
+
/* Option content: label + description */
|
|
3521
|
+
.ask-user-option-content {
|
|
3522
|
+
flex: 1;
|
|
3523
|
+
min-width: 0;
|
|
3524
|
+
}
|
|
2899
3525
|
.ask-user-option-label {
|
|
2900
3526
|
font-size: 0.8125rem;
|
|
2901
3527
|
font-weight: 500;
|
|
2902
3528
|
color: var(--text-primary);
|
|
2903
3529
|
}
|
|
3530
|
+
.ask-user-option-desc {
|
|
3531
|
+
font-size: 0.75rem;
|
|
3532
|
+
color: var(--text-secondary);
|
|
3533
|
+
margin-top: 2px;
|
|
3534
|
+
line-height: 1.4;
|
|
3535
|
+
}
|
|
3536
|
+
/* Submit button */
|
|
3537
|
+
.ask-user-actions {
|
|
3538
|
+
margin-top: 10px;
|
|
3539
|
+
display: flex;
|
|
3540
|
+
justify-content: flex-end;
|
|
3541
|
+
}
|
|
3542
|
+
.ask-user-submit {
|
|
3543
|
+
padding: 6px 16px;
|
|
3544
|
+
border: 1px solid var(--accent);
|
|
3545
|
+
border-radius: var(--radius-sm);
|
|
3546
|
+
background: var(--accent);
|
|
3547
|
+
color: white;
|
|
3548
|
+
font-size: 0.8125rem;
|
|
3549
|
+
font-weight: 500;
|
|
3550
|
+
cursor: pointer;
|
|
3551
|
+
transition: all var(--transition-fast);
|
|
3552
|
+
}
|
|
3553
|
+
.ask-user-submit:hover:not(:disabled) {
|
|
3554
|
+
filter: brightness(1.1);
|
|
3555
|
+
}
|
|
3556
|
+
.ask-user-submit:disabled {
|
|
3557
|
+
opacity: 0.4;
|
|
3558
|
+
cursor: not-allowed;
|
|
3559
|
+
}
|
|
3560
|
+
.ask-user-submit.ask-user-submitted {
|
|
3561
|
+
background: var(--bg-secondary);
|
|
3562
|
+
border-color: var(--border-default);
|
|
3563
|
+
color: var(--text-muted);
|
|
3564
|
+
pointer-events: none;
|
|
3565
|
+
}
|
|
3566
|
+
/* Answered (read-only) state */
|
|
3567
|
+
.ask-user-answered .ask-user-option {
|
|
3568
|
+
cursor: default;
|
|
3569
|
+
pointer-events: none;
|
|
3570
|
+
opacity: 0.6;
|
|
3571
|
+
}
|
|
3572
|
+
.ask-user-answered .ask-user-option.ask-user-option-chosen {
|
|
3573
|
+
opacity: 1;
|
|
3574
|
+
border-color: var(--success);
|
|
3575
|
+
background: rgba(79, 122, 88, 0.06);
|
|
3576
|
+
}
|
|
3577
|
+
.ask-user-answered .ask-user-option.ask-user-option-chosen .ask-user-indicator {
|
|
3578
|
+
border-color: var(--success);
|
|
3579
|
+
background: var(--success);
|
|
3580
|
+
}
|
|
3581
|
+
.ask-user-option-readonly {
|
|
3582
|
+
pointer-events: none;
|
|
3583
|
+
}
|
|
2904
3584
|
.ask-user-answer-sent {
|
|
2905
3585
|
padding: 8px 12px;
|
|
2906
3586
|
background: rgba(79, 122, 88, 0.08);
|
|
@@ -3595,10 +4275,12 @@
|
|
|
3595
4275
|
|
|
3596
4276
|
.input-panel {
|
|
3597
4277
|
padding: 6px 10px;
|
|
4278
|
+
padding-bottom: calc(6px + var(--safe-bottom, 0px));
|
|
3598
4279
|
flex-shrink: 0;
|
|
3599
4280
|
z-index: 26;
|
|
3600
4281
|
overscroll-behavior: contain;
|
|
3601
4282
|
touch-action: pan-y;
|
|
4283
|
+
border-top: 1px solid var(--border-subtle);
|
|
3602
4284
|
}
|
|
3603
4285
|
|
|
3604
4286
|
.input-composer {
|
|
@@ -5274,6 +5956,16 @@
|
|
|
5274
5956
|
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
5275
5957
|
button:focus-visible { outline-offset: 0; }
|
|
5276
5958
|
|
|
5959
|
+
/*
|
|
5960
|
+
* ===== 响应式断点级联 =====
|
|
5961
|
+
* max-width: 768px → 平板: 触摸优化, 侧栏覆盖
|
|
5962
|
+
* max-width: 640px → 手机: 紧凑布局, safe-area 底部, 欢迎页适配
|
|
5963
|
+
* ├─ 391-420px → iPhone 14/15: 微调 padding (继承 640px)
|
|
5964
|
+
* └─ max-width: 390px → iPhone SE: 超紧凑 (继承 640px)
|
|
5965
|
+
* 641-768px → iPad Mini: 触摸目标加大 (继承 768px)
|
|
5966
|
+
* max-height: 420px → 横屏: 水平布局
|
|
5967
|
+
*/
|
|
5968
|
+
|
|
5277
5969
|
/* 平板适配 */
|
|
5278
5970
|
@media (max-width: 768px) {
|
|
5279
5971
|
.app-container {
|
|
@@ -5339,8 +6031,6 @@
|
|
|
5339
6031
|
.floating-sidebar-toggle {
|
|
5340
6032
|
width: 30px;
|
|
5341
6033
|
height: 30px;
|
|
5342
|
-
top: max(8px, env(safe-area-inset-top, 8px));
|
|
5343
|
-
left: 8px;
|
|
5344
6034
|
border-radius: 6px;
|
|
5345
6035
|
}
|
|
5346
6036
|
.floating-sidebar-toggle .hamburger-icon { width: 13px; height: 9px; }
|
|
@@ -5364,6 +6054,8 @@
|
|
|
5364
6054
|
.terminal-info { font-size: 0.5625rem; }
|
|
5365
6055
|
.current-task { font-size: 0.5625rem; padding: 1px 6px 1px 4px; gap: 3px; }
|
|
5366
6056
|
|
|
6057
|
+
.main-header-row { padding: 2px 6px; gap: 4px; }
|
|
6058
|
+
|
|
5367
6059
|
/* 视图切换按钮 - 紧凑 */
|
|
5368
6060
|
.view-toggle { height: 28px; padding: 2px; gap: 1px; }
|
|
5369
6061
|
.view-toggle-btn { height: 24px; min-height: 24px; padding: 0 6px; font-size: 0.625rem; gap: 2px; border-radius: 4px; }
|
|
@@ -5461,10 +6153,10 @@
|
|
|
5461
6153
|
.input-panel {
|
|
5462
6154
|
z-index: 30;
|
|
5463
6155
|
padding: 4px 6px;
|
|
5464
|
-
padding-bottom: calc(6px +
|
|
6156
|
+
padding-bottom: calc(6px + var(--safe-bottom, 0px) + var(--keyboard-offset, 0px));
|
|
5465
6157
|
flex: 0 0 auto;
|
|
5466
6158
|
margin-top: auto;
|
|
5467
|
-
background: linear-gradient(180deg, rgba(246, 241, 232, 0) 0%, rgba(246, 241, 232, 0.
|
|
6159
|
+
background: linear-gradient(180deg, rgba(246, 241, 232, 0.5) 0%, rgba(246, 241, 232, 0.88) 30%, rgba(246, 241, 232, 0.96) 100%);
|
|
5468
6160
|
backdrop-filter: blur(12px);
|
|
5469
6161
|
}
|
|
5470
6162
|
|
|
@@ -5473,8 +6165,7 @@
|
|
|
5473
6165
|
}
|
|
5474
6166
|
|
|
5475
6167
|
.input-session-info-bar {
|
|
5476
|
-
padding: 2px 6px;
|
|
5477
|
-
padding-bottom: calc(3px + env(safe-area-inset-bottom, 0px));
|
|
6168
|
+
padding: 2px 6px 3px;
|
|
5478
6169
|
font-size: 0.625rem;
|
|
5479
6170
|
}
|
|
5480
6171
|
|
|
@@ -5622,6 +6313,17 @@
|
|
|
5622
6313
|
min-width: 20px;
|
|
5623
6314
|
}
|
|
5624
6315
|
|
|
6316
|
+
/* 回到底部按钮 - 紧凑 */
|
|
6317
|
+
.terminal-jump-bottom,
|
|
6318
|
+
.chat-jump-bottom {
|
|
6319
|
+
height: 28px;
|
|
6320
|
+
min-width: 64px;
|
|
6321
|
+
padding: 0 10px;
|
|
6322
|
+
font-size: 0.6875rem;
|
|
6323
|
+
right: 10px;
|
|
6324
|
+
bottom: 14px;
|
|
6325
|
+
}
|
|
6326
|
+
|
|
5625
6327
|
/* 小键盘 FAB */
|
|
5626
6328
|
.mini-keyboard-fab {
|
|
5627
6329
|
width: 40px;
|
|
@@ -5749,7 +6451,7 @@
|
|
|
5749
6451
|
.login-container {
|
|
5750
6452
|
min-height: 100dvh;
|
|
5751
6453
|
align-items: flex-start;
|
|
5752
|
-
padding: 8px 8px calc(8px +
|
|
6454
|
+
padding: 8px 8px calc(8px + var(--safe-bottom, 0px));
|
|
5753
6455
|
}
|
|
5754
6456
|
|
|
5755
6457
|
.login-card {
|
|
@@ -5774,7 +6476,7 @@
|
|
|
5774
6476
|
max-width: 100%;
|
|
5775
6477
|
max-height: 85vh;
|
|
5776
6478
|
border-radius: var(--radius-md) var(--radius-md) 0 0;
|
|
5777
|
-
margin-bottom:
|
|
6479
|
+
margin-bottom: var(--safe-bottom, 0px);
|
|
5778
6480
|
}
|
|
5779
6481
|
|
|
5780
6482
|
.modal-header { padding: 10px 12px; min-height: 40px; }
|
|
@@ -5794,6 +6496,21 @@
|
|
|
5794
6496
|
.file-search-box { padding: 4px; }
|
|
5795
6497
|
.file-search-input { min-height: 32px; font-size: 14px; }
|
|
5796
6498
|
.file-item { padding: 6px 8px; min-height: 32px; }
|
|
6499
|
+
|
|
6500
|
+
/* 欢迎页移动端 */
|
|
6501
|
+
.blank-chat { padding: 16px 12px; align-items: flex-start; }
|
|
6502
|
+
.blank-chat-inner { max-width: 100%; }
|
|
6503
|
+
.blank-chat-logo { width: 48px; height: 48px; font-size: 24px; border-radius: 12px; margin-bottom: 10px; }
|
|
6504
|
+
.blank-chat-title { font-size: 1.125rem; }
|
|
6505
|
+
.blank-chat-subtitle { font-size: 0.75rem; margin-bottom: 16px; }
|
|
6506
|
+
.blank-chat-input-wrap { margin-bottom: 12px; }
|
|
6507
|
+
.blank-chat-input { padding: 10px 60px 10px 12px; font-size: 16px; border-radius: 10px; }
|
|
6508
|
+
.blank-chat-send-btn { padding: 6px 12px; font-size: 0.75rem; right: 5px; }
|
|
6509
|
+
.blank-chat-tools { gap: 4px; margin-bottom: 8px; }
|
|
6510
|
+
.blank-chat-tool-btn { padding: 6px 10px; font-size: 0.75rem; min-height: 44px; }
|
|
6511
|
+
.blank-chat-hint { font-size: 0.6875rem; }
|
|
6512
|
+
.mode-btn-group { gap: 4px; margin-top: 8px; }
|
|
6513
|
+
.mode-btn { padding: 5px 10px; font-size: 0.6875rem; min-height: 36px; }
|
|
5797
6514
|
}
|
|
5798
6515
|
|
|
5799
6516
|
/* iPhone 14/15 等标准屏幕 (390px - 420px) - 使用基础移动端样式,略微调整 */
|
|
@@ -5807,7 +6524,7 @@
|
|
|
5807
6524
|
|
|
5808
6525
|
.input-panel {
|
|
5809
6526
|
padding: 6px 10px;
|
|
5810
|
-
padding-bottom: calc(8px +
|
|
6527
|
+
padding-bottom: calc(8px + var(--safe-bottom, 0px));
|
|
5811
6528
|
}
|
|
5812
6529
|
}
|
|
5813
6530
|
|
|
@@ -5817,8 +6534,6 @@
|
|
|
5817
6534
|
.floating-sidebar-toggle {
|
|
5818
6535
|
width: 26px;
|
|
5819
6536
|
height: 26px;
|
|
5820
|
-
top: max(6px, env(safe-area-inset-top, 6px));
|
|
5821
|
-
left: 6px;
|
|
5822
6537
|
}
|
|
5823
6538
|
.floating-sidebar-toggle .hamburger-icon { width: 11px; height: 8px; }
|
|
5824
6539
|
|
|
@@ -5836,7 +6551,7 @@
|
|
|
5836
6551
|
|
|
5837
6552
|
.input-panel {
|
|
5838
6553
|
padding: 5px 6px;
|
|
5839
|
-
padding-bottom: calc(6px +
|
|
6554
|
+
padding-bottom: calc(6px + var(--safe-bottom, 0px));
|
|
5840
6555
|
}
|
|
5841
6556
|
|
|
5842
6557
|
.input-composer { border-radius: 8px; }
|
|
@@ -5886,8 +6601,6 @@
|
|
|
5886
6601
|
.floating-sidebar-toggle {
|
|
5887
6602
|
width: 28px;
|
|
5888
6603
|
height: 28px;
|
|
5889
|
-
top: 6px;
|
|
5890
|
-
left: 6px;
|
|
5891
6604
|
}
|
|
5892
6605
|
|
|
5893
6606
|
.sidebar { top: 0; }
|
|
@@ -5904,7 +6617,7 @@
|
|
|
5904
6617
|
|
|
5905
6618
|
.input-panel {
|
|
5906
6619
|
padding: 8px;
|
|
5907
|
-
padding-bottom: calc(8px +
|
|
6620
|
+
padding-bottom: calc(8px + var(--safe-bottom, 0px));
|
|
5908
6621
|
}
|
|
5909
6622
|
|
|
5910
6623
|
.input-row { flex-direction: row; gap: 8px; }
|
|
@@ -5917,76 +6630,6 @@
|
|
|
5917
6630
|
}
|
|
5918
6631
|
|
|
5919
6632
|
/* Blank chat mobile optimization */
|
|
5920
|
-
@media (max-width: 640px) {
|
|
5921
|
-
.blank-chat {
|
|
5922
|
-
padding: 16px 12px;
|
|
5923
|
-
align-items: flex-start;
|
|
5924
|
-
}
|
|
5925
|
-
|
|
5926
|
-
.blank-chat-inner {
|
|
5927
|
-
max-width: 100%;
|
|
5928
|
-
}
|
|
5929
|
-
|
|
5930
|
-
.blank-chat-logo {
|
|
5931
|
-
width: 48px;
|
|
5932
|
-
height: 48px;
|
|
5933
|
-
font-size: 24px;
|
|
5934
|
-
border-radius: 12px;
|
|
5935
|
-
margin-bottom: 10px;
|
|
5936
|
-
}
|
|
5937
|
-
|
|
5938
|
-
.blank-chat-title {
|
|
5939
|
-
font-size: 1.125rem;
|
|
5940
|
-
}
|
|
5941
|
-
|
|
5942
|
-
.blank-chat-subtitle {
|
|
5943
|
-
font-size: 0.75rem;
|
|
5944
|
-
margin-bottom: 16px;
|
|
5945
|
-
}
|
|
5946
|
-
|
|
5947
|
-
.blank-chat-input-wrap {
|
|
5948
|
-
margin-bottom: 12px;
|
|
5949
|
-
}
|
|
5950
|
-
|
|
5951
|
-
.blank-chat-input {
|
|
5952
|
-
padding: 10px 60px 10px 12px;
|
|
5953
|
-
font-size: 16px; /* Prevent iOS zoom */
|
|
5954
|
-
border-radius: 10px;
|
|
5955
|
-
}
|
|
5956
|
-
|
|
5957
|
-
.blank-chat-send-btn {
|
|
5958
|
-
padding: 6px 12px;
|
|
5959
|
-
font-size: 0.75rem;
|
|
5960
|
-
right: 5px;
|
|
5961
|
-
}
|
|
5962
|
-
|
|
5963
|
-
.blank-chat-tools {
|
|
5964
|
-
gap: 4px;
|
|
5965
|
-
margin-bottom: 8px;
|
|
5966
|
-
}
|
|
5967
|
-
|
|
5968
|
-
.blank-chat-tool-btn {
|
|
5969
|
-
padding: 6px 10px;
|
|
5970
|
-
font-size: 0.75rem;
|
|
5971
|
-
min-height: 44px;
|
|
5972
|
-
}
|
|
5973
|
-
|
|
5974
|
-
.blank-chat-hint {
|
|
5975
|
-
font-size: 0.6875rem;
|
|
5976
|
-
}
|
|
5977
|
-
|
|
5978
|
-
.mode-btn-group {
|
|
5979
|
-
gap: 4px;
|
|
5980
|
-
margin-top: 8px;
|
|
5981
|
-
}
|
|
5982
|
-
|
|
5983
|
-
.mode-btn {
|
|
5984
|
-
padding: 5px 10px;
|
|
5985
|
-
font-size: 0.6875rem;
|
|
5986
|
-
min-height: 36px;
|
|
5987
|
-
}
|
|
5988
|
-
}
|
|
5989
|
-
|
|
5990
6633
|
.session-kind-badge {
|
|
5991
6634
|
display: inline-flex;
|
|
5992
6635
|
align-items: center;
|
|
@@ -6328,13 +6971,13 @@
|
|
|
6328
6971
|
left: 50%;
|
|
6329
6972
|
transform: translateX(-50%);
|
|
6330
6973
|
z-index: 10000;
|
|
6331
|
-
min-width:
|
|
6332
|
-
max-width:
|
|
6974
|
+
min-width: 220px;
|
|
6975
|
+
max-width: 320px;
|
|
6333
6976
|
background: var(--bg-primary);
|
|
6334
6977
|
border: 1px solid var(--border);
|
|
6335
|
-
border-radius: var(--radius
|
|
6978
|
+
border-radius: var(--radius);
|
|
6336
6979
|
box-shadow: var(--shadow-lg);
|
|
6337
|
-
padding:
|
|
6980
|
+
padding: 8px 12px;
|
|
6338
6981
|
animation: notification-slide-in 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
6339
6982
|
transition: top 0.25s ease, opacity 0.25s ease;
|
|
6340
6983
|
}
|
|
@@ -6345,24 +6988,24 @@
|
|
|
6345
6988
|
.notification-bubble-header {
|
|
6346
6989
|
display: flex;
|
|
6347
6990
|
align-items: center;
|
|
6348
|
-
gap:
|
|
6349
|
-
margin-bottom:
|
|
6991
|
+
gap: 6px;
|
|
6992
|
+
margin-bottom: 2px;
|
|
6350
6993
|
}
|
|
6351
6994
|
.notification-bubble-icon {
|
|
6352
|
-
width:
|
|
6353
|
-
height:
|
|
6995
|
+
width: 16px;
|
|
6996
|
+
height: 16px;
|
|
6354
6997
|
flex-shrink: 0;
|
|
6355
6998
|
display: flex;
|
|
6356
6999
|
align-items: center;
|
|
6357
7000
|
justify-content: center;
|
|
6358
7001
|
border-radius: var(--radius-sm);
|
|
6359
|
-
font-size:
|
|
7002
|
+
font-size: 10px;
|
|
6360
7003
|
}
|
|
6361
7004
|
.notification-bubble-icon.info { background: var(--accent); color: white; }
|
|
6362
7005
|
.notification-bubble-icon.warning { background: var(--warning); color: white; }
|
|
6363
7006
|
.notification-bubble-icon.success { background: var(--success); color: white; }
|
|
6364
7007
|
.notification-bubble-title {
|
|
6365
|
-
font-size: 0.
|
|
7008
|
+
font-size: 0.75rem;
|
|
6366
7009
|
font-weight: 600;
|
|
6367
7010
|
color: var(--fg-primary);
|
|
6368
7011
|
flex: 1;
|
|
@@ -6373,9 +7016,9 @@
|
|
|
6373
7016
|
border: none;
|
|
6374
7017
|
color: var(--fg-muted);
|
|
6375
7018
|
cursor: pointer;
|
|
6376
|
-
font-size:
|
|
7019
|
+
font-size: 14px;
|
|
6377
7020
|
line-height: 1;
|
|
6378
|
-
padding:
|
|
7021
|
+
padding: 1px 3px;
|
|
6379
7022
|
border-radius: var(--radius-sm);
|
|
6380
7023
|
flex-shrink: 0;
|
|
6381
7024
|
}
|
|
@@ -6384,20 +7027,20 @@
|
|
|
6384
7027
|
color: var(--fg-primary);
|
|
6385
7028
|
}
|
|
6386
7029
|
.notification-bubble-body {
|
|
6387
|
-
font-size: 0.
|
|
7030
|
+
font-size: 0.7rem;
|
|
6388
7031
|
color: var(--fg-secondary);
|
|
6389
|
-
line-height: 1.
|
|
7032
|
+
line-height: 1.4;
|
|
6390
7033
|
margin-bottom: 0;
|
|
6391
7034
|
}
|
|
6392
7035
|
.notification-bubble-actions {
|
|
6393
|
-
margin-top:
|
|
7036
|
+
margin-top: 6px;
|
|
6394
7037
|
display: flex;
|
|
6395
|
-
gap:
|
|
7038
|
+
gap: 6px;
|
|
6396
7039
|
justify-content: flex-end;
|
|
6397
7040
|
}
|
|
6398
7041
|
.notification-bubble-actions button {
|
|
6399
|
-
font-size: 0.
|
|
6400
|
-
padding:
|
|
7042
|
+
font-size: 0.7rem;
|
|
7043
|
+
padding: 2px 10px;
|
|
6401
7044
|
border-radius: var(--radius-sm);
|
|
6402
7045
|
cursor: pointer;
|
|
6403
7046
|
border: 1px solid var(--border);
|
|
@@ -6425,6 +7068,73 @@
|
|
|
6425
7068
|
to { opacity: 0; transform: translateX(-50%) translateY(-20px); }
|
|
6426
7069
|
}
|
|
6427
7070
|
|
|
7071
|
+
/* Notification bubble button states */
|
|
7072
|
+
.notification-bubble-actions button:disabled {
|
|
7073
|
+
opacity: 0.6;
|
|
7074
|
+
cursor: not-allowed;
|
|
7075
|
+
filter: none;
|
|
7076
|
+
}
|
|
7077
|
+
.notification-bubble-actions button.success {
|
|
7078
|
+
background: var(--success);
|
|
7079
|
+
color: white;
|
|
7080
|
+
border-color: var(--success);
|
|
7081
|
+
}
|
|
7082
|
+
.notification-bubble-actions button.success:hover:not(:disabled) {
|
|
7083
|
+
filter: brightness(1.1);
|
|
7084
|
+
}
|
|
7085
|
+
|
|
7086
|
+
/* Settings restart button */
|
|
7087
|
+
.btn-success {
|
|
7088
|
+
background: var(--success);
|
|
7089
|
+
color: white;
|
|
7090
|
+
border-color: var(--success);
|
|
7091
|
+
}
|
|
7092
|
+
.btn-success:hover:not(:disabled) {
|
|
7093
|
+
filter: brightness(1.1);
|
|
7094
|
+
}
|
|
7095
|
+
|
|
7096
|
+
/* Restart overlay */
|
|
7097
|
+
.restart-overlay {
|
|
7098
|
+
position: fixed;
|
|
7099
|
+
inset: 0;
|
|
7100
|
+
z-index: 99999;
|
|
7101
|
+
background: rgba(0, 0, 0, 0.65);
|
|
7102
|
+
display: flex;
|
|
7103
|
+
align-items: center;
|
|
7104
|
+
justify-content: center;
|
|
7105
|
+
backdrop-filter: blur(4px);
|
|
7106
|
+
animation: restart-fade-in 0.3s ease;
|
|
7107
|
+
}
|
|
7108
|
+
.restart-overlay-content {
|
|
7109
|
+
text-align: center;
|
|
7110
|
+
color: white;
|
|
7111
|
+
}
|
|
7112
|
+
.restart-title {
|
|
7113
|
+
font-size: 1.25rem;
|
|
7114
|
+
font-weight: 600;
|
|
7115
|
+
margin-bottom: 8px;
|
|
7116
|
+
}
|
|
7117
|
+
.restart-subtitle {
|
|
7118
|
+
font-size: 0.9rem;
|
|
7119
|
+
opacity: 0.8;
|
|
7120
|
+
}
|
|
7121
|
+
.restart-spinner {
|
|
7122
|
+
width: 36px;
|
|
7123
|
+
height: 36px;
|
|
7124
|
+
margin: 0 auto 16px;
|
|
7125
|
+
border: 3px solid rgba(255, 255, 255, 0.25);
|
|
7126
|
+
border-top-color: white;
|
|
7127
|
+
border-radius: 50%;
|
|
7128
|
+
animation: restart-spin 0.8s linear infinite;
|
|
7129
|
+
}
|
|
7130
|
+
@keyframes restart-spin {
|
|
7131
|
+
to { transform: rotate(360deg); }
|
|
7132
|
+
}
|
|
7133
|
+
@keyframes restart-fade-in {
|
|
7134
|
+
from { opacity: 0; }
|
|
7135
|
+
to { opacity: 1; }
|
|
7136
|
+
}
|
|
7137
|
+
|
|
6428
7138
|
/* File Preview Modal */
|
|
6429
7139
|
.file-preview-overlay {
|
|
6430
7140
|
position: fixed;
|