diff --git a/web/src/app.css b/web/src/app.css
index d30a856..403566f 100644
--- a/web/src/app.css
+++ b/web/src/app.css
@@ -363,7 +363,10 @@ button {
:focus-visible {
outline: 2px solid var(--accent);
outline-offset: 2px;
- border-radius: var(--radius-sm);
+ /* Ingen radius her. En omrids følger elementets egen afrunding af sig selv, og
+ at tvinge en anden på tegner en firkantet bue uden om en rund kant — to
+ streger, hvor der skulle være én. Det ses tydeligst om et pilleformet
+ søgefelt. */
}
::selection {
diff --git a/web/src/lib/components/CommandPalette.svelte b/web/src/lib/components/CommandPalette.svelte
index bf53261..20b5322 100644
--- a/web/src/lib/components/CommandPalette.svelte
+++ b/web/src/lib/components/CommandPalette.svelte
@@ -9,6 +9,7 @@
let query = $state('');
let tasks = $state([]);
let projects = $state([]);
+ let notes = $state([]);
let selected = $state(0);
let input;
let controller = null;
@@ -32,13 +33,21 @@
if (!value) {
tasks = [];
projects = [];
+ notes = [];
return;
}
timer = setTimeout(async () => {
try {
- const result = await api.search(value);
+ // Noter er sit eget endepunkt, så de hentes ved siden af. Uden dem
+ // søger ⌘K kun i halvdelen af programmet, hvilket er svært at gætte
+ // som bruger: feltet ser ud til at kunne finde alt.
+ const [result, found] = await Promise.all([
+ api.search(value),
+ api.notes({ q: value }).catch(() => ({ notes: [] }))
+ ]);
tasks = result.tasks ?? [];
projects = result.projects ?? [];
+ notes = found.notes ?? [];
selected = 0;
} catch {
// A failed search shows nothing rather than an error inside a
@@ -49,6 +58,7 @@
let results = $derived([
...projects.map((p) => ({ kind: 'project', id: p.id, label: p.name })),
+ ...notes.map((n) => ({ kind: 'note', id: n.id, label: n.title || n.body.slice(0, 60) })),
...tasks.map((t) => ({
kind: 'task',
id: t.id,
@@ -60,6 +70,7 @@
function choose(item) {
open = false;
+ if (item.kind === 'note') return goto(`/noter?note=${item.id}`);
goto(item.kind === 'project' ? `/projekt/${item.id}` : `/projekt/${item.project}`);
}
@@ -109,7 +120,7 @@
onclick={() => choose(item)}
onmouseenter={() => (selected = i)}
>
- {item.kind === 'project' ? 'Projekt' : 'Opgave'}
+ {t('palette.' + item.kind)}
{item.label}
diff --git a/web/src/lib/components/Sidebar.svelte b/web/src/lib/components/Sidebar.svelte
index 63df0d7..4b00ade 100644
--- a/web/src/lib/components/Sidebar.svelte
+++ b/web/src/lib/components/Sidebar.svelte
@@ -1,7 +1,7 @@