@import '@devui/theme/styles-var/devui-var.scss';

$devui-btn-sm-padding: var(--devui-btn-sm-padding, 0 16px);
$devui-btn-padding: var(--devui-btn-padding, 0 20px);
$devui-btn-lg-padding: var(--devui-btn-lg-padding, 0 24px);

$font-size-map: (
  lg: $devui-font-size-lg,
  md: $devui-font-size-md,
  sm: $devui-font-size-sm,
);
$button-padding-map: (
  lg: $devui-btn-lg-padding,
  md: $devui-btn-padding,
  sm: $devui-btn-sm-padding,
);
$checkbox-label-height-map: (
  lg: $devui-size-lg,
  md: $devui-size-md,
  sm: $devui-size-sm,
);
.#{$devui-prefix}-checkbox-button {
  display: flex;
  align-items: center;
  position: relative;

  &__input {
    opacity: 0;
    position: absolute;
    margin: 0;
    z-index: -1;
    width: 0;
    height: 0;
    overflow: hidden;
    left: 0;
    pointer-events: none;
  }

  &__content {
    font-size: 14px;
    color: $devui-text;
    padding: 10px 20px;
    cursor: pointer;
    border: 1px solid $devui-disabled-line;
    display: inline-block;
    line-height: 1;
    user-select: none;
    @each $size in ('lg', 'md', 'sm') {
      &.#{$devui-prefix}-checkbox-button--#{$size} {
        font-size: map-get($font-size-map, #{$size});
        padding: map-get($button-padding-map, #{$size});
        height: map-get($checkbox-label-height-map, #{$size});
        line-height: map-get($checkbox-label-height-map, #{$size});
      }
    }
  }

  &.active {
    .#{$devui-prefix}-checkbox-button__content {
      color: #ffffff;
      background-color: $devui-brand;
      border-color: $devui-brand;
    }

    &.disabled {
      .#{$devui-prefix}-checkbox-button__content {
        color: #ffffff;
        background-color: $devui-icon-fill-active-disabled;
        border-color: $devui-icon-fill-active-disabled;
      }
    }
  }

  &.disabled {
    .#{$devui-prefix}-checkbox-button__content {
      cursor: not-allowed;
      color: $devui-disabled-text;
      background-color: #ffffff;
      border-color: $devui-disabled-line;
    }
  }
}

.#{$devui-prefix}-checkbox__group {
  &.is-row {
    .#{$devui-prefix}-checkbox-button {
      &__content {
        border-left: none;
        box-shadow: -1px 0 0 0 $devui-disabled-line;
      }

      &:first-child {
        .#{$devui-prefix}-checkbox-button__content {
          border-top-left-radius: $devui-border-radius;
          border-bottom-left-radius: $devui-border-radius;
          border-left: 1px solid $devui-disabled-line;
          box-shadow: none;
        }
      }

      &:last-child {
        .#{$devui-prefix}-checkbox-button__content {
          border-top-right-radius: $devui-border-radius;
          border-bottom-right-radius: $devui-border-radius;
        }
      }
    }
  }

  &.is-column {
    .#{$devui-prefix}-checkbox-button {
      width: 100%;
      margin-top: 0;

      &__content {
        width: 100%;
        border-top: none;
        box-shadow: 0 -1px 0 0 $devui-disabled-line;
      }

      &:first-child {
        .#{$devui-prefix}-checkbox-button__content {
          border-top-left-radius: $devui-border-radius;
          border-top-right-radius: $devui-border-radius;
          border-top: 1px solid $devui-disabled-line;
          box-shadow: none;
        }
      }

      &:last-child {
        .#{$devui-prefix}-checkbox-button__content {
          border-bottom-left-radius: $devui-border-radius;
          border-bottom-right-radius: $devui-border-radius;
        }
      }
    }
  }
}