@import '../_mixins.scss';
@import '../_vars.scss';

@mixin visible-transform($placement) {
  @if ($placement == 'top') {
    transform: perspective(700px);
  } @else if ($placement == 'bottom') {
    transform: perspective(700px);
  } @else if ($placement == 'left') {
    transform: perspective(700px);
  } @else if ($placement == 'right') {
    transform: perspective(700px);
  }
}

@mixin hidden-transform($placement) {
  @if ($placement == 'top') {
    transform: perspective(700px) translateY(10px) rotateX(90deg);
  } @else if ($placement == 'bottom') {
    transform: perspective(700px) translateY(-10px) rotateX(-90deg);
  } @else if ($placement == 'left') {
    transform: perspective(700px) translateX(10px) rotateY(-90deg);
  } @else if ($placement == 'right') {
    transform: perspective(700px) translateX(-10px) rotateY(90deg);
  }
}

.#{$namespace-prefix}-box {
  &[data-animation='perspective-extreme'] {
    @each $placement in $placements {
      &[data-placement^='#{$placement}'] {
        transform-origin: nth($origins, index($placements, $placement));

        &[data-state='visible'] {
          @include visible-transform($placement);
        }

        &[data-state='hidden'] {
          @include hidden-transform($placement);
        }
      }
    }

    &[data-state='hidden'] {
      opacity: 0.5;
    }
  }
}
