Files
deepseek-harness/packages/experimental/client-ui-forge/src/client/ChangedFiles.module.css
T
Yichen Jiang a39bcaec12 feat(forge-panel): overlay GitHub review threads on the changes view
Threads read at the shown head sit under the row of their last line, or
after the collapsed lines that hold it; resolved threads fold into one
row, file threads open their file, and outdated threads gather after the
lines with the end of their recorded hunk and the file at the commit
they were written on. Chosen commits place only new-side threads whose
lines number the last chosen commit.

The file tree and file headers count unresolved threads, and a thread
list filters unresolved, outdated, resolved, and awaiting-my-reply
threads by file and opens each at its place. A thread offers only Add to
input, which quotes the whole thread, and View on GitHub.
2026-11-07 14:28:39 +08:00

22 lines
2.1 KiB
CSS

/* The same directory rows fit a portal menu and the changes pane's navigation column. */
.root { box-sizing: border-box; width: 100%; min-width: 0; display: flex; flex-direction: column; min-height: 0; color: var(--dsw-alias-label-primary); font-size: 12px; }
.search { padding: 8px; }
.rows { overflow: auto; min-height: 0; padding: 0 4px 6px; }
.row { box-sizing: border-box; display: flex; align-items: center; gap: 6px; width: 100%; min-width: 0; min-height: 30px; padding: 4px 6px; border: 0; border-radius: var(--dsw-radius-sm); background: transparent; color: inherit; font: inherit; text-align: start; cursor: pointer; }
.row svg { flex: none; }
.name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Unresolved host review threads of a file, in the thread count chip treatment of the file header. */
.threads { flex: none; min-width: 16px; padding: 0 5px; box-sizing: border-box; border-radius: var(--dsw-radius-xs); background: color-mix(in srgb, var(--dsw-alias-state-business-primary) 12%, transparent); color: var(--dsw-alias-state-business-primary); font-size: 11px; line-height: 16px; text-align: center; }
.selected { background: var(--dsw-alias-interactive-bg-hover); }
.chevron { display: inline-flex; flex: 0 0 12px; }
.collapsed { transform: rotate(-90deg); }
.empty { padding: 12px 8px; color: var(--dsw-alias-label-secondary); }
.menu { width: min(360px, calc(100vw - 24px)); }
.trigger { display: inline-flex; align-items: center; gap: 4px; height: 28px; padding: 0 8px; border: 0; border-radius: var(--dsw-radius-sm); background: transparent; color: var(--dsw-alias-label-primary); font: inherit; white-space: nowrap; cursor: pointer; }
.trigger:disabled { color: var(--dsw-alias-label-tertiary); cursor: default; }
@media (hover: hover) { .row:hover, .trigger:hover:not(:disabled) { background: var(--dsw-alias-interactive-bg-hover); } }
@media (pointer: coarse) { .row { min-height: 44px; } .search input { font-size: 16px; } }
.searchInput { box-sizing: border-box; width: 100%; max-width: 100%; }
.searchInput input::placeholder { color: var(--dsw-alias-label-secondary); }