@import "../variables";
@import "../mixins";

.Dropdown {
    display: block;
    font-size: $font_size_default;
    font-weight: $weight_book;
    position: relative;
    text-transform: none;
    user-select: none;
}

.Dropdown-wrapper {
    display: block;
    position: relative;
}

.Dropdown-select-node {
    height: 0;
    left: 0;
    opacity: 0;
    position: absolute;
    top: 0;
    width: 0;

    &,
    &:focus {
        border: 0 none;
        box-shadow: 0;
        outline: none;
    }
}

.Dropdown-select-option {
    height: 0;
    opacity: 0;
    position: absolute;
    width: 0;
    z-index: -10;

    &,
    &:focus {
        background: none;
        border: 0 none;
        box-shadow: 0;
        outline: none;
    }
}

/* stylelint-disable no-descending-specificity */
.Dropdown-trigger {
    @include control;
    @include inline-middle;

    cursor: default;
    font-size: $font_size_default;
    position: relative;
    text-align: left;
    width: 100%;
    z-index: 2;

    .Dropdown-type-default & {
        @include control-default;
    }

    .Dropdown-type-primary & {
        @include control-primary;
    }

    .Dropdown-is-open .Dropdown-type-default & {
        @include control-default-active;
    }

    .Dropdown-is-open .Dropdown-type-primary & {
        @include control-primary-active;
    }

    .Dropdown-select-node:disabled + .Dropdown-type-default &,
    .Dropdown-type-default.Dropdown-is-disabled & {
        @include control-default-disabled;
    }

    .Dropdown-select-node:disabled + .Dropdown-type-primary &,
    .Dropdown-type-primary.Dropdown-is-disabled & {
        @include control-primary-disabled;
    }

    .Form-item-error & {
        border-color: $color_danger;
    }
}
/* stylelint-enable no-descending-specificity */

.Dropdown-menu {
    @include dropdown-menu;

    .Body & {
        overflow-y: auto;
    }

    max-height: $list_max-height;
    min-width: 100%;
    overflow: hidden;
    z-index: 50;

    .Dropdown-align-center & {
        left: 0;
        right: 0;
    }

    .Dropdown-align-left & {
        left: 0;
        right: auto;
    }

    .Dropdown-align-right & {
        left: auto;
        right: 0;
    }
}

.Dropdown-list,
.Dropdown-list-item {
    list-style-type: none;
    margin: 0;
    padding: 0;
}

.Dropdown-list-item {
    @include transition;
    @include dropdown-item;

    cursor: default;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 100%;
}

.Dropdown-icon {
    display: inline-block;
    transform-origin: 50%, 50%;
    transition: $toggle_transition;

    .Dropdown-is-open & {
        transform: rotate(-180deg);
    }
}

.Dropdown-icon-wrapper,
.Dropdown-content,
.Dropdown-content-static {
    @include inline-middle;
}

.Dropdown-content,
.Dropdown-content-static {
    overflow: hidden;
    width: 100%;
}

.Dropdown-content-static {
    font-size: $_font_size_label_default;
    font-weight: $weight_bold;
    text-transform: uppercase;
}

.Dropdown-content-text,
.Dropdown-content-text-static {
    display: inline-block;
    overflow: hidden;
    padding-right: $offset_main * 2;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 100%;

    .Dropdown-hidden-arrow & {
        padding-right: 0;
    }
}

.Dropdown-icon-wrapper {
    height: 100%;
    padding: $offset_main * .5 $offset_main * 1.5 $offset_main * .5 $offset_main;
    position: absolute;
    right: 0;
}

.Dropdown-fixed,
.Dropdown-filterby {
    width: $offset_main * 30;
}

.Dropdown-inline {
    float: left;
    margin-right: $offset_main;
}

.Dropdown-dateselect {
    width: $offset_main * 12;
}
