@import '../../base.less';

@import './_var.less';

.@{prefix}-input {
  background-color: @input-bg-color;
  display: flex;
  align-items: @input-align-items;
  flex: 1;
  padding: @input-vertical-padding;

  &--border {
    .border(bottom, @input-border-color);

    &::after {
      left: @input-border-left-space;
      right: @input-border-right-space;
    }
  }

  &--layout-vertical {
    flex-direction: column;
    align-items: start;
  }

  &--password {
    letter-spacing: 6px;
  }

  &__wrap--prefix {
    display: flex;
  }

  &__icon--prefix {
    font-size: 24px;
    color: @input-prefix-icon-color;
  }

  &__label:not(:empty) {
    font: @input-label-text-font;
    color: @input-label-text-color;
    margin-right: @spacer-2;

    .@{prefix}-input--layout-horizontal & {
      min-width: 2em;
      max-width: @input-label-text-max-width;
    }

    .@{prefix}-input--layout-vertical & {
      width: @input-label-text-width;
      font-size: @font-size-base;
      padding-bottom: 8px;
    }
  }

  &__icon--prefix:not(:empty) + &__label:not(:empty) {
    padding-left: 4px;
  }

  &__label:not(:empty) + &__wrap {
    margin-left: @spacer-2;
  }

  &__icon--prefix:not(:empty) + &__label:empty {
    margin-right: @spacer-2;
  }

  &__wrap {
    width: 100%;
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: center;
    flex: 1;
    flex-shrink: 1;

    .@{prefix}-input__content {
      display: flex;
      align-items: center;
      font: @font-body-large;
    }

    &--clearable-icon,
    &--suffix-icon,
    &--suffix {
      flex: 0 0 auto;
      padding-left: @spacer-1;

      &:empty {
        display: none;
      }
    }

    &--clearable-icon,
    &--suffix-icon {
      font-size: 24px;
      color: @input-suffix-icon-color;
    }

    &--suffix {
      font-size: @font-size-m;
      color: @input-suffix-text-color;
    }
  }

  &__icon--prefix,
  &__tips,
  &__wrap--clearable-icon,
  &__wrap--suffix-icon,
  &__wrap--suffix {
    display: flex;

    &:empty {
      display: none;
    }
  }

  &__control {
    display: block;
    box-sizing: border-box;
    width: 100%;
    min-width: 0; // for flex-shrink in field__button
    min-height: 24px;
    margin: 0;
    padding: 0;
    color: @input-default-text-color;
    line-height: inherit;
    background-color: transparent;
    border: 0;
    outline: none;
    resize: none;
    font-size: inherit;
    caret-color: @input-cursor-color;

    &--disabled {
      color: @input-disabled-text-color;
      cursor: not-allowed;
      opacity: 1;
      -webkit-text-fill-color: currentColor; // fix disabled color in iOS
    }

    &--read-only {
      cursor: default;
    }
  }

  &--left {
    text-align: left;
  }

  &--right {
    text-align: right;
  }

  &--center {
    text-align: center;
  }

  &__placeholder {
    color: @input-placeholder-text-color;
    font: @input-placeholder-text-font;
  }

  &__tips {
    font: @font-body-small;
    padding-top: 4px;
  }
}

.input-status(@status) {
  @tipsColor: 'input-@{status}-tips-color';

  .@{prefix}-input--@{status} + .@{prefix}-input__tips {
    color: @@tipsColor;
  }
}

// status
.input-status(default);
.input-status(success);
.input-status(warning);
.input-status(error);
