UNPKG

@vaadin/avatar-group

Version:
74 lines (64 loc) 1.96 kB
/** * @license * Copyright (c) 2020 - 2026 Vaadin Ltd. * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/ */ import { html, LitElement } from 'lit'; import { ListMixin } from '@vaadin/a11y-base/src/list-mixin.js'; import { defineCustomElement } from '@vaadin/component-base/src/define.js'; import { DirMixin } from '@vaadin/component-base/src/dir-mixin.js'; import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js'; import { LumoInjectionMixin } from '@vaadin/vaadin-themable-mixin/lumo-injection-mixin.js'; import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js'; import { avatarGroupMenuStyles } from './styles/vaadin-avatar-group-menu-base-styles.js'; /** * An element used internally by `<vaadin-avatar-group>`. Not intended to be used separately. * * @customElement * @extends HTMLElement * @mixes DirMixin * @mixes ListMixin * @mixes ThemableMixin * @protected */ class AvatarGroupMenu extends ListMixin(ThemableMixin(DirMixin(PolylitMixin(LumoInjectionMixin(LitElement))))) { static get is() { return 'vaadin-avatar-group-menu'; } static get styles() { return avatarGroupMenuStyles; } static get properties() { return { // We don't need to define this property since super default is vertical, // but we don't want it to be modified, or be shown in the API docs. /** @private */ orientation: { readOnly: true, }, }; } /** * @return {!HTMLElement} * @protected * @override */ get _scrollerElement() { return this.shadowRoot.querySelector('[part="items"]'); } /** @protected */ render() { return html` <div part="items"> <slot></slot> </div> `; } /** @protected */ ready() { super.ready(); this.setAttribute('role', 'menu'); } } defineCustomElement(AvatarGroupMenu); export { AvatarGroupMenu };