import type { Button } from "@material/mwc-button"; import "@material/mwc-menu"; import type { Corner, Menu, MenuCorner } from "@material/mwc-menu"; import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit"; import { customElement, property, query } from "lit/decorators"; import { FOCUS_TARGET } from "../dialogs/make-dialog-manager"; import type { HaIconButton } from "./ha-icon-button"; @customElement("ha-button-menu") export class HaButtonMenu extends LitElement { protected readonly [FOCUS_TARGET]; @property() public corner: Corner = "BOTTOM_START"; @property() public menuCorner: MenuCorner = "START"; @property({ type: Number }) public x: number | null = null; @property({ type: Number }) public y: number | null = null; @property({ type: Boolean }) public multi = false; @property({ type: Boolean }) public activatable = false; @property({ type: Boolean }) public disabled = false; @property({ type: Boolean }) public fixed = false; @property({ type: Boolean, attribute: "no-anchor" }) public noAnchor = false; @query("mwc-menu", true) private _menu?: Menu; public get items() { return this._menu?.items; } public get selected() { return this._menu?.selected; } public override focus() { if (this._menu?.open) { this._menu.focusItemAtIndex(0); } else { this._triggerButton?.focus(); } } protected render(): TemplateResult { return html`