sass-references/angular-material/material/autocomplete/autocomplete.scss

57 lines
1.7 KiB
SCSS
Raw Normal View History

2024-12-06 10:42:08 +08:00
@use '@angular/cdk';
@use '../core/tokens/token-utils';
@use '../core/tokens/m2/mat/autocomplete' as tokens-mat-autocomplete;
// Even though we don't use the MDC styles, we need to keep the classes in the
// DOM for the Gmat versions to work. We need to bump up the specificity here
// so that it's higher than MDC's styles.
div.mat-mdc-autocomplete-panel {
width: 100%; // Ensures that the panel matches the overlay width.
max-height: 256px; // Prevents lists with a lot of option from growing too high.
visibility: hidden;
transform-origin: center top;
overflow: auto;
padding: 8px 0;
box-sizing: border-box;
// Workaround in case other MDC menu surface styles bleed in.
position: static;
@include token-utils.use-tokens(
tokens-mat-autocomplete.$prefix, tokens-mat-autocomplete.get-token-slots()) {
@include token-utils.create-token-slot(border-radius, container-shape);
@include token-utils.create-token-slot(box-shadow, container-elevation-shadow);
@include token-utils.create-token-slot(background-color, background-color);
}
@include cdk.high-contrast {
outline: solid 1px;
}
.cdk-overlay-pane:not(.mat-mdc-autocomplete-panel-above) & {
border-top-left-radius: 0;
border-top-right-radius: 0;
}
.mat-mdc-autocomplete-panel-above & {
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
transform-origin: center bottom;
}
// These classes are used to toggle the panel visibility depending on whether it has any options.
&.mat-mdc-autocomplete-visible {
visibility: visible;
}
&.mat-mdc-autocomplete-hidden {
visibility: hidden;
pointer-events: none;
}
}
// Prevent the overlay host node from affecting its surrounding layout.
mat-autocomplete {
display: none;
}