173 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			CSS
		
	
	
	
	
	
			
		
		
	
	
			173 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			CSS
		
	
	
	
	
	
/* Bootstrap-styled File Tree */
 | 
						|
.file-tree {
 | 
						|
    font-size: 13px;
 | 
						|
    user-select: none;
 | 
						|
    padding: 8px 0;
 | 
						|
}
 | 
						|
 | 
						|
.tree-node-wrapper {
 | 
						|
    margin: 0;
 | 
						|
}
 | 
						|
 | 
						|
.tree-node {
 | 
						|
    padding: 6px 8px;
 | 
						|
    cursor: pointer;
 | 
						|
    display: flex;
 | 
						|
    align-items: center;
 | 
						|
    gap: 6px;
 | 
						|
    border-radius: 4px;
 | 
						|
    margin: 1px 4px;
 | 
						|
    color: var(--text-primary);
 | 
						|
    transition: all 0.15s ease;
 | 
						|
    white-space: nowrap;
 | 
						|
    overflow: hidden;
 | 
						|
    text-overflow: ellipsis;
 | 
						|
}
 | 
						|
 | 
						|
.tree-node:hover {
 | 
						|
    background-color: var(--bg-tertiary);
 | 
						|
}
 | 
						|
 | 
						|
.tree-node.active {
 | 
						|
    background-color: var(--link-color);
 | 
						|
    color: white;
 | 
						|
    font-weight: 500;
 | 
						|
}
 | 
						|
 | 
						|
.tree-node.active:hover {
 | 
						|
    background-color: var(--link-color);
 | 
						|
    filter: brightness(1.1);
 | 
						|
}
 | 
						|
 | 
						|
/* Toggle arrow */
 | 
						|
.tree-node-toggle {
 | 
						|
    display: inline-flex;
 | 
						|
    align-items: center;
 | 
						|
    justify-content: center;
 | 
						|
    width: 16px;
 | 
						|
    height: 16px;
 | 
						|
    font-size: 10px;
 | 
						|
    color: var(--text-secondary);
 | 
						|
    flex-shrink: 0;
 | 
						|
    transition: transform 0.2s ease;
 | 
						|
}
 | 
						|
 | 
						|
.tree-node-toggle.expanded {
 | 
						|
    transform: rotate(90deg);
 | 
						|
}
 | 
						|
 | 
						|
/* Icon styling */
 | 
						|
.tree-node-icon {
 | 
						|
    width: 16px;
 | 
						|
    height: 16px;
 | 
						|
    display: flex;
 | 
						|
    align-items: center;
 | 
						|
    justify-content: center;
 | 
						|
    flex-shrink: 0;
 | 
						|
    color: var(--text-secondary);
 | 
						|
}
 | 
						|
 | 
						|
.tree-node.active .tree-node-icon {
 | 
						|
    color: white;
 | 
						|
}
 | 
						|
 | 
						|
/* Content wrapper */
 | 
						|
.tree-node-content {
 | 
						|
    display: flex;
 | 
						|
    align-items: center;
 | 
						|
    gap: 6px;
 | 
						|
    flex: 1;
 | 
						|
    min-width: 0;
 | 
						|
}
 | 
						|
 | 
						|
.tree-node-name {
 | 
						|
    flex: 1;
 | 
						|
    overflow: hidden;
 | 
						|
    text-overflow: ellipsis;
 | 
						|
    white-space: nowrap;
 | 
						|
    font-size: 13px;
 | 
						|
}
 | 
						|
 | 
						|
.file-size-badge {
 | 
						|
    font-size: 10px;
 | 
						|
    color: var(--text-secondary);
 | 
						|
    margin-left: auto;
 | 
						|
    flex-shrink: 0;
 | 
						|
    padding: 2px 6px;
 | 
						|
    background-color: var(--bg-tertiary);
 | 
						|
    border-radius: 3px;
 | 
						|
}
 | 
						|
 | 
						|
/* Children container */
 | 
						|
.tree-children {
 | 
						|
    margin-left: 8px;
 | 
						|
    border-left: 1px solid var(--border-light);
 | 
						|
    padding-left: 4px;
 | 
						|
    max-height: 100%;
 | 
						|
    overflow: visible;
 | 
						|
}
 | 
						|
 | 
						|
.tree-children.collapsed {
 | 
						|
    display: none;
 | 
						|
}
 | 
						|
 | 
						|
/* Drag and drop */
 | 
						|
.tree-node.dragging {
 | 
						|
    opacity: 0.5;
 | 
						|
}
 | 
						|
 | 
						|
.tree-node.drag-over {
 | 
						|
    background-color: rgba(13, 110, 253, 0.2);
 | 
						|
    border: 1px dashed var(--link-color);
 | 
						|
}
 | 
						|
 | 
						|
/* Collection selector - Bootstrap styled */
 | 
						|
.collection-selector {
 | 
						|
    margin: 12px 8px;
 | 
						|
    padding: 8px 12px;
 | 
						|
    background-color: var(--bg-tertiary);
 | 
						|
    border-radius: 6px;
 | 
						|
    border: 1px solid var(--border-color);
 | 
						|
}
 | 
						|
 | 
						|
.collection-selector .form-label {
 | 
						|
    margin-bottom: 6px;
 | 
						|
    font-weight: 500;
 | 
						|
    font-size: 12px;
 | 
						|
    color: var(--text-secondary);
 | 
						|
}
 | 
						|
 | 
						|
.collection-selector .form-select-sm {
 | 
						|
    padding: 4px 8px;
 | 
						|
    font-size: 13px;
 | 
						|
    background-color: var(--bg-primary);
 | 
						|
    color: var(--text-primary);
 | 
						|
    border: 1px solid var(--border-color);
 | 
						|
}
 | 
						|
 | 
						|
.collection-selector .form-select-sm:focus {
 | 
						|
    border-color: var(--link-color);
 | 
						|
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25);
 | 
						|
}
 | 
						|
 | 
						|
/* Dark mode adjustments */
 | 
						|
body.dark-mode .tree-node:hover {
 | 
						|
    background-color: var(--bg-tertiary);
 | 
						|
}
 | 
						|
 | 
						|
body.dark-mode .tree-node.active {
 | 
						|
    background-color: var(--link-color);
 | 
						|
}
 | 
						|
 | 
						|
body.dark-mode .tree-children {
 | 
						|
    border-left-color: var(--border-color);
 | 
						|
}
 | 
						|
 | 
						|
/* Scrollbar in sidebar */
 | 
						|
.sidebar::-webkit-scrollbar-thumb {
 | 
						|
    background-color: var(--border-color);
 | 
						|
}
 | 
						|
 | 
						|
.sidebar::-webkit-scrollbar-thumb:hover {
 | 
						|
    background-color: var(--text-secondary);
 | 
						|
} |