From 7e89207b70f5d08db31b47b8987bd7cb3a3ff76f Mon Sep 17 00:00:00 2001 From: Luiz Gustavo Costa Date: Wed, 4 Nov 2026 11:54:15 -0300 Subject: [PATCH] =?UTF-8?q?feat:=20layout=20mobile,=20abas=20m=C3=BAltipla?= =?UTF-8?q?s=20e=20categorias=20em=20=C3=A1rvore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Responsivo ≤760px: sidebar vira gaveta com backdrop, painel de versões em tela cheia, toolbar/menu rolam sem rótulos, alvos de toque, dvh + safe-area, fonte do editor ≥16px (anti-zoom iOS) - Abas: várias notas abertas com estado sujo por aba, ✕ com confirmação, clique do meio, Alt+W / Alt+←/→ / Alt+1..9; abas e rascunhos sobrevivem à sessão via localStorage - Categorias: modelo vira árvore (categories.json) com notas em múltiplas categorias; explorador no sidebar com expandir/renomear/mover/excluir (sem ciclos, GC de vínculos) e seletor multi-marca no editor; filtro por pasta recursivo por padrão; migração automática do campo único legado - API: POST/PUT/DELETE /api/categories; notas aceitam categories: [ids] - Testes: store (árvore, ciclo, migração, GC) e api (CRUD de categorias) --- README.md | 46 +- internal/api/api_test.go | 110 +++- internal/api/categories.go | 50 ++ internal/api/notes.go | 34 +- internal/api/server.go | 3 + internal/store/store.go | 429 ++++++++++--- internal/store/store_test.go | 200 ++++++- web/css/app.css | 232 +++++++- web/index.html | 30 +- web/js/app.js | 1092 ++++++++++++++++++++++++---------- 10 files changed, 1737 insertions(+), 489 deletions(-) create mode 100644 internal/api/categories.go diff --git a/README.md b/README.md index f13d372..68f44c0 100644 --- a/README.md +++ b/README.md @@ -36,9 +36,20 @@ restauração) e autenticação por **token** (Bearer para API / cookie HttpOnly o formato ativo (desabilitada em texto puro). - **Modo Edição ↔ Preview**: Markdown é renderizado no servidor (goldmark, GFM, HTML cru escapado); HTML é pré-visualizado em `