feat: BL-07–BL-10 — notes search, weather refresh, vCard import/export, PWA offline page

- Notes: client-side full-text search bar (filters title + content)
- Dashboard: weather refresh button + 30-min auto-refresh interval
- Contacts: vCard 3.0 export per contact (GET /:id/vcard); vCard import
  via file input with client-side parser (FN, TEL, EMAIL, ADR, NOTE, CATEGORIES)
- PWA: /offline.html served when network unavailable; cached in app-shell (sw v20)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Ulas
2026-03-31 10:35:03 +02:00
parent 0defc3c589
commit 4fe4f6cb38
10 changed files with 374 additions and 10 deletions
+33
View File
@@ -43,6 +43,39 @@
font-weight: var(--font-weight-bold);
}
.notes-toolbar__search {
position: relative;
flex: 1;
max-width: 280px;
}
.notes-toolbar__search-icon {
position: absolute;
left: var(--space-2);
top: 50%;
transform: translateY(-50%);
width: 16px;
height: 16px;
color: var(--color-text-secondary);
pointer-events: none;
}
.notes-toolbar__search-input {
width: 100%;
padding: var(--space-2) var(--space-2) var(--space-2) calc(var(--space-2) * 2 + 16px);
border: 1px solid var(--color-border);
border-radius: var(--radius-md);
background: var(--color-surface);
color: var(--color-text);
font-size: var(--text-sm);
outline-offset: 2px;
}
.notes-toolbar__search-input:focus {
outline: 2px solid var(--color-accent);
border-color: transparent;
}
/* --------------------------------------------------------
* Masonry-Grid
* -------------------------------------------------------- */