diff --git a/src/components/ha-selector/ha-selector-ui-action.ts b/src/components/ha-selector/ha-selector-ui-action.ts index b2adde969d..a221021225 100644 --- a/src/components/ha-selector/ha-selector-ui-action.ts +++ b/src/components/ha-selector/ha-selector-ui-action.ts @@ -6,7 +6,7 @@ import { HomeAssistant } from "../../types"; import "../../panels/lovelace/components/hui-action-editor"; import { ActionConfig } from "../../data/lovelace"; -@customElement("ha-selector-ui-action") +@customElement("ha-selector-ui_action") export class HaSelectorUiAction extends LitElement { @property() public hass!: HomeAssistant; @@ -24,7 +24,7 @@ export class HaSelectorUiAction extends LitElement { .label=${this.label} .hass=${this.hass} .config=${this.value} - .actions=${this.selector["ui-action"]?.actions} + .actions=${this.selector.ui_action?.actions} .tooltipText=${this.helper} @value-changed=${this._valueChanged} > diff --git a/src/components/ha-selector/ha-selector-ui-color.ts b/src/components/ha-selector/ha-selector-ui-color.ts index 98dbf3c1fb..149ad61550 100644 --- a/src/components/ha-selector/ha-selector-ui-color.ts +++ b/src/components/ha-selector/ha-selector-ui-color.ts @@ -6,7 +6,7 @@ import { UiColorSelector } from "../../data/selector"; import "../../panels/lovelace/components/hui-color-picker"; import { HomeAssistant } from "../../types"; -@customElement("ha-selector-ui-color") +@customElement("ha-selector-ui_color") export class HaSelectorUiColor extends LitElement { @property() public hass!: HomeAssistant; diff --git a/src/components/ha-selector/ha-selector.ts b/src/components/ha-selector/ha-selector.ts index 12cd14d2b9..46ee4b30ef 100644 --- a/src/components/ha-selector/ha-selector.ts +++ b/src/components/ha-selector/ha-selector.ts @@ -42,10 +42,12 @@ const LOAD_ELEMENTS = { tts: () => import("./ha-selector-tts"), location: () => import("./ha-selector-location"), color_temp: () => import("./ha-selector-color-temp"), - "ui-action": () => import("./ha-selector-ui-action"), - "ui-color": () => import("./ha-selector-ui-color"), + ui_action: () => import("./ha-selector-ui-action"), + ui_color: () => import("./ha-selector-ui-color"), }; +const LEGACY_UI_SELECTORS = new Set(["ui-action", "ui-color"]); + @customElement("ha-selector") export class HaSelector extends LitElement { @property() public hass!: HomeAssistant; @@ -75,7 +77,11 @@ export class HaSelector extends LitElement { } private get _type() { - return Object.keys(this.selector)[0]; + const type = Object.keys(this.selector)[0]; + if (LEGACY_UI_SELECTORS.has(type)) { + return type.replace("-", "_"); + } + return type; } protected willUpdate(changedProps: PropertyValues) { @@ -91,6 +97,10 @@ export class HaSelector extends LitElement { if ("device" in selector) { return handleLegacyDeviceSelector(selector); } + const type = Object.keys(this.selector)[0]; + if (LEGACY_UI_SELECTORS.has(type)) { + return { [type.replace("-", "_")]: selector[type] }; + } return selector; }); diff --git a/src/data/selector.ts b/src/data/selector.ts index e3aec23946..21ba8c0e5a 100644 --- a/src/data/selector.ts +++ b/src/data/selector.ts @@ -332,14 +332,14 @@ export interface TTSSelector { } export interface UiActionSelector { - "ui-action": { + ui_action: { actions?: UiAction[]; } | null; } export interface UiColorSelector { // eslint-disable-next-line @typescript-eslint/ban-types - "ui-color": {} | null; + ui_color: {} | null; } export const filterSelectorDevices = ( diff --git a/src/panels/lovelace/editor/config-elements/hui-button-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-button-card-editor.ts index 7466a4cdcd..5f06792c46 100644 --- a/src/panels/lovelace/editor/config-elements/hui-button-card-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-button-card-editor.ts @@ -65,11 +65,11 @@ const SCHEMA = [ }, { name: "tap_action", - selector: { "ui-action": {} }, + selector: { ui_action: {} }, }, { name: "hold_action", - selector: { "ui-action": {} }, + selector: { ui_action: {} }, }, ] as const; diff --git a/src/panels/lovelace/editor/config-elements/hui-light-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-light-card-editor.ts index 7f9e657765..b32aa485d0 100644 --- a/src/panels/lovelace/editor/config-elements/hui-light-card-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-light-card-editor.ts @@ -48,11 +48,11 @@ const SCHEMA = [ { name: "theme", selector: { theme: {} } }, { name: "hold_action", - selector: { "ui-action": {} }, + selector: { ui_action: {} }, }, { name: "double_tap_action", - selector: { "ui-action": {} }, + selector: { ui_action: {} }, }, ] as const; diff --git a/src/panels/lovelace/editor/config-elements/hui-picture-entity-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-picture-entity-card-editor.ts index 6ead63f55c..8150d99968 100644 --- a/src/panels/lovelace/editor/config-elements/hui-picture-entity-card-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-picture-entity-card-editor.ts @@ -61,11 +61,11 @@ const SCHEMA = [ { name: "theme", selector: { theme: {} } }, { name: "tap_action", - selector: { "ui-action": {} }, + selector: { ui_action: {} }, }, { name: "hold_action", - selector: { "ui-action": {} }, + selector: { ui_action: {} }, }, ] as const; diff --git a/src/panels/lovelace/editor/config-elements/hui-picture-glance-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-picture-glance-card-editor.ts index a1c988fb26..76c0634698 100644 --- a/src/panels/lovelace/editor/config-elements/hui-picture-glance-card-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-picture-glance-card-editor.ts @@ -51,11 +51,11 @@ const SCHEMA = [ { name: "theme", selector: { theme: {} } }, { name: "tap_action", - selector: { "ui-action": {} }, + selector: { ui_action: {} }, }, { name: "hold_action", - selector: { "ui-action": {} }, + selector: { ui_action: {} }, }, ] as const; diff --git a/src/panels/lovelace/editor/config-elements/hui-tile-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-tile-card-editor.ts index 0241615be7..b3ccc5a692 100644 --- a/src/panels/lovelace/editor/config-elements/hui-tile-card-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-tile-card-editor.ts @@ -87,7 +87,7 @@ export class HuiTileCardEditor { name: "color", selector: { - "ui-color": {}, + ui_color: {}, }, }, { @@ -115,13 +115,13 @@ export class HuiTileCardEditor { name: "tap_action", selector: { - "ui-action": {}, + ui_action: {}, }, }, { name: "icon_tap_action", selector: { - "ui-action": {}, + ui_action: {}, }, }, ] as const,