@import "../colors";
@import "../globals";
@import "../mixins";
@import "./config";

.iconMenu {
  position: relative;
  display: inline-block;
  text-align: center;
  .icon {
    cursor: pointer;
  }
}

.menu {
  position: relative;
  display: inline-block;
  &.topLeft {
    position: absolute;
    top: 0;
    left: 0;
    > .outline {
      transform-origin: 0 0;
    }
  }
  &.topRight {
    position: absolute;
    top: 0;
    right: 0;
    > .outline {
      transform-origin: 100% 0;
    }
  }
  &.bottomLeft {
    position: absolute;
    bottom: 0;
    left: 0;
    > .outline {
      transform-origin: 0 100%;
    }
  }
  &.bottomRight {
    position: absolute;
    right: 0;
    bottom: 0;
    > .outline {
      transform-origin: 100% 100%;
    }
  }
  &:not(.static) {
    z-index: $z-index-higher;
    pointer-events: none;
    > .outline {
      opacity: 0;
      transition: transform $menu-expand-duration $animation-curve-default,
      opacity $menu-fade-duration $animation-curve-default;
      transform: scale(0);
      will-change: transform;
    }
    > .menuInner {
      position: absolute;
      top: 0;
      left: 0;
      opacity: 0;
    }
    &.rippled:not(.active) {
      > .outline {
        transition-delay: $menu-ripple-delay;
      }
      > .menuInner {
        transition-delay: $menu-ripple-delay;
      }
    }
    &.active {
      pointer-events: all;
      > .outline {
        opacity: 1;
        transform: scale(1);
      }
      > .menuInner {
        opacity: 1;
        transition: opacity $menu-fade-duration $animation-curve-default,
        clip $menu-expand-duration $animation-curve-default;
      }
    }
  }
}

.outline {
  @include shadow-2dp();
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  background-color: $menu-background-color;
  border-radius: $menu-outline-border-radius;
}

.menuInner {
  position: relative;
  display: block;
  padding: $menu-padding;
  text-align: left;
  white-space: nowrap;
  list-style: none;
}

.menuItem {
  position: relative;
  display: flex;
  height: $menu-item-height;
  align-items: center;
  padding: 0 $menu-item-padding;
  overflow: hidden;
  font-size: $menu-item-font-size;
  color: $color-text;
  &:not(.disabled):hover {
    cursor: pointer;
    background-color: $menu-item-hover-background;
  }
  &.disabled {
    pointer-events: none;
    opacity: .5;
  }
  &.selected {
    font-weight: 500;
    background-color: $menu-item-selected-background;
  }
  .ripple {
    color: $color-text-secondary;
  }

  .icon {
    width: $menu-item-icon-size;
    font-size: $menu-item-icon-font-size !important;
  }
}

.caption {
  flex-grow: 1;
  font-size: $font-size-normal;
}

.shortcut {
  margin-left: $menu-item-padding;
}

.menuDivider {
  display: block;
  width: 100%;
  height: 1px;
  margin: $menu-divider-height 0;
  background-color: $color-divider;
}
