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

/// The width of the border around the Calendar.
/// @group calendar
$kendo-calendar-border-width: 1px !default;
/// The font family of the Calendar.
/// @group calendar
$kendo-calendar-font-family: var( --kendo-font-family, inherit ) !default;
/// The font size of the Calendar.
/// @group calendar
$kendo-calendar-font-size: var( --kendo-font-size, inherit ) !default;
/// The line height of the Calendar.
/// @group calendar
$kendo-calendar-line-height: var( --kendo-line-height, normal ) !default;

/// The size of the calendar cell.
/// @group calendar
$kendo-calendar-cell-size: 28px !default;

/// The background color of the Calendar.
/// @group calendar
$kendo-calendar-bg: var( --kendo-component-bg, initial) !default;
/// The text color of the Calendar.
/// @group calendar
$kendo-calendar-text: var( --kendo-component-text, initial) !default;
/// The border color of the Calendar.
/// @group calendar
$kendo-calendar-border: var( --kendo-component-border, initial) !default;

/// The horizontal padding of the calendar header.
/// @group calendar
$kendo-calendar-header-padding-x: k-spacing(1) !default;
/// The vertical padding of the calendar header.
/// @group calendar
$kendo-calendar-header-padding-y: k-spacing(1) !default;
/// Width of the bottom border of the calendar header.
/// @group calendar
$kendo-calendar-header-border-width: 1px !default;
$kendo-calendar-header-min-width: ($kendo-calendar-cell-size * 8) !default;

/// The background color of the calendar header.
/// @group calendar
$kendo-calendar-header-bg: if($kendo-enable-color-system, k-color( surface ), k-get-theme-color-var( neutral-10 )) !default; // $kendo-component-header-bg
/// The text color of the calendar header.
/// @group calendar
$kendo-calendar-header-text: $kendo-calendar-text !default; // $kendo-component-header-text
/// The border color of the calendar header.
/// @group calendar
$kendo-calendar-header-border: $kendo-calendar-border !default; // $kendo-component-header-border

/// The spacing between the navigation buttons of the Calendar.
/// @group calendar
$kendo-calendar-nav-gap: k-spacing(0) !default;

/// The horizontal padding of the calendar footer.
/// @group calendar
$kendo-calendar-footer-padding-x: k-spacing(1) !default;
/// The vertical padding of the calendar footer.
/// @group calendar
$kendo-calendar-footer-padding-y: k-spacing(1) !default;

/// The font size of the calendar cell.
/// @group calendar
$kendo-calendar-cell-font-size: var( --kendo-font-size-sm, inherit ) !default;
/// The horizontal padding of the calendar cell.
/// @group calendar
$kendo-calendar-cell-padding-x: k-spacing(1.5) !default;
/// The vertical padding of the calendar cell.
/// @group calendar
$kendo-calendar-cell-padding-y: $kendo-calendar-cell-padding-x !default;
/// The line height of the calendar cell.
/// @group calendar
$kendo-calendar-cell-line-height: $kendo-calendar-line-height !default;
/// The border radius of the calendar cell.
/// @group calendar
$kendo-calendar-cell-border-radius: var( --kendo-border-radius-md, 0) !default;

/// The horizontal padding of the calendar header cell.
/// @group calendar
$kendo-calendar-header-cell-padding-x: k-spacing(0) !default;
/// Th vertical padding of the calendar header cell.
/// @group calendar
$kendo-calendar-header-cell-padding-y: k-spacing(0) !default;
/// The width of the calendar header cell.
/// @group calendar
$kendo-calendar-header-cell-width: $kendo-calendar-cell-size !default;
/// The height of the calendar header cell.
/// @group calendar
$kendo-calendar-header-cell-height: $kendo-calendar-cell-size !default;
/// The font size of the calendar header cell.
/// @group calendar
$kendo-calendar-header-cell-font-size: var( --kendo-font-size-sm, inherit ) !default;
/// The line height of the calendar header cell.
/// @group calendar
$kendo-calendar-header-cell-line-height: 2 !default;
/// The background color of the calendar header cell.
/// @group calendar
$kendo-calendar-header-cell-bg: inherit !default;
/// The text color of the calendar header cell.
/// @group calendar
$kendo-calendar-header-cell-text: inherit !default;

/// The horizontal padding of the calendar captions.
/// @group calendar
$kendo-calendar-caption-padding-x: k-spacing(3) !default;
/// The vertical padding of the calendar captions.
/// @group calendar
$kendo-calendar-caption-padding-y: k-spacing(1) !default;
/// The height of the calendar captions.
/// @group calendar
$kendo-calendar-caption-height: $kendo-calendar-cell-size !default;
/// The font size of the calendar captions.
/// @group calendar
$kendo-calendar-caption-font-size: var( --kendo-font-size-sm, inherit ) !default;
/// The line height of the calendar captions.
/// @group calendar
$kendo-calendar-caption-line-height: normal !default;
/// Font weight of the calendar captions.
/// @group calendar
$kendo-calendar-caption-font-weight: bold !default;
/// The text color of the calendar captions.
/// @group calendar
$kendo-calendar-caption-color: $kendo-subtle-text !default;

/// The width of the Calendar view.
/// @group calendar
$kendo-calendar-view-width: ($kendo-calendar-cell-size * 7) !default;
/// The height of the Calendar view.
/// @group calendar
$kendo-calendar-view-height: ($kendo-calendar-cell-size * 7) !default;

/// The bottom padding of Calendar views.
/// @group calendar
$kendo-calendar-view-padding-block-end: k-spacing(1) !default;
/// The spacing between the views in the multiview Calendar.
/// @group calendar
$kendo-calendar-view-gap: k-spacing(4) !default;

/// The background color of the calendar weekend cell.
/// @group calendar
$kendo-calendar-weekend-bg: inherit !default;
/// The text color of the calendar weekend cell.
/// @group calendar
$kendo-calendar-weekend-text: inherit !default;

/// The text color of the calendar today cell.
/// @group calendar
$kendo-calendar-today-text: if($kendo-enable-color-system, k-color( app-surface ), $kendo-color-white) !default; // use contrast function
/// The background color of the calendar today cell.
/// @group calendar
$kendo-calendar-today-bg: if($kendo-enable-color-system, k-color( primary ), k-get-theme-color-var( primary-100 )) !default;
/// The text color of the calendar today cell when hovered.
/// @group calendar
$kendo-calendar-today-hover-text: if($kendo-enable-color-system, k-color( app-surface ), $kendo-color-white) !default;  // use contrast function
/// The background color of the calendar today cell when hovered.
/// @group calendar
$kendo-calendar-today-hover-bg: if($kendo-enable-color-system, k-color( primary-hover ), k-get-theme-color-var( primary-120 )) !default;
/// The border radius of the calendar today cell.
/// @group calendar
$kendo-calendar-today-border-radius: 9999px !default;

/// The background color of the calendar week number cell.
/// @group calendar
$kendo-calendar-week-number-bg: inherit !default;
/// The text color of the calendar week number cell.
/// @group calendar
$kendo-calendar-week-number-text: var( --kendo-subtle-text, inherit ) !default;

/// The background color of the other months calendar cells.
/// @group calendar
$kendo-calendar-other-month-bg: inherit !default;
/// The text color of the other months calendar cells.
/// @group calendar
$kendo-calendar-other-month-text: var( --kendo-disabled-text, inherit ) !default;

/// The background color of the calendar cells.
/// @group calendar
$kendo-calendar-cell-bg: inherit !default;
/// The text color of the calendar cells.
/// @group calendar
$kendo-calendar-cell-text: inherit !default;

/// The background color of the calendar cells when hovered.
/// @group calendar
$kendo-calendar-cell-hover-bg: var( --kendo-hover-bg, inherit ) !default;
/// The text color of the calendar cells when hovered.
/// @group calendar
$kendo-calendar-cell-hover-text: var( --kendo-hover-text, inherit ) !default;

/// The background color of the selected calendar cell.
/// @group calendar
$kendo-calendar-cell-selected-bg: var( --kendo-selected-bg, inherit ) !default;
/// The text color of the selected calendar cell.
/// @group calendar
$kendo-calendar-cell-selected-text: var( --kendo-selected-text, inherit ) !default;
/// The border color of the selected calendar cell.
/// @group calendar
$kendo-calendar-cell-selected-border: var( --kendo-selected-border, inherit ) !default;
/// The shadow of the selected calendar cell.
/// @group calendar
$kendo-calendar-cell-selected-shadow: inset 0 0 0 1px $kendo-calendar-cell-selected-border !default;

/// The background color of the selected calendar cell when hovered.
/// @group calendar
$kendo-calendar-cell-selected-hover-bg: var( --kendo-selected-hover-bg, inherit ) !default;
/// The text color of the selected calendar cell when hovered.
/// @group calendar
$kendo-calendar-cell-selected-hover-text: var( --kendo-selected-hover-text, inherit ) !default;

/// The shadow of the selected calendar cell when focused.
/// @group calendar
$kendo-calendar-cell-focus-shadow: inset 0 0 0 1px if($kendo-enable-color-system, k-color( base-emphasis ), k-get-theme-color-var( neutral-130)) !default;
/// The shadow of the selected calendar cell when selected and focused.
/// @group calendar
$kendo-calendar-cell-selected-focus-shadow: $kendo-calendar-cell-focus-shadow !default;


// Calendar navigation

/// The width of the navigation in the infinite Calendar.
/// @group calendar
$kendo-calendar-navigation-width: 5em !default;
/// The height of the navigation items in the infinite Calendar.
/// @group calendar
$kendo-calendar-navigation-item-height: 2em !default;

/// The background color of the navigation in the infinite Calendar.
/// @group calendar
$kendo-calendar-navigation-bg: if($kendo-enable-color-system, k-color( surface ), k-get-theme-color-var( neutral-10 )) !default;
/// The text color of the navigation in the infinite Calendar.
/// @group calendar
$kendo-calendar-navigation-text: $kendo-calendar-header-text !default;
/// The border color of the navigation in the infinite Calendar.
/// @group calendar
$kendo-calendar-navigation-border: $kendo-calendar-header-border !default;

/// The text color of the hovered items in the calendar navigation.
/// @group calendar
$kendo-calendar-navigation-hover-text: $kendo-link-hover-text !default;


// Infinite calendar
/// The background color of the navigation in the infinite Calendar.
/// @group calendar

$kendo-infinite-calendar-header-padding-x: k-spacing(3) !default;
/// The background color of the navigation in the infinite Calendar.
/// @group calendar
$kendo-infinite-calendar-header-padding-y: k-spacing(3) k-spacing(1) !default;

/// The horizontal padding of the infinite Calendar.
/// @group calendar
$kendo-infinite-calendar-view-padding-x: k-spacing(3) !default;
/// The vertical padding of the infinite Calendar.
/// @group calendar
$kendo-infinite-calendar-view-padding-y: k-spacing(0) !default;

/// The height of the infinite Calendar view.
/// @group calendar
$kendo-infinite-calendar-view-height: ( $kendo-calendar-cell-size * 9 ) !default;


// Range calendar
/// The background color of the range selection in the Calendar.
/// @group calendar
$kendo-calendar-range-bg: if($kendo-enable-color-system, k-color( base-active ), k-get-theme-color-var( neutral-30 )) !default;
/// The text color of the range selection in the Calendar.
/// @group calendar
$kendo-calendar-range-text: inherit !default;
/// The border color of the range selection in the Calendar.
/// @group calendar
$kendo-calendar-range-border: if($kendo-enable-color-system, k-color( base-emphasis ), k-get-theme-color-var( neutral-130 )) !default;
/// The shadow of the hovered start range selection in the Calendar.
/// @group calendar
$kendo-calendar-start-range-hover-shadow: inset 1px -1px 0 0 if($kendo-enable-color-system, k-color( base-emphasis ), k-get-theme-color-var( neutral-130 )), inset 0 1px 0 0 if($kendo-enable-color-system, k-color( base-emphasis ), k-get-theme-color-var( neutral-130 )) !default;
/// The shadow of the hovered mid range selection in the Calendar.
/// @group calendar
$kendo-calendar-mid-range-hover-shadow: inset 0 -1px 0 0 if($kendo-enable-color-system, k-color( base-emphasis ), k-get-theme-color-var( neutral-130 )), inset 0 1px 0 0 if($kendo-enable-color-system, k-color( base-emphasis ), k-get-theme-color-var( neutral-130 )) !default;
/// The shadow of the hovered end range selection in the Calendar.
/// @group calendar
$kendo-calendar-end-range-hover-shadow: inset -1px -1px 0 0 if($kendo-enable-color-system, k-color( base-emphasis ), k-get-theme-color-var( neutral-130 )), inset 0 1px 0 0 if($kendo-enable-color-system, k-color( base-emphasis ), k-get-theme-color-var( neutral-130 )) !default;
/// The shadow of the hovered start-end range selection in the Calendar.
/// @group calendar
$kendo-calendar-start-end-range-hover-shadow: inset 1px -1px 0 0 if($kendo-enable-color-system, k-color( base-emphasis ), k-get-theme-color-var( neutral-130 )), inset -1px 1px 0 0 if($kendo-enable-color-system, k-color( base-emphasis ), k-get-theme-color-var( neutral-130 )) !default;


// Calendar sizes

/// The font size of the small Calendar.
/// @group calendar
$kendo-calendar-sm-font-size: var( --kendo-font-size-sm, inherit ) !default;
/// The line height of the small Calendar.
/// @group calendar
$kendo-calendar-sm-line-height: var( --kendo-line-height-sm, normal ) !default;
/// The size of the cells in the small Calendar.
/// @group calendar
$kendo-calendar-sm-cell-size: 24px !default;
/// The horizontal padding of the cells in the small Calendar.
/// @group calendar
$kendo-calendar-sm-cell-padding-x: k-spacing(0.5) !default;
/// The vertical padding of the cells in the small Calendar.
/// @group calendar
$kendo-calendar-sm-cell-padding-y: k-spacing(0.5) !default;
/// The font size of the cells in the small Calendar.
/// @group calendar
$kendo-calendar-sm-cell-font-size: var( --kendo-font-size-sm, inherit ) !default;

/// The font size of the medium Calendar.
/// @group calendar
$kendo-calendar-md-font-size: var( --kendo-font-size, inherit ) !default;
/// The line height of the medium Calendar.
/// @group calendar
$kendo-calendar-md-line-height: var( --kendo-line-height, normal ) !default;
/// The size of the cells in the medium Calendar.
/// @group calendar
$kendo-calendar-md-cell-size: 28px !default;
/// The horizontal padding of the cells in the medium Calendar.
/// @group calendar
$kendo-calendar-md-cell-padding-x: k-spacing(1) !default;
/// The vertical padding of the cells in the medium Calendar.
/// @group calendar
$kendo-calendar-md-cell-padding-y: k-spacing(1) !default;
/// The font size of the cells in the medium Calendar.
/// @group calendar
$kendo-calendar-md-cell-font-size: var( --kendo-font-size-sm, inherit ) !default;

/// The font size of the large Calendar.
/// @group calendar
$kendo-calendar-lg-font-size: var( --kendo-font-size, inherit ) !default;
/// The line height of the large Calendar.
/// @group calendar
$kendo-calendar-lg-line-height: var( --kendo-line-height, normal ) !default;
/// The size of the cells in the large Calendar.
/// @group calendar
$kendo-calendar-lg-cell-size: 32px !default;
/// The horizontal padding of the cells in the large Calendar.
/// @group calendar
$kendo-calendar-lg-cell-padding-x: k-spacing(1) !default;
/// The vertical padding of the cells in the large Calendar.
/// @group calendar
$kendo-calendar-lg-cell-padding-y: k-spacing(1) !default;
/// The font size of the cells in the large Calendar.
/// @group calendar
$kendo-calendar-lg-cell-font-size: var( --kendo-font-size, inherit ) !default;

/// The sizes Map of the Calendar.
/// @group calendar
$kendo-calendar-sizes: (
    sm: (
        font-size: $kendo-calendar-sm-font-size,
        line-height: $kendo-calendar-sm-line-height,
        cell-size: $kendo-calendar-sm-cell-size,
        cell-padding-x: $kendo-calendar-sm-cell-padding-y,
        cell-padding-y: $kendo-calendar-sm-cell-padding-x,
        cell-font-size: $kendo-calendar-sm-cell-font-size
    ),
    md: (
        font-size: $kendo-calendar-md-font-size,
        line-height: $kendo-calendar-md-line-height,
        cell-size: $kendo-calendar-md-cell-size,
        cell-padding-x: $kendo-calendar-md-cell-padding-y,
        cell-padding-y: $kendo-calendar-md-cell-padding-x,
        cell-font-size: $kendo-calendar-md-cell-font-size
    ),
    lg: (
        font-size: $kendo-calendar-lg-font-size,
        line-height: $kendo-calendar-lg-line-height,
        cell-size: $kendo-calendar-lg-cell-size,
        cell-padding-x: $kendo-calendar-lg-cell-padding-y,
        cell-padding-y: $kendo-calendar-lg-cell-padding-x,
        cell-font-size: $kendo-calendar-lg-cell-font-size
    )
) !default;
