JonKazama-Hellion
17eac64683
fix(layout): geblurrtes Board wieder verschiebbar (Drag-Handle ueber Blur-Overlay)
...
Das .board-blur-overlay (position:absolute; inset:0; z-index:5) lag im geblurrten
Zustand ueber dem Drag-Handle und schluckte den pointerdown, sodass ein geblurrtes
Board nicht mehr per Handle verschoben werden konnte (stattdessen enthuellte der Klick
es). Der Handle bekommt jetzt position:relative + z-index:6 und liegt damit ueber dem
Overlay; Drag funktioniert, Klick auf den Rest des Boards enthuellt weiterhin.
2026-06-14 19:51:32 +02:00
JonKazama-Hellion
1d17f4d11f
fix(layout): Board-Handle-Klick ohne Bewegung ueberschreibt board.pos nicht mehr
...
Ein reiner Klick/Tap auf den Drag-Handle (ohne echtes Verschieben) hat in onUp den
gegen die Viewport geclampten --board-x/y-Wert zurueckgelesen und als board.pos
persistiert. Bei einem off-screen geclampten Board (nach Fenster-Verkleinerung oder
Import von breiterem Screen) zerstoerte das die wahre Position. Jetzt zaehlt erst eine
Bewegung > 3px als Drag; ohne Bewegung bleibt board.pos unangetastet.
2026-06-14 19:51:15 +02:00
JonKazama-Hellion
5b18bed9b5
chore: bump version to 2.3.0 across all bump targets
2026-06-14 15:20:07 +02:00
JonKazama-Hellion
70f3f705b4
fix(layout): Phase-5-Review — off-screen-Clamp, Drag-Cleanup, Blur-Position, Import-pos
...
- Render + neuer debounced Resize-Handler clampen --board-x/y gegen den
aktuellen Viewport: ein auf breiterem Fenster platziertes Board rendert
nie mehr off-screen (und damit per Drag unerreichbar). board.pos bleibt
unveraendert, bei spaeterer Verbreiterung wird die Originalposition erreicht.
- drag.js: cleanup() + pointercancel-Listener. Die Klasse .board.dragging
klebte bei Touch-Interrupt/Browser-Geste sonst dauerhaft und legte den
app.js-Sync-Guard (Quick-Save-Render) still.
- main.css: '.board.blurred { position: relative }' entfernt — lag im
utilities-Layer und schlug das absolute Free-Layout (geblurrtes Board fiel
aus seiner Position + war nicht mehr drag-bar).
- data.js: board.pos wird beim JSON-Import durchgereicht (safePos-Validierung
via Number.isFinite), sonst Verlust des frei gesetzten Layouts beim Restore.
2026-06-14 15:16:51 +02:00
JonKazama-Hellion
1d9e9dab81
Freies Layout: Mobil-Reset (<=768/480px) auf gestapeltes Layout, ungeschichtet
2026-06-14 14:59:10 +02:00
JonKazama-Hellion
8401535900
Freies Layout: Board-Drag als Free-Move neu (widgets.js-Vorbild), .board.dragging auf z-index umgewidmet, Reorder-CSS (placeholder/ghost) raus
2026-06-14 14:58:08 +02:00
JonKazama-Hellion
390a9b2f94
Freies Layout: board.pos-Migration aus Auto-Raster, Position als --board-x/y beim Render
2026-06-14 14:55:05 +02:00
JonKazama-Hellion
dcc015abd2
Freies Layout: .board absolut via --board-x/--board-y (components-Layer, kein Inline-Style)
2026-06-14 14:53:09 +02:00
JonKazama-Hellion
456be8ba26
Freies Layout: .boards-wrapper auf absolute Kinder vorbereiten (layout-Layer)
2026-06-14 14:52:44 +02:00
JonKazama-Hellion
767c7c80aa
fix(quick-save): Drain-Trailing-Re-Run gegen verworfene onChanged waehrend laufendem Drain (Latenz, kein Verlust)
2026-06-14 14:29:47 +02:00
JonKazama-Hellion
43403bc755
fix(quick-save): Pending-Queue-Redesign (Blocker 2b) — Worker schreibt eigenen 'quicksave_pending'-Key statt boards, Seite drained in die Inbox; getrennte Schreib-Domaenen, kein boards-Clobber
2026-06-14 14:27:31 +02:00
JonKazama-Hellion
4897781848
fix(quick-save): Opera-Worker — interne-URL-Filter, kurzer Fehler-Badge, Re-Entry-Schutz gegen Lost-Update
2026-06-14 14:17:46 +02:00
JonKazama-Hellion
5feadcc90c
fix(quick-save): Firefox-importScripts-Guard (Event-Page), Sync-Guard auf reale Overlay/Drag-Klassen, Worker-Serialisierung + interne-URL-Filter + kurzer Fehler-Badge
2026-06-14 14:14:31 +02:00
JonKazama-Hellion
f473697fb2
fix(backup): Papierkorb (trash) auch im Backup-Reminder-Export, konsistent zum Settings-Export
2026-06-14 10:30:08 +02:00
JonKazama-Hellion
9383726198
feat(quick-save): Live-Sync via chrome.storage.onChanged in app.js (boards neu laden + renderBoards)
2026-06-14 10:28:29 +02:00
JonKazama-Hellion
7d390792ea
feat(quick-save): Opera-Worker additiv um onCommand + importScripts ergaenzt, Redirect unberuehrt (CRLF)
2026-06-14 10:26:29 +02:00
JonKazama-Hellion
17506011c1
feat(quick-save): background.js fuer Chrome-Worker + Firefox-Event-Page, read-modify-write in Inbox, Badge-Bestaetigung
2026-06-14 10:24:06 +02:00
JonKazama-Hellion
83df926979
fix(trash): Daten-Review-Befunde — Import-Cap nach deletedAt sortiert (Verlust-Schutz), Restore-Doppelklick-Guard, Delete-Rollback bei Save-Fehler, NaN/Null-Haertung
2026-06-14 10:18:10 +02:00
JonKazama-Hellion
9800e6c949
fix(trash): Papierkorb-Eintrag als vertikale Karte, kompaktere Aktions-Buttons (UX im 380px-Panel)
2026-06-14 10:11:43 +02:00
JonKazama-Hellion
ba5f5c4978
v2.3 Papierkorb: Export/Import um trash erweitern (defensiv validiert)
2026-06-14 10:02:31 +02:00
JonKazama-Hellion
22203d25a7
v2.3 Papierkorb: renderTrash, Wiederherstellen, endgueltig loeschen, leeren
2026-06-14 09:59:44 +02:00
JonKazama-Hellion
da5d8faafa
v2.3 Papierkorb: CSS fuer die Papierkorb-Liste (components-Layer)
2026-06-14 09:55:01 +02:00
JonKazama-Hellion
4031b429ad
v2.3 Papierkorb: i18n-Keys DE und EN
2026-06-14 09:51:57 +02:00
JonKazama-Hellion
62c1ecab8d
v2.3 Papierkorb: Inbox-Board ist nicht loeschbar (kein Delete-Button)
2026-06-14 09:48:41 +02:00
JonKazama-Hellion
061c3708bc
v2.3 Papierkorb: Board-Loeschen in den Papierkorb umleiten (Confirm bleibt)
2026-06-14 09:48:06 +02:00
JonKazama-Hellion
9abfefc0e0
v2.3 Papierkorb: Bookmark-Loeschen in den Papierkorb umleiten
2026-06-14 09:47:40 +02:00
JonKazama-Hellion
36d917b420
v2.3 Papierkorb: pushToTrash() mit Klon und harter Obergrenze
2026-06-14 09:44:43 +02:00
JonKazama-Hellion
fcaea64604
fix(palette): Review-Befunde — Close-Crash-Guard, Self-Block-Race, ARIA-Combobox, URL-Protokoll-Guard
2026-06-14 09:42:00 +02:00
JonKazama-Hellion
6eaa3457d0
v2.3 Papierkorb: Trash-Konstanten und Auto-Cleanup beim Laden
2026-06-14 09:33:47 +02:00
JonKazama-Hellion
091195cdef
v2.3: persistenter Header-Trigger fuer die Strg+K-Palette (Entdeckbarkeit, BS-08)
2026-06-14 09:26:22 +02:00
JonKazama-Hellion
b5b0ac3471
v2.3: Onboarding-Slide fuer die Strg+K-Palette (Entdeckbarkeit, BS-08)
2026-06-14 09:25:05 +02:00
JonKazama-Hellion
7b16db96b9
style: Command-Palette-Overlay in @layer components
2026-06-14 09:20:51 +02:00
JonKazama-Hellion
3872f4cf12
feat: initPalette() im App-Init nach initSearch() verdrahten
2026-06-14 09:20:04 +02:00
JonKazama-Hellion
42860bb95d
feat: Command-Palette-Modul (Strg+K, read-only Bookmark-Suche)
2026-06-14 09:15:21 +02:00
JonKazama-Hellion
6a27d9b307
i18n: Keys fuer Command-Palette (DE+EN)
2026-06-14 09:12:49 +02:00
JonKazama-Hellion
c96922d1bb
v2.3: page-seitiger ensureInboxBoard-Wrapper auf quicksave-core
2026-06-14 09:03:31 +02:00
JonKazama-Hellion
2daccf4ecc
v2.3: trash als eigener Store-Key + saveTrash, in init geladen
2026-06-14 08:35:27 +02:00
JonKazama-Hellion
ecb44facb5
v2.3: uid-Single-Source in quicksave-core, state.js delegiert
2026-06-14 08:03:18 +02:00
JonKazama-Hellion
e1fb580525
v2.3: DOM-freies quicksave-core mit uid/ensureInbox/normalizeBookmark
2026-06-14 07:31:15 +02:00
JonKazama-Hellion
cbd8b5e6fb
Bump export version string to 2.2.0 (app.js backup export, data.js JSON export)
2026-06-13 21:17:58 +02:00
JonKazama-Hellion
55e371f506
fix(a11y): Dialog-Vorrang in Fokusfalle, eindeutige Dialog-IDs, Bookmark nur Enter
...
- settings.js: _makeTrap bricht ab, wenn ein .dialog-overlay offen ist, damit
der Dialog-keydown-Handler Escape/Tab allein behandelt (kein Doppelschluss,
Fokusfalle bleibt dicht)
- dialog.js: aria-labelledby/-describedby zeigen auf instanz-eindeutige IDs
(Date.now + Modul-Zaehler) statt feste dialogTitle/dialogBody, damit kurz
gestapelte Dialoge dem Screenreader nicht den falschen Titel liefern
- boards.js: Bookmark-keydown reagiert bei role=link nur noch auf Enter, Space
entfernt (Space ist Button-Semantik)
2026-06-13 21:11:49 +02:00
JonKazama-Hellion
eda5fba8f3
a11y(i18n): data-i18n-aria-label-Hook plus DE/EN-Keys fuer die 11 Theme-Cards
2026-06-13 21:02:59 +02:00
JonKazama-Hellion
f2e078b593
a11y(focus): getoenter :focus-visible-Ring im utilities-Layer schlaegt die outline:none-Regeln
2026-06-13 21:02:15 +02:00
JonKazama-Hellion
80af8df8b0
a11y(bookmarks): li als role=link mit tabindex und Enter-Delegation, Drag/Delegation unberuehrt
2026-06-13 21:01:47 +02:00
JonKazama-Hellion
3e93efb785
a11y(toggles): native Checkboxen als role=switch mit synchron gepflegtem aria-checked
2026-06-13 21:00:59 +02:00
JonKazama-Hellion
02c36dba09
a11y(theme-picker): Cards als role=button mit tabindex, Enter/Space-Handler und gepflegtem aria-pressed
2026-06-13 21:00:21 +02:00
JonKazama-Hellion
085cca2812
a11y(dialog): ARIA-Rolle, Fokus-Falle und Fokus-Rueckgabe ergaenzt ohne Escape/Initial-Fokus zu doppeln
2026-06-13 20:59:39 +02:00
JonKazama-Hellion
0a93340792
a11y(modals): role=dialog + Fokus-Falle und -Rueckgabe fuer Settings und Theme-Picker
2026-06-13 20:58:42 +02:00
JonKazama-Hellion
87cd070beb
refactor(view-transitions): zentralen withViewTransition-Helper in state.js, Duplikate entfernt
2026-06-13 20:42:07 +02:00
JonKazama-Hellion
6004203339
feat(boards): Inline-Modals (Add-Board/Add-Bookmark/Rename) mit View-Transition-Fade
2026-06-13 20:32:23 +02:00