// Form validation states
//
// Used in _forms.scss to generate the form validation CSS for warnings, errors,
// and successes.

@mixin form-control-validation($color) {
  // Color the label and help text
  .#{$form-prefix-cls}-feedback {
    color: $color;
  }

  // Set the border and box shadow on specific inputs to match
  .#{$input-prefix-cls}, .#{$select-prefix-cls}.#{$select-prefix-cls} .#{$select-prefix-cls}__selection {
    @include hover {
      border-color: $color;
    }
    border-color: $color;

    &:focus {
      @include box-shadow(0 0 0 1px $color);
      border-color: $color;
    }
  }

  .#{$select-prefix-cls}--open .#{$select-prefix-cls}__selection,
  .#{$select-prefix-cls}--focus .#{$select-prefix-cls}__selection {
    @include box-shadow(0 0 0 2px rgba($color, .3));

    .#{$select-prefix-cls}__input:focus {
      box-shadow: none;
    }
  }

  // Set validation states also for addons
  .#{$input-prefix-cls}-group-addon {
    color: $color;
    background-color: lighten($color, 40%);
    border-color: $color;
  }
}


//
// form-size
//

@mixin form-size($size) {
  .#{$input-prefix-cls} {
    @extend .#{$input-prefix-cls}--#{$size};
  }

  .#{$input-prefix-cls}-group {
    @extend .#{$input-prefix-cls}-group--#{$size};
  }

  .#{$form-prefix-cls}-radio {
    @extend .#{$form-prefix-cls}-radio--#{$size};
  }

  .#{$checkbox-prefix-cls} {
    @extend .#{$checkbox-prefix-cls}--#{$size};
  }

  .#{$switch-prefix-cls} {
    @extend .#{$switch-prefix-cls}--#{$size};
  }

  .#{$slider-prefix-cls} {
    @extend .#{$slider-prefix-cls}--#{$size};
  }

  .#{$form-prefix-cls}-input-number {
    @extend .#{$form-prefix-cls}-input-number--#{$size};
  }

  .#{$select-prefix-cls} {
    @extend .#{$select-prefix-cls}--#{$size};
  }

  .#{$btn-prefix-cls} {
    @extend .#{$btn-prefix-cls}-#{$size};
  }

  textarea.#{$input-prefix-cls} {
    height: auto;
    padding: $input-padding-y $input-padding-x;
    line-height: $line-height-base;
  }
}
