+ {/* List semantics over the virtualized window: the container is one
+ list, each windowed item (month label or card row) one list item —
+ honest for a windowed structure where per-document posinset would
+ lie whenever pages are still loading. Keyboard contract on the
+ grid: arrows move the roving slot, Enter opens, Space selects,
+ Delete removes (undo-able), documented on the cards. */}
+
))}
diff --git a/src/components/documents/documents-view.tsx b/src/components/documents/documents-view.tsx
index df779d810..e5a3ef44c 100644
--- a/src/components/documents/documents-view.tsx
+++ b/src/components/documents/documents-view.tsx
@@ -577,6 +577,7 @@ export function DocumentsView() {
selectedIds={selectedIds}
onToggleSelected={toggleSelected}
onOpen={openDetail}
+ onDelete={(id) => deleteBulk([id])}
highlightId={upload.highlightId}
onPrefetch={prefetchDetail}
/>