@import './../common/abstracts/_mixin';
@import './../common/abstracts/variable';

.wot-theme-dark {
  @include b(radio) {
    @include e(shape) {
      background: transparent;
    }
    @include e(label) {
      color: $-dark-color;
    }
    @include when(button) {
      .wd-radio__label {
        background-color: $-dark-background;
      }
      @include when(checked) {
        .wd-radio__label {
          background-color: $-dark-background2;
        }
      }
    }

    @include when(dot) {
      .wd-radio__shape {
        &::before {
          background-color: $-radio-dot-checked-bg;
        }
      }
      @include when(checked) {
        .wd-radio__shape {
          background-color: transparent;
        }
      }
    }

    @include when(disabled) {
      .wd-radio__label {
        color: $-dark-color-gray;
      }
      @include when(checked) {
        .wd-radio__label {
          color: $-dark-color-gray;
        }
      }

      @include when(button) {
        .wd-radio__label {
          color: $-dark-color-gray;
          background: #3a3a3c;
          border-color: #c8c9cc;
        }
        @include when(checked) {
          .wd-radio__label {
            color: #c8c9cc;
            background: #3a3a3c;
            border-color: #c8c9cc;
          }
        }
      }

      @include when(dot) {
        .wd-radio__shape {
          background: #3a3a3c;
          border-color: #c8c9cc;
          &::before {
            background-color: #c8c9cc;
          }
        }
      }
    }
  }
}

@include b(radio) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: $-radio-margin;
  line-height: 1.2;
  text-align: center;

  @include when(first) {
    margin-top: 0;
  }
  @include e(shape) {
    position: relative;
    display: inline-block;
    display: none;
    width: $-radio-size;
    height: $-radio-size;
    font-size: $-radio-size;
    color: transparent;
    vertical-align: middle;
    background: $-radio-bg;
    transition: background 0.2s;
  }
  @include e(input) {
    position: absolute;
    width: 0;
    height: 0;
    margin: 0;
    opacity: 0;
  }
  @include e(label) {
    display: inline-block;
    font-size: $-radio-label-fs;
    line-height: 20px;
    color: $-radio-label-color;
    vertical-align: top;
  }
  @include when(checked) {
    .wd-radio__shape {
      display: inline-block;
      color: $-radio-checked-color;
      border-color: currentColor;
    }
    .wd-radio__check {
      color: $-radio-checked-color;
      opacity: 1;
    }
  }

  @include when(dot) {
    .wd-radio__shape {
      position: relative;
      box-sizing: border-box;
      display: inline-block;
      border: 2px solid $-radio-dot-border-color;
      border-radius: 50%;
      transition: none;

      &::before {
        position: absolute;
        top: calc(50% - #{$-radio-dot-size / 2});
        left: calc(50% - #{$-radio-dot-size / 2});
        width: $-radio-dot-size;
        height: $-radio-dot-size;
        content: '';
        background-color: #fff;
        border-radius: 50%;
        transition: transform 0.2s ease-in;
        transform: scale(0);
      }
    }
    @include when(checked) {
      .wd-radio__shape {
        background-color: $-radio-dot-checked-bg;
        border-color: $-radio-dot-checked-border-color;
        &::before {
          transform: scale(1);
        }
      }
    }
  }

  @include when(button) {
    display: inline-block;
    margin-top: 0;
    margin-right: 10px;

    .wd-radio__shape {
      display: none;
    }
    .wd-radio__label {
      box-sizing: border-box;
      min-width: $-radio-button-min-width;
      max-width: $-radio-button-max-width;
      height: $-radio-button-height;
      padding: 5px 15px;
      margin-right: 0;
      font-size: $-radio-button-fs;
      background-color: $-radio-button-bg;
      border: 1px solid $-radio-button-border;
      border-radius: $-radio-button-radius;
      transition: all 0.2s;
      @include lineEllipsis;
    }
    @include when(checked) {
      .wd-radio__label {
        color: $-radio-checked-color;
        background-color: $-radio-bg;
        border-color: currentColor;
      }
    }
  }

  @include when(inline) {
    display: inline-block;
    margin-top: 0;
    margin-right: $-radio-margin;

    @include when(first) {
      margin-left: 0;
    }
    .wd-radio__shape {
      display: block;
      float: left;
      margin-right: 4px;
      &::after {
        display: table;
        clear: both;
        content: '';
      }
    }

    @include when(dot) {
      .wd-radio__shape {
        margin-top: 2px;
      }
      @include when(large) {
        .wd-radio__shape {
          margin-top: 0;
        }
      }
    }
  }

  @include when(disabled) {
    .wd-radio__label {
      color: $-radio-disabled-label-color;
    }
    @include when(checked) {
      .wd-radio__shape {
        color: $-radio-disabled-label-color;
      }
      .wd-radio__check {
        color: $-radio-disabled-label-color;
      }
      .wd-radio__label {
        color: $-radio-disabled-label-color;
      }
    }

    @include when(button) {
      .wd-radio__label {
        color: $-radio-disabled-label-color;
        background: $-radio-disabled-color;
        border-color: $-radio-disabled-color;
        border-color: $-radio-button-border;
      }
      @include when(checked) {
        .wd-radio__label {
          background: $-radio-disabled-color;
          border-color: $-radio-button-disabled-border;
        }
      }
    }

    @include when(dot) {
      .wd-radio__shape {
        background: $-radio-dot-disabled-bg;
        border-color: $-radio-dot-disabled-border;
      }
    }
  }

  // 以下内容用于解决父子组件样式隔离的问题 —— START
  @include when(cell-radio) {
    padding: 13px 15px;
    margin: 0;

    @include when(large) {
      padding: 14px 15px;
    }
  }

  @include when(button-radio) {
    box-sizing: border-box;
    display: inline-flex;
    width: 33.3333%;
    padding: 12px 12px 0px 0px;

    .wd-radio__label {
      width: 100%;
      max-width: inherit;
    }
  }
  @include when(large) {
    .wd-radio__shape {
      width: $-radio-large-size;
      height: $-radio-large-size;
      font-size: $-radio-large-size;
    }
    .wd-radio__label {
      font-size: $-radio-large-label-fs;
    }

    @include when(dot) {
      .wd-radio__shape {
        &::before {
          top: calc(50% - #{$-radio-dot-large-size / 2});
          left: calc(50% - #{$-radio-dot-large-size / 2});
          width: $-radio-dot-large-size;
          height: $-radio-dot-large-size;
        }
      }
    }
  }
  // 以下内容用于解决父子组件样式隔离的问题 —— END
}
