/**
 * This file is part of the O2System Venus UI Framework package.
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 *
 * @author         Steeve Andrian Salim
 * @copyright      Copyright (c) Steeve Andrian Salim
 */
// ------------------------------------------------------------------------

/**
 * Sass Buttons
 * 
 * @author  Teguh Rianto
 * @package Bootstrap/Mixins
 */
// Button variants
//
// Easily pump out default styles, as well as :hover, :focus, :active,
// and disabled options for all buttons

@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {
  color: color-yiq($background);
  @include gradient-bg($background);
  border-color: $border;
  /* @include box-shadow($btn-box-shadow); */
  box-shadow: unset;

  &.btn-icon{
    i{
      background-color: $hover-background;
    }
  }

  &.btn-warning{
    color: $white;
  }

  @include hover {
    color: color-yiq($hover-background);
    @include gradient-bg($hover-background);
    border-color: $hover-border;
  }

  &:focus,
  &.focus {
    // Avoid using mixin so we can pass custom focus shadow properly
    @if $enable-shadows {
      /* box-shadow: $btn-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5); */
      box-shadow: unset;
    } 
  }


  // Disabled comes first so active can properly restyle
  &.disabled,
  &:disabled {
    color: color-yiq($background);
    background-color: $background;
    border-color: $border;
  }

  &:not(:disabled):not(.disabled):active,
  &:not(:disabled):not(.disabled).active,
  .show > &.dropdown-toggle {
    color: color-yiq($active-background);
    background-color: $active-background;
    @if $enable-gradients {
      background-image: none; // Remove the gradient for the pressed/active state
    }
    border-color: $active-border;

    &:focus {
      // Avoid using mixin so we can pass custom focus shadow properly
      @if $enable-shadows {
        /* box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5); */
        box-shadow: unset;
      }
    }
  }

  &.btn-link{
    border: none;
    color: $background;
    background-color: transparent;

    &:hover{
      color: $hover-background;
    }

    &.btn-default{
      color: color-yiq($background);

      &:hover{
        color: color-yiq($hover-background);
      }
    }
  }
}

@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {
  color: $color;
  background-color: transparent;
  background-image: none;
  border-color: $color;
  &.btn-icon{
    i{
      background-color: transparent;
      border-right: 1px solid $color;
    }
  }
  &:hover {
    color: $color-hover;
    background-color: $active-background;
    border-color: $active-border;
    &.btn-icon{
      i{
        background-color: darken($color, 7.5%);
      }
    }
  }

  &:focus,
  &.focus {
    /* box-shadow: 0 0 0 $btn-focus-width rgba($color, .5); */
    box-shadow: unset;
  }


  &.disabled,
  &:disabled {
    color: $color;
    background-color: transparent;
  }

  &:not(:disabled):not(.disabled):active,
  &:not(:disabled):not(.disabled).active,
  .show > &.dropdown-toggle {
    color: color-yiq($active-background);
    background-color: $active-background;
    border-color: $active-border;

    &:focus {
      // Avoid using mixin so we can pass custom focus shadow properly
      @if $enable-shadows and $btn-active-box-shadow != none {
        /* box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5); */
        box-shadow: unset;
      } 
    }
  }
}

// Button sizes
@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius, $padding-left:null, $padding-i:null) {
  padding: $padding-y $padding-x;
  font-size: $font-size;
  line-height: $line-height;
  // Manually declare to provide an override to the browser default
  @if $enable-rounded {
    border-radius: $border-radius;
  } @else {
    border-radius: 0;
  }

  &.btn-icon{
    padding-left: $padding-left;

    i{
      padding: $padding-i;
    }
  }
}
