File: /var/www/vhost/disk-apps/pwa.sports-crowd.com/node_modules/@material/menu/_menu.scss
//
// Copyright 2023 Google Inc.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
// stylelint-disable selector-class-pattern --
// Selector '.mdc-*' should only be used in this project.
@use 'sass:math';
@use '@material/dom/dom';
@use '@material/elevation/mixins' as elevation-mixins;
@use '@material/feature-targeting/feature-targeting';
@use '@material/ripple/ripple-theme';
@use '@material/rtl/rtl';
@use '@material/list/mixins' as list-mixins;
@use '@material/list/variables' as list-variables;
@use '@material/ripple/ripple';
@use '@material/theme/theme';
@use '@material/theme/custom-properties';
@use './menu-custom-properties';
@use './variables';
@use '@material/menu-surface/menusurface-theme';
/// @deprecated Use static-styles() instead.
@mixin core-styles($query: feature-targeting.all()) {
@include static-styles($query);
}
@mixin static-styles($query: feature-targeting.all()) {
$feat-color: feature-targeting.create-target($query, color);
$feat-structure: feature-targeting.create-target($query, structure);
@include ripple.common($query); // COPYBARA_COMMENT_THIS_LINE
// prettier-ignore
@include elevation-mixins.overlay-common($query); // COPYBARA_COMMENT_THIS_LINE
// Customize the menu-surface and contained list to match the mdc-menu styles.
.mdc-menu {
@include list-mixins.deprecated-item-meta-ink-color(
variables.$ink-color,
$query
);
@include list-mixins.deprecated-item-graphic-ink-color(
variables.$ink-color,
$query
);
@include min-width(variables.$min-width, $query: $query);
@include open-item-opacity(variables.$open-item-opacity, $query: $query);
// Include mdc-deprecated-list selector to ensure list-inside-menu overrides default list styles
.mdc-deprecated-list {
@include list-mixins.deprecated-item-primary-text-ink-color(
variables.$ink-color,
$query
);
}
.mdc-deprecated-list,
.mdc-list {
@include elevation-mixins.overlay-surface-position($query: $query);
@include elevation-mixins.overlay-dimensions(100%, $query: $query);
&::before {
@include dom.transparent-border($query: $query);
}
}
.mdc-deprecated-list-divider {
@include feature-targeting.targets($feat-structure) {
margin: 8px 0;
}
}
.mdc-deprecated-list-item {
@include feature-targeting.targets($feat-structure) {
user-select: none;
}
}
.mdc-deprecated-list-item--disabled {
@include feature-targeting.targets($feat-structure) {
cursor: auto;
}
}
a.mdc-deprecated-list-item .mdc-deprecated-list-item__text,
a.mdc-deprecated-list-item .mdc-deprecated-list-item__graphic {
@include feature-targeting.targets($feat-structure) {
pointer-events: none;
}
}
}
// postcss-bem-linter: define menu
.mdc-menu__selection-group {
@include feature-targeting.targets($feat-structure) {
padding: 0;
fill: currentColor;
}
.mdc-deprecated-list-item {
@include feature-targeting.targets($feat-structure) {
@include rtl.reflexive-property(
padding,
56px,
list-variables.$deprecated-side-padding
);
}
}
.mdc-menu__selection-group-icon {
@include feature-targeting.targets($feat-structure) {
@include rtl.reflexive-position(left, 16px);
visibility: hidden;
position: absolute;
// IE11 requires the icon to be vertically centered due to its absolute positioning
top: 50%;
transform: translateY(-50%);
// This is an instant transition with a delay that ensures the checkmark
// appears when menu is closed. Visibility property was used on purpose to
// indicate that there is no actual transition, but instant shift from start
// to end state with a delay.
transition-property: visibility;
transition-delay: menusurface-theme.$fade-out-duration;
}
}
}
// postcss-bem-linter: end
.mdc-menu-item--selected .mdc-menu__selection-group-icon {
@include feature-targeting.targets($feat-structure) {
display: inline;
visibility: visible;
}
}
}
@mixin open-item-opacity($opacity, $query: feature-targeting.all()) {
$feat-color: feature-targeting.create-target($query, color);
.mdc-menu-item--submenu-open {
@include ripple-theme.states-background-selector(
list-variables.$deprecated-ripple-target
) {
@include feature-targeting.targets($feat-color) {
opacity: $opacity;
}
}
@include ripple-theme.states-background-selector(
list-variables.$deprecated-temporary-ripple-target
) {
@include feature-targeting.targets($feat-color) {
opacity: $opacity;
}
}
}
}
@mixin width($width, $query: feature-targeting.all()) {
$feat-structure: feature-targeting.create-target($query, structure);
@include feature-targeting.targets($feat-structure) {
@if math.is-unitless($width) {
width: $width * variables.$width-base;
} @else {
width: $width;
}
}
}
/// Sets the min-width of the menu.
/// @param {Number} $min-width - the desired min-width.
@mixin min-width($min-width, $query: feature-targeting.all()) {
$feat-structure: feature-targeting.create-target($query, structure);
@include feature-targeting.targets($feat-structure) {
$min-width-custom-property: custom-properties.create(
menu-custom-properties.$min-width,
$min-width
);
@include theme.property(min-width, $min-width-custom-property);
}
}