feat(editeur): #93 edition inline — Editer/Forge remplacent la vue lecture
Le conteneur d'edition (#editor-container, CodeMirror ou iframe Forge) est deplace dans la zone de contenu du document (#content-area ou pane active) au lieu de l'overlay plein ecran : le mode edition remplace la vue lecture. L'overlay reste monte (transparent, pointer-events: none) car le ruban d'edition mobile y est ancre ; il ne sert plus que de repli quand la cible n'est pas le document affiche. Garde-fou dans renderFile() pour liberer proprement la session (destroy CodeMirror/Yjs, retrait de l'iframe Forge) ; forge-close passe par closeEditor() ; cache d'onglet invalide au retour en lecture. Assistant IA : app_context.editing annonce le document en cours d'edition (frontend bookslm.js + backend bookslm.py), et chaque ecriture d'outil (edit_file, append_to_file, create_file, restore_backup) recharge le document affiche (obsigate:file-written) — tampon CodeMirror remplace avec auto-save neutralisee, parent-reload pour l'iframe Forge, re-rendu de la vue lecture sinon. Tests : tests/frontend/editor-inline.test.mjs (19), tests/test_bookslm.py::TestGeneralPrompt (3 nouveaux). Fiche : docs/features/editeur-inline.md.
This commit is contained in:
@@ -2795,6 +2795,47 @@ select {
|
||||
overflow: hidden;
|
||||
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
|
||||
/* --- Inline edition (#93) --------------------------------------------------
|
||||
When a document is being edited, `#editor-container` is moved into the
|
||||
document content area: the editor *replaces* the read view instead of
|
||||
covering it with the overlay, so the AI assistant sidebar stays usable.
|
||||
The overlay itself is neutralised but kept mounted (and `active`) because
|
||||
the mobile editing ribbon (`#me-toolbar`, `.me-ribbon`) is anchored to it. */
|
||||
.editor-modal.editor-inline-mode {
|
||||
display: block;
|
||||
background: transparent;
|
||||
padding: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
.editor-modal.editor-inline-mode .me-ribbon {
|
||||
pointer-events: auto;
|
||||
}
|
||||
.content-area.editor-inline-host,
|
||||
.pane-content.editor-inline-host {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
.content-area.editor-inline-host .editor-container.editor-inline,
|
||||
.pane-content.editor-inline-host .editor-container.editor-inline {
|
||||
flex: 1;
|
||||
height: auto;
|
||||
width: 100%;
|
||||
min-height: 0;
|
||||
max-width: none;
|
||||
max-height: none;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
box-shadow: none;
|
||||
background: var(--bg-primary);
|
||||
}
|
||||
.editor-container.editor-inline .editor-body,
|
||||
.editor-container.editor-inline .editor-body-cm {
|
||||
flex: 1;
|
||||
min-height: 0;
|
||||
}
|
||||
.editor-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
Reference in New Issue
Block a user