@import '~sass-mixins/partials/_user-select';
@import '~sass-flex-mixin/_flex';
@import './_classes';

/**
 * @stable [05.04.2020]
 */
@function rac-cls (
  $rac-cls,
  $rac-custom: unset
) {
  @if $rac-custom != unset {
    @return '.#{$rac-cls}.#{$rac-custom}';
  }
  @return '.#{$rac-cls}';
}

/**
 * @stable [05.04.2020]
 */
@function rac-cls2 (
  $rac-cls,
  $rac-custom: unset
) {
  @if $rac-custom != unset {
    @return '#{$rac-cls}.#{$rac-custom}';
  }
  @return $rac-cls;
}

/**
 * @stable [11.05.2020]
 */
@function rac-not-cls (
  $rac-not-cls,
  $rac-cls: unset
) {
  @if $rac-cls != unset {
    @return '#{$rac-cls}:not(#{rac-cls($rac-not-cls)})';
  }
  @return ':not(#{rac-cls($rac-not-cls)})';
}

/**
 * @stable [02.02.2020]
 */
@mixin rac-transform ($transform) {
  -ms-transform: $transform;
  -webkit-transform: $transform;
  transform: $transform;
}

/**
 * @stable [02.02.2020]
 */
@mixin rac-transition ($transition) {
  -moz-transition: $transition;
  -o-transition: $transition;
  -webkit-transition: $transition;
  transition: $transition;
}

/**
 * @stable [05.04.2020]
 */
@mixin _rac-styles-properties (
  $rac-styles-custom: unset,
  /**/
  $rac-styles-align-content: unset,
  $rac-styles-align-items: unset,
  $rac-styles-align-self: unset,
  $rac-styles-background-color: unset,
  $rac-styles-background-image: unset,
  $rac-styles-background-position: unset,
  $rac-styles-background-repeat: unset,
  $rac-styles-background-size: unset,
  $rac-styles-background: unset,
  $rac-styles-border-bottom-color: unset,
  $rac-styles-border-bottom-left-radius: unset,
  $rac-styles-border-bottom-right-radius: unset,
  $rac-styles-border-bottom: unset,
  $rac-styles-border-collapse: unset,
  $rac-styles-border-color: unset,
  $rac-styles-border-left-color: unset,
  $rac-styles-border-left: unset,
  $rac-styles-border-radius: unset,
  $rac-styles-border-right-color: unset,
  $rac-styles-border-right: unset,
  $rac-styles-border-spacing: unset,
  $rac-styles-border-style: unset,
  $rac-styles-border-top-right-radius: unset,
  $rac-styles-border-top: unset,
  $rac-styles-border-width: unset,
  $rac-styles-border: unset,
  $rac-styles-bottom: unset,
  $rac-styles-box-shadow: unset,
  $rac-styles-box-sizing: unset,
  $rac-styles-color: unset,
  $rac-styles-content: unset,
  $rac-styles-cursor: unset,
  $rac-styles-display: unset,
  $rac-styles-flex-basis: unset,
  $rac-styles-flex-direction: unset,
  $rac-styles-flex-grow: unset,
  $rac-styles-flex-height: unset,
  $rac-styles-flex-shrink: unset,
  $rac-styles-flex-width: unset,
  $rac-styles-flex-wrap: unset,
  $rac-styles-flex: unset,
  $rac-styles-float: unset,
  $rac-styles-font-family: unset,
  $rac-styles-font-size: unset,
  $rac-styles-font-weight: unset,
  $rac-styles-font: unset,
  $rac-styles-height: unset,
  $rac-styles-justify-content: unset,
  $rac-styles-left: unset,
  $rac-styles-letter-spacing: unset,
  $rac-styles-line-height: unset,
  $rac-styles-margin-bottom: unset,
  $rac-styles-margin-left: unset,
  $rac-styles-margin-right: unset,
  $rac-styles-margin-top: unset,
  $rac-styles-margin: unset,
  $rac-styles-max-height: unset,
  $rac-styles-max-width: unset,
  $rac-styles-min-height: unset,
  $rac-styles-min-width: unset,
  $rac-styles-no-user-select: unset,
  $rac-styles-opacity: unset,
  $rac-styles-order: unset,
  $rac-styles-outline: unset,
  $rac-styles-overflow: unset,
  $rac-styles-padding-bottom: unset,
  $rac-styles-padding-left: unset,
  $rac-styles-padding-right: unset,
  $rac-styles-padding-top: unset,
  $rac-styles-padding: unset,
  $rac-styles-position: unset,
  $rac-styles-resize: unset,
  $rac-styles-right: unset,
  $rac-styles-size: unset,
  $rac-styles-table-layout: unset,
  $rac-styles-text-align: unset,
  $rac-styles-text-decoration: unset,
  $rac-styles-text-overflow: unset,
  $rac-styles-text-transform: unset,
  $rac-styles-top: unset,
  $rac-styles-transform: unset,
  $rac-styles-transition: unset,
  $rac-styles-vertical-align: unset,
  $rac-styles-visibility: unset,
  $rac-styles-white-space: unset,
  $rac-styles-width: unset,
  $rac-styles-word-break: unset,
  $rac-styles-z-index: unset
) {
  @if $rac-styles-align-content != unset { @include align-content($rac-styles-align-content); }
  @if $rac-styles-align-items != unset { @include align-items($rac-styles-align-items); }
  @if $rac-styles-align-self != unset { @include align-self($rac-styles-align-self); }
  @if $rac-styles-background != unset { background: $rac-styles-background; }
  @if $rac-styles-background-color != unset { background-color: $rac-styles-background-color; }
  @if $rac-styles-background-image != unset { background-image: $rac-styles-background-image; }
  @if $rac-styles-background-position != unset { background-position: $rac-styles-background-position; }
  @if $rac-styles-background-repeat != unset { background-repeat: $rac-styles-background-repeat; }
  @if $rac-styles-background-size != unset { background-size: $rac-styles-background-size; }
  @if $rac-styles-border != unset { border: $rac-styles-border; }
  @if $rac-styles-border-bottom != unset { border-bottom: $rac-styles-border-bottom; }
  @if $rac-styles-border-bottom-color != unset { border-bottom-color: $rac-styles-border-bottom-color; }
  @if $rac-styles-border-bottom-left-radius != unset { border-bottom-left-radius: $rac-styles-border-bottom-left-radius; }
  @if $rac-styles-border-bottom-right-radius != unset { border-bottom-right-radius: $rac-styles-border-bottom-right-radius; }
  @if $rac-styles-border-collapse != unset { border-collapse: $rac-styles-border-collapse; }
  @if $rac-styles-border-color != unset { border-color: $rac-styles-border-color; }
  @if $rac-styles-border-left != unset { border-left: $rac-styles-border-left; }
  @if $rac-styles-border-left-color != unset { border-left-color: $rac-styles-border-left-color; }
  @if $rac-styles-border-radius != unset { border-radius: $rac-styles-border-radius; }
  @if $rac-styles-border-right != unset { border-right: $rac-styles-border-right; }
  @if $rac-styles-border-right-color != unset { border-right-color: $rac-styles-border-right-color; }
  @if $rac-styles-border-spacing != unset { border-spacing: $rac-styles-border-spacing; }
  @if $rac-styles-border-style != unset { border-style: $rac-styles-border-style; }
  @if $rac-styles-border-top != unset { border-top: $rac-styles-border-top; }
  @if $rac-styles-border-top-right-radius != unset { border-top-right-radius: $rac-styles-border-top-right-radius; }
  @if $rac-styles-border-width != unset { border-width: $rac-styles-border-width; }
  @if $rac-styles-bottom != unset { bottom: $rac-styles-bottom; }
  @if $rac-styles-box-shadow != unset { box-shadow: $rac-styles-box-shadow; }
  @if $rac-styles-box-sizing != unset { box-sizing: $rac-styles-box-sizing; }
  @if $rac-styles-color != unset { color: $rac-styles-color; }
  @if $rac-styles-content != unset { content: $rac-styles-content; }
  @if $rac-styles-cursor != unset { cursor: $rac-styles-cursor; }
  @if $rac-styles-display != unset {
    @if $rac-styles-display == flex {
      @include flexbox;
    } @else if $rac-styles-display == inline-flex {
      @include inline-flex;
    } @else {
      display: $rac-styles-display;
    }
  }
  @if $rac-styles-flex != unset { @include flex($rac-styles-flex); }
  @if $rac-styles-flex-basis != unset { @include flex-basis($rac-styles-flex-basis); }
  @if $rac-styles-flex-direction != unset { @include flex-direction($rac-styles-flex-direction); }
  @if $rac-styles-flex-grow != unset { @include flex-grow($rac-styles-flex-grow); }
  @if $rac-styles-flex-shrink != unset { @include flex-shrink($rac-styles-flex-shrink); }
  @if $rac-styles-flex-wrap != unset { @include flex-wrap($rac-styles-flex-wrap); }
  @if $rac-styles-float != unset { float: $rac-styles-float; }
  @if $rac-styles-font != unset { font: $rac-styles-font; }
  @if $rac-styles-font-family != unset { font-family: $rac-styles-font-family; }
  @if $rac-styles-font-size != unset { font-size: $rac-styles-font-size; }
  @if $rac-styles-font-weight != unset { font-weight: $rac-styles-font-weight; }
  @if $rac-styles-height != unset { height: $rac-styles-height; }
  @if $rac-styles-justify-content != unset { @include justify-content($rac-styles-justify-content); }
  @if $rac-styles-left != unset { left: $rac-styles-left; }
  @if $rac-styles-letter-spacing != unset { letter-spacing: $rac-styles-letter-spacing; }
  @if $rac-styles-line-height != unset { line-height: $rac-styles-line-height; }
  @if $rac-styles-margin != unset { margin: $rac-styles-margin; }
  @if $rac-styles-margin-bottom != unset { margin-bottom: $rac-styles-margin-bottom; }
  @if $rac-styles-margin-left != unset { margin-left: $rac-styles-margin-left; }
  @if $rac-styles-margin-right != unset { margin-right: $rac-styles-margin-right; }
  @if $rac-styles-margin-top != unset { margin-top: $rac-styles-margin-top; }
  @if $rac-styles-max-height != unset { max-height: $rac-styles-max-height; }
  @if $rac-styles-max-width != unset { max-width: $rac-styles-max-width; }
  @if $rac-styles-min-height != unset { min-height: $rac-styles-min-height; }
  @if $rac-styles-min-width != unset { min-width: $rac-styles-min-width; }
  @if $rac-styles-no-user-select != unset { @include x-user-select; }
  @if $rac-styles-opacity != unset { opacity: $rac-styles-opacity; }
  @if $rac-styles-order != unset { order: $rac-styles-order; }
  @if $rac-styles-outline != unset { outline: $rac-styles-outline; }
  @if $rac-styles-overflow != unset { overflow: $rac-styles-overflow; }
  @if $rac-styles-padding != unset { padding: $rac-styles-padding; }
  @if $rac-styles-padding-bottom != unset { padding-bottom: $rac-styles-padding-bottom; }
  @if $rac-styles-padding-left != unset { padding-left: $rac-styles-padding-left; }
  @if $rac-styles-padding-right != unset { padding-right: $rac-styles-padding-right; }
  @if $rac-styles-padding-top != unset { padding-top: $rac-styles-padding-top; }
  @if $rac-styles-position != unset { position: $rac-styles-position; }
  @if $rac-styles-resize != unset { resize: $rac-styles-resize; }
  @if $rac-styles-right != unset { right: $rac-styles-right; }
  @if $rac-styles-size != unset { width: $rac-styles-size; height: $rac-styles-size; }
  @if $rac-styles-table-layout != unset { table-layout: $rac-styles-table-layout; }
  @if $rac-styles-text-align != unset { text-align: $rac-styles-text-align; }
  @if $rac-styles-text-decoration != unset { text-decoration: $rac-styles-text-decoration; }
  @if $rac-styles-text-overflow != unset { text-overflow: $rac-styles-text-overflow; }
  @if $rac-styles-text-transform != unset { text-transform: $rac-styles-text-transform; }
  @if $rac-styles-top != unset { top: $rac-styles-top; }
  @if $rac-styles-transform != unset { @include rac-transform($rac-styles-transform); }
  @if $rac-styles-transition != unset { @include rac-transition($rac-styles-transition); }
  @if $rac-styles-vertical-align != unset { vertical-align: $rac-styles-vertical-align; }
  @if $rac-styles-visibility != unset { visibility: $rac-styles-visibility; }
  @if $rac-styles-white-space != unset { white-space: $rac-styles-white-space; }
  @if $rac-styles-width != unset { width: $rac-styles-width; }
  @if $rac-styles-word-break != unset { word-break: $rac-styles-word-break; }
  @if $rac-styles-z-index != unset { z-index: $rac-styles-z-index; }
  @if $rac-styles-flex-width != unset {
    min-width: $rac-styles-flex-width;
    max-width: $rac-styles-flex-width;
  }
  @if $rac-styles-flex-height != unset {
    max-height: $rac-styles-flex-height;
    min-height: $rac-styles-flex-height;
  }
}

/**
 * @stable [05.04.2020]
 */
@mixin rac-styles (
  $rac-styles-custom: unset,
  /**/
  $rac-styles-align-content: unset,
  $rac-styles-align-items: unset,
  $rac-styles-align-self: unset,
  $rac-styles-background-color: unset,
  $rac-styles-background-image: unset,
  $rac-styles-background-position: unset,
  $rac-styles-background-repeat: unset,
  $rac-styles-background-size: unset,
  $rac-styles-background: unset,
  $rac-styles-border-bottom-color: unset,
  $rac-styles-border-bottom-left-radius: unset,
  $rac-styles-border-bottom-right-radius: unset,
  $rac-styles-border-bottom: unset,
  $rac-styles-border-collapse: unset,
  $rac-styles-border-color: unset,
  $rac-styles-border-left-color: unset,
  $rac-styles-border-left: unset,
  $rac-styles-border-radius: unset,
  $rac-styles-border-right-color: unset,
  $rac-styles-border-right: unset,
  $rac-styles-border-spacing: unset,
  $rac-styles-border-style: unset,
  $rac-styles-border-top-right-radius: unset,
  $rac-styles-border-top: unset,
  $rac-styles-border-width: unset,
  $rac-styles-border: unset,
  $rac-styles-bottom: unset,
  $rac-styles-box-shadow: unset,
  $rac-styles-box-sizing: unset,
  $rac-styles-color: unset,
  $rac-styles-content: unset,
  $rac-styles-cursor: unset,
  $rac-styles-display: unset,
  $rac-styles-flex-basis: unset,
  $rac-styles-flex-direction: unset,
  $rac-styles-flex-grow: unset,
  $rac-styles-flex-height: unset,
  $rac-styles-flex-shrink: unset,
  $rac-styles-flex-width: unset,
  $rac-styles-flex-wrap: unset,
  $rac-styles-flex: unset,
  $rac-styles-float: unset,
  $rac-styles-font-family: unset,
  $rac-styles-font-size: unset,
  $rac-styles-font-weight: unset,
  $rac-styles-font: unset,
  $rac-styles-height: unset,
  $rac-styles-justify-content: unset,
  $rac-styles-left: unset,
  $rac-styles-letter-spacing: unset,
  $rac-styles-line-height: unset,
  $rac-styles-margin-bottom: unset,
  $rac-styles-margin-left: unset,
  $rac-styles-margin-right: unset,
  $rac-styles-margin-top: unset,
  $rac-styles-margin: unset,
  $rac-styles-max-height: unset,
  $rac-styles-max-width: unset,
  $rac-styles-min-height: unset,
  $rac-styles-min-width: unset,
  $rac-styles-no-user-select: unset,
  $rac-styles-opacity: unset,
  $rac-styles-order: unset,
  $rac-styles-outline: unset,
  $rac-styles-overflow: unset,
  $rac-styles-padding-bottom: unset,
  $rac-styles-padding-left: unset,
  $rac-styles-padding-right: unset,
  $rac-styles-padding-top: unset,
  $rac-styles-padding: unset,
  $rac-styles-position: unset,
  $rac-styles-resize: unset,
  $rac-styles-right: unset,
  $rac-styles-size: unset,
  $rac-styles-table-layout: unset,
  $rac-styles-text-align: unset,
  $rac-styles-text-decoration: unset,
  $rac-styles-text-overflow: unset,
  $rac-styles-text-transform: unset,
  $rac-styles-top: unset,
  $rac-styles-transform: unset,
  $rac-styles-transition: unset,
  $rac-styles-vertical-align: unset,
  $rac-styles-visibility: unset,
  $rac-styles-white-space: unset,
  $rac-styles-width: unset,
  $rac-styles-word-break: unset,
  $rac-styles-z-index: unset
) {

  @if $rac-styles-custom != unset {
    .#{$rac-styles-custom} {
      @include _rac-styles-properties (
        $rac-styles-align-content: $rac-styles-align-content,
        $rac-styles-align-items: $rac-styles-align-items,
        $rac-styles-align-self: $rac-styles-align-self,
        $rac-styles-background-color: $rac-styles-background-color,
        $rac-styles-background-image: $rac-styles-background-image,
        $rac-styles-background-position: $rac-styles-background-position,
        $rac-styles-background-repeat: $rac-styles-background-repeat,
        $rac-styles-background-size: $rac-styles-background-size,
        $rac-styles-background: $rac-styles-background,
        $rac-styles-border-bottom-color: $rac-styles-border-bottom-color,
        $rac-styles-border-bottom-left-radius: $rac-styles-border-bottom-left-radius,
        $rac-styles-border-bottom-right-radius: $rac-styles-border-bottom-right-radius,
        $rac-styles-border-bottom: $rac-styles-border-bottom,
        $rac-styles-border-collapse: $rac-styles-border-collapse,
        $rac-styles-border-color: $rac-styles-border-color,
        $rac-styles-border-left-color: $rac-styles-border-left-color,
        $rac-styles-border-left: $rac-styles-border-left,
        $rac-styles-border-radius: $rac-styles-border-radius,
        $rac-styles-border-right-color: $rac-styles-border-right-color,
        $rac-styles-border-right: $rac-styles-border-right,
        $rac-styles-border-spacing: $rac-styles-border-spacing,
        $rac-styles-border-style: $rac-styles-border-style,
        $rac-styles-border-top-right-radius: $rac-styles-border-top-right-radius,
        $rac-styles-border-top: $rac-styles-border-top,
        $rac-styles-border-width: $rac-styles-border-width,
        $rac-styles-border: $rac-styles-border,
        $rac-styles-bottom: $rac-styles-bottom,
        $rac-styles-box-shadow: $rac-styles-box-shadow,
        $rac-styles-box-sizing: $rac-styles-box-sizing,
        $rac-styles-color: $rac-styles-color,
        $rac-styles-content: $rac-styles-content,
        $rac-styles-cursor: $rac-styles-cursor,
        $rac-styles-display: $rac-styles-display,
        $rac-styles-flex-basis: $rac-styles-flex-basis,
        $rac-styles-flex-direction: $rac-styles-flex-direction,
        $rac-styles-flex-grow: $rac-styles-flex-grow,
        $rac-styles-flex-height: $rac-styles-flex-height,
        $rac-styles-flex-shrink: $rac-styles-flex-shrink,
        $rac-styles-flex-width: $rac-styles-flex-width,
        $rac-styles-flex-wrap: $rac-styles-flex-wrap,
        $rac-styles-flex: $rac-styles-flex,
        $rac-styles-float: $rac-styles-float,
        $rac-styles-font-family: $rac-styles-font-family,
        $rac-styles-font-size: $rac-styles-font-size,
        $rac-styles-font-weight: $rac-styles-font-weight,
        $rac-styles-font: $rac-styles-font,
        $rac-styles-height: $rac-styles-height,
        $rac-styles-justify-content: $rac-styles-justify-content,
        $rac-styles-left: $rac-styles-left,
        $rac-styles-letter-spacing: $rac-styles-letter-spacing,
        $rac-styles-line-height: $rac-styles-line-height,
        $rac-styles-margin-bottom: $rac-styles-margin-bottom,
        $rac-styles-margin-left: $rac-styles-margin-left,
        $rac-styles-margin-right: $rac-styles-margin-right,
        $rac-styles-margin-top: $rac-styles-margin-top,
        $rac-styles-margin: $rac-styles-margin,
        $rac-styles-max-height: $rac-styles-max-height,
        $rac-styles-max-width: $rac-styles-max-width,
        $rac-styles-min-height: $rac-styles-min-height,
        $rac-styles-min-width: $rac-styles-min-width,
        $rac-styles-no-user-select: $rac-styles-no-user-select,
        $rac-styles-opacity: $rac-styles-opacity,
        $rac-styles-order: $rac-styles-order,
        $rac-styles-outline: $rac-styles-outline,
        $rac-styles-overflow: $rac-styles-overflow,
        $rac-styles-padding-bottom: $rac-styles-padding-bottom,
        $rac-styles-padding-left: $rac-styles-padding-left,
        $rac-styles-padding-right: $rac-styles-padding-right,
        $rac-styles-padding-top: $rac-styles-padding-top,
        $rac-styles-padding: $rac-styles-padding,
        $rac-styles-position: $rac-styles-position,
        $rac-styles-resize: $rac-styles-resize,
        $rac-styles-right: $rac-styles-right,
        $rac-styles-size: $rac-styles-size,
        $rac-styles-table-layout: $rac-styles-table-layout,
        $rac-styles-text-align: $rac-styles-text-align,
        $rac-styles-text-decoration: $rac-styles-text-decoration,
        $rac-styles-text-overflow: $rac-styles-text-overflow,
        $rac-styles-text-transform: $rac-styles-text-transform,
        $rac-styles-top: $rac-styles-top,
        $rac-styles-transform: $rac-styles-transform,
        $rac-styles-transition: $rac-styles-transition,
        $rac-styles-vertical-align: $rac-styles-vertical-align,
        $rac-styles-visibility: $rac-styles-visibility,
        $rac-styles-white-space: $rac-styles-white-space,
        $rac-styles-width: $rac-styles-width,
        $rac-styles-word-break: $rac-styles-word-break,
        $rac-styles-z-index: $rac-styles-z-index
      );
    }
  } @else {
    @include _rac-styles-properties (
      $rac-styles-align-content: $rac-styles-align-content,
      $rac-styles-align-items: $rac-styles-align-items,
      $rac-styles-align-self: $rac-styles-align-self,
      $rac-styles-background-color: $rac-styles-background-color,
      $rac-styles-background-image: $rac-styles-background-image,
      $rac-styles-background-position: $rac-styles-background-position,
      $rac-styles-background-repeat: $rac-styles-background-repeat,
      $rac-styles-background-size: $rac-styles-background-size,
      $rac-styles-background: $rac-styles-background,
      $rac-styles-border-bottom-color: $rac-styles-border-bottom-color,
      $rac-styles-border-bottom-left-radius: $rac-styles-border-bottom-left-radius,
      $rac-styles-border-bottom-right-radius: $rac-styles-border-bottom-right-radius,
      $rac-styles-border-bottom: $rac-styles-border-bottom,
      $rac-styles-border-collapse: $rac-styles-border-collapse,
      $rac-styles-border-color: $rac-styles-border-color,
      $rac-styles-border-left-color: $rac-styles-border-left-color,
      $rac-styles-border-left: $rac-styles-border-left,
      $rac-styles-border-radius: $rac-styles-border-radius,
      $rac-styles-border-right-color: $rac-styles-border-right-color,
      $rac-styles-border-right: $rac-styles-border-right,
      $rac-styles-border-spacing: $rac-styles-border-spacing,
      $rac-styles-border-style: $rac-styles-border-style,
      $rac-styles-border-top-right-radius: $rac-styles-border-top-right-radius,
      $rac-styles-border-top: $rac-styles-border-top,
      $rac-styles-border-width: $rac-styles-border-width,
      $rac-styles-border: $rac-styles-border,
      $rac-styles-bottom: $rac-styles-bottom,
      $rac-styles-box-shadow: $rac-styles-box-shadow,
      $rac-styles-box-sizing: $rac-styles-box-sizing,
      $rac-styles-color: $rac-styles-color,
      $rac-styles-content: $rac-styles-content,
      $rac-styles-cursor: $rac-styles-cursor,
      $rac-styles-display: $rac-styles-display,
      $rac-styles-flex-basis: $rac-styles-flex-basis,
      $rac-styles-flex-direction: $rac-styles-flex-direction,
      $rac-styles-flex-grow: $rac-styles-flex-grow,
      $rac-styles-flex-height: $rac-styles-flex-height,
      $rac-styles-flex-shrink: $rac-styles-flex-shrink,
      $rac-styles-flex-width: $rac-styles-flex-width,
      $rac-styles-flex-wrap: $rac-styles-flex-wrap,
      $rac-styles-flex: $rac-styles-flex,
      $rac-styles-float: $rac-styles-float,
      $rac-styles-font-family: $rac-styles-font-family,
      $rac-styles-font-size: $rac-styles-font-size,
      $rac-styles-font-weight: $rac-styles-font-weight,
      $rac-styles-font: $rac-styles-font,
      $rac-styles-height: $rac-styles-height,
      $rac-styles-justify-content: $rac-styles-justify-content,
      $rac-styles-left: $rac-styles-left,
      $rac-styles-letter-spacing: $rac-styles-letter-spacing,
      $rac-styles-line-height: $rac-styles-line-height,
      $rac-styles-margin-bottom: $rac-styles-margin-bottom,
      $rac-styles-margin-left: $rac-styles-margin-left,
      $rac-styles-margin-right: $rac-styles-margin-right,
      $rac-styles-margin-top: $rac-styles-margin-top,
      $rac-styles-margin: $rac-styles-margin,
      $rac-styles-max-height: $rac-styles-max-height,
      $rac-styles-max-width: $rac-styles-max-width,
      $rac-styles-min-height: $rac-styles-min-height,
      $rac-styles-min-width: $rac-styles-min-width,
      $rac-styles-no-user-select: $rac-styles-no-user-select,
      $rac-styles-opacity: $rac-styles-opacity,
      $rac-styles-order: $rac-styles-order,
      $rac-styles-outline: $rac-styles-outline,
      $rac-styles-overflow: $rac-styles-overflow,
      $rac-styles-padding-bottom: $rac-styles-padding-bottom,
      $rac-styles-padding-left: $rac-styles-padding-left,
      $rac-styles-padding-right: $rac-styles-padding-right,
      $rac-styles-padding-top: $rac-styles-padding-top,
      $rac-styles-padding: $rac-styles-padding,
      $rac-styles-position: $rac-styles-position,
      $rac-styles-resize: $rac-styles-resize,
      $rac-styles-right: $rac-styles-right,
      $rac-styles-size: $rac-styles-size,
      $rac-styles-table-layout: $rac-styles-table-layout,
      $rac-styles-text-align: $rac-styles-text-align,
      $rac-styles-text-decoration: $rac-styles-text-decoration,
      $rac-styles-text-overflow: $rac-styles-text-overflow,
      $rac-styles-text-transform: $rac-styles-text-transform,
      $rac-styles-top: $rac-styles-top,
      $rac-styles-transform: $rac-styles-transform,
      $rac-styles-transition: $rac-styles-transition,
      $rac-styles-vertical-align: $rac-styles-vertical-align,
      $rac-styles-visibility: $rac-styles-visibility,
      $rac-styles-white-space: $rac-styles-white-space,
      $rac-styles-width: $rac-styles-width,
      $rac-styles-word-break: $rac-styles-word-break,
      $rac-styles-z-index: $rac-styles-z-index
    );
  }
}

/**
 * @stable [07.04.2020]
 */
@mixin rac-neighbor-child (
  $rac-neighbor-child-custom: unset,
  $rac-neighbor-child-margin: unset
) {
  $v: unquote('>');
  @if $rac-neighbor-child-custom != unset {
    $v: '.#{$rac-neighbor-child-custom} >';
  }

  #{$v} :not(:first-child) {
    @include rac-styles (
      $rac-styles-margin: $rac-neighbor-child-margin
    );
  }
}

/**
 * @stable [11.05.2020]
 */
@mixin _rac-filter-properties (
  $rac-filter-value: unset,
  $rac-filter-name: unset
) {
  $rac-filter-actual-value: unquote('#{$rac-filter-name}(#{$rac-filter-value})');
  filter: $rac-filter-actual-value;
  -moz-filter: $rac-filter-actual-value;
  -ms-filter: $rac-filter-actual-value;
  -o-filter: $rac-filter-actual-value;
  -webkit-filter: $rac-filter-actual-value;
}

/**
 * @stable [11.05.2020]
 */
@mixin rac-filter (
  $rac-filter-custom: unset,
  $rac-filter-value: unset,
  $rac-filter-name: unset
) {
  @if $rac-filter-value != unset and $rac-filter-name != unset {
    @if $rac-filter-custom != unset {
      #{rac-cls($rac-filter-custom)} {
        @include _rac-filter-properties (
          $rac-filter-name: $rac-filter-name,
          $rac-filter-value: $rac-filter-value
        );
      }
    } @else {
      @include _rac-filter-properties (
        $rac-filter-name: $rac-filter-name,
        $rac-filter-value: $rac-filter-value
      );
    }
  }
}

/**
 * @stable [19.05.2020]
 */
@mixin rac-after (
  $rac-after-background: unset,
  $rac-after-bottom: unset,
  $rac-after-box-shadow: unset,
  $rac-after-color: unset,
  $rac-after-content: unset,
  $rac-after-font-size: unset,
  $rac-after-height: unset,
  $rac-after-left: unset,
  $rac-after-position: unset,
  $rac-after-right: unset,
  $rac-after-top: unset,
  $rac-after-width: unset
) {
  &::after {
    @include rac-styles (
      $rac-styles-background: $rac-after-background,
      $rac-styles-bottom: $rac-after-bottom,
      $rac-styles-box-shadow: $rac-after-box-shadow,
      $rac-styles-color: $rac-after-color,
      $rac-styles-content: $rac-after-content,
      $rac-styles-font-size: $rac-after-font-size,
      $rac-styles-height: $rac-after-height,
      $rac-styles-left: $rac-after-left,
      $rac-styles-position: $rac-after-position,
      $rac-styles-right: $rac-after-right,
      $rac-styles-top: $rac-after-top,
      $rac-styles-width: $rac-after-width
    );
  }
}

/**
 * @stable [02.06.2020]
 */
@mixin rac-alignment (
  $rac-alignment-custom: unset,
  /**/
  $rac-alignment-left: unset,
  $rac-alignment-position: unset,
  $rac-alignment-top: unset
) {
  #{rac-cls($rac-alignment-custom)} {
    @include rac-styles (
      $rac-styles-left: $rac-alignment-left,
      $rac-styles-position: $rac-alignment-position,
      $rac-styles-top: $rac-alignment-top,
      $rac-styles-transform: translate(-$rac-alignment-top, -$rac-alignment-left)
    );
  }
}

/**
 * @stable [02.06.2020]
 */
@mixin rac-alignment-center (
  $rac-alignment-center-custom: unset,
  /**/
  $rac-alignment-center-left: unset,
  $rac-alignment-center-position: unset,
  $rac-alignment-center-top: unset
) {
  @include rac-alignment (
    $rac-alignment-custom: rac-cls2($rac-alignment-center-cls, $rac-alignment-center-custom),
    $rac-alignment-left: $rac-alignment-center-left,
    $rac-alignment-position: $rac-alignment-center-position,
    $rac-alignment-top: $rac-alignment-center-top
  );
}

/**
 * @stable [02.06.2020]
 */
@mixin rac-perfect-scrollbar (
  $rac-perfect-scrollbar-custom: unset,
  /**/
  $rac-perfect-scrollbar-active-background-color: unset,
  $rac-perfect-scrollbar-background-color: unset,
  $rac-perfect-scrollbar-rail-background-color: unset
) {
  #{rac-cls($rac-perfect-scrollbar-custom)} {
    .ps__thumb-y, .ps__thumb-x   {
      @include rac-styles (
        $rac-styles-background-color: $rac-perfect-scrollbar-background-color
      );
    }

    .ps .ps__rail-x:hover,
    .ps .ps__rail-y:hover,
    .ps .ps__rail-x:focus,
    .ps .ps__rail-y:focus,
    .ps .ps__rail-x.ps--clicking,
    .ps .ps__rail-y.ps--clicking {
      @include rac-styles (
        $rac-styles-background-color: $rac-perfect-scrollbar-rail-background-color
      );
    }

    .ps__rail-x:hover > .ps__thumb-x,
    .ps__rail-x:focus > .ps__thumb-x,
    .ps__rail-x.ps--clicking .ps__thumb-x,
    .ps__rail-y:hover > .ps__thumb-y,
    .ps__rail-y:focus > .ps__thumb-y,
    .ps__rail-y.ps--clicking .ps__thumb-y {
      @include rac-styles (
        $rac-styles-background-color: $rac-perfect-scrollbar-active-background-color
      );
    }
  }
}

/**
 * @stable [02.06.2020]
 */
@mixin rac-message (
  $rac-message-custom: unset,
  /**/
  $rac-message-background-size: unset,
  $rac-message-background: unset,
  $rac-message-body-color: unset,
  $rac-message-body-font-size: unset
) {
  #{rac-cls(rac-message, $rac-message-custom)} {
    @include rac-styles (
      $rac-styles-background-size: $rac-message-background-size,
      $rac-styles-background: $rac-message-background
    );

    @include rac-styles (
      $rac-styles-custom: rac-message-body,
      $rac-styles-color: $rac-message-body-color,
      $rac-styles-font-size: $rac-message-body-font-size
    );
  }
}

/**
 * @stable [02.06.2020]
 */
@mixin rac-shadow (
  $rac-background: unset,
  $rac-shadow: unset,
  $rac-shadow-offset: 0 6px 16px 0
) {
  @include rac-styles (
    $rac-styles-background: $rac-background
  );
  @if $rac-shadow != unset {
    @if $rac-shadow == none {
      @include rac-styles (
        $rac-styles-box-shadow: $rac-shadow
      );
    } @else {
      @include rac-styles (
        $rac-styles-box-shadow: $rac-shadow-offset $rac-shadow
      );
    }
  }
}

/**
 * @stable [02.06.2020]
 */
@mixin rac-scrollbar (
  $rac-scrollbar-size: unset,
  $rac-scrollbar-thumb-background: unset,
  $rac-scrollbar-track-background: unset
) {
  // For Google Chrome
  &::-webkit-scrollbar {
    width:  $rac-scrollbar-size;
    height: $rac-scrollbar-size;
  }

  &::-webkit-scrollbar-thumb {
    background: $rac-scrollbar-thumb-background;
  }

  &::-webkit-scrollbar-track {
    background: $rac-scrollbar-track-background;
  }

  // For Internet Explorer
  & {
    scrollbar-face-color: $rac-scrollbar-thumb-background;
    scrollbar-track-color: $rac-scrollbar-track-background;
  }
}

/**
 * @stable [19.06.2020]
 */
@mixin rac-placeholder (
  $rac-placeholder-color: unset,
  $rac-placeholder-font-size: unset,
  $rac-placeholder-line-height: unset,
  $rac-placeholder-padding: unset
) {
  &::-webkit-input-placeholder {
    @include rac-styles (
      $rac-styles-color: $rac-placeholder-color,
      $rac-styles-font-size: $rac-placeholder-font-size,
      $rac-styles-line-height: $rac-placeholder-line-height,
      $rac-styles-padding: $rac-placeholder-padding
    );
  }
  &::-moz-placeholder {
    @include rac-styles (
      $rac-styles-color: $rac-placeholder-color,
      $rac-styles-font-size: $rac-placeholder-font-size,
      $rac-styles-line-height: $rac-placeholder-line-height,
      $rac-styles-padding: $rac-placeholder-padding
    );
  }
  &:-ms-input-placeholder {
    @include rac-styles (
      $rac-styles-color: $rac-placeholder-color,
      $rac-styles-font-size: $rac-placeholder-font-size,
      $rac-styles-line-height: $rac-placeholder-line-height,
      $rac-styles-padding: $rac-placeholder-padding
    );
  }
  &:-moz-placeholder {
    @include rac-styles (
      $rac-styles-color: $rac-placeholder-color,
      $rac-styles-font-size: $rac-placeholder-font-size,
      $rac-styles-line-height: $rac-placeholder-line-height,
      $rac-styles-padding: $rac-placeholder-padding
    );
  }
  &::placeholder {
    @include rac-styles (
      $rac-styles-color: $rac-placeholder-color,
      $rac-styles-font-size: $rac-placeholder-font-size,
      $rac-styles-line-height: $rac-placeholder-line-height,
      $rac-styles-padding: $rac-placeholder-padding
    );
  }
}