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

/// The row-gap between the elements in the Notification group.
/// @group notification
$kendo-notification-group-gap: k-spacing(2) !default;

/// The horizontal padding of the Notification.
/// @group notification
$kendo-notification-padding-x: k-spacing(3) !default;
/// The vertical padding of the Notification.
/// @group notification
$kendo-notification-padding-y: k-spacing(2) !default;
// The width of the border around the Notification.
/// @group notification
$kendo-notification-border-width: 1px !default;
/// The border radius of the Notification.
/// @group notification
$kendo-notification-border-radius: k-spacing(0.5) !default;
/// The font family of the Notification.
/// @group notification
$kendo-notification-font-family: var( --kendo-font-family, inherit ) !default;
/// The font size of the Notification.
/// @group notification
$kendo-notification-font-size: var( --kendo-font-size-sm, inherit ) !default;
/// The line height of the Notification.
/// @group notification
$kendo-notification-line-height: var( --kendo-line-height, normal ) !default;
/// The background color of the Notification.
/// @group notification
$kendo-notification-bg: var( --kendo-component-bg, inherit ) !default;
/// The text color of the Notification.
/// @group notification
$kendo-notification-text: var( --kendo-component-text, inherit ) !default;
/// The border color of the Notification.
/// @group notification
$kendo-notification-border: var( --kendo-component-border, inherit ) !default;
/// The box shadow of the Notification.
/// @group notification
$kendo-notification-box-shadow: none !default;

/// The horizontal spacing of the Notification icon.
/// @group notification
$kendo-notification-icon-spacing: k-spacing(2) !default;
/// The horizontal spacing of the Notification close icon.
/// @group notification
$kendo-notification-close-icon-spacing: k-spacing(4) !default;
/// The color of the Notification icon.
/// @group notification
$kendo-notification-icon-text: var( --kendo-component-text, inherit ) !default;

/// The theme variations for the Notification.
/// @group notification
$kendo-notification-brand-colors: (
    primary: primary,
    error: error,
    warning: warning,
    success: success,
    info: info,
    secondary: if($kendo-enable-color-system, secondary, neutral),
    tertiary: tertiary,
) !default;

// Matrix with notification theme colors in the order: bg, color, border
$_tc-notification-matrix: (
    (normal: if($kendo-enable-color-system, (color-subtle, color-on-subtle, color-subtle), (20, 190, 20))),
) !default;

$_tc-notification-dark-matrix: (
    (normal: if($kendo-enable-color-system, (color, on-color, color), (160, $kendo-color-white, 160))),
) !default;

$_tc-notification-light-matrix: (
    (normal: if($kendo-enable-color-system, (color, on-color, color), (50, 160, 50))),
) !default;

/// The theme colors map for the Notification variations.
/// @group notification
$kendo-notification-theme-colors: () !default;

@each $ui-states in $_tc-notification-matrix {
    @each $brand-color, $palette in $kendo-notification-brand-colors {
        $kendo-notification-theme-colors: map.deep-merge(
            $kendo-notification-theme-colors,
            k-generate-theme-variation( $brand-color, $palette, $ui-states )
        );
    };
}

@each $ui-states in $_tc-notification-dark-matrix {
    $kendo-notification-theme-colors: map.deep-merge(
        $kendo-notification-theme-colors,
        k-generate-theme-variation( dark, if($kendo-enable-color-system, dark, neutral), $ui-states )
    );
}

@each $ui-states in $_tc-notification-light-matrix {
    $kendo-notification-theme-colors: map.deep-merge(
        $kendo-notification-theme-colors,
        k-generate-theme-variation( light, if($kendo-enable-color-system, light, neutral), $ui-states )
    );
}
