PluginProbe
OpenStation: Desktop Windows, Dock & Virtual Desktops for WP Admin / 1.1.3
OpenStation: Desktop Windows, Dock & Virtual Desktops for WP Admin v1.1.3
1.1.10 1.1.9 1.1.8 1.1.7 1.1.6 1.1.5 1.1.4 1.1.3 1.1.2 1.1.1 1.1.0 1.0.1 1.0.0 0.9.8 0.9.7 0.9.6 0.9.4 0.9.5 0.9.3 0.9.2 0.9.1 0.9.0 0.8.9 0.8.8 0.8.7 All 34 releases
desktop-mode / assets / css / agents.css

agents.css in OpenStation: Desktop Windows, Dock & Virtual Desktops for WP Admin 1.1.3, at assets/css/agents.css

440 lines 8.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * Agents — "Agent chat" window styles.
3 *
4 * Conversation surface painted by the `agent-run-window` bundle
5 * (src/agent-run-window.ts). Same conventions as the other window
6 * stylesheets: `os-*` / `dm-*` prefixes, theming via the
7 * os-variables custom properties.
8 *
9 */
10
11 .desktop-mode-agent-run {
12 display: flex;
13 flex-direction: column;
14 width: 100%;
15 height: 100%;
16 min-height: 0;
17 font-family: var(
18 --os-font,
19 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif
20 );
21 color: var( --os-ui-fg, #1d2327 );
22 background: var( --os-window-bg, #fff );
23 box-sizing: border-box;
24 }
25
26 .os-agent-run__loading {
27 display: flex;
28 align-items: center;
29 justify-content: center;
30 height: 100%;
31 }
32
33 .dm-agent-chat {
34 display: flex;
35 flex-direction: row;
36 height: 100%;
37 min-height: 0;
38 }
39
40 /* Past-conversations sidebar. */
41 .dm-agent-chat__sidebar {
42 width: 190px;
43 flex: none;
44 display: flex;
45 flex-direction: column;
46 min-height: 0;
47 border-right: 1px solid rgba( 0, 0, 0, 0.08 );
48 background: rgba( 0, 0, 0, 0.02 );
49 }
50
51 .dm-agent-chat__new {
52 margin: 10px 10px 6px;
53 }
54
55 .dm-agent-chat__convs {
56 flex: 1;
57 overflow-y: auto;
58 padding: 0 6px 10px;
59 display: flex;
60 flex-direction: column;
61 gap: 2px;
62 }
63
64 .dm-agent-chat__convs-empty {
65 color: #757575;
66 font-size: 12px;
67 padding: 8px;
68 }
69
70 .dm-agent-chat__conv {
71 display: flex;
72 align-items: center;
73 gap: 8px;
74 padding: 7px 8px;
75 border-radius: 8px;
76 cursor: pointer;
77 }
78
79 .dm-agent-chat__conv:hover {
80 background: rgba( 0, 0, 0, 0.05 );
81 }
82
83 .dm-agent-chat__conv--active {
84 background: rgba( 0, 0, 0, 0.08 );
85 }
86
87 .dm-agent-chat__conv-avatar {
88 flex: none;
89 }
90
91 /* Two-line row: agent + time on top, the tail of the last message
92 below. Both lines clamp to one line — the sidebar is 190px wide and
93 a wrapping row would push the next conversation out of reach. */
94 .dm-agent-chat__conv-text {
95 flex: 1;
96 min-width: 0;
97 display: flex;
98 flex-direction: column;
99 gap: 1px;
100 }
101
102 .dm-agent-chat__conv-top {
103 display: flex;
104 align-items: baseline;
105 gap: 6px;
106 min-width: 0;
107 }
108
109 .dm-agent-chat__conv-name {
110 flex: 1;
111 min-width: 0;
112 font-size: 12px;
113 font-weight: 600;
114 white-space: nowrap;
115 overflow: hidden;
116 text-overflow: ellipsis;
117 }
118
119 .dm-agent-chat__conv-time {
120 flex: none;
121 font-size: 11px;
122 opacity: 0.55;
123 font-variant-numeric: tabular-nums;
124 }
125
126 .dm-agent-chat__conv-preview {
127 min-width: 0;
128 font-size: 11.5px;
129 opacity: 0.65;
130 white-space: nowrap;
131 overflow: hidden;
132 text-overflow: ellipsis;
133 }
134
135 .dm-agent-chat__conv-delete {
136 flex: none;
137 opacity: 0;
138 border: 0;
139 background: none;
140 cursor: pointer;
141 color: #757575;
142 font-size: 14px;
143 padding: 0 2px;
144 line-height: 1;
145 }
146
147 .dm-agent-chat__conv:hover .dm-agent-chat__conv-delete,
148 .dm-agent-chat__conv-delete:focus-visible {
149 opacity: 1;
150 }
151
152 /* Conversation column. */
153 .dm-agent-chat__main {
154 flex: 1;
155 display: flex;
156 flex-direction: column;
157 min-width: 0;
158 min-height: 0;
159 }
160
161 .dm-agent-chat__head {
162 display: flex;
163 align-items: center;
164 gap: 10px;
165 padding: 12px;
166 border-bottom: 1px solid var( --os-border, rgba( 0, 0, 0, 0.08 ) );
167 }
168
169 .dm-agent-chat__avatar {
170 flex: none;
171 }
172
173 .dm-agent-chat__title {
174 display: flex;
175 flex-direction: column;
176 min-width: 0;
177 }
178
179 .dm-agent-chat__desc {
180 font-size: 12px;
181 opacity: 0.65;
182 white-space: nowrap;
183 overflow: hidden;
184 text-overflow: ellipsis;
185 }
186
187 .dm-agent-chat__scroll {
188 flex: 1;
189 min-height: 0;
190 overflow-y: auto;
191 padding: 12px;
192 display: flex;
193 flex-direction: column;
194 gap: 10px;
195 }
196
197 .dm-agent-chat__msg {
198 max-width: 85%;
199 border-radius: 12px;
200 padding: 8px 12px;
201 display: flex;
202 flex-direction: column;
203 gap: 6px;
204 font-size: 13px;
205 line-height: 1.5;
206 }
207
208 .dm-agent-chat__msg--user {
209 align-self: flex-end;
210 background: var( --os-accent, #2271b1 );
211 color: #fff;
212 }
213
214 .dm-agent-chat__msg--agent {
215 align-self: flex-start;
216 background: var( --os-hover, rgba( 0, 0, 0, 0.06 ) );
217 }
218
219 .dm-agent-chat__msg--error {
220 align-self: flex-start;
221 /* Tokenized so the wash and its ink move together: a dark-red
222 literal on a translucent red wash reads fine over a white bubble
223 list and vanishes over a dark one. Literals unchanged. */
224 background: var( --os-ui-notice-error-bg, rgba( 214, 54, 56, 0.12 ) );
225 color: var( --os-ui-danger, #8a1f21 );
226 }
227
228 .dm-agent-chat__msg-text {
229 white-space: pre-wrap;
230 word-break: break-word;
231 }
232
233 .dm-agent-chat__tools {
234 font-size: 12px;
235 opacity: 0.8;
236 }
237
238 .dm-agent-chat__tools summary {
239 cursor: pointer;
240 }
241
242 .dm-agent-chat__tool {
243 font-family: monospace;
244 font-size: 11px;
245 padding: 2px 0;
246 word-break: break-all;
247 }
248
249 /* Call-to-action buttons under an agent answer. */
250 .dm-agent-chat__ctas {
251 display: flex;
252 flex-wrap: wrap;
253 gap: 8px;
254 margin-top: 2px;
255 }
256
257 .dm-agent-chat__composer {
258 display: flex;
259 align-items: flex-end;
260 gap: 8px;
261 padding: 10px 12px;
262 border-top: 1px solid var( --os-border, rgba( 0, 0, 0, 0.08 ) );
263 }
264
265 .dm-agent-chat__composer os-textarea {
266 flex: 1;
267 }
268
269
270 .dm-agent-chat__line {
271 display: flex;
272 align-items: flex-end;
273 gap: 8px;
274 max-width: 88%;
275 }
276
277 .dm-agent-chat__line--agent,
278 .dm-agent-chat__line--error {
279 align-self: flex-start;
280 }
281
282 .dm-agent-chat__line--user {
283 align-self: flex-end;
284 flex-direction: row-reverse;
285 }
286
287 .dm-agent-chat__line .dm-agent-chat__msg {
288 align-self: auto;
289 max-width: none;
290 min-width: 0;
291 }
292
293 .dm-agent-chat__msg-avatar {
294 flex: none;
295 }
296
297 /* The object a drop / "Send to" handed the agent. Rendered instead of
298 the runner-facing sentence, and clickable — it opens the entity's
299 admin screen in its own window. */
300 .dm-agent-chat__attachment {
301 display: flex;
302 align-items: center;
303 gap: 8px;
304 inline-size: 100%;
305 min-inline-size: 0;
306 padding: 8px 10px;
307 border: 1px solid rgba( 255, 255, 255, 0.35 );
308 border-radius: 10px;
309 background: rgba( 255, 255, 255, 0.16 );
310 color: inherit;
311 font: inherit;
312 text-align: start;
313 cursor: pointer;
314 }
315
316 .dm-agent-chat__attachment:hover,
317 .dm-agent-chat__attachment:focus-visible {
318 background: rgba( 255, 255, 255, 0.28 );
319 }
320
321 .dm-agent-chat__msg--agent .dm-agent-chat__attachment,
322 .dm-agent-chat__msg--error .dm-agent-chat__attachment {
323 border-color: var( --os-border, rgba( 0, 0, 0, 0.12 ) );
324 background: rgba( 0, 0, 0, 0.04 );
325 }
326
327 .dm-agent-chat__msg--agent .dm-agent-chat__attachment:hover,
328 .dm-agent-chat__msg--error .dm-agent-chat__attachment:hover {
329 background: rgba( 0, 0, 0, 0.08 );
330 }
331
332 .dm-agent-chat__attachment-icon {
333 flex: none;
334 font-size: 20px;
335 inline-size: 20px;
336 block-size: 20px;
337 }
338
339 .dm-agent-chat__attachment-text {
340 flex: 1;
341 min-inline-size: 0;
342 display: flex;
343 flex-direction: column;
344 gap: 1px;
345 }
346
347 .dm-agent-chat__attachment-title {
348 font-weight: 600;
349 white-space: nowrap;
350 overflow: hidden;
351 text-overflow: ellipsis;
352 }
353
354 .dm-agent-chat__attachment-meta {
355 font-size: 11px;
356 opacity: 0.75;
357 }
358
359 .dm-agent-chat__attachment-open {
360 flex: none;
361 font-size: 15px;
362 inline-size: 15px;
363 block-size: 15px;
364 opacity: 0.7;
365 }
366
367 .dm-agent-chat__msg-caption {
368 font-size: 11px;
369 opacity: 0.75;
370 }
371
372 /* The in-flight bubble: wide enough to read as a live surface, not a
373 chip. The width lives on the LINE (its percentage resolves against
374 the message column; the bubble's own would resolve against the
375 shrink-to-fit line and collapse), and the bubble fills the line. */
376 .dm-agent-chat__line--pending {
377 min-width: min( 176px, 100% );
378 }
379
380 .dm-agent-chat__line--pending .dm-agent-chat__msg {
381 flex: 1;
382 /* Center the label + spinner inside the wide bubble. The bubble
383 is a flex column, so the spinner needs align-items (text-align
384 alone only centers the label's inline text). */
385 align-items: center;
386 text-align: center;
387 }
388
389 .dm-agent-chat__msg--pending os-spinner {
390 --os-ui-spinner-size: 24px;
391 }
392
393 /* Markdown content inside agent bubbles. */
394 .dm-agent-chat__msg-text p {
395 margin: 0 0 0.5em;
396 }
397
398 .dm-agent-chat__msg-text p:last-child {
399 margin-bottom: 0;
400 }
401
402 .dm-agent-chat__msg-text ul,
403 .dm-agent-chat__msg-text ol {
404 margin: 0 0 0.5em;
405 padding-left: 1.4em;
406 }
407
408 .dm-agent-chat__msg-text h3,
409 .dm-agent-chat__msg-text h4,
410 .dm-agent-chat__msg-text h5,
411 .dm-agent-chat__msg-text h6 {
412 margin: 0.6em 0 0.3em;
413 font-size: 1em;
414 line-height: 1.3;
415 }
416
417 .dm-agent-chat__msg-text h3:first-child,
418 .dm-agent-chat__msg-text h4:first-child,
419 .dm-agent-chat__msg-text h5:first-child,
420 .dm-agent-chat__msg-text h6:first-child {
421 margin-top: 0;
422 }
423
424 .dm-agent-chat__msg-text hr {
425 border: 0;
426 border-top: 1px solid rgba( 0, 0, 0, 0.12 );
427 margin: 0.6em 0;
428 }
429
430 .dm-agent-chat__msg-text code {
431 background: rgba( 0, 0, 0, 0.07 );
432 padding: 0.1em 0.35em;
433 border-radius: 4px;
434 font-size: 0.92em;
435 }
436
437 .dm-agent-chat__msg--user .dm-agent-chat__msg-text code {
438 background: rgba( 255, 255, 255, 0.2 );
439 }
440