@import './theme/default.pcss';
$defaultBorderColor: $theme-stroke-5;
$errorBorderColor: $theme-error-2;
$borderRadius: 2px;

.zent-input-wrapper {
  display: flex;
  position: relative;
  height: 30px;
  max-height: 36px;
  line-height: 28px;
}

.zent-textarea-wrapper {
  height: auto;
  max-height: none;
}

.zent-input,
.zent-input[type=text],
.zent-input[type=password],
.zent-input[type=datetime],
.zent-input[type=date],
.zent-input[type=month],
.zent-input[type=time],
.zent-input[type=week],
.zent-input[type=number],
.zent-input[type=email],
.zent-input[type=url],
.zent-input[type=tel],
.zent-input[type=color],
.zent-input[type=search],
.zent-textarea {
  display: inline-block;
  flex: 1;
  min-width: 80px;
  height: 100%;
  box-sizing: border-box;
  padding: 0 10px;
  margin: 0;
  border: 1px solid $defaultBorderColor;
  color: $theme-stroke-1;
  font-size: 12px;
  border-radius: $borderRadius;
  box-shadow: none;
  transition: border 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
  appearance: none;

  &:focus {
    outline: none;
    border: 1px solid $theme-primary-2;
    box-shadow: 0 0 5px $theme-primary-4;
  }
}

.zent-textarea[disabled],
.zent-input[disabled],
.zent-input[readonly] {
  border-color: $theme-stroke-7;
  background-color: $theme-stroke-9;
  cursor: not-allowed;
  color: $theme-stroke-6;

  &:focus {
    border-color: $theme-stroke-7;
    box-shadow: none;
  }
}

.zent-input-addon-before,
.zent-input-addon-after {
  display: inline-block;
  height: 100%;
  padding: 0 5px;
  border: 1px solid $defaultBorderColor;
  box-sizing: border-box;
  vertical-align: middle;
  background-color: $theme-stroke-7;
  font-size: 12px;
}

.zent-input-addon-before {
  border-top-left-radius: $borderRadius;
  border-bottom-left-radius: $borderRadius;
  border-right: none;
}

.zent-input-addon-after {
  border-top-right-radius: $borderRadius;
  border-bottom-right-radius: $borderRadius;
  border-left: none;
}

.zent-input-addons {
  & > .zent-input {
    border-radius: 0;
  }

  & > .zent-input:first-child {
    border-top-left-radius: $borderRadius;
    border-bottom-left-radius: $borderRadius;
  }

  & > .zent-input[disabled]:first-child {
    border-right: 1px solid $defaultBorderColor;
  }

  & > .zent-input:last-child {
    border-top-right-radius: $borderRadius;
    border-bottom-right-radius: $borderRadius;
  }

  & > .zent-input[disabled]:last-child {
    border-left: 1px solid $defaultBorderColor;
  }
}

.zent-textarea {
  height: 54px;
  padding: 5px 10px;
  appearance: none;
}

/** placeholder **/
$placeholderColor: $theme-stroke-4;

.zent-input::-webkit-input-placeholder { /* WebKit browsers */
  color: $placeholderColor;
}

.zent-input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
  color: $placeholderColor;
}

.zent-input::-moz-placeholder { /* Mozilla Firefox 19+ */
  color: $placeholderColor;
}

.zent-input:-ms-input-placeholder { /* Internet Explorer 10+ */
  color: $placeholderColor;
}

.zent-textarea::-webkit-input-placeholder { /* WebKit browsers */
  color: $placeholderColor;
}

.zent-textarea:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
  color: $placeholderColor;
}

.zent-textarea::-moz-placeholder { /* Mozilla Firefox 19+ */
  color: $placeholderColor;
}

.zent-textarea:-ms-input-placeholder { /* Internet Explorer 10+ */
  color: $placeholderColor;
}

.has-error {
  .zent-textarea,
  .zent-input {
    border: 1px solid $errorBorderColor;
    color: $theme-error-2;

    &:focus {
      border-color: $errorBorderColor;
      box-shadow: 0 0 5px $theme-error-3;
    }
  }
}
