/* * *
 * CONTAINER
 * * *
 */

.wrapperContainer {
  position: relative;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  overflow-y: auto;
  width: 100%;
  min-width: 0;

  border: 1px solid #d3d3d3;
  border-radius: 4px;
  background-color: white;

  &:hover {
    border-color: #019cf5;
  }

  &.focused {
    border-color: #019cf5;
    box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
  }

  &.readonly {
    box-shadow: none;
    cursor: default;

    &.focused {
      border-color: #d3d3d3;
    }

    &:hover {
      border-color: #d3d3d3;
    }
  }

  &.error {
    border-color: #bd3b18;
    box-shadow: none;

    &:hover {
      border-color: #bd3b18;
    }
  }

  &.disabled {
    color: rgba(0, 0, 0, 0.25);
    background-color: #f5f5f5;
    border-color: #d3d3d3;
    cursor: not-allowed;
    opacity: 1;

    &:hover {
      border-color: #d3d3d3;
    }

    * {
      cursor: not-allowed;
    }
  }

  &.transparent {
    border-color: transparent;
    border-width: 0;
    box-shadow: none;
    background-color: transparent;
    &:hover {
      border-color: transparent;
      border-width: 0;
      box-shadow: none;
      background-color: transparent;
    }
  }

  .child {
    box-sizing: border-box;
    flex-grow: 1;

    min-width: 0;
  }
}

/* * *
 * SIZE-EXTRA-SMALL
 * * *
 */
.sizeXs {
  &.wrapperContainer {
    min-height: 10px;
  }

  .icon {
    padding: 0 1px;
  }

  .child {
    padding: 0 1px;
  }
}

/* * *
 * SIZE-SMALL
 * * *
 */

.sizeS {
  &.wrapperContainer {
    min-height: 20px;
  }

  .icon {
    padding: 0 2px;
  }

  .child {
    padding: 0 2px;
  }
}

/* * *
 * SIZE-MIDDLE
 * * *
 */

.sizeM {
  &.wrapperContainer {
    min-height: 28px;
  }

  .icon {
    padding: 0 8px;
    max-height: 28px;
  }

  .child {
    padding: 0 5px;
  }
}

/* * *
 * SIZE-LARGE
 * * *
 */

.sizeL {
  &.wrapperContainer {
    min-height: 40px;
  }

  .icon {
    padding: 0 10px;
  }

  .child {
    padding: 0 8px;
  }
}

/* * *
 * SIZE-EXTRA-LARGE
 * * *
 */

.sizeXl {
  &.wrapperContainer {
    min-height: 48px;
  }

  .icon {
    padding: 0 11px;
    font-size: 18px;
  }

  .child {
    padding: 0 10px;
  }
}

/* * *
 * ERROR
 * * *
 */

.errorMessageContainer {
  font-size: 12px;
  color: #c63c17;
}

/* * *
 * ICON (PREFIX/SUFFIX)
 * * *
 */

.icon {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;

  box-sizing: border-box;
  height: 100%;

  &.iconIsClickable {
    cursor: pointer;
  }
}

.prefixIcon {
  border-right: 1px solid #dcdcdc;
}

.suffixIcon {
  border-left: 1px solid #dcdcdc;
}
