@use '../mixins' as *;

////
/// @package theming
/// @group animations
/// @access public
/// @author <a href="https://github.com/simeonoff" target="_blank">Simeon Simeonoff</a>
////

/// @requires {mixin} keyframes
@mixin swing-top-fwd {
    @include keyframes(swing-top-fwd) {
        0% {
            transform: rotateX(0);
            transform-origin: top;
        }

        100% {
            transform: rotateX(180deg);
            transform-origin: top;
        }
    }
}

/// @requires {mixin} keyframes
@mixin swing-bottom-right-fwd {
    @include keyframes(swing-bottom-right-fwd) {
        0% {
            transform: rotate3d(-1, 1, 0, 0deg);
            transform-origin: 100% 100%;
        }

        100% {
            transform: rotate3d(-1, 1, 0, 180deg);
            transform-origin: 100% 100%;
        }
    }
}

/// @requires {mixin} keyframes
@mixin swing-left-fwd {
    @include keyframes(swing-left-fwd) {
        0% {
            transform: rotateY(0);
            transform-origin: left bottom;
        }

        100% {
            transform: rotateY(-180deg);
            transform-origin: left bottom;
        }
    }
}

/// @requires {mixin} keyframes
@mixin swing-top-bck {
    @include keyframes(swing-top-bck) {
        0% {
            transform: rotateX(0);
            transform-origin: top;
        }

        100% {
            transform: rotateX(-180deg);
            transform-origin: top;
        }
    }
}

/// @requires {mixin} keyframes
@mixin swing-bottom-right-bck {
    @include keyframes(swing-bottom-right-bck) {
        0% {
            transform: rotate3d(-1, 1, 0, 0deg);
            transform-origin: 100% 100%;
        }

        100% {
            transform: rotate3d(-1, 1, 0, -180deg);
            transform-origin: 100% 100%;
        }
    }
}

/// @requires {mixin} keyframes
@mixin swing-left-bck {
    @include keyframes(swing-left-bck) {
        0% {
            transform: rotateY(0);
            transform-origin: left bottom;
        }

        100% {
            transform: rotateY(180deg);
            transform-origin: left bottom;
        }
    }
}

/// @requires {mixin} keyframes
@mixin swing-top-right-fwd {
    @include keyframes(swing-top-right-fwd) {
        0% {
            transform: rotate3d(1, 1, 0, 0deg);
            transform-origin: 100% 0%;
        }

        100% {
            transform: rotate3d(1, 1, 0, 180deg);
            transform-origin: 100% 0%;
        }
    }
}

/// @requires {mixin} keyframes
@mixin swing-bottom-fwd {
    @include keyframes(swing-bottom-fwd) {
        0% {
            transform: rotateX(0);
            transform-origin: bottom;
        }

        100% {
            transform: rotateX(-180deg);
            transform-origin: bottom;
        }
    }
}

/// @requires {mixin} keyframes
@mixin swing-top-left-fwd {
    @include keyframes(swing-top-left-fwd) {
        0% {
            transform: rotate3d(-1, 1, 0, 0deg);
            transform-origin: 0% 0%;
        }

        100% {
            transform: rotate3d(-1, 1, 0, -180deg);
            transform-origin: 0% 0%;
        }
    }
}

/// @requires {mixin} keyframes
@mixin swing-top-right-bck {
    @include keyframes(swing-top-right-bck) {
        0% {
            transform: rotate3d(1, 1, 0, 0deg);
            transform-origin: 100% 0%;
        }

        100% {
            transform: rotate3d(1, 1, 0, -180deg);
            transform-origin: 100% 0%;
        }
    }
}

/// @requires {mixin} keyframes
@mixin swing-bottom-bck {
    @include keyframes(swing-bottom-bck) {
        0% {
            transform: rotateX(0);
            transform-origin: bottom;
        }

        100% {
            transform: rotateX(180deg);
            transform-origin: bottom;
        }
    }
}

/// @requires {mixin} keyframes
@mixin swing-top-left-bck {
    @include keyframes(swing-top-left-bck) {
        0% {
            transform: rotate3d(-1, 1, 0, 0deg);
            transform-origin: 0% 0%;
        }

        100% {
            transform: rotate3d(-1, 1, 0, 180deg);
            transform-origin: 0% 0%;
        }
    }
}

/// @requires {mixin} keyframes
@mixin swing-right-fwd {
    @include keyframes(swing-right-fwd) {
        0% {
            transform: rotateY(0);
            transform-origin: right;
        }

        100% {
            transform: rotateY(180deg);
            transform-origin: right;
        }
    }
}

/// @requires {mixin} keyframes
@mixin swing-bottom-left-fwd {
    @include keyframes(swing-bottom-left-fwd) {
        0% {
            transform: rotate3d(1, 1, 0, 0deg);
            transform-origin: 0% 100%;
        }

        100% {
            transform: rotate3d(1, 1, 0, -180deg);
            transform-origin: 0% 100%;
        }
    }
}

/// @requires {mixin} keyframes
@mixin swing-right-bck {
    @include keyframes(swing-right-bck) {
        0% {
            transform: rotateY(0);
            transform-origin: right;
        }

        100% {
            transform: rotateY(-180deg);
            transform-origin: right;
        }
    }
}

/// @requires {mixin} keyframes
@mixin swing-bottom-left-bck {
    @include keyframes(swing-bottom-left-bck) {
        0% {
            transform: rotate3d(1, 1, 0, 0deg);
            transform-origin: 0% 100%;
        }

        100% {
            transform: rotate3d(1, 1, 0, 180deg);
            transform-origin: 0% 100%;
        }
    }
}
