feat(sidebar): multi-level playlist folders with tree and navigation views (#2017)

Group playlists into folders using a configurable separator (default '/').
Three view modes:
- Single: first-level grouping only (original behavior)
- Tree: full recursive nesting with connecting lines (configurable indent and line color)
- Navigation: drill-down view with stacked breadcrumb chain

Folders are sorted before playlists at every level. New settings render as
indented sub-options under the master 'Enable folders' toggle.
This commit is contained in:
Shawn
2026-05-13 20:07:45 -04:00
committed by GitHub
parent ffe59b2c78
commit 27a62a2a02
10 changed files with 1005 additions and 29 deletions
+4
View File
@@ -34,6 +34,8 @@ import {
LuChevronLast,
LuChevronLeft,
LuChevronRight,
LuChevronsDownUp,
LuChevronsUpDown,
LuChevronUp,
LuCircle,
LuCircleCheck,
@@ -250,6 +252,7 @@ export const AppIcon = {
check: LuCheck,
circle: LuCircle,
clipboardCopy: LuClipboardCopy,
collapseAll: LuChevronsDownUp,
collection: LuPackage2,
delete: LuTrash,
disc: LuDisc,
@@ -269,6 +272,7 @@ export const AppIcon = {
emptySongImage: LuMusic,
error: LuShieldAlert,
expand: LuExpand,
expandAll: LuChevronsUpDown,
externalLink: LuExternalLink,
favorite: LuHeart,
fileJson: LuFileJson,