// Adds margin either l/r(x) or t/b(y)

@mixin margin-n($side, $value...) {
  $value: unpack($value);
  @if $side == all {
    $important: null;
    @if has-important($value) {
      $value: remove($value, "!important");
      $important: " !important";
    }
    margin: get-uswds-value(margin, $value...) #{$important};
  } @else if $side == x {
    $important: null;
    @if has-important($value) {
      $value: remove($value, "!important");
      $important: " !important";
    }
    margin-left: get-uswds-value(margin-horizontal, $value...) #{$important};
    margin-right: get-uswds-value(margin-horizontal, $value...) #{$important};
  } @else if $side == y {
    $important: null;
    @if has-important($value) {
      $value: remove($value, "!important");
      $important: " !important";
    }
    margin-bottom: get-uswds-value(margin-vertical, $value...) #{$important};
    margin-top: get-uswds-value(margin-vertical, $value...) #{$important};
  } @else if $side == t {
    $important: null;
    @if has-important($value) {
      $value: remove($value, "!important");
      $important: " !important";
    }
    margin-top: get-uswds-value(margin-vertical, $value...) #{$important};
  } @else if $side == r {
    $important: null;
    @if has-important($value) {
      $value: remove($value, "!important");
      $important: " !important";
    }
    margin-right: get-uswds-value(margin-horizontal, $value...) #{$important};
  } @else if $side == b {
    $important: null;
    @if has-important($value) {
      $value: remove($value, "!important");
      $important: " !important";
    }
    margin-bottom: get-uswds-value(margin-vertical, $value...) #{$important};
  } @else if $side == l {
    $important: null;
    @if has-important($value) {
      $value: remove($value, "!important");
      $important: " !important";
    }
    margin-left: get-uswds-value(margin-horizontal, $value...) #{$important};
  }
}

@mixin u-margin($value...) {
  @include margin-n(all, $value...);
}

@mixin u-margin-x($value...) {
  @include margin-n(x, $value...);
}

@mixin u-margin-y($value...) {
  @include margin-n(y, $value...);
}

@mixin u-margin-top($value...) {
  @include margin-n(t, $value...);
}

@mixin u-margin-right($value...) {
  @include margin-n(r, $value...);
}

@mixin u-margin-bottom($value...) {
  @include margin-n(b, $value...);
}

@mixin u-margin-left($value...) {
  @include margin-n(l, $value...);
}
