// Copyright (C) 2023 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

@import "theme";

.pf-menu {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  padding: 5px 0;

  .pf-menu-item {
    font-family: $pf-font;
    font-size: inherit;
    user-select: none;
    text-align: left;
    padding: 6px 12px;
    white-space: nowrap;
    min-width: max-content;
    cursor: pointer;

    background: $pf-minimal-background;
    color: $pf-minimal-foreground;
    transition: background $pf-anim-timing;

    & > .material-icons {
      font-size: inherit;
      line-height: inherit;
    }

    & > .pf-left-icon {
      float: left;
      margin-right: 6px; // Make some room between the icon and label
    }

    & > .pf-right-icon {
      float: right;
      margin-left: 6px; // Make some room between the icon and label
    }

    &:hover {
      background: $pf-minimal-background-hover;
    }

    &:active,
    &.pf-active {
      background: $pf-minimal-background-active;
    }

    &[disabled] {
      color: $pf-minimal-foreground-disabled;
      background: $pf-minimal-background-disabled;
      box-shadow: none;
      cursor: not-allowed;
    }

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

  .pf-menu-divider {
    border-bottom: solid 1px $pf-colour-thin-border;
    margin: 5px 0 5px 0;
  }
}
