diff --git a/src/lib/components/pokedex/PokedexViewBoxes.svelte b/src/lib/components/pokedex/PokedexViewBoxes.svelte
index f7d6837..0ace37e 100644
--- a/src/lib/components/pokedex/PokedexViewBoxes.svelte
+++ b/src/lib/components/pokedex/PokedexViewBoxes.svelte
@@ -25,6 +25,17 @@
let filterInHome = false;
let filterNotInHome = false;
+ // Bulk actions menu state (one open menu at a time)
+ let openBulkMenuForBox: number | null = null;
+
+ onMount(() => {
+ const close = () => {
+ openBulkMenuForBox = null;
+ };
+ window.addEventListener('click', close);
+ return () => window.removeEventListener('click', close);
+ });
+
let filteredCombinedData: CombinedData[] = [];
let filteredTotal = 0;
let overallTotal = 0;
@@ -335,23 +346,94 @@
style="--boxes-per-row: {boxesPerRow}; --cell-padding: {cellPaddingRem}rem; --sprite-size: {spriteSizePx}px;"
>
{#each boxNumbers as boxNumber}
+ {@const bulkMenuId = `box-${boxNumber}-bulk-menu`}
-
Box {boxNumber}
-
-
-
-
-
+
+
Box {boxNumber}
+
+
+
+ {#if openBulkMenuForBox === boxNumber}
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+ {/if}
+
+
{#each combinedData as { pokedexEntry, catchRecord }, index}
{@const placement = calculateBoxPlacement(index)}