feat: editor improvements and architectural grid prototype

Multiple feature additions and improvements across the application:

- NextGen Editor: drag handles, smart paste, block actions
- Structured views: Kanban and table layouts for notes
- Architectural Grid: new brainstorming/agent interface prototype
- Flashcards: SM-2 revision algorithm with AI generation
- MCP server: robustness improvements
- Graph/PDF chat: fix click propagation and copy behavior
- Various UI/UX enhancements and bug fixes

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Antigravity
2026-05-27 19:45:15 +00:00
parent 2de66a863d
commit f46654f574
99 changed files with 29948 additions and 919 deletions

View File

@@ -74,7 +74,10 @@
"noReminders": "Aucun rappel actif.",
"documents": "Documents",
"searchNotebooksPlaceholder": "Rechercher un carnet…",
"clearSearch": "Effacer la recherche"
"clearSearch": "Effacer la recherche",
"insightsPanelBody": "Cartographie sémantique de vos notes : clusters thématiques, notes-ponts et suggestions de connexion.",
"revisionPanelBody": "Révisez vos flashcards avec l'algorithme SM-2. Les decks sont générés depuis vos notes.",
"backToNotebooks": "Retour aux carnets"
},
"notes": {
"title": "Notes",
@@ -2351,6 +2354,8 @@
"slashDividerDesc": "Séparateur horizontal",
"slashTable": "Tableau",
"slashTableDesc": "Insérer un tableau simple",
"slashDatabase": "Base de données",
"slashDatabaseDesc": "Base inline auteurs et œuvres",
"slashDiagram": "Diagramme",
"slashDiagramDesc": "Générer un flux ou une carte mentale",
"slashSlides": "Présentation",
@@ -3314,5 +3319,76 @@
"uploadError": "Erreur de téléchargement",
"uploadFailed": "Échec du téléchargement",
"uploading": "Téléchargement..."
},
"blockAction": {
"delete": "Supprimer",
"duplicate": "Dupliquer",
"turnInto": "Transformer en",
"turnInto_heading1": "Titre 1",
"turnInto_heading2": "Titre 2",
"turnInto_heading3": "Titre 3",
"turnInto_bulletList": "Liste à puces",
"turnInto_orderedList": "Liste numérotée",
"turnInto_taskList": "Liste de tâches",
"turnInto_blockquote": "Citation",
"turnInto_codeBlock": "Bloc de code",
"turnInto_database": "Base de données",
"copyRef": "Copier la référence du bloc",
"copied": "Référence copiée !",
"copyRefFailed": "Impossible de copier la référence du bloc",
"copyRefNoNote": "Enregistrez la note avant de copier une référence de bloc",
"copyRefUnsupported": "Ce type de bloc ne peut pas encore être référencé"
},
"smartPaste": {
"prompt": "Coller cette référence de bloc en tant que :",
"liveBlock": "Bloc connecté (live)",
"plainLink": "Texte / lien simple",
"unknownNote": "Note sans titre"
},
"liveBlock": {
"connectedNote": "Note connectée",
"sourceDisconnected": "Source déconnectée",
"statusLive": "LIVE",
"statusOffline": "HORS-LIGNE",
"statusDisconnected": "DÉCONNECTÉ",
"detachLink": "Décharger le lien",
"detachHelp": "Transformer ce bloc en texte normal dans cette note",
"openSource": "Ouvrir",
"removeBlock": "Supprimer le bloc",
"emptyContent": "(bloc vide)"
},
"notePeek": {
"label": "Note liée",
"panelLabel": "Aperçu de la note source",
"close": "Fermer l'aperçu",
"openFully": "Ouvrir en plein écran",
"openFullyHelp": "Remplacer la note courante par cette note",
"readOnlyHint": "Aperçu en lecture seule — ouvrez en plein écran pour modifier.",
"loadFailed": "Impossible d'ouvrir l'aperçu de la note liée."
},
"databaseBlock": {
"title": "Auteurs & Œuvres",
"hint": "Base inline — les données sont enregistrées dans cette note.",
"viewTable": "Tableau",
"viewCards": "Fiches",
"colAuthor": "Auteur",
"colWorks": "Œuvres",
"colRollup": "Total",
"noLinkedWorks": "Aucune œuvre liée",
"deleteShort": "Suppr.",
"deleteCard": "Retirer l'œuvre",
"addAuthor": "Ajouter un auteur",
"authorPlaceholder": "Nom de l'auteur…",
"createAuthor": "Créer",
"addWork": "Ajouter une œuvre",
"bookTitlePlaceholder": "Titre de l'œuvre…",
"selectAuthor": "Choisir un auteur…",
"tagPlaceholder": "Genre / étiquette…",
"coverPlaceholder": "URL de couverture (optionnel)",
"insertWork": "Insérer l'œuvre",
"defaultTag": "Général",
"worksBase": "Base d'œuvres",
"storedCount": "{count} œuvre(s) enregistrée(s)",
"insertFailed": "Impossible d'insérer le bloc base de données. Réessayez sur une ligne vide."
}
}