//-----------------------------
// Tiles
//-----------------------------

@import '../../globals/scss/vars';
@import '../../globals/scss/colors';
@import '../../globals/scss/spacing';
@import '../../globals/scss/layer';
@import '../../globals/scss/typography';
@import '../../globals/scss/import-once';
@import '../../globals/scss/css--reset';
@import '../../globals/scss/css--typography';

@include exports('tile') {
  .#{$prefix}--tile {
    @include layer('raised');
    display: block;
    min-width: 8rem;
    min-height: 4rem;
    background-color: $ui-01;
    border: 1px solid $ui-03;
    position: relative;
    padding: $spacing-md;

    &:focus {
      @include focus-outline('border');
    }
  }

  .#{$prefix}--tile--clickable,
  .#{$prefix}--tile--selectable,
  .#{$prefix}--tile--expandable {
    transition: $transition--base $carbon--standard-easing;
    cursor: pointer;

    &:hover {
      border: 1px solid $ui-04;
    }

    &:hover,
    &:focus {
      .#{$prefix}--tile__checkmark {
        opacity: 1;
      }

      .#{$prefix}--tile__chevron svg {
        fill: $brand-01;
      }
    }
  }

  .#{$prefix}--tile--clickable,
  .#{$prefix}--tile--expandable {
    &:focus {
      @include focus-outline('border');
    }
  }

  .#{$prefix}--tile--selectable {
    padding-right: $spacing-3xl;
  }

  .#{$prefix}--tile--selectable:focus {
    outline: none;
    border: 1px solid $brand-01;
  }

  .#{$prefix}--tile--is-clicked {
    @include layer('flat');
    border: 1px solid $ui-04;
  }

  .#{$prefix}--tile__checkmark,
  .#{$prefix}--tile__chevron {
    position: absolute;
    transition: $transition--base $carbon--standard-easing;
    border: none;
    background: transparent;

    &:focus {
      @include focus-outline;
    }
  }

  .#{$prefix}--tile__checkmark {
    height: 1rem;
    top: 1rem;
    right: 1rem;
    opacity: 0;

    svg {
      border-radius: 50%;
      background-color: rgba($ui-01, .25);
      fill: rgba($brand-01, .25);
    }
  }

  .#{$prefix}--tile__chevron {
    position: absolute;
    bottom: .5rem;
    right: .5rem;
    height: 1rem;

    svg {
      transform-origin: center;
      transition: $transition--base $carbon--standard-easing;
      fill: $ui-05;
    }

    &:hover {
      cursor: pointer;
    }
  }

  .#{$prefix}--tile--expandable {
    overflow: hidden;
    cursor: default;
    transition: $transition--base $carbon--standard-easing;
  }

  .#{$prefix}--tile-content__above-the-fold {
    display: block;
  }

  .#{$prefix}--tile-content__below-the-fold {
    display: block;
    opacity: 0;
    transition: $transition--base $carbon--standard-easing;
  }

  .#{$prefix}--tile--is-expanded {
    overflow: visible;
    transition: $transition--base $carbon--standard-easing;

    .#{$prefix}--tile__chevron svg {
      transform: rotate(-180deg) translateY(4px);
    }

    .#{$prefix}--tile-content__below-the-fold {
      opacity: 1;
      transition: $transition--base $carbon--standard-easing;
    }
  }

  .#{$prefix}--tile--is-selected,
  .#{$prefix}--tile--is-selected:hover,
  .#{$prefix}--tile--is-selected:focus {
    border: 1px solid $brand-01;
    outline: none;
  }

  .#{$prefix}--tile-input:checked {
    & + .#{$prefix}--tile__checkmark {
      opacity: 1;
    }

    & + .#{$prefix}--tile__checkmark svg {
      fill: $brand-01;
      background-color: $ui-01;
    }
  }

  .#{$prefix}--tile-content {
    width: 100%;
    height: 100%;
  }

  .#{$prefix}--tile-input {
    display: none;
  }
}
