diff --git a/packages/web/src/App.svelte b/packages/web/src/App.svelte
index e6cf446..36cf080 100644
--- a/packages/web/src/App.svelte
+++ b/packages/web/src/App.svelte
@@ -140,6 +140,22 @@
}
/** Map a typed card name to its id (case-insensitive). */
+ /** Suggest-as-you-type pool for the card-naming field, tuned per card. */
+ const nameSuggestions = $derived.by(() => {
+ if (!selectedCard) return [];
+ const pool = allCardDefs().filter(
+ (d) => (d.set === "basic" || d.set === "expansion1") && (d.quantity ?? 0) > 0,
+ );
+ let picks = pool;
+ if (selectedCard.cardId === "illusionary-attack") {
+ picks = pool.filter((d) => d.cardType === "attack");
+ } else if (selectedCard.cardId === "drop-object") {
+ picks = pool.filter((d) => isMovableObject(d.id));
+ }
+ const names = picks.map((d) => d.name).sort();
+ return selectedCard.cardId === "drop-object" ? ["Treasure", ...names] : names;
+ });
+
function nameToCardId(name: string): string | null {
const wanted = name.trim().toLowerCase();
if (!wanted) return null;
@@ -1095,7 +1111,10 @@
{pendingSectorFrom ? "— now the destination area" : "— click the sector to move"}
{/if}
{#if selectedCard && NAMED_CARDS.has(selectedCard.cardId)}
-
+
+
{#if selectedCard.cardId === "deja-vu"}