@use '@angular/material' as mat;
@import "./../../lib/scss/sc-variables";

:host {
  --info-padding: #{$image-card-info-padding};
  --border-radius: #{$image-card-border-radius};

  position: relative;
  height: 100%;

  &::before {
    content: " ";
    padding-top: 100%;
    display: block;
  }
}

.sc-image-card {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  border-radius: var(--border-radius);
  overflow: hidden;
  backdrop-filter: blur(0px);
  z-index: 0;
  @include mat.elevation(1);
  @include mat.elevation-transition;

  &:hover {
    @include mat.elevation(12);
    @include mat.elevation-transition;
  }

  &__content {
    // position: relative;
    // overflow: hidden;
    width: 100%;
    height: 100%;
    cursor: pointer;
  }

  &__grid {
    height: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr) auto;
    justify-items: center;
    align-items: center;
  }

  &__image {
    grid-column: 1 / 2;
    grid-row: 1 / 3;
    object-fit: cover;
    width: 100%;
    height: 100%;
  }

  &__action {
    position: absolute;
    right: 0;
    top: 0;
    padding: calc(var(--info-padding) / 2);
    z-index: 1;

    .mat-icon-button {
      margin-left: 0.1em;
    }

    /* for quick buttons  animation*/
    display: flex;
    justify-content: flex-end;
    width: 49px;
    height: 48px;
    overflow: hidden;
    transition: ease-in-out all 0.51s;

    &:hover {
      width: 100%;
    }
  }

  &__loader {
    grid-column: 1 / 2;
    grid-row: 1 / 2;
  }

  &__info {
    grid-column: 1 / 2;
    grid-row: 2 / 3;
    width: 100%;
    // border-bottom-left-radius: var(--border-radius);
    // border-bottom-right-radius: var(--border-radius);
    padding: calc(var(--info-padding) / 4) var(--info-padding);
    z-index: 0;
  }

  &__description {
    padding: calc(var(--info-padding) / 4) 0;

    &-text {
      margin-bottom: 0;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
  }

  &__meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: calc(var(--info-padding) / 4) 0;
    position: relative;
  }

  &__tag {
    border-radius: 20px;
    display: flex;
    padding: 0 8px;
    margin-right: 8px;
  }
}

.tags-list {
  margin: 0 !important;
  top: 1em;
  background: rgba(10, 10, 10, 0.6);
  padding: 0.3em;
  border-radius: 5px;
  color: white;
  span:not(:last-of-type):after {
    content: ",";
    margin-right: 0.5em;
  }
}

.selection-area {
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1000;
  user-select: none;

  & ~ .sc-image-card__image {
    opacity: 0.5;
    transition: opacity $hover-transition-duration linear;
  }

  &.selected ~ .sc-image-card__image {
    opacity: 1;
    transition: opacity $hover-transition-duration linear;
  }

  .mat-checkbox {
    margin: 8px;
    position: absolute;
    padding: 7px 9px;
    top: 0;
  }
}
