// panels can be on any side of the screen
// some panel item theming is specific to panel orientation and is included in this section
// each panel is also split into three zones
// dnd is for panel edit mode
// dummy is for adding or moving panels
#panel {
    color: $dark_fg_color;
    height: 2.5em;
    width: 3.2em;
    &:highlight {
        background-color: $selected_bg_color;
    }
}
.panel-dummy {
    background-color: rgba(255, 0, 0, 0.6);
    &:entered {
        background-color: rgba(0, 255, 0, 0.6);
    }
}
.panelLeft {
    spacing: 4px;
    &:dnd {
        background-color: rgba(255, 0, 0, 0.6);
    }
    &:ltr {
        padding-right: 4px;
    }
    &:rtl {
        padding-left: 4px;
    }
    &.vertical {
        padding: 0;
        &:dnd {
        }
    }
}
.panelCenter {
    spacing: 4px;
    &:dnd {
        background-color: rgba(0, 255, 0, 0.6);
    }
    &.vertical {
        padding-left: 0;
        padding-right: 0;
        &:dnd {
        }
    }
}
.panelRight {
    spacing: 4px;
    &:dnd {
        background-color: rgba(0, 0, 255, 0.6);
    }
    &:ltr {
        padding-left: 0;
        spacing: 0;
    }
    &:rtl {
        padding-right: 0;
        spacing: 0;
    }
    &.vertical {
        padding: 0;
        &:dnd {
        }
    }
}
// panel borders must be defined with a border-top color or other color definition that encompasses border-top
// panels do not support different colors of borders on different edges
// due to a bug in cinnamons placing of panel items on a bordered panel small margins are used to ensure that bordered panel objects
// do not overlap the panel border
.panel-top {
    @extend %bg-grad-to-bottom;

    box-shadow: 0 -1px 0 0 $exterior_border inset;
    .window-list-item-box {
        @extend %bg-grad-to-top;
        margin-bottom: 1px;
        &:hover {
            @extend %hover-bg-grad-to-top;
        }
        &:active, &:checked, &:focus, &:running {
            @extend %panel-top-shared;

            &:hover {
                @extend %hover-selected-grad-to-top;
                }
        }
    }
    .grouped-window-list-item-box {
        &:active, &:checked {      
          box-shadow: 0 2px 0 0 $dark_fg_color inset;
          }
        &:hover {
          box-shadow: 0 2px 0 0 $selected_border inset;
          }
        &:focus {
          box-shadow: 0 4px 0 0 $selected_border inset;
          }
    }
    .workspace-switcher, .workspace-graph {
        padding: 1px $spacing;
    }
    .panel-launchers .launcher:hover {
        box-shadow: 0 2px 0 0 $selected_border inset;
    }
    .applet-separator {
        padding: 3px $spacing;
    }
}
.panel-bottom {
    @extend %bg-grad-to-top;

    box-shadow: 0 1px 0 0 $exterior_border inset;
    .window-list-item-box {
        @extend %bg-grad-to-bottom;
        margin-top: 1px;

        &:hover {
            @extend %hover-bg-grad-to-bottom;
        }
        &:active, &:checked, &:focus, &:running {
            @extend %panel-bottom-shared;

            &:hover {
                @extend %hover-selected-grad-to-bottom;
                }
        }
    }
    .grouped-window-list-item-box {
        &:active, &:checked {      
          box-shadow: 0 -2px 0 0 $dark_fg_color inset;
          }
        &:hover {
          box-shadow: 0 -2px 0 0 $selected_border inset;
          }
        &:focus {
          box-shadow: 0 -4px 0 0 $selected_border inset;
          }
    }
    .workspace-switcher, .workspace-graph {
        padding: 1px $spacing;
    }
    .panel-launchers .launcher:hover {
        box-shadow: 0 -2px 0 0 $selected_border inset;
    }
    .applet-separator {
        padding: 3px $spacing;
    }
}
.panel-left {
    @extend %bg-grad-to-right;

    box-shadow: -1px 0 0 0 $exterior_border inset;
    .window-list-item-box {
        margin-right: 1px;
        @extend %bg-grad-to-left;

        &:hover {
            @extend %hover-bg-grad-to-left;
        }
        &:active, &:checked, &:focus, &:running {
            @extend %panel-left-shared;

            &:hover {
                @extend %hover-selected-grad-to-left;
            }
        }
    }
    .grouped-window-list-item-box {
        &:active, &:checked {      
          box-shadow: 2px 0 0 0 $dark_fg_color inset;
          }
        &:hover {
          box-shadow: 2px 0 0 0 $selected_border inset;
          }
        &:focus {
          box-shadow: 4px 0 0 0 $selected_border inset;
          }
    }
    .workspace-switcher, .workspace-graph {
        padding: $spacing 1px;
    }
    .panel-launchers .launcher:hover {
        box-shadow: 2px 0 0 0 $selected_border inset;
    }
    .applet-separator {
        padding: $spacing 3px;
    }
}
.panel-right {
    @extend %bg-grad-to-left;

     box-shadow: 1px 0 0 0 $exterior_border inset;
    .window-list-item-box {
        margin-left: 1px;
        @extend %bg-grad-to-right;

        &:hover {
            @extend %hover-bg-grad-to-right;
        }
        &:active, &:checked, &:focus, &:running {
            @extend %panel-right-shared;

            &:hover {
                @extend %hover-selected-grad-to-right;
                }
        }
    }
     .grouped-window-list-item-box {
        &:active, &:checked {      
          box-shadow: -2px 0 0 0 $dark_fg_color inset;
          }
        &:hover {
          box-shadow: -2px 0 0 0 $selected_border inset;
          }
        &:focus {
          box-shadow: -4px 0 0 0 $selected_border inset;
          }
    }
    .workspace-switcher, .workspace-graph {
        padding: $spacing 1px;
    }
    .panel-launchers .launcher:hover {
        box-shadow: -2px 0 0 0 $selected_border inset;
    }
    .applet-separator {
        padding: $spacing 3px;
    }
}
// a non feature - not worth themeing
.panel-corner {
    &:active {
    }
    &:overview {
    }
    &:focus {
    }
}
// remaining code is for panel items starting with the generic applets
.applet-separator-line {
    width: 2px;
    background: $selected_bg_color;
}
.applet-separator-line-vertical {
    border-color: $selected_bg_color;
    border-bottom: 2px solid;
}
.applet-spacer:highlight {
    background-color: $selected_bg_color;
}
.applet-box {
    color: $dark_fg_color;
    transition-duration: 150;
    border-radius: $roundness;
    padding: 0 $spacing;
    &.vertical {
        padding: $spacing 0;
    }
    &:checked {
        color: $selected_bg_color;
        .applet-label {
            color: $selected_bg_color;
        }
    }
    &:hover {
        color: $selected_bg_color;
        .applet-label {
            color: $selected_bg_color;
        }
    }
    &:highlight {
        background-color: $selected_bg_color;
        color: $selected_fg_color;
        .applet-label {
            color: $selected_fg_color;
        }
    }
}
.applet-label {
    font-weight: bold;
    color: $dark_fg_color;
    padding-left: 3px;
}
// icon-size set to 22 to match hard-coded menu icon size - applet-icon style is used for search provider results in menu
.applet-icon {
    color: $dark_fg_color;
    padding: 0;
    spacing: 0;
    icon-size: 22px;
}
// used by power applet to warn of low battery
.system-status-icon {
    icon-size: 1.14em;
    padding: 0;
    spacing: 0;
    &.warning {
        color: $warning_color;
    }
    &.error {
        color: $error_color;
    }
}
// keyboard layout applet
.panel-status-button {
    -natural-hpadding: 4px;
    -minimum-hpadding: 4px;
    font-weight: bold;
    color: $dark_fg_color;
    &:hover {
        color: $selected_bg_color;
    }
}
// user applet specific themeing
.user-box {
    padding: 0.4em 1.3em;
    spacing: 10px;
}
.user-icon {
    padding: 4px;
    border: none;
}
.user-label {
    color: $dark_fg_color;
    font-weight: bold;
    font-size: 1em;
}
// the window list applet. Some third party applets inherit some of this theming.
.window-list-box {
    spacing: $spacing;
    padding: 1px 3px;
    font-size: 0.9em;
    border-radius: $roundness;
    &.vertical {
        spacing: $spacing;
        padding: 3px 1px;
    }
    &:highlight {
        background-color: $selected_bg_color;
    }
    #appMenuIcon {
    }
}
// progress was added with cinnamon 3.6 and allows compatible applications to use the window list as a progress bar
.window-list-item {
    &-box {
        border: 1px solid $interior_border;
        border-radius: $roundness;
        transition-duration: 150;
        &:hover {
            border: 1px solid $selected_border;
        }
        &.top StLabel, &.bottom StLabel {
            padding-left: 3px;
        }
        .progress {
            background-color: $success_color;
            border: 1px solid $selected_border;
            border-radius: $roundness;
            color: $info_fg_color;
        }
        #appMenuIcon {
		    padding-right: 0.2em;
        }
    }
    &-demands-attention {
        background-color: $info_bg_color;
        color: $info_fg_color;
    }
}
// cinnamon 3.8 will support an improved window-list-thumbnail preview which now has it's own selector
.window-list-preview {
    @extend %bg-grad-to-right;

    border-radius: $roundness;
    border: 1px solid $exterior_border;
    padding: 6px 12px;
    spacing: $spacing;
    color: $dark_fg_color;
}
// Cinnamon 4.0 has a new grouped window list applet with it's own selectors.
// Initial theme support is defined here.

.grouped-window-list {
    &-thumbnail-label {
        padding-left: 3px;
    }
    &-number-label {
        z-index: 99;
        font-size: 0.8em;
        color: $dark_fg_color;
    }
    // May need to revise depending on upstream GWL developments
    &-button-label {
        padding: 0;
    }
    &-badge {
        border-radius: 256px;
        background-color: $dark_bg_color; 
    }
    &-thumbnail-alert {
        background: $warning_color;
    }
    &-item-box {
        transition-duration: 150;
        spacing: 1em;
        background-color: rgba(0, 0, 0, 0.01);
        &:hover, &:focus, {
           color: $selected_bg_color;
        }
        &:focus  {
           font-weight: bold;
        }
        .progress {
           background-color: $success_color;
        }
    }
    &-demands-attention {
        background-color: $info_bg_color;
        color: $info_fg_color;
    }
    &-thumbnail-menu {
        @extend %bg-grad-to-right;

        border-radius: $roundness;
        padding: 10px 15px;
        spacing: $spacing;
        color: $dark_fg_color;
        .item-box {
            padding: 8px;
            border-radius: $roundness;
            border: 1px solid $interior_border;
            &:outlined {
                border: 1px solid $selected_border;
            }
            &:selected {
                background-color: $selected_bg_color;
                border: 1px solid $selected_border;
                color: $selected_fg_color;
            }
        }
        .thumbnail-box {
            padding: 2px;
            spacing: $spacing;
        }
        .thumbnail {
            width: 256px;
        }
        .separator {
            width: 1px;
            background: $selected_bg_color;
        }
    }
}
// the sound player applet
.sound-player {
    StButton {
        @extend %shared-button;
        
        min-width: 2em;
        min-height: 2em;
        padding: $spacing_plus2;
        color: $button_fg_color;
        border-radius: $roundness;
        &:small {
            min-width: 1.5em;
            min-height: 1.5em;
            padding: $spacing;
            StIcon {
                icon-size: 1em;
            }
        }
        StIcon {
            icon-size: 1.5em;
        }
        &:hover {
            @extend %shared-button-hover;
        }
        &:focus {
            color: $selected_fg_color;
        }
        &:active {
            @extend %shared-button-active;
        }
    }
    .slider {
        @extend %slider-shared;
        height: 4px;
    }
    StBoxLayout {
        spacing: 0.5em;
    }
    > StBoxLayout {
        padding: 5px;
    }
}
.sound-player-generic-coverart {
    background: rgba(0,0,0,0.2);
}
.sound-player-overlay {
    @extend %bg-grad-to-bottom;

    min-width: 300px;
    padding: 12px 16px;
    spacing: 0.5em;
    color: $dark_fg_color;
}
// workspace switcher applet simple button view
.workspace-button {
    width: 2em;
    height: 1em;
    color: $dark_fg_color;
    border: 1px solid $interior_border;
    margin: 2px;
    transition-duration: 150;
    &.vertical {
    height: 1.5em;
    }
    &:outlined {
        background-color: $selected_bg_color;
        color: $selected_fg_color;
        border-color: $selected_border;
    }
}
// workspace switcher applet graph view
.workspace-graph {
    .workspace {
        @extend %bg-grad-to-bottom;

        border: 1px solid $interior_border;
        &:active {
            @extend %selected-bg-grad-to-bottom;

            border: 1px solid $interior_border;
            .windows {
                -active-window-background: rgba(255, 255, 255, 0.8);
                -active-window-border: rgba(0, 0, 0, 0.9);
                -inactive-window-background: rgba(140, 140, 140, 0.8);
                -inactive-window-border: rgba(0, 0, 0, 0.7);
            }
        }
        .windows {
            -active-window-background: rgba(140, 140, 140, 0.8);
            -active-window-border: rgba(0, 0, 0, 0.7);
            -inactive-window-background: rgba(140, 140, 140, 0.8);
            -inactive-window-border: rgba(0, 0, 0, 0.7);
        }
    }
}
// most panel launcher themeing is orientation specific
.panel-launchers {
    padding: 0 $spacing;
    spacing: $spacing;
    .launcher {
        background-color:rgba(0, 0, 0, 0.01);
    }
    &.vertical {
        padding: $spacing 0;
    }
}
.notification-applet-padding {
    padding: .5em 1em;
}
.notification-applet-container {
    max-height: 100px;
}
.systray {
    spacing: $spacing;
}
.flashspot {
    background-color: $selected_bg_color;
}

