@use "sass:map";
@use "./base";
@use "./button";
@use "./alert";

// ===== dialog =====
$dialog-size-list: base.$base-size-list !default;
$dialog-width-list: (xs, sm, md, lg, xl) !default;
$dialog-min-width: 320px !default;
$dialog-max-width: 960px !default;

// 在 theme config context 里定义 min-height max-height 与 top-distance
// see packages/core/src/theme/base.ts
//$dialog-min-height: 240px !default;
//$dialog-max-height: 680px !default;
//$dialog-top-distance: padding(15) !default;

$dialog-width: (
  xs: $dialog-min-width,
  sm: 400px,
  md: 600px,
  lg: 800px,
  xl: $dialog-max-width,
) !default;
$dialog-padding: base.padding(6) !default;
$dialog-head-padding-vertical: base.padding(4) !default;
$dialog-head-padding-horizontal: $dialog-padding !default;
$dialog-padding-top: base.padding(6) !default;
$dialog-head-font-size: (
  sm: base.$font-size-md,
  md: base.$font-size-lg
) !default;
@function dialog-head-min-height($size: base.$base-size) {
  @return $dialog-head-padding-vertical * 2 + base.line-height(map.get($dialog-head-font-size, $size));
}

$dialog-head-color: base.$color-text-normal !default;

$dialog-body-font-size: (
  sm: base.$font-size-sm,
  md: base.$font-size-md,
) !default;

$dialog-confirm-min-width: 400px !default;
$dialog-confirm-icon-margin: base.padding(2) !default;
$dialog-confirm-headline-font-size: (
  sm: base.$font-size-md,
  md: base.$font-size-lg
) !default;
$dialog-body-padding: $dialog-padding !default;
// headDivide 为 true 时，增加 body padding top
$dialog-body-padding-top: base.padding(4) !default;
$dialog-foot-padding-top: base.padding(4) !default;
$dialog-foot-padding-bottom: $dialog-padding !default;
$dialog-foot-padding-bottom-without-foot: $dialog-padding !default;

$dialog-border-color: base.$color-border-divider !default;

@function dialog-head-height($size: base.$base-size) {
  @return $dialog-head-padding-vertical * 2 + base.line-height(map.get($dialog-head-font-size, $size));
}

@function dialog-foot-height($size: base.$base-size) {
  @return map.get(button.$btn-height, $size) + $dialog-foot-padding-top + $dialog-foot-padding-bottom;
}

$dialog-close-x-size: (
  sm: md,
  md: lg,
) !default;
@function dialog-close-x-font-size($dialog-size: base.$base-size) {
  $close-x-size: map.get($dialog-close-x-size, $dialog-size);
  @return map.get(button.$btn-font-size, $close-x-size);
}
$dialog-close-x-hot-zone-padding: base.padding(1) !default;
$dialog-close-x-border-radius: map.get(button.$btn-border-radius, md) !default;
$dialog-close-x-color-hover: base.$color-icon-normal !default;
$dialog-close-x-color-active: base.$color-icon-normal-active !default;
$dialog-close-x-bgc-hover: base.color-gray(3) !default;
$dialog-close-x-bgc-active: base.color-gray(4) !default;
