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": "No active reminders.",
"documents": "Documents",
"searchNotebooksPlaceholder": "Search notebooks…",
"clearSearch": "Clear search"
"clearSearch": "Clear search",
"insightsPanelBody": "Semantic map of your notes: thematic clusters, bridge notes, and connection suggestions.",
"revisionPanelBody": "Review flashcards with the SM-2 algorithm. Decks are generated from your notes.",
"backToNotebooks": "Back to notebooks"
},
"notes": {
"title": "Notes",
@@ -2347,6 +2350,8 @@
"slashDividerDesc": "Horizontal separator",
"slashTable": "Table",
"slashTableDesc": "Insert a simple grid",
"slashDatabase": "Database",
"slashDatabaseDesc": "Inline authors & works database",
"slashDiagram": "Diagram",
"slashDiagramDesc": "Generate a flow or mindmap",
"slashSlides": "Presentation",
@@ -3310,5 +3315,76 @@
"uploadError": "Upload error",
"uploadFailed": "Upload failed",
"uploading": "Uploading..."
},
"blockAction": {
"delete": "Delete",
"duplicate": "Duplicate",
"turnInto": "Turn into",
"turnInto_heading1": "Heading 1",
"turnInto_heading2": "Heading 2",
"turnInto_heading3": "Heading 3",
"turnInto_bulletList": "Bullet List",
"turnInto_orderedList": "Numbered List",
"turnInto_taskList": "Task List",
"turnInto_blockquote": "Quote",
"turnInto_codeBlock": "Code Block",
"turnInto_database": "Database",
"copyRef": "Copy block reference",
"copied": "Reference copied!",
"copyRefFailed": "Could not copy block reference",
"copyRefNoNote": "Save the note before copying a block reference",
"copyRefUnsupported": "This block type cannot be referenced yet"
},
"smartPaste": {
"prompt": "Paste this block reference as:",
"liveBlock": "Connected block (live)",
"plainLink": "Plain text / link",
"unknownNote": "Untitled note"
},
"liveBlock": {
"connectedNote": "Connected note",
"sourceDisconnected": "Source disconnected",
"statusLive": "LIVE",
"statusOffline": "OFFLINE",
"statusDisconnected": "DISCONNECTED",
"detachLink": "Unlink block",
"detachHelp": "Convert this block to normal text in this note",
"openSource": "Open",
"removeBlock": "Remove block",
"emptyContent": "(empty block)"
},
"notePeek": {
"label": "Linked note",
"panelLabel": "Source note preview",
"close": "Close preview",
"openFully": "Open full screen",
"openFullyHelp": "Replace the current note with this one",
"readOnlyHint": "Read-only preview — open full screen to edit.",
"loadFailed": "Could not open the linked note preview."
},
"databaseBlock": {
"title": "Authors & Works",
"hint": "Inline database — data is stored in this note.",
"viewTable": "Table",
"viewCards": "Cards",
"colAuthor": "Author",
"colWorks": "Works",
"colRollup": "Rollup",
"noLinkedWorks": "No linked works",
"deleteShort": "Del",
"deleteCard": "Remove work",
"addAuthor": "Add author",
"authorPlaceholder": "Author name…",
"createAuthor": "Create",
"addWork": "Add a work",
"bookTitlePlaceholder": "Work title…",
"selectAuthor": "Select author…",
"tagPlaceholder": "Genre / tag…",
"coverPlaceholder": "Cover image URL (optional)",
"insertWork": "Insert work",
"defaultTag": "General",
"worksBase": "Works database",
"storedCount": "{count} work(s) stored",
"insertFailed": "Could not insert the database block. Try again on an empty line."
}
}

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."
}
}