@import '../abstracts/variables';

.carousel {
    display: flex !important;
    position: relative;
    margin: 0px !important;
    clip-path: inset(0px 0px 0px 0px);
    overflow: hidden;

    @each $color in $palette-colors {
        &.carousel-#{$color} {
            color: var(--palette-#{$color}-text);
        }
    }
}

.carousel-elements-rtl {
    transform: rotate(180deg) !important;
}

.carousel-item {
    position: absolute;
    left: 0px;
    right: 0px;
    top: 0px;
    bottom: 0px;
    margin: inherit;
    padding: inherit;
    z-index: 2;

    @each $color in $palette-colors {
        &.carousel-item-#{$color} {
            color: var(--palette-#{$color}-text);
            background-color: var(--palette-#{$color});
        }
    }
}

.carousel-item-exit {
    z-index: 1;
}

/* ### Transitions ### */

/*Fade
*/ 
@keyframes carousel-transition-fade-in-keyframe {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes carousel-transition-fade-out-keyframe {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
    }
}


.carousel-transition-fade-in {
    animation: 0.5s carousel-transition-fade-in-keyframe
}

.carousel-transition-fade-out {
    animation: 0.5s carousel-transition-fade-out-keyframe;
    animation-fill-mode: forwards;
}

.carousel-transition-none {
    display: none;
}



/*Slide
*/
@keyframes carousel-transition-slide-next-enter-keyframe {
    from {
        transform: translate3d(100%, 0, 0);
        visibility: visible;
    }

    to {
        transform: translate3d(0, 0, 0);
    }
}

@keyframes carousel-transition-slide-next-rtl-enter-keyframe {
    from {
        transform: translate3d(-100%, 0, 0);
        visibility: visible;
    }

    to {
        transform: translate3d(0, 0, 0);
    }
}

@keyframes carousel-transition-slide-next-exit-keyframe {
    from {
        transform: translate3d(0, 0, 0);
        visibility: visible;
    }

    to {
        transform: translate3d(-100%, 0, 0);
    }
}

@keyframes carousel-transition-slide-next-rtl-exit-keyframe {
    from {
        transform: translate3d(0, 0, 0);
        visibility: visible;
    }

    to {
        transform: translate3d(100%, 0, 0);
    }
}

.carousel-transition-slide-next-enter {
    animation: 0.5s carousel-transition-slide-next-enter-keyframe
}

.carousel-transition-slide-next-rtl-enter {
    animation: 0.5s carousel-transition-slide-next-rtl-enter-keyframe;
}

.carousel-transition-slide-next-exit {
    animation: 0.5s carousel-transition-slide-next-exit-keyframe;
    animation-fill-mode: forwards;

}

.carousel-transition-slide-next-rtl-exit {
    animation: 0.5s carousel-transition-slide-next-rtl-exit-keyframe;
    animation-fill-mode: forwards;
}



@keyframes carousel-transition-slide-prev-enter-keyframe {
    from {
        transform: translate3d(-100%, 0, 0);
        visibility: visible;
    }

    to {
        transform: translate3d(0, 0, 0);
    }
}

@keyframes carousel-transition-slide-prev-rtl-enter-keyframe {
    from {
        transform: translate3d(100%, 0, 0);
        visibility: visible;
    }

    to {
        transform: translate3d(0, 0, 0);
    }
}

@keyframes carousel-transition-slide-prev-exit-keyframe {
    from {
        transform: translate3d(0, 0, 0);
        visibility: visible;
    }

    to {
        transform: translate3d(100%, 0, 0);
    }
}

@keyframes carousel-transition-slide-prev-rtl-exit-keyframe {
    from {
        transform: translate3d(0, 0, 0);
        visibility: visible;
    }

    to {
        transform: translate3d(-100%, 0, 0);
    }
}

.carousel-transition-slide-prev-enter {
    animation: 0.5s carousel-transition-slide-prev-enter-keyframe
}

.carousel-transition-slide-prev-rtl-enter {
    animation: 0.5s carousel-transition-slide-prev-rtl-enter-keyframe;
}

.carousel-transition-slide-prev-exit {
    animation: 0.5s carousel-transition-slide-prev-exit-keyframe;
    animation-fill-mode: forwards;
}

.carousel-transition-slide-prev-rtl-exit {
    animation: 0.5s carousel-transition-slide-prev-rtl-exit-keyframe;
    animation-fill-mode: forwards;
}

