/**
 * Copyright JS Foundation and other contributors, http://js.foundation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 **/

@mixin disable-selection {
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

@mixin enable-selection {
    -webkit-user-select: auto;
    -khtml-user-select: auto;
    -moz-user-select: auto;
    -ms-user-select: auto;
    user-select: auto;
}

@mixin component-border {
   border: 1px solid var(--red-ui-primary-border-color);
   box-sizing: border-box;

}

@mixin reset-a-style {
    color: var(--red-ui-workspace-button-color) !important;
    background: var(--red-ui-workspace-button-background);
    text-decoration: none;

    &.disabled, &:disabled  {
        cursor: default;
        color: var(--red-ui-workspace-button-color-disabled) !important;
    }
    &:hover, &:focus {
        text-decoration: none;
    }
    &:not(.disabled):not(:disabled):hover {
        color: var(--red-ui-workspace-button-color-hover) !important;
        background: var(--red-ui-workspace-button-background-hover);
    }
    &:not(.disabled):not(:disabled):focus {
        color: var(--red-ui-workspace-button-color-focus) !important;
    }
    &:not(.disabled):not(:disabled):active {
        color: var(--red-ui-workspace-button-color-active) !important;
        background: var(--red-ui-workspace-button-background-active);
        text-decoration: none;
    }
}

@mixin workspace-button {
    @include disable-selection;
    @include reset-a-style;

    box-sizing: border-box;
    display: inline-block;
    border: 1px solid var(--red-ui-form-input-border-color);
    text-align: center;
    margin:0;
    cursor:pointer;

    &.selected:not(.disabled):not(:disabled) {
        color: var(--red-ui-workspace-button-color-selected) !important;
        background: var(--red-ui-workspace-button-background-active);
    }
    .button-group &:not(:first-child) {
        border-left: none;
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
    }
    .button-group &:not(:last-child) {
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
    }
    .button-group-vertical & {
        display: block;
        min-width: 22px;
    }
    .button-group-vertical &:not(:first-child) {
        border-top: none;
        border-top-left-radius: 0;
        border-top-right-radius: 0;
    }
    .button-group-vertical &:not(:last-child) {
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
    }
    .button-group &:focus {
        position: relative;
    }

    .button-row &:not(:first-child) {
        margin-left: 15px;
    }

    &:focus {
        outline: 1px solid var(--red-ui-workspace-button-color-focus-outline);
        outline-offset: 1px;
    }

    &.primary {
        border-color: var(--red-ui-workspace-button-background-primary);
        color: var(--red-ui-workspace-button-color-primary) !important;
        background: var(--red-ui-workspace-button-background-primary);
        &.disabled, &.ui-state-disabled {
            background: none;
            color: var(--red-ui-workspace-button-color) !important;
            border-color: var(--red-ui-form-input-border-color);
        }
        &:not(.disabled):not(.ui-button-disabled):hover {
            border-color: var(--red-ui-workspace-button-background-primary-hover);
            background: var(--red-ui-workspace-button-background-primary-hover);
            color: var(--red-ui-workspace-button-color-primary) !important;
        }
    }
    &.secondary {
        background: none;
        &:not(:hover) {
            border-color: transparent;
        }

    }

}
.button-group-vertical {
    display: inline-block;
    vertical-align: middle;
}
.button-group:not(:last-child) {
    margin-right: 10px;
}


@mixin workspace-button-toggle {
    @include workspace-button;
    &:not(.single) {
        margin-bottom: 1px;
        &.selected:not(.disabled):not(:disabled) {
            border-bottom-width: 2px;
            border-bottom-color: var(--red-ui-form-input-border-selected-color);
            margin-bottom: 0;
            cursor: default;
        }
        &:not(.selected) {
            margin-top: 1px;
        }
    }
}
@mixin editor-button {
    @include workspace-button;
    font-size: 14px;
    padding: 6px 14px;
    margin-right: 8px;
    &:not(.disabled):hover {
        //color: var(--red-ui-workspace-button-color);
    }
    &.disabled {
        background: none;
    }
    &.disabled:focus {
        outline: none;
    }
    &.leftButton {
        float: left;
        margin-top: 1px;
    }
    &:not(.leftButton):not(:last-child) {
        margin-right: 16px;
    }
    &.ui-state-disabled {
        opacity: 1;
    }
}

@mixin component-footer {
    border-top: 1px solid var(--red-ui-primary-border-color);
    background: var(--red-ui-primary-background);
    text-align: right;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 25px;
    line-height: 25px;
    padding: 0 6px;
    user-select: none;

    .button-group:not(:last-child) {
        margin-right: 5px;
    }

}

@mixin component-footer-button {
    @include workspace-button;
    font-size: 12px;
    line-height: 18px;
    width: 19px;
    height: 19px;
    padding: 0;
    &.text-button {
        width: auto;
        padding: 0 5px;
    }
}
@mixin component-footer-button-toggle {
    @include workspace-button-toggle;
    font-size: 12px;
    line-height: 18px;
    height: 19px;
    width: 19px;
    padding: 0;
    &.text-button {
        width: auto;
        padding: 0 5px;
    }
}

@mixin component-shadow {
    box-shadow: 1px 1px 4px var(--red-ui-shadow);

}

@mixin shade {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    background: var(--red-ui-shade-color);
    z-index: 5;
}
.red-ui-shade {
    @include shade
}
