//
// Copyright 2016 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

@import "@material/theme/mixins";
@import "./variables";

//
// Public
//

@mixin mdc-switch-track-color($color) {
  .mdc-switch__native-control:enabled:checked ~ .mdc-switch__background::before {
    @include mdc-theme-prop(background-color, $color);
    @include mdc-theme-prop(border-color, $color);
  }
}

@mixin mdc-switch-knob-color($color) {
  // stylelint-disable-next-line selector-max-specificity
  .mdc-switch__native-control:enabled:checked ~ .mdc-switch__background .mdc-switch__knob {
    @include mdc-theme-prop(background-color, $color);
    @include mdc-theme-prop(border-color, $color);
  }
}

@mixin mdc-switch-focus-indicator-color($color) {
  // stylelint-disable-next-line selector-max-specificity
  .mdc-switch__native-control:enabled:checked ~ .mdc-switch__background .mdc-switch__knob::before {
    @include mdc-theme-prop(background-color, $color);
  }
}

//
// Private
//

@mixin mdc-switch-unchecked-track-color_($color) {
  .mdc-switch__native-control:enabled:not(:checked) ~ .mdc-switch__background::before {
    @include mdc-theme-prop(background-color, $color);
    @include mdc-theme-prop(border-color, $color);
  }
}

@mixin mdc-switch-unchecked-knob-color_($color) {
  // stylelint-disable-next-line selector-max-specificity
  .mdc-switch__native-control:enabled:not(:checked) ~ .mdc-switch__background .mdc-switch__knob {
    @include mdc-theme-prop(background-color, $color);
    @include mdc-theme-prop(border-color, $color);
  }
}

@mixin mdc-switch-unchecked-focus-indicator-color_($color) {
  // stylelint-disable-next-line selector-max-specificity
  .mdc-switch__native-control:enabled:not(:checked) ~ .mdc-switch__background .mdc-switch__knob::before {
    @include mdc-theme-prop(background-color, $color);
  }
}

@mixin mdc-switch-native-control_ {
  position: absolute;
  top: -14px;
  left: -14px;
  width: $mdc-switch-focus-ring-diameter;
  height: $mdc-switch-focus-ring-diameter;
}

@mixin mdc-switch-tap-target_ {
  position: absolute;
  top: -24px;
  left: -24px;
  width: $mdc-switch-focus-ring-diameter;
  height: $mdc-switch-focus-ring-diameter;
}
