From 62e8ba7892dba5249025ccc3a026de0cb73e02dc Mon Sep 17 00:00:00 2001
From: vicrodh <103399283+vicrodh@users.noreply.github.com>
Date: Mon, 2 Feb 2026 10:50:02 -0600
Subject: [PATCH] feat(genre): 3-level hierarchy with collapsible tree and
search
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Store changes:
- Load all 3 levels of genres (parent → child → grandchild)
- Add genreTree for hierarchical structure
- getAllDescendantIds() for cascade selection
- setGenresSelected() for batch operations
Popup changes:
- Advanced view with collapsible tree structure
- Search box filters and auto-expands matching nodes
- Click parent checkbox selects/deselects all descendants
- Partial selection shows indeterminate state
- Expanded size: 630px wide, 700px tall
- Descendant count badges on expandable nodes
---
src/lib/components/GenreFilterPopup.svelte | 508 ++++++++++++++-------
src/lib/stores/genreFilterStore.ts | 140 ++++--
2 files changed, 445 insertions(+), 203 deletions(-)
diff --git a/src/lib/components/GenreFilterPopup.svelte b/src/lib/components/GenreFilterPopup.svelte
index 29f75c216..cb13081ab 100644
--- a/src/lib/components/GenreFilterPopup.svelte
+++ b/src/lib/components/GenreFilterPopup.svelte
@@ -1,16 +1,19 @@