@use "pix-design-tokens/typography";

.pix-progress-bar {
  position: relative;
  display: grid;
  grid-template-areas:
    'text progressbar'
    'subtitle subtitle';
  grid-template-columns: auto 1fr;
  align-items: center;
  width: 100%;
  min-width: 6rem;
  border-radius: 5px;

  &__bar {
    flex-grow: 1;
    grid-area: progressbar;
    height: 0.875rem;
    overflow: hidden;
    border: 2px solid var(--pix-neutral-20);
    border-radius: 1.625rem;
    inline-size: unset;

    &::-webkit-progress-value {
      background-color: var(--pix-primary-500);
      border-radius: 1.625rem;
    }

    &::-moz-progress-bar {
      background-color: var(--pix-primary-500);
      border-radius: 1.625rem;
    }

    &::-webkit-progress-bar {
      background-color: var(--pix-neutral-20);
    }
  }

  &__text {
    @extend %pix-body-s;

    grid-area: text;
    min-width: 5ch;
    margin-right: var(--pix-spacing-1x);
    font-weight: 500;
    line-height: 1;
    white-space: nowrap;
  }

  &__sub-title {
    @extend %pix-body-s;

    grid-area: subtitle;
    width: 100%;
    margin: 6px 0;
    overflow: hidden;
    color: var(--pix-primary-700);
    letter-spacing: 0.4px;
    text-transform: uppercase;
    text-overflow: ellipsis;
  }
}

// THEME DARK
.pix-progress-bar--theme-dark {
  .pix-progress-bar__bar {
    border: 2px solid var(--pix-neutral-0);
  }

  .pix-progress-bar__bar::-webkit-progress-bar {
    background-color: var(--pix-neutral-0);
  }

  .pix-progress-bar__text,
  .pix-progress-bar__sub-title {
    color: var(--pix-neutral-0);
  }
}

// SPECIFIC BAR COLORS
.pix-progress-bar--content-blue, .pix-progress-bar--content-primary {
  .pix-progress-bar__bar::-webkit-progress-value {
    background-color: var(--pix-primary-500);
  }

  .pix-progress-bar__bar::-moz-progress-bar {
    background-color: var(--pix-primary-500);
  }

  &:not(.pix-progress-bar--theme-dark) {
    .pix-progress-bar__text,
    .pix-progress-bar__sub-title {
      color: var(--pix-primary-500);
    }
  }
}

.pix-progress-bar--content-green, .pix-progress-bar--content-success {
  .pix-progress-bar__bar::-webkit-progress-value {
    background-color: var(--pix-success-700);
  }

  .pix-progress-bar__bar::-moz-progress-bar {
    background-color: var(--pix-success-700);
  }

  &:not(.pix-progress-bar--theme-dark) {
    .pix-progress-bar__text,
    .pix-progress-bar__sub-title {
      color: var(--pix-success-700);
    }
  }
}

.pix-progress-bar--content-purple, .pix-progress-bar--content-tertiary {
  .pix-progress-bar__bar::-webkit-progress-value {
    background-color: var(--pix-tertiary-900);
  }

  .pix-progress-bar__bar::-moz-progress-bar {
    background-color: var(--pix-tertiary-900);
  }

  &:not(.pix-progress-bar--theme-dark) {
    .pix-progress-bar__text,
    .pix-progress-bar__sub-title {
      color: var(--pix-tertiary-900);
    }
  }
}
