// stylelint-disable declaration-no-important

// Flex variation
//
// Custom styles for additional flex alignment options.

@each $breakpoint in map-keys($grid-breakpoints) {
  @include media-breakpoint-up($breakpoint) {
    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);

    .flex#{$infix}-row {
      flex-direction: row;
    }
    .flex#{$infix}-column {
      flex-direction: column;
    }
    .flex#{$infix}-row-reverse {
      flex-direction: row-reverse;
    }
    .flex#{$infix}-column-reverse {
      flex-direction: column-reverse;
    }

    .flex#{$infix}-wrap {
      flex-wrap: wrap;
    }
    .flex#{$infix}-nowrap {
      flex-wrap: nowrap;
    }
    .flex#{$infix}-wrap-reverse {
      flex-wrap: wrap-reverse;
    }
    .flex#{$infix}-fill {
      flex: 1 1 auto;
    }
    .flex#{$infix}-grow-0 {
      flex-grow: 0;
    }
    .flex#{$infix}-grow-1 {
      flex-grow: 1;
    }
    .flex#{$infix}-shrink-0 {
      flex-shrink: 0;
    }
    .flex#{$infix}-shrink-1 {
      flex-shrink: 1;
    }

    .justify-content#{$infix}-start {
      justify-content: flex-start;
    }
    .justify-content#{$infix}-end {
      justify-content: flex-end;
    }
    .justify-content#{$infix}-center {
      justify-content: center;
    }
    .justify-content#{$infix}-between {
      justify-content: space-between;
    }
    .justify-content#{$infix}-around {
      justify-content: space-around;
    }

    .align-items#{$infix}-start {
      align-items: flex-start;
    }
    .align-items#{$infix}-end {
      align-items: flex-end;
    }
    .align-items#{$infix}-center {
      align-items: center;
    }
    .align-items#{$infix}-baseline {
      align-items: baseline;
    }
    .align-items#{$infix}-stretch {
      align-items: stretch;
    }

    .align-content#{$infix}-start {
      align-content: flex-start;
    }
    .align-content#{$infix}-end {
      align-content: flex-end;
    }
    .align-content#{$infix}-center {
      align-content: center;
    }
    .align-content#{$infix}-between {
      align-content: space-between;
    }
    .align-content#{$infix}-around {
      align-content: space-around;
    }
    .align-content#{$infix}-stretch {
      align-content: stretch;
    }

    .align-self#{$infix}-auto {
      align-self: auto;
    }
    .align-self#{$infix}-start {
      align-self: flex-start;
    }
    .align-self#{$infix}-end {
      align-self: flex-end;
    }
    .align-self#{$infix}-center {
      align-self: center;
    }
    .align-self#{$infix}-baseline {
      align-self: baseline;
    }
    .align-self#{$infix}-stretch {
      align-self: stretch;
    }
  }
}
