@use '_sizes';
@use '_icons';

%shared-border-styles {
  border: 1px solid var(--token-color-palette-neutral-700);
  position: relative;
}

.draco-avatar {
  object-fit: cover;
  position: relative;
  display: inline-block;
  box-sizing: border-box;
  overflow: hidden;
  @extend %shared-border-styles;

  img {
    display: block;
    position: relative;

    // Hide broken image icon
    &[src=""],
    &:not([src]),
    &.draco-avatar__image--loading,
    &.draco-avatar__image--error {
      opacity: 0;
      visibility: hidden;
    }
  }

  &__placeholder,
  &__error {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--token-typography-display-400-font-family);
    font-weight: var(--token-typography-font-weight-regular);
    background-color: var(--token-color-palette-neutral-900);
    color: var(--token-color-palette-neutral-100);
  }

  &.draco-avatar--shape-circle {
    border-radius: 100%;

    .draco-avatar__placeholder {
      border-radius: 100%;
    }
  }

  &.draco-avatar--shape-square {
    border-radius: var(--token-border-radius-small);

    .draco-avatar__placeholder {
      border-radius: var(--token-border-radius-small);
    }
  }
}

.draco-avatar-group {
  display: flex;
  position: relative;
  margin-left: 10px;

  .draco-avatar,
  .draco-avatar-group--remaining-count {
    margin-left: -10px;
  }

  &--remaining-count {
    @extend %shared-border-styles;
    border-color: var(--token-color-palette-neutral-800);
    border-radius: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-family: var(--token-typography-display-400-font-family);
    font-weight: var(--token-typography-font-weight-regular);
    background-color: var(--token-color-palette-neutral-900);
    color: var(--token-color-palette-neutral-100);
  }
}
