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

// Button

/// The default theme color of the Button.
/// @group button
/// @role default
$kendo-button-default-theme-color: "base" !default;
/// The default fill mode of the Button.
/// @group button
/// @role default
$kendo-button-default-fill-mode: "solid" !default;
/// The default roundness of the Button.
/// @group button
/// @role default
$kendo-button-default-roundness: "md" !default;
/// The default size of the Button.
/// @group button
/// @role default
$kendo-button-default-size: "md" !default;

/// The width of the border around the Button.
/// @group button
$kendo-button-border-width: 1px !default;

/// The border radius of the Button.
/// @group button
$kendo-button-border-radius: null !default;

/// The horizontal padding of the small Button.
/// @group button
$kendo-button-sm-padding-x: k-spacing(2) !default;
/// The horizontal padding of the medium Button.
/// @group button
$kendo-button-md-padding-x: k-spacing(3) !default;
/// The horizontal padding of the large Button.
/// @group button
$kendo-button-lg-padding-x: k-spacing(4) !default;

/// The vertical padding of the small Button.
/// @group button
$kendo-button-sm-padding-y: k-spacing(1) !default;
/// The vertical padding of the medium Button.
/// @group button
$kendo-button-md-padding-y: k-spacing(1.5) !default;
/// The vertical padding of the large Button.
/// @group button
$kendo-button-lg-padding-y: k-spacing(2) !default;

/// The font family of the Button.
/// @group button
$kendo-button-font-family: var( --kendo-font-family, inherit ) !default;
/// The font weight of the Button.
/// @group button
$kendo-button-font-weight: var( --kendo-font-weight-normal, normal ) !default;

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

/// The line height used along with the $kendo-font-size variable.
/// @group button
$kendo-button-line-height: $kendo-line-height !default;
/// The line height used along with the $kendo-font-size variable of the small Button.
/// @group button
$kendo-button-sm-line-height: math.div( 20, 14 ) !default;
/// The line height used along with the $kendo-font-size variable of the medium Button.
/// @group button
$kendo-button-md-line-height: var( --kendo-line-height, normal ) !default;
/// The line height used along with the $kendo-font-size variable of the large Button.
/// @group button
$kendo-button-lg-line-height: var( --kendo-line-height, normal ) !default;

$kendo-button-sm-calc-size: calc( ( #{$kendo-button-sm-line-height} * 1em ) + ( #{$kendo-button-sm-padding-y} * 2 ) + ( #{$kendo-button-border-width} * 2 ) ) !default;
$kendo-button-md-calc-size: calc( ( #{$kendo-button-md-line-height} * 1em ) + ( #{$kendo-button-md-padding-y} * 2 ) + ( #{$kendo-button-border-width} * 2 ) ) !default;
$kendo-button-lg-calc-size: calc( ( #{$kendo-button-lg-line-height} * 1em ) + ( #{$kendo-button-lg-padding-y} * 2 ) + ( #{$kendo-button-border-width} * 2 ) ) !default;

$kendo-button-inner-calc-size: calc( ( #{$kendo-button-line-height} * 1em ) + ( #{$kendo-button-md-padding-y} * 2 ) ) !default;
$kendo-button-sm-inner-calc-size: calc( ( #{$kendo-button-sm-line-height} * 1em ) + ( #{$kendo-button-sm-padding-y} * 2 ) ) !default;
$kendo-button-md-inner-calc-size: calc( ( #{$kendo-button-md-line-height} * 1em ) + ( #{$kendo-button-md-padding-y} * 2 ) ) !default;
$kendo-button-lg-inner-calc-size: calc( ( #{$kendo-button-lg-line-height} * 1em ) + ( #{$kendo-button-lg-padding-y} * 2 ) ) !default;

/// The base background of the Button.
/// @group button
$kendo-button-bg: k-color(base) !default;
/// The base text color of the Button.
/// @group button
$kendo-button-text: k-color(on-base) !default;
/// The base border color of the Button.
/// @group button
$kendo-button-border: $kendo-button-bg !default;
/// The base background gradient of the Button.
/// @group button
$kendo-button-gradient: none !default;
/// The base shadow of the Button.
/// @group button
$kendo-button-shadow: null !default;

/// The base background of the hovered Button.
/// @group button
$kendo-button-hover-bg: k-color(base-hover) !default;
/// The base text color of the hovered Button.
/// @group button
$kendo-button-hover-text: null !default;
/// The base border color of the hovered Button.
/// @group button
$kendo-button-hover-border: k-color(base-hover) !default;
/// The base background gradient of the hovered Button.
/// @group button
$kendo-button-hover-gradient: none !default;
/// The base shadow of the hovered Button.
/// @group button
$kendo-button-hover-shadow: null !default;

/// The base background color of the active Button.
/// @group button
$kendo-button-active-bg: k-color(base-active) !default;
/// The base text color of the active Button.
/// @group button
$kendo-button-active-text: null !default;
/// The base border color of the active Button.
/// @group button
$kendo-button-active-border: k-color(base-active) !default;
/// The base background gradient of the active Button.
/// @group button
$kendo-button-active-gradient: null !default;
/// The base shadow of the active Button.
/// @group button
$kendo-button-active-shadow: null !default;

/// The base background color of the selected Button.
/// @group button
$kendo-button-selected-bg: k-color(primary-active) !default;
/// The text color of the selected Button.
/// @group button
$kendo-button-selected-text: k-color(on-primary) !default;
/// The border color of the selected Button.
/// @group button
$kendo-button-selected-border: k-color(primary-active) !default;
/// The background gradient of the selected Button.
/// @group button
$kendo-button-selected-gradient: $kendo-button-active-gradient !default;
/// The base shadow of the selected Button.
/// @group button
$kendo-button-selected-shadow: $kendo-button-active-shadow !default;

/// The base shadow of the focused Button.
/// @group button
$kendo-button-focus-shadow: 0 0 0 .25rem color-mix(in srgb, k-color(border) 50%, transparent) !default;

/// The base background of the disabled Button.
/// @group button
$kendo-button-disabled-bg: null !default;
/// The base text color of the disabled Button.
/// @group button
$kendo-button-disabled-text: null !default;
/// The base border color of the disabled Button.
/// @group button
$kendo-button-disabled-border: null !default;
/// The base background gradient of the disabled Button.
/// @group button
$kendo-button-disabled-gradient: null !default;
/// The base shadow of the disabled Button.
/// @group button
$kendo-button-disabled-shadow: null !default;

/// The opacity of the pulsing animation for the generating Button.
/// @group button
$kendo-button-pulsing-opacity: .4 !default;

// Solid Button
/// The gradient of the solid Button.
/// @group button
$kendo-solid-button-gradient: none !default;
/// The shadow of the solid Button.
/// @group button
$kendo-solid-button-shadow: true !default;
/// The shadow blur of the solid Button.
/// @group button
$kendo-solid-button-shadow-blur: 0px !default;
/// The shadow spread of the solid Button.
/// @group button
$kendo-solid-button-shadow-spread: .25rem !default;
/// The shadow opacity of the solid Button.
/// @group button
$kendo-solid-button-shadow-opacity: .5 !default;

// Outline Button
/// The shadow of the outline Button.
/// @group button
$kendo-outline-button-shadow: true !default;
/// The shadow blur of the outline Button.
/// @group button
$kendo-outline-button-shadow-blur: 0px !default;
/// The shadow spread of the outline Button.
/// @group button
$kendo-outline-button-shadow-spread: .25rem !default;
/// The shadow opacity of the outline Button.
/// @group button
$kendo-outline-button-shadow-opacity: .5 !default;

// Link Button
/// The shadow of the link Button.
/// @group button
$kendo-link-button-shadow: true !default;
/// The shadow blur of the link Button.
/// @group button
$kendo-link-button-shadow-blur: 0px !default;
/// The shadow spread of the link Button.
/// @group button
$kendo-link-button-shadow-spread: .25rem !default;
/// The shadow opacity of the link Button.
/// @group button
$kendo-link-button-shadow-opacity: .5 !default;

// Clear Button
/// The opacity of the clear Button.
/// @group button
$kendo-clear-button-focus-opacity: .1 !default;

/// The overlay opacity of the hovered flat Button. Used to create a background for the flat Button.
/// @group button
$kendo-flat-button-hover-opacity: .08 !default;
/// The overlay opacity of the focused flat Button. Used to create a background for the flat Button.
/// @group button
$kendo-flat-button-focus-opacity: null !default;
/// The overlay opacity of the active flat Button. Used to create a background for the flat Button.
/// @group button
$kendo-flat-button-active-opacity: .16 !default;
/// The overlay opacity of the selected flat Button. Used to create a background for the flat Button.
/// @group button
$kendo-flat-button-selected-opacity: .2 !default;
/// The opacity of the flat Button focus ring. Used to create a border for the flat Button.
/// @group button
$kendo-flat-button-focus-ring-opacity: .12 !default;

/// The transition of the Button.
/// @group button
$kendo-button-transition: color k-transition(rapid), background-color k-transition(rapid), border-color k-transition(rapid), box-shadow k-transition(rapid), opacity k-transition(rapid) !default;

@forward "@progress/kendo-theme-core/scss/components/button/_variables.scss" with (
    $kendo-button-border-width: $kendo-button-border-width,
    $kendo-button-border-radius: $kendo-button-border-radius,
    $kendo-button-sm-padding-x: $kendo-button-sm-padding-x,
    $kendo-button-md-padding-x: $kendo-button-md-padding-x,
    $kendo-button-lg-padding-x: $kendo-button-lg-padding-x,
    $kendo-button-sm-padding-y: $kendo-button-sm-padding-y,
    $kendo-button-md-padding-y: $kendo-button-md-padding-y,
    $kendo-button-lg-padding-y: $kendo-button-lg-padding-y,
    $kendo-button-font-family: $kendo-button-font-family,
    $kendo-button-font-weight: $kendo-button-font-weight,
    $kendo-button-font-size: $kendo-button-font-size,
    $kendo-button-sm-font-size: $kendo-button-sm-font-size,
    $kendo-button-md-font-size: $kendo-button-md-font-size,
    $kendo-button-lg-font-size: $kendo-button-lg-font-size,
    $kendo-button-line-height: $kendo-button-line-height,
    $kendo-button-sm-line-height: $kendo-button-sm-line-height,
    $kendo-button-md-line-height: $kendo-button-md-line-height,
    $kendo-button-lg-line-height: $kendo-button-lg-line-height,
    $kendo-button-sm-calc-size: $kendo-button-sm-calc-size,
    $kendo-button-md-calc-size: $kendo-button-md-calc-size,
    $kendo-button-lg-calc-size: $kendo-button-lg-calc-size,
    $kendo-button-inner-calc-size: $kendo-button-inner-calc-size,
    $kendo-button-sm-inner-calc-size: $kendo-button-sm-inner-calc-size,
    $kendo-button-md-inner-calc-size: $kendo-button-md-inner-calc-size,
    $kendo-button-lg-inner-calc-size: $kendo-button-lg-inner-calc-size,
    $kendo-button-bg: $kendo-button-bg,
    $kendo-button-text: $kendo-button-text,
    $kendo-button-border: $kendo-button-border,
    $kendo-button-gradient: $kendo-button-gradient,
    $kendo-button-shadow: $kendo-button-shadow,
    $kendo-button-hover-bg: $kendo-button-hover-bg,
    $kendo-button-hover-text: $kendo-button-hover-text,
    $kendo-button-hover-border: $kendo-button-hover-border,
    $kendo-button-hover-gradient: $kendo-button-hover-gradient,
    $kendo-button-hover-shadow: $kendo-button-hover-shadow,
    $kendo-button-active-bg: $kendo-button-active-bg,
    $kendo-button-active-text: $kendo-button-active-text,
    $kendo-button-active-border: $kendo-button-active-border,
    $kendo-button-active-gradient: $kendo-button-active-gradient,
    $kendo-button-active-shadow: $kendo-button-active-shadow,
    $kendo-button-selected-bg: $kendo-button-selected-bg,
    $kendo-button-selected-text: $kendo-button-selected-text,
    $kendo-button-selected-border: $kendo-button-selected-border,
    $kendo-button-selected-gradient: $kendo-button-selected-gradient,
    $kendo-button-selected-shadow: $kendo-button-selected-shadow,
    $kendo-button-focus-shadow: $kendo-button-focus-shadow,
    $kendo-button-disabled-bg: $kendo-button-disabled-bg,
    $kendo-button-disabled-text: $kendo-button-disabled-text,
    $kendo-button-disabled-border: $kendo-button-disabled-border,
    $kendo-button-disabled-gradient: $kendo-button-disabled-gradient,
    $kendo-button-disabled-shadow: $kendo-button-disabled-shadow,
    $kendo-button-pulsing-opacity: $kendo-button-pulsing-opacity,
    $kendo-solid-button-gradient: $kendo-solid-button-gradient,
    $kendo-solid-button-shadow: $kendo-solid-button-shadow,
    $kendo-solid-button-shadow-blur: $kendo-solid-button-shadow-blur,
    $kendo-solid-button-shadow-spread: $kendo-solid-button-shadow-spread,
    $kendo-solid-button-shadow-opacity: $kendo-solid-button-shadow-opacity,
    $kendo-outline-button-shadow: $kendo-outline-button-shadow,
    $kendo-outline-button-shadow-blur: $kendo-outline-button-shadow-blur,
    $kendo-outline-button-shadow-spread: $kendo-outline-button-shadow-spread,
    $kendo-outline-button-shadow-opacity: $kendo-outline-button-shadow-opacity,
    $kendo-link-button-shadow: $kendo-link-button-shadow,
    $kendo-link-button-shadow-blur: $kendo-link-button-shadow-blur,
    $kendo-link-button-shadow-spread: $kendo-link-button-shadow-spread,
    $kendo-link-button-shadow-opacity: $kendo-link-button-shadow-opacity,
    $kendo-clear-button-focus-opacity: $kendo-clear-button-focus-opacity,
    $kendo-flat-button-hover-opacity: $kendo-flat-button-hover-opacity,
    $kendo-flat-button-focus-opacity: $kendo-flat-button-focus-opacity,
    $kendo-flat-button-active-opacity: $kendo-flat-button-active-opacity,
    $kendo-flat-button-selected-opacity: $kendo-flat-button-selected-opacity,
    $kendo-flat-button-focus-ring-opacity: $kendo-flat-button-focus-ring-opacity,
    $kendo-button-transition: $kendo-button-transition,
    $kendo-button-default-theme-color: $kendo-button-default-theme-color,
    $kendo-button-default-fill-mode: $kendo-button-default-fill-mode,
    $kendo-button-default-roundness: $kendo-button-default-roundness,
    $kendo-button-default-size: $kendo-button-default-size
);
