/* Avatar
******************************************************************************* */

/* Avatar Styles */
.avatar {
  --#{$prefix}avatar-size: #{$avatar-size};
  --#{$prefix}avatar-group-border: #{$avatar-group-border};
  --#{$prefix}avatar-initial-inline: 3px;
  --#{$prefix}avatar-initial-bg: #{$avatar-initial-bg};
  position: relative;
  block-size: var(--#{$prefix}avatar-size);
  cursor: pointer;
  inline-size: var(--#{$prefix}avatar-size);

  .avatar-initial {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--#{$prefix}avatar-initial-bg);
    color: var(--#{$prefix}white);
    font-size: var(--#{$prefix}avatar-initial);
    font-weight: $font-weight-medium;
    inset: 0;
    text-transform: uppercase;
  }

  &.avatar-online,
  &.avatar-offline,
  &.avatar-away,
  &.avatar-busy {
    &::after {
      position: absolute;
      @include border-radius(100%);
      block-size: calc(var(--#{$prefix}avatar-size) * .2);
      box-shadow: 0 0 0 2px var(--#{$prefix}white);
      content: "";
      inline-size: calc(var(--#{$prefix}avatar-size) * .2);
      inset-block-end: 0;
      inset-inline-end: var(--#{$prefix}avatar-initial-inline);
    }
  }
  img {
    block-size: 100%;
    inline-size: 100%;
  }

  &.avatar-online::after {
    background-color: var(--#{$prefix}success);
  }

  &.avatar-offline::after {
    background-color: var(--#{$prefix}secondary);
  }

  &.avatar-away::after {
    background-color: var(--#{$prefix}warning);
  }

  &.avatar-busy::after {
    background-color: var(--#{$prefix}danger);
  }
  [class*="avatar-shadow-"] {
    background-color: var(--#{$prefix}avatar-icon-bg);
    box-shadow: 0 0 0 .25rem rgba(var(--#{$prefix}avatar-icon-shadow-color), .06);
    color: var(--#{$prefix}avatar-icon-color);
  }
}

/* Pull up avatar style */
.pull-up {
  transition: all .25s ease;

  &:hover {
    z-index: 30;
    @include border-radius(50%);
    box-shadow: var(--#{$prefix}box-shadow);
    transform: translateY(-4px) scale(1.02);
  }
}


@each $size, $values in $avatar-sizes {
  .avatar-#{$size} {
    --#{$prefix}avatar-size: #{nth($values, 1)};
    --#{$prefix}avatar-initial: #{nth($values, 2)};
    --#{$prefix}avatar-initial-inline: #{nth($values, 3)};
  }
}

/* Avatar Group SCSS */
.avatar-group {
  .avatar {
    margin-inline-start: -.8rem;
    transition: all .25s ease;

    &:first-child {
      margin-inline-start: 0;
    }

    img,
    .avatar-initial {
      border: 2px solid var(--#{$prefix}avatar-group-border);
      color: var(--#{$prefix}heading-color);
    }

    &:hover {
      z-index: 30;
      transition: all .25s ease;
    }
  }

  // Avatar Group Sizings
  .avatar-xs {
    margin-inline-start: -.65rem;
  }

  .avatar-sm {
    margin-inline-start: -.75rem;
  }

  .avatar-md {
    margin-inline-start: -.9rem;
  }

  .avatar-lg {
    margin-inline-start: -1.5rem;
  }

  .avatar-xl {
    margin-inline-start: -1.75rem;
  }
}

@each $state in map-keys($theme-colors) {
  .avatar .avatar-shadow-#{$state} {
    --#{$prefix}avatar-icon-color: var(--#{$prefix}#{$state});
    --#{$prefix}avatar-icon-shadow-color: var(--#{$prefix}#{$state}-rgb);
    --#{$prefix}avatar-icon-bg: var(--#{$prefix}#{$state}-bg-subtle);
  }
}

/* Avatar dark css */
@if $enable-dark-mode {
  @include color-mode(dark) {
    /* Avatar Status indication */
    .avatar {
      --#{$prefix}avatar-initial-bg: #373b50;
      &.avatar-online,
      &.avatar-offline,
      &.avatar-away,
      &.avatar-busy {
        &::after {
          box-shadow: 0 0 0 2px var(--#{$prefix}body-bg);
        }
      }
    }
  }
}
