File: /var/dev/nowruzgan/admin/node_modules/@material/circular-progress/_circular-progress-theme.scss
//
// Copyright 2022 Google Inc.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
// stylelint-disable selector-class-pattern --
// Selector '.mdc-*' should only be used in this project.
@use 'sass:map';
@use 'sass:string';
@use '@material/theme/color-palette';
@use '@material/feature-targeting/feature-targeting';
@use '@material/theme/keys';
@use '@material/theme/theme';
@use '@material/theme/theme-color';
@use '@material/dom/dom';
$color: primary !default;
$track-color: transparent !default;
/// The rotation position of the arcs that corresponds to their fully contracted state
$base-angle: 135deg !default;
/// Amount of circle the arc takes up
$arc-size: 270deg !default;
/// Time it takes to expand and contract arc
$arc-time: 1333ms !default;
/// Time for inactive indicator to disappear
$shrink-time: 400ms !default;
/// How much the start location of the arc should rotate each time; 216 gives
/// us a 5 pointed star shape (it's 360/5 * 3)
$arc-start-rotation-interval: 216deg !default;
/// The timing function used for the core spinner animations.
$timing-function: cubic-bezier(0.4, 0, 0.2, 1) !default;
$custom-property-prefix: 'circular-progress';
$light-theme: (
active-indicator-color: theme-color.$primary,
active-indicator-width: 4px,
four-color-active-indicator-four-color: color-palette.$cyan-400,
four-color-active-indicator-one-color: color-palette.$brown-400,
four-color-active-indicator-three-color: color-palette.$orange-400,
four-color-active-indicator-two-color: color-palette.$teal-400,
size: 48px,
);
@mixin theme($theme) {
@include theme.validate-theme($light-theme, $theme);
@include keys.declare-custom-properties(
$theme,
$prefix: $custom-property-prefix
);
}
@mixin theme-styles($theme) {
@include theme.validate-theme-styles($light-theme, $theme);
$theme: keys.create-theme-properties(
$theme,
$prefix: $custom-property-prefix
);
@include _active-indicator-color(map.get($theme, active-indicator-color));
@include _active-indicator-width(map.get($theme, active-indicator-width));
@include _four-color-active-indicator(
(
map.get($theme, four-color-active-indicator-one-color),
map.get($theme, four-color-active-indicator-two-color),
map.get($theme, four-color-active-indicator-three-color),
map.get($theme, four-color-active-indicator-four-color)
)
);
@include _size(map.get($theme, size));
}
@mixin _active-indicator-color($color) {
@include color($color);
}
@mixin _active-indicator-width($width) {
circle {
@include theme.property(stroke-width, $width);
}
}
@mixin _four-color-active-indicator($colors) {
.mdc-circular-progress--four-color {
@include indeterminate-colors($colors);
}
}
@mixin _size($size) {
.mdc-circular-progress {
// TODO(b/286293822): Remove !important from css styles
@include theme.property(width, $size, $important: true);
// TODO(b/286293822): Remove !important from css styles
@include theme.property(height, $size, $important: true);
}
}
/// Customizes the stroke-color of the indicator. Applies to the
/// determinate variant, and also the indeterminate variant unless the
/// four-color mixin is applied.
/// @param {Color} $color - The desired stroke color.
/// @see {mixin} indeterminate-colors
@mixin color($color, $query: feature-targeting.all()) {
$feat-color: feature-targeting.create-target($query, color);
.mdc-circular-progress__determinate-circle,
.mdc-circular-progress__indeterminate-circle-graphic {
@include feature-targeting.targets($feat-color) {
@include theme.property(stroke, $color);
@include dom.forced-colors-mode {
@include theme.property(stroke, CanvasText);
}
}
}
}
/// Customizes the track color of the indicator. Applies to the
/// determinate variant only.
/// @param {Color} $color - The desired track color.
@mixin track-color($color, $query: feature-targeting.all()) {
$feat-color: feature-targeting.create-target($query, color);
.mdc-circular-progress__determinate-track {
@include feature-targeting.targets($feat-color) {
@include theme.property(stroke, $color);
}
}
}
/// Applies four animated stroke-colors to the indeterminate indicator.
/// Applicable to the indeterminate variant only and overrides any single color
/// currently set.
/// @param {List} $colors - A list of four desired colors.
/// @see {mixin} color
@mixin indeterminate-colors($colors, $query: feature-targeting.all()) {
$feat-color: feature-targeting.create-target($query, color);
@if length($colors) != 4 {
@error "`mdc-circular-progress-colors` accepts exactly 4 colors";
}
@for $i from 1 through 4 {
.mdc-circular-progress__color-#{$i}
.mdc-circular-progress__indeterminate-circle-graphic {
@include feature-targeting.targets($feat-color) {
@include theme.property(stroke, nth($colors, $i));
@include dom.forced-colors-mode {
@include theme.property(stroke, CanvasText);
}
}
}
}
}