feat: arborescence interactive avec expand/collapse, breadcrumb et navigation par dossier
- API /api/local-workspace/tree: arbre récursif complet (support optionnel ?folder=ID) - API /api/local-workspace/breadcrumb: fil d'Ariane parent pour un dossier - Page /local-workspace: supporte ?folder=ID pour naviguer dans un dossier - Sidebar: expand/collapse (▶/▼) sur les dossiers, clic dossier → /local-workspace?folder=ID - CSS: styles chevron .tree-chevron, .tree-folder-link - Alpine.js: expandedFolders, toggleTreeFolder, navigateToFolder
This commit is contained in:
+44
-1
@@ -397,8 +397,51 @@ input, select, textarea { font-family: inherit; color: inherit; }
|
||||
.sidebar-item .page-name {
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
color: var(--text);
|
||||
text-decoration: none;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
/* Tree chevron for expand/collapse */
|
||||
.tree-chevron {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
flex-shrink: 0;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background: none;
|
||||
border: none;
|
||||
color: var(--text-tertiary);
|
||||
cursor: pointer;
|
||||
font-size: 8px;
|
||||
padding: 0;
|
||||
border-radius: 3px;
|
||||
transition: transform 150ms, color 100ms;
|
||||
}
|
||||
.tree-chevron:hover {
|
||||
color: var(--text);
|
||||
background: var(--bg-hover);
|
||||
}
|
||||
.tree-chevron.open {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
|
||||
/* Folder link styling */
|
||||
.tree-folder-link {
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
color: var(--text);
|
||||
font-size: 13px;
|
||||
cursor: pointer;
|
||||
font-weight: 500;
|
||||
}
|
||||
.tree-folder-link:hover {
|
||||
color: var(--accent);
|
||||
}
|
||||
|
||||
.sidebar-item .item-actions {
|
||||
|
||||
Reference in New Issue
Block a user