@mixin input-group-size($control-font-size, $control-x-padding, $control-y-padding, $controller-radius, $btn-radius, $btn-x-padding, $btn-y-padding, $btn-font-size) {
  font-size: $control-font-size;
  > .ui-form-control, > ui-select .ui-dropdown-input, > ui-input[type=date] .ui-dropdown-input {
    @include input-size($control-y-padding, $control-x-padding, 0, $control-font-size);
  }
  > .ui-form-control, > ui-input-addon {
    &:first-child {
      border-top-left-radius: $controller-radius;
      border-bottom-left-radius: $controller-radius;
    }
    &:last-child {
      border-top-right-radius: $controller-radius;
      border-bottom-right-radius: $controller-radius;
    }
  }
  > ui-select, > ui-input[type=date] {
    &:first-child .ui-dropdown-input {
      border-top-left-radius: $controller-radius;
      border-bottom-left-radius: $controller-radius;
    }
    &:last-child .ui-dropdown-input {
      border-top-right-radius: $controller-radius;
      border-bottom-right-radius: $controller-radius;
    }
  }
  > .ui-btn {
    padding: $btn-y-padding $btn-x-padding;
    font-size: $btn-font-size;
    &:first-child {
      border-top-left-radius: $btn-radius;
      border-bottom-left-radius: $btn-radius;
    }
    &:last-child {
      border-top-right-radius: $btn-radius;
      border-bottom-right-radius: $btn-radius;
    }
  }
  > ui-btn-group, > ui-dropdown {
    >.ui-btn {
      font-size: $btn-font-size;
      padding: $btn-y-padding $btn-x-padding;
    }
    &:first-child > .ui-btn:first-of-type {
      border-top-left-radius: $btn-radius;
      border-bottom-left-radius: $btn-radius;
    }
    &:last-child > .ui-btn:last-of-type {
      border-top-right-radius: $btn-radius;
      border-bottom-right-radius: $btn-radius;
    }
  }
}

ui-input-group {
  position: relative;
  display: inline-table;
  font-size: $form-control-font-size-base;
  > .ui-form-control, ui-select, ui-input[type=date] {
    //width: 100%;
  }
  > .ui-form-control, .ui-dropdown-input, > ui-input-addon, > .ui-btn {
    display: table-cell;
    border-radius: 0;
  }
  > .ui-form-control, > ui-input-addon {
    &:not(:first-child) {
      margin-left: -1px;
    }
    &:first-child {
      border-top-left-radius: $form-control-radius;
      border-bottom-left-radius: $form-control-radius;
    }
    &:last-child {
      border-top-right-radius: $form-control-radius;
      border-bottom-right-radius: $form-control-radius;
    }
  }
  > ui-select, > ui-input[type=date] {
    &:not(:first-child) {
      margin-left: -1px;
    }
    &:first-child .ui-dropdown-input {
      border-top-left-radius: $form-control-radius;
      border-bottom-left-radius: $form-control-radius;
    }
    &:last-child .ui-dropdown-input{
      border-top-right-radius: $form-control-radius;
      border-bottom-right-radius: $form-control-radius;
    }
  }
  > ui-btn-group, > ui-dropdown {
    display: table-cell;
    &:not(:first-child) {
      margin-left: -1px;
    }
    > .ui-btn {
      border-radius: 0;
    }
    &:first-child > .ui-btn:first-of-type {
      border-top-left-radius: $button-radius;
      border-bottom-left-radius: $button-radius;
    }
    &:last-child > .ui-btn:last-of-type {
      border-top-right-radius: $button-radius;
      border-bottom-right-radius: $button-radius;
    }
  }
  > .ui-btn {
    &:not(:first-child) {
      margin-left: -1px;
    }
    &:first-child {
      border-top-left-radius: $button-radius;
      border-bottom-left-radius: $button-radius;
    }
    &:last-child {
      border-top-right-radius: $button-radius;
      border-bottom-right-radius: $button-radius;
    }
  }
  &.ui-input-group-sm {
    @include input-group-size($form-control-font-size-sm,
        $form-control-padding-horizontal-sm,
        $form-control-padding-vertical-sm,
        $form-control-radius-sm,
        $button-radius-sm,
        $button-padding-horizontal-sm,
        $button-padding-vertical-sm,
        $button-font-size-sm
    );
  }
  &.ui-input-group-lg {
    @include input-group-size($form-control-font-size-lg,
        $form-control-padding-horizontal-lg,
        $form-control-padding-vertical-lg,
        $form-control-radius-lg,
        $button-radius-lg,
        $button-padding-horizontal-lg,
        $button-padding-vertical-lg,
        $button-font-size-lg
    );
  }
}
