RSS Git Download  Clone
Raw Blame History 3kB 147 lines
// Host element — fill the parent container
p3xr-database-tree {
    display: block;
    height: 100%;
    width: 100%;
    overflow: hidden;
}

// Tree viewport — fills parent container
.p3xr-database-tree-viewport {
    height: 100%;
    width: 100%;
}

// Each flat node row
.p3xr-database-tree-row {
    display: flex;
    align-items: center;
    height: 28px;
    line-height: 28px;
    white-space: nowrap;
    cursor: default;
}

// Folder expand/collapse icon — Font Awesome folder via ::before
.p3xr-tree-branch-head {
    display: inline-block;
    font-family: 'Font Awesome 5 Free';
    font-style: normal;
    font-weight: 900;
    font-size: 24px;
    line-height: 28px;
    width: 28px;
    text-align: center;
    margin-right: 4px;
    cursor: pointer;
    color: var(--p3xr-tree-branch-color);
}

.p3xr-tree-branch-head.tree-collapsed::before {
    content: "\f07b"; // fa-folder
}

.p3xr-tree-branch-head.tree-expanded::before {
    content: "\f07c"; // fa-folder-open
}



// Redis type icons
.p3xr-database-treecontrol-node-icon {
    display: inline-block;
    min-width: 12px;
    text-align: center;
}

// Node label container
.p3xr-database-tree-node {
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    height: 28px;
    white-space: nowrap;
}

.p3xr-database-tree-node-label {
    // Used by main-key component CSS for highlighting selected key
}

.p3xr-database-tree-node-count {
    opacity: 0.5;
}

// Hover action icons — shared sizing
.p3xr-database-treecontrol-folder-icon,
.p3xr-database-treecontrol-delete-icon {
    font-size: 18px !important;
    height: 18px !important;
    width: 18px !important;
    min-width: 18px !important;
    min-height: 18px !important;
    line-height: 18px !important;
    cursor: pointer;
    vertical-align: middle;
}

// Add icon — warn/accent color
.p3xr-database-treecontrol-folder-icon {
    color: var(--p3xr-common-warn-color);
}

// Delete icon — red warn color
.p3xr-database-treecontrol-delete-icon {
    color: var(--p3xr-btn-warn-bg);
}

// TTL indicator badge
.p3xr-tree-ttl-badge {
    display: inline-flex;
    align-items: center;
    margin-left: 4px;
    cursor: default;
}
.p3xr-tree-ttl-icon {
    font-size: 16px;
    width: 16px;
    height: 16px;
}
.p3xr-tree-ttl-green .p3xr-tree-ttl-icon { color: var(--mat-sys-primary, #4caf50); }
.p3xr-tree-ttl-yellow .p3xr-tree-ttl-icon { color: var(--mat-sys-tertiary, #ff9800); }
.p3xr-tree-ttl-red .p3xr-tree-ttl-icon { color: var(--mat-sys-error, #f44336); }
.p3xr-tree-ttl-pulse { animation: p3xr-ttl-pulse 1s infinite; }
@keyframes p3xr-ttl-pulse {
    0%, 100% { opacity: 0.7; }
    50% { opacity: 1; }
}

.p3xr-database-tree-actions {
    display: inline-flex;
    align-items: center;
    position: relative;
    top: -1px;
    visibility: hidden;
}

.p3xr-database-tree-row:hover .p3xr-database-tree-actions {
    visibility: visible;
}

@media (max-width: 599px) {
    .p3xr-database-tree-node {
        display: inline-block;
    }

    // On mobile the tree is in a flex column with no explicit pixel height.
    // cdk-virtual-scroll-viewport needs a concrete height to render.
    p3xr-database-tree {
        height: auto;
        min-height: 100px;
    }

    .p3xr-database-tree-viewport {
       height: 20vh;
       min-height: 100px;
    }
}