From e1fb58052506b0a4357a4893387e9a849cf9918c Mon Sep 17 00:00:00 2001 From: Jon Kazama Date: Sun, 14 Jun 2026 07:31:15 +0200 Subject: [PATCH 01/52] v2.3: DOM-freies quicksave-core mit uid/ensureInbox/normalizeBookmark --- newtab.html | 1 + src/js/quicksave-core.js | 57 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 src/js/quicksave-core.js diff --git a/newtab.html b/newtab.html index 781ee9c..dcec5af 100644 --- a/newtab.html +++ b/newtab.html @@ -492,6 +492,7 @@ + diff --git a/src/js/quicksave-core.js b/src/js/quicksave-core.js new file mode 100644 index 0000000..00706a1 --- /dev/null +++ b/src/js/quicksave-core.js @@ -0,0 +1,57 @@ +/* ============================================= + HELLION NEWTAB — quicksave-core.js + DOM-freie geteilte Helfer fuer Seite UND Background-Worker. + Laeuft als + From 3872f4cf12f574655a21517e14e519c1dd56027b Mon Sep 17 00:00:00 2001 From: Jon Kazama Date: Sun, 14 Jun 2026 09:20:04 +0200 Subject: [PATCH 08/52] feat: initPalette() im App-Init nach initSearch() verdrahten --- src/js/app.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/js/app.js b/src/js/app.js index d27521c..efbec4c 100644 --- a/src/js/app.js +++ b/src/js/app.js @@ -19,6 +19,7 @@ async function init() { bindGlobalEvents(); bindSettingsEvents(); initSearch(); + initPalette(); await migrateSticky(); await Notes.init(); await Calculator.init(); From 7b16db96b9ed9b93e1af670ab869a9c522771656 Mon Sep 17 00:00:00 2001 From: Jon Kazama Date: Sun, 14 Jun 2026 09:20:51 +0200 Subject: [PATCH 09/52] style: Command-Palette-Overlay in @layer components --- src/css/main.css | 72 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/src/css/main.css b/src/css/main.css index 2a6cae0..8de3176 100644 --- a/src/css/main.css +++ b/src/css/main.css @@ -2354,6 +2354,78 @@ body.show-desc .bm-desc { display: block; } .settings-section.open .section-content { max-height: 800px; } + /* ---- COMMAND-PALETTE (Strg+K) ---- */ + /* .palette-overlay erbt .dialog-overlay (Position/Backdrop/Fade/z-index:400). */ + .palette-overlay { + align-items: flex-start; + } + .palette-box { + margin-top: 12vh; + width: 560px; max-width: 92vw; + background: rgba(10,9,20,0.98); + border: 1px solid var(--border); + border-radius: var(--radius); + backdrop-filter: blur(28px); + box-shadow: 0 20px 60px rgba(0,0,0,0.7); + transform: translateY(8px) scale(0.98); + transition: transform 0.2s; + overflow: hidden; + } + .dialog-overlay.active .palette-box { transform: translateY(0) scale(1); } + .palette-input { + width: 100%; + box-sizing: border-box; + padding: 16px 18px; + background: transparent; + border: none; + border-bottom: 1px solid var(--border); + color: var(--text-primary); + font-family: var(--font-body); + font-size: 15px; + outline: none; + } + .palette-input::placeholder { color: var(--text-muted); } + .palette-list { + list-style: none; + margin: 0; padding: 6px; + max-height: 46vh; + overflow-y: auto; + } + .palette-option { + display: flex; flex-direction: column; gap: 2px; + padding: 9px 12px; + border-radius: var(--radius-sm); + cursor: pointer; + } + .palette-option[aria-selected="true"] { + background: var(--accent-dim); + } + .palette-option-title { + color: var(--text-primary); + font-size: 13px; font-weight: 500; + } + .palette-option-meta { + color: var(--text-muted); + font-size: 10px; letter-spacing: 0.3px; + } + .palette-empty { + list-style: none; + padding: 16px 12px; + color: var(--text-muted); + font-size: 13px; text-align: center; + } + .palette-live { + position: absolute; + width: 1px; height: 1px; + overflow: hidden; clip: rect(0 0 0 0); + white-space: nowrap; + } + .palette-hint { + padding: 8px 14px; + border-top: 1px solid var(--border); + color: var(--text-muted); + font-size: 10px; letter-spacing: 0.3px; + } } /* ============================================ From b5b0ac34714521188606da39468294d7715b12f3 Mon Sep 17 00:00:00 2001 From: Jon Kazama Date: Sun, 14 Jun 2026 09:25:05 +0200 Subject: [PATCH 10/52] v2.3: Onboarding-Slide fuer die Strg+K-Palette (Entdeckbarkeit, BS-08) --- src/js/i18n.js | 4 ++++ src/js/onboarding.js | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/src/js/i18n.js b/src/js/i18n.js index 45583ff..96eddb1 100644 --- a/src/js/i18n.js +++ b/src/js/i18n.js @@ -60,6 +60,8 @@ const STRINGS = { 'onboarding.tradecenter_desc': 'Trade Center für Star Citizen', 'onboarding.s7.title': 'Bereit!', 'onboarding.s7.text': 'Erstelle dein erstes Board mit „+ Board" oder importiere deine Browser-Lesezeichen über den Import-Button im Header. Viel Spaß!', + 'onboarding.palette.title': 'Blitzschnell finden mit Strg+K', + 'onboarding.palette.text': 'Drück jederzeit Strg+K, um die Befehls-Palette zu öffnen und alle Lesezeichen und Boards sofort zu durchsuchen. Mit ↑↓ navigieren, Enter öffnet, Esc schließt.', // Notes 'notes.limit_message': 'Maximale Anzahl erreicht! Du kannst maximal {max} Notes gleichzeitig haben. Lösche eine bestehende Note um eine neue zu erstellen.', @@ -495,6 +497,8 @@ const STRINGS = { 'onboarding.tradecenter_desc': 'Trade Center for Star Citizen', 'onboarding.s7.title': 'Ready!', 'onboarding.s7.text': 'Create your first board with "+ Board" or import your browser bookmarks via the Import button in the header. Have fun!', + 'onboarding.palette.title': 'Find anything with Ctrl+K', + 'onboarding.palette.text': 'Press Ctrl+K anytime to open the command palette and instantly search all your bookmarks and boards. Navigate with ↑↓, Enter opens, Esc closes.', // Notes 'notes.limit_message': 'Maximum reached! You can have at most {max} notes at the same time. Delete an existing note to create a new one.', diff --git a/src/js/onboarding.js b/src/js/onboarding.js index c51342c..22e4c5a 100644 --- a/src/js/onboarding.js +++ b/src/js/onboarding.js @@ -39,6 +39,11 @@ const Onboarding = { textKey: 'onboarding.s6.text', interactive: 'gaming-board' }, + { + hero: '\uD83D\uDD0D', + titleKey: 'onboarding.palette.title', + textKey: 'onboarding.palette.text' + }, { hero: '\uD83D\uDE80', titleKey: 'onboarding.s7.title', From 091195cdefc5575038933d0a767241e1ec1730bc Mon Sep 17 00:00:00 2001 From: Jon Kazama Date: Sun, 14 Jun 2026 09:26:22 +0200 Subject: [PATCH 11/52] v2.3: persistenter Header-Trigger fuer die Strg+K-Palette (Entdeckbarkeit, BS-08) --- newtab.html | 4 ++++ src/js/i18n.js | 8 ++++++-- src/js/palette.js | 10 ++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/newtab.html b/newtab.html index 7403f8e..f7d13e4 100644 --- a/newtab.html +++ b/newtab.html @@ -39,6 +39,10 @@ Darstellung + +
+
+
+ +
+
+ +