@use '@angular/material' as mat;
@mixin sc-progress-theme($theme) {
  $primary: map-get($theme, primary);
  $accent: map-get($theme, accent);
  $success: map-get($theme, success);
  $warning: map-get($theme, warning);
  $danger: map-get($theme, danger);
  $foreground: map-get($theme, foreground);
  $is-dark-theme: map-get($theme, is-dark);

  $buffer-primary:  if($is-dark-theme, desaturate(mat.get-color-from-palette($primary, 900), 30%), mat.get-color-from-palette($primary, 100));
  $buffer-accent:  if($is-dark-theme, desaturate(mat.get-color-from-palette($accent, 900), 30%), mat.get-color-from-palette($accent, 100));
  $buffer-success:  if($is-dark-theme, desaturate(mat.get-color-from-palette($success, 900), 30%), mat.get-color-from-palette($success, 100));
  $buffer-warning:  if($is-dark-theme, desaturate(mat.get-color-from-palette($warning, 900), 30%), mat.get-color-from-palette($warning, 100));
  $buffer-danger:  if($is-dark-theme, desaturate(mat.get-color-from-palette($danger, 900), 30%), mat.get-color-from-palette($danger, 100));

  //* Bar

  .mat-progress-bar {

    &.mat-primary { 
      .mat-progress-bar {
        &-fill:after {
          background-color: mat.get-color-from-palette($primary, 500);
        }
      
        &-buffer {
          background-color: $buffer-primary;
        }
      }
    }

    &.mat-accent { 
      .mat-progress-bar {
        &-fill:after {
          background-color: mat.get-color-from-palette($accent, 500);
        }
      
        &-buffer {
          background-color: $buffer-accent;
        }
      }
    }
    
    //* Additional Colors

    &.mat-success { 
      .mat-progress-bar {
        &-fill:after {
          background-color: mat.get-color-from-palette($success, 500);
        }
      
        &-buffer {
          background-color: $buffer-success;
        }
      }
    }

    &.mat-warning { 
      .mat-progress-bar {
        &-fill:after {
          background-color: mat.get-color-from-palette($warning, 500);
        }
    
        &-buffer {
          background-color: $buffer-warning;
        }
      }
    }

    &.mat-danger { 
      .mat-progress-bar { 
        &-fill:after {
          background-color: mat.get-color-from-palette($danger, 500);
        }
    
        &-buffer {
          background-color: $buffer-danger;
        }
      }
    }
  }
    

  //* Spinner

  .mat-progress-spinner.mat-success circle, 
  .mat-spinner.mat-success circle {
    stroke: mat.get-color-from-palette($success, 500);
  }
  
  .mat-progress-spinner.mat-warning circle, 
  .mat-spinner.mat-warning circle {
    stroke: mat.get-color-from-palette($warning, 500);
  }
  
  .mat-progress-spinner.mat-danger circle, 
  .mat-spinner.mat-danger circle {
    stroke: mat.get-color-from-palette($danger, 500);
  }


  .progress {
    &::before {
      border-color: mat.get-color-from-palette($foreground, divider);
    }
  }
}