/**
 *
 * @ai-apps/angular v2.152.0 | _mixins.scss
 *
 * Copyright 2014, 2023 IBM
 *
 * 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.
 */


//
// Copyright IBM Corp. 2016, 2018
//
// This source code is licensed under the Apache-2.0 license found in the
// LICENSE file in the root directory of this source tree.
//

//-------------------------
// Animations - Loading
//-------------------------
@import '../../globals/scss/vars';

/// @access private
/// @group loading
@mixin animation__loading--spin {
  // Animate the container
  animation-duration: 690ms;
  animation-fill-mode: forwards;
  animation-iteration-count: infinite;
  animation-name: rotate;
  animation-timing-function: linear;

  // Animate the stroke
  svg circle {
    animation-duration: 10ms;
    animation-name: init-stroke;
    animation-timing-function: $carbon--standard-easing;

    @media screen and (prefers-reduced-motion: reduce) {
      animation: none;
    }
  }
}

/// @access private
/// @group loading
@mixin animation__loading--stop {
  // Animate the container
  animation: rotate-end-p1 700ms $carbon--ease-out forwards,
    rotate-end-p2 700ms $carbon--ease-out 700ms forwards;

  // Animate the stroke
  svg circle {
    animation-delay: 700ms;
    animation-duration: 700ms;
    animation-fill-mode: forwards;
    animation-name: stroke-end;
    animation-timing-function: $carbon--ease-out;

    @media screen and (prefers-reduced-motion: reduce) {
      animation: none;
    }
  }
}
