// (C) 2007-2021 GoodData Corporation
@import "mixins";

/* ==========================================================================
   Datepicker
   ========================================================================== */
.gd-datepicker {
    position: relative;

    .input-text {
        position: relative;
        padding-left: 36px;

        @include transition("padding-left", 0);
    }

    &.small {
        .input-text {
            padding-left: 30px;
        }

        .gd-datepicker-icon {
            left: 8px;
            line-height: 28px;
            font-size: 15px;
        }
    }

    &.gd-datepicker-focused {
        .input-text,
        .gd-datepicker-icon {
            z-index: 11;
        }
    }
}

.gd-datepicker-icon {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 10px;
    line-height: 30px;
    color: $gd-color-highlight;
    font-size: 18px;

    @include transition("color", 0.25s, ease-in-out);
}

.gd-datepicker-OverlayWrapper {
    z-index: 10;
}

.gd-datepicker-OverlayWrapper-xx-tl,
.gd-datepicker-OverlayWrapper-xx-bl {
    position: relative;

    .gd-datepicker-picker {
        left: 0;
    }
}

.gd-datepicker-OverlayWrapper-xx-tr,
.gd-datepicker-OverlayWrapper-xx-br {
    position: relative;

    .gd-datepicker-picker {
        right: 0;
        left: auto;
    }
}

.gd-datepicker-OverlayWrapper-bl-xx,
.gd-datepicker-OverlayWrapper-br-xx {
    position: relative;

    .gd-datepicker-picker {
        top: 0;
    }
}

.gd-datepicker-OverlayWrapper-tl-xx,
.gd-datepicker-OverlayWrapper-tr-xx {
    position: static; // use parent's position reference

    .gd-datepicker-picker {
        top: auto;
        bottom: 100%;

        @include box-shadow(0 0 5px 0 transparentize($gd-datepicker-shadow-color, 0.85));
    }
}

.gd-datepicker-picker {
    position: absolute;
    padding: 20px 15px 15px;
    background: white;
    user-select: none;
    text-align: left;

    @include box-shadow(0 2px 5px 0 transparentize($gd-datepicker-shadow-color, 0.85));

    .DayPicker {
        position: relative;
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        user-select: none;
    }

    .DayPicker-Month {
        display: table;
        border-spacing: 0;
        border-collapse: collapse;
        user-select: none;
    }

    .DayPicker-NavBar {
        position: absolute;
        right: 0;
        left: 0;
        padding: 0 0.5rem;
    }

    .DayPicker-NavButton {
        position: absolute;
        width: 1.5rem;
        height: 1.5rem;
        cursor: pointer;
        background-repeat: no-repeat;
        background-position: center;
        background-size: contain;
    }

    .DayPicker-NavButton--prev,
    .DayPicker-NavButton--next {
        position: absolute;
        top: -0.25em;
        box-sizing: content-box;
        width: 2em;
        height: 2em;
        text-align: center;

        &::before {
            display: block;
            color: $gd-color-highlight;
            padding-top: 0.15em;
            font-family: Indigo, sans-serif;
            font-size: 18px;
        }

        &:hover::before {
            color: $gd-color-state-blank;
        }
    }

    .DayPicker-NavButton--prev {
        left: 0.15em;

        &::before {
            content: "\e630";
        }
    }

    .DayPicker-NavButton--next {
        right: 0.35em;

        &::before {
            content: "\e631";
        }
    }

    .DayPicker-NavButton--next:hover,
    .DayPicker-NavButton--prev:hover {
        color: $gd-color-highlight;
        cursor: pointer;
    }

    .DayPicker-Caption {
        display: table-caption;
        color: #000;
        cursor: default;
        margin-left: 0.25em;
        margin-right: 0.25em;
        margin-bottom: 1em;
        font-family: $gd-font-primary;
        font-size: 17px;
        text-align: center;
    }

    .DayPicker-Weekdays {
        display: table-header-group;
    }

    .DayPicker-WeekdaysRow {
        display: table-row;
    }

    .DayPicker-Weekday {
        display: table-cell;
        color: $gd-color-state-blank;
        cursor: help;
        padding-bottom: 0.5em;
        font-family: $gd-font-primary;
        font-weight: 400;
        font-size: 13px;
        text-align: center;

        abbr {
            text-decoration: none;
            border-bottom: none;
        }
    }

    .DayPicker-Body {
        display: table-row-group;
    }

    .DayPicker-Week {
        display: table-row;
    }

    .DayPicker-Day {
        display: table-cell;
        padding: 0.3125em 0.55em;
        color: $gd-color-text;
        font-family: $gd-font-primary;
        font-size: 14px;
        font-weight: 700;
        text-align: center;

        &:hover {
            background: $gd-datepicker-hover-bgcolor;
            cursor: pointer;
        }
    }

    .DayPicker--interactionDisabled .DayPicker-Day {
        cursor: default;
    }

    .DayPicker-Day--disabled {
        color: $gd-color-disabled;
        cursor: default;
        font-weight: 400;
    }

    .DayPicker-Day--outside {
        color: $gd-color-disabled;
        cursor: default;
        font-weight: 400;
    }

    .DayPicker-Day--selected:not(.DayPicker-Day--disabled):not(.DayPicker-Day--outside) {
        color: $gd-color-text-light;
        background: $gd-color-highlight;
    }
}
