Add close-all tabs, close-current-file command, fix AI toolbar light theme + sticky
This commit is contained in:
+4
-7
@@ -4374,13 +4374,10 @@ curl -X POST https://votre-serveur.com/webhook \
|
||||
<div class="mt-sheet-handle"></div>
|
||||
<div class="mt-sheet-header">
|
||||
<span class="mt-sheet-title">Fichiers ouverts</span>
|
||||
<button
|
||||
class="mt-sheet-close"
|
||||
id="mt-sheet-close"
|
||||
aria-label="Fermer"
|
||||
>
|
||||
✕
|
||||
</button>
|
||||
<div class="mt-sheet-actions">
|
||||
<button class="mt-sheet-close-all" id="mt-close-all" title="Fermer tout" aria-label="Fermer tous les fichiers">Fermer tout</button>
|
||||
<button class="mt-sheet-close" id="mt-sheet-close" aria-label="Fermer">✕</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-sheet-list" id="mt-tab-list"></div>
|
||||
</div>
|
||||
|
||||
+4
-1
@@ -212,8 +212,11 @@ export async function createAIToolbar(container, getEditorView) {
|
||||
gap: '2px',
|
||||
padding: '4px 8px',
|
||||
borderBottom: '1px solid var(--border-color)',
|
||||
background: '#2a2a2a',
|
||||
background: 'var(--bg-secondary)',
|
||||
flexWrap: 'wrap',
|
||||
position: 'sticky',
|
||||
top: '0',
|
||||
zIndex: '5',
|
||||
});
|
||||
|
||||
function ev() { return getEditorView(); }
|
||||
|
||||
@@ -112,6 +112,7 @@ export function initMobileToolbar() {
|
||||
const paletteBtn = document.getElementById('mt-palette');
|
||||
const tabsBtn = document.getElementById('mt-tabs');
|
||||
const sheetClose = document.getElementById('mt-sheet-close');
|
||||
const closeAll = document.getElementById('mt-close-all');
|
||||
const overlay = document.getElementById('mt-overlay');
|
||||
|
||||
if (explorerBtn) explorerBtn.addEventListener('click', toggleExplorer);
|
||||
@@ -119,6 +120,12 @@ export function initMobileToolbar() {
|
||||
if (paletteBtn) paletteBtn.addEventListener('click', openCommandPalette);
|
||||
if (tabsBtn) tabsBtn.addEventListener('click', openTabSwitcher);
|
||||
if (sheetClose) sheetClose.addEventListener('click', closeTabSwitcher);
|
||||
if (closeAll) closeAll.addEventListener('click', () => {
|
||||
const tabs = [...(TabManager._tabs || [])];
|
||||
tabs.forEach(t => TabManager.close(t.id));
|
||||
updateTabCount();
|
||||
renderTabList();
|
||||
});
|
||||
if (overlay) overlay.addEventListener('click', closeTabSwitcher);
|
||||
|
||||
setInterval(updateTabCount, 2000);
|
||||
|
||||
@@ -40,6 +40,7 @@ const CMDS = [
|
||||
{ id:'create-file', label:'📄 Créer fichier markdown', desc:'Choisir la vault, naviguer, puis nommer le fichier', cat:'Fichiers', act:()=>startBrowse('create-file') },
|
||||
{ id:'delete-file', label:'🗑️ Supprimer fichier', desc:'Rechercher un fichier à supprimer', cat:'Fichiers', act:()=>startBrowse('delete-file') },
|
||||
{ id:'delete-cur', label:'🗑️ Supprimer fichier courant', desc:'Supprimer le fichier de l\'onglet actif', cat:'Fichiers', act:async()=>{close();await delCurFile();} },
|
||||
{ id:'close-cur', label:'✕ Fermer fichier courant', desc:'Fermer l\'onglet actif sans supprimer', cat:'Fichiers', act:()=>{close();const f=getCurrentFile();if(f){const tab=TabManager._tabs.find(t=>t.vault===f.vault&&t.path===f.path);if(tab)TabManager.close(tab.id);else triggerGoHome();}else{showToast('Aucun fichier ouvert','error');}} },
|
||||
{ id:'create-dir', label:'📁 Créer répertoire', desc:'Choisir la vault, naviguer, puis nommer le dossier', cat:'Répertoires', act:()=>startBrowse('create-dir') },
|
||||
{ id:'delete-dir', label:'🗑️ Supprimer répertoire', desc:'Choisir la vault, naviguer et supprimer', cat:'Répertoires', act:()=>startBrowse('delete-dir') },
|
||||
{ id:'theme', label:'🌓 Changer le thème', desc:'Basculer clair/sombre', cat:'Actions', act:()=>{close();toggleTheme();} },
|
||||
|
||||
@@ -1180,7 +1180,8 @@ const RightSidebarManager = {
|
||||
toolbar.className = 'ai-toolbar';
|
||||
Object.assign(toolbar.style, {
|
||||
display: 'flex', alignItems: 'center', gap: '2px', padding: '4px 8px',
|
||||
borderBottom: '1px solid var(--border-color)', background: '#2a2a2a', flexWrap: 'wrap',
|
||||
borderBottom: '1px solid var(--border-color)', background: 'var(--bg-secondary)', flexWrap: 'wrap',
|
||||
position: 'sticky', top: '0', zIndex: '5',
|
||||
});
|
||||
|
||||
// AI inline complete button
|
||||
|
||||
@@ -6740,6 +6740,25 @@ body.popup-mode .content-area {
|
||||
justify-content: center;
|
||||
}
|
||||
.mt-sheet-close:hover { color: var(--accent); border-color: var(--accent); }
|
||||
.mt-sheet-actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
}
|
||||
.mt-sheet-close-all {
|
||||
padding: 5px 10px;
|
||||
border: 1px solid var(--danger, #ef4444);
|
||||
border-radius: 6px;
|
||||
background: transparent;
|
||||
color: var(--danger, #ef4444);
|
||||
cursor: pointer;
|
||||
font-size: 0.7rem;
|
||||
font-weight: 600;
|
||||
transition: background 0.15s;
|
||||
}
|
||||
.mt-sheet-close-all:hover {
|
||||
background: rgba(239,68,68,0.1);
|
||||
}
|
||||
|
||||
.mt-sheet-list {
|
||||
flex: 1;
|
||||
|
||||
Reference in New Issue
Block a user