anentrypoint-design 0.0.212 → 0.0.213
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/app-shell.css +87 -39
- package/chat.css +75 -17
- package/colors_and_type.css +14 -9
- package/dist/247420.css +185 -73
- package/dist/247420.js +13 -13
- package/package.json +1 -1
- package/src/components/chat.js +15 -2
- package/src/components/content.js +5 -2
- package/src/components/files.js +72 -16
- package/src/components/interaction-primitives.js +7 -0
- package/src/components/sessions.js +5 -2
- package/src/components/shell.js +26 -14
- package/src/components.js +1 -1
package/dist/247420.css
CHANGED
|
@@ -20,6 +20,8 @@
|
|
|
20
20
|
--ink: #131318;
|
|
21
21
|
--ink-2: #25252C;
|
|
22
22
|
--ink-3: #54545A; /* WCAG AAA on --paper (~7.1:1); was #6A6A70 (AA only) */
|
|
23
|
+
--ink-3-dark: #464650; /* dark theme bg-3 (tier-3 surface) */
|
|
24
|
+
--paper-3-dark: #B4B4BC; /* dark theme fg-3 (tier-3 text) */
|
|
23
25
|
|
|
24
26
|
/* Lore palette */
|
|
25
27
|
--green: #247420;
|
|
@@ -252,10 +254,10 @@
|
|
|
252
254
|
color-scheme: dark;
|
|
253
255
|
--bg: var(--ink);
|
|
254
256
|
--bg-2: var(--ink-2);
|
|
255
|
-
--bg-3:
|
|
257
|
+
--bg-3: var(--ink-3-dark);
|
|
256
258
|
--fg: var(--paper);
|
|
257
259
|
--fg-2: var(--paper-2);
|
|
258
|
-
--fg-3:
|
|
260
|
+
--fg-3: var(--paper-3-dark);
|
|
259
261
|
--panel-bg: var(--bg);
|
|
260
262
|
--panel-bg-2: var(--bg-2);
|
|
261
263
|
--panel-0: var(--bg);
|
|
@@ -282,18 +284,20 @@
|
|
|
282
284
|
--code-num: var(--sun);
|
|
283
285
|
}
|
|
284
286
|
|
|
285
|
-
/* NOTE: the [data-theme="auto"] block below
|
|
286
|
-
[data-theme="ink"/"dark"] block above.
|
|
287
|
-
|
|
288
|
-
|
|
287
|
+
/* NOTE: the [data-theme="auto"] block below mirrors the
|
|
288
|
+
[data-theme="ink"/"dark"] block above token-for-token. 'auto + OS-dark' and
|
|
289
|
+
'explicit dark' are the same visual context and resolve every token —
|
|
290
|
+
including --danger — identically. The two are kept as separate selectors
|
|
291
|
+
only because one is media-gated; a future de-drift can consolidate them into
|
|
292
|
+
a shared selector list once a build step can hoist the media query. */
|
|
289
293
|
@media (prefers-color-scheme: dark) {
|
|
290
294
|
.ds-247420[data-theme="auto"] {
|
|
291
295
|
--bg: var(--ink);
|
|
292
296
|
--bg-2: var(--ink-2);
|
|
293
|
-
--bg-3:
|
|
297
|
+
--bg-3: var(--ink-3-dark);
|
|
294
298
|
--fg: var(--paper);
|
|
295
299
|
--fg-2: var(--paper-2);
|
|
296
|
-
--fg-3:
|
|
300
|
+
--fg-3: var(--paper-3-dark);
|
|
297
301
|
--panel-bg: var(--bg);
|
|
298
302
|
--panel-bg-2: var(--bg-2);
|
|
299
303
|
--panel-0: var(--bg);
|
|
@@ -306,6 +310,7 @@
|
|
|
306
310
|
--accent: var(--accent-bright, var(--green-2));
|
|
307
311
|
--accent-fg: var(--ink);
|
|
308
312
|
--accent-bright: var(--green-2);
|
|
313
|
+
--danger: oklch(0.68 0.19 25);
|
|
309
314
|
--flame: #FF5A1F;
|
|
310
315
|
--amber: #D9A93A;
|
|
311
316
|
--warn: #FF5A52;
|
|
@@ -375,7 +380,7 @@
|
|
|
375
380
|
--fg: var(--ink); --fg-2: var(--ink-2); --fg-3: var(--ink-3);
|
|
376
381
|
--accent: var(--green); --accent-fg: var(--paper);
|
|
377
382
|
/* A paper island under a dark ancestor must not inherit the dark signal pair. */
|
|
378
|
-
--flame: #C53E00; --amber: #8A6512;
|
|
383
|
+
--flame: #C53E00; --amber: #8A6512; --warn: #E0241A; --sky: #3A6EFF;
|
|
379
384
|
}
|
|
380
385
|
|
|
381
386
|
/* thebird — warm-paper brand preset. A first-class swappable theme: it lives
|
|
@@ -899,7 +904,7 @@
|
|
|
899
904
|
.ds-247420 .ds-icon-btn-primary { background: var(--accent); color: var(--accent-fg); }
|
|
900
905
|
.ds-247420 .ds-icon-btn-primary:hover { background: var(--fg); color: var(--bg); }
|
|
901
906
|
/* warn = destructive ACTION tone; flame stays exclusively error STATUS. */
|
|
902
|
-
.ds-247420 .ds-icon-btn-danger { background: var(--warn); color: var(--
|
|
907
|
+
.ds-247420 .ds-icon-btn-danger { background: var(--warn); color: var(--on-color); }
|
|
903
908
|
.ds-247420 .ds-icon-btn-danger:hover { filter: brightness(1.1); }
|
|
904
909
|
.ds-247420 .ds-icon-btn:active { transform: translateY(1px); }
|
|
905
910
|
.ds-247420 .ds-icon-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
@@ -921,10 +926,10 @@
|
|
|
921
926
|
.ds-247420 .ds-badge.tone-purple { background: var(--purple-tint); color: var(--purple-deep); }
|
|
922
927
|
.ds-247420 .ds-badge.tone-mascot { background: var(--mascot-tint); color: var(--ink); }
|
|
923
928
|
.ds-247420 .ds-badge.tone-sun { background: var(--sun); color: var(--ink); }
|
|
924
|
-
.ds-247420 .ds-badge.tone-flame { background: var(--flame); color: var(--
|
|
929
|
+
.ds-247420 .ds-badge.tone-flame { background: var(--flame); color: var(--on-color); }
|
|
925
930
|
.ds-247420 .ds-badge.tone-live { background: var(--green-tint); color: var(--green-deep); }
|
|
926
931
|
.ds-247420 .ds-badge.tone-wip { background: var(--bg-3); color: var(--fg-2); }
|
|
927
|
-
.ds-247420 .ds-badge.tone-error { background: var(--flame); color: var(--
|
|
932
|
+
.ds-247420 .ds-badge.tone-error { background: var(--flame); color: var(--on-color); }
|
|
928
933
|
.ds-247420 .ds-badge.tone-success { background: var(--green-tint); color: var(--green-deep); }
|
|
929
934
|
.ds-247420 .ds-badge.tone-neutral { background: var(--bg-3); color: var(--fg-2); }
|
|
930
935
|
|
|
@@ -941,14 +946,14 @@
|
|
|
941
946
|
.ds-247420 .chip.tone-purple { background: var(--purple-tint); color: var(--purple-deep); }
|
|
942
947
|
.ds-247420 .chip.tone-mascot { background: var(--mascot-tint); color: var(--ink); }
|
|
943
948
|
.ds-247420 .chip.tone-sun { background: var(--sun); color: var(--ink); }
|
|
944
|
-
.ds-247420 .chip.tone-flame { background: var(--flame); color: var(--
|
|
949
|
+
.ds-247420 .chip.tone-flame { background: var(--flame); color: var(--on-color); }
|
|
945
950
|
.ds-247420 .chip.tone-live { background: var(--green-tint); color: var(--green-deep); }
|
|
946
951
|
.ds-247420 .chip.tone-wip { background: var(--bg-3); color: var(--fg-2); }
|
|
947
|
-
.ds-247420 .chip.tone-error { background: var(--flame); color: var(--
|
|
952
|
+
.ds-247420 .chip.tone-error { background: var(--flame); color: var(--on-color); }
|
|
948
953
|
.ds-247420 .chip.tone-success { background: var(--green-tint); color: var(--green-deep); }
|
|
949
954
|
.ds-247420 .chip.tone-disabled { background: var(--bg-3); color: var(--fg-3); }
|
|
950
955
|
.ds-247420 .chip.tone-ok { background: var(--green-tint); color: var(--green-deep); }
|
|
951
|
-
.ds-247420 .chip.tone-miss { background: var(--flame); color: var(--
|
|
956
|
+
.ds-247420 .chip.tone-miss { background: var(--flame); color: var(--on-color); }
|
|
952
957
|
.ds-247420 .chip.tone-neutral { background: var(--bg-3); color: var(--fg-2); }
|
|
953
958
|
|
|
954
959
|
.ds-247420 .glyph {
|
|
@@ -987,6 +992,8 @@
|
|
|
987
992
|
font-family: var(--ff-mono); letter-spacing: 0;
|
|
988
993
|
}
|
|
989
994
|
.ds-247420 .panel-body { padding: var(--space-2) var(--space-3) var(--space-3); }
|
|
995
|
+
.ds-247420 .panel-body > * { margin: 0; }
|
|
996
|
+
.ds-247420 .panel-body > * + * { margin-top: var(--space-3); }
|
|
990
997
|
.ds-247420 .panel.panel-wide .panel-body { padding: 0; }
|
|
991
998
|
|
|
992
999
|
/* ============================================================
|
|
@@ -1009,6 +1016,21 @@
|
|
|
1009
1016
|
transition: background var(--dur-snap) var(--ease);
|
|
1010
1017
|
}
|
|
1011
1018
|
.ds-247420 .row + .row { margin-top: 2px; }
|
|
1019
|
+
/* `detail` drops to its own full-width line. The row is a grid, so span every
|
|
1020
|
+
track (grid-column 1/-1); flex-basis:100% covers the flex-row fallback. */
|
|
1021
|
+
.ds-247420 .ds-row-detail {
|
|
1022
|
+
white-space: pre-wrap;
|
|
1023
|
+
font-family: var(--ff-mono);
|
|
1024
|
+
font-size: var(--fs-sm);
|
|
1025
|
+
line-height: var(--lh-snug, 1.3);
|
|
1026
|
+
margin-top: 8px;
|
|
1027
|
+
padding: 10px 12px;
|
|
1028
|
+
background: var(--bg);
|
|
1029
|
+
border-radius: var(--r-1);
|
|
1030
|
+
overflow-x: auto;
|
|
1031
|
+
flex-basis: 100%;
|
|
1032
|
+
grid-column: 1 / -1;
|
|
1033
|
+
}
|
|
1012
1034
|
.ds-247420 .row::before {
|
|
1013
1035
|
content: '';
|
|
1014
1036
|
position: absolute; left: 7px; top: 0; bottom: 0; width: 3px;
|
|
@@ -1392,8 +1414,6 @@
|
|
|
1392
1414
|
.ds-247420 .chat-msg:hover { padding: 4px 0; margin: 0; background: transparent; }
|
|
1393
1415
|
.ds-247420 .chat-composer { padding: 8px; gap: 6px; }
|
|
1394
1416
|
.ds-247420 .chat-composer textarea { padding: 10px 12px; font-size: var(--fs-sm); }
|
|
1395
|
-
.ds-247420 .chat-composer .send,
|
|
1396
|
-
.ds-247420 .chat-composer button { width: 40px; height: 40px; font-size: 16px; }
|
|
1397
1417
|
|
|
1398
1418
|
/* KPI Cards */
|
|
1399
1419
|
.ds-247420 .kpi {
|
|
@@ -1782,9 +1802,10 @@
|
|
|
1782
1802
|
background: var(--bg-2); border: var(--bw-hair) solid var(--rule); border-radius: var(--r-1);
|
|
1783
1803
|
}
|
|
1784
1804
|
.ds-247420 .ds-density-btn {
|
|
1785
|
-
|
|
1805
|
+
display: inline-flex; align-items: center; justify-content: center;
|
|
1806
|
+
width: 28px; height: 28px; color: var(--fg-2);
|
|
1786
1807
|
background: none; border: none; cursor: pointer;
|
|
1787
|
-
padding:
|
|
1808
|
+
padding: 0; border-radius: calc(var(--r-1) - 2px);
|
|
1788
1809
|
transition: background var(--dur-snap) var(--ease), color var(--dur-snap) var(--ease);
|
|
1789
1810
|
}
|
|
1790
1811
|
.ds-247420 .ds-density-btn:hover { color: var(--fg); }
|
|
@@ -2233,6 +2254,7 @@
|
|
|
2233
2254
|
transition: color var(--dur-base) var(--ease), background var(--dur-base) var(--ease);
|
|
2234
2255
|
}
|
|
2235
2256
|
.ds-247420 .ds-segmented .ds-seg-btn:hover { color: var(--fg); }
|
|
2257
|
+
.ds-247420 .ds-segmented .ds-seg-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
2236
2258
|
.ds-247420 .ds-segmented .ds-seg-btn.is-on {
|
|
2237
2259
|
background: var(--bg); color: var(--fg);
|
|
2238
2260
|
box-shadow: inset 0 0 0 var(--bw-hair, 1px) var(--rule);
|
|
@@ -2380,9 +2402,19 @@
|
|
|
2380
2402
|
color: color-mix(in oklab, currentColor 75%, transparent); font-style: italic;
|
|
2381
2403
|
}
|
|
2382
2404
|
.ds-247420 .chat-bubble.chat-md pre {
|
|
2383
|
-
background:
|
|
2384
|
-
|
|
2385
|
-
|
|
2405
|
+
background: var(--bg);
|
|
2406
|
+
border: 1px solid color-mix(in oklab, var(--fg) 12%, transparent);
|
|
2407
|
+
padding: 12px 16px; border-radius: var(--r-1); overflow-x: auto;
|
|
2408
|
+
font-family: var(--ff-mono); font-size: var(--fs-xs); line-height: 1.55;
|
|
2409
|
+
color: var(--fg); margin: 8px 0;
|
|
2410
|
+
}
|
|
2411
|
+
/* When injectCodeCopy has wrapped the fence (.chat-code-block), reserve room
|
|
2412
|
+
for the absolute .chat-code-lang tab. This selector outranks the bare
|
|
2413
|
+
.chat-code-block pre reservation in chat.css, which the 2-class md pre
|
|
2414
|
+
selector above would otherwise override. */
|
|
2415
|
+
.ds-247420 .chat-code-block .chat-bubble.chat-md pre,
|
|
2416
|
+
.ds-247420 .chat-bubble.chat-md .chat-code-block pre {
|
|
2417
|
+
padding-top: calc(var(--space-3) + 4px);
|
|
2386
2418
|
}
|
|
2387
2419
|
/* Markdown tables + horizontal rules: agents routinely emit them, but they were
|
|
2388
2420
|
unstyled (bare unspaced cells, vanished rules). */
|
|
@@ -2618,6 +2650,14 @@
|
|
|
2618
2650
|
border-color: var(--accent);
|
|
2619
2651
|
box-shadow: 0 0 0 2px color-mix(in oklab, var(--accent) 18%, transparent);
|
|
2620
2652
|
}
|
|
2653
|
+
.ds-247420 .chat-composer.is-error,
|
|
2654
|
+
.ds-247420 .chat-composer:has(textarea[aria-invalid="true"]) {
|
|
2655
|
+
border-color: var(--flame);
|
|
2656
|
+
}
|
|
2657
|
+
.ds-247420 .chat-composer.is-error:focus-within,
|
|
2658
|
+
.ds-247420 .chat-composer:has(textarea[aria-invalid="true"]):focus-within {
|
|
2659
|
+
box-shadow: 0 0 0 2px color-mix(in oklab, var(--flame) 22%, transparent);
|
|
2660
|
+
}
|
|
2621
2661
|
.ds-247420 .chat-composer textarea {
|
|
2622
2662
|
flex: 1; min-width: 0; padding: 8px 4px;
|
|
2623
2663
|
background: none; color: var(--fg);
|
|
@@ -2633,7 +2673,7 @@
|
|
|
2633
2673
|
.ds-247420 .chat-composer textarea::placeholder { color: var(--fg-3); }
|
|
2634
2674
|
.ds-247420 .chat-composer textarea:focus { background: none; border: none; box-shadow: none; outline: none; }
|
|
2635
2675
|
.ds-247420 .chat-composer .send {
|
|
2636
|
-
|
|
2676
|
+
border-radius: var(--r-1);
|
|
2637
2677
|
background: var(--accent); color: var(--accent-fg);
|
|
2638
2678
|
border: 0; cursor: pointer;
|
|
2639
2679
|
display: inline-flex; align-items: center; justify-content: center;
|
|
@@ -2641,10 +2681,10 @@
|
|
|
2641
2681
|
transition: background var(--dur-snap, .15s) var(--ease, ease);
|
|
2642
2682
|
}
|
|
2643
2683
|
.ds-247420 .chat-composer .send:disabled { opacity: .5; cursor: not-allowed; }
|
|
2644
|
-
/* Ghost icon buttons in the toolbar (attach / emoji / more)
|
|
2645
|
-
|
|
2684
|
+
/* Ghost icon buttons in the toolbar (attach / emoji / more). Size + radius are
|
|
2685
|
+
owned by .chat-composer-toolbar .composer-btn in chat.css (32px / --r-1,
|
|
2686
|
+
44px coarse); this base rule keeps only the shared appearance. */
|
|
2646
2687
|
.ds-247420 .composer-btn {
|
|
2647
|
-
width: 40px; height: 40px; border-radius: 50%;
|
|
2648
2688
|
background: transparent; color: var(--fg-3);
|
|
2649
2689
|
border: 0; cursor: pointer;
|
|
2650
2690
|
display: inline-flex; align-items: center; justify-content: center;
|
|
@@ -2740,9 +2780,6 @@
|
|
|
2740
2780
|
@media (max-height: 500px) and (orientation: landscape) {
|
|
2741
2781
|
.ds-247420 .chat-composer { padding: 6px 0; }
|
|
2742
2782
|
.ds-247420 .chat-composer textarea { min-height: 44px; max-height: 120px; }
|
|
2743
|
-
/* Keep the send button at the 44x44 minimum tap target even in the
|
|
2744
|
-
space-constrained landscape layout. */
|
|
2745
|
-
.ds-247420 .chat-composer .send, .ds-247420 .chat-composer button { width: 44px; height: 44px; font-size: 14px; }
|
|
2746
2783
|
}
|
|
2747
2784
|
|
|
2748
2785
|
/* ============================================================
|
|
@@ -2878,7 +2915,6 @@
|
|
|
2878
2915
|
position: absolute;
|
|
2879
2916
|
left: 0; right: 0; height: 2px;
|
|
2880
2917
|
background: var(--accent);
|
|
2881
|
-
animation: pulse-line 0.6s ease-in-out infinite;
|
|
2882
2918
|
}
|
|
2883
2919
|
.ds-247420 .list-item.drag-before::before { top: -2px; }
|
|
2884
2920
|
.ds-247420 .list-item.drag-after::after { bottom: -2px; }
|
|
@@ -2887,6 +2923,10 @@
|
|
|
2887
2923
|
0%, 100% { opacity: 0.3; }
|
|
2888
2924
|
50% { opacity: 1; }
|
|
2889
2925
|
}
|
|
2926
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
2927
|
+
.ds-247420 .list-item.drag-before::before,
|
|
2928
|
+
.ds-247420 .list-item.drag-after::after { animation: pulse-line 0.6s ease-in-out infinite; }
|
|
2929
|
+
}
|
|
2890
2930
|
|
|
2891
2931
|
/* ------------------------------------------------------------
|
|
2892
2932
|
Context Menu Styles
|
|
@@ -2901,7 +2941,6 @@
|
|
|
2901
2941
|
min-width: 160px;
|
|
2902
2942
|
z-index: calc(var(--z-overlay, 1000) + 1);
|
|
2903
2943
|
padding: 4px 0;
|
|
2904
|
-
animation: context-menu-in 0.15s ease-out;
|
|
2905
2944
|
}
|
|
2906
2945
|
|
|
2907
2946
|
@keyframes context-menu-in {
|
|
@@ -2914,6 +2953,9 @@
|
|
|
2914
2953
|
transform: scale(1) translateY(0);
|
|
2915
2954
|
}
|
|
2916
2955
|
}
|
|
2956
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
2957
|
+
.ds-247420 .ds-context-menu { animation: context-menu-in 0.15s ease-out; }
|
|
2958
|
+
}
|
|
2917
2959
|
|
|
2918
2960
|
.ds-247420 .ds-context-menu-item {
|
|
2919
2961
|
display: flex; align-items: center; gap: 10px;
|
|
@@ -3168,6 +3210,10 @@
|
|
|
3168
3210
|
padding: var(--space-8) var(--space-4);
|
|
3169
3211
|
text-align: center; color: var(--fg-3);
|
|
3170
3212
|
}
|
|
3213
|
+
.ds-247420 .empty-state--inline {
|
|
3214
|
+
flex-direction: row; align-items: center; gap: var(--space-2);
|
|
3215
|
+
padding: var(--space-2) 0; text-align: left;
|
|
3216
|
+
}
|
|
3171
3217
|
.ds-247420 .empty-state-icon {
|
|
3172
3218
|
font-size: 48px; opacity: 0.4;
|
|
3173
3219
|
}
|
|
@@ -3212,7 +3258,6 @@
|
|
|
3212
3258
|
padding: var(--space-3) var(--space-4);
|
|
3213
3259
|
max-width: 320px;
|
|
3214
3260
|
box-shadow: 0 10px 40px color-mix(in oklab, var(--fg) 20%, transparent);
|
|
3215
|
-
animation: toast-slide-in 0.3s ease-out;
|
|
3216
3261
|
z-index: calc(var(--z-overlay, 1000) + 10);
|
|
3217
3262
|
}
|
|
3218
3263
|
|
|
@@ -3226,6 +3271,9 @@
|
|
|
3226
3271
|
transform: translateX(0);
|
|
3227
3272
|
}
|
|
3228
3273
|
}
|
|
3274
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
3275
|
+
.ds-247420 .toast { animation: toast-slide-in 0.3s ease-out; }
|
|
3276
|
+
}
|
|
3229
3277
|
|
|
3230
3278
|
.ds-247420 .toast.error { border-color: var(--warn); }
|
|
3231
3279
|
.ds-247420 .toast.success { border-color: var(--green-2); }
|
|
@@ -3252,11 +3300,13 @@
|
|
|
3252
3300
|
height: 4px;
|
|
3253
3301
|
border-radius: 50%;
|
|
3254
3302
|
background: var(--accent);
|
|
3255
|
-
animation: ds-bounce 1.4s infinite ease-in-out;
|
|
3256
3303
|
}
|
|
3257
|
-
|
|
3258
|
-
.ds-247420 .ds-spinner span
|
|
3259
|
-
.ds-247420 .ds-spinner span:nth-child(
|
|
3304
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
3305
|
+
.ds-247420 .ds-spinner span { animation: ds-bounce 1.4s infinite ease-in-out; }
|
|
3306
|
+
.ds-247420 .ds-spinner span:nth-child(1) { animation-delay: 0s; }
|
|
3307
|
+
.ds-247420 .ds-spinner span:nth-child(2) { animation-delay: 0.18s; }
|
|
3308
|
+
.ds-247420 .ds-spinner span:nth-child(3) { animation-delay: 0.36s; }
|
|
3309
|
+
}
|
|
3260
3310
|
|
|
3261
3311
|
.ds-247420 .ds-spinner-lg { height: 24px; gap: 6px; }
|
|
3262
3312
|
.ds-247420 .ds-spinner-lg span { width: 6px; height: 6px; }
|
|
@@ -3534,6 +3584,13 @@
|
|
|
3534
3584
|
@media (max-width: 1480px) { .ds-247420 .ws-resizer.ws-resizer-pane { display: none; } }
|
|
3535
3585
|
@media (max-width: 1100px) { .ds-247420 .ws-resizer.ws-resizer-sessions { display: none; } }
|
|
3536
3586
|
@media (max-width: 900px) { .ds-247420 .ws-resizer { display: none; } }
|
|
3587
|
+
/* A resizer must also vanish once its TRACK is desktop-collapsed: a 0px (pane/
|
|
3588
|
+
sessions) or 60px icon-only (rail) track has no width to drag, and a drag would
|
|
3589
|
+
write an INLINE --ws-*-w that overrides the collapse var (inline wins), fighting
|
|
3590
|
+
the collapse state. Mirror the breakpoint guards for the collapse classes. */
|
|
3591
|
+
.ds-247420 .ws-rail-collapsed .ws-resizer-rail,
|
|
3592
|
+
.ds-247420 .ws-sessions-collapsed .ws-resizer-sessions,
|
|
3593
|
+
.ds-247420 .ws-pane-collapsed .ws-resizer-pane { display: none; }
|
|
3537
3594
|
/* Coarse-pointer hit target for hybrid touch laptops above the drawer breakpoint
|
|
3538
3595
|
(the 8px sliver is un-grabbable by touch). */
|
|
3539
3596
|
@media (pointer: coarse) { .ds-247420 .ws-resizer { width: 16px; margin-right: -8px; } }
|
|
@@ -3634,16 +3691,10 @@
|
|
|
3634
3691
|
overflow: hidden; transition: width var(--dur-base) var(--ease);
|
|
3635
3692
|
}
|
|
3636
3693
|
.ds-247420 .ws-pane-collapsed .ws-pane { width: 0; border-left: none; }
|
|
3637
|
-
.ds-247420 .ws-pane-collapsed .ws-pane >
|
|
3638
|
-
|
|
3639
|
-
|
|
3640
|
-
width: 28px; height: 28px;
|
|
3641
|
-
display: inline-flex; align-items: center; justify-content: center;
|
|
3642
|
-
background: var(--bg-2); border: var(--bw-hair) solid var(--bg-3); color: var(--fg-2);
|
|
3643
|
-
border-radius: var(--r-1); cursor: pointer; z-index: 2;
|
|
3694
|
+
.ds-247420 .ws-pane-collapsed .ws-pane > * { display: none; }
|
|
3695
|
+
@media (pointer: coarse) {
|
|
3696
|
+
.ds-247420 .ws-rail-toggle { width: 44px; height: 44px; }
|
|
3644
3697
|
}
|
|
3645
|
-
.ds-247420 .ws-pane-toggle:hover { background: var(--bg-3); color: var(--fg); }
|
|
3646
|
-
.ds-247420 .ws-pane-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
3647
3698
|
|
|
3648
3699
|
/* Drawer toggles and the scrim are hidden by default and revealed by the staged
|
|
3649
3700
|
media blocks BELOW - these base rules must precede those blocks in source
|
|
@@ -3656,6 +3707,10 @@
|
|
|
3656
3707
|
.ds-247420 .ws-desktop-toggle:hover { background: var(--bg-2); color: var(--fg); }
|
|
3657
3708
|
.ds-247420 .ws-desktop-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
3658
3709
|
@media (max-width: 900px) { .ds-247420 .ws-desktop-toggle { display: none; } }
|
|
3710
|
+
/* The pane collapse toggle is meaningless once the pane TRACK is dropped (the
|
|
3711
|
+
pane becomes a mobile overlay drawer at <=1480px, reached via its own
|
|
3712
|
+
drawer-toggle), so hide this crumb control past that breakpoint. */
|
|
3713
|
+
@media (max-width: 1480px) { .ds-247420 .ws-pane-toggle { display: none; } }
|
|
3659
3714
|
.ds-247420 .ws-scrim { display: none; }
|
|
3660
3715
|
|
|
3661
3716
|
/* Responsive: the columns yield to the CONTENT in stages - the main column is
|
|
@@ -3692,9 +3747,7 @@
|
|
|
3692
3747
|
}
|
|
3693
3748
|
.ds-247420 .ws-shell.ws-pane-open .ws-pane { transform: translateX(0); width: min(340px, 85vw); }
|
|
3694
3749
|
.ds-247420 .ws-shell.ws-pane-open.ws-pane-collapsed .ws-pane { border-left: var(--bw-hair) solid var(--bg-3); }
|
|
3695
|
-
.ds-247420 .ws-shell.ws-pane-open.ws-pane-collapsed .ws-pane >
|
|
3696
|
-
/* The desktop collapse chevron is meaningless in drawer mode. */
|
|
3697
|
-
.ds-247420 .ws-pane-toggle { display: none; }
|
|
3750
|
+
.ds-247420 .ws-shell.ws-pane-open.ws-pane-collapsed .ws-pane > * { display: revert; }
|
|
3698
3751
|
.ds-247420 .ws-pane-drawer-toggle { display: inline-flex; }
|
|
3699
3752
|
/* Scrim is always present from this stage down so it FADES with the drawer
|
|
3700
3753
|
instead of hard-appearing; pointer-events gate keeps it inert while closed. */
|
|
@@ -5440,17 +5493,19 @@
|
|
|
5440
5493
|
font: inherit;
|
|
5441
5494
|
}
|
|
5442
5495
|
.ds-247420 .agentchat-cwd-btn:hover { border-color: var(--accent); }
|
|
5443
|
-
.ds-247420 .agentchat-cwd-btn:focus-visible { outline:
|
|
5496
|
+
.ds-247420 .agentchat-cwd-btn:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
5444
5497
|
.ds-247420 .agentchat-cwd-input {
|
|
5445
5498
|
flex: 1;
|
|
5446
5499
|
min-width: 12ch;
|
|
5447
5500
|
background: var(--bg-2);
|
|
5448
|
-
border:
|
|
5501
|
+
border: var(--bw-hair) solid var(--rule);
|
|
5449
5502
|
color: var(--fg);
|
|
5450
|
-
border-radius:
|
|
5503
|
+
border-radius: var(--r-1);
|
|
5451
5504
|
padding: 4px 8px;
|
|
5452
5505
|
font: inherit;
|
|
5453
5506
|
}
|
|
5507
|
+
.ds-247420 .agentchat-cwd-input:focus-visible { outline: none; box-shadow: var(--focus-ring-inset); }
|
|
5508
|
+
.ds-247420 .agentchat-cwd-input[aria-invalid='true'] { border-color: var(--flame); box-shadow: inset 0 0 0 var(--bw-hair) var(--flame); }
|
|
5454
5509
|
|
|
5455
5510
|
/* head + thread */
|
|
5456
5511
|
.ds-247420 .agentchat-head {
|
|
@@ -5658,17 +5713,28 @@
|
|
|
5658
5713
|
/* Each variant carries a non-colour channel (fill vs halo vs hollow ring) so the
|
|
5659
5714
|
states stay distinguishable for colour-blind users and when stale/connecting
|
|
5660
5715
|
would otherwise share a hue. Mirrors the rail-tone shape differentiation. */
|
|
5661
|
-
|
|
5716
|
+
/* One canonical stale tone (disc + word + rail share it) — a muted grey-warn,
|
|
5717
|
+
deliberately desaturated so it is NOT the saturated --amber used by
|
|
5718
|
+
connecting/connecting-stream (which would re-collide hues). */
|
|
5719
|
+
.ds-247420 { --stale: color-mix(in oklab, var(--warn) 70%, var(--fg-3)); }
|
|
5720
|
+
/* Live: a persistent faint concentric ring (resting shape channel, independent
|
|
5721
|
+
of motion) with the pulse layered on top — so even at the pulse trough the
|
|
5722
|
+
disc reads as solid-fill + ring, never a bare solid that aliases stale. */
|
|
5723
|
+
.ds-247420 .status-dot-disc.status-dot-live { background: var(--accent); box-shadow: 0 0 0 2px color-mix(in oklab, var(--accent) 30%, transparent); animation: status-disc-pulse 1.8s ease-in-out infinite; }
|
|
5662
5724
|
.ds-247420 .status-dot-disc.status-dot-error { background: var(--flame); box-shadow: 0 0 0 1.5px color-mix(in oklab, var(--flame) 38%, transparent); }
|
|
5663
5725
|
.ds-247420 .status-dot-disc.status-dot-connecting { background: transparent; box-shadow: inset 0 0 0 2px var(--amber); }
|
|
5664
|
-
|
|
5726
|
+
/* Stale: a muted ring with a hollow centre — silhouette distinct from live's
|
|
5727
|
+
filled disc and connecting's amber hollow ring (hue + inset core). */
|
|
5728
|
+
.ds-247420 .status-dot-disc.status-dot-stale { background: transparent; box-shadow: inset 0 0 0 1px var(--stale), inset 0 0 0 3px var(--bg); }
|
|
5665
5729
|
@keyframes status-disc-pulse {
|
|
5666
|
-
|
|
5667
|
-
|
|
5730
|
+
/* First shadow is the persistent resting ring; second is the animated halo —
|
|
5731
|
+
the ring is always present so the trough never collapses to a bare solid. */
|
|
5732
|
+
0%, 100% { box-shadow: 0 0 0 2px color-mix(in oklab, var(--accent) 30%, transparent), 0 0 0 2px color-mix(in oklab, var(--accent) 55%, transparent); }
|
|
5733
|
+
50% { box-shadow: 0 0 0 2px color-mix(in oklab, var(--accent) 30%, transparent), 0 0 0 6px color-mix(in oklab, var(--accent) 0%, transparent); }
|
|
5668
5734
|
}
|
|
5669
5735
|
@media (prefers-reduced-motion: reduce) {
|
|
5670
|
-
/*
|
|
5671
|
-
.ds-247420 .status-dot-disc.status-dot-live { animation: none;
|
|
5736
|
+
/* The base rule already carries the persistent ring; just stop the pulse. */
|
|
5737
|
+
.ds-247420 .status-dot-disc.status-dot-live { animation: none; }
|
|
5672
5738
|
}
|
|
5673
5739
|
|
|
5674
5740
|
/* ----------------------------------------------------------------------------
|
|
@@ -5835,7 +5901,7 @@
|
|
|
5835
5901
|
}
|
|
5836
5902
|
.ds-247420 button.chat-composer-context { cursor: pointer; }
|
|
5837
5903
|
.ds-247420 button.chat-composer-context:hover { color: var(--fg-2); }
|
|
5838
|
-
.ds-247420 button.chat-composer-context:focus-visible { outline:
|
|
5904
|
+
.ds-247420 button.chat-composer-context:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
5839
5905
|
|
|
5840
5906
|
/* Composer send/cancel button row: a non-wrapping cluster pinned to the
|
|
5841
5907
|
bottom-right of the flex-end composer (was unstyled, so the send button
|
|
@@ -5855,7 +5921,7 @@
|
|
|
5855
5921
|
.ds-247420 .agentchat-followups { display: flex; flex-wrap: wrap; gap: var(--space-2); padding: var(--space-2) var(--space-3); }
|
|
5856
5922
|
|
|
5857
5923
|
/* --- C1: stale/idle dashboard status (static, NOT pulsing). --- */
|
|
5858
|
-
.ds-247420 .ds-dash-status.is-stale { color: var(--
|
|
5924
|
+
.ds-247420 .ds-dash-status.is-stale { color: var(--stale); }
|
|
5859
5925
|
.ds-247420 .ds-dash-status.is-running { color: var(--accent); }
|
|
5860
5926
|
|
|
5861
5927
|
/* --- C2: dashboard sort/filter toolbar + stream-state line. --- */
|
|
@@ -5899,7 +5965,7 @@
|
|
|
5899
5965
|
/* Stale/idle card: a positive amber inset bar (mirrors is-active) so a stuck
|
|
5900
5966
|
agent is flagged in a dense grid, not merely faded near-invisibly. The word
|
|
5901
5967
|
'idle' co-carries state, so this stays colour-blind safe. */
|
|
5902
|
-
.ds-247420 .ds-dash-card.is-stale { box-shadow: inset 2px 0 0 var(--
|
|
5968
|
+
.ds-247420 .ds-dash-card.is-stale { box-shadow: inset 2px 0 0 var(--stale); }
|
|
5903
5969
|
|
|
5904
5970
|
/* --- H3: dashboard live disc pulses; stale/error do not (handled by H1). --- */
|
|
5905
5971
|
|
|
@@ -6009,7 +6075,7 @@
|
|
|
6009
6075
|
font: inherit; color: inherit; text-decoration: underline dotted;
|
|
6010
6076
|
}
|
|
6011
6077
|
.ds-247420 .chat-composer-context-bit:hover { color: var(--fg-2); }
|
|
6012
|
-
.ds-247420 .chat-composer-context-bit:focus-visible { outline:
|
|
6078
|
+
.ds-247420 .chat-composer-context-bit:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
6013
6079
|
@media (pointer: coarse) {
|
|
6014
6080
|
.ds-247420 .chat-composer-context-bit { min-height: 44px; }
|
|
6015
6081
|
}
|
|
@@ -6088,6 +6154,11 @@
|
|
|
6088
6154
|
.ds-247420 .chat-msg-flat.you .chat-role { color: var(--accent); }
|
|
6089
6155
|
.ds-247420 .chat-msg-flat .chat-bubble { background: none; border: none; border-radius: 0; padding: 0; max-width: 100%; box-shadow: none; transform: none; }
|
|
6090
6156
|
.ds-247420 .chat-msg-flat.you .chat-bubble { background: none; color: inherit; }
|
|
6157
|
+
/* Flat user turns reset their bubble to transparent, but the messenger rule
|
|
6158
|
+
(.chat-msg.you .chat-bubble code) tints inline code on --accent-fg, which is
|
|
6159
|
+
invisible/wrong on the bare page surface. Reset to the neutral fg-10% tint the
|
|
6160
|
+
sibling assistant turns get (wins over app-shell.css by later source order). */
|
|
6161
|
+
.ds-247420 .chat-msg-flat.you .chat-bubble code { background: color-mix(in oklab, var(--fg) 10%, transparent); }
|
|
6091
6162
|
/* Flat turns strip the bubble padding, so the role label sat 4px above the first
|
|
6092
6163
|
paragraph and the .them tint hugged text flush. Restore reading rhythm + give
|
|
6093
6164
|
the tinted assistant row inner breathing room so it reads as a card. */
|
|
@@ -6111,6 +6182,16 @@
|
|
|
6111
6182
|
ladder stays monotonic): assistant 5% > its 3% rest; user 4% > transparent. */
|
|
6112
6183
|
.ds-247420 .chat-msg-flat.them:hover { background: color-mix(in oklab, var(--fg) 5%, transparent); }
|
|
6113
6184
|
.ds-247420 .chat-msg-flat.you:hover { background: color-mix(in oklab, var(--fg) 4%, transparent); }
|
|
6185
|
+
/* A turn whose only assistant content is a bordered tool card or code block
|
|
6186
|
+
already carries its own --bg surface + rule border; the turn-level .them tint
|
|
6187
|
+
would stack a second, wider-than-measure surface behind it. Suppress it so the
|
|
6188
|
+
card is the single surface (claude.ai/code keeps tool cards on bare canvas).
|
|
6189
|
+
Selectors mirror the breakout pair above so suppression + widening always
|
|
6190
|
+
cover the same turns. */
|
|
6191
|
+
.ds-247420 .chat-msg-flat.them:has(.chat-tool),
|
|
6192
|
+
.ds-247420 .chat-msg-flat.them:has(.chat-bubble.chat-code),
|
|
6193
|
+
.ds-247420 .chat-msg-flat.them:has(.chat-tool):hover,
|
|
6194
|
+
.ds-247420 .chat-msg-flat.them:has(.chat-bubble.chat-code):hover { background: none; }
|
|
6114
6195
|
.ds-247420 .chat-msg-flat:hover .chat-bubble { transform: none; box-shadow: none; background: none; }
|
|
6115
6196
|
.ds-247420 .chat-msg-flat .chat-avatar { display: none; }
|
|
6116
6197
|
|
|
@@ -6149,7 +6230,9 @@
|
|
|
6149
6230
|
.ds-247420 .chat-msg .chat-tool.tool-done .chat-tool-status { color: var(--success); background: color-mix(in oklab, var(--success) 12%, transparent); }
|
|
6150
6231
|
.ds-247420 .chat-tool-body { border-top: var(--bw-hair) solid var(--rule); padding: var(--space-2) var(--space-3); display: flex; flex-direction: column; gap: var(--space-2); }
|
|
6151
6232
|
.ds-247420 .chat-tool-section { display: flex; flex-direction: column; gap: var(--space-1); }
|
|
6152
|
-
.ds-247420 .chat-tool-section-label { font-size: var(--fs-tiny); font-weight: 600; text-transform: uppercase; letter-spacing: var(--tr-caps); color: var(--fg-3); }
|
|
6233
|
+
.ds-247420 .chat-tool-section-label { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); font-size: var(--fs-tiny); font-weight: 600; text-transform: uppercase; letter-spacing: var(--tr-caps); color: var(--fg-3); }
|
|
6234
|
+
.ds-247420 .chat-tool-copy { position: static; opacity: 0; }
|
|
6235
|
+
.ds-247420 .chat-tool-section:hover .chat-tool-copy, .ds-247420 .chat-tool-section:focus-within .chat-tool-copy { opacity: 1; }
|
|
6153
6236
|
.ds-247420 .chat-tool-pre { margin: 0; padding: var(--space-2); background: var(--bg-2); border-radius: var(--r-1); font-family: var(--ff-mono); font-size: var(--fs-tiny); line-height: 1.45; overflow-x: auto; max-height: 320px; overflow-y: auto; }
|
|
6154
6237
|
.ds-247420 .chat-tool-pre.is-error { color: var(--flame); }
|
|
6155
6238
|
.ds-247420 .chat-tool-pre.chat-tool-empty { color: var(--fg-3); }
|
|
@@ -6185,6 +6268,11 @@
|
|
|
6185
6268
|
accent), placed last so its inset bar wins source order over is-active/is-stale.
|
|
6186
6269
|
The full-perimeter border-color (line ~396) stays for extra severity emphasis. */
|
|
6187
6270
|
.ds-247420 .ds-dash-card.is-error { box-shadow: inset 2px 0 0 var(--flame); }
|
|
6271
|
+
/* A newly-arrived AND errored card: keep the LEFT inset bar flame (severity
|
|
6272
|
+
precedence, never accent) while restoring the is-new arrival outline as a
|
|
6273
|
+
full-perimeter accent glow that does not collide with the flame bar. Placed
|
|
6274
|
+
after both is-new and is-error so it wins source order. */
|
|
6275
|
+
.ds-247420 .ds-dash-card.is-new.is-error { box-shadow: inset 2px 0 0 var(--flame), 0 0 0 1px color-mix(in oklab, var(--accent) 40%, transparent); }
|
|
6188
6276
|
@media (prefers-reduced-motion: no-preference) {
|
|
6189
6277
|
.ds-247420 .ds-dash-card.is-new { animation: ds-card-in var(--dur-slow) var(--ease); }
|
|
6190
6278
|
}
|
|
@@ -6194,9 +6282,17 @@
|
|
|
6194
6282
|
.ds-247420 .ds-dash-group { display: flex; flex-direction: column; gap: var(--space-2); }
|
|
6195
6283
|
.ds-247420 .ds-dash-group-label { font-size: var(--fs-tiny); font-weight: 600; text-transform: uppercase; letter-spacing: var(--tr-caps); color: var(--fg-3); padding: 0 var(--space-1); }
|
|
6196
6284
|
.ds-247420 .ds-dash-breakdown { display: flex; align-items: center; gap: var(--space-1); font-size: var(--fs-sm); color: var(--fg-2); }
|
|
6197
|
-
|
|
6198
|
-
|
|
6199
|
-
|
|
6285
|
+
/* Shape-channel discs mirror the .status-dot-disc vocabulary (solid /
|
|
6286
|
+
solid+halo / hollow ring) so a colour-blind user can scan the breakdown by
|
|
6287
|
+
shape, not hue alone. CSS-drawn discs, not glyphs (glyph policy clean). */
|
|
6288
|
+
.ds-247420 .ds-dash-breakdown .seg { display: inline-flex; align-items: center; gap: var(--space-1); font-weight: 600; }
|
|
6289
|
+
.ds-247420 .ds-dash-breakdown .seg::before { content: ''; width: 7px; height: 7px; border-radius: 50%; flex: none; }
|
|
6290
|
+
.ds-247420 .ds-dash-breakdown .seg.is-running { color: var(--accent); }
|
|
6291
|
+
.ds-247420 .ds-dash-breakdown .seg.is-running::before { background: var(--accent); }
|
|
6292
|
+
.ds-247420 .ds-dash-breakdown .seg.is-error { color: var(--flame); }
|
|
6293
|
+
.ds-247420 .ds-dash-breakdown .seg.is-error::before { background: var(--flame); box-shadow: 0 0 0 1.5px color-mix(in oklab, var(--flame) 38%, transparent); }
|
|
6294
|
+
.ds-247420 .ds-dash-breakdown .seg.is-idle { color: var(--amber); }
|
|
6295
|
+
.ds-247420 .ds-dash-breakdown .seg.is-idle::before { background: transparent; box-shadow: inset 0 0 0 2px var(--amber); }
|
|
6200
6296
|
.ds-247420 .ds-dash-stream-disc { display: inline-flex; align-items: center; gap: var(--space-1); }
|
|
6201
6297
|
.ds-247420 .ds-dash-selectall { display: inline-flex; align-items: center; gap: var(--space-1); font-size: var(--fs-tiny); color: var(--fg-2); cursor: pointer; background: none; border: none; padding: var(--space-1); }
|
|
6202
6298
|
.ds-247420 .ds-dash-selectall:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
@@ -6268,6 +6364,21 @@
|
|
|
6268
6364
|
.ds-247420 .agentchat-thread { --measure: 84ch; }
|
|
6269
6365
|
}
|
|
6270
6366
|
|
|
6367
|
+
/* Stop/cancel composer control: re-tone the accent send button as a quiet
|
|
6368
|
+
neutral control so 'stop generating' reads as distinct from accent send.
|
|
6369
|
+
Flame/warn stay reserved (flame=error STATUS, warn=destructive ACTION); a
|
|
6370
|
+
neutral quiet tone is the claude-code-aligned read for an in-flight stop. */
|
|
6371
|
+
.ds-247420 .chat-composer .send.cancel {
|
|
6372
|
+
background: var(--bg-3);
|
|
6373
|
+
color: var(--fg);
|
|
6374
|
+
box-shadow: inset 0 0 0 var(--bw-hair, 1px) var(--rule-strong, var(--rule));
|
|
6375
|
+
}
|
|
6376
|
+
.ds-247420 .chat-composer .send.cancel:hover {
|
|
6377
|
+
background: color-mix(in oklab, var(--fg) 8%, var(--bg-3));
|
|
6378
|
+
filter: none;
|
|
6379
|
+
}
|
|
6380
|
+
.ds-247420 .chat-composer .send.cancel:active { filter: brightness(0.96); }
|
|
6381
|
+
|
|
6271
6382
|
/* editor-primitives.css */
|
|
6272
6383
|
/* editor-primitives.css — chrome for in-engine editors, inspectors, IDEs,
|
|
6273
6384
|
debug HUDs. All rules under .ds-247420 scope (build prefixes). Tokens
|
|
@@ -6470,11 +6581,12 @@
|
|
|
6470
6581
|
font: inherit;
|
|
6471
6582
|
min-width: 0; width: 100%;
|
|
6472
6583
|
}
|
|
6473
|
-
.ds-247420 .ds-ep-propfield-value input:focus,
|
|
6474
|
-
.ds-247420 .ds-ep-propfield-value select:focus,
|
|
6475
|
-
.ds-247420 .ds-ep-propfield-value textarea:focus {
|
|
6584
|
+
.ds-247420 .ds-ep-propfield-value input:focus-visible,
|
|
6585
|
+
.ds-247420 .ds-ep-propfield-value select:focus-visible,
|
|
6586
|
+
.ds-247420 .ds-ep-propfield-value textarea:focus-visible {
|
|
6476
6587
|
outline: none;
|
|
6477
6588
|
border-color: var(--accent);
|
|
6589
|
+
box-shadow: var(--focus-ring-inset);
|
|
6478
6590
|
}
|
|
6479
6591
|
.ds-247420 .ds-ep-propfield-hint {
|
|
6480
6592
|
grid-column: 1 / -1;
|
|
@@ -7705,10 +7817,10 @@
|
|
|
7705
7817
|
.ds-247420 .health-summary { display: flex; flex-wrap: wrap; gap: .4em; margin: .6em 0; }
|
|
7706
7818
|
.ds-247420 .health-chip {
|
|
7707
7819
|
font-family: var(--ff-mono, ui-monospace, monospace);
|
|
7708
|
-
font-size: .8rem; padding: .15em .55em; border-radius: 6px;
|
|
7820
|
+
font-size: .8rem; padding: .15em .55em; border-radius: var(--r-1, 6px);
|
|
7709
7821
|
background: color-mix(in srgb, var(--fg) 8%, transparent);
|
|
7710
7822
|
color: var(--fg-2);
|
|
7711
|
-
border: 1px solid color-mix(in srgb, var(--fg) 12%, transparent);
|
|
7823
|
+
border: var(--bw-hair, 1px) solid color-mix(in srgb, var(--fg) 12%, transparent);
|
|
7712
7824
|
}
|
|
7713
7825
|
.ds-247420 .health-summary.health-ok .health-chip:first-child {
|
|
7714
7826
|
color: var(--accent);
|
|
@@ -7726,9 +7838,9 @@
|
|
|
7726
7838
|
}
|
|
7727
7839
|
.ds-247420 .cwd-bar-btn {
|
|
7728
7840
|
cursor: pointer; font: inherit; line-height: 1.3;
|
|
7729
|
-
padding: .15em .55em; border-radius: 6px;
|
|
7841
|
+
padding: .15em .55em; border-radius: var(--r-1, 6px);
|
|
7730
7842
|
background: color-mix(in srgb, var(--fg) 8%, transparent);
|
|
7731
|
-
border: 1px solid color-mix(in srgb, var(--fg) 14%, transparent);
|
|
7843
|
+
border: var(--bw-hair, 1px) solid color-mix(in srgb, var(--fg) 14%, transparent);
|
|
7732
7844
|
color: var(--fg-2);
|
|
7733
7845
|
}
|
|
7734
7846
|
.ds-247420 .cwd-bar-btn:hover { background: color-mix(in srgb, var(--fg) 14%, transparent); }
|
|
@@ -7804,7 +7916,7 @@
|
|
|
7804
7916
|
.ds-247420 #app { min-height: auto; display: block; height: auto; }
|
|
7805
7917
|
.ds-247420 .skip-link, .ds-247420 .status-dot, .ds-247420 .history-actions, .ds-247420 .chat-composer { display: none !important; }
|
|
7806
7918
|
.ds-247420 .app, .ds-247420 .app-main, .ds-247420 .panel, .ds-247420 .chat, .ds-247420 .chat-thread {
|
|
7807
|
-
background:
|
|
7919
|
+
background: var(--paper) !important; color: var(--ink) !important; box-shadow: none !important;
|
|
7808
7920
|
}
|
|
7809
7921
|
}
|
|
7810
7922
|
|