A contiguous run of drawings on the left commonly maps to a contiguous set of
rows on the right, so make that a single gesture.
- Left tree: ctrl/cmd-click toggles a source file into a multi-selection,
shift-click ranges from the anchor, ctrl-shift-click adds a range (over the
visible file order). Selected files get a highlight and drag together, in
top-to-bottom order. A plain click still previews.
- By-tracking grid: dropping N dragged files onto a placeholder row fills the N
consecutive placeholder rows from there (file[i] → row[i], Excel-style column
fill). Drops are now handled at the grid-container level so the dragover shows
a live indicator outlining EXACTLY the rows that will be updated
(.tg-fill-target). Dropping over empty space / a file row still just adds the
files as new rows. Fill walks the rows in DOM (display) order and looks each
worklist row up by id from the model, so a re-render between binds can't
disturb the loop.
Test: a 3-file drop on the first of three placeholders fills m1/m2/m3 in order
and consumes all three placeholders. 70 classify green.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>