Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css
5240 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
7
.monaco-workbench .inline-chat {
8
color: inherit;
9
border-radius: 4px;
10
border: 1px solid var(--vscode-inlineChat-border);
11
box-shadow: 0 2px 4px 0 var(--vscode-widget-shadow);
12
background: var(--vscode-inlineChat-background);
13
padding-top: 3px;
14
position: relative;
15
}
16
17
.monaco-workbench .zone-widget.inline-chat-widget {
18
z-index: 3;
19
}
20
21
.monaco-workbench .zone-widget.inline-chat-widget .interactive-session {
22
max-width: unset;
23
}
24
25
.monaco-workbench .zone-widget.inline-chat-widget .interactive-session .chat-input-container {
26
border-color: var(--vscode-inlineChat-border);
27
}
28
29
.monaco-workbench .zone-widget.inline-chat-widget .interactive-session .chat-input-container:focus-within {
30
border-color: var(--vscode-focusBorder);
31
}
32
33
.monaco-workbench .zone-widget.inline-chat-widget .interactive-session .chat-input-container .interactive-input-part {
34
padding-top: 0px
35
}
36
37
.monaco-workbench .zone-widget.inline-chat-widget > .zone-widget-container {
38
background: var(--vscode-inlineChat-background);
39
}
40
41
@property --inline-chat-frame-progress {
42
syntax: '<percentage>';
43
initial-value: 0%;
44
inherits: false;
45
}
46
47
@keyframes shift {
48
0% {
49
--inline-chat-frame-progress: 0%;
50
}
51
50% {
52
--inline-chat-frame-progress: 100%;
53
}
54
100% {
55
--inline-chat-frame-progress: 0%;
56
}
57
}
58
59
.monaco-workbench .zone-widget.inline-chat-widget > .zone-widget-container.busy {
60
--inline-chat-frame-progress: 0%;
61
border-image: linear-gradient(90deg, var(--vscode-editorGutter-addedBackground) var(--inline-chat-frame-progress), var(--vscode-button-background)) 1;
62
animation: 3s shift linear infinite;
63
}
64
65
.monaco-workbench .zone-widget.inline-chat-widget > .zone-widget-container > .inline-chat {
66
color: inherit;
67
border-radius: unset;
68
border: unset;
69
box-shadow: unset;
70
background: var(--vscode-inlineChat-background);
71
position: relative;
72
outline: none;
73
}
74
75
.monaco-workbench .inline-chat .chat-widget {
76
.checkpoint-container,
77
.checkpoint-restore-container {
78
display: none;
79
}
80
}
81
82
.monaco-workbench .inline-chat .chat-widget .interactive-session .interactive-input-part {
83
padding: 4px 0 0 0;
84
}
85
86
87
@keyframes pulse-opacity {
88
0%, 100% {
89
opacity: 1;
90
}
91
33% {
92
opacity: .6;
93
}
94
}
95
96
.monaco-workbench .zone-widget.inline-chat-widget.inline-chat-2 {
97
98
.inline-chat .chat-widget .interactive-session .interactive-input-part {
99
padding: 8px 0 4px 0;
100
}
101
102
.interactive-session .chat-input-container.focused,
103
.interactive-session .chat-input-container {
104
border-color: var(--vscode-inlineChat-background);
105
background-color: var(--vscode-inlineChat-background);
106
padding-left: 0;
107
}
108
109
.chat-attachments-container {
110
margin-right: 0;
111
}
112
113
.chat-attachments-container > .chat-input-toolbar {
114
margin-left: auto;
115
margin-right: 16px;
116
}
117
118
/* TODO@jrieken this isn't the nicest selector... */
119
.request-in-progress .monaco-editor [class^="ced-chat-session-detail"]::after {
120
animation: pulse-opacity 2.5s ease-in-out infinite;
121
}
122
123
.chat-editor-container .interactive-input-editor .monaco-editor .monaco-editor-background {
124
background-color: var(--vscode-inlineChat-background);
125
}
126
}
127
128
129
.monaco-workbench .inline-chat .chat-widget .interactive-session .interactive-input-part .interactive-execute-toolbar {
130
margin-bottom: 1px;
131
}
132
133
.monaco-workbench .inline-chat .chat-widget .interactive-session .interactive-input-part .interactive-input-and-execute-toolbar {
134
width: 100%;
135
border-radius: 2px;
136
}
137
138
139
.monaco-workbench .inline-chat .chat-widget .interactive-session .interactive-input-part .interactive-input-followups .interactive-session-followups {
140
margin: 3px 0 0 4px;
141
}
142
143
.monaco-workbench .inline-chat .chat-widget .interactive-session .interactive-list .monaco-scrollable-element {
144
border-top-left-radius: 3px;
145
border-top-right-radius: 3px;
146
}
147
148
.monaco-workbench .inline-chat .chat-widget .interactive-session .interactive-list .monaco-scrollable-element .shadow.top {
149
box-shadow: none;
150
}
151
152
.monaco-workbench .inline-chat .chat-widget .interactive-session .interactive-list .interactive-item-container.interactive-item-compact {
153
gap: 8px;
154
padding: 3px 20px 3px 8px;
155
}
156
157
.monaco-workbench .inline-chat .chat-widget .interactive-session .interactive-list .interactive-item-container.interactive-item-compact .header .avatar {
158
outline-offset: -1px;
159
}
160
161
.monaco-workbench .inline-chat .chat-widget .interactive-session .interactive-list .interactive-item-container.interactive-item-compact .chat-notification-widget {
162
margin-bottom: 0;
163
padding: 0;
164
border: none;
165
}
166
167
.monaco-workbench .inline-chat .chat-widget .interactive-session .interactive-list .interactive-request {
168
border: none;
169
}
170
171
.monaco-workbench .inline-chat .chat-widget .interactive-session .interactive-list .interactive-item-container.minimal > .header {
172
top: 5px;
173
right: 10px;
174
display: none;
175
}
176
177
.monaco-workbench .inline-chat .chat-widget .interactive-session .interactive-list .interactive-item-container.minimal > .chat-footer-toolbar {
178
display: none;
179
}
180
181
.monaco-workbench .inline-chat .chat-widget .interactive-session .chat-input-toolbars {
182
max-width: 66%;
183
}
184
185
.monaco-workbench .inline-chat .chat-widget .interactive-session .chat-input-toolbars > .chat-execute-toolbar .chat-input-picker-item {
186
min-width: 40px;
187
max-width: 132px;
188
}
189
190
/* status */
191
192
.monaco-workbench .inline-chat > .status {
193
display: flex;
194
align-items: center;
195
padding-right: 16px;
196
}
197
198
.monaco-workbench .inline-chat > .status {
199
.label,
200
.actions {
201
padding: 4px 0;
202
}
203
}
204
205
.monaco-workbench .inline-chat .status .actions.hidden {
206
display: none;
207
}
208
209
.monaco-workbench .inline-chat .status .label {
210
overflow: hidden;
211
color: var(--vscode-descriptionForeground);
212
font-size: 12px;
213
display: flex;
214
white-space: nowrap;
215
}
216
217
.monaco-workbench .inline-chat .status .label.info {
218
margin-right: auto;
219
}
220
221
.monaco-workbench .inline-chat .status .label.status {
222
margin-left: auto;
223
padding-right: 8px;
224
padding-left: 8px;
225
}
226
227
.monaco-workbench .inline-chat .status .label.hidden,
228
.monaco-workbench .inline-chat .status .label:empty {
229
display: none;
230
}
231
232
.monaco-workbench .inline-chat .status .label.error {
233
color: var(--vscode-errorForeground);
234
}
235
236
.monaco-workbench .inline-chat .status .label.warn {
237
color: var(--vscode-editorWarning-foreground);
238
}
239
240
.monaco-workbench .inline-chat .status .label > .codicon {
241
padding: 0 3px;
242
font-size: 12px;
243
line-height: 18px;
244
}
245
246
.monaco-workbench .inline-chat .status .actions {
247
248
display: flex;
249
height: 18px;
250
251
.actions-container {
252
gap: 3px
253
}
254
255
.monaco-button-dropdown > .monaco-dropdown-button {
256
display: flex;
257
align-items: center;
258
padding: 0 4px;
259
}
260
261
.monaco-button.codicon {
262
display: flex;
263
}
264
265
.monaco-button.codicon::before {
266
align-self: center;
267
color: var(--vscode-button-foreground);
268
}
269
270
.monaco-button.secondary.codicon::before {
271
align-self: center;
272
color: var(--vscode-button-secondaryForeground);
273
}
274
275
.monaco-text-button {
276
padding: 0 6px;
277
font-size: 12px;
278
white-space: nowrap;
279
}
280
}
281
282
.monaco-workbench .inline-chat .status .actions {
283
gap: 4px;
284
}
285
286
.monaco-workbench .inline-chat .status .actions.secondary {
287
margin-left: auto;
288
display: none;
289
}
290
291
.monaco-workbench .inline-chat .status:hover .actions.secondary:not(.has-no-actions),
292
.monaco-workbench .inline-chat:focus .status .actions.secondary:not(.has-no-actions),
293
.monaco-workbench .inline-chat .status:focus-within .actions.secondary:not(.has-no-actions) {
294
display: inherit;
295
}
296
297
.monaco-workbench .inline-chat .status .disclaimer {
298
a {
299
color: var(--vscode-textLink-foreground);
300
}
301
302
p {
303
margin: 0;
304
}
305
}
306
307
/* TODO@jrieken not needed? */
308
.monaco-workbench .inline-chat .status .monaco-toolbar .action-label.checked {
309
color: var(--vscode-inputOption-activeForeground);
310
background-color: var(--vscode-inputOption-activeBackground);
311
outline: 1px solid var(--vscode-inputOption-activeBorder);
312
}
313
314
315
.monaco-workbench .inline-chat .status .monaco-toolbar .action-item.button-item .action-label:is(:hover, :focus) {
316
background-color: var(--vscode-button-hoverBackground);
317
}
318
319
320
321
.monaco-workbench .inline-chat .chat-attached-context {
322
padding: 2px 0px;
323
}
324
325
/* Gutter menu overlay widget */
326
.inline-chat-gutter-menu {
327
background: var(--vscode-menu-background);
328
border: 1px solid var(--vscode-menu-border, var(--vscode-widget-border));
329
border-radius: 4px;
330
box-shadow: 0 2px 8px var(--vscode-widget-shadow);
331
padding: 4px 0;
332
min-width: 160px;
333
z-index: 10000;
334
}
335
336
.inline-chat-gutter-menu .input {
337
padding: 0 8px;
338
}
339
340
.inline-chat-gutter-menu .monaco-action-bar.vertical .action-item {
341
display: flex;
342
justify-content: space-between;
343
border-radius: 3px;
344
margin: 0 4px;
345
}
346
347
.inline-chat-gutter-menu .monaco-action-bar.vertical .action-item .action-label {
348
font-size: 13px;
349
width: 100%;
350
}
351
352
.inline-chat-gutter-menu .monaco-action-bar.vertical .action-item:not(.disabled):hover,
353
.inline-chat-gutter-menu .monaco-action-bar.vertical .action-item:not(.disabled):focus-within {
354
background-color: var(--vscode-list-activeSelectionBackground);
355
color: var(--vscode-list-activeSelectionForeground);
356
outline: 1px solid var(--vscode-menu-selectionBorder, transparent);
357
outline-offset: -1px;
358
}
359
360
.inline-chat-gutter-menu .monaco-action-bar.vertical .action-item:not(.disabled):hover .action-label,
361
.inline-chat-gutter-menu .monaco-action-bar.vertical .action-item:not(.disabled):focus-within .action-label {
362
color: var(--vscode-list-activeSelectionForeground);
363
outline: 1px solid var(--vscode-menu-selectionBorder, transparent);
364
outline-offset: -1px;
365
}
366
367