feat(frontend): review-status filter, badge, and review toggles
deploy / deploy (push) Successful in 1m28s

FilterBar gains an Any/Needs review/Reviewed segment (r=1/r=0 token);
FileCard shows a "needs review" dot; FileViewer gets a header toggle that
propagates back to the grid; SelectionBar gains a bulk "Mark reviewed"
action. Adds a --color-success theme token.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-15 21:17:11 +03:00
parent 5bb53d7f9d
commit a864ca4f7b
7 changed files with 161 additions and 3 deletions
@@ -4,10 +4,11 @@
interface Props {
onEditTags: () => void;
onAddToPool: () => void;
onMarkReviewed: () => void;
onDelete: () => void;
}
let { onEditTags, onAddToPool, onDelete }: Props = $props();
let { onEditTags, onAddToPool, onMarkReviewed, onDelete }: Props = $props();
</script>
<div class="bar" role="toolbar" aria-label="Selection actions">
@@ -37,6 +38,7 @@
<button class="action edit-tags" onclick={onEditTags}>Edit tags</button>
<button class="action add-pool" onclick={onAddToPool}>Add to pool</button>
<button class="action mark-reviewed" onclick={onMarkReviewed}>Mark reviewed</button>
<button class="action delete" onclick={onDelete}>Delete</button>
</div>
</div>
@@ -140,6 +142,14 @@
background-color: color-mix(in srgb, var(--color-warning) 15%, transparent);
}
.mark-reviewed {
color: var(--color-success);
}
.mark-reviewed:hover {
background-color: color-mix(in srgb, var(--color-success) 15%, transparent);
}
.delete {
color: var(--color-danger);
}