@use 'sass:map';
@use '../../style/theming';

// MARK: Variables
$cal-cell-min-width: 20px;

// MARK: Mixin
@mixin core() {
  .dbx-schedule-selection-calendar {
    .dbx-calendar {
      height: unset;

      .dbx-calendar-header {
        height: unset;
      }

      .cal-month-view .cal-cell-top {
        min-height: 50px;
      }
    }
  }

  .dbx-schedule-selection-calendar.dbx-schedule-selection-calendar-readonly .dbx-calendar-content {
    pointer-events: none;
  }

  .dbx-schedule-selection-calendar-compact .dbx-schedule-selection-calendar {
    .cal-month-view .cal-day-cell {
      min-height: 60px;
      min-width: $cal-cell-min-width;
    }

    .dbx-calendar .cal-month-view .cal-cell-top {
      min-height: 46px;
    }

    .dbx-schedule-selection-calendar-cell {
      display: none;
    }
  }

  .dbx-schedule-selection-calendar-date-days {
    padding: 4px;

    // Remove padding from form
    .mat-mdc-form-field-wrapper {
      padding-bottom: var(--dbx-padding-2);
    }

    .mat-mdc-form-field-infix {
      padding: 0 !important;
      border: none !important;
    }
  }

  .dbx-schedule-selection-calendar-date-range-field {
    width: 100%;

    &.mat-mdc-form-field-type-mat-date-range-input .mat-mdc-form-field-infix {
      display: flex;

      .mat-date-range-input {
        display: flex;
      }
    }

    .date-range-field-customized,
    .dbx-schedule-selection-timezone {
      display: flex;
      align-items: center;
    }

    .date-range-field-customized .date-range-field-customized-text {
      padding: 4px 6px;
      margin-right: 3px;
      font-size: 0.8em;
      font-weight: bold;
      border-radius: var(--mat-sys-corner-full);
    }
  }

  .dbx-schedule-selection-calendar-date-range-field-content {
    width: 100%;
    padding-right: var(--dbx-padding-3);
  }

  .dbx-schedule-selection-calendar-cell {
    display: flex;
    min-height: 56px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    user-select: none;
    padding-bottom: 4px;

    > span {
      height: 32px;
      padding: 4px;
      text-align: center;
    }
  }

  // compact icons
  .dbx-schedule-selection-calendar-compact-icons .dbx-schedule-selection-calendar {
    .cal-month-view .cal-day-cell {
      min-height: 64px;
    }

    .cal-month-view .cal-day-cell > .cal-cell-top {
      flex: unset;
      min-width: $cal-cell-min-width;
      min-height: 32px;
      text-align: center;
      padding-top: 12px;
      box-sizing: border-box;

      .cal-day-number {
        font-size: 1.3em;
        margin: 0;
        float: unset;
      }
    }

    .dbx-schedule-selection-calendar-cell {
      display: flex;
      min-height: 32px;

      > span {
        height: unset;
        white-space: pre-line;
        min-height: 18px;
        line-height: 14px;
      }
    }
  }

  .dbx-schedule-selection-calendar-date-dialog {
    .dbx-calendar .dbx-calendar-header {
      height: unset;

      .dbx-controls.dbx-calendar-controls-compact {
        justify-content: center;
        align-items: center;
      }
    }
  }
}

@mixin theme($theme-config) {
}
