@use '../config' as *;

.loader {
  position: relative;
  display: block;
  width: $loader-size;
  height: $loader-size;
  color: $blue;
  vertical-align: middle;

  &::after {
    position: absolute;
    inset-inline-start: 0;
    top: 0;
    width: 100%;
    height: 100%;
    content: '';
    border: 1px var(--border-style);
    border-color: transparent;
    border-inline-start-color: currentColor;
    border-top-color: currentColor;
    animation: rotate-360 0.6s linear;
    animation-iteration-count: infinite;

    @include border-radius(var(--border-radius-pill));
  }
}

/**
Dimmer
*/
.dimmer {
  position: relative;

  .loader {
    position: absolute;
    inset-inline-start: 0;
    inset-inline-end: 0;
    top: 50%;
    display: none;
    margin: 0 auto;
    transform: translateY(-50%);
  }

  &.active {
    .loader {
      display: block;
    }

    .dimmer-content {
      pointer-events: none;
      opacity: 0.1;
    }
  }
}

@keyframes animated-dots {
  0% {
    /* rtl:ignore */
    transform: translateX(calc(var(--dir) * -100%));
  }
}

.animated-dots {
  display: inline-block;
  overflow: hidden;
  vertical-align: bottom;

  &::after {
    display: inline-block;
    content: '...';
    animation: animated-dots 1.2s steps(4, jump-none) infinite;
  }
}
