@use "sass:map";
@use "sass:math";
@use "../core/_index.scss" as *;

/// The default size of the Loader.
/// @group loader
/// @role default
$kendo-loader-default-size: "md" !default;

/// The default theme color of the Loader.
/// @group loader
/// @role default
$kendo-loader-default-theme-color: "primary" !default;

/// The border radius of the Loader segment.
/// @group loader
$kendo-loader-segment-border-radius: var( --kendo-loader-segment-border-radius, 50% ) !default;

/// The size of the small Loader segment.
/// @group loader
$kendo-loader-sm-segment-size: k-spacing(1) !default;
/// The size of the medium Loader segment.
/// @group loader
$kendo-loader-md-segment-size: k-spacing(2) !default;
/// The size of the large Loader segment.
/// @group loader
$kendo-loader-lg-segment-size: k-spacing(4) !default;

/// The horizontal padding of the small Loader.
/// @group loader
$kendo-loader-sm-padding-x: var( --kendo-loader-sm-padding-x, calc( #{$kendo-loader-sm-segment-size} / 2 ) ) !default;
/// The horizontal padding of the medium Loader.
/// @group loader
$kendo-loader-md-padding-x: var( --kendo-loader-md-padding-x, calc( #{$kendo-loader-md-segment-size} / 2 ) ) !default;
/// The horizontal padding of the large Loader.
/// @group loader
$kendo-loader-lg-padding-x: var( --kendo-loader-lg-padding-x, calc( #{$kendo-loader-lg-segment-size} / 2 ) ) !default;

/// The vertical padding of the small Loader.
/// @group loader
$kendo-loader-sm-padding-y: var( --kendo-loader-sm-padding-y, calc( #{$kendo-loader-sm-segment-size} / 2 ) ) !default;
/// The vertical padding of the medium Loader.
/// @group loader
$kendo-loader-md-padding-y: var( --kendo-loader-md-padding-y, calc( #{$kendo-loader-md-segment-size} / 2 ) ) !default;
/// The vertical padding of the large Loader.
/// @group loader
$kendo-loader-lg-padding-y: var( --kendo-loader-lg-padding-y, calc( #{$kendo-loader-lg-segment-size} /2 ) ) !default;

/// The equilateral height of the Loader.
/// @group loader
$kendo-loader-equilateral-height: .8660 !default;

/// The width of the small spinner-3 Loader.
/// @group loader
$kendo-loader-sm-spinner-3-width: calc( #{$kendo-loader-sm-segment-size} * 4 ) !default;
/// The width of the medium spinner-3 Loader.
/// @group loader
$kendo-loader-md-spinner-3-width: calc( #{$kendo-loader-md-segment-size} * 4 ) !default;
/// The width of the large spinner-3 Loader.
/// @group loader
$kendo-loader-lg-spinner-3-width: calc( #{$kendo-loader-lg-segment-size} * 4 ) !default;

/// The height of the small spinner-3 Loader.
/// @group loader
$kendo-loader-sm-spinner-3-height: calc( #{$kendo-loader-sm-spinner-3-width} * #{$kendo-loader-equilateral-height} ) !default;
/// The height of the medium spinner-3 Loader.
/// @group loader
$kendo-loader-md-spinner-3-height: calc( #{$kendo-loader-md-spinner-3-width} * #{$kendo-loader-equilateral-height} ) !default;
/// The height of the large spinner-3 Loader.
/// @group loader
$kendo-loader-lg-spinner-3-height: calc( #{$kendo-loader-lg-spinner-3-width} * #{$kendo-loader-equilateral-height} ) !default;

/// The width of the small spinner-4 Loader.
/// @group loader
$kendo-loader-sm-spinner-4-width: calc( #{$kendo-loader-sm-segment-size} * 4 ) !default;
/// The width of the medium spinner-4 Loader.
/// @group loader
$kendo-loader-md-spinner-4-width: calc( #{$kendo-loader-md-segment-size} * 4 ) !default;
/// The width of the large spinner-4 Loader.
/// @group loader
$kendo-loader-lg-spinner-4-width: calc( #{$kendo-loader-lg-segment-size} * 4 ) !default;

/// The height of the small spinner-4 Loader.
/// @group loader
$kendo-loader-sm-spinner-4-height: $kendo-loader-sm-spinner-4-width !default;
/// The height of the medium spinner-4 Loader.
/// @group loader
$kendo-loader-md-spinner-4-height: $kendo-loader-md-spinner-4-width !default;
/// The height of the large spinner-4 Loader.
/// @group loader
$kendo-loader-lg-spinner-4-height: $kendo-loader-lg-spinner-4-width !default;

/// The border width of the container panel.
/// @group loader
$kendo-loader-container-panel-border-width: var( --kendo-loader-container-panel-border-width, 1px ) !default;
/// The border style of the container panel.
/// @group loader
$kendo-loader-container-panel-border-style: var( --kendo-loader-container-panel-border-style, solid ) !default;
/// The border color of the container panel.
/// @group loader
$kendo-loader-container-panel-border-color: var( --kendo-loader-container-panel-border-color, color-mix(in srgb, k-color(border) 26%, transparent) ) !default;
/// The border radius of the container panel.
/// @group loader
$kendo-loader-container-panel-border-radius: var( --kendo-loader-container-panel-border-radius, #{k-border-radius(md)} ) !default;
/// The background color of the container panel.
/// @group loader
$kendo-loader-container-panel-bg: var( --kendo-loader-container-panel-bg, #{k-color(surface-alt)} ) !default;

/// The horizontal padding of the small Loader container.
/// @group loader
$kendo-loader-sm-container-padding-x: var( --kendo-loader-sm-container-padding-x, #{k-spacing(4)} ) !default;
/// The horizontal padding of the medium Loader container.
/// @group loader
$kendo-loader-md-container-padding-x: var( --kendo-loader-md-container-padding-x, #{k-spacing(5)} ) !default;
/// The horizontal padding of the large Loader container.
/// @group loader
$kendo-loader-lg-container-padding-x: var( --kendo-loader-lg-container-padding-x, #{k-spacing(6)} ) !default;

/// The vertical padding of the small Loader container.
/// @group loader
$kendo-loader-sm-container-padding-y: var( --kendo-loader-sm-container-padding-y, #{k-spacing(4)} ) !default;
/// The vertical padding of the medium Loader container.
/// @group loader
$kendo-loader-md-container-padding-y: var( --kendo-loader-md-container-padding-y, #{k-spacing(5)} ) !default;
/// The vertical padding of the large Loader container.
/// @group loader
$kendo-loader-lg-container-padding-y: var( --kendo-loader-lg-container-padding-y, #{k-spacing(6)} ) !default;

/// The gap of the small Loader container.
/// @group loader
$kendo-loader-sm-container-gap: var( --kendo-loader-sm-container-gap, #{k-spacing(2)} ) !default;
/// The gap of the medium Loader container.
/// @group loader
$kendo-loader-md-container-gap: var( --kendo-loader-md-container-gap, #{k-spacing(2)} ) !default;
/// The gap of the large Loader container.
/// @group loader
$kendo-loader-lg-container-gap: var( --kendo-loader-lg-container-gap, #{k-spacing(2)} ) !default;

/// The font size of the small Loader container.
/// @group loader
$kendo-loader-sm-container-font-size: var( --kendo-loader-sm-container-font-size, var( --kendo-font-size-md, inherit ) ) !default;
/// The font size of the medium Loader container.
/// @group loader
$kendo-loader-md-container-font-size: var( --kendo-loader-md-container-font-size, var( --kendo-font-size-lg, inherit ) ) !default;
/// The font size of the large Loader container.
/// @group loader
$kendo-loader-lg-container-font-size: var( --kendo-loader-lg-container-font-size, var( --kendo-font-size-xl, inherit ) ) !default;

// Loading indicator
/// The background color of the Loading indicator.
/// @group loading
$kendo-loading-bg: var( --kendo-loading-bg, #{k-color(surface-alt)} ) !default;
/// The text color of the Loading indicator.
/// @group loading
$kendo-loading-text: var( --kendo-loading-text, currentColor ) !default;
/// The opacity of the Loading indicator.
/// @group loading
$kendo-loading-opacity: var( --kendo-loading-opacity, .3 ) !default;
/// The z-index of the Loading indicator.
/// @group loading
$kendo-zindex-loading: var( --kendo-zindex-loading, 100 ) !default;

@forward "@progress/kendo-theme-core/scss/components/loader/_variables.scss" with (
    $kendo-loader-default-size: $kendo-loader-default-size,
    $kendo-loader-default-theme-color: $kendo-loader-default-theme-color,
    $kendo-loader-segment-border-radius: $kendo-loader-segment-border-radius,
    $kendo-loader-sm-segment-size: $kendo-loader-sm-segment-size,
    $kendo-loader-md-segment-size: $kendo-loader-md-segment-size,
    $kendo-loader-lg-segment-size: $kendo-loader-lg-segment-size,
    $kendo-loader-sm-spinner-3-width: $kendo-loader-sm-spinner-3-width,
    $kendo-loader-md-spinner-3-width: $kendo-loader-md-spinner-3-width,
    $kendo-loader-lg-spinner-3-width: $kendo-loader-lg-spinner-3-width,
    $kendo-loader-sm-spinner-3-height: $kendo-loader-sm-spinner-3-height,
    $kendo-loader-md-spinner-3-height: $kendo-loader-md-spinner-3-height,
    $kendo-loader-lg-spinner-3-height: $kendo-loader-lg-spinner-3-height,
    $kendo-loader-sm-spinner-4-width: $kendo-loader-sm-spinner-4-width,
    $kendo-loader-md-spinner-4-width: $kendo-loader-md-spinner-4-width,
    $kendo-loader-lg-spinner-4-width: $kendo-loader-lg-spinner-4-width,
    $kendo-loader-sm-spinner-4-height: $kendo-loader-sm-spinner-4-height,
    $kendo-loader-md-spinner-4-height: $kendo-loader-md-spinner-4-height,
    $kendo-loader-lg-spinner-4-height: $kendo-loader-lg-spinner-4-height,
    $kendo-loader-container-panel-border-width: $kendo-loader-container-panel-border-width,
    $kendo-loader-container-panel-border-style: $kendo-loader-container-panel-border-style,
    $kendo-loader-container-panel-border-color: $kendo-loader-container-panel-border-color,
    $kendo-loader-container-panel-border-radius: $kendo-loader-container-panel-border-radius,
    $kendo-loader-container-panel-bg: $kendo-loader-container-panel-bg,
    $kendo-loader-sm-container-gap: $kendo-loader-sm-container-gap,
    $kendo-loader-md-container-gap: $kendo-loader-md-container-gap,
    $kendo-loader-lg-container-gap: $kendo-loader-lg-container-gap,
    $kendo-loader-sm-container-font-size: $kendo-loader-sm-container-font-size,
    $kendo-loader-md-container-font-size: $kendo-loader-md-container-font-size,
    $kendo-loader-lg-container-font-size: $kendo-loader-lg-container-font-size,
    $kendo-loading-bg: $kendo-loading-bg,
    $kendo-loading-text: $kendo-loading-text,
    $kendo-loading-opacity: $kendo-loading-opacity,
    $kendo-zindex-loading: $kendo-zindex-loading
);
