@import '../core/style/vendor-prefixes';

$primary: #106cc8 !default;
$md2-calendar-padding: 8px !default;
$md2-calendar-weekday-table-font-size: 11px !default;

// Values chosen to approximate https://material.io/icons/#ic_navigate_before and
// https://material.io/icons/#ic_navigate_next as closely as possible.
$md2-calendar-prev-next-icon-border-width: 2px;
$md2-calendar-prev-next-icon-margin: 15.5px;
$md2-calendar-prev-icon-transform: translateX(2px) rotate(-45deg);
$md2-calendar-next-icon-transform: translateX(-2px) rotate(45deg);

.md2-calendar {
  @include user-select(none);
  display: block;
  outline: none;

  &[mode='landscape'] {
    display: flex;
  }
}

.md2-calendar-header {
  padding: $md2-calendar-padding * 2;
  font-size: 14px;
  background-color: $primary;
  color: white;
  box-sizing: border-box;

  [mode='landscape'] & {
    width: 150px;
    min-width: 150px;
  }
}

.md2-calendar-header-year,
.md2-calendar-header-date-time {
  width: 100%;
  font-weight: 500;
  white-space: nowrap;
}

.md2-calendar-header-date-time {
  font-size: 30px;
  line-height: 34px;

  [mode='landscape'] & {
    white-space: normal;
    word-wrap: break-word;
  }
}

.md2-calendar-header-year,
.md2-calendar-header-date,
.md2-calendar-header-hours,
.md2-calendar-header-minutes {
  &:not(.active) {
    cursor: pointer;
    opacity: 0.6;
  }
}

.md2-calendar-header-time {
  padding-left: 8px;

  &:not(.active) {
    opacity: 0.6;

    .md2-calendar-header-hours,
    .md2-calendar-header-minutes {
      cursor: pointer;
      opacity: 1;
    }
  }

  [mode='landscape'] & {
    display: block;
    padding-left: 0;
  }
}

.md2-calendar-content {
  width: 100%;
  padding: 0 $md2-calendar-padding $md2-calendar-padding $md2-calendar-padding;
  outline: none;
  box-sizing: border-box;
  overflow: hidden;

  [mode='landscape'] & {
    padding-top: $md2-calendar-padding;
  }
}

.md2-calendar-controls {
  display: flex;
  justify-content: space-between;
}

.md2-calendar-period-button {
  display: inline-block;
  height: 48px;
  padding: 12px;
  outline: none;
  border: 0;
  background: transparent;
  box-sizing: border-box;
}

.md2-calendar-previous-button,
.md2-calendar-next-button {
  display: inline-block;
  width: 48px;
  height: 48px;
  padding: 12px;
  outline: none;
  border: 0;
  cursor: pointer;
  background: transparent;
  box-sizing: border-box;

  &.disabled {
    color: rgba(black, 0.38);
    pointer-events: none;
  }

  svg {
    fill: currentColor;
    vertical-align: top;
  }
}

.md2-calendar-table {
  border-spacing: 0;
  border-collapse: collapse;
  width: 100%;
}

.md2-calendar-table-header {
  color: rgba(black, 0.38);

  th {
    text-align: center;
    font-size: $md2-calendar-weekday-table-font-size;
    padding: 0 0 $md2-calendar-padding 0;
  }
}

@media (min-width: 480px) {
  .md2-calendar[mode='auto'] {
    display: flex;

    .md2-calendar-header {
      width: 150px;
      min-width: 150px;
    }

    .md2-calendar-header-date-time {
      white-space: normal;
      word-wrap: break-word;
    }

    .md2-calendar-header-time {
      display: block;
      padding-left: 0;
    }

    .md2-calendar-content {
      padding-top: $md2-calendar-padding;
    }
  }
}
