Compare commits

...

2 Commits

Author SHA1 Message Date
Wendelin
1277dc303d remove unused attributes 2025-12-03 08:58:22 +01:00
Wendelin
5e3d38c073 Add unchecked icon support to ha-dropdown-item component 2025-12-03 08:53:58 +01:00

View File

@@ -1,6 +1,9 @@
import DropdownItem from "@home-assistant/webawesome/dist/components/dropdown-item/dropdown-item";
import { css, type CSSResultGroup } from "lit";
import "@home-assistant/webawesome/dist/components/icon/icon";
import { mdiCheckboxBlankOutline, mdiCheckboxMarked } from "@mdi/js";
import { css, type CSSResultGroup, html, nothing } from "lit";
import { customElement } from "lit/decorators";
import "./ha-svg-icon";
/**
* Home Assistant dropdown item component
@@ -14,6 +17,62 @@ import { customElement } from "lit/decorators";
*/
@customElement("ha-dropdown-item")
export class HaDropdownItem extends DropdownItem {
// overwritten wa-dropdown-item render function, to add unchecked icon support
render() {
return html`
${this.type === "checkbox"
? html`
<ha-svg-icon
id="check"
part="checkmark"
.path=${this.checked
? mdiCheckboxMarked
: mdiCheckboxBlankOutline}
></ha-svg-icon>
`
: nothing}
<span id="icon" part="icon">
<slot name="icon"></slot>
</span>
<span id="label" part="label">
<slot></slot>
</span>
<span id="details" part="details">
<slot name="details"></slot>
</span>
${this.hasSubmenu
? html`
<wa-icon
id="submenu-indicator"
part="submenu-icon"
exportparts="svg:submenu-icon__svg"
library="system"
name="chevron-right"
></wa-icon>
`
: nothing}
${this.hasSubmenu
? html`
<div
id="submenu"
part="submenu"
popover="manual"
role="menu"
tabindex="-1"
aria-orientation="vertical"
hidden
>
<slot name="submenu"></slot>
</div>
`
: nothing}
`;
}
static get styles(): CSSResultGroup {
return [
DropdownItem.styles,
@@ -22,6 +81,10 @@ export class HaDropdownItem extends DropdownItem {
min-height: var(--ha-space-10);
}
#check {
visibility: visible;
}
#icon ::slotted(*) {
color: var(--ha-color-on-neutral-normal);
}