codex-lens 0.1.14 → 0.1.16
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/aggregator.js +1 -1
- package/dist/cli.js +1 -1
- package/dist/pty-manager.js +22 -3
- package/dist/public/assets/main-7-y-Utze.css +32 -0
- package/dist/public/assets/main-ssN8akn5.js +88 -0
- package/dist/public/index.html +3 -3
- package/package.json +22 -5
- package/src/aggregator.js +1 -1
- package/src/cli.js +1 -1
- package/src/components/App.jsx +59 -61
- package/src/components/CodeViewer.jsx +185 -0
- package/src/global.css +367 -374
- package/src/index.html +1 -1
- package/src/pty-manager.js +28 -3
- package/dist/public/assets/main-0MulWSMb.css +0 -32
- package/dist/public/assets/main-gWFaVAuJ.js +0 -50
package/src/global.css
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
|
-
@import url('https://fonts.googleapis.com/css2?family=
|
|
1
|
+
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=DM+Sans:wght@400;500;600;700&display=swap');
|
|
2
2
|
|
|
3
3
|
:root {
|
|
4
|
-
--bg-primary: #
|
|
5
|
-
--bg-secondary: #
|
|
6
|
-
--bg-tertiary: #
|
|
4
|
+
--bg-primary: #000000;
|
|
5
|
+
--bg-secondary: #0A0A0A;
|
|
6
|
+
--bg-tertiary: #141414;
|
|
7
|
+
--bg-elevated: #1A1A1A;
|
|
8
|
+
--bg-surface: #0F0F0F;
|
|
7
9
|
--text-primary: #F8FAFC;
|
|
8
10
|
--text-secondary: #94A3B8;
|
|
9
11
|
--text-muted: #64748B;
|
|
10
|
-
--border-color:
|
|
12
|
+
--border-color: rgba(148, 163, 184, 0.15);
|
|
13
|
+
--border-glow: rgba(34, 197, 94, 0.3);
|
|
11
14
|
--accent-color: #22C55E;
|
|
12
15
|
--accent-hover: #16A34A;
|
|
13
|
-
--accent-glow: rgba(34, 197, 94, 0.
|
|
14
|
-
--
|
|
16
|
+
--accent-glow: rgba(34, 197, 94, 0.4);
|
|
17
|
+
--accent-soft: rgba(34, 197, 94, 0.1);
|
|
18
|
+
--diff-add-bg: rgba(34, 197, 94, 0.12);
|
|
15
19
|
--diff-add-text: #4ADE80;
|
|
16
20
|
--diff-add-border: #22C55E;
|
|
17
|
-
--diff-remove-bg: rgba(239, 68, 68, 0.
|
|
21
|
+
--diff-remove-bg: rgba(239, 68, 68, 0.12);
|
|
18
22
|
--diff-remove-text: #F87171;
|
|
19
23
|
--diff-remove-border: #EF4444;
|
|
20
24
|
--danger-color: #EF4444;
|
|
@@ -22,18 +26,28 @@
|
|
|
22
26
|
--success-color: #22C55E;
|
|
23
27
|
--success-hover: #16A34A;
|
|
24
28
|
--warning-color: #F59E0B;
|
|
25
|
-
--
|
|
26
|
-
--font-
|
|
27
|
-
--
|
|
28
|
-
--
|
|
29
|
-
--shadow-
|
|
30
|
-
--shadow-
|
|
31
|
-
--
|
|
32
|
-
--
|
|
33
|
-
--
|
|
34
|
-
--
|
|
29
|
+
--info-color: #3B82F6;
|
|
30
|
+
--font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
31
|
+
--font-display: 'Space Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
32
|
+
--font-mono: 'JetBrains Mono', 'Fira Code', 'SF Mono', 'Consolas', monospace;
|
|
33
|
+
--shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.2);
|
|
34
|
+
--shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.2);
|
|
35
|
+
--shadow-md: 0 4px 12px rgba(0, 0, 0, 0.3);
|
|
36
|
+
--shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.4);
|
|
37
|
+
--shadow-xl: 0 16px 48px rgba(0, 0, 0, 0.5);
|
|
38
|
+
--shadow-glow: 0 0 24px var(--accent-glow);
|
|
39
|
+
--shadow-glow-sm: 0 0 12px var(--accent-glow);
|
|
40
|
+
--radius-xs: 4px;
|
|
41
|
+
--radius-sm: 6px;
|
|
42
|
+
--radius-md: 10px;
|
|
43
|
+
--radius-lg: 14px;
|
|
44
|
+
--radius-xl: 20px;
|
|
45
|
+
--transition-fast: 120ms ease;
|
|
35
46
|
--transition-normal: 200ms ease;
|
|
36
47
|
--transition-slow: 300ms ease;
|
|
48
|
+
--blur-sm: 8px;
|
|
49
|
+
--blur-md: 16px;
|
|
50
|
+
--blur-lg: 24px;
|
|
37
51
|
}
|
|
38
52
|
|
|
39
53
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -58,7 +72,7 @@ html, body, #root {
|
|
|
58
72
|
|
|
59
73
|
body {
|
|
60
74
|
font-family: var(--font-family);
|
|
61
|
-
background
|
|
75
|
+
background: var(--bg-primary);
|
|
62
76
|
color: var(--text-primary);
|
|
63
77
|
font-size: 14px;
|
|
64
78
|
line-height: 1.6;
|
|
@@ -68,57 +82,151 @@ body {
|
|
|
68
82
|
|
|
69
83
|
.app-container {
|
|
70
84
|
display: flex;
|
|
85
|
+
flex-direction: column;
|
|
71
86
|
height: 100vh;
|
|
72
87
|
width: 100vw;
|
|
88
|
+
background: var(--bg-primary);
|
|
73
89
|
}
|
|
74
90
|
|
|
75
|
-
.
|
|
91
|
+
.top-bar {
|
|
76
92
|
display: flex;
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
93
|
+
align-items: center;
|
|
94
|
+
justify-content: space-between;
|
|
95
|
+
padding: 12px 20px;
|
|
96
|
+
background: linear-gradient(180deg, rgba(30, 41, 59, 0.95) 0%, rgba(30, 41, 59, 0.85) 100%);
|
|
97
|
+
backdrop-filter: blur(var(--blur-md));
|
|
98
|
+
border-bottom: 1px solid var(--border-color);
|
|
99
|
+
min-height: 52px;
|
|
100
|
+
position: relative;
|
|
101
|
+
z-index: 100;
|
|
81
102
|
}
|
|
82
103
|
|
|
83
|
-
.
|
|
84
|
-
|
|
104
|
+
.top-bar::after {
|
|
105
|
+
content: '';
|
|
106
|
+
position: absolute;
|
|
107
|
+
bottom: 0;
|
|
108
|
+
left: 0;
|
|
109
|
+
right: 0;
|
|
110
|
+
height: 1px;
|
|
111
|
+
background: linear-gradient(90deg, transparent, var(--accent-color), transparent);
|
|
112
|
+
opacity: 0.3;
|
|
85
113
|
}
|
|
86
114
|
|
|
87
|
-
.
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
115
|
+
.top-bar-left,
|
|
116
|
+
.top-bar-center,
|
|
117
|
+
.top-bar-right {
|
|
118
|
+
display: flex;
|
|
119
|
+
align-items: center;
|
|
120
|
+
gap: 16px;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.top-bar-left {
|
|
124
|
+
width: 260px;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.top-bar-center {
|
|
128
|
+
flex: 1;
|
|
129
|
+
justify-content: center;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.top-bar-right {
|
|
133
|
+
width: 40%;
|
|
134
|
+
justify-content: flex-end;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.top-bar-title {
|
|
138
|
+
font-family: var(--font-display);
|
|
91
139
|
font-weight: 600;
|
|
92
|
-
font-size:
|
|
140
|
+
font-size: 13px;
|
|
93
141
|
text-transform: uppercase;
|
|
94
|
-
letter-spacing:
|
|
142
|
+
letter-spacing: 1px;
|
|
95
143
|
color: var(--text-secondary);
|
|
96
144
|
display: flex;
|
|
97
145
|
align-items: center;
|
|
98
146
|
gap: 8px;
|
|
99
147
|
}
|
|
100
148
|
|
|
149
|
+
.top-bar-title::before {
|
|
150
|
+
content: '';
|
|
151
|
+
display: inline-block;
|
|
152
|
+
width: 3px;
|
|
153
|
+
height: 14px;
|
|
154
|
+
background: var(--accent-color);
|
|
155
|
+
border-radius: 2px;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.main-content {
|
|
159
|
+
display: flex;
|
|
160
|
+
flex: 1;
|
|
161
|
+
overflow: hidden;
|
|
162
|
+
gap: 1px;
|
|
163
|
+
background: var(--border-color);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.panel {
|
|
167
|
+
display: flex;
|
|
168
|
+
flex-direction: column;
|
|
169
|
+
overflow: hidden;
|
|
170
|
+
background: linear-gradient(180deg, var(--bg-secondary) 0%, rgba(30, 41, 59, 0.95) 100%);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.left-panel {
|
|
174
|
+
width: 260px;
|
|
175
|
+
flex-shrink: 0;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.middle-panel {
|
|
179
|
+
flex: 1;
|
|
180
|
+
min-width: 300px;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
.right-panel {
|
|
184
|
+
width: 40%;
|
|
185
|
+
min-width: 300px;
|
|
186
|
+
max-width: 60%;
|
|
187
|
+
}
|
|
188
|
+
|
|
101
189
|
.panel-content {
|
|
102
190
|
flex: 1;
|
|
103
191
|
overflow: auto;
|
|
192
|
+
padding: 8px;
|
|
104
193
|
}
|
|
105
194
|
|
|
106
195
|
.file-tree {
|
|
107
|
-
padding:
|
|
196
|
+
padding: 4px;
|
|
108
197
|
}
|
|
109
198
|
|
|
110
199
|
.file-item {
|
|
111
|
-
padding:
|
|
200
|
+
padding: 8px 12px;
|
|
112
201
|
cursor: pointer;
|
|
113
202
|
border-radius: var(--radius-sm);
|
|
114
203
|
display: flex;
|
|
115
204
|
align-items: center;
|
|
116
|
-
gap:
|
|
117
|
-
transition:
|
|
205
|
+
gap: 10px;
|
|
206
|
+
transition: all var(--transition-fast);
|
|
207
|
+
position: relative;
|
|
208
|
+
margin: 2px 0;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.file-item::before {
|
|
212
|
+
content: '';
|
|
213
|
+
position: absolute;
|
|
214
|
+
left: 0;
|
|
215
|
+
top: 50%;
|
|
216
|
+
transform: translateY(-50%);
|
|
217
|
+
width: 3px;
|
|
218
|
+
height: 0;
|
|
219
|
+
background: var(--accent-color);
|
|
220
|
+
border-radius: 0 2px 2px 0;
|
|
221
|
+
transition: height var(--transition-fast);
|
|
118
222
|
}
|
|
119
223
|
|
|
120
224
|
.file-item:hover {
|
|
121
|
-
background:
|
|
225
|
+
background: rgba(148, 163, 184, 0.08);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
.file-item:hover::before {
|
|
229
|
+
height: 60%;
|
|
122
230
|
}
|
|
123
231
|
|
|
124
232
|
.file-item:active {
|
|
@@ -126,18 +234,22 @@ body {
|
|
|
126
234
|
}
|
|
127
235
|
|
|
128
236
|
.file-item.active {
|
|
129
|
-
background: var(--accent-
|
|
237
|
+
background: var(--accent-soft);
|
|
130
238
|
color: var(--text-primary);
|
|
131
|
-
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
.file-item.active::before {
|
|
242
|
+
height: 70%;
|
|
132
243
|
}
|
|
133
244
|
|
|
134
245
|
.file-icon {
|
|
135
|
-
width:
|
|
136
|
-
height:
|
|
246
|
+
width: 18px;
|
|
247
|
+
height: 18px;
|
|
137
248
|
display: flex;
|
|
138
249
|
align-items: center;
|
|
139
250
|
justify-content: center;
|
|
140
251
|
font-size: 14px;
|
|
252
|
+
opacity: 0.9;
|
|
141
253
|
}
|
|
142
254
|
|
|
143
255
|
.file-name {
|
|
@@ -145,15 +257,17 @@ body {
|
|
|
145
257
|
overflow: hidden;
|
|
146
258
|
text-overflow: ellipsis;
|
|
147
259
|
white-space: nowrap;
|
|
260
|
+
font-size: 13px;
|
|
148
261
|
}
|
|
149
262
|
|
|
150
263
|
.diff-line {
|
|
151
264
|
font-family: var(--font-mono);
|
|
152
265
|
font-size: 13px;
|
|
153
|
-
padding:
|
|
266
|
+
padding: 3px 16px 3px 20px;
|
|
154
267
|
white-space: pre;
|
|
155
268
|
border-left: 3px solid transparent;
|
|
156
269
|
transition: background var(--transition-fast);
|
|
270
|
+
position: relative;
|
|
157
271
|
}
|
|
158
272
|
|
|
159
273
|
.diff-line.added {
|
|
@@ -170,10 +284,11 @@ body {
|
|
|
170
284
|
|
|
171
285
|
.diff-line::before {
|
|
172
286
|
display: inline-block;
|
|
173
|
-
width:
|
|
174
|
-
margin-
|
|
287
|
+
width: 16px;
|
|
288
|
+
margin-left: -16px;
|
|
175
289
|
text-align: center;
|
|
176
290
|
font-weight: 600;
|
|
291
|
+
font-size: 12px;
|
|
177
292
|
}
|
|
178
293
|
|
|
179
294
|
.diff-line.added::before {
|
|
@@ -186,194 +301,17 @@ body {
|
|
|
186
301
|
color: var(--diff-remove-text);
|
|
187
302
|
}
|
|
188
303
|
|
|
189
|
-
.chat-message {
|
|
190
|
-
padding: 12px 16px;
|
|
191
|
-
margin: 8px 12px;
|
|
192
|
-
border-radius: var(--radius-lg);
|
|
193
|
-
max-width: 85%;
|
|
194
|
-
line-height: 1.5;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
.chat-message.user {
|
|
198
|
-
background: var(--accent-color);
|
|
199
|
-
color: white;
|
|
200
|
-
margin-left: auto;
|
|
201
|
-
box-shadow: var(--shadow-md);
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
.chat-message.codex {
|
|
205
|
-
background: var(--bg-tertiary);
|
|
206
|
-
color: var(--text-primary);
|
|
207
|
-
border: 1px solid var(--border-color);
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
.chat-input-container {
|
|
211
|
-
padding: 12px;
|
|
212
|
-
border-top: 1px solid var(--border-color);
|
|
213
|
-
background: var(--bg-secondary);
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
.chat-input {
|
|
217
|
-
width: 100%;
|
|
218
|
-
padding: 10px 14px;
|
|
219
|
-
background: var(--bg-primary);
|
|
220
|
-
border: 1px solid var(--border-color);
|
|
221
|
-
border-radius: var(--radius-md);
|
|
222
|
-
color: var(--text-primary);
|
|
223
|
-
font-family: var(--font-family);
|
|
224
|
-
font-size: 14px;
|
|
225
|
-
resize: none;
|
|
226
|
-
transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
.chat-input:focus {
|
|
230
|
-
outline: none;
|
|
231
|
-
border-color: var(--accent-color);
|
|
232
|
-
box-shadow: var(--shadow-glow);
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
::-webkit-scrollbar {
|
|
236
|
-
width: 8px;
|
|
237
|
-
height: 8px;
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
::-webkit-scrollbar-track {
|
|
241
|
-
background: var(--bg-primary);
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
::-webkit-scrollbar-thumb {
|
|
245
|
-
background: var(--border-color);
|
|
246
|
-
border-radius: 4px;
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
::-webkit-scrollbar-thumb:hover {
|
|
250
|
-
background: var(--text-muted);
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
.ws-status {
|
|
254
|
-
display: inline-block;
|
|
255
|
-
width: 8px;
|
|
256
|
-
height: 8px;
|
|
257
|
-
border-radius: 50%;
|
|
258
|
-
margin-left: 8px;
|
|
259
|
-
transition: background var(--transition-normal), box-shadow var(--transition-normal);
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
.ws-status.connected {
|
|
263
|
-
background: var(--success-color);
|
|
264
|
-
box-shadow: 0 0 8px var(--success-color);
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
.ws-status.disconnected {
|
|
268
|
-
background: var(--danger-color);
|
|
269
|
-
box-shadow: 0 0 8px var(--danger-color);
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
.version-info {
|
|
273
|
-
display: flex;
|
|
274
|
-
align-items: center;
|
|
275
|
-
gap: 8px;
|
|
276
|
-
margin-left: auto;
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
.version-number {
|
|
280
|
-
font-size: 11px;
|
|
281
|
-
color: var(--text-muted);
|
|
282
|
-
font-weight: 500;
|
|
283
|
-
font-family: var(--font-mono);
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
.update-badge {
|
|
287
|
-
font-size: 10px;
|
|
288
|
-
padding: 3px 8px;
|
|
289
|
-
background: var(--warning-color);
|
|
290
|
-
color: var(--bg-primary);
|
|
291
|
-
border-radius: var(--radius-sm);
|
|
292
|
-
cursor: pointer;
|
|
293
|
-
font-weight: 600;
|
|
294
|
-
transition: background var(--transition-fast), transform var(--transition-fast);
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
.update-badge:hover {
|
|
298
|
-
background: #FBBF24;
|
|
299
|
-
transform: translateY(-1px);
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
.terminal-wrapper {
|
|
303
|
-
flex: 1;
|
|
304
|
-
overflow: hidden;
|
|
305
|
-
min-height: 0;
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
.left-panel {
|
|
309
|
-
width: 260px;
|
|
310
|
-
flex-shrink: 0;
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
.middle-panel {
|
|
314
|
-
flex: 1;
|
|
315
|
-
min-width: 300px;
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
.right-panel {
|
|
319
|
-
width: 40%;
|
|
320
|
-
min-width: 300px;
|
|
321
|
-
max-width: 60%;
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
.section {
|
|
325
|
-
margin-bottom: 16px;
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
.section-title {
|
|
329
|
-
padding: 12px 16px 8px;
|
|
330
|
-
font-size: 10px;
|
|
331
|
-
font-weight: 600;
|
|
332
|
-
color: var(--text-muted);
|
|
333
|
-
text-transform: uppercase;
|
|
334
|
-
letter-spacing: 0.5px;
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
.empty-state {
|
|
338
|
-
padding: 32px;
|
|
339
|
-
text-align: center;
|
|
340
|
-
color: var(--text-muted);
|
|
341
|
-
font-size: 13px;
|
|
342
|
-
display: flex;
|
|
343
|
-
flex-direction: column;
|
|
344
|
-
align-items: center;
|
|
345
|
-
gap: 8px;
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
.empty-state::before {
|
|
349
|
-
content: '📄';
|
|
350
|
-
font-size: 32px;
|
|
351
|
-
opacity: 0.5;
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
.code-panel {
|
|
355
|
-
font-family: var(--font-mono);
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
.code-content {
|
|
359
|
-
padding: 16px;
|
|
360
|
-
white-space: pre-wrap;
|
|
361
|
-
word-break: break-all;
|
|
362
|
-
line-height: 1.7;
|
|
363
|
-
}
|
|
364
|
-
|
|
365
|
-
.diff-container {
|
|
366
|
-
font-family: var(--font-mono);
|
|
367
|
-
font-size: 13px;
|
|
368
|
-
padding: 8px 0;
|
|
369
|
-
}
|
|
370
|
-
|
|
371
304
|
.tab-bar {
|
|
372
305
|
display: flex;
|
|
373
|
-
background:
|
|
306
|
+
background: rgba(15, 23, 42, 0.6);
|
|
374
307
|
border-bottom: 1px solid var(--border-color);
|
|
375
308
|
overflow-x: auto;
|
|
376
309
|
min-height: 40px;
|
|
310
|
+
scrollbar-width: none;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
.tab-bar::-webkit-scrollbar {
|
|
314
|
+
display: none;
|
|
377
315
|
}
|
|
378
316
|
|
|
379
317
|
.tab {
|
|
@@ -381,25 +319,35 @@ body {
|
|
|
381
319
|
align-items: center;
|
|
382
320
|
gap: 8px;
|
|
383
321
|
padding: 10px 16px;
|
|
384
|
-
background:
|
|
322
|
+
background: transparent;
|
|
385
323
|
border-right: 1px solid var(--border-color);
|
|
386
324
|
cursor: pointer;
|
|
387
325
|
min-width: 100px;
|
|
388
|
-
max-width:
|
|
326
|
+
max-width: 180px;
|
|
389
327
|
font-size: 13px;
|
|
390
|
-
color: var(--text-
|
|
391
|
-
transition:
|
|
328
|
+
color: var(--text-muted);
|
|
329
|
+
transition: all var(--transition-fast);
|
|
330
|
+
position: relative;
|
|
392
331
|
}
|
|
393
332
|
|
|
394
333
|
.tab:hover {
|
|
395
|
-
background:
|
|
396
|
-
color: var(--text-
|
|
334
|
+
background: rgba(148, 163, 184, 0.05);
|
|
335
|
+
color: var(--text-secondary);
|
|
397
336
|
}
|
|
398
337
|
|
|
399
338
|
.tab.active {
|
|
400
|
-
background: var(--bg-
|
|
339
|
+
background: var(--bg-secondary);
|
|
401
340
|
color: var(--text-primary);
|
|
402
|
-
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
.tab.active::after {
|
|
344
|
+
content: '';
|
|
345
|
+
position: absolute;
|
|
346
|
+
bottom: 0;
|
|
347
|
+
left: 0;
|
|
348
|
+
right: 0;
|
|
349
|
+
height: 2px;
|
|
350
|
+
background: var(--accent-color);
|
|
403
351
|
}
|
|
404
352
|
|
|
405
353
|
.tab-name {
|
|
@@ -413,270 +361,295 @@ body {
|
|
|
413
361
|
background: none;
|
|
414
362
|
border: none;
|
|
415
363
|
color: var(--text-muted);
|
|
416
|
-
font-size:
|
|
364
|
+
font-size: 16px;
|
|
417
365
|
cursor: pointer;
|
|
418
|
-
padding: 2px
|
|
419
|
-
border-radius: var(--radius-
|
|
366
|
+
padding: 2px 6px;
|
|
367
|
+
border-radius: var(--radius-xs);
|
|
420
368
|
line-height: 1;
|
|
421
|
-
transition:
|
|
369
|
+
transition: all var(--transition-fast);
|
|
370
|
+
opacity: 0.6;
|
|
422
371
|
}
|
|
423
372
|
|
|
424
373
|
.tab-close:hover {
|
|
425
|
-
background: rgba(
|
|
426
|
-
color: var(--
|
|
374
|
+
background: rgba(239, 68, 68, 0.2);
|
|
375
|
+
color: var(--danger-color);
|
|
376
|
+
opacity: 1;
|
|
427
377
|
}
|
|
428
378
|
|
|
429
379
|
.context-menu {
|
|
430
380
|
position: fixed;
|
|
431
|
-
background: var(--bg-tertiary);
|
|
381
|
+
background: linear-gradient(180deg, var(--bg-tertiary) 0%, var(--bg-secondary) 100%);
|
|
432
382
|
border: 1px solid var(--border-color);
|
|
433
383
|
border-radius: var(--radius-md);
|
|
434
|
-
padding:
|
|
384
|
+
padding: 6px;
|
|
435
385
|
min-width: 160px;
|
|
436
386
|
box-shadow: var(--shadow-lg);
|
|
437
387
|
z-index: 1000;
|
|
438
388
|
animation: contextMenuIn 0.15s ease;
|
|
389
|
+
backdrop-filter: blur(var(--blur-sm));
|
|
439
390
|
}
|
|
440
391
|
|
|
441
392
|
@keyframes contextMenuIn {
|
|
442
393
|
from {
|
|
443
394
|
opacity: 0;
|
|
444
|
-
transform: scale(0.95);
|
|
395
|
+
transform: scale(0.95) translateY(-4px);
|
|
445
396
|
}
|
|
446
397
|
to {
|
|
447
398
|
opacity: 1;
|
|
448
|
-
transform: scale(1);
|
|
399
|
+
transform: scale(1) translateY(0);
|
|
449
400
|
}
|
|
450
401
|
}
|
|
451
402
|
|
|
452
403
|
.context-menu-item {
|
|
453
|
-
padding: 10px
|
|
404
|
+
padding: 10px 14px;
|
|
454
405
|
cursor: pointer;
|
|
455
406
|
font-size: 13px;
|
|
456
407
|
color: var(--text-primary);
|
|
457
|
-
|
|
408
|
+
border-radius: var(--radius-sm);
|
|
409
|
+
transition: all var(--transition-fast);
|
|
458
410
|
}
|
|
459
411
|
|
|
460
412
|
.context-menu-item:hover {
|
|
461
|
-
background: var(--accent-
|
|
462
|
-
color:
|
|
413
|
+
background: var(--accent-soft);
|
|
414
|
+
color: var(--accent-color);
|
|
463
415
|
}
|
|
464
416
|
|
|
465
417
|
.file-context-menu {
|
|
466
418
|
position: fixed;
|
|
467
|
-
background: var(--bg-tertiary);
|
|
419
|
+
background: linear-gradient(180deg, var(--bg-tertiary) 0%, var(--bg-secondary) 100%);
|
|
468
420
|
border: 1px solid var(--border-color);
|
|
469
421
|
border-radius: var(--radius-md);
|
|
470
|
-
padding:
|
|
471
|
-
min-width:
|
|
422
|
+
padding: 6px;
|
|
423
|
+
min-width: 200px;
|
|
472
424
|
box-shadow: var(--shadow-lg);
|
|
473
425
|
z-index: 1000;
|
|
474
426
|
animation: contextMenuIn 0.15s ease;
|
|
427
|
+
backdrop-filter: blur(var(--blur-sm));
|
|
475
428
|
}
|
|
476
429
|
|
|
477
|
-
.
|
|
478
|
-
display: flex;
|
|
479
|
-
align-items: center;
|
|
480
|
-
justify-content: space-between;
|
|
481
|
-
padding: 10px 16px;
|
|
482
|
-
background: linear-gradient(180deg, var(--bg-tertiary) 0%, var(--bg-secondary) 100%);
|
|
483
|
-
border-bottom: 1px solid var(--border-color);
|
|
484
|
-
min-height: 48px;
|
|
485
|
-
}
|
|
486
|
-
|
|
487
|
-
.task-status {
|
|
488
|
-
display: flex;
|
|
489
|
-
align-items: center;
|
|
490
|
-
gap: 10px;
|
|
491
|
-
font-size: 13px;
|
|
492
|
-
font-weight: 500;
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
.task-status.idle {
|
|
496
|
-
color: var(--text-muted);
|
|
497
|
-
}
|
|
498
|
-
|
|
499
|
-
.task-status.running {
|
|
500
|
-
color: var(--accent-color);
|
|
501
|
-
}
|
|
502
|
-
|
|
503
|
-
.task-status::before {
|
|
504
|
-
content: '';
|
|
430
|
+
.ws-status {
|
|
505
431
|
display: inline-block;
|
|
506
432
|
width: 8px;
|
|
507
433
|
height: 8px;
|
|
508
434
|
border-radius: 50%;
|
|
435
|
+
margin-left: 8px;
|
|
436
|
+
transition: all var(--transition-normal);
|
|
509
437
|
}
|
|
510
438
|
|
|
511
|
-
.
|
|
512
|
-
background: var(--
|
|
439
|
+
.ws-status.connected {
|
|
440
|
+
background: var(--success-color);
|
|
441
|
+
box-shadow: 0 0 8px var(--success-color);
|
|
442
|
+
animation: pulse 2s infinite;
|
|
513
443
|
}
|
|
514
444
|
|
|
515
|
-
.
|
|
516
|
-
background: var(--
|
|
517
|
-
box-shadow: 0 0 8px var(--
|
|
518
|
-
animation: pulse 1.5s infinite;
|
|
445
|
+
.ws-status.disconnected {
|
|
446
|
+
background: var(--danger-color);
|
|
447
|
+
box-shadow: 0 0 8px var(--danger-color);
|
|
519
448
|
}
|
|
520
449
|
|
|
521
450
|
@keyframes pulse {
|
|
522
451
|
0%, 100% {
|
|
523
452
|
opacity: 1;
|
|
524
|
-
box-shadow: 0 0 8px var(--
|
|
453
|
+
box-shadow: 0 0 8px var(--success-color);
|
|
525
454
|
}
|
|
526
455
|
50% {
|
|
527
|
-
opacity: 0.
|
|
528
|
-
box-shadow: 0 0 4px var(--
|
|
456
|
+
opacity: 0.7;
|
|
457
|
+
box-shadow: 0 0 4px var(--success-color);
|
|
529
458
|
}
|
|
530
459
|
}
|
|
531
460
|
|
|
532
|
-
.
|
|
461
|
+
.version-info {
|
|
533
462
|
display: flex;
|
|
534
|
-
|
|
463
|
+
align-items: center;
|
|
464
|
+
gap: 10px;
|
|
535
465
|
}
|
|
536
466
|
|
|
537
|
-
.
|
|
538
|
-
|
|
539
|
-
|
|
467
|
+
.version-number {
|
|
468
|
+
font-size: 11px;
|
|
469
|
+
color: var(--text-muted);
|
|
470
|
+
font-weight: 500;
|
|
471
|
+
font-family: var(--font-mono);
|
|
472
|
+
padding: 3px 8px;
|
|
473
|
+
background: rgba(148, 163, 184, 0.1);
|
|
474
|
+
border-radius: var(--radius-xs);
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
.update-badge {
|
|
478
|
+
font-size: 10px;
|
|
479
|
+
padding: 4px 10px;
|
|
480
|
+
background: linear-gradient(135deg, var(--warning-color) 0%, #FBBF24 100%);
|
|
481
|
+
color: var(--bg-primary);
|
|
540
482
|
border-radius: var(--radius-sm);
|
|
541
|
-
font-size: 12px;
|
|
542
|
-
font-weight: 600;
|
|
543
483
|
cursor: pointer;
|
|
544
|
-
|
|
545
|
-
|
|
484
|
+
font-weight: 600;
|
|
485
|
+
transition: all var(--transition-fast);
|
|
546
486
|
}
|
|
547
487
|
|
|
548
|
-
.
|
|
488
|
+
.update-badge:hover {
|
|
549
489
|
transform: translateY(-1px);
|
|
490
|
+
box-shadow: 0 4px 12px rgba(245, 158, 11, 0.3);
|
|
550
491
|
}
|
|
551
492
|
|
|
552
|
-
.
|
|
553
|
-
|
|
493
|
+
.terminal-wrapper {
|
|
494
|
+
flex: 1;
|
|
495
|
+
overflow: hidden;
|
|
496
|
+
min-height: 0;
|
|
554
497
|
}
|
|
555
498
|
|
|
556
|
-
.
|
|
557
|
-
|
|
558
|
-
color: var(--text-primary);
|
|
559
|
-
border: 1px solid var(--border-color);
|
|
499
|
+
.section {
|
|
500
|
+
margin-bottom: 8px;
|
|
560
501
|
}
|
|
561
502
|
|
|
562
|
-
.
|
|
563
|
-
|
|
503
|
+
.section-title {
|
|
504
|
+
padding: 10px 12px 6px;
|
|
505
|
+
font-size: 10px;
|
|
506
|
+
font-weight: 600;
|
|
507
|
+
color: var(--text-muted);
|
|
508
|
+
text-transform: uppercase;
|
|
509
|
+
letter-spacing: 0.8px;
|
|
564
510
|
}
|
|
565
511
|
|
|
566
|
-
.
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
512
|
+
.empty-state {
|
|
513
|
+
padding: 40px 24px;
|
|
514
|
+
text-align: center;
|
|
515
|
+
color: var(--text-muted);
|
|
516
|
+
font-size: 13px;
|
|
517
|
+
display: flex;
|
|
518
|
+
flex-direction: column;
|
|
519
|
+
align-items: center;
|
|
520
|
+
gap: 12px;
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
.empty-state::before {
|
|
524
|
+
content: '';
|
|
525
|
+
width: 48px;
|
|
526
|
+
height: 48px;
|
|
527
|
+
background: linear-gradient(135deg, var(--bg-tertiary) 0%, var(--bg-elevated) 100%);
|
|
528
|
+
border-radius: var(--radius-lg);
|
|
574
529
|
display: flex;
|
|
575
530
|
align-items: center;
|
|
576
531
|
justify-content: center;
|
|
577
|
-
z-index: 2000;
|
|
578
|
-
animation: modalOverlayIn 0.2s ease;
|
|
579
532
|
}
|
|
580
533
|
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
to { opacity: 1; }
|
|
534
|
+
.code-panel {
|
|
535
|
+
font-family: var(--font-mono);
|
|
584
536
|
}
|
|
585
537
|
|
|
586
|
-
.
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
min-width:
|
|
592
|
-
max-width: 420px;
|
|
593
|
-
box-shadow: var(--shadow-lg);
|
|
594
|
-
animation: modalContentIn 0.2s ease;
|
|
538
|
+
.code-viewer-codemirror {
|
|
539
|
+
height: 100%;
|
|
540
|
+
width: 100%;
|
|
541
|
+
display: flex;
|
|
542
|
+
min-height: 0;
|
|
543
|
+
min-width: 0;
|
|
595
544
|
}
|
|
596
545
|
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
to {
|
|
603
|
-
opacity: 1;
|
|
604
|
-
transform: scale(1) translateY(0);
|
|
605
|
-
}
|
|
546
|
+
.code-viewer-codemirror .cm-theme {
|
|
547
|
+
flex: 1;
|
|
548
|
+
display: flex;
|
|
549
|
+
min-height: 0;
|
|
550
|
+
min-width: 0;
|
|
606
551
|
}
|
|
607
552
|
|
|
608
|
-
.
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
color: var(--text-primary);
|
|
553
|
+
.code-viewer-codemirror .cm-editor {
|
|
554
|
+
flex: 1;
|
|
555
|
+
min-width: 0;
|
|
556
|
+
min-height: 0;
|
|
613
557
|
}
|
|
614
558
|
|
|
615
|
-
.
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
559
|
+
.code-viewer-codemirror .cm-scroller {
|
|
560
|
+
flex: 1;
|
|
561
|
+
overflow: auto !important;
|
|
562
|
+
min-height: 0;
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
.code-content {
|
|
566
|
+
padding: 16px;
|
|
567
|
+
white-space: pre-wrap;
|
|
568
|
+
word-break: break-all;
|
|
619
569
|
line-height: 1.7;
|
|
570
|
+
font-size: 13px;
|
|
620
571
|
}
|
|
621
572
|
|
|
622
|
-
.
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
573
|
+
.diff-container {
|
|
574
|
+
font-family: var(--font-mono);
|
|
575
|
+
font-size: 13px;
|
|
576
|
+
padding: 8px 0;
|
|
626
577
|
}
|
|
627
578
|
|
|
628
|
-
.
|
|
629
|
-
padding:
|
|
579
|
+
.task-btn {
|
|
580
|
+
padding: 8px 18px;
|
|
630
581
|
border: none;
|
|
631
582
|
border-radius: var(--radius-sm);
|
|
632
|
-
font-size:
|
|
583
|
+
font-size: 12px;
|
|
633
584
|
font-weight: 600;
|
|
634
585
|
cursor: pointer;
|
|
635
|
-
transition:
|
|
586
|
+
transition: all var(--transition-fast);
|
|
636
587
|
font-family: var(--font-family);
|
|
588
|
+
display: inline-flex;
|
|
589
|
+
align-items: center;
|
|
590
|
+
gap: 6px;
|
|
637
591
|
}
|
|
638
592
|
|
|
639
|
-
.
|
|
593
|
+
.task-btn:hover {
|
|
640
594
|
transform: translateY(-1px);
|
|
641
595
|
}
|
|
642
596
|
|
|
643
|
-
.
|
|
597
|
+
.task-btn:active {
|
|
644
598
|
transform: translateY(0);
|
|
645
599
|
}
|
|
646
600
|
|
|
647
|
-
.
|
|
648
|
-
background:
|
|
649
|
-
color: var(--text-
|
|
601
|
+
.task-btn-clear {
|
|
602
|
+
background: transparent;
|
|
603
|
+
color: var(--text-secondary);
|
|
650
604
|
border: 1px solid var(--border-color);
|
|
651
605
|
}
|
|
652
606
|
|
|
653
|
-
.
|
|
654
|
-
background: var(--
|
|
607
|
+
.task-btn-clear:hover {
|
|
608
|
+
background: var(--accent-soft);
|
|
609
|
+
border-color: var(--accent-color);
|
|
610
|
+
color: var(--accent-color);
|
|
611
|
+
box-shadow: var(--shadow-glow-sm);
|
|
655
612
|
}
|
|
656
613
|
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
614
|
+
::-webkit-scrollbar {
|
|
615
|
+
width: 6px;
|
|
616
|
+
height: 6px;
|
|
660
617
|
}
|
|
661
618
|
|
|
662
|
-
|
|
663
|
-
background:
|
|
664
|
-
box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3);
|
|
619
|
+
::-webkit-scrollbar-track {
|
|
620
|
+
background: transparent;
|
|
665
621
|
}
|
|
666
622
|
|
|
667
|
-
|
|
623
|
+
::-webkit-scrollbar-thumb {
|
|
624
|
+
background: var(--bg-elevated);
|
|
625
|
+
border-radius: 3px;
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
::-webkit-scrollbar-thumb:hover {
|
|
629
|
+
background: var(--text-muted);
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
::-webkit-scrollbar-corner {
|
|
633
|
+
background: transparent;
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
@media (max-width: 1024px) {
|
|
668
637
|
.left-panel {
|
|
669
|
-
width:
|
|
638
|
+
width: 220px;
|
|
670
639
|
}
|
|
671
640
|
|
|
672
641
|
.right-panel {
|
|
673
|
-
width:
|
|
674
|
-
min-width:
|
|
642
|
+
width: 45%;
|
|
643
|
+
min-width: 250px;
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
.top-bar-left {
|
|
647
|
+
width: 220px;
|
|
675
648
|
}
|
|
676
649
|
}
|
|
677
650
|
|
|
678
|
-
@media (max-width:
|
|
679
|
-
.
|
|
651
|
+
@media (max-width: 768px) {
|
|
652
|
+
.main-content {
|
|
680
653
|
flex-direction: column;
|
|
681
654
|
}
|
|
682
655
|
|
|
@@ -690,4 +663,24 @@ body {
|
|
|
690
663
|
.middle-panel {
|
|
691
664
|
min-height: 300px;
|
|
692
665
|
}
|
|
666
|
+
|
|
667
|
+
.top-bar {
|
|
668
|
+
flex-wrap: wrap;
|
|
669
|
+
padding: 10px 16px;
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
.top-bar-left,
|
|
673
|
+
.top-bar-center,
|
|
674
|
+
.top-bar-right {
|
|
675
|
+
width: auto;
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
.top-bar-center {
|
|
679
|
+
order: 3;
|
|
680
|
+
width: 100%;
|
|
681
|
+
justify-content: flex-start;
|
|
682
|
+
margin-top: 8px;
|
|
683
|
+
padding-top: 8px;
|
|
684
|
+
border-top: 1px solid var(--border-color);
|
|
685
|
+
}
|
|
693
686
|
}
|