@use './theme.scss' as *;

$root: 'checkbox';

.#{$root} {
  @include checkbox-theme-modifiers();

  padding: 0;
  width: 20px;
  height: 20px;
  color: checkbox-theme-color('icon') !important;
  background-color: checkbox-theme-color('background');
  border: 1px solid checkbox-theme-color('border');
  border-radius: 5px;

  &:hover {
    border-color: checkbox-theme-color('border-hover');
  }

  & > svg {
    display: none;
  }

  &__line {
    width: 10px;
    height: 2px;
    background-color: checkbox-theme-color('icon');
    border-radius: 1px;
  }

  &.Mui-checked {
    background-color: checkbox-theme-color('background-selected');
    border-color: checkbox-theme-color('border-selected');

    &:hover {
      background-color: checkbox-theme-color('background-hover');
      border-color: checkbox-theme-color('border-selected-hover');
      color: checkbox-theme-color('icon-selected-hover') !important;
    }
  }

  &.Mui-focusVisible {
    box-shadow: 0 0 0 3px checkbox-theme-color('shadow');
  }

  &--error {
    background-color: checkbox-theme-color('background-error');
    border-color: checkbox-theme-color('border-error');
    color: checkbox-theme-color('icon-error') !important;

    &.Mui-checked,
    &.Mui-checked:hover {
      background-color: checkbox-theme-color('background-error-selected');
      border-color: checkbox-theme-color('border-error-selected');
      color: checkbox-theme-color('icon-error-hover') !important;
    }

    &.Mui-focusVisible {
      box-shadow: 0 0 0 3px checkbox-theme-color('error-shadow');
    }
  }

  &.Mui-disabled {
    background-color: checkbox-theme-color('background-disabled');
    border-color: checkbox-theme-color('border-disabled');
    color: checkbox-theme-color('icon-disabled');

    &.Mui-checked {
      background-color: checkbox-theme-color('background-disabled-selected');
      border-color: checkbox-theme-color('border-disabled-selected');
      color: checkbox-theme-color('icon-selected-disabled') !important;
    }
  }
}
