@import "../typography.css";
@import "./properties.css";
@import "../z-index.css";

.input,
.input * {
  box-sizing: border-box;
}

.input {
  background-color: var(--input-background-color);
  border-color: var(--input-border-color);
  border-radius: var(--input-border-radius);
  border-style: var(--input-border-style);
  border-width: var(--input-border-width);
  display: flex;
  flex: 1;
  font-family: var(--input-font-family);
  font-size: var(--input-font-size);
  min-height: var(--input-height);
  position: relative;
  transition: var(--input-border-color-transition);
  width: 100%;
  z-index: var(--input-z-index);
}

.dark {
  color: var(--input-dark-color);

  & .container > textarea,
  & .container > input {
    color: var(--input-dark-color);
  }

  & .displayPasswordIcon {
    color: var(--input-dark-color);
  }

  &.disabled,
  &.disabled:hover {
    border-color: var(--input-dark-border-color-disabled);
  }

  & .container > input:disabled,
  & .container > textarea:disabled,
  & .container > input:disabled::placeholder,
  & .container > textarea:disabled::placeholder {
    color: var(--input-dark-color-disabled);
  }

  & .disabled .icon svg {
    color: var(--input-dark-color-disabled);
  }
}

.light {
  color: var(--input-light-color);

  & .container > textarea,
  & .container > input {
    color: var(--input-light-color);
  }

  & .displayPasswordIcon {
    color: var(--input-light-color);
  }

  &.disabled,
  &.disabled:hover {
    border-color: var(--input-light-border-color-disabled);
  }

  & .container > input:disabled,
  & .container > textarea:disabled,
  & .container > input:disabled::placeholder,
  & .container > textarea:disabled::placeholder {
    color: var(--input-light-color-disabled);
  }

  & .disabled .icon svg {
    color: var(--input-light-color-disabled);
  }
}

.boxContainer {
  align-items: center;
  display: flex;
  flex: 1;
}

.container {
  align-items: center;
  display: flex;
  flex: 1;
  padding: var(--input-container-padding);
  position: relative;
}

.container * {
  font-family: var(--input-font-family);
  letter-spacing: var(--input-container-letter-spacing);
}

.container > textarea,
.container > input {
  background: none;
  border: none;
  display: block;
  font-size: var(--input-font-size);
  flex: 1;
  margin: 0;
  padding: 0;
}

.container > textarea {
  height: var(--input-textarea-height);
  margin: 0;
  overflow: hidden;
  position: absolute;
  resize: none;
  width: 100%;
  z-index: var(--textarea-z-index);
}

.container > textarea::placeholder,
.container > input::placeholder {
  color: var(--input-placeholder-color);
  font-size: var(--input-font-size);
}

.icon {
  align-items: center;
  display: flex;
  justify-content: center;
  padding-left: 10px;
}

.icon svg {
  color: var(--input-icon-color);
  width: var(--input-icon-size);
}

.displayPasswordIcon {
  appearance: none;
  background: none;
  border: none;
  cursor: pointer;
  font-size: var(--input-icon-size);
  outline: none;
}

.multiline {
  height: auto;
}

.multiline > .expander {
  visibility: hidden;
  white-space: pre-wrap;
  word-wrap: break-word;
}

.multiline > .expander,
.multiline textarea {
  font-size: var(--input-multiline-font-size);
  line-height: var(--input-multiline-line-height);
  word-break: break-word;
}

/* focus and hover */

.container > textarea:focus,
.container > input:focus {
  outline: none;
}

.focused,
.input:hover {
  border-color: var(--input-border-color-focus);
}

/* error */

.error,
.error:hover {
  border-color: var(--input-color-error);
}

/* disabled */

.container > input:disabled,
.container > textarea:disabled,
.container > input:disabled::placeholder,
.container > textarea:disabled::placeholder {
  cursor: not-allowed;
}

/* Sizes */

.tiny {
  min-height: var(--input-tiny-height);

  & input,
  & textarea,
  & input::placeholder,
  & textarea::placeholder {
    font-size: var(--input-tiny-font-size);
  }
}
