From 0f604f9a26377af1e9fa653b01194e398dc5da7d Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Sun, 19 Jul 2026 16:08:53 -0400 Subject: [PATCH] =?UTF-8?q?M1:=20masonry=20board=20UI=20=E2=80=94=20quick-?= =?UTF-8?q?add,=20note=20cards,=20editor,=20views?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - notes Pinia store (load/create/pin/archive/color/trash/restore/delete) with view-aware reconcile; api client patch/del methods. - colors.ts palette (10 keys → light/dark card + swatch tints). - QuickAdd (collapsed → expand, title/body/color, click-outside/Esc to save), NoteCard (color tint, click-to-edit, hover action bar), NoteEditor modal, ColorPicker, inline Icon set (no icon dep). - BoardView rewrite: Notes/Archive/Trash routes, CSS-columns masonry, Pinned + Others sections, per-view empty states, sign-out. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01FRgehjoz7Yv8LkUfADxACm --- frontend/src/api/client.ts | 2 + frontend/src/components/ColorPicker.vue | 24 ++++ frontend/src/components/Icon.vue | 26 +++++ frontend/src/components/NoteCard.vue | 85 ++++++++++++++ frontend/src/components/NoteEditor.vue | 124 ++++++++++++++++++++ frontend/src/components/QuickAdd.vue | 95 +++++++++++++++ frontend/src/notes/colors.ts | 57 +++++++++ frontend/src/router/index.ts | 12 ++ frontend/src/stores/notes.ts | 108 +++++++++++++++++ frontend/src/style.css | 7 ++ frontend/src/views/BoardView.vue | 147 ++++++++++++++++++------ 11 files changed, 649 insertions(+), 38 deletions(-) create mode 100644 frontend/src/components/ColorPicker.vue create mode 100644 frontend/src/components/Icon.vue create mode 100644 frontend/src/components/NoteCard.vue create mode 100644 frontend/src/components/NoteEditor.vue create mode 100644 frontend/src/components/QuickAdd.vue create mode 100644 frontend/src/notes/colors.ts create mode 100644 frontend/src/stores/notes.ts diff --git a/frontend/src/api/client.ts b/frontend/src/api/client.ts index 9187304..a70ef48 100644 --- a/frontend/src/api/client.ts +++ b/frontend/src/api/client.ts @@ -29,4 +29,6 @@ async function request(method: string, path: string, body?: unknown): Promise export const api = { get: (path: string) => request("GET", path), post: (path: string, body?: unknown) => request("POST", path, body), + patch: (path: string, body?: unknown) => request("PATCH", path, body), + del: (path: string) => request("DELETE", path), }; diff --git a/frontend/src/components/ColorPicker.vue b/frontend/src/components/ColorPicker.vue new file mode 100644 index 0000000..c6fce03 --- /dev/null +++ b/frontend/src/components/ColorPicker.vue @@ -0,0 +1,24 @@ + + + diff --git a/frontend/src/components/Icon.vue b/frontend/src/components/Icon.vue new file mode 100644 index 0000000..94c6f9e --- /dev/null +++ b/frontend/src/components/Icon.vue @@ -0,0 +1,26 @@ + + + diff --git a/frontend/src/components/NoteCard.vue b/frontend/src/components/NoteCard.vue new file mode 100644 index 0000000..5766a0c --- /dev/null +++ b/frontend/src/components/NoteCard.vue @@ -0,0 +1,85 @@ + + + diff --git a/frontend/src/components/NoteEditor.vue b/frontend/src/components/NoteEditor.vue new file mode 100644 index 0000000..2b11e17 --- /dev/null +++ b/frontend/src/components/NoteEditor.vue @@ -0,0 +1,124 @@ + + +