feat: bulk multi-select + drag in PlaylistDetail, Favorites, and artist context menu (#157)

- PlaylistDetail: Ctrl/Cmd+Click enters select mode; bulk drag emits
  { type: 'songs', tracks } when ≥2 selected; filtered-view rows now
  also draggable as single songs
- Favorites songs: full multi-select system — Ctrl+Click, Shift+Click,
  header toggle-all checkbox, bulk-selected highlight, bulk drag to
  queue, bulk-bar with Add to Playlist + Clear
- ContextMenu: ArtistToPlaylistSubmenu resolves all artist album songs
  and forwards to AddToPlaylistSubmenu
- Locale: common.clearSelection + playlists.addSelected in all 7 locales

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Psychotoxical
2026-04-12 12:29:39 +02:00
parent 2dd993257a
commit 600af0e527
12 changed files with 276 additions and 23 deletions
+13 -1
View File
@@ -6187,7 +6187,7 @@ html.no-compositing .fs-lyrics-rail {
.playlist-search-row {
display: grid;
grid-template-columns: 36px 1fr auto 52px 28px;
grid-template-columns: 18px 36px 1fr auto 52px 28px;
align-items: center;
gap: var(--space-2);
padding: 3px var(--space-1);
@@ -6199,6 +6199,18 @@ html.no-compositing .fs-lyrics-rail {
background: var(--bg-hover);
}
.playlist-search-row--selected {
background: color-mix(in srgb, var(--accent) 10%, transparent);
}
.playlist-search-checkbox {
width: 14px;
height: 14px;
accent-color: var(--accent);
cursor: pointer;
flex-shrink: 0;
}
.playlist-search-thumb {
width: 36px;
height: 36px;