package.theme.lumo.vaadin-multi-select-combo-box-styles.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of multi-select-combo-box Show documentation
Show all versions of multi-select-combo-box Show documentation
vaadin-multi-select-combo-box
/**
* @license
* Copyright (c) 2021 - 2024 Vaadin Ltd.
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
*/
import '@vaadin/input-container/theme/lumo/vaadin-input-container-styles.js';
import '@vaadin/vaadin-lumo-styles/color.js';
import '@vaadin/vaadin-lumo-styles/font-icons.js';
import '@vaadin/vaadin-lumo-styles/style.js';
import '@vaadin/vaadin-lumo-styles/typography.js';
import { comboBoxItem } from '@vaadin/combo-box/theme/lumo/vaadin-combo-box-item-styles.js';
import { comboBoxLoader, comboBoxOverlay } from '@vaadin/combo-box/theme/lumo/vaadin-combo-box-overlay-styles.js';
import { item } from '@vaadin/item/theme/lumo/vaadin-item-styles.js';
import { inputFieldShared } from '@vaadin/vaadin-lumo-styles/mixins/input-field-shared.js';
import { loader } from '@vaadin/vaadin-lumo-styles/mixins/loader.js';
import { menuOverlayCore } from '@vaadin/vaadin-lumo-styles/mixins/menu-overlay.js';
import { overlay } from '@vaadin/vaadin-lumo-styles/mixins/overlay.js';
import { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
const multiSelectComboBoxItem = css`
@media (any-hover: hover) {
:host(:hover[readonly]) {
background-color: transparent;
cursor: default;
}
}
`;
registerStyles('vaadin-multi-select-combo-box-item', [item, comboBoxItem, multiSelectComboBoxItem], {
moduleId: 'lumo-multi-select-combo-box-item',
});
registerStyles(
'vaadin-multi-select-combo-box-overlay',
[
overlay,
menuOverlayCore,
comboBoxOverlay,
loader,
comboBoxLoader,
css`
:host {
--_vaadin-multi-select-combo-box-items-container-border-width: var(--lumo-space-xs);
--_vaadin-multi-select-combo-box-items-container-border-style: solid;
}
`,
],
{ moduleId: 'lumo-multi-select-combo-box-overlay' },
);
registerStyles(
'vaadin-multi-select-combo-box-container',
css`
:host([auto-expand-vertically]) {
padding-block: var(--lumo-space-xs);
}
`,
{ moduleId: 'lumo-multi-select-combo-box-container' },
);
const multiSelectComboBox = css`
:host([has-value]) {
padding-inline-start: 0;
}
:host([has-value]) ::slotted(input:placeholder-shown) {
caret-color: var(--lumo-body-text-color) !important;
}
[part='label'] {
flex-shrink: 0;
}
/* Override input-container styles */
::slotted([slot='chip']),
::slotted([slot='overflow']) {
min-height: auto;
padding: 0.3125em calc(0.5em + var(--lumo-border-radius-s) / 4);
color: var(--lumo-body-text-color);
-webkit-mask-image: none;
mask-image: none;
}
:host([auto-expand-vertically]) ::slotted([slot='chip']) {
margin-block: calc(var(--lumo-space-xs) / 2);
}
::slotted([slot='chip']:not([readonly]):not([disabled])) {
padding-inline-end: 0;
}
:host([auto-expand-vertically]) ::slotted([slot='input']) {
min-height: calc(var(--lumo-text-field-size, var(--lumo-size-m)) - 2 * var(--lumo-space-xs));
}
::slotted([slot='chip']:not(:last-of-type)),
::slotted([slot='overflow']:not(:last-of-type)) {
margin-inline-end: var(--lumo-space-xs);
}
::slotted([slot='chip'][focused]) {
background-color: var(--vaadin-selection-color, var(--lumo-primary-color));
color: var(--lumo-primary-contrast-color);
}
[part='toggle-button']::before {
content: var(--lumo-icons-dropdown);
}
:host([readonly][has-value]) [part='toggle-button'] {
color: var(--lumo-contrast-60pct);
cursor: var(--lumo-clickable-cursor);
}
`;
registerStyles('vaadin-multi-select-combo-box', [inputFieldShared, multiSelectComboBox], {
moduleId: 'lumo-multi-select-combo-box',
});