@use 'ej2-base/styles/common/mixin' as *;
@include export-module('radiobutton-theme') {
  .e-radio {
    +label {
      &::before {
        background-color: $radio-btn-background-color;
        border-color: $radio-btn-border-color;
      }

      &.e-focus {
        & .e-ripple-container {
          background-color: $radio-btn-focus-ripple-bgcolor;
        }
      }

      & .e-label {
        color: $radio-btn-font-color;
      }

      & .e-ripple-element {
        background-color: $radio-btn-checked-ripple-bgcolor;
      }

      &:active {
        & .e-ripple-element {
          background-color: $radio-btn-ripple-bgcolor;
        }
      }
    }

    &:focus {
      +label {
        &::before {
          border-color: $radio-btn-focus-check-border-color;
          box-shadow: $radio-btn-focussed-box-shadow;
        }

        & .e-ripple-container {
          @if $skin-name == 'Material3' {
            background-color: $radio-btn-focus-ripple-bgcolor;
          }
        }
      }
    }

    &:focus {
      +label {
        &::before {
          border-color: $radio-btn-hover-border-color;
          box-shadow: $radio-btn-focussed-box-shadow;
        }
      }
    }

    &:hover {
      +label {
        & .e-ripple-container {
          @if $skin-name == 'Material3' {
            background: $radio-btn-ripple-bgcolor;
          }
        }
      }

      +label {
        &::before {
          border-color: $radio-btn-hover-border-color;
        }
      }
    }

    &:checked {
      +label {
        &::before {
          background-color: $radio-btn-checked-background-color;
          border-color: $radio-btn-checked-border-color;
        }

        &::after {
          background-color: $radio-btn-checked-color;
          color: $radio-btn-checked-color;
        }

        &:active {
          & .e-ripple-element {
            background-color: $radio-btn-checked-ripple-bgcolor;
          }
        }
      }

      +.e-focus {
        & .e-ripple-container {
          background-color: $radio-btn-checked-ripple-bgcolor;
        }

        &::before {
          outline: $radio-btn-focus-outline;
          outline-offset: $radio-btn-focus-outline-offset;
        }
      }
    }

    &:checked {
      &:focus {
        +label {
          &::before {
            border-color: $radio-btn-focus-check-border-color;
          }

          &::after {
            background-color: $radio-btn-focus-check-bg-color;
            @if $skin-name == 'fluent2' {
              color: $radio-btn-focus-check-bg-color;
            }
          }
        }
      }

      +label {
        &:hover {
          & .e-ripple-container {
            @if $skin-name == 'Material3' {
              background: $radio-btn-checked-ripple-bgcolor;
            }
          }
          &::before {
            border-color: $radio-btn-hover-check-border-color;
          }

          &::after {
            background-color: $radio-btn-hover-check-bg-color;
            @if $skin-name == 'fluent2' {
              color: $radio-btn-hover-check-bg-color;
            }
          }
        }
      }
    }

    &:disabled {
      +label {
        cursor: default;
        pointer-events: none;
        @if $skin-name == 'bootstrap5.3' {
          opacity: .5;
        }

        &::before {
          @if $skin-name == 'bootstrap5' or $skin-name == 'bootstrap5.3' or $skin-name == 'bootstrap4' or $skin-name == 'tailwind' or $skin-name == 'tailwind3' {
            background-color: $radio-btn-disabled-not-checked-bg-color;
          }
          @else {
            background-color: $radio-btn-disabled-background-color;
          }
          border-color: $radio-btn-disabled-border-color;
          cursor: default;
        }

        & .e-ripple-container {
          background-color: transparent;

          &::after {
            background-color: transparent;
            cursor: default;
          }
        }

        & .e-label {
          color: $radio-btn-disabled-color;
        }
      }

      &:checked {
        +label {
          &::before {
            background-color: $radio-btn-disabled-background-color;
            border-color: $radio-btn-disabled-checked-border-color;
          }

          &::after {
            background-color: $radio-btn-disabled-checked-color;
            border-color: $radio-btn-disabled-checked-color;
            cursor: default;
          }

          & .e-ripple-container,
          & .e-ripple-container::after {
            background-color: transparent;
          }
        }
      }
    }
  }
}
