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-handle"></div>
|
||||||
<div class="mt-sheet-header">
|
<div class="mt-sheet-header">
|
||||||
<span class="mt-sheet-title">Fichiers ouverts</span>
|
<span class="mt-sheet-title">Fichiers ouverts</span>
|
||||||
<button
|
<div class="mt-sheet-actions">
|
||||||
class="mt-sheet-close"
|
<button class="mt-sheet-close-all" id="mt-close-all" title="Fermer tout" aria-label="Fermer tous les fichiers">Fermer tout</button>
|
||||||
id="mt-sheet-close"
|
<button class="mt-sheet-close" id="mt-sheet-close" aria-label="Fermer">✕</button>
|
||||||
aria-label="Fermer"
|
</div>
|
||||||
>
|
|
||||||
✕
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="mt-sheet-list" id="mt-tab-list"></div>
|
<div class="mt-sheet-list" id="mt-tab-list"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+4
-1
@@ -212,8 +212,11 @@ export async function createAIToolbar(container, getEditorView) {
|
|||||||
gap: '2px',
|
gap: '2px',
|
||||||
padding: '4px 8px',
|
padding: '4px 8px',
|
||||||
borderBottom: '1px solid var(--border-color)',
|
borderBottom: '1px solid var(--border-color)',
|
||||||
background: '#2a2a2a',
|
background: 'var(--bg-secondary)',
|
||||||
flexWrap: 'wrap',
|
flexWrap: 'wrap',
|
||||||
|
position: 'sticky',
|
||||||
|
top: '0',
|
||||||
|
zIndex: '5',
|
||||||
});
|
});
|
||||||
|
|
||||||
function ev() { return getEditorView(); }
|
function ev() { return getEditorView(); }
|
||||||
|
|||||||
@@ -112,6 +112,7 @@ export function initMobileToolbar() {
|
|||||||
const paletteBtn = document.getElementById('mt-palette');
|
const paletteBtn = document.getElementById('mt-palette');
|
||||||
const tabsBtn = document.getElementById('mt-tabs');
|
const tabsBtn = document.getElementById('mt-tabs');
|
||||||
const sheetClose = document.getElementById('mt-sheet-close');
|
const sheetClose = document.getElementById('mt-sheet-close');
|
||||||
|
const closeAll = document.getElementById('mt-close-all');
|
||||||
const overlay = document.getElementById('mt-overlay');
|
const overlay = document.getElementById('mt-overlay');
|
||||||
|
|
||||||
if (explorerBtn) explorerBtn.addEventListener('click', toggleExplorer);
|
if (explorerBtn) explorerBtn.addEventListener('click', toggleExplorer);
|
||||||
@@ -119,6 +120,12 @@ export function initMobileToolbar() {
|
|||||||
if (paletteBtn) paletteBtn.addEventListener('click', openCommandPalette);
|
if (paletteBtn) paletteBtn.addEventListener('click', openCommandPalette);
|
||||||
if (tabsBtn) tabsBtn.addEventListener('click', openTabSwitcher);
|
if (tabsBtn) tabsBtn.addEventListener('click', openTabSwitcher);
|
||||||
if (sheetClose) sheetClose.addEventListener('click', closeTabSwitcher);
|
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);
|
if (overlay) overlay.addEventListener('click', closeTabSwitcher);
|
||||||
|
|
||||||
setInterval(updateTabCount, 2000);
|
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:'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-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:'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:'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:'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();} },
|
{ 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';
|
toolbar.className = 'ai-toolbar';
|
||||||
Object.assign(toolbar.style, {
|
Object.assign(toolbar.style, {
|
||||||
display: 'flex', alignItems: 'center', gap: '2px', padding: '4px 8px',
|
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
|
// AI inline complete button
|
||||||
|
|||||||
@@ -6740,6 +6740,25 @@ body.popup-mode .content-area {
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
.mt-sheet-close:hover { color: var(--accent); border-color: var(--accent); }
|
.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 {
|
.mt-sheet-list {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
|
|||||||
Reference in New Issue
Block a user