$tabs-focused-outline: none !default;
$tabs-items-focused-outline: none !default;
$tabs-link-focus-active-border-bottom-color: $tabs-link-active-border-bottom-color !default;
$tabs-link-focus-border-bottom-color: $tabs-link-hover-border-bottom-color !default;
$tabs-boxed-link-focus-active-background-color: $tabs-boxed-link-active-background-color !default;
$tabs-boxed-link-focus-background-color: $tabs-boxed-link-hover-background-color !default;
$tabs-boxed-link-focus-active-border-bottom-color: $tabs-boxed-link-active-border-bottom-color !default;
$tabs-boxed-link-focus-border-bottom-color: $tabs-boxed-link-hover-border-bottom-color !default;
$tabs-toggle-link-focus-active-background-color: $tabs-toggle-link-active-background-color !default;
$tabs-toggle-link-focus-background-color: $tabs-toggle-link-hover-background-color !default;
$tabs-toggle-link-focus-active-border-color: $tabs-toggle-link-active-border-color !default;
$tabs-toggle-link-focus-border-color: $tabs-toggle-link-hover-border-color !default;

.b-tabs {
    .tabs {
        margin-bottom: 0;
        flex-shrink: 0;
        div {
            a:focus {
                outline: $tabs-focused-outline;
                border-bottom-color: $tabs-link-focus-active-border-bottom-color;
            }
 
            a {
                &:not(.is-active) {
                    &:focus {
                        border-bottom-color: $tabs-link-focus-border-bottom-color;
                    }
                }
                &.is-disabled {
                    pointer-events: none;
                    cursor: not-allowed;
                    opacity: 0.5;
                }
            }
        }

        // Styles
        &.is-boxed {
            div {
                a:focus {
                    background-color: $tabs-boxed-link-focus-active-background-color;
                    border-bottom-color: $tabs-boxed-link-focus-active-border-bottom-color;
                }
                a {
                    &:not(.is-active) {
                        &:focus {
                            background-color: $tabs-boxed-link-focus-background-color;
                            border-bottom-color: $tabs-boxed-link-focus-border-bottom-color;
                        }
                    }
                }
                
            }
        }
        &.is-toggle {
            div {
                a:focus {
                    background-color: $tabs-toggle-link-focus-active-background-color;
                    border-color: $tabs-toggle-link-focus-active-border-color;
                }
                a {
                    &:not(.is-active) {
                        &:focus {
                            background-color: $tabs-toggle-link-focus-background-color;
                            border-color: $tabs-toggle-link-focus-border-color;
                        }
                    }
                }
                
            }
        }
    }
    .tab-content {
        position: relative;
        overflow: visible;
        display: flex;
        flex-direction: column;
        padding: 1rem;
        .tab-item {
            flex-shrink: 0;
            flex-basis: auto;

            &:focus {
                outline: $tabs-items-focused-outline;
            }
        }
        &.is-transitioning {
            overflow: hidden;
        }
    }
    &:not(:last-child) {
        margin-bottom: 1.5rem;
    }
    &.is-fullwidth {
        width: 100%;
    }
    &.is-vertical {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        > .tabs {
            // ul {
                flex-direction: column;
                border-bottom-color: transparent;

                div {
                    width: 100%;

                    a {
                        justify-content: left;
                    }
                }
            // }

            &.is-boxed {
                div {
                    a {
                        border-bottom-color: transparent !important;
                        border-right-color: $tabs-border-bottom-color !important;
                        border-radius: $tabs-boxed-link-radius 0 0 $tabs-boxed-link-radius;
                    }

                    a {
                        &.is-active {
                            border-bottom-color: $tabs-border-bottom-color !important;
                            border-right-color: transparent !important;
                        }    
                    }
                }
            }
            &.is-toggle {
                div {
                    + div {
                        margin-left: 0;
                    }
                    &:first-child {
                        a {
                            border-radius: $tabs-toggle-link-radius $tabs-toggle-link-radius 0 0;
                        }
                    }
                    &:last-child {
                        a {
                            border-radius: 0 0 $tabs-toggle-link-radius $tabs-toggle-link-radius;
                        }
                    }
                }
            }
            &.is-fullwidth {
                div {
                    a {
                        height: 100%;
                    }
                }
            }
        }
        > .tab-content {
            flex-grow: 1;
        }

        &.is-right {
            flex-direction: row-reverse;

            > .tabs {
                // ul {
                    a {
                        flex-direction: row-reverse;

                        .icon:first-child {
                            margin-right: 0;
                            margin-left: 0.5em
                        }
                    }
                // }

                &.is-boxed {
                    div {
                        a {
                            border-bottom-color: transparent !important;
                            border-right-color: transparent !important;
                            border-left-color: $tabs-border-bottom-color !important;
                            border-radius: 0 $tabs-boxed-link-radius $tabs-boxed-link-radius 0;
                        }
                        
                        a {
                            &.is-active {
                                border-bottom-color: $tabs-border-bottom-color !important;
                                border-right-color: $tabs-border-bottom-color !important;
                                border-left-color: transparent !important;
                            }
                            
                        }
                    }
                }
            }
        }
    }
    &.is-multiline {
        > .tabs {
            flex-wrap: wrap;
            flex-shrink: 1;
        }
    }


    // ul or li -> div
    // a -> a 

    // Hack to Bulma (ul, li, .. style)
    .tabs {
       
        div {
           
            a {
                height: 100%;
                &.is-active {
                    border-bottom-color: $tabs-link-active-border-bottom-color;
                    color: $tabs-link-active-color;
                }
            }
        }
        

        // ul classes -> nav
        display: flex;
        flex-grow: 1;
        flex-shrink: 0;
        justify-content: flex-start;

        &:not(.is-toggle), &:not(.is-toggle-rounded) {
            border-bottom-color: $tabs-border-bottom-color;
            border-bottom-style: $tabs-border-bottom-style;
            border-bottom-width: $tabs-border-bottom-width;
        }

        &.is-toggle, &.is-toggle-rounded {
            a {
                border-color: $tabs-toggle-link-border-color;
                border-style: $tabs-toggle-link-border-style;
                border-width: $tabs-toggle-link-border-width;
                margin-bottom: 0;
                position: relative;
                &:hover {
                    background-color: $tabs-toggle-link-hover-background-color;
                    border-color: $tabs-toggle-link-hover-border-color;
                    z-index: 2;
                }
            }
            div {
                & + div {
                    @include ltr-property("margin", -#{$tabs-toggle-link-border-width}, false);
                }
                &:first-child a {
                    @include ltr {
                        border-top-left-radius: $tabs-toggle-link-radius;
                        border-bottom-left-radius: $tabs-toggle-link-radius;
                    }
                    @include rtl {
                        border-top-right-radius: $tabs-toggle-link-radius;
                        border-bottom-right-radius: $tabs-toggle-link-radius;
                    }
                }
                &:last-child a {
                    @include ltr {
                        border-top-right-radius: $tabs-toggle-link-radius;
                        border-bottom-right-radius: $tabs-toggle-link-radius;
                    }
                    @include rtl {
                        border-top-left-radius: $tabs-toggle-link-radius;
                        border-bottom-left-radius: $tabs-toggle-link-radius;
                    }
                }
                
                a {
                    &.is-active {
                        background-color: $tabs-toggle-link-active-background-color;
                        border-color: $tabs-toggle-link-active-border-color;
                        color: $tabs-toggle-link-active-color;
                        z-index: 1;
                    }
                }
            }
        }

        &.is-toggle-rounded {
            div {
                &:first-child a {
                    @include ltr {
                        border-bottom-left-radius: $radius-rounded;
                        border-top-left-radius: $radius-rounded;
                        padding-left: 1.25em;
                    }
                    @include rtl {
                        border-bottom-right-radius: $radius-rounded;
                        border-top-right-radius: $radius-rounded;
                        padding-right: 1.25em;
                    }
                }
                &:last-child a {
                    @include ltr {
                        border-bottom-right-radius: $radius-rounded;
                        border-top-right-radius: $radius-rounded;
                        padding-right: 1.25em;
                    }
                    @include rtl {
                        border-bottom-left-radius: $radius-rounded;
                        border-top-left-radius: $radius-rounded;
                        padding-left: 1.25em;
                    }
                }
            }
        }

        &.is-boxed {
            a {
                border: 1px solid transparent;
                @include ltr {
                    border-radius: $tabs-boxed-link-radius $tabs-boxed-link-radius 0 0;
                }
                @include rtl {
                    border-radius: 0 0 $tabs-boxed-link-radius $tabs-boxed-link-radius;
                }
                &:hover {
                    background-color: $tabs-boxed-link-hover-background-color;
                    border-bottom-color: $tabs-boxed-link-hover-border-bottom-color;
                }
            }
            div {
                a  {
                    &.is-active {
                        background-color: $tabs-boxed-link-active-background-color;
                        border-color: $tabs-boxed-link-active-border-color;
                        border-bottom-color: $tabs-boxed-link-active-border-bottom-color !important;
                    }
                }
            }
        }
    }
}