fix(cards): Editor an Karte und Konto koppeln (Neue Karte, Abmelden, Kontowechsel)

- Editor zeigt „Bearbeitet: <Name>“, solange eine gespeicherte Karte gebunden ist,
  und bietet „Neue Karte“ (setzt zurück, bricht Laden ab, entfernt ?karte=;
  fragt bei ungespeicherten Änderungen per eigenem Dialog „Verwerfen?“)
- EditorState.savedConfig als Vergleichsbasis für ungespeicherte Änderungen
- bindEditorToAuth: Abmelden leert den Editor, Kontowechsel A -> B entkoppelt die
  Karte (Entwurf bleibt), Anmelden ohne Vorgänger und abgelaufene Sitzung behalten
  den Entwurf; auth.onLogout unterscheidet eigenes Abmelden von bemerktem Ablauf
- Speichern nimmt den Schnappschuss pro Klick (auch für die Wiederholung nach 401)
- save: row_not_found beim Update legt eine neue Karte an (inkl. Aufräumen)
- Karten-Seite: Editor-Abgleich auch nach dem Verlassen der Seite, Löschen-Dialog
  wird beim Verlassen geschlossen, keine doppelten Vorschau-URLs
- confirm-dialog als gemeinsames Modul (Löschen, Verwerfen)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Opus 5.5 committed 2026-10-04 09:32:19 +00:00
1 parent ba4d9f76d4
commit 38b361ad7a
20 files changed
+1038 -116

No files matched your search

+42
View File
@@ -0,0 +1,42 @@
/* Bestätigungsdialog (Löschen, Verwerfen). Knöpfe kommen aus account.css (.auth-btn). */
.confirm-dialog {
width: min(400px, calc(100vw - 32px));
padding: 0;
border: 1px solid var(--line-strong);
border-radius: 20px;
background: var(--panel);
color: var(--text);
box-shadow: 0 24px 80px rgb(0 0 0 / 0.55);
}
.confirm-dialog::backdrop {
background: rgb(6 11 20 / 0.72);
}
.confirm-card {
padding: 24px;
}
.confirm-title {
margin: 0 0 8px;
font-size: 1.25rem;
line-height: 1.25;
overflow-wrap: anywhere;
}
.confirm-text {
margin: 0 0 20px;
color: var(--muted);
}
.confirm-title + .confirm-actions {
margin-top: 12px; /* ohne Text unter dem Titel */
}
.confirm-actions {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
gap: 10px;
}