@use "sass:color";
@use "sass:map";
@use "./base";

// ===== button =====
//$btn-border-radius: base.$border-radius-medium !default;
$btn-border-radius: (
  xs: base.$border-radius-small,
  sm: base.$border-radius-small,
  md: base.$border-radius-medium,
  lg: base.$border-radius-medium,
  xl: base.$border-radius-medium,
) !default;
$btn-sibling-margin: (
  xs: base.padding(2),
  sm: base.padding(3),
  md: base.padding(4),
  lg: base.padding(5),
  xl: base.padding(6),
) !default;
$btn-focus-box-shadow: 0 0 0 2px color.adjust(base.color-brand(), $alpha: -.8) !default;
$btn-size-list: (xs, sm, md, lg, xl) !default;
$btn-color-list: (brand, success, warning, danger) !default;
$btn-height: base.$form-control-height !default;
$btn-min-width: (
  xs: base.padding(16), // 64
  sm: base.padding(18), // 72
  md: base.padding(22), // 88
  lg: base.padding(26), // 104
  xl: base.padding(28), // 112
) !default;
$btn-padding-horizontal: (
  xs: base.padding(2),
  sm: base.padding(3),
  md: base.padding(4),
  lg: base.padding(5),
  xl: base.padding(6),
) !default;
// 完全对应 packages/core/src/theme/base.ts 的 themeConfig.buttonFontSize
$btn-font-size: base.$form-control-font-size !default;
$btn-plain-border-radius: base.$border-radius-small !default;
$btn-plain-icon-only-padding: 2px !default;
@function btn-plain-icon-only-size($btn-size) {
  @return map.get($btn-font-size, $btn-size) + $btn-plain-icon-only-padding * 2;
}

$btn-normal-text-highlight: base.color-brand() !default;
$btn-normal-border-color: base.$color-border-control !default;
$btn-normal-border-color-hover: base.color-brand() !default;
$btn-normal-border-color-focus: $btn-normal-border-color-hover !default;
$btn-normal-border-color-active: $btn-normal-border-color-hover !default;

$btn-bg-color: (
  normal: base.color-gray(1),
  brand: base.color-brand(),
  success: base.color-success(),
  warning: base.color-warning(),
  danger: base.color-danger(),
) !default;
$btn-bg-color-hover: (
  normal: base.color-gray(1),
  brand: base.color-brand(5),
  success: base.color-success(5),
  danger: base.color-danger(5),
  warning: base.color-warning(5),
) !default;
$btn-bg-color-active: (
  normal: base.color-brand(2),
  brand: base.color-brand(7),
  success: base.color-success(7),
  danger: base.color-danger(7),
  warning: base.color-warning(7),
) !default;
$btn-bg-color-disabled: (
  normal: base.color-gray(2),
  brand: base.color-brand(2),
  success: base.color-success(2),
  danger: base.color-danger(2),
  warning: base.color-warning(2),
) !default;

$btn-normal-loading-disabled-color: $btn-normal-text-highlight !default;
$btn-normal-loading-disabled-border-color: $btn-normal-border-color-active !default;
$btn-normal-loading-disabled-bg-color: map.get($btn-bg-color-active, 'normal') !default;

$btn-intensive-bg-color-hover: $btn-bg-color-hover !default;
$btn-intensive-bg-color-focus: $btn-intensive-bg-color-hover !default;
$btn-intensive-bg-color-active: $btn-bg-color-active !default;
$btn-intensive-bg-color-disabled: (
  brand: base.color-brand(1),
  success: base.color-success(1),
  danger: base.color-danger(1),
  warning: base.color-warning(1),
) !default;
$btn-intensive-border-color-disabled: (
  brand: base.color-brand(2),
  success: base.color-success(2),
  danger: base.color-danger(2),
  warning: base.color-warning(2),
) !default;
$btn-intensive-content-color-disabled: (
  brand: base.color-brand(3),
  success: base.color-success(3),
  danger: base.color-danger(3),
  warning: base.color-warning(3),
) !default;

$btn-plain-padding-horizontal: base.padding(1) !default;
$btn-plain-color: (
  normal: base.$color-text-normal,
  brand: base.color-brand(),
  success: base.color-success(),
  warning: base.color-warning(),
  danger: base.color-danger(),
) !default;
$btn-plain-color-hover: (
  normal: base.color-brand(5),
  brand: base.color-brand(5),
  success: base.color-success(5),
  danger: base.color-danger(5),
  warning: base.color-warning(5),
) !default;
$btn-plain-color-focus: $btn-plain-color-hover !default;
$btn-plain-color-active: (
  normal: base.color-brand(7),
  brand: base.color-brand(7),
  success: base.color-success(7),
  danger: base.color-danger(7),
  warning: base.color-warning(7),
) !default;
$btn-plain-color-disabled: (
  normal: base.$color-text-normal-disabled,
  brand: base.color-brand(3),
  success: base.color-success(3),
  danger: base.color-danger(3),
  warning: base.color-warning(3),
) !default;


$btn-ghost-content-color: base.color-gray(1) !default;
$btn-ghost-border-color: base.color-gray(1) !default;
$btn-ghost-content-color-disabled: base.color-gray(7) !default;
$btn-ghost-bg-color-hover: color.adjust(base.color-gray(1), $alpha: -(1 - .4)) !default;
$btn-ghost-bg-color-focus: $btn-ghost-bg-color-hover !default;
$btn-ghost-bg-color-active: color.adjust(base.color-gray(1), $alpha: -(1 - .3)) !default;
$btn-ghost-bg-color-disabled: color.adjust(base.color-gray(1), $alpha: -(1 - .2)) !default;

$btn-grouped-button-sibling-margin: base.padding(2) !default;
$btn-grouped-group-sibling-margin: base.padding(9) !default;
