@charset "UTF-8";

@import "../core/index-noreset.scss";
@import "scss/variable";
@import "scss/mixin";
@import "scss/placeholder";

#{$tab-prefix} {
    & {
        @include box-sizing;
        width: 100%;
    }

    &-bar {
        outline: none;
        &-popup {
            overflow-y: auto;
            max-height: 480px;
        }
    }

    &-nav-container {
        position: relative;
        @include clearfix;
    }

    &-nav-wrap {
        overflow: hidden;
    }

    &-nav-scroll {
        overflow: hidden;
        white-space: nowrap;
    }

    &-scrollable #{$tab-prefix}-nav-scroll {
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        &::-webkit-scrollbar {
            display: none !important;
            width: 0 !important;
            height: 0 !important;
            -webkit-appearance: none;
            opacity: 0 !important;
        }
    }

    &-nav {
        display: inline-block;
        position: relative;
        transition: all $motion-duration-standard $motion-ease;
        list-style: none;
        padding: 0;
        margin: 0;
        &-enter,
        &-appear {
            animation: fadeInLeft .4s cubic-bezier(.78, .14, .15, .86);
            animation-fill-mode: both;
        }

        &-leave {
            animation: fadeOutLeft .2s cubic-bezier(.78, .14, .15, .86);
            animation-fill-mode: both;
        }
    }

    &-tab {
        display: inline-block;
        position: relative;
        transition: all $motion-duration-immediately $motion-linear;

        &-inner {
            position: relative;
            cursor: pointer;
            text-decoration: none;
        }

        &:before {
            content: "";
            position: absolute;
            transition: all $motion-duration-standard $motion-ease;
        }

        &.active {
            font-weight: $tab-item-font-weight-selected;
        }

        @include tabs-tab-close-icon(
            $tab-close-icon-color,
            $tab-close-icon-color-hover,
            $tab-close-icon-color-selected,
            $tab-close-icon-color-disabled
        );
    }
    &-tab:focus {
        outline: none;
    }

    &-tabpane {
        visibility: hidden;
        opacity: 0;

        &.active {
            visibility: visible;
            opacity: 1;
            height: auto;
        }

        &.hidden {
            overflow: hidden;
            height: 0 !important;
            margin: 0 !important;
            padding: 0 !important;
            border: 0 !important;
        }
    }

    /* Nav Button */
    /* ----------------- */
    &-btn-down,
    &-btn-prev,
    &-btn-next {
        position: absolute;
        top: 0;
        cursor: pointer;
        padding: 0;
        border: 0;
        outline: none;
        height: 100%;

        @include button-color($tab-nav-arrow-color-normal, $tab-nav-arrow-color-hover);

        &.disabled {
            cursor: not-allowed;
            color: $tab-nav-arrow-color-disabled;
        }
    }

    &-btn-next {
        right: $tab-nav-arrow-right-positon-right;
    }
    &-btn-prev {
        right: $tab-nav-arrow-left-positon-right;
    }
    &-btn-down {
        right: $tab-nav-arrow-down-positon-right;
    }

    &-content {
        overflow: hidden;
    }

    /* position: vertical */
    /* ----------------- */
    &-vertical > #{$tab-prefix}-bar {
        #{$tab-prefix}-nav {
            width: 100%;
        }

        #{$tab-prefix}-tab {
            display: block;
        }
    }

    /* Size */
    /* ----------------- */
    &.#{$css-prefix}medium {
        @include tabs-size(
            $tab-item-padding-tb-size-m,
            $tab-item-padding-lr-size-m,
            $tab-item-text-size-m,
            $tab-nav-tab-icon-size-m,
            $tab-nav-close-icon-size-m,
            $tab-nav-close-icon-padding-l-size-m,
            $tab-nav-scroll-padding-right-m
        );
    }

    &.#{$css-prefix}small {
        @include tabs-size(
            $tab-item-padding-tb-size-s,
            $tab-item-padding-lr-size-s,
            $tab-item-text-size-s,
            $tab-nav-tab-icon-size-s,
            $tab-nav-close-icon-size-s,
            $tab-nav-close-icon-padding-l-size-s,
            $tab-nav-scroll-padding-right-s
        );
    }

    /* shape: pure */
    /* ----------------- */
    &-pure > #{$tab-prefix}-bar {
        border-bottom: $tab-pure-divider-line;
        background-color: $tab-pure-bg-color;

        #{$tab-prefix}-nav-container {
            margin-bottom: -$tab-pure-divider-line-width;
            box-shadow: $tab-pure-divider-shadow;

            #{$tab-prefix}-tab {
                @include tabs-tab-statement(
                    $tab-pure-text-color-normal, // text color
                    $tab-pure-text-color-hover,
                    $tab-pure-text-color-selected,
                    $tab-pure-text-color-disabled,
                    transparent, // bg color
                    transparent,
                    transparent,
                    transparent
                );

                @include tabs-tab-inkbar(
                    $tab-pure-ink-bar-width,
                    $tab-pure-ink-bar-color,
                    0%,
                    0%,
                    'bottom'
                );
            }
        }
    }

    /* Shape: wrapped */
    /* --------------------- */
    &-wrapped > #{$tab-prefix}-bar {
        background: $tab-wrapped-bar-bg-color;

        #{$tab-prefix}-tab {
            @include tabs-tab-statement(
                $tab-wrapped-text-color,
                $tab-wrapped-text-color-hover,
                $tab-wrapped-text-color-selected,
                $tab-wrapped-text-color-disabled,
                $tab-wrapped-bg-color,
                $tab-wrapped-bg-color-hover,
                $tab-wrapped-bg-color-selected,
                $tab-wrapped-bg-color-disabled
            );

            @include tabs-tab-close-icon(
                $tab-close-icon-color,
                $tab-close-icon-color-hover,
                $tab-close-icon-color-selected,
                $tab-close-icon-color-disabled
            );
        }
    }

    &-wrapped:before, &-wrapped:after {
        content: "";
        display: table;
    }

    &-wrapped:after {
        clear: both;
    }

    &-wrapped > #{$tab-prefix}-content {
        position: relative;
    }

    /* Shape: wrapped(top) */
    &-wrapped#{$tab-prefix}-top > #{$tab-prefix}-bar {
        position: relative;
        #{$tab-prefix}-nav-extra {
            position: absolute;
            top: 50%;
            right: 0;
            transform: translateY(-50%);
        }

        #{$tab-prefix}-tab {
            margin-right: $tab-wrapped-tab-margin-right;
            @include tabs-tab-border(
                $tab-wrapped-bar-border,
                null,
                $tab-wrapped-tab-top-border-radius,
                $tab-wrapped-border-line-color-hover,
                $tab-wrapped-border-line-color,
                $tab-wrapped-border-line-color,
                $tab-wrapped-bg-color-selected,
                $tab-wrapped-border-line-color
            );

            @include tabs-tab-inkbar(
                $tab-wrapped-ink-bar-width,
                $tab-wrapped-ink-bar-color,
                -$tab-wrapped-border-line-width,
                $tab-wrapped-tab-corner-radius,
                'top'
            );
            border-width: $tab-wrapped-border-side-width $tab-wrapped-border-side-width $tab-wrapped-border-line-width $tab-wrapped-border-side-width;
            &.active {
                border-width: $tab-wrapped-border-line-width $tab-wrapped-border-line-width $tab-wrapped-border-line-width $tab-wrapped-border-line-width;
            }
        }
    }

    &-wrapped#{$tab-prefix}-top > #{$tab-prefix}-bar:before {
        content: '';
        position: absolute;
        top: 100%;
        width: 100%;
        height: 0;
        border-bottom: $tab-wrapped-content-border;
        transform: translateY(-$tab-wrapped-content-border-line-width);
        display: block;
    }

    /* Shape: wrapped(bottom) */
    &-wrapped#{$tab-prefix}-bottom > #{$tab-prefix}-bar {
        position: relative;
        #{$tab-prefix}-nav-extra {
            position: absolute;
            top: 50%;
            right: 0;
            transform: translateY(-50%);
        }

        #{$tab-prefix}-tab {
            margin-right: $tab-wrapped-tab-margin-right;
            @include tabs-tab-border( $tab-wrapped-bar-border, null, $tab-wrapped-tab-bottom-border-radius, $tab-wrapped-border-line-color-hover, $tab-wrapped-bg-color-selected, $tab-wrapped-border-line-color, $tab-wrapped-border-line-color, $tab-wrapped-border-line-color);
            @include tabs-tab-inkbar( $tab-wrapped-ink-bar-width, $tab-wrapped-ink-bar-color, -$tab-wrapped-border-line-width, $tab-wrapped-tab-corner-radius, 'bottom');
        }
    }

    &-wrapped#{$tab-prefix}-bottom > #{$tab-prefix}-content {
        top: $tab-wrapped-content-position-top;
        border-bottom: $tab-wrapped-content-border;
    }

    /* Shape: wrapped(left) */
    &-wrapped#{$tab-prefix}-left > #{$tab-prefix}-bar {
        float: left;
        #{$tab-prefix}-tab {
            float: none;
            margin-bottom: $tab-wrapped-tab-margin-bottom;
            @include tabs-tab-border( $tab-wrapped-bar-border, null, $tab-wrapped-tab-left-border-radius, $tab-wrapped-border-line-color-hover, $tab-wrapped-border-line-color, $tab-wrapped-bg-color-selected, $tab-wrapped-border-line-color, $tab-wrapped-border-line-color);
            @include tabs-tab-inkbar($tab-wrapped-ink-bar-width, $tab-wrapped-ink-bar-color, -$tab-wrapped-border-line-width, $tab-wrapped-tab-corner-radius, 'left');
            border-width: $tab-wrapped-border-side-width $tab-wrapped-border-line-width $tab-wrapped-border-side-width $tab-wrapped-border-side-width;
            &.active {
                border-width: $tab-wrapped-border-line-width $tab-wrapped-border-line-width $tab-wrapped-border-line-width $tab-wrapped-border-line-width;
            }
        }
    }

    &-wrapped#{$tab-prefix}-left > #{$tab-prefix}-content {
        right: $tab-wrapped-content-position-right;
        border-left: $tab-wrapped-content-border;
    }

    /* Shape: wrapped(right) */
    &-wrapped#{$tab-prefix}-right > #{$tab-prefix}-bar {
        float: right;
        #{$tab-prefix}-tab {
            float: none;
            margin-bottom: $tab-wrapped-tab-margin-bottom;
            @include tabs-tab-border( $tab-wrapped-bar-border, null, $tab-wrapped-tab-right-border-radius, $tab-wrapped-border-line-color-hover, $tab-wrapped-border-line-color, $tab-wrapped-border-line-color, $tab-wrapped-border-line-color, $tab-wrapped-bg-color-selected);
            @include tabs-tab-inkbar($tab-wrapped-ink-bar-width, $tab-wrapped-ink-bar-color, -$tab-wrapped-border-line-width, $tab-wrapped-tab-corner-radius, 'right');
            border-width: $tab-wrapped-border-side-width $tab-wrapped-border-side-width $tab-wrapped-border-side-width $tab-wrapped-border-line-width;
            &.active {
                border-width: $tab-wrapped-border-line-width $tab-wrapped-border-line-width $tab-wrapped-border-line-width $tab-wrapped-border-line-width;
            }
        }
    }

    &-wrapped#{$tab-prefix}-right > #{$tab-prefix}-content {
        right: -$tab-wrapped-content-position-right;
        border-right: $tab-wrapped-content-border;
    }

    &-capsule > #{$tab-prefix}-bar {
        #{$tab-prefix}-tab {
            transition: background-color $motion-duration-immediately $motion-linear;
            border: $tab-capsule-tab-border;
            border-right-color: transparent;
            margin-right: -$tab-capsule-tab-border-line-width;

            &:first-child {
                border-radius: $tab-capsule-corner-radius 0 0 $tab-capsule-corner-radius;
            }

            &:last-child {
                border-radius: 0 $tab-capsule-corner-radius $tab-capsule-corner-radius 0;
                border-right: $tab-capsule-tab-border;
            }

            &.active {
                border-right: $tab-capsule-tab-border;
                border-color: $tab-capsule-tab-border-line-color-active;
            }

            &.disabled {
                border-color: $tab-capsule-tab-border-line-color-disabled;
            }

            &:hover {
                z-index: 2;
                border-right: $tab-capsule-tab-border;
                border-color: $tab-capsule-tab-border-line-color-hover;
            }

            @include tabs-tab-statement(
                $tab-capsule-text-color,
                $tab-capsule-text-color-hover,
                $tab-capsule-text-color-selected,
                $tab-capsule-text-color-disabled,
                $tab-capsule-bg-color,
                $tab-capsule-bg-color-hover,
                $tab-capsule-bg-color-selected,
                $tab-capsule-bg-color-disabled
            );
        }
    }

    /* Shape: text */
    /* ------------------- */

    &-text > #{$tab-prefix}-bar {

        #{$tab-prefix}-tab {
            @include tabs-tab-statement(
                $tab-text-text-color-normal,
                $tab-text-text-color-hover,
                $tab-text-text-color-selected,
                $tab-text-text-color-disabled,
                transparent, // no bg
                transparent, // no hover bg
                transparent, // no selected bg
                transparent  // no disabled bg
            );

            &:not(:last-child):after {
                content: '';
                position: absolute;
                right: 0;
                top: calc(50% - #{$tab-text-item-sep-height / 2});
                width: $tab-text-item-sep-width;
                height: $tab-text-item-sep-height;
                background-color: $tab-text-item-sep-color;
            }
        }
    }

    &-pure > #{$tab-prefix}-bar {
        position: relative;
        #{$tab-prefix}-nav-extra {
            position: absolute;
            top: 50%;
            right: 0;
            transform: translateY(-50%);
        }
    }

    &-capsule > #{$tab-prefix}-bar {
        position: relative;
        #{$tab-prefix}-nav-extra {
            position: absolute;
            top: 50%;
            right: 0;
            transform: translateY(-50%);
        }
    }

    &-text > #{$tab-prefix}-bar {
        position: relative;
        #{$tab-prefix}-nav-extra {
            position: absolute;
            top: 50%;
            right: 0;
            transform: translateY(-50%);
        }
    }
}

@import "./rtl.scss";
