@use 'mixins/mixins' as *;
@use 'mixins/var' as *;
@use 'common/var' as *;

:root,
:host {
  --xzx-image-preview-index-text-color: var(--xzx-text-white-1);
  --xzx-image-preview-index-font-size: var(--xzx-text-sm);
  --xzx-image-preview-index-line-height: var(--xzx-text-lh-md);
  --xzx-image-preview-index-text-shadow: 0 1px 1px var(--xzx-gray-8);
  --xzx-image-preview-overlay-background: rgba(0, 0, 0, 0.9);
  --xzx-image-preview-close-icon-size: 22px;
  --xzx-image-preview-close-icon-color: var(--xzx-gray-5);
  --xzx-image-preview-close-icon-margin: var(--xzx-padding-md);
  --xzx-image-preview-close-icon-z-index: 1;
}

@include b(image-preview) {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  background-color: transparent;
  transform: none;

  &__swipe {
    height: 100%;

    &-item {
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
    }
  }

  &__cover {
    position: absolute;
    top: 0;
    left: 0;
  }

  &__image,
  &__image-wrap {
    width: 100%;
    transition-property: transform;

    &--vertical {
      width: auto;
      height: 100%;
    }

    img,
    video {
      // disable desktop browser image drag
      -webkit-user-drag: none;
    }

    .xzx-image {
      &__error {
        top: 30%;
        height: 40%;
      }

      &__error-icon {
        font-size: 36px;
      }

      &__loading {
        background-color: transparent;
      }
    }
  }

  &__index {
    position: absolute;
    top: var(--xzx-padding-md);
    left: 50%;
    color: var(--xzx-image-preview-index-text-color);
    font-size: var(--xzx-image-preview-index-font-size);
    line-height: var(--xzx-image-preview-index-line-height);
    text-shadow: var(--xzx-image-preview-index-text-shadow);
    transform: translate(-50%, 0);
  }

  &__overlay {
    background: var(--xzx-image-preview-overlay-background);
  }

  &__close-icon {
    position: absolute;
    z-index: var(--xzx-image-preview-close-icon-z-index);
    color: var(--xzx-image-preview-close-icon-color);
    font-size: var(--xzx-image-preview-close-icon-size);

    &--top-left {
      top: var(--xzx-image-preview-close-icon-margin);
      left: var(--xzx-image-preview-close-icon-margin);
    }

    &--top-right {
      top: var(--xzx-image-preview-close-icon-margin);
      right: var(--xzx-image-preview-close-icon-margin);
    }

    &--bottom-left {
      bottom: var(--xzx-image-preview-close-icon-margin);
      left: var(--xzx-image-preview-close-icon-margin);
    }

    &--bottom-right {
      right: var(--xzx-image-preview-close-icon-margin);
      bottom: var(--xzx-image-preview-close-icon-margin);
    }
  }
}
