anentrypoint-design 0.0.301 → 0.0.303
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 +29 -66
- package/chat.css +12 -1
- package/dist/247420.css +41 -67
- package/dist/247420.js +14 -14
- package/package.json +1 -1
- package/src/components/agent-chat.js +4 -4
- package/src/components/chat.js +1 -1
- package/src/components/context-pane.js +15 -5
package/app-shell.css
CHANGED
|
@@ -208,8 +208,7 @@ body.canvas-host { background: transparent !important; }
|
|
|
208
208
|
align-items: center; gap: var(--space-4);
|
|
209
209
|
min-height: var(--app-topbar-h);
|
|
210
210
|
padding: 10px var(--pad-x);
|
|
211
|
-
background: color-mix(in oklab, var(--bg)
|
|
212
|
-
backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
|
|
211
|
+
background: color-mix(in oklab, var(--bg) 97%, transparent);
|
|
213
212
|
}
|
|
214
213
|
|
|
215
214
|
/* Merged chrome: when AppShell gets both a topbar and a crumb it wraps them
|
|
@@ -222,8 +221,7 @@ body.canvas-host { background: transparent !important; }
|
|
|
222
221
|
display: flex; flex-wrap: wrap; align-items: center;
|
|
223
222
|
gap: var(--space-2) var(--space-4);
|
|
224
223
|
padding: 8px var(--pad-x);
|
|
225
|
-
background: color-mix(in oklab, var(--bg)
|
|
226
|
-
backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
|
|
224
|
+
background: color-mix(in oklab, var(--bg) 97%, transparent);
|
|
227
225
|
}
|
|
228
226
|
.app-chrome > .app-topbar,
|
|
229
227
|
.app-chrome > .app-crumb {
|
|
@@ -610,14 +608,6 @@ body.canvas-host { background: transparent !important; }
|
|
|
610
608
|
transition: box-shadow var(--dur-base) var(--ease-spring), border-color var(--dur-snap) var(--ease),
|
|
611
609
|
transform var(--dur-base) var(--ease-spring);
|
|
612
610
|
}
|
|
613
|
-
/* Vercel-style card lift: any panel sitting inside a density grid (trio/grid)
|
|
614
|
-
gets a restrained hover escalation — the standalone/full-width panel stays
|
|
615
|
-
flat so page chrome doesn't jitter on scroll-adjacent hover. */
|
|
616
|
-
.ds-panel-trio > .panel:hover, .ds-panel-grid > .panel:hover {
|
|
617
|
-
box-shadow: var(--shadow-2);
|
|
618
|
-
border-color: var(--rule-strong);
|
|
619
|
-
transform: translateY(-2px);
|
|
620
|
-
}
|
|
621
611
|
/* Editorial accent spine — an opt-in printed-ink rule down the left edge that
|
|
622
612
|
reads as a magazine pull-quote bar, not a glow card. */
|
|
623
613
|
.panel.panel-spine {
|
|
@@ -630,7 +620,7 @@ body.canvas-host { background: transparent !important; }
|
|
|
630
620
|
border-radius: var(--bw-chunk) 0 0 var(--bw-chunk);
|
|
631
621
|
}
|
|
632
622
|
.panel.panel-inline { background: var(--bg-2); padding: var(--space-3) var(--space-3); }
|
|
633
|
-
.panel.panel-wide { background: transparent; box-shadow: none; }
|
|
623
|
+
.panel.panel-wide { background: transparent; box-shadow: none; border: none; }
|
|
634
624
|
.panel-head {
|
|
635
625
|
display: flex; align-items: baseline; justify-content: space-between;
|
|
636
626
|
/* Shares the .panel-body 16px side padding so the caps label and the body
|
|
@@ -1091,8 +1081,9 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
1091
1081
|
}
|
|
1092
1082
|
.ds-barchart-fill {
|
|
1093
1083
|
height: 100%; width: var(--bar-pct, 0%);
|
|
1094
|
-
background: var(--
|
|
1084
|
+
background: var(--fg-3); border-radius: var(--r-pill);
|
|
1095
1085
|
}
|
|
1086
|
+
.ds-barchart-fill.is-active { background: var(--accent); }
|
|
1096
1087
|
.ds-barchart-value {
|
|
1097
1088
|
font-size: var(--fs-xs); font-weight: 600; color: var(--fg-3);
|
|
1098
1089
|
font-variant-numeric: tabular-nums;
|
|
@@ -1512,15 +1503,15 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
1512
1503
|
.ds-file-row:active { transform: translateY(1px); }
|
|
1513
1504
|
.ds-file-row.active { background: var(--accent-tint); border-color: var(--accent); }
|
|
1514
1505
|
.ds-file-row[data-file-type="dir"] { border-left-width: 3px; border-left-color: var(--accent); }
|
|
1515
|
-
.ds-file-row[data-file-type="image"]
|
|
1516
|
-
.ds-file-row[data-file-type="video"]
|
|
1517
|
-
.ds-file-row[data-file-type="audio"]
|
|
1518
|
-
.ds-file-row[data-file-type="code"]
|
|
1519
|
-
.ds-file-row[data-file-type="text"]
|
|
1520
|
-
.ds-file-row[data-file-type="archive"]
|
|
1521
|
-
.ds-file-row[data-file-type="document"]
|
|
1522
|
-
.ds-file-row[data-file-type="symlink"]
|
|
1523
|
-
.ds-file-row[data-file-type="other"] { border-left-width: 3px; border-left-color: var(--
|
|
1506
|
+
.ds-file-row[data-file-type="image"],
|
|
1507
|
+
.ds-file-row[data-file-type="video"],
|
|
1508
|
+
.ds-file-row[data-file-type="audio"],
|
|
1509
|
+
.ds-file-row[data-file-type="code"],
|
|
1510
|
+
.ds-file-row[data-file-type="text"],
|
|
1511
|
+
.ds-file-row[data-file-type="archive"],
|
|
1512
|
+
.ds-file-row[data-file-type="document"],
|
|
1513
|
+
.ds-file-row[data-file-type="symlink"],
|
|
1514
|
+
.ds-file-row[data-file-type="other"] { border-left-width: 3px; border-left-color: var(--rule); }
|
|
1524
1515
|
|
|
1525
1516
|
/* Row internals — these are the classes FileRow actually renders. */
|
|
1526
1517
|
.ds-file-row .title {
|
|
@@ -1591,13 +1582,13 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
1591
1582
|
transition: background var(--dur-snap) var(--ease), border-color var(--dur-snap) var(--ease);
|
|
1592
1583
|
}
|
|
1593
1584
|
.is-marked > .ds-check-box,
|
|
1594
|
-
[aria-checked="true"] > .ds-check-box { background: var(--
|
|
1585
|
+
[aria-checked="true"] > .ds-check-box { background: var(--fg); border-color: var(--fg); }
|
|
1595
1586
|
.is-marked > .ds-check-box::after,
|
|
1596
1587
|
[aria-checked="true"] > .ds-check-box::after {
|
|
1597
1588
|
content: ""; position: absolute; left: 4px; top: 1px; width: 4px; height: 8px;
|
|
1598
1589
|
border: solid var(--bg); border-width: 0 1.5px 1.5px 0; transform: rotate(45deg);
|
|
1599
1590
|
}
|
|
1600
|
-
[aria-checked="mixed"] > .ds-check-box { background: var(--
|
|
1591
|
+
[aria-checked="mixed"] > .ds-check-box { background: var(--fg); border-color: var(--fg); }
|
|
1601
1592
|
[aria-checked="mixed"] > .ds-check-box::after {
|
|
1602
1593
|
content: ""; position: absolute; left: 3px; right: 3px; top: 6px; height: 2px; background: var(--bg); border-radius: var(--r-hair);
|
|
1603
1594
|
}
|
|
@@ -1900,9 +1891,10 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
1900
1891
|
}
|
|
1901
1892
|
.ds-upload-fill {
|
|
1902
1893
|
display: block; height: 100%; width: 0;
|
|
1903
|
-
background: var(--
|
|
1894
|
+
background: var(--fg-3); border-radius: var(--r-pill);
|
|
1904
1895
|
transition: width var(--dur-base) var(--ease);
|
|
1905
1896
|
}
|
|
1897
|
+
.ds-upload-fill.is-active { background: var(--accent); }
|
|
1906
1898
|
/* Indeterminate: percent is unknown mid-transfer (fetch gives no chunk-level
|
|
1907
1899
|
progress) — a sliding marquee bar reads as "working", not stuck at 0%. */
|
|
1908
1900
|
.ds-upload-bar.indeterminate .ds-upload-fill {
|
|
@@ -1967,7 +1959,6 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
1967
1959
|
max(var(--space-3), env(safe-area-inset-bottom))
|
|
1968
1960
|
max(var(--space-3), env(safe-area-inset-left));
|
|
1969
1961
|
background: color-mix(in oklab, var(--ink) 55%, transparent);
|
|
1970
|
-
backdrop-filter: blur(3px);
|
|
1971
1962
|
}
|
|
1972
1963
|
@media (prefers-reduced-motion: no-preference) {
|
|
1973
1964
|
.ds-modal-backdrop { animation: ds-modal-fade var(--dur-base) var(--ease); }
|
|
@@ -2429,7 +2420,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
2429
2420
|
}
|
|
2430
2421
|
.chat-msg:hover .chat-image,
|
|
2431
2422
|
.chat-image:hover {
|
|
2432
|
-
border-color:
|
|
2423
|
+
border-color: var(--rule);
|
|
2433
2424
|
}
|
|
2434
2425
|
.chat-image img { display: block; width: 100%; height: auto; max-height: 360px; object-fit: cover; }
|
|
2435
2426
|
.chat-image .cap,
|
|
@@ -2444,12 +2435,12 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
2444
2435
|
max-width: min(100%, 360px);
|
|
2445
2436
|
transition: background var(--dur-snap, .15s) var(--ease, ease), border-color var(--dur-snap, .15s) var(--ease, ease);
|
|
2446
2437
|
}
|
|
2447
|
-
.chat-file:hover { background: var(--bg-3);
|
|
2438
|
+
.chat-file:hover { background: var(--bg-3); }
|
|
2448
2439
|
.chat-file .glyph {
|
|
2449
2440
|
font-size: 22px; width: 36px; height: 36px;
|
|
2450
2441
|
display: inline-flex; align-items: center; justify-content: center;
|
|
2451
|
-
background:
|
|
2452
|
-
color: var(--
|
|
2442
|
+
background: var(--bg-3);
|
|
2443
|
+
color: var(--fg-2); border-radius: var(--r-0); flex-shrink: 0; font-family: var(--ff-mono);
|
|
2453
2444
|
}
|
|
2454
2445
|
.chat-file > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
|
|
2455
2446
|
.chat-file .name {
|
|
@@ -2470,7 +2461,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
2470
2461
|
border-radius: var(--r-1); overflow: hidden; max-width: min(100%, 480px);
|
|
2471
2462
|
transition: box-shadow 0.12s ease, border-color 0.12s ease;
|
|
2472
2463
|
}
|
|
2473
|
-
.chat-msg:hover .chat-pdf { border-color:
|
|
2464
|
+
.chat-msg:hover .chat-pdf { border-color: var(--rule); }
|
|
2474
2465
|
.chat-pdf-head {
|
|
2475
2466
|
display: flex; align-items: center; gap: 10px; padding: 10px 14px;
|
|
2476
2467
|
background: color-mix(in oklab, var(--fg) 5%, var(--bg-2));
|
|
@@ -2497,7 +2488,6 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
2497
2488
|
.chat-msg:hover .chat-link,
|
|
2498
2489
|
.chat-link:hover {
|
|
2499
2490
|
background: var(--bg-3);
|
|
2500
|
-
border-color: color-mix(in oklab, var(--accent) 40%, transparent);
|
|
2501
2491
|
}
|
|
2502
2492
|
.chat-link:not(:has(.thumb)):not(:has(img)) { grid-template-columns: 1fr; }
|
|
2503
2493
|
.chat-link .thumb,
|
|
@@ -2530,7 +2520,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
2530
2520
|
transition: background var(--dur-snap, .12s) var(--ease, ease), border-color var(--dur-snap, .12s) var(--ease, ease), transform 0.12s ease;
|
|
2531
2521
|
position: relative;
|
|
2532
2522
|
}
|
|
2533
|
-
.chat-reactions .rxn:hover { background: var(--bg-3);
|
|
2523
|
+
.chat-reactions .rxn:hover { background: var(--bg-3); transform: scale(1.06); }
|
|
2534
2524
|
.chat-reactions .rxn.you {
|
|
2535
2525
|
background: color-mix(in oklab, var(--accent) 18%, var(--bg-2));
|
|
2536
2526
|
border-color: color-mix(in oklab, var(--accent) 55%, transparent);
|
|
@@ -2866,9 +2856,7 @@ input[type="checkbox"], input[type="radio"] {
|
|
|
2866
2856
|
|
|
2867
2857
|
/* Drag-over state */
|
|
2868
2858
|
.drag-over {
|
|
2869
|
-
background: color-mix(in oklab, var(--accent) 12%, var(--bg));
|
|
2870
2859
|
border: 2px dashed var(--accent);
|
|
2871
|
-
box-shadow: inset 0 0 0 1px var(--accent);
|
|
2872
2860
|
}
|
|
2873
2861
|
|
|
2874
2862
|
/* Drag-ghost (semi-transparent dragging element) */
|
|
@@ -2924,7 +2912,7 @@ input[type="checkbox"], input[type="radio"] {
|
|
|
2924
2912
|
background: var(--bg-2);
|
|
2925
2913
|
border: 1px solid var(--rule);
|
|
2926
2914
|
border-radius: var(--r-2);
|
|
2927
|
-
box-shadow:
|
|
2915
|
+
box-shadow: var(--shadow-overlay);
|
|
2928
2916
|
min-width: 160px;
|
|
2929
2917
|
z-index: calc(var(--z-overlay, 1000) + 1);
|
|
2930
2918
|
padding: 4px 0;
|
|
@@ -3206,7 +3194,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3206
3194
|
/* Skip to main content link */
|
|
3207
3195
|
.skip-to-main {
|
|
3208
3196
|
position: absolute; top: -40px; left: 0;
|
|
3209
|
-
background: var(--
|
|
3197
|
+
background: var(--fg); color: var(--bg);
|
|
3210
3198
|
padding: 8px 16px; border-radius: var(--r-1);
|
|
3211
3199
|
text-decoration: none; z-index: var(--z-overlay, 1000);
|
|
3212
3200
|
}
|
|
@@ -3297,25 +3285,6 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3297
3285
|
Empty State & Loading States
|
|
3298
3286
|
-------------------------------------------------------------- */
|
|
3299
3287
|
|
|
3300
|
-
.empty-state {
|
|
3301
|
-
display: flex; flex-direction: column; align-items: center; gap: var(--space-4);
|
|
3302
|
-
padding: var(--space-8) var(--space-4);
|
|
3303
|
-
text-align: center; color: var(--fg-3);
|
|
3304
|
-
}
|
|
3305
|
-
.empty-state--inline {
|
|
3306
|
-
flex-direction: row; align-items: center; gap: var(--space-2);
|
|
3307
|
-
padding: var(--space-2) 0; text-align: left;
|
|
3308
|
-
}
|
|
3309
|
-
.empty-state-icon {
|
|
3310
|
-
font-size: 48px; opacity: 0.4;
|
|
3311
|
-
}
|
|
3312
|
-
.empty-state-title {
|
|
3313
|
-
font-size: var(--fs-lg); font-weight: 600; color: var(--fg-2);
|
|
3314
|
-
}
|
|
3315
|
-
.empty-state-body {
|
|
3316
|
-
font-size: var(--fs-sm); max-width: 40ch;
|
|
3317
|
-
}
|
|
3318
|
-
|
|
3319
3288
|
/* Skeleton loading state */
|
|
3320
3289
|
.skeleton {
|
|
3321
3290
|
background: linear-gradient(
|
|
@@ -3349,7 +3318,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3349
3318
|
border-radius: var(--r-2);
|
|
3350
3319
|
padding: var(--space-3) var(--space-4);
|
|
3351
3320
|
max-width: 320px;
|
|
3352
|
-
box-shadow:
|
|
3321
|
+
box-shadow: var(--shadow-overlay);
|
|
3353
3322
|
z-index: calc(var(--z-overlay, 1000) + 10);
|
|
3354
3323
|
}
|
|
3355
3324
|
|
|
@@ -4097,7 +4066,8 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
4097
4066
|
.ds-bar-row { display: flex; align-items: center; gap: 8px; margin: 3px 0; font-size: var(--fs-tiny); }
|
|
4098
4067
|
.ds-bar-row-label { width: 100px; flex-shrink: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
4099
4068
|
.ds-bar-bg { flex: 1; min-width: 60px; background: var(--bg-3); border-radius: var(--r-hair); height: 6px; overflow: hidden; }
|
|
4100
|
-
.ds-bar-fill { background: var(--
|
|
4069
|
+
.ds-bar-fill { background: var(--fg-3); height: 100%; border-radius: var(--r-hair); }
|
|
4070
|
+
.ds-bar-fill.is-active { background: var(--accent); }
|
|
4101
4071
|
.ds-bar-row-value { flex-shrink: 0; color: var(--fg-2); max-width: 40%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
4102
4072
|
@media (max-width: 400px) {
|
|
4103
4073
|
.ds-bar-row-label { width: 72px; }
|
|
@@ -4210,13 +4180,6 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
4210
4180
|
@media (max-width: 760px) {
|
|
4211
4181
|
.ds-panel-duo { grid-template-columns: 1fr; }
|
|
4212
4182
|
}
|
|
4213
|
-
/* Wide-viewport density: auto-fit grid so panel COUNT tracks actual children
|
|
4214
|
-
instead of a hardcoded column number — 2 children sit 2-up, 5 wrap to a
|
|
4215
|
-
third row, never an arbitrary 3-card reflex (same auto-fit/minmax pattern
|
|
4216
|
-
as .ds-tile-grid). Panels floor at 280px before wrapping, so ultra-wide
|
|
4217
|
-
screens still get more columns than a fixed repeat(3, ...) ever allowed. */
|
|
4218
|
-
.ds-panel-trio { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); gap: var(--space-2); margin: var(--space-2) 0; }
|
|
4219
|
-
.ds-panel-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: var(--space-2); margin: var(--space-2) 0; }
|
|
4220
4183
|
/* wide dense rows/tables scroll inside their panel, never the page */
|
|
4221
4184
|
.ds-scroll-x { overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }
|
|
4222
4185
|
|
package/chat.css
CHANGED
|
@@ -418,7 +418,7 @@
|
|
|
418
418
|
.ds-session-agent { font-size: var(--fs-tiny); color: var(--fg-3); }
|
|
419
419
|
/* New-activity cue is a hollow accent RING so it stays shape-distinct from the
|
|
420
420
|
running live disc (a solid pulsing accent dot) for colour-blind / reduced-motion users. */
|
|
421
|
-
.ds-session-unread { width: 8px; height: 8px; border-radius: 50%; background:
|
|
421
|
+
.ds-session-unread { width: 8px; height: 8px; border-radius: 50%; background: var(--fg-2); display: inline-block; }
|
|
422
422
|
.ds-session-state { padding: var(--space-5) var(--space-3); text-align: center; color: var(--fg-3); font-size: var(--fs-sm); }
|
|
423
423
|
.ds-session-state-error { color: var(--flame); }
|
|
424
424
|
|
|
@@ -474,6 +474,17 @@
|
|
|
474
474
|
.ds-context .row .meta { font-family: var(--ff-mono); font-size: var(--fs-xs); color: var(--fg-2); }
|
|
475
475
|
.ds-context .row .sub { font-size: var(--fs-xs); color: var(--fg-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
476
476
|
.ds-context-actions { display: flex; gap: var(--space-2); }
|
|
477
|
+
/* Lighter fact groups for secondary context blocks (conversation/last turn/
|
|
478
|
+
recent files): a small caps label + Row list with no card chrome, so a
|
|
479
|
+
2-row fact doesn't compete visually with the primary bordered panel above
|
|
480
|
+
it. Separated from neighbors by a hairline rule, not a border box. */
|
|
481
|
+
.ds-context-group { padding-top: var(--space-3); border-top: var(--bw-hair) solid var(--rule); }
|
|
482
|
+
.ds-context-group-label {
|
|
483
|
+
font-size: var(--fs-tiny); font-weight: 600; color: var(--fg-3);
|
|
484
|
+
letter-spacing: var(--tr-caps); text-transform: uppercase;
|
|
485
|
+
padding: 0 0 var(--space-2);
|
|
486
|
+
}
|
|
487
|
+
.ds-context-group .row + .row { margin-top: 2px; }
|
|
477
488
|
|
|
478
489
|
/* ============================================================================
|
|
479
490
|
Cohesion sweep (gui-cohesion.js): one-product polish across surfaces.
|
package/dist/247420.css
CHANGED
|
@@ -744,8 +744,7 @@
|
|
|
744
744
|
align-items: center; gap: var(--space-4);
|
|
745
745
|
min-height: var(--app-topbar-h);
|
|
746
746
|
padding: 10px var(--pad-x);
|
|
747
|
-
background: color-mix(in oklab, var(--bg)
|
|
748
|
-
backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
|
|
747
|
+
background: color-mix(in oklab, var(--bg) 97%, transparent);
|
|
749
748
|
}
|
|
750
749
|
|
|
751
750
|
/* Merged chrome: when AppShell gets both a topbar and a crumb it wraps them
|
|
@@ -758,8 +757,7 @@
|
|
|
758
757
|
display: flex; flex-wrap: wrap; align-items: center;
|
|
759
758
|
gap: var(--space-2) var(--space-4);
|
|
760
759
|
padding: 8px var(--pad-x);
|
|
761
|
-
background: color-mix(in oklab, var(--bg)
|
|
762
|
-
backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
|
|
760
|
+
background: color-mix(in oklab, var(--bg) 97%, transparent);
|
|
763
761
|
}
|
|
764
762
|
.ds-247420 .app-chrome > .app-topbar,
|
|
765
763
|
.ds-247420 .app-chrome > .app-crumb {
|
|
@@ -1146,14 +1144,6 @@
|
|
|
1146
1144
|
transition: box-shadow var(--dur-base) var(--ease-spring), border-color var(--dur-snap) var(--ease),
|
|
1147
1145
|
transform var(--dur-base) var(--ease-spring);
|
|
1148
1146
|
}
|
|
1149
|
-
/* Vercel-style card lift: any panel sitting inside a density grid (trio/grid)
|
|
1150
|
-
gets a restrained hover escalation — the standalone/full-width panel stays
|
|
1151
|
-
flat so page chrome doesn't jitter on scroll-adjacent hover. */
|
|
1152
|
-
.ds-247420 .ds-panel-trio > .panel:hover, .ds-247420 .ds-panel-grid > .panel:hover {
|
|
1153
|
-
box-shadow: var(--shadow-2);
|
|
1154
|
-
border-color: var(--rule-strong);
|
|
1155
|
-
transform: translateY(-2px);
|
|
1156
|
-
}
|
|
1157
1147
|
/* Editorial accent spine — an opt-in printed-ink rule down the left edge that
|
|
1158
1148
|
reads as a magazine pull-quote bar, not a glow card. */
|
|
1159
1149
|
.ds-247420 .panel.panel-spine {
|
|
@@ -1166,7 +1156,7 @@
|
|
|
1166
1156
|
border-radius: var(--bw-chunk) 0 0 var(--bw-chunk);
|
|
1167
1157
|
}
|
|
1168
1158
|
.ds-247420 .panel.panel-inline { background: var(--bg-2); padding: var(--space-3) var(--space-3); }
|
|
1169
|
-
.ds-247420 .panel.panel-wide { background: transparent; box-shadow: none; }
|
|
1159
|
+
.ds-247420 .panel.panel-wide { background: transparent; box-shadow: none; border: none; }
|
|
1170
1160
|
.ds-247420 .panel-head {
|
|
1171
1161
|
display: flex; align-items: baseline; justify-content: space-between;
|
|
1172
1162
|
/* Shares the .panel-body 16px side padding so the caps label and the body
|
|
@@ -1627,8 +1617,9 @@
|
|
|
1627
1617
|
}
|
|
1628
1618
|
.ds-247420 .ds-barchart-fill {
|
|
1629
1619
|
height: 100%; width: var(--bar-pct, 0%);
|
|
1630
|
-
background: var(--
|
|
1620
|
+
background: var(--fg-3); border-radius: var(--r-pill);
|
|
1631
1621
|
}
|
|
1622
|
+
.ds-247420 .ds-barchart-fill.is-active { background: var(--accent); }
|
|
1632
1623
|
.ds-247420 .ds-barchart-value {
|
|
1633
1624
|
font-size: var(--fs-xs); font-weight: 600; color: var(--fg-3);
|
|
1634
1625
|
font-variant-numeric: tabular-nums;
|
|
@@ -2048,15 +2039,15 @@
|
|
|
2048
2039
|
.ds-247420 .ds-file-row:active { transform: translateY(1px); }
|
|
2049
2040
|
.ds-247420 .ds-file-row.active { background: var(--accent-tint); border-color: var(--accent); }
|
|
2050
2041
|
.ds-247420 .ds-file-row[data-file-type="dir"] { border-left-width: 3px; border-left-color: var(--accent); }
|
|
2051
|
-
.ds-247420 .ds-file-row[data-file-type="image"]
|
|
2052
|
-
.ds-247420 .ds-file-row[data-file-type="video"]
|
|
2053
|
-
.ds-247420 .ds-file-row[data-file-type="audio"]
|
|
2054
|
-
.ds-247420 .ds-file-row[data-file-type="code"]
|
|
2055
|
-
.ds-247420 .ds-file-row[data-file-type="text"]
|
|
2056
|
-
.ds-247420 .ds-file-row[data-file-type="archive"]
|
|
2057
|
-
.ds-247420 .ds-file-row[data-file-type="document"]
|
|
2058
|
-
.ds-247420 .ds-file-row[data-file-type="symlink"]
|
|
2059
|
-
.ds-247420 .ds-file-row[data-file-type="other"] { border-left-width: 3px; border-left-color: var(--
|
|
2042
|
+
.ds-247420 .ds-file-row[data-file-type="image"],
|
|
2043
|
+
.ds-247420 .ds-file-row[data-file-type="video"],
|
|
2044
|
+
.ds-247420 .ds-file-row[data-file-type="audio"],
|
|
2045
|
+
.ds-247420 .ds-file-row[data-file-type="code"],
|
|
2046
|
+
.ds-247420 .ds-file-row[data-file-type="text"],
|
|
2047
|
+
.ds-247420 .ds-file-row[data-file-type="archive"],
|
|
2048
|
+
.ds-247420 .ds-file-row[data-file-type="document"],
|
|
2049
|
+
.ds-247420 .ds-file-row[data-file-type="symlink"],
|
|
2050
|
+
.ds-247420 .ds-file-row[data-file-type="other"] { border-left-width: 3px; border-left-color: var(--rule); }
|
|
2060
2051
|
|
|
2061
2052
|
/* Row internals — these are the classes FileRow actually renders. */
|
|
2062
2053
|
.ds-247420 .ds-file-row .title {
|
|
@@ -2127,13 +2118,13 @@
|
|
|
2127
2118
|
transition: background var(--dur-snap) var(--ease), border-color var(--dur-snap) var(--ease);
|
|
2128
2119
|
}
|
|
2129
2120
|
.ds-247420 .is-marked > .ds-check-box,
|
|
2130
|
-
.ds-247420[aria-checked="true"] > .ds-check-box { background: var(--
|
|
2121
|
+
.ds-247420[aria-checked="true"] > .ds-check-box { background: var(--fg); border-color: var(--fg); }
|
|
2131
2122
|
.ds-247420 .is-marked > .ds-check-box::after,
|
|
2132
2123
|
.ds-247420[aria-checked="true"] > .ds-check-box::after {
|
|
2133
2124
|
content: ""; position: absolute; left: 4px; top: 1px; width: 4px; height: 8px;
|
|
2134
2125
|
border: solid var(--bg); border-width: 0 1.5px 1.5px 0; transform: rotate(45deg);
|
|
2135
2126
|
}
|
|
2136
|
-
.ds-247420[aria-checked="mixed"] > .ds-check-box { background: var(--
|
|
2127
|
+
.ds-247420[aria-checked="mixed"] > .ds-check-box { background: var(--fg); border-color: var(--fg); }
|
|
2137
2128
|
.ds-247420[aria-checked="mixed"] > .ds-check-box::after {
|
|
2138
2129
|
content: ""; position: absolute; left: 3px; right: 3px; top: 6px; height: 2px; background: var(--bg); border-radius: var(--r-hair);
|
|
2139
2130
|
}
|
|
@@ -2436,9 +2427,10 @@
|
|
|
2436
2427
|
}
|
|
2437
2428
|
.ds-247420 .ds-upload-fill {
|
|
2438
2429
|
display: block; height: 100%; width: 0;
|
|
2439
|
-
background: var(--
|
|
2430
|
+
background: var(--fg-3); border-radius: var(--r-pill);
|
|
2440
2431
|
transition: width var(--dur-base) var(--ease);
|
|
2441
2432
|
}
|
|
2433
|
+
.ds-247420 .ds-upload-fill.is-active { background: var(--accent); }
|
|
2442
2434
|
/* Indeterminate: percent is unknown mid-transfer (fetch gives no chunk-level
|
|
2443
2435
|
progress) — a sliding marquee bar reads as "working", not stuck at 0%. */
|
|
2444
2436
|
.ds-247420 .ds-upload-bar.indeterminate .ds-upload-fill {
|
|
@@ -2503,7 +2495,6 @@
|
|
|
2503
2495
|
max(var(--space-3), env(safe-area-inset-bottom))
|
|
2504
2496
|
max(var(--space-3), env(safe-area-inset-left));
|
|
2505
2497
|
background: color-mix(in oklab, var(--ink) 55%, transparent);
|
|
2506
|
-
backdrop-filter: blur(3px);
|
|
2507
2498
|
}
|
|
2508
2499
|
@media (prefers-reduced-motion: no-preference) {
|
|
2509
2500
|
.ds-247420 .ds-modal-backdrop { animation: ds-modal-fade var(--dur-base) var(--ease); }
|
|
@@ -2965,7 +2956,7 @@
|
|
|
2965
2956
|
}
|
|
2966
2957
|
.ds-247420 .chat-msg:hover .chat-image,
|
|
2967
2958
|
.ds-247420 .chat-image:hover {
|
|
2968
|
-
border-color:
|
|
2959
|
+
border-color: var(--rule);
|
|
2969
2960
|
}
|
|
2970
2961
|
.ds-247420 .chat-image img { display: block; width: 100%; height: auto; max-height: 360px; object-fit: cover; }
|
|
2971
2962
|
.ds-247420 .chat-image .cap,
|
|
@@ -2980,12 +2971,12 @@
|
|
|
2980
2971
|
max-width: min(100%, 360px);
|
|
2981
2972
|
transition: background var(--dur-snap, .15s) var(--ease, ease), border-color var(--dur-snap, .15s) var(--ease, ease);
|
|
2982
2973
|
}
|
|
2983
|
-
.ds-247420 .chat-file:hover { background: var(--bg-3);
|
|
2974
|
+
.ds-247420 .chat-file:hover { background: var(--bg-3); }
|
|
2984
2975
|
.ds-247420 .chat-file .glyph {
|
|
2985
2976
|
font-size: 22px; width: 36px; height: 36px;
|
|
2986
2977
|
display: inline-flex; align-items: center; justify-content: center;
|
|
2987
|
-
background:
|
|
2988
|
-
color: var(--
|
|
2978
|
+
background: var(--bg-3);
|
|
2979
|
+
color: var(--fg-2); border-radius: var(--r-0); flex-shrink: 0; font-family: var(--ff-mono);
|
|
2989
2980
|
}
|
|
2990
2981
|
.ds-247420 .chat-file > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
|
|
2991
2982
|
.ds-247420 .chat-file .name {
|
|
@@ -3006,7 +2997,7 @@
|
|
|
3006
2997
|
border-radius: var(--r-1); overflow: hidden; max-width: min(100%, 480px);
|
|
3007
2998
|
transition: box-shadow 0.12s ease, border-color 0.12s ease;
|
|
3008
2999
|
}
|
|
3009
|
-
.ds-247420 .chat-msg:hover .chat-pdf { border-color:
|
|
3000
|
+
.ds-247420 .chat-msg:hover .chat-pdf { border-color: var(--rule); }
|
|
3010
3001
|
.ds-247420 .chat-pdf-head {
|
|
3011
3002
|
display: flex; align-items: center; gap: 10px; padding: 10px 14px;
|
|
3012
3003
|
background: color-mix(in oklab, var(--fg) 5%, var(--bg-2));
|
|
@@ -3033,7 +3024,6 @@
|
|
|
3033
3024
|
.ds-247420 .chat-msg:hover .chat-link,
|
|
3034
3025
|
.ds-247420 .chat-link:hover {
|
|
3035
3026
|
background: var(--bg-3);
|
|
3036
|
-
border-color: color-mix(in oklab, var(--accent) 40%, transparent);
|
|
3037
3027
|
}
|
|
3038
3028
|
.ds-247420 .chat-link:not(:has(.thumb)):not(:has(img)) { grid-template-columns: 1fr; }
|
|
3039
3029
|
.ds-247420 .chat-link .thumb,
|
|
@@ -3066,7 +3056,7 @@
|
|
|
3066
3056
|
transition: background var(--dur-snap, .12s) var(--ease, ease), border-color var(--dur-snap, .12s) var(--ease, ease), transform 0.12s ease;
|
|
3067
3057
|
position: relative;
|
|
3068
3058
|
}
|
|
3069
|
-
.ds-247420 .chat-reactions .rxn:hover { background: var(--bg-3);
|
|
3059
|
+
.ds-247420 .chat-reactions .rxn:hover { background: var(--bg-3); transform: scale(1.06); }
|
|
3070
3060
|
.ds-247420 .chat-reactions .rxn.you {
|
|
3071
3061
|
background: color-mix(in oklab, var(--accent) 18%, var(--bg-2));
|
|
3072
3062
|
border-color: color-mix(in oklab, var(--accent) 55%, transparent);
|
|
@@ -3394,9 +3384,7 @@
|
|
|
3394
3384
|
|
|
3395
3385
|
/* Drag-over state */
|
|
3396
3386
|
.ds-247420 .drag-over {
|
|
3397
|
-
background: color-mix(in oklab, var(--accent) 12%, var(--bg));
|
|
3398
3387
|
border: 2px dashed var(--accent);
|
|
3399
|
-
box-shadow: inset 0 0 0 1px var(--accent);
|
|
3400
3388
|
}
|
|
3401
3389
|
|
|
3402
3390
|
/* Drag-ghost (semi-transparent dragging element) */
|
|
@@ -3452,7 +3440,7 @@
|
|
|
3452
3440
|
background: var(--bg-2);
|
|
3453
3441
|
border: 1px solid var(--rule);
|
|
3454
3442
|
border-radius: var(--r-2);
|
|
3455
|
-
box-shadow:
|
|
3443
|
+
box-shadow: var(--shadow-overlay);
|
|
3456
3444
|
min-width: 160px;
|
|
3457
3445
|
z-index: calc(var(--z-overlay, 1000) + 1);
|
|
3458
3446
|
padding: 4px 0;
|
|
@@ -3734,7 +3722,7 @@
|
|
|
3734
3722
|
/* Skip to main content link */
|
|
3735
3723
|
.ds-247420 .skip-to-main {
|
|
3736
3724
|
position: absolute; top: -40px; left: 0;
|
|
3737
|
-
background: var(--
|
|
3725
|
+
background: var(--fg); color: var(--bg);
|
|
3738
3726
|
padding: 8px 16px; border-radius: var(--r-1);
|
|
3739
3727
|
text-decoration: none; z-index: var(--z-overlay, 1000);
|
|
3740
3728
|
}
|
|
@@ -3822,25 +3810,6 @@
|
|
|
3822
3810
|
Empty State & Loading States
|
|
3823
3811
|
-------------------------------------------------------------- */
|
|
3824
3812
|
|
|
3825
|
-
.ds-247420 .empty-state {
|
|
3826
|
-
display: flex; flex-direction: column; align-items: center; gap: var(--space-4);
|
|
3827
|
-
padding: var(--space-8) var(--space-4);
|
|
3828
|
-
text-align: center; color: var(--fg-3);
|
|
3829
|
-
}
|
|
3830
|
-
.ds-247420 .empty-state--inline {
|
|
3831
|
-
flex-direction: row; align-items: center; gap: var(--space-2);
|
|
3832
|
-
padding: var(--space-2) 0; text-align: left;
|
|
3833
|
-
}
|
|
3834
|
-
.ds-247420 .empty-state-icon {
|
|
3835
|
-
font-size: 48px; opacity: 0.4;
|
|
3836
|
-
}
|
|
3837
|
-
.ds-247420 .empty-state-title {
|
|
3838
|
-
font-size: var(--fs-lg); font-weight: 600; color: var(--fg-2);
|
|
3839
|
-
}
|
|
3840
|
-
.ds-247420 .empty-state-body {
|
|
3841
|
-
font-size: var(--fs-sm); max-width: 40ch;
|
|
3842
|
-
}
|
|
3843
|
-
|
|
3844
3813
|
/* Skeleton loading state */
|
|
3845
3814
|
.ds-247420 .skeleton {
|
|
3846
3815
|
background: linear-gradient(
|
|
@@ -3874,7 +3843,7 @@
|
|
|
3874
3843
|
border-radius: var(--r-2);
|
|
3875
3844
|
padding: var(--space-3) var(--space-4);
|
|
3876
3845
|
max-width: 320px;
|
|
3877
|
-
box-shadow:
|
|
3846
|
+
box-shadow: var(--shadow-overlay);
|
|
3878
3847
|
z-index: calc(var(--z-overlay, 1000) + 10);
|
|
3879
3848
|
}
|
|
3880
3849
|
|
|
@@ -4621,7 +4590,8 @@
|
|
|
4621
4590
|
.ds-247420 .ds-bar-row { display: flex; align-items: center; gap: 8px; margin: 3px 0; font-size: var(--fs-tiny); }
|
|
4622
4591
|
.ds-247420 .ds-bar-row-label { width: 100px; flex-shrink: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
4623
4592
|
.ds-247420 .ds-bar-bg { flex: 1; min-width: 60px; background: var(--bg-3); border-radius: var(--r-hair); height: 6px; overflow: hidden; }
|
|
4624
|
-
.ds-247420 .ds-bar-fill { background: var(--
|
|
4593
|
+
.ds-247420 .ds-bar-fill { background: var(--fg-3); height: 100%; border-radius: var(--r-hair); }
|
|
4594
|
+
.ds-247420 .ds-bar-fill.is-active { background: var(--accent); }
|
|
4625
4595
|
.ds-247420 .ds-bar-row-value { flex-shrink: 0; color: var(--fg-2); max-width: 40%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
4626
4596
|
@media (max-width: 400px) {
|
|
4627
4597
|
.ds-247420 .ds-bar-row-label { width: 72px; }
|
|
@@ -4734,13 +4704,6 @@
|
|
|
4734
4704
|
@media (max-width: 760px) {
|
|
4735
4705
|
.ds-247420 .ds-panel-duo { grid-template-columns: 1fr; }
|
|
4736
4706
|
}
|
|
4737
|
-
/* Wide-viewport density: auto-fit grid so panel COUNT tracks actual children
|
|
4738
|
-
instead of a hardcoded column number — 2 children sit 2-up, 5 wrap to a
|
|
4739
|
-
third row, never an arbitrary 3-card reflex (same auto-fit/minmax pattern
|
|
4740
|
-
as .ds-tile-grid). Panels floor at 280px before wrapping, so ultra-wide
|
|
4741
|
-
screens still get more columns than a fixed repeat(3, ...) ever allowed. */
|
|
4742
|
-
.ds-247420 .ds-panel-trio { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); gap: var(--space-2); margin: var(--space-2) 0; }
|
|
4743
|
-
.ds-247420 .ds-panel-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: var(--space-2); margin: var(--space-2) 0; }
|
|
4744
4707
|
/* wide dense rows/tables scroll inside their panel, never the page */
|
|
4745
4708
|
.ds-247420 .ds-scroll-x { overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }
|
|
4746
4709
|
|
|
@@ -7148,7 +7111,7 @@
|
|
|
7148
7111
|
.ds-247420 .ds-session-agent { font-size: var(--fs-tiny); color: var(--fg-3); }
|
|
7149
7112
|
/* New-activity cue is a hollow accent RING so it stays shape-distinct from the
|
|
7150
7113
|
running live disc (a solid pulsing accent dot) for colour-blind / reduced-motion users. */
|
|
7151
|
-
.ds-247420 .ds-session-unread { width: 8px; height: 8px; border-radius: 50%; background:
|
|
7114
|
+
.ds-247420 .ds-session-unread { width: 8px; height: 8px; border-radius: 50%; background: var(--fg-2); display: inline-block; }
|
|
7152
7115
|
.ds-247420 .ds-session-state { padding: var(--space-5) var(--space-3); text-align: center; color: var(--fg-3); font-size: var(--fs-sm); }
|
|
7153
7116
|
.ds-247420 .ds-session-state-error { color: var(--flame); }
|
|
7154
7117
|
|
|
@@ -7204,6 +7167,17 @@
|
|
|
7204
7167
|
.ds-247420 .ds-context .row .meta { font-family: var(--ff-mono); font-size: var(--fs-xs); color: var(--fg-2); }
|
|
7205
7168
|
.ds-247420 .ds-context .row .sub { font-size: var(--fs-xs); color: var(--fg-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
7206
7169
|
.ds-247420 .ds-context-actions { display: flex; gap: var(--space-2); }
|
|
7170
|
+
/* Lighter fact groups for secondary context blocks (conversation/last turn/
|
|
7171
|
+
recent files): a small caps label + Row list with no card chrome, so a
|
|
7172
|
+
2-row fact doesn't compete visually with the primary bordered panel above
|
|
7173
|
+
it. Separated from neighbors by a hairline rule, not a border box. */
|
|
7174
|
+
.ds-247420 .ds-context-group { padding-top: var(--space-3); border-top: var(--bw-hair) solid var(--rule); }
|
|
7175
|
+
.ds-247420 .ds-context-group-label {
|
|
7176
|
+
font-size: var(--fs-tiny); font-weight: 600; color: var(--fg-3);
|
|
7177
|
+
letter-spacing: var(--tr-caps); text-transform: uppercase;
|
|
7178
|
+
padding: 0 0 var(--space-2);
|
|
7179
|
+
}
|
|
7180
|
+
.ds-247420 .ds-context-group .row + .row { margin-top: 2px; }
|
|
7207
7181
|
|
|
7208
7182
|
/* ============================================================================
|
|
7209
7183
|
Cohesion sweep (gui-cohesion.js): one-product polish across surfaces.
|