diff --git a/src/panels/lovelace/components/hui-card-options.ts b/src/panels/lovelace/components/hui-card-options.ts index 541e5202cb..7984ca2804 100644 --- a/src/panels/lovelace/components/hui-card-options.ts +++ b/src/panels/lovelace/components/hui-card-options.ts @@ -59,11 +59,12 @@ export class HuiCardOptions extends LitElement { )}
+ diff --git a/src/panels/lovelace/views/hui-sidebar-view.ts b/src/panels/lovelace/views/hui-sidebar-view.ts index 5792b52b2b..f62acd7d7d 100644 --- a/src/panels/lovelace/views/hui-sidebar-view.ts +++ b/src/panels/lovelace/views/hui-sidebar-view.ts @@ -1,4 +1,4 @@ -import { mdiPlus } from "@mdi/js"; +import { mdiArrowLeft, mdiArrowRight, mdiPlus } from "@mdi/js"; import { css, CSSResultGroup, @@ -18,6 +18,7 @@ import type { import type { HomeAssistant } from "../../../types"; import { HuiErrorCard } from "../cards/hui-error-card"; import { HuiCardOptions } from "../components/hui-card-options"; +import { replaceCard } from "../editor/config-util"; import type { Lovelace, LovelaceCard } from "../types"; export class SideBarView extends LitElement implements LovelaceViewElement { @@ -155,6 +156,28 @@ export class SideBarView extends LitElement implements LovelaceViewElement { element.lovelace = this.lovelace; element.path = [this.index!, idx]; card.editMode = true; + const movePositionButton = document.createElement("mwc-icon-button"); + movePositionButton.slot = "buttons"; + const moveIcon = document.createElement("ha-svg-icon"); + moveIcon.path = + cardConfig?.view_layout?.position !== "sidebar" + ? mdiArrowRight + : mdiArrowLeft; + movePositionButton.appendChild(moveIcon); + movePositionButton.addEventListener("click", () => { + this.lovelace!.saveConfig( + replaceCard(this.lovelace!.config, [this.index!, idx], { + ...cardConfig!, + view_layout: { + position: + cardConfig?.view_layout?.position !== "sidebar" + ? "sidebar" + : "main", + }, + }) + ); + }); + element.appendChild(movePositionButton); element.appendChild(card); } if (cardConfig?.view_layout?.position !== "sidebar") { @@ -188,6 +211,7 @@ export class SideBarView extends LitElement implements LovelaceViewElement { #sidebar { flex-grow: 1; + flex-shrink: 0; max-width: 380px; }