diff --git a/cast/src/launcher/layout/hc-cast.ts b/cast/src/launcher/layout/hc-cast.ts
index 130926748a..1160d8dc07 100644
--- a/cast/src/launcher/layout/hc-cast.ts
+++ b/cast/src/launcher/layout/hc-cast.ts
@@ -1,12 +1,21 @@
-import "@material/mwc-button/mwc-button";
-import "@material/mwc-list/mwc-list";
+import type { CastManager } from "../../../../src/cast/cast_manager";
+import type { LovelaceViewConfig } from "../../../../src/data/lovelace/config/view";
import type { ActionDetail } from "@material/mwc-list/mwc-list";
-import { mdiCast, mdiCastConnected, mdiViewDashboard } from "@mdi/js";
import type { Auth, Connection } from "home-assistant-js-websocket";
import type { TemplateResult } from "lit";
+
+import "../../../../src/components/ha-icon";
+import "../../../../src/components/ha-list-item";
+import "../../../../src/components/ha-svg-icon";
+import "../../../../src/layouts/hass-loading-screen";
+import "./hc-layout";
+import "@material/mwc-button/mwc-button";
+import "@material/mwc-list/mwc-list";
+
+import { mdiCast, mdiCastConnected, mdiViewDashboard } from "@mdi/js";
import { LitElement, css, html } from "lit";
import { customElement, property, state } from "lit/decorators";
-import type { CastManager } from "../../../../src/cast/cast_manager";
+
import {
castSendShowLovelaceView,
ensureConnectedCastSession,
@@ -18,18 +27,12 @@ import {
} from "../../../../src/common/auth/token_storage";
import { atLeastVersion } from "../../../../src/common/config/version";
import { toggleAttribute } from "../../../../src/common/dom/toggle_attribute";
-import "../../../../src/components/ha-icon";
-import "../../../../src/components/ha-svg-icon";
import {
getLegacyLovelaceCollection,
getLovelaceCollection,
} from "../../../../src/data/lovelace";
import { isStrategyDashboard } from "../../../../src/data/lovelace/config/types";
-import type { LovelaceViewConfig } from "../../../../src/data/lovelace/config/view";
-import "../../../../src/layouts/hass-loading-screen";
import { generateDefaultViewConfig } from "../../../../src/panels/lovelace/common/generate-lovelace-config";
-import "./hc-layout";
-import "../../../../src/components/ha-list-item";
@customElement("hc-cast")
class HcCast extends LitElement {
diff --git a/cast/src/launcher/layout/hc-connect.ts b/cast/src/launcher/layout/hc-connect.ts
index 17dee754c7..536d56bf2b 100644
--- a/cast/src/launcher/layout/hc-connect.ts
+++ b/cast/src/launcher/layout/hc-connect.ts
@@ -1,10 +1,18 @@
-import "@material/mwc-button";
-import { mdiCastConnected, mdiCast } from "@mdi/js";
+import type { CastManager } from "../../../../src/cast/cast_manager";
import type {
Auth,
Connection,
getAuthOptions,
} from "home-assistant-js-websocket";
+import type { TemplateResult } from "lit";
+
+import "../../../../src/components/ha-svg-icon";
+import "../../../../src/components/ha-textfield";
+import "../../../../src/layouts/hass-loading-screen";
+import "./hc-layout";
+import "@material/mwc-button";
+
+import { mdiCastConnected, mdiCast } from "@mdi/js";
import {
createConnection,
ERR_CANNOT_CONNECT,
@@ -13,21 +21,16 @@ import {
ERR_INVALID_HTTPS_TO_HTTP,
getAuth,
} from "home-assistant-js-websocket";
-import type { TemplateResult } from "lit";
import { css, html, LitElement } from "lit";
import { customElement, state } from "lit/decorators";
-import type { CastManager } from "../../../../src/cast/cast_manager";
+
import { getCastManager } from "../../../../src/cast/cast_manager";
import { castSendShowDemo } from "../../../../src/cast/receiver_messages";
import {
loadTokens,
saveTokens,
} from "../../../../src/common/auth/token_storage";
-import "../../../../src/components/ha-svg-icon";
-import "../../../../src/layouts/hass-loading-screen";
import { registerServiceWorker } from "../../../../src/util/register-service-worker";
-import "./hc-layout";
-import "../../../../src/components/ha-textfield";
const seeFAQ = (qid) => html`
See the FAQ for more
diff --git a/cast/src/launcher/layout/hc-layout.ts b/cast/src/launcher/layout/hc-layout.ts
index 87cb2cced1..a488d0fd96 100644
--- a/cast/src/launcher/layout/hc-layout.ts
+++ b/cast/src/launcher/layout/hc-layout.ts
@@ -1,9 +1,11 @@
import type { Auth, Connection, HassUser } from "home-assistant-js-websocket";
-import { getUser } from "home-assistant-js-websocket";
import type { TemplateResult } from "lit";
+
+import "../../../../src/components/ha-card";
+
+import { getUser } from "home-assistant-js-websocket";
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
-import "../../../../src/components/ha-card";
@customElement("hc-layout")
class HcLayout extends LitElement {
diff --git a/cast/src/receiver/demo/cast-demo-entities.ts b/cast/src/receiver/demo/cast-demo-entities.ts
index 58010af0a8..a6eb6a13b4 100644
--- a/cast/src/receiver/demo/cast-demo-entities.ts
+++ b/cast/src/receiver/demo/cast-demo-entities.ts
@@ -1,4 +1,5 @@
import type { Entity } from "../../../../src/fake_data/entity";
+
import { convertEntities } from "../../../../src/fake_data/entity";
export const castDemoEntities: () => Entity[] = () =>
diff --git a/cast/src/receiver/demo/cast-demo-lovelace.ts b/cast/src/receiver/demo/cast-demo-lovelace.ts
index 5594e6d1ae..39a5816a90 100644
--- a/cast/src/receiver/demo/cast-demo-lovelace.ts
+++ b/cast/src/receiver/demo/cast-demo-lovelace.ts
@@ -1,5 +1,6 @@
import type { LovelaceCardConfig } from "../../../../src/data/lovelace/config/card";
import type { LovelaceConfig } from "../../../../src/data/lovelace/config/types";
+
import { castContext } from "../cast_context";
export const castDemoLovelace: () => LovelaceConfig = () => {
diff --git a/cast/src/receiver/entrypoint.ts b/cast/src/receiver/entrypoint.ts
index afdb19a36a..c222c16691 100644
--- a/cast/src/receiver/entrypoint.ts
+++ b/cast/src/receiver/entrypoint.ts
@@ -1,11 +1,13 @@
-import { framework } from "./cast_framework";
-import { CAST_NS } from "../../../src/cast/const";
import type { HassMessage } from "../../../src/cast/receiver_messages";
-import "../../../src/resources/custom-card-support";
-import { castContext } from "./cast_context";
-import { HcMain } from "./layout/hc-main";
import type { ReceivedMessage } from "./types";
+import "../../../src/resources/custom-card-support";
+
+import { CAST_NS } from "../../../src/cast/const";
+import { castContext } from "./cast_context";
+import { framework } from "./cast_framework";
+import { HcMain } from "./layout/hc-main";
+
const lovelaceController = new HcMain();
document.body.append(lovelaceController);
lovelaceController.addEventListener("cast-view-changed", (ev) => {
diff --git a/cast/src/receiver/layout/hc-demo.ts b/cast/src/receiver/layout/hc-demo.ts
index 6ab8c05ce3..03a6dc275b 100644
--- a/cast/src/receiver/layout/hc-demo.ts
+++ b/cast/src/receiver/layout/hc-demo.ts
@@ -1,14 +1,17 @@
-import { html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { mockHistory } from "../../../../demo/src/stubs/history";
import type { LovelaceConfig } from "../../../../src/data/lovelace/config/types";
import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
+import type { HomeAssistant } from "../../../../src/types";
+
+import "./hc-lovelace";
+
+import { html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { mockHistory } from "../../../../demo/src/stubs/history";
import { provideHass } from "../../../../src/fake_data/provide_hass";
import { HassElement } from "../../../../src/state/hass-element";
-import type { HomeAssistant } from "../../../../src/types";
import { castDemoEntities } from "../demo/cast-demo-entities";
import { castDemoLovelace } from "../demo/cast-demo-lovelace";
-import "./hc-lovelace";
@customElement("hc-demo")
class HcDemo extends HassElement {
diff --git a/cast/src/receiver/layout/hc-launch-screen.ts b/cast/src/receiver/layout/hc-launch-screen.ts
index cab6840ba4..7f31446dcf 100644
--- a/cast/src/receiver/layout/hc-launch-screen.ts
+++ b/cast/src/receiver/layout/hc-launch-screen.ts
@@ -1,7 +1,8 @@
+import type { HomeAssistant } from "../../../../src/types";
import type { TemplateResult } from "lit";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
-import type { HomeAssistant } from "../../../../src/types";
@customElement("hc-launch-screen")
class HcLaunchScreen extends LitElement {
diff --git a/cast/src/receiver/layout/hc-lovelace.ts b/cast/src/receiver/layout/hc-lovelace.ts
index 624a22f5ee..a1f72936b1 100644
--- a/cast/src/receiver/layout/hc-lovelace.ts
+++ b/cast/src/receiver/layout/hc-lovelace.ts
@@ -1,14 +1,17 @@
+import type { LovelaceConfig } from "../../../../src/data/lovelace/config/types";
+import type { Lovelace } from "../../../../src/panels/lovelace/types";
+import type { HomeAssistant } from "../../../../src/types";
+
+import "../../../../src/panels/lovelace/views/hui-view";
+import "../../../../src/panels/lovelace/views/hui-view-background";
+import "../../../../src/panels/lovelace/views/hui-view-container";
+import "./hc-launch-screen";
+
import { css, html, LitElement, type TemplateResult } from "lit";
import { customElement, property } from "lit/decorators";
+
import { fireEvent } from "../../../../src/common/dom/fire_event";
-import type { LovelaceConfig } from "../../../../src/data/lovelace/config/types";
import { getPanelTitleFromUrlPath } from "../../../../src/data/panel";
-import type { Lovelace } from "../../../../src/panels/lovelace/types";
-import "../../../../src/panels/lovelace/views/hui-view";
-import "../../../../src/panels/lovelace/views/hui-view-container";
-import type { HomeAssistant } from "../../../../src/types";
-import "./hc-launch-screen";
-import "../../../../src/panels/lovelace/views/hui-view-background";
(window as any).loadCardHelpers = () =>
import("../../../../src/panels/lovelace/custom-card-helpers");
diff --git a/cast/src/receiver/layout/hc-main.ts b/cast/src/receiver/layout/hc-main.ts
index 46267f715a..0bcaed36ce 100644
--- a/cast/src/receiver/layout/hc-main.ts
+++ b/cast/src/receiver/layout/hc-main.ts
@@ -1,9 +1,3 @@
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import { createConnection, getAuth } from "home-assistant-js-websocket";
-import type { TemplateResult } from "lit";
-import { html } from "lit";
-import { customElement, state } from "lit/decorators";
-import { CAST_NS } from "../../../../src/cast/const";
import type {
ConnectMessage,
GetStatusMessage,
@@ -15,6 +9,21 @@ import type {
ReceiverErrorMessage,
ReceiverStatusMessage,
} from "../../../../src/cast/sender_messages";
+import type {
+ LegacyLovelaceConfig,
+ LovelaceConfig,
+ LovelaceDashboardStrategyConfig,
+} from "../../../../src/data/lovelace/config/types";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { TemplateResult } from "lit";
+
+import "./hc-launch-screen";
+
+import { createConnection, getAuth } from "home-assistant-js-websocket";
+import { html } from "lit";
+import { customElement, state } from "lit/decorators";
+
+import { CAST_NS } from "../../../../src/cast/const";
import { ReceiverErrorCode } from "../../../../src/cast/sender_messages";
import { atLeastVersion } from "../../../../src/common/config/version";
import { isNavigationClick } from "../../../../src/common/dom/is-navigation-click";
@@ -22,19 +31,13 @@ import {
getLegacyLovelaceCollection,
getLovelaceCollection,
} from "../../../../src/data/lovelace";
-import type {
- LegacyLovelaceConfig,
- LovelaceConfig,
- LovelaceDashboardStrategyConfig,
-} from "../../../../src/data/lovelace/config/types";
import { isStrategyDashboard } from "../../../../src/data/lovelace/config/types";
import { fetchResources } from "../../../../src/data/lovelace/resource";
+import { getPanelTitleFromUrlPath } from "../../../../src/data/panel";
+import { checkLovelaceConfig } from "../../../../src/panels/lovelace/common/check-lovelace-config";
import { loadLovelaceResources } from "../../../../src/panels/lovelace/common/load-resources";
import { HassElement } from "../../../../src/state/hass-element";
import { castContext } from "../cast_context";
-import "./hc-launch-screen";
-import { getPanelTitleFromUrlPath } from "../../../../src/data/panel";
-import { checkLovelaceConfig } from "../../../../src/panels/lovelace/common/check-lovelace-config";
const DEFAULT_CONFIG: LovelaceDashboardStrategyConfig = {
strategy: {
diff --git a/demo/src/configs/arsaboo/entities.ts b/demo/src/configs/arsaboo/entities.ts
index 594cfa1f8b..7c9d128d7c 100644
--- a/demo/src/configs/arsaboo/entities.ts
+++ b/demo/src/configs/arsaboo/entities.ts
@@ -1,6 +1,7 @@
-import { convertEntities } from "../../../../src/fake_data/entity";
import type { DemoConfig } from "../types";
+import { convertEntities } from "../../../../src/fake_data/entity";
+
export const demoEntitiesArsaboo: DemoConfig["entities"] = (localize) =>
convertEntities({
"todo.shopping_list": {
diff --git a/demo/src/configs/arsaboo/index.ts b/demo/src/configs/arsaboo/index.ts
index 7ff6f7b52d..1deef29c7d 100644
--- a/demo/src/configs/arsaboo/index.ts
+++ b/demo/src/configs/arsaboo/index.ts
@@ -1,4 +1,5 @@
import type { DemoConfig } from "../types";
+
import { demoEntitiesArsaboo } from "./entities";
import { demoLovelaceArsaboo } from "./lovelace";
import { demoThemeArsaboo } from "./theme";
diff --git a/demo/src/configs/demo-configs.ts b/demo/src/configs/demo-configs.ts
index 8bc0f02cf6..486e092be5 100644
--- a/demo/src/configs/demo-configs.ts
+++ b/demo/src/configs/demo-configs.ts
@@ -1,8 +1,9 @@
import type { MockHomeAssistant } from "../../../src/fake_data/provide_hass";
import type { Lovelace } from "../../../src/panels/lovelace/types";
-import { energyEntities } from "../stubs/entities";
import type { DemoConfig } from "./types";
+import { energyEntities } from "../stubs/entities";
+
export const demoConfigs: (() => Promise)[] = [
() => import("./sections").then((mod) => mod.demoSections),
() => import("./arsaboo").then((mod) => mod.demoArsaboo),
diff --git a/demo/src/configs/jimpower/entities.ts b/demo/src/configs/jimpower/entities.ts
index 68404befa3..3745e0e4cf 100644
--- a/demo/src/configs/jimpower/entities.ts
+++ b/demo/src/configs/jimpower/entities.ts
@@ -1,6 +1,7 @@
-import { convertEntities } from "../../../../src/fake_data/entity";
import type { DemoConfig } from "../types";
+import { convertEntities } from "../../../../src/fake_data/entity";
+
export const demoEntitiesJimpower: DemoConfig["entities"] = () =>
convertEntities({
"todo.shopping_list": {
diff --git a/demo/src/configs/jimpower/index.ts b/demo/src/configs/jimpower/index.ts
index 78bf0f2444..636a3c113e 100644
--- a/demo/src/configs/jimpower/index.ts
+++ b/demo/src/configs/jimpower/index.ts
@@ -1,4 +1,5 @@
import type { DemoConfig } from "../types";
+
import { demoEntitiesJimpower } from "./entities";
import { demoLovelaceJimpower } from "./lovelace";
import { demoThemeJimpower } from "./theme";
diff --git a/demo/src/configs/jimpower/lovelace.ts b/demo/src/configs/jimpower/lovelace.ts
index 37aa6b49d3..fc968ba036 100644
--- a/demo/src/configs/jimpower/lovelace.ts
+++ b/demo/src/configs/jimpower/lovelace.ts
@@ -1,6 +1,7 @@
-import "../../custom-cards/card-modder";
import type { DemoConfig } from "../types";
+import "../../custom-cards/card-modder";
+
export const demoLovelaceJimpower: DemoConfig["lovelace"] = () => ({
name: "Kingia Castle",
resources: [],
diff --git a/demo/src/configs/kernehed/entities.ts b/demo/src/configs/kernehed/entities.ts
index a7f07d51c6..3a1291b820 100644
--- a/demo/src/configs/kernehed/entities.ts
+++ b/demo/src/configs/kernehed/entities.ts
@@ -1,6 +1,7 @@
-import { convertEntities } from "../../../../src/fake_data/entity";
import type { DemoConfig } from "../types";
+import { convertEntities } from "../../../../src/fake_data/entity";
+
export const demoEntitiesKernehed: DemoConfig["entities"] = () =>
convertEntities({
"todo.shopping_list": {
diff --git a/demo/src/configs/kernehed/index.ts b/demo/src/configs/kernehed/index.ts
index 72f4a39d60..24909d32d7 100644
--- a/demo/src/configs/kernehed/index.ts
+++ b/demo/src/configs/kernehed/index.ts
@@ -1,4 +1,5 @@
import type { DemoConfig } from "../types";
+
import { demoEntitiesKernehed } from "./entities";
import { demoLovelaceKernehed } from "./lovelace";
import { demoThemeKernehed } from "./theme";
diff --git a/demo/src/configs/sections/entities.ts b/demo/src/configs/sections/entities.ts
index 87163776e7..75be6f1774 100644
--- a/demo/src/configs/sections/entities.ts
+++ b/demo/src/configs/sections/entities.ts
@@ -1,6 +1,7 @@
-import { convertEntities } from "../../../../src/fake_data/entity";
import type { DemoConfig } from "../types";
+import { convertEntities } from "../../../../src/fake_data/entity";
+
export const demoEntitiesSections: DemoConfig["entities"] = (localize) =>
convertEntities({
"cover.living_room_garden_shutter": {
diff --git a/demo/src/configs/sections/index.ts b/demo/src/configs/sections/index.ts
index c25df44ebc..dc880df96e 100644
--- a/demo/src/configs/sections/index.ts
+++ b/demo/src/configs/sections/index.ts
@@ -1,4 +1,5 @@
import type { DemoConfig } from "../types";
+
import { demoEntitiesSections } from "./entities";
import { demoLovelaceSections } from "./lovelace";
diff --git a/demo/src/configs/sections/lovelace.ts b/demo/src/configs/sections/lovelace.ts
index c06af2ee5e..759ab80cdb 100644
--- a/demo/src/configs/sections/lovelace.ts
+++ b/demo/src/configs/sections/lovelace.ts
@@ -1,6 +1,7 @@
-import { isFrontpageEmbed } from "../../util/is_frontpage";
import type { DemoConfig } from "../types";
+import { isFrontpageEmbed } from "../../util/is_frontpage";
+
export const demoLovelaceSections: DemoConfig["lovelace"] = (localize) => ({
title: "Home Assistant Demo",
views: [
diff --git a/demo/src/configs/teachingbirds/entities.ts b/demo/src/configs/teachingbirds/entities.ts
index 2349ccb8cb..8513edec77 100644
--- a/demo/src/configs/teachingbirds/entities.ts
+++ b/demo/src/configs/teachingbirds/entities.ts
@@ -1,6 +1,7 @@
-import { convertEntities } from "../../../../src/fake_data/entity";
import type { DemoConfig } from "../types";
+import { convertEntities } from "../../../../src/fake_data/entity";
+
export const demoEntitiesTeachingbirds: DemoConfig["entities"] = () =>
convertEntities({
"todo.shopping_list": {
diff --git a/demo/src/configs/teachingbirds/index.ts b/demo/src/configs/teachingbirds/index.ts
index e7d4865e83..af52b8b197 100644
--- a/demo/src/configs/teachingbirds/index.ts
+++ b/demo/src/configs/teachingbirds/index.ts
@@ -1,4 +1,5 @@
import type { DemoConfig } from "../types";
+
import { demoEntitiesTeachingbirds } from "./entities";
import { demoLovelaceTeachingbirds } from "./lovelace";
import { demoThemeTeachingbirds } from "./theme";
diff --git a/demo/src/configs/types.ts b/demo/src/configs/types.ts
index cb4e405d77..b2c62e15e3 100644
--- a/demo/src/configs/types.ts
+++ b/demo/src/configs/types.ts
@@ -1,7 +1,7 @@
-import type { TemplateResult } from "lit";
import type { LocalizeFunc } from "../../../src/common/translations/localize";
import type { LovelaceConfig } from "../../../src/data/lovelace/config/types";
import type { Entity } from "../../../src/fake_data/entity";
+import type { TemplateResult } from "lit";
export interface DemoConfig {
index?: number;
diff --git a/demo/src/custom-cards/cast-demo-row.ts b/demo/src/custom-cards/cast-demo-row.ts
index 86bf51035b..0e59390ac9 100644
--- a/demo/src/custom-cards/cast-demo-row.ts
+++ b/demo/src/custom-cards/cast-demo-row.ts
@@ -1,15 +1,18 @@
-import { mdiTelevision } from "@mdi/js";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, state } from "lit/decorators";
import type { CastManager } from "../../../src/cast/cast_manager";
-import { castSendShowDemo } from "../../../src/cast/receiver_messages";
-import "../../../src/components/ha-icon";
import type {
CastConfig,
LovelaceRow,
} from "../../../src/panels/lovelace/entity-rows/types";
import type { HomeAssistant } from "../../../src/types";
+import "../../../src/components/ha-icon";
+
+import { mdiTelevision } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, state } from "lit/decorators";
+
+import { castSendShowDemo } from "../../../src/cast/receiver_messages";
+
@customElement("cast-demo-row")
class CastDemoRow extends LitElement implements LovelaceRow {
public hass!: HomeAssistant;
diff --git a/demo/src/custom-cards/ha-demo-card.ts b/demo/src/custom-cards/ha-demo-card.ts
index b9e1a32e68..2e935339e1 100644
--- a/demo/src/custom-cards/ha-demo-card.ts
+++ b/demo/src/custom-cards/ha-demo-card.ts
@@ -1,17 +1,20 @@
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { until } from "lit/directives/until";
-import { fireEvent } from "../../../src/common/dom/fire_event";
-import "../../../src/components/ha-card";
-import "../../../src/components/ha-button";
-import "../../../src/components/ha-spinner";
import type { LovelaceCardConfig } from "../../../src/data/lovelace/config/card";
import type { MockHomeAssistant } from "../../../src/fake_data/provide_hass";
import type {
Lovelace,
LovelaceCard,
} from "../../../src/panels/lovelace/types";
+import type { CSSResultGroup } from "lit";
+
+import "../../../src/components/ha-button";
+import "../../../src/components/ha-card";
+import "../../../src/components/ha-spinner";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { until } from "lit/directives/until";
+
+import { fireEvent } from "../../../src/common/dom/fire_event";
import {
demoConfigs,
selectedDemoConfig,
diff --git a/demo/src/entrypoint.ts b/demo/src/entrypoint.ts
index e153eabb12..fa2cc78f69 100644
--- a/demo/src/entrypoint.ts
+++ b/demo/src/entrypoint.ts
@@ -1,4 +1,4 @@
-import "./util/is_frontpage";
import "./ha-demo";
+import "./util/is_frontpage";
import("../../src/resources/ha-style");
diff --git a/demo/src/ha-demo.ts b/demo/src/ha-demo.ts
index 3406e0270d..02e9a64d7b 100644
--- a/demo/src/ha-demo.ts
+++ b/demo/src/ha-demo.ts
@@ -1,10 +1,12 @@
+import type { MockHomeAssistant } from "../../src/fake_data/provide_hass";
+import type { HomeAssistant } from "../../src/types";
+
import { customElement } from "lit/decorators";
+
import { isNavigationClick } from "../../src/common/dom/is-navigation-click";
import { navigate } from "../../src/common/navigate";
-import type { MockHomeAssistant } from "../../src/fake_data/provide_hass";
import { provideHass } from "../../src/fake_data/provide_hass";
import { HomeAssistantAppEl } from "../../src/layouts/home-assistant";
-import type { HomeAssistant } from "../../src/types";
import { selectedDemoConfig } from "./configs/demo-configs";
import { mockAreaRegistry } from "./stubs/area_registry";
import { mockAuth } from "./stubs/auth";
@@ -14,8 +16,8 @@ import { energyEntities } from "./stubs/entities";
import { mockEntityRegistry } from "./stubs/entity_registry";
import { mockEvents } from "./stubs/events";
import { mockFrontend } from "./stubs/frontend";
-import { mockIcons } from "./stubs/icons";
import { mockHistory } from "./stubs/history";
+import { mockIcons } from "./stubs/icons";
import { mockLovelace } from "./stubs/lovelace";
import { mockMediaPlayer } from "./stubs/media_player";
import { mockPersistentNotification } from "./stubs/persistent_notification";
diff --git a/demo/src/stubs/energy.ts b/demo/src/stubs/energy.ts
index 6df7bde7fb..4b987e2f1f 100644
--- a/demo/src/stubs/energy.ts
+++ b/demo/src/stubs/energy.ts
@@ -1,4 +1,3 @@
-import { format, startOfToday, startOfTomorrow } from "date-fns";
import type {
EnergyInfo,
EnergyPreferences,
@@ -7,6 +6,8 @@ import type {
} from "../../../src/data/energy";
import type { MockHomeAssistant } from "../../../src/fake_data/provide_hass";
+import { format, startOfToday, startOfTomorrow } from "date-fns";
+
export const mockEnergy = (hass: MockHomeAssistant) => {
hass.mockWS(
"energy/get_prefs",
diff --git a/demo/src/stubs/history.ts b/demo/src/stubs/history.ts
index 4dd809b648..9d33dc8b30 100644
--- a/demo/src/stubs/history.ts
+++ b/demo/src/stubs/history.ts
@@ -1,6 +1,6 @@
-import type { HassEntity } from "home-assistant-js-websocket";
import type { HistoryStates } from "../../../src/data/history";
import type { MockHomeAssistant } from "../../../src/fake_data/provide_hass";
+import type { HassEntity } from "home-assistant-js-websocket";
const generateStateHistory = (
state: HassEntity,
diff --git a/demo/src/stubs/icons.ts b/demo/src/stubs/icons.ts
index fa806cef73..130b19c531 100644
--- a/demo/src/stubs/icons.ts
+++ b/demo/src/stubs/icons.ts
@@ -1,7 +1,8 @@
import type { IconCategory } from "../../../src/data/icons";
-import { ENTITY_COMPONENT_ICONS } from "../../../src/fake_data/entity_component_icons";
import type { MockHomeAssistant } from "../../../src/fake_data/provide_hass";
+import { ENTITY_COMPONENT_ICONS } from "../../../src/fake_data/entity_component_icons";
+
export const mockIcons = (hass: MockHomeAssistant) => {
hass.mockWS(
"frontend/get_icons",
diff --git a/demo/src/stubs/lovelace.ts b/demo/src/stubs/lovelace.ts
index e4544a10ef..f3b45bf08a 100644
--- a/demo/src/stubs/lovelace.ts
+++ b/demo/src/stubs/lovelace.ts
@@ -1,12 +1,14 @@
import type { LocalizeFunc } from "../../../src/common/translations/localize";
import type { MockHomeAssistant } from "../../../src/fake_data/provide_hass";
+
+import "../custom-cards/cast-demo-row";
+import "../custom-cards/ha-demo-card";
+
import {
selectedDemoConfig,
selectedDemoConfigIndex,
setDemoConfig,
} from "../configs/demo-configs";
-import "../custom-cards/cast-demo-row";
-import "../custom-cards/ha-demo-card";
import { mapEntities } from "./entities";
export const mockLovelace = (
diff --git a/demo/src/stubs/recorder.ts b/demo/src/stubs/recorder.ts
index 3acce8b6d7..aa84f3bb51 100644
--- a/demo/src/stubs/recorder.ts
+++ b/demo/src/stubs/recorder.ts
@@ -1,3 +1,10 @@
+import type {
+ Statistics,
+ StatisticsMetaData,
+ StatisticValue,
+} from "../../../src/data/recorder";
+import type { MockHomeAssistant } from "../../../src/fake_data/provide_hass";
+
import {
addDays,
addHours,
@@ -5,12 +12,6 @@ import {
differenceInHours,
endOfDay,
} from "date-fns";
-import type {
- Statistics,
- StatisticsMetaData,
- StatisticValue,
-} from "../../../src/data/recorder";
-import type { MockHomeAssistant } from "../../../src/fake_data/provide_hass";
const generateMeanStatistics = (
start: Date,
diff --git a/demo/src/stubs/todo.ts b/demo/src/stubs/todo.ts
index 2d30294c18..0d663ff12c 100644
--- a/demo/src/stubs/todo.ts
+++ b/demo/src/stubs/todo.ts
@@ -1,7 +1,8 @@
import type { TodoItem } from "../../../src/data/todo";
-import { TodoItemStatus } from "../../../src/data/todo";
import type { MockHomeAssistant } from "../../../src/fake_data/provide_hass";
+import { TodoItemStatus } from "../../../src/data/todo";
+
export const mockTodo = (hass: MockHomeAssistant) => {
hass.mockWS("todo/item/list", () => ({
items: [
diff --git a/eslint.config.mjs b/eslint.config.mjs
index 6907fdecbe..572af11ea6 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -1,16 +1,18 @@
// @ts-check
-
/* eslint-disable import/no-extraneous-dependencies */
-import unusedImports from "eslint-plugin-unused-imports";
-import globals from "globals";
+
import path from "node:path";
import { fileURLToPath } from "node:url";
-import js from "@eslint/js";
+
import { FlatCompat } from "@eslint/eslintrc";
-import tseslint from "typescript-eslint";
+import js from "@eslint/js";
import eslintConfigPrettier from "eslint-config-prettier";
import { configs as litConfigs } from "eslint-plugin-lit";
+import perfectionist from "eslint-plugin-perfectionist";
+import unusedImports from "eslint-plugin-unused-imports";
import { configs as wcConfigs } from "eslint-plugin-wc";
+import globals from "globals";
+import tseslint from "typescript-eslint";
const _filename = fileURLToPath(import.meta.url);
const _dirname = path.dirname(_filename);
@@ -31,6 +33,7 @@ export default tseslint.config(
{
plugins: {
"unused-imports": unusedImports,
+ perfectionist,
},
languageOptions: {
@@ -185,6 +188,29 @@ export default tseslint.config(
},
],
"no-use-before-define": "off",
+
+ "import/order": "off",
+ "perfectionist/sort-imports": [
+ "error",
+ {
+ type: "alphabetical",
+ fallbackSort: { type: "natural" },
+ order: "asc",
+ sortSideEffects: true,
+ groups: [
+ "type",
+ "style",
+ "side-effect-style",
+ "side-effect",
+ "builtin",
+ "external",
+ "internal",
+ ["parent", "sibling", "index"],
+ "object",
+ "unknown",
+ ],
+ },
+ ],
},
}
);
diff --git a/gallery/src/components/demo-black-white-row.ts b/gallery/src/components/demo-black-white-row.ts
index fd4fef13f6..68db026e4d 100644
--- a/gallery/src/components/demo-black-white-row.ts
+++ b/gallery/src/components/demo-black-white-row.ts
@@ -1,11 +1,14 @@
-import "@material/mwc-button/mwc-button";
import type { Button } from "@material/mwc-button";
import type { TemplateResult } from "lit";
+
+import "../../../src/components/ha-card";
+import "@material/mwc-button/mwc-button";
+
import { html, LitElement, css, nothing } from "lit";
import { customElement, property } from "lit/decorators";
+
import { applyThemesOnElement } from "../../../src/common/dom/apply_themes_on_element";
import { fireEvent } from "../../../src/common/dom/fire_event";
-import "../../../src/components/ha-card";
@customElement("demo-black-white-row")
class DemoBlackWhiteRow extends LitElement {
diff --git a/gallery/src/components/demo-card.ts b/gallery/src/components/demo-card.ts
index 584b32e32f..cff7cf6052 100644
--- a/gallery/src/components/demo-card.ts
+++ b/gallery/src/components/demo-card.ts
@@ -1,11 +1,13 @@
-import { load } from "js-yaml";
+import type { HuiCard } from "../../../src/panels/lovelace/cards/hui-card";
+import type { HomeAssistant } from "../../../src/types";
import type { PropertyValueMap } from "lit";
+
+import "../../../src/panels/lovelace/cards/hui-card";
+
+import { load } from "js-yaml";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import memoizeOne from "memoize-one";
-import "../../../src/panels/lovelace/cards/hui-card";
-import type { HuiCard } from "../../../src/panels/lovelace/cards/hui-card";
-import type { HomeAssistant } from "../../../src/types";
export interface DemoCardConfig {
heading: string;
diff --git a/gallery/src/components/demo-cards.ts b/gallery/src/components/demo-cards.ts
index 655b38a68a..a4d6723f48 100644
--- a/gallery/src/components/demo-cards.ts
+++ b/gallery/src/components/demo-cards.ts
@@ -1,12 +1,15 @@
-import { html, css, LitElement } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { applyThemesOnElement } from "../../../src/common/dom/apply_themes_on_element";
+import type { HomeAssistant } from "../../../src/types";
+import type { DemoCardConfig } from "./demo-card";
+
import "../../../src/components/ha-formfield";
import "../../../src/components/ha-switch";
-import type { HomeAssistant } from "../../../src/types";
-import "./demo-card";
-import type { DemoCardConfig } from "./demo-card";
import "../ha-demo-options";
+import "./demo-card";
+
+import { html, css, LitElement } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { applyThemesOnElement } from "../../../src/common/dom/apply_themes_on_element";
@customElement("demo-cards")
class DemoCards extends LitElement {
diff --git a/gallery/src/components/demo-more-info.ts b/gallery/src/components/demo-more-info.ts
index 0b6223531e..a0b286bb0d 100644
--- a/gallery/src/components/demo-more-info.ts
+++ b/gallery/src/components/demo-more-info.ts
@@ -1,10 +1,12 @@
-import { LitElement, css, html } from "lit";
-import { customElement, property } from "lit/decorators";
+import type { HomeAssistant } from "../../../src/types";
+
import "../../../src/components/ha-card";
import "../../../src/dialogs/more-info/more-info-content";
import "../../../src/state-summary/state-card-content";
import "../ha-demo-options";
-import type { HomeAssistant } from "../../../src/types";
+
+import { LitElement, css, html } from "lit";
+import { customElement, property } from "lit/decorators";
@customElement("demo-more-info")
class DemoMoreInfo extends LitElement {
diff --git a/gallery/src/components/demo-more-infos.ts b/gallery/src/components/demo-more-infos.ts
index a6191040a6..8d530c7918 100644
--- a/gallery/src/components/demo-more-infos.ts
+++ b/gallery/src/components/demo-more-infos.ts
@@ -1,12 +1,15 @@
-import { LitElement, css, html } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { applyThemesOnElement } from "../../../src/common/dom/apply_themes_on_element";
+import type { HomeAssistant } from "../../../src/types";
+
import "../../../src/components/ha-formfield";
import "../../../src/components/ha-switch";
-import type { HomeAssistant } from "../../../src/types";
import "../ha-demo-options";
import "./demo-more-info";
+import { LitElement, css, html } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { applyThemesOnElement } from "../../../src/common/dom/apply_themes_on_element";
+
@customElement("demo-more-infos")
class DemoMoreInfos extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/gallery/src/components/page-description.ts b/gallery/src/components/page-description.ts
index 9c98d9b37e..31541b9ec2 100644
--- a/gallery/src/components/page-description.ts
+++ b/gallery/src/components/page-description.ts
@@ -1,6 +1,7 @@
import { css, html, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import { until } from "lit/directives/until";
+
import { HaMarkdown } from "../../../src/components/ha-markdown";
import { PAGES } from "../../build/import-pages";
diff --git a/gallery/src/data/traces/types.ts b/gallery/src/data/traces/types.ts
index c06cea33e5..42486f23c6 100644
--- a/gallery/src/data/traces/types.ts
+++ b/gallery/src/data/traces/types.ts
@@ -1,5 +1,5 @@
-import type { AutomationTraceExtended } from "../../../../src/data/trace";
import type { LogbookEntry } from "../../../../src/data/logbook";
+import type { AutomationTraceExtended } from "../../../../src/data/trace";
export interface DemoTrace {
trace: AutomationTraceExtended;
diff --git a/gallery/src/ha-demo-options.ts b/gallery/src/ha-demo-options.ts
index f3565e7891..246ce7156a 100644
--- a/gallery/src/ha-demo-options.ts
+++ b/gallery/src/ha-demo-options.ts
@@ -1,11 +1,13 @@
-import "@material/mwc-drawer";
-import "@material/mwc-top-app-bar-fixed";
-import { html, css, LitElement } from "lit";
-import { customElement } from "lit/decorators";
import "../../src/components/ha-icon-button";
import "../../src/managers/notification-manager";
-import { haStyle } from "../../src/resources/styles";
import "./components/page-description";
+import "@material/mwc-drawer";
+import "@material/mwc-top-app-bar-fixed";
+
+import { html, css, LitElement } from "lit";
+import { customElement } from "lit/decorators";
+
+import { haStyle } from "../../src/resources/styles";
@customElement("ha-demo-options")
class HaDemoOptions extends LitElement {
diff --git a/gallery/src/ha-gallery.ts b/gallery/src/ha-gallery.ts
index d1043815a2..55adfaf64f 100644
--- a/gallery/src/ha-gallery.ts
+++ b/gallery/src/ha-gallery.ts
@@ -1,16 +1,19 @@
-import "@material/mwc-drawer";
-import "@material/mwc-top-app-bar-fixed";
-import { mdiMenu } from "@mdi/js";
import type { PropertyValues } from "lit";
-import { LitElement, css, html } from "lit";
-import { customElement, query, state } from "lit/decorators";
-import { dynamicElement } from "../../src/common/dom/dynamic-element-directive";
-import { HaExpansionPanel } from "../../src/components/ha-expansion-panel";
+
import "../../src/components/ha-icon-button";
import "../../src/managers/notification-manager";
+import "./components/page-description";
+import "@material/mwc-drawer";
+import "@material/mwc-top-app-bar-fixed";
+
+import { mdiMenu } from "@mdi/js";
+import { LitElement, css, html } from "lit";
+import { customElement, query, state } from "lit/decorators";
+
+import { dynamicElement } from "../../src/common/dom/dynamic-element-directive";
+import { HaExpansionPanel } from "../../src/components/ha-expansion-panel";
import { haStyle } from "../../src/resources/styles";
import { PAGES, SIDEBAR } from "../build/import-pages";
-import "./components/page-description";
const GITHUB_DEMO_URL =
"https://github.com/home-assistant/frontend/blob/dev/gallery/src/pages/";
diff --git a/gallery/src/pages/automation/describe-action.ts b/gallery/src/pages/automation/describe-action.ts
index e16cf3df79..d4ae3de1ab 100644
--- a/gallery/src/pages/automation/describe-action.ts
+++ b/gallery/src/pages/automation/describe-action.ts
@@ -1,13 +1,16 @@
+import type { Action } from "../../../../src/data/script";
+import type { HomeAssistant } from "../../../../src/types";
+
+import "../../../../src/components/ha-card";
+import "../../../../src/components/ha-yaml-editor";
+
import { dump } from "js-yaml";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
-import "../../../../src/components/ha-card";
-import "../../../../src/components/ha-yaml-editor";
-import type { Action } from "../../../../src/data/script";
+
import { describeAction } from "../../../../src/data/script_i18n";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import type { HomeAssistant } from "../../../../src/types";
const ENTITIES = [
getEntity("scene", "kitchen_morning", "scening", {
diff --git a/gallery/src/pages/automation/describe-condition.ts b/gallery/src/pages/automation/describe-condition.ts
index bf37309fdf..107ddc89ac 100644
--- a/gallery/src/pages/automation/describe-condition.ts
+++ b/gallery/src/pages/automation/describe-condition.ts
@@ -1,13 +1,16 @@
+import type { Condition } from "../../../../src/data/automation";
+import type { HomeAssistant } from "../../../../src/types";
+
+import "../../../../src/components/ha-card";
+import "../../../../src/components/ha-yaml-editor";
+
import { dump } from "js-yaml";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
-import "../../../../src/components/ha-card";
-import "../../../../src/components/ha-yaml-editor";
-import type { Condition } from "../../../../src/data/automation";
+
import { describeCondition } from "../../../../src/data/automation_i18n";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import type { HomeAssistant } from "../../../../src/types";
const ENTITIES = [
getEntity("light", "kitchen", "on", {
diff --git a/gallery/src/pages/automation/describe-trigger.ts b/gallery/src/pages/automation/describe-trigger.ts
index d02d1a265b..6b31cf964e 100644
--- a/gallery/src/pages/automation/describe-trigger.ts
+++ b/gallery/src/pages/automation/describe-trigger.ts
@@ -1,13 +1,16 @@
+import type { Trigger } from "../../../../src/data/automation";
+import type { HomeAssistant } from "../../../../src/types";
+
+import "../../../../src/components/ha-card";
+import "../../../../src/components/ha-yaml-editor";
+
import { dump } from "js-yaml";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
-import "../../../../src/components/ha-card";
-import "../../../../src/components/ha-yaml-editor";
-import type { Trigger } from "../../../../src/data/automation";
+
import { describeTrigger } from "../../../../src/data/automation_i18n";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import type { HomeAssistant } from "../../../../src/types";
const ENTITIES = [
getEntity("light", "kitchen", "on", {
diff --git a/gallery/src/pages/automation/editor-action.ts b/gallery/src/pages/automation/editor-action.ts
index cf40c4ce7c..b93067b7a1 100644
--- a/gallery/src/pages/automation/editor-action.ts
+++ b/gallery/src/pages/automation/editor-action.ts
@@ -1,29 +1,32 @@
+import type { Action } from "../../../../src/data/script";
+import type { HomeAssistant } from "../../../../src/types";
import type { TemplateResult } from "lit";
+
+import "../../../../src/panels/config/automation/action/ha-automation-action";
+import "../../components/demo-black-white-row";
+
import { LitElement, html, css } from "lit";
import { customElement, state } from "lit/decorators";
-import { provideHass } from "../../../../src/fake_data/provide_hass";
-import type { HomeAssistant } from "../../../../src/types";
-import "../../components/demo-black-white-row";
-import { mockEntityRegistry } from "../../../../demo/src/stubs/entity_registry";
-import { mockDeviceRegistry } from "../../../../demo/src/stubs/device_registry";
+
import { mockAreaRegistry } from "../../../../demo/src/stubs/area_registry";
+import { mockDeviceRegistry } from "../../../../demo/src/stubs/device_registry";
+import { mockEntityRegistry } from "../../../../demo/src/stubs/entity_registry";
import { mockHassioSupervisor } from "../../../../demo/src/stubs/hassio_supervisor";
-import "../../../../src/panels/config/automation/action/ha-automation-action";
+import { provideHass } from "../../../../src/fake_data/provide_hass";
import { HaChooseAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-choose";
+import { HaConditionAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-condition";
import { HaDelayAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-delay";
import { HaDeviceAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-device_id";
import { HaEventAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-event";
+import { HaIfAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-if";
+import { HaParallelAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-parallel";
+import { HaPlayMediaAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-play_media";
import { HaRepeatAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-repeat";
+import { HaSequenceAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-sequence";
import { HaServiceAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-service";
+import { HaStopAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-stop";
import { HaWaitForTriggerAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-wait_for_trigger";
import { HaWaitAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-wait_template";
-import type { Action } from "../../../../src/data/script";
-import { HaConditionAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-condition";
-import { HaSequenceAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-sequence";
-import { HaParallelAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-parallel";
-import { HaIfAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-if";
-import { HaStopAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-stop";
-import { HaPlayMediaAction } from "../../../../src/panels/config/automation/action/types/ha-automation-action-play_media";
const SCHEMAS: { name: string; actions: Action[] }[] = [
{ name: "Event", actions: [HaEventAction.defaultConfig] },
diff --git a/gallery/src/pages/automation/editor-condition.ts b/gallery/src/pages/automation/editor-condition.ts
index 883ff642ce..d8d0358eea 100644
--- a/gallery/src/pages/automation/editor-condition.ts
+++ b/gallery/src/pages/automation/editor-condition.ts
@@ -1,26 +1,29 @@
+import type { ConditionWithShorthand } from "../../../../src/data/automation";
+import type { HomeAssistant } from "../../../../src/types";
import type { TemplateResult } from "lit";
+
+import "../../../../src/panels/config/automation/condition/ha-automation-condition";
+import "../../components/demo-black-white-row";
+
import { LitElement, html, css } from "lit";
import { customElement, state } from "lit/decorators";
-import { provideHass } from "../../../../src/fake_data/provide_hass";
-import type { HomeAssistant } from "../../../../src/types";
-import "../../components/demo-black-white-row";
-import { mockEntityRegistry } from "../../../../demo/src/stubs/entity_registry";
-import { mockDeviceRegistry } from "../../../../demo/src/stubs/device_registry";
+
import { mockAreaRegistry } from "../../../../demo/src/stubs/area_registry";
+import { mockDeviceRegistry } from "../../../../demo/src/stubs/device_registry";
+import { mockEntityRegistry } from "../../../../demo/src/stubs/entity_registry";
import { mockHassioSupervisor } from "../../../../demo/src/stubs/hassio_supervisor";
-import type { ConditionWithShorthand } from "../../../../src/data/automation";
-import "../../../../src/panels/config/automation/condition/ha-automation-condition";
+import { provideHass } from "../../../../src/fake_data/provide_hass";
+import { HaAndCondition } from "../../../../src/panels/config/automation/condition/types/ha-automation-condition-and";
import { HaDeviceCondition } from "../../../../src/panels/config/automation/condition/types/ha-automation-condition-device";
+import { HaNotCondition } from "../../../../src/panels/config/automation/condition/types/ha-automation-condition-not";
import HaNumericStateCondition from "../../../../src/panels/config/automation/condition/types/ha-automation-condition-numeric_state";
+import { HaOrCondition } from "../../../../src/panels/config/automation/condition/types/ha-automation-condition-or";
import { HaStateCondition } from "../../../../src/panels/config/automation/condition/types/ha-automation-condition-state";
import { HaSunCondition } from "../../../../src/panels/config/automation/condition/types/ha-automation-condition-sun";
import { HaTemplateCondition } from "../../../../src/panels/config/automation/condition/types/ha-automation-condition-template";
import { HaTimeCondition } from "../../../../src/panels/config/automation/condition/types/ha-automation-condition-time";
import { HaTriggerCondition } from "../../../../src/panels/config/automation/condition/types/ha-automation-condition-trigger";
import { HaZoneCondition } from "../../../../src/panels/config/automation/condition/types/ha-automation-condition-zone";
-import { HaAndCondition } from "../../../../src/panels/config/automation/condition/types/ha-automation-condition-and";
-import { HaOrCondition } from "../../../../src/panels/config/automation/condition/types/ha-automation-condition-or";
-import { HaNotCondition } from "../../../../src/panels/config/automation/condition/types/ha-automation-condition-not";
const SCHEMAS: { name: string; conditions: ConditionWithShorthand[] }[] = [
{
diff --git a/gallery/src/pages/automation/editor-trigger.ts b/gallery/src/pages/automation/editor-trigger.ts
index 2feb661a30..083ba0737c 100644
--- a/gallery/src/pages/automation/editor-trigger.ts
+++ b/gallery/src/pages/automation/editor-trigger.ts
@@ -1,35 +1,38 @@
+import type { Trigger } from "../../../../src/data/automation";
+import type { HomeAssistant } from "../../../../src/types";
import type { TemplateResult } from "lit";
+
+import "../../../../src/panels/config/automation/trigger/ha-automation-trigger";
+import "../../components/demo-black-white-row";
+
import { LitElement, html, css } from "lit";
import { customElement, state } from "lit/decorators";
-import { provideHass } from "../../../../src/fake_data/provide_hass";
-import type { HomeAssistant } from "../../../../src/types";
-import "../../components/demo-black-white-row";
-import { mockEntityRegistry } from "../../../../demo/src/stubs/entity_registry";
-import { mockDeviceRegistry } from "../../../../demo/src/stubs/device_registry";
+
import { mockAreaRegistry } from "../../../../demo/src/stubs/area_registry";
-import { mockHassioSupervisor } from "../../../../demo/src/stubs/hassio_supervisor";
-import { mockConfig } from "../../../../demo/src/stubs/config";
-import { mockTags } from "../../../../demo/src/stubs/tags";
import { mockAuth } from "../../../../demo/src/stubs/auth";
-import type { Trigger } from "../../../../src/data/automation";
-import { HaGeolocationTrigger } from "../../../../src/panels/config/automation/trigger/types/ha-automation-trigger-geo_location";
+import { mockConfig } from "../../../../demo/src/stubs/config";
+import { mockDeviceRegistry } from "../../../../demo/src/stubs/device_registry";
+import { mockEntityRegistry } from "../../../../demo/src/stubs/entity_registry";
+import { mockHassioSupervisor } from "../../../../demo/src/stubs/hassio_supervisor";
+import { mockTags } from "../../../../demo/src/stubs/tags";
+import { provideHass } from "../../../../src/fake_data/provide_hass";
+import { HaConversationTrigger } from "../../../../src/panels/config/automation/trigger/types/ha-automation-trigger-conversation";
+import { HaDeviceTrigger } from "../../../../src/panels/config/automation/trigger/types/ha-automation-trigger-device";
import { HaEventTrigger } from "../../../../src/panels/config/automation/trigger/types/ha-automation-trigger-event";
+import { HaGeolocationTrigger } from "../../../../src/panels/config/automation/trigger/types/ha-automation-trigger-geo_location";
import { HaHassTrigger } from "../../../../src/panels/config/automation/trigger/types/ha-automation-trigger-homeassistant";
+import { HaTriggerList } from "../../../../src/panels/config/automation/trigger/types/ha-automation-trigger-list";
+import { HaMQTTTrigger } from "../../../../src/panels/config/automation/trigger/types/ha-automation-trigger-mqtt";
import { HaNumericStateTrigger } from "../../../../src/panels/config/automation/trigger/types/ha-automation-trigger-numeric_state";
+import { HaPersistentNotificationTrigger } from "../../../../src/panels/config/automation/trigger/types/ha-automation-trigger-persistent_notification";
+import { HaStateTrigger } from "../../../../src/panels/config/automation/trigger/types/ha-automation-trigger-state";
import { HaSunTrigger } from "../../../../src/panels/config/automation/trigger/types/ha-automation-trigger-sun";
import { HaTagTrigger } from "../../../../src/panels/config/automation/trigger/types/ha-automation-trigger-tag";
import { HaTemplateTrigger } from "../../../../src/panels/config/automation/trigger/types/ha-automation-trigger-template";
import { HaTimeTrigger } from "../../../../src/panels/config/automation/trigger/types/ha-automation-trigger-time";
import { HaTimePatternTrigger } from "../../../../src/panels/config/automation/trigger/types/ha-automation-trigger-time_pattern";
import { HaWebhookTrigger } from "../../../../src/panels/config/automation/trigger/types/ha-automation-trigger-webhook";
-import { HaPersistentNotificationTrigger } from "../../../../src/panels/config/automation/trigger/types/ha-automation-trigger-persistent_notification";
import { HaZoneTrigger } from "../../../../src/panels/config/automation/trigger/types/ha-automation-trigger-zone";
-import { HaDeviceTrigger } from "../../../../src/panels/config/automation/trigger/types/ha-automation-trigger-device";
-import { HaStateTrigger } from "../../../../src/panels/config/automation/trigger/types/ha-automation-trigger-state";
-import { HaMQTTTrigger } from "../../../../src/panels/config/automation/trigger/types/ha-automation-trigger-mqtt";
-import "../../../../src/panels/config/automation/trigger/ha-automation-trigger";
-import { HaConversationTrigger } from "../../../../src/panels/config/automation/trigger/types/ha-automation-trigger-conversation";
-import { HaTriggerList } from "../../../../src/panels/config/automation/trigger/types/ha-automation-trigger-list";
const SCHEMAS: { name: string; triggers: Trigger[] }[] = [
{
diff --git a/gallery/src/pages/automation/trace-timeline.ts b/gallery/src/pages/automation/trace-timeline.ts
index 87cf087da8..9c9f1cfaed 100644
--- a/gallery/src/pages/automation/trace-timeline.ts
+++ b/gallery/src/pages/automation/trace-timeline.ts
@@ -1,13 +1,16 @@
/* eslint-disable lit/no-template-arrow */
+import type { HomeAssistant } from "../../../../src/types";
+import type { DemoTrace } from "../../data/traces/types";
+
+import "../../../../src/components/ha-card";
+import "../../../../src/components/trace/hat-trace-timeline";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
-import "../../../../src/components/ha-card";
-import "../../../../src/components/trace/hat-trace-timeline";
+
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import type { HomeAssistant } from "../../../../src/types";
import { mockDemoTrace } from "../../data/traces/mock-demo-trace";
-import type { DemoTrace } from "../../data/traces/types";
const traces: DemoTrace[] = [
mockDemoTrace({ state: "running" }),
diff --git a/gallery/src/pages/automation/trace.ts b/gallery/src/pages/automation/trace.ts
index 4952a72455..12b3deba03 100644
--- a/gallery/src/pages/automation/trace.ts
+++ b/gallery/src/pages/automation/trace.ts
@@ -1,15 +1,18 @@
/* eslint-disable lit/no-template-arrow */
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
+import type { HomeAssistant } from "../../../../src/types";
+import type { DemoTrace } from "../../data/traces/types";
+
import "../../../../src/components/ha-card";
import "../../../../src/components/trace/hat-script-graph";
import "../../../../src/components/trace/hat-trace-timeline";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import type { HomeAssistant } from "../../../../src/types";
import { basicTrace } from "../../data/traces/basic_trace";
import { motionLightTrace } from "../../data/traces/motion-light-trace";
-import type { DemoTrace } from "../../data/traces/types";
const traces: DemoTrace[] = [basicTrace, motionLightTrace];
diff --git a/gallery/src/pages/components/ha-alert.ts b/gallery/src/pages/components/ha-alert.ts
index ee7cce600d..729a7e32b8 100644
--- a/gallery/src/pages/components/ha-alert.ts
+++ b/gallery/src/pages/components/ha-alert.ts
@@ -1,11 +1,14 @@
-import "@material/mwc-button/mwc-button";
import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement } from "lit/decorators";
-import { applyThemesOnElement } from "../../../../src/common/dom/apply_themes_on_element";
+
import "../../../../src/components/ha-alert";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-logo-svg";
+import "@material/mwc-button/mwc-button";
+
+import { css, html, LitElement } from "lit";
+import { customElement } from "lit/decorators";
+
+import { applyThemesOnElement } from "../../../../src/common/dom/apply_themes_on_element";
const alerts: {
title?: string;
diff --git a/gallery/src/pages/components/ha-bar.ts b/gallery/src/pages/components/ha-bar.ts
index 510f322b13..5f121c60d7 100644
--- a/gallery/src/pages/components/ha-bar.ts
+++ b/gallery/src/pages/components/ha-bar.ts
@@ -1,9 +1,11 @@
import type { TemplateResult } from "lit";
+
+import "../../../../src/components/ha-bar";
+import "../../../../src/components/ha-card";
+
import { html, css, LitElement } from "lit";
import { customElement } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
-import "../../../../src/components/ha-bar";
-import "../../../../src/components/ha-card";
const bars: {
min?: number;
diff --git a/gallery/src/pages/components/ha-chips.ts b/gallery/src/pages/components/ha-chips.ts
index e00913fc86..17a4cea225 100644
--- a/gallery/src/pages/components/ha-chips.ts
+++ b/gallery/src/pages/components/ha-chips.ts
@@ -1,12 +1,15 @@
import type { TemplateResult } from "lit";
+
+import "../../../../src/components/chips/ha-assist-chip";
+import "../../../../src/components/chips/ha-chip-set";
+import "../../../../src/components/chips/ha-filter-chip";
+import "../../../../src/components/chips/ha-input-chip";
+import "../../../../src/components/ha-card";
+import "../../../../src/components/ha-svg-icon";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement } from "lit/decorators";
-import "../../../../src/components/ha-card";
-import "../../../../src/components/chips/ha-chip-set";
-import "../../../../src/components/chips/ha-assist-chip";
-import "../../../../src/components/chips/ha-input-chip";
-import "../../../../src/components/chips/ha-filter-chip";
-import "../../../../src/components/ha-svg-icon";
+
import { mdiHomeAssistant } from "../../../../src/resources/home-assistant-logo-svg";
const chips: {
diff --git a/gallery/src/pages/components/ha-control-button.ts b/gallery/src/pages/components/ha-control-button.ts
index 96f10d9625..ad2ee9e1cf 100644
--- a/gallery/src/pages/components/ha-control-button.ts
+++ b/gallery/src/pages/components/ha-control-button.ts
@@ -1,18 +1,20 @@
+import type { TemplateResult } from "lit";
+
+import "../../../../src/components/ha-card";
+import "../../../../src/components/ha-control-button";
+import "../../../../src/components/ha-control-button-group";
+import "../../../../src/components/ha-svg-icon";
+
import {
mdiFanSpeed1,
mdiFanSpeed2,
mdiFanSpeed3,
mdiLightbulb,
} from "@mdi/js";
-import type { TemplateResult } from "lit";
import { css, html, LitElement } from "lit";
import { customElement } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
import { repeat } from "lit/directives/repeat";
-import "../../../../src/components/ha-control-button";
-import "../../../../src/components/ha-card";
-import "../../../../src/components/ha-svg-icon";
-import "../../../../src/components/ha-control-button-group";
interface Button {
label: string;
diff --git a/gallery/src/pages/components/ha-control-circular-slider.ts b/gallery/src/pages/components/ha-control-circular-slider.ts
index bb61e48bc9..4ee42bdfda 100644
--- a/gallery/src/pages/components/ha-control-circular-slider.ts
+++ b/gallery/src/pages/components/ha-control-circular-slider.ts
@@ -1,10 +1,12 @@
import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, state } from "lit/decorators";
+
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-control-circular-slider";
import "../../../../src/components/ha-slider";
+import { css, html, LitElement } from "lit";
+import { customElement, state } from "lit/decorators";
+
@customElement("demo-components-ha-control-circular-slider")
export class DemoHaCircularSlider extends LitElement {
@state()
diff --git a/gallery/src/pages/components/ha-control-number-buttons.ts b/gallery/src/pages/components/ha-control-number-buttons.ts
index 29496fc689..219177f999 100644
--- a/gallery/src/pages/components/ha-control-number-buttons.ts
+++ b/gallery/src/pages/components/ha-control-number-buttons.ts
@@ -1,10 +1,12 @@
import type { TemplateResult } from "lit";
-import { LitElement, css, html } from "lit";
-import { customElement, state } from "lit/decorators";
+
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-control-number-buttons";
-import { repeat } from "lit/directives/repeat";
+
+import { LitElement, css, html } from "lit";
+import { customElement, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
+import { repeat } from "lit/directives/repeat";
const buttons: {
id: string;
diff --git a/gallery/src/pages/components/ha-control-select-menu.ts b/gallery/src/pages/components/ha-control-select-menu.ts
index 638f682b0c..404ee31fde 100644
--- a/gallery/src/pages/components/ha-control-select-menu.ts
+++ b/gallery/src/pages/components/ha-control-select-menu.ts
@@ -1,13 +1,15 @@
-import { mdiFan, mdiFanSpeed1, mdiFanSpeed2, mdiFanSpeed3 } from "@mdi/js";
import type { TemplateResult } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement } from "lit/decorators";
-import { repeat } from "lit/directives/repeat";
+
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-control-select-menu";
import "../../../../src/components/ha-list-item";
import "../../../../src/components/ha-svg-icon";
+import { mdiFan, mdiFanSpeed1, mdiFanSpeed2, mdiFanSpeed3 } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement } from "lit/decorators";
+import { repeat } from "lit/directives/repeat";
+
interface SelectMenuOptions {
label: string;
value: string;
diff --git a/gallery/src/pages/components/ha-control-select.ts b/gallery/src/pages/components/ha-control-select.ts
index f3887d0144..029e60a662 100644
--- a/gallery/src/pages/components/ha-control-select.ts
+++ b/gallery/src/pages/components/ha-control-select.ts
@@ -1,12 +1,14 @@
-import { mdiFanOff, mdiFanSpeed1, mdiFanSpeed2, mdiFanSpeed3 } from "@mdi/js";
+import type { ControlSelectOption } from "../../../../src/components/ha-control-select";
import type { TemplateResult } from "lit";
+
+import "../../../../src/components/ha-card";
+import "../../../../src/components/ha-control-select";
+
+import { mdiFanOff, mdiFanSpeed1, mdiFanSpeed2, mdiFanSpeed3 } from "@mdi/js";
import { css, html, LitElement } from "lit";
import { customElement, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
import { repeat } from "lit/directives/repeat";
-import "../../../../src/components/ha-card";
-import "../../../../src/components/ha-control-select";
-import type { ControlSelectOption } from "../../../../src/components/ha-control-select";
const fullOptions: ControlSelectOption[] = [
{
diff --git a/gallery/src/pages/components/ha-control-slider.ts b/gallery/src/pages/components/ha-control-slider.ts
index b4af37cb67..e930fc7280 100644
--- a/gallery/src/pages/components/ha-control-slider.ts
+++ b/gallery/src/pages/components/ha-control-slider.ts
@@ -1,10 +1,12 @@
import type { TemplateResult } from "lit";
+
+import "../../../../src/components/ha-card";
+import "../../../../src/components/ha-control-slider";
+
import { css, html, LitElement } from "lit";
import { customElement, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
import { repeat } from "lit/directives/repeat";
-import "../../../../src/components/ha-control-slider";
-import "../../../../src/components/ha-card";
const sliders: {
id: string;
diff --git a/gallery/src/pages/components/ha-control-switch.ts b/gallery/src/pages/components/ha-control-switch.ts
index 99ec957e9b..c9d068af6f 100644
--- a/gallery/src/pages/components/ha-control-switch.ts
+++ b/gallery/src/pages/components/ha-control-switch.ts
@@ -1,16 +1,18 @@
+import type { TemplateResult } from "lit";
+
+import "../../../../src/components/ha-card";
+import "../../../../src/components/ha-control-switch";
+
import {
mdiGarage,
mdiGarageOpen,
mdiLightbulb,
mdiLightbulbOff,
} from "@mdi/js";
-import type { TemplateResult } from "lit";
import { css, html, LitElement } from "lit";
import { customElement, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
import { repeat } from "lit/directives/repeat";
-import "../../../../src/components/ha-control-switch";
-import "../../../../src/components/ha-card";
const switches: {
id: string;
diff --git a/gallery/src/pages/components/ha-expansion-panel.ts b/gallery/src/pages/components/ha-expansion-panel.ts
index 56eb284aa2..52a64c03d9 100644
--- a/gallery/src/pages/components/ha-expansion-panel.ts
+++ b/gallery/src/pages/components/ha-expansion-panel.ts
@@ -1,12 +1,15 @@
-import { mdiLightbulbOn, mdiPacMan } from "@mdi/js";
import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement } from "lit/decorators";
+
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-expansion-panel";
import "../../../../src/components/ha-icon-button";
import "../../../../src/components/ha-markdown";
import "../../components/demo-black-white-row";
+
+import { mdiLightbulbOn, mdiPacMan } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement } from "lit/decorators";
+
import { LONG_TEXT } from "../../data/text";
const SHORT_TEXT = LONG_TEXT.substring(0, 113);
diff --git a/gallery/src/pages/components/ha-faded.ts b/gallery/src/pages/components/ha-faded.ts
index 0664437e30..debb42433d 100644
--- a/gallery/src/pages/components/ha-faded.ts
+++ b/gallery/src/pages/components/ha-faded.ts
@@ -1,9 +1,12 @@
import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement } from "lit/decorators";
+
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-faded";
import "../../../../src/components/ha-markdown";
+
+import { css, html, LitElement } from "lit";
+import { customElement } from "lit/decorators";
+
import { LONG_TEXT } from "../../data/text";
const SMALL_TEXT = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
diff --git a/gallery/src/pages/components/ha-form.ts b/gallery/src/pages/components/ha-form.ts
index b890f571cf..e0303eef03 100644
--- a/gallery/src/pages/components/ha-form.ts
+++ b/gallery/src/pages/components/ha-form.ts
@@ -1,22 +1,25 @@
/* eslint-disable lit/no-template-arrow */
-import "@material/mwc-button";
+import type { HaFormSchema } from "../../../../src/components/ha-form/types";
+import type { AreaRegistryEntry } from "../../../../src/data/area_registry";
+import type { DeviceRegistryEntry } from "../../../../src/data/device_registry";
+import type { HomeAssistant } from "../../../../src/types";
import type { TemplateResult } from "lit";
+
+import "../../../../src/components/ha-form/ha-form";
+import "../../components/demo-black-white-row";
+import "@material/mwc-button";
+
import { html, LitElement } from "lit";
import { customElement, state } from "lit/decorators";
+
import { mockAreaRegistry } from "../../../../demo/src/stubs/area_registry";
import { mockConfigEntries } from "../../../../demo/src/stubs/config_entries";
import { mockDeviceRegistry } from "../../../../demo/src/stubs/device_registry";
import { mockEntityRegistry } from "../../../../demo/src/stubs/entity_registry";
import { mockHassioSupervisor } from "../../../../demo/src/stubs/hassio_supervisor";
import { computeInitialHaFormData } from "../../../../src/components/ha-form/compute-initial-ha-form-data";
-import "../../../../src/components/ha-form/ha-form";
-import type { HaFormSchema } from "../../../../src/components/ha-form/types";
-import type { AreaRegistryEntry } from "../../../../src/data/area_registry";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import type { HomeAssistant } from "../../../../src/types";
-import "../../components/demo-black-white-row";
-import type { DeviceRegistryEntry } from "../../../../src/data/device_registry";
const ENTITIES = [
getEntity("alarm_control_panel", "alarm", "disarmed", {
diff --git a/gallery/src/pages/components/ha-hs-color-picker.ts b/gallery/src/pages/components/ha-hs-color-picker.ts
index c97ec7c8df..5abfba00f6 100644
--- a/gallery/src/pages/components/ha-hs-color-picker.ts
+++ b/gallery/src/pages/components/ha-hs-color-picker.ts
@@ -1,11 +1,12 @@
-import "../../../../src/components/ha-hs-color-picker";
-
import type { TemplateResult } from "lit";
+
+import "../../../../src/components/ha-card";
+import "../../../../src/components/ha-hs-color-picker";
+import "../../../../src/components/ha-slider";
+
import { css, html, LitElement } from "lit";
import { customElement, state } from "lit/decorators";
-import "../../../../src/components/ha-card";
-import "../../../../src/components/ha-slider";
import { hsv2rgb } from "../../../../src/common/color/convert-color";
@customElement("demo-components-ha-hs-color-picker")
diff --git a/gallery/src/pages/components/ha-label-badge.ts b/gallery/src/pages/components/ha-label-badge.ts
index 30fdf9e6a6..72f80da82f 100644
--- a/gallery/src/pages/components/ha-label-badge.ts
+++ b/gallery/src/pages/components/ha-label-badge.ts
@@ -1,8 +1,10 @@
import type { TemplateResult } from "lit";
+
+import "../../../../src/components/ha-card";
+import "../../../../src/components/ha-label-badge";
+
import { html, css, LitElement } from "lit";
import { customElement } from "lit/decorators";
-import "../../../../src/components/ha-label-badge";
-import "../../../../src/components/ha-card";
const colors = ["#03a9f4", "#ffa600", "#43a047"];
diff --git a/gallery/src/pages/components/ha-select-box.ts b/gallery/src/pages/components/ha-select-box.ts
index ed2d182227..a473830320 100644
--- a/gallery/src/pages/components/ha-select-box.ts
+++ b/gallery/src/pages/components/ha-select-box.ts
@@ -1,10 +1,12 @@
+import type { SelectBoxOption } from "../../../../src/components/ha-select-box";
import type { TemplateResult } from "lit";
+
+import "../../../../src/components/ha-card";
+import "../../../../src/components/ha-select-box";
+
import { css, html, LitElement } from "lit";
import { customElement, state } from "lit/decorators";
import { repeat } from "lit/directives/repeat";
-import "../../../../src/components/ha-card";
-import "../../../../src/components/ha-select-box";
-import type { SelectBoxOption } from "../../../../src/components/ha-select-box";
const basicOptions: SelectBoxOption[] = [
{
diff --git a/gallery/src/pages/components/ha-selector.ts b/gallery/src/pages/components/ha-selector.ts
index 5e0e6d8fe0..ac98dbf6f1 100644
--- a/gallery/src/pages/components/ha-selector.ts
+++ b/gallery/src/pages/components/ha-selector.ts
@@ -1,27 +1,30 @@
-import "@material/mwc-button";
+import type { AreaRegistryEntry } from "../../../../src/data/area_registry";
+import type { BlueprintInput } from "../../../../src/data/blueprint";
+import type { DeviceRegistryEntry } from "../../../../src/data/device_registry";
+import type { FloorRegistryEntry } from "../../../../src/data/floor_registry";
+import type { LabelRegistryEntry } from "../../../../src/data/label_registry";
+import type { ProvideHassElement } from "../../../../src/mixins/provide-hass-lit-mixin";
+import type { HomeAssistant } from "../../../../src/types";
import type { TemplateResult } from "lit";
+
+import "../../../../src/components/ha-selector/ha-selector";
+import "../../../../src/components/ha-settings-row";
+import "../../components/demo-black-white-row";
+import "@material/mwc-button";
+
import { css, html, LitElement } from "lit";
import { customElement, state } from "lit/decorators";
+
import { mockAreaRegistry } from "../../../../demo/src/stubs/area_registry";
import { mockConfigEntries } from "../../../../demo/src/stubs/config_entries";
import { mockDeviceRegistry } from "../../../../demo/src/stubs/device_registry";
import { mockEntityRegistry } from "../../../../demo/src/stubs/entity_registry";
+import { mockFloorRegistry } from "../../../../demo/src/stubs/floor_registry";
import { mockHassioSupervisor } from "../../../../demo/src/stubs/hassio_supervisor";
-import "../../../../src/components/ha-selector/ha-selector";
-import "../../../../src/components/ha-settings-row";
-import type { AreaRegistryEntry } from "../../../../src/data/area_registry";
-import type { BlueprintInput } from "../../../../src/data/blueprint";
+import { mockLabelRegistry } from "../../../../demo/src/stubs/label_registry";
import { showDialog } from "../../../../src/dialogs/make-dialog-manager";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import type { ProvideHassElement } from "../../../../src/mixins/provide-hass-lit-mixin";
-import type { HomeAssistant } from "../../../../src/types";
-import "../../components/demo-black-white-row";
-import type { FloorRegistryEntry } from "../../../../src/data/floor_registry";
-import type { LabelRegistryEntry } from "../../../../src/data/label_registry";
-import { mockFloorRegistry } from "../../../../demo/src/stubs/floor_registry";
-import { mockLabelRegistry } from "../../../../demo/src/stubs/label_registry";
-import type { DeviceRegistryEntry } from "../../../../src/data/device_registry";
const ENTITIES = [
getEntity("alarm_control_panel", "alarm", "disarmed", {
diff --git a/gallery/src/pages/components/ha-spinner.ts b/gallery/src/pages/components/ha-spinner.ts
index d84b13f399..055fe9e442 100644
--- a/gallery/src/pages/components/ha-spinner.ts
+++ b/gallery/src/pages/components/ha-spinner.ts
@@ -1,10 +1,12 @@
+import type { HomeAssistant } from "../../../../src/types";
import type { TemplateResult } from "lit";
-import { html, css, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
+
import "../../../../src/components/ha-bar";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-spinner";
-import type { HomeAssistant } from "../../../../src/types";
+
+import { html, css, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
@customElement("demo-components-ha-spinner")
export class DemoHaSpinner extends LitElement {
diff --git a/gallery/src/pages/components/ha-tip.ts b/gallery/src/pages/components/ha-tip.ts
index 7e3a008a0c..53c1370ce5 100644
--- a/gallery/src/pages/components/ha-tip.ts
+++ b/gallery/src/pages/components/ha-tip.ts
@@ -1,8 +1,11 @@
import type { TemplateResult } from "lit";
+
+import "../../../../src/components/ha-card";
+import "../../../../src/components/ha-tip";
+
import { html, css, LitElement } from "lit";
import { customElement } from "lit/decorators";
-import "../../../../src/components/ha-tip";
-import "../../../../src/components/ha-card";
+
import { applyThemesOnElement } from "../../../../src/common/dom/apply_themes_on_element";
import { provideHass } from "../../../../src/fake_data/provide_hass";
diff --git a/gallery/src/pages/components/ha-tooltip.ts b/gallery/src/pages/components/ha-tooltip.ts
index 7984df36b8..1de1e1b6dc 100644
--- a/gallery/src/pages/components/ha-tooltip.ts
+++ b/gallery/src/pages/components/ha-tooltip.ts
@@ -1,2 +1,2 @@
-import "../../../../src/components/ha-tooltip";
import "../../../../src/components/ha-button";
+import "../../../../src/components/ha-tooltip";
diff --git a/gallery/src/pages/date-time/date-time-numeric.ts b/gallery/src/pages/date-time/date-time-numeric.ts
index a1ead031b8..38fd154ea0 100644
--- a/gallery/src/pages/date-time/date-time-numeric.ts
+++ b/gallery/src/pages/date-time/date-time-numeric.ts
@@ -1,10 +1,13 @@
-import "@material/mwc-list/mwc-list";
-import { LitElement, css, html } from "lit";
-import { customElement, state } from "lit/decorators";
-import { formatDateTimeNumeric } from "../../../../src/common/datetime/format_date_time";
+import type { FrontendLocaleData } from "../../../../src/data/translation";
+
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-control-select";
-import type { FrontendLocaleData } from "../../../../src/data/translation";
+import "@material/mwc-list/mwc-list";
+
+import { LitElement, css, html } from "lit";
+import { customElement, state } from "lit/decorators";
+
+import { formatDateTimeNumeric } from "../../../../src/common/datetime/format_date_time";
import {
DateFormat,
FirstWeekday,
diff --git a/gallery/src/pages/date-time/date-time-seconds.ts b/gallery/src/pages/date-time/date-time-seconds.ts
index 0ebb94d07c..ec55c41012 100644
--- a/gallery/src/pages/date-time/date-time-seconds.ts
+++ b/gallery/src/pages/date-time/date-time-seconds.ts
@@ -1,10 +1,13 @@
-import "@material/mwc-list/mwc-list";
-import { LitElement, css, html } from "lit";
-import { customElement, state } from "lit/decorators";
-import { formatDateTimeWithSeconds } from "../../../../src/common/datetime/format_date_time";
+import type { FrontendLocaleData } from "../../../../src/data/translation";
+
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-control-select";
-import type { FrontendLocaleData } from "../../../../src/data/translation";
+import "@material/mwc-list/mwc-list";
+
+import { LitElement, css, html } from "lit";
+import { customElement, state } from "lit/decorators";
+
+import { formatDateTimeWithSeconds } from "../../../../src/common/datetime/format_date_time";
import {
DateFormat,
FirstWeekday,
diff --git a/gallery/src/pages/date-time/date-time-short-year.ts b/gallery/src/pages/date-time/date-time-short-year.ts
index 3c0e5b651b..bf9f1bce51 100644
--- a/gallery/src/pages/date-time/date-time-short-year.ts
+++ b/gallery/src/pages/date-time/date-time-short-year.ts
@@ -1,10 +1,13 @@
-import "@material/mwc-list/mwc-list";
-import { LitElement, css, html } from "lit";
-import { customElement, state } from "lit/decorators";
-import { formatShortDateTimeWithYear } from "../../../../src/common/datetime/format_date_time";
+import type { FrontendLocaleData } from "../../../../src/data/translation";
+
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-control-select";
-import type { FrontendLocaleData } from "../../../../src/data/translation";
+import "@material/mwc-list/mwc-list";
+
+import { LitElement, css, html } from "lit";
+import { customElement, state } from "lit/decorators";
+
+import { formatShortDateTimeWithYear } from "../../../../src/common/datetime/format_date_time";
import {
DateFormat,
FirstWeekday,
diff --git a/gallery/src/pages/date-time/date-time-short.ts b/gallery/src/pages/date-time/date-time-short.ts
index 9d22f9b3de..eb49143dca 100644
--- a/gallery/src/pages/date-time/date-time-short.ts
+++ b/gallery/src/pages/date-time/date-time-short.ts
@@ -1,10 +1,13 @@
-import "@material/mwc-list/mwc-list";
-import { LitElement, css, html } from "lit";
-import { customElement, state } from "lit/decorators";
-import { formatShortDateTime } from "../../../../src/common/datetime/format_date_time";
+import type { FrontendLocaleData } from "../../../../src/data/translation";
+
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-control-select";
-import type { FrontendLocaleData } from "../../../../src/data/translation";
+import "@material/mwc-list/mwc-list";
+
+import { LitElement, css, html } from "lit";
+import { customElement, state } from "lit/decorators";
+
+import { formatShortDateTime } from "../../../../src/common/datetime/format_date_time";
import {
DateFormat,
FirstWeekday,
diff --git a/gallery/src/pages/date-time/date-time.ts b/gallery/src/pages/date-time/date-time.ts
index d75c5d2459..ba121f2c34 100644
--- a/gallery/src/pages/date-time/date-time.ts
+++ b/gallery/src/pages/date-time/date-time.ts
@@ -1,10 +1,13 @@
-import "@material/mwc-list/mwc-list";
-import { LitElement, css, html } from "lit";
-import { customElement, state } from "lit/decorators";
-import { formatDateTime } from "../../../../src/common/datetime/format_date_time";
+import type { FrontendLocaleData } from "../../../../src/data/translation";
+
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-control-select";
-import type { FrontendLocaleData } from "../../../../src/data/translation";
+import "@material/mwc-list/mwc-list";
+
+import { LitElement, css, html } from "lit";
+import { customElement, state } from "lit/decorators";
+
+import { formatDateTime } from "../../../../src/common/datetime/format_date_time";
import {
DateFormat,
FirstWeekday,
diff --git a/gallery/src/pages/date-time/date.ts b/gallery/src/pages/date-time/date.ts
index dd115bf25d..29f80ef83d 100644
--- a/gallery/src/pages/date-time/date.ts
+++ b/gallery/src/pages/date-time/date.ts
@@ -1,9 +1,12 @@
+import type { FrontendLocaleData } from "../../../../src/data/translation";
+
+import "../../../../src/components/ha-card";
import "@material/mwc-list/mwc-list";
+
import { css, html, LitElement } from "lit";
import { customElement } from "lit/decorators";
+
import { formatDateNumeric } from "../../../../src/common/datetime/format_date";
-import "../../../../src/components/ha-card";
-import type { FrontendLocaleData } from "../../../../src/data/translation";
import {
DateFormat,
FirstWeekday,
diff --git a/gallery/src/pages/date-time/time-seconds.ts b/gallery/src/pages/date-time/time-seconds.ts
index a00c72a939..ad88c2b93f 100644
--- a/gallery/src/pages/date-time/time-seconds.ts
+++ b/gallery/src/pages/date-time/time-seconds.ts
@@ -1,10 +1,13 @@
-import "@material/mwc-list/mwc-list";
-import { LitElement, css, html } from "lit";
-import { customElement, state } from "lit/decorators";
-import { formatTimeWithSeconds } from "../../../../src/common/datetime/format_time";
+import type { FrontendLocaleData } from "../../../../src/data/translation";
+
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-control-select";
-import type { FrontendLocaleData } from "../../../../src/data/translation";
+import "@material/mwc-list/mwc-list";
+
+import { LitElement, css, html } from "lit";
+import { customElement, state } from "lit/decorators";
+
+import { formatTimeWithSeconds } from "../../../../src/common/datetime/format_time";
import {
DateFormat,
FirstWeekday,
diff --git a/gallery/src/pages/date-time/time-weekday.ts b/gallery/src/pages/date-time/time-weekday.ts
index 1299324d72..83783a1950 100644
--- a/gallery/src/pages/date-time/time-weekday.ts
+++ b/gallery/src/pages/date-time/time-weekday.ts
@@ -1,10 +1,13 @@
-import "@material/mwc-list/mwc-list";
-import { LitElement, css, html } from "lit";
-import { customElement, state } from "lit/decorators";
-import { formatTimeWeekday } from "../../../../src/common/datetime/format_time";
+import type { FrontendLocaleData } from "../../../../src/data/translation";
+
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-control-select";
-import type { FrontendLocaleData } from "../../../../src/data/translation";
+import "@material/mwc-list/mwc-list";
+
+import { LitElement, css, html } from "lit";
+import { customElement, state } from "lit/decorators";
+
+import { formatTimeWeekday } from "../../../../src/common/datetime/format_time";
import {
DateFormat,
FirstWeekday,
diff --git a/gallery/src/pages/date-time/time.ts b/gallery/src/pages/date-time/time.ts
index 0654d838b0..d2caea14c2 100644
--- a/gallery/src/pages/date-time/time.ts
+++ b/gallery/src/pages/date-time/time.ts
@@ -1,10 +1,13 @@
-import "@material/mwc-list/mwc-list";
-import { LitElement, css, html } from "lit";
-import { customElement, state } from "lit/decorators";
-import { formatTime } from "../../../../src/common/datetime/format_time";
+import type { FrontendLocaleData } from "../../../../src/data/translation";
+
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-control-select";
-import type { FrontendLocaleData } from "../../../../src/data/translation";
+import "@material/mwc-list/mwc-list";
+
+import { LitElement, css, html } from "lit";
+import { customElement, state } from "lit/decorators";
+
+import { formatTime } from "../../../../src/common/datetime/format_time";
import {
DateFormat,
FirstWeekday,
diff --git a/gallery/src/pages/lovelace/alarm-panel-card.ts b/gallery/src/pages/lovelace/alarm-panel-card.ts
index d2a596f2e1..288b4263c4 100644
--- a/gallery/src/pages/lovelace/alarm-panel-card.ts
+++ b/gallery/src/pages/lovelace/alarm-panel-card.ts
@@ -1,10 +1,13 @@
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../components/demo-cards";
+
import { html, LitElement } from "lit";
import { customElement, query } from "lit/decorators";
+
+import { mockIcons } from "../../../../demo/src/stubs/icons";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-cards";
-import { mockIcons } from "../../../../demo/src/stubs/icons";
const ENTITIES = [
getEntity("alarm_control_panel", "alarm", "disarmed", {
diff --git a/gallery/src/pages/lovelace/area-card.ts b/gallery/src/pages/lovelace/area-card.ts
index 75f77ac7a6..e9867c49ac 100644
--- a/gallery/src/pages/lovelace/area-card.ts
+++ b/gallery/src/pages/lovelace/area-card.ts
@@ -1,10 +1,13 @@
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../components/demo-cards";
+
import { html, LitElement } from "lit";
import { customElement, query } from "lit/decorators";
+
+import { mockIcons } from "../../../../demo/src/stubs/icons";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-cards";
-import { mockIcons } from "../../../../demo/src/stubs/icons";
const ENTITIES = [
getEntity("light", "bed_light", "on", {
diff --git a/gallery/src/pages/lovelace/conditional-card.ts b/gallery/src/pages/lovelace/conditional-card.ts
index 1943e52510..f8f869929a 100644
--- a/gallery/src/pages/lovelace/conditional-card.ts
+++ b/gallery/src/pages/lovelace/conditional-card.ts
@@ -1,10 +1,13 @@
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../components/demo-cards";
+
import { html, LitElement } from "lit";
import { customElement, query } from "lit/decorators";
+
+import { mockIcons } from "../../../../demo/src/stubs/icons";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-cards";
-import { mockIcons } from "../../../../demo/src/stubs/icons";
const ENTITIES = [
getEntity("light", "controller_1", "on", {
diff --git a/gallery/src/pages/lovelace/entities-card.ts b/gallery/src/pages/lovelace/entities-card.ts
index 39e756623b..0003840c33 100644
--- a/gallery/src/pages/lovelace/entities-card.ts
+++ b/gallery/src/pages/lovelace/entities-card.ts
@@ -1,10 +1,13 @@
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../components/demo-cards";
+
import { html, LitElement } from "lit";
import { customElement, query } from "lit/decorators";
+
+import { mockIcons } from "../../../../demo/src/stubs/icons";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-cards";
-import { mockIcons } from "../../../../demo/src/stubs/icons";
const ENTITIES = [
getEntity("light", "bed_light", "on", {
diff --git a/gallery/src/pages/lovelace/entity-button-card.ts b/gallery/src/pages/lovelace/entity-button-card.ts
index 3a7a270999..d45369bc4b 100644
--- a/gallery/src/pages/lovelace/entity-button-card.ts
+++ b/gallery/src/pages/lovelace/entity-button-card.ts
@@ -1,10 +1,13 @@
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../components/demo-cards";
+
import { html, LitElement } from "lit";
import { customElement, query } from "lit/decorators";
+
+import { mockIcons } from "../../../../demo/src/stubs/icons";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-cards";
-import { mockIcons } from "../../../../demo/src/stubs/icons";
const ENTITIES = [
getEntity("light", "bed_light", "on", {
diff --git a/gallery/src/pages/lovelace/entity-filter-card.ts b/gallery/src/pages/lovelace/entity-filter-card.ts
index 6d28383acc..af79b24bcf 100644
--- a/gallery/src/pages/lovelace/entity-filter-card.ts
+++ b/gallery/src/pages/lovelace/entity-filter-card.ts
@@ -1,10 +1,13 @@
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../components/demo-cards";
+
import { html, LitElement } from "lit";
import { customElement, query } from "lit/decorators";
+
+import { mockIcons } from "../../../../demo/src/stubs/icons";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-cards";
-import { mockIcons } from "../../../../demo/src/stubs/icons";
const ENTITIES = [
getEntity("device_tracker", "demo_paulus", "work", {
diff --git a/gallery/src/pages/lovelace/gauge-card.ts b/gallery/src/pages/lovelace/gauge-card.ts
index 4c74ee5566..36f169b56b 100644
--- a/gallery/src/pages/lovelace/gauge-card.ts
+++ b/gallery/src/pages/lovelace/gauge-card.ts
@@ -1,10 +1,13 @@
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../components/demo-cards";
+
import { html, LitElement } from "lit";
import { customElement, query } from "lit/decorators";
+
+import { mockIcons } from "../../../../demo/src/stubs/icons";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-cards";
-import { mockIcons } from "../../../../demo/src/stubs/icons";
const ENTITIES = [
getEntity("sensor", "brightness", "12", {}),
diff --git a/gallery/src/pages/lovelace/glance-card.ts b/gallery/src/pages/lovelace/glance-card.ts
index f10b758aa9..b08cfce0f2 100644
--- a/gallery/src/pages/lovelace/glance-card.ts
+++ b/gallery/src/pages/lovelace/glance-card.ts
@@ -1,10 +1,13 @@
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../components/demo-cards";
+
import { html, LitElement } from "lit";
import { customElement, query } from "lit/decorators";
+
+import { mockIcons } from "../../../../demo/src/stubs/icons";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-cards";
-import { mockIcons } from "../../../../demo/src/stubs/icons";
const ENTITIES = [
getEntity("device_tracker", "demo_paulus", "home", {
diff --git a/gallery/src/pages/lovelace/grid-and-stack-card.ts b/gallery/src/pages/lovelace/grid-and-stack-card.ts
index 79048043bf..8abc170b50 100644
--- a/gallery/src/pages/lovelace/grid-and-stack-card.ts
+++ b/gallery/src/pages/lovelace/grid-and-stack-card.ts
@@ -1,11 +1,14 @@
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../components/demo-cards";
+
import { html, LitElement } from "lit";
import { customElement, query } from "lit/decorators";
+
import { mockHistory } from "../../../../demo/src/stubs/history";
+import { mockIcons } from "../../../../demo/src/stubs/icons";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-cards";
-import { mockIcons } from "../../../../demo/src/stubs/icons";
const ENTITIES = [
getEntity("light", "kitchen_lights", "on", {
diff --git a/gallery/src/pages/lovelace/iframe-card.ts b/gallery/src/pages/lovelace/iframe-card.ts
index 6fc35f0493..4cf7d9be38 100644
--- a/gallery/src/pages/lovelace/iframe-card.ts
+++ b/gallery/src/pages/lovelace/iframe-card.ts
@@ -1,8 +1,11 @@
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../components/demo-cards";
+
import { html, LitElement } from "lit";
import { customElement, query } from "lit/decorators";
+
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-cards";
const CONFIGS = [
{
diff --git a/gallery/src/pages/lovelace/light-card.ts b/gallery/src/pages/lovelace/light-card.ts
index cc67832910..f34d68aca2 100644
--- a/gallery/src/pages/lovelace/light-card.ts
+++ b/gallery/src/pages/lovelace/light-card.ts
@@ -1,10 +1,13 @@
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../components/demo-cards";
+
import { html, LitElement } from "lit";
import { customElement, query } from "lit/decorators";
+
+import { mockIcons } from "../../../../demo/src/stubs/icons";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-cards";
-import { mockIcons } from "../../../../demo/src/stubs/icons";
const ENTITIES = [
getEntity("light", "bed_light", "on", {
diff --git a/gallery/src/pages/lovelace/map-card.ts b/gallery/src/pages/lovelace/map-card.ts
index 8debc6d991..ca830d2a10 100644
--- a/gallery/src/pages/lovelace/map-card.ts
+++ b/gallery/src/pages/lovelace/map-card.ts
@@ -1,9 +1,12 @@
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../components/demo-cards";
+
import { html, LitElement } from "lit";
import { customElement, query } from "lit/decorators";
+
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-cards";
const ENTITIES = [
getEntity("device_tracker", "demo_paulus", "not_home", {
diff --git a/gallery/src/pages/lovelace/markdown-card.ts b/gallery/src/pages/lovelace/markdown-card.ts
index b8e7f95c73..f6477d8230 100644
--- a/gallery/src/pages/lovelace/markdown-card.ts
+++ b/gallery/src/pages/lovelace/markdown-card.ts
@@ -1,9 +1,12 @@
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../components/demo-cards";
+
import { html, LitElement } from "lit";
import { customElement, query } from "lit/decorators";
+
import { mockTemplate } from "../../../../demo/src/stubs/template";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-cards";
const CONFIGS = [
{
diff --git a/gallery/src/pages/lovelace/media-control-card.ts b/gallery/src/pages/lovelace/media-control-card.ts
index ecbe7c2ed6..19b5d59fb2 100644
--- a/gallery/src/pages/lovelace/media-control-card.ts
+++ b/gallery/src/pages/lovelace/media-control-card.ts
@@ -1,8 +1,11 @@
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../components/demo-cards";
+
import { html, LitElement } from "lit";
import { customElement, query } from "lit/decorators";
+
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-cards";
import { createMediaPlayerEntities } from "../../data/media_players";
const CONFIGS = [
diff --git a/gallery/src/pages/lovelace/media-player-row.ts b/gallery/src/pages/lovelace/media-player-row.ts
index 5562f7d8e0..2c9c1dc9c0 100644
--- a/gallery/src/pages/lovelace/media-player-row.ts
+++ b/gallery/src/pages/lovelace/media-player-row.ts
@@ -1,8 +1,11 @@
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../components/demo-cards";
+
import { html, LitElement } from "lit";
import { customElement, query } from "lit/decorators";
+
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-cards";
import { createMediaPlayerEntities } from "../../data/media_players";
const CONFIGS = [
diff --git a/gallery/src/pages/lovelace/picture-card.ts b/gallery/src/pages/lovelace/picture-card.ts
index 3d4c5ed0b1..fc704aa000 100644
--- a/gallery/src/pages/lovelace/picture-card.ts
+++ b/gallery/src/pages/lovelace/picture-card.ts
@@ -1,10 +1,13 @@
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../components/demo-cards";
+
import { html, LitElement } from "lit";
import { customElement, query } from "lit/decorators";
+
+import { mockIcons } from "../../../../demo/src/stubs/icons";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-cards";
-import { mockIcons } from "../../../../demo/src/stubs/icons";
const ENTITIES = [
getEntity("person", "paulus", "home", {
diff --git a/gallery/src/pages/lovelace/picture-elements-card.ts b/gallery/src/pages/lovelace/picture-elements-card.ts
index 8312def27d..9183f65df0 100644
--- a/gallery/src/pages/lovelace/picture-elements-card.ts
+++ b/gallery/src/pages/lovelace/picture-elements-card.ts
@@ -1,10 +1,13 @@
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../components/demo-cards";
+
import { html, LitElement } from "lit";
import { customElement, query } from "lit/decorators";
+
+import { mockIcons } from "../../../../demo/src/stubs/icons";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-cards";
-import { mockIcons } from "../../../../demo/src/stubs/icons";
const ENTITIES = [
getEntity("light", "bed_light", "on", {
diff --git a/gallery/src/pages/lovelace/picture-entity-card.ts b/gallery/src/pages/lovelace/picture-entity-card.ts
index e0d9836c44..a9f75d3b1e 100644
--- a/gallery/src/pages/lovelace/picture-entity-card.ts
+++ b/gallery/src/pages/lovelace/picture-entity-card.ts
@@ -1,10 +1,13 @@
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../components/demo-cards";
+
import { html, LitElement } from "lit";
import { customElement, query } from "lit/decorators";
+
+import { mockIcons } from "../../../../demo/src/stubs/icons";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-cards";
-import { mockIcons } from "../../../../demo/src/stubs/icons";
const ENTITIES = [
getEntity("light", "kitchen_lights", "on", {
diff --git a/gallery/src/pages/lovelace/picture-glance-card.ts b/gallery/src/pages/lovelace/picture-glance-card.ts
index 0cb0c9d529..630383eeed 100644
--- a/gallery/src/pages/lovelace/picture-glance-card.ts
+++ b/gallery/src/pages/lovelace/picture-glance-card.ts
@@ -1,10 +1,13 @@
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../components/demo-cards";
+
import { html, LitElement } from "lit";
import { customElement, query } from "lit/decorators";
+
+import { mockIcons } from "../../../../demo/src/stubs/icons";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-cards";
-import { mockIcons } from "../../../../demo/src/stubs/icons";
const ENTITIES = [
getEntity("switch", "decorative_lights", "on", {
diff --git a/gallery/src/pages/lovelace/plant-card.ts b/gallery/src/pages/lovelace/plant-card.ts
index d2bdb26509..680c337bb2 100644
--- a/gallery/src/pages/lovelace/plant-card.ts
+++ b/gallery/src/pages/lovelace/plant-card.ts
@@ -1,10 +1,13 @@
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../components/demo-cards";
+
import { html, LitElement } from "lit";
import { customElement, query } from "lit/decorators";
-import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-cards";
-import { createPlantEntities } from "../../data/plants";
+
import { mockIcons } from "../../../../demo/src/stubs/icons";
+import { provideHass } from "../../../../src/fake_data/provide_hass";
+import { createPlantEntities } from "../../data/plants";
const CONFIGS = [
{
diff --git a/gallery/src/pages/lovelace/thermostat-card.ts b/gallery/src/pages/lovelace/thermostat-card.ts
index dc0a572e59..f2f4d5af21 100644
--- a/gallery/src/pages/lovelace/thermostat-card.ts
+++ b/gallery/src/pages/lovelace/thermostat-card.ts
@@ -1,10 +1,13 @@
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../components/demo-cards";
+
import { html, LitElement } from "lit";
import { customElement, query } from "lit/decorators";
+
+import { mockIcons } from "../../../../demo/src/stubs/icons";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-cards";
-import { mockIcons } from "../../../../demo/src/stubs/icons";
const ENTITIES = [
getEntity("climate", "ecobee", "auto", {
diff --git a/gallery/src/pages/lovelace/tile-card.ts b/gallery/src/pages/lovelace/tile-card.ts
index ecfa9ca0b3..73b0a878c1 100644
--- a/gallery/src/pages/lovelace/tile-card.ts
+++ b/gallery/src/pages/lovelace/tile-card.ts
@@ -1,6 +1,12 @@
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../components/demo-cards";
+
import { html, LitElement } from "lit";
import { customElement, query } from "lit/decorators";
+
+import { mockIcons } from "../../../../demo/src/stubs/icons";
+import { ClimateEntityFeature } from "../../../../src/data/climate";
import { CoverEntityFeature } from "../../../../src/data/cover";
import { LightColorMode } from "../../../../src/data/light";
import { LockEntityFeature } from "../../../../src/data/lock";
@@ -8,9 +14,6 @@ import { MediaPlayerEntityFeature } from "../../../../src/data/media-player";
import { VacuumEntityFeature } from "../../../../src/data/vacuum";
import { getEntity } from "../../../../src/fake_data/entity";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-cards";
-import { mockIcons } from "../../../../demo/src/stubs/icons";
-import { ClimateEntityFeature } from "../../../../src/data/climate";
const ENTITIES = [
getEntity("switch", "tv_outlet", "on", {
diff --git a/gallery/src/pages/lovelace/todo-list-card.ts b/gallery/src/pages/lovelace/todo-list-card.ts
index 2ed2d68ddd..67e22dc8ed 100644
--- a/gallery/src/pages/lovelace/todo-list-card.ts
+++ b/gallery/src/pages/lovelace/todo-list-card.ts
@@ -1,11 +1,14 @@
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../components/demo-cards";
+
import { html, LitElement } from "lit";
import { customElement, query } from "lit/decorators";
-import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-cards";
-import { getEntity } from "../../../../src/fake_data/entity";
-import { mockTodo } from "../../../../demo/src/stubs/todo";
+
import { mockIcons } from "../../../../demo/src/stubs/icons";
+import { mockTodo } from "../../../../demo/src/stubs/todo";
+import { getEntity } from "../../../../src/fake_data/entity";
+import { provideHass } from "../../../../src/fake_data/provide_hass";
const ENTITIES = [
getEntity("todo", "shopping_list", "2", {
diff --git a/gallery/src/pages/misc/entity-state.ts b/gallery/src/pages/misc/entity-state.ts
index d23fb48083..c64e57ea4f 100644
--- a/gallery/src/pages/misc/entity-state.ts
+++ b/gallery/src/pages/misc/entity-state.ts
@@ -1,18 +1,21 @@
+import type { DataTableColumnContainer } from "../../../../src/components/data-table/ha-data-table";
+import type { HomeAssistant } from "../../../../src/types";
import type {
HassEntity,
HassEntityAttributeBase,
} from "home-assistant-js-websocket";
+
+import "../../../../src/components/data-table/ha-data-table";
+import "../../../../src/components/entity/state-badge";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import memoizeOne from "memoize-one";
+
+import { mockIcons } from "../../../../demo/src/stubs/icons";
import { computeDomain } from "../../../../src/common/entity/compute_domain";
import { computeStateDisplay } from "../../../../src/common/entity/compute_state_display";
-import "../../../../src/components/data-table/ha-data-table";
-import type { DataTableColumnContainer } from "../../../../src/components/data-table/ha-data-table";
-import "../../../../src/components/entity/state-badge";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import { mockIcons } from "../../../../demo/src/stubs/icons";
-import type { HomeAssistant } from "../../../../src/types";
const SENSOR_DEVICE_CLASSES = [
"apparent_power",
diff --git a/gallery/src/pages/misc/ha-markdown.ts b/gallery/src/pages/misc/ha-markdown.ts
index 3542b847e0..1fc392d9ae 100644
--- a/gallery/src/pages/misc/ha-markdown.ts
+++ b/gallery/src/pages/misc/ha-markdown.ts
@@ -1,7 +1,7 @@
-import { css, html, LitElement } from "lit";
import "../../../../src/components/ha-card";
import "../../../../src/components/ha-markdown";
+import { css, html, LitElement } from "lit";
import { customElement } from "lit/decorators";
interface MarkdownContent {
diff --git a/gallery/src/pages/misc/integration-card.ts b/gallery/src/pages/misc/integration-card.ts
index 11d513331b..2132bc0ea6 100644
--- a/gallery/src/pages/misc/integration-card.ts
+++ b/gallery/src/pages/misc/integration-card.ts
@@ -1,22 +1,23 @@
-import { css, html, LitElement, nothing } from "lit";
-import "../../../../src/components/ha-formfield";
-import "../../../../src/components/ha-switch";
-
-import { customElement, property, state } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import type { IntegrationManifest } from "../../../../src/data/integration";
-
import type { DeviceRegistryEntry } from "../../../../src/data/device_registry";
import type { EntityRegistryEntry } from "../../../../src/data/entity_registry";
-import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../../../src/panels/config/integrations/ha-config-flow-card";
+import type { IntegrationManifest } from "../../../../src/data/integration";
import type {
ConfigEntryExtended,
DataEntryFlowProgressExtended,
} from "../../../../src/panels/config/integrations/ha-config-integrations";
+import type { HomeAssistant } from "../../../../src/types";
+
+import "../../../../src/components/ha-formfield";
+import "../../../../src/components/ha-switch";
+import "../../../../src/panels/config/integrations/ha-config-flow-card";
import "../../../../src/panels/config/integrations/ha-ignored-config-entry-card";
import "../../../../src/panels/config/integrations/ha-integration-card";
-import type { HomeAssistant } from "../../../../src/types";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+
+import { provideHass } from "../../../../src/fake_data/provide_hass";
const createConfigEntry = (
title: string,
diff --git a/gallery/src/pages/misc/util-long-press.ts b/gallery/src/pages/misc/util-long-press.ts
index e111919bb5..928c02a08d 100644
--- a/gallery/src/pages/misc/util-long-press.ts
+++ b/gallery/src/pages/misc/util-long-press.ts
@@ -1,9 +1,12 @@
-import "@material/mwc-button";
+import type { ActionHandlerEvent } from "../../../../src/data/lovelace/action_handler";
import type { TemplateResult } from "lit";
+
+import "../../../../src/components/ha-card";
+import "@material/mwc-button";
+
import { css, html, LitElement } from "lit";
import { customElement } from "lit/decorators";
-import "../../../../src/components/ha-card";
-import type { ActionHandlerEvent } from "../../../../src/data/lovelace/action_handler";
+
import { actionHandler } from "../../../../src/panels/lovelace/common/directives/action-handler-directive";
@customElement("demo-misc-util-long-press")
diff --git a/gallery/src/pages/more-info/climate.ts b/gallery/src/pages/more-info/climate.ts
index c6c44ea59d..bf3279cbe7 100644
--- a/gallery/src/pages/more-info/climate.ts
+++ b/gallery/src/pages/more-info/climate.ts
@@ -1,13 +1,16 @@
+import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
import type { PropertyValues, TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property, query } from "lit/decorators";
+
import "../../../../src/components/ha-card";
import "../../../../src/dialogs/more-info/more-info-content";
-import { getEntity } from "../../../../src/fake_data/entity";
-import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
-import { provideHass } from "../../../../src/fake_data/provide_hass";
import "../../components/demo-more-infos";
+
+import { html, LitElement } from "lit";
+import { customElement, property, query } from "lit/decorators";
+
import { ClimateEntityFeature } from "../../../../src/data/climate";
+import { getEntity } from "../../../../src/fake_data/entity";
+import { provideHass } from "../../../../src/fake_data/provide_hass";
const ENTITIES = [
getEntity("climate", "radiator", "heat", {
diff --git a/gallery/src/pages/more-info/cover.ts b/gallery/src/pages/more-info/cover.ts
index 06f7563adb..7c0471b499 100644
--- a/gallery/src/pages/more-info/cover.ts
+++ b/gallery/src/pages/more-info/cover.ts
@@ -1,13 +1,16 @@
+import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../../src/components/ha-card";
+import "../../../../src/dialogs/more-info/more-info-content";
+import "../../components/demo-more-infos";
+
import { html, LitElement } from "lit";
import { customElement, property, query } from "lit/decorators";
-import "../../../../src/components/ha-card";
+
import { CoverEntityFeature } from "../../../../src/data/cover";
-import "../../../../src/dialogs/more-info/more-info-content";
import { getEntity } from "../../../../src/fake_data/entity";
-import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-more-infos";
const ENTITIES = [
getEntity("cover", "position_buttons", "on", {
diff --git a/gallery/src/pages/more-info/humidifier.ts b/gallery/src/pages/more-info/humidifier.ts
index d256203998..2758f32bef 100644
--- a/gallery/src/pages/more-info/humidifier.ts
+++ b/gallery/src/pages/more-info/humidifier.ts
@@ -1,13 +1,16 @@
+import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
import type { PropertyValues, TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property, query } from "lit/decorators";
+
import "../../../../src/components/ha-card";
import "../../../../src/dialogs/more-info/more-info-content";
-import { getEntity } from "../../../../src/fake_data/entity";
-import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
-import { provideHass } from "../../../../src/fake_data/provide_hass";
import "../../components/demo-more-infos";
+import { html, LitElement } from "lit";
+import { customElement, property, query } from "lit/decorators";
+
+import { getEntity } from "../../../../src/fake_data/entity";
+import { provideHass } from "../../../../src/fake_data/provide_hass";
+
const ENTITIES = [
getEntity("humidifier", "humidifier", "on", {
friendly_name: "Humidifier",
diff --git a/gallery/src/pages/more-info/input-number.ts b/gallery/src/pages/more-info/input-number.ts
index cca595138e..d8d76a2b80 100644
--- a/gallery/src/pages/more-info/input-number.ts
+++ b/gallery/src/pages/more-info/input-number.ts
@@ -1,13 +1,16 @@
+import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
import type { PropertyValues, TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property, query } from "lit/decorators";
+
import "../../../../src/components/ha-card";
import "../../../../src/dialogs/more-info/more-info-content";
-import { getEntity } from "../../../../src/fake_data/entity";
-import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
-import { provideHass } from "../../../../src/fake_data/provide_hass";
import "../../components/demo-more-infos";
+import { html, LitElement } from "lit";
+import { customElement, property, query } from "lit/decorators";
+
+import { getEntity } from "../../../../src/fake_data/entity";
+import { provideHass } from "../../../../src/fake_data/provide_hass";
+
const ENTITIES = [
getEntity("input_number", "box1", 0, {
friendly_name: "Box1",
diff --git a/gallery/src/pages/more-info/input-text.ts b/gallery/src/pages/more-info/input-text.ts
index f3bfb4c852..ba3d5b8060 100644
--- a/gallery/src/pages/more-info/input-text.ts
+++ b/gallery/src/pages/more-info/input-text.ts
@@ -1,13 +1,16 @@
+import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
import type { PropertyValues, TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property, query } from "lit/decorators";
+
import "../../../../src/components/ha-card";
import "../../../../src/dialogs/more-info/more-info-content";
-import { getEntity } from "../../../../src/fake_data/entity";
-import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
-import { provideHass } from "../../../../src/fake_data/provide_hass";
import "../../components/demo-more-infos";
+import { html, LitElement } from "lit";
+import { customElement, property, query } from "lit/decorators";
+
+import { getEntity } from "../../../../src/fake_data/entity";
+import { provideHass } from "../../../../src/fake_data/provide_hass";
+
const ENTITIES = [
getEntity("input_text", "text", "Inspiration", {
friendly_name: "Text",
diff --git a/gallery/src/pages/more-info/light.ts b/gallery/src/pages/more-info/light.ts
index 91d8fd1429..32ff9fe28f 100644
--- a/gallery/src/pages/more-info/light.ts
+++ b/gallery/src/pages/more-info/light.ts
@@ -1,13 +1,16 @@
+import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../../src/components/ha-card";
+import "../../../../src/dialogs/more-info/more-info-content";
+import "../../components/demo-more-infos";
+
import { html, LitElement } from "lit";
import { customElement, property, query } from "lit/decorators";
-import "../../../../src/components/ha-card";
+
import { LightColorMode, LightEntityFeature } from "../../../../src/data/light";
-import "../../../../src/dialogs/more-info/more-info-content";
import { getEntity } from "../../../../src/fake_data/entity";
-import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-more-infos";
const ENTITIES = [
getEntity("light", "bed_light", "on", {
diff --git a/gallery/src/pages/more-info/lock.ts b/gallery/src/pages/more-info/lock.ts
index cca5e729e1..39db79d107 100644
--- a/gallery/src/pages/more-info/lock.ts
+++ b/gallery/src/pages/more-info/lock.ts
@@ -1,13 +1,16 @@
+import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
import type { PropertyValues, TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property, query } from "lit/decorators";
+
import "../../../../src/components/ha-card";
import "../../../../src/dialogs/more-info/more-info-content";
-import { getEntity } from "../../../../src/fake_data/entity";
-import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
-import { provideHass } from "../../../../src/fake_data/provide_hass";
import "../../components/demo-more-infos";
+import { html, LitElement } from "lit";
+import { customElement, property, query } from "lit/decorators";
+
+import { getEntity } from "../../../../src/fake_data/entity";
+import { provideHass } from "../../../../src/fake_data/provide_hass";
+
const ENTITIES = [
getEntity("lock", "lock", "locked", {
friendly_name: "Lock",
diff --git a/gallery/src/pages/more-info/media-player.ts b/gallery/src/pages/more-info/media-player.ts
index 9af2d92a32..779027ed37 100644
--- a/gallery/src/pages/more-info/media-player.ts
+++ b/gallery/src/pages/more-info/media-player.ts
@@ -1,11 +1,14 @@
+import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
import type { PropertyValues, TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property, query } from "lit/decorators";
+
import "../../../../src/components/ha-card";
import "../../../../src/dialogs/more-info/more-info-content";
-import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
-import { provideHass } from "../../../../src/fake_data/provide_hass";
import "../../components/demo-more-infos";
+
+import { html, LitElement } from "lit";
+import { customElement, property, query } from "lit/decorators";
+
+import { provideHass } from "../../../../src/fake_data/provide_hass";
import { createMediaPlayerEntities } from "../../data/media_players";
const ENTITIES = createMediaPlayerEntities();
diff --git a/gallery/src/pages/more-info/number.ts b/gallery/src/pages/more-info/number.ts
index 4cf8cdc663..2a49b12bfb 100644
--- a/gallery/src/pages/more-info/number.ts
+++ b/gallery/src/pages/more-info/number.ts
@@ -1,13 +1,16 @@
+import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
import type { PropertyValues, TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property, query } from "lit/decorators";
+
import "../../../../src/components/ha-card";
import "../../../../src/dialogs/more-info/more-info-content";
-import { getEntity } from "../../../../src/fake_data/entity";
-import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
-import { provideHass } from "../../../../src/fake_data/provide_hass";
import "../../components/demo-more-infos";
+import { html, LitElement } from "lit";
+import { customElement, property, query } from "lit/decorators";
+
+import { getEntity } from "../../../../src/fake_data/entity";
+import { provideHass } from "../../../../src/fake_data/provide_hass";
+
const ENTITIES = [
getEntity("number", "box1", 0, {
friendly_name: "Box1",
diff --git a/gallery/src/pages/more-info/scene.ts b/gallery/src/pages/more-info/scene.ts
index b3a5c13580..322e1d3271 100644
--- a/gallery/src/pages/more-info/scene.ts
+++ b/gallery/src/pages/more-info/scene.ts
@@ -1,13 +1,16 @@
+import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
import type { PropertyValues, TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property, query } from "lit/decorators";
+
import "../../../../src/components/ha-card";
import "../../../../src/dialogs/more-info/more-info-content";
-import { getEntity } from "../../../../src/fake_data/entity";
-import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
-import { provideHass } from "../../../../src/fake_data/provide_hass";
import "../../components/demo-more-infos";
+import { html, LitElement } from "lit";
+import { customElement, property, query } from "lit/decorators";
+
+import { getEntity } from "../../../../src/fake_data/entity";
+import { provideHass } from "../../../../src/fake_data/provide_hass";
+
const ENTITIES = [
getEntity("scene", "romantic_lights", "scening", {
entity_id: ["light.bed_light", "light.ceiling_lights"],
diff --git a/gallery/src/pages/more-info/timer.ts b/gallery/src/pages/more-info/timer.ts
index 19506eacfe..f0cd394352 100644
--- a/gallery/src/pages/more-info/timer.ts
+++ b/gallery/src/pages/more-info/timer.ts
@@ -1,13 +1,16 @@
+import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
import type { PropertyValues, TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property, query } from "lit/decorators";
+
import "../../../../src/components/ha-card";
import "../../../../src/dialogs/more-info/more-info-content";
-import { getEntity } from "../../../../src/fake_data/entity";
-import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
-import { provideHass } from "../../../../src/fake_data/provide_hass";
import "../../components/demo-more-infos";
+import { html, LitElement } from "lit";
+import { customElement, property, query } from "lit/decorators";
+
+import { getEntity } from "../../../../src/fake_data/entity";
+import { provideHass } from "../../../../src/fake_data/provide_hass";
+
const ENTITIES = [
getEntity("timer", "timer", "idle", {
friendly_name: "Timer",
diff --git a/gallery/src/pages/more-info/update.ts b/gallery/src/pages/more-info/update.ts
index 7507f3fcd5..700c4c2c75 100644
--- a/gallery/src/pages/more-info/update.ts
+++ b/gallery/src/pages/more-info/update.ts
@@ -1,14 +1,17 @@
+import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
import type { PropertyValues, TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property, query } from "lit/decorators";
+
import "../../../../src/components/ha-card";
import "../../../../src/dialogs/more-info/more-info-content";
-import { getEntity } from "../../../../src/fake_data/entity";
-import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
-import { provideHass } from "../../../../src/fake_data/provide_hass";
import "../../components/demo-more-infos";
-import { LONG_TEXT } from "../../data/text";
+
+import { html, LitElement } from "lit";
+import { customElement, property, query } from "lit/decorators";
+
import { UpdateEntityFeature } from "../../../../src/data/update";
+import { getEntity } from "../../../../src/fake_data/entity";
+import { provideHass } from "../../../../src/fake_data/provide_hass";
+import { LONG_TEXT } from "../../data/text";
const base_attributes = {
title: "Awesome",
diff --git a/gallery/src/pages/more-info/vacuum.ts b/gallery/src/pages/more-info/vacuum.ts
index 036cc07818..407b323770 100644
--- a/gallery/src/pages/more-info/vacuum.ts
+++ b/gallery/src/pages/more-info/vacuum.ts
@@ -1,13 +1,16 @@
+import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
import type { PropertyValues, TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property, query } from "lit/decorators";
+
import "../../../../src/components/ha-card";
import "../../../../src/dialogs/more-info/more-info-content";
-import { getEntity } from "../../../../src/fake_data/entity";
-import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
-import { provideHass } from "../../../../src/fake_data/provide_hass";
import "../../components/demo-more-infos";
+
+import { html, LitElement } from "lit";
+import { customElement, property, query } from "lit/decorators";
+
import { VacuumEntityFeature } from "../../../../src/data/vacuum";
+import { getEntity } from "../../../../src/fake_data/entity";
+import { provideHass } from "../../../../src/fake_data/provide_hass";
const ENTITIES = [
getEntity("vacuum", "first_floor_vacuum", "docked", {
diff --git a/gallery/src/pages/more-info/water-heater.ts b/gallery/src/pages/more-info/water-heater.ts
index 31615b2c1a..aa7dafa51b 100644
--- a/gallery/src/pages/more-info/water-heater.ts
+++ b/gallery/src/pages/more-info/water-heater.ts
@@ -1,13 +1,16 @@
+import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../../src/components/ha-card";
+import "../../../../src/dialogs/more-info/more-info-content";
+import "../../components/demo-more-infos";
+
import { html, LitElement } from "lit";
import { customElement, property, query } from "lit/decorators";
-import "../../../../src/components/ha-card";
+
import { WaterHeaterEntityFeature } from "../../../../src/data/water_heater";
-import "../../../../src/dialogs/more-info/more-info-content";
import { getEntity } from "../../../../src/fake_data/entity";
-import type { MockHomeAssistant } from "../../../../src/fake_data/provide_hass";
import { provideHass } from "../../../../src/fake_data/provide_hass";
-import "../../components/demo-more-infos";
const ENTITIES = [
getEntity("water_heater", "basic", "eco", {
diff --git a/hassio/src/addon-store/hassio-addon-repository.ts b/hassio/src/addon-store/hassio-addon-repository.ts
index 59ceab9990..9b731a7240 100644
--- a/hassio/src/addon-store/hassio-addon-repository.ts
+++ b/hassio/src/addon-store/hassio-addon-repository.ts
@@ -1,17 +1,20 @@
-import { mdiArrowUpBoldCircle, mdiPuzzle } from "@mdi/js";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { atLeastVersion } from "../../../src/common/config/version";
-import { navigate } from "../../../src/common/navigate";
-import { caseInsensitiveStringCompare } from "../../../src/common/string/compare";
-import "../../../src/components/ha-card";
import type { HassioAddonRepository } from "../../../src/data/hassio/addon";
import type { StoreAddon } from "../../../src/data/supervisor/store";
import type { Supervisor } from "../../../src/data/supervisor/supervisor";
import type { HomeAssistant } from "../../../src/types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../src/components/ha-card";
import "../components/hassio-card-content";
+
+import { mdiArrowUpBoldCircle, mdiPuzzle } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { atLeastVersion } from "../../../src/common/config/version";
+import { navigate } from "../../../src/common/navigate";
+import { caseInsensitiveStringCompare } from "../../../src/common/string/compare";
import { filterAndSort } from "../components/hassio-filter-addons";
import { hassioStyle } from "../resources/hassio-style";
diff --git a/hassio/src/addon-store/hassio-addon-store.ts b/hassio/src/addon-store/hassio-addon-store.ts
index e33ec23208..6ea5b7fc0b 100644
--- a/hassio/src/addon-store/hassio-addon-store.ts
+++ b/hassio/src/addon-store/hassio-addon-store.ts
@@ -1,29 +1,32 @@
+import type { HassioAddonRepository } from "../../../src/data/hassio/addon";
+import type { StoreAddon } from "../../../src/data/supervisor/store";
+import type { Supervisor } from "../../../src/data/supervisor/supervisor";
+import type { HomeAssistant, Route } from "../../../src/types";
import type { ActionDetail } from "@material/mwc-list/mwc-list-foundation";
-import "@material/mwc-list/mwc-list-item";
-import { mdiDotsVertical } from "@mdi/js";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../src/components/ha-button-menu";
+import "../../../src/components/ha-icon-button";
+import "../../../src/components/search-input";
+import "../../../src/layouts/hass-loading-screen";
+import "../../../src/layouts/hass-subpage";
+import "./hassio-addon-repository";
+import "@material/mwc-list/mwc-list-item";
+
+import { mdiDotsVertical } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { atLeastVersion } from "../../../src/common/config/version";
import { fireEvent } from "../../../src/common/dom/fire_event";
import { navigate } from "../../../src/common/navigate";
import { extractSearchParam } from "../../../src/common/url/search-params";
-import "../../../src/components/ha-button-menu";
-import "../../../src/components/ha-icon-button";
-import "../../../src/components/search-input";
-import type { HassioAddonRepository } from "../../../src/data/hassio/addon";
import { reloadHassioAddons } from "../../../src/data/hassio/addon";
import { extractApiErrorMessage } from "../../../src/data/hassio/common";
-import type { StoreAddon } from "../../../src/data/supervisor/store";
-import type { Supervisor } from "../../../src/data/supervisor/supervisor";
import { showAlertDialog } from "../../../src/dialogs/generic/show-dialog-box";
-import "../../../src/layouts/hass-loading-screen";
-import "../../../src/layouts/hass-subpage";
-import type { HomeAssistant, Route } from "../../../src/types";
import { showRegistriesDialog } from "../dialogs/registries/show-dialog-registries";
import { showRepositoriesDialog } from "../dialogs/repositories/show-dialog-repositories";
-import "./hassio-addon-repository";
const sortRepos = (a: HassioAddonRepository, b: HassioAddonRepository) => {
if (a.slug === "local") {
diff --git a/hassio/src/addon-view/config/hassio-addon-audio.ts b/hassio/src/addon-view/config/hassio-addon-audio.ts
index 9146f5924a..d5c191bc9f 100644
--- a/hassio/src/addon-view/config/hassio-addon-audio.ts
+++ b/hassio/src/addon-view/config/hassio-addon-audio.ts
@@ -1,23 +1,26 @@
-import "@material/mwc-button";
-import "@material/mwc-list/mwc-list-item";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { stopPropagation } from "../../../../src/common/dom/stop_propagation";
-import "../../../../src/components/buttons/ha-progress-button";
-import "../../../../src/components/ha-alert";
-import "../../../../src/components/ha-card";
-import "../../../../src/components/ha-select";
import type {
HassioAddonDetails,
HassioAddonSetOptionParams,
} from "../../../../src/data/hassio/addon";
-import { setHassioAddonOption } from "../../../../src/data/hassio/addon";
import type { HassioHardwareAudioDevice } from "../../../../src/data/hassio/hardware";
-import { fetchHassioHardwareAudio } from "../../../../src/data/hassio/hardware";
import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
-import { haStyle } from "../../../../src/resources/styles";
import type { HomeAssistant } from "../../../../src/types";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../../../src/components/buttons/ha-progress-button";
+import "../../../../src/components/ha-alert";
+import "../../../../src/components/ha-card";
+import "../../../../src/components/ha-select";
+import "@material/mwc-button";
+import "@material/mwc-list/mwc-list-item";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { stopPropagation } from "../../../../src/common/dom/stop_propagation";
+import { setHassioAddonOption } from "../../../../src/data/hassio/addon";
+import { fetchHassioHardwareAudio } from "../../../../src/data/hassio/hardware";
+import { haStyle } from "../../../../src/resources/styles";
import { suggestAddonRestart } from "../../dialogs/suggestAddonRestart";
import { hassioStyle } from "../../resources/hassio-style";
diff --git a/hassio/src/addon-view/config/hassio-addon-config-tab.ts b/hassio/src/addon-view/config/hassio-addon-config-tab.ts
index 6aa4cdd446..1fc6d408bc 100644
--- a/hassio/src/addon-view/config/hassio-addon-config-tab.ts
+++ b/hassio/src/addon-view/config/hassio-addon-config-tab.ts
@@ -1,16 +1,19 @@
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import "../../../../src/components/ha-spinner";
import type { HassioAddonDetails } from "../../../../src/data/hassio/addon";
import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
-import { haStyle } from "../../../../src/resources/styles";
import type { HomeAssistant } from "../../../../src/types";
-import { hassioStyle } from "../../resources/hassio-style";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../../src/components/ha-spinner";
import "./hassio-addon-audio";
import "./hassio-addon-config";
import "./hassio-addon-network";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { haStyle } from "../../../../src/resources/styles";
+import { hassioStyle } from "../../resources/hassio-style";
+
@customElement("hassio-addon-config-tab")
class HassioAddonConfigDashboard extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/hassio/src/addon-view/config/hassio-addon-config.ts b/hassio/src/addon-view/config/hassio-addon-config.ts
index bd0b3ab5a2..1ab9daf0d6 100644
--- a/hassio/src/addon-view/config/hassio-addon-config.ts
+++ b/hassio/src/addon-view/config/hassio-addon-config.ts
@@ -1,37 +1,40 @@
-import "@material/mwc-button";
-import type { ActionDetail } from "@material/mwc-list";
-import "@material/mwc-list/mwc-list-item";
-import { mdiDotsVertical } from "@mdi/js";
-import { DEFAULT_SCHEMA, Type } from "js-yaml";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../src/common/dom/fire_event";
-import "../../../../src/components/buttons/ha-progress-button";
-import "../../../../src/components/ha-alert";
-import "../../../../src/components/ha-button-menu";
-import "../../../../src/components/ha-card";
-import "../../../../src/components/ha-form/ha-form";
import type { HaFormSchema } from "../../../../src/components/ha-form/types";
-import "../../../../src/components/ha-formfield";
-import "../../../../src/components/ha-icon-button";
-import "../../../../src/components/ha-switch";
-import "../../../../src/components/ha-yaml-editor";
import type { HaYamlEditor } from "../../../../src/components/ha-yaml-editor";
import type {
HassioAddonDetails,
HassioAddonSetOptionParams,
} from "../../../../src/data/hassio/addon";
+import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
+import type { HomeAssistant } from "../../../../src/types";
+import type { ActionDetail } from "@material/mwc-list";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../../../src/components/buttons/ha-progress-button";
+import "../../../../src/components/ha-alert";
+import "../../../../src/components/ha-button-menu";
+import "../../../../src/components/ha-card";
+import "../../../../src/components/ha-form/ha-form";
+import "../../../../src/components/ha-formfield";
+import "../../../../src/components/ha-icon-button";
+import "../../../../src/components/ha-switch";
+import "../../../../src/components/ha-yaml-editor";
+import "@material/mwc-button";
+import "@material/mwc-list/mwc-list-item";
+
+import { mdiDotsVertical } from "@mdi/js";
+import { DEFAULT_SCHEMA, Type } from "js-yaml";
+import { css, html, LitElement } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../src/common/dom/fire_event";
import {
setHassioAddonOption,
validateHassioAddonOption,
} from "../../../../src/data/hassio/addon";
import { extractApiErrorMessage } from "../../../../src/data/hassio/common";
-import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
import { showConfirmationDialog } from "../../../../src/dialogs/generic/show-dialog-box";
import { haStyle } from "../../../../src/resources/styles";
-import type { HomeAssistant } from "../../../../src/types";
import { suggestAddonRestart } from "../../dialogs/suggestAddonRestart";
import { hassioStyle } from "../../resources/hassio-style";
diff --git a/hassio/src/addon-view/config/hassio-addon-network.ts b/hassio/src/addon-view/config/hassio-addon-network.ts
index 96d5d2f307..0cd5c53b35 100644
--- a/hassio/src/addon-view/config/hassio-addon-network.ts
+++ b/hassio/src/addon-view/config/hassio-addon-network.ts
@@ -1,22 +1,25 @@
-import type { CSSResultGroup, PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../src/common/dom/fire_event";
-import "../../../../src/components/buttons/ha-progress-button";
-import "../../../../src/components/ha-alert";
-import "../../../../src/components/ha-card";
-import "../../../../src/components/ha-form/ha-form";
import type { HaFormSchema } from "../../../../src/components/ha-form/types";
import type {
HassioAddonDetails,
HassioAddonSetOptionParams,
} from "../../../../src/data/hassio/addon";
+import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
+import type { HomeAssistant } from "../../../../src/types";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../../src/components/buttons/ha-progress-button";
+import "../../../../src/components/ha-alert";
+import "../../../../src/components/ha-card";
+import "../../../../src/components/ha-form/ha-form";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../src/common/dom/fire_event";
import { setHassioAddonOption } from "../../../../src/data/hassio/addon";
import { extractApiErrorMessage } from "../../../../src/data/hassio/common";
-import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
import { haStyle } from "../../../../src/resources/styles";
-import type { HomeAssistant } from "../../../../src/types";
import { suggestAddonRestart } from "../../dialogs/suggestAddonRestart";
import { hassioStyle } from "../../resources/hassio-style";
diff --git a/hassio/src/addon-view/documentation/hassio-addon-documentation-tab.ts b/hassio/src/addon-view/documentation/hassio-addon-documentation-tab.ts
index 4b5784f544..5f4c9dc447 100644
--- a/hassio/src/addon-view/documentation/hassio-addon-documentation-tab.ts
+++ b/hassio/src/addon-view/documentation/hassio-addon-documentation-tab.ts
@@ -1,18 +1,21 @@
-import "../../../../src/components/ha-card";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import "../../../../src/components/ha-alert";
-import "../../../../src/components/ha-spinner";
-import "../../../../src/components/ha-markdown";
-import { customElement, property, state } from "lit/decorators";
import type { HassioAddonDetails } from "../../../../src/data/hassio/addon";
+import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
+import type { HomeAssistant } from "../../../../src/types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../../src/components/ha-alert";
+import "../../../../src/components/ha-card";
+import "../../../../src/components/ha-markdown";
+import "../../../../src/components/ha-spinner";
+import "../../../../src/layouts/hass-loading-screen";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
import { fetchHassioAddonDocumentation } from "../../../../src/data/hassio/addon";
import { extractApiErrorMessage } from "../../../../src/data/hassio/common";
-import "../../../../src/layouts/hass-loading-screen";
import { haStyle } from "../../../../src/resources/styles";
-import type { HomeAssistant } from "../../../../src/types";
import { hassioStyle } from "../../resources/hassio-style";
-import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
@customElement("hassio-addon-documentation-tab")
class HassioAddonDocumentationDashboard extends LitElement {
diff --git a/hassio/src/addon-view/hassio-addon-dashboard.ts b/hassio/src/addon-view/hassio-addon-dashboard.ts
index dc5cdb5d66..89fcdb2b39 100644
--- a/hassio/src/addon-view/hassio-addon-dashboard.ts
+++ b/hassio/src/addon-view/hassio-addon-dashboard.ts
@@ -1,42 +1,45 @@
+import type { HassioAddonDetails } from "../../../src/data/hassio/addon";
+import type { StoreAddonDetails } from "../../../src/data/supervisor/store";
+import type { Supervisor } from "../../../src/data/supervisor/supervisor";
+import type { PageNavigation } from "../../../src/layouts/hass-tabs-subpage";
+import type { HomeAssistant, Route } from "../../../src/types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../src/layouts/hass-error-screen";
+import "../../../src/layouts/hass-loading-screen";
+import "../../../src/layouts/hass-tabs-subpage";
+import "./config/hassio-addon-audio";
+import "./config/hassio-addon-config";
+import "./config/hassio-addon-network";
+import "./hassio-addon-router";
+import "./info/hassio-addon-info";
+
import {
mdiCogs,
mdiFileDocument,
mdiInformationVariant,
mdiMathLog,
} from "@mdi/js";
-import type { CSSResultGroup, TemplateResult } from "lit";
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../../src/common/dom/fire_event";
import { navigate } from "../../../src/common/navigate";
import { extractSearchParam } from "../../../src/common/url/search-params";
-import type { HassioAddonDetails } from "../../../src/data/hassio/addon";
import {
fetchAddonInfo,
fetchHassioAddonInfo,
fetchHassioAddonsInfo,
} from "../../../src/data/hassio/addon";
import { extractApiErrorMessage } from "../../../src/data/hassio/common";
-import type { StoreAddonDetails } from "../../../src/data/supervisor/store";
import {
addStoreRepository,
fetchSupervisorStore,
} from "../../../src/data/supervisor/store";
-import type { Supervisor } from "../../../src/data/supervisor/supervisor";
import { showConfirmationDialog } from "../../../src/dialogs/generic/show-dialog-box";
-import "../../../src/layouts/hass-error-screen";
-import "../../../src/layouts/hass-loading-screen";
-import "../../../src/layouts/hass-tabs-subpage";
-import type { PageNavigation } from "../../../src/layouts/hass-tabs-subpage";
import { haStyle } from "../../../src/resources/styles";
-import type { HomeAssistant, Route } from "../../../src/types";
import { hassioStyle } from "../resources/hassio-style";
-import "./config/hassio-addon-audio";
-import "./config/hassio-addon-config";
-import "./config/hassio-addon-network";
-import "./hassio-addon-router";
-import "./info/hassio-addon-info";
@customElement("hassio-addon-dashboard")
class HassioAddonDashboard extends LitElement {
diff --git a/hassio/src/addon-view/hassio-addon-router.ts b/hassio/src/addon-view/hassio-addon-router.ts
index de2c5aa1fd..0a4b8f65fc 100644
--- a/hassio/src/addon-view/hassio-addon-router.ts
+++ b/hassio/src/addon-view/hassio-addon-router.ts
@@ -1,16 +1,19 @@
-import { customElement, property } from "lit/decorators";
import type { HassioAddonDetails } from "../../../src/data/hassio/addon";
import type { StoreAddonDetails } from "../../../src/data/supervisor/store";
import type { Supervisor } from "../../../src/data/supervisor/supervisor";
import type { RouterOptions } from "../../../src/layouts/hass-router-page";
-import { HassRouterPage } from "../../../src/layouts/hass-router-page";
import type { HomeAssistant } from "../../../src/types";
+
import "./config/hassio-addon-config-tab";
import "./documentation/hassio-addon-documentation-tab";
// Don't codesplit the others, because it breaks the UI when pushed to a Pi
import "./info/hassio-addon-info-tab";
import "./log/hassio-addon-log-tab";
+import { customElement, property } from "lit/decorators";
+
+import { HassRouterPage } from "../../../src/layouts/hass-router-page";
+
@customElement("hassio-addon-router")
class HassioAddonRouter extends HassRouterPage {
@property({ type: Boolean }) public narrow = false;
diff --git a/hassio/src/addon-view/info/hassio-addon-info-tab.ts b/hassio/src/addon-view/info/hassio-addon-info-tab.ts
index e7d5120665..610889530f 100644
--- a/hassio/src/addon-view/info/hassio-addon-info-tab.ts
+++ b/hassio/src/addon-view/info/hassio-addon-info-tab.ts
@@ -1,14 +1,17 @@
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import "../../../../src/components/ha-spinner";
import type { HassioAddonDetails } from "../../../../src/data/hassio/addon";
import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
-import { haStyle } from "../../../../src/resources/styles";
import type { HomeAssistant, Route } from "../../../../src/types";
-import { hassioStyle } from "../../resources/hassio-style";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../../src/components/ha-spinner";
import "./hassio-addon-info";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { haStyle } from "../../../../src/resources/styles";
+import { hassioStyle } from "../../resources/hassio-style";
+
@customElement("hassio-addon-info-tab")
class HassioAddonInfoDashboard extends LitElement {
@property({ type: Boolean }) public narrow = false;
diff --git a/hassio/src/addon-view/info/hassio-addon-info.ts b/hassio/src/addon-view/info/hassio-addon-info.ts
index 02e1f627df..083b3eb372 100644
--- a/hassio/src/addon-view/info/hassio-addon-info.ts
+++ b/hassio/src/addon-view/info/hassio-addon-info.ts
@@ -1,4 +1,34 @@
+import type { HaSwitch } from "../../../../src/components/ha-switch";
+import type {
+ AddonCapability,
+ HassioAddonDetails,
+ HassioAddonSetOptionParams,
+ HassioAddonSetSecurityParams,
+} from "../../../../src/data/hassio/addon";
+import type { HassioStats } from "../../../../src/data/hassio/common";
+import type {
+ StoreAddon,
+ StoreAddonDetails,
+} from "../../../../src/data/supervisor/store";
+import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
+import type { HomeAssistant, Route } from "../../../../src/types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../../src/components/buttons/ha-progress-button";
+import "../../../../src/components/chips/ha-assist-chip";
+import "../../../../src/components/chips/ha-chip-set";
+import "../../../../src/components/ha-alert";
+import "../../../../src/components/ha-card";
+import "../../../../src/components/ha-formfield";
+import "../../../../src/components/ha-markdown";
+import "../../../../src/components/ha-settings-row";
+import "../../../../src/components/ha-svg-icon";
+import "../../../../src/components/ha-switch";
+import "../../components/hassio-card-content";
+import "../../components/supervisor-metric";
+import "../../update-available/update-available-card";
import "@material/mwc-button";
+
import {
mdiCheckCircle,
mdiChip,
@@ -22,31 +52,15 @@ import {
mdiPound,
mdiShield,
} from "@mdi/js";
-import type { CSSResultGroup, TemplateResult } from "lit";
import { LitElement, css, html } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import memoizeOne from "memoize-one";
+
import { atLeastVersion } from "../../../../src/common/config/version";
import { fireEvent } from "../../../../src/common/dom/fire_event";
import { navigate } from "../../../../src/common/navigate";
-import "../../../../src/components/buttons/ha-progress-button";
-import "../../../../src/components/ha-alert";
-import "../../../../src/components/ha-card";
-import "../../../../src/components/chips/ha-chip-set";
-import "../../../../src/components/chips/ha-assist-chip";
-import "../../../../src/components/ha-markdown";
-import "../../../../src/components/ha-settings-row";
-import "../../../../src/components/ha-svg-icon";
-import "../../../../src/components/ha-switch";
-import "../../../../src/components/ha-formfield";
-import type { HaSwitch } from "../../../../src/components/ha-switch";
-import type {
- AddonCapability,
- HassioAddonDetails,
- HassioAddonSetOptionParams,
- HassioAddonSetSecurityParams,
-} from "../../../../src/data/hassio/addon";
+import { capitalizeFirstLetter } from "../../../../src/common/string/capitalize-first-letter";
import {
fetchHassioAddonChangelog,
fetchHassioAddonInfo,
@@ -60,31 +74,20 @@ import {
uninstallHassioAddon,
validateHassioAddonOption,
} from "../../../../src/data/hassio/addon";
-import type { HassioStats } from "../../../../src/data/hassio/common";
import {
extractApiErrorMessage,
fetchHassioStats,
} from "../../../../src/data/hassio/common";
-import type {
- StoreAddon,
- StoreAddonDetails,
-} from "../../../../src/data/supervisor/store";
-import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
import {
showAlertDialog,
showConfirmationDialog,
} from "../../../../src/dialogs/generic/show-dialog-box";
import { mdiHomeAssistant } from "../../../../src/resources/home-assistant-logo-svg";
import { haStyle } from "../../../../src/resources/styles";
-import type { HomeAssistant, Route } from "../../../../src/types";
import { bytesToString } from "../../../../src/util/bytes-to-string";
-import "../../components/hassio-card-content";
-import "../../components/supervisor-metric";
import { showHassioMarkdownDialog } from "../../dialogs/markdown/show-dialog-hassio-markdown";
import { hassioStyle } from "../../resources/hassio-style";
-import "../../update-available/update-available-card";
import { addonArchIsSupported, extractChangelog } from "../../util/addon";
-import { capitalizeFirstLetter } from "../../../../src/common/string/capitalize-first-letter";
const STAGE_ICON = {
stable: mdiCheckCircle,
diff --git a/hassio/src/addon-view/log/hassio-addon-log-tab.ts b/hassio/src/addon-view/log/hassio-addon-log-tab.ts
index 2a2e05da05..73528d2a4c 100644
--- a/hassio/src/addon-view/log/hassio-addon-log-tab.ts
+++ b/hassio/src/addon-view/log/hassio-addon-log-tab.ts
@@ -1,3 +1,11 @@
+import type { HassioAddonDetails } from "../../../../src/data/hassio/addon";
+import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
+import type { HomeAssistant } from "../../../../src/types";
+
+import "../../../../src/components/ha-spinner";
+import "../../../../src/components/search-input";
+import "../../../../src/panels/config/logs/error-log-card";
+
import {
css,
type CSSResultGroup,
@@ -6,15 +14,10 @@ import {
type TemplateResult,
} from "lit";
import { customElement, property, state } from "lit/decorators";
-import "../../../../src/components/ha-spinner";
-import type { HassioAddonDetails } from "../../../../src/data/hassio/addon";
-import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
-import { haStyle } from "../../../../src/resources/styles";
-import type { HomeAssistant } from "../../../../src/types";
-import { hassioStyle } from "../../resources/hassio-style";
-import "../../../../src/panels/config/logs/error-log-card";
-import "../../../../src/components/search-input";
+
import { extractSearchParam } from "../../../../src/common/url/search-params";
+import { haStyle } from "../../../../src/resources/styles";
+import { hassioStyle } from "../../resources/hassio-style";
@customElement("hassio-addon-log-tab")
class HassioAddonLogDashboard extends LitElement {
diff --git a/hassio/src/backups/hassio-backups.ts b/hassio/src/backups/hassio-backups.ts
index 57c5fba4bf..ff011e6097 100644
--- a/hassio/src/backups/hassio-backups.ts
+++ b/hassio/src/backups/hassio-backups.ts
@@ -1,25 +1,33 @@
-import "@material/mwc-button";
-import type { ActionDetail } from "@material/mwc-list";
-import "@material/mwc-list/mwc-list-item";
-import { mdiBackupRestore, mdiDelete, mdiDotsVertical, mdiPlus } from "@mdi/js";
-import type { CSSResultGroup, PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import memoizeOne from "memoize-one";
-import { atLeastVersion } from "../../../src/common/config/version";
-import { relativeTime } from "../../../src/common/datetime/relative_time";
import type { HASSDomEvent } from "../../../src/common/dom/fire_event";
import type {
DataTableColumnContainer,
RowClickedEvent,
SelectionChangedEvent,
} from "../../../src/components/data-table/ha-data-table";
+import type { HassioBackup } from "../../../src/data/hassio/backup";
+import type { Supervisor } from "../../../src/data/supervisor/supervisor";
+import type { HaTabsSubpageDataTable } from "../../../src/layouts/hass-tabs-subpage-data-table";
+import type { HomeAssistant, Route } from "../../../src/types";
+import type { ActionDetail } from "@material/mwc-list";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
import "../../../src/components/ha-button-menu";
import "../../../src/components/ha-fab";
import "../../../src/components/ha-icon-button";
import "../../../src/components/ha-svg-icon";
-import type { HassioBackup } from "../../../src/data/hassio/backup";
+import "../../../src/layouts/hass-loading-screen";
+import "../../../src/layouts/hass-tabs-subpage-data-table";
+import "@material/mwc-button";
+import "@material/mwc-list/mwc-list-item";
+
+import { mdiBackupRestore, mdiDelete, mdiDotsVertical, mdiPlus } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+import memoizeOne from "memoize-one";
+
+import { atLeastVersion } from "../../../src/common/config/version";
+import { relativeTime } from "../../../src/common/datetime/relative_time";
import {
fetchHassioBackups,
friendlyFolderName,
@@ -27,22 +35,17 @@ import {
removeBackup,
} from "../../../src/data/hassio/backup";
import { extractApiErrorMessage } from "../../../src/data/hassio/common";
-import type { Supervisor } from "../../../src/data/supervisor/supervisor";
import {
showAlertDialog,
showConfirmationDialog,
} from "../../../src/dialogs/generic/show-dialog-box";
-import "../../../src/layouts/hass-tabs-subpage-data-table";
-import type { HaTabsSubpageDataTable } from "../../../src/layouts/hass-tabs-subpage-data-table";
import { haStyle } from "../../../src/resources/styles";
-import type { HomeAssistant, Route } from "../../../src/types";
import { showBackupUploadDialog } from "../dialogs/backup/show-dialog-backup-upload";
import { showHassioBackupLocationDialog } from "../dialogs/backup/show-dialog-hassio-backu-location";
import { showHassioBackupDialog } from "../dialogs/backup/show-dialog-hassio-backup";
import { showHassioCreateBackupDialog } from "../dialogs/backup/show-dialog-hassio-create-backup";
import { supervisorTabs } from "../hassio-tabs";
import { hassioStyle } from "../resources/hassio-style";
-import "../../../src/layouts/hass-loading-screen";
type BackupItem = HassioBackup & {
secondary: string;
diff --git a/hassio/src/components/hassio-card-content.ts b/hassio/src/components/hassio-card-content.ts
index dc40207d98..af7359522a 100644
--- a/hassio/src/components/hassio-card-content.ts
+++ b/hassio/src/components/hassio-card-content.ts
@@ -1,9 +1,11 @@
-import { mdiHelpCircle } from "@mdi/js";
+import type { HomeAssistant } from "../../../src/types";
import type { TemplateResult } from "lit";
+
+import "../../../src/components/ha-svg-icon";
+
+import { mdiHelpCircle } from "@mdi/js";
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
-import "../../../src/components/ha-svg-icon";
-import type { HomeAssistant } from "../../../src/types";
@customElement("hassio-card-content")
class HassioCardContent extends LitElement {
diff --git a/hassio/src/components/hassio-filter-addons.ts b/hassio/src/components/hassio-filter-addons.ts
index 21e5d0e29f..bd7516280a 100644
--- a/hassio/src/components/hassio-filter-addons.ts
+++ b/hassio/src/components/hassio-filter-addons.ts
@@ -1,6 +1,7 @@
-import type { IFuseOptions } from "fuse.js";
-import Fuse from "fuse.js";
import type { StoreAddon } from "../../../src/data/supervisor/store";
+import type { IFuseOptions } from "fuse.js";
+
+import Fuse from "fuse.js";
export function filterAndSort(addons: StoreAddon[], filter: string) {
const options: IFuseOptions = {
diff --git a/hassio/src/components/hassio-upload-backup.ts b/hassio/src/components/hassio-upload-backup.ts
index fee23e10a9..d84656498e 100644
--- a/hassio/src/components/hassio-upload-backup.ts
+++ b/hassio/src/components/hassio-upload-backup.ts
@@ -1,15 +1,18 @@
-import { mdiFolderUpload } from "@mdi/js";
+import type { LocalizeFunc } from "../../../src/common/translations/localize";
+import type { HassioBackup } from "../../../src/data/hassio/backup";
+import type { HomeAssistant } from "../../../src/types";
import type { TemplateResult } from "lit";
+
+import "../../../src/components/ha-file-upload";
+
+import { mdiFolderUpload } from "@mdi/js";
import { html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../../../src/common/dom/fire_event";
-import "../../../src/components/ha-file-upload";
-import type { HassioBackup } from "../../../src/data/hassio/backup";
import { uploadBackup } from "../../../src/data/hassio/backup";
import { extractApiErrorMessage } from "../../../src/data/hassio/common";
import { showAlertDialog } from "../../../src/dialogs/generic/show-dialog-box";
-import type { HomeAssistant } from "../../../src/types";
-import type { LocalizeFunc } from "../../../src/common/translations/localize";
declare global {
interface HASSDomEvents {
diff --git a/hassio/src/components/supervisor-backup-content.ts b/hassio/src/components/supervisor-backup-content.ts
index 422d8452eb..52a7bdf784 100644
--- a/hassio/src/components/supervisor-backup-content.ts
+++ b/hassio/src/components/supervisor-backup-content.ts
@@ -1,26 +1,29 @@
-import { mdiFolder, mdiPuzzle } from "@mdi/js";
-import type { TemplateResult } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, query } from "lit/decorators";
-import { atLeastVersion } from "../../../src/common/config/version";
-import { formatDate } from "../../../src/common/datetime/format_date";
-import { formatDateTime } from "../../../src/common/datetime/format_date_time";
-import "../../../src/components/ha-checkbox";
-import "../../../src/components/ha-formfield";
-import "../../../src/components/ha-textfield";
-import "../../../src/components/ha-password-field";
-import "../../../src/components/ha-radio";
import type { HaRadio } from "../../../src/components/ha-radio";
+import type { HaTextField } from "../../../src/components/ha-textfield";
import type {
HassioBackupDetail,
HassioFullBackupCreateParams,
HassioPartialBackupCreateParams,
} from "../../../src/data/hassio/backup";
import type { Supervisor } from "../../../src/data/supervisor/supervisor";
-import { mdiHomeAssistant } from "../../../src/resources/home-assistant-logo-svg";
import type { HomeAssistant } from "../../../src/types";
+import type { TemplateResult } from "lit";
+
+import "../../../src/components/ha-checkbox";
+import "../../../src/components/ha-formfield";
+import "../../../src/components/ha-password-field";
+import "../../../src/components/ha-radio";
+import "../../../src/components/ha-textfield";
import "./supervisor-formfield-label";
-import type { HaTextField } from "../../../src/components/ha-textfield";
+
+import { mdiFolder, mdiPuzzle } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, query } from "lit/decorators";
+
+import { atLeastVersion } from "../../../src/common/config/version";
+import { formatDate } from "../../../src/common/datetime/format_date";
+import { formatDateTime } from "../../../src/common/datetime/format_date_time";
+import { mdiHomeAssistant } from "../../../src/resources/home-assistant-logo-svg";
interface CheckboxItem {
slug: string;
diff --git a/hassio/src/components/supervisor-formfield-label.ts b/hassio/src/components/supervisor-formfield-label.ts
index ce04c6d8d6..dd5c171fc0 100644
--- a/hassio/src/components/supervisor-formfield-label.ts
+++ b/hassio/src/components/supervisor-formfield-label.ts
@@ -1,7 +1,9 @@
import type { TemplateResult } from "lit";
+
+import "../../../src/components/ha-svg-icon";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
-import "../../../src/components/ha-svg-icon";
@customElement("supervisor-formfield-label")
class SupervisorFormfieldLabel extends LitElement {
diff --git a/hassio/src/components/supervisor-metric.ts b/hassio/src/components/supervisor-metric.ts
index 19c33cfbc8..f00d2a89b2 100644
--- a/hassio/src/components/supervisor-metric.ts
+++ b/hassio/src/components/supervisor-metric.ts
@@ -1,9 +1,12 @@
import type { TemplateResult } from "lit";
+
+import "../../../src/components/ha-bar";
+import "../../../src/components/ha-settings-row";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
-import "../../../src/components/ha-bar";
-import "../../../src/components/ha-settings-row";
+
import { roundWithOneDecimal } from "../../../src/util/calculate";
@customElement("supervisor-metric")
diff --git a/hassio/src/dashboard/hassio-addons.ts b/hassio/src/dashboard/hassio-addons.ts
index d83c8a0f0b..a8670e1a65 100644
--- a/hassio/src/dashboard/hassio-addons.ts
+++ b/hassio/src/dashboard/hassio-addons.ts
@@ -1,18 +1,21 @@
-import { mdiArrowUpBoldCircle, mdiPuzzle } from "@mdi/js";
+import type { HassioAddonInfo } from "../../../src/data/hassio/addon";
+import type { Supervisor } from "../../../src/data/supervisor/supervisor";
+import type { HomeAssistant } from "../../../src/types";
import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../src/components/ha-card";
+import "../../../src/components/search-input";
+import "../components/hassio-card-content";
+
+import { mdiArrowUpBoldCircle, mdiPuzzle } from "@mdi/js";
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { atLeastVersion } from "../../../src/common/config/version";
import { navigate } from "../../../src/common/navigate";
import { caseInsensitiveStringCompare } from "../../../src/common/string/compare";
-import "../../../src/components/ha-card";
-import "../../../src/components/search-input";
-import type { HassioAddonInfo } from "../../../src/data/hassio/addon";
-import type { Supervisor } from "../../../src/data/supervisor/supervisor";
import { haStyle } from "../../../src/resources/styles";
-import type { HomeAssistant } from "../../../src/types";
-import "../components/hassio-card-content";
import { hassioStyle } from "../resources/hassio-style";
@customElement("hassio-addons")
diff --git a/hassio/src/dashboard/hassio-dashboard.ts b/hassio/src/dashboard/hassio-dashboard.ts
index 531f171541..2646f003c2 100644
--- a/hassio/src/dashboard/hassio-dashboard.ts
+++ b/hassio/src/dashboard/hassio-dashboard.ts
@@ -1,21 +1,24 @@
-import { mdiRefresh, mdiStorePlus } from "@mdi/js";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { LitElement, css, html } from "lit";
-import { customElement, property } from "lit/decorators";
-import { atLeastVersion } from "../../../src/common/config/version";
-import { fireEvent } from "../../../src/common/dom/fire_event";
-import "../../../src/components/ha-fab";
-import { reloadHassioAddons } from "../../../src/data/hassio/addon";
-import { extractApiErrorMessage } from "../../../src/data/hassio/common";
import type { Supervisor } from "../../../src/data/supervisor/supervisor";
-import { showAlertDialog } from "../../../src/dialogs/generic/show-dialog-box";
+import type { HomeAssistant, Route } from "../../../src/types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../src/components/ha-fab";
import "../../../src/layouts/hass-subpage";
import "../../../src/layouts/hass-tabs-subpage";
-import { haStyle } from "../../../src/resources/styles";
-import type { HomeAssistant, Route } from "../../../src/types";
-import { supervisorTabs } from "../hassio-tabs";
import "./hassio-addons";
+import { mdiRefresh, mdiStorePlus } from "@mdi/js";
+import { LitElement, css, html } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { atLeastVersion } from "../../../src/common/config/version";
+import { fireEvent } from "../../../src/common/dom/fire_event";
+import { reloadHassioAddons } from "../../../src/data/hassio/addon";
+import { extractApiErrorMessage } from "../../../src/data/hassio/common";
+import { showAlertDialog } from "../../../src/dialogs/generic/show-dialog-box";
+import { haStyle } from "../../../src/resources/styles";
+import { supervisorTabs } from "../hassio-tabs";
+
@customElement("hassio-dashboard")
class HassioDashboard extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/hassio/src/dashboard/hassio-update.ts b/hassio/src/dashboard/hassio-update.ts
index 4c0a436662..3320950b1d 100644
--- a/hassio/src/dashboard/hassio-update.ts
+++ b/hassio/src/dashboard/hassio-update.ts
@@ -1,21 +1,24 @@
-import "@material/mwc-button";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import "../../../src/components/buttons/ha-progress-button";
-import "../../../src/components/ha-card";
-import "../../../src/components/ha-settings-row";
-import "../../../src/components/ha-svg-icon";
import type { HassioHassOSInfo } from "../../../src/data/hassio/host";
import type {
HassioHomeAssistantInfo,
HassioSupervisorInfo,
} from "../../../src/data/hassio/supervisor";
import type { Supervisor } from "../../../src/data/supervisor/supervisor";
+import type { HomeAssistant } from "../../../src/types";
+import type { CSSResultGroup } from "lit";
+
+import "../../../src/components/buttons/ha-progress-button";
+import "../../../src/components/ha-card";
+import "../../../src/components/ha-settings-row";
+import "../../../src/components/ha-svg-icon";
+import "@material/mwc-button";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
import { mdiHomeAssistant } from "../../../src/resources/home-assistant-logo-svg";
import { haStyle } from "../../../src/resources/styles";
-import type { HomeAssistant } from "../../../src/types";
import { hassioStyle } from "../resources/hassio-style";
const computeVersion = (key: string, version: string): string =>
diff --git a/hassio/src/dialogs/backup/dialog-hassio-backup-location.ts b/hassio/src/dialogs/backup/dialog-hassio-backup-location.ts
index aaa176019c..0254144dc6 100644
--- a/hassio/src/dialogs/backup/dialog-hassio-backup-location.ts
+++ b/hassio/src/dialogs/backup/dialog-hassio-backup-location.ts
@@ -1,17 +1,20 @@
-import "@material/mwc-button/mwc-button";
+import type { SchemaUnion } from "../../../../src/components/ha-form/types";
+import type { HomeAssistant } from "../../../../src/types";
+import type { HassioBackupLocationDialogParams } from "./show-dialog-hassio-backu-location";
import type { CSSResultGroup } from "lit";
+
+import "../../../../src/components/ha-dialog";
+import "../../../../src/components/ha-form/ha-form";
+import "@material/mwc-button/mwc-button";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../../../src/common/dom/fire_event";
-import "../../../../src/components/ha-dialog";
-import "../../../../src/components/ha-form/ha-form";
-import type { SchemaUnion } from "../../../../src/components/ha-form/types";
import { extractApiErrorMessage } from "../../../../src/data/hassio/common";
import { changeMountOptions } from "../../../../src/data/supervisor/mounts";
import { haStyle, haStyleDialog } from "../../../../src/resources/styles";
-import type { HomeAssistant } from "../../../../src/types";
-import type { HassioBackupLocationDialogParams } from "./show-dialog-hassio-backu-location";
const SCHEMA = memoizeOne(
() =>
diff --git a/hassio/src/dialogs/backup/dialog-hassio-backup-upload.ts b/hassio/src/dialogs/backup/dialog-hassio-backup-upload.ts
index f96ac681f7..c2da08d6b9 100644
--- a/hassio/src/dialogs/backup/dialog-hassio-backup-upload.ts
+++ b/hassio/src/dialogs/backup/dialog-hassio-backup-upload.ts
@@ -1,16 +1,19 @@
-import { mdiClose } from "@mdi/js";
+import type { HassDialog } from "../../../../src/dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../../src/types";
+import type { HassioBackupUploadDialogParams } from "./show-dialog-backup-upload";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../src/common/dom/fire_event";
+
+import "../../../../src/components/ha-dialog";
import "../../../../src/components/ha-header-bar";
import "../../../../src/components/ha-icon-button";
-import "../../../../src/components/ha-dialog";
-import type { HassDialog } from "../../../../src/dialogs/make-dialog-manager";
-import { haStyleDialog } from "../../../../src/resources/styles";
-import type { HomeAssistant } from "../../../../src/types";
import "../../components/hassio-upload-backup";
-import type { HassioBackupUploadDialogParams } from "./show-dialog-backup-upload";
+
+import { mdiClose } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../src/common/dom/fire_event";
+import { haStyleDialog } from "../../../../src/resources/styles";
@customElement("dialog-hassio-backup-upload")
export class DialogHassioBackupUpload
diff --git a/hassio/src/dialogs/backup/dialog-hassio-backup.ts b/hassio/src/dialogs/backup/dialog-hassio-backup.ts
index 7be8b0d1be..7f137fc9d0 100644
--- a/hassio/src/dialogs/backup/dialog-hassio-backup.ts
+++ b/hassio/src/dialogs/backup/dialog-hassio-backup.ts
@@ -1,24 +1,33 @@
+import type { HaMdDialog } from "../../../../src/components/ha-md-dialog";
+import type { HassioBackupDetail } from "../../../../src/data/hassio/backup";
+import type { HassDialog } from "../../../../src/dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../../src/types";
+import type { SupervisorBackupContent } from "../../components/supervisor-backup-content";
+import type { HassioBackupDialogParams } from "./show-dialog-hassio-backup";
import type { ActionDetail } from "@material/mwc-list";
-import "@material/mwc-list/mwc-list-item";
-import { mdiClose, mdiDotsVertical } from "@mdi/js";
import type { CSSResultGroup } from "lit";
+
+import "../../../../src/components/buttons/ha-progress-button";
+import "../../../../src/components/ha-alert";
+import "../../../../src/components/ha-button";
+import "../../../../src/components/ha-button-menu";
+import "../../../../src/components/ha-dialog-header";
+import "../../../../src/components/ha-header-bar";
+import "../../../../src/components/ha-icon-button";
+import "../../../../src/components/ha-md-dialog";
+import "../../../../src/components/ha-spinner";
+import "../../components/supervisor-backup-content";
+import "@material/mwc-list/mwc-list-item";
+
+import { mdiClose, mdiDotsVertical } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
+
import { atLeastVersion } from "../../../../src/common/config/version";
import { fireEvent } from "../../../../src/common/dom/fire_event";
import { stopPropagation } from "../../../../src/common/dom/stop_propagation";
import { slugify } from "../../../../src/common/string/slugify";
-import "../../../../src/components/ha-md-dialog";
-import "../../../../src/components/ha-dialog-header";
-import "../../../../src/components/buttons/ha-progress-button";
-import "../../../../src/components/ha-alert";
-import "../../../../src/components/ha-spinner";
-import "../../../../src/components/ha-button";
-import "../../../../src/components/ha-button-menu";
-import "../../../../src/components/ha-header-bar";
-import "../../../../src/components/ha-icon-button";
import { getSignedPath } from "../../../../src/data/auth";
-import type { HassioBackupDetail } from "../../../../src/data/hassio/backup";
import {
fetchHassioBackupInfo,
removeBackup,
@@ -29,14 +38,8 @@ import {
showAlertDialog,
showConfirmationDialog,
} from "../../../../src/dialogs/generic/show-dialog-box";
-import type { HassDialog } from "../../../../src/dialogs/make-dialog-manager";
import { haStyle, haStyleDialog } from "../../../../src/resources/styles";
-import type { HomeAssistant } from "../../../../src/types";
import { fileDownload } from "../../../../src/util/file_download";
-import "../../components/supervisor-backup-content";
-import type { SupervisorBackupContent } from "../../components/supervisor-backup-content";
-import type { HassioBackupDialogParams } from "./show-dialog-hassio-backup";
-import type { HaMdDialog } from "../../../../src/components/ha-md-dialog";
@customElement("dialog-hassio-backup")
class HassioBackupDialog
diff --git a/hassio/src/dialogs/backup/dialog-hassio-create-backup.ts b/hassio/src/dialogs/backup/dialog-hassio-create-backup.ts
index 5728084742..c193dd44ed 100644
--- a/hassio/src/dialogs/backup/dialog-hassio-create-backup.ts
+++ b/hassio/src/dialogs/backup/dialog-hassio-create-backup.ts
@@ -1,11 +1,18 @@
-import "@material/mwc-button";
+import type { HomeAssistant } from "../../../../src/types";
+import type { SupervisorBackupContent } from "../../components/supervisor-backup-content";
+import type { HassioCreateBackupDialogParams } from "./show-dialog-hassio-create-backup";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { fireEvent } from "../../../../src/common/dom/fire_event";
+
import "../../../../src/components/buttons/ha-progress-button";
import "../../../../src/components/ha-alert";
import "../../../../src/components/ha-spinner";
+import "../../components/supervisor-backup-content";
+import "@material/mwc-button";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../src/common/dom/fire_event";
import { createCloseHeading } from "../../../../src/components/ha-dialog";
import {
createHassioFullBackup,
@@ -14,10 +21,6 @@ import {
import { extractApiErrorMessage } from "../../../../src/data/hassio/common";
import { showAlertDialog } from "../../../../src/dialogs/generic/show-dialog-box";
import { haStyle, haStyleDialog } from "../../../../src/resources/styles";
-import type { HomeAssistant } from "../../../../src/types";
-import "../../components/supervisor-backup-content";
-import type { SupervisorBackupContent } from "../../components/supervisor-backup-content";
-import type { HassioCreateBackupDialogParams } from "./show-dialog-hassio-create-backup";
@customElement("dialog-hassio-create-backup")
class HassioCreateBackupDialog extends LitElement {
diff --git a/hassio/src/dialogs/backup/show-dialog-backup-upload.ts b/hassio/src/dialogs/backup/show-dialog-backup-upload.ts
index 861f192595..d61f37cf8d 100644
--- a/hassio/src/dialogs/backup/show-dialog-backup-upload.ts
+++ b/hassio/src/dialogs/backup/show-dialog-backup-upload.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../../src/common/dom/fire_event";
import "./dialog-hassio-backup-upload";
+import { fireEvent } from "../../../../src/common/dom/fire_event";
+
export interface HassioBackupUploadDialogParams {
showBackup: (slug: string) => void;
reloadBackup?: () => Promise;
diff --git a/hassio/src/dialogs/backup/show-dialog-hassio-backu-location.ts b/hassio/src/dialogs/backup/show-dialog-hassio-backu-location.ts
index 12ac69bc82..4f44b1c70a 100644
--- a/hassio/src/dialogs/backup/show-dialog-hassio-backu-location.ts
+++ b/hassio/src/dialogs/backup/show-dialog-hassio-backu-location.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../../src/common/dom/fire_event";
import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
+import { fireEvent } from "../../../../src/common/dom/fire_event";
+
export interface HassioBackupLocationDialogParams {
supervisor: Supervisor;
}
diff --git a/hassio/src/dialogs/backup/show-dialog-hassio-backup.ts b/hassio/src/dialogs/backup/show-dialog-hassio-backup.ts
index 57b354f087..efcd9ac473 100644
--- a/hassio/src/dialogs/backup/show-dialog-hassio-backup.ts
+++ b/hassio/src/dialogs/backup/show-dialog-hassio-backup.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../../src/common/dom/fire_event";
import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
+import { fireEvent } from "../../../../src/common/dom/fire_event";
+
export interface HassioBackupDialogParams {
slug: string;
onDelete?: () => void;
diff --git a/hassio/src/dialogs/backup/show-dialog-hassio-create-backup.ts b/hassio/src/dialogs/backup/show-dialog-hassio-create-backup.ts
index aada29d196..bf729979b8 100644
--- a/hassio/src/dialogs/backup/show-dialog-hassio-create-backup.ts
+++ b/hassio/src/dialogs/backup/show-dialog-hassio-create-backup.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../../src/common/dom/fire_event";
import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
+import { fireEvent } from "../../../../src/common/dom/fire_event";
+
export interface HassioCreateBackupDialogParams {
supervisor: Supervisor;
onCreate: () => void;
diff --git a/hassio/src/dialogs/datadisk/dialog-hassio-datadisk.ts b/hassio/src/dialogs/datadisk/dialog-hassio-datadisk.ts
index 7555d9194e..726d881039 100644
--- a/hassio/src/dialogs/datadisk/dialog-hassio-datadisk.ts
+++ b/hassio/src/dialogs/datadisk/dialog-hassio-datadisk.ts
@@ -1,23 +1,26 @@
-import "@material/mwc-list/mwc-list-item";
+import type { DatadiskList } from "../../../../src/data/hassio/host";
+import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
+import type { HomeAssistant } from "../../../../src/types";
+import type { HassioDatatiskDialogParams } from "./show-dialog-hassio-datadisk";
import type { CSSResultGroup } from "lit";
+
+import "../../../../src/components/ha-dialog";
+import "../../../../src/components/ha-select";
+import "../../../../src/components/ha-spinner";
+import "@material/mwc-list/mwc-list-item";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../../../src/common/dom/fire_event";
-import "../../../../src/components/ha-spinner";
-import "../../../../src/components/ha-select";
-import "../../../../src/components/ha-dialog";
import {
extractApiErrorMessage,
ignoreSupervisorError,
} from "../../../../src/data/hassio/common";
-import type { DatadiskList } from "../../../../src/data/hassio/host";
import { listDatadisks, moveDatadisk } from "../../../../src/data/hassio/host";
-import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
import { showAlertDialog } from "../../../../src/dialogs/generic/show-dialog-box";
import { haStyle, haStyleDialog } from "../../../../src/resources/styles";
-import type { HomeAssistant } from "../../../../src/types";
-import type { HassioDatatiskDialogParams } from "./show-dialog-hassio-datadisk";
const calculateMoveTime = memoizeOne((supervisor: Supervisor): number => {
const speed = supervisor.host.disk_life_time !== "" ? 30 : 10;
diff --git a/hassio/src/dialogs/datadisk/show-dialog-hassio-datadisk.ts b/hassio/src/dialogs/datadisk/show-dialog-hassio-datadisk.ts
index bef5dd64c8..97b13fba84 100644
--- a/hassio/src/dialogs/datadisk/show-dialog-hassio-datadisk.ts
+++ b/hassio/src/dialogs/datadisk/show-dialog-hassio-datadisk.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../../src/common/dom/fire_event";
import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
+import { fireEvent } from "../../../../src/common/dom/fire_event";
+
export interface HassioDatatiskDialogParams {
supervisor: Supervisor;
}
diff --git a/hassio/src/dialogs/hardware/dialog-hassio-hardware.ts b/hassio/src/dialogs/hardware/dialog-hassio-hardware.ts
index 1056760be8..0f1ad15888 100644
--- a/hassio/src/dialogs/hardware/dialog-hassio-hardware.ts
+++ b/hassio/src/dialogs/hardware/dialog-hassio-hardware.ts
@@ -1,19 +1,22 @@
-import { mdiClose } from "@mdi/js";
-import { dump } from "js-yaml";
+import type { HassioHardwareInfo } from "../../../../src/data/hassio/hardware";
+import type { HomeAssistant } from "../../../../src/types";
+import type { HassioHardwareDialogParams } from "./show-dialog-hassio-hardware";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../src/common/dom/fire_event";
-import { stringCompare } from "../../../../src/common/string/compare";
+
import "../../../../src/components/ha-dialog";
import "../../../../src/components/ha-expansion-panel";
import "../../../../src/components/ha-icon-button";
import "../../../../src/components/search-input";
-import type { HassioHardwareInfo } from "../../../../src/data/hassio/hardware";
+
+import { mdiClose } from "@mdi/js";
+import { dump } from "js-yaml";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../src/common/dom/fire_event";
+import { stringCompare } from "../../../../src/common/string/compare";
import { haStyle, haStyleDialog } from "../../../../src/resources/styles";
-import type { HomeAssistant } from "../../../../src/types";
-import type { HassioHardwareDialogParams } from "./show-dialog-hassio-hardware";
const _filterDevices = memoizeOne(
(
diff --git a/hassio/src/dialogs/hardware/show-dialog-hassio-hardware.ts b/hassio/src/dialogs/hardware/show-dialog-hassio-hardware.ts
index b43410bb65..4cc880696e 100644
--- a/hassio/src/dialogs/hardware/show-dialog-hassio-hardware.ts
+++ b/hassio/src/dialogs/hardware/show-dialog-hassio-hardware.ts
@@ -1,7 +1,8 @@
-import { fireEvent } from "../../../../src/common/dom/fire_event";
import type { HassioHardwareInfo } from "../../../../src/data/hassio/hardware";
import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
+import { fireEvent } from "../../../../src/common/dom/fire_event";
+
export interface HassioHardwareDialogParams {
supervisor: Supervisor;
hardware: HassioHardwareInfo;
diff --git a/hassio/src/dialogs/markdown/dialog-hassio-markdown.ts b/hassio/src/dialogs/markdown/dialog-hassio-markdown.ts
index d7fcc8f889..57389be10b 100644
--- a/hassio/src/dialogs/markdown/dialog-hassio-markdown.ts
+++ b/hassio/src/dialogs/markdown/dialog-hassio-markdown.ts
@@ -1,12 +1,15 @@
+import type { HomeAssistant } from "../../../../src/types";
+import type { HassioMarkdownDialogParams } from "./show-dialog-hassio-markdown";
import type { CSSResultGroup } from "lit";
+
+import "../../../../src/components/ha-markdown";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { createCloseHeading } from "../../../../src/components/ha-dialog";
-import "../../../../src/components/ha-markdown";
import { haStyleDialog } from "../../../../src/resources/styles";
-import type { HomeAssistant } from "../../../../src/types";
import { hassioStyle } from "../../resources/hassio-style";
-import type { HassioMarkdownDialogParams } from "./show-dialog-hassio-markdown";
@customElement("dialog-hassio-markdown")
class HassioMarkdownDialog extends LitElement {
diff --git a/hassio/src/dialogs/network/dialog-hassio-network.ts b/hassio/src/dialogs/network/dialog-hassio-network.ts
index 5678b57ee7..62a4db07a3 100644
--- a/hassio/src/dialogs/network/dialog-hassio-network.ts
+++ b/hassio/src/dialogs/network/dialog-hassio-network.ts
@@ -1,16 +1,16 @@
-import "@material/mwc-button/mwc-button";
-import "@material/mwc-list/mwc-list";
-import "@material/mwc-list/mwc-list-item";
-import "@material/mwc-tab";
-import "@material/mwc-tab-bar";
-import { mdiClose } from "@mdi/js";
+import type { HaTextField } from "../../../../src/components/ha-textfield";
+import type {
+ AccessPoints,
+ NetworkInterface,
+ WifiConfiguration,
+} from "../../../../src/data/hassio/network";
+import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
+import type { HassDialog } from "../../../../src/dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../../src/types";
+import type { HassioNetworkDialogParams } from "./show-dialog-network";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { cache } from "lit/directives/cache";
-import { fireEvent } from "../../../../src/common/dom/fire_event";
+
import "../../../../src/components/ha-alert";
-import "../../../../src/components/ha-spinner";
import "../../../../src/components/ha-dialog";
import "../../../../src/components/ha-expansion-panel";
import "../../../../src/components/ha-formfield";
@@ -18,27 +18,30 @@ import "../../../../src/components/ha-header-bar";
import "../../../../src/components/ha-icon-button";
import "../../../../src/components/ha-password-field";
import "../../../../src/components/ha-radio";
+import "../../../../src/components/ha-spinner";
import "../../../../src/components/ha-textfield";
-import type { HaTextField } from "../../../../src/components/ha-textfield";
+import "@material/mwc-button/mwc-button";
+import "@material/mwc-list/mwc-list";
+import "@material/mwc-list/mwc-list-item";
+import "@material/mwc-tab";
+import "@material/mwc-tab-bar";
+
+import { mdiClose } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { cache } from "lit/directives/cache";
+
+import { fireEvent } from "../../../../src/common/dom/fire_event";
import { extractApiErrorMessage } from "../../../../src/data/hassio/common";
-import type {
- AccessPoints,
- NetworkInterface,
- WifiConfiguration,
-} from "../../../../src/data/hassio/network";
import {
accesspointScan,
updateNetworkInterface,
} from "../../../../src/data/hassio/network";
-import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
import {
showAlertDialog,
showConfirmationDialog,
} from "../../../../src/dialogs/generic/show-dialog-box";
-import type { HassDialog } from "../../../../src/dialogs/make-dialog-manager";
import { haStyleDialog } from "../../../../src/resources/styles";
-import type { HomeAssistant } from "../../../../src/types";
-import type { HassioNetworkDialogParams } from "./show-dialog-network";
const IP_VERSIONS = ["ipv4", "ipv6"];
diff --git a/hassio/src/dialogs/network/show-dialog-network.ts b/hassio/src/dialogs/network/show-dialog-network.ts
index 507b4938d3..b586150d07 100644
--- a/hassio/src/dialogs/network/show-dialog-network.ts
+++ b/hassio/src/dialogs/network/show-dialog-network.ts
@@ -1,7 +1,9 @@
-import { fireEvent } from "../../../../src/common/dom/fire_event";
import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
+
import "./dialog-hassio-network";
+import { fireEvent } from "../../../../src/common/dom/fire_event";
+
export interface HassioNetworkDialogParams {
supervisor: Supervisor;
loadData: () => Promise;
diff --git a/hassio/src/dialogs/registries/dialog-hassio-registries.ts b/hassio/src/dialogs/registries/dialog-hassio-registries.ts
index 4c4129a1e4..081d3f92ff 100644
--- a/hassio/src/dialogs/registries/dialog-hassio-registries.ts
+++ b/hassio/src/dialogs/registries/dialog-hassio-registries.ts
@@ -1,24 +1,27 @@
-import "@material/mwc-button/mwc-button";
-import { mdiDelete } from "@mdi/js";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { createCloseHeading } from "../../../../src/components/ha-dialog";
-import "../../../../src/components/ha-form/ha-form";
import type { SchemaUnion } from "../../../../src/components/ha-form/types";
+import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
+import type { HomeAssistant } from "../../../../src/types";
+import type { RegistriesDialogParams } from "./show-dialog-registries";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../../src/components/ha-form/ha-form";
import "../../../../src/components/ha-icon-button";
import "../../../../src/components/ha-settings-row";
+import "@material/mwc-button/mwc-button";
+
+import { mdiDelete } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { createCloseHeading } from "../../../../src/components/ha-dialog";
import { extractApiErrorMessage } from "../../../../src/data/hassio/common";
import {
addHassioDockerRegistry,
fetchHassioDockerRegistries,
removeHassioDockerRegistry,
} from "../../../../src/data/hassio/docker";
-import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
import { showAlertDialog } from "../../../../src/dialogs/generic/show-dialog-box";
import { haStyle, haStyleDialog } from "../../../../src/resources/styles";
-import type { HomeAssistant } from "../../../../src/types";
-import type { RegistriesDialogParams } from "./show-dialog-registries";
const SCHEMA = [
{
diff --git a/hassio/src/dialogs/registries/show-dialog-registries.ts b/hassio/src/dialogs/registries/show-dialog-registries.ts
index 0ca9bf67dc..f8b9c3251e 100644
--- a/hassio/src/dialogs/registries/show-dialog-registries.ts
+++ b/hassio/src/dialogs/registries/show-dialog-registries.ts
@@ -1,7 +1,9 @@
-import { fireEvent } from "../../../../src/common/dom/fire_event";
import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
+
import "./dialog-hassio-registries";
+import { fireEvent } from "../../../../src/common/dom/fire_event";
+
export interface RegistriesDialogParams {
supervisor: Supervisor;
}
diff --git a/hassio/src/dialogs/repositories/dialog-hassio-repositories.ts b/hassio/src/dialogs/repositories/dialog-hassio-repositories.ts
index b2b73424eb..ba6ad665c0 100644
--- a/hassio/src/dialogs/repositories/dialog-hassio-repositories.ts
+++ b/hassio/src/dialogs/repositories/dialog-hassio-repositories.ts
@@ -1,20 +1,29 @@
-import "@material/mwc-button/mwc-button";
-import { mdiDelete, mdiDeleteOff } from "@mdi/js";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../src/common/dom/fire_event";
-import { caseInsensitiveStringCompare } from "../../../../src/common/string/compare";
-import "../../../../src/components/ha-alert";
-import "../../../../src/components/ha-tooltip";
-import "../../../../src/components/ha-spinner";
-import { createCloseHeading } from "../../../../src/components/ha-dialog";
-import "../../../../src/components/ha-icon-button";
+import type { HaTextField } from "../../../../src/components/ha-textfield";
import type {
HassioAddonInfo,
HassioAddonRepository,
} from "../../../../src/data/hassio/addon";
+import type { HomeAssistant } from "../../../../src/types";
+import type { HassioRepositoryDialogParams } from "./show-dialog-repositories";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../src/components/ha-alert";
+import "../../../../src/components/ha-icon-button";
+import "../../../../src/components/ha-md-list";
+import "../../../../src/components/ha-md-list-item";
+import "../../../../src/components/ha-spinner";
+import "../../../../src/components/ha-textfield";
+import "../../../../src/components/ha-tooltip";
+import "@material/mwc-button/mwc-button";
+
+import { mdiDelete, mdiDeleteOff } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../src/common/dom/fire_event";
+import { caseInsensitiveStringCompare } from "../../../../src/common/string/compare";
+import { createCloseHeading } from "../../../../src/components/ha-dialog";
import { extractApiErrorMessage } from "../../../../src/data/hassio/common";
import {
addStoreRepository,
@@ -22,12 +31,6 @@ import {
removeStoreRepository,
} from "../../../../src/data/supervisor/store";
import { haStyle, haStyleDialog } from "../../../../src/resources/styles";
-import type { HomeAssistant } from "../../../../src/types";
-import type { HassioRepositoryDialogParams } from "./show-dialog-repositories";
-import type { HaTextField } from "../../../../src/components/ha-textfield";
-import "../../../../src/components/ha-textfield";
-import "../../../../src/components/ha-md-list";
-import "../../../../src/components/ha-md-list-item";
@customElement("dialog-hassio-repositories")
class HassioRepositoriesDialog extends LitElement {
diff --git a/hassio/src/dialogs/repositories/show-dialog-repositories.ts b/hassio/src/dialogs/repositories/show-dialog-repositories.ts
index 1b540c883c..700e131e0e 100644
--- a/hassio/src/dialogs/repositories/show-dialog-repositories.ts
+++ b/hassio/src/dialogs/repositories/show-dialog-repositories.ts
@@ -1,7 +1,9 @@
-import { fireEvent } from "../../../../src/common/dom/fire_event";
import type { Supervisor } from "../../../../src/data/supervisor/supervisor";
+
import "./dialog-hassio-repositories";
+import { fireEvent } from "../../../../src/common/dom/fire_event";
+
export interface HassioRepositoryDialogParams {
supervisor: Supervisor;
url?: string;
diff --git a/hassio/src/dialogs/suggestAddonRestart.ts b/hassio/src/dialogs/suggestAddonRestart.ts
index 74165ced94..50c10c524e 100644
--- a/hassio/src/dialogs/suggestAddonRestart.ts
+++ b/hassio/src/dialogs/suggestAddonRestart.ts
@@ -1,13 +1,14 @@
-import type { LitElement } from "lit";
import type { HassioAddonDetails } from "../../../src/data/hassio/addon";
+import type { Supervisor } from "../../../src/data/supervisor/supervisor";
+import type { HomeAssistant } from "../../../src/types";
+import type { LitElement } from "lit";
+
import { restartHassioAddon } from "../../../src/data/hassio/addon";
import { extractApiErrorMessage } from "../../../src/data/hassio/common";
-import type { Supervisor } from "../../../src/data/supervisor/supervisor";
import {
showAlertDialog,
showConfirmationDialog,
} from "../../../src/dialogs/generic/show-dialog-box";
-import type { HomeAssistant } from "../../../src/types";
export const suggestAddonRestart = async (
element: LitElement,
diff --git a/hassio/src/hassio-main.ts b/hassio/src/hassio-main.ts
index 7afbf5d333..772ad5361c 100644
--- a/hassio/src/hassio-main.ts
+++ b/hassio/src/hassio-main.ts
@@ -1,17 +1,20 @@
+import type { HassioPanelInfo } from "../../src/data/hassio/supervisor";
+import type { Supervisor } from "../../src/data/supervisor/supervisor";
+import type { HomeAssistant } from "../../src/types";
import type { PropertyValues } from "lit";
+
+import "./hassio-router";
+
import { html } from "lit";
import { customElement, property } from "lit/decorators";
+
import { atLeastVersion } from "../../src/common/config/version";
import { applyThemesOnElement } from "../../src/common/dom/apply_themes_on_element";
import { fireEvent } from "../../src/common/dom/fire_event";
import { mainWindow } from "../../src/common/dom/get_main_window";
import { isNavigationClick } from "../../src/common/dom/is-navigation-click";
import { navigate } from "../../src/common/navigate";
-import type { HassioPanelInfo } from "../../src/data/hassio/supervisor";
-import type { Supervisor } from "../../src/data/supervisor/supervisor";
import { makeDialogManager } from "../../src/dialogs/make-dialog-manager";
-import type { HomeAssistant } from "../../src/types";
-import "./hassio-router";
import { SupervisorBaseElement } from "./supervisor-base-element";
@customElement("hassio-main")
diff --git a/hassio/src/hassio-my-redirect.ts b/hassio/src/hassio-my-redirect.ts
index 12f311038e..027206da5f 100644
--- a/hassio/src/hassio-my-redirect.ts
+++ b/hassio/src/hassio-my-redirect.ts
@@ -1,20 +1,23 @@
-import { sanitizeUrl } from "@braintree/sanitize-url";
-import type { TemplateResult } from "lit";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { navigate } from "../../src/common/navigate";
-import {
- createSearchParam,
- extractSearchParamsObject,
-} from "../../src/common/url/search-params";
import type { Supervisor } from "../../src/data/supervisor/supervisor";
-import "../../src/layouts/hass-error-screen";
import type {
ParamType,
Redirect,
Redirects,
} from "../../src/panels/my/ha-panel-my";
import type { HomeAssistant, Route } from "../../src/types";
+import type { TemplateResult } from "lit";
+
+import "../../src/layouts/hass-error-screen";
+
+import { sanitizeUrl } from "@braintree/sanitize-url";
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { navigate } from "../../src/common/navigate";
+import {
+ createSearchParam,
+ extractSearchParamsObject,
+} from "../../src/common/url/search-params";
export const REDIRECTS: Redirects = {
supervisor: {
diff --git a/hassio/src/hassio-panel-router.ts b/hassio/src/hassio-panel-router.ts
index 42eff379f5..af8ca3ef28 100644
--- a/hassio/src/hassio-panel-router.ts
+++ b/hassio/src/hassio-panel-router.ts
@@ -1,11 +1,14 @@
-import { customElement, property } from "lit/decorators";
import type { Supervisor } from "../../src/data/supervisor/supervisor";
import type { RouterOptions } from "../../src/layouts/hass-router-page";
-import { HassRouterPage } from "../../src/layouts/hass-router-page";
import type { HomeAssistant, Route } from "../../src/types";
+
// Don't codesplit it, that way the dashboard always loads fast.
import "./dashboard/hassio-dashboard";
+import { customElement, property } from "lit/decorators";
+
+import { HassRouterPage } from "../../src/layouts/hass-router-page";
+
@customElement("hassio-panel-router")
class HassioPanelRouter extends HassRouterPage {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/hassio/src/hassio-panel.ts b/hassio/src/hassio-panel.ts
index c0922f463d..0150f1c51f 100644
--- a/hassio/src/hassio-panel.ts
+++ b/hassio/src/hassio-panel.ts
@@ -1,11 +1,14 @@
+import type { Supervisor } from "../../src/data/supervisor/supervisor";
+import type { HomeAssistant, Route } from "../../src/types";
import type { TemplateResult } from "lit";
+
+import "../../src/layouts/hass-loading-screen";
+import "./hassio-panel-router";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
-import type { Supervisor } from "../../src/data/supervisor/supervisor";
+
import { supervisorCollection } from "../../src/data/supervisor/supervisor";
-import "../../src/layouts/hass-loading-screen";
-import type { HomeAssistant, Route } from "../../src/types";
-import "./hassio-panel-router";
@customElement("hassio-panel")
class HassioPanel extends LitElement {
diff --git a/hassio/src/hassio-router.ts b/hassio/src/hassio-router.ts
index a886fe2ae4..95db7fe0fd 100644
--- a/hassio/src/hassio-router.ts
+++ b/hassio/src/hassio-router.ts
@@ -1,13 +1,16 @@
-import { customElement, property } from "lit/decorators";
-import memoizeOne from "memoize-one";
import type { HassioPanelInfo } from "../../src/data/hassio/supervisor";
import type { Supervisor } from "../../src/data/supervisor/supervisor";
import type { RouterOptions } from "../../src/layouts/hass-router-page";
-import { HassRouterPage } from "../../src/layouts/hass-router-page";
import type { HomeAssistant } from "../../src/types";
+
// Don't codesplit it, that way the dashboard always loads fast.
import "./hassio-panel";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { HassRouterPage } from "../../src/layouts/hass-router-page";
+
@customElement("hassio-router")
class HassioRouter extends HassRouterPage {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/hassio/src/hassio-tabs.ts b/hassio/src/hassio-tabs.ts
index a66646ee17..211743ec3c 100644
--- a/hassio/src/hassio-tabs.ts
+++ b/hassio/src/hassio-tabs.ts
@@ -1,12 +1,14 @@
+import type { PageNavigation } from "../../src/layouts/hass-tabs-subpage";
+import type { HomeAssistant } from "../../src/types";
+
import {
mdiBackupRestore,
mdiCogs,
mdiPuzzle,
mdiViewDashboard,
} from "@mdi/js";
+
import { atLeastVersion } from "../../src/common/config/version";
-import type { PageNavigation } from "../../src/layouts/hass-tabs-subpage";
-import type { HomeAssistant } from "../../src/types";
export const supervisorTabs = (hass: HomeAssistant): PageNavigation[] =>
atLeastVersion(hass.config.version, 2022, 5)
diff --git a/hassio/src/ingress-view/hassio-ingress-view.ts b/hassio/src/ingress-view/hassio-ingress-view.ts
index 1120936fa6..248884f170 100644
--- a/hassio/src/ingress-view/hassio-ingress-view.ts
+++ b/hassio/src/ingress-view/hassio-ingress-view.ts
@@ -1,13 +1,20 @@
-import { mdiMenu } from "@mdi/js";
+import type { HassioAddonDetails } from "../../../src/data/hassio/addon";
+import type { Supervisor } from "../../../src/data/supervisor/supervisor";
+import type { HomeAssistant, Route } from "../../../src/types";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../src/components/ha-icon-button";
+import "../../../src/layouts/hass-loading-screen";
+import "../../../src/layouts/hass-subpage";
+
+import { mdiMenu } from "@mdi/js";
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../../../src/common/dom/fire_event";
import { navigate } from "../../../src/common/navigate";
import { extractSearchParam } from "../../../src/common/url/search-params";
import { nextRender } from "../../../src/common/util/render-status";
-import "../../../src/components/ha-icon-button";
-import type { HassioAddonDetails } from "../../../src/data/hassio/addon";
import {
fetchHassioAddonInfo,
startHassioAddon,
@@ -17,14 +24,10 @@ import {
createHassioSession,
validateHassioSession,
} from "../../../src/data/hassio/ingress";
-import type { Supervisor } from "../../../src/data/supervisor/supervisor";
import {
showAlertDialog,
showConfirmationDialog,
} from "../../../src/dialogs/generic/show-dialog-box";
-import "../../../src/layouts/hass-loading-screen";
-import "../../../src/layouts/hass-subpage";
-import type { HomeAssistant, Route } from "../../../src/types";
@customElement("hassio-ingress-view")
class HassioIngressView extends LitElement {
diff --git a/hassio/src/supervisor-base-element.ts b/hassio/src/supervisor-base-element.ts
index c1b826762c..410450355b 100644
--- a/hassio/src/supervisor-base-element.ts
+++ b/hassio/src/supervisor-base-element.ts
@@ -1,11 +1,23 @@
+import type { HassioResponse } from "../../src/data/hassio/common";
+import type {
+ Supervisor,
+ SupervisorObject,
+ SupervisorKeys,
+} from "../../src/data/supervisor/supervisor";
+import type { HomeAssistant, Route } from "../../src/types";
import type { Collection, UnsubscribeFunc } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
+
import { LitElement } from "lit";
import { property, state } from "lit/decorators";
+
import { atLeastVersion } from "../../src/common/config/version";
import { computeLocalize } from "../../src/common/translations/localize";
+import {
+ computeRTLDirection,
+ setDirectionStyles,
+} from "../../src/common/util/compute_rtl";
import { fetchHassioAddonsInfo } from "../../src/data/hassio/addon";
-import type { HassioResponse } from "../../src/data/hassio/common";
import {
fetchHassioHassOsInfo,
fetchHassioHostInfo,
@@ -18,11 +30,6 @@ import {
fetchHassioSupervisorInfo,
} from "../../src/data/hassio/supervisor";
import { fetchSupervisorStore } from "../../src/data/supervisor/store";
-import type {
- Supervisor,
- SupervisorObject,
- SupervisorKeys,
-} from "../../src/data/supervisor/supervisor";
import {
getSupervisorEventCollection,
supervisorCollection,
@@ -30,12 +37,7 @@ import {
} from "../../src/data/supervisor/supervisor";
import { ProvideHassLitMixin } from "../../src/mixins/provide-hass-lit-mixin";
import { urlSyncMixin } from "../../src/state/url-sync-mixin";
-import type { HomeAssistant, Route } from "../../src/types";
import { getTranslation } from "../../src/util/common-translation";
-import {
- computeRTLDirection,
- setDirectionStyles,
-} from "../../src/common/util/compute_rtl";
declare global {
interface HASSDomEvents {
diff --git a/hassio/src/system/hassio-core-info.ts b/hassio/src/system/hassio-core-info.ts
index a49fd63a0a..03ed162dce 100644
--- a/hassio/src/system/hassio-core-info.ts
+++ b/hassio/src/system/hassio-core-info.ts
@@ -1,28 +1,31 @@
-import "@material/mwc-button";
-import "@material/mwc-list/mwc-list-item";
+import type { HassioStats } from "../../../src/data/hassio/common";
+import type { Supervisor } from "../../../src/data/supervisor/supervisor";
+import type { HomeAssistant } from "../../../src/types";
import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { atLeastVersion } from "../../../src/common/config/version";
+
import "../../../src/components/buttons/ha-progress-button";
import "../../../src/components/ha-button-menu";
import "../../../src/components/ha-card";
import "../../../src/components/ha-settings-row";
-import type { HassioStats } from "../../../src/data/hassio/common";
+import "../components/supervisor-metric";
+import "@material/mwc-button";
+import "@material/mwc-list/mwc-list-item";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { atLeastVersion } from "../../../src/common/config/version";
import {
extractApiErrorMessage,
fetchHassioStats,
} from "../../../src/data/hassio/common";
import { restartCore } from "../../../src/data/supervisor/core";
-import type { Supervisor } from "../../../src/data/supervisor/supervisor";
import {
showAlertDialog,
showConfirmationDialog,
} from "../../../src/dialogs/generic/show-dialog-box";
import { haStyle } from "../../../src/resources/styles";
-import type { HomeAssistant } from "../../../src/types";
import { bytesToString } from "../../../src/util/bytes-to-string";
-import "../components/supervisor-metric";
import { hassioStyle } from "../resources/hassio-style";
@customElement("hassio-core-info")
diff --git a/hassio/src/system/hassio-host-info.ts b/hassio/src/system/hassio-host-info.ts
index d393f44299..b3d9f96b8d 100644
--- a/hassio/src/system/hassio-host-info.ts
+++ b/hassio/src/system/hassio-host-info.ts
@@ -1,17 +1,24 @@
-import "@material/mwc-button";
-import "@material/mwc-list/mwc-list-item";
-import { mdiDotsVertical } from "@mdi/js";
+import type { NetworkInfo } from "../../../src/data/hassio/network";
+import type { Supervisor } from "../../../src/data/supervisor/supervisor";
+import type { HomeAssistant } from "../../../src/types";
import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { atLeastVersion } from "../../../src/common/config/version";
-import { fireEvent } from "../../../src/common/dom/fire_event";
+
import "../../../src/components/buttons/ha-progress-button";
import "../../../src/components/ha-button-menu";
import "../../../src/components/ha-card";
import "../../../src/components/ha-icon-button";
import "../../../src/components/ha-settings-row";
+import "../components/supervisor-metric";
+import "@material/mwc-button";
+import "@material/mwc-list/mwc-list-item";
+
+import { mdiDotsVertical } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { atLeastVersion } from "../../../src/common/config/version";
+import { fireEvent } from "../../../src/common/dom/fire_event";
import {
extractApiErrorMessage,
ignoreSupervisorError,
@@ -23,21 +30,17 @@ import {
rebootHost,
shutdownHost,
} from "../../../src/data/hassio/host";
-import type { NetworkInfo } from "../../../src/data/hassio/network";
import { fetchNetworkInfo } from "../../../src/data/hassio/network";
-import type { Supervisor } from "../../../src/data/supervisor/supervisor";
import {
showAlertDialog,
showConfirmationDialog,
showPromptDialog,
} from "../../../src/dialogs/generic/show-dialog-box";
import { haStyle } from "../../../src/resources/styles";
-import type { HomeAssistant } from "../../../src/types";
import {
getValueInPercentage,
roundWithOneDecimal,
} from "../../../src/util/calculate";
-import "../components/supervisor-metric";
import { showHassioDatadiskDialog } from "../dialogs/datadisk/show-dialog-hassio-datadisk";
import { showHassioHardwareDialog } from "../dialogs/hardware/show-dialog-hassio-hardware";
import { showNetworkDialog } from "../dialogs/network/show-dialog-network";
diff --git a/hassio/src/system/hassio-supervisor-info.ts b/hassio/src/system/hassio-supervisor-info.ts
index 2cf23b8909..8adbf381a0 100644
--- a/hassio/src/system/hassio-supervisor-info.ts
+++ b/hassio/src/system/hassio-supervisor-info.ts
@@ -1,25 +1,30 @@
+import type { HassioStats } from "../../../src/data/hassio/common";
+import type { SupervisorOptions } from "../../../src/data/hassio/supervisor";
+import type { Supervisor } from "../../../src/data/supervisor/supervisor";
+import type { HomeAssistant } from "../../../src/types";
import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { atLeastVersion } from "../../../src/common/config/version";
-import { fireEvent } from "../../../src/common/dom/fire_event";
+
import "../../../src/components/buttons/ha-progress-button";
import "../../../src/components/ha-alert";
import "../../../src/components/ha-card";
import "../../../src/components/ha-settings-row";
import "../../../src/components/ha-switch";
-import type { HassioStats } from "../../../src/data/hassio/common";
+import "../components/supervisor-metric";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { atLeastVersion } from "../../../src/common/config/version";
+import { fireEvent } from "../../../src/common/dom/fire_event";
import {
extractApiErrorMessage,
fetchHassioStats,
} from "../../../src/data/hassio/common";
-import type { SupervisorOptions } from "../../../src/data/hassio/supervisor";
import {
reloadSupervisor,
restartSupervisor,
setSupervisorOption,
} from "../../../src/data/hassio/supervisor";
-import type { Supervisor } from "../../../src/data/supervisor/supervisor";
import {
showAlertDialog,
showConfirmationDialog,
@@ -30,10 +35,8 @@ import {
UNSUPPORTED_REASON_URL,
} from "../../../src/panels/config/repairs/dialog-system-information";
import { haStyle } from "../../../src/resources/styles";
-import type { HomeAssistant } from "../../../src/types";
import { bytesToString } from "../../../src/util/bytes-to-string";
import { documentationUrl } from "../../../src/util/documentation-url";
-import "../components/supervisor-metric";
import { hassioStyle } from "../resources/hassio-style";
@customElement("hassio-supervisor-info")
diff --git a/hassio/src/system/hassio-supervisor-log.ts b/hassio/src/system/hassio-supervisor-log.ts
index ce8702dd51..aae0c725d1 100644
--- a/hassio/src/system/hassio-supervisor-log.ts
+++ b/hassio/src/system/hassio-supervisor-log.ts
@@ -1,19 +1,22 @@
-import "@material/mwc-button";
-import "@material/mwc-list/mwc-list-item";
+import type { Supervisor } from "../../../src/data/supervisor/supervisor";
+import type { HomeAssistant } from "../../../src/types";
import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
+
import "../../../src/components/buttons/ha-progress-button";
import "../../../src/components/ha-alert";
import "../../../src/components/ha-ansi-to-html";
import "../../../src/components/ha-card";
import "../../../src/components/ha-select";
+import "../../../src/layouts/hass-loading-screen";
+import "@material/mwc-button";
+import "@material/mwc-list/mwc-list-item";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
import { extractApiErrorMessage } from "../../../src/data/hassio/common";
import { fetchHassioLogs } from "../../../src/data/hassio/supervisor";
-import type { Supervisor } from "../../../src/data/supervisor/supervisor";
-import "../../../src/layouts/hass-loading-screen";
import { haStyle } from "../../../src/resources/styles";
-import type { HomeAssistant } from "../../../src/types";
import { hassioStyle } from "../resources/hassio-style";
interface LogProvider {
diff --git a/hassio/src/system/hassio-system.ts b/hassio/src/system/hassio-system.ts
index 643b9f3530..9513b98a89 100644
--- a/hassio/src/system/hassio-system.ts
+++ b/hassio/src/system/hassio-system.ts
@@ -1,18 +1,21 @@
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { atLeastVersion } from "../../../src/common/config/version";
import type { Supervisor } from "../../../src/data/supervisor/supervisor";
-import "../../../src/layouts/hass-tabs-subpage";
-import { haStyle } from "../../../src/resources/styles";
import type { HomeAssistant, Route } from "../../../src/types";
-import { supervisorTabs } from "../hassio-tabs";
-import { hassioStyle } from "../resources/hassio-style";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../src/layouts/hass-tabs-subpage";
import "./hassio-core-info";
import "./hassio-host-info";
import "./hassio-supervisor-info";
import "./hassio-supervisor-log";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { atLeastVersion } from "../../../src/common/config/version";
+import { haStyle } from "../../../src/resources/styles";
+import { supervisorTabs } from "../hassio-tabs";
+import { hassioStyle } from "../resources/hassio-style";
+
@customElement("hassio-system")
class HassioSystem extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/hassio/src/update-available/update-available-card.ts b/hassio/src/update-available/update-available-card.ts
index ed15034845..8201ead042 100644
--- a/hassio/src/update-available/update-available-card.ts
+++ b/hassio/src/update-available/update-available-card.ts
@@ -1,4 +1,24 @@
+import type { HaSwitch } from "../../../src/components/ha-switch";
+import type { HassioAddonDetails } from "../../../src/data/hassio/addon";
+import type { StoreAddon } from "../../../src/data/supervisor/store";
+import type { Supervisor } from "../../../src/data/supervisor/supervisor";
+import type { HomeAssistant, Route } from "../../../src/types";
+
+import "../../../src/components/buttons/ha-progress-button";
+import "../../../src/components/ha-alert";
+import "../../../src/components/ha-button-menu";
+import "../../../src/components/ha-card";
+import "../../../src/components/ha-checkbox";
+import "../../../src/components/ha-faded";
+import "../../../src/components/ha-icon-button";
+import "../../../src/components/ha-markdown";
+import "../../../src/components/ha-md-list";
+import "../../../src/components/ha-md-list-item";
+import "../../../src/components/ha-spinner";
+import "../../../src/components/ha-svg-icon";
+import "../../../src/components/ha-switch";
import "@material/mwc-list/mwc-list-item";
+
import {
css,
type CSSResultGroup,
@@ -9,23 +29,9 @@ import {
} from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { atLeastVersion } from "../../../src/common/config/version";
import { fireEvent } from "../../../src/common/dom/fire_event";
-import "../../../src/components/buttons/ha-progress-button";
-import "../../../src/components/ha-alert";
-import "../../../src/components/ha-button-menu";
-import "../../../src/components/ha-card";
-import "../../../src/components/ha-spinner";
-import "../../../src/components/ha-checkbox";
-import "../../../src/components/ha-faded";
-import "../../../src/components/ha-icon-button";
-import "../../../src/components/ha-markdown";
-import "../../../src/components/ha-md-list";
-import "../../../src/components/ha-md-list-item";
-import "../../../src/components/ha-svg-icon";
-import "../../../src/components/ha-switch";
-import type { HaSwitch } from "../../../src/components/ha-switch";
-import type { HassioAddonDetails } from "../../../src/data/hassio/addon";
import {
fetchHassioAddonChangelog,
fetchHassioAddonInfo,
@@ -42,11 +48,8 @@ import {
updateSupervisor,
} from "../../../src/data/hassio/supervisor";
import { updateCore } from "../../../src/data/supervisor/core";
-import type { StoreAddon } from "../../../src/data/supervisor/store";
-import type { Supervisor } from "../../../src/data/supervisor/supervisor";
import { showAlertDialog } from "../../../src/dialogs/generic/show-dialog-box";
import { haStyle } from "../../../src/resources/styles";
-import type { HomeAssistant, Route } from "../../../src/types";
import { addonArchIsSupported, extractChangelog } from "../util/addon";
declare global {
diff --git a/hassio/src/update-available/update-available-dashboard.ts b/hassio/src/update-available/update-available-dashboard.ts
index 137fd1fb2c..adf529e814 100644
--- a/hassio/src/update-available/update-available-dashboard.ts
+++ b/hassio/src/update-available/update-available-dashboard.ts
@@ -1,10 +1,12 @@
+import type { Supervisor } from "../../../src/data/supervisor/supervisor";
+import type { HomeAssistant, Route } from "../../../src/types";
import type { TemplateResult } from "lit";
+
+import "../../../src/layouts/hass-subpage";
+import "./update-available-card";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
-import type { Supervisor } from "../../../src/data/supervisor/supervisor";
-import "../../../src/layouts/hass-subpage";
-import type { HomeAssistant, Route } from "../../../src/types";
-import "./update-available-card";
@customElement("update-available-dashboard")
class UpdateAvailableDashboard extends LitElement {
diff --git a/hassio/src/util/addon.ts b/hassio/src/util/addon.ts
index fe9f5f9a9c..c0983dc753 100644
--- a/hassio/src/util/addon.ts
+++ b/hassio/src/util/addon.ts
@@ -1,7 +1,8 @@
-import memoizeOne from "memoize-one";
import type { HassioAddonDetails } from "../../../src/data/hassio/addon";
import type { SupervisorArch } from "../../../src/data/supervisor/supervisor";
+import memoizeOne from "memoize-one";
+
export const addonArchIsSupported = memoizeOne(
(supported_archs: SupervisorArch[], addon_archs: SupervisorArch[]) =>
addon_archs.some((arch) => supported_archs.includes(arch))
diff --git a/landing-page/src/components/landing-page-logs.ts b/landing-page/src/components/landing-page-logs.ts
index 0b0c3e7c81..df7d519562 100644
--- a/landing-page/src/components/landing-page-logs.ts
+++ b/landing-page/src/components/landing-page-logs.ts
@@ -1,28 +1,31 @@
-import "@material/mwc-linear-progress/mwc-linear-progress";
-import { mdiArrowCollapseDown, mdiDownload } from "@mdi/js";
-// eslint-disable-next-line import/extensions
-import { IntersectionController } from "@lit-labs/observers/intersection-controller.js";
-import { LitElement, type PropertyValues, css, html, nothing } from "lit";
-import { classMap } from "lit/directives/class-map";
-import { customElement, property, query, state } from "lit/decorators";
import type {
LandingPageKeys,
LocalizeFunc,
} from "../../../src/common/translations/localize";
+import type { HaAnsiToHtml } from "../../../src/components/ha-ansi-to-html";
+
+import "../../../src/components/ha-alert";
+import "../../../src/components/ha-ansi-to-html";
import "../../../src/components/ha-button";
import "../../../src/components/ha-icon-button";
import "../../../src/components/ha-svg-icon";
-import "../../../src/components/ha-ansi-to-html";
-import "../../../src/components/ha-alert";
-import type { HaAnsiToHtml } from "../../../src/components/ha-ansi-to-html";
+import "@material/mwc-linear-progress/mwc-linear-progress";
+
+// eslint-disable-next-line import/extensions
+import { IntersectionController } from "@lit-labs/observers/intersection-controller.js";
+import { mdiArrowCollapseDown, mdiDownload } from "@mdi/js";
+import { LitElement, type PropertyValues, css, html, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+
+import { fireEvent } from "../../../src/common/dom/fire_event";
+import { waitForSeconds } from "../../../src/common/util/wait";
+import { fileDownload } from "../../../src/util/file_download";
import {
getObserverLogs,
downloadUrl as observerLogsDownloadUrl,
} from "../data/observer";
-import { fireEvent } from "../../../src/common/dom/fire_event";
-import { fileDownload } from "../../../src/util/file_download";
import { getSupervisorLogs, getSupervisorLogsFollow } from "../data/supervisor";
-import { waitForSeconds } from "../../../src/common/util/wait";
import { ASSUME_CORE_START_SECONDS } from "../ha-landing-page";
const ERROR_CHECK = /^[\d\s-:]+(ERROR|CRITICAL)(.*)/gm;
diff --git a/landing-page/src/components/landing-page-network.ts b/landing-page/src/components/landing-page-network.ts
index bea2336e48..835121fcd8 100644
--- a/landing-page/src/components/landing-page-network.ts
+++ b/landing-page/src/components/landing-page-network.ts
@@ -1,21 +1,24 @@
-import "@material/mwc-linear-progress/mwc-linear-progress";
-import memoizeOne from "memoize-one";
-import { type CSSResultGroup, LitElement, css, html, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
import type {
LandingPageKeys,
LocalizeFunc,
} from "../../../src/common/translations/localize";
-import "../../../src/components/ha-button";
+import type { NetworkInterface } from "../../../src/data/hassio/network";
+
import "../../../src/components/ha-alert";
+import "../../../src/components/ha-button";
+import "@material/mwc-linear-progress/mwc-linear-progress";
+
+import { type CSSResultGroup, LitElement, css, html, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../src/common/dom/fire_event";
+import { showAlertDialog } from "../../../src/dialogs/generic/show-dialog-box";
import {
ALTERNATIVE_DNS_SERVERS,
setSupervisorNetworkDns,
type NetworkInfo,
} from "../data/supervisor";
-import { showAlertDialog } from "../../../src/dialogs/generic/show-dialog-box";
-import type { NetworkInterface } from "../../../src/data/hassio/network";
-import { fireEvent } from "../../../src/common/dom/fire_event";
@customElement("landing-page-network")
class LandingPageNetwork extends LitElement {
diff --git a/landing-page/src/data/supervisor.ts b/landing-page/src/data/supervisor.ts
index 1f0fcff24d..6dc7f97481 100644
--- a/landing-page/src/data/supervisor.ts
+++ b/landing-page/src/data/supervisor.ts
@@ -4,6 +4,7 @@ import type {
DockerNetwork,
NetworkInterface,
} from "../../../src/data/hassio/network";
+
import { handleFetchPromise } from "../../../src/util/hass-call-api";
export interface NetworkInfo {
diff --git a/landing-page/src/ha-landing-page.ts b/landing-page/src/ha-landing-page.ts
index 06d1c43716..875b126f93 100644
--- a/landing-page/src/ha-landing-page.ts
+++ b/landing-page/src/ha-landing-page.ts
@@ -1,20 +1,22 @@
+import "../../src/components/ha-alert";
+import "../../src/onboarding/onboarding-welcome-links";
+import "./components/landing-page-logs";
+import "./components/landing-page-network";
import "@material/mwc-linear-progress";
+
import { type PropertyValues, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
-import "../../src/components/ha-alert";
-import { haStyle } from "../../src/resources/styles";
-import "../../src/onboarding/onboarding-welcome-links";
-import "./components/landing-page-network";
-import "./components/landing-page-logs";
+
import { extractSearchParam } from "../../src/common/url/search-params";
-import { onBoardingStyles } from "../../src/onboarding/styles";
import { makeDialogManager } from "../../src/dialogs/make-dialog-manager";
-import { LandingPageBaseElement } from "./landing-page-base-element";
+import { onBoardingStyles } from "../../src/onboarding/styles";
+import { haStyle } from "../../src/resources/styles";
import {
getSupervisorNetworkInfo,
pingSupervisor,
type NetworkInfo,
} from "./data/supervisor";
+import { LandingPageBaseElement } from "./landing-page-base-element";
export const ASSUME_CORE_START_SECONDS = 60;
const SCHEDULE_CORE_CHECK_SECONDS = 1;
diff --git a/landing-page/src/landing-page-base-element.ts b/landing-page/src/landing-page-base-element.ts
index 9c7a544ddf..cd21177c76 100644
--- a/landing-page/src/landing-page-base-element.ts
+++ b/landing-page/src/landing-page-base-element.ts
@@ -1,21 +1,23 @@
+import type { HassBaseEl } from "../../src/state/hass-base-mixin";
+import type { Constructor, Resources } from "../../src/types";
import type { PropertyValues } from "lit";
+
import { LitElement } from "lit";
import { property, state } from "lit/decorators";
+
import {
computeLocalize,
type LandingPageKeys,
type LocalizeFunc,
} from "../../src/common/translations/localize";
+import { computeDirectionStyles } from "../../src/common/util/compute_rtl";
import { ProvideHassLitMixin } from "../../src/mixins/provide-hass-lit-mixin";
-import type { Constructor, Resources } from "../../src/types";
+import { translationMetadata } from "../../src/resources/translations-metadata";
+import themesMixin from "../../src/state/themes-mixin";
import {
getLocalLanguage,
getTranslation,
} from "../../src/util/common-translation";
-import { computeDirectionStyles } from "../../src/common/util/compute_rtl";
-import themesMixin from "../../src/state/themes-mixin";
-import { translationMetadata } from "../../src/resources/translations-metadata";
-import type { HassBaseEl } from "../../src/state/hass-base-mixin";
export class LandingPageBaseElement extends themesMixin(
ProvideHassLitMixin(LitElement) as unknown as Constructor
diff --git a/package.json b/package.json
index d9ddb9f1a1..6dd4b2b15e 100644
--- a/package.json
+++ b/package.json
@@ -198,6 +198,7 @@
"eslint-plugin-import": "2.31.0",
"eslint-plugin-lit": "2.0.0",
"eslint-plugin-lit-a11y": "4.1.4",
+ "eslint-plugin-perfectionist": "4.11.0",
"eslint-plugin-unused-imports": "4.1.4",
"eslint-plugin-wc": "3.0.0",
"fancy-log": "2.0.0",
diff --git a/src/auth/ha-auth-flow.ts b/src/auth/ha-auth-flow.ts
index 2adce4d347..d5182084cd 100644
--- a/src/auth/ha-auth-flow.ts
+++ b/src/auth/ha-auth-flow.ts
@@ -1,16 +1,24 @@
/* eslint-disable lit/prefer-static-styles */
-import "@material/mwc-button";
-import { genClientId } from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
-import { html, LitElement, nothing } from "lit";
-import { keyed } from "lit/directives/keyed";
-import { customElement, property, state } from "lit/decorators";
import type { LocalizeFunc } from "../common/translations/localize";
+import type { AuthProvider } from "../data/auth";
+import type {
+ DataEntryFlowStep,
+ DataEntryFlowStepForm,
+} from "../data/data_entry_flow";
+import type { PropertyValues } from "lit";
+
import "../components/ha-alert";
import "../components/ha-checkbox";
-import { computeInitialHaFormData } from "../components/ha-form/compute-initial-ha-form-data";
import "../components/ha-formfield";
-import type { AuthProvider } from "../data/auth";
+import "./ha-auth-form";
+import "@material/mwc-button";
+
+import { genClientId } from "home-assistant-js-websocket";
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { keyed } from "lit/directives/keyed";
+
+import { computeInitialHaFormData } from "../components/ha-form/compute-initial-ha-form-data";
import {
autocompleteLoginFields,
createLoginFlow,
@@ -18,11 +26,6 @@ import {
redirectWithAuthCode,
submitLoginFlow,
} from "../data/auth";
-import type {
- DataEntryFlowStep,
- DataEntryFlowStepForm,
-} from "../data/data_entry_flow";
-import "./ha-auth-form";
type State = "loading" | "error" | "step";
diff --git a/src/auth/ha-auth-form-string.ts b/src/auth/ha-auth-form-string.ts
index 4502513f7d..1e0f9da1a4 100644
--- a/src/auth/ha-auth-form-string.ts
+++ b/src/auth/ha-auth-form-string.ts
@@ -1,11 +1,14 @@
/* eslint-disable lit/prefer-static-styles */
import type { TemplateResult } from "lit";
-import { html } from "lit";
-import { customElement } from "lit/decorators";
-import { HaFormString } from "../components/ha-form/ha-form-string";
+
import "../components/ha-icon-button";
import "./ha-auth-textfield";
+import { html } from "lit";
+import { customElement } from "lit/decorators";
+
+import { HaFormString } from "../components/ha-form/ha-form-string";
+
@customElement("ha-auth-form-string")
export class HaAuthFormString extends HaFormString {
protected createRenderRoot() {
diff --git a/src/auth/ha-auth-form.ts b/src/auth/ha-auth-form.ts
index bffa1e79a1..6af31130bd 100644
--- a/src/auth/ha-auth-form.ts
+++ b/src/auth/ha-auth-form.ts
@@ -1,9 +1,12 @@
/* eslint-disable lit/prefer-static-styles */
+import type { LocalizeFunc } from "../common/translations/localize";
+
+import "./ha-auth-form-string";
+
import { html } from "lit";
import { customElement, property } from "lit/decorators";
+
import { HaForm } from "../components/ha-form/ha-form";
-import "./ha-auth-form-string";
-import type { LocalizeFunc } from "../common/translations/localize";
const localizeBaseKey = "ui.panel.page-authorize.form";
diff --git a/src/auth/ha-auth-textfield.ts b/src/auth/ha-auth-textfield.ts
index b13e661c56..d20e91705a 100644
--- a/src/auth/ha-auth-textfield.ts
+++ b/src/auth/ha-auth-textfield.ts
@@ -1,11 +1,13 @@
/* eslint-disable lit/value-after-constraints */
/* eslint-disable lit/prefer-static-styles */
-import { floatingLabel } from "@material/mwc-floating-label/mwc-floating-label-directive";
import type { TemplateResult } from "lit";
+
+import { floatingLabel } from "@material/mwc-floating-label/mwc-floating-label-directive";
import { html } from "lit";
import { customElement } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
import { live } from "lit/directives/live";
+
import { HaTextField } from "../components/ha-textfield";
@customElement("ha-auth-textfield")
diff --git a/src/auth/ha-authorize.ts b/src/auth/ha-authorize.ts
index a4108bc9d1..f7f6e45104 100644
--- a/src/auth/ha-authorize.ts
+++ b/src/auth/ha-authorize.ts
@@ -1,16 +1,20 @@
/* eslint-disable lit/prefer-static-styles */
+import type { AuthProvider, AuthUrlSearchParams } from "../data/auth";
import type { PropertyValues } from "lit";
+
+import "../components/ha-alert";
+import "./ha-auth-flow";
+
+import punycode from "punycode";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
-import punycode from "punycode";
+
import { applyThemesOnElement } from "../common/dom/apply_themes_on_element";
import { extractSearchParamsObject } from "../common/url/search-params";
-import "../components/ha-alert";
-import type { AuthProvider, AuthUrlSearchParams } from "../data/auth";
import { fetchAuthProviders } from "../data/auth";
import { litLocalizeLiteMixin } from "../mixins/lit-localize-lite-mixin";
import { registerServiceWorker } from "../util/register-service-worker";
-import "./ha-auth-flow";
import("./ha-pick-auth-provider");
diff --git a/src/auth/ha-pick-auth-provider.ts b/src/auth/ha-pick-auth-provider.ts
index 2ee93fb2e4..d8299592db 100644
--- a/src/auth/ha-pick-auth-provider.ts
+++ b/src/auth/ha-pick-auth-provider.ts
@@ -1,11 +1,14 @@
-import "@material/mwc-list";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../common/dom/fire_event";
import type { LocalizeFunc } from "../common/translations/localize";
+import type { AuthProvider } from "../data/auth";
+
import "../components/ha-icon-next";
import "../components/ha-list-item";
-import type { AuthProvider } from "../data/auth";
+import "@material/mwc-list";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../common/dom/fire_event";
declare global {
interface HTMLElementTagNameMap {
diff --git a/src/cast/cast_manager.ts b/src/cast/cast_manager.ts
index 58a2fd0f60..3452755591 100644
--- a/src/cast/cast_manager.ts
+++ b/src/cast/cast_manager.ts
@@ -1,12 +1,13 @@
/* eslint-disable no-console */
+import type { HassMessage as ReceiverMessage } from "./receiver_messages";
+import type { ReceiverStatusMessage, SenderMessage } from "./sender_messages";
import type { Auth } from "home-assistant-js-websocket";
+
import { castApiAvailable } from "./cast_framework";
import { CAST_APP_ID, CAST_DEV, CAST_NS } from "./const";
import { CAST_DEV_HASS_URL } from "./dev_const";
-import type { HassMessage as ReceiverMessage } from "./receiver_messages";
import { castSendAuth } from "./receiver_messages";
-import type { ReceiverStatusMessage, SenderMessage } from "./sender_messages";
let managerProm: Promise | undefined;
diff --git a/src/cast/receiver_messages.ts b/src/cast/receiver_messages.ts
index 58de177773..edb6cb2ca5 100644
--- a/src/cast/receiver_messages.ts
+++ b/src/cast/receiver_messages.ts
@@ -1,10 +1,11 @@
// Nessages to be processed inside the Cast Receiver app
-import type { Auth } from "home-assistant-js-websocket";
import type { CastManager } from "./cast_manager";
+import type { BaseCastMessage } from "./types";
+import type { Auth } from "home-assistant-js-websocket";
+
import { CAST_DEV } from "./const";
import { CAST_DEV_HASS_URL } from "./dev_const";
-import type { BaseCastMessage } from "./types";
export interface GetStatusMessage extends BaseCastMessage {
type: "get_status";
diff --git a/src/common/auth/token_storage.ts b/src/common/auth/token_storage.ts
index 3610f6b089..0abd9b7cdc 100644
--- a/src/common/auth/token_storage.ts
+++ b/src/common/auth/token_storage.ts
@@ -1,4 +1,5 @@
import type { AuthData } from "home-assistant-js-websocket";
+
import { extractSearchParam } from "../url/search-params";
declare global {
diff --git a/src/common/color/colors.ts b/src/common/color/colors.ts
index aace900bbd..baa5881b26 100644
--- a/src/common/color/colors.ts
+++ b/src/common/color/colors.ts
@@ -1,4 +1,5 @@
import memoizeOne from "memoize-one";
+
import { theme2hex } from "./convert-color";
export const COLORS = [
diff --git a/src/common/color/convert-color.ts b/src/common/color/convert-color.ts
index f325aef1fd..c8a87496b2 100644
--- a/src/common/color/convert-color.ts
+++ b/src/common/color/convert-color.ts
@@ -1,4 +1,5 @@
import colors from "color-name";
+
import { expandHex } from "./hex";
const rgb_hex = (component: number): string => {
diff --git a/src/common/config/can_show_page.ts b/src/common/config/can_show_page.ts
index a7bec75622..75b471a2fc 100644
--- a/src/common/config/can_show_page.ts
+++ b/src/common/config/can_show_page.ts
@@ -1,5 +1,6 @@
import type { PageNavigation } from "../../layouts/hass-tabs-subpage";
import type { HomeAssistant } from "../../types";
+
import { ensureArray } from "../array/ensure-array";
import { isComponentLoaded } from "./is_component_loaded";
diff --git a/src/common/datetime/absolute_time.ts b/src/common/datetime/absolute_time.ts
index 3016aa0ea8..ef652075d9 100644
--- a/src/common/datetime/absolute_time.ts
+++ b/src/common/datetime/absolute_time.ts
@@ -1,6 +1,8 @@
-import { isSameDay, isSameYear } from "date-fns";
-import type { HassConfig } from "home-assistant-js-websocket";
import type { FrontendLocaleData } from "../../data/translation";
+import type { HassConfig } from "home-assistant-js-websocket";
+
+import { isSameDay, isSameYear } from "date-fns";
+
import {
formatShortDateTime,
formatShortDateTimeWithYear,
diff --git a/src/common/datetime/calc_date.ts b/src/common/datetime/calc_date.ts
index bb94dc2bbc..b753030f9e 100644
--- a/src/common/datetime/calc_date.ts
+++ b/src/common/datetime/calc_date.ts
@@ -1,3 +1,6 @@
+import type { FrontendLocaleData } from "../../data/translation";
+import type { HassConfig } from "home-assistant-js-websocket";
+
import {
addMilliseconds,
addMonths,
@@ -12,8 +15,7 @@ import {
addDays,
} from "date-fns";
import { toZonedTime, fromZonedTime } from "date-fns-tz";
-import type { HassConfig } from "home-assistant-js-websocket";
-import type { FrontendLocaleData } from "../../data/translation";
+
import { TimeZone } from "../../data/translation";
const calcZonedDate = (
diff --git a/src/common/datetime/calc_date_range.ts b/src/common/datetime/calc_date_range.ts
index 4371512dae..8a7cf25b68 100644
--- a/src/common/datetime/calc_date_range.ts
+++ b/src/common/datetime/calc_date_range.ts
@@ -1,3 +1,5 @@
+import type { HomeAssistant } from "../../types";
+
import {
addDays,
subHours,
@@ -14,7 +16,7 @@ import {
subDays,
subMonths,
} from "date-fns";
-import type { HomeAssistant } from "../../types";
+
import { calcDate } from "./calc_date";
import { firstWeekdayIndex } from "./first_weekday";
diff --git a/src/common/datetime/first_weekday.ts b/src/common/datetime/first_weekday.ts
index c5099702c1..1b072b8cfb 100644
--- a/src/common/datetime/first_weekday.ts
+++ b/src/common/datetime/first_weekday.ts
@@ -1,5 +1,7 @@
-import { getWeekStartByLocale } from "weekstart";
import type { FrontendLocaleData } from "../../data/translation";
+
+import { getWeekStartByLocale } from "weekstart";
+
import { FirstWeekday } from "../../data/translation";
export const weekdays = [
diff --git a/src/common/datetime/format_date.ts b/src/common/datetime/format_date.ts
index 53b30f1deb..501bc0505e 100644
--- a/src/common/datetime/format_date.ts
+++ b/src/common/datetime/format_date.ts
@@ -1,6 +1,8 @@
-import type { HassConfig } from "home-assistant-js-websocket";
-import memoizeOne from "memoize-one";
import type { FrontendLocaleData } from "../../data/translation";
+import type { HassConfig } from "home-assistant-js-websocket";
+
+import memoizeOne from "memoize-one";
+
import { DateFormat } from "../../data/translation";
import { resolveTimeZone } from "./resolve-time-zone";
diff --git a/src/common/datetime/format_date_time.ts b/src/common/datetime/format_date_time.ts
index b0d6a5c68e..05ae642bd6 100644
--- a/src/common/datetime/format_date_time.ts
+++ b/src/common/datetime/format_date_time.ts
@@ -1,6 +1,8 @@
-import type { HassConfig } from "home-assistant-js-websocket";
-import memoizeOne from "memoize-one";
import type { FrontendLocaleData } from "../../data/translation";
+import type { HassConfig } from "home-assistant-js-websocket";
+
+import memoizeOne from "memoize-one";
+
import { formatDateNumeric } from "./format_date";
import { formatTime } from "./format_time";
import { resolveTimeZone } from "./resolve-time-zone";
diff --git a/src/common/datetime/format_duration.ts b/src/common/datetime/format_duration.ts
index c2c0c11d55..15635741ab 100644
--- a/src/common/datetime/format_duration.ts
+++ b/src/common/datetime/format_duration.ts
@@ -1,7 +1,9 @@
-import type { DurationInput } from "@formatjs/intl-durationformat/src/types";
-import memoizeOne from "memoize-one";
import type { HaDurationData } from "../../components/ha-duration-input";
import type { FrontendLocaleData } from "../../data/translation";
+import type { DurationInput } from "@formatjs/intl-durationformat/src/types";
+
+import memoizeOne from "memoize-one";
+
import { round } from "../number/round";
const leftPad = (num: number) => (num < 10 ? `0${num}` : num);
diff --git a/src/common/datetime/format_time.ts b/src/common/datetime/format_time.ts
index 5a124c1540..fefe43fbe5 100644
--- a/src/common/datetime/format_time.ts
+++ b/src/common/datetime/format_time.ts
@@ -1,6 +1,8 @@
-import type { HassConfig } from "home-assistant-js-websocket";
-import memoizeOne from "memoize-one";
import type { FrontendLocaleData } from "../../data/translation";
+import type { HassConfig } from "home-assistant-js-websocket";
+
+import memoizeOne from "memoize-one";
+
import { resolveTimeZone } from "./resolve-time-zone";
import { useAmPm } from "./use_am_pm";
diff --git a/src/common/datetime/relative_time.ts b/src/common/datetime/relative_time.ts
index bf3722a977..c68f917186 100644
--- a/src/common/datetime/relative_time.ts
+++ b/src/common/datetime/relative_time.ts
@@ -1,5 +1,7 @@
-import memoizeOne from "memoize-one";
import type { FrontendLocaleData } from "../../data/translation";
+
+import memoizeOne from "memoize-one";
+
import { selectUnit } from "../util/select-unit";
const formatRelTimeMem = memoizeOne(
diff --git a/src/common/datetime/use_am_pm.ts b/src/common/datetime/use_am_pm.ts
index 9046547898..b1124b36b2 100644
--- a/src/common/datetime/use_am_pm.ts
+++ b/src/common/datetime/use_am_pm.ts
@@ -1,5 +1,7 @@
-import memoizeOne from "memoize-one";
import type { FrontendLocaleData } from "../../data/translation";
+
+import memoizeOne from "memoize-one";
+
import { TimeFormat } from "../../data/translation";
export const useAmPm = memoizeOne((locale: FrontendLocaleData): boolean => {
diff --git a/src/common/decorators/restore-scroll.ts b/src/common/decorators/restore-scroll.ts
index b7ba120cf5..9dfb7554f9 100644
--- a/src/common/decorators/restore-scroll.ts
+++ b/src/common/decorators/restore-scroll.ts
@@ -1,5 +1,6 @@
-import type { LitElement } from "lit";
import type { ClassElement } from "../../types";
+import type { LitElement } from "lit";
+
import { throttle } from "../util/throttle";
const throttleReplaceState = throttle((value) => {
diff --git a/src/common/decorators/storage.ts b/src/common/decorators/storage.ts
index b1e62d9bb3..e8ce4f033a 100644
--- a/src/common/decorators/storage.ts
+++ b/src/common/decorators/storage.ts
@@ -1,7 +1,7 @@
+import type { ClassElement } from "../../types";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { ReactiveElement } from "lit";
import type { InternalPropertyDeclaration } from "lit/decorators";
-import type { ClassElement } from "../../types";
type Callback = (oldValue: any, newValue: any) => void;
diff --git a/src/common/decorators/transform.ts b/src/common/decorators/transform.ts
index 62f2effc8b..9f07564430 100644
--- a/src/common/decorators/transform.ts
+++ b/src/common/decorators/transform.ts
@@ -1,5 +1,6 @@
-import type { PropertyDeclaration, PropertyValues, ReactiveElement } from "lit";
import type { ClassElement } from "../../types";
+import type { PropertyDeclaration, PropertyValues, ReactiveElement } from "lit";
+
import { shallowEqual } from "../util/shallow-equal";
/**
diff --git a/src/common/dom/apply_themes_on_element.ts b/src/common/dom/apply_themes_on_element.ts
index 0fc7061833..df1f4ed85a 100644
--- a/src/common/dom/apply_themes_on_element.ts
+++ b/src/common/dom/apply_themes_on_element.ts
@@ -1,6 +1,7 @@
import type { ThemeVars } from "../../data/ws-themes";
-import { darkStyles, derivedStyles } from "../../resources/styles-data";
import type { HomeAssistant } from "../../types";
+
+import { darkStyles, derivedStyles } from "../../resources/styles-data";
import {
hex2rgb,
lab2hex,
diff --git a/src/common/dom/dynamic-element-directive.ts b/src/common/dom/dynamic-element-directive.ts
index 58d9bdc36e..d3bd711fa2 100644
--- a/src/common/dom/dynamic-element-directive.ts
+++ b/src/common/dom/dynamic-element-directive.ts
@@ -1,5 +1,6 @@
-import { noChange } from "lit";
import type { ChildPart, DirectiveParameters, PartInfo } from "lit/directive";
+
+import { noChange } from "lit";
import { Directive, directive, PartType } from "lit/directive";
export const dynamicElement = directive(
diff --git a/src/common/entity/can_toggle_state.ts b/src/common/entity/can_toggle_state.ts
index afc8dd9f9c..aa08872b4d 100644
--- a/src/common/entity/can_toggle_state.ts
+++ b/src/common/entity/can_toggle_state.ts
@@ -1,5 +1,6 @@
-import type { HassEntity } from "home-assistant-js-websocket";
import type { HomeAssistant } from "../../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+
import { canToggleDomain } from "./can_toggle_domain";
import { computeStateDomain } from "./compute_state_domain";
import { supportsFeature } from "./supports-feature";
diff --git a/src/common/entity/compute_attribute_display.ts b/src/common/entity/compute_attribute_display.ts
index bee5735f01..6df3a739d6 100644
--- a/src/common/entity/compute_attribute_display.ts
+++ b/src/common/entity/compute_attribute_display.ts
@@ -1,14 +1,16 @@
+import type { EntityRegistryDisplayEntry } from "../../data/entity_registry";
+import type { FrontendLocaleData } from "../../data/translation";
+import type { WeatherEntity } from "../../data/weather";
+import type { HomeAssistant } from "../../types";
+import type { LocalizeFunc } from "../translations/localize";
import type { HassConfig, HassEntity } from "home-assistant-js-websocket";
+
import {
DOMAIN_ATTRIBUTES_FORMATERS,
DOMAIN_ATTRIBUTES_UNITS,
TEMPERATURE_ATTRIBUTES,
} from "../../data/entity_attributes";
-import type { EntityRegistryDisplayEntry } from "../../data/entity_registry";
-import type { FrontendLocaleData } from "../../data/translation";
-import type { WeatherEntity } from "../../data/weather";
import { getWeatherUnit } from "../../data/weather";
-import type { HomeAssistant } from "../../types";
import checkValidDate from "../datetime/check_valid_date";
import { formatDate } from "../datetime/format_date";
import { formatDateTimeWithSeconds } from "../datetime/format_date_time";
@@ -17,7 +19,6 @@ import { capitalizeFirstLetter } from "../string/capitalize-first-letter";
import { isDate } from "../string/is_date";
import { isTimestamp } from "../string/is_timestamp";
import { blankBeforeUnit } from "../translations/blank_before_unit";
-import type { LocalizeFunc } from "../translations/localize";
import { computeDomain } from "./compute_domain";
import { computeStateDomain } from "./compute_state_domain";
diff --git a/src/common/entity/compute_device_name.ts b/src/common/entity/compute_device_name.ts
index b0f1cc7d14..9ba31cca51 100644
--- a/src/common/entity/compute_device_name.ts
+++ b/src/common/entity/compute_device_name.ts
@@ -4,6 +4,7 @@ import type {
EntityRegistryEntry,
} from "../../data/entity_registry";
import type { HomeAssistant } from "../../types";
+
import { computeStateName } from "./compute_state_name";
export const computeDeviceName = (
diff --git a/src/common/entity/compute_entity_name.ts b/src/common/entity/compute_entity_name.ts
index 86dd0a096b..f0ae95bf00 100644
--- a/src/common/entity/compute_entity_name.ts
+++ b/src/common/entity/compute_entity_name.ts
@@ -1,9 +1,10 @@
-import type { HassEntity } from "home-assistant-js-websocket";
import type {
EntityRegistryDisplayEntry,
EntityRegistryEntry,
} from "../../data/entity_registry";
import type { HomeAssistant } from "../../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+
import { computeDeviceName } from "./compute_device_name";
import { computeStateName } from "./compute_state_name";
import { stripPrefixFromEntityName } from "./strip_prefix_from_entity_name";
diff --git a/src/common/entity/compute_state_display.ts b/src/common/entity/compute_state_display.ts
index bd61083c82..b18eb53602 100644
--- a/src/common/entity/compute_state_display.ts
+++ b/src/common/entity/compute_state_display.ts
@@ -1,12 +1,14 @@
-import type { HassConfig, HassEntity } from "home-assistant-js-websocket";
-import { UNAVAILABLE, UNKNOWN } from "../../data/entity";
import type { EntityRegistryDisplayEntry } from "../../data/entity_registry";
import type { FrontendLocaleData } from "../../data/translation";
-import { TimeZone } from "../../data/translation";
import type { HomeAssistant } from "../../types";
-import { DURATION_UNITS, formatDuration } from "../datetime/format_duration";
+import type { LocalizeFunc } from "../translations/localize";
+import type { HassConfig, HassEntity } from "home-assistant-js-websocket";
+
+import { UNAVAILABLE, UNKNOWN } from "../../data/entity";
+import { TimeZone } from "../../data/translation";
import { formatDate } from "../datetime/format_date";
import { formatDateTime } from "../datetime/format_date_time";
+import { DURATION_UNITS, formatDuration } from "../datetime/format_duration";
import { formatTime } from "../datetime/format_time";
import {
formatNumber,
@@ -14,7 +16,6 @@ import {
isNumericFromAttributes,
} from "../number/format_number";
import { blankBeforeUnit } from "../translations/blank_before_unit";
-import type { LocalizeFunc } from "../translations/localize";
import { computeDomain } from "./compute_domain";
export const computeStateDisplay = (
diff --git a/src/common/entity/compute_state_domain.ts b/src/common/entity/compute_state_domain.ts
index 1b972ea22f..53a831b15b 100644
--- a/src/common/entity/compute_state_domain.ts
+++ b/src/common/entity/compute_state_domain.ts
@@ -1,4 +1,5 @@
import type { HassEntity } from "home-assistant-js-websocket";
+
import { computeDomain } from "./compute_domain";
export const computeStateDomain = (stateObj: HassEntity) =>
diff --git a/src/common/entity/compute_state_name.ts b/src/common/entity/compute_state_name.ts
index 4acb52a0c1..b611c4085d 100644
--- a/src/common/entity/compute_state_name.ts
+++ b/src/common/entity/compute_state_name.ts
@@ -1,4 +1,5 @@
import type { HassEntity } from "home-assistant-js-websocket";
+
import { computeObjectId } from "./compute_object_id";
export const computeStateNameFromEntityAttributes = (
diff --git a/src/common/entity/cover_icon.ts b/src/common/entity/cover_icon.ts
index facc7688ed..acc1dc3eff 100644
--- a/src/common/entity/cover_icon.ts
+++ b/src/common/entity/cover_icon.ts
@@ -1,3 +1,5 @@
+import type { HassEntity } from "home-assistant-js-websocket";
+
/** Return an icon representing a cover state. */
import {
mdiArrowCollapseHorizontal,
@@ -5,7 +7,6 @@ import {
mdiArrowExpandHorizontal,
mdiArrowUp,
} from "@mdi/js";
-import type { HassEntity } from "home-assistant-js-websocket";
export const computeOpenIcon = (stateObj: HassEntity): string => {
switch (stateObj.attributes.device_class) {
diff --git a/src/common/entity/delete_entity.ts b/src/common/entity/delete_entity.ts
index 4f10471669..0031015846 100644
--- a/src/common/entity/delete_entity.ts
+++ b/src/common/entity/delete_entity.ts
@@ -1,14 +1,15 @@
-import type { HomeAssistant } from "../../types";
+import type { ConfigEntry } from "../../data/config_entries";
+import type { EntityRegistryEntry } from "../../data/entity_registry";
import type { IntegrationManifest } from "../../data/integration";
-import { computeDomain } from "./compute_domain";
-import { HELPERS_CRUD } from "../../data/helpers_crud";
import type { Helper } from "../../panels/config/helpers/const";
+import type { HomeAssistant } from "../../types";
+
+import { deleteConfigEntry } from "../../data/config_entries";
+import { removeEntityRegistryEntry } from "../../data/entity_registry";
+import { HELPERS_CRUD } from "../../data/helpers_crud";
import { isHelperDomain } from "../../panels/config/helpers/const";
import { isComponentLoaded } from "../config/is_component_loaded";
-import type { EntityRegistryEntry } from "../../data/entity_registry";
-import { removeEntityRegistryEntry } from "../../data/entity_registry";
-import type { ConfigEntry } from "../../data/config_entries";
-import { deleteConfigEntry } from "../../data/config_entries";
+import { computeDomain } from "./compute_domain";
export const isDeletableEntity = (
hass: HomeAssistant,
diff --git a/src/common/entity/entity_filter.ts b/src/common/entity/entity_filter.ts
index ae30422cc7..3dcf00d6b3 100644
--- a/src/common/entity/entity_filter.ts
+++ b/src/common/entity/entity_filter.ts
@@ -1,5 +1,6 @@
-import type { HassEntity } from "home-assistant-js-websocket";
import type { HomeAssistant } from "../../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+
import { ensureArray } from "../array/ensure-array";
import { computeDomain } from "./compute_domain";
import { getEntityContext } from "./context/get_entity_context";
diff --git a/src/common/entity/extract_views.ts b/src/common/entity/extract_views.ts
index 9c23130f33..a12a7e6e2a 100644
--- a/src/common/entity/extract_views.ts
+++ b/src/common/entity/extract_views.ts
@@ -1,5 +1,6 @@
-import type { HassEntities } from "home-assistant-js-websocket";
import type { GroupEntity } from "../../data/group";
+import type { HassEntities } from "home-assistant-js-websocket";
+
import { DEFAULT_VIEW_ENTITY_ID } from "../const";
// Return an ordered array of available views
diff --git a/src/common/entity/feature_class_names.ts b/src/common/entity/feature_class_names.ts
index 4398a467fc..d45cbab9d8 100644
--- a/src/common/entity/feature_class_names.ts
+++ b/src/common/entity/feature_class_names.ts
@@ -1,4 +1,5 @@
import type { HassEntity } from "home-assistant-js-websocket";
+
import { supportsFeature } from "./supports-feature";
export type FeatureClassNames = Partial<
diff --git a/src/common/entity/get_entity_context.ts b/src/common/entity/get_entity_context.ts
index a3d7b8a05b..37eaf8df4b 100644
--- a/src/common/entity/get_entity_context.ts
+++ b/src/common/entity/get_entity_context.ts
@@ -1,4 +1,3 @@
-import type { HassEntity } from "home-assistant-js-websocket";
import type { AreaRegistryEntry } from "../../data/area_registry";
import type { DeviceRegistryEntry } from "../../data/device_registry";
import type {
@@ -8,6 +7,7 @@ import type {
} from "../../data/entity_registry";
import type { FloorRegistryEntry } from "../../data/floor_registry";
import type { HomeAssistant } from "../../types";
+import type { HassEntity } from "home-assistant-js-websocket";
interface EntityContext {
device: DeviceRegistryEntry | null;
diff --git a/src/common/entity/get_group_entities.ts b/src/common/entity/get_group_entities.ts
index 4996f4aafa..ea8751b07c 100644
--- a/src/common/entity/get_group_entities.ts
+++ b/src/common/entity/get_group_entities.ts
@@ -1,5 +1,5 @@
-import type { HassEntities } from "home-assistant-js-websocket";
import type { GroupEntity } from "../../data/group";
+import type { HassEntities } from "home-assistant-js-websocket";
export const getGroupEntities = (
entities: HassEntities,
diff --git a/src/common/entity/get_states.ts b/src/common/entity/get_states.ts
index c91dfc9990..600bdeb7e1 100644
--- a/src/common/entity/get_states.ts
+++ b/src/common/entity/get_states.ts
@@ -1,9 +1,10 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import { computeStateDomain } from "./compute_state_domain";
-import { UNAVAILABLE_STATES } from "../../data/entity";
import type { HomeAssistant } from "../../types";
-import { computeDomain } from "./compute_domain";
+import type { HassEntity } from "home-assistant-js-websocket";
+
+import { UNAVAILABLE_STATES } from "../../data/entity";
import { stringCompare } from "../string/compare";
+import { computeDomain } from "./compute_domain";
+import { computeStateDomain } from "./compute_state_domain";
export const FIXED_DOMAIN_STATES = {
alarm_control_panel: [
diff --git a/src/common/entity/get_view_entities.ts b/src/common/entity/get_view_entities.ts
index 91c556b7a8..375d2c1d2f 100644
--- a/src/common/entity/get_view_entities.ts
+++ b/src/common/entity/get_view_entities.ts
@@ -1,5 +1,6 @@
-import type { HassEntities } from "home-assistant-js-websocket";
import type { GroupEntity } from "../../data/group";
+import type { HassEntities } from "home-assistant-js-websocket";
+
import { computeDomain } from "./compute_domain";
import { getGroupEntities } from "./get_group_entities";
diff --git a/src/common/entity/split_by_groups.ts b/src/common/entity/split_by_groups.ts
index d884916bf5..00656cb638 100644
--- a/src/common/entity/split_by_groups.ts
+++ b/src/common/entity/split_by_groups.ts
@@ -1,5 +1,6 @@
-import type { HassEntities } from "home-assistant-js-websocket";
import type { GroupEntity } from "../../data/group";
+import type { HassEntities } from "home-assistant-js-websocket";
+
import { computeDomain } from "./compute_domain";
// Split a collection into a list of groups and a 'rest' list of ungrouped
diff --git a/src/common/entity/state_active.ts b/src/common/entity/state_active.ts
index 4f4c928fac..3fac21db5e 100644
--- a/src/common/entity/state_active.ts
+++ b/src/common/entity/state_active.ts
@@ -1,4 +1,5 @@
import type { HassEntity } from "home-assistant-js-websocket";
+
import { isUnavailableState, OFF, UNAVAILABLE } from "../../data/entity";
import { computeDomain } from "./compute_domain";
diff --git a/src/common/entity/state_card_type.ts b/src/common/entity/state_card_type.ts
index df6a17b1d9..a3915b4f6e 100644
--- a/src/common/entity/state_card_type.ts
+++ b/src/common/entity/state_card_type.ts
@@ -1,6 +1,7 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import { UNAVAILABLE } from "../../data/entity";
import type { HomeAssistant } from "../../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+
+import { UNAVAILABLE } from "../../data/entity";
import { DOMAINS_WITH_CARD } from "../const";
import { canToggleState } from "./can_toggle_state";
import { computeStateDomain } from "./compute_state_domain";
diff --git a/src/common/entity/state_color.ts b/src/common/entity/state_color.ts
index 474fee0e59..75b3acad08 100644
--- a/src/common/entity/state_color.ts
+++ b/src/common/entity/state_color.ts
@@ -1,7 +1,8 @@
+import type { GroupEntity } from "../../data/group";
/** Return a color representing a state. */
import type { HassEntity } from "home-assistant-js-websocket";
+
import { UNAVAILABLE } from "../../data/entity";
-import type { GroupEntity } from "../../data/group";
import { computeGroupDomain } from "../../data/group";
import { computeCssVariable } from "../../resources/css-variables";
import { slugify } from "../string/slugify";
diff --git a/src/common/entity/state_icon.ts b/src/common/entity/state_icon.ts
index 58a63e881e..ac2185529a 100644
--- a/src/common/entity/state_icon.ts
+++ b/src/common/entity/state_icon.ts
@@ -1,8 +1,9 @@
import type { HassEntity } from "home-assistant-js-websocket";
-import { computeStateDomain } from "./compute_state_domain";
-import { updateIcon } from "./update_icon";
-import { deviceTrackerIcon } from "./device_tracker_icon";
+
import { batteryIcon } from "./battery_icon";
+import { computeStateDomain } from "./compute_state_domain";
+import { deviceTrackerIcon } from "./device_tracker_icon";
+import { updateIcon } from "./update_icon";
export const stateIcon = (
stateObj: HassEntity,
diff --git a/src/common/entity/states_sort_by_name.ts b/src/common/entity/states_sort_by_name.ts
index 06701a8c0c..dd7c2e8f41 100644
--- a/src/common/entity/states_sort_by_name.ts
+++ b/src/common/entity/states_sort_by_name.ts
@@ -6,6 +6,7 @@
* states.sort(statessortStatesByName);
*/
import type { HassEntity } from "home-assistant-js-websocket";
+
import { computeStateName } from "./compute_state_name";
export const sortStatesByName = (entityA: HassEntity, entityB: HassEntity) => {
diff --git a/src/common/entity/update_icon.ts b/src/common/entity/update_icon.ts
index 4c80101667..609c2b2629 100644
--- a/src/common/entity/update_icon.ts
+++ b/src/common/entity/update_icon.ts
@@ -1,5 +1,6 @@
-import type { HassEntity } from "home-assistant-js-websocket";
import type { UpdateEntity } from "../../data/update";
+import type { HassEntity } from "home-assistant-js-websocket";
+
import { updateIsInstalling } from "../../data/update";
export const updateIcon = (stateObj: HassEntity, state?: string) => {
diff --git a/src/common/image/extract_color.ts b/src/common/image/extract_color.ts
index dece055851..7265286ad3 100644
--- a/src/common/image/extract_color.ts
+++ b/src/common/image/extract_color.ts
@@ -1,7 +1,9 @@
// We import the minified bundle because the unminified bundle
// has some quirks that break wds. See #7784 for unminified version.
import type { Swatch, Vec3 } from "@vibrant/color";
+
import { Vibrant } from "node-vibrant/browser";
+
import { getRGBContrastRatio } from "../color/rgb";
const CONTRAST_RATIO = 4.5;
diff --git a/src/common/integrations/protocolIntegrationPicked.ts b/src/common/integrations/protocolIntegrationPicked.ts
index 1f7ea0b3b8..d3ca354920 100644
--- a/src/common/integrations/protocolIntegrationPicked.ts
+++ b/src/common/integrations/protocolIntegrationPicked.ts
@@ -1,4 +1,7 @@
+import type { HomeAssistant } from "../../types";
+
import { html } from "lit";
+
import { getConfigEntries } from "../../data/config_entries";
import { domainToName } from "../../data/integration";
import { getIntegrationDescriptions } from "../../data/integrations";
@@ -6,7 +9,6 @@ import { showConfigFlowDialog } from "../../dialogs/config-flow/show-dialog-conf
import { showConfirmationDialog } from "../../dialogs/generic/show-dialog-box";
import { showMatterAddDeviceDialog } from "../../panels/config/integrations/integration-panels/matter/show-dialog-add-matter-device";
import { showZWaveJSAddNodeDialog } from "../../panels/config/integrations/integration-panels/zwave_js/show-dialog-zwave_js-add-node";
-import type { HomeAssistant } from "../../types";
import { documentationUrl } from "../../util/documentation-url";
import { isComponentLoaded } from "../config/is_component_loaded";
import { navigate } from "../navigate";
diff --git a/src/common/language/format_language.ts b/src/common/language/format_language.ts
index e91e5990b7..9ce0874ac1 100644
--- a/src/common/language/format_language.ts
+++ b/src/common/language/format_language.ts
@@ -1,6 +1,7 @@
-import memoizeOne from "memoize-one";
import type { FrontendLocaleData } from "../../data/translation";
+import memoizeOne from "memoize-one";
+
export const formatLanguageCode = (
languageCode: string,
locale: FrontendLocaleData
diff --git a/src/common/map/decorated_marker.ts b/src/common/map/decorated_marker.ts
index 69d4cb4cce..6ffe1ef62e 100644
--- a/src/common/map/decorated_marker.ts
+++ b/src/common/map/decorated_marker.ts
@@ -1,4 +1,5 @@
import type { LatLngExpression, Layer, Map, MarkerOptions } from "leaflet";
+
import { Marker } from "leaflet";
export class DecoratedMarker extends Marker {
diff --git a/src/common/number/format_number.ts b/src/common/number/format_number.ts
index 706d89eec5..a5882b7854 100644
--- a/src/common/number/format_number.ts
+++ b/src/common/number/format_number.ts
@@ -1,9 +1,10 @@
+import type { EntityRegistryDisplayEntry } from "../../data/entity_registry";
+import type { FrontendLocaleData } from "../../data/translation";
import type {
HassEntity,
HassEntityAttributeBase,
} from "home-assistant-js-websocket";
-import type { EntityRegistryDisplayEntry } from "../../data/entity_registry";
-import type { FrontendLocaleData } from "../../data/translation";
+
import { NumberFormat } from "../../data/translation";
import { round } from "./round";
diff --git a/src/common/string/format-list.ts b/src/common/string/format-list.ts
index 7b420a26fa..02e41eaa3d 100644
--- a/src/common/string/format-list.ts
+++ b/src/common/string/format-list.ts
@@ -1,6 +1,7 @@
-import memoizeOne from "memoize-one";
import type { FrontendLocaleData } from "../../data/translation";
+import memoizeOne from "memoize-one";
+
export const formatListWithAnds = (
locale: FrontendLocaleData,
list: string[]
diff --git a/src/common/structs/handle-errors.ts b/src/common/structs/handle-errors.ts
index ad5cb080d9..59e06f3d18 100644
--- a/src/common/structs/handle-errors.ts
+++ b/src/common/structs/handle-errors.ts
@@ -1,6 +1,7 @@
-import { StructError } from "superstruct";
import type { HomeAssistant } from "../../types";
+import { StructError } from "superstruct";
+
export const handleStructError = (
hass: HomeAssistant,
err: Error
diff --git a/src/common/structs/is-custom-type.ts b/src/common/structs/is-custom-type.ts
index e5a0082794..0420e737bc 100644
--- a/src/common/structs/is-custom-type.ts
+++ b/src/common/structs/is-custom-type.ts
@@ -1,4 +1,5 @@
import { refine, string } from "superstruct";
+
import { isCustomType } from "../../data/lovelace_custom_cards";
export const customType = () =>
diff --git a/src/common/translations/blank_before_unit.ts b/src/common/translations/blank_before_unit.ts
index 94fc381a6d..b8715eed61 100644
--- a/src/common/translations/blank_before_unit.ts
+++ b/src/common/translations/blank_before_unit.ts
@@ -1,4 +1,5 @@
import type { FrontendLocaleData } from "../../data/translation";
+
import { blankBeforePercent } from "./blank_before_percent";
export const blankBeforeUnit = (
diff --git a/src/common/translations/day_names.ts b/src/common/translations/day_names.ts
index 2dae22823a..36cf89cb94 100644
--- a/src/common/translations/day_names.ts
+++ b/src/common/translations/day_names.ts
@@ -1,7 +1,9 @@
-import { addDays, startOfWeek } from "date-fns";
-import type { HassConfig } from "home-assistant-js-websocket";
-import memoizeOne from "memoize-one";
import type { FrontendLocaleData } from "../../data/translation";
+import type { HassConfig } from "home-assistant-js-websocket";
+
+import { addDays, startOfWeek } from "date-fns";
+import memoizeOne from "memoize-one";
+
import { formatDateWeekday } from "../datetime/format_date";
export const dayNames = memoizeOne(
diff --git a/src/common/translations/entity-state.ts b/src/common/translations/entity-state.ts
index 69c4df603d..1cd05787eb 100644
--- a/src/common/translations/entity-state.ts
+++ b/src/common/translations/entity-state.ts
@@ -1,7 +1,7 @@
-import type { HassConfig, HassEntity } from "home-assistant-js-websocket";
import type { FrontendLocaleData } from "../../data/translation";
import type { HomeAssistant } from "../../types";
import type { LocalizeFunc } from "./localize";
+import type { HassConfig, HassEntity } from "home-assistant-js-websocket";
export type FormatEntityStateFunc = (
stateObj: HassEntity,
diff --git a/src/common/translations/localize.ts b/src/common/translations/localize.ts
index 0afa6c2a93..40e82c933d 100644
--- a/src/common/translations/localize.ts
+++ b/src/common/translations/localize.ts
@@ -1,7 +1,8 @@
+import type { Resources, TranslationDict } from "../../types";
import type { IntlMessageFormat } from "intl-messageformat";
import type { HTMLTemplateResult } from "lit";
+
import { polyfillLocaleData } from "../../resources/polyfills/locale-data-polyfill";
-import type { Resources, TranslationDict } from "../../types";
import { fireEvent } from "../dom/fire_event";
// Exclude some patterns from key type checking for now
diff --git a/src/common/translations/month_names.ts b/src/common/translations/month_names.ts
index 0121a6d9a6..2c2d76578a 100644
--- a/src/common/translations/month_names.ts
+++ b/src/common/translations/month_names.ts
@@ -1,7 +1,9 @@
-import { addMonths, startOfYear } from "date-fns";
-import type { HassConfig } from "home-assistant-js-websocket";
-import memoizeOne from "memoize-one";
import type { FrontendLocaleData } from "../../data/translation";
+import type { HassConfig } from "home-assistant-js-websocket";
+
+import { addMonths, startOfYear } from "date-fns";
+import memoizeOne from "memoize-one";
+
import { formatDateMonth } from "../datetime/format_date";
export const monthNames = memoizeOne(
diff --git a/src/common/util/compute_rtl.ts b/src/common/util/compute_rtl.ts
index b5bebfbc7d..6be6ab5301 100644
--- a/src/common/util/compute_rtl.ts
+++ b/src/common/util/compute_rtl.ts
@@ -1,5 +1,5 @@
-import type { LitElement } from "lit";
import type { HomeAssistant } from "../../types";
+import type { LitElement } from "lit";
export function computeRTL(hass: HomeAssistant) {
const lang = hass.language || "en";
diff --git a/src/common/util/select-unit.ts b/src/common/util/select-unit.ts
index edf2cf364c..cc505032b9 100644
--- a/src/common/util/select-unit.ts
+++ b/src/common/util/select-unit.ts
@@ -1,5 +1,7 @@
-import { differenceInDays, differenceInWeeks, startOfWeek } from "date-fns";
import type { FrontendLocaleData } from "../../data/translation";
+
+import { differenceInDays, differenceInWeeks, startOfWeek } from "date-fns";
+
import { firstWeekdayIndex } from "../datetime/first_weekday";
export type Unit =
diff --git a/src/components/buttons/ha-call-service-button.ts b/src/components/buttons/ha-call-service-button.ts
index 1476ebcffc..484b6e519e 100644
--- a/src/components/buttons/ha-call-service-button.ts
+++ b/src/components/buttons/ha-call-service-button.ts
@@ -1,11 +1,14 @@
+import type { HomeAssistant } from "../../types";
+import type { HassServiceTarget } from "home-assistant-js-websocket";
import type { TemplateResult } from "lit";
+
+import "./ha-progress-button";
+
import { LitElement, html } from "lit";
import { customElement, property } from "lit/decorators";
-import type { HassServiceTarget } from "home-assistant-js-websocket";
-import { showConfirmationDialog } from "../../dialogs/generic/show-dialog-box";
-import "./ha-progress-button";
-import type { HomeAssistant } from "../../types";
+
import { fireEvent } from "../../common/dom/fire_event";
+import { showConfirmationDialog } from "../../dialogs/generic/show-dialog-box";
@customElement("ha-call-service-button")
class HaCallServiceButton extends LitElement {
diff --git a/src/components/buttons/ha-progress-button.ts b/src/components/buttons/ha-progress-button.ts
index a0c535316b..cba4c6c623 100644
--- a/src/components/buttons/ha-progress-button.ts
+++ b/src/components/buttons/ha-progress-button.ts
@@ -1,11 +1,13 @@
-import { mdiAlertOctagram, mdiCheckBold } from "@mdi/js";
import type { TemplateResult } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
+
import "../ha-button";
import "../ha-spinner";
import "../ha-svg-icon";
+import { mdiAlertOctagram, mdiCheckBold } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
@customElement("ha-progress-button")
export class HaProgressButton extends LitElement {
@property() public label?: string;
diff --git a/src/components/chart/axis-label.ts b/src/components/chart/axis-label.ts
index 1f8f9a8154..6cff820d9f 100644
--- a/src/components/chart/axis-label.ts
+++ b/src/components/chart/axis-label.ts
@@ -1,5 +1,6 @@
-import type { HassConfig } from "home-assistant-js-websocket";
import type { FrontendLocaleData } from "../../data/translation";
+import type { HassConfig } from "home-assistant-js-websocket";
+
import {
formatDateMonth,
formatDateMonthYear,
diff --git a/src/components/chart/ha-chart-base.ts b/src/components/chart/ha-chart-base.ts
index f98856cf96..3f7d3437ec 100644
--- a/src/components/chart/ha-chart-base.ts
+++ b/src/components/chart/ha-chart-base.ts
@@ -1,7 +1,6 @@
-import { consume } from "@lit-labs/context";
-import { ResizeController } from "@lit-labs/observers/resize-controller";
-import { mdiChevronDown, mdiChevronUp, mdiRestart } from "@mdi/js";
-import { differenceInMinutes } from "date-fns";
+import type { Themes } from "../../data/ws-themes";
+import type { ECOption } from "../../resources/echarts";
+import type { HomeAssistant } from "../../types";
import type { DataZoomComponentOption } from "echarts/components";
import type { EChartsType } from "echarts/core";
import type {
@@ -11,22 +10,26 @@ import type {
YAXisOption,
} from "echarts/types/dist/shared";
import type { PropertyValues } from "lit";
+
+import "../chips/ha-assist-chip";
+import "../ha-icon-button";
+
+import { consume } from "@lit-labs/context";
+import { ResizeController } from "@lit-labs/observers/resize-controller";
+import { mdiChevronDown, mdiChevronUp, mdiRestart } from "@mdi/js";
+import { differenceInMinutes } from "date-fns";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { styleMap } from "lit/directives/style-map";
+
+import { ensureArray } from "../../common/array/ensure-array";
import { getAllGraphColors } from "../../common/color/colors";
import { fireEvent } from "../../common/dom/fire_event";
import { listenMediaQuery } from "../../common/dom/media_query";
import { themesContext } from "../../data/context";
-import type { Themes } from "../../data/ws-themes";
-import type { ECOption } from "../../resources/echarts";
-import type { HomeAssistant } from "../../types";
import { isMac } from "../../util/is_mac";
-import "../ha-icon-button";
import { formatTimeLabel } from "./axis-label";
-import { ensureArray } from "../../common/array/ensure-array";
-import "../chips/ha-assist-chip";
export const MIN_TIME_BETWEEN_UPDATES = 60 * 5 * 1000;
const LEGEND_OVERFLOW_LIMIT = 10;
diff --git a/src/components/chart/ha-sankey-chart.ts b/src/components/chart/ha-sankey-chart.ts
index 00d0a96d6c..c89cf12d58 100644
--- a/src/components/chart/ha-sankey-chart.ts
+++ b/src/components/chart/ha-sankey-chart.ts
@@ -1,17 +1,20 @@
-import { customElement, property, state } from "lit/decorators";
-import { LitElement, html, css } from "lit";
-import type { EChartsType } from "echarts/core";
-import type { CallbackDataParams } from "echarts/types/dist/shared";
-import type { SankeySeriesOption } from "echarts/types/dist/echarts";
-import { SankeyChart } from "echarts/charts";
-import memoizeOne from "memoize-one";
-import { ResizeController } from "@lit-labs/observers/resize-controller";
-import type { HomeAssistant } from "../../types";
import type { ECOption } from "../../resources/echarts";
-import { measureTextWidth } from "../../util/text";
-import "./ha-chart-base";
-import { NODE_SIZE } from "../trace/hat-graph-const";
+import type { HomeAssistant } from "../../types";
+import type { EChartsType } from "echarts/core";
+import type { SankeySeriesOption } from "echarts/types/dist/echarts";
+import type { CallbackDataParams } from "echarts/types/dist/shared";
+
import "../ha-alert";
+import "./ha-chart-base";
+
+import { ResizeController } from "@lit-labs/observers/resize-controller";
+import { SankeyChart } from "echarts/charts";
+import { LitElement, html, css } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { measureTextWidth } from "../../util/text";
+import { NODE_SIZE } from "../trace/hat-graph-const";
export interface Node {
id: string;
diff --git a/src/components/chart/state-history-chart-line.ts b/src/components/chart/state-history-chart-line.ts
index 2eb31f2cd1..dd4f231e79 100644
--- a/src/components/chart/state-history-chart-line.ts
+++ b/src/components/chart/state-history-chart-line.ts
@@ -1,26 +1,27 @@
+import type { LineChartEntity, LineChartState } from "../../data/history";
+import type { ECOption } from "../../resources/echarts";
+import type { HomeAssistant } from "../../types";
+import type { LineSeriesOption } from "echarts/charts";
+import type { VisualMapComponentOption } from "echarts/components";
+import type { YAXisOption } from "echarts/types/dist/shared";
import type { PropertyValues } from "lit";
+
import { html, LitElement } from "lit";
import { property, state } from "lit/decorators";
-import type { VisualMapComponentOption } from "echarts/components";
-import type { LineSeriesOption } from "echarts/charts";
-import type { YAXisOption } from "echarts/types/dist/shared";
import { styleMap } from "lit/directives/style-map";
-import { getGraphColorByIndex } from "../../common/color/colors";
-import { computeRTL } from "../../common/util/compute_rtl";
-import type { LineChartEntity, LineChartState } from "../../data/history";
-import type { HomeAssistant } from "../../types";
-import { MIN_TIME_BETWEEN_UPDATES } from "./ha-chart-base";
-import type { ECOption } from "../../resources/echarts";
+import { getGraphColorByIndex } from "../../common/color/colors";
import { formatDateTimeWithSeconds } from "../../common/datetime/format_date_time";
+import { fireEvent } from "../../common/dom/fire_event";
import {
getNumberFormatOptions,
formatNumber,
} from "../../common/number/format_number";
-import { measureTextWidth } from "../../util/text";
-import { fireEvent } from "../../common/dom/fire_event";
-import { CLIMATE_HVAC_ACTION_TO_MODE } from "../../data/climate";
import { blankBeforeUnit } from "../../common/translations/blank_before_unit";
+import { computeRTL } from "../../common/util/compute_rtl";
+import { CLIMATE_HVAC_ACTION_TO_MODE } from "../../data/climate";
+import { measureTextWidth } from "../../util/text";
+import { MIN_TIME_BETWEEN_UPDATES } from "./ha-chart-base";
const safeParseFloat = (value) => {
const parsed = parseFloat(value);
diff --git a/src/components/chart/state-history-chart-timeline.ts b/src/components/chart/state-history-chart-timeline.ts
index 89a59a7513..0a994d815a 100644
--- a/src/components/chart/state-history-chart-timeline.ts
+++ b/src/components/chart/state-history-chart-timeline.ts
@@ -1,6 +1,6 @@
-import type { PropertyValues } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
+import type { TimelineEntity } from "../../data/history";
+import type { ECOption } from "../../resources/echarts";
+import type { HomeAssistant } from "../../types";
import type {
CustomSeriesOption,
CustomSeriesRenderItem,
@@ -8,19 +8,21 @@ import type {
TooltipFormatterCallback,
TooltipPositionCallbackParams,
} from "echarts/types/dist/shared";
+import type { PropertyValues } from "lit";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { hex2rgb } from "../../common/color/convert-color";
+import { luminosity } from "../../common/color/rgb";
import { formatDateTimeWithSeconds } from "../../common/datetime/format_date_time";
import millisecondsToDuration from "../../common/datetime/milliseconds_to_duration";
+import { fireEvent } from "../../common/dom/fire_event";
import { computeRTL } from "../../common/util/compute_rtl";
-import type { TimelineEntity } from "../../data/history";
-import type { HomeAssistant } from "../../types";
+import echarts from "../../resources/echarts";
+import { measureTextWidth } from "../../util/text";
import { MIN_TIME_BETWEEN_UPDATES } from "./ha-chart-base";
import { computeTimelineColor } from "./timeline-color";
-import type { ECOption } from "../../resources/echarts";
-import echarts from "../../resources/echarts";
-import { luminosity } from "../../common/color/rgb";
-import { hex2rgb } from "../../common/color/convert-color";
-import { measureTextWidth } from "../../util/text";
-import { fireEvent } from "../../common/dom/fire_event";
@customElement("state-history-chart-timeline")
export class StateHistoryChartTimeline extends LitElement {
diff --git a/src/components/chart/state-history-charts.ts b/src/components/chart/state-history-charts.ts
index 7e89aad514..ad1814b0e6 100644
--- a/src/components/chart/state-history-charts.ts
+++ b/src/components/chart/state-history-charts.ts
@@ -1,19 +1,22 @@
-import type { PropertyValues } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, eventOptions, property, state } from "lit/decorators";
-import type { RenderItemFunction } from "@lit-labs/virtualizer/virtualize";
-import { isComponentLoaded } from "../../common/config/is_component_loaded";
-import { restoreScroll } from "../../common/decorators/restore-scroll";
import type {
HistoryResult,
LineChartUnit,
TimelineEntity,
} from "../../data/history";
-import { loadVirtualizer } from "../../resources/virtualizer";
import type { HomeAssistant } from "../../types";
+import type { RenderItemFunction } from "@lit-labs/virtualizer/virtualize";
+import type { PropertyValues } from "lit";
+
import "./state-history-chart-line";
import "./state-history-chart-timeline";
+import { css, html, LitElement } from "lit";
+import { customElement, eventOptions, property, state } from "lit/decorators";
+
+import { isComponentLoaded } from "../../common/config/is_component_loaded";
+import { restoreScroll } from "../../common/decorators/restore-scroll";
+import { loadVirtualizer } from "../../resources/virtualizer";
+
const CANVAS_TIMELINE_ROWS_CHUNK = 10; // Split up the canvases to avoid hitting the render limit
const chunkData = (inputArray: any[], chunks: number) =>
diff --git a/src/components/chart/statistics-chart.ts b/src/components/chart/statistics-chart.ts
index 0bec8532ec..139b53f47d 100644
--- a/src/components/chart/statistics-chart.ts
+++ b/src/components/chart/statistics-chart.ts
@@ -1,16 +1,26 @@
+import type {
+ Statistics,
+ StatisticsMetaData,
+ StatisticType,
+} from "../../data/recorder";
+import type { ECOption } from "../../resources/echarts";
+import type { HomeAssistant } from "../../types";
import type {
BarSeriesOption,
LineSeriesOption,
ZRColor,
} from "echarts/types/dist/shared";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "./ha-chart-base";
+
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
import memoizeOne from "memoize-one";
+
import { getGraphColorByIndex } from "../../common/color/colors";
import { isComponentLoaded } from "../../common/config/is_component_loaded";
-
import { formatDateTimeWithSeconds } from "../../common/datetime/format_date_time";
import {
formatNumber,
@@ -18,20 +28,12 @@ import {
} from "../../common/number/format_number";
import { blankBeforeUnit } from "../../common/translations/blank_before_unit";
import { computeRTL } from "../../common/util/compute_rtl";
-import type {
- Statistics,
- StatisticsMetaData,
- StatisticType,
-} from "../../data/recorder";
import {
getDisplayUnit,
getStatisticLabel,
getStatisticMetadata,
statisticsHaveType,
} from "../../data/recorder";
-import type { ECOption } from "../../resources/echarts";
-import type { HomeAssistant } from "../../types";
-import "./ha-chart-base";
export const supportedStatTypeMap: Record = {
mean: "mean",
diff --git a/src/components/chart/timeline-color.ts b/src/components/chart/timeline-color.ts
index e6b666ad68..9cbbb2dcfc 100644
--- a/src/components/chart/timeline-color.ts
+++ b/src/components/chart/timeline-color.ts
@@ -1,4 +1,5 @@
import type { HassEntity } from "home-assistant-js-websocket";
+
import { getGraphColorByIndex } from "../../common/color/colors";
import { hex2rgb, lab2hex, rgb2lab } from "../../common/color/convert-color";
import { labBrighten } from "../../common/color/lab";
diff --git a/src/components/data-table/dialog-data-table-settings.ts b/src/components/data-table/dialog-data-table-settings.ts
index 1b23e4927c..ecd0ae6294 100644
--- a/src/components/data-table/dialog-data-table-settings.ts
+++ b/src/components/data-table/dialog-data-table-settings.ts
@@ -1,23 +1,26 @@
-import "@material/mwc-list";
-import { mdiDrag, mdiEye, mdiEyeOff } from "@mdi/js";
-import type { CSSResultGroup } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import { repeat } from "lit/directives/repeat";
-import memoizeOne from "memoize-one";
-import { haStyleDialog } from "../../resources/styles";
import type { HomeAssistant } from "../../types";
-import { createCloseHeading } from "../ha-dialog";
-import "../ha-list-item";
-import "../ha-sortable";
-import "../ha-button";
import type {
DataTableColumnContainer,
DataTableColumnData,
} from "./ha-data-table";
import type { DataTableSettingsDialogParams } from "./show-dialog-data-table-settings";
+import type { CSSResultGroup } from "lit";
+
+import "../ha-button";
+import "../ha-list-item";
+import "../ha-sortable";
+import "@material/mwc-list";
+
+import { mdiDrag, mdiEye, mdiEyeOff } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+import { repeat } from "lit/directives/repeat";
+import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../common/dom/fire_event";
+import { haStyleDialog } from "../../resources/styles";
+import { createCloseHeading } from "../ha-dialog";
@customElement("dialog-data-table-settings")
export class DialogDataTableSettings extends LitElement {
diff --git a/src/components/data-table/ha-data-table-icon.ts b/src/components/data-table/ha-data-table-icon.ts
index a4b797d82f..1a416b4832 100644
--- a/src/components/data-table/ha-data-table-icon.ts
+++ b/src/components/data-table/ha-data-table-icon.ts
@@ -1,9 +1,11 @@
import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
+
import "../ha-svg-icon";
import "../ha-tooltip";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("ha-data-table-icon")
class HaDataTableIcon extends LitElement {
@property() public tooltip!: string;
diff --git a/src/components/data-table/ha-data-table-labels.ts b/src/components/data-table/ha-data-table-labels.ts
index ce999fb760..9a1c01e658 100644
--- a/src/components/data-table/ha-data-table-labels.ts
+++ b/src/components/data-table/ha-data-table-labels.ts
@@ -1,17 +1,20 @@
-import type { TemplateResult } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import { repeat } from "lit/directives/repeat";
import type { LabelRegistryEntry } from "../../data/label_registry";
-import { computeCssColor } from "../../common/color/compute-color";
-import { fireEvent } from "../../common/dom/fire_event";
-import "../ha-label";
-import { stringCompare } from "../../common/string/compare";
+import type { TemplateResult } from "lit";
+
import "../chips/ha-chip-set";
import "../ha-button-menu";
import "../ha-icon";
+import "../ha-label";
import "../ha-list-item";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+import { repeat } from "lit/directives/repeat";
+
+import { computeCssColor } from "../../common/color/compute-color";
+import { fireEvent } from "../../common/dom/fire_event";
+import { stringCompare } from "../../common/string/compare";
+
@customElement("ha-data-table-labels")
class HaDataTableLabels extends LitElement {
@property({ attribute: false }) public labels!: LabelRegistryEntry[];
diff --git a/src/components/data-table/ha-data-table.ts b/src/components/data-table/ha-data-table.ts
index 39447ca320..bdc850fb54 100644
--- a/src/components/data-table/ha-data-table.ts
+++ b/src/components/data-table/ha-data-table.ts
@@ -1,6 +1,14 @@
+import type { LocalizeFunc } from "../../common/translations/localize";
+import type { HomeAssistant } from "../../types";
+import type { HaCheckbox } from "../ha-checkbox";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../ha-checkbox";
+import "../ha-svg-icon";
+import "../search-input";
+
import { mdiArrowDown, mdiArrowUp, mdiChevronUp } from "@mdi/js";
import deepClone from "deep-clone-simple";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
import { LitElement, css, html, nothing } from "lit";
import {
customElement,
@@ -13,21 +21,16 @@ import { classMap } from "lit/directives/class-map";
import { ifDefined } from "lit/directives/if-defined";
import { styleMap } from "lit/directives/style-map";
import memoizeOne from "memoize-one";
+
import { restoreScroll } from "../../common/decorators/restore-scroll";
import { fireEvent } from "../../common/dom/fire_event";
import { stringCompare } from "../../common/string/compare";
import { debounce } from "../../common/util/debounce";
import { groupBy } from "../../common/util/group-by";
+import { nextRender } from "../../common/util/render-status";
import { haStyleScrollbar } from "../../resources/styles";
import { loadVirtualizer } from "../../resources/virtualizer";
-import type { HomeAssistant } from "../../types";
-import "../ha-checkbox";
-import type { HaCheckbox } from "../ha-checkbox";
-import "../ha-svg-icon";
-import "../search-input";
import { filterData, sortData } from "./sort-filter";
-import type { LocalizeFunc } from "../../common/translations/localize";
-import { nextRender } from "../../common/util/render-status";
export interface RowClickedEvent {
id: string;
diff --git a/src/components/data-table/show-dialog-data-table-settings.ts b/src/components/data-table/show-dialog-data-table-settings.ts
index d4fc995a08..8402e6fc6a 100644
--- a/src/components/data-table/show-dialog-data-table-settings.ts
+++ b/src/components/data-table/show-dialog-data-table-settings.ts
@@ -1,7 +1,8 @@
-import { fireEvent } from "../../common/dom/fire_event";
import type { LocalizeFunc } from "../../common/translations/localize";
import type { DataTableColumnContainer } from "./ha-data-table";
+import { fireEvent } from "../../common/dom/fire_event";
+
export interface DataTableSettingsDialogParams {
columns: DataTableColumnContainer;
onUpdate: (
diff --git a/src/components/data-table/sort-filter-worker.ts b/src/components/data-table/sort-filter-worker.ts
index b34ec899ff..4066bb90d1 100644
--- a/src/components/data-table/sort-filter-worker.ts
+++ b/src/components/data-table/sort-filter-worker.ts
@@ -1,6 +1,3 @@
-import { expose } from "comlink";
-import { stringCompare } from "../../common/string/compare";
-import { stripDiacritics } from "../../common/string/strip-diacritics";
import type {
ClonedDataTableColumnData,
DataTableRowData,
@@ -8,6 +5,11 @@ import type {
SortingDirection,
} from "./ha-data-table";
+import { expose } from "comlink";
+
+import { stringCompare } from "../../common/string/compare";
+import { stripDiacritics } from "../../common/string/strip-diacritics";
+
const filterData = (
data: DataTableRowData[],
columns: SortableColumnContainer,
diff --git a/src/components/data-table/sort-filter.ts b/src/components/data-table/sort-filter.ts
index 0fbcba56fa..0b15f1d002 100644
--- a/src/components/data-table/sort-filter.ts
+++ b/src/components/data-table/sort-filter.ts
@@ -1,6 +1,7 @@
-import type { Remote } from "comlink";
-import { wrap } from "comlink";
import type { Api } from "./sort-filter-worker";
+import type { Remote } from "comlink";
+
+import { wrap } from "comlink";
type FilterDataType = Api["filterData"];
type FilterDataParamTypes = Parameters;
diff --git a/src/components/date-range-picker.ts b/src/components/date-range-picker.ts
index 22734ca3b5..07b6798597 100644
--- a/src/components/date-range-picker.ts
+++ b/src/components/date-range-picker.ts
@@ -1,14 +1,16 @@
+// @ts-ignore
+import dateRangePickerStyles from "vue2-daterange-picker/dist/vue2-daterange-picker.css";
+
import wrap from "@vue/web-component-wrapper";
import { customElement } from "lit/decorators";
import Vue from "vue";
import DateRangePicker from "vue2-daterange-picker";
-// @ts-ignore
-import dateRangePickerStyles from "vue2-daterange-picker/dist/vue2-daterange-picker.css";
-import { fireEvent } from "../common/dom/fire_event";
+
import {
localizeWeekdays,
localizeMonths,
} from "../common/datetime/localize_date";
+import { fireEvent } from "../common/dom/fire_event";
import { mainWindow } from "../common/dom/get_main_window";
// eslint-disable-next-line @typescript-eslint/naming-convention
diff --git a/src/components/device/ha-device-action-picker.ts b/src/components/device/ha-device-action-picker.ts
index 7e6dea1acb..91ac3a8ba6 100644
--- a/src/components/device/ha-device-action-picker.ts
+++ b/src/components/device/ha-device-action-picker.ts
@@ -1,5 +1,7 @@
-import { customElement } from "lit/decorators";
import type { DeviceAction } from "../../data/device_automation";
+
+import { customElement } from "lit/decorators";
+
import {
fetchDeviceActions,
localizeDeviceAutomationAction,
diff --git a/src/components/device/ha-device-automation-picker.ts b/src/components/device/ha-device-automation-picker.ts
index b79ac97e41..da0d430144 100644
--- a/src/components/device/ha-device-automation-picker.ts
+++ b/src/components/device/ha-device-automation-picker.ts
@@ -1,17 +1,20 @@
-import { consume } from "@lit-labs/context";
+import type { DeviceAutomation } from "../../data/device_automation";
+import type { EntityRegistryEntry } from "../../data/entity_registry";
+import type { HomeAssistant } from "../../types";
+
+import "../ha-select";
import "@material/mwc-list/mwc-list-item";
+
+import { consume } from "@lit-labs/context";
import { css, html, LitElement, nothing } from "lit";
import { property, state } from "lit/decorators";
+
import { fireEvent } from "../../common/dom/fire_event";
import { fullEntitiesContext } from "../../data/context";
-import type { DeviceAutomation } from "../../data/device_automation";
import {
deviceAutomationsEqual,
sortDeviceAutomations,
} from "../../data/device_automation";
-import type { EntityRegistryEntry } from "../../data/entity_registry";
-import type { HomeAssistant } from "../../types";
-import "../ha-select";
const NO_AUTOMATION_KEY = "NO_AUTOMATION";
const UNKNOWN_AUTOMATION_KEY = "UNKNOWN_AUTOMATION";
diff --git a/src/components/device/ha-device-condition-picker.ts b/src/components/device/ha-device-condition-picker.ts
index af59d0a4c6..c69b705560 100644
--- a/src/components/device/ha-device-condition-picker.ts
+++ b/src/components/device/ha-device-condition-picker.ts
@@ -1,5 +1,7 @@
-import { customElement } from "lit/decorators";
import type { DeviceCondition } from "../../data/device_automation";
+
+import { customElement } from "lit/decorators";
+
import {
fetchDeviceConditions,
localizeDeviceAutomationCondition,
diff --git a/src/components/device/ha-device-picker.ts b/src/components/device/ha-device-picker.ts
index 8d8cb13f35..00ca2e72ee 100644
--- a/src/components/device/ha-device-picker.ts
+++ b/src/components/device/ha-device-picker.ts
@@ -1,26 +1,29 @@
-import type { ComboBoxLitRenderer } from "@vaadin/combo-box/lit";
-import type { HassEntity } from "home-assistant-js-websocket";
-import type { PropertyValues, TemplateResult } from "lit";
-import { LitElement, html } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../common/dom/fire_event";
-import { computeDeviceNameDisplay } from "../../common/entity/compute_device_name";
-import { computeDomain } from "../../common/entity/compute_domain";
-import { stringCompare } from "../../common/string/compare";
import type { ScorableTextItem } from "../../common/string/filter/sequence-matching";
-import { fuzzyFilterSort } from "../../common/string/filter/sequence-matching";
import type {
DeviceEntityDisplayLookup,
DeviceRegistryEntry,
} from "../../data/device_registry";
-import { getDeviceEntityDisplayLookup } from "../../data/device_registry";
import type { EntityRegistryDisplayEntry } from "../../data/entity_registry";
import type { HomeAssistant, ValueChangedEvent } from "../../types";
-import "../ha-combo-box";
import type { HaComboBox } from "../ha-combo-box";
+import type { ComboBoxLitRenderer } from "@vaadin/combo-box/lit";
+import type { HassEntity } from "home-assistant-js-websocket";
+import type { PropertyValues, TemplateResult } from "lit";
+
+import "../ha-combo-box";
import "../ha-list-item";
+import { LitElement, html } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../common/dom/fire_event";
+import { computeDeviceNameDisplay } from "../../common/entity/compute_device_name";
+import { computeDomain } from "../../common/entity/compute_domain";
+import { stringCompare } from "../../common/string/compare";
+import { fuzzyFilterSort } from "../../common/string/filter/sequence-matching";
+import { getDeviceEntityDisplayLookup } from "../../data/device_registry";
+
interface Device {
name: string;
area: string;
diff --git a/src/components/device/ha-device-trigger-picker.ts b/src/components/device/ha-device-trigger-picker.ts
index a57ab1c8fc..b0a645d338 100644
--- a/src/components/device/ha-device-trigger-picker.ts
+++ b/src/components/device/ha-device-trigger-picker.ts
@@ -1,5 +1,7 @@
-import { customElement } from "lit/decorators";
import type { DeviceTrigger } from "../../data/device_automation";
+
+import { customElement } from "lit/decorators";
+
import {
fetchDeviceTriggers,
localizeDeviceAutomationTrigger,
diff --git a/src/components/device/ha-devices-picker.ts b/src/components/device/ha-devices-picker.ts
index 8c6a2fb570..55fb5f3053 100644
--- a/src/components/device/ha-devices-picker.ts
+++ b/src/components/device/ha-devices-picker.ts
@@ -1,13 +1,16 @@
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
import type { ValueChangedEvent, HomeAssistant } from "../../types";
-import "./ha-device-picker";
import type {
HaDevicePickerDeviceFilterFunc,
HaDevicePickerEntityFilterFunc,
} from "./ha-device-picker";
+import "./ha-device-picker";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
+
@customElement("ha-devices-picker")
class HaDevicesPicker extends LitElement {
@property({ attribute: false }) public hass?: HomeAssistant;
diff --git a/src/components/entity/ha-battery-icon.ts b/src/components/entity/ha-battery-icon.ts
index e0f40d9068..e82ab76544 100644
--- a/src/components/entity/ha-battery-icon.ts
+++ b/src/components/entity/ha-battery-icon.ts
@@ -1,8 +1,11 @@
import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../ha-icon";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
+
import { batteryLevelIcon } from "../../common/entity/battery_icon";
-import "../ha-icon";
@customElement("ha-battery-icon")
export class HaBatteryIcon extends LitElement {
diff --git a/src/components/entity/ha-entities-picker.ts b/src/components/entity/ha-entities-picker.ts
index c847538cb2..32ffa4b81a 100644
--- a/src/components/entity/ha-entities-picker.ts
+++ b/src/components/entity/ha-entities-picker.ts
@@ -1,11 +1,14 @@
+import type { HomeAssistant, ValueChangedEvent } from "../../types";
+import type { HaEntityPickerEntityFilterFunc } from "./ha-entity-picker";
+
+import "./ha-entity-picker";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../common/dom/fire_event";
import { isValidEntityId } from "../../common/entity/valid_entity_id";
-import type { HomeAssistant, ValueChangedEvent } from "../../types";
-import "./ha-entity-picker";
-import type { HaEntityPickerEntityFilterFunc } from "./ha-entity-picker";
@customElement("ha-entities-picker")
class HaEntitiesPickerLight extends LitElement {
diff --git a/src/components/entity/ha-entity-attribute-picker.ts b/src/components/entity/ha-entity-attribute-picker.ts
index 2468f6fe71..f1c3c9c203 100644
--- a/src/components/entity/ha-entity-attribute-picker.ts
+++ b/src/components/entity/ha-entity-attribute-picker.ts
@@ -1,11 +1,14 @@
+import type { HomeAssistant, ValueChangedEvent } from "../../types";
+import type { HaComboBox } from "../ha-combo-box";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
+
+import "../ha-combo-box";
+
import { LitElement, html, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
+
import { computeAttributeNameDisplay } from "../../common/entity/compute_attribute_display";
-import type { HomeAssistant, ValueChangedEvent } from "../../types";
-import "../ha-combo-box";
-import type { HaComboBox } from "../ha-combo-box";
export type HaEntityPickerEntityFilterFunc = (entityId: HassEntity) => boolean;
diff --git a/src/components/entity/ha-entity-picker.ts b/src/components/entity/ha-entity-picker.ts
index 900b72bddb..5351a93432 100644
--- a/src/components/entity/ha-entity-picker.ts
+++ b/src/components/entity/ha-entity-picker.ts
@@ -1,26 +1,29 @@
-import "../ha-list-item";
+import type { ScorableTextItem } from "../../common/string/filter/sequence-matching";
+import type { HelperDomain } from "../../panels/config/helpers/const";
+import type { ValueChangedEvent, HomeAssistant } from "../../types";
+import type { HaComboBox } from "../ha-combo-box";
+import type { ComboBoxLitRenderer } from "@vaadin/combo-box/lit";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../ha-combo-box";
+import "../ha-icon-button";
+import "../ha-list-item";
+import "../ha-svg-icon";
+import "./state-badge";
+
import { html, LitElement } from "lit";
-import type { ComboBoxLitRenderer } from "@vaadin/combo-box/lit";
import { customElement, property, query, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../common/dom/fire_event";
import { computeDomain } from "../../common/entity/compute_domain";
import { computeStateName } from "../../common/entity/compute_state_name";
-import type { ScorableTextItem } from "../../common/string/filter/sequence-matching";
-import { fuzzyFilterSort } from "../../common/string/filter/sequence-matching";
-import type { ValueChangedEvent, HomeAssistant } from "../../types";
-import "../ha-combo-box";
-import type { HaComboBox } from "../ha-combo-box";
-import "../ha-icon-button";
-import "../ha-svg-icon";
-import "./state-badge";
import { caseInsensitiveStringCompare } from "../../common/string/compare";
-import { showHelperDetailDialog } from "../../panels/config/helpers/show-dialog-helper-detail";
+import { fuzzyFilterSort } from "../../common/string/filter/sequence-matching";
import { domainToName } from "../../data/integration";
-import type { HelperDomain } from "../../panels/config/helpers/const";
import { isHelperDomain } from "../../panels/config/helpers/const";
+import { showHelperDetailDialog } from "../../panels/config/helpers/show-dialog-helper-detail";
interface HassEntityWithCachedName extends HassEntity, ScorableTextItem {
friendly_name: string;
diff --git a/src/components/entity/ha-entity-state-content-picker.ts b/src/components/entity/ha-entity-state-content-picker.ts
index 2e1e25c988..fc61fbcec2 100644
--- a/src/components/entity/ha-entity-state-content-picker.ts
+++ b/src/components/entity/ha-entity-state-content-picker.ts
@@ -1,10 +1,19 @@
-import { mdiDrag } from "@mdi/js";
+import type { HomeAssistant, ValueChangedEvent } from "../../types";
+import type { HaComboBox } from "../ha-combo-box";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
+
+import "../chips/ha-chip-set";
+import "../chips/ha-input-chip";
+import "../ha-combo-box";
+import "../ha-sortable";
+
+import { mdiDrag } from "@mdi/js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { repeat } from "lit/directives/repeat";
import memoizeOne from "memoize-one";
+
import { ensureArray } from "../../common/array/ensure-array";
import { fireEvent } from "../../common/dom/fire_event";
import { computeDomain } from "../../common/entity/compute_domain";
@@ -12,12 +21,6 @@ import {
STATE_DISPLAY_SPECIAL_CONTENT,
STATE_DISPLAY_SPECIAL_CONTENT_DOMAINS,
} from "../../state-display/state-display";
-import type { HomeAssistant, ValueChangedEvent } from "../../types";
-import "../ha-combo-box";
-import "../ha-sortable";
-import "../chips/ha-input-chip";
-import "../chips/ha-chip-set";
-import type { HaComboBox } from "../ha-combo-box";
const HIDDEN_ATTRIBUTES = [
"access_token",
diff --git a/src/components/entity/ha-entity-state-picker.ts b/src/components/entity/ha-entity-state-picker.ts
index f54a8e5cd8..34062cb3a3 100644
--- a/src/components/entity/ha-entity-state-picker.ts
+++ b/src/components/entity/ha-entity-state-picker.ts
@@ -1,12 +1,15 @@
+import type { HomeAssistant, ValueChangedEvent } from "../../types";
+import type { HaComboBox } from "../ha-combo-box";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
+
+import "../ha-combo-box";
+
import { LitElement, html, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
+
import { fireEvent } from "../../common/dom/fire_event";
import { getStates } from "../../common/entity/get_states";
-import type { HomeAssistant, ValueChangedEvent } from "../../types";
-import "../ha-combo-box";
-import type { HaComboBox } from "../ha-combo-box";
export type HaEntityPickerEntityFilterFunc = (entityId: HassEntity) => boolean;
diff --git a/src/components/entity/ha-entity-toggle.ts b/src/components/entity/ha-entity-toggle.ts
index 10db5b67e0..20f872618f 100644
--- a/src/components/entity/ha-entity-toggle.ts
+++ b/src/components/entity/ha-entity-toggle.ts
@@ -1,17 +1,20 @@
-import { mdiFlash, mdiFlashOff } from "@mdi/js";
+import type { HomeAssistant } from "../../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../ha-formfield";
+import "../ha-icon-button";
+import "../ha-switch";
+
+import { mdiFlash, mdiFlashOff } from "@mdi/js";
import { LitElement, css, html } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { STATES_OFF } from "../../common/const";
import { computeStateDomain } from "../../common/entity/compute_state_domain";
import { computeStateName } from "../../common/entity/compute_state_name";
import { UNAVAILABLE, UNKNOWN, isUnavailableState } from "../../data/entity";
import { forwardHaptic } from "../../data/haptics";
-import type { HomeAssistant } from "../../types";
-import "../ha-formfield";
-import "../ha-icon-button";
-import "../ha-switch";
const isOn = (stateObj?: HassEntity) =>
stateObj !== undefined &&
diff --git a/src/components/entity/ha-state-label-badge.ts b/src/components/entity/ha-state-label-badge.ts
index 2f136991ba..528029ed2d 100644
--- a/src/components/entity/ha-state-label-badge.ts
+++ b/src/components/entity/ha-state-label-badge.ts
@@ -1,9 +1,16 @@
-import { mdiAlert } from "@mdi/js";
+import type { EntityRegistryDisplayEntry } from "../../data/entity_registry";
+import type { HomeAssistant } from "../../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../ha-label-badge";
+import "../ha-state-icon";
+
+import { mdiAlert } from "@mdi/js";
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { arrayLiteralIncludes } from "../../common/array/literal-includes";
import secondsToDuration from "../../common/datetime/seconds_to_duration";
import { computeStateDomain } from "../../common/entity/compute_state_domain";
@@ -15,11 +22,7 @@ import {
isNumericState,
} from "../../common/number/format_number";
import { isUnavailableState, UNAVAILABLE, UNKNOWN } from "../../data/entity";
-import type { EntityRegistryDisplayEntry } from "../../data/entity_registry";
import { timerTimeRemaining } from "../../data/timer";
-import type { HomeAssistant } from "../../types";
-import "../ha-label-badge";
-import "../ha-state-icon";
// Define the domains whose states have special truncated strings
const TRUNCATED_DOMAINS = [
diff --git a/src/components/entity/ha-statistic-picker.ts b/src/components/entity/ha-statistic-picker.ts
index 78ffb8d247..6a1fc7f583 100644
--- a/src/components/entity/ha-statistic-picker.ts
+++ b/src/components/entity/ha-statistic-picker.ts
@@ -1,23 +1,26 @@
-import "@material/mwc-list/mwc-list-item";
+import type { ScorableTextItem } from "../../common/string/filter/sequence-matching";
+import type { StatisticsMetaData } from "../../data/recorder";
+import type { ValueChangedEvent, HomeAssistant } from "../../types";
+import type { HaComboBox } from "../ha-combo-box";
+import type { ComboBoxLitRenderer } from "@vaadin/combo-box/lit";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../ha-combo-box";
+import "../ha-svg-icon";
+import "./state-badge";
+import "@material/mwc-list/mwc-list-item";
+
import { html, LitElement, nothing } from "lit";
-import type { ComboBoxLitRenderer } from "@vaadin/combo-box/lit";
import { customElement, property, query, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { ensureArray } from "../../common/array/ensure-array";
import { fireEvent } from "../../common/dom/fire_event";
import { stringCompare } from "../../common/string/compare";
-import type { StatisticsMetaData } from "../../data/recorder";
-import { getStatisticIds, getStatisticLabel } from "../../data/recorder";
-import type { ValueChangedEvent, HomeAssistant } from "../../types";
-import { documentationUrl } from "../../util/documentation-url";
-import "../ha-combo-box";
-import type { HaComboBox } from "../ha-combo-box";
-import "../ha-svg-icon";
-import "./state-badge";
-import type { ScorableTextItem } from "../../common/string/filter/sequence-matching";
import { fuzzyFilterSort } from "../../common/string/filter/sequence-matching";
+import { getStatisticIds, getStatisticLabel } from "../../data/recorder";
+import { documentationUrl } from "../../util/documentation-url";
interface StatisticItem extends ScorableTextItem {
id: string;
diff --git a/src/components/entity/ha-statistics-picker.ts b/src/components/entity/ha-statistics-picker.ts
index d731b2ec20..730061f713 100644
--- a/src/components/entity/ha-statistics-picker.ts
+++ b/src/components/entity/ha-statistics-picker.ts
@@ -1,9 +1,12 @@
+import type { ValueChangedEvent, HomeAssistant } from "../../types";
+
+import "./ha-statistic-picker";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import { repeat } from "lit/directives/repeat";
+
import { fireEvent } from "../../common/dom/fire_event";
-import type { ValueChangedEvent, HomeAssistant } from "../../types";
-import "./ha-statistic-picker";
@customElement("ha-statistics-picker")
class HaStatisticsPicker extends LitElement {
diff --git a/src/components/entity/state-badge.ts b/src/components/entity/state-badge.ts
index 1ca73b9882..1d92c714aa 100644
--- a/src/components/entity/state-badge.ts
+++ b/src/components/entity/state-badge.ts
@@ -1,10 +1,15 @@
-import { mdiAlert } from "@mdi/js";
+import type { HomeAssistant } from "../../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../ha-state-icon";
+
+import { mdiAlert } from "@mdi/js";
import { LitElement, css, html, nothing } from "lit";
import { property, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
import { styleMap } from "lit/directives/style-map";
+
import { computeDomain } from "../../common/entity/compute_domain";
import { computeStateDomain } from "../../common/entity/compute_state_domain";
import {
@@ -14,8 +19,6 @@ import {
import { iconColorCSS } from "../../common/style/icon_color_css";
import { cameraUrlWithWidthHeight } from "../../data/camera";
import { CLIMATE_HVAC_ACTION_TO_MODE } from "../../data/climate";
-import type { HomeAssistant } from "../../types";
-import "../ha-state-icon";
export class StateBadge extends LitElement {
public hass?: HomeAssistant;
diff --git a/src/components/entity/state-info.ts b/src/components/entity/state-info.ts
index 15d274bb21..63bbc5b524 100644
--- a/src/components/entity/state-info.ts
+++ b/src/components/entity/state-info.ts
@@ -1,11 +1,14 @@
+import type { HomeAssistant } from "../../types";
import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../ha-relative-time";
+import "../ha-tooltip";
+import "./state-badge";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
+
import { computeStateName } from "../../common/entity/compute_state_name";
-import type { HomeAssistant } from "../../types";
-import "../ha-relative-time";
-import "./state-badge";
-import "../ha-tooltip";
@customElement("state-info")
class StateInfo extends LitElement {
diff --git a/src/components/ha-absolute-time.ts b/src/components/ha-absolute-time.ts
index 935c4e8ff0..56496c0552 100644
--- a/src/components/ha-absolute-time.ts
+++ b/src/components/ha-absolute-time.ts
@@ -1,9 +1,11 @@
-import { addDays, differenceInMilliseconds, startOfDay } from "date-fns";
+import type { HomeAssistant } from "../types";
import type { PropertyValues } from "lit";
+
+import { addDays, differenceInMilliseconds, startOfDay } from "date-fns";
import { ReactiveElement } from "lit";
import { customElement, property } from "lit/decorators";
+
import { absoluteTime } from "../common/datetime/absolute_time";
-import type { HomeAssistant } from "../types";
const SAFE_MARGIN = 5 * 1000;
diff --git a/src/components/ha-addon-picker.ts b/src/components/ha-addon-picker.ts
index 80889bbe13..990381c6ce 100644
--- a/src/components/ha-addon-picker.ts
+++ b/src/components/ha-addon-picker.ts
@@ -1,16 +1,19 @@
+import type { HassioAddonInfo } from "../data/hassio/addon";
+import type { HomeAssistant, ValueChangedEvent } from "../types";
+import type { HaComboBox } from "./ha-combo-box";
import type { ComboBoxLitRenderer } from "@vaadin/combo-box/lit";
+
+import "./ha-alert";
+import "./ha-combo-box";
+import "./ha-list-item";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
+
import { isComponentLoaded } from "../common/config/is_component_loaded";
import { fireEvent } from "../common/dom/fire_event";
import { stringCompare } from "../common/string/compare";
-import type { HassioAddonInfo } from "../data/hassio/addon";
import { fetchHassioAddonsInfo } from "../data/hassio/addon";
-import type { HomeAssistant, ValueChangedEvent } from "../types";
-import "./ha-alert";
-import "./ha-combo-box";
-import type { HaComboBox } from "./ha-combo-box";
-import "./ha-list-item";
const rowRenderer: ComboBoxLitRenderer = (item) =>
html`
diff --git a/src/components/ha-alert.ts b/src/components/ha-alert.ts
index 889894f35a..6974ee4725 100644
--- a/src/components/ha-alert.ts
+++ b/src/components/ha-alert.ts
@@ -1,3 +1,6 @@
+import "./ha-icon-button";
+import "./ha-svg-icon";
+
import {
mdiAlertCircleOutline,
mdiAlertOutline,
@@ -8,9 +11,8 @@ import {
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { fireEvent } from "../common/dom/fire_event";
-import "./ha-icon-button";
-import "./ha-svg-icon";
const ALERT_ICONS = {
info: mdiInformationOutline,
diff --git a/src/components/ha-aliases-editor.ts b/src/components/ha-aliases-editor.ts
index 6672293598..58ddb9063a 100644
--- a/src/components/ha-aliases-editor.ts
+++ b/src/components/ha-aliases-editor.ts
@@ -1,8 +1,11 @@
+import type { HomeAssistant } from "../types";
+
+import "./ha-multi-textfield";
+
import { LitElement, html, nothing } from "lit";
import { customElement, property } from "lit/decorators";
+
import { fireEvent } from "../common/dom/fire_event";
-import type { HomeAssistant } from "../types";
-import "./ha-multi-textfield";
@customElement("ha-aliases-editor")
class AliasesEditor extends LitElement {
diff --git a/src/components/ha-analytics.ts b/src/components/ha-analytics.ts
index 74cb5e6e64..101594e815 100644
--- a/src/components/ha-analytics.ts
+++ b/src/components/ha-analytics.ts
@@ -1,14 +1,17 @@
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../common/dom/fire_event";
import type { LocalizeFunc } from "../common/translations/localize";
import type { Analytics, AnalyticsPreferences } from "../data/analytics";
-import { haStyle } from "../resources/styles";
+import type { HaSwitch } from "./ha-switch";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
import "./ha-settings-row";
import "./ha-switch";
import "./ha-tooltip";
-import type { HaSwitch } from "./ha-switch";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../common/dom/fire_event";
+import { haStyle } from "../resources/styles";
const ADDITIONAL_PREFERENCES = ["usage", "statistics"] as const;
diff --git a/src/components/ha-area-floor-picker.ts b/src/components/ha-area-floor-picker.ts
index c5e4a7a3dc..79c2382774 100644
--- a/src/components/ha-area-floor-picker.ts
+++ b/src/components/ha-area-floor-picker.ts
@@ -1,36 +1,39 @@
-import { mdiTextureBox } from "@mdi/js";
-import type { ComboBoxLitRenderer } from "@vaadin/combo-box/lit";
-import type { HassEntity } from "home-assistant-js-websocket";
-import type { PropertyValues, TemplateResult } from "lit";
-import { LitElement, html, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { styleMap } from "lit/directives/style-map";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../common/dom/fire_event";
-import { computeDomain } from "../common/entity/compute_domain";
-import { stringCompare } from "../common/string/compare";
import type { ScorableTextItem } from "../common/string/filter/sequence-matching";
-import { fuzzyFilterSort } from "../common/string/filter/sequence-matching";
-import { computeRTL } from "../common/util/compute_rtl";
import type { AreaRegistryEntry } from "../data/area_registry";
import type {
DeviceEntityDisplayLookup,
DeviceRegistryEntry,
} from "../data/device_registry";
-import { getDeviceEntityDisplayLookup } from "../data/device_registry";
import type { EntityRegistryDisplayEntry } from "../data/entity_registry";
import type { FloorRegistryEntry } from "../data/floor_registry";
-import { getFloorAreaLookup } from "../data/floor_registry";
import type { HomeAssistant, ValueChangedEvent } from "../types";
import type { HaDevicePickerDeviceFilterFunc } from "./device/ha-device-picker";
-import "./ha-combo-box";
import type { HaComboBox } from "./ha-combo-box";
+import type { ComboBoxLitRenderer } from "@vaadin/combo-box/lit";
+import type { HassEntity } from "home-assistant-js-websocket";
+import type { PropertyValues, TemplateResult } from "lit";
+
+import "./ha-combo-box";
import "./ha-floor-icon";
import "./ha-icon-button";
import "./ha-list-item";
import "./ha-svg-icon";
import "./ha-tree-indicator";
+import { mdiTextureBox } from "@mdi/js";
+import { LitElement, html, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import { styleMap } from "lit/directives/style-map";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../common/dom/fire_event";
+import { computeDomain } from "../common/entity/compute_domain";
+import { stringCompare } from "../common/string/compare";
+import { fuzzyFilterSort } from "../common/string/filter/sequence-matching";
+import { computeRTL } from "../common/util/compute_rtl";
+import { getDeviceEntityDisplayLookup } from "../data/device_registry";
+import { getFloorAreaLookup } from "../data/floor_registry";
+
type ScorableAreaFloorEntry = ScorableTextItem & FloorAreaEntry;
interface FloorAreaEntry {
diff --git a/src/components/ha-area-picker.ts b/src/components/ha-area-picker.ts
index cbad36bc03..718b2d838c 100644
--- a/src/components/ha-area-picker.ts
+++ b/src/components/ha-area-picker.ts
@@ -1,33 +1,36 @@
-import { mdiTextureBox } from "@mdi/js";
-import type { ComboBoxLitRenderer } from "@vaadin/combo-box/lit";
-import type { HassEntity } from "home-assistant-js-websocket";
-import type { PropertyValues, TemplateResult } from "lit";
-import { LitElement, html } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../common/dom/fire_event";
-import { computeDomain } from "../common/entity/compute_domain";
import type { ScorableTextItem } from "../common/string/filter/sequence-matching";
-import { fuzzyFilterSort } from "../common/string/filter/sequence-matching";
import type { AreaRegistryEntry } from "../data/area_registry";
-import { createAreaRegistryEntry } from "../data/area_registry";
import type {
DeviceEntityDisplayLookup,
DeviceRegistryEntry,
} from "../data/device_registry";
-import { getDeviceEntityDisplayLookup } from "../data/device_registry";
import type { EntityRegistryDisplayEntry } from "../data/entity_registry";
-import { showAlertDialog } from "../dialogs/generic/show-dialog-box";
-import { showAreaRegistryDetailDialog } from "../panels/config/areas/show-dialog-area-registry-detail";
import type { HomeAssistant, ValueChangedEvent } from "../types";
import type { HaDevicePickerDeviceFilterFunc } from "./device/ha-device-picker";
-import "./ha-combo-box";
import type { HaComboBox } from "./ha-combo-box";
+import type { ComboBoxLitRenderer } from "@vaadin/combo-box/lit";
+import type { HassEntity } from "home-assistant-js-websocket";
+import type { PropertyValues, TemplateResult } from "lit";
+
+import "./ha-combo-box";
import "./ha-icon-button";
import "./ha-list-item";
import "./ha-svg-icon";
+import { mdiTextureBox } from "@mdi/js";
+import { LitElement, html } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../common/dom/fire_event";
+import { computeDomain } from "../common/entity/compute_domain";
+import { fuzzyFilterSort } from "../common/string/filter/sequence-matching";
+import { createAreaRegistryEntry } from "../data/area_registry";
+import { getDeviceEntityDisplayLookup } from "../data/device_registry";
+import { showAlertDialog } from "../dialogs/generic/show-dialog-box";
+import { showAreaRegistryDetailDialog } from "../panels/config/areas/show-dialog-area-registry-detail";
+
type ScorableAreaRegistryEntry = ScorableTextItem & AreaRegistryEntry;
const rowRenderer: ComboBoxLitRenderer = (item) =>
diff --git a/src/components/ha-areas-display-editor.ts b/src/components/ha-areas-display-editor.ts
index 4215b08c0c..c93cc5f5aa 100644
--- a/src/components/ha-areas-display-editor.ts
+++ b/src/components/ha-areas-display-editor.ts
@@ -1,16 +1,19 @@
-import { mdiTextureBox } from "@mdi/js";
+import type { HomeAssistant } from "../types";
+import type { DisplayItem, DisplayValue } from "./ha-items-display-editor";
import type { TemplateResult } from "lit";
+
+import "./ha-expansion-panel";
+import "./ha-items-display-editor";
+import "./ha-svg-icon";
+import "./ha-textfield";
+
+import { mdiTextureBox } from "@mdi/js";
import { LitElement, html } from "lit";
import { customElement, property } from "lit/decorators";
+
import { fireEvent } from "../common/dom/fire_event";
import { getAreaContext } from "../common/entity/context/get_area_context";
import { areaCompare } from "../data/area_registry";
-import type { HomeAssistant } from "../types";
-import "./ha-expansion-panel";
-import "./ha-items-display-editor";
-import type { DisplayItem, DisplayValue } from "./ha-items-display-editor";
-import "./ha-svg-icon";
-import "./ha-textfield";
export interface AreasDisplayValue {
hidden?: string[];
diff --git a/src/components/ha-areas-picker.ts b/src/components/ha-areas-picker.ts
index 088a9dcde3..ce4df331eb 100644
--- a/src/components/ha-areas-picker.ts
+++ b/src/components/ha-areas-picker.ts
@@ -1,12 +1,15 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../common/dom/fire_event";
-import { SubscribeMixin } from "../mixins/subscribe-mixin";
import type { HomeAssistant } from "../types";
import type { HaDevicePickerDeviceFilterFunc } from "./device/ha-device-picker";
+import type { HassEntity } from "home-assistant-js-websocket";
+
import "./ha-area-picker";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../common/dom/fire_event";
+import { SubscribeMixin } from "../mixins/subscribe-mixin";
+
@customElement("ha-areas-picker")
export class HaAreasPicker extends SubscribeMixin(LitElement) {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-assist-chat.ts b/src/components/ha-assist-chat.ts
index 36d5ece3a4..cd9de7d33f 100644
--- a/src/components/ha-assist-chat.ts
+++ b/src/components/ha-assist-chat.ts
@@ -1,21 +1,25 @@
+import type { HomeAssistant } from "../types";
+import type { HaTextField } from "./ha-textfield";
import type { PropertyValues, TemplateResult } from "lit";
-import { css, LitElement, html, nothing } from "lit";
+
+import "./ha-alert";
+import "./ha-textfield";
+
import { mdiAlertCircle, mdiMicrophone, mdiSend } from "@mdi/js";
+import { css, LitElement, html, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
-import type { HomeAssistant } from "../types";
+
+import { supportsFeature } from "../common/entity/supports-feature";
import {
runAssistPipeline,
type AssistPipeline,
} from "../data/assist_pipeline";
-import { supportsFeature } from "../common/entity/supports-feature";
import { ConversationEntityFeature } from "../data/conversation";
-import { AudioRecorder } from "../util/audio-recorder";
-import "./ha-alert";
-import "./ha-textfield";
-import type { HaTextField } from "./ha-textfield";
-import { documentationUrl } from "../util/documentation-url";
import { showAlertDialog } from "../dialogs/generic/show-dialog-box";
+import { AudioRecorder } from "../util/audio-recorder";
+import { documentationUrl } from "../util/documentation-url";
+
interface AssistMessage {
who: string;
diff --git a/src/components/ha-assist-pipeline-picker.ts b/src/components/ha-assist-pipeline-picker.ts
index 97013bc507..90c8bc198e 100644
--- a/src/components/ha-assist-pipeline-picker.ts
+++ b/src/components/ha-assist-pipeline-picker.ts
@@ -1,15 +1,18 @@
+import type { AssistPipeline } from "../data/assist_pipeline";
+import type { HomeAssistant } from "../types";
+import type { HaSelect } from "./ha-select";
import type { PropertyValueMap } from "lit";
+
+import "./ha-list-item";
+import "./ha-select";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../common/dom/fire_event";
import { stopPropagation } from "../common/dom/stop_propagation";
import { formatLanguageCode } from "../common/language/format_language";
-import type { AssistPipeline } from "../data/assist_pipeline";
import { listAssistPipelines } from "../data/assist_pipeline";
-import type { HomeAssistant } from "../types";
-import "./ha-list-item";
-import "./ha-select";
-import type { HaSelect } from "./ha-select";
const PREFERRED = "preferred";
const LAST_USED = "last_used";
diff --git a/src/components/ha-attribute-icon.ts b/src/components/ha-attribute-icon.ts
index 028386a926..6423e380d9 100644
--- a/src/components/ha-attribute-icon.ts
+++ b/src/components/ha-attribute-icon.ts
@@ -1,11 +1,14 @@
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
+
+import "./ha-icon";
+import "./ha-svg-icon";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import { until } from "lit/directives/until";
+
import { attributeIcon } from "../data/icons";
-import type { HomeAssistant } from "../types";
-import "./ha-icon";
-import "./ha-svg-icon";
@customElement("ha-attribute-icon")
export class HaAttributeIcon extends LitElement {
diff --git a/src/components/ha-attribute-value.ts b/src/components/ha-attribute-value.ts
index a419c6b99e..1eed7f307e 100644
--- a/src/components/ha-attribute-value.ts
+++ b/src/components/ha-attribute-value.ts
@@ -1,9 +1,11 @@
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import { until } from "lit/directives/until";
+
import { formatNumber } from "../common/number/format_number";
-import type { HomeAssistant } from "../types";
@customElement("ha-attribute-value")
class HaAttributeValue extends LitElement {
diff --git a/src/components/ha-attributes.ts b/src/components/ha-attributes.ts
index 9a9b467b58..a8a81c2199 100644
--- a/src/components/ha-attributes.ts
+++ b/src/components/ha-attributes.ts
@@ -1,13 +1,16 @@
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "./ha-attribute-value";
+import "./ha-expansion-panel";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { computeAttributeNameDisplay } from "../common/entity/compute_attribute_display";
import { STATE_ATTRIBUTES } from "../data/entity_attributes";
import { haStyle } from "../resources/styles";
-import type { HomeAssistant } from "../types";
-import "./ha-attribute-value";
-import "./ha-expansion-panel";
@customElement("ha-attributes")
class HaAttributes extends LitElement {
diff --git a/src/components/ha-badge.ts b/src/components/ha-badge.ts
index ad6fe7cd79..3bf8e82bac 100644
--- a/src/components/ha-badge.ts
+++ b/src/components/ha-badge.ts
@@ -1,8 +1,9 @@
+import "./ha-ripple";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { ifDefined } from "lit/directives/if-defined";
-import "./ha-ripple";
type BadgeType = "badge" | "button";
diff --git a/src/components/ha-bar.ts b/src/components/ha-bar.ts
index 95864e7be7..f856e70f14 100644
--- a/src/components/ha-bar.ts
+++ b/src/components/ha-bar.ts
@@ -1,6 +1,8 @@
import type { TemplateResult } from "lit";
+
import { css, LitElement, svg } from "lit";
import { customElement, property } from "lit/decorators";
+
import {
getValueInPercentage,
normalize,
diff --git a/src/components/ha-base-time-input.ts b/src/components/ha-base-time-input.ts
index 7b2a5b3525..77f1d8ff56 100644
--- a/src/components/ha-base-time-input.ts
+++ b/src/components/ha-base-time-input.ts
@@ -1,16 +1,19 @@
-import "@material/mwc-list/mwc-list-item";
+import type { HaTextField } from "./ha-textfield";
import type { TemplateResult } from "lit";
+
+import "./ha-icon-button";
+import "./ha-input-helper-text";
+import "./ha-select";
+import "./ha-textfield";
+import "@material/mwc-list/mwc-list-item";
+
+import { mdiClose } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
-import { mdiClose } from "@mdi/js";
import { ifDefined } from "lit/directives/if-defined";
+
import { fireEvent } from "../common/dom/fire_event";
import { stopPropagation } from "../common/dom/stop_propagation";
-import "./ha-select";
-import "./ha-icon-button";
-import "./ha-textfield";
-import type { HaTextField } from "./ha-textfield";
-import "./ha-input-helper-text";
export interface TimeChangedEvent {
days?: number;
diff --git a/src/components/ha-big-number.ts b/src/components/ha-big-number.ts
index e4474dc880..bafeeb40a7 100644
--- a/src/components/ha-big-number.ts
+++ b/src/components/ha-big-number.ts
@@ -1,10 +1,12 @@
+import type { HomeAssistant } from "../types";
import type { CSSResultGroup } from "lit";
+
import { LitElement, css, html } from "lit";
import { customElement, property } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { formatNumber } from "../common/number/format_number";
import { blankBeforeUnit } from "../common/translations/blank_before_unit";
-import type { HomeAssistant } from "../types";
@customElement("ha-big-number")
export class HaBigNumber extends LitElement {
diff --git a/src/components/ha-blueprint-picker.ts b/src/components/ha-blueprint-picker.ts
index 3300ea4937..f013355aad 100644
--- a/src/components/ha-blueprint-picker.ts
+++ b/src/components/ha-blueprint-picker.ts
@@ -1,14 +1,17 @@
+import type { Blueprint, BlueprintDomain, Blueprints } from "../data/blueprint";
+import type { HomeAssistant } from "../types";
+
+import "./ha-select";
import "@material/mwc-list/mwc-list-item";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../common/dom/fire_event";
import { stopPropagation } from "../common/dom/stop_propagation";
import { stringCompare } from "../common/string/compare";
-import type { Blueprint, BlueprintDomain, Blueprints } from "../data/blueprint";
import { fetchBlueprints } from "../data/blueprint";
-import type { HomeAssistant } from "../types";
-import "./ha-select";
@customElement("ha-blueprint-picker")
class HaBluePrintPicker extends LitElement {
diff --git a/src/components/ha-button-menu.ts b/src/components/ha-button-menu.ts
index 081e3cea24..2cbe872c0b 100644
--- a/src/components/ha-button-menu.ts
+++ b/src/components/ha-button-menu.ts
@@ -1,12 +1,15 @@
+import type { HaIconButton } from "./ha-icon-button";
import type { Button } from "@material/mwc-button";
-import "@material/mwc-menu";
import type { Corner, Menu, MenuCorner } from "@material/mwc-menu";
import type { TemplateResult } from "lit";
+
+import "@material/mwc-menu";
+
import { css, html, LitElement } from "lit";
import { customElement, property, query } from "lit/decorators";
+
import { mainWindow } from "../common/dom/get_main_window";
import { FOCUS_TARGET } from "../dialogs/make-dialog-manager";
-import type { HaIconButton } from "./ha-icon-button";
@customElement("ha-button-menu")
export class HaButtonMenu extends LitElement {
diff --git a/src/components/ha-button-toggle-group.ts b/src/components/ha-button-toggle-group.ts
index f4d371c2e1..85c1fb4f16 100644
--- a/src/components/ha-button-toggle-group.ts
+++ b/src/components/ha-button-toggle-group.ts
@@ -1,12 +1,15 @@
-import "@material/mwc-button/mwc-button";
+import type { ToggleButton } from "../types";
import type { Button } from "@material/mwc-button/mwc-button";
import type { TemplateResult } from "lit";
+
+import "./ha-icon-button";
+import "@material/mwc-button/mwc-button";
+
import { css, html, LitElement } from "lit";
import { customElement, property, queryAll } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
+
import { fireEvent } from "../common/dom/fire_event";
-import type { ToggleButton } from "../types";
-import "./ha-icon-button";
@customElement("ha-button-toggle-group")
export class HaButtonToggleGroup extends LitElement {
diff --git a/src/components/ha-button.ts b/src/components/ha-button.ts
index 5ccbcadd14..7947410f6a 100644
--- a/src/components/ha-button.ts
+++ b/src/components/ha-button.ts
@@ -1,7 +1,8 @@
+import { styles } from "@material/mwc-button/styles.css";
+
import { Button } from "@material/mwc-button";
import { css } from "lit";
import { customElement } from "lit/decorators";
-import { styles } from "@material/mwc-button/styles.css";
@customElement("ha-button")
export class HaButton extends Button {
diff --git a/src/components/ha-camera-stream.ts b/src/components/ha-camera-stream.ts
index 229ec729f7..9bfbf29f99 100644
--- a/src/components/ha-camera-stream.ts
+++ b/src/components/ha-camera-stream.ts
@@ -1,7 +1,13 @@
+import type { HomeAssistant } from "../types";
+
+import "./ha-hls-player";
+import "./ha-web-rtc-player";
+
import { css, html, LitElement, nothing, type PropertyValues } from "lit";
import { customElement, property, state } from "lit/decorators";
import { repeat } from "lit/directives/repeat";
import memoizeOne from "memoize-one";
+
import { computeStateName } from "../common/entity/compute_state_name";
import { supportsFeature } from "../common/entity/supports-feature";
import {
@@ -15,9 +21,6 @@ import {
STREAM_TYPE_WEB_RTC,
type StreamType,
} from "../data/camera";
-import type { HomeAssistant } from "../types";
-import "./ha-hls-player";
-import "./ha-web-rtc-player";
const MJPEG_STREAM = "mjpeg";
diff --git a/src/components/ha-check-list-item.ts b/src/components/ha-check-list-item.ts
index 0152f19fcc..8017c11701 100644
--- a/src/components/ha-check-list-item.ts
+++ b/src/components/ha-check-list-item.ts
@@ -1,8 +1,10 @@
-import { css } from "lit";
-import { CheckListItemBase } from "@material/mwc-list/mwc-check-list-item-base";
import { styles as controlStyles } from "@material/mwc-list/mwc-control-list-item.css";
import { styles } from "@material/mwc-list/mwc-list-item.css";
+
+import { CheckListItemBase } from "@material/mwc-list/mwc-check-list-item-base";
+import { css } from "lit";
import { customElement } from "lit/decorators";
+
import { fireEvent } from "../common/dom/fire_event";
@customElement("ha-check-list-item")
diff --git a/src/components/ha-checkbox.ts b/src/components/ha-checkbox.ts
index 0e33ee2a18..0427cb7c5f 100644
--- a/src/components/ha-checkbox.ts
+++ b/src/components/ha-checkbox.ts
@@ -1,5 +1,6 @@
-import { CheckboxBase } from "@material/mwc-checkbox/mwc-checkbox-base";
import { styles } from "@material/mwc-checkbox/mwc-checkbox.css";
+
+import { CheckboxBase } from "@material/mwc-checkbox/mwc-checkbox-base";
import { css } from "lit";
import { customElement } from "lit/decorators";
diff --git a/src/components/ha-clickable-list-item.ts b/src/components/ha-clickable-list-item.ts
index d68c7d4b0c..8662c3ccf9 100644
--- a/src/components/ha-clickable-list-item.ts
+++ b/src/components/ha-clickable-list-item.ts
@@ -1,6 +1,8 @@
import type { CSSResultGroup } from "lit";
+
import { css, html } from "lit";
import { customElement, property, query } from "lit/decorators";
+
import { HaListItem } from "./ha-list-item";
@customElement("ha-clickable-list-item")
diff --git a/src/components/ha-climate-state.ts b/src/components/ha-climate-state.ts
index e99b8f64e1..f350d0132b 100644
--- a/src/components/ha-climate-state.ts
+++ b/src/components/ha-climate-state.ts
@@ -1,10 +1,12 @@
+import type { ClimateEntity } from "../data/climate";
+import type { HomeAssistant } from "../types";
import type { TemplateResult } from "lit";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
-import type { ClimateEntity } from "../data/climate";
+
import { CLIMATE_PRESET_NONE } from "../data/climate";
import { isUnavailableState, OFF } from "../data/entity";
-import type { HomeAssistant } from "../types";
@customElement("ha-climate-state")
class HaClimateState extends LitElement {
diff --git a/src/components/ha-code-editor.ts b/src/components/ha-code-editor.ts
index 17003c8e0b..c8e9e3469b 100644
--- a/src/components/ha-code-editor.ts
+++ b/src/components/ha-code-editor.ts
@@ -1,3 +1,4 @@
+import type { HomeAssistant } from "../types";
import type {
Completion,
CompletionContext,
@@ -8,13 +9,15 @@ import type { Extension, TransactionSpec } from "@codemirror/state";
import type { EditorView, KeyBinding, ViewUpdate } from "@codemirror/view";
import type { HassEntities } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
+
+import "./ha-icon";
+
import { css, ReactiveElement } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../common/dom/fire_event";
import { stopPropagation } from "../common/dom/stop_propagation";
-import type { HomeAssistant } from "../types";
-import "./ha-icon";
declare global {
interface HASSDomEvents {
diff --git a/src/components/ha-color-picker.ts b/src/components/ha-color-picker.ts
index b071ebe3c8..82af02ac65 100644
--- a/src/components/ha-color-picker.ts
+++ b/src/components/ha-color-picker.ts
@@ -1,16 +1,19 @@
+import type { LocalizeKeys } from "../common/translations/localize";
+import type { HomeAssistant } from "../types";
+import type { HaSelect } from "./ha-select";
+
+import "./ha-list-item";
+import "./ha-md-divider";
+import "./ha-select";
+
import { mdiInvertColorsOff, mdiPalette } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, query } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
+
import { computeCssColor, THEME_COLORS } from "../common/color/compute-color";
import { fireEvent } from "../common/dom/fire_event";
import { stopPropagation } from "../common/dom/stop_propagation";
-import type { LocalizeKeys } from "../common/translations/localize";
-import type { HomeAssistant } from "../types";
-import "./ha-list-item";
-import "./ha-md-divider";
-import "./ha-select";
-import type { HaSelect } from "./ha-select";
@customElement("ha-color-picker")
export class HaColorPicker extends LitElement {
diff --git a/src/components/ha-combo-box.ts b/src/components/ha-combo-box.ts
index 35b38f5dcc..c8b635822f 100644
--- a/src/components/ha-combo-box.ts
+++ b/src/components/ha-combo-box.ts
@@ -1,7 +1,6 @@
-import { mdiClose, mdiMenuDown, mdiMenuUp } from "@mdi/js";
+import type { HomeAssistant } from "../types";
+import type { HaTextField } from "./ha-textfield";
import type { ComboBoxLitRenderer } from "@vaadin/combo-box/lit";
-import { comboBoxRenderer } from "@vaadin/combo-box/lit";
-import "@vaadin/combo-box/theme/material/vaadin-combo-box-light";
import type {
ComboBoxDataProvider,
ComboBoxLight,
@@ -9,17 +8,21 @@ import type {
ComboBoxLightOpenedChangedEvent,
ComboBoxLightValueChangedEvent,
} from "@vaadin/combo-box/vaadin-combo-box-light";
-import { registerStyles } from "@vaadin/vaadin-themable-mixin/register-styles";
import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, query } from "lit/decorators";
-import { ifDefined } from "lit/directives/if-defined";
-import { fireEvent } from "../common/dom/fire_event";
-import type { HomeAssistant } from "../types";
+
import "./ha-icon-button";
import "./ha-list-item";
import "./ha-textfield";
-import type { HaTextField } from "./ha-textfield";
+import "@vaadin/combo-box/theme/material/vaadin-combo-box-light";
+
+import { mdiClose, mdiMenuDown, mdiMenuUp } from "@mdi/js";
+import { comboBoxRenderer } from "@vaadin/combo-box/lit";
+import { registerStyles } from "@vaadin/vaadin-themable-mixin/register-styles";
+import { css, html, LitElement } from "lit";
+import { customElement, property, query } from "lit/decorators";
+import { ifDefined } from "lit/directives/if-defined";
+
+import { fireEvent } from "../common/dom/fire_event";
registerStyles(
"vaadin-combo-box-item",
diff --git a/src/components/ha-config-entry-picker.ts b/src/components/ha-config-entry-picker.ts
index ce39a4b210..c0c5e8f164 100644
--- a/src/components/ha-config-entry-picker.ts
+++ b/src/components/ha-config-entry-picker.ts
@@ -1,16 +1,19 @@
-import "@material/mwc-list/mwc-list-item";
+import type { ConfigEntry } from "../data/config_entries";
+import type { ValueChangedEvent, HomeAssistant } from "../types";
+import type { HaComboBox } from "./ha-combo-box";
import type { ComboBoxLitRenderer } from "@vaadin/combo-box/lit";
+
+import "./ha-combo-box";
+import "@material/mwc-list/mwc-list-item";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
+
import { fireEvent } from "../common/dom/fire_event";
import { caseInsensitiveStringCompare } from "../common/string/compare";
-import type { ConfigEntry } from "../data/config_entries";
import { getConfigEntries } from "../data/config_entries";
import { domainToName } from "../data/integration";
-import type { ValueChangedEvent, HomeAssistant } from "../types";
import { brandsUrl } from "../util/brands-url";
-import "./ha-combo-box";
-import type { HaComboBox } from "./ha-combo-box";
export interface ConfigEntryExtended extends ConfigEntry {
localized_domain_name?: string;
diff --git a/src/components/ha-control-button-group.ts b/src/components/ha-control-button-group.ts
index 5c59d0801f..fb670e707a 100644
--- a/src/components/ha-control-button-group.ts
+++ b/src/components/ha-control-button-group.ts
@@ -1,4 +1,5 @@
import type { TemplateResult } from "lit";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
diff --git a/src/components/ha-control-button.ts b/src/components/ha-control-button.ts
index f680c23a5b..c75371edc1 100644
--- a/src/components/ha-control-button.ts
+++ b/src/components/ha-control-button.ts
@@ -1,8 +1,10 @@
import type { TemplateResult } from "lit";
+
+import "./ha-ripple";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
-import "./ha-ripple";
@customElement("ha-control-button")
export class HaControlButton extends LitElement {
diff --git a/src/components/ha-control-circular-slider.ts b/src/components/ha-control-circular-slider.ts
index cde293ae9f..33e80b0fae 100644
--- a/src/components/ha-control-circular-slider.ts
+++ b/src/components/ha-control-circular-slider.ts
@@ -1,3 +1,5 @@
+import type { PropertyValues, TemplateResult } from "lit";
+
import {
DIRECTION_ALL,
Manager,
@@ -6,7 +8,6 @@ import {
Tap,
TouchMouseInput,
} from "@egjs/hammerjs";
-import type { PropertyValues, TemplateResult } from "lit";
import { LitElement, css, html, nothing, svg } from "lit";
import {
customElement,
@@ -17,6 +18,7 @@ import {
} from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { ifDefined } from "lit/directives/if-defined";
+
import { fireEvent } from "../common/dom/fire_event";
import { clamp } from "../common/number/clamp";
import { svgArc } from "../resources/svg-arc";
diff --git a/src/components/ha-control-number-buttons.ts b/src/components/ha-control-number-buttons.ts
index 7977fb2190..14064acc18 100644
--- a/src/components/ha-control-number-buttons.ts
+++ b/src/components/ha-control-number-buttons.ts
@@ -1,15 +1,18 @@
+import type { FrontendLocaleData } from "../data/translation";
+import type { TemplateResult } from "lit";
+
+import "./ha-svg-icon";
+
import { ResizeController } from "@lit-labs/observers/resize-controller";
import { mdiMinus, mdiPlus } from "@mdi/js";
-import type { TemplateResult } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, query } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
+
import { fireEvent } from "../common/dom/fire_event";
import { conditionalClamp } from "../common/number/clamp";
import { formatNumber } from "../common/number/format_number";
import { blankBeforeUnit } from "../common/translations/blank_before_unit";
-import type { FrontendLocaleData } from "../data/translation";
-import "./ha-svg-icon";
const A11Y_KEY_CODES = new Set([
"ArrowRight",
diff --git a/src/components/ha-control-select-menu.ts b/src/components/ha-control-select-menu.ts
index 2bf22046e7..b70ced974f 100644
--- a/src/components/ha-control-select-menu.ts
+++ b/src/components/ha-control-select-menu.ts
@@ -1,17 +1,20 @@
+import type { HaIcon } from "./ha-icon";
+import type { HaSvgIcon } from "./ha-svg-icon";
+import type { PropertyValues } from "lit";
+
+import "./ha-icon";
+import "./ha-ripple";
+import "./ha-svg-icon";
+
import { SelectBase } from "@material/mwc-select/mwc-select-base";
import { mdiMenuDown } from "@mdi/js";
-import type { PropertyValues } from "lit";
import { css, html, nothing } from "lit";
import { customElement, property, query } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { ifDefined } from "lit/directives/if-defined";
+
import { debounce } from "../common/util/debounce";
import { nextRender } from "../common/util/render-status";
-import "./ha-icon";
-import type { HaIcon } from "./ha-icon";
-import "./ha-ripple";
-import "./ha-svg-icon";
-import type { HaSvgIcon } from "./ha-svg-icon";
@customElement("ha-control-select-menu")
export class HaControlSelectMenu extends SelectBase {
diff --git a/src/components/ha-control-select.ts b/src/components/ha-control-select.ts
index c3d245b829..d8d6a78c25 100644
--- a/src/components/ha-control-select.ts
+++ b/src/components/ha-control-select.ts
@@ -1,12 +1,15 @@
import type { PropertyValues, TemplateResult } from "lit";
+
+import "./ha-icon";
+import "./ha-svg-icon";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { ifDefined } from "lit/directives/if-defined";
import { repeat } from "lit/directives/repeat";
+
import { fireEvent } from "../common/dom/fire_event";
-import "./ha-icon";
-import "./ha-svg-icon";
export interface ControlSelectOption {
value: string;
diff --git a/src/components/ha-control-slider.ts b/src/components/ha-control-slider.ts
index 6b1d41addf..8e894fe434 100644
--- a/src/components/ha-control-slider.ts
+++ b/src/components/ha-control-slider.ts
@@ -1,11 +1,13 @@
-import { DIRECTION_ALL, Manager, Pan, Press, Tap } from "@egjs/hammerjs";
+import type { FrontendLocaleData } from "../data/translation";
import type { PropertyValues, TemplateResult } from "lit";
+
+import { DIRECTION_ALL, Manager, Pan, Press, Tap } from "@egjs/hammerjs";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { styleMap } from "lit/directives/style-map";
+
import { fireEvent } from "../common/dom/fire_event";
-import type { FrontendLocaleData } from "../data/translation";
import { formatNumber } from "../common/number/format_number";
import { blankBeforeUnit } from "../common/translations/blank_before_unit";
diff --git a/src/components/ha-control-switch.ts b/src/components/ha-control-switch.ts
index d9984402d1..c5ab69c3f8 100644
--- a/src/components/ha-control-switch.ts
+++ b/src/components/ha-control-switch.ts
@@ -1,3 +1,7 @@
+import type { PropertyValues, TemplateResult } from "lit";
+
+import "./ha-svg-icon";
+
import {
DIRECTION_HORIZONTAL,
DIRECTION_VERTICAL,
@@ -6,11 +10,10 @@ import {
Swipe,
Tap,
} from "@egjs/hammerjs";
-import type { PropertyValues, TemplateResult } from "lit";
import { css, html, LitElement } from "lit";
import { customElement, property, query } from "lit/decorators";
+
import { fireEvent } from "../common/dom/fire_event";
-import "./ha-svg-icon";
@customElement("ha-control-switch")
export class HaControlSwitch extends LitElement {
diff --git a/src/components/ha-conversation-agent-picker.ts b/src/components/ha-conversation-agent-picker.ts
index cc11aed7ed..ce6960ce93 100644
--- a/src/components/ha-conversation-agent-picker.ts
+++ b/src/components/ha-conversation-agent-picker.ts
@@ -1,21 +1,24 @@
-import { mdiCog } from "@mdi/js";
+import type { ConfigEntry } from "../data/config_entries";
+import type { Agent } from "../data/conversation";
+import type { HomeAssistant } from "../types";
+import type { HaSelect } from "./ha-select";
import type { PropertyValues } from "lit";
+
+import "./ha-list-item";
+import "./ha-select";
+
+import { mdiCog } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../common/dom/fire_event";
import { stopPropagation } from "../common/dom/stop_propagation";
import { debounce } from "../common/util/debounce";
-import type { ConfigEntry } from "../data/config_entries";
import { getConfigEntry } from "../data/config_entries";
-import type { Agent } from "../data/conversation";
import { listAgents } from "../data/conversation";
+import { getExtendedEntityRegistryEntry } from "../data/entity_registry";
import { fetchIntegrationManifest } from "../data/integration";
import { showOptionsFlowDialog } from "../dialogs/config-flow/show-dialog-options-flow";
-import type { HomeAssistant } from "../types";
-import "./ha-list-item";
-import "./ha-select";
-import type { HaSelect } from "./ha-select";
-import { getExtendedEntityRegistryEntry } from "../data/entity_registry";
const NONE = "__NONE_OPTION__";
diff --git a/src/components/ha-copy-textfield.ts b/src/components/ha-copy-textfield.ts
index 4980524130..9867f8bfff 100644
--- a/src/components/ha-copy-textfield.ts
+++ b/src/components/ha-copy-textfield.ts
@@ -1,15 +1,17 @@
-import { customElement, property, state } from "lit/decorators";
-import { css, html, LitElement, nothing } from "lit";
-import { mdiContentCopy, mdiEye, mdiEyeOff } from "@mdi/js";
+import type { HomeAssistant } from "../types";
+import type { HaTextField } from "./ha-textfield";
import "./ha-button";
import "./ha-icon-button";
import "./ha-svg-icon";
import "./ha-textfield";
-import type { HomeAssistant } from "../types";
+
+import { mdiContentCopy, mdiEye, mdiEyeOff } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
import { copyToClipboard } from "../common/util/copy-clipboard";
import { showToast } from "../util/toast";
-import type { HaTextField } from "./ha-textfield";
@customElement("ha-copy-textfield")
export class HaCopyTextfield extends LitElement {
diff --git a/src/components/ha-country-picker.ts b/src/components/ha-country-picker.ts
index b2f4b8a6e3..8b470a6399 100644
--- a/src/components/ha-country-picker.ts
+++ b/src/components/ha-country-picker.ts
@@ -1,12 +1,15 @@
+import type { HaSelect } from "./ha-select";
+
+import "./ha-list-item";
+import "./ha-select";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../common/dom/fire_event";
import { stopPropagation } from "../common/dom/stop_propagation";
import { caseInsensitiveStringCompare } from "../common/string/compare";
-import "./ha-list-item";
-import "./ha-select";
-import type { HaSelect } from "./ha-select";
export const COUNTRIES = [
"AD",
diff --git a/src/components/ha-cover-controls.ts b/src/components/ha-cover-controls.ts
index 5645bf50a2..96344c6e30 100644
--- a/src/components/ha-cover-controls.ts
+++ b/src/components/ha-cover-controls.ts
@@ -1,13 +1,16 @@
+import type { CoverEntity } from "../data/cover";
+import type { HomeAssistant } from "../types";
+
+import "./ha-icon-button";
+
import { mdiStop } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { computeCloseIcon, computeOpenIcon } from "../common/entity/cover_icon";
import { supportsFeature } from "../common/entity/supports-feature";
-import type { CoverEntity } from "../data/cover";
import { canClose, canOpen, canStop, CoverEntityFeature } from "../data/cover";
-import type { HomeAssistant } from "../types";
-import "./ha-icon-button";
@customElement("ha-cover-controls")
class HaCoverControls extends LitElement {
diff --git a/src/components/ha-cover-tilt-controls.ts b/src/components/ha-cover-tilt-controls.ts
index e71a5707ea..413163d7bb 100644
--- a/src/components/ha-cover-tilt-controls.ts
+++ b/src/components/ha-cover-tilt-controls.ts
@@ -1,17 +1,20 @@
+import type { CoverEntity } from "../data/cover";
+import type { HomeAssistant } from "../types";
+
+import "./ha-icon-button";
+
import { mdiArrowBottomLeft, mdiArrowTopRight, mdiStop } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { supportsFeature } from "../common/entity/supports-feature";
-import type { CoverEntity } from "../data/cover";
import {
canCloseTilt,
canOpenTilt,
canStopTilt,
CoverEntityFeature,
} from "../data/cover";
-import type { HomeAssistant } from "../types";
-import "./ha-icon-button";
@customElement("ha-cover-tilt-controls")
class HaCoverTiltControls extends LitElement {
diff --git a/src/components/ha-currency-picker.ts b/src/components/ha-currency-picker.ts
index f208969286..0166f806a1 100644
--- a/src/components/ha-currency-picker.ts
+++ b/src/components/ha-currency-picker.ts
@@ -1,12 +1,15 @@
+import type { HaSelect } from "./ha-select";
+
+import "./ha-list-item";
+import "./ha-select";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../common/dom/fire_event";
import { stopPropagation } from "../common/dom/stop_propagation";
import { caseInsensitiveStringCompare } from "../common/string/compare";
-import "./ha-list-item";
-import "./ha-select";
-import type { HaSelect } from "./ha-select";
const CURRENCIES = [
"AED",
diff --git a/src/components/ha-date-input.ts b/src/components/ha-date-input.ts
index 2d579b942e..b510476f94 100644
--- a/src/components/ha-date-input.ts
+++ b/src/components/ha-date-input.ts
@@ -1,14 +1,17 @@
-import { mdiCalendar } from "@mdi/js";
+import type { HomeAssistant } from "../types";
import type { HassConfig } from "home-assistant-js-websocket";
+
+import "./ha-svg-icon";
+import "./ha-textfield";
+
+import { mdiCalendar } from "@mdi/js";
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
+
import { firstWeekdayIndex } from "../common/datetime/first_weekday";
import { formatDateNumeric } from "../common/datetime/format_date";
import { fireEvent } from "../common/dom/fire_event";
import { TimeZone } from "../data/translation";
-import type { HomeAssistant } from "../types";
-import "./ha-svg-icon";
-import "./ha-textfield";
const loadDatePickerDialog = () => import("./ha-dialog-date-picker");
diff --git a/src/components/ha-date-range-picker.ts b/src/components/ha-date-range-picker.ts
index d85f8d809b..72e2f1c3f5 100644
--- a/src/components/ha-date-range-picker.ts
+++ b/src/components/ha-date-range-picker.ts
@@ -1,15 +1,26 @@
+import type { DateRange } from "../common/datetime/calc_date_range";
+import type { HomeAssistant } from "../types";
+import type { ActionDetail } from "@material/mwc-list/mwc-list-foundation";
+import type { PropertyValues, TemplateResult } from "lit";
+
+import "./date-range-picker";
+import "./ha-icon-button";
+import "./ha-icon-button-next";
+import "./ha-icon-button-prev";
+import "./ha-textarea";
import "@material/mwc-button/mwc-button";
import "@material/mwc-list/mwc-list";
-import type { ActionDetail } from "@material/mwc-list/mwc-list-foundation";
import "@material/mwc-list/mwc-list-item";
+
import { mdiCalendar } from "@mdi/js";
import { isThisYear } from "date-fns";
import { fromZonedTime, toZonedTime } from "date-fns-tz";
-import type { PropertyValues, TemplateResult } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
+
import { shiftDateRange } from "../common/datetime/calc_date";
+import { calcDateRange } from "../common/datetime/calc_date_range";
import { firstWeekdayIndex } from "../common/datetime/first_weekday";
import {
formatShortDateTime,
@@ -18,14 +29,6 @@ import {
import { useAmPm } from "../common/datetime/use_am_pm";
import { fireEvent } from "../common/dom/fire_event";
import { TimeZone } from "../data/translation";
-import type { HomeAssistant } from "../types";
-import "./date-range-picker";
-import "./ha-icon-button";
-import "./ha-icon-button-next";
-import "./ha-icon-button-prev";
-import "./ha-textarea";
-import { calcDateRange } from "../common/datetime/calc_date_range";
-import type { DateRange } from "../common/datetime/calc_date_range";
export type DateRangePickerRanges = Record;
diff --git a/src/components/ha-dialog-date-picker.ts b/src/components/ha-dialog-date-picker.ts
index c86a5f89eb..e83f9ca5ed 100644
--- a/src/components/ha-dialog-date-picker.ts
+++ b/src/components/ha-dialog-date-picker.ts
@@ -1,14 +1,17 @@
+import type { HomeAssistant } from "../types";
+import type { DatePickerDialogParams } from "./ha-date-input";
+
+import "./ha-dialog";
import "@material/mwc-button/mwc-button";
import "app-datepicker";
+
import { format } from "date-fns";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../common/dom/fire_event";
import { nextRender } from "../common/util/render-status";
import { haStyleDialog } from "../resources/styles";
-import type { HomeAssistant } from "../types";
-import type { DatePickerDialogParams } from "./ha-date-input";
-import "./ha-dialog";
@customElement("ha-dialog-date-picker")
export class HaDialogDatePicker extends LitElement {
diff --git a/src/components/ha-dialog.ts b/src/components/ha-dialog.ts
index e326e6b19b..b649721e82 100644
--- a/src/components/ha-dialog.ts
+++ b/src/components/ha-dialog.ts
@@ -1,12 +1,16 @@
-import { DialogBase } from "@material/mwc-dialog/mwc-dialog-base";
-import { styles } from "@material/mwc-dialog/mwc-dialog.css";
-import { mdiClose } from "@mdi/js";
+import type { HomeAssistant } from "../types";
import type { TemplateResult } from "lit";
+
+import { styles } from "@material/mwc-dialog/mwc-dialog.css";
+
+import "./ha-icon-button";
+
+import { DialogBase } from "@material/mwc-dialog/mwc-dialog-base";
+import { mdiClose } from "@mdi/js";
import { css, html } from "lit";
import { customElement } from "lit/decorators";
+
import { FOCUS_TARGET } from "../dialogs/make-dialog-manager";
-import type { HomeAssistant } from "../types";
-import "./ha-icon-button";
const SUPPRESS_DEFAULT_PRESS_SELECTOR = ["button", "ha-list-item"];
diff --git a/src/components/ha-divider.ts b/src/components/ha-divider.ts
index 87fa45f70f..1c8741f919 100644
--- a/src/components/ha-divider.ts
+++ b/src/components/ha-divider.ts
@@ -1,6 +1,6 @@
import { css, html, LitElement, nothing } from "lit";
-import { ifDefined } from "lit/directives/if-defined";
import { customElement, property } from "lit/decorators";
+import { ifDefined } from "lit/directives/if-defined";
@customElement("ha-divider")
export class HaMdDivider extends LitElement {
diff --git a/src/components/ha-domain-icon.ts b/src/components/ha-domain-icon.ts
index 6994c32c99..416db687ca 100644
--- a/src/components/ha-domain-icon.ts
+++ b/src/components/ha-domain-icon.ts
@@ -1,14 +1,17 @@
+import type { HomeAssistant } from "../types";
+
+import "./ha-icon";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import { until } from "lit/directives/until";
+
import {
DEFAULT_DOMAIN_ICON,
domainIcon,
FALLBACK_DOMAIN_ICONS,
} from "../data/icons";
-import type { HomeAssistant } from "../types";
import { brandsUrl } from "../util/brands-url";
-import "./ha-icon";
@customElement("ha-domain-icon")
export class HaDomainIcon extends LitElement {
diff --git a/src/components/ha-drawer.ts b/src/components/ha-drawer.ts
index 3e563cd60b..70029d23d9 100644
--- a/src/components/ha-drawer.ts
+++ b/src/components/ha-drawer.ts
@@ -1,8 +1,11 @@
-import { DrawerBase } from "@material/mwc-drawer/mwc-drawer-base";
-import { styles } from "@material/mwc-drawer/mwc-drawer.css";
import type { PropertyValues } from "lit";
+
+import { styles } from "@material/mwc-drawer/mwc-drawer.css";
+
+import { DrawerBase } from "@material/mwc-drawer/mwc-drawer-base";
import { css } from "lit";
import { customElement, property } from "lit/decorators";
+
import { fireEvent } from "../common/dom/fire_event";
const blockingElements = (document as any).$blockingElements;
diff --git a/src/components/ha-duration-input.ts b/src/components/ha-duration-input.ts
index 6ecc9dddc6..fa18939080 100644
--- a/src/components/ha-duration-input.ts
+++ b/src/components/ha-duration-input.ts
@@ -1,9 +1,12 @@
+import type { TimeChangedEvent } from "./ha-base-time-input";
import type { TemplateResult } from "lit";
+
+import "./ha-base-time-input";
+
import { html, LitElement } from "lit";
import { customElement, property, query } from "lit/decorators";
+
import { fireEvent } from "../common/dom/fire_event";
-import "./ha-base-time-input";
-import type { TimeChangedEvent } from "./ha-base-time-input";
export interface HaDurationData {
days?: number;
diff --git a/src/components/ha-entities-display-editor.ts b/src/components/ha-entities-display-editor.ts
index 8f80dea2be..c2603dba64 100644
--- a/src/components/ha-entities-display-editor.ts
+++ b/src/components/ha-entities-display-editor.ts
@@ -1,12 +1,15 @@
+import type { HomeAssistant } from "../types";
+import type { DisplayItem, DisplayValue } from "./ha-items-display-editor";
import type { TemplateResult } from "lit";
+
+import "./ha-items-display-editor";
+
import { LitElement, html } from "lit";
import { customElement, property } from "lit/decorators";
+
import { fireEvent } from "../common/dom/fire_event";
import { computeStateName } from "../common/entity/compute_state_name";
import { entityIcon } from "../data/icons";
-import type { HomeAssistant } from "../types";
-import "./ha-items-display-editor";
-import type { DisplayItem, DisplayValue } from "./ha-items-display-editor";
export interface EntitiesDisplayValue {
hidden?: string[];
diff --git a/src/components/ha-expansion-panel.ts b/src/components/ha-expansion-panel.ts
index 6604123d48..680ed54e2f 100644
--- a/src/components/ha-expansion-panel.ts
+++ b/src/components/ha-expansion-panel.ts
@@ -1,11 +1,14 @@
-import { mdiChevronDown } from "@mdi/js";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "./ha-svg-icon";
+
+import { mdiChevronDown } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { fireEvent } from "../common/dom/fire_event";
import { nextRender } from "../common/util/render-status";
-import "./ha-svg-icon";
@customElement("ha-expansion-panel")
export class HaExpansionPanel extends LitElement {
diff --git a/src/components/ha-fab.ts b/src/components/ha-fab.ts
index fed289b2da..35350b40d0 100644
--- a/src/components/ha-fab.ts
+++ b/src/components/ha-fab.ts
@@ -1,7 +1,9 @@
-import { FabBase } from "@material/mwc-fab/mwc-fab-base";
import { styles } from "@material/mwc-fab/mwc-fab.css";
-import { customElement } from "lit/decorators";
+
+import { FabBase } from "@material/mwc-fab/mwc-fab-base";
import { css } from "lit";
+import { customElement } from "lit/decorators";
+
import { mainWindow } from "../common/dom/get_main_window";
@customElement("ha-fab")
diff --git a/src/components/ha-faded.ts b/src/components/ha-faded.ts
index c9101b7ffb..e06f570393 100644
--- a/src/components/ha-faded.ts
+++ b/src/components/ha-faded.ts
@@ -1,4 +1,5 @@
import type { TemplateResult } from "lit";
+
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
diff --git a/src/components/ha-file-upload.ts b/src/components/ha-file-upload.ts
index d665910525..5e042b323e 100644
--- a/src/components/ha-file-upload.ts
+++ b/src/components/ha-file-upload.ts
@@ -1,17 +1,20 @@
-import "@material/mwc-linear-progress/mwc-linear-progress";
-import { mdiDelete, mdiFileUpload } from "@mdi/js";
+import type { LocalizeFunc } from "../common/translations/localize";
+import type { HomeAssistant } from "../types";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "./ha-button";
+import "./ha-icon-button";
+import "@material/mwc-linear-progress/mwc-linear-progress";
+
+import { mdiDelete, mdiFileUpload } from "@mdi/js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
-import { fireEvent } from "../common/dom/fire_event";
-import type { HomeAssistant } from "../types";
-import "./ha-button";
-import "./ha-icon-button";
-import { blankBeforePercent } from "../common/translations/blank_before_percent";
+
import { ensureArray } from "../common/array/ensure-array";
+import { fireEvent } from "../common/dom/fire_event";
+import { blankBeforePercent } from "../common/translations/blank_before_percent";
import { bytesToString } from "../util/bytes-to-string";
-import type { LocalizeFunc } from "../common/translations/localize";
declare global {
interface HASSDomEvents {
diff --git a/src/components/ha-filter-blueprints.ts b/src/components/ha-filter-blueprints.ts
index 18839b7cb6..cd3c76df9a 100644
--- a/src/components/ha-filter-blueprints.ts
+++ b/src/components/ha-filter-blueprints.ts
@@ -1,20 +1,23 @@
-import "@material/mwc-list/mwc-list";
-import type { SelectedDetail } from "@material/mwc-list";
-import "@material/mwc-menu/mwc-menu-surface";
-import { mdiFilterVariantRemove } from "@mdi/js";
-import type { CSSResultGroup, PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../common/dom/fire_event";
import type { Blueprints } from "../data/blueprint";
-import { fetchBlueprints } from "../data/blueprint";
import type { RelatedResult } from "../data/search";
-import { findRelated } from "../data/search";
-import { haStyleScrollbar } from "../resources/styles";
import type { HomeAssistant } from "../types";
+import type { SelectedDetail } from "@material/mwc-list";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "./ha-check-list-item";
import "./ha-expansion-panel";
import "./ha-icon-button";
-import "./ha-check-list-item";
+import "@material/mwc-list/mwc-list";
+import "@material/mwc-menu/mwc-menu-surface";
+
+import { mdiFilterVariantRemove } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../common/dom/fire_event";
+import { fetchBlueprints } from "../data/blueprint";
+import { findRelated } from "../data/search";
+import { haStyleScrollbar } from "../resources/styles";
@customElement("ha-filter-blueprints")
export class HaFilterBlueprints extends LitElement {
diff --git a/src/components/ha-filter-categories.ts b/src/components/ha-filter-categories.ts
index 678e784499..6c93231bf0 100644
--- a/src/components/ha-filter-categories.ts
+++ b/src/components/ha-filter-categories.ts
@@ -1,6 +1,16 @@
+import type { CategoryRegistryEntry } from "../data/category_registry";
+import type { HomeAssistant } from "../types";
+import type { ActionDetail, SelectedDetail } from "@material/mwc-list";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { CSSResultGroup } from "lit";
+
+import "./ha-button-menu";
+import "./ha-expansion-panel";
+import "./ha-icon";
+import "./ha-list-item";
import "@material/mwc-list/mwc-list";
import "@material/mwc-list/mwc-list-item";
-import type { ActionDetail, SelectedDetail } from "@material/mwc-list";
+
import {
mdiDelete,
mdiDotsVertical,
@@ -9,12 +19,11 @@ import {
mdiPlus,
mdiTag,
} from "@mdi/js";
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { CSSResultGroup } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../common/dom/fire_event";
-import type { CategoryRegistryEntry } from "../data/category_registry";
+import { stopPropagation } from "../common/dom/stop_propagation";
import {
createCategoryRegistryEntry,
deleteCategoryRegistryEntry,
@@ -25,12 +34,6 @@ import { showConfirmationDialog } from "../dialogs/generic/show-dialog-box";
import { SubscribeMixin } from "../mixins/subscribe-mixin";
import { showCategoryRegistryDetailDialog } from "../panels/config/category/show-dialog-category-registry-detail";
import { haStyleScrollbar } from "../resources/styles";
-import type { HomeAssistant } from "../types";
-import "./ha-expansion-panel";
-import "./ha-icon";
-import "./ha-button-menu";
-import "./ha-list-item";
-import { stopPropagation } from "../common/dom/stop_propagation";
@customElement("ha-filter-categories")
export class HaFilterCategories extends SubscribeMixin(LitElement) {
diff --git a/src/components/ha-filter-devices.ts b/src/components/ha-filter-devices.ts
index 69b53b4d29..9afd56eab6 100644
--- a/src/components/ha-filter-devices.ts
+++ b/src/components/ha-filter-devices.ts
@@ -1,20 +1,23 @@
-import "@material/mwc-list/mwc-list";
-import { mdiFilterVariantRemove } from "@mdi/js";
-import type { CSSResultGroup, PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../common/dom/fire_event";
-import { computeDeviceNameDisplay } from "../common/entity/compute_device_name";
-import { stringCompare } from "../common/string/compare";
import type { RelatedResult } from "../data/search";
-import { findRelated } from "../data/search";
-import { haStyleScrollbar } from "../resources/styles";
-import { loadVirtualizer } from "../resources/virtualizer";
import type { HomeAssistant } from "../types";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
import "./ha-check-list-item";
import "./ha-expansion-panel";
import "./search-input-outlined";
+import "@material/mwc-list/mwc-list";
+
+import { mdiFilterVariantRemove } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../common/dom/fire_event";
+import { computeDeviceNameDisplay } from "../common/entity/compute_device_name";
+import { stringCompare } from "../common/string/compare";
+import { findRelated } from "../data/search";
+import { haStyleScrollbar } from "../resources/styles";
+import { loadVirtualizer } from "../resources/virtualizer";
@customElement("ha-filter-devices")
export class HaFilterDevices extends LitElement {
diff --git a/src/components/ha-filter-domains.ts b/src/components/ha-filter-domains.ts
index 70b992c8a1..94951ffe5a 100644
--- a/src/components/ha-filter-domains.ts
+++ b/src/components/ha-filter-domains.ts
@@ -1,20 +1,23 @@
-import "@material/mwc-list/mwc-list";
-import { mdiFilterVariantRemove } from "@mdi/js";
+import type { HomeAssistant } from "../types";
import type { CSSResultGroup } from "lit";
+
+import "./ha-check-list-item";
+import "./ha-domain-icon";
+import "./ha-expansion-panel";
+import "./search-input-outlined";
+import "@material/mwc-list/mwc-list";
+
+import { mdiFilterVariantRemove } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { repeat } from "lit/directives/repeat";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../common/dom/fire_event";
+import { computeDomain } from "../common/entity/compute_domain";
import { stringCompare } from "../common/string/compare";
import { domainToName } from "../data/integration";
import { haStyleScrollbar } from "../resources/styles";
-import type { HomeAssistant } from "../types";
-import "./ha-domain-icon";
-import "./ha-expansion-panel";
-import "./ha-check-list-item";
-import "./search-input-outlined";
-import { computeDomain } from "../common/entity/compute_domain";
@customElement("ha-filter-domains")
export class HaFilterDomains extends LitElement {
diff --git a/src/components/ha-filter-entities.ts b/src/components/ha-filter-entities.ts
index d451f36c9d..496c4a23d9 100644
--- a/src/components/ha-filter-entities.ts
+++ b/src/components/ha-filter-entities.ts
@@ -1,22 +1,25 @@
-import "@material/mwc-list/mwc-list";
-import { mdiFilterVariantRemove } from "@mdi/js";
+import type { RelatedResult } from "../data/search";
+import type { HomeAssistant } from "../types";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "./ha-check-list-item";
+import "./ha-expansion-panel";
+import "./ha-state-icon";
+import "./search-input-outlined";
+import "@material/mwc-list/mwc-list";
+
+import { mdiFilterVariantRemove } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../common/dom/fire_event";
import { computeStateDomain } from "../common/entity/compute_state_domain";
import { computeStateName } from "../common/entity/compute_state_name";
import { stringCompare } from "../common/string/compare";
-import type { RelatedResult } from "../data/search";
import { findRelated } from "../data/search";
import { haStyleScrollbar } from "../resources/styles";
import { loadVirtualizer } from "../resources/virtualizer";
-import type { HomeAssistant } from "../types";
-import "./ha-check-list-item";
-import "./ha-state-icon";
-import "./ha-expansion-panel";
-import "./search-input-outlined";
@customElement("ha-filter-entities")
export class HaFilterEntities extends LitElement {
diff --git a/src/components/ha-filter-floor-areas.ts b/src/components/ha-filter-floor-areas.ts
index 5f0e3ee313..53a4d31822 100644
--- a/src/components/ha-filter-floor-areas.ts
+++ b/src/components/ha-filter-floor-areas.ts
@@ -1,26 +1,29 @@
+import type { RelatedResult } from "../data/search";
+import type { HomeAssistant } from "../types";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "./ha-check-list-item";
+import "./ha-expansion-panel";
+import "./ha-floor-icon";
+import "./ha-icon";
+import "./ha-icon-button";
+import "./ha-svg-icon";
+import "./ha-tree-indicator";
import "@material/mwc-list/mwc-list";
import "@material/mwc-menu/mwc-menu-surface";
+
import { mdiFilterVariantRemove, mdiTextureBox } from "@mdi/js";
-import type { CSSResultGroup, PropertyValues } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { repeat } from "lit/directives/repeat";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../common/dom/fire_event";
import { computeRTL } from "../common/util/compute_rtl";
import { getFloorAreaLookup } from "../data/floor_registry";
-import type { RelatedResult } from "../data/search";
import { findRelated } from "../data/search";
import { haStyleScrollbar } from "../resources/styles";
-import type { HomeAssistant } from "../types";
-import "./ha-check-list-item";
-import "./ha-floor-icon";
-import "./ha-icon";
-import "./ha-svg-icon";
-import "./ha-tree-indicator";
-import "./ha-icon-button";
-import "./ha-expansion-panel";
@customElement("ha-filter-floor-areas")
export class HaFilterFloorAreas extends LitElement {
diff --git a/src/components/ha-filter-integrations.ts b/src/components/ha-filter-integrations.ts
index 46064d68a3..2ac0e273e8 100644
--- a/src/components/ha-filter-integrations.ts
+++ b/src/components/ha-filter-integrations.ts
@@ -1,20 +1,23 @@
-import "@material/mwc-list/mwc-list";
-import { mdiFilterVariantRemove } from "@mdi/js";
+import type { IntegrationManifest } from "../data/integration";
+import type { HomeAssistant } from "../types";
import type { CSSResultGroup } from "lit";
+
+import "./ha-check-list-item";
+import "./ha-domain-icon";
+import "./ha-expansion-panel";
+import "./search-input-outlined";
+import "@material/mwc-list/mwc-list";
+
+import { mdiFilterVariantRemove } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { repeat } from "lit/directives/repeat";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../common/dom/fire_event";
import { stringCompare } from "../common/string/compare";
-import type { IntegrationManifest } from "../data/integration";
import { fetchIntegrationManifests } from "../data/integration";
import { haStyleScrollbar } from "../resources/styles";
-import type { HomeAssistant } from "../types";
-import "./ha-domain-icon";
-import "./search-input-outlined";
-import "./ha-expansion-panel";
-import "./ha-check-list-item";
@customElement("ha-filter-integrations")
export class HaFilterIntegrations extends LitElement {
diff --git a/src/components/ha-filter-labels.ts b/src/components/ha-filter-labels.ts
index ee9fbd8906..e0ff469e29 100644
--- a/src/components/ha-filter-labels.ts
+++ b/src/components/ha-filter-labels.ts
@@ -1,29 +1,32 @@
-import "@material/mwc-list/mwc-list";
+import type { LabelRegistryEntry } from "../data/label_registry";
+import type { HomeAssistant } from "../types";
import type { SelectedDetail } from "@material/mwc-list";
-import "@material/mwc-menu/mwc-menu-surface";
-import memoizeOne from "memoize-one";
-import { mdiCog, mdiFilterVariantRemove } from "@mdi/js";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { CSSResultGroup } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { repeat } from "lit/directives/repeat";
-import { computeCssColor } from "../common/color/compute-color";
-import { fireEvent } from "../common/dom/fire_event";
-import { navigate } from "../common/navigate";
-import type { LabelRegistryEntry } from "../data/label_registry";
-import { subscribeLabelRegistry } from "../data/label_registry";
-import { SubscribeMixin } from "../mixins/subscribe-mixin";
-import { haStyleScrollbar } from "../resources/styles";
-import type { HomeAssistant } from "../types";
+
import "./ha-check-list-item";
import "./ha-expansion-panel";
import "./ha-icon";
-import "./ha-label";
import "./ha-icon-button";
+import "./ha-label";
import "./ha-list-item";
import "./search-input-outlined";
+import "@material/mwc-list/mwc-list";
+import "@material/mwc-menu/mwc-menu-surface";
+
+import { mdiCog, mdiFilterVariantRemove } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { repeat } from "lit/directives/repeat";
+import memoizeOne from "memoize-one";
+
+import { computeCssColor } from "../common/color/compute-color";
+import { fireEvent } from "../common/dom/fire_event";
+import { navigate } from "../common/navigate";
import { stringCompare } from "../common/string/compare";
+import { subscribeLabelRegistry } from "../data/label_registry";
+import { SubscribeMixin } from "../mixins/subscribe-mixin";
+import { haStyleScrollbar } from "../resources/styles";
@customElement("ha-filter-labels")
export class HaFilterLabels extends SubscribeMixin(LitElement) {
diff --git a/src/components/ha-filter-states.ts b/src/components/ha-filter-states.ts
index b39acfb970..bb198a421a 100644
--- a/src/components/ha-filter-states.ts
+++ b/src/components/ha-filter-states.ts
@@ -1,16 +1,19 @@
-import "@material/mwc-list/mwc-list";
-import type { List, SelectedDetail } from "@material/mwc-list";
-import { mdiFilterVariantRemove } from "@mdi/js";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { fireEvent } from "../common/dom/fire_event";
-import { haStyleScrollbar } from "../resources/styles";
import type { HomeAssistant } from "../types";
+import type { List, SelectedDetail } from "@material/mwc-list";
+import type { CSSResultGroup } from "lit";
+
import "./ha-check-list-item";
import "./ha-expansion-panel";
import "./ha-icon";
import "./ha-icon-button";
+import "@material/mwc-list/mwc-list";
+
+import { mdiFilterVariantRemove } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { fireEvent } from "../common/dom/fire_event";
+import { haStyleScrollbar } from "../resources/styles";
@customElement("ha-filter-states")
export class HaFilterStates extends LitElement {
diff --git a/src/components/ha-floor-icon.ts b/src/components/ha-floor-icon.ts
index 595f8add1a..02f9a70a58 100644
--- a/src/components/ha-floor-icon.ts
+++ b/src/components/ha-floor-icon.ts
@@ -1,3 +1,8 @@
+import type { FloorRegistryEntry } from "../data/floor_registry";
+
+import "./ha-icon";
+import "./ha-svg-icon";
+
import {
mdiHome,
mdiHomeFloor0,
@@ -8,9 +13,6 @@ import {
} from "@mdi/js";
import { LitElement, html } from "lit";
import { customElement, property } from "lit/decorators";
-import type { FloorRegistryEntry } from "../data/floor_registry";
-import "./ha-icon";
-import "./ha-svg-icon";
export const floorDefaultIconPath = (
floor: Pick
diff --git a/src/components/ha-floor-picker.ts b/src/components/ha-floor-picker.ts
index cfa5678591..b7c1db73b5 100644
--- a/src/components/ha-floor-picker.ts
+++ b/src/components/ha-floor-picker.ts
@@ -1,36 +1,39 @@
-import type { ComboBoxLitRenderer } from "@vaadin/combo-box/lit";
-import type { HassEntity } from "home-assistant-js-websocket";
-import type { PropertyValues, TemplateResult } from "lit";
-import { LitElement, html } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../common/dom/fire_event";
-import { computeDomain } from "../common/entity/compute_domain";
import type { ScorableTextItem } from "../common/string/filter/sequence-matching";
-import { fuzzyFilterSort } from "../common/string/filter/sequence-matching";
import type { AreaRegistryEntry } from "../data/area_registry";
-import { updateAreaRegistryEntry } from "../data/area_registry";
import type {
DeviceEntityDisplayLookup,
DeviceRegistryEntry,
} from "../data/device_registry";
-import { getDeviceEntityDisplayLookup } from "../data/device_registry";
import type { EntityRegistryDisplayEntry } from "../data/entity_registry";
import type { FloorRegistryEntry } from "../data/floor_registry";
+import type { HomeAssistant, ValueChangedEvent } from "../types";
+import type { HaDevicePickerDeviceFilterFunc } from "./device/ha-device-picker";
+import type { HaComboBox } from "./ha-combo-box";
+import type { ComboBoxLitRenderer } from "@vaadin/combo-box/lit";
+import type { HassEntity } from "home-assistant-js-websocket";
+import type { PropertyValues, TemplateResult } from "lit";
+
+import "./ha-combo-box";
+import "./ha-floor-icon";
+import "./ha-icon-button";
+import "./ha-list-item";
+
+import { LitElement, html } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../common/dom/fire_event";
+import { computeDomain } from "../common/entity/compute_domain";
+import { fuzzyFilterSort } from "../common/string/filter/sequence-matching";
+import { updateAreaRegistryEntry } from "../data/area_registry";
+import { getDeviceEntityDisplayLookup } from "../data/device_registry";
import {
createFloorRegistryEntry,
getFloorAreaLookup,
} from "../data/floor_registry";
import { showAlertDialog } from "../dialogs/generic/show-dialog-box";
import { showFloorRegistryDetailDialog } from "../panels/config/areas/show-dialog-floor-registry-detail";
-import type { HomeAssistant, ValueChangedEvent } from "../types";
-import type { HaDevicePickerDeviceFilterFunc } from "./device/ha-device-picker";
-import "./ha-combo-box";
-import type { HaComboBox } from "./ha-combo-box";
-import "./ha-floor-icon";
-import "./ha-icon-button";
-import "./ha-list-item";
type ScorableFloorRegistryEntry = ScorableTextItem & FloorRegistryEntry;
diff --git a/src/components/ha-floors-picker.ts b/src/components/ha-floors-picker.ts
index 86086e6959..cc4143d56a 100644
--- a/src/components/ha-floors-picker.ts
+++ b/src/components/ha-floors-picker.ts
@@ -1,12 +1,15 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../common/dom/fire_event";
-import { SubscribeMixin } from "../mixins/subscribe-mixin";
import type { HomeAssistant } from "../types";
import type { HaDevicePickerDeviceFilterFunc } from "./device/ha-device-picker";
+import type { HassEntity } from "home-assistant-js-websocket";
+
import "./ha-floor-picker";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../common/dom/fire_event";
+import { SubscribeMixin } from "../mixins/subscribe-mixin";
+
@customElement("ha-floors-picker")
export class HaFloorsPicker extends SubscribeMixin(LitElement) {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-form/ha-form-boolean.ts b/src/components/ha-form/ha-form-boolean.ts
index 494b9389c7..dc1e982c29 100644
--- a/src/components/ha-form/ha-form-boolean.ts
+++ b/src/components/ha-form/ha-form-boolean.ts
@@ -1,16 +1,19 @@
-import type { TemplateResult } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, query } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
+import type { HaCheckbox } from "../ha-checkbox";
import type {
HaFormBooleanData,
HaFormBooleanSchema,
HaFormElement,
} from "./types";
-import type { HaCheckbox } from "../ha-checkbox";
+import type { TemplateResult } from "lit";
+
import "../ha-checkbox";
import "../ha-formfield";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, query } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
+
@customElement("ha-form-boolean")
export class HaFormBoolean extends LitElement implements HaFormElement {
@property({ attribute: false }) public schema!: HaFormBooleanSchema;
diff --git a/src/components/ha-form/ha-form-constant.ts b/src/components/ha-form/ha-form-constant.ts
index 43dc9bf754..e1d0423cdb 100644
--- a/src/components/ha-form/ha-form-constant.ts
+++ b/src/components/ha-form/ha-form-constant.ts
@@ -1,7 +1,8 @@
+import type { HaFormConstantSchema, HaFormElement } from "./types";
import type { TemplateResult } from "lit";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
-import type { HaFormConstantSchema, HaFormElement } from "./types";
@customElement("ha-form-constant")
export class HaFormConstant extends LitElement implements HaFormElement {
diff --git a/src/components/ha-form/ha-form-expandable.ts b/src/components/ha-form/ha-form-expandable.ts
index e44d136012..2d8d074fb6 100644
--- a/src/components/ha-form/ha-form-expandable.ts
+++ b/src/components/ha-form/ha-form-expandable.ts
@@ -1,7 +1,4 @@
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
import type { HomeAssistant } from "../../types";
-import "./ha-form";
import type {
HaFormDataContainer,
HaFormElement,
@@ -9,6 +6,11 @@ import type {
HaFormSchema,
} from "./types";
+import "./ha-form";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("ha-form-expandable")
export class HaFormExpendable extends LitElement implements HaFormElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-form/ha-form-float.ts b/src/components/ha-form/ha-form-float.ts
index 5518c48158..b9133a5046 100644
--- a/src/components/ha-form/ha-form-float.ts
+++ b/src/components/ha-form/ha-form-float.ts
@@ -1,15 +1,18 @@
-import type { TemplateResult, PropertyValues } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, query } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
+import type { LocalizeFunc } from "../../common/translations/localize";
import type { HaTextField } from "../ha-textfield";
-import "../ha-textfield";
import type {
HaFormElement,
HaFormFloatData,
HaFormFloatSchema,
} from "./types";
-import type { LocalizeFunc } from "../../common/translations/localize";
+import type { TemplateResult, PropertyValues } from "lit";
+
+import "../ha-textfield";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, query } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
@customElement("ha-form-float")
export class HaFormFloat extends LitElement implements HaFormElement {
diff --git a/src/components/ha-form/ha-form-grid.ts b/src/components/ha-form/ha-form-grid.ts
index a9bffc7f76..f8cd27b7da 100644
--- a/src/components/ha-form/ha-form-grid.ts
+++ b/src/components/ha-form/ha-form-grid.ts
@@ -1,14 +1,16 @@
-import "./ha-form";
-import type { PropertyValues, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
+import type { HomeAssistant } from "../../types";
import type {
HaFormGridSchema,
HaFormDataContainer,
HaFormElement,
HaFormSchema,
} from "./types";
-import type { HomeAssistant } from "../../types";
+import type { PropertyValues, TemplateResult } from "lit";
+
+import "./ha-form";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
@customElement("ha-form-grid")
export class HaFormGrid extends LitElement implements HaFormElement {
diff --git a/src/components/ha-form/ha-form-integer.ts b/src/components/ha-form/ha-form-integer.ts
index 777056c184..16718ca670 100644
--- a/src/components/ha-form/ha-form-integer.ts
+++ b/src/components/ha-form/ha-form-integer.ts
@@ -1,19 +1,22 @@
-import type { PropertyValues, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, query } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
+import type { LocalizeFunc } from "../../common/translations/localize";
import type { HaCheckbox } from "../ha-checkbox";
-import "../ha-slider";
-import "../ha-checkbox";
-import "../ha-input-helper-text";
-import "../ha-textfield";
import type { HaTextField } from "../ha-textfield";
import type {
HaFormElement,
HaFormIntegerData,
HaFormIntegerSchema,
} from "./types";
-import type { LocalizeFunc } from "../../common/translations/localize";
+import type { PropertyValues, TemplateResult } from "lit";
+
+import "../ha-checkbox";
+import "../ha-input-helper-text";
+import "../ha-slider";
+import "../ha-textfield";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, query } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
@customElement("ha-form-integer")
export class HaFormInteger extends LitElement implements HaFormElement {
diff --git a/src/components/ha-form/ha-form-multi_select.ts b/src/components/ha-form/ha-form-multi_select.ts
index e0f050af20..6e7fa839cd 100644
--- a/src/components/ha-form/ha-form-multi_select.ts
+++ b/src/components/ha-form/ha-form-multi_select.ts
@@ -1,23 +1,25 @@
-import { mdiMenuDown, mdiMenuUp } from "@mdi/js";
-import type { PropertyValues, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
-import "../ha-button-menu";
-import "../ha-check-list-item";
-import "../ha-checkbox";
import type { HaCheckbox } from "../ha-checkbox";
-import "../ha-formfield";
-import "../ha-icon-button";
-import "../ha-textfield";
-import "../ha-md-button-menu";
-import "../ha-md-menu-item";
-
import type {
HaFormElement,
HaFormMultiSelectData,
HaFormMultiSelectSchema,
} from "./types";
+import type { PropertyValues, TemplateResult } from "lit";
+
+import "../ha-button-menu";
+import "../ha-check-list-item";
+import "../ha-checkbox";
+import "../ha-formfield";
+import "../ha-icon-button";
+import "../ha-md-button-menu";
+import "../ha-md-menu-item";
+import "../ha-textfield";
+
+import { mdiMenuDown, mdiMenuUp } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
function optionValue(item: string | string[]): string {
return Array.isArray(item) ? item[0] : item;
diff --git a/src/components/ha-form/ha-form-optional_actions.ts b/src/components/ha-form/ha-form-optional_actions.ts
index 30f2fcec7f..62eb8fdd43 100644
--- a/src/components/ha-form/ha-form-optional_actions.ts
+++ b/src/components/ha-form/ha-form-optional_actions.ts
@@ -1,17 +1,20 @@
-import type { PropertyValues, TemplateResult } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { stopPropagation } from "../../common/dom/stop_propagation";
import type { LocalizeFunc } from "../../common/translations/localize";
import type { HomeAssistant } from "../../types";
-import "./ha-form";
import type {
HaFormOptionalActionsSchema,
HaFormDataContainer,
HaFormElement,
HaFormSchema,
} from "./types";
+import type { PropertyValues, TemplateResult } from "lit";
+
+import "./ha-form";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { stopPropagation } from "../../common/dom/stop_propagation";
const NO_ACTIONS = [];
diff --git a/src/components/ha-form/ha-form-positive_time_period_dict.ts b/src/components/ha-form/ha-form-positive_time_period_dict.ts
index 8e62205813..bec9ef6301 100644
--- a/src/components/ha-form/ha-form-positive_time_period_dict.ts
+++ b/src/components/ha-form/ha-form-positive_time_period_dict.ts
@@ -1,8 +1,10 @@
+import type { HaFormElement, HaFormTimeData, HaFormTimeSchema } from "./types";
import type { TemplateResult } from "lit";
+
+import "../ha-duration-input";
+
import { html, LitElement } from "lit";
import { customElement, property, query } from "lit/decorators";
-import "../ha-duration-input";
-import type { HaFormElement, HaFormTimeData, HaFormTimeSchema } from "./types";
@customElement("ha-form-positive_time_period_dict")
export class HaFormTimePeriod extends LitElement implements HaFormElement {
diff --git a/src/components/ha-form/ha-form-select.ts b/src/components/ha-form/ha-form-select.ts
index 8451b21a6c..2a4daff609 100644
--- a/src/components/ha-form/ha-form-select.ts
+++ b/src/components/ha-form/ha-form-select.ts
@@ -1,17 +1,20 @@
-import memoizeOne from "memoize-one";
-import type { TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
+import type { SelectSelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
import type {
HaFormElement,
HaFormSelectData,
HaFormSelectSchema,
} from "./types";
-import type { SelectSelector } from "../../data/selector";
+import type { TemplateResult } from "lit";
+
import "../ha-selector/ha-selector-select";
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../common/dom/fire_event";
+
@customElement("ha-form-select")
export class HaFormSelect extends LitElement implements HaFormElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-form/ha-form-string.ts b/src/components/ha-form/ha-form-string.ts
index 74c8333a0f..4933502291 100644
--- a/src/components/ha-form/ha-form-string.ts
+++ b/src/components/ha-form/ha-form-string.ts
@@ -1,20 +1,23 @@
-import { mdiEye, mdiEyeOff } from "@mdi/js";
-import type { PropertyValues, TemplateResult } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
-import "../ha-icon-button";
-import "../ha-textfield";
+import type {
+ LocalizeFunc,
+ LocalizeKeys,
+} from "../../common/translations/localize";
import type { HaTextField } from "../ha-textfield";
import type {
HaFormElement,
HaFormStringData,
HaFormStringSchema,
} from "./types";
-import type {
- LocalizeFunc,
- LocalizeKeys,
-} from "../../common/translations/localize";
+import type { PropertyValues, TemplateResult } from "lit";
+
+import "../ha-icon-button";
+import "../ha-textfield";
+
+import { mdiEye, mdiEyeOff } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
const MASKED_FIELDS = ["password", "secret", "token"];
diff --git a/src/components/ha-form/ha-form.ts b/src/components/ha-form/ha-form.ts
index 57c796312d..07a78bcaf9 100644
--- a/src/components/ha-form/ha-form.ts
+++ b/src/components/ha-form/ha-form.ts
@@ -1,12 +1,15 @@
-import type { PropertyValues, TemplateResult } from "lit";
-import { css, html, LitElement, ReactiveElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { dynamicElement } from "../../common/dom/dynamic-element-directive";
-import { fireEvent } from "../../common/dom/fire_event";
import type { HomeAssistant } from "../../types";
+import type { HaFormDataContainer, HaFormElement, HaFormSchema } from "./types";
+import type { PropertyValues, TemplateResult } from "lit";
+
import "../ha-alert";
import "../ha-selector/ha-selector";
-import type { HaFormDataContainer, HaFormElement, HaFormSchema } from "./types";
+
+import { css, html, LitElement, ReactiveElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { dynamicElement } from "../../common/dom/dynamic-element-directive";
+import { fireEvent } from "../../common/dom/fire_event";
const LOAD_ELEMENTS = {
boolean: () => import("./ha-form-boolean"),
diff --git a/src/components/ha-form/types.ts b/src/components/ha-form/types.ts
index 550a533db9..03a4430ba4 100644
--- a/src/components/ha-form/types.ts
+++ b/src/components/ha-form/types.ts
@@ -1,6 +1,6 @@
-import type { LitElement } from "lit";
import type { Selector } from "../../data/selector";
import type { HaDurationData } from "../ha-duration-input";
+import type { LitElement } from "lit";
export type HaFormSchema =
| HaFormConstantSchema
diff --git a/src/components/ha-formfield.ts b/src/components/ha-formfield.ts
index 0f49c75514..51eaff2e11 100644
--- a/src/components/ha-formfield.ts
+++ b/src/components/ha-formfield.ts
@@ -1,8 +1,10 @@
-import { FormfieldBase } from "@material/mwc-formfield/mwc-formfield-base";
import { styles } from "@material/mwc-formfield/mwc-formfield.css";
+
+import { FormfieldBase } from "@material/mwc-formfield/mwc-formfield-base";
import { css, html } from "lit";
import { customElement, property } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { fireEvent } from "../common/dom/fire_event";
@customElement("ha-formfield")
diff --git a/src/components/ha-gauge.ts b/src/components/ha-gauge.ts
index 4c6e3c50fa..7d9336cc14 100644
--- a/src/components/ha-gauge.ts
+++ b/src/components/ha-gauge.ts
@@ -1,11 +1,13 @@
+import type { FrontendLocaleData } from "../data/translation";
import type { PropertyValues, TemplateResult } from "lit";
+
import { css, LitElement, svg } from "lit";
import { customElement, property, state } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
+
import { formatNumber } from "../common/number/format_number";
import { blankBeforePercent } from "../common/translations/blank_before_percent";
import { afterNextRender } from "../common/util/render-status";
-import type { FrontendLocaleData } from "../data/translation";
import { getValueInPercentage, normalize } from "../util/calculate";
const getAngle = (value: number, min: number, max: number) => {
diff --git a/src/components/ha-grid-size-picker.ts b/src/components/ha-grid-size-picker.ts
index a050d81d69..ae82b366f2 100644
--- a/src/components/ha-grid-size-picker.ts
+++ b/src/components/ha-grid-size-picker.ts
@@ -1,14 +1,17 @@
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
+import type { CardGridSize } from "../panels/lovelace/common/compute-card-grid-size";
+import type { HomeAssistant } from "../types";
+
import "../panels/lovelace/editor/card-editor/ha-grid-layout-slider";
import "./ha-icon-button";
+
import { mdiRestore } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
+
import { fireEvent } from "../common/dom/fire_event";
import { conditionalClamp } from "../common/number/clamp";
-import type { CardGridSize } from "../panels/lovelace/common/compute-card-grid-size";
import { DEFAULT_GRID_SIZE } from "../panels/lovelace/common/compute-card-grid-size";
-import type { HomeAssistant } from "../types";
@customElement("ha-grid-size-picker")
export class HaGridSizeEditor extends LitElement {
diff --git a/src/components/ha-header-bar.ts b/src/components/ha-header-bar.ts
index 966da7ab80..210c17cf1d 100644
--- a/src/components/ha-header-bar.ts
+++ b/src/components/ha-header-bar.ts
@@ -1,5 +1,6 @@
// @ts-ignore
import topAppBarStyles from "@material/top-app-bar/dist/mdc.top-app-bar.min.css";
+
import { css, html, LitElement, unsafeCSS } from "lit";
import { customElement } from "lit/decorators";
diff --git a/src/components/ha-help-tooltip.ts b/src/components/ha-help-tooltip.ts
index 1d88cd748d..d67fd28178 100644
--- a/src/components/ha-help-tooltip.ts
+++ b/src/components/ha-help-tooltip.ts
@@ -1,10 +1,12 @@
-import { mdiHelpCircle } from "@mdi/js";
import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
+
import "./ha-svg-icon";
import "./ha-tooltip";
+import { mdiHelpCircle } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("ha-help-tooltip")
export class HaHelpTooltip extends LitElement {
@property() public label!: string;
diff --git a/src/components/ha-hls-player.ts b/src/components/ha-hls-player.ts
index 64ba51706e..28c147c4ce 100644
--- a/src/components/ha-hls-player.ts
+++ b/src/components/ha-hls-player.ts
@@ -1,13 +1,16 @@
+import type { HomeAssistant } from "../types";
import type HlsType from "hls.js";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "./ha-alert";
+
import { css, html, LitElement } from "lit";
import { customElement, property, query, state } from "lit/decorators";
+
+import { isComponentLoaded } from "../common/config/is_component_loaded";
import { fireEvent } from "../common/dom/fire_event";
import { nextRender } from "../common/util/render-status";
-import type { HomeAssistant } from "../types";
-import "./ha-alert";
import { fetchStreamUrl } from "../data/camera";
-import { isComponentLoaded } from "../common/config/is_component_loaded";
type HlsLite = Omit<
HlsType,
diff --git a/src/components/ha-hs-color-picker.ts b/src/components/ha-hs-color-picker.ts
index b8ccfd3f3d..7e2b51147e 100644
--- a/src/components/ha-hs-color-picker.ts
+++ b/src/components/ha-hs-color-picker.ts
@@ -1,9 +1,11 @@
-import { DIRECTION_ALL, Manager, Pan, Tap } from "@egjs/hammerjs";
import type { PropertyValues } from "lit";
+
+import { DIRECTION_ALL, Manager, Pan, Tap } from "@egjs/hammerjs";
import { css, html, LitElement, svg } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { styleMap } from "lit/directives/style-map";
+
import { hsv2rgb, rgb2hex } from "../common/color/convert-color";
import { rgbw2rgb, rgbww2rgb } from "../common/color/convert-light-color";
import { fireEvent } from "../common/dom/fire_event";
diff --git a/src/components/ha-humidifier-state.ts b/src/components/ha-humidifier-state.ts
index 63dec9fc33..7ae0219801 100644
--- a/src/components/ha-humidifier-state.ts
+++ b/src/components/ha-humidifier-state.ts
@@ -1,9 +1,11 @@
-import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { isUnavailableState, OFF } from "../data/entity";
import type { HumidifierEntity } from "../data/humidifier";
import type { HomeAssistant } from "../types";
+import type { TemplateResult } from "lit";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { isUnavailableState, OFF } from "../data/entity";
@customElement("ha-humidifier-state")
class HaHumidifierState extends LitElement {
diff --git a/src/components/ha-icon-button-arrow-next.ts b/src/components/ha-icon-button-arrow-next.ts
index 9eafcf6f07..2f07bb25db 100644
--- a/src/components/ha-icon-button-arrow-next.ts
+++ b/src/components/ha-icon-button-arrow-next.ts
@@ -1,10 +1,13 @@
-import { mdiArrowLeft, mdiArrowRight } from "@mdi/js";
+import type { HomeAssistant } from "../types";
import type { TemplateResult } from "lit";
+
+import "./ha-icon-button";
+
+import { mdiArrowLeft, mdiArrowRight } from "@mdi/js";
import { html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { mainWindow } from "../common/dom/get_main_window";
-import type { HomeAssistant } from "../types";
-import "./ha-icon-button";
@customElement("ha-icon-button-arrow-next")
export class HaIconButtonArrowNext extends LitElement {
diff --git a/src/components/ha-icon-button-arrow-prev.ts b/src/components/ha-icon-button-arrow-prev.ts
index b0137fc925..0ebf84bbbb 100644
--- a/src/components/ha-icon-button-arrow-prev.ts
+++ b/src/components/ha-icon-button-arrow-prev.ts
@@ -1,10 +1,13 @@
-import { mdiArrowLeft, mdiArrowRight } from "@mdi/js";
+import type { HomeAssistant } from "../types";
import type { TemplateResult } from "lit";
+
+import "./ha-icon-button";
+
+import { mdiArrowLeft, mdiArrowRight } from "@mdi/js";
import { html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { mainWindow } from "../common/dom/get_main_window";
-import type { HomeAssistant } from "../types";
-import "./ha-icon-button";
@customElement("ha-icon-button-arrow-prev")
export class HaIconButtonArrowPrev extends LitElement {
diff --git a/src/components/ha-icon-button-group.ts b/src/components/ha-icon-button-group.ts
index ddb8f08acc..b6b04d6009 100644
--- a/src/components/ha-icon-button-group.ts
+++ b/src/components/ha-icon-button-group.ts
@@ -1,4 +1,5 @@
import type { TemplateResult } from "lit";
+
import { css, html, LitElement } from "lit";
import { customElement } from "lit/decorators";
diff --git a/src/components/ha-icon-button-next.ts b/src/components/ha-icon-button-next.ts
index ba40a921a7..4375c34ab7 100644
--- a/src/components/ha-icon-button-next.ts
+++ b/src/components/ha-icon-button-next.ts
@@ -1,10 +1,13 @@
-import { mdiChevronLeft, mdiChevronRight } from "@mdi/js";
+import type { HomeAssistant } from "../types";
import type { TemplateResult } from "lit";
+
+import "./ha-icon-button";
+
+import { mdiChevronLeft, mdiChevronRight } from "@mdi/js";
import { html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { mainWindow } from "../common/dom/get_main_window";
-import type { HomeAssistant } from "../types";
-import "./ha-icon-button";
@customElement("ha-icon-button-next")
export class HaIconButtonNext extends LitElement {
diff --git a/src/components/ha-icon-button-prev.ts b/src/components/ha-icon-button-prev.ts
index 5f6510bc64..10b997dc54 100644
--- a/src/components/ha-icon-button-prev.ts
+++ b/src/components/ha-icon-button-prev.ts
@@ -1,10 +1,13 @@
-import { mdiChevronLeft, mdiChevronRight } from "@mdi/js";
+import type { HomeAssistant } from "../types";
import type { TemplateResult } from "lit";
+
+import "./ha-icon-button";
+
+import { mdiChevronLeft, mdiChevronRight } from "@mdi/js";
import { html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { mainWindow } from "../common/dom/get_main_window";
-import type { HomeAssistant } from "../types";
-import "./ha-icon-button";
@customElement("ha-icon-button-prev")
export class HaIconButtonPrev extends LitElement {
diff --git a/src/components/ha-icon-button-toggle.ts b/src/components/ha-icon-button-toggle.ts
index eeee6e1042..bb590aa479 100644
--- a/src/components/ha-icon-button-toggle.ts
+++ b/src/components/ha-icon-button-toggle.ts
@@ -1,5 +1,6 @@
import { css } from "lit";
import { customElement, property } from "lit/decorators";
+
import { HaIconButton } from "./ha-icon-button";
@customElement("ha-icon-button-toggle")
diff --git a/src/components/ha-icon-button.ts b/src/components/ha-icon-button.ts
index e4c3f60c88..e0fd7c95f1 100644
--- a/src/components/ha-icon-button.ts
+++ b/src/components/ha-icon-button.ts
@@ -1,10 +1,12 @@
-import "@material/mwc-icon-button";
import type { IconButton } from "@material/mwc-icon-button";
import type { TemplateResult } from "lit";
+
+import "./ha-svg-icon";
+import "@material/mwc-icon-button";
+
import { css, html, LitElement } from "lit";
import { customElement, property, query } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
-import "./ha-svg-icon";
@customElement("ha-icon-button")
export class HaIconButton extends LitElement {
diff --git a/src/components/ha-icon-next.ts b/src/components/ha-icon-next.ts
index e5330cb22c..e8e3beb88d 100644
--- a/src/components/ha-icon-next.ts
+++ b/src/components/ha-icon-next.ts
@@ -1,5 +1,6 @@
import { mdiChevronLeft, mdiChevronRight } from "@mdi/js";
import { customElement, property } from "lit/decorators";
+
import { mainWindow } from "../common/dom/get_main_window";
import { HaSvgIcon } from "./ha-svg-icon";
diff --git a/src/components/ha-icon-overflow-menu.ts b/src/components/ha-icon-overflow-menu.ts
index b526e48e24..9e02c8216b 100644
--- a/src/components/ha-icon-overflow-menu.ts
+++ b/src/components/ha-icon-overflow-menu.ts
@@ -1,17 +1,20 @@
-import { mdiDotsVertical } from "@mdi/js";
+import type { HomeAssistant } from "../types";
import type { TemplateResult } from "lit";
+
+import "./ha-icon-button";
+import "./ha-list-item";
+import "./ha-md-button-menu";
+import "./ha-md-divider";
+import "./ha-md-menu-item";
+import "./ha-svg-icon";
+import "./ha-tooltip";
+
+import { mdiDotsVertical } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { haStyle } from "../resources/styles";
-import type { HomeAssistant } from "../types";
-import "./ha-md-button-menu";
-import "./ha-icon-button";
-import "./ha-list-item";
-import "./ha-svg-icon";
-import "./ha-tooltip";
-import "./ha-md-menu-item";
-import "./ha-md-divider";
export interface IconOverflowMenuItem {
[key: string]: any;
diff --git a/src/components/ha-icon-picker.ts b/src/components/ha-icon-picker.ts
index 3d1bb30552..076960bde5 100644
--- a/src/components/ha-icon-picker.ts
+++ b/src/components/ha-icon-picker.ts
@@ -1,18 +1,21 @@
+import type { HomeAssistant, ValueChangedEvent } from "../types";
import type { ComboBoxLitRenderer } from "@vaadin/combo-box/lit";
import type {
ComboBoxDataProviderCallback,
ComboBoxDataProviderParams,
} from "@vaadin/combo-box/vaadin-combo-box-light";
import type { TemplateResult } from "lit";
+
+import "./ha-combo-box";
+import "./ha-icon";
+import "./ha-list-item";
+
import { LitElement, css, html } from "lit";
import { customElement, property } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../common/dom/fire_event";
import { customIcons } from "../data/custom_icons";
-import type { HomeAssistant, ValueChangedEvent } from "../types";
-import "./ha-combo-box";
-import "./ha-list-item";
-import "./ha-icon";
interface IconItem {
icon: string;
diff --git a/src/components/ha-icon-prev.ts b/src/components/ha-icon-prev.ts
index 4fa5dd683a..d533675ed3 100644
--- a/src/components/ha-icon-prev.ts
+++ b/src/components/ha-icon-prev.ts
@@ -1,5 +1,6 @@
import { mdiChevronLeft, mdiChevronRight } from "@mdi/js";
import { customElement, property } from "lit/decorators";
+
import { mainWindow } from "../common/dom/get_main_window";
import { HaSvgIcon } from "./ha-svg-icon";
diff --git a/src/components/ha-icon.ts b/src/components/ha-icon.ts
index 5016e38c6a..aa730886b2 100644
--- a/src/components/ha-icon.ts
+++ b/src/components/ha-icon.ts
@@ -1,18 +1,21 @@
+import type { CustomIcon } from "../data/custom_icons";
+import type { Chunks, Icons } from "../data/iconsets";
import type { PropertyValues } from "lit";
+
+import "./ha-svg-icon";
+
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../common/dom/fire_event";
import { debounce } from "../common/util/debounce";
-import type { CustomIcon } from "../data/custom_icons";
import { customIcons } from "../data/custom_icons";
-import type { Chunks, Icons } from "../data/iconsets";
import {
MDI_PREFIXES,
findIconChunk,
getIcon,
writeCache,
} from "../data/iconsets";
-import "./ha-svg-icon";
type DeprecatedIcon = Record<
string,
diff --git a/src/components/ha-input-helper-text.ts b/src/components/ha-input-helper-text.ts
index 4af842ee74..a29fffec7d 100644
--- a/src/components/ha-input-helper-text.ts
+++ b/src/components/ha-input-helper-text.ts
@@ -1,4 +1,5 @@
import type { TemplateResult } from "lit";
+
import { css, html, LitElement } from "lit";
import { customElement } from "lit/decorators";
diff --git a/src/components/ha-items-display-editor.ts b/src/components/ha-items-display-editor.ts
index af7fb2ba1f..b51be408be 100644
--- a/src/components/ha-items-display-editor.ts
+++ b/src/components/ha-items-display-editor.ts
@@ -1,16 +1,6 @@
-import { ResizeController } from "@lit-labs/observers/resize-controller";
-import { mdiDrag, mdiEye, mdiEyeOff } from "@mdi/js";
-import type { TemplateResult } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import { ifDefined } from "lit/directives/if-defined";
-import { repeat } from "lit/directives/repeat";
-import { until } from "lit/directives/until";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../common/dom/fire_event";
-import { orderCompare } from "../common/string/compare";
import type { HomeAssistant } from "../types";
+import type { TemplateResult } from "lit";
+
import "./ha-icon";
import "./ha-icon-button";
import "./ha-icon-next";
@@ -19,6 +9,19 @@ import "./ha-md-list-item";
import "./ha-sortable";
import "./ha-svg-icon";
+import { ResizeController } from "@lit-labs/observers/resize-controller";
+import { mdiDrag, mdiEye, mdiEyeOff } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+import { ifDefined } from "lit/directives/if-defined";
+import { repeat } from "lit/directives/repeat";
+import { until } from "lit/directives/until";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../common/dom/fire_event";
+import { orderCompare } from "../common/string/compare";
+
export interface DisplayItem {
icon?: string | Promise;
iconPath?: string;
diff --git a/src/components/ha-label-badge.ts b/src/components/ha-label-badge.ts
index 225dc4b000..766817d252 100644
--- a/src/components/ha-label-badge.ts
+++ b/src/components/ha-label-badge.ts
@@ -1,4 +1,5 @@
import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
diff --git a/src/components/ha-label-picker.ts b/src/components/ha-label-picker.ts
index be81ed9994..bb0026138a 100644
--- a/src/components/ha-label-picker.ts
+++ b/src/components/ha-label-picker.ts
@@ -1,34 +1,37 @@
-import type { ComboBoxLitRenderer } from "@vaadin/combo-box/lit";
-import type { HassEntity, UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { PropertyValues, TemplateResult } from "lit";
-import { LitElement, html, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../common/dom/fire_event";
-import { computeDomain } from "../common/entity/compute_domain";
import type { ScorableTextItem } from "../common/string/filter/sequence-matching";
-import { fuzzyFilterSort } from "../common/string/filter/sequence-matching";
import type {
DeviceEntityDisplayLookup,
DeviceRegistryEntry,
} from "../data/device_registry";
-import { getDeviceEntityDisplayLookup } from "../data/device_registry";
import type { EntityRegistryDisplayEntry } from "../data/entity_registry";
import type { LabelRegistryEntry } from "../data/label_registry";
+import type { HomeAssistant, ValueChangedEvent } from "../types";
+import type { HaDevicePickerDeviceFilterFunc } from "./device/ha-device-picker";
+import type { HaComboBox } from "./ha-combo-box";
+import type { ComboBoxLitRenderer } from "@vaadin/combo-box/lit";
+import type { HassEntity, UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { PropertyValues, TemplateResult } from "lit";
+
+import "./ha-combo-box";
+import "./ha-icon-button";
+import "./ha-list-item";
+import "./ha-svg-icon";
+
+import { LitElement, html, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../common/dom/fire_event";
+import { computeDomain } from "../common/entity/compute_domain";
+import { fuzzyFilterSort } from "../common/string/filter/sequence-matching";
+import { getDeviceEntityDisplayLookup } from "../data/device_registry";
import {
createLabelRegistryEntry,
subscribeLabelRegistry,
} from "../data/label_registry";
import { SubscribeMixin } from "../mixins/subscribe-mixin";
import { showLabelDetailDialog } from "../panels/config/labels/show-dialog-label-detail";
-import type { HomeAssistant, ValueChangedEvent } from "../types";
-import type { HaDevicePickerDeviceFilterFunc } from "./device/ha-device-picker";
-import "./ha-combo-box";
-import type { HaComboBox } from "./ha-combo-box";
-import "./ha-icon-button";
-import "./ha-list-item";
-import "./ha-svg-icon";
type ScorableLabelItem = ScorableTextItem & LabelRegistryEntry;
diff --git a/src/components/ha-label.ts b/src/components/ha-label.ts
index 1b15d914ed..50d4c6d99c 100644
--- a/src/components/ha-label.ts
+++ b/src/components/ha-label.ts
@@ -1,4 +1,5 @@
import type { CSSResultGroup, TemplateResult } from "lit";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
diff --git a/src/components/ha-labeled-slider.ts b/src/components/ha-labeled-slider.ts
index 8a54a14496..68fb112a35 100644
--- a/src/components/ha-labeled-slider.ts
+++ b/src/components/ha-labeled-slider.ts
@@ -1,10 +1,12 @@
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../common/dom/fire_event";
import "./ha-icon";
import "./ha-input-helper-text";
import "./ha-slider";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../common/dom/fire_event";
+
@customElement("ha-labeled-slider")
class HaLabeledSlider extends LitElement {
@property({ type: Boolean }) public labeled = false;
diff --git a/src/components/ha-labels-picker.ts b/src/components/ha-labels-picker.ts
index 81590f3247..4e2db2fa8c 100644
--- a/src/components/ha-labels-picker.ts
+++ b/src/components/ha-labels-picker.ts
@@ -1,25 +1,28 @@
+import type { LabelRegistryEntry } from "../data/label_registry";
+import type { HomeAssistant, ValueChangedEvent } from "../types";
+import type { HaDevicePickerDeviceFilterFunc } from "./device/ha-device-picker";
+import type { HaLabelPicker } from "./ha-label-picker";
import type { HassEntity, UnsubscribeFunc } from "home-assistant-js-websocket";
import type { TemplateResult } from "lit";
+
+import "./chips/ha-chip-set";
+import "./chips/ha-input-chip";
+import "./ha-label-picker";
+
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { repeat } from "lit/directives/repeat";
import memoizeOne from "memoize-one";
+
import { computeCssColor } from "../common/color/compute-color";
import { fireEvent } from "../common/dom/fire_event";
import { stringCompare } from "../common/string/compare";
-import type { LabelRegistryEntry } from "../data/label_registry";
import {
subscribeLabelRegistry,
updateLabelRegistryEntry,
} from "../data/label_registry";
import { SubscribeMixin } from "../mixins/subscribe-mixin";
import { showLabelDetailDialog } from "../panels/config/labels/show-dialog-label-detail";
-import type { HomeAssistant, ValueChangedEvent } from "../types";
-import "./chips/ha-chip-set";
-import "./chips/ha-input-chip";
-import type { HaDevicePickerDeviceFilterFunc } from "./device/ha-device-picker";
-import "./ha-label-picker";
-import type { HaLabelPicker } from "./ha-label-picker";
@customElement("ha-labels-picker")
export class HaLabelsPicker extends SubscribeMixin(LitElement) {
diff --git a/src/components/ha-language-picker.ts b/src/components/ha-language-picker.ts
index f771871756..f76e1dae4d 100644
--- a/src/components/ha-language-picker.ts
+++ b/src/components/ha-language-picker.ts
@@ -1,17 +1,20 @@
+import type { FrontendLocaleData } from "../data/translation";
+import type { HomeAssistant } from "../types";
+import type { HaSelect } from "./ha-select";
import type { PropertyValues } from "lit";
+
+import "./ha-list-item";
+import "./ha-select";
+
import { css, html, LitElement } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../common/dom/fire_event";
import { stopPropagation } from "../common/dom/stop_propagation";
import { formatLanguageCode } from "../common/language/format_language";
import { caseInsensitiveStringCompare } from "../common/string/compare";
-import type { FrontendLocaleData } from "../data/translation";
import { translationMetadata } from "../resources/translations-metadata";
-import type { HomeAssistant } from "../types";
-import "./ha-list-item";
-import "./ha-select";
-import type { HaSelect } from "./ha-select";
export const getLanguageOptions = (
languages: string[],
diff --git a/src/components/ha-lawn_mower-action-button.ts b/src/components/ha-lawn_mower-action-button.ts
index 95a4314362..e34caccca4 100644
--- a/src/components/ha-lawn_mower-action-button.ts
+++ b/src/components/ha-lawn_mower-action-button.ts
@@ -1,10 +1,13 @@
+import type { LawnMowerEntity, LawnMowerEntityState } from "../data/lawn_mower";
+import type { HomeAssistant } from "../types";
+
import "@material/mwc-button";
+
import { LitElement, css, html } from "lit";
import { customElement, property } from "lit/decorators";
+
import { supportsFeature } from "../common/entity/supports-feature";
-import type { LawnMowerEntity, LawnMowerEntityState } from "../data/lawn_mower";
import { LawnMowerEntityFeature } from "../data/lawn_mower";
-import type { HomeAssistant } from "../types";
interface LawnMowerAction {
action: string;
diff --git a/src/components/ha-list-item.ts b/src/components/ha-list-item.ts
index bd405619c2..652a1f3c80 100644
--- a/src/components/ha-list-item.ts
+++ b/src/components/ha-list-item.ts
@@ -1,6 +1,8 @@
-import { ListItemBase } from "@material/mwc-list/mwc-list-item-base";
-import { styles } from "@material/mwc-list/mwc-list-item.css";
import type { CSSResultGroup } from "lit";
+
+import { styles } from "@material/mwc-list/mwc-list-item.css";
+
+import { ListItemBase } from "@material/mwc-list/mwc-list-item-base";
import { css } from "lit";
import { customElement } from "lit/decorators";
diff --git a/src/components/ha-logo-svg.ts b/src/components/ha-logo-svg.ts
index 63ad3db21a..42a7b1ad8a 100644
--- a/src/components/ha-logo-svg.ts
+++ b/src/components/ha-logo-svg.ts
@@ -1,4 +1,5 @@
import type { TemplateResult } from "lit";
+
import { css, LitElement, html } from "lit";
import { customElement } from "lit/decorators";
diff --git a/src/components/ha-markdown-element.ts b/src/components/ha-markdown-element.ts
index 1c642df869..13557ecc06 100644
--- a/src/components/ha-markdown-element.ts
+++ b/src/components/ha-markdown-element.ts
@@ -1,7 +1,9 @@
import type { PropertyValues } from "lit";
+
import { ReactiveElement } from "lit";
import { customElement, property } from "lit/decorators";
import hash from "object-hash";
+
import { fireEvent } from "../common/dom/fire_event";
import { renderMarkdown } from "../resources/render-markdown";
import { CacheManager } from "../util/cache-manager";
diff --git a/src/components/ha-markdown.ts b/src/components/ha-markdown.ts
index 14d26fa2cd..723200ce33 100644
--- a/src/components/ha-markdown.ts
+++ b/src/components/ha-markdown.ts
@@ -1,6 +1,7 @@
+import "./ha-markdown-element";
+
import { css, html, LitElement, nothing, type CSSResultGroup } from "lit";
import { customElement, property } from "lit/decorators";
-import "./ha-markdown-element";
@customElement("ha-markdown")
export class HaMarkdown extends LitElement {
diff --git a/src/components/ha-md-button-menu.ts b/src/components/ha-md-button-menu.ts
index ce4e39f173..48e462a9ef 100644
--- a/src/components/ha-md-button-menu.ts
+++ b/src/components/ha-md-button-menu.ts
@@ -1,12 +1,15 @@
+import type { HaIconButton } from "./ha-icon-button";
+import type { HaMenu } from "./ha-menu";
import type { Button } from "@material/mwc-button";
import type { TemplateResult } from "lit";
+
+import "./ha-menu";
+
import { css, html, LitElement } from "lit";
import { customElement, property, query } from "lit/decorators";
-import { FOCUS_TARGET } from "../dialogs/make-dialog-manager";
+
import { fireEvent } from "../common/dom/fire_event";
-import type { HaIconButton } from "./ha-icon-button";
-import "./ha-menu";
-import type { HaMenu } from "./ha-menu";
+import { FOCUS_TARGET } from "../dialogs/make-dialog-manager";
@customElement("ha-md-button-menu")
export class HaMdButtonMenu extends LitElement {
diff --git a/src/components/ha-menu-button.ts b/src/components/ha-menu-button.ts
index 7e74b3cdf4..ae5ed1113c 100644
--- a/src/components/ha-menu-button.ts
+++ b/src/components/ha-menu-button.ts
@@ -1,11 +1,14 @@
-import { mdiMenu } from "@mdi/js";
+import type { HomeAssistant } from "../types";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+
+import "./ha-icon-button";
+
+import { mdiMenu } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../common/dom/fire_event";
import { subscribeNotifications } from "../data/persistent_notification";
-import type { HomeAssistant } from "../types";
-import "./ha-icon-button";
@customElement("ha-menu-button")
class HaMenuButton extends LitElement {
diff --git a/src/components/ha-menu.ts b/src/components/ha-menu.ts
index 053d012163..60b81bdbcd 100644
--- a/src/components/ha-menu.ts
+++ b/src/components/ha-menu.ts
@@ -1,12 +1,13 @@
-import { MdMenu } from "@material/web/menu/menu";
+import type { HaMdMenuItem } from "./ha-md-menu-item";
import type { CloseMenuEvent } from "@material/web/menu/menu";
+
import {
CloseReason,
KeydownCloseKey,
} from "@material/web/menu/internal/controllers/shared";
+import { MdMenu } from "@material/web/menu/menu";
import { css } from "lit";
import { customElement } from "lit/decorators";
-import type { HaMdMenuItem } from "./ha-md-menu-item";
@customElement("ha-menu")
export class HaMenu extends MdMenu {
diff --git a/src/components/ha-metric.ts b/src/components/ha-metric.ts
index d212162e9c..1c1768f6c5 100644
--- a/src/components/ha-metric.ts
+++ b/src/components/ha-metric.ts
@@ -1,10 +1,13 @@
import type { TemplateResult } from "lit";
+
+import "./ha-bar";
+import "./ha-settings-row";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { roundWithOneDecimal } from "../util/calculate";
-import "./ha-bar";
-import "./ha-settings-row";
@customElement("ha-metric")
class HaMetric extends LitElement {
diff --git a/src/components/ha-mount-picker.ts b/src/components/ha-mount-picker.ts
index 7dfc1495a6..cd1b4adf3c 100644
--- a/src/components/ha-mount-picker.ts
+++ b/src/components/ha-mount-picker.ts
@@ -1,23 +1,26 @@
-import { mdiBackupRestore, mdiFolder, mdiHarddisk, mdiPlayBox } from "@mdi/js";
+import type { SupervisorMounts } from "../data/supervisor/mounts";
+import type { HomeAssistant } from "../types";
+import type { HaSelect } from "./ha-select";
import type { CSSResultGroup } from "lit";
+
+import "./ha-alert";
+import "./ha-list-item";
+import "./ha-select";
+
+import { mdiBackupRestore, mdiFolder, mdiHarddisk, mdiPlayBox } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { isComponentLoaded } from "../common/config/is_component_loaded";
import { fireEvent } from "../common/dom/fire_event";
import { stopPropagation } from "../common/dom/stop_propagation";
import { caseInsensitiveStringCompare } from "../common/string/compare";
-import type { SupervisorMounts } from "../data/supervisor/mounts";
import {
fetchSupervisorMounts,
SupervisorMountType,
SupervisorMountUsage,
} from "../data/supervisor/mounts";
-import type { HomeAssistant } from "../types";
-import "./ha-alert";
-import "./ha-list-item";
-import "./ha-select";
-import type { HaSelect } from "./ha-select";
const _BACKUP_DATA_DISK_ = "/backup";
diff --git a/src/components/ha-multi-textfield.ts b/src/components/ha-multi-textfield.ts
index dd1d46b8b2..93a4b143ec 100644
--- a/src/components/ha-multi-textfield.ts
+++ b/src/components/ha-multi-textfield.ts
@@ -1,15 +1,18 @@
-import { mdiDeleteOutline, mdiPlus } from "@mdi/js";
-import type { CSSResultGroup } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../common/dom/fire_event";
-import { haStyle } from "../resources/styles";
import type { HomeAssistant } from "../types";
+import type { HaTextField } from "./ha-textfield";
+import type { CSSResultGroup } from "lit";
+
import "./ha-button";
import "./ha-icon-button";
-import "./ha-textfield";
import "./ha-input-helper-text";
-import type { HaTextField } from "./ha-textfield";
+import "./ha-textfield";
+
+import { mdiDeleteOutline, mdiPlus } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../common/dom/fire_event";
+import { haStyle } from "../resources/styles";
@customElement("ha-multi-textfield")
class HaMultiTextField extends LitElement {
diff --git a/src/components/ha-navigation-list.ts b/src/components/ha-navigation-list.ts
index fd00db4609..f2bdb03c20 100644
--- a/src/components/ha-navigation-list.ts
+++ b/src/components/ha-navigation-list.ts
@@ -1,14 +1,16 @@
+import type { PageNavigation } from "../layouts/hass-tabs-subpage";
+import type { HomeAssistant } from "../types";
import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "./ha-icon-next";
+import "./ha-list-item";
+import "./ha-md-list";
+import "./ha-md-list-item";
+import "./ha-svg-icon";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
-import type { PageNavigation } from "../layouts/hass-tabs-subpage";
-import type { HomeAssistant } from "../types";
-import "./ha-icon-next";
-import "./ha-list-item";
-import "./ha-svg-icon";
-import "./ha-md-list";
-import "./ha-md-list-item";
@customElement("ha-navigation-list")
class HaNavigationList extends LitElement {
diff --git a/src/components/ha-navigation-picker.ts b/src/components/ha-navigation-picker.ts
index c89c274144..7ad1530964 100644
--- a/src/components/ha-navigation-picker.ts
+++ b/src/components/ha-navigation-picker.ts
@@ -1,16 +1,19 @@
-import "@material/mwc-list/mwc-list-item";
+import type { LovelaceViewRawConfig } from "../data/lovelace/config/view";
+import type { HomeAssistant, PanelInfo, ValueChangedEvent } from "../types";
+import type { HaComboBox } from "./ha-combo-box";
import type { ComboBoxLitRenderer } from "@vaadin/combo-box/lit";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "./ha-combo-box";
+import "./ha-icon";
+import "@material/mwc-list/mwc-list-item";
+
import { css, html, LitElement } from "lit";
import { customElement, property, query, state } from "lit/decorators";
+
import { fireEvent } from "../common/dom/fire_event";
import { titleCase } from "../common/string/title-case";
import { fetchConfig } from "../data/lovelace/config/types";
-import type { LovelaceViewRawConfig } from "../data/lovelace/config/view";
-import type { HomeAssistant, PanelInfo, ValueChangedEvent } from "../types";
-import "./ha-combo-box";
-import type { HaComboBox } from "./ha-combo-box";
-import "./ha-icon";
interface NavigationItem {
path: string;
diff --git a/src/components/ha-network.ts b/src/components/ha-network.ts
index 00c8f521c7..e26582d407 100644
--- a/src/components/ha-network.ts
+++ b/src/components/ha-network.ts
@@ -1,21 +1,24 @@
-import { mdiStar } from "@mdi/js";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../common/dom/fire_event";
import type {
Adapter,
IPv4ConfiguredAddress,
IPv6ConfiguredAddress,
NetworkConfig,
} from "../data/network";
-import { haStyle } from "../resources/styles";
import type { HomeAssistant } from "../types";
-import "./ha-checkbox";
import type { HaCheckbox } from "./ha-checkbox";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "./ha-checkbox";
import "./ha-settings-row";
import "./ha-svg-icon";
+import { mdiStar } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../common/dom/fire_event";
+import { haStyle } from "../resources/styles";
+
const format_addresses = (
addresses: IPv6ConfiguredAddress[] | IPv4ConfiguredAddress[]
): TemplateResult =>
diff --git a/src/components/ha-outlined-text-field.ts b/src/components/ha-outlined-text-field.ts
index 026bce0b25..de51affce7 100644
--- a/src/components/ha-outlined-text-field.ts
+++ b/src/components/ha-outlined-text-field.ts
@@ -1,8 +1,9 @@
+import "./ha-outlined-field";
+
import { MdOutlinedTextField } from "@material/web/textfield/outlined-text-field";
import { css } from "lit";
import { customElement } from "lit/decorators";
import { literal } from "lit/static-html";
-import "./ha-outlined-field";
@customElement("ha-outlined-text-field")
export class HaOutlinedTextField extends MdOutlinedTextField {
diff --git a/src/components/ha-password-field.ts b/src/components/ha-password-field.ts
index 9b298f4f26..79e72df883 100644
--- a/src/components/ha-password-field.ts
+++ b/src/components/ha-password-field.ts
@@ -1,4 +1,10 @@
+import type { HomeAssistant } from "../types";
+import type { HaTextField } from "./ha-textfield";
import type { TextAreaCharCounter } from "@material/mwc-textfield/mwc-textfield-base";
+
+import "./ha-icon-button";
+import "./ha-textfield";
+
import { mdiEye, mdiEyeOff } from "@mdi/js";
import { LitElement, css, html } from "lit";
import {
@@ -8,10 +14,6 @@ import {
query,
state,
} from "lit/decorators";
-import type { HomeAssistant } from "../types";
-import "./ha-icon-button";
-import "./ha-textfield";
-import type { HaTextField } from "./ha-textfield";
@customElement("ha-password-field")
export class HaPasswordField extends LitElement {
diff --git a/src/components/ha-picture-upload.ts b/src/components/ha-picture-upload.ts
index a5edd4fbce..5417cdbc64 100644
--- a/src/components/ha-picture-upload.ts
+++ b/src/components/ha-picture-upload.ts
@@ -1,10 +1,16 @@
-import { mdiImagePlus } from "@mdi/js";
+import type { MediaPickedEvent } from "../data/media-player";
+import type { CropOptions } from "../dialogs/image-cropper-dialog/show-image-cropper-dialog";
+import type { HomeAssistant } from "../types";
import type { TemplateResult } from "lit";
+
+import "./ha-button";
+import "./ha-file-upload";
+
+import { mdiImagePlus } from "@mdi/js";
import { LitElement, css, html } from "lit";
import { customElement, property, state } from "lit/decorators";
-import type { MediaPickedEvent } from "../data/media-player";
+
import { fireEvent } from "../common/dom/fire_event";
-import { haStyle } from "../resources/styles";
import {
MEDIA_PREFIX,
getIdFromUrl,
@@ -13,11 +19,8 @@ import {
getImageData,
} from "../data/image_upload";
import { showAlertDialog } from "../dialogs/generic/show-dialog-box";
-import type { CropOptions } from "../dialogs/image-cropper-dialog/show-image-cropper-dialog";
import { showImageCropperDialog } from "../dialogs/image-cropper-dialog/show-image-cropper-dialog";
-import type { HomeAssistant } from "../types";
-import "./ha-button";
-import "./ha-file-upload";
+import { haStyle } from "../resources/styles";
import { showMediaBrowserDialog } from "./media-player/show-media-browser-dialog";
@customElement("ha-picture-upload")
diff --git a/src/components/ha-push-notifications-toggle.ts b/src/components/ha-push-notifications-toggle.ts
index d839e4739c..53aa73a63e 100644
--- a/src/components/ha-push-notifications-toggle.ts
+++ b/src/components/ha-push-notifications-toggle.ts
@@ -1,12 +1,15 @@
+import type { HomeAssistant } from "../types";
+import type { HaSwitch } from "./ha-switch";
import type { TemplateResult } from "lit";
+
+import "./ha-switch";
+
import { LitElement, html } from "lit";
import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../common/dom/fire_event";
import { getAppKey } from "../data/notify_html5";
import { showPromptDialog } from "../dialogs/generic/show-dialog-box";
-import type { HaSwitch } from "./ha-switch";
-import type { HomeAssistant } from "../types";
-import { fireEvent } from "../common/dom/fire_event";
-import "./ha-switch";
export const pushSupported =
"serviceWorker" in navigator &&
diff --git a/src/components/ha-qr-code.ts b/src/components/ha-qr-code.ts
index 31499f0a20..0cac4940e6 100644
--- a/src/components/ha-qr-code.ts
+++ b/src/components/ha-qr-code.ts
@@ -1,8 +1,11 @@
import type { PropertyValues } from "lit";
+
+import "./ha-alert";
+
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import QRCode from "qrcode";
-import "./ha-alert";
+
import { rgb2hex } from "../common/color/convert-color";
@customElement("ha-qr-code")
diff --git a/src/components/ha-qr-scanner.ts b/src/components/ha-qr-scanner.ts
index 1aca4f3982..2a93261406 100644
--- a/src/components/ha-qr-scanner.ts
+++ b/src/components/ha-qr-scanner.ts
@@ -1,25 +1,28 @@
-import "@material/mwc-button/mwc-button";
-import { mdiCamera } from "@mdi/js";
+import type { LocalizeFunc } from "../common/translations/localize";
+import type { HomeAssistant } from "../types";
+import type { HaTextField } from "./ha-textfield";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
// The BarcodeDetector Web API is not yet supported in all browsers,
// and "qr-scanner" defaults to a suboptimal implementation if it is not available.
// The following import makes a better implementation available that is based on a
// WebAssembly port of ZXing:
-import { prepareZXingModule } from "barcode-detector";
import type QrScanner from "qr-scanner";
-import { fireEvent } from "../common/dom/fire_event";
-import { stopPropagation } from "../common/dom/stop_propagation";
-import type { LocalizeFunc } from "../common/translations/localize";
-import { addExternalBarCodeListener } from "../external_app/external_app_entrypoint";
-import type { HomeAssistant } from "../types";
+
import "./ha-alert";
import "./ha-button-menu";
import "./ha-list-item";
import "./ha-textfield";
-import type { HaTextField } from "./ha-textfield";
+import "@material/mwc-button/mwc-button";
+
+import { mdiCamera } from "@mdi/js";
+import { prepareZXingModule } from "barcode-detector";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { fireEvent } from "../common/dom/fire_event";
+import { stopPropagation } from "../common/dom/stop_propagation";
+import { addExternalBarCodeListener } from "../external_app/external_app_entrypoint";
prepareZXingModule({
overrides: {
diff --git a/src/components/ha-radio.ts b/src/components/ha-radio.ts
index f551d4fedc..ee1e0ab9a5 100644
--- a/src/components/ha-radio.ts
+++ b/src/components/ha-radio.ts
@@ -1,5 +1,6 @@
-import { RadioBase } from "@material/mwc-radio/mwc-radio-base";
import { styles } from "@material/mwc-radio/mwc-radio.css";
+
+import { RadioBase } from "@material/mwc-radio/mwc-radio-base";
import { css } from "lit";
import { customElement } from "lit/decorators";
diff --git a/src/components/ha-related-items.ts b/src/components/ha-related-items.ts
index 7cd3bfd2d0..4d51bc5894 100644
--- a/src/components/ha-related-items.ts
+++ b/src/components/ha-related-items.ts
@@ -1,30 +1,33 @@
+import type { Blueprints } from "../data/blueprint";
+import type { ConfigEntry } from "../data/config_entries";
+import type { ItemType, RelatedResult } from "../data/search";
+import type { HomeAssistant } from "../types";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "./ha-icon-next";
+import "./ha-list-item";
+import "./ha-state-icon";
+import "./ha-switch";
import "@material/mwc-list/mwc-list";
+
import {
mdiAlertCircleOutline,
mdiDevices,
mdiPaletteSwatch,
mdiTextureBox,
} from "@mdi/js";
-import type { CSSResultGroup, PropertyValues } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../common/dom/fire_event";
import { caseInsensitiveStringCompare } from "../common/string/compare";
-import type { Blueprints } from "../data/blueprint";
import { fetchBlueprints } from "../data/blueprint";
-import type { ConfigEntry } from "../data/config_entries";
import { getConfigEntries } from "../data/config_entries";
-import type { ItemType, RelatedResult } from "../data/search";
import { findRelated } from "../data/search";
import { haStyle } from "../resources/styles";
-import type { HomeAssistant } from "../types";
import { brandsUrl } from "../util/brands-url";
-import "./ha-icon-next";
-import "./ha-list-item";
-import "./ha-state-icon";
-import "./ha-switch";
@customElement("ha-related-items")
export class HaRelatedItems extends LitElement {
diff --git a/src/components/ha-relative-time.ts b/src/components/ha-relative-time.ts
index cb9cd7d7b1..7125f828e7 100644
--- a/src/components/ha-relative-time.ts
+++ b/src/components/ha-relative-time.ts
@@ -1,10 +1,12 @@
-import { parseISO } from "date-fns";
+import type { HomeAssistant } from "../types";
import type { PropertyValues } from "lit";
+
+import { parseISO } from "date-fns";
import { ReactiveElement } from "lit";
import { customElement, property } from "lit/decorators";
+
import { relativeTime } from "../common/datetime/relative_time";
import { capitalizeFirstLetter } from "../common/string/capitalize-first-letter";
-import type { HomeAssistant } from "../types";
@customElement("ha-relative-time")
class HaRelativeTime extends ReactiveElement {
diff --git a/src/components/ha-select-box.ts b/src/components/ha-select-box.ts
index a53506df74..8cbde4e59a 100644
--- a/src/components/ha-select-box.ts
+++ b/src/components/ha-select-box.ts
@@ -1,13 +1,16 @@
-import { customElement, property } from "lit/decorators";
-import { css, html, LitElement, nothing } from "lit";
+import type { HomeAssistant } from "../types";
+import type { HaRadio } from "./ha-radio";
+
import "./ha-radio";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { styleMap } from "lit/directives/style-map";
-import type { HaRadio } from "./ha-radio";
+
import { fireEvent } from "../common/dom/fire_event";
-import type { HomeAssistant } from "../types";
-import { computeRTL } from "../common/util/compute_rtl";
import { stopPropagation } from "../common/dom/stop_propagation";
+import { computeRTL } from "../common/util/compute_rtl";
interface SelectBoxOptionImage {
src: string;
diff --git a/src/components/ha-select.ts b/src/components/ha-select.ts
index 7f240ee525..d540598078 100644
--- a/src/components/ha-select.ts
+++ b/src/components/ha-select.ts
@@ -1,11 +1,14 @@
-import { SelectBase } from "@material/mwc-select/mwc-select-base";
import { styles } from "@material/mwc-select/mwc-select.css";
+
+import "./ha-icon-button";
+
+import { SelectBase } from "@material/mwc-select/mwc-select-base";
import { mdiClose } from "@mdi/js";
import { css, html, nothing } from "lit";
import { customElement, property } from "lit/decorators";
+
import { debounce } from "../common/util/debounce";
import { nextRender } from "../common/util/render-status";
-import "./ha-icon-button";
@customElement("ha-select")
export class HaSelect extends SelectBase {
diff --git a/src/components/ha-selector/ha-selector-action.ts b/src/components/ha-selector/ha-selector-action.ts
index 255340b787..e96494ddcf 100644
--- a/src/components/ha-selector/ha-selector-action.ts
+++ b/src/components/ha-selector/ha-selector-action.ts
@@ -1,11 +1,14 @@
+import type { Action } from "../../data/script";
+import type { ActionSelector } from "../../data/selector";
+import type { HomeAssistant } from "../../types";
+
+import "../../panels/config/automation/action/ha-automation-action";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import memoizeOne from "memoize-one";
-import type { Action } from "../../data/script";
+
import { migrateAutomationAction } from "../../data/script";
-import type { ActionSelector } from "../../data/selector";
-import "../../panels/config/automation/action/ha-automation-action";
-import type { HomeAssistant } from "../../types";
@customElement("ha-selector-action")
export class HaActionSelector extends LitElement {
diff --git a/src/components/ha-selector/ha-selector-addon.ts b/src/components/ha-selector/ha-selector-addon.ts
index 8390c8748f..a9640b5100 100644
--- a/src/components/ha-selector/ha-selector-addon.ts
+++ b/src/components/ha-selector/ha-selector-addon.ts
@@ -1,9 +1,11 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
import type { AddonSelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
+
import "../ha-addon-picker";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("ha-selector-addon")
export class HaAddonSelector extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-selector/ha-selector-area.ts b/src/components/ha-selector/ha-selector-area.ts
index 1966214ab3..31a91ad2e3 100644
--- a/src/components/ha-selector/ha-selector-area.ts
+++ b/src/components/ha-selector/ha-selector-area.ts
@@ -1,24 +1,27 @@
+import type { ConfigEntry } from "../../data/config_entries";
+import type { DeviceRegistryEntry } from "../../data/device_registry";
+import type { EntitySources } from "../../data/entity_sources";
+import type { AreaSelector } from "../../data/selector";
+import type { HomeAssistant } from "../../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
+
+import "../ha-area-picker";
+import "../ha-areas-picker";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { ensureArray } from "../../common/array/ensure-array";
-import type { DeviceRegistryEntry } from "../../data/device_registry";
-import { getDeviceIntegrationLookup } from "../../data/device_registry";
import { fireEvent } from "../../common/dom/fire_event";
-import type { EntitySources } from "../../data/entity_sources";
-import { fetchEntitySourcesWithCache } from "../../data/entity_sources";
-import type { AreaSelector } from "../../data/selector";
-import type { ConfigEntry } from "../../data/config_entries";
import { getConfigEntries } from "../../data/config_entries";
+import { getDeviceIntegrationLookup } from "../../data/device_registry";
+import { fetchEntitySourcesWithCache } from "../../data/entity_sources";
import {
filterSelectorDevices,
filterSelectorEntities,
} from "../../data/selector";
-import type { HomeAssistant } from "../../types";
-import "../ha-area-picker";
-import "../ha-areas-picker";
@customElement("ha-selector-area")
export class HaAreaSelector extends LitElement {
diff --git a/src/components/ha-selector/ha-selector-areas-display.ts b/src/components/ha-selector/ha-selector-areas-display.ts
index d6b02593a3..1e6289769a 100644
--- a/src/components/ha-selector/ha-selector-areas-display.ts
+++ b/src/components/ha-selector/ha-selector-areas-display.ts
@@ -1,9 +1,11 @@
-import { LitElement, html } from "lit";
-import { customElement, property } from "lit/decorators";
import type { AreasDisplaySelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
+
import "../ha-areas-display-editor";
+import { LitElement, html } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("ha-selector-areas_display")
export class HaAreasDisplaySelector extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-selector/ha-selector-assist-pipeline.ts b/src/components/ha-selector/ha-selector-assist-pipeline.ts
index 0bcdac4b4d..0208cfb754 100644
--- a/src/components/ha-selector/ha-selector-assist-pipeline.ts
+++ b/src/components/ha-selector/ha-selector-assist-pipeline.ts
@@ -1,9 +1,11 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
import type { AssistPipelineSelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
+
import "../ha-assist-pipeline-picker";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("ha-selector-assist_pipeline")
export class HaAssistPipelineSelector extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-selector/ha-selector-attribute.ts b/src/components/ha-selector/ha-selector-attribute.ts
index 5296bc4be4..97a3f8c506 100644
--- a/src/components/ha-selector/ha-selector-attribute.ts
+++ b/src/components/ha-selector/ha-selector-attribute.ts
@@ -1,11 +1,14 @@
-import type { PropertyValues } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
import type { AttributeSelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
+import type { PropertyValues } from "lit";
+
import "../entity/ha-entity-attribute-picker";
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
+
@customElement("ha-selector-attribute")
export class HaSelectorAttribute extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-selector/ha-selector-background.ts b/src/components/ha-selector/ha-selector-background.ts
index 1132927f0e..f191c7eebe 100644
--- a/src/components/ha-selector/ha-selector-background.ts
+++ b/src/components/ha-selector/ha-selector-background.ts
@@ -1,11 +1,14 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
import type { BackgroundSelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
-import "../ha-picture-upload";
-import "../ha-alert";
import type { HaPictureUpload } from "../ha-picture-upload";
+
+import "../ha-alert";
+import "../ha-picture-upload";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
import { URL_PREFIX } from "../../data/image_upload";
@customElement("ha-selector-background")
diff --git a/src/components/ha-selector/ha-selector-backup-location.ts b/src/components/ha-selector/ha-selector-backup-location.ts
index 934a053f58..d9abbf99c8 100644
--- a/src/components/ha-selector/ha-selector-backup-location.ts
+++ b/src/components/ha-selector/ha-selector-backup-location.ts
@@ -1,9 +1,11 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
import type { BackupLocationSelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
+
import "../ha-mount-picker";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("ha-selector-backup_location")
export class HaBackupLocationSelector extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-selector/ha-selector-boolean.ts b/src/components/ha-selector/ha-selector-boolean.ts
index bffa9ca18a..24d09afb6b 100644
--- a/src/components/ha-selector/ha-selector-boolean.ts
+++ b/src/components/ha-selector/ha-selector-boolean.ts
@@ -1,10 +1,13 @@
+import type { HomeAssistant } from "../../types";
+
+import "../ha-formfield";
+import "../ha-input-helper-text";
+import "../ha-switch";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
+
import { fireEvent } from "../../common/dom/fire_event";
-import type { HomeAssistant } from "../../types";
-import "../ha-formfield";
-import "../ha-switch";
-import "../ha-input-helper-text";
@customElement("ha-selector-boolean")
export class HaBooleanSelector extends LitElement {
diff --git a/src/components/ha-selector/ha-selector-button-toggle.ts b/src/components/ha-selector/ha-selector-button-toggle.ts
index 727dfaef82..a65643844b 100644
--- a/src/components/ha-selector/ha-selector-button-toggle.ts
+++ b/src/components/ha-selector/ha-selector-button-toggle.ts
@@ -1,11 +1,14 @@
-import "@material/mwc-list/mwc-list-item";
-import { LitElement, css, html } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
-import { caseInsensitiveStringCompare } from "../../common/string/compare";
import type { ButtonToggleSelector, SelectOption } from "../../data/selector";
import type { HomeAssistant, ToggleButton } from "../../types";
+
import "../ha-button-toggle-group";
+import "@material/mwc-list/mwc-list-item";
+
+import { LitElement, css, html } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
+import { caseInsensitiveStringCompare } from "../../common/string/compare";
@customElement("ha-selector-button_toggle")
export class HaButtonToggleSelector extends LitElement {
diff --git a/src/components/ha-selector/ha-selector-color-rgb.ts b/src/components/ha-selector/ha-selector-color-rgb.ts
index d59406c9e5..f444580bc2 100644
--- a/src/components/ha-selector/ha-selector-color-rgb.ts
+++ b/src/components/ha-selector/ha-selector-color-rgb.ts
@@ -1,11 +1,14 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { hex2rgb, rgb2hex } from "../../common/color/convert-color";
-import { fireEvent } from "../../common/dom/fire_event";
import type { ColorRGBSelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
+
import "../ha-textfield";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { hex2rgb, rgb2hex } from "../../common/color/convert-color";
+import { fireEvent } from "../../common/dom/fire_event";
+
@customElement("ha-selector-color_rgb")
export class HaColorRGBSelector extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-selector/ha-selector-color-temp.ts b/src/components/ha-selector/ha-selector-color-temp.ts
index ef59e77996..e3787503f3 100644
--- a/src/components/ha-selector/ha-selector-color-temp.ts
+++ b/src/components/ha-selector/ha-selector-color-temp.ts
@@ -1,17 +1,20 @@
+import type { ColorTempSelector } from "../../data/selector";
+import type { HomeAssistant } from "../../types";
+
+import "../ha-labeled-slider";
+
import { html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
import memoizeOne from "memoize-one";
-import { fireEvent } from "../../common/dom/fire_event";
-import type { ColorTempSelector } from "../../data/selector";
-import type { HomeAssistant } from "../../types";
-import "../ha-labeled-slider";
-import { generateColorTemperatureGradient } from "../../dialogs/more-info/components/lights/light-color-temp-picker";
+
import {
DEFAULT_MAX_KELVIN,
DEFAULT_MIN_KELVIN,
mired2kelvin,
} from "../../common/color/convert-light-color";
+import { fireEvent } from "../../common/dom/fire_event";
+import { generateColorTemperatureGradient } from "../../dialogs/more-info/components/lights/light-color-temp-picker";
@customElement("ha-selector-color_temp")
export class HaColorTempSelector extends LitElement {
diff --git a/src/components/ha-selector/ha-selector-condition.ts b/src/components/ha-selector/ha-selector-condition.ts
index dafca3f206..8458cbfb03 100644
--- a/src/components/ha-selector/ha-selector-condition.ts
+++ b/src/components/ha-selector/ha-selector-condition.ts
@@ -1,10 +1,12 @@
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
import type { Condition } from "../../data/automation";
import type { ConditionSelector } from "../../data/selector";
-import "../../panels/config/automation/condition/ha-automation-condition";
import type { HomeAssistant } from "../../types";
+import "../../panels/config/automation/condition/ha-automation-condition";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("ha-selector-condition")
export class HaConditionSelector extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-selector/ha-selector-config-entry.ts b/src/components/ha-selector/ha-selector-config-entry.ts
index daf9c8a905..8e2919c181 100644
--- a/src/components/ha-selector/ha-selector-config-entry.ts
+++ b/src/components/ha-selector/ha-selector-config-entry.ts
@@ -1,9 +1,11 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
import type { ConfigEntrySelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
+
import "../ha-config-entry-picker";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("ha-selector-config_entry")
export class HaConfigEntrySelector extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-selector/ha-selector-constant.ts b/src/components/ha-selector/ha-selector-constant.ts
index ed5acb6f3f..1ab061a54b 100644
--- a/src/components/ha-selector/ha-selector-constant.ts
+++ b/src/components/ha-selector/ha-selector-constant.ts
@@ -1,6 +1,7 @@
+import type { ConstantSelector } from "../../data/selector";
+
import { LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
-import type { ConstantSelector } from "../../data/selector";
@customElement("ha-selector-constant")
export class HaSelectorConstant extends LitElement {
diff --git a/src/components/ha-selector/ha-selector-conversation-agent.ts b/src/components/ha-selector/ha-selector-conversation-agent.ts
index 0c035cdbb3..108387fe59 100644
--- a/src/components/ha-selector/ha-selector-conversation-agent.ts
+++ b/src/components/ha-selector/ha-selector-conversation-agent.ts
@@ -1,9 +1,11 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
import type { ConversationAgentSelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
+
import "../ha-conversation-agent-picker";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("ha-selector-conversation_agent")
export class HaConversationAgentSelector extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-selector/ha-selector-country.ts b/src/components/ha-selector/ha-selector-country.ts
index 277d16458b..416160e7e9 100644
--- a/src/components/ha-selector/ha-selector-country.ts
+++ b/src/components/ha-selector/ha-selector-country.ts
@@ -1,9 +1,11 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
import type { CountrySelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
+
import "../ha-country-picker";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("ha-selector-country")
export class HaCountrySelector extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-selector/ha-selector-date.ts b/src/components/ha-selector/ha-selector-date.ts
index f1fa8b6bf1..db2a0c3853 100644
--- a/src/components/ha-selector/ha-selector-date.ts
+++ b/src/components/ha-selector/ha-selector-date.ts
@@ -1,9 +1,11 @@
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
import type { DateSelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
+
import "../ha-date-input";
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("ha-selector-date")
export class HaDateSelector extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-selector/ha-selector-datetime.ts b/src/components/ha-selector/ha-selector-datetime.ts
index 1c5e2bf8db..9903d00851 100644
--- a/src/components/ha-selector/ha-selector-datetime.ts
+++ b/src/components/ha-selector/ha-selector-datetime.ts
@@ -1,14 +1,17 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property, query } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
import type { DateTimeSelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
-import "../ha-date-input";
import type { HaDateInput } from "../ha-date-input";
-import "../ha-time-input";
-import "../ha-input-helper-text";
import type { HaTimeInput } from "../ha-time-input";
+import "../ha-date-input";
+import "../ha-input-helper-text";
+import "../ha-time-input";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, query } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
+
@customElement("ha-selector-datetime")
export class HaDateTimeSelector extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-selector/ha-selector-device.ts b/src/components/ha-selector/ha-selector-device.ts
index 0ae3ca0fc6..60214c2907 100644
--- a/src/components/ha-selector/ha-selector-device.ts
+++ b/src/components/ha-selector/ha-selector-device.ts
@@ -1,24 +1,27 @@
+import type { ConfigEntry } from "../../data/config_entries";
+import type { DeviceRegistryEntry } from "../../data/device_registry";
+import type { EntitySources } from "../../data/entity_sources";
+import type { DeviceSelector } from "../../data/selector";
+import type { HomeAssistant } from "../../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
+
+import "../device/ha-device-picker";
+import "../device/ha-devices-picker";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { ensureArray } from "../../common/array/ensure-array";
import { fireEvent } from "../../common/dom/fire_event";
-import type { DeviceRegistryEntry } from "../../data/device_registry";
-import { getDeviceIntegrationLookup } from "../../data/device_registry";
-import type { EntitySources } from "../../data/entity_sources";
-import { fetchEntitySourcesWithCache } from "../../data/entity_sources";
-import type { DeviceSelector } from "../../data/selector";
-import type { ConfigEntry } from "../../data/config_entries";
import { getConfigEntries } from "../../data/config_entries";
+import { getDeviceIntegrationLookup } from "../../data/device_registry";
+import { fetchEntitySourcesWithCache } from "../../data/entity_sources";
import {
filterSelectorDevices,
filterSelectorEntities,
} from "../../data/selector";
-import type { HomeAssistant } from "../../types";
-import "../device/ha-device-picker";
-import "../device/ha-devices-picker";
@customElement("ha-selector-device")
export class HaDeviceSelector extends LitElement {
diff --git a/src/components/ha-selector/ha-selector-duration.ts b/src/components/ha-selector/ha-selector-duration.ts
index 7fa96adf3e..ccb40b7bd8 100644
--- a/src/components/ha-selector/ha-selector-duration.ts
+++ b/src/components/ha-selector/ha-selector-duration.ts
@@ -1,10 +1,12 @@
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
import type { DurationSelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
import type { HaDurationData } from "../ha-duration-input";
+
import "../ha-duration-input";
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("ha-selector-duration")
export class HaTimeDuration extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-selector/ha-selector-entity.ts b/src/components/ha-selector/ha-selector-entity.ts
index 1aae4adf78..1125c0c73b 100644
--- a/src/components/ha-selector/ha-selector-entity.ts
+++ b/src/components/ha-selector/ha-selector-entity.ts
@@ -1,19 +1,22 @@
+import type { EntitySources } from "../../data/entity_sources";
+import type { EntitySelector } from "../../data/selector";
+import type { HomeAssistant } from "../../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
+
+import "../entity/ha-entities-picker";
+import "../entity/ha-entity-picker";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { ensureArray } from "../../common/array/ensure-array";
import { fireEvent } from "../../common/dom/fire_event";
-import type { EntitySources } from "../../data/entity_sources";
import { fetchEntitySourcesWithCache } from "../../data/entity_sources";
-import type { EntitySelector } from "../../data/selector";
import {
filterSelectorEntities,
computeCreateDomains,
} from "../../data/selector";
-import type { HomeAssistant } from "../../types";
-import "../entity/ha-entities-picker";
-import "../entity/ha-entity-picker";
@customElement("ha-selector-entity")
export class HaEntitySelector extends LitElement {
diff --git a/src/components/ha-selector/ha-selector-file.ts b/src/components/ha-selector/ha-selector-file.ts
index 8bac633fc5..fc5251a832 100644
--- a/src/components/ha-selector/ha-selector-file.ts
+++ b/src/components/ha-selector/ha-selector-file.ts
@@ -1,13 +1,16 @@
-import { mdiFile } from "@mdi/js";
+import type { FileSelector } from "../../data/selector";
+import type { HomeAssistant } from "../../types";
import type { PropertyValues } from "lit";
+
+import "../ha-file-upload";
+
+import { mdiFile } from "@mdi/js";
import { html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../../common/dom/fire_event";
import { removeFile, uploadFile } from "../../data/file_upload";
-import type { FileSelector } from "../../data/selector";
import { showAlertDialog } from "../../dialogs/generic/show-dialog-box";
-import type { HomeAssistant } from "../../types";
-import "../ha-file-upload";
@customElement("ha-selector-file")
export class HaFileSelector extends LitElement {
diff --git a/src/components/ha-selector/ha-selector-floor.ts b/src/components/ha-selector/ha-selector-floor.ts
index f756a77426..e6ec5b0b1c 100644
--- a/src/components/ha-selector/ha-selector-floor.ts
+++ b/src/components/ha-selector/ha-selector-floor.ts
@@ -1,24 +1,27 @@
+import type { ConfigEntry } from "../../data/config_entries";
+import type { DeviceRegistryEntry } from "../../data/device_registry";
+import type { EntitySources } from "../../data/entity_sources";
+import type { FloorSelector } from "../../data/selector";
+import type { HomeAssistant } from "../../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
+
+import "../ha-floor-picker";
+import "../ha-floors-picker";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { ensureArray } from "../../common/array/ensure-array";
-import type { DeviceRegistryEntry } from "../../data/device_registry";
-import { getDeviceIntegrationLookup } from "../../data/device_registry";
import { fireEvent } from "../../common/dom/fire_event";
-import type { EntitySources } from "../../data/entity_sources";
-import { fetchEntitySourcesWithCache } from "../../data/entity_sources";
-import type { FloorSelector } from "../../data/selector";
-import type { ConfigEntry } from "../../data/config_entries";
import { getConfigEntries } from "../../data/config_entries";
+import { getDeviceIntegrationLookup } from "../../data/device_registry";
+import { fetchEntitySourcesWithCache } from "../../data/entity_sources";
import {
filterSelectorDevices,
filterSelectorEntities,
} from "../../data/selector";
-import type { HomeAssistant } from "../../types";
-import "../ha-floor-picker";
-import "../ha-floors-picker";
@customElement("ha-selector-floor")
export class HaFloorSelector extends LitElement {
diff --git a/src/components/ha-selector/ha-selector-icon.ts b/src/components/ha-selector/ha-selector-icon.ts
index c325055911..15b09947a8 100644
--- a/src/components/ha-selector/ha-selector-icon.ts
+++ b/src/components/ha-selector/ha-selector-icon.ts
@@ -1,12 +1,15 @@
+import type { IconSelector } from "../../data/selector";
+import type { HomeAssistant } from "../../types";
+
+import "../ha-icon-picker";
+import "../ha-state-icon";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import { until } from "lit/directives/until";
+
import { fireEvent } from "../../common/dom/fire_event";
import { entityIcon } from "../../data/icons";
-import type { IconSelector } from "../../data/selector";
-import type { HomeAssistant } from "../../types";
-import "../ha-icon-picker";
-import "../ha-state-icon";
@customElement("ha-selector-icon")
export class HaIconSelector extends LitElement {
diff --git a/src/components/ha-selector/ha-selector-image.ts b/src/components/ha-selector/ha-selector-image.ts
index 9619125aba..d021138175 100644
--- a/src/components/ha-selector/ha-selector-image.ts
+++ b/src/components/ha-selector/ha-selector-image.ts
@@ -1,15 +1,18 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
import type { ImageSelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
+import type { HaPictureUpload } from "../ha-picture-upload";
+
+import "../ha-formfield";
import "../ha-icon-button";
-import "../ha-textarea";
-import "../ha-textfield";
import "../ha-picture-upload";
import "../ha-radio";
-import "../ha-formfield";
-import type { HaPictureUpload } from "../ha-picture-upload";
+import "../ha-textarea";
+import "../ha-textfield";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
import { URL_PREFIX } from "../../data/image_upload";
@customElement("ha-selector-image")
diff --git a/src/components/ha-selector/ha-selector-label.ts b/src/components/ha-selector/ha-selector-label.ts
index 9ca9dc245a..b7adf88921 100644
--- a/src/components/ha-selector/ha-selector-label.ts
+++ b/src/components/ha-selector/ha-selector-label.ts
@@ -1,11 +1,14 @@
-import { LitElement, css, html } from "lit";
-import { customElement, property } from "lit/decorators";
-import { ensureArray } from "../../common/array/ensure-array";
-import { fireEvent } from "../../common/dom/fire_event";
import type { LabelSelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
+
import "../ha-labels-picker";
+import { LitElement, css, html } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { ensureArray } from "../../common/array/ensure-array";
+import { fireEvent } from "../../common/dom/fire_event";
+
@customElement("ha-selector-label")
export class HaLabelSelector extends LitElement {
@property({ attribute: false }) public hass?: HomeAssistant;
diff --git a/src/components/ha-selector/ha-selector-language.ts b/src/components/ha-selector/ha-selector-language.ts
index 361358a903..f0a02eb312 100644
--- a/src/components/ha-selector/ha-selector-language.ts
+++ b/src/components/ha-selector/ha-selector-language.ts
@@ -1,9 +1,11 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
import type { LanguageSelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
+
import "../ha-language-picker";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("ha-selector-language")
export class HaLanguageSelector extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-selector/ha-selector-location.ts b/src/components/ha-selector/ha-selector-location.ts
index c169d74e62..368e9f163e 100644
--- a/src/components/ha-selector/ha-selector-location.ts
+++ b/src/components/ha-selector/ha-selector-location.ts
@@ -1,7 +1,3 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../common/dom/fire_event";
import type {
LocationSelector,
LocationSelectorValue,
@@ -9,8 +5,15 @@ import type {
import type { HomeAssistant } from "../../types";
import type { SchemaUnion } from "../ha-form/types";
import type { MarkerLocation } from "../map/ha-locations-editor";
-import "../map/ha-locations-editor";
+
import "../ha-form/ha-form";
+import "../map/ha-locations-editor";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../common/dom/fire_event";
@customElement("ha-selector-location")
export class HaLocationSelector extends LitElement {
diff --git a/src/components/ha-selector/ha-selector-media.ts b/src/components/ha-selector/ha-selector-media.ts
index 6ea72b09f5..c519cfcf62 100644
--- a/src/components/ha-selector/ha-selector-media.ts
+++ b/src/components/ha-selector/ha-selector-media.ts
@@ -1,22 +1,25 @@
-import { mdiPlayBox, mdiPlus } from "@mdi/js";
+import type { MediaPickedEvent } from "../../data/media-player";
+import type { MediaSelector, MediaSelectorValue } from "../../data/selector";
+import type { HomeAssistant } from "../../types";
+import type { SchemaUnion } from "../ha-form/types";
import type { PropertyValues } from "lit";
+
+import "../ha-alert";
+import "../ha-form/ha-form";
+
+import { mdiPlayBox, mdiPlus } from "@mdi/js";
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { fireEvent } from "../../common/dom/fire_event";
import { supportsFeature } from "../../common/entity/supports-feature";
import { getSignedPath } from "../../data/auth";
-import type { MediaPickedEvent } from "../../data/media-player";
import {
MediaClassBrowserSettings,
MediaPlayerEntityFeature,
} from "../../data/media-player";
-import type { MediaSelector, MediaSelectorValue } from "../../data/selector";
-import type { HomeAssistant } from "../../types";
import { brandsUrl, extractDomainFromBrandUrl } from "../../util/brands-url";
-import "../ha-alert";
-import "../ha-form/ha-form";
-import type { SchemaUnion } from "../ha-form/types";
import { showMediaBrowserDialog } from "../media-player/show-media-browser-dialog";
const MANUAL_SCHEMA = [
diff --git a/src/components/ha-selector/ha-selector-navigation.ts b/src/components/ha-selector/ha-selector-navigation.ts
index 437c6019a6..95ee777ac4 100644
--- a/src/components/ha-selector/ha-selector-navigation.ts
+++ b/src/components/ha-selector/ha-selector-navigation.ts
@@ -1,10 +1,13 @@
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
import type { NavigationSelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
+
import "../ha-navigation-picker";
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
+
@customElement("ha-selector-navigation")
export class HaNavigationSelector extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-selector/ha-selector-number.ts b/src/components/ha-selector/ha-selector-number.ts
index 3249f96aad..ba1ac4b695 100644
--- a/src/components/ha-selector/ha-selector-number.ts
+++ b/src/components/ha-selector/ha-selector-number.ts
@@ -1,14 +1,17 @@
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import { fireEvent } from "../../common/dom/fire_event";
import type { NumberSelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
+import type { PropertyValues } from "lit";
+
import "../ha-input-helper-text";
import "../ha-slider";
import "../ha-textfield";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+
+import { fireEvent } from "../../common/dom/fire_event";
+
@customElement("ha-selector-number")
export class HaNumberSelector extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-selector/ha-selector-object.ts b/src/components/ha-selector/ha-selector-object.ts
index e328112f35..f30ffdefdb 100644
--- a/src/components/ha-selector/ha-selector-object.ts
+++ b/src/components/ha-selector/ha-selector-object.ts
@@ -1,11 +1,14 @@
+import type { HomeAssistant } from "../../types";
+import type { HaYamlEditor } from "../ha-yaml-editor";
import type { PropertyValues } from "lit";
+
+import "../ha-input-helper-text";
+import "../ha-yaml-editor";
+
import { html, LitElement } from "lit";
import { customElement, property, query } from "lit/decorators";
+
import { fireEvent } from "../../common/dom/fire_event";
-import type { HomeAssistant } from "../../types";
-import "../ha-yaml-editor";
-import "../ha-input-helper-text";
-import type { HaYamlEditor } from "../ha-yaml-editor";
@customElement("ha-selector-object")
export class HaObjectSelector extends LitElement {
diff --git a/src/components/ha-selector/ha-selector-qr-code.ts b/src/components/ha-selector/ha-selector-qr-code.ts
index daa8e1ad14..86d0f04867 100644
--- a/src/components/ha-selector/ha-selector-qr-code.ts
+++ b/src/components/ha-selector/ha-selector-qr-code.ts
@@ -1,7 +1,9 @@
+import type { QRCodeSelector } from "../../data/selector";
+
+import "../ha-qr-code";
+
import { LitElement, css, html } from "lit";
import { customElement, property } from "lit/decorators";
-import type { QRCodeSelector } from "../../data/selector";
-import "../ha-qr-code";
@customElement("ha-selector-qr_code")
export class HaSelectorQRCode extends LitElement {
diff --git a/src/components/ha-selector/ha-selector-select.ts b/src/components/ha-selector/ha-selector-select.ts
index 6e7d72ece2..37774c91bc 100644
--- a/src/components/ha-selector/ha-selector-select.ts
+++ b/src/components/ha-selector/ha-selector-select.ts
@@ -1,25 +1,28 @@
-import "@material/mwc-list/mwc-list-item";
-import { mdiDrag } from "@mdi/js";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, query } from "lit/decorators";
-import { repeat } from "lit/directives/repeat";
-import { ensureArray } from "../../common/array/ensure-array";
-import { fireEvent } from "../../common/dom/fire_event";
-import { stopPropagation } from "../../common/dom/stop_propagation";
-import { caseInsensitiveStringCompare } from "../../common/string/compare";
import type { SelectOption, SelectSelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
+import type { HaComboBox } from "../ha-combo-box";
+
import "../chips/ha-chip-set";
import "../chips/ha-input-chip";
import "../ha-checkbox";
import "../ha-combo-box";
-import type { HaComboBox } from "../ha-combo-box";
import "../ha-formfield";
import "../ha-input-helper-text";
import "../ha-radio";
import "../ha-select";
-import "../ha-sortable";
import "../ha-select-box";
+import "../ha-sortable";
+import "@material/mwc-list/mwc-list-item";
+
+import { mdiDrag } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, query } from "lit/decorators";
+import { repeat } from "lit/directives/repeat";
+
+import { ensureArray } from "../../common/array/ensure-array";
+import { fireEvent } from "../../common/dom/fire_event";
+import { stopPropagation } from "../../common/dom/stop_propagation";
+import { caseInsensitiveStringCompare } from "../../common/string/compare";
@customElement("ha-selector-select")
export class HaSelectSelector extends LitElement {
diff --git a/src/components/ha-selector/ha-selector-selector.ts b/src/components/ha-selector/ha-selector-selector.ts
index 75f7f888f2..ddaa2aae45 100644
--- a/src/components/ha-selector/ha-selector-selector.ts
+++ b/src/components/ha-selector/ha-selector-selector.ts
@@ -1,16 +1,19 @@
-import type { PropertyValues } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../common/dom/fire_event";
import type {
LocalizeFunc,
LocalizeKeys,
} from "../../common/translations/localize";
import type { HomeAssistant } from "../../types";
+import type { PropertyValues } from "lit";
+
import "../ha-alert";
import "../ha-form/ha-form";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../common/dom/fire_event";
+
const SELECTOR_DEFAULTS = {
number: {
min: 1,
diff --git a/src/components/ha-selector/ha-selector-state.ts b/src/components/ha-selector/ha-selector-state.ts
index 8350694a33..dfdfc5012c 100644
--- a/src/components/ha-selector/ha-selector-state.ts
+++ b/src/components/ha-selector/ha-selector-state.ts
@@ -1,9 +1,12 @@
+import type { StateSelector } from "../../data/selector";
+import type { HomeAssistant } from "../../types";
+
+import "../entity/ha-entity-state-picker";
+
import { html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
-import type { StateSelector } from "../../data/selector";
+
import { SubscribeMixin } from "../../mixins/subscribe-mixin";
-import type { HomeAssistant } from "../../types";
-import "../entity/ha-entity-state-picker";
@customElement("ha-selector-state")
export class HaSelectorState extends SubscribeMixin(LitElement) {
diff --git a/src/components/ha-selector/ha-selector-statistic.ts b/src/components/ha-selector/ha-selector-statistic.ts
index affc75107b..bc0a147a59 100644
--- a/src/components/ha-selector/ha-selector-statistic.ts
+++ b/src/components/ha-selector/ha-selector-statistic.ts
@@ -1,9 +1,11 @@
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
import type { StatisticSelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
+
import "../entity/ha-statistics-picker";
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("ha-selector-statistic")
export class HaStatisticSelector extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-selector/ha-selector-stt.ts b/src/components/ha-selector/ha-selector-stt.ts
index a21c9ef9f5..7dab575983 100644
--- a/src/components/ha-selector/ha-selector-stt.ts
+++ b/src/components/ha-selector/ha-selector-stt.ts
@@ -1,9 +1,11 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
import type { STTSelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
+
import "../ha-stt-picker";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("ha-selector-stt")
export class HaSTTSelector extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-selector/ha-selector-target.ts b/src/components/ha-selector/ha-selector-target.ts
index 00282b2ddb..f1c59a334c 100644
--- a/src/components/ha-selector/ha-selector-target.ts
+++ b/src/components/ha-selector/ha-selector-target.ts
@@ -1,24 +1,27 @@
+import type { DeviceRegistryEntry } from "../../data/device_registry";
+import type { EntitySources } from "../../data/entity_sources";
+import type { TargetSelector } from "../../data/selector";
+import type { HomeAssistant } from "../../types";
import type {
HassEntity,
HassServiceTarget,
} from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
+
+import "../ha-target-picker";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { ensureArray } from "../../common/array/ensure-array";
-import type { DeviceRegistryEntry } from "../../data/device_registry";
import { getDeviceIntegrationLookup } from "../../data/device_registry";
-import type { EntitySources } from "../../data/entity_sources";
import { fetchEntitySourcesWithCache } from "../../data/entity_sources";
-import type { TargetSelector } from "../../data/selector";
import {
filterSelectorDevices,
filterSelectorEntities,
computeCreateDomains,
} from "../../data/selector";
-import type { HomeAssistant } from "../../types";
-import "../ha-target-picker";
@customElement("ha-selector-target")
export class HaTargetSelector extends LitElement {
diff --git a/src/components/ha-selector/ha-selector-template.ts b/src/components/ha-selector/ha-selector-template.ts
index 50f6e039ed..d3e731e089 100644
--- a/src/components/ha-selector/ha-selector-template.ts
+++ b/src/components/ha-selector/ha-selector-template.ts
@@ -1,11 +1,14 @@
-import { css, html, nothing, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
import type { HomeAssistant } from "../../types";
-import { documentationUrl } from "../../util/documentation-url";
+
+import "../ha-alert";
import "../ha-code-editor";
import "../ha-input-helper-text";
-import "../ha-alert";
+
+import { css, html, nothing, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
+import { documentationUrl } from "../../util/documentation-url";
const WARNING_STRINGS = ["template:", "sensor:", "state:", "trigger: template"];
diff --git a/src/components/ha-selector/ha-selector-text.ts b/src/components/ha-selector/ha-selector-text.ts
index 2a186fe2d7..2645765550 100644
--- a/src/components/ha-selector/ha-selector-text.ts
+++ b/src/components/ha-selector/ha-selector-text.ts
@@ -1,15 +1,18 @@
-import { mdiEye, mdiEyeOff } from "@mdi/js";
-import { LitElement, css, html } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { ensureArray } from "../../common/array/ensure-array";
-import { fireEvent } from "../../common/dom/fire_event";
import type { StringSelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
+
import "../ha-icon-button";
import "../ha-multi-textfield";
import "../ha-textarea";
import "../ha-textfield";
+import { mdiEye, mdiEyeOff } from "@mdi/js";
+import { LitElement, css, html } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { ensureArray } from "../../common/array/ensure-array";
+import { fireEvent } from "../../common/dom/fire_event";
+
@customElement("ha-selector-text")
export class HaTextSelector extends LitElement {
@property({ attribute: false }) public hass?: HomeAssistant;
diff --git a/src/components/ha-selector/ha-selector-theme.ts b/src/components/ha-selector/ha-selector-theme.ts
index b00d523413..f2736ee52d 100644
--- a/src/components/ha-selector/ha-selector-theme.ts
+++ b/src/components/ha-selector/ha-selector-theme.ts
@@ -1,9 +1,11 @@
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
import type { ThemeSelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
+
import "../ha-theme-picker";
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("ha-selector-theme")
export class HaThemeSelector extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-selector/ha-selector-time.ts b/src/components/ha-selector/ha-selector-time.ts
index 587540e28d..7d6e62811d 100644
--- a/src/components/ha-selector/ha-selector-time.ts
+++ b/src/components/ha-selector/ha-selector-time.ts
@@ -1,9 +1,11 @@
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
import type { TimeSelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
+
import "../ha-time-input";
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("ha-selector-time")
export class HaTimeSelector extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-selector/ha-selector-trigger.ts b/src/components/ha-selector/ha-selector-trigger.ts
index ffbc98852b..0dcdf05140 100644
--- a/src/components/ha-selector/ha-selector-trigger.ts
+++ b/src/components/ha-selector/ha-selector-trigger.ts
@@ -1,11 +1,14 @@
+import type { Trigger } from "../../data/automation";
+import type { TriggerSelector } from "../../data/selector";
+import type { HomeAssistant } from "../../types";
+
+import "../../panels/config/automation/trigger/ha-automation-trigger";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import memoizeOne from "memoize-one";
-import type { Trigger } from "../../data/automation";
+
import { migrateAutomationTrigger } from "../../data/automation";
-import type { TriggerSelector } from "../../data/selector";
-import "../../panels/config/automation/trigger/ha-automation-trigger";
-import type { HomeAssistant } from "../../types";
@customElement("ha-selector-trigger")
export class HaTriggerSelector extends LitElement {
diff --git a/src/components/ha-selector/ha-selector-tts-voice.ts b/src/components/ha-selector/ha-selector-tts-voice.ts
index b4aee1123a..b26ddd743c 100644
--- a/src/components/ha-selector/ha-selector-tts-voice.ts
+++ b/src/components/ha-selector/ha-selector-tts-voice.ts
@@ -1,9 +1,11 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
import type { TTSVoiceSelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
+
import "../ha-tts-voice-picker";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("ha-selector-tts_voice")
export class HaTTSVoiceSelector extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-selector/ha-selector-tts.ts b/src/components/ha-selector/ha-selector-tts.ts
index e23109b484..451b2703e1 100644
--- a/src/components/ha-selector/ha-selector-tts.ts
+++ b/src/components/ha-selector/ha-selector-tts.ts
@@ -1,9 +1,11 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
import type { TTSSelector } from "../../data/selector";
import type { HomeAssistant } from "../../types";
+
import "../ha-tts-picker";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("ha-selector-tts")
export class HaTTSSelector extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-selector/ha-selector-ui-action.ts b/src/components/ha-selector/ha-selector-ui-action.ts
index a0935eb747..fc7397c972 100644
--- a/src/components/ha-selector/ha-selector-ui-action.ts
+++ b/src/components/ha-selector/ha-selector-ui-action.ts
@@ -1,11 +1,14 @@
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
import type { ActionConfig } from "../../data/lovelace/config/action";
import type { UiActionSelector } from "../../data/selector";
-import "../../panels/lovelace/components/hui-action-editor";
import type { HomeAssistant } from "../../types";
+import "../../panels/lovelace/components/hui-action-editor";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
+
@customElement("ha-selector-ui_action")
export class HaSelectorUiAction extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-selector/ha-selector-ui-color.ts b/src/components/ha-selector/ha-selector-ui-color.ts
index c58e466cf5..58ce1fd262 100644
--- a/src/components/ha-selector/ha-selector-ui-color.ts
+++ b/src/components/ha-selector/ha-selector-ui-color.ts
@@ -1,9 +1,12 @@
+import type { UiColorSelector } from "../../data/selector";
+import type { HomeAssistant } from "../../types";
+
+import "../ha-color-picker";
+
import { html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
+
import { fireEvent } from "../../common/dom/fire_event";
-import type { UiColorSelector } from "../../data/selector";
-import "../ha-color-picker";
-import type { HomeAssistant } from "../../types";
@customElement("ha-selector-ui_color")
export class HaSelectorUiColor extends LitElement {
diff --git a/src/components/ha-selector/ha-selector-ui-state-content.ts b/src/components/ha-selector/ha-selector-ui-state-content.ts
index e17ef7369d..b3d7cb9f6b 100644
--- a/src/components/ha-selector/ha-selector-ui-state-content.ts
+++ b/src/components/ha-selector/ha-selector-ui-state-content.ts
@@ -1,9 +1,12 @@
+import type { UiStateContentSelector } from "../../data/selector";
+import type { HomeAssistant } from "../../types";
+
+import "../entity/ha-entity-state-content-picker";
+
import { html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
-import type { UiStateContentSelector } from "../../data/selector";
+
import { SubscribeMixin } from "../../mixins/subscribe-mixin";
-import type { HomeAssistant } from "../../types";
-import "../entity/ha-entity-state-content-picker";
@customElement("ha-selector-ui_state_content")
export class HaSelectorUiStateContent extends SubscribeMixin(LitElement) {
diff --git a/src/components/ha-selector/ha-selector.ts b/src/components/ha-selector/ha-selector.ts
index 69a5b59a25..cdb3498ac5 100644
--- a/src/components/ha-selector/ha-selector.ts
+++ b/src/components/ha-selector/ha-selector.ts
@@ -1,14 +1,16 @@
+import type { Selector } from "../../data/selector";
+import type { HomeAssistant } from "../../types";
import type { PropertyValues } from "lit";
+
import { html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { dynamicElement } from "../../common/dom/dynamic-element-directive";
-import type { Selector } from "../../data/selector";
import {
handleLegacyDeviceSelector,
handleLegacyEntitySelector,
} from "../../data/selector";
-import type { HomeAssistant } from "../../types";
const LOAD_ELEMENTS = {
action: () => import("./ha-selector-action"),
diff --git a/src/components/ha-service-control.ts b/src/components/ha-service-control.ts
index a6f9d0126d..714537f972 100644
--- a/src/components/ha-service-control.ts
+++ b/src/components/ha-service-control.ts
@@ -1,13 +1,25 @@
-import { mdiHelpCircle } from "@mdi/js";
+import type { HomeAssistant, ValueChangedEvent } from "../types";
+import type { HaYamlEditor } from "./ha-yaml-editor";
import type {
HassService,
HassServices,
HassServiceTarget,
} from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
+
+import "./ha-checkbox";
+import "./ha-icon-button";
+import "./ha-selector/ha-selector";
+import "./ha-service-picker";
+import "./ha-service-section-icon";
+import "./ha-settings-row";
+import "./ha-yaml-editor";
+
+import { mdiHelpCircle } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { ensureArray } from "../common/array/ensure-array";
import { fireEvent } from "../common/dom/fire_event";
import { computeDomain } from "../common/entity/compute_domain";
@@ -28,16 +40,7 @@ import {
type Selector,
type TargetSelector,
} from "../data/selector";
-import type { HomeAssistant, ValueChangedEvent } from "../types";
import { documentationUrl } from "../util/documentation-url";
-import "./ha-checkbox";
-import "./ha-icon-button";
-import "./ha-selector/ha-selector";
-import "./ha-service-picker";
-import "./ha-settings-row";
-import "./ha-yaml-editor";
-import type { HaYamlEditor } from "./ha-yaml-editor";
-import "./ha-service-section-icon";
const attributeFilter = (values: any[], attribute: any) => {
if (typeof attribute === "object") {
diff --git a/src/components/ha-service-icon.ts b/src/components/ha-service-icon.ts
index dabf27f4b9..dd8b0688b5 100644
--- a/src/components/ha-service-icon.ts
+++ b/src/components/ha-service-icon.ts
@@ -1,15 +1,18 @@
+import type { HomeAssistant } from "../types";
+
+import "./ha-icon";
+import "./ha-svg-icon";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import { until } from "lit/directives/until";
+
import { computeDomain } from "../common/entity/compute_domain";
import {
DEFAULT_SERVICE_ICON,
FALLBACK_DOMAIN_ICONS,
serviceIcon,
} from "../data/icons";
-import type { HomeAssistant } from "../types";
-import "./ha-icon";
-import "./ha-svg-icon";
@customElement("ha-service-icon")
export class HaServiceIcon extends LitElement {
diff --git a/src/components/ha-service-picker.ts b/src/components/ha-service-picker.ts
index 848dde391c..2c792a537a 100644
--- a/src/components/ha-service-picker.ts
+++ b/src/components/ha-service-picker.ts
@@ -1,15 +1,18 @@
-import type { ComboBoxLitRenderer } from "@vaadin/combo-box/lit";
-import { html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../common/dom/fire_event";
import type { LocalizeFunc } from "../common/translations/localize";
-import { domainToName } from "../data/integration";
import type { HomeAssistant } from "../types";
+import type { ComboBoxLitRenderer } from "@vaadin/combo-box/lit";
+
import "./ha-combo-box";
import "./ha-list-item";
import "./ha-service-icon";
+
+import { html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../common/dom/fire_event";
import { getServiceIcons } from "../data/icons";
+import { domainToName } from "../data/integration";
@customElement("ha-service-picker")
class HaServicePicker extends LitElement {
diff --git a/src/components/ha-service-section-icon.ts b/src/components/ha-service-section-icon.ts
index 905d9ab5cb..349ad437b9 100644
--- a/src/components/ha-service-section-icon.ts
+++ b/src/components/ha-service-section-icon.ts
@@ -1,9 +1,12 @@
+import type { HomeAssistant } from "../types";
+
+import "./ha-icon";
+import "./ha-svg-icon";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import { until } from "lit/directives/until";
-import type { HomeAssistant } from "../types";
-import "./ha-icon";
-import "./ha-svg-icon";
+
import { serviceSectionIcon } from "../data/icons";
@customElement("ha-service-section-icon")
diff --git a/src/components/ha-settings-row.ts b/src/components/ha-settings-row.ts
index 3a2fbefa73..d608e3fca8 100644
--- a/src/components/ha-settings-row.ts
+++ b/src/components/ha-settings-row.ts
@@ -1,4 +1,5 @@
import type { TemplateResult } from "lit";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
diff --git a/src/components/ha-sidebar.ts b/src/components/ha-sidebar.ts
index 680bd37d7f..4fe0885344 100644
--- a/src/components/ha-sidebar.ts
+++ b/src/components/ha-sidebar.ts
@@ -1,4 +1,22 @@
+import type { ActionHandlerDetail } from "../data/lovelace/action_handler";
+import type { PersistentNotification } from "../data/persistent_notification";
+import type { UpdateEntity } from "../data/update";
+import type { HomeAssistant, PanelInfo, Route } from "../types";
+import type { PaperIconItemElement } from "@polymer/paper-item/paper-icon-item";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { CSSResult, CSSResultGroup, PropertyValues } from "lit";
+
+import "./ha-icon";
+import "./ha-icon-button";
+import "./ha-menu-button";
+import "./ha-sortable";
+import "./ha-svg-icon";
+import "./user/ha-user-badge";
import "@material/mwc-button/mwc-button";
+import "@polymer/paper-item/paper-icon-item";
+import "@polymer/paper-item/paper-item";
+import "@polymer/paper-listbox/paper-listbox";
+
import {
mdiBell,
mdiCalendar,
@@ -17,38 +35,23 @@ import {
mdiTooltipAccount,
mdiViewDashboard,
} from "@mdi/js";
-import "@polymer/paper-item/paper-icon-item";
-import type { PaperIconItemElement } from "@polymer/paper-item/paper-icon-item";
-import "@polymer/paper-item/paper-item";
-import "@polymer/paper-listbox/paper-listbox";
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { CSSResult, CSSResultGroup, PropertyValues } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, eventOptions, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import memoizeOne from "memoize-one";
+
import { storage } from "../common/decorators/storage";
import { fireEvent } from "../common/dom/fire_event";
+import { preventDefault } from "../common/dom/prevent_default";
import { toggleAttribute } from "../common/dom/toggle_attribute";
import { stringCompare } from "../common/string/compare";
import { throttle } from "../common/util/throttle";
-import type { ActionHandlerDetail } from "../data/lovelace/action_handler";
-import type { PersistentNotification } from "../data/persistent_notification";
import { subscribeNotifications } from "../data/persistent_notification";
import { subscribeRepairsIssueRegistry } from "../data/repairs";
-import type { UpdateEntity } from "../data/update";
import { updateCanInstall } from "../data/update";
import { SubscribeMixin } from "../mixins/subscribe-mixin";
import { actionHandler } from "../panels/lovelace/common/directives/action-handler-directive";
import { haStyleScrollbar } from "../resources/styles";
-import type { HomeAssistant, PanelInfo, Route } from "../types";
-import "./ha-icon";
-import "./ha-icon-button";
-import "./ha-menu-button";
-import "./ha-sortable";
-import "./ha-svg-icon";
-import "./user/ha-user-badge";
-import { preventDefault } from "../common/dom/prevent_default";
const SHOW_AFTER_SPACER = ["config", "developer-tools"];
diff --git a/src/components/ha-slider.ts b/src/components/ha-slider.ts
index df91f81970..38f73b286d 100644
--- a/src/components/ha-slider.ts
+++ b/src/components/ha-slider.ts
@@ -1,6 +1,7 @@
import { MdSlider } from "@material/web/slider/slider";
import { css } from "lit";
import { customElement } from "lit/decorators";
+
import { mainWindow } from "../common/dom/get_main_window";
@customElement("ha-slider")
diff --git a/src/components/ha-sortable.ts b/src/components/ha-sortable.ts
index d5bf21638d..d529404911 100644
--- a/src/components/ha-sortable.ts
+++ b/src/components/ha-sortable.ts
@@ -1,10 +1,12 @@
/* eslint-disable lit/prefer-static-styles */
+import type { SortableInstance } from "../resources/sortable";
import type { PropertyValues } from "lit";
+import type { SortableEvent } from "sortablejs";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
-import type { SortableEvent } from "sortablejs";
+
import { fireEvent } from "../common/dom/fire_event";
-import type { SortableInstance } from "../resources/sortable";
declare global {
interface HASSDomEvents {
diff --git a/src/components/ha-spinner.ts b/src/components/ha-spinner.ts
index 2f6842925e..962c2fe7b0 100644
--- a/src/components/ha-spinner.ts
+++ b/src/components/ha-spinner.ts
@@ -1,6 +1,7 @@
+import type { PropertyValues } from "lit";
+
import Spinner from "@shoelace-style/shoelace/dist/components/spinner/spinner.component";
import spinnerStyles from "@shoelace-style/shoelace/dist/components/spinner/spinner.styles";
-import type { PropertyValues } from "lit";
import { css } from "lit";
import { customElement, property } from "lit/decorators";
diff --git a/src/components/ha-state-icon.ts b/src/components/ha-state-icon.ts
index 66fc35cd45..286aa14db6 100644
--- a/src/components/ha-state-icon.ts
+++ b/src/components/ha-state-icon.ts
@@ -1,16 +1,19 @@
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
+
+import "./ha-icon";
+import "./ha-svg-icon";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import { until } from "lit/directives/until";
+
import { computeStateDomain } from "../common/entity/compute_state_domain";
import {
DEFAULT_DOMAIN_ICON,
entityIcon,
FALLBACK_DOMAIN_ICONS,
} from "../data/icons";
-import type { HomeAssistant } from "../types";
-import "./ha-icon";
-import "./ha-svg-icon";
@customElement("ha-state-icon")
export class HaStateIcon extends LitElement {
diff --git a/src/components/ha-stt-picker.ts b/src/components/ha-stt-picker.ts
index 246ba7c650..0e2312ff2b 100644
--- a/src/components/ha-stt-picker.ts
+++ b/src/components/ha-stt-picker.ts
@@ -1,17 +1,20 @@
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../common/dom/fire_event";
-import { stopPropagation } from "../common/dom/stop_propagation";
-import { computeStateName } from "../common/entity/compute_state_name";
-import { debounce } from "../common/util/debounce";
import type { STTEngine } from "../data/stt";
-import { listSTTEngines } from "../data/stt";
import type { HomeAssistant } from "../types";
+import type { HaSelect } from "./ha-select";
+import type { PropertyValues } from "lit";
+
import "./ha-list-item";
import "./ha-select";
-import type { HaSelect } from "./ha-select";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../common/dom/fire_event";
+import { stopPropagation } from "../common/dom/stop_propagation";
import { computeDomain } from "../common/entity/compute_domain";
+import { computeStateName } from "../common/entity/compute_state_name";
+import { debounce } from "../common/util/debounce";
+import { listSTTEngines } from "../data/stt";
const NONE = "__NONE_OPTION__";
diff --git a/src/components/ha-svg-icon.ts b/src/components/ha-svg-icon.ts
index 308ba05af3..5c4dde6b7f 100644
--- a/src/components/ha-svg-icon.ts
+++ b/src/components/ha-svg-icon.ts
@@ -1,4 +1,5 @@
import type { SVGTemplateResult } from "lit";
+
import { css, LitElement, nothing, svg } from "lit";
import { customElement, property } from "lit/decorators";
diff --git a/src/components/ha-switch.ts b/src/components/ha-switch.ts
index 262359c9ac..ca2afd928f 100644
--- a/src/components/ha-switch.ts
+++ b/src/components/ha-switch.ts
@@ -1,7 +1,9 @@
-import { SwitchBase } from "@material/mwc-switch/deprecated/mwc-switch-base";
import { styles } from "@material/mwc-switch/deprecated/mwc-switch.css";
+
+import { SwitchBase } from "@material/mwc-switch/deprecated/mwc-switch-base";
import { css } from "lit";
import { customElement, property } from "lit/decorators";
+
import { forwardHaptic } from "../data/haptics";
@customElement("ha-switch")
diff --git a/src/components/ha-tab.ts b/src/components/ha-tab.ts
index 4d34de3005..f9f4429228 100644
--- a/src/components/ha-tab.ts
+++ b/src/components/ha-tab.ts
@@ -1,8 +1,10 @@
import type { TemplateResult } from "lit";
+
+import "./ha-ripple";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
-import "./ha-ripple";
@customElement("ha-tab")
export class HaTab extends LitElement {
diff --git a/src/components/ha-tabs.ts b/src/components/ha-tabs.ts
index cf0d62b7dd..3699036e7f 100644
--- a/src/components/ha-tabs.ts
+++ b/src/components/ha-tabs.ts
@@ -1,9 +1,11 @@
+import type { Constructor } from "../types";
import type { PaperIconButtonElement } from "@polymer/paper-icon-button/paper-icon-button";
import type { PaperTabElement } from "@polymer/paper-tabs/paper-tab";
-import "@polymer/paper-tabs/paper-tabs";
import type { PaperTabsElement } from "@polymer/paper-tabs/paper-tabs";
+
+import "@polymer/paper-tabs/paper-tabs";
+
import { customElement } from "lit/decorators";
-import type { Constructor } from "../types";
// eslint-disable-next-line @typescript-eslint/naming-convention
const PaperTabs = customElements.get(
diff --git a/src/components/ha-target-picker.ts b/src/components/ha-target-picker.ts
index a3296fbe65..a5e4bde8d2 100644
--- a/src/components/ha-target-picker.ts
+++ b/src/components/ha-target-picker.ts
@@ -1,7 +1,31 @@
+import type { AreaRegistryEntry } from "../data/area_registry";
+import type { DeviceRegistryEntry } from "../data/device_registry";
+import type { EntityRegistryDisplayEntry } from "../data/entity_registry";
+import type { LabelRegistryEntry } from "../data/label_registry";
+import type { HomeAssistant } from "../types";
+import type { HaDevicePickerDeviceFilterFunc } from "./device/ha-device-picker";
+import type { HaEntityPickerEntityFilterFunc } from "./entity/ha-entity-picker";
+import type { ComboBoxLightOpenedChangedEvent } from "@vaadin/combo-box/vaadin-combo-box-light";
+import type {
+ HassEntity,
+ HassServiceTarget,
+ UnsubscribeFunc,
+} from "home-assistant-js-websocket";
+import type { CSSResultGroup } from "lit";
+
// @ts-ignore
import chipStyles from "@material/chips/dist/mdc.chips.min.css";
+
+import "./device/ha-device-picker";
+import "./entity/ha-entity-picker";
+import "./ha-area-floor-picker";
+import "./ha-icon-button";
+import "./ha-input-helper-text";
+import "./ha-svg-icon";
+import "./ha-tooltip";
import "@material/mwc-button/mwc-button";
import "@material/mwc-menu/mwc-menu-surface";
+
import {
mdiClose,
mdiDevices,
@@ -11,16 +35,10 @@ import {
mdiTextureBox,
mdiUnfoldMoreVertical,
} from "@mdi/js";
-import type { ComboBoxLightOpenedChangedEvent } from "@vaadin/combo-box/vaadin-combo-box-light";
-import type {
- HassEntity,
- HassServiceTarget,
- UnsubscribeFunc,
-} from "home-assistant-js-websocket";
-import type { CSSResultGroup } from "lit";
import { LitElement, css, html, nothing, unsafeCSS } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { ensureArray } from "../common/array/ensure-array";
import { computeCssColor } from "../common/color/compute-color";
import { hex2rgb } from "../common/color/convert-color";
@@ -30,23 +48,9 @@ import { computeDeviceNameDisplay } from "../common/entity/compute_device_name";
import { computeDomain } from "../common/entity/compute_domain";
import { computeStateName } from "../common/entity/compute_state_name";
import { isValidEntityId } from "../common/entity/valid_entity_id";
-import type { AreaRegistryEntry } from "../data/area_registry";
-import type { DeviceRegistryEntry } from "../data/device_registry";
-import type { EntityRegistryDisplayEntry } from "../data/entity_registry";
-import type { LabelRegistryEntry } from "../data/label_registry";
import { subscribeLabelRegistry } from "../data/label_registry";
import { SubscribeMixin } from "../mixins/subscribe-mixin";
-import type { HomeAssistant } from "../types";
-import "./device/ha-device-picker";
-import type { HaDevicePickerDeviceFilterFunc } from "./device/ha-device-picker";
-import "./entity/ha-entity-picker";
-import type { HaEntityPickerEntityFilterFunc } from "./entity/ha-entity-picker";
-import "./ha-area-floor-picker";
import { floorDefaultIconPath } from "./ha-floor-icon";
-import "./ha-icon-button";
-import "./ha-input-helper-text";
-import "./ha-svg-icon";
-import "./ha-tooltip";
@customElement("ha-target-picker")
export class HaTargetPicker extends SubscribeMixin(LitElement) {
diff --git a/src/components/ha-textarea.ts b/src/components/ha-textarea.ts
index d531c4746f..5b3ef527b9 100644
--- a/src/components/ha-textarea.ts
+++ b/src/components/ha-textarea.ts
@@ -1,7 +1,9 @@
-import { TextAreaBase } from "@material/mwc-textarea/mwc-textarea-base";
-import { styles as textfieldStyles } from "@material/mwc-textfield/mwc-textfield.css";
-import { styles as textareaStyles } from "@material/mwc-textarea/mwc-textarea.css";
import type { PropertyValues } from "lit";
+
+import { styles as textareaStyles } from "@material/mwc-textarea/mwc-textarea.css";
+import { styles as textfieldStyles } from "@material/mwc-textfield/mwc-textfield.css";
+
+import { TextAreaBase } from "@material/mwc-textarea/mwc-textarea-base";
import { css } from "lit";
import { customElement, property } from "lit/decorators";
diff --git a/src/components/ha-textfield.ts b/src/components/ha-textfield.ts
index 8ca3561ac8..2685c7cee4 100644
--- a/src/components/ha-textfield.ts
+++ b/src/components/ha-textfield.ts
@@ -1,8 +1,11 @@
-import { TextFieldBase } from "@material/mwc-textfield/mwc-textfield-base";
-import { styles } from "@material/mwc-textfield/mwc-textfield.css";
import type { TemplateResult, PropertyValues } from "lit";
+
+import { styles } from "@material/mwc-textfield/mwc-textfield.css";
+
+import { TextFieldBase } from "@material/mwc-textfield/mwc-textfield-base";
import { html, css } from "lit";
import { customElement, property, query } from "lit/decorators";
+
import { mainWindow } from "../common/dom/get_main_window";
@customElement("ha-textfield")
diff --git a/src/components/ha-theme-picker.ts b/src/components/ha-theme-picker.ts
index fac1a3198a..c9a99c70d6 100644
--- a/src/components/ha-theme-picker.ts
+++ b/src/components/ha-theme-picker.ts
@@ -1,11 +1,14 @@
-import "@material/mwc-list/mwc-list-item";
+import type { HomeAssistant } from "../types";
import type { TemplateResult } from "lit";
+
+import "./ha-select";
+import "@material/mwc-list/mwc-list-item";
+
import { css, html, nothing, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
+
import { fireEvent } from "../common/dom/fire_event";
import { stopPropagation } from "../common/dom/stop_propagation";
-import type { HomeAssistant } from "../types";
-import "./ha-select";
const DEFAULT_THEME = "default";
diff --git a/src/components/ha-time-input.ts b/src/components/ha-time-input.ts
index 7d55082960..1c0a943823 100644
--- a/src/components/ha-time-input.ts
+++ b/src/components/ha-time-input.ts
@@ -1,10 +1,13 @@
+import type { FrontendLocaleData } from "../data/translation";
+import type { TimeChangedEvent } from "./ha-base-time-input";
+
+import "./ha-base-time-input";
+
import { html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
+
import { useAmPm } from "../common/datetime/use_am_pm";
import { fireEvent } from "../common/dom/fire_event";
-import type { FrontendLocaleData } from "../data/translation";
-import "./ha-base-time-input";
-import type { TimeChangedEvent } from "./ha-base-time-input";
@customElement("ha-time-input")
export class HaTimeInput extends LitElement {
diff --git a/src/components/ha-timezone-picker.ts b/src/components/ha-timezone-picker.ts
index 6f9cb61ddc..cf27906934 100644
--- a/src/components/ha-timezone-picker.ts
+++ b/src/components/ha-timezone-picker.ts
@@ -1,11 +1,14 @@
+import type { HaSelect } from "./ha-select";
+
+import "./ha-list-item";
+import "./ha-select";
+
import timezones from "google-timezones-json";
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
+
import { fireEvent } from "../common/dom/fire_event";
import { stopPropagation } from "../common/dom/stop_propagation";
-import "./ha-list-item";
-import "./ha-select";
-import type { HaSelect } from "./ha-select";
@customElement("ha-timezone-picker")
export class HaTimeZonePicker extends LitElement {
diff --git a/src/components/ha-tip.ts b/src/components/ha-tip.ts
index 8962543ba5..cf9ef39f2a 100644
--- a/src/components/ha-tip.ts
+++ b/src/components/ha-tip.ts
@@ -1,10 +1,11 @@
-import { mdiLightbulbOutline } from "@mdi/js";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
import type { HomeAssistant } from "../types";
import "./ha-svg-icon";
+import { mdiLightbulbOutline } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("ha-tip")
class HaTip extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/ha-toast.ts b/src/components/ha-toast.ts
index f0f94cbea4..540b686dda 100644
--- a/src/components/ha-toast.ts
+++ b/src/components/ha-toast.ts
@@ -1,5 +1,6 @@
-import { Snackbar } from "@material/mwc-snackbar/mwc-snackbar";
import { styles } from "@material/mwc-snackbar/mwc-snackbar.css";
+
+import { Snackbar } from "@material/mwc-snackbar/mwc-snackbar";
import { css } from "lit";
import { customElement } from "lit/decorators";
diff --git a/src/components/ha-tooltip.ts b/src/components/ha-tooltip.ts
index 9b4afa5cd4..1c94a233cb 100644
--- a/src/components/ha-tooltip.ts
+++ b/src/components/ha-tooltip.ts
@@ -1,8 +1,8 @@
import SlTooltip from "@shoelace-style/shoelace/dist/components/tooltip/tooltip.component";
import styles from "@shoelace-style/shoelace/dist/components/tooltip/tooltip.styles";
+import { setDefaultAnimation } from "@shoelace-style/shoelace/dist/utilities/animation-registry";
import { css } from "lit";
import { customElement } from "lit/decorators";
-import { setDefaultAnimation } from "@shoelace-style/shoelace/dist/utilities/animation-registry";
setDefaultAnimation("tooltip.show", {
keyframes: [{ opacity: 0 }, { opacity: 1 }],
diff --git a/src/components/ha-top-app-bar-fixed.ts b/src/components/ha-top-app-bar-fixed.ts
index 4a2b41c485..6539c46901 100644
--- a/src/components/ha-top-app-bar-fixed.ts
+++ b/src/components/ha-top-app-bar-fixed.ts
@@ -1,5 +1,6 @@
-import { TopAppBarFixedBase } from "@material/mwc-top-app-bar-fixed/mwc-top-app-bar-fixed-base";
import { styles } from "@material/mwc-top-app-bar/mwc-top-app-bar.css";
+
+import { TopAppBarFixedBase } from "@material/mwc-top-app-bar-fixed/mwc-top-app-bar-fixed-base";
import { css } from "lit";
import { customElement } from "lit/decorators";
diff --git a/src/components/ha-top-app-bar.ts b/src/components/ha-top-app-bar.ts
index 40d27b40a8..19da0c05f1 100644
--- a/src/components/ha-top-app-bar.ts
+++ b/src/components/ha-top-app-bar.ts
@@ -1,5 +1,6 @@
-import { TopAppBarBase } from "@material/mwc-top-app-bar/mwc-top-app-bar-base";
import { styles } from "@material/mwc-top-app-bar/mwc-top-app-bar.css";
+
+import { TopAppBarBase } from "@material/mwc-top-app-bar/mwc-top-app-bar-base";
import { css } from "lit";
import { customElement } from "lit/decorators";
diff --git a/src/components/ha-tree-indicator.ts b/src/components/ha-tree-indicator.ts
index a0a10ce856..69395ee6c8 100644
--- a/src/components/ha-tree-indicator.ts
+++ b/src/components/ha-tree-indicator.ts
@@ -1,4 +1,5 @@
import type { TemplateResult } from "lit";
+
import { LitElement, css, html } from "lit";
import { customElement, property } from "lit/decorators";
diff --git a/src/components/ha-tts-picker.ts b/src/components/ha-tts-picker.ts
index 73bdea15d5..ed3f4882b9 100644
--- a/src/components/ha-tts-picker.ts
+++ b/src/components/ha-tts-picker.ts
@@ -1,17 +1,20 @@
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../common/dom/fire_event";
-import { stopPropagation } from "../common/dom/stop_propagation";
-import { computeStateName } from "../common/entity/compute_state_name";
-import { debounce } from "../common/util/debounce";
import type { TTSEngine } from "../data/tts";
-import { listTTSEngines } from "../data/tts";
import type { HomeAssistant } from "../types";
+import type { HaSelect } from "./ha-select";
+import type { PropertyValues } from "lit";
+
import "./ha-list-item";
import "./ha-select";
-import type { HaSelect } from "./ha-select";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../common/dom/fire_event";
+import { stopPropagation } from "../common/dom/stop_propagation";
import { computeDomain } from "../common/entity/compute_domain";
+import { computeStateName } from "../common/entity/compute_state_name";
+import { debounce } from "../common/util/debounce";
+import { listTTSEngines } from "../data/tts";
const NONE = "__NONE_OPTION__";
diff --git a/src/components/ha-tts-voice-picker.ts b/src/components/ha-tts-voice-picker.ts
index c5ee4ac21a..a666c867df 100644
--- a/src/components/ha-tts-voice-picker.ts
+++ b/src/components/ha-tts-voice-picker.ts
@@ -1,15 +1,18 @@
+import type { TTSVoice } from "../data/tts";
+import type { HomeAssistant } from "../types";
+import type { HaSelect } from "./ha-select";
import type { PropertyValues } from "lit";
+
+import "./ha-list-item";
+import "./ha-select";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
+
import { fireEvent } from "../common/dom/fire_event";
import { stopPropagation } from "../common/dom/stop_propagation";
import { debounce } from "../common/util/debounce";
-import type { TTSVoice } from "../data/tts";
import { listTTSVoices } from "../data/tts";
-import type { HomeAssistant } from "../types";
-import "./ha-list-item";
-import "./ha-select";
-import type { HaSelect } from "./ha-select";
const NONE = "__NONE_OPTION__";
diff --git a/src/components/ha-two-pane-top-app-bar-fixed.ts b/src/components/ha-two-pane-top-app-bar-fixed.ts
index 9b348d0442..1c565307b7 100644
--- a/src/components/ha-two-pane-top-app-bar-fixed.ts
+++ b/src/components/ha-two-pane-top-app-bar-fixed.ts
@@ -1,15 +1,18 @@
+import type { MDCTopAppBarAdapter } from "@material/top-app-bar/adapter";
+
+import { styles } from "@material/mwc-top-app-bar/mwc-top-app-bar.css";
+
import {
addHasRemoveClass,
BaseElement,
} from "@material/mwc-base/base-element";
import { supportsPassiveEventListener } from "@material/mwc-base/utils";
-import type { MDCTopAppBarAdapter } from "@material/top-app-bar/adapter";
import { strings } from "@material/top-app-bar/constants";
import MDCFixedTopAppBarFoundation from "@material/top-app-bar/fixed/foundation";
import { html, css, nothing } from "lit";
import { property, query, customElement } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
-import { styles } from "@material/mwc-top-app-bar/mwc-top-app-bar.css";
+
import { haStyleScrollbar } from "../resources/styles";
export const passiveEventOptionsIfSupported = supportsPassiveEventListener
diff --git a/src/components/ha-vacuum-state.ts b/src/components/ha-vacuum-state.ts
index 677b27d822..b7abfaa253 100644
--- a/src/components/ha-vacuum-state.ts
+++ b/src/components/ha-vacuum-state.ts
@@ -1,10 +1,13 @@
-import "@material/mwc-button";
+import type { HomeAssistant } from "../types";
+import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "@material/mwc-button";
+
import { LitElement, css, html } from "lit";
import { customElement, property } from "lit/decorators";
-import type { HassEntity } from "home-assistant-js-websocket";
+
import { haStyle } from "../resources/styles";
-import type { HomeAssistant } from "../types";
const STATES_INTERCEPTABLE: Record<
string,
diff --git a/src/components/ha-valve-controls.ts b/src/components/ha-valve-controls.ts
index 6f50f505bb..c72a4db812 100644
--- a/src/components/ha-valve-controls.ts
+++ b/src/components/ha-valve-controls.ts
@@ -1,12 +1,15 @@
+import type { ValveEntity } from "../data/valve";
+import type { HomeAssistant } from "../types";
+
+import "./ha-icon-button";
+
import { mdiStop, mdiValveClosed, mdiValveOpen } from "@mdi/js";
import { LitElement, html, css, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { supportsFeature } from "../common/entity/supports-feature";
-import type { ValveEntity } from "../data/valve";
import { ValveEntityFeature, canClose, canOpen, canStop } from "../data/valve";
-import type { HomeAssistant } from "../types";
-import "./ha-icon-button";
@customElement("ha-valve-controls")
class HaValveControls extends LitElement {
diff --git a/src/components/ha-water_heater-state.ts b/src/components/ha-water_heater-state.ts
index 27c2877915..2858ecb010 100644
--- a/src/components/ha-water_heater-state.ts
+++ b/src/components/ha-water_heater-state.ts
@@ -1,10 +1,12 @@
-import { customElement, property } from "lit/decorators";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { LitElement, css, html } from "lit";
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import { LitElement, css, html } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { formatNumber } from "../common/number/format_number";
import { haStyle } from "../resources/styles";
-import type { HomeAssistant } from "../types";
@customElement("ha-water_heater-state")
export class HaWaterHeaterState extends LitElement {
diff --git a/src/components/ha-web-rtc-player.ts b/src/components/ha-web-rtc-player.ts
index 8ed6cc809d..053515cff9 100644
--- a/src/components/ha-web-rtc-player.ts
+++ b/src/components/ha-web-rtc-player.ts
@@ -1,8 +1,13 @@
-import type { PropertyValues, TemplateResult } from "lit";
+import type { HomeAssistant } from "../types";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { PropertyValues, TemplateResult } from "lit";
+
+import "./ha-alert";
+
import { css, html, LitElement } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
+
import { fireEvent } from "../common/dom/fire_event";
import {
addWebRtcCandidate,
@@ -12,8 +17,6 @@ import {
webRtcOffer,
type WebRtcOfferEvent,
} from "../data/camera";
-import type { HomeAssistant } from "../types";
-import "./ha-alert";
/**
* A WebRTC stream is established by first sending an offer through a signal
diff --git a/src/components/ha-yaml-editor.ts b/src/components/ha-yaml-editor.ts
index 561feb0f3f..37c09540f6 100644
--- a/src/components/ha-yaml-editor.ts
+++ b/src/components/ha-yaml-editor.ts
@@ -1,16 +1,19 @@
+import type { HomeAssistant } from "../types";
+import type { HaCodeEditor } from "./ha-code-editor";
import type { Schema } from "js-yaml";
-import { DEFAULT_SCHEMA, dump, load } from "js-yaml";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "./ha-button";
+import "./ha-code-editor";
+
+import { DEFAULT_SCHEMA, dump, load } from "js-yaml";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
+
import { fireEvent } from "../common/dom/fire_event";
-import type { HomeAssistant } from "../types";
-import { haStyle } from "../resources/styles";
-import "./ha-code-editor";
-import { showToast } from "../util/toast";
import { copyToClipboard } from "../common/util/copy-clipboard";
-import type { HaCodeEditor } from "./ha-code-editor";
-import "./ha-button";
+import { haStyle } from "../resources/styles";
+import { showToast } from "../util/toast";
const isEmpty = (obj: Record): boolean => {
if (typeof obj !== "object" || obj === null) {
diff --git a/src/components/map/ha-entity-marker.ts b/src/components/map/ha-entity-marker.ts
index 744dc5c13a..3dbbb7c02a 100644
--- a/src/components/map/ha-entity-marker.ts
+++ b/src/components/map/ha-entity-marker.ts
@@ -1,9 +1,12 @@
+import type { HomeAssistant } from "../../types";
+
+import "../ha-state-icon";
+
import { LitElement, html, css } from "lit";
import { property } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
-import type { HomeAssistant } from "../../types";
+
import { fireEvent } from "../../common/dom/fire_event";
-import "../ha-state-icon";
class HaEntityMarker extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/map/ha-locations-editor.ts b/src/components/map/ha-locations-editor.ts
index 4dd47750c9..e9dcee8ef8 100644
--- a/src/components/map/ha-locations-editor.ts
+++ b/src/components/map/ha-locations-editor.ts
@@ -1,3 +1,8 @@
+import type { LeafletModuleType } from "../../common/dom/setup-leaflet-map";
+import type { HomeAssistant, ThemeMode } from "../../types";
+import type { HaIcon } from "../ha-icon";
+import type { HaSvgIcon } from "../ha-svg-icon";
+import type { HaMap } from "./ha-map";
import type {
Circle,
DivIcon,
@@ -8,17 +13,15 @@ import type {
MarkerOptions,
} from "leaflet";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../ha-input-helper-text";
+import "./ha-map";
+
import { css, html, LitElement } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../common/dom/fire_event";
-import type { LeafletModuleType } from "../../common/dom/setup-leaflet-map";
-import type { HomeAssistant, ThemeMode } from "../../types";
-import "../ha-input-helper-text";
-import "./ha-map";
-import type { HaMap } from "./ha-map";
-import type { HaIcon } from "../ha-icon";
-import type { HaSvgIcon } from "../ha-svg-icon";
declare global {
// for fire event
diff --git a/src/components/map/ha-map.ts b/src/components/map/ha-map.ts
index 153a3a8c60..b60d9e0058 100644
--- a/src/components/map/ha-map.ts
+++ b/src/components/map/ha-map.ts
@@ -1,4 +1,5 @@
-import { isToday } from "date-fns";
+import type { LeafletModuleType } from "../../common/dom/setup-leaflet-map";
+import type { HomeAssistant, ThemeMode } from "../../types";
import type {
Circle,
CircleMarker,
@@ -11,23 +12,25 @@ import type {
MarkerClusterGroup,
} from "leaflet";
import type { PropertyValues } from "lit";
+
+import "../ha-icon-button";
+import "./ha-entity-marker";
+
+import { isToday } from "date-fns";
import { css, ReactiveElement } from "lit";
import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
+
import { formatDateTime } from "../../common/datetime/format_date_time";
import {
formatTimeWeekday,
formatTimeWithSeconds,
} from "../../common/datetime/format_time";
-import type { LeafletModuleType } from "../../common/dom/setup-leaflet-map";
+import { fireEvent } from "../../common/dom/fire_event";
import { setupLeafletMap } from "../../common/dom/setup-leaflet-map";
import { computeStateDomain } from "../../common/entity/compute_state_domain";
import { computeStateName } from "../../common/entity/compute_state_name";
-import type { HomeAssistant, ThemeMode } from "../../types";
-import { isTouch } from "../../util/is_touch";
-import "../ha-icon-button";
-import "./ha-entity-marker";
import { DecoratedMarker } from "../../common/map/decorated_marker";
+import { isTouch } from "../../util/is_touch";
declare global {
// for fire event
diff --git a/src/components/media-player/dialog-media-manage.ts b/src/components/media-player/dialog-media-manage.ts
index b214e36c99..68c4eccf3f 100644
--- a/src/components/media-player/dialog-media-manage.ts
+++ b/src/components/media-player/dialog-media-manage.ts
@@ -1,36 +1,39 @@
-import { animate } from "@lit-labs/motion";
+import type { MediaPlayerItem } from "../../data/media-player";
+import type { HomeAssistant } from "../../types";
+import type { MediaManageDialogParams } from "./show-media-manage-dialog";
+import type { CSSResultGroup } from "lit";
+
+import "../ha-button";
+import "../ha-check-list-item";
+import "../ha-dialog";
+import "../ha-dialog-header";
+import "../ha-spinner";
+import "../ha-svg-icon";
+import "../ha-tip";
+import "./ha-media-player-browse";
+import "./ha-media-upload-button";
import "@material/mwc-list/mwc-list";
import "@material/mwc-list/mwc-list-item";
+
+import { animate } from "@lit-labs/motion";
import { mdiClose, mdiDelete } from "@mdi/js";
-import type { CSSResultGroup } from "lit";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { repeat } from "lit/directives/repeat";
+
+import { isComponentLoaded } from "../../common/config/is_component_loaded";
import { fireEvent } from "../../common/dom/fire_event";
import { computeRTLDirection } from "../../common/util/compute_rtl";
-import type { MediaPlayerItem } from "../../data/media-player";
-import { MediaClassBrowserSettings } from "../../data/media-player";
+import { deleteImage, getIdFromUrl } from "../../data/image_upload";
import {
browseLocalMediaPlayer,
removeLocalMedia,
isLocalMediaSourceContentId,
isImageUploadMediaSourceContentId,
} from "../../data/media_source";
-import { deleteImage, getIdFromUrl } from "../../data/image_upload";
+import { MediaClassBrowserSettings } from "../../data/media-player";
import { showConfirmationDialog } from "../../dialogs/generic/show-dialog-box";
import { haStyleDialog } from "../../resources/styles";
-import type { HomeAssistant } from "../../types";
-import "../ha-button";
-import "../ha-check-list-item";
-import "../ha-spinner";
-import "../ha-dialog";
-import "../ha-dialog-header";
-import "../ha-svg-icon";
-import "../ha-tip";
-import "./ha-media-player-browse";
-import "./ha-media-upload-button";
-import type { MediaManageDialogParams } from "./show-media-manage-dialog";
-import { isComponentLoaded } from "../../common/config/is_component_loaded";
@customElement("dialog-media-manage")
class DialogMediaManage extends LitElement {
diff --git a/src/components/media-player/dialog-media-player-browse.ts b/src/components/media-player/dialog-media-player-browse.ts
index d198826279..f0170281cb 100644
--- a/src/components/media-player/dialog-media-player-browse.ts
+++ b/src/components/media-player/dialog-media-player-browse.ts
@@ -1,4 +1,24 @@
+import type { HASSDomEvent } from "../../common/dom/fire_event";
+import type {
+ MediaPickedEvent,
+ MediaPlayerBrowseAction,
+ MediaPlayerItem,
+ MediaPlayerLayoutType,
+} from "../../data/media-player";
+import type { HomeAssistant } from "../../types";
+import type {
+ HaMediaPlayerBrowse,
+ MediaPlayerItemId,
+} from "./ha-media-player-browse";
+import type { MediaPlayerBrowseDialogParams } from "./show-media-browser-dialog";
import type { ActionDetail } from "@material/mwc-list";
+import type { CSSResultGroup } from "lit";
+
+import "../ha-dialog";
+import "../ha-dialog-header";
+import "./ha-media-manage-button";
+import "./ha-media-player-browse";
+
import {
mdiAlphaABoxOutline,
mdiArrowLeft,
@@ -7,29 +27,12 @@ import {
mdiGrid,
mdiListBoxOutline,
} from "@mdi/js";
-import type { CSSResultGroup } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
-import type { HASSDomEvent } from "../../common/dom/fire_event";
+
import { fireEvent } from "../../common/dom/fire_event";
-import type {
- MediaPickedEvent,
- MediaPlayerBrowseAction,
- MediaPlayerItem,
- MediaPlayerLayoutType,
-} from "../../data/media-player";
-import { haStyleDialog } from "../../resources/styles";
-import type { HomeAssistant } from "../../types";
-import "../ha-dialog";
-import "../ha-dialog-header";
-import "./ha-media-manage-button";
-import "./ha-media-player-browse";
-import type {
- HaMediaPlayerBrowse,
- MediaPlayerItemId,
-} from "./ha-media-player-browse";
-import type { MediaPlayerBrowseDialogParams } from "./show-media-browser-dialog";
import { stopPropagation } from "../../common/dom/stop_propagation";
+import { haStyleDialog } from "../../resources/styles";
@customElement("dialog-media-player-browse")
class DialogMediaPlayerBrowse extends LitElement {
diff --git a/src/components/media-player/ha-browse-media-tts.ts b/src/components/media-player/ha-browse-media-tts.ts
index 8466b633cb..3bc4cb5f67 100644
--- a/src/components/media-player/ha-browse-media-tts.ts
+++ b/src/components/media-player/ha-browse-media-tts.ts
@@ -1,23 +1,26 @@
-import "@material/mwc-list/mwc-list-item";
-import "@material/mwc-button/mwc-button";
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { storage } from "../../common/decorators/storage";
-import { fireEvent } from "../../common/dom/fire_event";
import type {
MediaPlayerBrowseAction,
MediaPlayerItem,
} from "../../data/media-player";
import type { TTSEngine } from "../../data/tts";
+import type { HomeAssistant } from "../../types";
+import type { PropertyValues } from "lit";
+
+import "../ha-card";
+import "../ha-language-picker";
+import "../ha-textarea";
+import "../ha-tts-voice-picker";
+import "@material/mwc-button/mwc-button";
+import "@material/mwc-list/mwc-list-item";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { storage } from "../../common/decorators/storage";
+import { fireEvent } from "../../common/dom/fire_event";
+import { fetchCloudStatus } from "../../data/cloud";
import { getProviderFromTTSMediaSource, getTTSEngine } from "../../data/tts";
import { buttonLinkStyle } from "../../resources/styles";
-import type { HomeAssistant } from "../../types";
-import "../ha-textarea";
-import "../ha-language-picker";
-import "../ha-tts-voice-picker";
-import "../ha-card";
-import { fetchCloudStatus } from "../../data/cloud";
export interface TtsMediaPickedEvent {
item: MediaPlayerItem;
diff --git a/src/components/media-player/ha-media-manage-button.ts b/src/components/media-player/ha-media-manage-button.ts
index 4eec8d0217..1cad123224 100644
--- a/src/components/media-player/ha-media-manage-button.ts
+++ b/src/components/media-player/ha-media-manage-button.ts
@@ -1,15 +1,18 @@
+import type { MediaPlayerItem } from "../../data/media-player";
+import type { HomeAssistant } from "../../types";
+
+import "../ha-svg-icon";
import "@material/mwc-button";
+
import { mdiFolderEdit } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../../common/dom/fire_event";
-import type { MediaPlayerItem } from "../../data/media-player";
import {
isLocalMediaSourceContentId,
isImageUploadMediaSourceContentId,
} from "../../data/media_source";
-import type { HomeAssistant } from "../../types";
-import "../ha-svg-icon";
import { showMediaManageDialog } from "./show-media-manage-dialog";
declare global {
diff --git a/src/components/media-player/ha-media-player-browse.ts b/src/components/media-player/ha-media-player-browse.ts
index 42eaa9cbcc..e88fa10007 100644
--- a/src/components/media-player/ha-media-player-browse.ts
+++ b/src/components/media-player/ha-media-player-browse.ts
@@ -1,10 +1,30 @@
+import type {
+ MediaPlayerItem,
+ MediaPickedEvent,
+ MediaPlayerBrowseAction,
+ MediaPlayerLayoutType,
+} from "../../data/media-player";
+import type { HomeAssistant } from "../../types";
+import type { TtsMediaPickedEvent } from "./ha-browse-media-tts";
import type { LitVirtualizer } from "@lit-labs/virtualizer";
-import { grid } from "@lit-labs/virtualizer/layouts/grid";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../entity/ha-entity-picker";
+import "../ha-alert";
+import "../ha-button-menu";
+import "../ha-card";
+import "../ha-fab";
+import "../ha-icon-button";
+import "../ha-spinner";
+import "../ha-svg-icon";
+import "../ha-tooltip";
+import "./ha-browse-media-tts";
import "@material/mwc-button/mwc-button";
import "@material/mwc-list/mwc-list";
import "@material/mwc-list/mwc-list-item";
+
+import { grid } from "@lit-labs/virtualizer/layouts/grid";
import { mdiArrowUpRight, mdiPlay, mdiPlus } from "@mdi/js";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
import { css, html, LitElement, nothing } from "lit";
import {
customElement,
@@ -16,43 +36,26 @@ import {
import { classMap } from "lit/directives/class-map";
import { styleMap } from "lit/directives/style-map";
import { until } from "lit/directives/until";
+
import { fireEvent } from "../../common/dom/fire_event";
import { debounce } from "../../common/util/debounce";
import { isUnavailableState } from "../../data/entity";
-import type {
- MediaPlayerItem,
- MediaPickedEvent,
- MediaPlayerBrowseAction,
- MediaPlayerLayoutType,
-} from "../../data/media-player";
+import { browseLocalMediaPlayer } from "../../data/media_source";
import {
browseMediaPlayer,
BROWSER_PLAYER,
MediaClassBrowserSettings,
} from "../../data/media-player";
-import { browseLocalMediaPlayer } from "../../data/media_source";
import { isTTSMediaSource } from "../../data/tts";
import { showAlertDialog } from "../../dialogs/generic/show-dialog-box";
import { haStyle } from "../../resources/styles";
-import type { HomeAssistant } from "../../types";
+import { loadVirtualizer } from "../../resources/virtualizer";
import {
brandsUrl,
extractDomainFromBrandUrl,
isBrandUrl,
} from "../../util/brands-url";
import { documentationUrl } from "../../util/documentation-url";
-import "../entity/ha-entity-picker";
-import "../ha-alert";
-import "../ha-button-menu";
-import "../ha-card";
-import "../ha-spinner";
-import "../ha-fab";
-import "../ha-icon-button";
-import "../ha-svg-icon";
-import "../ha-tooltip";
-import "./ha-browse-media-tts";
-import type { TtsMediaPickedEvent } from "./ha-browse-media-tts";
-import { loadVirtualizer } from "../../resources/virtualizer";
declare global {
interface HASSDomEvents {
diff --git a/src/components/media-player/ha-media-upload-button.ts b/src/components/media-player/ha-media-upload-button.ts
index 8922cb4476..250d8ffaaa 100644
--- a/src/components/media-player/ha-media-upload-button.ts
+++ b/src/components/media-player/ha-media-upload-button.ts
@@ -1,17 +1,20 @@
+import type { MediaPlayerItem } from "../../data/media-player";
+import type { HomeAssistant } from "../../types";
+
+import "../ha-spinner";
+import "../ha-svg-icon";
import "@material/mwc-button";
+
import { mdiUpload } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../../common/dom/fire_event";
-import type { MediaPlayerItem } from "../../data/media-player";
import {
isLocalMediaSourceContentId,
uploadLocalMedia,
} from "../../data/media_source";
import { showAlertDialog } from "../../dialogs/generic/show-dialog-box";
-import type { HomeAssistant } from "../../types";
-import "../ha-spinner";
-import "../ha-svg-icon";
declare global {
interface HASSDomEvents {
diff --git a/src/components/media-player/show-media-browser-dialog.ts b/src/components/media-player/show-media-browser-dialog.ts
index 9136be8db0..7a138eb22b 100644
--- a/src/components/media-player/show-media-browser-dialog.ts
+++ b/src/components/media-player/show-media-browser-dialog.ts
@@ -1,10 +1,11 @@
-import { fireEvent } from "../../common/dom/fire_event";
import type {
MediaPickedEvent,
MediaPlayerBrowseAction,
} from "../../data/media-player";
import type { MediaPlayerItemId } from "./ha-media-player-browse";
+import { fireEvent } from "../../common/dom/fire_event";
+
export interface MediaPlayerBrowseDialogParams {
action: MediaPlayerBrowseAction;
entityId: string;
diff --git a/src/components/media-player/show-media-manage-dialog.ts b/src/components/media-player/show-media-manage-dialog.ts
index 34a192319f..398dbf0721 100644
--- a/src/components/media-player/show-media-manage-dialog.ts
+++ b/src/components/media-player/show-media-manage-dialog.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../common/dom/fire_event";
import type { MediaPlayerItem } from "../../data/media-player";
+import { fireEvent } from "../../common/dom/fire_event";
+
export interface MediaManageDialogParams {
currentItem: MediaPlayerItem;
onClose?: () => void;
diff --git a/src/components/search-input-outlined.ts b/src/components/search-input-outlined.ts
index bc43b88ecc..f03e7e21a4 100644
--- a/src/components/search-input-outlined.ts
+++ b/src/components/search-input-outlined.ts
@@ -1,14 +1,17 @@
-import { mdiClose, mdiMagnify } from "@mdi/js";
-import type { TemplateResult } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, query } from "lit/decorators";
-import { fireEvent } from "../common/dom/fire_event";
import type { HomeAssistant } from "../types";
+import type { HaOutlinedTextField } from "./ha-outlined-text-field";
+import type { TemplateResult } from "lit";
+
import "./ha-icon-button";
import "./ha-outlined-text-field";
-import type { HaOutlinedTextField } from "./ha-outlined-text-field";
import "./ha-svg-icon";
+import { mdiClose, mdiMagnify } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, query } from "lit/decorators";
+
+import { fireEvent } from "../common/dom/fire_event";
+
@customElement("search-input-outlined")
class SearchInputOutlined extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/components/search-input.ts b/src/components/search-input.ts
index d347e3e39c..0a841125a1 100644
--- a/src/components/search-input.ts
+++ b/src/components/search-input.ts
@@ -1,12 +1,15 @@
-import { mdiClose, mdiMagnify } from "@mdi/js";
+import type { HomeAssistant } from "../types";
+import type { HaTextField } from "./ha-textfield";
import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, query } from "lit/decorators";
+
import "./ha-icon-button";
import "./ha-svg-icon";
import "./ha-textfield";
-import type { HaTextField } from "./ha-textfield";
-import type { HomeAssistant } from "../types";
+
+import { mdiClose, mdiMagnify } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement, property, query } from "lit/decorators";
+
import { fireEvent } from "../common/dom/fire_event";
@customElement("search-input")
diff --git a/src/components/tile/ha-tile-badge.ts b/src/components/tile/ha-tile-badge.ts
index 7ec189f2b5..dce40e38ae 100644
--- a/src/components/tile/ha-tile-badge.ts
+++ b/src/components/tile/ha-tile-badge.ts
@@ -1,7 +1,9 @@
import type { TemplateResult } from "lit";
+
+import "../ha-icon";
+
import { css, html, LitElement } from "lit";
import { customElement } from "lit/decorators";
-import "../ha-icon";
@customElement("ha-tile-badge")
export class HaTileBadge extends LitElement {
diff --git a/src/components/tile/ha-tile-icon.ts b/src/components/tile/ha-tile-icon.ts
index 5c9f29f0f2..1fe85681b4 100644
--- a/src/components/tile/ha-tile-icon.ts
+++ b/src/components/tile/ha-tile-icon.ts
@@ -1,8 +1,10 @@
import type { TemplateResult } from "lit";
-import { LitElement, css, html } from "lit";
-import { customElement, property } from "lit/decorators";
+
import "../ha-icon";
import "../ha-svg-icon";
+
+import { LitElement, css, html } from "lit";
+import { customElement, property } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
export type TileIconImageStyle = "square" | "rounded-square" | "circle";
diff --git a/src/components/tile/ha-tile-info.ts b/src/components/tile/ha-tile-info.ts
index b18adc3e20..28007c8fe0 100644
--- a/src/components/tile/ha-tile-info.ts
+++ b/src/components/tile/ha-tile-info.ts
@@ -1,4 +1,5 @@
import type { TemplateResult } from "lit";
+
import { html, css, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
diff --git a/src/components/trace/ha-timeline.ts b/src/components/trace/ha-timeline.ts
index b7ab5b2757..30ca4a7b69 100644
--- a/src/components/trace/ha-timeline.ts
+++ b/src/components/trace/ha-timeline.ts
@@ -1,9 +1,12 @@
-import { mdiCircleOutline } from "@mdi/js";
import type { TemplateResult } from "lit";
+
+import "../ha-svg-icon";
+
+import { mdiCircleOutline } from "@mdi/js";
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { buttonLinkStyle } from "../../resources/styles";
-import "../ha-svg-icon";
@customElement("ha-timeline")
export class HaTimeline extends LitElement {
diff --git a/src/components/trace/ha-trace-blueprint-config.ts b/src/components/trace/ha-trace-blueprint-config.ts
index f9818e1c74..c3d181d6a7 100644
--- a/src/components/trace/ha-trace-blueprint-config.ts
+++ b/src/components/trace/ha-trace-blueprint-config.ts
@@ -1,11 +1,13 @@
-import { dump } from "js-yaml";
-import type { TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import "../ha-code-editor";
-import "../ha-icon-button";
import type { TraceExtended } from "../../data/trace";
import type { HomeAssistant } from "../../types";
+import type { TemplateResult } from "lit";
+
+import "../ha-code-editor";
+import "../ha-icon-button";
+
+import { dump } from "js-yaml";
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
@customElement("ha-trace-blueprint-config")
export class HaTraceBlueprintConfig extends LitElement {
diff --git a/src/components/trace/ha-trace-config.ts b/src/components/trace/ha-trace-config.ts
index efc7e0f0c9..cc97155880 100644
--- a/src/components/trace/ha-trace-config.ts
+++ b/src/components/trace/ha-trace-config.ts
@@ -1,11 +1,13 @@
-import { dump } from "js-yaml";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import "../ha-code-editor";
-import "../ha-icon-button";
import type { TraceExtended } from "../../data/trace";
import type { HomeAssistant } from "../../types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../ha-code-editor";
+import "../ha-icon-button";
+
+import { dump } from "js-yaml";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
@customElement("ha-trace-config")
export class HaTraceConfig extends LitElement {
diff --git a/src/components/trace/ha-trace-logbook.ts b/src/components/trace/ha-trace-logbook.ts
index 08158cb2bc..20eca960d9 100644
--- a/src/components/trace/ha-trace-logbook.ts
+++ b/src/components/trace/ha-trace-logbook.ts
@@ -1,11 +1,13 @@
+import type { LogbookEntry } from "../../data/logbook";
+import type { TraceExtended } from "../../data/trace";
+import type { HomeAssistant } from "../../types";
import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../panels/logbook/ha-logbook-renderer";
+import "./hat-logbook-note";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
-import type { LogbookEntry } from "../../data/logbook";
-import type { HomeAssistant } from "../../types";
-import "./hat-logbook-note";
-import "../../panels/logbook/ha-logbook-renderer";
-import type { TraceExtended } from "../../data/trace";
@customElement("ha-trace-logbook")
export class HaTraceLogbook extends LitElement {
diff --git a/src/components/trace/ha-trace-path-details.ts b/src/components/trace/ha-trace-path-details.ts
index 19f38a333d..7914a8e732 100644
--- a/src/components/trace/ha-trace-path-details.ts
+++ b/src/components/trace/ha-trace-path-details.ts
@@ -1,34 +1,37 @@
-import { dump } from "js-yaml";
-import { consume } from "@lit-labs/context";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import { formatDateTimeWithSeconds } from "../../common/datetime/format_date_time";
-import "../ha-code-editor";
-import "../ha-icon-button";
-import "./hat-logbook-note";
+import type { EntityRegistryEntry } from "../../data/entity_registry";
+import type { FloorRegistryEntry } from "../../data/floor_registry";
+import type { LabelRegistryEntry } from "../../data/label_registry";
import type { LogbookEntry } from "../../data/logbook";
import type {
ActionTraceStep,
ChooseActionTraceStep,
TraceExtended,
} from "../../data/trace";
-import { getDataFromPath } from "../../data/trace";
-import "../../panels/logbook/ha-logbook-renderer";
-import { traceTabStyles } from "./trace-tab-styles";
import type { HomeAssistant } from "../../types";
import type { NodeInfo } from "./hat-script-graph";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../panels/logbook/ha-logbook-renderer";
+import "../ha-code-editor";
+import "../ha-icon-button";
+import "./hat-logbook-note";
+
+import { consume } from "@lit-labs/context";
+import { dump } from "js-yaml";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+
+import { formatDateTimeWithSeconds } from "../../common/datetime/format_date_time";
import { describeCondition, describeTrigger } from "../../data/automation_i18n";
-import type { EntityRegistryEntry } from "../../data/entity_registry";
-import type { LabelRegistryEntry } from "../../data/label_registry";
-import type { FloorRegistryEntry } from "../../data/floor_registry";
import {
floorsContext,
fullEntitiesContext,
labelsContext,
} from "../../data/context";
import { describeAction } from "../../data/script_i18n";
+import { getDataFromPath } from "../../data/trace";
+import { traceTabStyles } from "./trace-tab-styles";
const TRACE_PATH_TABS = [
"step_config",
diff --git a/src/components/trace/ha-trace-timeline.ts b/src/components/trace/ha-trace-timeline.ts
index 024e257f68..2e87a850f6 100644
--- a/src/components/trace/ha-trace-timeline.ts
+++ b/src/components/trace/ha-trace-timeline.ts
@@ -1,12 +1,14 @@
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import "./hat-logbook-note";
-import "./hat-trace-timeline";
import type { LogbookEntry } from "../../data/logbook";
import type { TraceExtended } from "../../data/trace";
import type { HomeAssistant } from "../../types";
import type { NodeInfo } from "./hat-script-graph";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "./hat-logbook-note";
+import "./hat-trace-timeline";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
@customElement("ha-trace-timeline")
export class HaTraceTimeline extends LitElement {
diff --git a/src/components/trace/hat-graph-branch.ts b/src/components/trace/hat-graph-branch.ts
index 04a9c936c8..c392ae67fa 100644
--- a/src/components/trace/hat-graph-branch.ts
+++ b/src/components/trace/hat-graph-branch.ts
@@ -1,6 +1,7 @@
import { css, html, LitElement, nothing, svg } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { BRANCH_HEIGHT, SPACING } from "./hat-graph-const";
interface BranchConfig {
diff --git a/src/components/trace/hat-graph-node.ts b/src/components/trace/hat-graph-node.ts
index 330338b7cc..2a79cc0bcc 100644
--- a/src/components/trace/hat-graph-node.ts
+++ b/src/components/trace/hat-graph-node.ts
@@ -1,7 +1,9 @@
-import { mdiExclamationThick } from "@mdi/js";
import type { PropertyValues, TemplateResult } from "lit";
+
+import { mdiExclamationThick } from "@mdi/js";
import { LitElement, css, html, nothing, svg } from "lit";
import { customElement, property } from "lit/decorators";
+
import { isSafari } from "../../util/is_safari";
import { NODE_SIZE, SPACING } from "./hat-graph-const";
diff --git a/src/components/trace/hat-graph-spacer.ts b/src/components/trace/hat-graph-spacer.ts
index 385605e644..7b9a4feaa0 100644
--- a/src/components/trace/hat-graph-spacer.ts
+++ b/src/components/trace/hat-graph-spacer.ts
@@ -1,5 +1,6 @@
import { css, LitElement, html } from "lit";
import { customElement, property } from "lit/decorators";
+
import { SPACING, NODE_SIZE } from "./hat-graph-const";
/**
diff --git a/src/components/trace/hat-logbook-note.ts b/src/components/trace/hat-logbook-note.ts
index bda976fe28..b307e357d7 100644
--- a/src/components/trace/hat-logbook-note.ts
+++ b/src/components/trace/hat-logbook-note.ts
@@ -1,6 +1,7 @@
+import type { HomeAssistant } from "../../types";
+
import { css, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
-import type { HomeAssistant } from "../../types";
@customElement("hat-logbook-note")
class HatLogbookNote extends LitElement {
diff --git a/src/components/trace/hat-script-graph.ts b/src/components/trace/hat-script-graph.ts
index 41d0ae51e9..77eed5c329 100644
--- a/src/components/trace/hat-script-graph.ts
+++ b/src/components/trace/hat-script-graph.ts
@@ -1,3 +1,31 @@
+import type { Condition, Trigger } from "../../data/automation";
+import type {
+ Action,
+ ChooseAction,
+ IfAction,
+ ManualScriptConfig,
+ ParallelAction,
+ RepeatAction,
+ SequenceAction,
+ ServiceAction,
+ WaitAction,
+ WaitForTriggerAction,
+} from "../../data/script";
+import type {
+ ChooseActionTraceStep,
+ ConditionTraceStep,
+ IfActionTraceStep,
+ TraceExtended,
+} from "../../data/trace";
+import type { HomeAssistant } from "../../types";
+import type { PropertyValues } from "lit";
+
+import "../ha-icon-button";
+import "../ha-service-icon";
+import "./hat-graph-branch";
+import "./hat-graph-node";
+import "./hat-graph-spacer";
+
import {
mdiAbTesting,
mdiArrowDecision,
@@ -18,40 +46,15 @@ import {
mdiRoomService,
mdiShuffleDisabled,
} from "@mdi/js";
-import type { PropertyValues } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property } from "lit/decorators";
+
import { ensureArray } from "../../common/array/ensure-array";
import { fireEvent } from "../../common/dom/fire_event";
-import type { Condition, Trigger } from "../../data/automation";
-import { flattenTriggers } from "../../data/automation";
-import type {
- Action,
- ChooseAction,
- IfAction,
- ManualScriptConfig,
- ParallelAction,
- RepeatAction,
- SequenceAction,
- ServiceAction,
- WaitAction,
- WaitForTriggerAction,
-} from "../../data/script";
-import { getActionType } from "../../data/script";
-import type {
- ChooseActionTraceStep,
- ConditionTraceStep,
- IfActionTraceStep,
- TraceExtended,
-} from "../../data/trace";
-import type { HomeAssistant } from "../../types";
-import "../ha-icon-button";
-import "../ha-service-icon";
-import "./hat-graph-branch";
-import { BRANCH_HEIGHT, NODE_SIZE, SPACING } from "./hat-graph-const";
-import "./hat-graph-node";
-import "./hat-graph-spacer";
import { ACTION_ICONS } from "../../data/action";
+import { flattenTriggers } from "../../data/automation";
+import { getActionType } from "../../data/script";
+import { BRANCH_HEIGHT, NODE_SIZE, SPACING } from "./hat-graph-const";
type NodeType = "trigger" | "condition" | "action" | "chooseOption" | undefined;
diff --git a/src/components/trace/hat-trace-timeline.ts b/src/components/trace/hat-trace-timeline.ts
index 7c330ccde1..6af3b9aa49 100644
--- a/src/components/trace/hat-trace-timeline.ts
+++ b/src/components/trace/hat-trace-timeline.ts
@@ -1,25 +1,3 @@
-import { consume } from "@lit-labs/context";
-import {
- mdiAlertCircle,
- mdiCircle,
- mdiCircleOutline,
- mdiProgressClock,
- mdiProgressWrench,
- mdiRecordCircleOutline,
-} from "@mdi/js";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { ifDefined } from "lit/directives/if-defined";
-import { formatDateTimeWithSeconds } from "../../common/datetime/format_date_time";
-import { relativeTime } from "../../common/datetime/relative_time";
-import { fireEvent } from "../../common/dom/fire_event";
-import { toggleAttribute } from "../../common/dom/toggle_attribute";
-import {
- floorsContext,
- fullEntitiesContext,
- labelsContext,
-} from "../../data/context";
import type { EntityRegistryEntry } from "../../data/entity_registry";
import type { FloorRegistryEntry } from "../../data/floor_registry";
import type { LabelRegistryEntry } from "../../data/label_registry";
@@ -32,8 +10,6 @@ import type {
RepeatAction,
SequenceAction,
} from "../../data/script";
-import { getActionType } from "../../data/script";
-import { describeAction } from "../../data/script_i18n";
import type {
ActionTraceStep,
AutomationTraceExtended,
@@ -41,10 +17,37 @@ import type {
IfActionTraceStep,
TriggerTraceStep,
} from "../../data/trace";
-import { getDataFromPath, isTriggerPath } from "../../data/trace";
import type { HomeAssistant } from "../../types";
-import "./ha-timeline";
import type { HaTimeline } from "./ha-timeline";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "./ha-timeline";
+
+import { consume } from "@lit-labs/context";
+import {
+ mdiAlertCircle,
+ mdiCircle,
+ mdiCircleOutline,
+ mdiProgressClock,
+ mdiProgressWrench,
+ mdiRecordCircleOutline,
+} from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { ifDefined } from "lit/directives/if-defined";
+
+import { formatDateTimeWithSeconds } from "../../common/datetime/format_date_time";
+import { relativeTime } from "../../common/datetime/relative_time";
+import { fireEvent } from "../../common/dom/fire_event";
+import { toggleAttribute } from "../../common/dom/toggle_attribute";
+import {
+ floorsContext,
+ fullEntitiesContext,
+ labelsContext,
+} from "../../data/context";
+import { getActionType } from "../../data/script";
+import { describeAction } from "../../data/script_i18n";
+import { getDataFromPath, isTriggerPath } from "../../data/trace";
const LOGBOOK_ENTRIES_BEFORE_FOLD = 2;
diff --git a/src/components/user/ha-person-badge.ts b/src/components/user/ha-person-badge.ts
index 8b5078b2c1..724d931b69 100644
--- a/src/components/user/ha-person-badge.ts
+++ b/src/components/user/ha-person-badge.ts
@@ -1,10 +1,12 @@
+import type { BasePerson } from "../../data/person";
+import type { HomeAssistant } from "../../types";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { styleMap } from "lit/directives/style-map";
-import type { BasePerson } from "../../data/person";
+
import { computeUserInitials } from "../../data/user";
-import type { HomeAssistant } from "../../types";
@customElement("ha-person-badge")
class PersonBadge extends LitElement {
diff --git a/src/components/user/ha-user-badge.ts b/src/components/user/ha-user-badge.ts
index df1520d60b..3d9755b0d5 100644
--- a/src/components/user/ha-user-badge.ts
+++ b/src/components/user/ha-user-badge.ts
@@ -1,12 +1,14 @@
+import type { User } from "../../data/user";
+import type { CurrentUser, HomeAssistant } from "../../types";
import type { PropertyValues } from "lit";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { styleMap } from "lit/directives/style-map";
+
import { computeStateDomain } from "../../common/entity/compute_state_domain";
-import type { User } from "../../data/user";
import { computeUserInitials } from "../../data/user";
-import type { CurrentUser, HomeAssistant } from "../../types";
@customElement("ha-user-badge")
class UserBadge extends LitElement {
diff --git a/src/components/user/ha-user-picker.ts b/src/components/user/ha-user-picker.ts
index 3536d8d542..853ba467f9 100644
--- a/src/components/user/ha-user-picker.ts
+++ b/src/components/user/ha-user-picker.ts
@@ -1,16 +1,19 @@
-import "@material/mwc-list/mwc-list-item";
+import type { User } from "../../data/user";
+import type { HomeAssistant } from "../../types";
import type { TemplateResult } from "lit";
+
+import "../ha-list-item";
+import "../ha-select";
+import "./ha-user-badge";
+import "@material/mwc-list/mwc-list-item";
+
import { css, html, LitElement } from "lit";
import { property } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../common/dom/fire_event";
import { stringCompare } from "../../common/string/compare";
-import type { User } from "../../data/user";
import { fetchUsers } from "../../data/user";
-import type { HomeAssistant } from "../../types";
-import "../ha-select";
-import "./ha-user-badge";
-import "../ha-list-item";
class HaUserPicker extends LitElement {
public hass?: HomeAssistant;
diff --git a/src/components/user/ha-users-picker.ts b/src/components/user/ha-users-picker.ts
index d3160be467..69f45f5ce5 100644
--- a/src/components/user/ha-users-picker.ts
+++ b/src/components/user/ha-users-picker.ts
@@ -1,14 +1,17 @@
+import type { User } from "../../data/user";
+import type { ValueChangedEvent, HomeAssistant } from "../../types";
+
+import "../ha-icon-button";
+import "./ha-user-picker";
+
import { mdiClose } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import { guard } from "lit/directives/guard";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../common/dom/fire_event";
-import type { User } from "../../data/user";
import { fetchUsers } from "../../data/user";
-import type { ValueChangedEvent, HomeAssistant } from "../../types";
-import "../ha-icon-button";
-import "./ha-user-picker";
@customElement("ha-users-picker")
class HaUsersPickerLight extends LitElement {
diff --git a/src/data/action.ts b/src/data/action.ts
index 37ce9c8e70..741755e725 100644
--- a/src/data/action.ts
+++ b/src/data/action.ts
@@ -1,3 +1,5 @@
+import type { AutomationElementGroup } from "./automation";
+
import {
mdiAbTesting,
mdiApplicationVariableOutline,
@@ -19,7 +21,6 @@ import {
mdiTools,
mdiTrafficLight,
} from "@mdi/js";
-import type { AutomationElementGroup } from "./automation";
export const ACTION_ICONS = {
condition: mdiAbTesting,
diff --git a/src/data/alarm_control_panel.ts b/src/data/alarm_control_panel.ts
index e5169ff71b..3f54ccc460 100644
--- a/src/data/alarm_control_panel.ts
+++ b/src/data/alarm_control_panel.ts
@@ -1,3 +1,9 @@
+import type { HomeAssistant } from "../types";
+import type {
+ HassEntityAttributeBase,
+ HassEntityBase,
+} from "home-assistant-js-websocket";
+
import {
mdiAirplane,
mdiHome,
@@ -6,13 +12,9 @@ import {
mdiShield,
mdiShieldOff,
} from "@mdi/js";
-import type {
- HassEntityAttributeBase,
- HassEntityBase,
-} from "home-assistant-js-websocket";
+
import { supportsFeature } from "../common/entity/supports-feature";
import { showEnterCodeDialog } from "../dialogs/enter-code/show-enter-code-dialog";
-import type { HomeAssistant } from "../types";
import { getExtendedEntityRegistryEntry } from "./entity_registry";
export const FORMAT_TEXT = "text";
diff --git a/src/data/area_registry.ts b/src/data/area_registry.ts
index 2fca94fcaa..464334d03c 100644
--- a/src/data/area_registry.ts
+++ b/src/data/area_registry.ts
@@ -1,9 +1,10 @@
-import { stringCompare } from "../common/string/compare";
import type { HomeAssistant } from "../types";
import type { DeviceRegistryEntry } from "./device_registry";
import type { EntityRegistryEntry } from "./entity_registry";
import type { RegistryEntry } from "./registry";
+import { stringCompare } from "../common/string/compare";
+
export { subscribeAreaRegistry } from "./ws-area_registry";
export interface AreaRegistryEntry extends RegistryEntry {
diff --git a/src/data/assist_satellite.ts b/src/data/assist_satellite.ts
index 7b13c4a47c..d3f4845db2 100644
--- a/src/data/assist_satellite.ts
+++ b/src/data/assist_satellite.ts
@@ -1,5 +1,6 @@
-import type { HassEntity } from "home-assistant-js-websocket";
import type { HomeAssistant } from "../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+
import { supportsFeature } from "../common/entity/supports-feature";
import { UNAVAILABLE } from "./entity";
diff --git a/src/data/automation.ts b/src/data/automation.ts
index 7308e51e34..cabea88a63 100644
--- a/src/data/automation.ts
+++ b/src/data/automation.ts
@@ -1,15 +1,17 @@
-import type {
- HassEntityAttributeBase,
- HassEntityBase,
-} from "home-assistant-js-websocket";
-import { navigate } from "../common/navigate";
-import { ensureArray } from "../common/array/ensure-array";
import type { Context, HomeAssistant } from "../types";
import type { BlueprintInput } from "./blueprint";
import type { DeviceCondition, DeviceTrigger } from "./device_automation";
import type { Action, MODES } from "./script";
-import { migrateAutomationAction } from "./script";
+import type {
+ HassEntityAttributeBase,
+ HassEntityBase,
+} from "home-assistant-js-websocket";
+
+import { ensureArray } from "../common/array/ensure-array";
+import { navigate } from "../common/navigate";
import { createSearchParam } from "../common/url/search-params";
+import { migrateAutomationAction } from "./script";
+
export const AUTOMATION_DEFAULT_MODE: (typeof MODES)[number] = "single";
export const AUTOMATION_DEFAULT_MAX = 10;
diff --git a/src/data/automation_i18n.ts b/src/data/automation_i18n.ts
index 9a914dcaa9..1a73553b81 100644
--- a/src/data/automation_i18n.ts
+++ b/src/data/automation_i18n.ts
@@ -1,4 +1,10 @@
+import type { HomeAssistant } from "../types";
+import type { Condition, ForDict, Trigger } from "./automation";
+import type { DeviceCondition, DeviceTrigger } from "./device_automation";
+import type { EntityRegistryEntry } from "./entity_registry";
+import type { FrontendLocaleData } from "./translation";
import type { HassConfig } from "home-assistant-js-websocket";
+
import { ensureArray } from "../common/array/ensure-array";
import {
formatDurationLong,
@@ -16,15 +22,10 @@ import {
formatListWithAnds,
formatListWithOrs,
} from "../common/string/format-list";
-import type { HomeAssistant } from "../types";
-import type { Condition, ForDict, Trigger } from "./automation";
-import type { DeviceCondition, DeviceTrigger } from "./device_automation";
import {
localizeDeviceAutomationCondition,
localizeDeviceAutomationTrigger,
} from "./device_automation";
-import type { EntityRegistryEntry } from "./entity_registry";
-import type { FrontendLocaleData } from "./translation";
import { isTriggerList } from "./trigger";
const triggerTranslationBaseKey =
diff --git a/src/data/backup.ts b/src/data/backup.ts
index ecdc679728..a2a4b4742e 100644
--- a/src/data/backup.ts
+++ b/src/data/backup.ts
@@ -1,20 +1,22 @@
+import type { LocalizeFunc } from "../common/translations/localize";
+import type { HomeAssistant } from "../types";
+import type { BackupManagerState, ManagerStateEvent } from "./backup_manager";
+import type { FrontendLocaleData } from "./translation";
+import type { HassConfig } from "home-assistant-js-websocket";
+
import { memoize } from "@fullcalendar/core/internal";
import { setHours, setMinutes } from "date-fns";
-import type { HassConfig } from "home-assistant-js-websocket";
import memoizeOne from "memoize-one";
+
+import checkValidDate from "../common/datetime/check_valid_date";
import {
formatDateTime,
formatDateTimeNumeric,
} from "../common/datetime/format_date_time";
import { formatTime } from "../common/datetime/format_time";
-import type { LocalizeFunc } from "../common/translations/localize";
-import type { HomeAssistant } from "../types";
import { fileDownload } from "../util/file_download";
-import { domainToName } from "./integration";
-import type { FrontendLocaleData } from "./translation";
-import type { BackupManagerState, ManagerStateEvent } from "./backup_manager";
-import checkValidDate from "../common/datetime/check_valid_date";
import { handleFetchPromise } from "../util/hass-call-api";
+import { domainToName } from "./integration";
export const enum BackupScheduleRecurrence {
NEVER = "never",
diff --git a/src/data/backup_onboarding.ts b/src/data/backup_onboarding.ts
index 3609c03761..92c9454d6b 100644
--- a/src/data/backup_onboarding.ts
+++ b/src/data/backup_onboarding.ts
@@ -1,4 +1,3 @@
-import { handleFetchPromise } from "../util/hass-call-api";
import type { BackupContentExtended } from "./backup";
import type {
BackupManagerState,
@@ -6,6 +5,8 @@ import type {
RestoreBackupState,
} from "./backup_manager";
+import { handleFetchPromise } from "../util/hass-call-api";
+
export interface BackupOnboardingInfo {
state: BackupManagerState;
last_action_event?: {
diff --git a/src/data/bluetooth.ts b/src/data/bluetooth.ts
index 901d51672f..34d0aafa8c 100644
--- a/src/data/bluetooth.ts
+++ b/src/data/bluetooth.ts
@@ -1,10 +1,11 @@
+import type { DataTableRowData } from "../components/data-table/ha-data-table";
+import type { Store } from "home-assistant-js-websocket/dist/store";
+
import {
createCollection,
type Connection,
type UnsubscribeFunc,
} from "home-assistant-js-websocket";
-import type { Store } from "home-assistant-js-websocket/dist/store";
-import type { DataTableRowData } from "../components/data-table/ha-data-table";
export interface BluetoothDeviceData extends DataTableRowData {
address: string;
diff --git a/src/data/calendar.ts b/src/data/calendar.ts
index 17dcf48587..3381baea8c 100644
--- a/src/data/calendar.ts
+++ b/src/data/calendar.ts
@@ -1,7 +1,8 @@
+import type { HomeAssistant } from "../types";
+
import { getColorByIndex } from "../common/color/colors";
import { computeDomain } from "../common/entity/compute_domain";
import { computeStateName } from "../common/entity/compute_state_name";
-import type { HomeAssistant } from "../types";
import { isUnavailableState } from "./entity";
export interface Calendar {
diff --git a/src/data/camera.ts b/src/data/camera.ts
index b8bf02d5de..7a0dd83bf5 100644
--- a/src/data/camera.ts
+++ b/src/data/camera.ts
@@ -1,9 +1,10 @@
+import type { HomeAssistant } from "../types";
import type {
HassEntityAttributeBase,
HassEntityBase,
} from "home-assistant-js-websocket";
+
import { timeCacheEntityPromiseFunc } from "../common/util/time-cache-entity-promise-func";
-import type { HomeAssistant } from "../types";
import { getSignedPath } from "./auth";
export const CAMERA_ORIENTATIONS = [1, 2, 3, 4, 6, 8];
diff --git a/src/data/category_registry.ts b/src/data/category_registry.ts
index 94fe76904f..ff89f3f232 100644
--- a/src/data/category_registry.ts
+++ b/src/data/category_registry.ts
@@ -1,8 +1,10 @@
-import type { Connection } from "home-assistant-js-websocket";
-import { createCollection } from "home-assistant-js-websocket";
-import type { Store } from "home-assistant-js-websocket/dist/store";
-import { stringCompare } from "../common/string/compare";
import type { HomeAssistant } from "../types";
+import type { Connection } from "home-assistant-js-websocket";
+import type { Store } from "home-assistant-js-websocket/dist/store";
+
+import { createCollection } from "home-assistant-js-websocket";
+
+import { stringCompare } from "../common/string/compare";
import { debounce } from "../common/util/debounce";
export interface CategoryRegistryEntry {
diff --git a/src/data/climate.ts b/src/data/climate.ts
index 8e59567a6a..f31f5d5276 100644
--- a/src/data/climate.ts
+++ b/src/data/climate.ts
@@ -1,3 +1,8 @@
+import type {
+ HassEntityAttributeBase,
+ HassEntityBase,
+} from "home-assistant-js-websocket";
+
import {
mdiFan,
mdiFire,
@@ -8,10 +13,6 @@ import {
mdiThermostatAuto,
mdiWaterPercent,
} from "@mdi/js";
-import type {
- HassEntityAttributeBase,
- HassEntityBase,
-} from "home-assistant-js-websocket";
export const HVAC_MODES = [
"auto",
diff --git a/src/data/cloud/tts.ts b/src/data/cloud/tts.ts
index 103c389075..a3ede69a32 100644
--- a/src/data/cloud/tts.ts
+++ b/src/data/cloud/tts.ts
@@ -1,6 +1,7 @@
-import { caseInsensitiveStringCompare } from "../../common/string/compare";
import type { HomeAssistant } from "../../types";
+import { caseInsensitiveStringCompare } from "../../common/string/compare";
+
export interface CloudTTSInfo {
languages: [string, string][];
}
diff --git a/src/data/collection.ts b/src/data/collection.ts
index 476d416e86..688255e57f 100644
--- a/src/data/collection.ts
+++ b/src/data/collection.ts
@@ -3,9 +3,10 @@ import type {
Connection,
UnsubscribeFunc,
} from "home-assistant-js-websocket";
-import { getCollection } from "home-assistant-js-websocket";
import type { Store } from "home-assistant-js-websocket/dist/store";
+import { getCollection } from "home-assistant-js-websocket";
+
interface OptimisticCollection extends Collection {
save(data: T): Promise;
}
diff --git a/src/data/condition.ts b/src/data/condition.ts
index 0951d6bc54..e9b06c6aa0 100644
--- a/src/data/condition.ts
+++ b/src/data/condition.ts
@@ -1,3 +1,5 @@
+import type { AutomationElementGroup } from "./automation";
+
import {
mdiAmpersand,
mdiClockOutline,
@@ -15,7 +17,6 @@ import {
mdiStateMachine,
mdiWeatherSunny,
} from "@mdi/js";
-import type { AutomationElementGroup } from "./automation";
export const CONDITION_ICONS = {
device: mdiDevices,
diff --git a/src/data/config_entries.ts b/src/data/config_entries.ts
index f64f236ca4..22a7f805d2 100644
--- a/src/data/config_entries.ts
+++ b/src/data/config_entries.ts
@@ -1,6 +1,6 @@
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { HomeAssistant } from "../types";
import type { IntegrationType } from "./integration";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
export interface ConfigEntry {
entry_id: string;
diff --git a/src/data/config_flow.ts b/src/data/config_flow.ts
index 3144fea531..f0077bd80d 100644
--- a/src/data/config_flow.ts
+++ b/src/data/config_flow.ts
@@ -1,13 +1,15 @@
-import type { Connection } from "home-assistant-js-websocket";
-import { getCollection } from "home-assistant-js-websocket";
import type { LocalizeFunc } from "../common/translations/localize";
-import { debounce } from "../common/util/debounce";
import type { HomeAssistant } from "../types";
import type {
DataEntryFlowProgress,
DataEntryFlowStep,
} from "./data_entry_flow";
import type { IntegrationType } from "./integration";
+import type { Connection } from "home-assistant-js-websocket";
+
+import { getCollection } from "home-assistant-js-websocket";
+
+import { debounce } from "../common/util/debounce";
import { domainToName } from "./integration";
export const DISCOVERY_SOURCES = [
diff --git a/src/data/connection-status.ts b/src/data/connection-status.ts
index 7068304474..21d4ac3a72 100644
--- a/src/data/connection-status.ts
+++ b/src/data/connection-status.ts
@@ -3,6 +3,7 @@
*/
import type { HASSDomEvent } from "../common/dom/fire_event";
+
import { fireEvent } from "../common/dom/fire_event";
export type ConnectionStatus = "connected" | "auth-invalid" | "disconnected";
diff --git a/src/data/context.ts b/src/data/context.ts
index 94be214c5a..8c50df78bb 100644
--- a/src/data/context.ts
+++ b/src/data/context.ts
@@ -1,8 +1,9 @@
-import { createContext } from "@lit-labs/context";
-import type { HassConfig } from "home-assistant-js-websocket";
import type { HomeAssistant } from "../types";
import type { EntityRegistryEntry } from "./entity_registry";
import type { LabelRegistryEntry } from "./label_registry";
+import type { HassConfig } from "home-assistant-js-websocket";
+
+import { createContext } from "@lit-labs/context";
export const connectionContext =
createContext("connection");
diff --git a/src/data/conversation.ts b/src/data/conversation.ts
index 638ec6824c..616d1f9d98 100644
--- a/src/data/conversation.ts
+++ b/src/data/conversation.ts
@@ -1,6 +1,7 @@
-import { ensureArray } from "../common/array/ensure-array";
import type { HomeAssistant } from "../types";
+import { ensureArray } from "../common/array/ensure-array";
+
export const enum ConversationEntityFeature {
CONTROL = 1,
}
diff --git a/src/data/core.ts b/src/data/core.ts
index cdda3baf12..51e201b490 100644
--- a/src/data/core.ts
+++ b/src/data/core.ts
@@ -1,5 +1,5 @@
-import type { HassConfig } from "home-assistant-js-websocket";
import type { HomeAssistant } from "../types";
+import type { HassConfig } from "home-assistant-js-websocket";
export interface ConfigUpdateValues {
location_name: string;
diff --git a/src/data/cover.ts b/src/data/cover.ts
index 1c5a4e5afb..c619c84932 100644
--- a/src/data/cover.ts
+++ b/src/data/cover.ts
@@ -1,10 +1,11 @@
+import type { HomeAssistant } from "../types";
import type {
HassEntityAttributeBase,
HassEntityBase,
} from "home-assistant-js-websocket";
+
import { stateActive } from "../common/entity/state_active";
import { supportsFeature } from "../common/entity/supports-feature";
-import type { HomeAssistant } from "../types";
import { UNAVAILABLE } from "./entity";
export const enum CoverEntityFeature {
diff --git a/src/data/data_entry_flow.ts b/src/data/data_entry_flow.ts
index ded6ecf806..b4a69a9f73 100644
--- a/src/data/data_entry_flow.ts
+++ b/src/data/data_entry_flow.ts
@@ -1,6 +1,6 @@
-import type { Connection } from "home-assistant-js-websocket";
import type { HaFormSchema } from "../components/ha-form/types";
import type { ConfigEntry } from "./config_entries";
+import type { Connection } from "home-assistant-js-websocket";
export type FlowType =
| "config_flow"
diff --git a/src/data/date.ts b/src/data/date.ts
index ea5a8588c8..904071fbcc 100644
--- a/src/data/date.ts
+++ b/src/data/date.ts
@@ -1,5 +1,5 @@
-import type { HassEntityBase } from "home-assistant-js-websocket";
import type { HomeAssistant } from "../types";
+import type { HassEntityBase } from "home-assistant-js-websocket";
export const stateToIsoDateString = (entityState: HassEntityBase) =>
`${entityState}T00:00:00`;
diff --git a/src/data/device_automation.ts b/src/data/device_automation.ts
index e64300a5aa..9c49abf1cd 100644
--- a/src/data/device_automation.ts
+++ b/src/data/device_automation.ts
@@ -1,9 +1,10 @@
-import { computeStateName } from "../common/entity/compute_state_name";
import type { HaFormSchema } from "../components/ha-form/types";
import type { HomeAssistant } from "../types";
import type { BaseTrigger } from "./automation";
-import { migrateAutomationTrigger } from "./automation";
import type { EntityRegistryEntry } from "./entity_registry";
+
+import { computeStateName } from "../common/entity/compute_state_name";
+import { migrateAutomationTrigger } from "./automation";
import {
computeEntityRegistryName,
entityRegistryByEntityId,
diff --git a/src/data/device_registry.ts b/src/data/device_registry.ts
index eece4e9537..487cb54340 100644
--- a/src/data/device_registry.ts
+++ b/src/data/device_registry.ts
@@ -1,5 +1,3 @@
-import { computeStateName } from "../common/entity/compute_state_name";
-import { caseInsensitiveStringCompare } from "../common/string/compare";
import type { HomeAssistant } from "../types";
import type { ConfigEntry } from "./config_entries";
import type {
@@ -9,6 +7,9 @@ import type {
import type { EntitySources } from "./entity_sources";
import type { RegistryEntry } from "./registry";
+import { computeStateName } from "../common/entity/compute_state_name";
+import { caseInsensitiveStringCompare } from "../common/string/compare";
+
export {
fetchDeviceRegistry,
subscribeDeviceRegistry,
diff --git a/src/data/energy.ts b/src/data/energy.ts
index 7c6dee5ade..daf203fac0 100644
--- a/src/data/energy.ts
+++ b/src/data/energy.ts
@@ -1,3 +1,12 @@
+import type { DateRange } from "../common/datetime/calc_date_range";
+import type { HomeAssistant } from "../types";
+import type {
+ Statistics,
+ StatisticsMetaData,
+ StatisticsUnitConfiguration,
+} from "./recorder";
+import type { Collection } from "home-assistant-js-websocket";
+
import {
addDays,
addHours,
@@ -10,26 +19,19 @@ import {
isFirstDayOfMonth,
isLastDayOfMonth,
} from "date-fns";
-import type { Collection } from "home-assistant-js-websocket";
import { getCollection } from "home-assistant-js-websocket";
import memoizeOne from "memoize-one";
+
import {
calcDate,
calcDateProperty,
calcDateDifferenceProperty,
} from "../common/datetime/calc_date";
-import { formatTime24h } from "../common/datetime/format_time";
-import { groupBy } from "../common/util/group-by";
-import type { HomeAssistant } from "../types";
-import type {
- Statistics,
- StatisticsMetaData,
- StatisticsUnitConfiguration,
-} from "./recorder";
-import { fetchStatistics, getStatisticMetadata } from "./recorder";
import { calcDateRange } from "../common/datetime/calc_date_range";
-import type { DateRange } from "../common/datetime/calc_date_range";
+import { formatTime24h } from "../common/datetime/format_time";
import { formatNumber } from "../common/number/format_number";
+import { groupBy } from "../common/util/group-by";
+import { fetchStatistics, getStatisticMetadata } from "./recorder";
const energyCollectionKeys: (string | undefined)[] = [];
diff --git a/src/data/entity_attributes.ts b/src/data/entity_attributes.ts
index e72bf4cd58..b5e32c6ac1 100644
--- a/src/data/entity_attributes.ts
+++ b/src/data/entity_attributes.ts
@@ -1,6 +1,7 @@
-import { formatDurationDigital } from "../common/datetime/format_duration";
import type { FrontendLocaleData } from "./translation";
+import { formatDurationDigital } from "../common/datetime/format_duration";
+
export const STATE_ATTRIBUTES = [
"entity_id",
"assumed_state",
diff --git a/src/data/entity_registry.ts b/src/data/entity_registry.ts
index 4376c7bd45..598fcd8cd8 100644
--- a/src/data/entity_registry.ts
+++ b/src/data/entity_registry.ts
@@ -1,14 +1,16 @@
+import type { HomeAssistant } from "../types";
+import type { LightColor } from "./light";
+import type { RegistryEntry } from "./registry";
import type { Connection } from "home-assistant-js-websocket";
-import { createCollection } from "home-assistant-js-websocket";
import type { Store } from "home-assistant-js-websocket/dist/store";
+
+import { createCollection } from "home-assistant-js-websocket";
import memoizeOne from "memoize-one";
+
+import { computeDomain } from "../common/entity/compute_domain";
import { computeStateName } from "../common/entity/compute_state_name";
import { caseInsensitiveStringCompare } from "../common/string/compare";
import { debounce } from "../common/util/debounce";
-import type { HomeAssistant } from "../types";
-import type { LightColor } from "./light";
-import { computeDomain } from "../common/entity/compute_domain";
-import type { RegistryEntry } from "./registry";
type EntityCategory = "config" | "diagnostic";
diff --git a/src/data/entity_sources.ts b/src/data/entity_sources.ts
index 220201d5bf..d29f75c39a 100644
--- a/src/data/entity_sources.ts
+++ b/src/data/entity_sources.ts
@@ -1,6 +1,7 @@
-import { timeCachePromiseFunc } from "../common/util/time-cache-function-promise";
import type { HomeAssistant } from "../types";
+import { timeCachePromiseFunc } from "../common/util/time-cache-function-promise";
+
interface EntitySource {
domain: string;
}
diff --git a/src/data/fan.ts b/src/data/fan.ts
index 18d6814e8d..08e1a9c86b 100644
--- a/src/data/fan.ts
+++ b/src/data/fan.ts
@@ -1,3 +1,9 @@
+import type { HomeAssistant } from "../types";
+import type {
+ HassEntityAttributeBase,
+ HassEntityBase,
+} from "home-assistant-js-websocket";
+
import {
mdiFan,
mdiFanOff,
@@ -5,12 +11,8 @@ import {
mdiFanSpeed2,
mdiFanSpeed3,
} from "@mdi/js";
-import type {
- HassEntityAttributeBase,
- HassEntityBase,
-} from "home-assistant-js-websocket";
+
import { stateActive } from "../common/entity/state_active";
-import type { HomeAssistant } from "../types";
export const enum FanEntityFeature {
SET_SPEED = 1,
diff --git a/src/data/floor_registry.ts b/src/data/floor_registry.ts
index 8f3bd579c3..4fff77130c 100644
--- a/src/data/floor_registry.ts
+++ b/src/data/floor_registry.ts
@@ -1,8 +1,9 @@
-import { stringCompare } from "../common/string/compare";
import type { HomeAssistant } from "../types";
import type { AreaRegistryEntry } from "./area_registry";
import type { RegistryEntry } from "./registry";
+import { stringCompare } from "../common/string/compare";
+
export { subscribeAreaRegistry } from "./ws-area_registry";
export interface FloorRegistryEntry extends RegistryEntry {
diff --git a/src/data/frontend.ts b/src/data/frontend.ts
index d0217993d5..dee8185251 100644
--- a/src/data/frontend.ts
+++ b/src/data/frontend.ts
@@ -1,4 +1,5 @@
import type { Connection } from "home-assistant-js-websocket";
+
import { getOptimisticCollection } from "./collection";
export interface CoreFrontendUserData {
diff --git a/src/data/group.ts b/src/data/group.ts
index 6096dd9691..1e66fc1276 100644
--- a/src/data/group.ts
+++ b/src/data/group.ts
@@ -2,6 +2,7 @@ import type {
HassEntityAttributeBase,
HassEntityBase,
} from "home-assistant-js-websocket";
+
import { computeDomain } from "../common/entity/compute_domain";
interface GroupEntityAttributes extends HassEntityAttributeBase {
diff --git a/src/data/haptics.ts b/src/data/haptics.ts
index e4868b2a0d..4a9a546891 100644
--- a/src/data/haptics.ts
+++ b/src/data/haptics.ts
@@ -3,6 +3,7 @@
*/
import type { HASSDomEvent } from "../common/dom/fire_event";
+
import { fireEvent } from "../common/dom/fire_event";
// Allowed types are from iOS HIG.
diff --git a/src/data/hassio/addon.ts b/src/data/hassio/addon.ts
index 5154f45006..5c8eb70b28 100644
--- a/src/data/hassio/addon.ts
+++ b/src/data/hassio/addon.ts
@@ -1,10 +1,11 @@
-import { atLeastVersion } from "../../common/config/version";
import type { HaFormSchema } from "../../components/ha-form/types";
import type { HomeAssistant, TranslationDict } from "../../types";
-import { supervisorApiCall } from "../supervisor/common";
import type { StoreAddonDetails } from "../supervisor/store";
import type { Supervisor, SupervisorArch } from "../supervisor/supervisor";
import type { HassioResponse } from "./common";
+
+import { atLeastVersion } from "../../common/config/version";
+import { supervisorApiCall } from "../supervisor/common";
import { extractApiErrorMessage, hassioApiResultExtractor } from "./common";
export type AddonCapability = Exclude<
diff --git a/src/data/hassio/backup.ts b/src/data/hassio/backup.ts
index 66684d1698..71add134c6 100644
--- a/src/data/hassio/backup.ts
+++ b/src/data/hassio/backup.ts
@@ -1,6 +1,7 @@
-import { atLeastVersion } from "../../common/config/version";
import type { HomeAssistant } from "../../types";
import type { HassioResponse } from "./common";
+
+import { atLeastVersion } from "../../common/config/version";
import { hassioApiResultExtractor } from "./common";
export const friendlyFolderName = {
diff --git a/src/data/hassio/common.ts b/src/data/hassio/common.ts
index 1a937b29ca..396ee6dde0 100644
--- a/src/data/hassio/common.ts
+++ b/src/data/hassio/common.ts
@@ -1,6 +1,7 @@
-import { atLeastVersion } from "../../common/config/version";
import type { HomeAssistant } from "../../types";
+import { atLeastVersion } from "../../common/config/version";
+
export interface HassioResponse {
data: T;
message?: string;
diff --git a/src/data/hassio/docker.ts b/src/data/hassio/docker.ts
index c0172ca6eb..7911e9e95f 100644
--- a/src/data/hassio/docker.ts
+++ b/src/data/hassio/docker.ts
@@ -1,6 +1,7 @@
-import { atLeastVersion } from "../../common/config/version";
import type { HomeAssistant } from "../../types";
import type { HassioResponse } from "./common";
+
+import { atLeastVersion } from "../../common/config/version";
import { hassioApiResultExtractor } from "./common";
type HassioDockerRegistries = Record<
diff --git a/src/data/hassio/hardware.ts b/src/data/hassio/hardware.ts
index eb7f562428..7690b4cb29 100644
--- a/src/data/hassio/hardware.ts
+++ b/src/data/hassio/hardware.ts
@@ -1,6 +1,7 @@
-import { atLeastVersion } from "../../common/config/version";
import type { HomeAssistant } from "../../types";
import type { HassioResponse } from "./common";
+
+import { atLeastVersion } from "../../common/config/version";
import { hassioApiResultExtractor } from "./common";
export interface HassioHardwareAudioDevice {
diff --git a/src/data/hassio/host.ts b/src/data/hassio/host.ts
index 46452aa212..153ab99943 100644
--- a/src/data/hassio/host.ts
+++ b/src/data/hassio/host.ts
@@ -1,6 +1,7 @@
-import { atLeastVersion } from "../../common/config/version";
import type { HomeAssistant } from "../../types";
import type { HassioResponse } from "./common";
+
+import { atLeastVersion } from "../../common/config/version";
import { hassioApiResultExtractor } from "./common";
export interface HassioHostInfo {
diff --git a/src/data/hassio/ingress.ts b/src/data/hassio/ingress.ts
index 5ff4b5cfe4..4dd8b3c557 100644
--- a/src/data/hassio/ingress.ts
+++ b/src/data/hassio/ingress.ts
@@ -1,8 +1,9 @@
-import { atLeastVersion } from "../../common/config/version";
import type { HomeAssistant } from "../../types";
import type { HassioResponse } from "./common";
import type { CreateSessionResponse } from "./supervisor";
+import { atLeastVersion } from "../../common/config/version";
+
function setIngressCookie(session: string): string {
document.cookie = `ingress_session=${session};path=/api/hassio_ingress/;SameSite=Strict${
location.protocol === "https:" ? ";Secure" : ""
diff --git a/src/data/hassio/network.ts b/src/data/hassio/network.ts
index 40500360af..d9fd7bf5b8 100644
--- a/src/data/hassio/network.ts
+++ b/src/data/hassio/network.ts
@@ -1,6 +1,7 @@
-import { atLeastVersion } from "../../common/config/version";
import type { HomeAssistant } from "../../types";
import type { HassioResponse } from "./common";
+
+import { atLeastVersion } from "../../common/config/version";
import { hassioApiResultExtractor } from "./common";
interface IpConfiguration {
diff --git a/src/data/hassio/resolution.ts b/src/data/hassio/resolution.ts
index 5b228dc386..05179abf75 100644
--- a/src/data/hassio/resolution.ts
+++ b/src/data/hassio/resolution.ts
@@ -1,6 +1,7 @@
-import { atLeastVersion } from "../../common/config/version";
import type { HomeAssistant, TranslationDict } from "../../types";
import type { HassioResponse } from "./common";
+
+import { atLeastVersion } from "../../common/config/version";
import { hassioApiResultExtractor } from "./common";
export interface HassioResolution {
diff --git a/src/data/hassio/supervisor.ts b/src/data/hassio/supervisor.ts
index 280865210c..a6b38f67a2 100644
--- a/src/data/hassio/supervisor.ts
+++ b/src/data/hassio/supervisor.ts
@@ -1,7 +1,8 @@
-import { atLeastVersion } from "../../common/config/version";
import type { HomeAssistant, PanelInfo } from "../../types";
import type { SupervisorArch } from "../supervisor/supervisor";
import type { HassioResponse } from "./common";
+
+import { atLeastVersion } from "../../common/config/version";
import { hassioApiResultExtractor } from "./common";
export interface HassioHomeAssistantInfo {
diff --git a/src/data/history.ts b/src/data/history.ts
index fb784b54f4..3406fc4bca 100644
--- a/src/data/history.ts
+++ b/src/data/history.ts
@@ -1,16 +1,17 @@
+import type { LocalizeFunc } from "../common/translations/localize";
+import type { HomeAssistant } from "../types";
+import type { Statistics } from "./recorder";
+import type { FrontendLocaleData } from "./translation";
import type {
HassConfig,
HassEntities,
HassEntity,
HassEntityAttributeBase,
} from "home-assistant-js-websocket";
+
import { computeDomain } from "../common/entity/compute_domain";
import { computeStateDisplayFromEntityAttributes } from "../common/entity/compute_state_display";
import { computeStateNameFromEntityAttributes } from "../common/entity/compute_state_name";
-import type { LocalizeFunc } from "../common/translations/localize";
-import type { HomeAssistant } from "../types";
-import type { FrontendLocaleData } from "./translation";
-import type { Statistics } from "./recorder";
const DOMAINS_USE_LAST_UPDATED = ["climate", "humidifier", "water_heater"];
const NEED_ATTRIBUTE_DOMAINS = [
diff --git a/src/data/icons.ts b/src/data/icons.ts
index c59224b2a9..5007324397 100644
--- a/src/data/icons.ts
+++ b/src/data/icons.ts
@@ -1,3 +1,10 @@
+import type { HomeAssistant } from "../types";
+import type {
+ EntityRegistryDisplayEntry,
+ EntityRegistryEntry,
+} from "./entity_registry";
+import type { HassEntity } from "home-assistant-js-websocket";
+
import {
mdiAccount,
mdiAirFilter,
@@ -43,21 +50,16 @@ import {
mdiWeatherPartlyCloudy,
mdiWhiteBalanceSunny,
} from "@mdi/js";
-import type { HassEntity } from "home-assistant-js-websocket";
+
import { isComponentLoaded } from "../common/config/is_component_loaded";
import { atLeastVersion } from "../common/config/version";
import { computeDomain } from "../common/entity/compute_domain";
import { computeObjectId } from "../common/entity/compute_object_id";
import { computeStateDomain } from "../common/entity/compute_state_domain";
import { stateIcon } from "../common/entity/state_icon";
-import type { HomeAssistant } from "../types";
-import type {
- EntityRegistryDisplayEntry,
- EntityRegistryEntry,
-} from "./entity_registry";
-
import { mdiHomeAssistant } from "../resources/home-assistant-logo-svg";
+
/** Icon to use when no icon specified for service. */
export const DEFAULT_SERVICE_ICON = mdiRoomService;
diff --git a/src/data/iconsets.ts b/src/data/iconsets.ts
index 8dbc53259e..3d93fc07bd 100644
--- a/src/data/iconsets.ts
+++ b/src/data/iconsets.ts
@@ -1,8 +1,10 @@
+import type { IconMeta } from "../types";
+
import { clear, get, set, createStore, promisifyRequest } from "idb-keyval";
import memoizeOne from "memoize-one";
+
import { promiseTimeout } from "../common/util/promise-timeout";
import { iconMetadata } from "../resources/icon-metadata";
-import type { IconMeta } from "../types";
export type Icons = Record;
diff --git a/src/data/input_datetime.ts b/src/data/input_datetime.ts
index 069f69a172..f03ac047f4 100644
--- a/src/data/input_datetime.ts
+++ b/src/data/input_datetime.ts
@@ -1,5 +1,5 @@
-import type { HassEntity } from "home-assistant-js-websocket";
import type { HomeAssistant } from "../types";
+import type { HassEntity } from "home-assistant-js-websocket";
export interface InputDateTime {
id: string;
diff --git a/src/data/input_select.ts b/src/data/input_select.ts
index e8f1d22b70..e61f84f7cf 100644
--- a/src/data/input_select.ts
+++ b/src/data/input_select.ts
@@ -1,8 +1,8 @@
+import type { HomeAssistant } from "../types";
import type {
HassEntityAttributeBase,
HassEntityBase,
} from "home-assistant-js-websocket";
-import type { HomeAssistant } from "../types";
interface InputSelectEntityAttributes extends HassEntityAttributeBase {
options: string[];
diff --git a/src/data/integration.ts b/src/data/integration.ts
index 21aa60965e..f58eaf5278 100644
--- a/src/data/integration.ts
+++ b/src/data/integration.ts
@@ -1,7 +1,9 @@
-import type { Connection } from "home-assistant-js-websocket";
-import { createCollection } from "home-assistant-js-websocket";
import type { LocalizeFunc } from "../common/translations/localize";
import type { HomeAssistant } from "../types";
+import type { Connection } from "home-assistant-js-websocket";
+
+import { createCollection } from "home-assistant-js-websocket";
+
import { debounce } from "../common/util/debounce";
export const integrationsWithPanel = {
diff --git a/src/data/integration_quality_scale.ts b/src/data/integration_quality_scale.ts
index e49bbc835d..aeb4ee7e81 100644
--- a/src/data/integration_quality_scale.ts
+++ b/src/data/integration_quality_scale.ts
@@ -1,7 +1,9 @@
-import { mdiContentSave, mdiMedal, mdiTrophy } from "@mdi/js";
-import { mdiHomeAssistant } from "../resources/home-assistant-logo-svg";
import type { LocalizeKeys } from "../common/translations/localize";
+import { mdiContentSave, mdiMedal, mdiTrophy } from "@mdi/js";
+
+import { mdiHomeAssistant } from "../resources/home-assistant-logo-svg";
+
/**
* Map integration quality scale to icon and translation key.
*/
diff --git a/src/data/label_registry.ts b/src/data/label_registry.ts
index 1ee1a9e9ca..8454d05fd5 100644
--- a/src/data/label_registry.ts
+++ b/src/data/label_registry.ts
@@ -1,10 +1,12 @@
-import type { Connection } from "home-assistant-js-websocket";
-import { createCollection } from "home-assistant-js-websocket";
-import type { Store } from "home-assistant-js-websocket/dist/store";
-import { stringCompare } from "../common/string/compare";
-import { debounce } from "../common/util/debounce";
import type { HomeAssistant } from "../types";
import type { RegistryEntry } from "./registry";
+import type { Connection } from "home-assistant-js-websocket";
+import type { Store } from "home-assistant-js-websocket/dist/store";
+
+import { createCollection } from "home-assistant-js-websocket";
+
+import { stringCompare } from "../common/string/compare";
+import { debounce } from "../common/util/debounce";
export interface LabelRegistryEntry extends RegistryEntry {
label_id: string;
diff --git a/src/data/lawn_mower.ts b/src/data/lawn_mower.ts
index fbc2c5875f..737988f54f 100644
--- a/src/data/lawn_mower.ts
+++ b/src/data/lawn_mower.ts
@@ -2,6 +2,7 @@ import type {
HassEntityAttributeBase,
HassEntityBase,
} from "home-assistant-js-websocket";
+
import { UNAVAILABLE } from "./entity";
export type LawnMowerEntityState =
diff --git a/src/data/light.ts b/src/data/light.ts
index d2b699e5c4..e92f064ad4 100644
--- a/src/data/light.ts
+++ b/src/data/light.ts
@@ -2,6 +2,7 @@ import type {
HassEntityAttributeBase,
HassEntityBase,
} from "home-assistant-js-websocket";
+
import { temperature2rgb } from "../common/color/convert-light-color";
export const enum LightEntityFeature {
diff --git a/src/data/lock.ts b/src/data/lock.ts
index ddf4f89122..864fa5fcab 100644
--- a/src/data/lock.ts
+++ b/src/data/lock.ts
@@ -1,11 +1,12 @@
+import type { HomeAssistant } from "../types";
import type {
HassEntityAttributeBase,
HassEntityBase,
} from "home-assistant-js-websocket";
-import { getExtendedEntityRegistryEntry } from "./entity_registry";
+
import { showEnterCodeDialog } from "../dialogs/enter-code/show-enter-code-dialog";
-import type { HomeAssistant } from "../types";
import { UNAVAILABLE } from "./entity";
+import { getExtendedEntityRegistryEntry } from "./entity_registry";
export const enum LockEntityFeature {
OPEN = 1,
diff --git a/src/data/logbook.ts b/src/data/logbook.ts
index d57e27fd26..6d8c18066b 100644
--- a/src/data/logbook.ts
+++ b/src/data/logbook.ts
@@ -1,4 +1,8 @@
+import type { LocalizeFunc } from "../common/translations/localize";
+import type { HaEntityPickerEntityFilterFunc } from "../components/entity/ha-entity-picker";
+import type { HomeAssistant } from "../types";
import type { HassEntity, UnsubscribeFunc } from "home-assistant-js-websocket";
+
import {
BINARY_STATE_OFF,
BINARY_STATE_ON,
@@ -7,9 +11,6 @@ import {
import { computeDomain } from "../common/entity/compute_domain";
import { computeStateDomain } from "../common/entity/compute_state_domain";
import { autoCaseNoun } from "../common/translations/auto_case_noun";
-import type { LocalizeFunc } from "../common/translations/localize";
-import type { HaEntityPickerEntityFilterFunc } from "../components/entity/ha-entity-picker";
-import type { HomeAssistant } from "../types";
import { UNAVAILABLE, UNKNOWN } from "./entity";
const LOGBOOK_LOCALIZE_PATH = "ui.components.logbook.messages";
diff --git a/src/data/lovelace.ts b/src/data/lovelace.ts
index 98ed39e912..0c547611f4 100644
--- a/src/data/lovelace.ts
+++ b/src/data/lovelace.ts
@@ -1,5 +1,3 @@
-import type { Connection, HassEventBase } from "home-assistant-js-websocket";
-import { getCollection } from "home-assistant-js-websocket";
import type { HuiBadge } from "../panels/lovelace/badges/hui-badge";
import type { HuiCard } from "../panels/lovelace/cards/hui-card";
import type { HuiSection } from "../panels/lovelace/sections/hui-section";
@@ -7,8 +5,12 @@ import type { Lovelace } from "../panels/lovelace/types";
import type { HomeAssistant } from "../types";
import type { LovelaceSectionConfig } from "./lovelace/config/section";
import type { LegacyLovelaceConfig } from "./lovelace/config/types";
-import { fetchConfig } from "./lovelace/config/types";
import type { LovelaceViewConfig } from "./lovelace/config/view";
+import type { Connection, HassEventBase } from "home-assistant-js-websocket";
+
+import { getCollection } from "home-assistant-js-websocket";
+
+import { fetchConfig } from "./lovelace/config/types";
export interface LovelacePanelConfig {
mode: "yaml" | "storage";
diff --git a/src/data/lovelace/config/types.ts b/src/data/lovelace/config/types.ts
index 7de222dab8..a2d4f404bb 100644
--- a/src/data/lovelace/config/types.ts
+++ b/src/data/lovelace/config/types.ts
@@ -1,8 +1,8 @@
-import type { Connection } from "home-assistant-js-websocket";
import type { HomeAssistant } from "../../../types";
import type { LovelaceResource } from "../resource";
import type { LovelaceStrategyConfig } from "./strategy";
import type { LovelaceViewRawConfig } from "./view";
+import type { Connection } from "home-assistant-js-websocket";
export interface LovelaceDashboardBaseConfig {}
diff --git a/src/data/lovelace/resource.ts b/src/data/lovelace/resource.ts
index f0b877af89..cf64d7c907 100644
--- a/src/data/lovelace/resource.ts
+++ b/src/data/lovelace/resource.ts
@@ -1,5 +1,5 @@
-import type { Connection } from "home-assistant-js-websocket";
import type { HomeAssistant } from "../../types";
+import type { Connection } from "home-assistant-js-websocket";
export interface LovelaceResource {
id: string;
diff --git a/src/data/matter.ts b/src/data/matter.ts
index e67b2e5172..ef3a6dd71a 100644
--- a/src/data/matter.ts
+++ b/src/data/matter.ts
@@ -1,8 +1,9 @@
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import { navigate } from "../common/navigate";
import type { HomeAssistant } from "../types";
-import { subscribeDeviceRegistry } from "./device_registry";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+
import { isComponentLoaded } from "../common/config/is_component_loaded";
+import { navigate } from "../common/navigate";
+import { subscribeDeviceRegistry } from "./device_registry";
import { getThreadDataSetTLV, listThreadDataSets } from "./thread";
export enum NetworkType {
diff --git a/src/data/media-player.ts b/src/data/media-player.ts
index 3f18d26958..db5d200b7b 100644
--- a/src/data/media-player.ts
+++ b/src/data/media-player.ts
@@ -1,3 +1,10 @@
+import type { MediaPlayerItemId } from "../components/media-player/ha-media-player-browse";
+import type { HomeAssistant, TranslationDict } from "../types";
+import type {
+ HassEntityAttributeBase,
+ HassEntityBase,
+} from "home-assistant-js-websocket";
+
import {
mdiAccountMusic,
mdiAccountMusicOutline,
@@ -28,14 +35,9 @@ import {
mdiVideo,
mdiWeb,
} from "@mdi/js";
-import type {
- HassEntityAttributeBase,
- HassEntityBase,
-} from "home-assistant-js-websocket";
-import { supportsFeature } from "../common/entity/supports-feature";
+
import { stateActive } from "../common/entity/state_active";
-import type { MediaPlayerItemId } from "../components/media-player/ha-media-player-browse";
-import type { HomeAssistant, TranslationDict } from "../types";
+import { supportsFeature } from "../common/entity/supports-feature";
import { isUnavailableState } from "./entity";
import { isTTSMediaSource } from "./tts";
diff --git a/src/data/onboarding.ts b/src/data/onboarding.ts
index 7a23cd08a8..71e2c1b188 100644
--- a/src/data/onboarding.ts
+++ b/src/data/onboarding.ts
@@ -1,7 +1,8 @@
import type { HomeAssistant } from "../types";
-import { handleFetchPromise } from "../util/hass-call-api";
import type { CloudStatus } from "./cloud";
+import { handleFetchPromise } from "../util/hass-call-api";
+
export interface InstallationType {
installation_type:
| "Home Assistant Operating System"
diff --git a/src/data/panel.ts b/src/data/panel.ts
index 14012b1059..b2384d4d67 100644
--- a/src/data/panel.ts
+++ b/src/data/panel.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../common/dom/fire_event";
import type { HomeAssistant, PanelInfo } from "../types";
+import { fireEvent } from "../common/dom/fire_event";
+
/** Panel to show when no panel is picked. */
export const DEFAULT_PANEL = "lovelace";
diff --git a/src/data/person.ts b/src/data/person.ts
index 62145b875d..ada79f174e 100644
--- a/src/data/person.ts
+++ b/src/data/person.ts
@@ -1,8 +1,8 @@
+import type { HomeAssistant } from "../types";
import type {
HassEntityAttributeBase,
HassEntityBase,
} from "home-assistant-js-websocket";
-import type { HomeAssistant } from "../types";
export interface BasePerson {
name: string;
diff --git a/src/data/preview.ts b/src/data/preview.ts
index a26b030b8f..74f6103c6c 100644
--- a/src/data/preview.ts
+++ b/src/data/preview.ts
@@ -1,5 +1,5 @@
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { HomeAssistant } from "../types";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
const HAS_CUSTOM_PREVIEW = ["generic_camera", "template"];
diff --git a/src/data/recorder.ts b/src/data/recorder.ts
index 67fd71b215..970b5c5d19 100644
--- a/src/data/recorder.ts
+++ b/src/data/recorder.ts
@@ -1,7 +1,8 @@
-import type { Connection } from "home-assistant-js-websocket";
-import { computeStateName } from "../common/entity/compute_state_name";
import type { HaDurationData } from "../components/ha-duration-input";
import type { HomeAssistant } from "../types";
+import type { Connection } from "home-assistant-js-websocket";
+
+import { computeStateName } from "../common/entity/compute_state_name";
export interface RecorderInfo {
backlog: number | null;
diff --git a/src/data/repairs.ts b/src/data/repairs.ts
index 32213ca566..399046a562 100644
--- a/src/data/repairs.ts
+++ b/src/data/repairs.ts
@@ -1,9 +1,11 @@
-import type { Connection } from "home-assistant-js-websocket";
-import { createCollection } from "home-assistant-js-websocket";
-import type { Store } from "home-assistant-js-websocket/dist/store";
-import { debounce } from "../common/util/debounce";
import type { HomeAssistant } from "../types";
import type { DataEntryFlowStep } from "./data_entry_flow";
+import type { Connection } from "home-assistant-js-websocket";
+import type { Store } from "home-assistant-js-websocket/dist/store";
+
+import { createCollection } from "home-assistant-js-websocket";
+
+import { debounce } from "../common/util/debounce";
export interface RepairsIssue {
domain: string;
diff --git a/src/data/scene.ts b/src/data/scene.ts
index 72b5715df0..cc51e92cdc 100644
--- a/src/data/scene.ts
+++ b/src/data/scene.ts
@@ -1,9 +1,10 @@
+import type { HomeAssistant, ServiceCallResponse } from "../types";
import type {
HassEntityAttributeBase,
HassEntityBase,
} from "home-assistant-js-websocket";
+
import { navigate } from "../common/navigate";
-import type { HomeAssistant, ServiceCallResponse } from "../types";
export const SCENE_IGNORED_DOMAINS = [
"binary_sensor",
diff --git a/src/data/script.ts b/src/data/script.ts
index 413b46c164..4a44242041 100644
--- a/src/data/script.ts
+++ b/src/data/script.ts
@@ -1,9 +1,19 @@
+import type { HomeAssistant } from "../types";
+import type {
+ Condition,
+ ShorthandAndCondition,
+ ShorthandNotCondition,
+ ShorthandOrCondition,
+ Trigger,
+} from "./automation";
+import type { BlueprintInput } from "./blueprint";
import type {
HassEntityAttributeBase,
HassEntityBase,
HassServiceTarget,
} from "home-assistant-js-websocket";
import type { Describe } from "superstruct";
+
import {
object,
optional,
@@ -15,20 +25,12 @@ import {
is,
boolean,
} from "superstruct";
+
import { arrayLiteralIncludes } from "../common/array/literal-includes";
-import { navigate } from "../common/navigate";
-import type { HomeAssistant } from "../types";
-import type {
- Condition,
- ShorthandAndCondition,
- ShorthandNotCondition,
- ShorthandOrCondition,
- Trigger,
-} from "./automation";
-import { migrateAutomationTrigger } from "./automation";
-import type { BlueprintInput } from "./blueprint";
import { computeObjectId } from "../common/entity/compute_object_id";
+import { navigate } from "../common/navigate";
import { createSearchParam } from "../common/url/search-params";
+import { migrateAutomationTrigger } from "./automation";
export const MODES = ["single", "restart", "queued", "parallel"] as const;
export const MODES_MAX = ["queued", "parallel"] as const;
diff --git a/src/data/script_i18n.ts b/src/data/script_i18n.ts
index a95927407c..78679fd8d5 100644
--- a/src/data/script_i18n.ts
+++ b/src/data/script_i18n.ts
@@ -1,21 +1,7 @@
-import { ensureArray } from "../common/array/ensure-array";
-import { formatNumericDuration } from "../common/datetime/format_duration";
-import secondsToDuration from "../common/datetime/seconds_to_duration";
-import { computeDeviceNameDisplay } from "../common/entity/compute_device_name";
-import { computeStateName } from "../common/entity/compute_state_name";
-import { formatListWithAnds } from "../common/string/format-list";
-import { isTemplate } from "../common/string/has-template";
import type { HomeAssistant } from "../types";
import type { Condition } from "./automation";
-import { describeCondition } from "./automation_i18n";
-import { localizeDeviceAutomationAction } from "./device_automation";
import type { EntityRegistryEntry } from "./entity_registry";
-import {
- computeEntityRegistryName,
- entityRegistryById,
-} from "./entity_registry";
import type { FloorRegistryEntry } from "./floor_registry";
-import { domainToName } from "./integration";
import type { LabelRegistryEntry } from "./label_registry";
import type {
ActionType,
@@ -34,6 +20,21 @@ import type {
VariablesAction,
WaitForTriggerAction,
} from "./script";
+
+import { ensureArray } from "../common/array/ensure-array";
+import { formatNumericDuration } from "../common/datetime/format_duration";
+import secondsToDuration from "../common/datetime/seconds_to_duration";
+import { computeDeviceNameDisplay } from "../common/entity/compute_device_name";
+import { computeStateName } from "../common/entity/compute_state_name";
+import { formatListWithAnds } from "../common/string/format-list";
+import { isTemplate } from "../common/string/has-template";
+import { describeCondition } from "./automation_i18n";
+import { localizeDeviceAutomationAction } from "./device_automation";
+import {
+ computeEntityRegistryName,
+ entityRegistryById,
+} from "./entity_registry";
+import { domainToName } from "./integration";
import { getActionType } from "./script";
const actionTranslationBaseKey =
diff --git a/src/data/select.ts b/src/data/select.ts
index d2c24fc02d..8b72070fce 100644
--- a/src/data/select.ts
+++ b/src/data/select.ts
@@ -1,8 +1,8 @@
+import type { HomeAssistant } from "../types";
import type {
HassEntityAttributeBase,
HassEntityBase,
} from "home-assistant-js-websocket";
-import type { HomeAssistant } from "../types";
interface SelectEntityAttributes extends HassEntityAttributeBase {
options: string[];
diff --git a/src/data/selector.ts b/src/data/selector.ts
index 60d2b133fe..64374bcf1e 100644
--- a/src/data/selector.ts
+++ b/src/data/selector.ts
@@ -1,23 +1,24 @@
-import type {
- HassEntity,
- HassServiceTarget,
-} from "home-assistant-js-websocket";
-import { ensureArray } from "../common/array/ensure-array";
-import { computeStateDomain } from "../common/entity/compute_state_domain";
-import { supportsFeature } from "../common/entity/supports-feature";
import type { CropOptions } from "../dialogs/image-cropper-dialog/show-image-cropper-dialog";
-import { isHelperDomain } from "../panels/config/helpers/const";
import type { UiAction } from "../panels/lovelace/components/hui-action-editor";
import type { HomeAssistant } from "../types";
-import {
- type DeviceRegistryEntry,
- getDeviceIntegrationLookup,
-} from "./device_registry";
import type {
EntityRegistryDisplayEntry,
EntityRegistryEntry,
} from "./entity_registry";
import type { EntitySources } from "./entity_sources";
+import type {
+ HassEntity,
+ HassServiceTarget,
+} from "home-assistant-js-websocket";
+
+import { ensureArray } from "../common/array/ensure-array";
+import { computeStateDomain } from "../common/entity/compute_state_domain";
+import { supportsFeature } from "../common/entity/supports-feature";
+import { isHelperDomain } from "../panels/config/helpers/const";
+import {
+ type DeviceRegistryEntry,
+ getDeviceIntegrationLookup,
+} from "./device_registry";
export type Selector =
| ActionSelector
diff --git a/src/data/supervisor/common.ts b/src/data/supervisor/common.ts
index fb4e3a700b..8e32c86e05 100644
--- a/src/data/supervisor/common.ts
+++ b/src/data/supervisor/common.ts
@@ -1,6 +1,7 @@
-import { atLeastVersion } from "../../common/config/version";
import type { HomeAssistant } from "../../types";
import type { HassioResponse } from "../hassio/common";
+
+import { atLeastVersion } from "../../common/config/version";
import { hassioApiResultExtractor } from "../hassio/common";
export interface SupervisorApiCallOptions {
diff --git a/src/data/supervisor/core.ts b/src/data/supervisor/core.ts
index 545824a835..4ef8a0e1e9 100644
--- a/src/data/supervisor/core.ts
+++ b/src/data/supervisor/core.ts
@@ -1,7 +1,8 @@
-import { atLeastVersion } from "../../common/config/version";
import type { HomeAssistant } from "../../types";
import type { HassioResponse } from "../hassio/common";
+import { atLeastVersion } from "../../common/config/version";
+
export const restartCore = async (hass: HomeAssistant) => {
await hass.callService("homeassistant", "restart");
};
diff --git a/src/data/supervisor/store.ts b/src/data/supervisor/store.ts
index 4aff294296..1581079368 100644
--- a/src/data/supervisor/store.ts
+++ b/src/data/supervisor/store.ts
@@ -1,8 +1,9 @@
import type { HomeAssistant } from "../../types";
import type { AddonRole, AddonStage } from "../hassio/addon";
-import { supervisorApiCall } from "./common";
import type { SupervisorArch } from "./supervisor";
+import { supervisorApiCall } from "./common";
+
export interface StoreAddon {
advanced: boolean;
available: boolean;
diff --git a/src/data/supervisor/supervisor.ts b/src/data/supervisor/supervisor.ts
index 38a2cc63a4..5dab14039e 100644
--- a/src/data/supervisor/supervisor.ts
+++ b/src/data/supervisor/supervisor.ts
@@ -1,6 +1,3 @@
-import type { Connection } from "home-assistant-js-websocket";
-import { getCollection } from "home-assistant-js-websocket";
-import type { Store } from "home-assistant-js-websocket/dist/store";
import type {
FlattenObjectKeys,
LocalizeFunc,
@@ -16,6 +13,10 @@ import type {
HassioSupervisorInfo,
} from "../hassio/supervisor";
import type { SupervisorStore } from "./store";
+import type { Connection } from "home-assistant-js-websocket";
+import type { Store } from "home-assistant-js-websocket/dist/store";
+
+import { getCollection } from "home-assistant-js-websocket";
export const supervisorWSbaseCommand = {
type: "supervisor/api",
diff --git a/src/data/tag.ts b/src/data/tag.ts
index ee61a97ad4..aadd9e37a3 100644
--- a/src/data/tag.ts
+++ b/src/data/tag.ts
@@ -1,5 +1,5 @@
-import type { HassEventBase } from "home-assistant-js-websocket";
import type { HomeAssistant } from "../types";
+import type { HassEventBase } from "home-assistant-js-websocket";
export const EVENT_TAG_SCANNED = "tag_scanned";
diff --git a/src/data/text.ts b/src/data/text.ts
index 2726cde318..044cbc4d02 100644
--- a/src/data/text.ts
+++ b/src/data/text.ts
@@ -1,8 +1,8 @@
+import type { HomeAssistant } from "../types";
import type {
HassEntityAttributeBase,
HassEntityBase,
} from "home-assistant-js-websocket";
-import type { HomeAssistant } from "../types";
interface TextEntityAttributes extends HassEntityAttributeBase {
min?: number;
diff --git a/src/data/timer.ts b/src/data/timer.ts
index 977a3fb486..1ffb8dc363 100644
--- a/src/data/timer.ts
+++ b/src/data/timer.ts
@@ -1,11 +1,12 @@
+import type { HomeAssistant } from "../types";
import type {
HassEntity,
HassEntityAttributeBase,
HassEntityBase,
} from "home-assistant-js-websocket";
+
import durationToSeconds from "../common/datetime/duration_to_seconds";
import secondsToDuration from "../common/datetime/seconds_to_duration";
-import type { HomeAssistant } from "../types";
export type TimerEntity = HassEntityBase & {
attributes: HassEntityAttributeBase & {
diff --git a/src/data/todo.ts b/src/data/todo.ts
index 0c02d76c1a..4cd7ce4192 100644
--- a/src/data/todo.ts
+++ b/src/data/todo.ts
@@ -1,8 +1,9 @@
import type { HomeAssistant, ServiceCallResponse } from "../types";
+
import { computeDomain } from "../common/entity/compute_domain";
import { computeStateName } from "../common/entity/compute_state_name";
-import { isUnavailableState } from "./entity";
import { stringCompare } from "../common/string/compare";
+import { isUnavailableState } from "./entity";
export interface TodoList {
entity_id: string;
diff --git a/src/data/trace.ts b/src/data/trace.ts
index a8f20cf41f..de1c23c19c 100644
--- a/src/data/trace.ts
+++ b/src/data/trace.ts
@@ -1,12 +1,13 @@
-import { strStartsWith } from "../common/string/starts-with";
import type { Context, HomeAssistant } from "../types";
import type {
BlueprintAutomationConfig,
ManualAutomationConfig,
} from "./automation";
-import { flattenTriggers } from "./automation";
import type { BlueprintScriptConfig, ScriptConfig } from "./script";
+import { strStartsWith } from "../common/string/starts-with";
+import { flattenTriggers } from "./automation";
+
interface BaseTraceStep {
path: string;
timestamp: string;
diff --git a/src/data/translation.ts b/src/data/translation.ts
index c3b10f4286..6e2e1deecd 100644
--- a/src/data/translation.ts
+++ b/src/data/translation.ts
@@ -1,4 +1,5 @@
import type { HomeAssistant } from "../types";
+
import { fetchFrontendUserData, saveFrontendUserData } from "./frontend";
export enum NumberFormat {
diff --git a/src/data/trigger.ts b/src/data/trigger.ts
index c6bb2f688a..290a2bd89e 100644
--- a/src/data/trigger.ts
+++ b/src/data/trigger.ts
@@ -1,3 +1,9 @@
+import type {
+ AutomationElementGroup,
+ Trigger,
+ TriggerList,
+} from "./automation";
+
import {
mdiAvTimer,
mdiCalendar,
@@ -22,11 +28,6 @@ import {
} from "@mdi/js";
import { mdiHomeAssistant } from "../resources/home-assistant-logo-svg";
-import type {
- AutomationElementGroup,
- Trigger,
- TriggerList,
-} from "./automation";
export const TRIGGER_ICONS = {
calendar: mdiCalendar,
diff --git a/src/data/update.ts b/src/data/update.ts
index 29f7ecf054..1820cf0db9 100644
--- a/src/data/update.ts
+++ b/src/data/update.ts
@@ -1,9 +1,12 @@
+import type { HomeAssistant } from "../types";
+import type { EntitySources } from "./entity_sources";
import type {
HassEntities,
HassEntityAttributeBase,
HassEntityBase,
HassEvent,
} from "home-assistant-js-websocket";
+
import { BINARY_STATE_ON } from "../common/const";
import { computeDomain } from "../common/entity/compute_domain";
import { computeStateDomain } from "../common/entity/compute_state_domain";
@@ -11,9 +14,7 @@ import { supportsFeature } from "../common/entity/supports-feature";
import { formatNumber } from "../common/number/format_number";
import { caseInsensitiveStringCompare } from "../common/string/compare";
import { showAlertDialog } from "../dialogs/generic/show-dialog-box";
-import type { HomeAssistant } from "../types";
import { showToast } from "../util/toast";
-import type { EntitySources } from "./entity_sources";
export enum UpdateEntityFeature {
INSTALL = 1,
diff --git a/src/data/user.ts b/src/data/user.ts
index 6b7f6809fd..bbdfe22d58 100644
--- a/src/data/user.ts
+++ b/src/data/user.ts
@@ -1,11 +1,12 @@
+import type { HomeAssistant, TranslationDict } from "../types";
+import type { Credential } from "./auth";
+
import {
mdiCrownCircleOutline,
mdiAlphaSCircleOutline,
mdiHomeCircleOutline,
mdiCancel,
} from "@mdi/js";
-import type { HomeAssistant, TranslationDict } from "../types";
-import type { Credential } from "./auth";
export const SYSTEM_GROUP_ID_ADMIN = "system-admin";
export const SYSTEM_GROUP_ID_USER = "system-users";
diff --git a/src/data/vacuum.ts b/src/data/vacuum.ts
index 75d447379b..7591cc31e3 100644
--- a/src/data/vacuum.ts
+++ b/src/data/vacuum.ts
@@ -2,6 +2,7 @@ import type {
HassEntityAttributeBase,
HassEntityBase,
} from "home-assistant-js-websocket";
+
import { UNAVAILABLE } from "./entity";
export type VacuumEntityState =
diff --git a/src/data/valve.ts b/src/data/valve.ts
index b7504f8e3d..052bef8fae 100644
--- a/src/data/valve.ts
+++ b/src/data/valve.ts
@@ -1,10 +1,11 @@
+import type { HomeAssistant } from "../types";
import type {
HassEntityAttributeBase,
HassEntityBase,
} from "home-assistant-js-websocket";
-import { UNAVAILABLE } from "./entity";
+
import { stateActive } from "../common/entity/state_active";
-import type { HomeAssistant } from "../types";
+import { UNAVAILABLE } from "./entity";
export const enum ValveEntityFeature {
OPEN = 1,
diff --git a/src/data/water_heater.ts b/src/data/water_heater.ts
index 84dac0a8f4..076a0c6880 100644
--- a/src/data/water_heater.ts
+++ b/src/data/water_heater.ts
@@ -1,3 +1,8 @@
+import type {
+ HassEntityAttributeBase,
+ HassEntityBase,
+} from "home-assistant-js-websocket";
+
import {
mdiFinance,
mdiFireCircle,
@@ -7,10 +12,6 @@ import {
mdiPower,
mdiRocketLaunch,
} from "@mdi/js";
-import type {
- HassEntityAttributeBase,
- HassEntityBase,
-} from "home-assistant-js-websocket";
export const enum WaterHeaterEntityFeature {
TARGET_TEMPERATURE = 1,
diff --git a/src/data/weather.ts b/src/data/weather.ts
index ef5cefeaff..a6bcfa83c0 100644
--- a/src/data/weather.ts
+++ b/src/data/weather.ts
@@ -1,3 +1,13 @@
+import type { HomeAssistant } from "../types";
+import type {
+ HassConfig,
+ HassEntityAttributeBase,
+ HassEntityBase,
+} from "home-assistant-js-websocket";
+import type { SVGTemplateResult, TemplateResult } from "lit";
+
+import "../components/ha-svg-icon";
+
import {
mdiAlertCircleOutline,
mdiGauge,
@@ -20,18 +30,11 @@ import {
mdiWeatherWindy,
mdiWeatherWindyVariant,
} from "@mdi/js";
-import type {
- HassConfig,
- HassEntityAttributeBase,
- HassEntityBase,
-} from "home-assistant-js-websocket";
-import type { SVGTemplateResult, TemplateResult } from "lit";
import { css, html, svg } from "lit";
import { styleMap } from "lit/directives/style-map";
+
import { supportsFeature } from "../common/entity/supports-feature";
import { round } from "../common/number/round";
-import "../components/ha-svg-icon";
-import type { HomeAssistant } from "../types";
export const enum WeatherEntityFeature {
FORECAST_DAILY = 1,
diff --git a/src/data/ws-area_registry.ts b/src/data/ws-area_registry.ts
index 996de71380..db816bfc21 100644
--- a/src/data/ws-area_registry.ts
+++ b/src/data/ws-area_registry.ts
@@ -1,9 +1,11 @@
+import type { AreaRegistryEntry } from "./area_registry";
import type { Connection } from "home-assistant-js-websocket";
-import { createCollection } from "home-assistant-js-websocket";
import type { Store } from "home-assistant-js-websocket/dist/store";
+
+import { createCollection } from "home-assistant-js-websocket";
+
import { stringCompare } from "../common/string/compare";
import { debounce } from "../common/util/debounce";
-import type { AreaRegistryEntry } from "./area_registry";
const fetchAreaRegistry = (conn: Connection) =>
conn
diff --git a/src/data/ws-device_registry.ts b/src/data/ws-device_registry.ts
index eeef3a357b..3da7499287 100644
--- a/src/data/ws-device_registry.ts
+++ b/src/data/ws-device_registry.ts
@@ -1,7 +1,9 @@
-import type { Connection } from "home-assistant-js-websocket";
-import { createCollection } from "home-assistant-js-websocket";
-import type { Store } from "home-assistant-js-websocket/dist/store";
import type { DeviceRegistryEntry } from "./device_registry";
+import type { Connection } from "home-assistant-js-websocket";
+import type { Store } from "home-assistant-js-websocket/dist/store";
+
+import { createCollection } from "home-assistant-js-websocket";
+
import { debounce } from "../common/util/debounce";
export const fetchDeviceRegistry = (conn: Connection) =>
diff --git a/src/data/ws-entity_registry_display.ts b/src/data/ws-entity_registry_display.ts
index 984451a991..3f8ddafa02 100644
--- a/src/data/ws-entity_registry_display.ts
+++ b/src/data/ws-entity_registry_display.ts
@@ -1,9 +1,11 @@
-import type { Connection } from "home-assistant-js-websocket";
-import { createCollection } from "home-assistant-js-websocket";
-import type { Store } from "home-assistant-js-websocket/dist/store";
import type { EntityRegistryDisplayEntryResponse } from "./entity_registry";
-import { fetchEntityRegistryDisplay } from "./entity_registry";
+import type { Connection } from "home-assistant-js-websocket";
+import type { Store } from "home-assistant-js-websocket/dist/store";
+
+import { createCollection } from "home-assistant-js-websocket";
+
import { debounce } from "../common/util/debounce";
+import { fetchEntityRegistryDisplay } from "./entity_registry";
const subscribeEntityRegistryDisplayUpdates = (
conn: Connection,
diff --git a/src/data/ws-floor_registry.ts b/src/data/ws-floor_registry.ts
index a46b818f6f..d92b1b9d60 100644
--- a/src/data/ws-floor_registry.ts
+++ b/src/data/ws-floor_registry.ts
@@ -1,9 +1,11 @@
+import type { FloorRegistryEntry } from "./floor_registry";
import type { Connection } from "home-assistant-js-websocket";
-import { createCollection } from "home-assistant-js-websocket";
import type { Store } from "home-assistant-js-websocket/dist/store";
+
+import { createCollection } from "home-assistant-js-websocket";
+
import { stringCompare } from "../common/string/compare";
import { debounce } from "../common/util/debounce";
-import type { FloorRegistryEntry } from "./floor_registry";
const fetchFloorRegistry = (conn: Connection) =>
conn
diff --git a/src/data/ws-panels.ts b/src/data/ws-panels.ts
index 3086a69f17..a8540d1c0b 100644
--- a/src/data/ws-panels.ts
+++ b/src/data/ws-panels.ts
@@ -1,6 +1,7 @@
-import type { Connection } from "home-assistant-js-websocket";
-import { createCollection } from "home-assistant-js-websocket";
import type { Panels } from "../types";
+import type { Connection } from "home-assistant-js-websocket";
+
+import { createCollection } from "home-assistant-js-websocket";
const fetchPanels = (conn) =>
conn.sendMessagePromise({
diff --git a/src/data/ws-templates.ts b/src/data/ws-templates.ts
index 754ac1e1c6..c0a35a8541 100644
--- a/src/data/ws-templates.ts
+++ b/src/data/ws-templates.ts
@@ -1,5 +1,5 @@
-import type { Connection, UnsubscribeFunc } from "home-assistant-js-websocket";
import type { HomeAssistant } from "../types";
+import type { Connection, UnsubscribeFunc } from "home-assistant-js-websocket";
export interface RenderTemplateResult {
result: string;
diff --git a/src/data/ws-themes.ts b/src/data/ws-themes.ts
index 0c04a2382c..2e0e0a1b05 100644
--- a/src/data/ws-themes.ts
+++ b/src/data/ws-themes.ts
@@ -1,4 +1,5 @@
import type { Connection } from "home-assistant-js-websocket";
+
import { createCollection } from "home-assistant-js-websocket";
export interface ThemeVars {
diff --git a/src/data/ws-user.ts b/src/data/ws-user.ts
index 60ec28b67a..b54cc0495f 100644
--- a/src/data/ws-user.ts
+++ b/src/data/ws-user.ts
@@ -1,6 +1,7 @@
-import type { Connection } from "home-assistant-js-websocket";
-import { getCollection, getUser } from "home-assistant-js-websocket";
import type { CurrentUser } from "../types";
+import type { Connection } from "home-assistant-js-websocket";
+
+import { getCollection, getUser } from "home-assistant-js-websocket";
export const userCollection = (conn: Connection) =>
getCollection(
diff --git a/src/data/zha.ts b/src/data/zha.ts
index c1204582bd..bbb10d732f 100644
--- a/src/data/zha.ts
+++ b/src/data/zha.ts
@@ -1,6 +1,6 @@
-import type { HassEntity } from "home-assistant-js-websocket";
import type { HaFormSchema } from "../components/ha-form/types";
import type { HomeAssistant } from "../types";
+import type { HassEntity } from "home-assistant-js-websocket";
export interface ZHAEntityReference extends HassEntity {
name: string;
diff --git a/src/data/zone.ts b/src/data/zone.ts
index ad64b4a0ce..55f54b59d7 100644
--- a/src/data/zone.ts
+++ b/src/data/zone.ts
@@ -1,6 +1,7 @@
-import { navigate } from "../common/navigate";
import type { HomeAssistant } from "../types";
+import { navigate } from "../common/navigate";
+
export interface Zone {
id: string;
name: string;
diff --git a/src/data/zwave_js.ts b/src/data/zwave_js.ts
index 99f0866bb9..fdec00272a 100644
--- a/src/data/zwave_js.ts
+++ b/src/data/zwave_js.ts
@@ -1,5 +1,5 @@
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { HomeAssistant } from "../types";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
export enum InclusionState {
/** The controller isn't doing anything regarding inclusion. */
diff --git a/src/dialogs/config-entry-system-options/dialog-config-entry-system-options.ts b/src/dialogs/config-entry-system-options/dialog-config-entry-system-options.ts
index 85f30279d3..48d8914420 100644
--- a/src/dialogs/config-entry-system-options/dialog-config-entry-system-options.ts
+++ b/src/dialogs/config-entry-system-options/dialog-config-entry-system-options.ts
@@ -1,18 +1,21 @@
-import "@material/mwc-button/mwc-button";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
-import { createCloseHeading } from "../../components/ha-dialog";
-import "../../components/ha-formfield";
-import "../../components/ha-switch";
import type { HaSwitch } from "../../components/ha-switch";
import type { ConfigEntryMutableParams } from "../../data/config_entries";
+import type { HomeAssistant } from "../../types";
+import type { ConfigEntrySystemOptionsDialogParams } from "./show-dialog-config-entry-system-options";
+import type { CSSResultGroup } from "lit";
+
+import "../../components/ha-formfield";
+import "../../components/ha-switch";
+import "@material/mwc-button/mwc-button";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
+import { createCloseHeading } from "../../components/ha-dialog";
import { updateConfigEntry } from "../../data/config_entries";
import { haStyleDialog } from "../../resources/styles";
-import type { HomeAssistant } from "../../types";
import { showAlertDialog } from "../generic/show-dialog-box";
-import type { ConfigEntrySystemOptionsDialogParams } from "./show-dialog-config-entry-system-options";
@customElement("dialog-config-entry-system-options")
class DialogConfigEntrySystemOptions extends LitElement {
diff --git a/src/dialogs/config-entry-system-options/show-dialog-config-entry-system-options.ts b/src/dialogs/config-entry-system-options/show-dialog-config-entry-system-options.ts
index 59e3a773a2..cab06e5f28 100644
--- a/src/dialogs/config-entry-system-options/show-dialog-config-entry-system-options.ts
+++ b/src/dialogs/config-entry-system-options/show-dialog-config-entry-system-options.ts
@@ -1,7 +1,8 @@
-import { fireEvent } from "../../common/dom/fire_event";
import type { ConfigEntry } from "../../data/config_entries";
import type { IntegrationManifest } from "../../data/integration";
+import { fireEvent } from "../../common/dom/fire_event";
+
export interface ConfigEntrySystemOptionsDialogParams {
entry: ConfigEntry;
manifest?: IntegrationManifest;
diff --git a/src/dialogs/config-flow/dialog-data-entry-flow.ts b/src/dialogs/config-flow/dialog-data-entry-flow.ts
index 21b032a9d0..52ab73deb2 100644
--- a/src/dialogs/config-flow/dialog-data-entry-flow.ts
+++ b/src/dialogs/config-flow/dialog-data-entry-flow.ts
@@ -1,23 +1,15 @@
-import "@material/mwc-button";
-import { mdiClose, mdiHelpCircle } from "@mdi/js";
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { CSSResultGroup, PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
import type { HASSDomEvent } from "../../common/dom/fire_event";
-import { fireEvent } from "../../common/dom/fire_event";
-import "../../components/ha-dialog";
-import "../../components/ha-icon-button";
import type { DataEntryFlowStep } from "../../data/data_entry_flow";
-import { subscribeDataEntryFlowProgressed } from "../../data/data_entry_flow";
-import { haStyleDialog } from "../../resources/styles";
import type { HomeAssistant } from "../../types";
-import { documentationUrl } from "../../util/documentation-url";
-import { showAlertDialog } from "../generic/show-dialog-box";
import type {
DataEntryFlowDialogParams,
LoadingReason,
} from "./show-dialog-data-entry-flow";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../components/ha-dialog";
+import "../../components/ha-icon-button";
import "./step-flow-abort";
import "./step-flow-create-entry";
import "./step-flow-external";
@@ -25,6 +17,17 @@ import "./step-flow-form";
import "./step-flow-loading";
import "./step-flow-menu";
import "./step-flow-progress";
+import "@material/mwc-button";
+
+import { mdiClose, mdiHelpCircle } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
+import { subscribeDataEntryFlowProgressed } from "../../data/data_entry_flow";
+import { haStyleDialog } from "../../resources/styles";
+import { documentationUrl } from "../../util/documentation-url";
+import { showAlertDialog } from "../generic/show-dialog-box";
let instance = 0;
diff --git a/src/dialogs/config-flow/previews/entity-preview-row.ts b/src/dialogs/config-flow/previews/entity-preview-row.ts
index 61eac841b1..cf25dee43a 100644
--- a/src/dialogs/config-flow/previews/entity-preview-row.ts
+++ b/src/dialogs/config-flow/previews/entity-preview-row.ts
@@ -1,10 +1,10 @@
+import type { ImageEntity } from "../../../data/image";
+import type { HomeAssistant } from "../../../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { TemplateResult } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { ifDefined } from "lit/directives/if-defined";
-import { format } from "date-fns";
-import { computeStateName } from "../../../common/entity/compute_state_name";
+
+import "../../../components/entity/ha-entity-toggle";
+import "../../../components/entity/state-badge";
import "../../../components/ha-climate-state";
import "../../../components/ha-cover-controls";
import "../../../components/ha-cover-tilt-controls";
@@ -13,15 +13,18 @@ import "../../../components/ha-humidifier-state";
import "../../../components/ha-select";
import "../../../components/ha-slider";
import "../../../components/ha-time-input";
-import "../../../components/entity/ha-entity-toggle";
-import "../../../components/entity/state-badge";
+import "../../../panels/lovelace/components/hui-timestamp-display";
+
+import { format } from "date-fns";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { ifDefined } from "lit/directives/if-defined";
+
+import { computeStateName } from "../../../common/entity/compute_state_name";
import { isTiltOnly } from "../../../data/cover";
import { isUnavailableState } from "../../../data/entity";
-import type { ImageEntity } from "../../../data/image";
import { computeImageUrl } from "../../../data/image";
import { SENSOR_DEVICE_CLASS_TIMESTAMP } from "../../../data/sensor";
-import "../../../panels/lovelace/components/hui-timestamp-display";
-import type { HomeAssistant } from "../../../types";
@customElement("entity-preview-row")
class EntityPreviewRow extends LitElement {
diff --git a/src/dialogs/config-flow/previews/flow-preview-generic.ts b/src/dialogs/config-flow/previews/flow-preview-generic.ts
index b04845ecb5..19a4c9561e 100644
--- a/src/dialogs/config-flow/previews/flow-preview-generic.ts
+++ b/src/dialogs/config-flow/previews/flow-preview-generic.ts
@@ -1,15 +1,18 @@
-import type { HassEntity, UnsubscribeFunc } from "home-assistant-js-websocket";
-import { LitElement, html } from "lit";
-import type { nothing, TemplateResult } from "lit";
-import { customElement, property, state } from "lit/decorators";
import type { FlowType } from "../../../data/data_entry_flow";
import type { GenericPreview } from "../../../data/preview";
-import { subscribePreviewGeneric } from "../../../data/preview";
import type { HomeAssistant } from "../../../types";
-import "./entity-preview-row";
-import { debounce } from "../../../common/util/debounce";
-import { fireEvent } from "../../../common/dom/fire_event";
+import type { HassEntity, UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { nothing, TemplateResult } from "lit";
+
import "../../../components/ha-alert";
+import "./entity-preview-row";
+
+import { LitElement, html } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { debounce } from "../../../common/util/debounce";
+import { subscribePreviewGeneric } from "../../../data/preview";
@customElement("flow-preview-generic")
export class FlowPreviewGeneric extends LitElement {
diff --git a/src/dialogs/config-flow/previews/flow-preview-generic_camera.ts b/src/dialogs/config-flow/previews/flow-preview-generic_camera.ts
index befa451df8..80669bc469 100644
--- a/src/dialogs/config-flow/previews/flow-preview-generic_camera.ts
+++ b/src/dialogs/config-flow/previews/flow-preview-generic_camera.ts
@@ -1,9 +1,11 @@
-import { html, nothing } from "lit";
-import { customElement } from "lit/decorators";
-import { FlowPreviewGeneric } from "./flow-preview-generic";
import "../../../components/ha-hls-player";
import "../../../components/ha-spinner";
+import { html, nothing } from "lit";
+import { customElement } from "lit/decorators";
+
+import { FlowPreviewGeneric } from "./flow-preview-generic";
+
@customElement("flow-preview-generic_camera")
class FlowPreviewGenericCamera extends FlowPreviewGeneric {
protected override render() {
diff --git a/src/dialogs/config-flow/previews/flow-preview-template.ts b/src/dialogs/config-flow/previews/flow-preview-template.ts
index 5697128a3d..30dac6f7b0 100644
--- a/src/dialogs/config-flow/previews/flow-preview-template.ts
+++ b/src/dialogs/config-flow/previews/flow-preview-template.ts
@@ -1,17 +1,20 @@
-import type { HassEntity, UnsubscribeFunc } from "home-assistant-js-websocket";
-import { LitElement, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { debounce } from "../../../common/util/debounce";
import type { FlowType } from "../../../data/data_entry_flow";
import type {
TemplateListeners,
TemplatePreview,
} from "../../../data/ws-templates";
-import { subscribePreviewTemplate } from "../../../data/ws-templates";
import type { HomeAssistant } from "../../../types";
-import "./entity-preview-row";
-import { fireEvent } from "../../../common/dom/fire_event";
+import type { HassEntity, UnsubscribeFunc } from "home-assistant-js-websocket";
+
import "../../../components/ha-alert";
+import "./entity-preview-row";
+
+import { LitElement, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { debounce } from "../../../common/util/debounce";
+import { subscribePreviewTemplate } from "../../../data/ws-templates";
@customElement("flow-preview-template")
class FlowPreviewTemplate extends LitElement {
diff --git a/src/dialogs/config-flow/show-dialog-config-flow.ts b/src/dialogs/config-flow/show-dialog-config-flow.ts
index f94d1687d3..69998b54a5 100644
--- a/src/dialogs/config-flow/show-dialog-config-flow.ts
+++ b/src/dialogs/config-flow/show-dialog-config-flow.ts
@@ -1,4 +1,7 @@
+import type { DataEntryFlowDialogParams } from "./show-dialog-data-entry-flow";
+
import { html } from "lit";
+
import {
createConfigFlow,
deleteConfigFlow,
@@ -6,7 +9,6 @@ import {
handleConfigFlowStep,
} from "../../data/config_flow";
import { domainToName } from "../../data/integration";
-import type { DataEntryFlowDialogParams } from "./show-dialog-data-entry-flow";
import {
loadDataEntryFlowDialog,
showFlowDialog,
diff --git a/src/dialogs/config-flow/show-dialog-data-entry-flow.ts b/src/dialogs/config-flow/show-dialog-data-entry-flow.ts
index add3a2573c..a8dea2dd65 100644
--- a/src/dialogs/config-flow/show-dialog-data-entry-flow.ts
+++ b/src/dialogs/config-flow/show-dialog-data-entry-flow.ts
@@ -1,5 +1,3 @@
-import type { TemplateResult } from "lit";
-import { fireEvent } from "../../common/dom/fire_event";
import type { HaFormSchema } from "../../components/ha-form/types";
import type {
DataEntryFlowStep,
@@ -13,6 +11,9 @@ import type {
} from "../../data/data_entry_flow";
import type { IntegrationManifest } from "../../data/integration";
import type { HomeAssistant } from "../../types";
+import type { TemplateResult } from "lit";
+
+import { fireEvent } from "../../common/dom/fire_event";
export interface FlowConfig {
flowType: FlowType;
diff --git a/src/dialogs/config-flow/show-dialog-options-flow.ts b/src/dialogs/config-flow/show-dialog-options-flow.ts
index 12919ff2e3..6140e3ad51 100644
--- a/src/dialogs/config-flow/show-dialog-options-flow.ts
+++ b/src/dialogs/config-flow/show-dialog-options-flow.ts
@@ -1,5 +1,8 @@
-import { html } from "lit";
import type { ConfigEntry } from "../../data/config_entries";
+import type { DataEntryFlowDialogParams } from "./show-dialog-data-entry-flow";
+
+import { html } from "lit";
+
import { domainToName } from "../../data/integration";
import {
createOptionsFlow,
@@ -7,7 +10,6 @@ import {
fetchOptionsFlow,
handleOptionsFlowStep,
} from "../../data/options_flow";
-import type { DataEntryFlowDialogParams } from "./show-dialog-data-entry-flow";
import {
loadDataEntryFlowDialog,
showFlowDialog,
diff --git a/src/dialogs/config-flow/show-dialog-sub-config-flow.ts b/src/dialogs/config-flow/show-dialog-sub-config-flow.ts
index bc886985b2..f089a91607 100644
--- a/src/dialogs/config-flow/show-dialog-sub-config-flow.ts
+++ b/src/dialogs/config-flow/show-dialog-sub-config-flow.ts
@@ -1,5 +1,8 @@
-import { html } from "lit";
import type { ConfigEntry } from "../../data/config_entries";
+import type { DataEntryFlowDialogParams } from "./show-dialog-data-entry-flow";
+
+import { html } from "lit";
+
import { domainToName } from "../../data/integration";
import {
createSubConfigFlow,
@@ -7,7 +10,6 @@ import {
fetchSubConfigFlow,
handleSubConfigFlowStep,
} from "../../data/sub_config_flow";
-import type { DataEntryFlowDialogParams } from "./show-dialog-data-entry-flow";
import {
loadDataEntryFlowDialog,
showFlowDialog,
diff --git a/src/dialogs/config-flow/step-flow-abort.ts b/src/dialogs/config-flow/step-flow-abort.ts
index c509dca607..0170b48393 100644
--- a/src/dialogs/config-flow/step-flow-abort.ts
+++ b/src/dialogs/config-flow/step-flow-abort.ts
@@ -1,13 +1,16 @@
-import "@material/mwc-button";
+import type { DataEntryFlowStepAbort } from "../../data/data_entry_flow";
+import type { HomeAssistant } from "../../types";
+import type { DataEntryFlowDialogParams } from "./show-dialog-data-entry-flow";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "@material/mwc-button";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
+
import { fireEvent } from "../../common/dom/fire_event";
-import type { DataEntryFlowStepAbort } from "../../data/data_entry_flow";
import { showAddApplicationCredentialDialog } from "../../panels/config/application_credentials/show-dialog-add-application-credential";
-import type { HomeAssistant } from "../../types";
import { showConfigFlowDialog } from "./show-dialog-config-flow";
-import type { DataEntryFlowDialogParams } from "./show-dialog-data-entry-flow";
import { configFlowContentStyles } from "./styles";
@customElement("step-flow-abort")
diff --git a/src/dialogs/config-flow/step-flow-create-entry.ts b/src/dialogs/config-flow/step-flow-create-entry.ts
index db6b147f57..0f9aa05b55 100644
--- a/src/dialogs/config-flow/step-flow-create-entry.ts
+++ b/src/dialogs/config-flow/step-flow-create-entry.ts
@@ -1,22 +1,25 @@
-import "@material/mwc-button";
+import type { DataEntryFlowStepCreateEntry } from "../../data/data_entry_flow";
+import type { DeviceRegistryEntry } from "../../data/device_registry";
+import type { EntityRegistryDisplayEntry } from "../../data/entity_registry";
+import type { HomeAssistant } from "../../types";
+import type { FlowConfig } from "./show-dialog-data-entry-flow";
import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../components/ha-area-picker";
+import "@material/mwc-button";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../common/dom/fire_event";
import { computeDeviceNameDisplay } from "../../common/entity/compute_device_name";
import { computeDomain } from "../../common/entity/compute_domain";
import { navigate } from "../../common/navigate";
-import "../../components/ha-area-picker";
import { assistSatelliteSupportsSetupFlow } from "../../data/assist_satellite";
-import type { DataEntryFlowStepCreateEntry } from "../../data/data_entry_flow";
-import type { DeviceRegistryEntry } from "../../data/device_registry";
import { updateDeviceRegistryEntry } from "../../data/device_registry";
-import type { EntityRegistryDisplayEntry } from "../../data/entity_registry";
-import type { HomeAssistant } from "../../types";
import { showAlertDialog } from "../generic/show-dialog-box";
import { showVoiceAssistantSetupDialog } from "../voice-assistant-setup/show-voice-assistant-setup-dialog";
-import type { FlowConfig } from "./show-dialog-data-entry-flow";
import { configFlowContentStyles } from "./styles";
@customElement("step-flow-create-entry")
diff --git a/src/dialogs/config-flow/step-flow-external.ts b/src/dialogs/config-flow/step-flow-external.ts
index 4e3b10512c..f41ec1cc6c 100644
--- a/src/dialogs/config-flow/step-flow-external.ts
+++ b/src/dialogs/config-flow/step-flow-external.ts
@@ -1,10 +1,13 @@
-import "@material/mwc-button";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
import type { DataEntryFlowStepExternal } from "../../data/data_entry_flow";
import type { HomeAssistant } from "../../types";
import type { FlowConfig } from "./show-dialog-data-entry-flow";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "@material/mwc-button";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { configFlowContentStyles } from "./styles";
@customElement("step-flow-external")
diff --git a/src/dialogs/config-flow/step-flow-form.ts b/src/dialogs/config-flow/step-flow-form.ts
index a36f4a7152..fa16912399 100644
--- a/src/dialogs/config-flow/step-flow-form.ts
+++ b/src/dialogs/config-flow/step-flow-form.ts
@@ -1,23 +1,26 @@
-import "@material/mwc-button";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { dynamicElement } from "../../common/dom/dynamic-element-directive";
-import { fireEvent } from "../../common/dom/fire_event";
-import { isNavigationClick } from "../../common/dom/is-navigation-click";
-import "../../components/ha-alert";
-import "../../components/ha-spinner";
-import { computeInitialHaFormData } from "../../components/ha-form/compute-initial-ha-form-data";
-import "../../components/ha-form/ha-form";
import type { HaFormSchema } from "../../components/ha-form/types";
-import "../../components/ha-markdown";
-import { autocompleteLoginFields } from "../../data/auth";
import type { DataEntryFlowStepForm } from "../../data/data_entry_flow";
import type { HomeAssistant } from "../../types";
import type { FlowConfig } from "./show-dialog-data-entry-flow";
-import { configFlowContentStyles } from "./styles";
-import { haStyle } from "../../resources/styles";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../components/ha-alert";
+import "../../components/ha-form/ha-form";
+import "../../components/ha-markdown";
+import "../../components/ha-spinner";
+import "@material/mwc-button";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { dynamicElement } from "../../common/dom/dynamic-element-directive";
+import { fireEvent } from "../../common/dom/fire_event";
+import { isNavigationClick } from "../../common/dom/is-navigation-click";
+import { computeInitialHaFormData } from "../../components/ha-form/compute-initial-ha-form-data";
+import { autocompleteLoginFields } from "../../data/auth";
import { previewModule } from "../../data/preview";
+import { haStyle } from "../../resources/styles";
+import { configFlowContentStyles } from "./styles";
@customElement("step-flow-form")
class StepFlowForm extends LitElement {
diff --git a/src/dialogs/config-flow/step-flow-loading.ts b/src/dialogs/config-flow/step-flow-loading.ts
index 99d2b05a47..00ec300c87 100644
--- a/src/dialogs/config-flow/step-flow-loading.ts
+++ b/src/dialogs/config-flow/step-flow-loading.ts
@@ -1,10 +1,12 @@
-import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import "../../components/ha-spinner";
import type { DataEntryFlowStep } from "../../data/data_entry_flow";
import type { HomeAssistant } from "../../types";
import type { FlowConfig, LoadingReason } from "./show-dialog-data-entry-flow";
+import type { TemplateResult } from "lit";
+
+import "../../components/ha-spinner";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
@customElement("step-flow-loading")
class StepFlowLoading extends LitElement {
diff --git a/src/dialogs/config-flow/step-flow-menu.ts b/src/dialogs/config-flow/step-flow-menu.ts
index 83ecd2d5d0..23246c9fe4 100644
--- a/src/dialogs/config-flow/step-flow-menu.ts
+++ b/src/dialogs/config-flow/step-flow-menu.ts
@@ -1,13 +1,16 @@
-import "@material/mwc-list/mwc-list-item";
-import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
import type { DataEntryFlowStepMenu } from "../../data/data_entry_flow";
import type { HomeAssistant } from "../../types";
import type { FlowConfig } from "./show-dialog-data-entry-flow";
+import type { TemplateResult } from "lit";
+
import "../../components/ha-icon-next";
-import { configFlowContentStyles } from "./styles";
+import "@material/mwc-list/mwc-list-item";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { fireEvent } from "../../common/dom/fire_event";
+import { configFlowContentStyles } from "./styles";
@customElement("step-flow-menu")
class StepFlowMenu extends LitElement {
diff --git a/src/dialogs/config-flow/step-flow-progress.ts b/src/dialogs/config-flow/step-flow-progress.ts
index 0968478bd0..8a10fe9e8d 100644
--- a/src/dialogs/config-flow/step-flow-progress.ts
+++ b/src/dialogs/config-flow/step-flow-progress.ts
@@ -1,11 +1,14 @@
-import "@material/mwc-button";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import "../../components/ha-spinner";
import type { DataEntryFlowStepProgress } from "../../data/data_entry_flow";
import type { HomeAssistant } from "../../types";
import type { FlowConfig } from "./show-dialog-data-entry-flow";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../components/ha-spinner";
+import "@material/mwc-button";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { configFlowContentStyles } from "./styles";
@customElement("step-flow-progress")
diff --git a/src/dialogs/enter-code/dialog-enter-code.ts b/src/dialogs/enter-code/dialog-enter-code.ts
index 933567705e..c5540980cb 100644
--- a/src/dialogs/enter-code/dialog-enter-code.ts
+++ b/src/dialogs/enter-code/dialog-enter-code.ts
@@ -1,17 +1,20 @@
-import { mdiCheck, mdiClose } from "@mdi/js";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { ifDefined } from "lit/directives/if-defined";
-import { fireEvent } from "../../common/dom/fire_event";
-import "../../components/ha-button";
-import "../../components/ha-control-button";
-import { createCloseHeading } from "../../components/ha-dialog";
-import "../../components/ha-textfield";
import type { HaTextField } from "../../components/ha-textfield";
import type { HomeAssistant } from "../../types";
import type { HassDialog } from "../make-dialog-manager";
import type { EnterCodeDialogParams } from "./show-enter-code-dialog";
+import "../../components/ha-button";
+import "../../components/ha-control-button";
+import "../../components/ha-textfield";
+
+import { mdiCheck, mdiClose } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import { ifDefined } from "lit/directives/if-defined";
+
+import { fireEvent } from "../../common/dom/fire_event";
+import { createCloseHeading } from "../../components/ha-dialog";
+
const BUTTONS = [
"1",
"2",
diff --git a/src/dialogs/generic/dialog-box.ts b/src/dialogs/generic/dialog-box.ts
index 0b8b463664..7596c5ef79 100644
--- a/src/dialogs/generic/dialog-box.ts
+++ b/src/dialogs/generic/dialog-box.ts
@@ -1,17 +1,20 @@
+import type { HaMdDialog } from "../../components/ha-md-dialog";
+import type { HaTextField } from "../../components/ha-textfield";
+import type { HomeAssistant } from "../../types";
+import type { DialogBoxParams } from "./show-dialog-box";
+
+import "../../components/ha-button";
+import "../../components/ha-dialog-header";
+import "../../components/ha-md-dialog";
+import "../../components/ha-svg-icon";
+import "../../components/ha-textfield";
+
import { mdiAlertOutline } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
+
import { fireEvent } from "../../common/dom/fire_event";
-import "../../components/ha-md-dialog";
-import type { HaMdDialog } from "../../components/ha-md-dialog";
-import "../../components/ha-dialog-header";
-import "../../components/ha-svg-icon";
-import "../../components/ha-button";
-import "../../components/ha-textfield";
-import type { HaTextField } from "../../components/ha-textfield";
-import type { HomeAssistant } from "../../types";
-import type { DialogBoxParams } from "./show-dialog-box";
@customElement("dialog-box")
class DialogBox extends LitElement {
diff --git a/src/dialogs/generic/show-dialog-box.ts b/src/dialogs/generic/show-dialog-box.ts
index ff161d9ece..06febc69a9 100644
--- a/src/dialogs/generic/show-dialog-box.ts
+++ b/src/dialogs/generic/show-dialog-box.ts
@@ -1,4 +1,5 @@
import type { TemplateResult } from "lit";
+
import { fireEvent } from "../../common/dom/fire_event";
interface BaseDialogBoxParams {
diff --git a/src/dialogs/image-cropper-dialog/image-cropper-dialog.ts b/src/dialogs/image-cropper-dialog/image-cropper-dialog.ts
index 57d6717cf0..3f74323624 100644
--- a/src/dialogs/image-cropper-dialog/image-cropper-dialog.ts
+++ b/src/dialogs/image-cropper-dialog/image-cropper-dialog.ts
@@ -1,15 +1,19 @@
-import "@material/mwc-button/mwc-button";
-import Cropper from "cropperjs";
+import type { HomeAssistant } from "../../types";
+import type { HaImageCropperDialogParams } from "./show-image-cropper-dialog";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
// @ts-ignore
import cropperCss from "cropperjs/dist/cropper.css";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../components/ha-dialog";
+import "@material/mwc-button/mwc-button";
+
+import Cropper from "cropperjs";
import { css, html, nothing, LitElement, unsafeCSS } from "lit";
import { customElement, property, state, query } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
-import "../../components/ha-dialog";
+
import { haStyleDialog } from "../../resources/styles";
-import type { HomeAssistant } from "../../types";
-import type { HaImageCropperDialogParams } from "./show-image-cropper-dialog";
@customElement("image-cropper-dialog")
export class HaImagecropperDialog extends LitElement {
diff --git a/src/dialogs/make-dialog-manager.ts b/src/dialogs/make-dialog-manager.ts
index 792fc4caa7..9da06cb5b9 100644
--- a/src/dialogs/make-dialog-manager.ts
+++ b/src/dialogs/make-dialog-manager.ts
@@ -1,8 +1,9 @@
import type { HASSDomEvent, ValidHassDomEvent } from "../common/dom/fire_event";
-import { mainWindow } from "../common/dom/get_main_window";
import type { ProvideHassElement } from "../mixins/provide-hass-lit-mixin";
+
import { ancestorsWithProperty } from "../common/dom/ancestors-with-property";
import { deepActiveElement } from "../common/dom/deep-active-element";
+import { mainWindow } from "../common/dom/get_main_window";
import { nextRender } from "../common/util/render-status";
declare global {
diff --git a/src/dialogs/more-info/components/ha-more-info-control-select-container.ts b/src/dialogs/more-info/components/ha-more-info-control-select-container.ts
index e25e3404a6..cb044cefa8 100644
--- a/src/dialogs/more-info/components/ha-more-info-control-select-container.ts
+++ b/src/dialogs/more-info/components/ha-more-info-control-select-container.ts
@@ -1,4 +1,5 @@
import type { TemplateResult } from "lit";
+
import { css, html, LitElement } from "lit";
import { customElement } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
diff --git a/src/dialogs/more-info/components/ha-more-info-state-header.ts b/src/dialogs/more-info/components/ha-more-info-state-header.ts
index e166517bab..70f8c7a435 100644
--- a/src/dialogs/more-info/components/ha-more-info-state-header.ts
+++ b/src/dialogs/more-info/components/ha-more-info-state-header.ts
@@ -1,13 +1,16 @@
+import type { LightEntity } from "../../../data/light";
+import type { HomeAssistant } from "../../../types";
import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
+
import "../../../components/ha-absolute-time";
import "../../../components/ha-relative-time";
-import { isUnavailableState } from "../../../data/entity";
-import type { LightEntity } from "../../../data/light";
-import { SENSOR_DEVICE_CLASS_TIMESTAMP } from "../../../data/sensor";
import "../../../panels/lovelace/components/hui-timestamp-display";
-import type { HomeAssistant } from "../../../types";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { isUnavailableState } from "../../../data/entity";
+import { SENSOR_DEVICE_CLASS_TIMESTAMP } from "../../../data/sensor";
@customElement("ha-more-info-state-header")
export class HaMoreInfoStateHeader extends LitElement {
diff --git a/src/dialogs/more-info/components/lights/dialog-light-color-favorite.ts b/src/dialogs/more-info/components/lights/dialog-light-color-favorite.ts
index 77879f12b1..708d189b80 100644
--- a/src/dialogs/more-info/components/lights/dialog-light-color-favorite.ts
+++ b/src/dialogs/more-info/components/lights/dialog-light-color-favorite.ts
@@ -1,29 +1,32 @@
-import { mdiClose } from "@mdi/js";
+import type { HaMdDialog } from "../../../../components/ha-md-dialog";
+import type { EntityRegistryEntry } from "../../../../data/entity_registry";
+import type { LightColor, LightEntity } from "../../../../data/light";
+import type { HomeAssistant } from "../../../../types";
+import type { LightColorFavoriteDialogParams } from "./show-dialog-light-color-favorite";
import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-button";
+import "../../../../components/ha-dialog-header";
+import "../../../../components/ha-icon-button-toggle";
+import "./light-color-rgb-picker";
+import "./light-color-temp-picker";
+
+import { mdiClose } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state, query } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-button";
import {
getMobileOpenFromBottomAnimation,
getMobileCloseToBottomAnimation,
} from "../../../../components/ha-md-dialog";
-import type { HaMdDialog } from "../../../../components/ha-md-dialog";
-import "../../../../components/ha-dialog-header";
-import "../../../../components/ha-icon-button-toggle";
-import type { EntityRegistryEntry } from "../../../../data/entity_registry";
-import type { LightColor, LightEntity } from "../../../../data/light";
import {
LightColorMode,
lightSupportsColor,
lightSupportsColorMode,
} from "../../../../data/light";
import { haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
-import "./light-color-rgb-picker";
-import "./light-color-temp-picker";
-import type { LightColorFavoriteDialogParams } from "./show-dialog-light-color-favorite";
export type LightPickerMode = "color_temp" | "color";
diff --git a/src/dialogs/more-info/components/lights/ha-favorite-color-button.ts b/src/dialogs/more-info/components/lights/ha-favorite-color-button.ts
index d8bf1be0f1..a0b5ae325b 100644
--- a/src/dialogs/more-info/components/lights/ha-favorite-color-button.ts
+++ b/src/dialogs/more-info/components/lights/ha-favorite-color-button.ts
@@ -1,8 +1,15 @@
+import type { HaOutlinedIconButton } from "../../../../components/ha-outlined-icon-button";
+import type { LightColor, LightEntity } from "../../../../data/light";
import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-outlined-icon-button";
+import "../../../../components/ha-svg-icon";
+
import { css, html, LitElement } from "lit";
import { customElement, property, query } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
import { styleMap } from "lit/directives/style-map";
+
import { hs2rgb, rgb2hex } from "../../../../common/color/convert-color";
import {
rgbw2rgb,
@@ -10,10 +17,6 @@ import {
temperature2rgb,
} from "../../../../common/color/convert-light-color";
import { luminosity } from "../../../../common/color/rgb";
-import type { HaOutlinedIconButton } from "../../../../components/ha-outlined-icon-button";
-import "../../../../components/ha-outlined-icon-button";
-import "../../../../components/ha-svg-icon";
-import type { LightColor, LightEntity } from "../../../../data/light";
@customElement("ha-favorite-color-button")
class MoreInfoViewLightColorPicker extends LitElement {
diff --git a/src/dialogs/more-info/components/lights/ha-more-info-light-favorite-colors.ts b/src/dialogs/more-info/components/lights/ha-more-info-light-favorite-colors.ts
index 6c070539d4..c4763927f7 100644
--- a/src/dialogs/more-info/components/lights/ha-more-info-light-favorite-colors.ts
+++ b/src/dialogs/more-info/components/lights/ha-more-info-light-favorite-colors.ts
@@ -1,20 +1,23 @@
-import { mdiCheck, mdiMinus, mdiPlus } from "@mdi/js";
+import type { ExtEntityRegistryEntry } from "../../../../data/entity_registry";
+import type { LightColor, LightEntity } from "../../../../data/light";
+import type { HomeAssistant } from "../../../../types";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../../components/ha-control-slider";
+import "../../../../components/ha-sortable";
+import "./ha-favorite-color-button";
+
+import { mdiCheck, mdiMinus, mdiPlus } from "@mdi/js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-control-slider";
-import "../../../../components/ha-sortable";
import { UNAVAILABLE } from "../../../../data/entity";
-import type { ExtEntityRegistryEntry } from "../../../../data/entity_registry";
import { updateEntityRegistryEntry } from "../../../../data/entity_registry";
-import type { LightColor, LightEntity } from "../../../../data/light";
import { computeDefaultFavoriteColors } from "../../../../data/light";
import { actionHandler } from "../../../../panels/lovelace/common/directives/action-handler-directive";
-import type { HomeAssistant } from "../../../../types";
import { showConfirmationDialog } from "../../../generic/show-dialog-box";
-import "./ha-favorite-color-button";
import { showLightColorFavoriteDialog } from "./show-dialog-light-color-favorite";
declare global {
diff --git a/src/dialogs/more-info/components/lights/light-color-rgb-picker.ts b/src/dialogs/more-info/components/lights/light-color-rgb-picker.ts
index 1cceea263b..67220deaa0 100644
--- a/src/dialogs/more-info/components/lights/light-color-rgb-picker.ts
+++ b/src/dialogs/more-info/components/lights/light-color-rgb-picker.ts
@@ -1,8 +1,17 @@
-import "@material/mwc-button";
-import { mdiEyedropper } from "@mdi/js";
+import type { LightColor, LightEntity } from "../../../../data/light";
+import type { HomeAssistant } from "../../../../types";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../../components/ha-hs-color-picker";
+import "../../../../components/ha-icon";
+import "../../../../components/ha-icon-button-prev";
+import "../../../../components/ha-labeled-slider";
+import "@material/mwc-button";
+
+import { mdiEyedropper } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import {
hex2rgb,
hs2rgb,
@@ -13,17 +22,11 @@ import {
} from "../../../../common/color/convert-color";
import { fireEvent } from "../../../../common/dom/fire_event";
import { throttle } from "../../../../common/util/throttle";
-import "../../../../components/ha-hs-color-picker";
-import "../../../../components/ha-icon";
-import "../../../../components/ha-icon-button-prev";
-import "../../../../components/ha-labeled-slider";
-import type { LightColor, LightEntity } from "../../../../data/light";
import {
getLightCurrentModeRgbColor,
LightColorMode,
lightSupportsColorMode,
} from "../../../../data/light";
-import type { HomeAssistant } from "../../../../types";
declare global {
interface HASSDomEvents {
diff --git a/src/dialogs/more-info/components/lights/light-color-temp-picker.ts b/src/dialogs/more-info/components/lights/light-color-temp-picker.ts
index 2f3480646d..cbeb6719bd 100644
--- a/src/dialogs/more-info/components/lights/light-color-temp-picker.ts
+++ b/src/dialogs/more-info/components/lights/light-color-temp-picker.ts
@@ -1,8 +1,14 @@
+import type { LightColor, LightEntity } from "../../../../data/light";
+import type { HomeAssistant } from "../../../../types";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../../components/ha-control-slider";
+
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
import memoizeOne from "memoize-one";
+
import { rgb2hex } from "../../../../common/color/convert-color";
import {
DEFAULT_MAX_KELVIN,
@@ -12,12 +18,9 @@ import {
import { fireEvent } from "../../../../common/dom/fire_event";
import { stateColorCss } from "../../../../common/entity/state_color";
import { throttle } from "../../../../common/util/throttle";
-import "../../../../components/ha-control-slider";
import { UNAVAILABLE } from "../../../../data/entity";
-import type { LightColor, LightEntity } from "../../../../data/light";
-import { LightColorMode } from "../../../../data/light";
-import type { HomeAssistant } from "../../../../types";
import { DOMAIN_ATTRIBUTES_UNITS } from "../../../../data/entity_attributes";
+import { LightColorMode } from "../../../../data/light";
declare global {
interface HASSDomEvents {
diff --git a/src/dialogs/more-info/components/lights/show-dialog-light-color-favorite.ts b/src/dialogs/more-info/components/lights/show-dialog-light-color-favorite.ts
index 5377b085ea..0c91356695 100644
--- a/src/dialogs/more-info/components/lights/show-dialog-light-color-favorite.ts
+++ b/src/dialogs/more-info/components/lights/show-dialog-light-color-favorite.ts
@@ -1,7 +1,8 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { ExtEntityRegistryEntry } from "../../../../data/entity_registry";
import type { LightColor } from "../../../../data/light";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export interface LightColorFavoriteDialogParams {
entry: ExtEntityRegistryEntry;
title: string;
diff --git a/src/dialogs/more-info/components/siren/ha-more-info-siren-advanced-controls.ts b/src/dialogs/more-info/components/siren/ha-more-info-siren-advanced-controls.ts
index 4f6b3719b0..37961e154a 100644
--- a/src/dialogs/more-info/components/siren/ha-more-info-siren-advanced-controls.ts
+++ b/src/dialogs/more-info/components/siren/ha-more-info-siren-advanced-controls.ts
@@ -1,24 +1,27 @@
+import type { HaMdDialog } from "../../../../components/ha-md-dialog";
+import type { HomeAssistant } from "../../../../types";
+import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-button";
+import "../../../../components/ha-control-button";
+import "../../../../components/ha-dialog-header";
+import "../../../../components/ha-icon-button";
+import "../../../../components/ha-list-item";
+import "../../../../components/ha-select";
+import "../../../../components/ha-textfield";
+
+import { mdiClose, mdiPlay, mdiStop } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
-import type { HassEntity } from "home-assistant-js-websocket";
-import { mdiClose, mdiPlay, mdiStop } from "@mdi/js";
-import type { HomeAssistant } from "../../../../types";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { stopPropagation } from "../../../../common/dom/stop_propagation";
+import { supportsFeature } from "../../../../common/entity/supports-feature";
import {
getMobileCloseToBottomAnimation,
getMobileOpenFromBottomAnimation,
} from "../../../../components/ha-md-dialog";
-import "../../../../components/ha-dialog-header";
-import "../../../../components/ha-icon-button";
-import "../../../../components/ha-button";
-import "../../../../components/ha-textfield";
-import "../../../../components/ha-control-button";
-import "../../../../components/ha-select";
-import "../../../../components/ha-list-item";
-import type { HaMdDialog } from "../../../../components/ha-md-dialog";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { supportsFeature } from "../../../../common/entity/supports-feature";
import { SirenEntityFeature } from "../../../../data/siren";
import { haStyle } from "../../../../resources/styles";
diff --git a/src/dialogs/more-info/components/siren/show-dialog-siren-advanced-controls.ts b/src/dialogs/more-info/components/siren/show-dialog-siren-advanced-controls.ts
index 4913ebd012..8b2b2f1ad8 100644
--- a/src/dialogs/more-info/components/siren/show-dialog-siren-advanced-controls.ts
+++ b/src/dialogs/more-info/components/siren/show-dialog-siren-advanced-controls.ts
@@ -1,4 +1,5 @@
import type { HassEntity } from "home-assistant-js-websocket";
+
import { fireEvent } from "../../../../common/dom/fire_event";
export const loadSirenAdvancedControlsView = () =>
diff --git a/src/dialogs/more-info/components/voice/ha-more-info-view-voice-assistants.ts b/src/dialogs/more-info/components/voice/ha-more-info-view-voice-assistants.ts
index 6e289f6af5..a5e8eb432b 100644
--- a/src/dialogs/more-info/components/voice/ha-more-info-view-voice-assistants.ts
+++ b/src/dialogs/more-info/components/voice/ha-more-info-view-voice-assistants.ts
@@ -1,12 +1,15 @@
+import type { ExtEntityRegistryEntry } from "../../../../data/entity_registry";
+import type { ExposeEntitySettings } from "../../../../data/expose";
+import type { HomeAssistant } from "../../../../types";
import type { CSSResultGroup } from "lit";
+
+import "../../../../panels/config/voice-assistants/entity-voice-settings";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import memoizeOne from "memoize-one";
-import type { ExtEntityRegistryEntry } from "../../../../data/entity_registry";
-import type { ExposeEntitySettings } from "../../../../data/expose";
+
import { voiceAssistants } from "../../../../data/expose";
-import "../../../../panels/config/voice-assistants/entity-voice-settings";
-import type { HomeAssistant } from "../../../../types";
@customElement("ha-more-info-view-voice-assistants")
class MoreInfoViewVoiceAssistants extends LitElement {
diff --git a/src/dialogs/more-info/const.ts b/src/dialogs/more-info/const.ts
index b0795eb538..46d2d89d4c 100644
--- a/src/dialogs/more-info/const.ts
+++ b/src/dialogs/more-info/const.ts
@@ -1,11 +1,12 @@
+import type { GroupEntity } from "../../data/group";
+import type { HomeAssistant } from "../../types";
import type { HassEntity } from "home-assistant-js-websocket";
+
import { isComponentLoaded } from "../../common/config/is_component_loaded";
import { computeDomain } from "../../common/entity/compute_domain";
-import type { GroupEntity } from "../../data/group";
import { computeGroupDomain } from "../../data/group";
-import { CONTINUOUS_DOMAINS } from "../../data/logbook";
-import type { HomeAssistant } from "../../types";
import { isNumericEntity } from "../../data/history";
+import { CONTINUOUS_DOMAINS } from "../../data/logbook";
export const DOMAINS_NO_INFO = ["camera", "configurator"];
/**
diff --git a/src/dialogs/more-info/controls/more-info-alarm_control_panel.ts b/src/dialogs/more-info/controls/more-info-alarm_control_panel.ts
index 6720a5aede..d9e8e0b307 100644
--- a/src/dialogs/more-info/controls/more-info-alarm_control_panel.ts
+++ b/src/dialogs/more-info/controls/more-info-alarm_control_panel.ts
@@ -1,15 +1,18 @@
+import type { AlarmControlPanelEntity } from "../../../data/alarm_control_panel";
+import type { HomeAssistant } from "../../../types";
import type { CSSResultGroup } from "lit";
+
+import "../../../components/ha-control-button";
+import "../../../components/ha-state-icon";
+import "../../../state-control/alarm_control_panel/ha-state-control-alarm_control_panel-modes";
+import "../components/ha-more-info-state-header";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
+
import { stateColorCss } from "../../../common/entity/state_color";
-import "../../../components/ha-control-button";
-import "../../../components/ha-state-icon";
-import type { AlarmControlPanelEntity } from "../../../data/alarm_control_panel";
import { setProtectedAlarmControlPanelMode } from "../../../data/alarm_control_panel";
-import "../../../state-control/alarm_control_panel/ha-state-control-alarm_control_panel-modes";
-import type { HomeAssistant } from "../../../types";
-import "../components/ha-more-info-state-header";
import { moreInfoControlStyle } from "../components/more-info-control-style";
@customElement("more-info-alarm_control_panel")
diff --git a/src/dialogs/more-info/controls/more-info-automation.ts b/src/dialogs/more-info/controls/more-info-automation.ts
index 0f554e2fd9..cb1aa284a0 100644
--- a/src/dialogs/more-info/controls/more-info-automation.ts
+++ b/src/dialogs/more-info/controls/more-info-automation.ts
@@ -1,11 +1,14 @@
-import "@material/mwc-button";
+import type { HomeAssistant } from "../../../types";
import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../components/ha-relative-time";
+import "@material/mwc-button";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
-import "../../../components/ha-relative-time";
+
import { triggerAutomationActions } from "../../../data/automation";
import { isUnavailableState } from "../../../data/entity";
-import type { HomeAssistant } from "../../../types";
@customElement("more-info-automation")
class MoreInfoAutomation extends LitElement {
diff --git a/src/dialogs/more-info/controls/more-info-camera.ts b/src/dialogs/more-info/controls/more-info-camera.ts
index e45fe3a633..7a6e26bd61 100644
--- a/src/dialogs/more-info/controls/more-info-camera.ts
+++ b/src/dialogs/more-info/controls/more-info-camera.ts
@@ -1,13 +1,16 @@
-import { css, html, LitElement, nothing } from "lit";
-import { property, state } from "lit/decorators";
-import "../../../components/ha-camera-stream";
import type { CameraEntity } from "../../../data/camera";
import type { HomeAssistant } from "../../../types";
+
import "../../../components/buttons/ha-progress-button";
+import "../../../components/ha-camera-stream";
+
+import { css, html, LitElement, nothing } from "lit";
+import { property, state } from "lit/decorators";
+
+import { slugify } from "../../../common/string/slugify";
import { UNAVAILABLE } from "../../../data/entity";
import { fileDownload } from "../../../util/file_download";
import { showToast } from "../../../util/toast";
-import { slugify } from "../../../common/string/slugify";
class MoreInfoCamera extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/dialogs/more-info/controls/more-info-climate.ts b/src/dialogs/more-info/controls/more-info-climate.ts
index 28f1c24554..030c7118e8 100644
--- a/src/dialogs/more-info/controls/more-info-climate.ts
+++ b/src/dialogs/more-info/controls/more-info-climate.ts
@@ -1,16 +1,7 @@
-import "@material/mwc-list/mwc-list-item";
-import {
- mdiArrowOscillating,
- mdiFan,
- mdiThermometer,
- mdiTuneVariant,
- mdiWaterPercent,
-} from "@mdi/js";
+import type { ClimateEntity } from "../../../data/climate";
+import type { HomeAssistant } from "../../../types";
import type { CSSResultGroup, PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { property, state } from "lit/decorators";
-import { stopPropagation } from "../../../common/dom/stop_propagation";
-import { supportsFeature } from "../../../common/entity/supports-feature";
+
import "../../../components/ha-attribute-icon";
import "../../../components/ha-control-select-menu";
import "../../../components/ha-icon-button-group";
@@ -18,17 +9,29 @@ import "../../../components/ha-icon-button-toggle";
import "../../../components/ha-list-item";
import "../../../components/ha-select";
import "../../../components/ha-switch";
-import type { ClimateEntity } from "../../../data/climate";
+import "../../../state-control/climate/ha-state-control-climate-humidity";
+import "../../../state-control/climate/ha-state-control-climate-temperature";
+import "../components/ha-more-info-control-select-container";
+import "@material/mwc-list/mwc-list-item";
+
+import {
+ mdiArrowOscillating,
+ mdiFan,
+ mdiThermometer,
+ mdiTuneVariant,
+ mdiWaterPercent,
+} from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { property, state } from "lit/decorators";
+
+import { stopPropagation } from "../../../common/dom/stop_propagation";
+import { supportsFeature } from "../../../common/entity/supports-feature";
import {
ClimateEntityFeature,
climateHvacModeIcon,
compareClimateHvacModes,
} from "../../../data/climate";
import { UNAVAILABLE } from "../../../data/entity";
-import "../../../state-control/climate/ha-state-control-climate-humidity";
-import "../../../state-control/climate/ha-state-control-climate-temperature";
-import type { HomeAssistant } from "../../../types";
-import "../components/ha-more-info-control-select-container";
import { moreInfoControlStyle } from "../components/more-info-control-style";
type MainControl = "temperature" | "humidity";
diff --git a/src/dialogs/more-info/controls/more-info-configurator.ts b/src/dialogs/more-info/controls/more-info-configurator.ts
index d32e90f112..80a145ae49 100644
--- a/src/dialogs/more-info/controls/more-info-configurator.ts
+++ b/src/dialogs/more-info/controls/more-info-configurator.ts
@@ -1,12 +1,14 @@
-import "@material/mwc-button";
+import type { HomeAssistant } from "../../../types";
import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../components/ha-alert";
+import "../../../components/ha-markdown";
+import "../../../components/ha-spinner";
+import "../../../components/ha-textfield";
+import "@material/mwc-button";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
-import "../../../components/ha-alert";
-import "../../../components/ha-spinner";
-import "../../../components/ha-markdown";
-import "../../../components/ha-textfield";
-import type { HomeAssistant } from "../../../types";
@customElement("more-info-configurator")
export class MoreInfoConfigurator extends LitElement {
diff --git a/src/dialogs/more-info/controls/more-info-conversation.ts b/src/dialogs/more-info/controls/more-info-conversation.ts
index 595909dd97..5b6d35257f 100644
--- a/src/dialogs/more-info/controls/more-info-conversation.ts
+++ b/src/dialogs/more-info/controls/more-info-conversation.ts
@@ -1,13 +1,16 @@
+import type { AssistPipeline } from "../../../data/assist_pipeline";
+import type { HomeAssistant } from "../../../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
+
+import "../../../components/ha-alert";
+import "../../../components/ha-assist-chat";
+import "../../../components/ha-attributes";
+import "../../../components/ha-spinner";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
-import "../../../components/ha-attributes";
-import type { HomeAssistant } from "../../../types";
-import "../../../components/ha-assist-chat";
-import "../../../components/ha-spinner";
-import "../../../components/ha-alert";
-import type { AssistPipeline } from "../../../data/assist_pipeline";
+
import { getAssistPipeline } from "../../../data/assist_pipeline";
@customElement("more-info-conversation")
diff --git a/src/dialogs/more-info/controls/more-info-counter.ts b/src/dialogs/more-info/controls/more-info-counter.ts
index 2eb4a9763f..83b336aa91 100644
--- a/src/dialogs/more-info/controls/more-info-counter.ts
+++ b/src/dialogs/more-info/controls/more-info-counter.ts
@@ -1,9 +1,12 @@
-import "@material/mwc-button";
+import type { HomeAssistant } from "../../../types";
import type { HassEntity } from "home-assistant-js-websocket";
+
+import "@material/mwc-button";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
+
import { isUnavailableState } from "../../../data/entity";
-import type { HomeAssistant } from "../../../types";
@customElement("more-info-counter")
class MoreInfoCounter extends LitElement {
diff --git a/src/dialogs/more-info/controls/more-info-cover.ts b/src/dialogs/more-info/controls/more-info-cover.ts
index 166d5367a6..b42b3ef4cb 100644
--- a/src/dialogs/more-info/controls/more-info-cover.ts
+++ b/src/dialogs/more-info/controls/more-info-cover.ts
@@ -1,22 +1,25 @@
-import { mdiMenu, mdiSwapVertical } from "@mdi/js";
+import type { CoverEntity } from "../../../data/cover";
+import type { HomeAssistant } from "../../../types";
import type { CSSResultGroup, PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { supportsFeature } from "../../../common/entity/supports-feature";
+
import "../../../components/ha-attributes";
import "../../../components/ha-icon-button-group";
import "../../../components/ha-icon-button-toggle";
-import type { CoverEntity } from "../../../data/cover";
-import {
- CoverEntityFeature,
- computeCoverPositionStateDisplay,
-} from "../../../data/cover";
import "../../../state-control/cover/ha-state-control-cover-buttons";
import "../../../state-control/cover/ha-state-control-cover-position";
import "../../../state-control/cover/ha-state-control-cover-tilt-position";
import "../../../state-control/cover/ha-state-control-cover-toggle";
-import type { HomeAssistant } from "../../../types";
import "../components/ha-more-info-state-header";
+
+import { mdiMenu, mdiSwapVertical } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { supportsFeature } from "../../../common/entity/supports-feature";
+import {
+ CoverEntityFeature,
+ computeCoverPositionStateDisplay,
+} from "../../../data/cover";
import { moreInfoControlStyle } from "../components/more-info-control-style";
type Mode = "position" | "button";
diff --git a/src/dialogs/more-info/controls/more-info-date.ts b/src/dialogs/more-info/controls/more-info-date.ts
index 590abce941..0ad011e111 100644
--- a/src/dialogs/more-info/controls/more-info-date.ts
+++ b/src/dialogs/more-info/controls/more-info-date.ts
@@ -1,11 +1,14 @@
+import type { HomeAssistant } from "../../../types";
import type { HassEntity } from "home-assistant-js-websocket";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
+
import "../../../components/ha-date-input";
import "../../../components/ha-time-input";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { setDateValue } from "../../../data/date";
import { isUnavailableState, UNAVAILABLE } from "../../../data/entity";
-import type { HomeAssistant } from "../../../types";
@customElement("more-info-date")
class MoreInfoDate extends LitElement {
diff --git a/src/dialogs/more-info/controls/more-info-datetime.ts b/src/dialogs/more-info/controls/more-info-datetime.ts
index 4be1a2f756..8982af8f83 100644
--- a/src/dialogs/more-info/controls/more-info-datetime.ts
+++ b/src/dialogs/more-info/controls/more-info-datetime.ts
@@ -1,12 +1,15 @@
-import { format } from "date-fns";
+import type { HomeAssistant } from "../../../types";
import type { HassEntity } from "home-assistant-js-websocket";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
+
import "../../../components/ha-date-input";
import "../../../components/ha-time-input";
+
+import { format } from "date-fns";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { setDateTimeValue } from "../../../data/datetime";
import { isUnavailableState, UNAVAILABLE } from "../../../data/entity";
-import type { HomeAssistant } from "../../../types";
@customElement("more-info-datetime")
class MoreInfoDatetime extends LitElement {
diff --git a/src/dialogs/more-info/controls/more-info-default.ts b/src/dialogs/more-info/controls/more-info-default.ts
index b013e30ba3..2093c24fdf 100644
--- a/src/dialogs/more-info/controls/more-info-default.ts
+++ b/src/dialogs/more-info/controls/more-info-default.ts
@@ -1,8 +1,10 @@
+import type { HomeAssistant } from "../../../types";
import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../components/ha-attributes";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
-import "../../../components/ha-attributes";
-import type { HomeAssistant } from "../../../types";
@customElement("more-info-default")
class MoreInfoDefault extends LitElement {
diff --git a/src/dialogs/more-info/controls/more-info-fan.ts b/src/dialogs/more-info/controls/more-info-fan.ts
index 47b1d873b4..86019a6710 100644
--- a/src/dialogs/more-info/controls/more-info-fan.ts
+++ b/src/dialogs/more-info/controls/more-info-fan.ts
@@ -1,3 +1,16 @@
+import type { FanEntity } from "../../../data/fan";
+import type { HomeAssistant } from "../../../types";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../components/ha-attribute-icon";
+import "../../../components/ha-control-select-menu";
+import "../../../components/ha-list-item";
+import "../../../components/ha-outlined-icon-button";
+import "../../../state-control/fan/ha-state-control-fan-speed";
+import "../../../state-control/ha-state-control-toggle";
+import "../components/ha-more-info-control-select-container";
+import "../components/ha-more-info-state-header";
+
import {
mdiArrowOscillating,
mdiArrowOscillatingOff,
@@ -6,18 +19,13 @@ import {
mdiPower,
mdiTuneVariant,
} from "@mdi/js";
-import type { CSSResultGroup, PropertyValues } from "lit";
import { LitElement, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { stopPropagation } from "../../../common/dom/stop_propagation";
import { stateActive } from "../../../common/entity/state_active";
import { supportsFeature } from "../../../common/entity/supports-feature";
-import "../../../components/ha-attribute-icon";
-import "../../../components/ha-control-select-menu";
-import "../../../components/ha-list-item";
-import "../../../components/ha-outlined-icon-button";
import { UNAVAILABLE } from "../../../data/entity";
-import type { FanEntity } from "../../../data/fan";
import {
FAN_SPEED_COUNT_MAX_FOR_BUTTONS,
FanEntityFeature,
@@ -25,11 +33,6 @@ import {
computeFanSpeedStateDisplay,
} from "../../../data/fan";
import { forwardHaptic } from "../../../data/haptics";
-import "../../../state-control/fan/ha-state-control-fan-speed";
-import "../../../state-control/ha-state-control-toggle";
-import type { HomeAssistant } from "../../../types";
-import "../components/ha-more-info-control-select-container";
-import "../components/ha-more-info-state-header";
import { moreInfoControlStyle } from "../components/more-info-control-style";
@customElement("more-info-fan")
diff --git a/src/dialogs/more-info/controls/more-info-group.ts b/src/dialogs/more-info/controls/more-info-group.ts
index 0a4cf2f3ab..c536f863dc 100644
--- a/src/dialogs/more-info/controls/more-info-group.ts
+++ b/src/dialogs/more-info/controls/more-info-group.ts
@@ -1,12 +1,15 @@
+import type { GroupEntity } from "../../../data/group";
+import type { HomeAssistant } from "../../../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../state-summary/state-card-content";
+
import { LitElement, css, html, nothing } from "lit";
import { property, state } from "lit/decorators";
+
import { dynamicElement } from "../../../common/dom/dynamic-element-directive";
-import type { GroupEntity } from "../../../data/group";
import { computeGroupDomain } from "../../../data/group";
-import "../../../state-summary/state-card-content";
-import type { HomeAssistant } from "../../../types";
import { moreInfoControlStyle } from "../components/more-info-control-style";
import {
domainMoreInfoType,
diff --git a/src/dialogs/more-info/controls/more-info-humidifier.ts b/src/dialogs/more-info/controls/more-info-humidifier.ts
index 77f5556413..ef3eb0e2fe 100644
--- a/src/dialogs/more-info/controls/more-info-humidifier.ts
+++ b/src/dialogs/more-info/controls/more-info-humidifier.ts
@@ -1,18 +1,21 @@
-import { mdiPower, mdiTuneVariant } from "@mdi/js";
+import type { HumidifierEntity } from "../../../data/humidifier";
+import type { HomeAssistant } from "../../../types";
import type { CSSResultGroup, PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { property, state } from "lit/decorators";
-import { stopPropagation } from "../../../common/dom/stop_propagation";
-import { supportsFeature } from "../../../common/entity/supports-feature";
+
+import "../../../components/ha-attribute-icon";
import "../../../components/ha-control-select-menu";
import "../../../components/ha-list-item";
-import "../../../components/ha-attribute-icon";
-import { UNAVAILABLE } from "../../../data/entity";
-import type { HumidifierEntity } from "../../../data/humidifier";
-import { HumidifierEntityFeature } from "../../../data/humidifier";
import "../../../state-control/humidifier/ha-state-control-humidifier-humidity";
-import type { HomeAssistant } from "../../../types";
import "../components/ha-more-info-control-select-container";
+
+import { mdiPower, mdiTuneVariant } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { property, state } from "lit/decorators";
+
+import { stopPropagation } from "../../../common/dom/stop_propagation";
+import { supportsFeature } from "../../../common/entity/supports-feature";
+import { UNAVAILABLE } from "../../../data/entity";
+import { HumidifierEntityFeature } from "../../../data/humidifier";
import { moreInfoControlStyle } from "../components/more-info-control-style";
class MoreInfoHumidifier extends LitElement {
diff --git a/src/dialogs/more-info/controls/more-info-image.ts b/src/dialogs/more-info/controls/more-info-image.ts
index a3f3aef1b9..a5e956d7c5 100644
--- a/src/dialogs/more-info/controls/more-info-image.ts
+++ b/src/dialogs/more-info/controls/more-info-image.ts
@@ -1,9 +1,12 @@
+import type { ImageEntity } from "../../../data/image";
+import type { HomeAssistant } from "../../../types";
+
+import "../../../components/ha-camera-stream";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
-import "../../../components/ha-camera-stream";
-import type { ImageEntity } from "../../../data/image";
+
import { computeImageUrl } from "../../../data/image";
-import type { HomeAssistant } from "../../../types";
@customElement("more-info-image")
class MoreInfoImage extends LitElement {
diff --git a/src/dialogs/more-info/controls/more-info-input_boolean.ts b/src/dialogs/more-info/controls/more-info-input_boolean.ts
index 9decbd55c2..ff36818f7f 100644
--- a/src/dialogs/more-info/controls/more-info-input_boolean.ts
+++ b/src/dialogs/more-info/controls/more-info-input_boolean.ts
@@ -1,12 +1,15 @@
-import { mdiPower, mdiPowerOff } from "@mdi/js";
+import type { HomeAssistant } from "../../../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup } from "lit";
-import { LitElement, html, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
+
import "../../../components/ha-attributes";
import "../../../state-control/ha-state-control-toggle";
-import type { HomeAssistant } from "../../../types";
import "../components/ha-more-info-state-header";
+
+import { mdiPower, mdiPowerOff } from "@mdi/js";
+import { LitElement, html, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { moreInfoControlStyle } from "../components/more-info-control-style";
@customElement("more-info-input_boolean")
diff --git a/src/dialogs/more-info/controls/more-info-input_datetime.ts b/src/dialogs/more-info/controls/more-info-input_datetime.ts
index 403763c653..d7e097c058 100644
--- a/src/dialogs/more-info/controls/more-info-input_datetime.ts
+++ b/src/dialogs/more-info/controls/more-info-input_datetime.ts
@@ -1,14 +1,17 @@
+import type { HomeAssistant } from "../../../types";
import type { HassEntity } from "home-assistant-js-websocket";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
+
import "../../../components/ha-date-input";
import "../../../components/ha-time-input";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { isUnavailableState, UNKNOWN } from "../../../data/entity";
import {
setInputDateTimeValue,
stateToIsoDateString,
} from "../../../data/input_datetime";
-import type { HomeAssistant } from "../../../types";
@customElement("more-info-input_datetime")
class MoreInfoInputDatetime extends LitElement {
diff --git a/src/dialogs/more-info/controls/more-info-lawn_mower.ts b/src/dialogs/more-info/controls/more-info-lawn_mower.ts
index 399e2c348c..d6ad7f6138 100644
--- a/src/dialogs/more-info/controls/more-info-lawn_mower.ts
+++ b/src/dialogs/more-info/controls/more-info-lawn_mower.ts
@@ -1,21 +1,24 @@
+import type { EntityRegistryDisplayEntry } from "../../../data/entity_registry";
+import type { LawnMowerEntity } from "../../../data/lawn_mower";
+import type { HomeAssistant } from "../../../types";
+
+import "../../../components/entity/ha-battery-icon";
+import "../../../components/ha-icon-button";
+
import { mdiHomeImportOutline, mdiPause, mdiPlay } from "@mdi/js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { computeStateDomain } from "../../../common/entity/compute_state_domain";
import { supportsFeature } from "../../../common/entity/supports-feature";
import { blankBeforePercent } from "../../../common/translations/blank_before_percent";
-import "../../../components/entity/ha-battery-icon";
-import "../../../components/ha-icon-button";
import { UNAVAILABLE } from "../../../data/entity";
-import type { EntityRegistryDisplayEntry } from "../../../data/entity_registry";
import {
findBatteryChargingEntity,
findBatteryEntity,
} from "../../../data/entity_registry";
-import type { LawnMowerEntity } from "../../../data/lawn_mower";
import { LawnMowerEntityFeature } from "../../../data/lawn_mower";
-import type { HomeAssistant } from "../../../types";
interface LawnMowerCommand {
translationKey: string;
diff --git a/src/dialogs/more-info/controls/more-info-light.ts b/src/dialogs/more-info/controls/more-info-light.ts
index 9d81cfdc01..536e0daa4a 100644
--- a/src/dialogs/more-info/controls/more-info-light.ts
+++ b/src/dialogs/more-info/controls/more-info-light.ts
@@ -1,4 +1,24 @@
+import type { ExtEntityRegistryEntry } from "../../../data/entity_registry";
+import type { LightEntity } from "../../../data/light";
+import type { HomeAssistant } from "../../../types";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../components/ha-attribute-icon";
+import "../../../components/ha-attributes";
+import "../../../components/ha-control-select-menu";
+import "../../../components/ha-icon-button-group";
+import "../../../components/ha-icon-button-toggle";
+import "../../../components/ha-list-item";
+import "../../../state-control/ha-state-control-toggle";
+import "../../../state-control/light/ha-state-control-light-brightness";
+import "../components/ha-more-info-control-select-container";
+import "../components/ha-more-info-state-header";
+import "../components/lights/ha-favorite-color-button";
+import "../components/lights/ha-more-info-light-favorite-colors";
+import "../components/lights/light-color-rgb-picker";
+import "../components/lights/light-color-temp-picker";
import "@material/mwc-list/mwc-list-item";
+
import {
mdiBrightness6,
mdiCreation,
@@ -7,21 +27,13 @@ import {
mdiLightbulbOn,
mdiPower,
} from "@mdi/js";
-import type { CSSResultGroup, PropertyValues } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { stopPropagation } from "../../../common/dom/stop_propagation";
import { supportsFeature } from "../../../common/entity/supports-feature";
-import "../../../components/ha-attribute-icon";
-import "../../../components/ha-attributes";
-import "../../../components/ha-control-select-menu";
-import "../../../components/ha-icon-button-group";
-import "../../../components/ha-icon-button-toggle";
-import "../../../components/ha-list-item";
import { UNAVAILABLE } from "../../../data/entity";
-import type { ExtEntityRegistryEntry } from "../../../data/entity_registry";
import { forwardHaptic } from "../../../data/haptics";
-import type { LightEntity } from "../../../data/light";
import {
LightColorMode,
LightEntityFeature,
@@ -30,15 +42,6 @@ import {
lightSupportsColorMode,
lightSupportsFavoriteColors,
} from "../../../data/light";
-import "../../../state-control/ha-state-control-toggle";
-import "../../../state-control/light/ha-state-control-light-brightness";
-import type { HomeAssistant } from "../../../types";
-import "../components/ha-more-info-control-select-container";
-import "../components/ha-more-info-state-header";
-import "../components/lights/ha-favorite-color-button";
-import "../components/lights/ha-more-info-light-favorite-colors";
-import "../components/lights/light-color-rgb-picker";
-import "../components/lights/light-color-temp-picker";
import { moreInfoControlStyle } from "../components/more-info-control-style";
type MainControl = "brightness" | "color_temp" | "color";
diff --git a/src/dialogs/more-info/controls/more-info-lock.ts b/src/dialogs/more-info/controls/more-info-lock.ts
index 287199cc06..f81072fa7e 100644
--- a/src/dialogs/more-info/controls/more-info-lock.ts
+++ b/src/dialogs/more-info/controls/more-info-lock.ts
@@ -1,25 +1,28 @@
-import { mdiCheck } from "@mdi/js";
+import type { LockEntity } from "../../../data/lock";
+import type { HomeAssistant } from "../../../types";
import type { CSSResultGroup } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { styleMap } from "lit/directives/style-map";
-import { stateColorCss } from "../../../common/entity/state_color";
-import { supportsFeature } from "../../../common/entity/supports-feature";
+
import "../../../components/ha-attributes";
import "../../../components/ha-control-button";
import "../../../components/ha-control-button-group";
import "../../../components/ha-outlined-icon-button";
import "../../../components/ha-state-icon";
-import type { LockEntity } from "../../../data/lock";
+import "../../../state-control/lock/ha-state-control-lock-toggle";
+import "../components/ha-more-info-state-header";
+
+import { mdiCheck } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { styleMap } from "lit/directives/style-map";
+
+import { stateColorCss } from "../../../common/entity/state_color";
+import { supportsFeature } from "../../../common/entity/supports-feature";
import {
LockEntityFeature,
callProtectedLockService,
canOpen,
isJammed,
} from "../../../data/lock";
-import "../../../state-control/lock/ha-state-control-lock-toggle";
-import type { HomeAssistant } from "../../../types";
-import "../components/ha-more-info-state-header";
import { moreInfoControlStyle } from "../components/more-info-control-style";
const CONFIRM_TIMEOUT_SECOND = 5;
diff --git a/src/dialogs/more-info/controls/more-info-media_player.ts b/src/dialogs/more-info/controls/more-info-media_player.ts
index eeaa19d25e..1491c17382 100644
--- a/src/dialogs/more-info/controls/more-info-media_player.ts
+++ b/src/dialogs/more-info/controls/more-info-media_player.ts
@@ -1,5 +1,16 @@
+import type {
+ MediaPickedEvent,
+ MediaPlayerEntity,
+} from "../../../data/media-player";
+import type { HomeAssistant } from "../../../types";
+
+import "../../../components/ha-icon-button";
+import "../../../components/ha-select";
+import "../../../components/ha-slider";
+import "../../../components/ha-svg-icon";
import "@material/mwc-button/mwc-button";
import "@material/mwc-list/mwc-list-item";
+
import {
mdiLoginVariant,
mdiMusicNote,
@@ -11,26 +22,18 @@ import {
} from "@mdi/js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property } from "lit/decorators";
+
import { stopPropagation } from "../../../common/dom/stop_propagation";
import { stateActive } from "../../../common/entity/state_active";
import { supportsFeature } from "../../../common/entity/supports-feature";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-select";
-import "../../../components/ha-slider";
-import "../../../components/ha-svg-icon";
import { showMediaBrowserDialog } from "../../../components/media-player/show-media-browser-dialog";
import { isUnavailableState } from "../../../data/entity";
-import type {
- MediaPickedEvent,
- MediaPlayerEntity,
-} from "../../../data/media-player";
import {
MediaPlayerEntityFeature,
computeMediaControls,
handleMediaControlClick,
mediaPlayerPlayMedia,
} from "../../../data/media-player";
-import type { HomeAssistant } from "../../../types";
@customElement("more-info-media_player")
class MoreInfoMediaPlayer extends LitElement {
diff --git a/src/dialogs/more-info/controls/more-info-person.ts b/src/dialogs/more-info/controls/more-info-person.ts
index c364786eb2..f4c6773238 100644
--- a/src/dialogs/more-info/controls/more-info-person.ts
+++ b/src/dialogs/more-info/controls/more-info-person.ts
@@ -1,13 +1,16 @@
-import "@material/mwc-button";
+import type { HomeAssistant } from "../../../types";
import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../components/ha-attributes";
+import "../../../components/map/ha-map";
+import "@material/mwc-button";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../../common/dom/fire_event";
-import "../../../components/ha-attributes";
-import "../../../components/map/ha-map";
import { showZoneEditor } from "../../../data/zone";
-import type { HomeAssistant } from "../../../types";
@customElement("more-info-person")
class MoreInfoPerson extends LitElement {
diff --git a/src/dialogs/more-info/controls/more-info-remote.ts b/src/dialogs/more-info/controls/more-info-remote.ts
index b3b5d9592a..8f5918f50b 100644
--- a/src/dialogs/more-info/controls/more-info-remote.ts
+++ b/src/dialogs/more-info/controls/more-info-remote.ts
@@ -1,13 +1,16 @@
-import "@material/mwc-select/mwc-select";
+import type { RemoteEntity } from "../../../data/remote";
+import type { HomeAssistant } from "../../../types";
+
+import "../../../components/ha-attributes";
import "@material/mwc-list/mwc-list-item";
+import "@material/mwc-select/mwc-select";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
+
import { stopPropagation } from "../../../common/dom/stop_propagation";
import { supportsFeature } from "../../../common/entity/supports-feature";
-import "../../../components/ha-attributes";
-import type { RemoteEntity } from "../../../data/remote";
import { REMOTE_SUPPORT_ACTIVITY } from "../../../data/remote";
-import type { HomeAssistant } from "../../../types";
const filterExtraAttributes = "activity_list,current_activity";
diff --git a/src/dialogs/more-info/controls/more-info-script.ts b/src/dialogs/more-info/controls/more-info-script.ts
index 39d6652c56..4ffcef3565 100644
--- a/src/dialogs/more-info/controls/more-info-script.ts
+++ b/src/dialogs/more-info/controls/more-info-script.ts
@@ -1,23 +1,26 @@
-import { mdiPlay, mdiStop } from "@mdi/js";
-import "@material/mwc-button";
+import type { ExtEntityRegistryEntry } from "../../../data/entity_registry";
+import type { ScriptEntity } from "../../../data/script";
+import type { HomeAssistant } from "../../../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import "../../../components/ha-relative-time";
-import "../../../components/ha-service-control";
+
+import "../../../components/entity/state-info";
import "../../../components/ha-control-button";
import "../../../components/ha-control-button-group";
-import "../../../components/entity/state-info";
-import type { HomeAssistant } from "../../../types";
-import type { ScriptEntity } from "../../../data/script";
-import { canRun } from "../../../data/script";
-import { isUnavailableState } from "../../../data/entity";
-import { computeObjectId } from "../../../common/entity/compute_object_id";
-import { listenMediaQuery } from "../../../common/dom/media_query";
-import "../components/ha-more-info-state-header";
-import type { ExtEntityRegistryEntry } from "../../../data/entity_registry";
import "../../../components/ha-markdown";
+import "../../../components/ha-relative-time";
+import "../../../components/ha-service-control";
+import "../components/ha-more-info-state-header";
+import "@material/mwc-button";
+
+import { mdiPlay, mdiStop } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { listenMediaQuery } from "../../../common/dom/media_query";
+import { computeObjectId } from "../../../common/entity/compute_object_id";
+import { isUnavailableState } from "../../../data/entity";
+import { canRun } from "../../../data/script";
@customElement("more-info-script")
class MoreInfoScript extends LitElement {
diff --git a/src/dialogs/more-info/controls/more-info-siren.ts b/src/dialogs/more-info/controls/more-info-siren.ts
index 191427e611..5e8b4c1e9b 100644
--- a/src/dialogs/more-info/controls/more-info-siren.ts
+++ b/src/dialogs/more-info/controls/more-info-siren.ts
@@ -1,16 +1,19 @@
-import { mdiVolumeHigh, mdiVolumeOff } from "@mdi/js";
+import type { HomeAssistant } from "../../../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup } from "lit";
+
+import "../../../components/ha-attributes";
+import "../../../components/ha-button";
+import "../../../state-control/ha-state-control-toggle";
+import "../components/ha-more-info-state-header";
+
+import { mdiVolumeHigh, mdiVolumeOff } from "@mdi/js";
import { LitElement, html, nothing } from "lit";
import { customElement, property } from "lit/decorators";
-import "../../../components/ha-attributes";
-import "../../../state-control/ha-state-control-toggle";
-import "../../../components/ha-button";
-import type { HomeAssistant } from "../../../types";
-import "../components/ha-more-info-state-header";
-import { moreInfoControlStyle } from "../components/more-info-control-style";
+
import { supportsFeature } from "../../../common/entity/supports-feature";
import { SirenEntityFeature } from "../../../data/siren";
+import { moreInfoControlStyle } from "../components/more-info-control-style";
import { showSirenAdvancedControlsView } from "../components/siren/show-dialog-siren-advanced-controls";
@customElement("more-info-siren")
diff --git a/src/dialogs/more-info/controls/more-info-sun.ts b/src/dialogs/more-info/controls/more-info-sun.ts
index 784e50dc84..a472c0bcdf 100644
--- a/src/dialogs/more-info/controls/more-info-sun.ts
+++ b/src/dialogs/more-info/controls/more-info-sun.ts
@@ -1,9 +1,12 @@
+import type { HomeAssistant } from "../../../types";
import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../components/ha-relative-time";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
+
import { formatTime } from "../../../common/datetime/format_time";
-import "../../../components/ha-relative-time";
-import type { HomeAssistant } from "../../../types";
@customElement("more-info-sun")
class MoreInfoSun extends LitElement {
diff --git a/src/dialogs/more-info/controls/more-info-switch.ts b/src/dialogs/more-info/controls/more-info-switch.ts
index 9eb677643e..4bf635d30b 100644
--- a/src/dialogs/more-info/controls/more-info-switch.ts
+++ b/src/dialogs/more-info/controls/more-info-switch.ts
@@ -1,12 +1,15 @@
-import { mdiPower, mdiPowerOff } from "@mdi/js";
+import type { HomeAssistant } from "../../../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup } from "lit";
-import { LitElement, html, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
+
import "../../../components/ha-attributes";
import "../../../state-control/ha-state-control-toggle";
-import type { HomeAssistant } from "../../../types";
import "../components/ha-more-info-state-header";
+
+import { mdiPower, mdiPowerOff } from "@mdi/js";
+import { LitElement, html, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { moreInfoControlStyle } from "../components/more-info-control-style";
@customElement("more-info-switch")
diff --git a/src/dialogs/more-info/controls/more-info-time.ts b/src/dialogs/more-info/controls/more-info-time.ts
index f41ef15197..8ce94ab496 100644
--- a/src/dialogs/more-info/controls/more-info-time.ts
+++ b/src/dialogs/more-info/controls/more-info-time.ts
@@ -1,11 +1,14 @@
+import type { HomeAssistant } from "../../../types";
import type { HassEntity } from "home-assistant-js-websocket";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
+
import "../../../components/ha-date-input";
import "../../../components/ha-time-input";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { isUnavailableState, UNAVAILABLE } from "../../../data/entity";
import { setTimeValue } from "../../../data/time";
-import type { HomeAssistant } from "../../../types";
@customElement("more-info-time")
class MoreInfoTime extends LitElement {
diff --git a/src/dialogs/more-info/controls/more-info-timer.ts b/src/dialogs/more-info/controls/more-info-timer.ts
index 3f5c729752..188cdc3b6c 100644
--- a/src/dialogs/more-info/controls/more-info-timer.ts
+++ b/src/dialogs/more-info/controls/more-info-timer.ts
@@ -1,10 +1,12 @@
-import "@material/mwc-button";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import "../../../components/ha-attributes";
import type { TimerEntity } from "../../../data/timer";
import type { HomeAssistant } from "../../../types";
+import "../../../components/ha-attributes";
+import "@material/mwc-button";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("more-info-timer")
class MoreInfoTimer extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/dialogs/more-info/controls/more-info-update.ts b/src/dialogs/more-info/controls/more-info-update.ts
index 206789552e..dd1a844f7d 100644
--- a/src/dialogs/more-info/controls/more-info-update.ts
+++ b/src/dialogs/more-info/controls/more-info-update.ts
@@ -1,33 +1,36 @@
-import "@material/mwc-linear-progress/mwc-linear-progress";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { BINARY_STATE_OFF } from "../../../common/const";
-import { relativeTime } from "../../../common/datetime/relative_time";
-import { supportsFeature } from "../../../common/entity/supports-feature";
+import type { HaSwitch } from "../../../components/ha-switch";
+import type { BackupConfig } from "../../../data/backup";
+import type { EntitySources } from "../../../data/entity_sources";
+import type { UpdateEntity } from "../../../data/update";
+import type { HomeAssistant } from "../../../types";
+
import "../../../components/ha-alert";
import "../../../components/ha-button";
import "../../../components/ha-checkbox";
-import "../../../components/ha-spinner";
import "../../../components/ha-faded";
import "../../../components/ha-formfield";
import "../../../components/ha-markdown";
import "../../../components/ha-md-list";
import "../../../components/ha-md-list-item";
+import "../../../components/ha-spinner";
import "../../../components/ha-switch";
-import type { HaSwitch } from "../../../components/ha-switch";
-import type { BackupConfig } from "../../../data/backup";
+import "@material/mwc-linear-progress/mwc-linear-progress";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { BINARY_STATE_OFF } from "../../../common/const";
+import { relativeTime } from "../../../common/datetime/relative_time";
+import { supportsFeature } from "../../../common/entity/supports-feature";
import { fetchBackupConfig } from "../../../data/backup";
import { isUnavailableState } from "../../../data/entity";
-import type { EntitySources } from "../../../data/entity_sources";
import { fetchEntitySourcesWithCache } from "../../../data/entity_sources";
-import type { UpdateEntity } from "../../../data/update";
import {
getUpdateType,
UpdateEntityFeature,
updateIsInstalling,
updateReleaseNotes,
} from "../../../data/update";
-import type { HomeAssistant } from "../../../types";
import { showAlertDialog } from "../../generic/show-dialog-box";
@customElement("more-info-update")
diff --git a/src/dialogs/more-info/controls/more-info-vacuum.ts b/src/dialogs/more-info/controls/more-info-vacuum.ts
index 066e6145bc..3dc88912a0 100644
--- a/src/dialogs/more-info/controls/more-info-vacuum.ts
+++ b/src/dialogs/more-info/controls/more-info-vacuum.ts
@@ -1,4 +1,14 @@
+import type { EntityRegistryDisplayEntry } from "../../../data/entity_registry";
+import type { VacuumEntity } from "../../../data/vacuum";
+import type { HomeAssistant } from "../../../types";
+
+import "../../../components/entity/ha-battery-icon";
+import "../../../components/ha-attributes";
+import "../../../components/ha-icon";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-select";
import "@material/mwc-list/mwc-list-item";
+
import {
mdiFan,
mdiHomeImportOutline,
@@ -12,23 +22,16 @@ import {
import { LitElement, css, html, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { stopPropagation } from "../../../common/dom/stop_propagation";
import { computeStateDomain } from "../../../common/entity/compute_state_domain";
import { supportsFeature } from "../../../common/entity/supports-feature";
-import "../../../components/entity/ha-battery-icon";
-import "../../../components/ha-attributes";
-import "../../../components/ha-icon";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-select";
import { UNAVAILABLE } from "../../../data/entity";
-import type { EntityRegistryDisplayEntry } from "../../../data/entity_registry";
import {
findBatteryChargingEntity,
findBatteryEntity,
} from "../../../data/entity_registry";
-import type { VacuumEntity } from "../../../data/vacuum";
import { VacuumEntityFeature } from "../../../data/vacuum";
-import type { HomeAssistant } from "../../../types";
interface VacuumCommand {
translationKey: string;
diff --git a/src/dialogs/more-info/controls/more-info-valve.ts b/src/dialogs/more-info/controls/more-info-valve.ts
index 66158025c8..98ad59372e 100644
--- a/src/dialogs/more-info/controls/more-info-valve.ts
+++ b/src/dialogs/more-info/controls/more-info-valve.ts
@@ -1,21 +1,24 @@
-import { mdiMenu, mdiSwapVertical } from "@mdi/js";
+import type { ValveEntity } from "../../../data/valve";
+import type { HomeAssistant } from "../../../types";
import type { CSSResultGroup, PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { supportsFeature } from "../../../common/entity/supports-feature";
+
import "../../../components/ha-attributes";
import "../../../components/ha-icon-button-group";
import "../../../components/ha-icon-button-toggle";
-import type { ValveEntity } from "../../../data/valve";
+import "../../../state-control/valve/ha-state-control-valve-buttons";
+import "../../../state-control/valve/ha-state-control-valve-position";
+import "../../../state-control/valve/ha-state-control-valve-toggle";
+import "../components/ha-more-info-state-header";
+
+import { mdiMenu, mdiSwapVertical } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { supportsFeature } from "../../../common/entity/supports-feature";
import {
ValveEntityFeature,
computeValvePositionStateDisplay,
} from "../../../data/valve";
-import "../../../state-control/valve/ha-state-control-valve-buttons";
-import "../../../state-control/valve/ha-state-control-valve-position";
-import "../../../state-control/valve/ha-state-control-valve-toggle";
-import type { HomeAssistant } from "../../../types";
-import "../components/ha-more-info-state-header";
import { moreInfoControlStyle } from "../components/more-info-control-style";
type Mode = "position" | "button";
diff --git a/src/dialogs/more-info/controls/more-info-water_heater.ts b/src/dialogs/more-info/controls/more-info-water_heater.ts
index 28f831e093..a85b14f783 100644
--- a/src/dialogs/more-info/controls/more-info-water_heater.ts
+++ b/src/dialogs/more-info/controls/more-info-water_heater.ts
@@ -1,21 +1,24 @@
-import { mdiAccount, mdiAccountArrowRight, mdiWaterBoiler } from "@mdi/js";
+import type { WaterHeaterEntity } from "../../../data/water_heater";
+import type { HomeAssistant } from "../../../types";
import type { CSSResultGroup } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import { stopPropagation } from "../../../common/dom/stop_propagation";
-import { supportsFeature } from "../../../common/entity/supports-feature";
+
import "../../../components/ha-control-select-menu";
import "../../../components/ha-list-item";
+import "../../../state-control/water_heater/ha-state-control-water_heater-temperature";
+import "../components/ha-more-info-control-select-container";
+
+import { mdiAccount, mdiAccountArrowRight, mdiWaterBoiler } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { stopPropagation } from "../../../common/dom/stop_propagation";
+import { supportsFeature } from "../../../common/entity/supports-feature";
import { UNAVAILABLE } from "../../../data/entity";
-import type { WaterHeaterEntity } from "../../../data/water_heater";
import {
WaterHeaterEntityFeature,
compareWaterHeaterOperationMode,
computeOperationModeIcon,
} from "../../../data/water_heater";
-import "../../../state-control/water_heater/ha-state-control-water_heater-temperature";
-import type { HomeAssistant } from "../../../types";
-import "../components/ha-more-info-control-select-container";
import { moreInfoControlStyle } from "../components/more-info-control-style";
@customElement("more-info-water_heater")
diff --git a/src/dialogs/more-info/controls/more-info-weather.ts b/src/dialogs/more-info/controls/more-info-weather.ts
index 3b245c601c..485f4f7492 100644
--- a/src/dialogs/more-info/controls/more-info-weather.ts
+++ b/src/dialogs/more-info/controls/more-info-weather.ts
@@ -1,20 +1,26 @@
-import "@material/mwc-tab";
-import "@material/mwc-tab-bar";
-import { mdiEye, mdiGauge, mdiWaterPercent, mdiWeatherWindy } from "@mdi/js";
-import type { CSSResultGroup, PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { formatDateWeekdayShort } from "../../../common/datetime/format_date";
-import { formatTime } from "../../../common/datetime/format_time";
-import { formatNumber } from "../../../common/number/format_number";
-import "../../../components/ha-svg-icon";
-import "../../../components/ha-tooltip";
import type {
ForecastEvent,
ModernForecastType,
WeatherEntity,
} from "../../../data/weather";
+import type { HomeAssistant } from "../../../types";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../components/ha-relative-time";
+import "../../../components/ha-state-icon";
+import "../../../components/ha-svg-icon";
+import "../../../components/ha-tooltip";
+import "@material/mwc-tab";
+import "@material/mwc-tab-bar";
+
+import { mdiEye, mdiGauge, mdiWaterPercent, mdiWeatherWindy } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { formatDateWeekdayShort } from "../../../common/datetime/format_date";
+import { formatTime } from "../../../common/datetime/format_time";
+import { formatNumber } from "../../../common/number/format_number";
import {
getDefaultForecastType,
getForecast,
@@ -26,9 +32,6 @@ import {
subscribeForecast,
weatherSVGStyles,
} from "../../../data/weather";
-import type { HomeAssistant } from "../../../types";
-import "../../../components/ha-relative-time";
-import "../../../components/ha-state-icon";
@customElement("more-info-weather")
class MoreInfoWeather extends LitElement {
diff --git a/src/dialogs/more-info/ha-more-info-dialog.ts b/src/dialogs/more-info/ha-more-info-dialog.ts
index c8a1c34437..b98e4e2f93 100644
--- a/src/dialogs/more-info/ha-more-info-dialog.ts
+++ b/src/dialogs/more-info/ha-more-info-dialog.ts
@@ -1,3 +1,26 @@
+import type {
+ EntityRegistryEntry,
+ ExtEntityRegistryEntry,
+} from "../../data/entity_registry";
+import type { ItemType } from "../../data/search";
+import type { HomeAssistant } from "../../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+import type { PropertyValues } from "lit";
+
+import "../../components/ha-button-menu";
+import "../../components/ha-dialog";
+import "../../components/ha-dialog-header";
+import "../../components/ha-icon-button";
+import "../../components/ha-icon-button-prev";
+import "../../components/ha-list-item";
+import "../../components/ha-related-items";
+import "../../state-summary/state-card-content";
+import "./controls/more-info-default";
+import "./ha-more-info-history-and-logbook";
+import "./ha-more-info-info";
+import "./ha-more-info-settings";
+import "./more-info-content";
+
import {
mdiChartBoxOutline,
mdiClose,
@@ -9,12 +32,11 @@ import {
mdiPencilOff,
mdiPencilOutline,
} from "@mdi/js";
-import type { HassEntity } from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { cache } from "lit/directives/cache";
import { join } from "lit/directives/join";
+
import { dynamicElement } from "../../common/dom/dynamic-element-directive";
import { fireEvent } from "../../common/dom/fire_event";
import { stopPropagation } from "../../common/dom/stop_propagation";
@@ -25,27 +47,17 @@ import {
computeEntityEntryName,
computeEntityName,
} from "../../common/entity/compute_entity_name";
+import {
+ getEntityContext,
+ getEntityEntryContext,
+} from "../../common/entity/get_entity_context";
import { shouldHandleRequestSelectedEvent } from "../../common/mwc/handle-request-selected-event";
import { navigate } from "../../common/navigate";
-import "../../components/ha-button-menu";
-import "../../components/ha-dialog";
-import "../../components/ha-dialog-header";
-import "../../components/ha-icon-button";
-import "../../components/ha-icon-button-prev";
-import "../../components/ha-list-item";
-import "../../components/ha-related-items";
-import type {
- EntityRegistryEntry,
- ExtEntityRegistryEntry,
-} from "../../data/entity_registry";
import { getExtendedEntityRegistryEntry } from "../../data/entity_registry";
import { lightSupportsFavoriteColors } from "../../data/light";
-import type { ItemType } from "../../data/search";
import { SearchableDomains } from "../../data/search";
import { getSensorNumericDeviceClasses } from "../../data/sensor";
import { haStyleDialog } from "../../resources/styles";
-import "../../state-summary/state-card-content";
-import type { HomeAssistant } from "../../types";
import {
DOMAINS_WITH_MORE_INFO,
EDITABLE_DOMAINS_WITH_ID,
@@ -53,15 +65,6 @@ import {
computeShowHistoryComponent,
computeShowLogBookComponent,
} from "./const";
-import "./controls/more-info-default";
-import "./ha-more-info-history-and-logbook";
-import "./ha-more-info-info";
-import "./ha-more-info-settings";
-import "./more-info-content";
-import {
- getEntityContext,
- getEntityEntryContext,
-} from "../../common/entity/get_entity_context";
export interface MoreInfoDialogParams {
entityId: string | null;
diff --git a/src/dialogs/more-info/ha-more-info-history-and-logbook.ts b/src/dialogs/more-info/ha-more-info-history-and-logbook.ts
index bb442c44e1..75dc90db8f 100644
--- a/src/dialogs/more-info/ha-more-info-history-and-logbook.ts
+++ b/src/dialogs/more-info/ha-more-info-history-and-logbook.ts
@@ -1,13 +1,16 @@
+import type { HomeAssistant } from "../../types";
+
+import "./ha-more-info-history";
+import "./ha-more-info-logbook";
+
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
-import type { HomeAssistant } from "../../types";
+
+import { getSensorNumericDeviceClasses } from "../../data/sensor";
import {
computeShowHistoryComponent,
computeShowLogBookComponent,
} from "./const";
-import "./ha-more-info-history";
-import "./ha-more-info-logbook";
-import { getSensorNumericDeviceClasses } from "../../data/sensor";
@customElement("ha-more-info-history-and-logbook")
export class MoreInfoHistoryAndLogbook extends LitElement {
diff --git a/src/dialogs/more-info/ha-more-info-history.ts b/src/dialogs/more-info/ha-more-info-history.ts
index de8c3ce520..516c70ecc3 100644
--- a/src/dialogs/more-info/ha-more-info-history.ts
+++ b/src/dialogs/more-info/ha-more-info-history.ts
@@ -1,25 +1,28 @@
-import { startOfYesterday, subHours } from "date-fns";
-import type { PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { isComponentLoaded } from "../../common/config/is_component_loaded";
-import { computeDomain } from "../../common/entity/compute_domain";
-import { createSearchParam } from "../../common/url/search-params";
-import "../../components/chart/state-history-charts";
-import "../../components/chart/statistics-chart";
import type { HistoryResult } from "../../data/history";
-import {
- computeHistory,
- subscribeHistoryStatesTimeWindow,
-} from "../../data/history";
import type {
Statistics,
StatisticsMetaData,
StatisticsTypes,
} from "../../data/recorder";
+import type { HomeAssistant } from "../../types";
+import type { PropertyValues } from "lit";
+
+import "../../components/chart/state-history-charts";
+import "../../components/chart/statistics-chart";
+
+import { startOfYesterday, subHours } from "date-fns";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { isComponentLoaded } from "../../common/config/is_component_loaded";
+import { computeDomain } from "../../common/entity/compute_domain";
+import { createSearchParam } from "../../common/url/search-params";
+import {
+ computeHistory,
+ subscribeHistoryStatesTimeWindow,
+} from "../../data/history";
import { fetchStatistics, getStatisticMetadata } from "../../data/recorder";
import { getSensorNumericDeviceClasses } from "../../data/sensor";
-import type { HomeAssistant } from "../../types";
declare global {
interface HASSDomEvents {
diff --git a/src/dialogs/more-info/ha-more-info-info.ts b/src/dialogs/more-info/ha-more-info-info.ts
index a87d3d06f8..08d4e1c0c9 100644
--- a/src/dialogs/more-info/ha-more-info-info.ts
+++ b/src/dialogs/more-info/ha-more-info-info.ts
@@ -1,9 +1,16 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { computeDomain } from "../../common/entity/compute_domain";
import type { ExtEntityRegistryEntry } from "../../data/entity_registry";
import type { HomeAssistant } from "../../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+
+import "./ha-more-info-history";
+import "./ha-more-info-logbook";
+import "./more-info-content";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { computeDomain } from "../../common/entity/compute_domain";
+import { getSensorNumericDeviceClasses } from "../../data/sensor";
import {
computeShowHistoryComponent,
computeShowLogBookComponent,
@@ -12,10 +19,6 @@ import {
DOMAINS_NO_INFO,
DOMAINS_WITH_MORE_INFO,
} from "./const";
-import "./ha-more-info-history";
-import "./ha-more-info-logbook";
-import "./more-info-content";
-import { getSensorNumericDeviceClasses } from "../../data/sensor";
@customElement("ha-more-info-info")
export class MoreInfoInfo extends LitElement {
diff --git a/src/dialogs/more-info/ha-more-info-logbook.ts b/src/dialogs/more-info/ha-more-info-logbook.ts
index 34eba630ed..d23908bbe5 100644
--- a/src/dialogs/more-info/ha-more-info-logbook.ts
+++ b/src/dialogs/more-info/ha-more-info-logbook.ts
@@ -1,12 +1,15 @@
-import { startOfYesterday } from "date-fns";
+import type { HomeAssistant } from "../../types";
import type { PropertyValues } from "lit";
+
+import "../../panels/logbook/ha-logbook";
+
+import { startOfYesterday } from "date-fns";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { isComponentLoaded } from "../../common/config/is_component_loaded";
import { createSearchParam } from "../../common/url/search-params";
-import "../../panels/logbook/ha-logbook";
-import type { HomeAssistant } from "../../types";
@customElement("ha-more-info-logbook")
export class MoreInfoLogbook extends LitElement {
diff --git a/src/dialogs/more-info/ha-more-info-settings.ts b/src/dialogs/more-info/ha-more-info-settings.ts
index 0a25398a0a..bb59e38cd5 100644
--- a/src/dialogs/more-info/ha-more-info-settings.ts
+++ b/src/dialogs/more-info/ha-more-info-settings.ts
@@ -1,15 +1,18 @@
-import type { CSSResultGroup, PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { dynamicElement } from "../../common/dom/dynamic-element-directive";
-import "../../components/ha-alert";
import type {
EntityRegistryEntry,
ExtEntityRegistryEntry,
} from "../../data/entity_registry";
-import { PLATFORMS_WITH_SETTINGS_TAB } from "../../panels/config/entities/const";
-import "../../panels/config/entities/entity-registry-settings";
import type { HomeAssistant } from "../../types";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../components/ha-alert";
+import "../../panels/config/entities/entity-registry-settings";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { dynamicElement } from "../../common/dom/dynamic-element-directive";
+import { PLATFORMS_WITH_SETTINGS_TAB } from "../../panels/config/entities/const";
import { documentationUrl } from "../../util/documentation-url";
@customElement("ha-more-info-settings")
diff --git a/src/dialogs/more-info/more-info-content.ts b/src/dialogs/more-info/more-info-content.ts
index 25d3cfbf84..f9617544bd 100644
--- a/src/dialogs/more-info/more-info-content.ts
+++ b/src/dialogs/more-info/more-info-content.ts
@@ -1,11 +1,13 @@
+import type { ExtEntityRegistryEntry } from "../../data/entity_registry";
+import type { HomeAssistant } from "../../types";
import type { HassEntity } from "home-assistant-js-websocket";
+
import { LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
-import type { ExtEntityRegistryEntry } from "../../data/entity_registry";
-import { importMoreInfoControl } from "../../panels/lovelace/custom-card-helpers";
-import type { HomeAssistant } from "../../types";
-import { stateMoreInfoType } from "./state_more_info_control";
+
import { dynamicElement } from "../../common/dom/dynamic-element-directive";
+import { importMoreInfoControl } from "../../panels/lovelace/custom-card-helpers";
+import { stateMoreInfoType } from "./state_more_info_control";
@customElement("more-info-content")
class MoreInfoContent extends LitElement {
diff --git a/src/dialogs/more-info/show-ha-more-info-dialog.ts b/src/dialogs/more-info/show-ha-more-info-dialog.ts
index de6d688fec..71d6b648b5 100644
--- a/src/dialogs/more-info/show-ha-more-info-dialog.ts
+++ b/src/dialogs/more-info/show-ha-more-info-dialog.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../common/dom/fire_event";
import type { MoreInfoDialogParams } from "./ha-more-info-dialog";
+import { fireEvent } from "../../common/dom/fire_event";
+
export const showMoreInfoDialog = (
element: HTMLElement,
params: MoreInfoDialogParams
diff --git a/src/dialogs/more-info/state_more_info_control.ts b/src/dialogs/more-info/state_more_info_control.ts
index 4b7949b7f0..3169bf4615 100644
--- a/src/dialogs/more-info/state_more_info_control.ts
+++ b/src/dialogs/more-info/state_more_info_control.ts
@@ -1,4 +1,5 @@
import type { HassEntity } from "home-assistant-js-websocket";
+
import { computeStateDomain } from "../../common/entity/compute_state_domain";
import {
DOMAINS_HIDE_DEFAULT_MORE_INFO,
diff --git a/src/dialogs/notifications/configurator-notification-item.ts b/src/dialogs/notifications/configurator-notification-item.ts
index 45e289597f..81a6b9500e 100644
--- a/src/dialogs/notifications/configurator-notification-item.ts
+++ b/src/dialogs/notifications/configurator-notification-item.ts
@@ -1,11 +1,14 @@
-import "@material/mwc-button";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
-import { domainToName } from "../../data/integration";
import type { PersitentNotificationEntity } from "../../data/persistent_notification";
import type { HomeAssistant } from "../../types";
+
import "./notification-item-template";
+import "@material/mwc-button";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
+import { domainToName } from "../../data/integration";
@customElement("configurator-notification-item")
export class HuiConfiguratorNotificationItem extends LitElement {
diff --git a/src/dialogs/notifications/notification-drawer.ts b/src/dialogs/notifications/notification-drawer.ts
index a3c83bcd69..830b3a0d75 100644
--- a/src/dialogs/notifications/notification-drawer.ts
+++ b/src/dialogs/notifications/notification-drawer.ts
@@ -1,18 +1,21 @@
-import "@material/mwc-button";
+import type { HaDrawer } from "../../components/ha-drawer";
+import type { PersistentNotification } from "../../data/persistent_notification";
+import type { HomeAssistant } from "../../types";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+
+import "../../components/ha-drawer";
+import "../../components/ha-header-bar";
+import "../../components/ha-icon-button-prev";
+import "./notification-item";
+import "@material/mwc-button";
+
import { LitElement, html, css, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
+
import { fireEvent } from "../../common/dom/fire_event";
import { computeDomain } from "../../common/entity/compute_domain";
-import "../../components/ha-icon-button-prev";
-import type { PersistentNotification } from "../../data/persistent_notification";
-import { subscribeNotifications } from "../../data/persistent_notification";
-import type { HomeAssistant } from "../../types";
-import "./notification-item";
-import "../../components/ha-header-bar";
-import "../../components/ha-drawer";
-import type { HaDrawer } from "../../components/ha-drawer";
import { computeRTLDirection } from "../../common/util/compute_rtl";
+import { subscribeNotifications } from "../../data/persistent_notification";
@customElement("notification-drawer")
export class HuiNotificationDrawer extends LitElement {
diff --git a/src/dialogs/notifications/notification-item-template.ts b/src/dialogs/notifications/notification-item-template.ts
index 44080be56b..118d2332cb 100644
--- a/src/dialogs/notifications/notification-item-template.ts
+++ b/src/dialogs/notifications/notification-item-template.ts
@@ -1,7 +1,9 @@
import type { TemplateResult } from "lit";
+
+import "../../components/ha-card";
+
import { css, html, LitElement } from "lit";
import { customElement } from "lit/decorators";
-import "../../components/ha-card";
@customElement("notification-item-template")
export class HuiNotificationItemTemplate extends LitElement {
diff --git a/src/dialogs/notifications/notification-item.ts b/src/dialogs/notifications/notification-item.ts
index daefcb5f0e..cb34d7c82d 100644
--- a/src/dialogs/notifications/notification-item.ts
+++ b/src/dialogs/notifications/notification-item.ts
@@ -1,12 +1,14 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
import type { PersistentNotification } from "../../data/persistent_notification";
import type { HomeAssistant } from "../../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+import type { PropertyValues } from "lit";
+
import "./configurator-notification-item";
import "./persistent-notification-item";
+import { html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("notification-item")
export class HuiNotificationItem extends LitElement {
@property({ attribute: false }) public hass?: HomeAssistant;
diff --git a/src/dialogs/notifications/persistent-notification-item.ts b/src/dialogs/notifications/persistent-notification-item.ts
index 2e4b99b6be..0ea13cf6ed 100644
--- a/src/dialogs/notifications/persistent-notification-item.ts
+++ b/src/dialogs/notifications/persistent-notification-item.ts
@@ -1,14 +1,17 @@
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import { formatDateTime } from "../../common/datetime/format_date_time";
+import type { PersistentNotification } from "../../data/persistent_notification";
+import type { HomeAssistant } from "../../types";
+
+import "../../components/ha-button";
import "../../components/ha-markdown";
import "../../components/ha-relative-time";
import "../../components/ha-tooltip";
-import "../../components/ha-button";
-import type { PersistentNotification } from "../../data/persistent_notification";
-import type { HomeAssistant } from "../../types";
import "./notification-item-template";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { formatDateTime } from "../../common/datetime/format_date_time";
+
@customElement("persistent-notification-item")
export class HuiPersistentNotificationItem extends LitElement {
@property({ attribute: false }) public hass?: HomeAssistant;
diff --git a/src/dialogs/quick-bar/ha-quick-bar.ts b/src/dialogs/quick-bar/ha-quick-bar.ts
index 8520dc0151..64dae65ca0 100644
--- a/src/dialogs/quick-bar/ha-quick-bar.ts
+++ b/src/dialogs/quick-bar/ha-quick-bar.ts
@@ -1,5 +1,17 @@
-import "@material/mwc-list/mwc-list";
+import type { ScorableTextItem } from "../../common/string/filter/sequence-matching";
+import type { PageNavigation } from "../../layouts/hass-tabs-subpage";
+import type { HomeAssistant } from "../../types";
import type { ListItem } from "@material/mwc-list/mwc-list-item";
+import type { TemplateResult } from "lit";
+
+import "../../components/ha-icon-button";
+import "../../components/ha-label";
+import "../../components/ha-list-item";
+import "../../components/ha-spinner";
+import "../../components/ha-textfield";
+import "../../components/ha-tip";
+import "@material/mwc-list/mwc-list";
+
import {
mdiClose,
mdiConsoleLine,
@@ -9,12 +21,12 @@ import {
mdiReload,
mdiServerNetwork,
} from "@mdi/js";
-import type { TemplateResult } from "lit";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
import { styleMap } from "lit/directives/style-map";
import memoizeOne from "memoize-one";
+
import { canShowPage } from "../../common/config/can_show_page";
import { componentsWithService } from "../../common/config/components_with_service";
import { isComponentLoaded } from "../../common/config/is_component_loaded";
@@ -23,23 +35,14 @@ import { computeDeviceNameDisplay } from "../../common/entity/compute_device_nam
import { computeStateName } from "../../common/entity/compute_state_name";
import { navigate } from "../../common/navigate";
import { caseInsensitiveStringCompare } from "../../common/string/compare";
-import type { ScorableTextItem } from "../../common/string/filter/sequence-matching";
import { fuzzyFilterSort } from "../../common/string/filter/sequence-matching";
import { debounce } from "../../common/util/debounce";
-import "../../components/ha-icon-button";
-import "../../components/ha-label";
-import "../../components/ha-list-item";
-import "../../components/ha-spinner";
-import "../../components/ha-textfield";
-import "../../components/ha-tip";
import { fetchHassioAddonsInfo } from "../../data/hassio/addon";
import { domainToName } from "../../data/integration";
import { getPanelNameTranslationKey } from "../../data/panel";
-import type { PageNavigation } from "../../layouts/hass-tabs-subpage";
import { configSections } from "../../panels/config/ha-panel-config";
import { haStyleDialog, haStyleScrollbar } from "../../resources/styles";
import { loadVirtualizer } from "../../resources/virtualizer";
-import type { HomeAssistant } from "../../types";
import { showConfirmationDialog } from "../generic/show-dialog-box";
import { QuickBarMode, type QuickBarParams } from "./show-dialog-quick-bar";
diff --git a/src/dialogs/restart/dialog-restart.ts b/src/dialogs/restart/dialog-restart.ts
index 728783251b..dad26c4929 100644
--- a/src/dialogs/restart/dialog-restart.ts
+++ b/src/dialogs/restart/dialog-restart.ts
@@ -1,3 +1,16 @@
+import type { HaMdDialog } from "../../components/ha-md-dialog";
+import type { HassioHostInfo } from "../../data/hassio/host";
+import type { HomeAssistant } from "../../types";
+import type { CSSResultGroup } from "lit";
+
+import "../../components/ha-expansion-panel";
+import "../../components/ha-icon-button";
+import "../../components/ha-icon-next";
+import "../../components/ha-md-dialog";
+import "../../components/ha-md-list";
+import "../../components/ha-md-list-item";
+import "../../components/ha-spinner";
+
import {
mdiAutoFix,
mdiLifebuoy,
@@ -6,31 +19,21 @@ import {
mdiRefresh,
mdiClose,
} from "@mdi/js";
-import type { CSSResultGroup } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state, query } from "lit/decorators";
+
import { isComponentLoaded } from "../../common/config/is_component_loaded";
import { fireEvent } from "../../common/dom/fire_event";
-import "../../components/ha-spinner";
-import "../../components/ha-md-dialog";
-import type { HaMdDialog } from "../../components/ha-md-dialog";
-import "../../components/ha-md-list";
-import "../../components/ha-expansion-panel";
-import "../../components/ha-md-list-item";
-import "../../components/ha-icon-button";
-import "../../components/ha-icon-next";
import {
extractApiErrorMessage,
ignoreSupervisorError,
} from "../../data/hassio/common";
-import type { HassioHostInfo } from "../../data/hassio/host";
import {
fetchHassioHostInfo,
rebootHost,
shutdownHost,
} from "../../data/hassio/host";
import { haStyle, haStyleDialog } from "../../resources/styles";
-import type { HomeAssistant } from "../../types";
import { showToast } from "../../util/toast";
import {
showAlertDialog,
diff --git a/src/dialogs/shortcuts/dialog-shortcuts.ts b/src/dialogs/shortcuts/dialog-shortcuts.ts
index c4b992fc52..aefa7d3dfe 100644
--- a/src/dialogs/shortcuts/dialog-shortcuts.ts
+++ b/src/dialogs/shortcuts/dialog-shortcuts.ts
@@ -1,13 +1,16 @@
+import type { LocalizeKeys } from "../../common/translations/localize";
+import type { HomeAssistant } from "../../types";
+
+import "../../components/chips/ha-assist-chip";
+import "../../components/ha-alert";
+import "../../components/ha-button";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../../common/dom/fire_event";
-import "../../components/ha-button";
import { createCloseHeading } from "../../components/ha-dialog";
-import type { HomeAssistant } from "../../types";
import { haStyleDialog } from "../../resources/styles";
-import "../../components/ha-alert";
-import "../../components/chips/ha-assist-chip";
-import type { LocalizeKeys } from "../../common/translations/localize";
interface Text {
type: "text";
diff --git a/src/dialogs/tts-try/dialog-tts-try.ts b/src/dialogs/tts-try/dialog-tts-try.ts
index 6fc474b616..b93e8423fd 100644
--- a/src/dialogs/tts-try/dialog-tts-try.ts
+++ b/src/dialogs/tts-try/dialog-tts-try.ts
@@ -1,16 +1,19 @@
+import type { HaTextArea } from "../../components/ha-textarea";
+import type { HomeAssistant } from "../../types";
+import type { TTSTryDialogParams } from "./show-dialog-tts-try";
+
+import "../../components/buttons/ha-progress-button";
+import "../../components/ha-textarea";
+
import { mdiPlayCircleOutline } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
+
import { storage } from "../../common/decorators/storage";
import { fireEvent } from "../../common/dom/fire_event";
import { createCloseHeading } from "../../components/ha-dialog";
-import "../../components/ha-textarea";
-import type { HaTextArea } from "../../components/ha-textarea";
import { convertTextToSpeech } from "../../data/tts";
-import type { HomeAssistant } from "../../types";
import { showAlertDialog } from "../generic/show-dialog-box";
-import type { TTSTryDialogParams } from "./show-dialog-tts-try";
-import "../../components/buttons/ha-progress-button";
@customElement("dialog-tts-try")
export class TTSTryDialog extends LitElement {
diff --git a/src/dialogs/update_backup/dialog-update-backup.ts b/src/dialogs/update_backup/dialog-update-backup.ts
index ef59d4d778..e8437c802a 100644
--- a/src/dialogs/update_backup/dialog-update-backup.ts
+++ b/src/dialogs/update_backup/dialog-update-backup.ts
@@ -1,11 +1,14 @@
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
-import "../../components/ha-button";
-import { createCloseHeading } from "../../components/ha-dialog";
import type { HomeAssistant } from "../../types";
import type { UpdateBackupDialogParams } from "./show-update-backup-dialog";
+import "../../components/ha-button";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
+import { createCloseHeading } from "../../components/ha-dialog";
+
@customElement("dialog-update-backup")
class DialogBox extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/dialogs/voice-assistant-setup/cloud/cloud-step-intro.ts b/src/dialogs/voice-assistant-setup/cloud/cloud-step-intro.ts
index c2edcf4949..37a23590ac 100644
--- a/src/dialogs/voice-assistant-setup/cloud/cloud-step-intro.ts
+++ b/src/dialogs/voice-assistant-setup/cloud/cloud-step-intro.ts
@@ -1,10 +1,13 @@
+import type { HomeAssistant } from "../../../types";
+
+import "../../../components/ha-button";
+import "../../../components/ha-svg-icon";
+
import { mdiEarth, mdiMicrophoneMessage, mdiOpenInNew } from "@mdi/js";
import { LitElement, css, html } from "lit";
import { customElement, property } from "lit/decorators";
+
import { fireEvent } from "../../../common/dom/fire_event";
-import "../../../components/ha-button";
-import "../../../components/ha-svg-icon";
-import type { HomeAssistant } from "../../../types";
import { brandsUrl } from "../../../util/brands-url";
import { AssistantSetupStyles } from "../styles";
diff --git a/src/dialogs/voice-assistant-setup/cloud/cloud-step-signin.ts b/src/dialogs/voice-assistant-setup/cloud/cloud-step-signin.ts
index fe7adc84a0..7e63a4634a 100644
--- a/src/dialogs/voice-assistant-setup/cloud/cloud-step-signin.ts
+++ b/src/dialogs/voice-assistant-setup/cloud/cloud-step-signin.ts
@@ -1,17 +1,20 @@
-import { LitElement, css, html } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { navigate } from "../../../common/navigate";
+import type { HaPasswordField } from "../../../components/ha-password-field";
+import type { HaTextField } from "../../../components/ha-textfield";
+import type { HomeAssistant } from "../../../types";
+
import "../../../components/ha-alert";
import "../../../components/ha-button";
import "../../../components/ha-password-field";
-import type { HaPasswordField } from "../../../components/ha-password-field";
import "../../../components/ha-svg-icon";
import "../../../components/ha-textfield";
-import type { HaTextField } from "../../../components/ha-textfield";
+
+import { LitElement, css, html } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { navigate } from "../../../common/navigate";
import { cloudLogin } from "../../../data/cloud";
import { showCloudAlreadyConnectedDialog } from "../../../panels/config/cloud/dialog-cloud-already-connected/show-dialog-cloud-already-connected";
-import type { HomeAssistant } from "../../../types";
import {
showAlertDialog,
showPromptDialog,
diff --git a/src/dialogs/voice-assistant-setup/cloud/cloud-step-signup.ts b/src/dialogs/voice-assistant-setup/cloud/cloud-step-signup.ts
index ce795f8e40..11e746cc3a 100644
--- a/src/dialogs/voice-assistant-setup/cloud/cloud-step-signup.ts
+++ b/src/dialogs/voice-assistant-setup/cloud/cloud-step-signup.ts
@@ -1,19 +1,22 @@
-import { LitElement, css, html } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { fireEvent } from "../../../common/dom/fire_event";
+import type { HaPasswordField } from "../../../components/ha-password-field";
+import type { HaTextField } from "../../../components/ha-textfield";
+import type { HomeAssistant } from "../../../types";
+
import "../../../components/ha-alert";
import "../../../components/ha-button";
import "../../../components/ha-password-field";
-import type { HaPasswordField } from "../../../components/ha-password-field";
import "../../../components/ha-svg-icon";
import "../../../components/ha-textfield";
-import type { HaTextField } from "../../../components/ha-textfield";
+
+import { LitElement, css, html } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
import {
cloudLogin,
cloudRegister,
cloudResendVerification,
} from "../../../data/cloud";
-import type { HomeAssistant } from "../../../types";
import { AssistantSetupStyles } from "../styles";
@customElement("cloud-step-signup")
diff --git a/src/dialogs/voice-assistant-setup/styles.ts b/src/dialogs/voice-assistant-setup/styles.ts
index 5399e4cd34..5b4c793270 100644
--- a/src/dialogs/voice-assistant-setup/styles.ts
+++ b/src/dialogs/voice-assistant-setup/styles.ts
@@ -1,4 +1,5 @@
import { css } from "lit";
+
import { haStyle } from "../../resources/styles";
export const AssistantSetupStyles = [
diff --git a/src/dialogs/voice-assistant-setup/voice-assistant-setup-dialog.ts b/src/dialogs/voice-assistant-setup/voice-assistant-setup-dialog.ts
index 7b292fe9ed..05960fe450 100644
--- a/src/dialogs/voice-assistant-setup/voice-assistant-setup-dialog.ts
+++ b/src/dialogs/voice-assistant-setup/voice-assistant-setup-dialog.ts
@@ -1,24 +1,12 @@
-import "@material/mwc-button/mwc-button";
-import { mdiChevronLeft, mdiClose, mdiMenuDown } from "@mdi/js";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../common/dom/fire_event";
-import { computeDomain } from "../../common/entity/compute_domain";
-import { formatLanguageCode } from "../../common/language/format_language";
-import "../../components/chips/ha-assist-chip";
-import "../../components/ha-dialog";
-import { getLanguageOptions } from "../../components/ha-language-picker";
-import "../../components/ha-md-button-menu";
import type { AssistSatelliteConfiguration } from "../../data/assist_satellite";
-import { fetchAssistSatelliteConfiguration } from "../../data/assist_satellite";
-import { getLanguageScores } from "../../data/conversation";
-import { UNAVAILABLE } from "../../data/entity";
import type { EntityRegistryDisplayEntry } from "../../data/entity_registry";
-import { haStyleDialog } from "../../resources/styles";
import type { HomeAssistant } from "../../types";
import type { VoiceAssistantSetupDialogParams } from "./show-voice-assistant-setup-dialog";
+import type { CSSResultGroup } from "lit";
+
+import "../../components/chips/ha-assist-chip";
+import "../../components/ha-dialog";
+import "../../components/ha-md-button-menu";
import "./voice-assistant-setup-step-area";
import "./voice-assistant-setup-step-change-wake-word";
import "./voice-assistant-setup-step-check";
@@ -28,6 +16,21 @@ import "./voice-assistant-setup-step-pipeline";
import "./voice-assistant-setup-step-success";
import "./voice-assistant-setup-step-update";
import "./voice-assistant-setup-step-wake-word";
+import "@material/mwc-button/mwc-button";
+
+import { mdiChevronLeft, mdiClose, mdiMenuDown } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../common/dom/fire_event";
+import { computeDomain } from "../../common/entity/compute_domain";
+import { formatLanguageCode } from "../../common/language/format_language";
+import { getLanguageOptions } from "../../components/ha-language-picker";
+import { fetchAssistSatelliteConfiguration } from "../../data/assist_satellite";
+import { getLanguageScores } from "../../data/conversation";
+import { UNAVAILABLE } from "../../data/entity";
+import { haStyleDialog } from "../../resources/styles";
export const enum STEP {
INIT,
diff --git a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-area.ts b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-area.ts
index 97f451b44b..85247ab80d 100644
--- a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-area.ts
+++ b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-area.ts
@@ -1,11 +1,14 @@
+import type { HomeAssistant } from "../../types";
+
+import "../../components/ha-area-picker";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
+
import { fireEvent } from "../../common/dom/fire_event";
import { updateDeviceRegistryEntry } from "../../data/device_registry";
-import type { HomeAssistant } from "../../types";
import { showAlertDialog } from "../generic/show-dialog-box";
import { AssistantSetupStyles } from "./styles";
-import "../../components/ha-area-picker";
@customElement("ha-voice-assistant-setup-step-area")
export class HaVoiceAssistantSetupStepArea extends LitElement {
diff --git a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-change-wake-word.ts b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-change-wake-word.ts
index 20cc50b0db..1008f65ccb 100644
--- a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-change-wake-word.ts
+++ b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-change-wake-word.ts
@@ -1,11 +1,14 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
+import type { AssistSatelliteConfiguration } from "../../data/assist_satellite";
+import type { HomeAssistant } from "../../types";
+
import "../../components/ha-md-list";
import "../../components/ha-md-list-item";
-import type { AssistSatelliteConfiguration } from "../../data/assist_satellite";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
import { setWakeWords } from "../../data/assist_satellite";
-import type { HomeAssistant } from "../../types";
import { AssistantSetupStyles } from "./styles";
import { STEP } from "./voice-assistant-setup-dialog";
diff --git a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-check.ts b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-check.ts
index 46ad2f99ab..674ad7c9b1 100644
--- a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-check.ts
+++ b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-check.ts
@@ -1,12 +1,15 @@
-import { html, LitElement, nothing, type PropertyValues } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
+import type { HomeAssistant } from "../../types";
+
import "../../components/ha-button";
import "../../components/ha-spinner";
+
+import { html, LitElement, nothing, type PropertyValues } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
import { testAssistSatelliteConnection } from "../../data/assist_satellite";
-import type { HomeAssistant } from "../../types";
-import { AssistantSetupStyles } from "./styles";
import { documentationUrl } from "../../util/documentation-url";
+import { AssistantSetupStyles } from "./styles";
@customElement("ha-voice-assistant-setup-step-check")
export class HaVoiceAssistantSetupStepCheck extends LitElement {
diff --git a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-cloud.ts b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-cloud.ts
index 793d2dd3ee..35b96c7900 100644
--- a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-cloud.ts
+++ b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-cloud.ts
@@ -1,9 +1,12 @@
-import { html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
import type { HomeAssistant } from "../../types";
+
import "./cloud/cloud-step-intro";
import "./cloud/cloud-step-signin";
import "./cloud/cloud-step-signup";
+
+import { html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../../common/dom/fire_event";
import { STEP } from "./voice-assistant-setup-dialog";
diff --git a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-local.ts b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-local.ts
index 35c0c4a8bb..453536c834 100644
--- a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-local.ts
+++ b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-local.ts
@@ -1,21 +1,26 @@
-import { mdiOpenInNew } from "@mdi/js";
+import type { AssistSatelliteConfiguration } from "../../data/assist_satellite";
+import type { HomeAssistant } from "../../types";
import type { PropertyValues } from "lit";
+
+import "../../components/ha-spinner";
+
+import { mdiOpenInNew } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { isComponentLoaded } from "../../common/config/is_component_loaded";
import { fireEvent } from "../../common/dom/fire_event";
import { computeDomain } from "../../common/entity/compute_domain";
-import "../../components/ha-spinner";
import {
createAssistPipeline,
listAssistPipelines,
} from "../../data/assist_pipeline";
-import type { AssistSatelliteConfiguration } from "../../data/assist_satellite";
import {
createConfigFlow,
fetchConfigFlowInProgress,
handleConfigFlowStep,
} from "../../data/config_flow";
+import { listAgents } from "../../data/conversation";
import {
type ExtEntityRegistryEntry,
getExtendedEntityRegistryEntries,
@@ -28,11 +33,9 @@ import {
import { listSTTEngines } from "../../data/stt";
import { listTTSEngines, listTTSVoices } from "../../data/tts";
import { fetchWyomingInfo } from "../../data/wyoming";
-import type { HomeAssistant } from "../../types";
import { documentationUrl } from "../../util/documentation-url";
import { AssistantSetupStyles } from "./styles";
import { STEP } from "./voice-assistant-setup-dialog";
-import { listAgents } from "../../data/conversation";
@customElement("ha-voice-assistant-setup-step-local")
export class HaVoiceAssistantSetupStepLocal extends LitElement {
diff --git a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-pipeline.ts b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-pipeline.ts
index 415ab4d073..a4c67e37c0 100644
--- a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-pipeline.ts
+++ b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-pipeline.ts
@@ -1,28 +1,31 @@
+import type { LocalizeFunc } from "../../common/translations/localize";
+import type { SelectBoxOption } from "../../components/ha-select-box";
+import type { AssistSatelliteConfiguration } from "../../data/assist_satellite";
+import type { LanguageScore, LanguageScores } from "../../data/conversation";
+import type { HomeAssistant } from "../../types";
import type { PropertyValues } from "lit";
+
+import "../../components/ha-select-box";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { isComponentLoaded } from "../../common/config/is_component_loaded";
import { fireEvent } from "../../common/dom/fire_event";
import { computeDomain } from "../../common/entity/compute_domain";
import { formatLanguageCode } from "../../common/language/format_language";
-import type { LocalizeFunc } from "../../common/translations/localize";
-import "../../components/ha-select-box";
-import type { SelectBoxOption } from "../../components/ha-select-box";
import {
createAssistPipeline,
listAssistPipelines,
} from "../../data/assist_pipeline";
-import type { AssistSatelliteConfiguration } from "../../data/assist_satellite";
import { fetchCloudStatus } from "../../data/cloud";
-import type { LanguageScore, LanguageScores } from "../../data/conversation";
import { getLanguageScores, listAgents } from "../../data/conversation";
import { listSTTEngines } from "../../data/stt";
import { listTTSEngines, listTTSVoices } from "../../data/tts";
-import type { HomeAssistant } from "../../types";
+import { documentationUrl } from "../../util/documentation-url";
import { AssistantSetupStyles } from "./styles";
import { STEP } from "./voice-assistant-setup-dialog";
-import { documentationUrl } from "../../util/documentation-url";
const OPTIONS = ["cloud", "focused_local", "full_local"] as const;
diff --git a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-success.ts b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-success.ts
index 9e8a40f8c5..db7e2960b9 100644
--- a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-success.ts
+++ b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-success.ts
@@ -1,30 +1,33 @@
-import { mdiCog, mdiMicrophone, mdiPlay } from "@mdi/js";
+import type { AssistPipeline } from "../../data/assist_pipeline";
+import type { AssistSatelliteConfiguration } from "../../data/assist_satellite";
+import type { InputSelectEntity } from "../../data/input_select";
+import type { HomeAssistant } from "../../types";
import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
-import { stopPropagation } from "../../common/dom/stop_propagation";
+
import "../../components/ha-select";
import "../../components/ha-tts-voice-picker";
-import type { AssistPipeline } from "../../data/assist_pipeline";
+import "../../panels/lovelace/entity-rows/hui-select-entity-row";
+
+import { mdiCog, mdiMicrophone, mdiPlay } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
+import { stopPropagation } from "../../common/dom/stop_propagation";
import {
listAssistPipelines,
updateAssistPipeline,
} from "../../data/assist_pipeline";
-import type { AssistSatelliteConfiguration } from "../../data/assist_satellite";
import {
assistSatelliteAnnounce,
setWakeWords,
} from "../../data/assist_satellite";
import { fetchCloudStatus } from "../../data/cloud";
-import type { InputSelectEntity } from "../../data/input_select";
import { setSelectOption } from "../../data/select";
import { showVoiceAssistantPipelineDetailDialog } from "../../panels/config/voice-assistants/show-dialog-voice-assistant-pipeline-detail";
-import "../../panels/lovelace/entity-rows/hui-select-entity-row";
-import type { HomeAssistant } from "../../types";
+import { getTranslation } from "../../util/common-translation";
import { AssistantSetupStyles } from "./styles";
import { STEP } from "./voice-assistant-setup-dialog";
-import { getTranslation } from "../../util/common-translation";
@customElement("ha-voice-assistant-setup-step-success")
export class HaVoiceAssistantSetupStepSuccess extends LitElement {
diff --git a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-update.ts b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-update.ts
index 999197139b..8bde8219ac 100644
--- a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-update.ts
+++ b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-update.ts
@@ -1,9 +1,13 @@
+import type { HomeAssistant } from "../../types";
import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
+
import "../../components/ha-progress-ring";
import "../../components/ha-spinner";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
import { ON, UNAVAILABLE } from "../../data/entity";
import {
updateCanInstall,
@@ -11,7 +15,6 @@ import {
updateIsInstalling,
updateUsesProgress,
} from "../../data/update";
-import type { HomeAssistant } from "../../types";
import { AssistantSetupStyles } from "./styles";
@customElement("ha-voice-assistant-setup-step-update")
diff --git a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-wake-word.ts b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-wake-word.ts
index 521bd934d0..376d4064f3 100644
--- a/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-wake-word.ts
+++ b/src/dialogs/voice-assistant-setup/voice-assistant-setup-step-wake-word.ts
@@ -1,19 +1,22 @@
+import type { AssistSatelliteConfiguration } from "../../data/assist_satellite";
+import type { EntityRegistryDisplayEntry } from "../../data/entity_registry";
+import type { HomeAssistant } from "../../types";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
+
+import "../../components/ha-button";
+import "../../components/ha-dialog-header";
+import "../../components/ha-spinner";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../common/dom/fire_event";
-import "../../components/ha-button";
-import "../../components/ha-spinner";
-import "../../components/ha-dialog-header";
-import type { AssistSatelliteConfiguration } from "../../data/assist_satellite";
+import { computeDomain } from "../../common/entity/compute_domain";
import { interceptWakeWord } from "../../data/assist_satellite";
-import type { HomeAssistant } from "../../types";
import { AssistantSetupStyles } from "./styles";
import { STEP } from "./voice-assistant-setup-dialog";
-import type { EntityRegistryDisplayEntry } from "../../data/entity_registry";
-import { computeDomain } from "../../common/entity/compute_domain";
@customElement("ha-voice-assistant-setup-step-wake-word")
export class HaVoiceAssistantSetupStepWakeWord extends LitElement {
diff --git a/src/dialogs/voice-command-dialog/ha-voice-command-dialog.ts b/src/dialogs/voice-command-dialog/ha-voice-command-dialog.ts
index 60aa04fb11..336ca2ddbf 100644
--- a/src/dialogs/voice-command-dialog/ha-voice-command-dialog.ts
+++ b/src/dialogs/voice-command-dialog/ha-voice-command-dialog.ts
@@ -1,34 +1,37 @@
-import "@material/mwc-button/mwc-button";
-import {
- mdiChevronDown,
- mdiClose,
- mdiHelpCircleOutline,
- mdiStar,
-} from "@mdi/js";
+import type { AssistPipeline } from "../../data/assist_pipeline";
+import type { HomeAssistant } from "../../types";
+import type { VoiceCommandDialogParams } from "./show-ha-voice-command-dialog";
import type { CSSResultGroup, PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { storage } from "../../common/decorators/storage";
-import { fireEvent } from "../../common/dom/fire_event";
-import { stopPropagation } from "../../common/dom/stop_propagation";
+
+import "../../components/ha-alert";
+import "../../components/ha-assist-chat";
import "../../components/ha-button";
import "../../components/ha-button-menu";
import "../../components/ha-dialog";
import "../../components/ha-dialog-header";
import "../../components/ha-icon-button";
import "../../components/ha-list-item";
-import "../../components/ha-alert";
-import "../../components/ha-assist-chat";
import "../../components/ha-spinner";
-import type { AssistPipeline } from "../../data/assist_pipeline";
+import "@material/mwc-button/mwc-button";
+
+import {
+ mdiChevronDown,
+ mdiClose,
+ mdiHelpCircleOutline,
+ mdiStar,
+} from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { storage } from "../../common/decorators/storage";
+import { fireEvent } from "../../common/dom/fire_event";
+import { stopPropagation } from "../../common/dom/stop_propagation";
import {
getAssistPipeline,
listAssistPipelines,
} from "../../data/assist_pipeline";
import { haStyleDialog } from "../../resources/styles";
-import type { HomeAssistant } from "../../types";
import { documentationUrl } from "../../util/documentation-url";
-import type { VoiceCommandDialogParams } from "./show-ha-voice-command-dialog";
@customElement("ha-voice-command-dialog")
export class HaVoiceCommandDialog extends LitElement {
diff --git a/src/dialogs/voice-command-dialog/show-ha-voice-command-dialog.ts b/src/dialogs/voice-command-dialog/show-ha-voice-command-dialog.ts
index 2ac41a5d9a..64953ec149 100644
--- a/src/dialogs/voice-command-dialog/show-ha-voice-command-dialog.ts
+++ b/src/dialogs/voice-command-dialog/show-ha-voice-command-dialog.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../common/dom/fire_event";
import type { HomeAssistant } from "../../types";
+import { fireEvent } from "../../common/dom/fire_event";
+
const loadVoiceCommandDialog = () => import("./ha-voice-command-dialog");
export interface VoiceCommandDialogParams {
diff --git a/src/entrypoints/app.ts b/src/entrypoints/app.ts
index 21230d7cb6..2a2432502c 100644
--- a/src/entrypoints/app.ts
+++ b/src/entrypoints/app.ts
@@ -1,5 +1,5 @@
-import "@webcomponents/scoped-custom-element-registry/scoped-custom-element-registry.min";
import "../layouts/home-assistant";
+import "@webcomponents/scoped-custom-element-registry/scoped-custom-element-registry.min";
import("../resources/ha-style");
import("@polymer/polymer/lib/utils/settings").then(
diff --git a/src/entrypoints/core.ts b/src/entrypoints/core.ts
index e8549e265d..8ff2ec9d93 100644
--- a/src/entrypoints/core.ts
+++ b/src/entrypoints/core.ts
@@ -1,4 +1,7 @@
+import type { WindowWithPreloads } from "../data/preloads";
+import type { ExternalAuth } from "../external_app/external_auth";
import type { Auth, Connection } from "home-assistant-js-websocket";
+
import {
createConnection,
ERR_INVALID_AUTH,
@@ -7,6 +10,7 @@ import {
subscribeEntities,
subscribeServices,
} from "home-assistant-js-websocket";
+
import { loadTokens, saveTokens } from "../common/auth/token_storage";
import { hassUrl } from "../data/auth";
import { isExternal } from "../data/external";
@@ -14,7 +18,6 @@ import { subscribeFrontendUserData } from "../data/frontend";
import { fetchConfig } from "../data/lovelace/config/types";
import { fetchResources } from "../data/lovelace/resource";
import { MAIN_WINDOW_NAME } from "../data/main_window";
-import type { WindowWithPreloads } from "../data/preloads";
import { getRecorderInfo } from "../data/recorder";
import { subscribeRepairsIssueRegistry } from "../data/repairs";
import { subscribeAreaRegistry } from "../data/ws-area_registry";
@@ -24,7 +27,6 @@ import { subscribeFloorRegistry } from "../data/ws-floor_registry";
import { subscribePanels } from "../data/ws-panels";
import { subscribeThemes } from "../data/ws-themes";
import { subscribeUser } from "../data/ws-user";
-import type { ExternalAuth } from "../external_app/external_auth";
window.name = MAIN_WINDOW_NAME;
(window as any).frontendVersion = __VERSION__;
diff --git a/src/entrypoints/custom-panel.ts b/src/entrypoints/custom-panel.ts
index 7e62974eef..18153228dc 100644
--- a/src/entrypoints/custom-panel.ts
+++ b/src/entrypoints/custom-panel.ts
@@ -1,10 +1,11 @@
+import type { CustomPanelInfo } from "../data/panel_custom";
import type { CSSResult } from "lit";
+
import { fireEvent } from "../common/dom/fire_event";
import { isNavigationClick } from "../common/dom/is-navigation-click";
import { loadJS } from "../common/dom/load_resource";
import { webComponentsSupported } from "../common/feature-detect/support-web-components";
import { navigate } from "../common/navigate";
-import type { CustomPanelInfo } from "../data/panel_custom";
import { baseEntrypointStyles } from "../resources/styles";
import { createCustomPanelElement } from "../util/custom-panel/create-custom-panel-element";
import { loadCustomPanel } from "../util/custom-panel/load-custom-panel";
diff --git a/src/entrypoints/service-worker.ts b/src/entrypoints/service-worker.ts
index 9df16df372..89e5c42be0 100644
--- a/src/entrypoints/service-worker.ts
+++ b/src/entrypoints/service-worker.ts
@@ -1,10 +1,11 @@
-/* eslint-disable @typescript-eslint/triple-slash-reference */
+
+
+import type { RouteHandler } from "workbox-core";
///
/* eslint-env serviceworker */
-import type { RouteHandler } from "workbox-core";
-import { cacheNames } from "workbox-core";
import { CacheableResponsePlugin } from "workbox-cacheable-response";
+import { cacheNames } from "workbox-core";
import { ExpirationPlugin } from "workbox-expiration";
import { cleanupOutdatedCaches, precacheAndRoute } from "workbox-precaching";
import { registerRoute, setCatchHandler } from "workbox-routing";
diff --git a/src/external_app/external_app_entrypoint.ts b/src/external_app/external_app_entrypoint.ts
index e5aac787a8..b8fdaf3900 100644
--- a/src/external_app/external_app_entrypoint.ts
+++ b/src/external_app/external_app_entrypoint.ts
@@ -5,9 +5,6 @@ in core bundle slows things down and causes duplicate registration.
This is the entry point for providing external app stuff from app entrypoint.
*/
-import { fireEvent } from "../common/dom/fire_event";
-import { mainWindow } from "../common/dom/get_main_window";
-import { showAutomationEditor } from "../data/automation";
import type { HomeAssistantMain } from "../layouts/home-assistant-main";
import type {
EMIncomingMessageBarCodeScanAborted,
@@ -16,6 +13,10 @@ import type {
ImprovDiscoveredDevice,
} from "./external_messaging";
+import { fireEvent } from "../common/dom/fire_event";
+import { mainWindow } from "../common/dom/get_main_window";
+import { showAutomationEditor } from "../data/automation";
+
const barCodeListeners = new Set<
(
msg:
diff --git a/src/external_app/external_auth.ts b/src/external_app/external_auth.ts
index b47e62ed19..afb01c5498 100644
--- a/src/external_app/external_auth.ts
+++ b/src/external_app/external_auth.ts
@@ -1,8 +1,10 @@
+import type { EMMessage } from "./external_messaging";
+
/**
* Auth class that connects to a native app for authentication.
*/
import { Auth } from "home-assistant-js-websocket";
-import type { EMMessage } from "./external_messaging";
+
import { ExternalMessaging } from "./external_messaging";
const CALLBACK_SET_TOKEN = "externalAuthSetToken";
diff --git a/src/fake_data/demo_config.ts b/src/fake_data/demo_config.ts
index 4dd3f34b15..18b9aad156 100644
--- a/src/fake_data/demo_config.ts
+++ b/src/fake_data/demo_config.ts
@@ -1,4 +1,5 @@
import type { HassConfig } from "home-assistant-js-websocket";
+
import { STATE_RUNNING } from "home-assistant-js-websocket";
export const demoConfig: HassConfig = {
diff --git a/src/fake_data/entity.ts b/src/fake_data/entity.ts
index 3f4a523a62..fb90082629 100644
--- a/src/fake_data/entity.ts
+++ b/src/fake_data/entity.ts
@@ -3,6 +3,7 @@ import type {
HassEntity,
HassEntityAttributeBase,
} from "home-assistant-js-websocket";
+
import { supportsFeature } from "../common/entity/supports-feature";
import { ClimateEntityFeature } from "../data/climate";
diff --git a/src/fake_data/provide_hass.ts b/src/fake_data/provide_hass.ts
index 9317c11f85..d32e3c3444 100644
--- a/src/fake_data/provide_hass.ts
+++ b/src/fake_data/provide_hass.ts
@@ -1,4 +1,7 @@
+import type { HomeAssistant } from "../types";
+import type { Entity } from "./entity";
import type { HassEntities, HassEntity } from "home-assistant-js-websocket";
+
import {
applyThemesOnElement,
invalidateThemeCache,
@@ -15,12 +18,10 @@ import {
TimeZone,
} from "../data/translation";
import { translationMetadata } from "../resources/translations-metadata";
-import type { HomeAssistant } from "../types";
import { getLocalLanguage, getTranslation } from "../util/common-translation";
import { demoConfig } from "./demo_config";
import { demoPanels } from "./demo_panels";
import { demoServices } from "./demo_services";
-import type { Entity } from "./entity";
import { getEntity } from "./entity";
const ensureArray = (val: T | T[]): T[] =>
diff --git a/src/layouts/ha-init-page.ts b/src/layouts/ha-init-page.ts
index 84cd396569..713ee336fc 100644
--- a/src/layouts/ha-init-page.ts
+++ b/src/layouts/ha-init-page.ts
@@ -1,4 +1,5 @@
import type { PropertyValues } from "lit";
+
import { css, html, LitElement } from "lit";
import { property, state } from "lit/decorators";
diff --git a/src/layouts/hass-error-screen.ts b/src/layouts/hass-error-screen.ts
index 461bd3fc3c..2d8867eddd 100644
--- a/src/layouts/hass-error-screen.ts
+++ b/src/layouts/hass-error-screen.ts
@@ -1,11 +1,13 @@
-import "@material/mwc-button";
+import type { HomeAssistant } from "../types";
import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
+
+import "../components/ha-alert";
import "../components/ha-icon-button-arrow-prev";
import "../components/ha-menu-button";
-import type { HomeAssistant } from "../types";
-import "../components/ha-alert";
+import "@material/mwc-button";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
@customElement("hass-error-screen")
class HassErrorScreen extends LitElement {
diff --git a/src/layouts/hass-loading-screen.ts b/src/layouts/hass-loading-screen.ts
index 3aa2f5d672..e6036e1483 100644
--- a/src/layouts/hass-loading-screen.ts
+++ b/src/layouts/hass-loading-screen.ts
@@ -1,11 +1,14 @@
+import type { HomeAssistant } from "../types";
import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import "../components/ha-spinner";
+
import "../components/ha-icon-button-arrow-prev";
import "../components/ha-menu-button";
+import "../components/ha-spinner";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { haStyle } from "../resources/styles";
-import type { HomeAssistant } from "../types";
@customElement("hass-loading-screen")
class HassLoadingScreen extends LitElement {
diff --git a/src/layouts/hass-router-page.ts b/src/layouts/hass-router-page.ts
index 0b3eee8ab8..f113d9cf46 100644
--- a/src/layouts/hass-router-page.ts
+++ b/src/layouts/hass-router-page.ts
@@ -1,9 +1,11 @@
+import type { Route } from "../types";
import type { PropertyValues } from "lit";
+
import { ReactiveElement } from "lit";
import { property } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { navigate } from "../common/navigate";
-import type { Route } from "../types";
const extractPage = (path: string, defaultPage: string) => {
if (path === "") {
diff --git a/src/layouts/hass-subpage.ts b/src/layouts/hass-subpage.ts
index 2c411b0478..5ad42f02ac 100644
--- a/src/layouts/hass-subpage.ts
+++ b/src/layouts/hass-subpage.ts
@@ -1,10 +1,13 @@
+import type { HomeAssistant } from "../types";
import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, eventOptions, property } from "lit/decorators";
-import { restoreScroll } from "../common/decorators/restore-scroll";
+
import "../components/ha-icon-button-arrow-prev";
import "../components/ha-menu-button";
-import type { HomeAssistant } from "../types";
+
+import { css, html, LitElement } from "lit";
+import { customElement, eventOptions, property } from "lit/decorators";
+
+import { restoreScroll } from "../common/decorators/restore-scroll";
import { haStyleScrollbar } from "../resources/styles";
@customElement("hass-subpage")
diff --git a/src/layouts/hass-tabs-subpage-data-table.ts b/src/layouts/hass-tabs-subpage-data-table.ts
index 6baa894ff5..031bb13d54 100644
--- a/src/layouts/hass-tabs-subpage-data-table.ts
+++ b/src/layouts/hass-tabs-subpage-data-table.ts
@@ -1,5 +1,27 @@
-import { ResizeController } from "@lit-labs/observers/resize-controller";
+import type { LocalizeFunc } from "../common/translations/localize";
+import type {
+ DataTableColumnContainer,
+ DataTableRowData,
+ HaDataTable,
+ SortingDirection,
+} from "../components/data-table/ha-data-table";
+import type { HomeAssistant, Route } from "../types";
+import type { PageNavigation } from "./hass-tabs-subpage";
+import type { TemplateResult } from "lit";
+
+import "../components/chips/ha-assist-chip";
+import "../components/chips/ha-filter-chip";
+import "../components/data-table/ha-data-table";
+import "../components/ha-dialog";
+import "../components/ha-dialog-header";
+import "../components/ha-md-button-menu";
+import "../components/ha-md-divider";
+import "../components/ha-md-menu-item";
+import "../components/search-input-outlined";
+import "./hass-tabs-subpage";
import "@material/mwc-button/mwc-button";
+
+import { ResizeController } from "@lit-labs/observers/resize-controller";
import {
mdiArrowDown,
mdiArrowUp,
@@ -12,30 +34,11 @@ import {
mdiUnfoldLessHorizontal,
mdiUnfoldMoreHorizontal,
} from "@mdi/js";
-import type { TemplateResult } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { fireEvent } from "../common/dom/fire_event";
-import type { LocalizeFunc } from "../common/translations/localize";
-import "../components/chips/ha-assist-chip";
-import "../components/chips/ha-filter-chip";
-import "../components/data-table/ha-data-table";
-import type {
- DataTableColumnContainer,
- DataTableRowData,
- HaDataTable,
- SortingDirection,
-} from "../components/data-table/ha-data-table";
-import "../components/ha-md-button-menu";
-import "../components/ha-dialog";
-import "../components/ha-dialog-header";
-import "../components/ha-md-divider";
-import "../components/ha-md-menu-item";
-import "../components/search-input-outlined";
-import type { HomeAssistant, Route } from "../types";
-import "./hass-tabs-subpage";
-import type { PageNavigation } from "./hass-tabs-subpage";
import { showDataTableSettingsDialog } from "../components/data-table/show-dialog-data-table-settings";
import { KeyboardShortcutMixin } from "../mixins/keyboard-shortcut-mixin";
diff --git a/src/layouts/hass-tabs-subpage.ts b/src/layouts/hass-tabs-subpage.ts
index ca930a01b5..97fcf2113a 100644
--- a/src/layouts/hass-tabs-subpage.ts
+++ b/src/layouts/hass-tabs-subpage.ts
@@ -1,17 +1,20 @@
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, eventOptions, property, state } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import memoizeOne from "memoize-one";
-import { restoreScroll } from "../common/decorators/restore-scroll";
import type { LocalizeFunc } from "../common/translations/localize";
+import type { HomeAssistant, Route } from "../types";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
import "../components/ha-icon-button-arrow-prev";
import "../components/ha-menu-button";
import "../components/ha-svg-icon";
import "../components/ha-tab";
-import type { HomeAssistant, Route } from "../types";
-import { haStyleScrollbar } from "../resources/styles";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, eventOptions, property, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+import memoizeOne from "memoize-one";
+
import { canShowPage } from "../common/config/can_show_page";
+import { restoreScroll } from "../common/decorators/restore-scroll";
+import { haStyleScrollbar } from "../resources/styles";
export interface PageNavigation {
path: string;
diff --git a/src/layouts/home-assistant-main.ts b/src/layouts/home-assistant-main.ts
index 831ac020c8..baddd8cd53 100644
--- a/src/layouts/home-assistant-main.ts
+++ b/src/layouts/home-assistant-main.ts
@@ -1,15 +1,18 @@
+import type { HASSDomEvent } from "../common/dom/fire_event";
+import type { HomeAssistant, Route } from "../types";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../components/ha-drawer";
+import "./partial-panel-resolver";
+
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
-import type { HASSDomEvent } from "../common/dom/fire_event";
+
import { fireEvent } from "../common/dom/fire_event";
import { listenMediaQuery } from "../common/dom/media_query";
import { toggleAttribute } from "../common/dom/toggle_attribute";
-import "../components/ha-drawer";
-import { showNotificationDrawer } from "../dialogs/notifications/show-notification-drawer";
-import type { HomeAssistant, Route } from "../types";
-import "./partial-panel-resolver";
import { computeRTLDirection } from "../common/util/compute_rtl";
+import { showNotificationDrawer } from "../dialogs/notifications/show-notification-drawer";
declare global {
// for fire event
diff --git a/src/layouts/home-assistant.ts b/src/layouts/home-assistant.ts
index 1e6064cfc1..2d1944c3de 100644
--- a/src/layouts/home-assistant.ts
+++ b/src/layouts/home-assistant.ts
@@ -1,17 +1,23 @@
+import type { WindowWithPreloads } from "../data/preloads";
+import type { RecorderInfo } from "../data/recorder";
+import type { HomeAssistant, Route } from "../types";
+import type { Connection } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
+
+import "../resources/custom-card-support";
+import "./ha-init-page";
+import "./home-assistant-main";
+
import { html } from "lit";
import { customElement, state } from "lit/decorators";
-import type { Connection } from "home-assistant-js-websocket";
+
+import { storage } from "../common/decorators/storage";
import { isNavigationClick } from "../common/dom/is-navigation-click";
import { navigate } from "../common/navigate";
import { getStorageDefaultPanelUrlPath } from "../data/panel";
-import type { WindowWithPreloads } from "../data/preloads";
-import type { RecorderInfo } from "../data/recorder";
import { getRecorderInfo } from "../data/recorder";
-import "../resources/custom-card-support";
import { HassElement } from "../state/hass-element";
import QuickBarMixin from "../state/quick-bar-mixin";
-import type { HomeAssistant, Route } from "../types";
import { storeState } from "../util/ha-pref-storage";
import {
removeLaunchScreen,
@@ -21,9 +27,6 @@ import {
registerServiceWorker,
supportsServiceWorker,
} from "../util/register-service-worker";
-import "./ha-init-page";
-import "./home-assistant-main";
-import { storage } from "../common/decorators/storage";
const useHash = __DEMO__;
const curPath = () =>
diff --git a/src/layouts/partial-panel-resolver.ts b/src/layouts/partial-panel-resolver.ts
index 1a8b665e48..d5a947266b 100644
--- a/src/layouts/partial-panel-resolver.ts
+++ b/src/layouts/partial-panel-resolver.ts
@@ -1,17 +1,19 @@
+import type { CustomPanelInfo } from "../data/panel_custom";
+import type { HomeAssistant, Panels } from "../types";
+import type { RouteOptions, RouterOptions } from "./hass-router-page";
+import type { PropertyValues } from "lit";
+
import {
STATE_NOT_RUNNING,
STATE_RUNNING,
STATE_STARTING,
} from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
import { customElement, property } from "lit/decorators";
+
import { deepActiveElement } from "../common/dom/deep-active-element";
import { deepEqual } from "../common/util/deep-equal";
import { getDefaultPanel } from "../data/panel";
-import type { CustomPanelInfo } from "../data/panel_custom";
-import type { HomeAssistant, Panels } from "../types";
import { removeLaunchScreen } from "../util/launch-screen";
-import type { RouteOptions, RouterOptions } from "./hass-router-page";
import { HassRouterPage } from "./hass-router-page";
const CACHE_URL_PATHS = ["lovelace", "developer-tools"];
diff --git a/src/layouts/supervisor-error-screen.ts b/src/layouts/supervisor-error-screen.ts
index 503fe9a7aa..f198c946a4 100644
--- a/src/layouts/supervisor-error-screen.ts
+++ b/src/layouts/supervisor-error-screen.ts
@@ -1,13 +1,16 @@
-import "@material/mwc-button";
+import type { HomeAssistant } from "../types";
import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../components/ha-card";
+import "./hass-subpage";
+import "@material/mwc-button";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
+
import { atLeastVersion } from "../common/config/version";
import { applyThemesOnElement } from "../common/dom/apply_themes_on_element";
-import "../components/ha-card";
import { haStyle } from "../resources/styles";
-import type { HomeAssistant } from "../types";
-import "./hass-subpage";
@customElement("supervisor-error-screen")
class SupervisorErrorScreen extends LitElement {
diff --git a/src/managers/notification-manager.ts b/src/managers/notification-manager.ts
index 2e506c2514..8170b01a4c 100644
--- a/src/managers/notification-manager.ts
+++ b/src/managers/notification-manager.ts
@@ -1,11 +1,13 @@
+import type { HaToast } from "../components/ha-toast";
+import type { HomeAssistant } from "../types";
+
+import "../components/ha-button";
+import "../components/ha-icon-button";
+import "../components/ha-toast";
+
import { mdiClose } from "@mdi/js";
import { html, LitElement, nothing } from "lit";
import { property, query, state } from "lit/decorators";
-import "../components/ha-button";
-import "../components/ha-toast";
-import "../components/ha-icon-button";
-import type { HaToast } from "../components/ha-toast";
-import type { HomeAssistant } from "../types";
export interface ShowToastParams {
// Unique ID for the toast. If a new toast is shown with the same ID as the previous toast, it will be replaced to avoid flickering.
diff --git a/src/mixins/keyboard-shortcut-mixin.ts b/src/mixins/keyboard-shortcut-mixin.ts
index 6b89a443aa..22a7d56266 100644
--- a/src/mixins/keyboard-shortcut-mixin.ts
+++ b/src/mixins/keyboard-shortcut-mixin.ts
@@ -1,5 +1,5 @@
-import type { LitElement } from "lit";
import type { Constructor } from "../types";
+import type { LitElement } from "lit";
declare global {
type SupportedShortcuts = Record void>;
diff --git a/src/mixins/lit-localize-lite-mixin.ts b/src/mixins/lit-localize-lite-mixin.ts
index 2f2b4b9094..7f29982773 100644
--- a/src/mixins/lit-localize-lite-mixin.ts
+++ b/src/mixins/lit-localize-lite-mixin.ts
@@ -1,11 +1,13 @@
-import type { LitElement, PropertyValues } from "lit";
-import { property, state } from "lit/decorators";
import type { LocalizeFunc } from "../common/translations/localize";
-import { computeLocalize } from "../common/translations/localize";
import type { Constructor, Resources } from "../types";
-import { getLocalLanguage, getTranslation } from "../util/common-translation";
-import { translationMetadata } from "../resources/translations-metadata";
+import type { LitElement, PropertyValues } from "lit";
+
+import { property, state } from "lit/decorators";
+
+import { computeLocalize } from "../common/translations/localize";
import { computeDirectionStyles } from "../common/util/compute_rtl";
+import { translationMetadata } from "../resources/translations-metadata";
+import { getLocalLanguage, getTranslation } from "../util/common-translation";
const empty = () => "";
diff --git a/src/mixins/prevent-unsaved-mixin.ts b/src/mixins/prevent-unsaved-mixin.ts
index b89bf286e7..c81a2c67d1 100644
--- a/src/mixins/prevent-unsaved-mixin.ts
+++ b/src/mixins/prevent-unsaved-mixin.ts
@@ -1,6 +1,7 @@
-import type { LitElement, PropertyValues } from "lit";
-import { isNavigationClick } from "../common/dom/is-navigation-click";
import type { Constructor } from "../types";
+import type { LitElement, PropertyValues } from "lit";
+
+import { isNavigationClick } from "../common/dom/is-navigation-click";
export const PreventUnsavedMixin = >(
superClass: T
diff --git a/src/mixins/provide-hass-lit-mixin.ts b/src/mixins/provide-hass-lit-mixin.ts
index 13aab5541b..145bfcc08a 100644
--- a/src/mixins/provide-hass-lit-mixin.ts
+++ b/src/mixins/provide-hass-lit-mixin.ts
@@ -1,5 +1,5 @@
-import type { PropertyValues, ReactiveElement } from "lit";
import type { Constructor, HomeAssistant } from "../types";
+import type { PropertyValues, ReactiveElement } from "lit";
export interface ProvideHassElement {
provideHass(element: HTMLElement);
diff --git a/src/mixins/subscribe-mixin.ts b/src/mixins/subscribe-mixin.ts
index d7fa371b85..f8928d0879 100644
--- a/src/mixins/subscribe-mixin.ts
+++ b/src/mixins/subscribe-mixin.ts
@@ -1,7 +1,8 @@
+import type { Constructor, HomeAssistant } from "../types";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { PropertyValues, ReactiveElement } from "lit";
+
import { property } from "lit/decorators";
-import type { Constructor, HomeAssistant } from "../types";
export interface HassSubscribeElement {
hassSubscribe(): UnsubscribeFunc[];
diff --git a/src/onboarding/dialogs/app-dialog.ts b/src/onboarding/dialogs/app-dialog.ts
index 5be88e0486..18a6458de5 100644
--- a/src/onboarding/dialogs/app-dialog.ts
+++ b/src/onboarding/dialogs/app-dialog.ts
@@ -1,6 +1,8 @@
+import type { LocalizeFunc } from "../../common/translations/localize";
+
import { LitElement, css, html, nothing } from "lit";
import { customElement, property } from "lit/decorators";
-import type { LocalizeFunc } from "../../common/translations/localize";
+
import { fireEvent } from "../../common/dom/fire_event";
import { createCloseHeading } from "../../components/ha-dialog";
diff --git a/src/onboarding/dialogs/community-dialog.ts b/src/onboarding/dialogs/community-dialog.ts
index 629349676c..35366e335d 100644
--- a/src/onboarding/dialogs/community-dialog.ts
+++ b/src/onboarding/dialogs/community-dialog.ts
@@ -1,11 +1,14 @@
+import type { LocalizeFunc } from "../../common/translations/localize";
+
+import "../../components/ha-list-item";
import "@material/mwc-list/mwc-list";
+
import { mdiOpenInNew } from "@mdi/js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property } from "lit/decorators";
+
import { fireEvent } from "../../common/dom/fire_event";
-import type { LocalizeFunc } from "../../common/translations/localize";
import { createCloseHeading } from "../../components/ha-dialog";
-import "../../components/ha-list-item";
@customElement("community-dialog")
class DialogCommunity extends LitElement {
diff --git a/src/onboarding/dialogs/show-app-dialog.ts b/src/onboarding/dialogs/show-app-dialog.ts
index 21aba8cc62..7fece1c693 100644
--- a/src/onboarding/dialogs/show-app-dialog.ts
+++ b/src/onboarding/dialogs/show-app-dialog.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../common/dom/fire_event";
import type { LocalizeFunc } from "../../common/translations/localize";
+import { fireEvent } from "../../common/dom/fire_event";
+
export const loadAppDialog = () => import("./app-dialog");
export const showAppDialog = (
diff --git a/src/onboarding/dialogs/show-community-dialog.ts b/src/onboarding/dialogs/show-community-dialog.ts
index 72916daaff..06ae60b013 100644
--- a/src/onboarding/dialogs/show-community-dialog.ts
+++ b/src/onboarding/dialogs/show-community-dialog.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../common/dom/fire_event";
import type { LocalizeFunc } from "../../common/translations/localize";
+import { fireEvent } from "../../common/dom/fire_event";
+
export const loadCommunityDialog = () => import("./community-dialog");
export const showCommunityDialog = (
diff --git a/src/onboarding/ha-onboarding.ts b/src/onboarding/ha-onboarding.ts
index ca926802b8..8bab03cc89 100644
--- a/src/onboarding/ha-onboarding.ts
+++ b/src/onboarding/ha-onboarding.ts
@@ -1,50 +1,53 @@
-import "@material/mwc-linear-progress/mwc-linear-progress";
+import type { HASSDomEvent } from "../common/dom/fire_event";
+import type { AuthUrlSearchParams } from "../data/auth";
+import type { OnboardingResponses, OnboardingStep } from "../data/onboarding";
+import type { HomeAssistant } from "../types";
import type { Auth } from "home-assistant-js-websocket";
+import type { PropertyValues } from "lit";
+
+import "../components/ha-card";
+import "./onboarding-analytics";
+import "./onboarding-create-user";
+import "./onboarding-loading";
+import "./onboarding-welcome";
+import "./onboarding-welcome-links";
+import "@material/mwc-linear-progress/mwc-linear-progress";
+
import {
createConnection,
genClientId,
getAuth,
subscribeConfig,
} from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
import { css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import {
enableWrite,
loadTokens,
saveTokens,
} from "../common/auth/token_storage";
import { applyThemesOnElement } from "../common/dom/apply_themes_on_element";
-import type { HASSDomEvent } from "../common/dom/fire_event";
+import { mainWindow } from "../common/dom/get_main_window";
+import { navigate } from "../common/navigate";
import {
addSearchParam,
extractSearchParam,
extractSearchParamsObject,
} from "../common/url/search-params";
import { subscribeOne } from "../common/util/subscribe-one";
-import "../components/ha-card";
-import type { AuthUrlSearchParams } from "../data/auth";
import { hassUrl } from "../data/auth";
-import type { OnboardingResponses, OnboardingStep } from "../data/onboarding";
import {
fetchInstallationType,
fetchOnboardingOverview,
onboardIntegrationStep,
} from "../data/onboarding";
import { subscribeUser } from "../data/ws-user";
+import { makeDialogManager } from "../dialogs/make-dialog-manager";
import { litLocalizeLiteMixin } from "../mixins/lit-localize-lite-mixin";
import { HassElement } from "../state/hass-element";
-import type { HomeAssistant } from "../types";
import { storeState } from "../util/ha-pref-storage";
import { registerServiceWorker } from "../util/register-service-worker";
-import "./onboarding-analytics";
-import "./onboarding-create-user";
-import "./onboarding-loading";
-import "./onboarding-welcome";
-import "./onboarding-welcome-links";
-import { makeDialogManager } from "../dialogs/make-dialog-manager";
-import { navigate } from "../common/navigate";
-import { mainWindow } from "../common/dom/get_main_window";
type OnboardingEvent =
| {
diff --git a/src/onboarding/integration-badge.ts b/src/onboarding/integration-badge.ts
index a35aa2a954..34dcfdd35d 100644
--- a/src/onboarding/integration-badge.ts
+++ b/src/onboarding/integration-badge.ts
@@ -1,6 +1,8 @@
import type { TemplateResult } from "lit";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
+
import { brandsUrl } from "../util/brands-url";
@customElement("integration-badge")
diff --git a/src/onboarding/onboarding-analytics.ts b/src/onboarding/onboarding-analytics.ts
index be08ccb5fd..cda6df4212 100644
--- a/src/onboarding/onboarding-analytics.ts
+++ b/src/onboarding/onboarding-analytics.ts
@@ -1,16 +1,19 @@
-import "@material/mwc-button/mwc-button";
-import { mdiOpenInNew } from "@mdi/js";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../common/dom/fire_event";
import type { LocalizeFunc } from "../common/translations/localize";
+import type { Analytics } from "../data/analytics";
+import type { HomeAssistant } from "../types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
import "../components/ha-analytics";
import "../components/ha-svg-icon";
-import type { Analytics } from "../data/analytics";
+import "@material/mwc-button/mwc-button";
+
+import { mdiOpenInNew } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../common/dom/fire_event";
import { setAnalyticsPreferences } from "../data/analytics";
import { onboardAnalyticsStep } from "../data/onboarding";
-import type { HomeAssistant } from "../types";
import { documentationUrl } from "../util/documentation-url";
import { onBoardingStyles } from "./styles";
diff --git a/src/onboarding/onboarding-core-config.ts b/src/onboarding/onboarding-core-config.ts
index 99ad56d5e3..48a45d4841 100644
--- a/src/onboarding/onboarding-core-config.ts
+++ b/src/onboarding/onboarding-core-config.ts
@@ -1,20 +1,23 @@
-import "@material/mwc-button/mwc-button";
-import type { PropertyValues, TemplateResult } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { LOCAL_TIME_ZONE } from "../common/datetime/resolve-time-zone";
-import { fireEvent } from "../common/dom/fire_event";
import type { LocalizeFunc } from "../common/translations/localize";
+import type { ConfigUpdateValues } from "../data/core";
+import type { HomeAssistant, ValueChangedEvent } from "../types";
+import type { PropertyValues, TemplateResult } from "lit";
+
import "../components/ha-alert";
import "../components/ha-spinner";
+import "./onboarding-location";
+import "@material/mwc-button/mwc-button";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { LOCAL_TIME_ZONE } from "../common/datetime/resolve-time-zone";
+import { fireEvent } from "../common/dom/fire_event";
import { COUNTRIES } from "../components/ha-country-picker";
-import type { ConfigUpdateValues } from "../data/core";
import { saveCoreConfig } from "../data/core";
import { countryCurrency } from "../data/currency";
import { onboardCoreConfigStep } from "../data/onboarding";
-import type { HomeAssistant, ValueChangedEvent } from "../types";
import { getLocalLanguage } from "../util/common-translation";
-import "./onboarding-location";
@customElement("onboarding-core-config")
class OnboardingCoreConfig extends LitElement {
diff --git a/src/onboarding/onboarding-create-user.ts b/src/onboarding/onboarding-create-user.ts
index 5f9d333e94..85ea9c226a 100644
--- a/src/onboarding/onboarding-create-user.ts
+++ b/src/onboarding/onboarding-create-user.ts
@@ -1,20 +1,23 @@
-import "@material/mwc-button";
-import { genClientId } from "home-assistant-js-websocket";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { fireEvent } from "../common/dom/fire_event";
import type { LocalizeFunc } from "../common/translations/localize";
-import "../components/ha-form/ha-form";
import type { HaForm } from "../components/ha-form/ha-form";
import type {
HaFormDataContainer,
HaFormSchema,
} from "../components/ha-form/types";
-import { onboardUserStep } from "../data/onboarding";
import type { ValueChangedEvent } from "../types";
-import { onBoardingStyles } from "./styles";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../components/ha-form/ha-form";
+import "@material/mwc-button";
+
+import { genClientId } from "home-assistant-js-websocket";
+import { html, LitElement } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { fireEvent } from "../common/dom/fire_event";
import { debounce } from "../common/util/debounce";
+import { onboardUserStep } from "../data/onboarding";
+import { onBoardingStyles } from "./styles";
const CHECK_USERNAME_REGEX = /\s|[A-Z]/;
diff --git a/src/onboarding/onboarding-integrations.ts b/src/onboarding/onboarding-integrations.ts
index eb01504801..8b32a248c3 100644
--- a/src/onboarding/onboarding-integrations.ts
+++ b/src/onboarding/onboarding-integrations.ts
@@ -1,20 +1,23 @@
+import type { LocalizeFunc } from "../common/translations/localize";
+import type { ConfigEntry } from "../data/config_entries";
+import type { HomeAssistant } from "../types";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../components/ha-button";
+import "./integration-badge";
+
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { isComponentLoaded } from "../common/config/is_component_loaded";
import { fireEvent } from "../common/dom/fire_event";
import { stringCompare } from "../common/string/compare";
-import type { LocalizeFunc } from "../common/translations/localize";
-import "../components/ha-button";
-import type { ConfigEntry } from "../data/config_entries";
import { subscribeConfigEntries } from "../data/config_entries";
import { subscribeConfigFlowInProgress } from "../data/config_flow";
import { domainToName } from "../data/integration";
import { scanUSBDevices } from "../data/usb";
import { SubscribeMixin } from "../mixins/subscribe-mixin";
-import type { HomeAssistant } from "../types";
-import "./integration-badge";
import { onBoardingStyles } from "./styles";
const HIDDEN_DOMAINS = new Set([
diff --git a/src/onboarding/onboarding-loading.ts b/src/onboarding/onboarding-loading.ts
index 6f8c4157e8..a18e2f8a63 100644
--- a/src/onboarding/onboarding-loading.ts
+++ b/src/onboarding/onboarding-loading.ts
@@ -1,4 +1,5 @@
import type { TemplateResult } from "lit";
+
import { css, html, LitElement } from "lit";
import { customElement } from "lit/decorators";
diff --git a/src/onboarding/onboarding-location.ts b/src/onboarding/onboarding-location.ts
index 44bf2fe0ff..1fa4ca52a8 100644
--- a/src/onboarding/onboarding-location.ts
+++ b/src/onboarding/onboarding-location.ts
@@ -1,35 +1,38 @@
+import type { LocalizeFunc } from "../common/translations/localize";
+import type { HaTextField } from "../components/ha-textfield";
+import type {
+ HaLocationsEditor,
+ MarkerLocation,
+} from "../components/map/ha-locations-editor";
+import type { ConfigUpdateValues } from "../data/core";
+import type { OpenStreetMapPlace } from "../data/openstreetmap";
+import type { HomeAssistant } from "../types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../components/ha-alert";
+import "../components/ha-formfield";
+import "../components/ha-list-item";
+import "../components/ha-radio";
+import "../components/ha-spinner";
+import "../components/ha-textfield";
+import "../components/map/ha-locations-editor";
import "@material/mwc-button/mwc-button";
import "@material/mwc-list/mwc-list";
+
import {
mdiCrosshairsGps,
mdiMagnify,
mdiMapMarker,
mdiMapSearchOutline,
} from "@mdi/js";
-import type { CSSResultGroup, TemplateResult } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../common/dom/fire_event";
-import type { LocalizeFunc } from "../common/translations/localize";
-import "../components/ha-alert";
-import "../components/ha-spinner";
-import "../components/ha-formfield";
-import "../components/ha-list-item";
-import "../components/ha-radio";
-import "../components/ha-textfield";
-import type { HaTextField } from "../components/ha-textfield";
-import "../components/map/ha-locations-editor";
-import type {
- HaLocationsEditor,
- MarkerLocation,
-} from "../components/map/ha-locations-editor";
-import type { ConfigUpdateValues } from "../data/core";
import { detectCoreConfig } from "../data/core";
-import type { OpenStreetMapPlace } from "../data/openstreetmap";
import { reverseGeocode, searchPlaces } from "../data/openstreetmap";
import { showConfirmationDialog } from "../dialogs/generic/show-dialog-box";
-import type { HomeAssistant } from "../types";
import { onBoardingStyles } from "./styles";
const AMSTERDAM: [number, number] = [52.3731339, 4.8903147];
diff --git a/src/onboarding/onboarding-restore-backup.ts b/src/onboarding/onboarding-restore-backup.ts
index 2aa26148a8..3c215861b3 100644
--- a/src/onboarding/onboarding-restore-backup.ts
+++ b/src/onboarding/onboarding-restore-backup.ts
@@ -1,23 +1,26 @@
+import type { LocalizeFunc } from "../common/translations/localize";
+import type { CloudStatus } from "../data/cloud";
import type { TemplateResult } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
+
+import "./onboarding-loading";
import "./restore-backup/onboarding-restore-backup-restore";
import "./restore-backup/onboarding-restore-backup-status";
-import type { LocalizeFunc } from "../common/translations/localize";
-import "./onboarding-loading";
-import { removeSearchParam } from "../common/url/search-params";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { storage } from "../common/decorators/storage";
import { navigate } from "../common/navigate";
-import { onBoardingStyles } from "./styles";
+import { removeSearchParam } from "../common/url/search-params";
+import { CLOUD_AGENT, type BackupContentExtended } from "../data/backup";
import {
fetchBackupOnboardingInfo,
type BackupOnboardingConfig,
type BackupOnboardingInfo,
} from "../data/backup_onboarding";
-import { CLOUD_AGENT, type BackupContentExtended } from "../data/backup";
-import { storage } from "../common/decorators/storage";
import { fetchHaCloudStatus, signOutHaCloud } from "../data/onboarding";
-import type { CloudStatus } from "../data/cloud";
import { showToast } from "../util/toast";
+import { onBoardingStyles } from "./styles";
const STATUS_INTERVAL_IN_MS = 5000;
diff --git a/src/onboarding/onboarding-welcome-link.ts b/src/onboarding/onboarding-welcome-link.ts
index 40e8503fd5..e352ad0e8d 100644
--- a/src/onboarding/onboarding-welcome-link.ts
+++ b/src/onboarding/onboarding-welcome-link.ts
@@ -1,10 +1,12 @@
import type { TemplateResult } from "lit";
-import { LitElement, css, html } from "lit";
-import { customElement, property } from "lit/decorators";
+
import "../components/ha-card";
import "../components/ha-ripple";
import "../components/ha-svg-icon";
+import { LitElement, css, html } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("onboarding-welcome-link")
class OnboardingWelcomeLink extends LitElement {
@property() public label!: string;
diff --git a/src/onboarding/onboarding-welcome-links.ts b/src/onboarding/onboarding-welcome-links.ts
index c52a3f075d..7b0d573565 100644
--- a/src/onboarding/onboarding-welcome-links.ts
+++ b/src/onboarding/onboarding-welcome-links.ts
@@ -1,13 +1,16 @@
-import { mdiAccountGroup, mdiFileDocument, mdiTabletCellphone } from "@mdi/js";
+import type { LocalizeFunc } from "../common/translations/localize";
+import type { HomeAssistant } from "../types";
import type { TemplateResult } from "lit";
+
+import "../components/ha-card";
+import "./onboarding-welcome-link";
+
+import { mdiAccountGroup, mdiFileDocument, mdiTabletCellphone } from "@mdi/js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property } from "lit/decorators";
-import type { LocalizeFunc } from "../common/translations/localize";
-import "../components/ha-card";
-import type { HomeAssistant } from "../types";
+
import { showAppDialog } from "./dialogs/show-app-dialog";
import { showCommunityDialog } from "./dialogs/show-community-dialog";
-import "./onboarding-welcome-link";
@customElement("onboarding-welcome-links")
class OnboardingWelcomeLinks extends LitElement {
diff --git a/src/onboarding/onboarding-welcome.ts b/src/onboarding/onboarding-welcome.ts
index 27187e2da9..1666d00d7c 100644
--- a/src/onboarding/onboarding-welcome.ts
+++ b/src/onboarding/onboarding-welcome.ts
@@ -1,15 +1,18 @@
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { LitElement, css, html } from "lit";
-import { customElement, property } from "lit/decorators";
import type { LocalizeFunc } from "../common/translations/localize";
import type { HomeAssistant } from "../types";
-import { onBoardingStyles } from "./styles";
-import { fireEvent } from "../common/dom/fire_event";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
import "../components/ha-button";
import "../components/ha-divider";
+import "../components/ha-icon-button-next";
import "../components/ha-md-list";
import "../components/ha-md-list-item";
-import "../components/ha-icon-button-next";
+
+import { LitElement, css, html } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../common/dom/fire_event";
+import { onBoardingStyles } from "./styles";
@customElement("onboarding-welcome")
class OnboardingWelcome extends LitElement {
diff --git a/src/onboarding/restore-backup/onboarding-restore-backup-cloud-login.ts b/src/onboarding/restore-backup/onboarding-restore-backup-cloud-login.ts
index c361672ccb..97cb93d218 100644
--- a/src/onboarding/restore-backup/onboarding-restore-backup-cloud-login.ts
+++ b/src/onboarding/restore-backup/onboarding-restore-backup-cloud-login.ts
@@ -1,15 +1,18 @@
-import { css, html, LitElement, nothing, type CSSResultGroup } from "lit";
-import { customElement, property, state, query } from "lit/decorators";
-import "../../panels/config/cloud/login/cloud-login";
-import "../../components/ha-icon-button-arrow-prev";
-import "../../components/ha-spinner";
import type { LocalizeFunc } from "../../common/translations/localize";
import type { BackupContentExtended } from "../../data/backup";
+import type { CloudForgotPasswordCard } from "../../panels/config/cloud/forgot-password/cloud-forgot-password-card";
+import type { CloudLogin } from "../../panels/config/cloud/login/cloud-login";
+
+import "../../components/ha-icon-button-arrow-prev";
+import "../../components/ha-spinner";
+import "../../panels/config/cloud/login/cloud-login";
+
+import { css, html, LitElement, nothing, type CSSResultGroup } from "lit";
+import { customElement, property, state, query } from "lit/decorators";
+
import { navigate } from "../../common/navigate";
import { removeSearchParam } from "../../common/url/search-params";
import { onBoardingStyles } from "../styles";
-import type { CloudLogin } from "../../panels/config/cloud/login/cloud-login";
-import type { CloudForgotPasswordCard } from "../../panels/config/cloud/forgot-password/cloud-forgot-password-card";
@customElement("onboarding-restore-backup-cloud-login")
class OnboardingRestoreBackupCloudLogin extends LitElement {
diff --git a/src/onboarding/restore-backup/onboarding-restore-backup-no-cloud-backup.ts b/src/onboarding/restore-backup/onboarding-restore-backup-no-cloud-backup.ts
index 7c1698db45..87c81581e7 100644
--- a/src/onboarding/restore-backup/onboarding-restore-backup-no-cloud-backup.ts
+++ b/src/onboarding/restore-backup/onboarding-restore-backup-no-cloud-backup.ts
@@ -1,8 +1,11 @@
-import { LitElement, html, css, type CSSResultGroup } from "lit";
-import { customElement, property } from "lit/decorators";
import type { LocalizeFunc } from "../../common/translations/localize";
+
import "../../components/ha-button";
import "../../components/ha-icon-button-arrow-prev";
+
+import { LitElement, html, css, type CSSResultGroup } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { fireEvent } from "../../common/dom/fire_event";
import { navigate } from "../../common/navigate";
import { removeSearchParam } from "../../common/url/search-params";
diff --git a/src/onboarding/restore-backup/onboarding-restore-backup-restore.ts b/src/onboarding/restore-backup/onboarding-restore-backup-restore.ts
index 96e1337e96..5fe8eab4aa 100644
--- a/src/onboarding/restore-backup/onboarding-restore-backup-restore.ts
+++ b/src/onboarding/restore-backup/onboarding-restore-backup-restore.ts
@@ -1,25 +1,28 @@
-import { css, html, LitElement, nothing, type CSSResultGroup } from "lit";
-import { customElement, property, state, query } from "lit/decorators";
-import "../../components/ha-button";
+import type { LocalizeFunc } from "../../common/translations/localize";
+import type { HaProgressButton } from "../../components/buttons/ha-progress-button";
+
+import "../../components/buttons/ha-progress-button";
import "../../components/ha-alert";
+import "../../components/ha-button";
+import "../../components/ha-icon-button-arrow-prev";
import "../../components/ha-md-list";
import "../../components/ha-md-list-item";
-import "../../components/buttons/ha-progress-button";
-import "../../components/ha-icon-button-arrow-prev";
import "../../components/ha-password-field";
import "../../panels/config/backup/components/ha-backup-data-picker";
import "../../panels/config/backup/components/ha-backup-formfield-label";
-import type { LocalizeFunc } from "../../common/translations/localize";
+
+import { css, html, LitElement, nothing, type CSSResultGroup } from "lit";
+import { customElement, property, state, query } from "lit/decorators";
+
+import { formatDateTimeWithBrowserDefaults } from "../../common/datetime/format_date_time";
+import { fireEvent } from "../../common/dom/fire_event";
import {
getPreferredAgentForDownload,
type BackupContentExtended,
type BackupData,
} from "../../data/backup";
import { restoreOnboardingBackup } from "../../data/backup_onboarding";
-import type { HaProgressButton } from "../../components/buttons/ha-progress-button";
-import { fireEvent } from "../../common/dom/fire_event";
import { onBoardingStyles } from "../styles";
-import { formatDateTimeWithBrowserDefaults } from "../../common/datetime/format_date_time";
@customElement("onboarding-restore-backup-restore")
class OnboardingRestoreBackupRestore extends LitElement {
diff --git a/src/onboarding/restore-backup/onboarding-restore-backup-status.ts b/src/onboarding/restore-backup/onboarding-restore-backup-status.ts
index 2a7f8c8e0c..cf6fc1ac2f 100644
--- a/src/onboarding/restore-backup/onboarding-restore-backup-status.ts
+++ b/src/onboarding/restore-backup/onboarding-restore-backup-status.ts
@@ -1,12 +1,15 @@
-import "@material/mwc-linear-progress/mwc-linear-progress";
-import { css, html, LitElement, nothing, type CSSResultGroup } from "lit";
-import { customElement, property } from "lit/decorators";
-import "../../components/ha-alert";
-import "../../components/ha-button";
import type { LocalizeFunc } from "../../common/translations/localize";
import type { BackupOnboardingInfo } from "../../data/backup_onboarding";
-import { onBoardingStyles } from "../styles";
+
+import "../../components/ha-alert";
+import "../../components/ha-button";
+import "@material/mwc-linear-progress/mwc-linear-progress";
+
+import { css, html, LitElement, nothing, type CSSResultGroup } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { fireEvent } from "../../common/dom/fire_event";
+import { onBoardingStyles } from "../styles";
@customElement("onboarding-restore-backup-status")
class OnboardingRestoreBackupStatus extends LitElement {
diff --git a/src/onboarding/restore-backup/onboarding-restore-backup-upload.ts b/src/onboarding/restore-backup/onboarding-restore-backup-upload.ts
index 789b48cd86..60215120d1 100644
--- a/src/onboarding/restore-backup/onboarding-restore-backup-upload.ts
+++ b/src/onboarding/restore-backup/onboarding-restore-backup-upload.ts
@@ -1,21 +1,24 @@
+import type { LocalizeFunc } from "../../common/translations/localize";
+
+import "../../components/ha-alert";
+import "../../components/ha-file-upload";
+import "../../components/ha-icon-button-arrow-prev";
+
import { mdiFolderUpload } from "@mdi/js";
import { css, html, LitElement, nothing, type CSSResultGroup } from "lit";
import { customElement, property, state } from "lit/decorators";
-import "../../components/ha-file-upload";
-import "../../components/ha-alert";
-import "../../components/ha-icon-button-arrow-prev";
+
import { fireEvent, type HASSDomEvent } from "../../common/dom/fire_event";
-import { showAlertDialog } from "../../dialogs/generic/show-dialog-box";
+import { navigate } from "../../common/navigate";
+import { removeSearchParam } from "../../common/url/search-params";
import {
CORE_LOCAL_AGENT,
HASSIO_LOCAL_AGENT,
SUPPORTED_UPLOAD_FORMAT,
} from "../../data/backup";
-import type { LocalizeFunc } from "../../common/translations/localize";
import { uploadOnboardingBackup } from "../../data/backup_onboarding";
+import { showAlertDialog } from "../../dialogs/generic/show-dialog-box";
import { onBoardingStyles } from "../styles";
-import { navigate } from "../../common/navigate";
-import { removeSearchParam } from "../../common/url/search-params";
declare global {
interface HASSDomEvents {
diff --git a/src/panels/calendar/confirm-event-dialog-box.ts b/src/panels/calendar/confirm-event-dialog-box.ts
index bea8dc0b05..3c4ac50e88 100644
--- a/src/panels/calendar/confirm-event-dialog-box.ts
+++ b/src/panels/calendar/confirm-event-dialog-box.ts
@@ -1,13 +1,16 @@
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
+import type { HomeAssistant } from "../../types";
+import type { ConfirmEventDialogBoxParams } from "./show-confirm-event-dialog-box";
+
+import "../../components/ha-button";
import "../../components/ha-dialog";
import "../../components/ha-svg-icon";
import "../../components/ha-switch";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
import { RecurrenceRange } from "../../data/calendar";
-import type { HomeAssistant } from "../../types";
-import type { ConfirmEventDialogBoxParams } from "./show-confirm-event-dialog-box";
-import "../../components/ha-button";
@customElement("confirm-event-dialog-box")
class ConfirmEventDialogBox extends LitElement {
diff --git a/src/panels/calendar/dialog-calendar-event-detail.ts b/src/panels/calendar/dialog-calendar-event-detail.ts
index 4644b74fa3..34ff6c38c8 100644
--- a/src/panels/calendar/dialog-calendar-event-detail.ts
+++ b/src/panels/calendar/dialog-calendar-event-detail.ts
@@ -1,30 +1,33 @@
-import "@material/mwc-button";
-import { mdiCalendarClock } from "@mdi/js";
-import { toDate } from "date-fns-tz";
-import { addDays, isSameDay } from "date-fns";
+import type { CalendarEventMutableParams } from "../../data/calendar";
+import type { HomeAssistant } from "../../types";
+import type { CalendarEventDetailDialogParams } from "./show-dialog-calendar-event-detail";
import type { CSSResultGroup } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { property, state } from "lit/decorators";
-import { formatDate } from "../../common/datetime/format_date";
-import { formatDateTime } from "../../common/datetime/format_date_time";
-import { formatTime } from "../../common/datetime/format_time";
-import { fireEvent } from "../../common/dom/fire_event";
-import { isDate } from "../../common/string/is_date";
+
import "../../components/entity/state-info";
import "../../components/ha-alert";
import "../../components/ha-date-input";
-import { createCloseHeading } from "../../components/ha-dialog";
import "../../components/ha-time-input";
-import type { CalendarEventMutableParams } from "../../data/calendar";
+import "../lovelace/components/hui-generic-entity-row";
+import "@material/mwc-button";
+
+import { mdiCalendarClock } from "@mdi/js";
+import { addDays, isSameDay } from "date-fns";
+import { toDate } from "date-fns-tz";
+import { LitElement, css, html, nothing } from "lit";
+import { property, state } from "lit/decorators";
+
+import { formatDate } from "../../common/datetime/format_date";
+import { formatDateTime } from "../../common/datetime/format_date_time";
+import { formatTime } from "../../common/datetime/format_time";
+import { resolveTimeZone } from "../../common/datetime/resolve-time-zone";
+import { fireEvent } from "../../common/dom/fire_event";
+import { isDate } from "../../common/string/is_date";
+import { createCloseHeading } from "../../components/ha-dialog";
import { deleteCalendarEvent } from "../../data/calendar";
import { haStyleDialog } from "../../resources/styles";
-import type { HomeAssistant } from "../../types";
-import "../lovelace/components/hui-generic-entity-row";
import { renderRRuleAsText } from "./recurrence";
import { showConfirmEventDialog } from "./show-confirm-event-dialog-box";
-import type { CalendarEventDetailDialogParams } from "./show-dialog-calendar-event-detail";
import { showCalendarEventEditDialog } from "./show-dialog-calendar-event-editor";
-import { resolveTimeZone } from "../../common/datetime/resolve-time-zone";
class DialogCalendarEventDetail extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/calendar/dialog-calendar-event-editor.ts b/src/panels/calendar/dialog-calendar-event-editor.ts
index eeb6560a83..aa4d217297 100644
--- a/src/panels/calendar/dialog-calendar-event-editor.ts
+++ b/src/panels/calendar/dialog-calendar-event-editor.ts
@@ -1,5 +1,21 @@
+import type { CalendarEventMutableParams } from "../../data/calendar";
+import type { HomeAssistant } from "../../types";
+import type { CalendarEventEditDialogParams } from "./show-dialog-calendar-event-editor";
+import type { HassEntity } from "home-assistant-js-websocket";
+import type { CSSResultGroup } from "lit";
+
+import "../../components/entity/ha-entity-picker";
+import "../../components/ha-alert";
+import "../../components/ha-date-input";
+import "../../components/ha-formfield";
+import "../../components/ha-switch";
+import "../../components/ha-textarea";
+import "../../components/ha-textfield";
+import "../../components/ha-time-input";
+import "../lovelace/components/hui-generic-entity-row";
+import "./ha-recurrence-rule-editor";
import "@material/mwc-button";
-import { formatInTimeZone, toDate } from "date-fns-tz";
+
import {
addDays,
addHours,
@@ -7,26 +23,17 @@ import {
differenceInMilliseconds,
startOfHour,
} from "date-fns";
-import type { HassEntity } from "home-assistant-js-websocket";
-import type { CSSResultGroup } from "lit";
+import { formatInTimeZone, toDate } from "date-fns-tz";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { resolveTimeZone } from "../../common/datetime/resolve-time-zone";
import { fireEvent } from "../../common/dom/fire_event";
import { computeStateDomain } from "../../common/entity/compute_state_domain";
import { supportsFeature } from "../../common/entity/supports-feature";
import { isDate } from "../../common/string/is_date";
-import "../../components/entity/ha-entity-picker";
-import "../../components/ha-alert";
-import "../../components/ha-date-input";
import { createCloseHeading } from "../../components/ha-dialog";
-import "../../components/ha-formfield";
-import "../../components/ha-switch";
-import "../../components/ha-textarea";
-import "../../components/ha-textfield";
-import "../../components/ha-time-input";
-import type { CalendarEventMutableParams } from "../../data/calendar";
import {
CalendarEntityFeature,
RecurrenceRange,
@@ -35,11 +42,7 @@ import {
updateCalendarEvent,
} from "../../data/calendar";
import { haStyleDialog } from "../../resources/styles";
-import type { HomeAssistant } from "../../types";
-import "../lovelace/components/hui-generic-entity-row";
-import "./ha-recurrence-rule-editor";
import { showConfirmEventDialog } from "./show-confirm-event-dialog-box";
-import type { CalendarEventEditDialogParams } from "./show-dialog-calendar-event-editor";
const CALENDAR_DOMAINS = ["calendar"];
diff --git a/src/panels/calendar/ha-full-calendar.ts b/src/panels/calendar/ha-full-calendar.ts
index 9df628d11f..83b4fc665d 100644
--- a/src/panels/calendar/ha-full-calendar.ts
+++ b/src/panels/calendar/ha-full-calendar.ts
@@ -1,11 +1,29 @@
+import type { LocalizeFunc } from "../../common/translations/localize";
+import type {
+ Calendar as CalendarData,
+ CalendarEvent,
+} from "../../data/calendar";
+import type {
+ CalendarViewChanged,
+ FullCalendarView,
+ HomeAssistant,
+ ToggleButton,
+} from "../../types";
import type { CalendarOptions } from "@fullcalendar/core";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../components/ha-button-toggle-group";
+import "../../components/ha-fab";
+import "../../components/ha-icon-button-next";
+import "../../components/ha-icon-button-prev";
+import "@material/mwc-button";
+
import { Calendar } from "@fullcalendar/core";
import allLocales from "@fullcalendar/core/locales-all";
import dayGridPlugin from "@fullcalendar/daygrid";
import interactionPlugin from "@fullcalendar/interaction";
import listPlugin from "@fullcalendar/list";
import { ResizeController } from "@lit-labs/observers/resize-controller";
-import "@material/mwc-button";
import {
mdiPlus,
mdiViewAgenda,
@@ -13,32 +31,17 @@ import {
mdiViewModule,
mdiViewWeek,
} from "@mdi/js";
-import type { CSSResultGroup, PropertyValues } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoize from "memoize-one";
+
import { firstWeekdayIndex } from "../../common/datetime/first_weekday";
import { useAmPm } from "../../common/datetime/use_am_pm";
import { fireEvent } from "../../common/dom/fire_event";
import { supportsFeature } from "../../common/entity/supports-feature";
-import type { LocalizeFunc } from "../../common/translations/localize";
-import "../../components/ha-button-toggle-group";
-import "../../components/ha-fab";
-import "../../components/ha-icon-button-next";
-import "../../components/ha-icon-button-prev";
-import type {
- Calendar as CalendarData,
- CalendarEvent,
-} from "../../data/calendar";
import { CalendarEntityFeature } from "../../data/calendar";
import { TimeZone } from "../../data/translation";
import { haStyle } from "../../resources/styles";
-import type {
- CalendarViewChanged,
- FullCalendarView,
- HomeAssistant,
- ToggleButton,
-} from "../../types";
import { showCalendarEventDetailDialog } from "./show-dialog-calendar-event-detail";
import { showCalendarEventEditDialog } from "./show-dialog-calendar-event-editor";
diff --git a/src/panels/calendar/ha-panel-calendar.ts b/src/panels/calendar/ha-panel-calendar.ts
index 21583deb77..ff61dc7a31 100644
--- a/src/panels/calendar/ha-panel-calendar.ts
+++ b/src/panels/calendar/ha-panel-calendar.ts
@@ -1,31 +1,34 @@
-import { ResizeController } from "@lit-labs/observers/resize-controller";
-import "@material/mwc-list";
-import type { RequestSelectedDetail } from "@material/mwc-list/mwc-list-item";
-import { mdiChevronDown, mdiPlus, mdiRefresh } from "@mdi/js";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { styleMap } from "lit/directives/style-map";
-import { storage } from "../../common/decorators/storage";
import type { HASSDomEvent } from "../../common/dom/fire_event";
-import { computeStateName } from "../../common/entity/compute_state_name";
+import type { HaListItem } from "../../components/ha-list-item";
+import type { Calendar, CalendarEvent } from "../../data/calendar";
+import type { CalendarViewChanged, HomeAssistant } from "../../types";
+import type { RequestSelectedDetail } from "@material/mwc-list/mwc-list-item";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
import "../../components/ha-button";
import "../../components/ha-button-menu";
import "../../components/ha-card";
import "../../components/ha-check-list-item";
import "../../components/ha-icon-button";
-import type { HaListItem } from "../../components/ha-list-item";
import "../../components/ha-menu-button";
import "../../components/ha-state-icon";
import "../../components/ha-svg-icon";
import "../../components/ha-two-pane-top-app-bar-fixed";
-import type { Calendar, CalendarEvent } from "../../data/calendar";
+import "./ha-full-calendar";
+import "@material/mwc-list";
+
+import { ResizeController } from "@lit-labs/observers/resize-controller";
+import { mdiChevronDown, mdiPlus, mdiRefresh } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { styleMap } from "lit/directives/style-map";
+
+import { storage } from "../../common/decorators/storage";
+import { computeStateName } from "../../common/entity/compute_state_name";
import { fetchCalendarEvents, getCalendars } from "../../data/calendar";
import { fetchIntegrationManifest } from "../../data/integration";
import { showConfigFlowDialog } from "../../dialogs/config-flow/show-dialog-config-flow";
import { haStyle } from "../../resources/styles";
-import type { CalendarViewChanged, HomeAssistant } from "../../types";
-import "./ha-full-calendar";
@customElement("ha-panel-calendar")
class PanelCalendar extends LitElement {
diff --git a/src/panels/calendar/ha-recurrence-rule-editor.ts b/src/panels/calendar/ha-recurrence-rule-editor.ts
index f5aa8c76cf..f189d64307 100644
--- a/src/panels/calendar/ha-recurrence-rule-editor.ts
+++ b/src/panels/calendar/ha-recurrence-rule-editor.ts
@@ -1,26 +1,29 @@
-import type { SelectedDetail } from "@material/mwc-list";
-import { formatInTimeZone, toDate } from "date-fns-tz";
-import type { PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import type { Options, WeekdayStr, ByWeekday } from "rrule";
-import { RRule, Weekday } from "rrule";
-import { firstWeekdayIndex } from "../../common/datetime/first_weekday";
-import { stopPropagation } from "../../common/dom/stop_propagation";
import type { LocalizeKeys } from "../../common/translations/localize";
-import "../../components/chips/ha-chip-set";
-import "../../components/chips/ha-filter-chip";
-import "../../components/ha-date-input";
-import "../../components/ha-list-item";
-import "../../components/ha-select";
import type { HaSelect } from "../../components/ha-select";
-import "../../components/ha-textfield";
import type { HomeAssistant } from "../../types";
import type {
MonthlyRepeatItem,
RepeatEnd,
RepeatFrequency,
} from "./recurrence";
+import type { SelectedDetail } from "@material/mwc-list";
+import type { PropertyValues } from "lit";
+import type { Options, WeekdayStr, ByWeekday } from "rrule";
+
+import "../../components/chips/ha-chip-set";
+import "../../components/chips/ha-filter-chip";
+import "../../components/ha-date-input";
+import "../../components/ha-list-item";
+import "../../components/ha-select";
+import "../../components/ha-textfield";
+
+import { formatInTimeZone, toDate } from "date-fns-tz";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import { RRule, Weekday } from "rrule";
+
+import { firstWeekdayIndex } from "../../common/datetime/first_weekday";
+import { stopPropagation } from "../../common/dom/stop_propagation";
import {
DEFAULT_COUNT,
convertFrequency,
diff --git a/src/panels/calendar/recurrence.ts b/src/panels/calendar/recurrence.ts
index a42300c5da..1c6b6783fe 100644
--- a/src/panels/calendar/recurrence.ts
+++ b/src/panels/calendar/recurrence.ts
@@ -1,3 +1,6 @@
+import type { HomeAssistant } from "../../types";
+import type { Options, WeekdayStr } from "rrule";
+
// Library for converting back and forth from values use by this webcomponent
// and the values defined by rrule.js.
import {
@@ -10,13 +13,12 @@ import {
isLastDayOfMonth,
isSameMonth,
} from "date-fns";
-import type { Options, WeekdayStr } from "rrule";
import { Frequency, RRule, Weekday } from "rrule";
+
import { formatDate } from "../../common/datetime/format_date";
import { capitalizeFirstLetter } from "../../common/string/capitalize-first-letter";
import { dayNames } from "../../common/translations/day_names";
import { monthNames } from "../../common/translations/month_names";
-import type { HomeAssistant } from "../../types";
export type RepeatFrequency =
| "none"
diff --git a/src/panels/calendar/show-confirm-event-dialog-box.ts b/src/panels/calendar/show-confirm-event-dialog-box.ts
index 934e4dfeab..9c4efa967e 100644
--- a/src/panels/calendar/show-confirm-event-dialog-box.ts
+++ b/src/panels/calendar/show-confirm-event-dialog-box.ts
@@ -1,6 +1,7 @@
-import type { TemplateResult } from "lit";
-import { fireEvent } from "../../common/dom/fire_event";
import type { RecurrenceRange } from "../../data/calendar";
+import type { TemplateResult } from "lit";
+
+import { fireEvent } from "../../common/dom/fire_event";
export interface ConfirmEventDialogBoxParams {
confirmText?: string;
diff --git a/src/panels/calendar/show-dialog-calendar-event-detail.ts b/src/panels/calendar/show-dialog-calendar-event-detail.ts
index c47676c343..3ff6755077 100644
--- a/src/panels/calendar/show-dialog-calendar-event-detail.ts
+++ b/src/panels/calendar/show-dialog-calendar-event-detail.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../common/dom/fire_event";
import type { CalendarEventData } from "../../data/calendar";
+import { fireEvent } from "../../common/dom/fire_event";
+
export interface CalendarEventDetailDialogParams {
calendarId: string;
entry: CalendarEventData;
diff --git a/src/panels/calendar/show-dialog-calendar-event-editor.ts b/src/panels/calendar/show-dialog-calendar-event-editor.ts
index 96bc910fb4..0db57da38f 100644
--- a/src/panels/calendar/show-dialog-calendar-event-editor.ts
+++ b/src/panels/calendar/show-dialog-calendar-event-editor.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../common/dom/fire_event";
import type { CalendarEventData } from "../../data/calendar";
+import { fireEvent } from "../../common/dom/fire_event";
+
export interface CalendarEventEditDialogParams {
calendarId?: string;
selectedDate?: Date; // When provided is used as the pre-filled date for the event creation dialog
diff --git a/src/panels/config/application_credentials/dialog-add-application-credential.ts b/src/panels/config/application_credentials/dialog-add-application-credential.ts
index d1bba908ee..fd905e0c48 100644
--- a/src/panels/config/application_credentials/dialog-add-application-credential.ts
+++ b/src/panels/config/application_credentials/dialog-add-application-credential.ts
@@ -1,32 +1,35 @@
-import "@material/mwc-list/mwc-list-item";
-import { mdiOpenInNew } from "@mdi/js";
-import type { ComboBoxLitRenderer } from "@vaadin/combo-box/lit";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../common/dom/fire_event";
-import "../../../components/ha-alert";
-import "../../../components/ha-button";
-import "../../../components/ha-spinner";
-import "../../../components/ha-combo-box";
-import { createCloseHeading } from "../../../components/ha-dialog";
-import "../../../components/ha-markdown";
-import "../../../components/ha-password-field";
-import "../../../components/ha-textfield";
import type {
ApplicationCredential,
ApplicationCredentialsConfig,
} from "../../../data/application_credential";
+import type { IntegrationManifest } from "../../../data/integration";
+import type { HomeAssistant } from "../../../types";
+import type { AddApplicationCredentialDialogParams } from "./show-dialog-add-application-credential";
+import type { ComboBoxLitRenderer } from "@vaadin/combo-box/lit";
+import type { CSSResultGroup } from "lit";
+
+import "../../../components/ha-alert";
+import "../../../components/ha-button";
+import "../../../components/ha-combo-box";
+import "../../../components/ha-markdown";
+import "../../../components/ha-password-field";
+import "../../../components/ha-spinner";
+import "../../../components/ha-textfield";
+import "@material/mwc-list/mwc-list-item";
+
+import { mdiOpenInNew } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { createCloseHeading } from "../../../components/ha-dialog";
import {
createApplicationCredential,
fetchApplicationCredentialsConfig,
} from "../../../data/application_credential";
-import type { IntegrationManifest } from "../../../data/integration";
import { domainToName } from "../../../data/integration";
import { haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { documentationUrl } from "../../../util/documentation-url";
-import type { AddApplicationCredentialDialogParams } from "./show-dialog-add-application-credential";
interface Domain {
id: string;
diff --git a/src/panels/config/application_credentials/ha-config-application-credentials.ts b/src/panels/config/application_credentials/ha-config-application-credentials.ts
index cb2fa6c5db..25025deded 100644
--- a/src/panels/config/application_credentials/ha-config-application-credentials.ts
+++ b/src/panels/config/application_credentials/ha-config-application-credentials.ts
@@ -1,8 +1,3 @@
-import { mdiDelete, mdiPlus } from "@mdi/js";
-import type { PropertyValues } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
import type { HASSDomEvent } from "../../../common/dom/fire_event";
import type { LocalizeFunc } from "../../../common/translations/localize";
import type {
@@ -10,11 +5,23 @@ import type {
SelectionChangedEvent,
SortingChangedEvent,
} from "../../../components/data-table/ha-data-table";
+import type { ApplicationCredential } from "../../../data/application_credential";
+import type { HaTabsSubpageDataTable } from "../../../layouts/hass-tabs-subpage-data-table";
+import type { HomeAssistant, Route } from "../../../types";
+import type { PropertyValues } from "lit";
+
import "../../../components/ha-fab";
import "../../../components/ha-help-tooltip";
-import "../../../components/ha-svg-icon";
import "../../../components/ha-icon-overflow-menu";
-import type { ApplicationCredential } from "../../../data/application_credential";
+import "../../../components/ha-svg-icon";
+import "../../../layouts/hass-tabs-subpage-data-table";
+
+import { mdiDelete, mdiPlus } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { storage } from "../../../common/decorators/storage";
import {
deleteApplicationCredential,
fetchApplicationCredentials,
@@ -24,12 +31,8 @@ import {
showAlertDialog,
showConfirmationDialog,
} from "../../../dialogs/generic/show-dialog-box";
-import "../../../layouts/hass-tabs-subpage-data-table";
-import type { HaTabsSubpageDataTable } from "../../../layouts/hass-tabs-subpage-data-table";
-import type { HomeAssistant, Route } from "../../../types";
import { configSections } from "../ha-panel-config";
import { showAddApplicationCredentialDialog } from "./show-dialog-add-application-credential";
-import { storage } from "../../../common/decorators/storage";
@customElement("ha-config-application-credentials")
export class HaConfigApplicationCredentials extends LitElement {
diff --git a/src/panels/config/application_credentials/show-dialog-add-application-credential.ts b/src/panels/config/application_credentials/show-dialog-add-application-credential.ts
index 78c1668695..14823fbbc5 100644
--- a/src/panels/config/application_credentials/show-dialog-add-application-credential.ts
+++ b/src/panels/config/application_credentials/show-dialog-add-application-credential.ts
@@ -1,7 +1,8 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type { ApplicationCredential } from "../../../data/application_credential";
import type { IntegrationManifest } from "../../../data/integration";
+import { fireEvent } from "../../../common/dom/fire_event";
+
export interface AddApplicationCredentialDialogParams {
applicationCredentialAddedCallback: (
applicationCredential: ApplicationCredential
diff --git a/src/panels/config/areas/dialog-area-registry-detail.ts b/src/panels/config/areas/dialog-area-registry-detail.ts
index 2fdfefeb88..da98c1d839 100644
--- a/src/panels/config/areas/dialog-area-registry-detail.ts
+++ b/src/panels/config/areas/dialog-area-registry-detail.ts
@@ -1,34 +1,37 @@
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { property, state } from "lit/decorators";
-import type { HassEntity } from "home-assistant-js-websocket";
-import { fireEvent } from "../../../common/dom/fire_event";
-import "../../../components/ha-alert";
-import "../../../components/ha-aliases-editor";
-import "../../../components/ha-picture-upload";
-import type { HaPictureUpload } from "../../../components/ha-picture-upload";
-import "../../../components/ha-settings-row";
-import "../../../components/ha-icon-picker";
-import "../../../components/ha-floor-picker";
-import "../../../components/entity/ha-entity-picker";
import type { HaEntityPicker } from "../../../components/entity/ha-entity-picker";
-import "../../../components/ha-textfield";
-import "../../../components/ha-labels-picker";
+import type { HaPictureUpload } from "../../../components/ha-picture-upload";
import type {
AreaRegistryEntry,
AreaRegistryEntryMutableParams,
} from "../../../data/area_registry";
-import { deleteAreaRegistryEntry } from "../../../data/area_registry";
import type { CropOptions } from "../../../dialogs/image-cropper-dialog/show-image-cropper-dialog";
-import { haStyleDialog } from "../../../resources/styles";
import type { HomeAssistant, ValueChangedEvent } from "../../../types";
import type { AreaRegistryDetailDialogParams } from "./show-dialog-area-registry-detail";
+import type { HassEntity } from "home-assistant-js-websocket";
+import type { CSSResultGroup } from "lit";
+
+import "../../../components/entity/ha-entity-picker";
+import "../../../components/ha-alert";
+import "../../../components/ha-aliases-editor";
+import "../../../components/ha-floor-picker";
+import "../../../components/ha-icon-picker";
+import "../../../components/ha-labels-picker";
+import "../../../components/ha-picture-upload";
+import "../../../components/ha-settings-row";
+import "../../../components/ha-textfield";
+
+import { css, html, LitElement, nothing } from "lit";
+import { property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { createCloseHeading } from "../../../components/ha-dialog";
+import { deleteAreaRegistryEntry } from "../../../data/area_registry";
import {
SENSOR_DEVICE_CLASS_HUMIDITY,
SENSOR_DEVICE_CLASS_TEMPERATURE,
} from "../../../data/sensor";
import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box";
-import { createCloseHeading } from "../../../components/ha-dialog";
+import { haStyleDialog } from "../../../resources/styles";
const cropOptions: CropOptions = {
round: false,
diff --git a/src/panels/config/areas/dialog-floor-registry-detail.ts b/src/panels/config/areas/dialog-floor-registry-detail.ts
index 6929c9ba75..d991aa75b9 100644
--- a/src/panels/config/areas/dialog-floor-registry-detail.ts
+++ b/src/panels/config/areas/dialog-floor-registry-detail.ts
@@ -1,32 +1,35 @@
-import "@material/mwc-button";
-import "@material/mwc-list/mwc-list";
-import { mdiTextureBox } from "@mdi/js";
+import type {
+ FloorRegistryEntry,
+ FloorRegistryEntryMutableParams,
+} from "../../../data/floor_registry";
+import type { HomeAssistant } from "../../../types";
+import type { FloorRegistryDetailDialogParams } from "./show-dialog-floor-registry-detail";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { property, state } from "lit/decorators";
-import { repeat } from "lit/directives/repeat";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../common/dom/fire_event";
+
import "../../../components/chips/ha-chip-set";
import "../../../components/chips/ha-input-chip";
import "../../../components/ha-alert";
import "../../../components/ha-aliases-editor";
-import { createCloseHeading } from "../../../components/ha-dialog";
+import "../../../components/ha-area-picker";
import "../../../components/ha-icon-picker";
import "../../../components/ha-picture-upload";
import "../../../components/ha-settings-row";
import "../../../components/ha-svg-icon";
import "../../../components/ha-textfield";
-import "../../../components/ha-area-picker";
-import type {
- FloorRegistryEntry,
- FloorRegistryEntryMutableParams,
-} from "../../../data/floor_registry";
-import { haStyle, haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
-import type { FloorRegistryDetailDialogParams } from "./show-dialog-floor-registry-detail";
-import { showAreaRegistryDetailDialog } from "./show-dialog-area-registry-detail";
+import "@material/mwc-button";
+import "@material/mwc-list/mwc-list";
+
+import { mdiTextureBox } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { property, state } from "lit/decorators";
+import { repeat } from "lit/directives/repeat";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { createCloseHeading } from "../../../components/ha-dialog";
import { updateAreaRegistryEntry } from "../../../data/area_registry";
+import { haStyle, haStyleDialog } from "../../../resources/styles";
+import { showAreaRegistryDetailDialog } from "./show-dialog-area-registry-detail";
class DialogFloorDetail extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/config/areas/ha-config-area-page.ts b/src/panels/config/areas/ha-config-area-page.ts
index 1297511018..e55b48af57 100644
--- a/src/panels/config/areas/ha-config-area-page.ts
+++ b/src/panels/config/areas/ha-config-area-page.ts
@@ -1,14 +1,34 @@
-import { consume } from "@lit-labs/context";
+import type { AreaRegistryEntry } from "../../../data/area_registry";
+import type { AutomationEntity } from "../../../data/automation";
+import type { DeviceRegistryEntry } from "../../../data/device_registry";
+import type { EntityRegistryEntry } from "../../../data/entity_registry";
+import type { SceneEntity } from "../../../data/scene";
+import type { ScriptEntity } from "../../../data/script";
+import type { RelatedResult } from "../../../data/search";
+import type { HomeAssistant } from "../../../types";
+import type { HassEntity } from "home-assistant-js-websocket/dist/types";
+import type { CSSResultGroup } from "lit";
+
+import "../../../components/ha-button-menu";
+import "../../../components/ha-card";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-icon-next";
+import "../../../components/ha-list-item";
+import "../../../components/ha-tooltip";
+import "../../../layouts/hass-error-screen";
+import "../../../layouts/hass-subpage";
+import "../../logbook/ha-logbook";
import "@material/mwc-button";
import "@material/mwc-list";
import "@material/mwc-list/mwc-list-item";
+
+import { consume } from "@lit-labs/context";
import { mdiDelete, mdiDotsVertical, mdiImagePlus, mdiPencil } from "@mdi/js";
-import type { HassEntity } from "home-assistant-js-websocket/dist/types";
-import type { CSSResultGroup } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
import memoizeOne from "memoize-one";
+
import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import { computeDeviceNameDisplay } from "../../../common/entity/compute_device_name";
import { computeDomain } from "../../../common/entity/compute_domain";
@@ -16,37 +36,20 @@ import { computeStateName } from "../../../common/entity/compute_state_name";
import { caseInsensitiveStringCompare } from "../../../common/string/compare";
import { groupBy } from "../../../common/util/group-by";
import { afterNextRender } from "../../../common/util/render-status";
-import "../../../components/ha-button-menu";
-import "../../../components/ha-card";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-icon-next";
-import "../../../components/ha-list-item";
-import "../../../components/ha-tooltip";
-import type { AreaRegistryEntry } from "../../../data/area_registry";
import {
deleteAreaRegistryEntry,
updateAreaRegistryEntry,
} from "../../../data/area_registry";
-import type { AutomationEntity } from "../../../data/automation";
import { fullEntitiesContext } from "../../../data/context";
-import type { DeviceRegistryEntry } from "../../../data/device_registry";
import { sortDeviceRegistryByName } from "../../../data/device_registry";
-import type { EntityRegistryEntry } from "../../../data/entity_registry";
import {
computeEntityRegistryName,
sortEntityRegistryByName,
} from "../../../data/entity_registry";
-import type { SceneEntity } from "../../../data/scene";
-import type { ScriptEntity } from "../../../data/script";
-import type { RelatedResult } from "../../../data/search";
import { findRelated } from "../../../data/search";
import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box";
import { showMoreInfoDialog } from "../../../dialogs/more-info/show-ha-more-info-dialog";
-import "../../../layouts/hass-error-screen";
-import "../../../layouts/hass-subpage";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
-import "../../logbook/ha-logbook";
import {
loadAreaRegistryDetailDialog,
showAreaRegistryDetailDialog,
diff --git a/src/panels/config/areas/ha-config-areas-dashboard.ts b/src/panels/config/areas/ha-config-areas-dashboard.ts
index ede068b9ff..d1a036bb73 100644
--- a/src/panels/config/areas/ha-config-areas-dashboard.ts
+++ b/src/panels/config/areas/ha-config-areas-dashboard.ts
@@ -1,4 +1,16 @@
+import type { AreaRegistryEntry } from "../../../data/area_registry";
+import type { FloorRegistryEntry } from "../../../data/floor_registry";
+import type { HomeAssistant, Route } from "../../../types";
import type { ActionDetail } from "@material/mwc-list";
+
+import "../../../components/ha-fab";
+import "../../../components/ha-floor-icon";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-sortable";
+import "../../../components/ha-svg-icon";
+import "../../../layouts/hass-tabs-subpage";
+import "../ha-config-section";
+
import {
mdiDelete,
mdiDotsVertical,
@@ -17,18 +29,12 @@ import {
import { customElement, property, state } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
import memoizeOne from "memoize-one";
+
import { formatListWithAnds } from "../../../common/string/format-list";
-import "../../../components/ha-fab";
-import "../../../components/ha-floor-icon";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-sortable";
-import "../../../components/ha-svg-icon";
-import type { AreaRegistryEntry } from "../../../data/area_registry";
import {
createAreaRegistryEntry,
updateAreaRegistryEntry,
} from "../../../data/area_registry";
-import type { FloorRegistryEntry } from "../../../data/floor_registry";
import {
createFloorRegistryEntry,
deleteFloorRegistryEntry,
@@ -39,9 +45,6 @@ import {
showAlertDialog,
showConfirmationDialog,
} from "../../../dialogs/generic/show-dialog-box";
-import "../../../layouts/hass-tabs-subpage";
-import type { HomeAssistant, Route } from "../../../types";
-import "../ha-config-section";
import { configSections } from "../ha-panel-config";
import {
loadAreaRegistryDetailDialog,
diff --git a/src/panels/config/areas/ha-config-areas.ts b/src/panels/config/areas/ha-config-areas.ts
index 480d2f09a9..946b0f2436 100644
--- a/src/panels/config/areas/ha-config-areas.ts
+++ b/src/panels/config/areas/ha-config-areas.ts
@@ -1,10 +1,13 @@
-import { customElement, property } from "lit/decorators";
import type { RouterOptions } from "../../../layouts/hass-router-page";
-import { HassRouterPage } from "../../../layouts/hass-router-page";
import type { HomeAssistant } from "../../../types";
+
import "./ha-config-area-page";
import "./ha-config-areas-dashboard";
+import { customElement, property } from "lit/decorators";
+
+import { HassRouterPage } from "../../../layouts/hass-router-page";
+
@customElement("ha-config-areas")
class HaConfigAreas extends HassRouterPage {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/config/areas/show-dialog-area-registry-detail.ts b/src/panels/config/areas/show-dialog-area-registry-detail.ts
index ca12d2b87a..1a24543ade 100644
--- a/src/panels/config/areas/show-dialog-area-registry-detail.ts
+++ b/src/panels/config/areas/show-dialog-area-registry-detail.ts
@@ -1,9 +1,10 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type {
AreaRegistryEntry,
AreaRegistryEntryMutableParams,
} from "../../../data/area_registry";
+import { fireEvent } from "../../../common/dom/fire_event";
+
export interface AreaRegistryDetailDialogParams {
entry?: AreaRegistryEntry;
suggestedName?: string;
diff --git a/src/panels/config/areas/show-dialog-floor-registry-detail.ts b/src/panels/config/areas/show-dialog-floor-registry-detail.ts
index 4fe6d0cc4b..83f5fd1840 100644
--- a/src/panels/config/areas/show-dialog-floor-registry-detail.ts
+++ b/src/panels/config/areas/show-dialog-floor-registry-detail.ts
@@ -1,9 +1,10 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type {
FloorRegistryEntry,
FloorRegistryEntryMutableParams,
} from "../../../data/floor_registry";
+import { fireEvent } from "../../../common/dom/fire_event";
+
export interface FloorRegistryDetailDialogParams {
entry?: FloorRegistryEntry;
suggestedName?: string;
diff --git a/src/panels/config/automation/action/ha-automation-action-row.ts b/src/panels/config/automation/action/ha-automation-action-row.ts
index 79ae3bf4e2..fca31ad914 100644
--- a/src/panels/config/automation/action/ha-automation-action-row.ts
+++ b/src/panels/config/automation/action/ha-automation-action-row.ts
@@ -1,3 +1,37 @@
+import type { HaYamlEditor } from "../../../../components/ha-yaml-editor";
+import type { AutomationClipboard } from "../../../../data/automation";
+import type { EntityRegistryEntry } from "../../../../data/entity_registry";
+import type { FloorRegistryEntry } from "../../../../data/floor_registry";
+import type { LabelRegistryEntry } from "../../../../data/label_registry";
+import type { Action, NonConditionAction } from "../../../../data/script";
+import type { HomeAssistant } from "../../../../types";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../../components/ha-alert";
+import "../../../../components/ha-card";
+import "../../../../components/ha-expansion-panel";
+import "../../../../components/ha-icon-button";
+import "../../../../components/ha-md-button-menu";
+import "../../../../components/ha-md-divider";
+import "../../../../components/ha-md-menu-item";
+import "../../../../components/ha-service-icon";
+import "../../../../components/ha-tooltip";
+import "./types/ha-automation-action-choose";
+import "./types/ha-automation-action-condition";
+import "./types/ha-automation-action-delay";
+import "./types/ha-automation-action-device_id";
+import "./types/ha-automation-action-event";
+import "./types/ha-automation-action-if";
+import "./types/ha-automation-action-parallel";
+import "./types/ha-automation-action-play_media";
+import "./types/ha-automation-action-repeat";
+import "./types/ha-automation-action-sequence";
+import "./types/ha-automation-action-service";
+import "./types/ha-automation-action-set_conversation_response";
+import "./types/ha-automation-action-stop";
+import "./types/ha-automation-action-wait_for_trigger";
+import "./types/ha-automation-action-wait_template";
+
import { consume } from "@lit-labs/context";
import {
mdiAlertCircleCheck,
@@ -15,38 +49,23 @@ import {
mdiStopCircleOutline,
} from "@mdi/js";
import deepClone from "deep-clone-simple";
-import type { CSSResultGroup, PropertyValues } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { storage } from "../../../../common/decorators/storage";
import { dynamicElement } from "../../../../common/dom/dynamic-element-directive";
import { fireEvent } from "../../../../common/dom/fire_event";
import { stopPropagation } from "../../../../common/dom/stop_propagation";
import { capitalizeFirstLetter } from "../../../../common/string/capitalize-first-letter";
import { handleStructError } from "../../../../common/structs/handle-errors";
-import "../../../../components/ha-alert";
-import "../../../../components/ha-md-button-menu";
-import "../../../../components/ha-md-menu-item";
-import "../../../../components/ha-md-divider";
-import "../../../../components/ha-card";
-import "../../../../components/ha-expansion-panel";
-import "../../../../components/ha-icon-button";
-import "../../../../components/ha-service-icon";
-import "../../../../components/ha-tooltip";
-import type { HaYamlEditor } from "../../../../components/ha-yaml-editor";
import { ACTION_ICONS, YAML_ONLY_ACTION_TYPES } from "../../../../data/action";
-import type { AutomationClipboard } from "../../../../data/automation";
import { validateConfig } from "../../../../data/config";
import {
floorsContext,
fullEntitiesContext,
labelsContext,
} from "../../../../data/context";
-import type { EntityRegistryEntry } from "../../../../data/entity_registry";
-import type { FloorRegistryEntry } from "../../../../data/floor_registry";
-import type { LabelRegistryEntry } from "../../../../data/label_registry";
-import type { Action, NonConditionAction } from "../../../../data/script";
import {
getActionType,
migrateAutomationAction,
@@ -59,23 +78,7 @@ import {
showPromptDialog,
} from "../../../../dialogs/generic/show-dialog-box";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import { showToast } from "../../../../util/toast";
-import "./types/ha-automation-action-choose";
-import "./types/ha-automation-action-condition";
-import "./types/ha-automation-action-delay";
-import "./types/ha-automation-action-device_id";
-import "./types/ha-automation-action-event";
-import "./types/ha-automation-action-if";
-import "./types/ha-automation-action-parallel";
-import "./types/ha-automation-action-play_media";
-import "./types/ha-automation-action-repeat";
-import "./types/ha-automation-action-sequence";
-import "./types/ha-automation-action-service";
-import "./types/ha-automation-action-set_conversation_response";
-import "./types/ha-automation-action-stop";
-import "./types/ha-automation-action-wait_for_trigger";
-import "./types/ha-automation-action-wait_template";
export const getType = (action: Action | undefined) => {
if (!action) {
diff --git a/src/panels/config/automation/action/ha-automation-action.ts b/src/panels/config/automation/action/ha-automation-action.ts
index 8603ec411b..3b8c29378e 100644
--- a/src/panels/config/automation/action/ha-automation-action.ts
+++ b/src/panels/config/automation/action/ha-automation-action.ts
@@ -1,25 +1,28 @@
+import type { AutomationClipboard } from "../../../../data/automation";
+import type { Action } from "../../../../data/script";
+import type { HomeAssistant } from "../../../../types";
+import type HaAutomationActionRow from "./ha-automation-action-row";
+import type { PropertyValues } from "lit";
+
+import "../../../../components/ha-button";
+import "../../../../components/ha-sortable";
+import "../../../../components/ha-svg-icon";
+
import { mdiDrag, mdiPlus } from "@mdi/js";
import deepClone from "deep-clone-simple";
-import type { PropertyValues } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { repeat } from "lit/directives/repeat";
+
import { storage } from "../../../../common/decorators/storage";
import { fireEvent } from "../../../../common/dom/fire_event";
import { listenMediaQuery } from "../../../../common/dom/media_query";
import { nextRender } from "../../../../common/util/render-status";
-import "../../../../components/ha-button";
-import "../../../../components/ha-sortable";
-import "../../../../components/ha-svg-icon";
import { getService, isService } from "../../../../data/action";
-import type { AutomationClipboard } from "../../../../data/automation";
-import type { Action } from "../../../../data/script";
-import type { HomeAssistant } from "../../../../types";
import {
PASTE_VALUE,
showAddAutomationElementDialog,
} from "../show-add-automation-element-dialog";
-import type HaAutomationActionRow from "./ha-automation-action-row";
import { getType } from "./ha-automation-action-row";
@customElement("ha-automation-action")
diff --git a/src/panels/config/automation/action/types/ha-automation-action-choose.ts b/src/panels/config/automation/action/types/ha-automation-action-choose.ts
index 07498c4606..8b32335991 100644
--- a/src/panels/config/automation/action/types/ha-automation-action-choose.ts
+++ b/src/panels/config/automation/action/types/ha-automation-action-choose.ts
@@ -1,14 +1,17 @@
+import type { Action, ChooseAction, Option } from "../../../../../data/script";
+import type { HomeAssistant } from "../../../../../types";
+import type { ActionElement } from "../ha-automation-action-row";
+
+import "../../../../../components/ha-button";
+import "../../option/ha-automation-option";
+import "../ha-automation-action";
+
import { type CSSResultGroup, LitElement, css, html } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { ensureArray } from "../../../../../common/array/ensure-array";
import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-button";
-import type { Action, ChooseAction, Option } from "../../../../../data/script";
import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
-import "../../option/ha-automation-option";
-import type { ActionElement } from "../ha-automation-action-row";
-import "../ha-automation-action";
@customElement("ha-automation-action-choose")
export class HaChooseAction extends LitElement implements ActionElement {
diff --git a/src/panels/config/automation/action/types/ha-automation-action-condition.ts b/src/panels/config/automation/action/types/ha-automation-action-condition.ts
index 5e77983bc7..298c93fd9b 100644
--- a/src/panels/config/automation/action/types/ha-automation-action-condition.ts
+++ b/src/panels/config/automation/action/types/ha-automation-action-condition.ts
@@ -1,16 +1,19 @@
+import type { LocalizeFunc } from "../../../../../common/translations/localize";
+import type { HaSelect } from "../../../../../components/ha-select";
+import type { Condition } from "../../../../../data/automation";
+import type { Entries, HomeAssistant } from "../../../../../types";
+import type { ActionElement } from "../ha-automation-action-row";
+
+import "../../../../../components/ha-select";
+import "../../condition/ha-automation-condition-editor";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../../../../common/dom/fire_event";
import { stringCompare } from "../../../../../common/string/compare";
-import type { LocalizeFunc } from "../../../../../common/translations/localize";
-import "../../../../../components/ha-select";
-import type { HaSelect } from "../../../../../components/ha-select";
-import type { Condition } from "../../../../../data/automation";
import { CONDITION_ICONS } from "../../../../../data/condition";
-import type { Entries, HomeAssistant } from "../../../../../types";
-import "../../condition/ha-automation-condition-editor";
-import type { ActionElement } from "../ha-automation-action-row";
@customElement("ha-automation-action-condition")
export class HaConditionAction extends LitElement implements ActionElement {
diff --git a/src/panels/config/automation/action/types/ha-automation-action-delay.ts b/src/panels/config/automation/action/types/ha-automation-action-delay.ts
index 52f5cb4b34..2a2e9a6cdb 100644
--- a/src/panels/config/automation/action/types/ha-automation-action-delay.ts
+++ b/src/panels/config/automation/action/types/ha-automation-action-delay.ts
@@ -1,14 +1,17 @@
-import type { PropertyValues } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import { hasTemplate } from "../../../../../common/string/has-template";
import type { HaDurationData } from "../../../../../components/ha-duration-input";
-import "../../../../../components/ha-duration-input";
import type { DelayAction } from "../../../../../data/script";
import type { HomeAssistant } from "../../../../../types";
import type { ActionElement } from "../ha-automation-action-row";
+import type { PropertyValues } from "lit";
+
+import "../../../../../components/ha-duration-input";
+
+import { html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
import { createDurationData } from "../../../../../common/datetime/create_duration_data";
+import { fireEvent } from "../../../../../common/dom/fire_event";
+import { hasTemplate } from "../../../../../common/string/has-template";
@customElement("ha-automation-action-delay")
export class HaDelayAction extends LitElement implements ActionElement {
diff --git a/src/panels/config/automation/action/types/ha-automation-action-device_id.ts b/src/panels/config/automation/action/types/ha-automation-action-device_id.ts
index e5f4f3d9d4..b9557401e0 100644
--- a/src/panels/config/automation/action/types/ha-automation-action-device_id.ts
+++ b/src/panels/config/automation/action/types/ha-automation-action-device_id.ts
@@ -1,25 +1,28 @@
-import { consume } from "@lit-labs/context";
-import type { PropertyValues } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/device/ha-device-action-picker";
-import "../../../../../components/device/ha-device-picker";
-import "../../../../../components/ha-form/ha-form";
-import { fullEntitiesContext } from "../../../../../data/context";
import type {
DeviceAction,
DeviceCapabilities,
} from "../../../../../data/device_automation";
+import type { EntityRegistryEntry } from "../../../../../data/entity_registry";
+import type { HomeAssistant } from "../../../../../types";
+import type { PropertyValues } from "lit";
+
+import "../../../../../components/device/ha-device-action-picker";
+import "../../../../../components/device/ha-device-picker";
+import "../../../../../components/ha-form/ha-form";
+
+import { consume } from "@lit-labs/context";
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+import { fullEntitiesContext } from "../../../../../data/context";
import {
deviceAutomationsEqual,
fetchDeviceActionCapabilities,
localizeExtraFieldsComputeLabelCallback,
localizeExtraFieldsComputeHelperCallback,
} from "../../../../../data/device_automation";
-import type { EntityRegistryEntry } from "../../../../../data/entity_registry";
-import type { HomeAssistant } from "../../../../../types";
@customElement("ha-automation-action-device_id")
export class HaDeviceAction extends LitElement {
diff --git a/src/panels/config/automation/action/types/ha-automation-action-event.ts b/src/panels/config/automation/action/types/ha-automation-action-event.ts
index 2bfdc7ddd3..cd7139fd80 100644
--- a/src/panels/config/automation/action/types/ha-automation-action-event.ts
+++ b/src/panels/config/automation/action/types/ha-automation-action-event.ts
@@ -1,15 +1,18 @@
-import type { PropertyValues } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, query } from "lit/decorators";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/entity/ha-entity-picker";
-import "../../../../../components/ha-service-picker";
-import "../../../../../components/ha-textfield";
-import "../../../../../components/ha-yaml-editor";
import type { HaYamlEditor } from "../../../../../components/ha-yaml-editor";
import type { EventAction } from "../../../../../data/script";
import type { HomeAssistant } from "../../../../../types";
import type { ActionElement } from "../ha-automation-action-row";
+import type { PropertyValues } from "lit";
+
+import "../../../../../components/entity/ha-entity-picker";
+import "../../../../../components/ha-service-picker";
+import "../../../../../components/ha-textfield";
+import "../../../../../components/ha-yaml-editor";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, query } from "lit/decorators";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
import { handleChangeEvent } from "../ha-automation-action-row";
@customElement("ha-automation-action-event")
diff --git a/src/panels/config/automation/action/types/ha-automation-action-if.ts b/src/panels/config/automation/action/types/ha-automation-action-if.ts
index 2d7b8f1ecf..3f44e419d2 100644
--- a/src/panels/config/automation/action/types/ha-automation-action-if.ts
+++ b/src/panels/config/automation/action/types/ha-automation-action-if.ts
@@ -1,14 +1,17 @@
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-textfield";
import type { Action, IfAction } from "../../../../../data/script";
-import { haStyle } from "../../../../../resources/styles";
import type { HomeAssistant } from "../../../../../types";
import type { Condition } from "../../../../lovelace/common/validate-condition";
-import "../ha-automation-action";
import type { ActionElement } from "../ha-automation-action-row";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../../components/ha-textfield";
+import "../ha-automation-action";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+import { haStyle } from "../../../../../resources/styles";
@customElement("ha-automation-action-if")
export class HaIfAction extends LitElement implements ActionElement {
diff --git a/src/panels/config/automation/action/types/ha-automation-action-parallel.ts b/src/panels/config/automation/action/types/ha-automation-action-parallel.ts
index 5e102aa72e..a179bd79cd 100644
--- a/src/panels/config/automation/action/types/ha-automation-action-parallel.ts
+++ b/src/panels/config/automation/action/types/ha-automation-action-parallel.ts
@@ -1,13 +1,16 @@
+import type { Action, ParallelAction } from "../../../../../data/script";
+import type { HomeAssistant } from "../../../../../types";
+import type { ActionElement } from "../ha-automation-action-row";
import type { CSSResultGroup } from "lit";
+
+import "../../../../../components/ha-textfield";
+import "../ha-automation-action";
+
import { html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
+
import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-textfield";
-import type { Action, ParallelAction } from "../../../../../data/script";
import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
-import "../ha-automation-action";
-import type { ActionElement } from "../ha-automation-action-row";
@customElement("ha-automation-action-parallel")
export class HaParallelAction extends LitElement implements ActionElement {
diff --git a/src/panels/config/automation/action/types/ha-automation-action-play_media.ts b/src/panels/config/automation/action/types/ha-automation-action-play_media.ts
index 9259d4ef62..fbdac90978 100644
--- a/src/panels/config/automation/action/types/ha-automation-action-play_media.ts
+++ b/src/panels/config/automation/action/types/ha-automation-action-play_media.ts
@@ -1,13 +1,16 @@
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-selector/ha-selector-media";
import type { PlayMediaAction } from "../../../../../data/script";
import type { MediaSelectorValue } from "../../../../../data/selector";
import type { HomeAssistant } from "../../../../../types";
import type { ActionElement } from "../ha-automation-action-row";
+import "../../../../../components/ha-selector/ha-selector-media";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+
@customElement("ha-automation-action-play_media")
export class HaPlayMediaAction extends LitElement implements ActionElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/config/automation/action/types/ha-automation-action-repeat.ts b/src/panels/config/automation/action/types/ha-automation-action-repeat.ts
index d39533be7c..1bcf959181 100644
--- a/src/panels/config/automation/action/types/ha-automation-action-repeat.ts
+++ b/src/panels/config/automation/action/types/ha-automation-action-repeat.ts
@@ -1,22 +1,25 @@
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-textfield";
-import type { RepeatAction } from "../../../../../data/script";
-import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
-import "../ha-automation-action";
-import type { ActionElement } from "../ha-automation-action-row";
-
-import { isTemplate } from "../../../../../common/string/has-template";
import type { LocalizeFunc } from "../../../../../common/translations/localize";
-import "../../../../../components/ha-form/ha-form";
import type {
HaFormSchema,
SchemaUnion,
} from "../../../../../components/ha-form/types";
+import type { RepeatAction } from "../../../../../data/script";
+import type { HomeAssistant } from "../../../../../types";
+import type { ActionElement } from "../ha-automation-action-row";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../../components/ha-form/ha-form";
+import "../../../../../components/ha-textfield";
+import "../ha-automation-action";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+import { isTemplate } from "../../../../../common/string/has-template";
+import { haStyle } from "../../../../../resources/styles";
+
const OPTIONS = ["count", "while", "until", "for_each"] as const;
diff --git a/src/panels/config/automation/action/types/ha-automation-action-sequence.ts b/src/panels/config/automation/action/types/ha-automation-action-sequence.ts
index 8e3efceb54..472d202430 100644
--- a/src/panels/config/automation/action/types/ha-automation-action-sequence.ts
+++ b/src/panels/config/automation/action/types/ha-automation-action-sequence.ts
@@ -1,13 +1,16 @@
+import type { Action, SequenceAction } from "../../../../../data/script";
+import type { HomeAssistant } from "../../../../../types";
+import type { ActionElement } from "../ha-automation-action-row";
import type { CSSResultGroup } from "lit";
+
+import "../../../../../components/ha-textfield";
+import "../ha-automation-action";
+
import { html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
+
import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-textfield";
-import type { Action, SequenceAction } from "../../../../../data/script";
import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
-import "../ha-automation-action";
-import type { ActionElement } from "../ha-automation-action-row";
@customElement("ha-automation-action-sequence")
export class HaSequenceAction extends LitElement implements ActionElement {
diff --git a/src/panels/config/automation/action/types/ha-automation-action-service.ts b/src/panels/config/automation/action/types/ha-automation-action-service.ts
index 8543cfb93e..77c4756564 100644
--- a/src/panels/config/automation/action/types/ha-automation-action-service.ts
+++ b/src/panels/config/automation/action/types/ha-automation-action-service.ts
@@ -1,17 +1,20 @@
+import type { ServiceAction } from "../../../../../data/script";
+import type { HomeAssistant } from "../../../../../types";
+import type { ActionElement } from "../ha-automation-action-row";
import type { PropertyValues } from "lit";
+
+import "../../../../../components/ha-service-control";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
import { assert } from "superstruct";
+
import { fireEvent } from "../../../../../common/dom/fire_event";
import { computeDomain } from "../../../../../common/entity/compute_domain";
import { computeObjectId } from "../../../../../common/entity/compute_object_id";
import { hasTemplate } from "../../../../../common/string/has-template";
-import "../../../../../components/ha-service-control";
-import type { ServiceAction } from "../../../../../data/script";
import { serviceActionStruct } from "../../../../../data/script";
-import type { HomeAssistant } from "../../../../../types";
-import type { ActionElement } from "../ha-automation-action-row";
@customElement("ha-automation-action-service")
export class HaServiceAction extends LitElement implements ActionElement {
diff --git a/src/panels/config/automation/action/types/ha-automation-action-set_conversation_response.ts b/src/panels/config/automation/action/types/ha-automation-action-set_conversation_response.ts
index 4592ea2401..7ece09c53b 100644
--- a/src/panels/config/automation/action/types/ha-automation-action-set_conversation_response.ts
+++ b/src/panels/config/automation/action/types/ha-automation-action-set_conversation_response.ts
@@ -1,10 +1,12 @@
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import "../../../../../components/ha-form/ha-form";
import type { SetConversationResponseAction } from "../../../../../data/script";
import type { HomeAssistant } from "../../../../../types";
import type { ActionElement } from "../ha-automation-action-row";
+import "../../../../../components/ha-form/ha-form";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
const SCHEMA = [
{
name: "set_conversation_response",
diff --git a/src/panels/config/automation/action/types/ha-automation-action-stop.ts b/src/panels/config/automation/action/types/ha-automation-action-stop.ts
index c8d15c3e95..c3a7196bdc 100644
--- a/src/panels/config/automation/action/types/ha-automation-action-stop.ts
+++ b/src/panels/config/automation/action/types/ha-automation-action-stop.ts
@@ -1,13 +1,16 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-textfield";
-import "../../../../../components/ha-formfield";
-import "../../../../../components/ha-switch";
import type { StopAction } from "../../../../../data/script";
import type { HomeAssistant } from "../../../../../types";
import type { ActionElement } from "../ha-automation-action-row";
+import "../../../../../components/ha-formfield";
+import "../../../../../components/ha-switch";
+import "../../../../../components/ha-textfield";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+
@customElement("ha-automation-action-stop")
export class HaStopAction extends LitElement implements ActionElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/config/automation/action/types/ha-automation-action-wait_for_trigger.ts b/src/panels/config/automation/action/types/ha-automation-action-wait_for_trigger.ts
index 3ced9e1cb7..8e4efe01bd 100644
--- a/src/panels/config/automation/action/types/ha-automation-action-wait_for_trigger.ts
+++ b/src/panels/config/automation/action/types/ha-automation-action-wait_for_trigger.ts
@@ -1,16 +1,19 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { ensureArray } from "../../../../../common/array/ensure-array";
-import { createDurationData } from "../../../../../common/datetime/create_duration_data";
-import { fireEvent } from "../../../../../common/dom/fire_event";
import type { TimeChangedEvent } from "../../../../../components/ha-base-time-input";
+import type { WaitForTriggerAction } from "../../../../../data/script";
+import type { HomeAssistant } from "../../../../../types";
+import type { ActionElement } from "../ha-automation-action-row";
+
import "../../../../../components/ha-duration-input";
import "../../../../../components/ha-formfield";
import "../../../../../components/ha-textfield";
-import type { WaitForTriggerAction } from "../../../../../data/script";
-import type { HomeAssistant } from "../../../../../types";
import "../../trigger/ha-automation-trigger";
-import type { ActionElement } from "../ha-automation-action-row";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { ensureArray } from "../../../../../common/array/ensure-array";
+import { createDurationData } from "../../../../../common/datetime/create_duration_data";
+import { fireEvent } from "../../../../../common/dom/fire_event";
import { handleChangeEvent } from "../ha-automation-action-row";
@customElement("ha-automation-action-wait_for_trigger")
diff --git a/src/panels/config/automation/action/types/ha-automation-action-wait_template.ts b/src/panels/config/automation/action/types/ha-automation-action-wait_template.ts
index d8aa32296c..50fee9c167 100644
--- a/src/panels/config/automation/action/types/ha-automation-action-wait_template.ts
+++ b/src/panels/config/automation/action/types/ha-automation-action-wait_template.ts
@@ -1,10 +1,12 @@
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
+import type { SchemaUnion } from "../../../../../components/ha-form/types";
import type { WaitAction } from "../../../../../data/script";
import type { HomeAssistant } from "../../../../../types";
import type { ActionElement } from "../ha-automation-action-row";
+
import "../../../../../components/ha-form/ha-form";
-import type { SchemaUnion } from "../../../../../components/ha-form/types";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
const SCHEMA = [
{
diff --git a/src/panels/config/automation/add-automation-element-dialog.ts b/src/panels/config/automation/add-automation-element-dialog.ts
index 86dd1ee02e..4cf110636c 100644
--- a/src/panels/config/automation/add-automation-element-dialog.ts
+++ b/src/panels/config/automation/add-automation-element-dialog.ts
@@ -1,20 +1,14 @@
-import { mdiClose, mdiContentPaste, mdiPlus } from "@mdi/js";
-import type { IFuseOptions } from "fuse.js";
-import Fuse from "fuse.js";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { ifDefined } from "lit/directives/if-defined";
-import { repeat } from "lit/directives/repeat";
-import { styleMap } from "lit/directives/style-map";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { computeDomain } from "../../../common/entity/compute_domain";
-import { stringCompare } from "../../../common/string/compare";
import type { LocalizeFunc } from "../../../common/translations/localize";
-import { deepEqual } from "../../../common/util/deep-equal";
-import "../../../components/ha-dialog";
import type { HaDialog } from "../../../components/ha-dialog";
+import type { AutomationElementGroup } from "../../../data/automation";
+import type { IntegrationManifest } from "../../../data/integration";
+import type { HassDialog } from "../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../types";
+import type { AddAutomationElementDialogParams } from "./show-add-automation-element-dialog";
+import type { IFuseOptions } from "fuse.js";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/ha-dialog";
import "../../../components/ha-dialog-header";
import "../../../components/ha-domain-icon";
import "../../../components/ha-icon-button";
@@ -25,6 +19,20 @@ import "../../../components/ha-md-list";
import "../../../components/ha-md-list-item";
import "../../../components/ha-service-icon";
import "../../../components/search-input";
+
+import { mdiClose, mdiContentPaste, mdiPlus } from "@mdi/js";
+import Fuse from "fuse.js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import { ifDefined } from "lit/directives/if-defined";
+import { repeat } from "lit/directives/repeat";
+import { styleMap } from "lit/directives/style-map";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { computeDomain } from "../../../common/entity/compute_domain";
+import { stringCompare } from "../../../common/string/compare";
+import { deepEqual } from "../../../common/util/deep-equal";
import {
ACTION_GROUPS,
ACTION_ICONS,
@@ -32,19 +40,14 @@ import {
getService,
isService,
} from "../../../data/action";
-import type { AutomationElementGroup } from "../../../data/automation";
import { CONDITION_GROUPS, CONDITION_ICONS } from "../../../data/condition";
import { getServiceIcons } from "../../../data/icons";
-import type { IntegrationManifest } from "../../../data/integration";
import {
domainToName,
fetchIntegrationManifests,
} from "../../../data/integration";
import { TRIGGER_GROUPS, TRIGGER_ICONS } from "../../../data/trigger";
-import type { HassDialog } from "../../../dialogs/make-dialog-manager";
import { haStyle, haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
-import type { AddAutomationElementDialogParams } from "./show-add-automation-element-dialog";
import { PASTE_VALUE } from "./show-add-automation-element-dialog";
const TYPES = {
diff --git a/src/panels/config/automation/automation-mode-dialog/dialog-automation-mode.ts b/src/panels/config/automation/automation-mode-dialog/dialog-automation-mode.ts
index 82b0aab8de..1450c44d9e 100644
--- a/src/panels/config/automation/automation-mode-dialog/dialog-automation-mode.ts
+++ b/src/panels/config/automation/automation-mode-dialog/dialog-automation-mode.ts
@@ -1,28 +1,30 @@
-import "@material/mwc-button";
-import "@material/mwc-list/mwc-list-item";
-import { mdiClose, mdiHelpCircle } from "@mdi/js";
+import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../../types";
+import type { AutomationModeDialog } from "./show-dialog-automation-mode";
import type { CSSResultGroup } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
+
+import "../../../../components/ha-dialog";
import "../../../../components/ha-dialog-header";
import "../../../../components/ha-icon-button";
-import "../../../../components/ha-md-list-item";
import "../../../../components/ha-md-list";
+import "../../../../components/ha-md-list-item";
import "../../../../components/ha-radio";
import "../../../../components/ha-textfield";
-import "../../../../components/ha-dialog";
+import "@material/mwc-button";
+import "@material/mwc-list/mwc-list-item";
+import { mdiClose, mdiHelpCircle } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import {
AUTOMATION_DEFAULT_MAX,
AUTOMATION_DEFAULT_MODE,
} from "../../../../data/automation";
import { MODES, isMaxMode } from "../../../../data/script";
-import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
import { haStyle, haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import { documentationUrl } from "../../../../util/documentation-url";
-import type { AutomationModeDialog } from "./show-dialog-automation-mode";
@customElement("ha-dialog-automation-mode")
class DialogAutomationMode extends LitElement implements HassDialog {
diff --git a/src/panels/config/automation/automation-mode-dialog/show-dialog-automation-mode.ts b/src/panels/config/automation/automation-mode-dialog/show-dialog-automation-mode.ts
index 0d25fea5d2..5312774be5 100644
--- a/src/panels/config/automation/automation-mode-dialog/show-dialog-automation-mode.ts
+++ b/src/panels/config/automation/automation-mode-dialog/show-dialog-automation-mode.ts
@@ -1,7 +1,8 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { AutomationConfig } from "../../../../data/automation";
import type { ScriptConfig } from "../../../../data/script";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export const loadAutomationModeDialog = () =>
import("./dialog-automation-mode");
diff --git a/src/panels/config/automation/automation-save-dialog/dialog-automation-save.ts b/src/panels/config/automation/automation-save-dialog/dialog-automation-save.ts
index 60eb15cf25..642a5c1966 100644
--- a/src/panels/config/automation/automation-save-dialog/dialog-automation-save.ts
+++ b/src/panels/config/automation/automation-save-dialog/dialog-automation-save.ts
@@ -1,28 +1,30 @@
-import "@material/mwc-button";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { mdiClose, mdiPlus } from "@mdi/js";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-alert";
-import "../../../../components/ha-domain-icon";
-import "../../../../components/ha-icon-picker";
-import "../../../../components/ha-textarea";
-import "../../../../components/ha-textfield";
-import "../../../../components/ha-labels-picker";
-import "../../category/ha-category-picker";
-import "../../../../components/ha-expansion-panel";
-import "../../../../components/chips/ha-chip-set";
-import "../../../../components/chips/ha-assist-chip";
-import "../../../../components/ha-area-picker";
-
import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
-import { haStyle, haStyleDialog } from "../../../../resources/styles";
import type { HomeAssistant } from "../../../../types";
import type {
EntityRegistryUpdate,
SaveDialogParams,
} from "./show-dialog-automation-save";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../components/chips/ha-assist-chip";
+import "../../../../components/chips/ha-chip-set";
+import "../../../../components/ha-alert";
+import "../../../../components/ha-area-picker";
+import "../../../../components/ha-domain-icon";
+import "../../../../components/ha-expansion-panel";
+import "../../../../components/ha-icon-picker";
+import "../../../../components/ha-labels-picker";
+import "../../../../components/ha-textarea";
+import "../../../../components/ha-textfield";
+import "../../category/ha-category-picker";
+import "@material/mwc-button";
+
+import { mdiClose, mdiPlus } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { haStyle, haStyleDialog } from "../../../../resources/styles";
@customElement("ha-dialog-automation-save")
class DialogAutomationSave extends LitElement implements HassDialog {
diff --git a/src/panels/config/automation/automation-save-dialog/show-dialog-automation-save.ts b/src/panels/config/automation/automation-save-dialog/show-dialog-automation-save.ts
index cd816443d1..1e1189ce74 100644
--- a/src/panels/config/automation/automation-save-dialog/show-dialog-automation-save.ts
+++ b/src/panels/config/automation/automation-save-dialog/show-dialog-automation-save.ts
@@ -1,7 +1,8 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { AutomationConfig } from "../../../../data/automation";
-import type { ScriptConfig } from "../../../../data/script";
import type { EntityRegistryEntry } from "../../../../data/entity_registry";
+import type { ScriptConfig } from "../../../../data/script";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
export const loadAutomationSaveDialog = () =>
import("./dialog-automation-save");
diff --git a/src/panels/config/automation/blueprint-automation-editor.ts b/src/panels/config/automation/blueprint-automation-editor.ts
index e0ef3df62d..1fa57d08d6 100644
--- a/src/panels/config/automation/blueprint-automation-editor.ts
+++ b/src/panels/config/automation/blueprint-automation-editor.ts
@@ -1,10 +1,13 @@
-import "@material/mwc-button/mwc-button";
+import type { BlueprintAutomationConfig } from "../../../data/automation";
import type { HassEntity } from "home-assistant-js-websocket";
-import { html, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
+
import "../../../components/ha-alert";
import "../../../components/ha-markdown";
-import type { BlueprintAutomationConfig } from "../../../data/automation";
+import "@material/mwc-button/mwc-button";
+
+import { html, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { fetchBlueprints } from "../../../data/blueprint";
import { HaBlueprintGenericEditor } from "../blueprint/blueprint-generic-editor";
diff --git a/src/panels/config/automation/condition/ha-automation-condition-editor.ts b/src/panels/config/automation/condition/ha-automation-condition-editor.ts
index 5b7bfe51e2..40ff7f0a11 100644
--- a/src/panels/config/automation/condition/ha-automation-condition-editor.ts
+++ b/src/panels/config/automation/condition/ha-automation-condition-editor.ts
@@ -1,13 +1,7 @@
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { dynamicElement } from "../../../../common/dom/dynamic-element-directive";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-yaml-editor";
import type { Condition } from "../../../../data/automation";
-import { expandConditionWithShorthand } from "../../../../data/automation";
-import { haStyle } from "../../../../resources/styles";
import type { HomeAssistant } from "../../../../types";
+
+import "../../../../components/ha-yaml-editor";
import "./types/ha-automation-condition-and";
import "./types/ha-automation-condition-device";
import "./types/ha-automation-condition-not";
@@ -20,6 +14,15 @@ import "./types/ha-automation-condition-time";
import "./types/ha-automation-condition-trigger";
import "./types/ha-automation-condition-zone";
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { dynamicElement } from "../../../../common/dom/dynamic-element-directive";
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { expandConditionWithShorthand } from "../../../../data/automation";
+import { haStyle } from "../../../../resources/styles";
+
@customElement("ha-automation-condition-editor")
export default class HaAutomationConditionEditor extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/config/automation/condition/ha-automation-condition-row.ts b/src/panels/config/automation/condition/ha-automation-condition-row.ts
index a905b88233..0b075995ac 100644
--- a/src/panels/config/automation/condition/ha-automation-condition-row.ts
+++ b/src/panels/config/automation/condition/ha-automation-condition-row.ts
@@ -1,3 +1,19 @@
+import type {
+ AutomationClipboard,
+ Condition,
+} from "../../../../data/automation";
+import type { EntityRegistryEntry } from "../../../../data/entity_registry";
+import type { HomeAssistant } from "../../../../types";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-card";
+import "../../../../components/ha-expansion-panel";
+import "../../../../components/ha-icon-button";
+import "../../../../components/ha-md-button-menu";
+import "../../../../components/ha-md-divider";
+import "../../../../components/ha-md-menu-item";
+import "./ha-automation-condition-editor";
+
import { consume } from "@lit-labs/context";
import {
mdiArrowDown,
@@ -14,39 +30,26 @@ import {
mdiStopCircleOutline,
} from "@mdi/js";
import deepClone from "deep-clone-simple";
-import type { CSSResultGroup } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { storage } from "../../../../common/decorators/storage";
import { fireEvent } from "../../../../common/dom/fire_event";
import { stopPropagation } from "../../../../common/dom/stop_propagation";
import { capitalizeFirstLetter } from "../../../../common/string/capitalize-first-letter";
import { handleStructError } from "../../../../common/structs/handle-errors";
-import "../../../../components/ha-md-button-menu";
-import "../../../../components/ha-md-menu-item";
-import "../../../../components/ha-md-divider";
-import "../../../../components/ha-card";
-import "../../../../components/ha-expansion-panel";
-import "../../../../components/ha-icon-button";
-import type {
- AutomationClipboard,
- Condition,
-} from "../../../../data/automation";
import { testCondition } from "../../../../data/automation";
import { describeCondition } from "../../../../data/automation_i18n";
import { CONDITION_ICONS } from "../../../../data/condition";
import { validateConfig } from "../../../../data/config";
import { fullEntitiesContext } from "../../../../data/context";
-import type { EntityRegistryEntry } from "../../../../data/entity_registry";
import {
showAlertDialog,
showConfirmationDialog,
showPromptDialog,
} from "../../../../dialogs/generic/show-dialog-box";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
-import "./ha-automation-condition-editor";
export interface ConditionElement extends LitElement {
condition: Condition;
diff --git a/src/panels/config/automation/condition/ha-automation-condition.ts b/src/panels/config/automation/condition/ha-automation-condition.ts
index 77348cf308..b66f4ec51e 100644
--- a/src/panels/config/automation/condition/ha-automation-condition.ts
+++ b/src/panels/config/automation/condition/ha-automation-condition.ts
@@ -1,28 +1,31 @@
-import { mdiDrag, mdiPlus } from "@mdi/js";
-import deepClone from "deep-clone-simple";
-import type { PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { repeat } from "lit/directives/repeat";
-import { storage } from "../../../../common/decorators/storage";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { listenMediaQuery } from "../../../../common/dom/media_query";
-import { nextRender } from "../../../../common/util/render-status";
-import "../../../../components/ha-button";
-import "../../../../components/ha-button-menu";
-import "../../../../components/ha-sortable";
-import "../../../../components/ha-svg-icon";
import type {
AutomationClipboard,
Condition,
} from "../../../../data/automation";
import type { HomeAssistant } from "../../../../types";
+import type HaAutomationConditionRow from "./ha-automation-condition-row";
+import type { PropertyValues } from "lit";
+
+import "../../../../components/ha-button";
+import "../../../../components/ha-button-menu";
+import "../../../../components/ha-sortable";
+import "../../../../components/ha-svg-icon";
+import "./ha-automation-condition-row";
+
+import { mdiDrag, mdiPlus } from "@mdi/js";
+import deepClone from "deep-clone-simple";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { repeat } from "lit/directives/repeat";
+
+import { storage } from "../../../../common/decorators/storage";
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { listenMediaQuery } from "../../../../common/dom/media_query";
+import { nextRender } from "../../../../common/util/render-status";
import {
PASTE_VALUE,
showAddAutomationElementDialog,
} from "../show-add-automation-element-dialog";
-import "./ha-automation-condition-row";
-import type HaAutomationConditionRow from "./ha-automation-condition-row";
@customElement("ha-automation-condition")
export default class HaAutomationCondition extends LitElement {
diff --git a/src/panels/config/automation/condition/types/ha-automation-condition-and.ts b/src/panels/config/automation/condition/types/ha-automation-condition-and.ts
index 13a0663740..de7a08b76a 100644
--- a/src/panels/config/automation/condition/types/ha-automation-condition-and.ts
+++ b/src/panels/config/automation/condition/types/ha-automation-condition-and.ts
@@ -1,7 +1,9 @@
-import { customElement } from "lit/decorators";
-import { HaLogicalCondition } from "./ha-automation-condition-logical";
import type { LogicalCondition } from "../../../../../data/automation";
+import { customElement } from "lit/decorators";
+
+import { HaLogicalCondition } from "./ha-automation-condition-logical";
+
@customElement("ha-automation-condition-and")
export class HaAndCondition extends HaLogicalCondition {
public static get defaultConfig(): LogicalCondition {
diff --git a/src/panels/config/automation/condition/types/ha-automation-condition-device.ts b/src/panels/config/automation/condition/types/ha-automation-condition-device.ts
index 70ae2128e1..968fd070bc 100644
--- a/src/panels/config/automation/condition/types/ha-automation-condition-device.ts
+++ b/src/panels/config/automation/condition/types/ha-automation-condition-device.ts
@@ -1,25 +1,28 @@
-import { consume } from "@lit-labs/context";
-import type { PropertyValues } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/device/ha-device-condition-picker";
-import "../../../../../components/device/ha-device-picker";
-import "../../../../../components/ha-form/ha-form";
-import { fullEntitiesContext } from "../../../../../data/context";
import type {
DeviceCapabilities,
DeviceCondition,
} from "../../../../../data/device_automation";
+import type { EntityRegistryEntry } from "../../../../../data/entity_registry";
+import type { HomeAssistant } from "../../../../../types";
+import type { PropertyValues } from "lit";
+
+import "../../../../../components/device/ha-device-condition-picker";
+import "../../../../../components/device/ha-device-picker";
+import "../../../../../components/ha-form/ha-form";
+
+import { consume } from "@lit-labs/context";
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+import { fullEntitiesContext } from "../../../../../data/context";
import {
deviceAutomationsEqual,
fetchDeviceConditionCapabilities,
localizeExtraFieldsComputeLabelCallback,
localizeExtraFieldsComputeHelperCallback,
} from "../../../../../data/device_automation";
-import type { EntityRegistryEntry } from "../../../../../data/entity_registry";
-import type { HomeAssistant } from "../../../../../types";
@customElement("ha-automation-condition-device")
export class HaDeviceCondition extends LitElement {
diff --git a/src/panels/config/automation/condition/types/ha-automation-condition-logical.ts b/src/panels/config/automation/condition/types/ha-automation-condition-logical.ts
index 6e61e041e3..3818dad215 100644
--- a/src/panels/config/automation/condition/types/ha-automation-condition-logical.ts
+++ b/src/panels/config/automation/condition/types/ha-automation-condition-logical.ts
@@ -1,11 +1,14 @@
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../../../../common/dom/fire_event";
import type { LogicalCondition } from "../../../../../data/automation";
import type { HomeAssistant } from "../../../../../types";
-import "../ha-automation-condition";
import type { ConditionElement } from "../ha-automation-condition-row";
+import "../ha-automation-condition";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+
@customElement("ha-automation-condition-logical")
export abstract class HaLogicalCondition
extends LitElement
diff --git a/src/panels/config/automation/condition/types/ha-automation-condition-not.ts b/src/panels/config/automation/condition/types/ha-automation-condition-not.ts
index ff14e924b6..b4412af2fb 100644
--- a/src/panels/config/automation/condition/types/ha-automation-condition-not.ts
+++ b/src/panels/config/automation/condition/types/ha-automation-condition-not.ts
@@ -1,7 +1,9 @@
-import { customElement } from "lit/decorators";
-import { HaLogicalCondition } from "./ha-automation-condition-logical";
import type { LogicalCondition } from "../../../../../data/automation";
+import { customElement } from "lit/decorators";
+
+import { HaLogicalCondition } from "./ha-automation-condition-logical";
+
@customElement("ha-automation-condition-not")
export class HaNotCondition extends HaLogicalCondition {
public static get defaultConfig(): LogicalCondition {
diff --git a/src/panels/config/automation/condition/types/ha-automation-condition-numeric_state.ts b/src/panels/config/automation/condition/types/ha-automation-condition-numeric_state.ts
index 04e2de7cd2..a9825a30c9 100644
--- a/src/panels/config/automation/condition/types/ha-automation-condition-numeric_state.ts
+++ b/src/panels/config/automation/condition/types/ha-automation-condition-numeric_state.ts
@@ -1,6 +1,14 @@
+import type { LocalizeFunc } from "../../../../../common/translations/localize";
+import type { SchemaUnion } from "../../../../../components/ha-form/types";
+import type { NumericStateCondition } from "../../../../../data/automation";
+import type { HomeAssistant } from "../../../../../types";
import type { PropertyValues } from "lit";
+
+import "../../../../../components/ha-form/ha-form";
+
import { html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
import {
assert,
boolean,
@@ -11,13 +19,8 @@ import {
string,
union,
} from "superstruct";
-import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../../../../common/dom/fire_event";
-import type { LocalizeFunc } from "../../../../../common/translations/localize";
-import "../../../../../components/ha-form/ha-form";
-import type { SchemaUnion } from "../../../../../components/ha-form/types";
-import type { NumericStateCondition } from "../../../../../data/automation";
-import type { HomeAssistant } from "../../../../../types";
const numericStateConditionStruct = object({
alias: optional(string()),
diff --git a/src/panels/config/automation/condition/types/ha-automation-condition-or.ts b/src/panels/config/automation/condition/types/ha-automation-condition-or.ts
index e343a17ba3..8ca7e86191 100644
--- a/src/panels/config/automation/condition/types/ha-automation-condition-or.ts
+++ b/src/panels/config/automation/condition/types/ha-automation-condition-or.ts
@@ -1,7 +1,9 @@
-import { customElement } from "lit/decorators";
-import { HaLogicalCondition } from "./ha-automation-condition-logical";
import type { LogicalCondition } from "../../../../../data/automation";
+import { customElement } from "lit/decorators";
+
+import { HaLogicalCondition } from "./ha-automation-condition-logical";
+
@customElement("ha-automation-condition-or")
export class HaOrCondition extends HaLogicalCondition {
public static get defaultConfig(): LogicalCondition {
diff --git a/src/panels/config/automation/condition/types/ha-automation-condition-state.ts b/src/panels/config/automation/condition/types/ha-automation-condition-state.ts
index 701bc28689..4ab5faeda7 100644
--- a/src/panels/config/automation/condition/types/ha-automation-condition-state.ts
+++ b/src/panels/config/automation/condition/types/ha-automation-condition-state.ts
@@ -1,4 +1,11 @@
+import type { SchemaUnion } from "../../../../../components/ha-form/types";
+import type { StateCondition } from "../../../../../data/automation";
+import type { HomeAssistant } from "../../../../../types";
+import type { ConditionElement } from "../ha-automation-condition-row";
import type { PropertyValues } from "lit";
+
+import "../../../../../components/ha-form/ha-form";
+
import { html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
import {
@@ -11,14 +18,10 @@ import {
string,
union,
} from "superstruct";
+
import { createDurationData } from "../../../../../common/datetime/create_duration_data";
import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-form/ha-form";
-import type { SchemaUnion } from "../../../../../components/ha-form/types";
-import type { StateCondition } from "../../../../../data/automation";
-import type { HomeAssistant } from "../../../../../types";
import { forDictStruct } from "../../structs";
-import type { ConditionElement } from "../ha-automation-condition-row";
const stateConditionStruct = object({
alias: optional(string()),
diff --git a/src/panels/config/automation/condition/types/ha-automation-condition-sun.ts b/src/panels/config/automation/condition/types/ha-automation-condition-sun.ts
index c01e78102b..15ff33b7c2 100644
--- a/src/panels/config/automation/condition/types/ha-automation-condition-sun.ts
+++ b/src/panels/config/automation/condition/types/ha-automation-condition-sun.ts
@@ -1,13 +1,16 @@
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../../common/dom/fire_event";
+import type { LocalizeFunc } from "../../../../../common/translations/localize";
+import type { SchemaUnion } from "../../../../../components/ha-form/types";
import type { SunCondition } from "../../../../../data/automation";
import type { HomeAssistant } from "../../../../../types";
import type { ConditionElement } from "../ha-automation-condition-row";
-import type { LocalizeFunc } from "../../../../../common/translations/localize";
+
import "../../../../../components/ha-form/ha-form";
-import type { SchemaUnion } from "../../../../../components/ha-form/types";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
@customElement("ha-automation-condition-sun")
export class HaSunCondition extends LitElement implements ConditionElement {
diff --git a/src/panels/config/automation/condition/types/ha-automation-condition-template.ts b/src/panels/config/automation/condition/types/ha-automation-condition-template.ts
index 588ac881e7..6809493e96 100644
--- a/src/panels/config/automation/condition/types/ha-automation-condition-template.ts
+++ b/src/panels/config/automation/condition/types/ha-automation-condition-template.ts
@@ -1,8 +1,11 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import "../../../../../components/ha-textarea";
import type { TemplateCondition } from "../../../../../data/automation";
import type { HomeAssistant } from "../../../../../types";
+
+import "../../../../../components/ha-textarea";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { handleChangeEvent } from "../ha-automation-condition-row";
@customElement("ha-automation-condition-template")
diff --git a/src/panels/config/automation/condition/types/ha-automation-condition-time.ts b/src/panels/config/automation/condition/types/ha-automation-condition-time.ts
index 07ed5d4e4b..b2735afabd 100644
--- a/src/panels/config/automation/condition/types/ha-automation-condition-time.ts
+++ b/src/panels/config/automation/condition/types/ha-automation-condition-time.ts
@@ -1,16 +1,19 @@
-import { html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { firstWeekdayIndex } from "../../../../../common/datetime/first_weekday";
-import { fireEvent } from "../../../../../common/dom/fire_event";
import type { LocalizeFunc } from "../../../../../common/translations/localize";
-import "../../../../../components/ha-form/ha-form";
import type { SchemaUnion } from "../../../../../components/ha-form/types";
import type { TimeCondition } from "../../../../../data/automation";
import type { FrontendLocaleData } from "../../../../../data/translation";
import type { HomeAssistant } from "../../../../../types";
import type { ConditionElement } from "../ha-automation-condition-row";
+import "../../../../../components/ha-form/ha-form";
+
+import { html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { firstWeekdayIndex } from "../../../../../common/datetime/first_weekday";
+import { fireEvent } from "../../../../../common/dom/fire_event";
+
const DAYS = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"] as const;
@customElement("ha-automation-condition-time")
diff --git a/src/panels/config/automation/condition/types/ha-automation-condition-trigger.ts b/src/panels/config/automation/condition/types/ha-automation-condition-trigger.ts
index 577d13d070..1a420b5f80 100644
--- a/src/panels/config/automation/condition/types/ha-automation-condition-trigger.ts
+++ b/src/panels/config/automation/condition/types/ha-automation-condition-trigger.ts
@@ -1,20 +1,23 @@
-import "@material/mwc-list/mwc-list-item";
+import type { SchemaUnion } from "../../../../../components/ha-form/types";
+import type { HomeAssistant } from "../../../../../types";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+
+import "../../../../../components/ha-form/ha-form";
+import "../../../../../components/ha-select";
+import "@material/mwc-list/mwc-list-item";
+
import { html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { ensureArray } from "../../../../../common/array/ensure-array";
import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-form/ha-form";
-import type { SchemaUnion } from "../../../../../components/ha-form/types";
-import "../../../../../components/ha-select";
import {
flattenTriggers,
type AutomationConfig,
type Trigger,
type TriggerCondition,
} from "../../../../../data/automation";
-import type { HomeAssistant } from "../../../../../types";
const getTriggersIds = (triggers: Trigger[]): string[] => {
const triggerIds = flattenTriggers(triggers)
diff --git a/src/panels/config/automation/condition/types/ha-automation-condition-zone.ts b/src/panels/config/automation/condition/types/ha-automation-condition-zone.ts
index 2f593c51bd..54274a5751 100644
--- a/src/panels/config/automation/condition/types/ha-automation-condition-zone.ts
+++ b/src/panels/config/automation/condition/types/ha-automation-condition-zone.ts
@@ -1,11 +1,14 @@
+import type { ZoneCondition } from "../../../../../data/automation";
+import type { ValueChangedEvent, HomeAssistant } from "../../../../../types";
+
+import "../../../../../components/entity/ha-entity-picker";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
+
import { fireEvent } from "../../../../../common/dom/fire_event";
import { computeStateDomain } from "../../../../../common/entity/compute_state_domain";
import { hasLocation } from "../../../../../common/entity/has_location";
-import "../../../../../components/entity/ha-entity-picker";
-import type { ZoneCondition } from "../../../../../data/automation";
-import type { ValueChangedEvent, HomeAssistant } from "../../../../../types";
function zoneAndLocationFilter(stateObj) {
return hasLocation(stateObj) && computeStateDomain(stateObj) !== "zone";
diff --git a/src/panels/config/automation/dialog-new-automation.ts b/src/panels/config/automation/dialog-new-automation.ts
index 8429515308..84252f24ab 100644
--- a/src/panels/config/automation/dialog-new-automation.ts
+++ b/src/panels/config/automation/dialog-new-automation.ts
@@ -1,4 +1,19 @@
+import type {
+ Blueprint,
+ BlueprintDomain,
+ BlueprintSourceType,
+ Blueprints,
+} from "../../../data/blueprint";
+import type { HassDialog } from "../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../types";
+import type { NewAutomationDialogParams } from "./show-dialog-new-automation";
+import type { CSSResultGroup } from "lit";
+
+import "../../../components/ha-icon-next";
+import "../../../components/ha-list-item";
+import "../../../components/ha-tip";
import "@material/mwc-list/mwc-list";
+
import {
mdiAccount,
mdiFile,
@@ -6,35 +21,23 @@ import {
mdiPencilOutline,
mdiWeb,
} from "@mdi/js";
-import type { CSSResultGroup } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../../common/dom/fire_event";
import { shouldHandleRequestSelectedEvent } from "../../../common/mwc/handle-request-selected-event";
import { stringCompare } from "../../../common/string/compare";
import { createCloseHeading } from "../../../components/ha-dialog";
-import "../../../components/ha-icon-next";
-import "../../../components/ha-list-item";
-import "../../../components/ha-tip";
import { showAutomationEditor } from "../../../data/automation";
-import type {
- Blueprint,
- BlueprintDomain,
- BlueprintSourceType,
- Blueprints,
-} from "../../../data/blueprint";
import {
fetchBlueprints,
getBlueprintSourceType,
} from "../../../data/blueprint";
import { showScriptEditor } from "../../../data/script";
-import type { HassDialog } from "../../../dialogs/make-dialog-manager";
import { mdiHomeAssistant } from "../../../resources/home-assistant-logo-svg";
import { haStyle, haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { documentationUrl } from "../../../util/documentation-url";
-import type { NewAutomationDialogParams } from "./show-dialog-new-automation";
const SOURCE_TYPE_ICONS: Record = {
local: mdiFile,
diff --git a/src/panels/config/automation/ha-automation-editor.ts b/src/panels/config/automation/ha-automation-editor.ts
index 77ab99ab88..d53d552241 100644
--- a/src/panels/config/automation/ha-automation-editor.ts
+++ b/src/panels/config/automation/ha-automation-editor.ts
@@ -1,4 +1,26 @@
+import type {
+ AutomationConfig,
+ AutomationEntity,
+ BlueprintAutomationConfig,
+} from "../../../data/automation";
+import type { Entries, HomeAssistant, Route } from "../../../types";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/ha-button-menu";
+import "../../../components/ha-fab";
+import "../../../components/ha-icon";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-list-item";
+import "../../../components/ha-svg-icon";
+import "../../../components/ha-yaml-editor";
+import "../../../layouts/hass-subpage";
+import "../ha-config-section";
+import "./blueprint-automation-editor";
+import "./manual-automation-editor";
import "@material/mwc-button";
+
+import { consume } from "@lit-labs/context";
import {
mdiCog,
mdiContentDuplicate,
@@ -17,29 +39,16 @@ import {
mdiTag,
mdiTransitConnection,
} from "@mdi/js";
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
import { css, html, LitElement, nothing } from "lit";
import { property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
-import { consume } from "@lit-labs/context";
+
+import { transform } from "../../../common/decorators/transform";
import { fireEvent } from "../../../common/dom/fire_event";
import { navigate } from "../../../common/navigate";
import { computeRTL } from "../../../common/util/compute_rtl";
-import { afterNextRender } from "../../../common/util/render-status";
import { promiseTimeout } from "../../../common/util/promise-timeout";
-import "../../../components/ha-button-menu";
-import "../../../components/ha-fab";
-import "../../../components/ha-icon";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-list-item";
-import "../../../components/ha-svg-icon";
-import "../../../components/ha-yaml-editor";
-import type {
- AutomationConfig,
- AutomationEntity,
- BlueprintAutomationConfig,
-} from "../../../data/automation";
+import { afterNextRender } from "../../../common/util/render-status";
import {
deleteAutomation,
fetchAutomationFileConfig,
@@ -52,6 +61,7 @@ import {
} from "../../../data/automation";
import { substituteBlueprint } from "../../../data/blueprint";
import { validateConfig } from "../../../data/config";
+import { fullEntitiesContext } from "../../../data/context";
import { UNAVAILABLE } from "../../../data/entity";
import {
type EntityRegistryEntry,
@@ -61,24 +71,17 @@ import {
showAlertDialog,
showConfirmationDialog,
} from "../../../dialogs/generic/show-dialog-box";
-import "../../../layouts/hass-subpage";
+import { showMoreInfoDialog } from "../../../dialogs/more-info/show-ha-more-info-dialog";
import { KeyboardShortcutMixin } from "../../../mixins/keyboard-shortcut-mixin";
+import { PreventUnsavedMixin } from "../../../mixins/prevent-unsaved-mixin";
import { haStyle } from "../../../resources/styles";
-import type { Entries, HomeAssistant, Route } from "../../../types";
import { showToast } from "../../../util/toast";
-import "../ha-config-section";
+import { showAssignCategoryDialog } from "../category/show-dialog-assign-category";
import { showAutomationModeDialog } from "./automation-mode-dialog/show-dialog-automation-mode";
import {
type EntityRegistryUpdate,
showAutomationSaveDialog,
} from "./automation-save-dialog/show-dialog-automation-save";
-import "./blueprint-automation-editor";
-import "./manual-automation-editor";
-import { showMoreInfoDialog } from "../../../dialogs/more-info/show-ha-more-info-dialog";
-import { showAssignCategoryDialog } from "../category/show-dialog-assign-category";
-import { PreventUnsavedMixin } from "../../../mixins/prevent-unsaved-mixin";
-import { fullEntitiesContext } from "../../../data/context";
-import { transform } from "../../../common/decorators/transform";
declare global {
interface HTMLElementTagNameMap {
diff --git a/src/panels/config/automation/ha-automation-picker.ts b/src/panels/config/automation/ha-automation-picker.ts
index 6138f519ec..4d610407e0 100644
--- a/src/panels/config/automation/ha-automation-picker.ts
+++ b/src/panels/config/automation/ha-automation-picker.ts
@@ -1,3 +1,43 @@
+import type { HASSDomEvent } from "../../../common/dom/fire_event";
+import type { LocalizeFunc } from "../../../common/translations/localize";
+import type {
+ DataTableColumnContainer,
+ RowClickedEvent,
+ SelectionChangedEvent,
+ SortingChangedEvent,
+} from "../../../components/data-table/ha-data-table";
+import type { HaMdMenuItem } from "../../../components/ha-md-menu-item";
+import type { HaMenu } from "../../../components/ha-menu";
+import type { AutomationEntity } from "../../../data/automation";
+import type { CategoryRegistryEntry } from "../../../data/category_registry";
+import type { DataTableFilters } from "../../../data/data_table_filters";
+import type {
+ EntityRegistryEntry,
+ UpdateEntityRegistryEntryResult,
+} from "../../../data/entity_registry";
+import type { LabelRegistryEntry } from "../../../data/label_registry";
+import type { HomeAssistant, Route, ServiceCallResponse } from "../../../types";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/chips/ha-assist-chip";
+import "../../../components/data-table/ha-data-table-labels";
+import "../../../components/entity/ha-entity-toggle";
+import "../../../components/ha-fab";
+import "../../../components/ha-filter-blueprints";
+import "../../../components/ha-filter-categories";
+import "../../../components/ha-filter-devices";
+import "../../../components/ha-filter-entities";
+import "../../../components/ha-filter-floor-areas";
+import "../../../components/ha-filter-labels";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-md-divider";
+import "../../../components/ha-md-menu-item";
+import "../../../components/ha-menu";
+import "../../../components/ha-sub-menu";
+import "../../../components/ha-svg-icon";
+import "../../../layouts/hass-tabs-subpage-data-table";
+
import { consume } from "@lit-labs/context";
import { ResizeController } from "@lit-labs/observers/resize-controller";
import {
@@ -19,52 +59,24 @@ import {
mdiTransitConnection,
} from "@mdi/js";
import { differenceInDays } from "date-fns";
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
import memoizeOne from "memoize-one";
+
import { computeCssColor } from "../../../common/color/compute-color";
import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import { formatShortDateTimeWithConditionalYear } from "../../../common/datetime/format_date_time";
import { relativeTime } from "../../../common/datetime/relative_time";
import { storage } from "../../../common/decorators/storage";
-import type { HASSDomEvent } from "../../../common/dom/fire_event";
import { fireEvent } from "../../../common/dom/fire_event";
import { computeStateName } from "../../../common/entity/compute_state_name";
import { navigate } from "../../../common/navigate";
-import type { LocalizeFunc } from "../../../common/translations/localize";
import {
hasRejectedItems,
rejectedItems,
} from "../../../common/util/promise-all-settled-results";
-import "../../../components/chips/ha-assist-chip";
-import type {
- DataTableColumnContainer,
- RowClickedEvent,
- SelectionChangedEvent,
- SortingChangedEvent,
-} from "../../../components/data-table/ha-data-table";
-import "../../../components/data-table/ha-data-table-labels";
-import "../../../components/entity/ha-entity-toggle";
-import "../../../components/ha-md-divider";
-import "../../../components/ha-fab";
-import "../../../components/ha-filter-blueprints";
-import "../../../components/ha-filter-categories";
-import "../../../components/ha-filter-devices";
-import "../../../components/ha-filter-entities";
-import "../../../components/ha-filter-floor-areas";
-import "../../../components/ha-filter-labels";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-md-menu-item";
-import type { HaMdMenuItem } from "../../../components/ha-md-menu-item";
-import "../../../components/ha-menu";
-import type { HaMenu } from "../../../components/ha-menu";
-import "../../../components/ha-sub-menu";
-import "../../../components/ha-svg-icon";
import { createAreaRegistryEntry } from "../../../data/area_registry";
-import type { AutomationEntity } from "../../../data/automation";
import {
deleteAutomation,
duplicateAutomation,
@@ -73,24 +85,17 @@ import {
showAutomationEditor,
triggerAutomationActions,
} from "../../../data/automation";
-import type { CategoryRegistryEntry } from "../../../data/category_registry";
import {
createCategoryRegistryEntry,
subscribeCategoryRegistry,
} from "../../../data/category_registry";
import { fullEntitiesContext } from "../../../data/context";
-import type { DataTableFilters } from "../../../data/data_table_filters";
import {
deserializeFilters,
serializeFilters,
} from "../../../data/data_table_filters";
import { UNAVAILABLE } from "../../../data/entity";
-import type {
- EntityRegistryEntry,
- UpdateEntityRegistryEntryResult,
-} from "../../../data/entity_registry";
import { updateEntityRegistryEntry } from "../../../data/entity_registry";
-import type { LabelRegistryEntry } from "../../../data/label_registry";
import {
createLabelRegistryEntry,
subscribeLabelRegistry,
@@ -100,10 +105,8 @@ import {
showAlertDialog,
showConfirmationDialog,
} from "../../../dialogs/generic/show-dialog-box";
-import "../../../layouts/hass-tabs-subpage-data-table";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant, Route, ServiceCallResponse } from "../../../types";
import { documentationUrl } from "../../../util/documentation-url";
import { turnOnOffEntity } from "../../lovelace/common/entity/turn-on-off-entity";
import { showAreaRegistryDetailDialog } from "../areas/show-dialog-area-registry-detail";
diff --git a/src/panels/config/automation/ha-automation-trace.ts b/src/panels/config/automation/ha-automation-trace.ts
index 562176d46e..f83489adea 100644
--- a/src/panels/config/automation/ha-automation-trace.ts
+++ b/src/panels/config/automation/ha-automation-trace.ts
@@ -1,4 +1,27 @@
+import type {
+ HatScriptGraph,
+ NodeInfo,
+} from "../../../components/trace/hat-script-graph";
+import type { AutomationEntity } from "../../../data/automation";
+import type { LogbookEntry } from "../../../data/logbook";
+import type {
+ AutomationTrace,
+ AutomationTraceExtended,
+} from "../../../data/trace";
+import type { HomeAssistant, Route } from "../../../types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../components/ha-button-menu";
+import "../../../components/ha-icon-button";
+import "../../../components/trace/ha-trace-blueprint-config";
+import "../../../components/trace/ha-trace-config";
+import "../../../components/trace/ha-trace-logbook";
+import "../../../components/trace/ha-trace-path-details";
+import "../../../components/trace/ha-trace-timeline";
+import "../../../components/trace/hat-script-graph";
+import "../../../layouts/hass-subpage";
import "@material/mwc-list/mwc-list-item";
+
import {
mdiDotsVertical,
mdiDownload,
@@ -8,40 +31,20 @@ import {
mdiRayStartArrow,
mdiRefresh,
} from "@mdi/js";
-import type { CSSResultGroup, TemplateResult } from "lit";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { repeat } from "lit/directives/repeat";
+
import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import { formatDateTimeWithSeconds } from "../../../common/datetime/format_date_time";
import { fireEvent } from "../../../common/dom/fire_event";
-import "../../../components/ha-button-menu";
-import "../../../components/ha-icon-button";
-import "../../../components/trace/ha-trace-blueprint-config";
-import "../../../components/trace/ha-trace-config";
-import "../../../components/trace/ha-trace-logbook";
-import "../../../components/trace/ha-trace-path-details";
-import "../../../components/trace/ha-trace-timeline";
-import "../../../components/trace/hat-script-graph";
-import type {
- HatScriptGraph,
- NodeInfo,
-} from "../../../components/trace/hat-script-graph";
+import { computeRTL } from "../../../common/util/compute_rtl";
import { traceTabStyles } from "../../../components/trace/trace-tab-styles";
-import type { AutomationEntity } from "../../../data/automation";
-import type { LogbookEntry } from "../../../data/logbook";
import { getLogbookDataForContext } from "../../../data/logbook";
-import type {
- AutomationTrace,
- AutomationTraceExtended,
-} from "../../../data/trace";
import { loadTrace, loadTraces } from "../../../data/trace";
import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
-import "../../../layouts/hass-subpage";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../types";
-import { computeRTL } from "../../../common/util/compute_rtl";
const TABS = ["details", "timeline", "logbook", "automation_config"] as const;
diff --git a/src/panels/config/automation/ha-config-automation.ts b/src/panels/config/automation/ha-config-automation.ts
index af11d0405c..c839b74cfd 100644
--- a/src/panels/config/automation/ha-config-automation.ts
+++ b/src/panels/config/automation/ha-config-automation.ts
@@ -1,16 +1,19 @@
-import type { HassEntities } from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
-import { customElement, property } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { computeStateDomain } from "../../../common/entity/compute_state_domain";
-import { debounce } from "../../../common/util/debounce";
import type { AutomationEntity } from "../../../data/automation";
import type { RouterOptions } from "../../../layouts/hass-router-page";
-import { HassRouterPage } from "../../../layouts/hass-router-page";
import type { HomeAssistant } from "../../../types";
+import type { HassEntities } from "home-assistant-js-websocket";
+import type { PropertyValues } from "lit";
+
import "./ha-automation-editor";
import "./ha-automation-picker";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { computeStateDomain } from "../../../common/entity/compute_state_domain";
+import { debounce } from "../../../common/util/debounce";
+import { HassRouterPage } from "../../../layouts/hass-router-page";
+
const equal = (a: AutomationEntity[], b: AutomationEntity[]): boolean => {
if (a.length !== b.length) {
return false;
diff --git a/src/panels/config/automation/manual-automation-editor.ts b/src/panels/config/automation/manual-automation-editor.ts
index 7799de3809..0f70b332ec 100644
--- a/src/panels/config/automation/manual-automation-editor.ts
+++ b/src/panels/config/automation/manual-automation-editor.ts
@@ -1,34 +1,38 @@
-import "@material/mwc-button/mwc-button";
-import { mdiHelpCircle } from "@mdi/js";
-import type { HassEntity } from "home-assistant-js-websocket";
-import type { CSSResultGroup, PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import { ensureArray } from "../../../common/array/ensure-array";
-import { fireEvent } from "../../../common/dom/fire_event";
-import "../../../components/ha-card";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-markdown";
import type {
Condition,
ManualAutomationConfig,
Trigger,
} from "../../../data/automation";
import type { Action } from "../../../data/script";
-import { haStyle } from "../../../resources/styles";
import type { HomeAssistant } from "../../../types";
-import { documentationUrl } from "../../../util/documentation-url";
+import type HaAutomationAction from "./action/ha-automation-action";
+import type HaAutomationCondition from "./condition/ha-automation-condition";
+import type HaAutomationTrigger from "./trigger/ha-automation-trigger";
+import type { HassEntity } from "home-assistant-js-websocket";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../components/ha-card";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-markdown";
import "./action/ha-automation-action";
import "./condition/ha-automation-condition";
import "./trigger/ha-automation-trigger";
-import type HaAutomationTrigger from "./trigger/ha-automation-trigger";
-import type HaAutomationAction from "./action/ha-automation-action";
-import type HaAutomationCondition from "./condition/ha-automation-condition";
+import "@material/mwc-button/mwc-button";
+
+import { mdiHelpCircle } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { ensureArray } from "../../../common/array/ensure-array";
+import { fireEvent } from "../../../common/dom/fire_event";
+import { constructUrlCurrentPath } from "../../../common/url/construct-url";
import {
extractSearchParam,
removeSearchParam,
} from "../../../common/url/search-params";
-import { constructUrlCurrentPath } from "../../../common/url/construct-url";
+import { haStyle } from "../../../resources/styles";
+import { documentationUrl } from "../../../util/documentation-url";
+
@customElement("manual-automation-editor")
export class HaManualAutomationEditor extends LitElement {
diff --git a/src/panels/config/automation/option/ha-automation-option-row.ts b/src/panels/config/automation/option/ha-automation-option-row.ts
index a6e4c80475..e5388bade0 100644
--- a/src/panels/config/automation/option/ha-automation-option-row.ts
+++ b/src/panels/config/automation/option/ha-automation-option-row.ts
@@ -1,6 +1,19 @@
-import { consume } from "@lit-labs/context";
+import type { Condition } from "../../../../data/automation";
+import type { EntityRegistryEntry } from "../../../../data/entity_registry";
+import type { Action, Option } from "../../../../data/script";
+import type { HomeAssistant } from "../../../../types";
import type { ActionDetail } from "@material/mwc-list/mwc-list-foundation";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-button-menu";
+import "../../../../components/ha-card";
+import "../../../../components/ha-expansion-panel";
+import "../../../../components/ha-icon-button";
+import "../action/ha-automation-action";
+import "../condition/ha-automation-condition";
import "@material/mwc-list/mwc-list-item";
+
+import { consume } from "@lit-labs/context";
import {
mdiArrowDown,
mdiArrowUp,
@@ -9,31 +22,21 @@ import {
mdiDotsVertical,
mdiRenameBox,
} from "@mdi/js";
-import type { CSSResultGroup } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { ensureArray } from "../../../../common/array/ensure-array";
import { fireEvent } from "../../../../common/dom/fire_event";
import { preventDefault } from "../../../../common/dom/prevent_default";
import { stopPropagation } from "../../../../common/dom/stop_propagation";
import { capitalizeFirstLetter } from "../../../../common/string/capitalize-first-letter";
-import "../../../../components/ha-button-menu";
-import "../../../../components/ha-card";
-import "../../../../components/ha-expansion-panel";
-import "../../../../components/ha-icon-button";
-import "../condition/ha-automation-condition";
-import "../action/ha-automation-action";
-import type { Condition } from "../../../../data/automation";
import { describeCondition } from "../../../../data/automation_i18n";
import { fullEntitiesContext } from "../../../../data/context";
-import type { EntityRegistryEntry } from "../../../../data/entity_registry";
-import type { Action, Option } from "../../../../data/script";
import {
showConfirmationDialog,
showPromptDialog,
} from "../../../../dialogs/generic/show-dialog-box";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
@customElement("ha-automation-option-row")
export default class HaAutomationOptionRow extends LitElement {
diff --git a/src/panels/config/automation/option/ha-automation-option.ts b/src/panels/config/automation/option/ha-automation-option.ts
index 0bbe6e919d..6fcf550a05 100644
--- a/src/panels/config/automation/option/ha-automation-option.ts
+++ b/src/panels/config/automation/option/ha-automation-option.ts
@@ -1,21 +1,24 @@
+import type { AutomationClipboard } from "../../../../data/automation";
+import type { Option } from "../../../../data/script";
+import type { HomeAssistant } from "../../../../types";
+import type HaAutomationOptionRow from "./ha-automation-option-row";
+import type { PropertyValues } from "lit";
+
+import "../../../../components/ha-button";
+import "../../../../components/ha-sortable";
+import "../../../../components/ha-svg-icon";
+import "./ha-automation-option-row";
+
import { mdiDrag, mdiPlus } from "@mdi/js";
import deepClone from "deep-clone-simple";
-import type { PropertyValues } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { repeat } from "lit/directives/repeat";
+
import { storage } from "../../../../common/decorators/storage";
import { fireEvent } from "../../../../common/dom/fire_event";
import { listenMediaQuery } from "../../../../common/dom/media_query";
import { nextRender } from "../../../../common/util/render-status";
-import "../../../../components/ha-button";
-import "../../../../components/ha-sortable";
-import "../../../../components/ha-svg-icon";
-import type { AutomationClipboard } from "../../../../data/automation";
-import type { Option } from "../../../../data/script";
-import type { HomeAssistant } from "../../../../types";
-import "./ha-automation-option-row";
-import type HaAutomationOptionRow from "./ha-automation-option-row";
@customElement("ha-automation-option")
export default class HaAutomationOption extends LitElement {
diff --git a/src/panels/config/automation/trigger/ha-automation-trigger-row.ts b/src/panels/config/automation/trigger/ha-automation-trigger-row.ts
index 62bcdf8468..c279956477 100644
--- a/src/panels/config/automation/trigger/ha-automation-trigger-row.ts
+++ b/src/panels/config/automation/trigger/ha-automation-trigger-row.ts
@@ -1,58 +1,19 @@
-import { consume } from "@lit-labs/context";
-import {
- mdiArrowDown,
- mdiArrowUp,
- mdiContentCopy,
- mdiContentCut,
- mdiContentDuplicate,
- mdiDelete,
- mdiDotsVertical,
- mdiIdentifier,
- mdiPlayCircleOutline,
- mdiPlaylistEdit,
- mdiRenameBox,
- mdiStopCircleOutline,
-} from "@mdi/js";
+import type { HaYamlEditor } from "../../../../components/ha-yaml-editor";
+import type { AutomationClipboard, Trigger } from "../../../../data/automation";
+import type { EntityRegistryEntry } from "../../../../data/entity_registry";
+import type { HomeAssistant } from "../../../../types";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { CSSResultGroup, PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import { storage } from "../../../../common/decorators/storage";
-import { dynamicElement } from "../../../../common/dom/dynamic-element-directive";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { preventDefault } from "../../../../common/dom/prevent_default";
-import { stopPropagation } from "../../../../common/dom/stop_propagation";
-import { capitalizeFirstLetter } from "../../../../common/string/capitalize-first-letter";
-import { handleStructError } from "../../../../common/structs/handle-errors";
-import { debounce } from "../../../../common/util/debounce";
+
import "../../../../components/ha-alert";
-import "../../../../components/ha-md-button-menu";
-import "../../../../components/ha-md-menu-item";
-import "../../../../components/ha-md-divider";
import "../../../../components/ha-card";
import "../../../../components/ha-expansion-panel";
import "../../../../components/ha-icon-button";
-import "../../../../components/ha-textfield";
import "../../../../components/ha-list-item";
-import type { HaYamlEditor } from "../../../../components/ha-yaml-editor";
-import type { AutomationClipboard, Trigger } from "../../../../data/automation";
-import {
- migrateAutomationTrigger,
- subscribeTrigger,
-} from "../../../../data/automation";
-import { describeTrigger } from "../../../../data/automation_i18n";
-import { validateConfig } from "../../../../data/config";
-import { fullEntitiesContext } from "../../../../data/context";
-import type { EntityRegistryEntry } from "../../../../data/entity_registry";
-import { TRIGGER_ICONS, isTriggerList } from "../../../../data/trigger";
-import {
- showAlertDialog,
- showConfirmationDialog,
- showPromptDialog,
-} from "../../../../dialogs/generic/show-dialog-box";
-import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
+import "../../../../components/ha-md-button-menu";
+import "../../../../components/ha-md-divider";
+import "../../../../components/ha-md-menu-item";
+import "../../../../components/ha-textfield";
import "./types/ha-automation-trigger-calendar";
import "./types/ha-automation-trigger-conversation";
import "./types/ha-automation-trigger-device";
@@ -72,6 +33,48 @@ import "./types/ha-automation-trigger-time_pattern";
import "./types/ha-automation-trigger-webhook";
import "./types/ha-automation-trigger-zone";
+import { consume } from "@lit-labs/context";
+import {
+ mdiArrowDown,
+ mdiArrowUp,
+ mdiContentCopy,
+ mdiContentCut,
+ mdiContentDuplicate,
+ mdiDelete,
+ mdiDotsVertical,
+ mdiIdentifier,
+ mdiPlayCircleOutline,
+ mdiPlaylistEdit,
+ mdiRenameBox,
+ mdiStopCircleOutline,
+} from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+
+import { storage } from "../../../../common/decorators/storage";
+import { dynamicElement } from "../../../../common/dom/dynamic-element-directive";
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { preventDefault } from "../../../../common/dom/prevent_default";
+import { stopPropagation } from "../../../../common/dom/stop_propagation";
+import { capitalizeFirstLetter } from "../../../../common/string/capitalize-first-letter";
+import { handleStructError } from "../../../../common/structs/handle-errors";
+import { debounce } from "../../../../common/util/debounce";
+import {
+ migrateAutomationTrigger,
+ subscribeTrigger,
+} from "../../../../data/automation";
+import { describeTrigger } from "../../../../data/automation_i18n";
+import { validateConfig } from "../../../../data/config";
+import { fullEntitiesContext } from "../../../../data/context";
+import { TRIGGER_ICONS, isTriggerList } from "../../../../data/trigger";
+import {
+ showAlertDialog,
+ showConfirmationDialog,
+ showPromptDialog,
+} from "../../../../dialogs/generic/show-dialog-box";
+import { haStyle } from "../../../../resources/styles";
+
export interface TriggerElement extends LitElement {
trigger: Trigger;
}
diff --git a/src/panels/config/automation/trigger/ha-automation-trigger.ts b/src/panels/config/automation/trigger/ha-automation-trigger.ts
index 49e53723b3..de28c13123 100644
--- a/src/panels/config/automation/trigger/ha-automation-trigger.ts
+++ b/src/panels/config/automation/trigger/ha-automation-trigger.ts
@@ -1,30 +1,33 @@
-import { mdiDrag, mdiPlus } from "@mdi/js";
-import deepClone from "deep-clone-simple";
-import type { PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { repeat } from "lit/directives/repeat";
-import { storage } from "../../../../common/decorators/storage";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { listenMediaQuery } from "../../../../common/dom/media_query";
-import { nextRender } from "../../../../common/util/render-status";
-import "../../../../components/ha-button";
-import "../../../../components/ha-button-menu";
-import "../../../../components/ha-sortable";
-import "../../../../components/ha-svg-icon";
import type {
AutomationClipboard,
Trigger,
TriggerList,
} from "../../../../data/automation";
-import { isTriggerList } from "../../../../data/trigger";
import type { HomeAssistant } from "../../../../types";
+import type HaAutomationTriggerRow from "./ha-automation-trigger-row";
+import type { PropertyValues } from "lit";
+
+import "../../../../components/ha-button";
+import "../../../../components/ha-button-menu";
+import "../../../../components/ha-sortable";
+import "../../../../components/ha-svg-icon";
+import "./ha-automation-trigger-row";
+
+import { mdiDrag, mdiPlus } from "@mdi/js";
+import deepClone from "deep-clone-simple";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { repeat } from "lit/directives/repeat";
+
+import { storage } from "../../../../common/decorators/storage";
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { listenMediaQuery } from "../../../../common/dom/media_query";
+import { nextRender } from "../../../../common/util/render-status";
+import { isTriggerList } from "../../../../data/trigger";
import {
PASTE_VALUE,
showAddAutomationElementDialog,
} from "../show-add-automation-element-dialog";
-import "./ha-automation-trigger-row";
-import type HaAutomationTriggerRow from "./ha-automation-trigger-row";
@customElement("ha-automation-trigger")
export default class HaAutomationTrigger extends LitElement {
diff --git a/src/panels/config/automation/trigger/types/ha-automation-trigger-calendar.ts b/src/panels/config/automation/trigger/types/ha-automation-trigger-calendar.ts
index c2e11c7890..9223d9bd1b 100644
--- a/src/panels/config/automation/trigger/types/ha-automation-trigger-calendar.ts
+++ b/src/panels/config/automation/trigger/types/ha-automation-trigger-calendar.ts
@@ -1,15 +1,18 @@
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../../common/dom/fire_event";
+import type { LocalizeFunc } from "../../../../../common/translations/localize";
+import type { HaDurationData } from "../../../../../components/ha-duration-input";
+import type { SchemaUnion } from "../../../../../components/ha-form/types";
import type { CalendarTrigger } from "../../../../../data/automation";
import type { HomeAssistant } from "../../../../../types";
import type { TriggerElement } from "../ha-automation-trigger-row";
-import type { HaDurationData } from "../../../../../components/ha-duration-input";
+
import "../../../../../components/ha-form/ha-form";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
import { createDurationData } from "../../../../../common/datetime/create_duration_data";
-import type { LocalizeFunc } from "../../../../../common/translations/localize";
-import type { SchemaUnion } from "../../../../../components/ha-form/types";
+import { fireEvent } from "../../../../../common/dom/fire_event";
@customElement("ha-automation-trigger-calendar")
export class HaCalendarTrigger extends LitElement implements TriggerElement {
diff --git a/src/panels/config/automation/trigger/types/ha-automation-trigger-conversation.ts b/src/panels/config/automation/trigger/types/ha-automation-trigger-conversation.ts
index 4317f48007..8bf103bcc2 100644
--- a/src/panels/config/automation/trigger/types/ha-automation-trigger-conversation.ts
+++ b/src/panels/config/automation/trigger/types/ha-automation-trigger-conversation.ts
@@ -1,15 +1,18 @@
+import type { HaTextField } from "../../../../../components/ha-textfield";
+import type { ConversationTrigger } from "../../../../../data/automation";
+import type { HomeAssistant } from "../../../../../types";
+import type { TriggerElement } from "../ha-automation-trigger-row";
+
+import "../../../../../components/ha-icon-button";
+import "../../../../../components/ha-textfield";
+
import { mdiClose } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, query } from "lit/decorators";
+
import { ensureArray } from "../../../../../common/array/ensure-array";
import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-textfield";
-import type { HaTextField } from "../../../../../components/ha-textfield";
-import "../../../../../components/ha-icon-button";
-import type { ConversationTrigger } from "../../../../../data/automation";
import { showConfirmationDialog } from "../../../../../dialogs/generic/show-dialog-box";
-import type { HomeAssistant } from "../../../../../types";
-import type { TriggerElement } from "../ha-automation-trigger-row";
const PATTERN = "^[^.。,,?¿?؟!!;;::]+$";
diff --git a/src/panels/config/automation/trigger/types/ha-automation-trigger-device.ts b/src/panels/config/automation/trigger/types/ha-automation-trigger-device.ts
index ad72162fd7..c932d4223e 100644
--- a/src/panels/config/automation/trigger/types/ha-automation-trigger-device.ts
+++ b/src/panels/config/automation/trigger/types/ha-automation-trigger-device.ts
@@ -1,27 +1,30 @@
-import { consume } from "@lit-labs/context";
-import type { PropertyValues } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import { deepEqual } from "../../../../../common/util/deep-equal";
-import "../../../../../components/device/ha-device-picker";
-import "../../../../../components/device/ha-device-trigger-picker";
-import "../../../../../components/ha-form/ha-form";
-import { computeInitialHaFormData } from "../../../../../components/ha-form/compute-initial-ha-form-data";
-import { fullEntitiesContext } from "../../../../../data/context";
import type {
DeviceCapabilities,
DeviceTrigger,
} from "../../../../../data/device_automation";
+import type { EntityRegistryEntry } from "../../../../../data/entity_registry";
+import type { HomeAssistant } from "../../../../../types";
+import type { PropertyValues } from "lit";
+
+import "../../../../../components/device/ha-device-picker";
+import "../../../../../components/device/ha-device-trigger-picker";
+import "../../../../../components/ha-form/ha-form";
+
+import { consume } from "@lit-labs/context";
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+import { deepEqual } from "../../../../../common/util/deep-equal";
+import { computeInitialHaFormData } from "../../../../../components/ha-form/compute-initial-ha-form-data";
+import { fullEntitiesContext } from "../../../../../data/context";
import {
deviceAutomationsEqual,
fetchDeviceTriggerCapabilities,
localizeExtraFieldsComputeLabelCallback,
localizeExtraFieldsComputeHelperCallback,
} from "../../../../../data/device_automation";
-import type { EntityRegistryEntry } from "../../../../../data/entity_registry";
-import type { HomeAssistant } from "../../../../../types";
@customElement("ha-automation-trigger-device")
export class HaDeviceTrigger extends LitElement {
diff --git a/src/panels/config/automation/trigger/types/ha-automation-trigger-event.ts b/src/panels/config/automation/trigger/types/ha-automation-trigger-event.ts
index d0bd8ee870..ad99864e8e 100644
--- a/src/panels/config/automation/trigger/types/ha-automation-trigger-event.ts
+++ b/src/panels/config/automation/trigger/types/ha-automation-trigger-event.ts
@@ -1,12 +1,15 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-textfield";
-import "../../../../../components/ha-yaml-editor";
-import "../../../../../components/user/ha-users-picker";
import type { EventTrigger } from "../../../../../data/automation";
import type { HomeAssistant } from "../../../../../types";
import type { TriggerElement } from "../ha-automation-trigger-row";
+
+import "../../../../../components/ha-textfield";
+import "../../../../../components/ha-yaml-editor";
+import "../../../../../components/user/ha-users-picker";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
import { handleChangeEvent } from "../ha-automation-trigger-row";
@customElement("ha-automation-trigger-event")
diff --git a/src/panels/config/automation/trigger/types/ha-automation-trigger-geo_location.ts b/src/panels/config/automation/trigger/types/ha-automation-trigger-geo_location.ts
index c613c03193..093d178aab 100644
--- a/src/panels/config/automation/trigger/types/ha-automation-trigger-geo_location.ts
+++ b/src/panels/config/automation/trigger/types/ha-automation-trigger-geo_location.ts
@@ -1,12 +1,15 @@
+import type { LocalizeFunc } from "../../../../../common/translations/localize";
+import type { SchemaUnion } from "../../../../../components/ha-form/types";
+import type { GeoLocationTrigger } from "../../../../../data/automation";
+import type { HomeAssistant } from "../../../../../types";
+
import "../../../../../components/ha-form/ha-form";
+
import { html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../../../../common/dom/fire_event";
-import type { GeoLocationTrigger } from "../../../../../data/automation";
-import type { HomeAssistant } from "../../../../../types";
-import type { LocalizeFunc } from "../../../../../common/translations/localize";
-import type { SchemaUnion } from "../../../../../components/ha-form/types";
@customElement("ha-automation-trigger-geo_location")
export class HaGeolocationTrigger extends LitElement {
diff --git a/src/panels/config/automation/trigger/types/ha-automation-trigger-homeassistant.ts b/src/panels/config/automation/trigger/types/ha-automation-trigger-homeassistant.ts
index f194a734e2..444919d125 100644
--- a/src/panels/config/automation/trigger/types/ha-automation-trigger-homeassistant.ts
+++ b/src/panels/config/automation/trigger/types/ha-automation-trigger-homeassistant.ts
@@ -1,12 +1,15 @@
+import type { LocalizeFunc } from "../../../../../common/translations/localize";
+import type { SchemaUnion } from "../../../../../components/ha-form/types";
+import type { HassTrigger } from "../../../../../data/automation";
+import type { HomeAssistant } from "../../../../../types";
+
import "../../../../../components/ha-form/ha-form";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../../../../common/dom/fire_event";
-import type { HassTrigger } from "../../../../../data/automation";
-import type { HomeAssistant } from "../../../../../types";
-import type { LocalizeFunc } from "../../../../../common/translations/localize";
-import type { SchemaUnion } from "../../../../../components/ha-form/types";
@customElement("ha-automation-trigger-homeassistant")
export class HaHassTrigger extends LitElement {
diff --git a/src/panels/config/automation/trigger/types/ha-automation-trigger-list.ts b/src/panels/config/automation/trigger/types/ha-automation-trigger-list.ts
index 8fa59e39de..628f289b2c 100644
--- a/src/panels/config/automation/trigger/types/ha-automation-trigger-list.ts
+++ b/src/panels/config/automation/trigger/types/ha-automation-trigger-list.ts
@@ -1,10 +1,13 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { ensureArray } from "../../../../../common/array/ensure-array";
import type { TriggerList } from "../../../../../data/automation";
import type { HomeAssistant } from "../../../../../types";
-import "../ha-automation-trigger";
import type { TriggerElement } from "../ha-automation-trigger-row";
+
+import "../ha-automation-trigger";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { ensureArray } from "../../../../../common/array/ensure-array";
import { handleChangeEvent } from "../ha-automation-trigger-row";
@customElement("ha-automation-trigger-list")
diff --git a/src/panels/config/automation/trigger/types/ha-automation-trigger-mqtt.ts b/src/panels/config/automation/trigger/types/ha-automation-trigger-mqtt.ts
index c42a9f10be..e0a852853f 100644
--- a/src/panels/config/automation/trigger/types/ha-automation-trigger-mqtt.ts
+++ b/src/panels/config/automation/trigger/types/ha-automation-trigger-mqtt.ts
@@ -1,12 +1,15 @@
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-form/ha-form";
import type { SchemaUnion } from "../../../../../components/ha-form/types";
import type { MqttTrigger } from "../../../../../data/automation";
import type { HomeAssistant } from "../../../../../types";
import type { TriggerElement } from "../ha-automation-trigger-row";
+import "../../../../../components/ha-form/ha-form";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+
const SCHEMA = [
{ name: "topic", required: true, selector: { text: {} } },
{ name: "payload", selector: { text: {} } },
diff --git a/src/panels/config/automation/trigger/types/ha-automation-trigger-numeric_state.ts b/src/panels/config/automation/trigger/types/ha-automation-trigger-numeric_state.ts
index db78f6fcd4..11f52a39f6 100644
--- a/src/panels/config/automation/trigger/types/ha-automation-trigger-numeric_state.ts
+++ b/src/panels/config/automation/trigger/types/ha-automation-trigger-numeric_state.ts
@@ -1,16 +1,19 @@
-import type { PropertyValues } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { createDurationData } from "../../../../../common/datetime/create_duration_data";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import { hasTemplate } from "../../../../../common/string/has-template";
import type { LocalizeFunc } from "../../../../../common/translations/localize";
-import "../../../../../components/ha-form/ha-form";
import type { SchemaUnion } from "../../../../../components/ha-form/types";
import type { NumericStateTrigger } from "../../../../../data/automation";
import type { HomeAssistant } from "../../../../../types";
+import type { PropertyValues } from "lit";
+
+import "../../../../../components/ha-form/ha-form";
+
+import { html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
import { ensureArray } from "../../../../../common/array/ensure-array";
+import { createDurationData } from "../../../../../common/datetime/create_duration_data";
+import { fireEvent } from "../../../../../common/dom/fire_event";
+import { hasTemplate } from "../../../../../common/string/has-template";
@customElement("ha-automation-trigger-numeric_state")
export class HaNumericStateTrigger extends LitElement {
diff --git a/src/panels/config/automation/trigger/types/ha-automation-trigger-persistent_notification.ts b/src/panels/config/automation/trigger/types/ha-automation-trigger-persistent_notification.ts
index 55e5a81f97..c072371815 100644
--- a/src/panels/config/automation/trigger/types/ha-automation-trigger-persistent_notification.ts
+++ b/src/panels/config/automation/trigger/types/ha-automation-trigger-persistent_notification.ts
@@ -1,18 +1,20 @@
-import memoizeOne from "memoize-one";
-
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-button-menu";
-import "../../../../../components/ha-check-list-item";
-import "../../../../../components/ha-icon-button";
-import "../../../../../components/ha-textfield";
+import type { LocalizeFunc } from "../../../../../common/translations/localize";
+import type { SchemaUnion } from "../../../../../components/ha-form/types";
import type { PersistentNotificationTrigger } from "../../../../../data/automation";
import type { HomeAssistant } from "../../../../../types";
import type { TriggerElement } from "../ha-automation-trigger-row";
-import type { LocalizeFunc } from "../../../../../common/translations/localize";
-import type { SchemaUnion } from "../../../../../components/ha-form/types";
+
+import "../../../../../components/ha-button-menu";
+import "../../../../../components/ha-check-list-item";
import "../../../../../components/ha-form/ha-form";
+import "../../../../../components/ha-icon-button";
+import "../../../../../components/ha-textfield";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
const DEFAULT_UPDATE_TYPES = ["added", "removed"];
const DEFAULT_NOTIFICATION_ID = "";
diff --git a/src/panels/config/automation/trigger/types/ha-automation-trigger-state.ts b/src/panels/config/automation/trigger/types/ha-automation-trigger-state.ts
index 9f1f94cbdc..1ba02f73f3 100644
--- a/src/panels/config/automation/trigger/types/ha-automation-trigger-state.ts
+++ b/src/panels/config/automation/trigger/types/ha-automation-trigger-state.ts
@@ -1,6 +1,15 @@
+import type { LocalizeFunc } from "../../../../../common/translations/localize";
+import type { SchemaUnion } from "../../../../../components/ha-form/types";
+import type { StateTrigger } from "../../../../../data/automation";
+import type { HomeAssistant } from "../../../../../types";
+import type { TriggerElement } from "../ha-automation-trigger-row";
import type { PropertyValues } from "lit";
+
+import "../../../../../components/ha-form/ha-form";
+
import { html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
import {
array,
assert,
@@ -13,18 +22,12 @@ import {
string,
union,
} from "superstruct";
-import memoizeOne from "memoize-one";
-import type { LocalizeFunc } from "../../../../../common/translations/localize";
+
import { ensureArray } from "../../../../../common/array/ensure-array";
+import { createDurationData } from "../../../../../common/datetime/create_duration_data";
import { fireEvent } from "../../../../../common/dom/fire_event";
import { hasTemplate } from "../../../../../common/string/has-template";
-import type { StateTrigger } from "../../../../../data/automation";
-import type { HomeAssistant } from "../../../../../types";
import { baseTriggerStruct, forDictStruct } from "../../structs";
-import type { TriggerElement } from "../ha-automation-trigger-row";
-import "../../../../../components/ha-form/ha-form";
-import { createDurationData } from "../../../../../common/datetime/create_duration_data";
-import type { SchemaUnion } from "../../../../../components/ha-form/types";
const stateTriggerStruct = assign(
baseTriggerStruct,
diff --git a/src/panels/config/automation/trigger/types/ha-automation-trigger-sun.ts b/src/panels/config/automation/trigger/types/ha-automation-trigger-sun.ts
index 99171d8935..55cad78543 100644
--- a/src/panels/config/automation/trigger/types/ha-automation-trigger-sun.ts
+++ b/src/panels/config/automation/trigger/types/ha-automation-trigger-sun.ts
@@ -1,13 +1,16 @@
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../../common/dom/fire_event";
+import type { LocalizeFunc } from "../../../../../common/translations/localize";
+import type { SchemaUnion } from "../../../../../components/ha-form/types";
import type { SunTrigger } from "../../../../../data/automation";
import type { HomeAssistant } from "../../../../../types";
import type { TriggerElement } from "../ha-automation-trigger-row";
+
import "../../../../../components/ha-form/ha-form";
-import type { LocalizeFunc } from "../../../../../common/translations/localize";
-import type { SchemaUnion } from "../../../../../components/ha-form/types";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
@customElement("ha-automation-trigger-sun")
export class HaSunTrigger extends LitElement implements TriggerElement {
diff --git a/src/panels/config/automation/trigger/types/ha-automation-trigger-tag.ts b/src/panels/config/automation/trigger/types/ha-automation-trigger-tag.ts
index f582ce329a..13db59d53b 100644
--- a/src/panels/config/automation/trigger/types/ha-automation-trigger-tag.ts
+++ b/src/panels/config/automation/trigger/types/ha-automation-trigger-tag.ts
@@ -1,15 +1,18 @@
-import "@material/mwc-list/mwc-list-item";
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import { caseInsensitiveStringCompare } from "../../../../../common/string/compare";
-import "../../../../../components/ha-select";
import type { TagTrigger } from "../../../../../data/automation";
import type { Tag } from "../../../../../data/tag";
-import { fetchTags } from "../../../../../data/tag";
import type { HomeAssistant } from "../../../../../types";
import type { TriggerElement } from "../ha-automation-trigger-row";
+import type { PropertyValues } from "lit";
+
+import "../../../../../components/ha-select";
+import "@material/mwc-list/mwc-list-item";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+import { caseInsensitiveStringCompare } from "../../../../../common/string/compare";
+import { fetchTags } from "../../../../../data/tag";
@customElement("ha-automation-trigger-tag")
export class HaTagTrigger extends LitElement implements TriggerElement {
diff --git a/src/panels/config/automation/trigger/types/ha-automation-trigger-template.ts b/src/panels/config/automation/trigger/types/ha-automation-trigger-template.ts
index 4168e5e7d0..f25db47f7b 100644
--- a/src/panels/config/automation/trigger/types/ha-automation-trigger-template.ts
+++ b/src/panels/config/automation/trigger/types/ha-automation-trigger-template.ts
@@ -1,14 +1,17 @@
-import "../../../../../components/ha-textarea";
-import type { PropertyValues } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
+import type { SchemaUnion } from "../../../../../components/ha-form/types";
import type { TemplateTrigger } from "../../../../../data/automation";
import type { HomeAssistant } from "../../../../../types";
+import type { PropertyValues } from "lit";
+
import "../../../../../components/ha-form/ha-form";
+import "../../../../../components/ha-textarea";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { createDurationData } from "../../../../../common/datetime/create_duration_data";
import { fireEvent } from "../../../../../common/dom/fire_event";
import { hasTemplate } from "../../../../../common/string/has-template";
-import type { SchemaUnion } from "../../../../../components/ha-form/types";
const SCHEMA = [
{ name: "value_template", required: true, selector: { template: {} } },
diff --git a/src/panels/config/automation/trigger/types/ha-automation-trigger-time.ts b/src/panels/config/automation/trigger/types/ha-automation-trigger-time.ts
index 9154b1e86f..617786119b 100644
--- a/src/panels/config/automation/trigger/types/ha-automation-trigger-time.ts
+++ b/src/panels/config/automation/trigger/types/ha-automation-trigger-time.ts
@@ -1,14 +1,17 @@
-import type { PropertyValues } from "lit";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../../common/dom/fire_event";
import type { LocalizeFunc } from "../../../../../common/translations/localize";
-import "../../../../../components/ha-form/ha-form";
import type { SchemaUnion } from "../../../../../components/ha-form/types";
import type { TimeTrigger } from "../../../../../data/automation";
import type { HomeAssistant } from "../../../../../types";
import type { TriggerElement } from "../ha-automation-trigger-row";
+import type { PropertyValues } from "lit";
+
+import "../../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
import { computeDomain } from "../../../../../common/entity/compute_domain";
const MODE_TIME = "time";
diff --git a/src/panels/config/automation/trigger/types/ha-automation-trigger-time_pattern.ts b/src/panels/config/automation/trigger/types/ha-automation-trigger-time_pattern.ts
index 7d997268d8..5af35d04d2 100644
--- a/src/panels/config/automation/trigger/types/ha-automation-trigger-time_pattern.ts
+++ b/src/panels/config/automation/trigger/types/ha-automation-trigger-time_pattern.ts
@@ -1,12 +1,15 @@
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-form/ha-form";
import type { SchemaUnion } from "../../../../../components/ha-form/types";
import type { TimePatternTrigger } from "../../../../../data/automation";
import type { HomeAssistant } from "../../../../../types";
import type { TriggerElement } from "../ha-automation-trigger-row";
+import "../../../../../components/ha-form/ha-form";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+
const SCHEMA = [
{ name: "hours", selector: { text: {} } },
{ name: "minutes", selector: { text: {} } },
diff --git a/src/panels/config/automation/trigger/types/ha-automation-trigger-webhook.ts b/src/panels/config/automation/trigger/types/ha-automation-trigger-webhook.ts
index 0329b6ec04..a77ea5fe6a 100644
--- a/src/panels/config/automation/trigger/types/ha-automation-trigger-webhook.ts
+++ b/src/panels/config/automation/trigger/types/ha-automation-trigger-webhook.ts
@@ -1,23 +1,26 @@
-import type { RequestSelectedDetail } from "@material/mwc-list/mwc-list-item";
-import { mdiCog, mdiContentCopy } from "@mdi/js";
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import { slugify } from "../../../../../common/string/slugify";
-import { copyToClipboard } from "../../../../../common/util/copy-clipboard";
-import { stopPropagation } from "../../../../../common/dom/stop_propagation";
-import "../../../../../components/ha-button-menu";
-import "../../../../../components/ha-check-list-item";
-import "../../../../../components/ha-icon-button";
-import "../../../../../components/ha-textfield";
import type { HaTextField } from "../../../../../components/ha-textfield";
import type {
AutomationConfig,
WebhookTrigger,
} from "../../../../../data/automation";
import type { HomeAssistant } from "../../../../../types";
+import type { RequestSelectedDetail } from "@material/mwc-list/mwc-list-item";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { PropertyValues } from "lit";
+
+import "../../../../../components/ha-button-menu";
+import "../../../../../components/ha-check-list-item";
+import "../../../../../components/ha-icon-button";
+import "../../../../../components/ha-textfield";
+
+import { mdiCog, mdiContentCopy } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+import { stopPropagation } from "../../../../../common/dom/stop_propagation";
+import { slugify } from "../../../../../common/string/slugify";
+import { copyToClipboard } from "../../../../../common/util/copy-clipboard";
import { showToast } from "../../../../../util/toast";
import { handleChangeEvent } from "../ha-automation-trigger-row";
diff --git a/src/panels/config/automation/trigger/types/ha-automation-trigger-zone.ts b/src/panels/config/automation/trigger/types/ha-automation-trigger-zone.ts
index 4730893ae9..72b9affc90 100644
--- a/src/panels/config/automation/trigger/types/ha-automation-trigger-zone.ts
+++ b/src/panels/config/automation/trigger/types/ha-automation-trigger-zone.ts
@@ -1,13 +1,16 @@
+import type { HaRadio } from "../../../../../components/ha-radio";
+import type { ZoneTrigger } from "../../../../../data/automation";
+import type { ValueChangedEvent, HomeAssistant } from "../../../../../types";
+
import "../../../../../components/entity/ha-entity-picker";
import "../../../../../components/ha-formfield";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
+
import { fireEvent } from "../../../../../common/dom/fire_event";
import { computeStateDomain } from "../../../../../common/entity/compute_state_domain";
import { hasLocation } from "../../../../../common/entity/has_location";
-import type { ZoneTrigger } from "../../../../../data/automation";
-import type { ValueChangedEvent, HomeAssistant } from "../../../../../types";
-import type { HaRadio } from "../../../../../components/ha-radio";
function zoneAndLocationFilter(stateObj) {
return hasLocation(stateObj) && computeStateDomain(stateObj) !== "zone";
diff --git a/src/panels/config/backup/components/config/ha-backup-config-agents.ts b/src/panels/config/backup/components/config/ha-backup-config-agents.ts
index 687321f7c5..6715c04b29 100644
--- a/src/panels/config/backup/components/config/ha-backup-config-agents.ts
+++ b/src/panels/config/backup/components/config/ha-backup-config-agents.ts
@@ -1,27 +1,30 @@
-import { mdiCog, mdiDelete, mdiHarddisk, mdiNas } from "@mdi/js";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import { computeDomain } from "../../../../../common/entity/compute_domain";
-import { navigate } from "../../../../../common/navigate";
+import type {
+ BackupAgent,
+ BackupAgentsConfig,
+} from "../../../../../data/backup";
+import type { CloudStatus } from "../../../../../data/cloud";
+import type { HomeAssistant } from "../../../../../types";
+
import "../../../../../components/ha-icon-button";
import "../../../../../components/ha-md-list";
import "../../../../../components/ha-md-list-item";
import "../../../../../components/ha-svg-icon";
import "../../../../../components/ha-switch";
-import type {
- BackupAgent,
- BackupAgentsConfig,
-} from "../../../../../data/backup";
+
+import { mdiCog, mdiDelete, mdiHarddisk, mdiNas } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+import { computeDomain } from "../../../../../common/entity/compute_domain";
+import { navigate } from "../../../../../common/navigate";
import {
CLOUD_AGENT,
computeBackupAgentName,
isLocalAgent,
isNetworkMountAgent,
} from "../../../../../data/backup";
-import type { CloudStatus } from "../../../../../data/cloud";
-import type { HomeAssistant } from "../../../../../types";
import { brandsUrl } from "../../../../../util/brands-url";
const DEFAULT_AGENTS = [];
diff --git a/src/panels/config/backup/components/config/ha-backup-config-data.ts b/src/panels/config/backup/components/config/ha-backup-config-data.ts
index 34b41843dc..7a8bdda09a 100644
--- a/src/panels/config/backup/components/config/ha-backup-config-data.ts
+++ b/src/panels/config/backup/components/config/ha-backup-config-data.ts
@@ -1,3 +1,18 @@
+import type { HaMdSelect } from "../../../../../components/ha-md-select";
+import type { HaSwitch } from "../../../../../components/ha-switch";
+import type { HomeAssistant } from "../../../../../types";
+import type { BackupAddonItem } from "../ha-backup-addons-picker";
+import type { PropertyValues } from "lit";
+
+import "../../../../../components/ha-button";
+import "../../../../../components/ha-expansion-panel";
+import "../../../../../components/ha-md-list";
+import "../../../../../components/ha-md-list-item";
+import "../../../../../components/ha-md-select";
+import "../../../../../components/ha-md-select-option";
+import "../../../../../components/ha-switch";
+import "../ha-backup-addons-picker";
+
import {
mdiChartBox,
mdiCog,
@@ -5,25 +20,13 @@ import {
mdiPlayBoxMultiple,
mdiPuzzle,
} from "@mdi/js";
-import type { PropertyValues } from "lit";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { isComponentLoaded } from "../../../../../common/config/is_component_loaded";
import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-button";
-import "../../../../../components/ha-expansion-panel";
-import "../../../../../components/ha-md-list";
-import "../../../../../components/ha-md-list-item";
-import "../../../../../components/ha-md-select";
-import type { HaMdSelect } from "../../../../../components/ha-md-select";
-import "../../../../../components/ha-md-select-option";
-import "../../../../../components/ha-switch";
-import type { HaSwitch } from "../../../../../components/ha-switch";
import { fetchHassioAddonsInfo } from "../../../../../data/hassio/addon";
-import type { HomeAssistant } from "../../../../../types";
-import "../ha-backup-addons-picker";
-import type { BackupAddonItem } from "../ha-backup-addons-picker";
import { getRecorderInfo } from "../../../../../data/recorder";
export interface FormData {
diff --git a/src/panels/config/backup/components/config/ha-backup-config-encryption-key.ts b/src/panels/config/backup/components/config/ha-backup-config-encryption-key.ts
index f554a04230..2008a4d089 100644
--- a/src/panels/config/backup/components/config/ha-backup-config-encryption-key.ts
+++ b/src/panels/config/backup/components/config/ha-backup-config-encryption-key.ts
@@ -1,14 +1,16 @@
+import type { HomeAssistant } from "../../../../../types";
+
+import "../../../../../components/ha-md-list";
+import "../../../../../components/ha-md-list-item";
+
import { mdiDownload } from "@mdi/js";
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-md-list";
-import "../../../../../components/ha-md-list-item";
-import type { HomeAssistant } from "../../../../../types";
+import { downloadEmergencyKit } from "../../../../../data/backup";
import { showChangeBackupEncryptionKeyDialog } from "../../dialogs/show-dialog-change-backup-encryption-key";
import { showSetBackupEncryptionKeyDialog } from "../../dialogs/show-dialog-set-backup-encryption-key";
-
-import { downloadEmergencyKit } from "../../../../../data/backup";
import { showShowBackupEncryptionKeyDialog } from "../../dialogs/show-dialog-show-backup-encryption-key";
@customElement("ha-backup-config-encryption-key")
diff --git a/src/panels/config/backup/components/config/ha-backup-config-schedule.ts b/src/panels/config/backup/components/config/ha-backup-config-schedule.ts
index c19d334487..022cd48a9d 100644
--- a/src/panels/config/backup/components/config/ha-backup-config-schedule.ts
+++ b/src/panels/config/backup/components/config/ha-backup-config-schedule.ts
@@ -1,18 +1,28 @@
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import { clamp } from "../../../../../common/number/clamp";
import type { HaCheckbox } from "../../../../../components/ha-checkbox";
+import type { HaMdSelect } from "../../../../../components/ha-md-select";
+import type { BackupConfig, BackupDay } from "../../../../../data/backup";
+import type { HomeAssistant } from "../../../../../types";
+import type { PropertyValues } from "lit";
+
+import "../../../../../components/ha-checkbox";
+import "../../../../../components/ha-expansion-panel";
+import "../../../../../components/ha-formfield";
import "../../../../../components/ha-md-list";
import "../../../../../components/ha-md-list-item";
import "../../../../../components/ha-md-select";
-import type { HaMdSelect } from "../../../../../components/ha-md-select";
import "../../../../../components/ha-md-select-option";
import "../../../../../components/ha-md-textfield";
import "../../../../../components/ha-switch";
-import type { BackupConfig, BackupDay } from "../../../../../data/backup";
+import "../../../../../components/ha-time-input";
+import "../../../../../components/ha-tip";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { formatTime } from "../../../../../common/datetime/format_time";
+import { fireEvent } from "../../../../../common/dom/fire_event";
+import { clamp } from "../../../../../common/number/clamp";
import {
BACKUP_DAYS,
BackupScheduleRecurrence,
@@ -20,13 +30,6 @@ import {
DEFAULT_OPTIMIZED_BACKUP_START_TIME,
sortWeekdays,
} from "../../../../../data/backup";
-import type { HomeAssistant } from "../../../../../types";
-import "../../../../../components/ha-time-input";
-import "../../../../../components/ha-tip";
-import "../../../../../components/ha-expansion-panel";
-import "../../../../../components/ha-checkbox";
-import "../../../../../components/ha-formfield";
-import { formatTime } from "../../../../../common/datetime/format_time";
import { documentationUrl } from "../../../../../util/documentation-url";
export type BackupConfigSchedule = Pick;
diff --git a/src/panels/config/backup/components/ha-backup-addons-picker.ts b/src/panels/config/backup/components/ha-backup-addons-picker.ts
index 74899f753f..68b408ea8c 100644
--- a/src/panels/config/backup/components/ha-backup-addons-picker.ts
+++ b/src/panels/config/backup/components/ha-backup-addons-picker.ts
@@ -1,14 +1,17 @@
+import type { HaCheckbox } from "../../../../components/ha-checkbox";
+import type { HomeAssistant } from "../../../../types";
+
+import "../../../../components/ha-checkbox";
+import "../../../../components/ha-formfield";
+import "./ha-backup-formfield-label";
+
import { mdiPuzzle } from "@mdi/js";
import { LitElement, css, html } from "lit";
import { customElement, property } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../../../common/dom/fire_event";
import { stringCompare } from "../../../../common/string/compare";
-import "../../../../components/ha-checkbox";
-import type { HaCheckbox } from "../../../../components/ha-checkbox";
-import "../../../../components/ha-formfield";
-import type { HomeAssistant } from "../../../../types";
-import "./ha-backup-formfield-label";
export interface BackupAddonItem {
slug: string;
diff --git a/src/panels/config/backup/components/ha-backup-agents-picker.ts b/src/panels/config/backup/components/ha-backup-agents-picker.ts
index 529a5089dc..13a48bb5e3 100644
--- a/src/panels/config/backup/components/ha-backup-agents-picker.ts
+++ b/src/panels/config/backup/components/ha-backup-agents-picker.ts
@@ -1,19 +1,22 @@
+import type { BackupAgent } from "../../../../data/backup";
+import type { HomeAssistant } from "../../../../types";
+
+import "../../../../components/ha-checkbox";
+import "../../../../components/ha-formfield";
+import "../../../../components/ha-svg-icon";
+
import { mdiHarddisk, mdiNas } from "@mdi/js";
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { fireEvent } from "../../../../common/dom/fire_event";
import { computeDomain } from "../../../../common/entity/compute_domain";
-import "../../../../components/ha-checkbox";
-import "../../../../components/ha-formfield";
-import "../../../../components/ha-svg-icon";
-import type { BackupAgent } from "../../../../data/backup";
import {
computeBackupAgentName,
isLocalAgent,
isNetworkMountAgent,
} from "../../../../data/backup";
-import type { HomeAssistant } from "../../../../types";
import { brandsUrl } from "../../../../util/brands-url";
@customElement("ha-backup-agents-picker")
diff --git a/src/panels/config/backup/components/ha-backup-data-picker.ts b/src/panels/config/backup/components/ha-backup-data-picker.ts
index 61417423d9..544b45a174 100644
--- a/src/panels/config/backup/components/ha-backup-data-picker.ts
+++ b/src/panels/config/backup/components/ha-backup-data-picker.ts
@@ -1,3 +1,15 @@
+import type { LocalizeFunc } from "../../../../common/translations/localize";
+import type { HaCheckbox } from "../../../../components/ha-checkbox";
+import type { BackupData } from "../../../../data/backup";
+import type { HomeAssistant } from "../../../../types";
+import type { BackupAddonItem } from "./ha-backup-addons-picker";
+import type { PropertyValues } from "lit";
+
+import "../../../../components/ha-checkbox";
+import "../../../../components/ha-formfield";
+import "./ha-backup-addons-picker";
+import "./ha-backup-formfield-label";
+
import {
mdiChartBox,
mdiCog,
@@ -6,24 +18,15 @@ import {
mdiPuzzle,
mdiShieldCheck,
} from "@mdi/js";
-import type { PropertyValues } from "lit";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { isComponentLoaded } from "../../../../common/config/is_component_loaded";
import { fireEvent } from "../../../../common/dom/fire_event";
import { capitalizeFirstLetter } from "../../../../common/string/capitalize-first-letter";
-import type { LocalizeFunc } from "../../../../common/translations/localize";
-import "../../../../components/ha-checkbox";
-import type { HaCheckbox } from "../../../../components/ha-checkbox";
-import "../../../../components/ha-formfield";
-import type { BackupData } from "../../../../data/backup";
import { fetchHassioAddonsInfo } from "../../../../data/hassio/addon";
import { mdiHomeAssistant } from "../../../../resources/home-assistant-logo-svg";
-import type { HomeAssistant } from "../../../../types";
-import "./ha-backup-addons-picker";
-import type { BackupAddonItem } from "./ha-backup-addons-picker";
-import "./ha-backup-formfield-label";
interface CheckBoxItem {
label: string;
diff --git a/src/panels/config/backup/components/ha-backup-details-restore.ts b/src/panels/config/backup/components/ha-backup-details-restore.ts
index 170a39bf5b..1d82c2207c 100644
--- a/src/panels/config/backup/components/ha-backup-details-restore.ts
+++ b/src/panels/config/backup/components/ha-backup-details-restore.ts
@@ -1,17 +1,20 @@
-import memoizeOne from "memoize-one";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import "../../../../components/ha-card";
-import "../../../../components/ha-md-list";
-import "../../../../components/ha-md-list-item";
-import "../../../../components/ha-button";
-import "./ha-backup-data-picker";
-import type { HomeAssistant } from "../../../../types";
import type { LocalizeFunc } from "../../../../common/translations/localize";
import type {
BackupContentExtended,
BackupData,
} from "../../../../data/backup";
+import type { HomeAssistant } from "../../../../types";
+
+import "../../../../components/ha-button";
+import "../../../../components/ha-card";
+import "../../../../components/ha-md-list";
+import "../../../../components/ha-md-list-item";
+import "./ha-backup-data-picker";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../../../common/dom/fire_event";
@customElement("ha-backup-details-restore")
diff --git a/src/panels/config/backup/components/ha-backup-details-summary.ts b/src/panels/config/backup/components/ha-backup-details-summary.ts
index 2bd0f2d6a3..848f07004b 100644
--- a/src/panels/config/backup/components/ha-backup-details-summary.ts
+++ b/src/panels/config/backup/components/ha-backup-details-summary.ts
@@ -1,9 +1,12 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
+import type { HomeAssistant } from "../../../../types";
+
import "../../../../components/ha-card";
import "../../../../components/ha-md-list";
import "../../../../components/ha-md-list-item";
-import type { HomeAssistant } from "../../../../types";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { formatDateTime } from "../../../../common/datetime/format_date_time";
import {
computeBackupSize,
diff --git a/src/panels/config/backup/components/ha-backup-formfield-label.ts b/src/panels/config/backup/components/ha-backup-formfield-label.ts
index d77c659851..1341d417d5 100644
--- a/src/panels/config/backup/components/ha-backup-formfield-label.ts
+++ b/src/panels/config/backup/components/ha-backup-formfield-label.ts
@@ -1,7 +1,9 @@
import type { TemplateResult } from "lit";
+
+import "../../../../components/ha-svg-icon";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
-import "../../../../components/ha-svg-icon";
@customElement("ha-backup-formfield-label")
class SupervisorFormfieldLabel extends LitElement {
diff --git a/src/panels/config/backup/components/ha-backup-summary-card.ts b/src/panels/config/backup/components/ha-backup-summary-card.ts
index 16dd2bf4bb..60861462d8 100644
--- a/src/panels/config/backup/components/ha-backup-summary-card.ts
+++ b/src/panels/config/backup/components/ha-backup-summary-card.ts
@@ -1,3 +1,8 @@
+import "../../../../components/ha-button";
+import "../../../../components/ha-card";
+import "../../../../components/ha-icon";
+import "../../../../components/ha-spinner";
+
import {
mdiAlertCircleOutline,
mdiAlertOutline,
@@ -7,10 +12,6 @@ import {
} from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
-import "../../../../components/ha-button";
-import "../../../../components/ha-card";
-import "../../../../components/ha-spinner";
-import "../../../../components/ha-icon";
type SummaryStatus = "success" | "error" | "info" | "warning" | "loading";
diff --git a/src/panels/config/backup/components/overview/ha-backup-overview-backups.ts b/src/panels/config/backup/components/overview/ha-backup-overview-backups.ts
index c140713aba..930ef16ad9 100644
--- a/src/panels/config/backup/components/overview/ha-backup-overview-backups.ts
+++ b/src/panels/config/backup/components/overview/ha-backup-overview-backups.ts
@@ -1,22 +1,25 @@
-import { mdiCalendarSync, mdiGestureTap, mdiPuzzle } from "@mdi/js";
+import type { BackupContent, BackupType } from "../../../../../data/backup";
+import type { HomeAssistant } from "../../../../../types";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { isComponentLoaded } from "../../../../../common/config/is_component_loaded";
+
import "../../../../../components/ha-button";
import "../../../../../components/ha-card";
import "../../../../../components/ha-icon-next";
import "../../../../../components/ha-md-list";
import "../../../../../components/ha-md-list-item";
-import type { BackupContent, BackupType } from "../../../../../data/backup";
+
+import { mdiCalendarSync, mdiGestureTap, mdiPuzzle } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { isComponentLoaded } from "../../../../../common/config/is_component_loaded";
import {
computeBackupSize,
computeBackupType,
getBackupTypes,
} from "../../../../../data/backup";
import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
import { bytesToString } from "../../../../../util/bytes-to-string";
interface BackupStats {
diff --git a/src/panels/config/backup/components/overview/ha-backup-overview-onboarding.ts b/src/panels/config/backup/components/overview/ha-backup-overview-onboarding.ts
index 277c12a8d1..3d684f9ca3 100644
--- a/src/panels/config/backup/components/overview/ha-backup-overview-onboarding.ts
+++ b/src/panels/config/backup/components/overview/ha-backup-overview-onboarding.ts
@@ -1,13 +1,16 @@
-import { mdiInformationOutline } from "@mdi/js";
+import type { HomeAssistant } from "../../../../../types";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../../../../common/dom/fire_event";
+
import "../../../../../components/ha-button";
import "../../../../../components/ha-card";
import "../../../../../components/ha-svg-icon";
+
+import { mdiInformationOutline } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
declare global {
// for fire event
diff --git a/src/panels/config/backup/components/overview/ha-backup-overview-progress.ts b/src/panels/config/backup/components/overview/ha-backup-overview-progress.ts
index 223a351325..52346ea848 100644
--- a/src/panels/config/backup/components/overview/ha-backup-overview-progress.ts
+++ b/src/panels/config/backup/components/overview/ha-backup-overview-progress.ts
@@ -1,9 +1,11 @@
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
import type { ManagerStateEvent } from "../../../../../data/backup_manager";
import type { HomeAssistant } from "../../../../../types";
+
import "../ha-backup-summary-card";
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("ha-backup-overview-progress")
export class HaBackupOverviewProgress extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/config/backup/components/overview/ha-backup-overview-settings.ts b/src/panels/config/backup/components/overview/ha-backup-overview-settings.ts
index 4fd90b7048..9bdc2a04d8 100644
--- a/src/panels/config/backup/components/overview/ha-backup-overview-settings.ts
+++ b/src/panels/config/backup/components/overview/ha-backup-overview-settings.ts
@@ -1,25 +1,28 @@
-import { mdiCalendar, mdiDatabase, mdiPuzzle, mdiUpload } from "@mdi/js";
+import type { BackupAgent, BackupConfig } from "../../../../../data/backup";
+import type { HomeAssistant } from "../../../../../types";
import type { CSSResultGroup, PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { navigate } from "../../../../../common/navigate";
+
import "../../../../../components/ha-button";
import "../../../../../components/ha-card";
import "../../../../../components/ha-icon-next";
import "../../../../../components/ha-md-list";
import "../../../../../components/ha-md-list-item";
import "../../../../../components/ha-svg-icon";
-import type { BackupAgent, BackupConfig } from "../../../../../data/backup";
+
+import { mdiCalendar, mdiDatabase, mdiPuzzle, mdiUpload } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { isComponentLoaded } from "../../../../../common/config/is_component_loaded";
+import { navigate } from "../../../../../common/navigate";
import {
BackupScheduleRecurrence,
computeBackupAgentName,
getFormattedBackupTime,
isLocalAgent,
} from "../../../../../data/backup";
-import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
-import { isComponentLoaded } from "../../../../../common/config/is_component_loaded";
import { getRecorderInfo } from "../../../../../data/recorder";
+import { haStyle } from "../../../../../resources/styles";
@customElement("ha-backup-overview-settings")
class HaBackupBackupsSummary extends LitElement {
diff --git a/src/panels/config/backup/components/overview/ha-backup-overview-summary.ts b/src/panels/config/backup/components/overview/ha-backup-overview-summary.ts
index b238ad9767..1c13690a41 100644
--- a/src/panels/config/backup/components/overview/ha-backup-overview-summary.ts
+++ b/src/panels/config/backup/components/overview/ha-backup-overview-summary.ts
@@ -1,28 +1,31 @@
-import { mdiBackupRestore, mdiCalendar, mdiInformation } from "@mdi/js";
-import { addHours, differenceInDays, isToday, isTomorrow } from "date-fns";
+import type { BackupConfig, BackupContent } from "../../../../../data/backup";
+import type { HomeAssistant } from "../../../../../types";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { relativeTime } from "../../../../../common/datetime/relative_time";
+
import "../../../../../components/ha-button";
import "../../../../../components/ha-card";
+import "../../../../../components/ha-icon-button";
import "../../../../../components/ha-md-list";
import "../../../../../components/ha-md-list-item";
import "../../../../../components/ha-svg-icon";
-import "../../../../../components/ha-icon-button";
-import type { BackupConfig, BackupContent } from "../../../../../data/backup";
+import "../ha-backup-summary-card";
+
+import { mdiBackupRestore, mdiCalendar, mdiInformation } from "@mdi/js";
+import { addHours, differenceInDays, isToday, isTomorrow } from "date-fns";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import {
+ formatDate,
+ formatDateWeekday,
+} from "../../../../../common/datetime/format_date";
+import { relativeTime } from "../../../../../common/datetime/relative_time";
import {
BackupScheduleRecurrence,
getFormattedBackupTime,
} from "../../../../../data/backup";
import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
-import "../ha-backup-summary-card";
-import {
- formatDate,
- formatDateWeekday,
-} from "../../../../../common/datetime/format_date";
import { showAlertDialog } from "../../../../lovelace/custom-card-helpers";
const OVERDUE_MARGIN_HOURS = 3;
diff --git a/src/panels/config/backup/dialogs/dialog-backup-onboarding.ts b/src/panels/config/backup/dialogs/dialog-backup-onboarding.ts
index 6b4e51fe06..8152662adf 100644
--- a/src/panels/config/backup/dialogs/dialog-backup-onboarding.ts
+++ b/src/panels/config/backup/dialogs/dialog-backup-onboarding.ts
@@ -1,25 +1,36 @@
-import { mdiClose, mdiContentCopy, mdiDownload } from "@mdi/js";
+import type { HaMdDialog } from "../../../../components/ha-md-dialog";
+import type {
+ BackupConfig,
+ BackupMutableConfig,
+} from "../../../../data/backup";
+import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../../types";
+import type { BackupConfigData } from "../components/config/ha-backup-config-data";
+import type { BackupConfigSchedule } from "../components/config/ha-backup-config-schedule";
+import type { BackupOnboardingDialogParams } from "./show-dialog-backup_onboarding";
import type { CSSResultGroup, PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { isComponentLoaded } from "../../../../common/config/is_component_loaded";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { copyToClipboard } from "../../../../common/util/copy-clipboard";
+
import "../../../../components/ha-button";
import "../../../../components/ha-dialog-header";
import "../../../../components/ha-icon-button";
import "../../../../components/ha-icon-button-prev";
import "../../../../components/ha-icon-next";
import "../../../../components/ha-md-dialog";
-import type { HaMdDialog } from "../../../../components/ha-md-dialog";
import "../../../../components/ha-md-list";
import "../../../../components/ha-md-list-item";
import "../../../../components/ha-password-field";
import "../../../../components/ha-svg-icon";
-import type {
- BackupConfig,
- BackupMutableConfig,
-} from "../../../../data/backup";
+import "../components/config/ha-backup-config-agents";
+import "../components/config/ha-backup-config-data";
+import "../components/config/ha-backup-config-schedule";
+
+import { mdiClose, mdiContentCopy, mdiDownload } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { isComponentLoaded } from "../../../../common/config/is_component_loaded";
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { copyToClipboard } from "../../../../common/util/copy-clipboard";
import {
BackupScheduleRecurrence,
CLOUD_AGENT,
@@ -29,16 +40,8 @@ import {
HASSIO_LOCAL_AGENT,
updateBackupConfig,
} from "../../../../data/backup";
-import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
import { haStyle, haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import { showToast } from "../../../../util/toast";
-import "../components/config/ha-backup-config-agents";
-import "../components/config/ha-backup-config-data";
-import type { BackupConfigData } from "../components/config/ha-backup-config-data";
-import "../components/config/ha-backup-config-schedule";
-import type { BackupConfigSchedule } from "../components/config/ha-backup-config-schedule";
-import type { BackupOnboardingDialogParams } from "./show-dialog-backup_onboarding";
const STEPS = [
"welcome",
diff --git a/src/panels/config/backup/dialogs/dialog-change-backup-encryption-key.ts b/src/panels/config/backup/dialogs/dialog-change-backup-encryption-key.ts
index f8e7ee2f70..3b56f0ca2f 100644
--- a/src/panels/config/backup/dialogs/dialog-change-backup-encryption-key.ts
+++ b/src/panels/config/backup/dialogs/dialog-change-backup-encryption-key.ts
@@ -1,27 +1,30 @@
-import { mdiClose, mdiContentCopy, mdiDownload } from "@mdi/js";
+import type { HaMdDialog } from "../../../../components/ha-md-dialog";
+import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../../types";
+import type { ChangeBackupEncryptionKeyDialogParams } from "./show-dialog-change-backup-encryption-key";
import type { CSSResultGroup } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { copyToClipboard } from "../../../../common/util/copy-clipboard";
+
import "../../../../components/ha-button";
import "../../../../components/ha-dialog-header";
import "../../../../components/ha-icon-button";
import "../../../../components/ha-icon-button-prev";
import "../../../../components/ha-md-dialog";
-import type { HaMdDialog } from "../../../../components/ha-md-dialog";
import "../../../../components/ha-md-list";
import "../../../../components/ha-md-list-item";
import "../../../../components/ha-password-field";
+
+import { mdiClose, mdiContentCopy, mdiDownload } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { copyToClipboard } from "../../../../common/util/copy-clipboard";
import {
downloadEmergencyKit,
generateEncryptionKey,
} from "../../../../data/backup";
-import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
import { haStyle, haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import { showToast } from "../../../../util/toast";
-import type { ChangeBackupEncryptionKeyDialogParams } from "./show-dialog-change-backup-encryption-key";
const STEPS = ["current", "new", "done"] as const;
diff --git a/src/panels/config/backup/dialogs/dialog-download-decrypted-backup.ts b/src/panels/config/backup/dialogs/dialog-download-decrypted-backup.ts
index 8c82390142..8ee20187e8 100644
--- a/src/panels/config/backup/dialogs/dialog-download-decrypted-backup.ts
+++ b/src/panels/config/backup/dialogs/dialog-download-decrypted-backup.ts
@@ -1,27 +1,30 @@
-import { mdiClose } from "@mdi/js";
+import type { HaMdDialog } from "../../../../components/ha-md-dialog";
+import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../../types";
+import type { DownloadDecryptedBackupDialogParams } from "./show-dialog-download-decrypted-backup";
import type { CSSResultGroup } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
+
+import "../../../../components/ha-alert";
import "../../../../components/ha-dialog-header";
import "../../../../components/ha-icon-button";
import "../../../../components/ha-icon-next";
import "../../../../components/ha-md-dialog";
-import type { HaMdDialog } from "../../../../components/ha-md-dialog";
import "../../../../components/ha-md-list";
import "../../../../components/ha-md-list-item";
-import "../../../../components/ha-svg-icon";
import "../../../../components/ha-password-field";
-import "../../../../components/ha-alert";
+import "../../../../components/ha-svg-icon";
+
+import { mdiClose } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import {
canDecryptBackupOnDownload,
getPreferredAgentForDownload,
} from "../../../../data/backup";
-import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
import { haStyle, haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import { downloadBackupFile } from "../helper/download_backup";
-import type { DownloadDecryptedBackupDialogParams } from "./show-dialog-download-decrypted-backup";
@customElement("ha-dialog-download-decrypted-backup")
class DialogDownloadDecryptedBackup extends LitElement implements HassDialog {
diff --git a/src/panels/config/backup/dialogs/dialog-generate-backup.ts b/src/panels/config/backup/dialogs/dialog-generate-backup.ts
index 65d70784c3..e1c3db4637 100644
--- a/src/panels/config/backup/dialogs/dialog-generate-backup.ts
+++ b/src/panels/config/backup/dialogs/dialog-generate-backup.ts
@@ -1,9 +1,15 @@
-import { mdiClose } from "@mdi/js";
+import type { HaMdDialog } from "../../../../components/ha-md-dialog";
+import type {
+ BackupAgent,
+ BackupConfig,
+ GenerateBackupParams,
+} from "../../../../data/backup";
+import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../../types";
+import type { BackupConfigData } from "../components/config/ha-backup-config-data";
+import type { GenerateBackupDialogParams } from "./show-dialog-generate-backup";
import type { CSSResultGroup, PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { isComponentLoaded } from "../../../../common/config/is_component_loaded";
-import { fireEvent } from "../../../../common/dom/fire_event";
+
import "../../../../components/ha-alert";
import "../../../../components/ha-button";
import "../../../../components/ha-dialog-header";
@@ -11,30 +17,27 @@ import "../../../../components/ha-expansion-panel";
import "../../../../components/ha-icon-button";
import "../../../../components/ha-icon-button-prev";
import "../../../../components/ha-md-dialog";
-import type { HaMdDialog } from "../../../../components/ha-md-dialog";
import "../../../../components/ha-md-list";
import "../../../../components/ha-md-list-item";
import "../../../../components/ha-md-select";
import "../../../../components/ha-md-select-option";
import "../../../../components/ha-textfield";
-import type {
- BackupAgent,
- BackupConfig,
- GenerateBackupParams,
-} from "../../../../data/backup";
+import "../components/config/ha-backup-config-data";
+import "../components/ha-backup-agents-picker";
+
+import { mdiClose } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { isComponentLoaded } from "../../../../common/config/is_component_loaded";
+import { fireEvent } from "../../../../common/dom/fire_event";
import {
CLOUD_AGENT,
compareAgents,
fetchBackupAgentsInfo,
fetchBackupConfig,
} from "../../../../data/backup";
-import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
import { haStyle, haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
-import "../components/config/ha-backup-config-data";
-import type { BackupConfigData } from "../components/config/ha-backup-config-data";
-import "../components/ha-backup-agents-picker";
-import type { GenerateBackupDialogParams } from "./show-dialog-generate-backup";
interface FormData {
name: string;
diff --git a/src/panels/config/backup/dialogs/dialog-local-backup-location.ts b/src/panels/config/backup/dialogs/dialog-local-backup-location.ts
index 3e171a5490..010ee2f81c 100644
--- a/src/panels/config/backup/dialogs/dialog-local-backup-location.ts
+++ b/src/panels/config/backup/dialogs/dialog-local-backup-location.ts
@@ -1,20 +1,23 @@
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-button";
-import { createCloseHeading } from "../../../../components/ha-dialog";
-import "../../../../components/ha-form/ha-form";
-import "../../../../components/ha-alert";
import type {
HaFormSchema,
SchemaUnion,
} from "../../../../components/ha-form/types";
+import type { HomeAssistant } from "../../../../types";
+import type { LocalBackupLocationDialogParams } from "./show-dialog-local-backup-location";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-alert";
+import "../../../../components/ha-button";
+import "../../../../components/ha-form/ha-form";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { createCloseHeading } from "../../../../components/ha-dialog";
import { extractApiErrorMessage } from "../../../../data/hassio/common";
import { changeMountOptions } from "../../../../data/supervisor/mounts";
import { haStyle, haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
-import type { LocalBackupLocationDialogParams } from "./show-dialog-local-backup-location";
const SCHEMA = [
{
diff --git a/src/panels/config/backup/dialogs/dialog-new-backup.ts b/src/panels/config/backup/dialogs/dialog-new-backup.ts
index 82927c07a8..5b299bb054 100644
--- a/src/panels/config/backup/dialogs/dialog-new-backup.ts
+++ b/src/panels/config/backup/dialogs/dialog-new-backup.ts
@@ -1,20 +1,23 @@
-import { mdiCalendarSync, mdiClose, mdiGestureTap } from "@mdi/js";
+import type { HaMdDialog } from "../../../../components/ha-md-dialog";
+import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../../types";
+import type { NewBackupDialogParams } from "./show-dialog-new-backup";
import type { CSSResultGroup } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
+
import "../../../../components/ha-dialog-header";
import "../../../../components/ha-icon-button";
import "../../../../components/ha-icon-next";
import "../../../../components/ha-md-dialog";
-import type { HaMdDialog } from "../../../../components/ha-md-dialog";
import "../../../../components/ha-md-list";
import "../../../../components/ha-md-list-item";
import "../../../../components/ha-svg-icon";
-import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
+
+import { mdiCalendarSync, mdiClose, mdiGestureTap } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { haStyle, haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
-import type { NewBackupDialogParams } from "./show-dialog-new-backup";
@customElement("ha-dialog-new-backup")
class DialogNewBackup extends LitElement implements HassDialog {
diff --git a/src/panels/config/backup/dialogs/dialog-restore-backup.ts b/src/panels/config/backup/dialogs/dialog-restore-backup.ts
index d70e9c5a89..9f2425d9ba 100644
--- a/src/panels/config/backup/dialogs/dialog-restore-backup.ts
+++ b/src/panels/config/backup/dialogs/dialog-restore-backup.ts
@@ -1,35 +1,37 @@
-import { mdiClose } from "@mdi/js";
+import type { HaMdDialog } from "../../../../components/ha-md-dialog";
+import type { RestoreBackupParams } from "../../../../data/backup";
+import type {
+ RestoreBackupStage,
+ RestoreBackupState,
+} from "../../../../data/backup_manager";
+import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../../types";
+import type { RestoreBackupDialogParams } from "./show-dialog-restore-backup";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-button";
-import "../../../../components/ha-spinner";
-import "../../../../components/ha-dialog-header";
-import "../../../../components/ha-password-field";
-import { isComponentLoaded } from "../../../../common/config/is_component_loaded";
import "../../../../components/ha-alert";
+import "../../../../components/ha-button";
+import "../../../../components/ha-dialog-header";
import "../../../../components/ha-icon-button";
import "../../../../components/ha-md-dialog";
-import type { HaMdDialog } from "../../../../components/ha-md-dialog";
+import "../../../../components/ha-password-field";
+import "../../../../components/ha-spinner";
import "../../../../components/ha-svg-icon";
-import type { RestoreBackupParams } from "../../../../data/backup";
+
+import { mdiClose } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { isComponentLoaded } from "../../../../common/config/is_component_loaded";
+import { fireEvent } from "../../../../common/dom/fire_event";
import {
fetchBackupConfig,
getPreferredAgentForDownload,
restoreBackup,
} from "../../../../data/backup";
-import type {
- RestoreBackupStage,
- RestoreBackupState,
-} from "../../../../data/backup_manager";
import { subscribeBackupEvents } from "../../../../data/backup_manager";
-import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
import { haStyle, haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
-import type { RestoreBackupDialogParams } from "./show-dialog-restore-backup";
interface FormData {
encryption_key_type: "config" | "custom";
diff --git a/src/panels/config/backup/dialogs/dialog-set-backup-encryption-key.ts b/src/panels/config/backup/dialogs/dialog-set-backup-encryption-key.ts
index 748e8cc325..4d9db44d30 100644
--- a/src/panels/config/backup/dialogs/dialog-set-backup-encryption-key.ts
+++ b/src/panels/config/backup/dialogs/dialog-set-backup-encryption-key.ts
@@ -1,27 +1,30 @@
-import { mdiClose, mdiContentCopy, mdiDownload } from "@mdi/js";
+import type { HaMdDialog } from "../../../../components/ha-md-dialog";
+import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../../types";
+import type { SetBackupEncryptionKeyDialogParams } from "./show-dialog-set-backup-encryption-key";
import type { CSSResultGroup } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { copyToClipboard } from "../../../../common/util/copy-clipboard";
+
import "../../../../components/ha-button";
import "../../../../components/ha-dialog-header";
import "../../../../components/ha-icon-button";
import "../../../../components/ha-icon-button-prev";
import "../../../../components/ha-md-dialog";
-import type { HaMdDialog } from "../../../../components/ha-md-dialog";
import "../../../../components/ha-md-list";
import "../../../../components/ha-md-list-item";
import "../../../../components/ha-password-field";
+
+import { mdiClose, mdiContentCopy, mdiDownload } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { copyToClipboard } from "../../../../common/util/copy-clipboard";
import {
downloadEmergencyKit,
generateEncryptionKey,
} from "../../../../data/backup";
-import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
import { haStyle, haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import { showToast } from "../../../../util/toast";
-import type { SetBackupEncryptionKeyDialogParams } from "./show-dialog-set-backup-encryption-key";
const STEPS = ["key", "done"] as const;
diff --git a/src/panels/config/backup/dialogs/dialog-show-backup-encryption-key.ts b/src/panels/config/backup/dialogs/dialog-show-backup-encryption-key.ts
index 15bb07096c..4127227ef4 100644
--- a/src/panels/config/backup/dialogs/dialog-show-backup-encryption-key.ts
+++ b/src/panels/config/backup/dialogs/dialog-show-backup-encryption-key.ts
@@ -1,24 +1,27 @@
-import { mdiClose, mdiContentCopy, mdiDownload } from "@mdi/js";
+import type { HaMdDialog } from "../../../../components/ha-md-dialog";
+import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../../types";
+import type { ShowBackupEncryptionKeyDialogParams } from "./show-dialog-show-backup-encryption-key";
import type { CSSResultGroup } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { copyToClipboard } from "../../../../common/util/copy-clipboard";
+
import "../../../../components/ha-button";
import "../../../../components/ha-dialog-header";
import "../../../../components/ha-icon-button";
import "../../../../components/ha-icon-button-prev";
import "../../../../components/ha-md-dialog";
-import type { HaMdDialog } from "../../../../components/ha-md-dialog";
import "../../../../components/ha-md-list";
import "../../../../components/ha-md-list-item";
import "../../../../components/ha-password-field";
+
+import { mdiClose, mdiContentCopy, mdiDownload } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { copyToClipboard } from "../../../../common/util/copy-clipboard";
import { downloadEmergencyKit } from "../../../../data/backup";
-import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
import { haStyle, haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import { showToast } from "../../../../util/toast";
-import type { ShowBackupEncryptionKeyDialogParams } from "./show-dialog-show-backup-encryption-key";
@customElement("ha-dialog-show-backup-encryption-key")
class DialogShowBackupEncryptionKey extends LitElement implements HassDialog {
diff --git a/src/panels/config/backup/dialogs/dialog-upload-backup.ts b/src/panels/config/backup/dialogs/dialog-upload-backup.ts
index 4a2621b6fe..63657dc4db 100644
--- a/src/panels/config/backup/dialogs/dialog-upload-backup.ts
+++ b/src/panels/config/backup/dialogs/dialog-upload-backup.ts
@@ -1,19 +1,25 @@
-import { mdiClose, mdiFolderUpload } from "@mdi/js";
+import type { HaMdDialog } from "../../../../components/ha-md-dialog";
+import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../../types";
+import type { UploadBackupDialogParams } from "./show-dialog-upload-backup";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { isComponentLoaded } from "../../../../common/config/is_component_loaded";
-import {
- fireEvent,
- type HASSDomEvent,
-} from "../../../../common/dom/fire_event";
+
import "../../../../components/ha-alert";
import "../../../../components/ha-dialog-header";
import "../../../../components/ha-expansion-panel";
import "../../../../components/ha-file-upload";
import "../../../../components/ha-icon-button";
import "../../../../components/ha-md-dialog";
-import type { HaMdDialog } from "../../../../components/ha-md-dialog";
+
+import { mdiClose, mdiFolderUpload } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { isComponentLoaded } from "../../../../common/config/is_component_loaded";
+import {
+ fireEvent,
+ type HASSDomEvent,
+} from "../../../../common/dom/fire_event";
import {
CORE_LOCAL_AGENT,
HASSIO_LOCAL_AGENT,
@@ -22,11 +28,8 @@ import {
INITIAL_UPLOAD_FORM_DATA,
type BackupUploadFileFormData,
} from "../../../../data/backup";
-import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
import { haStyle, haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import { showAlertDialog } from "../../../lovelace/custom-card-helpers";
-import type { UploadBackupDialogParams } from "./show-dialog-upload-backup";
@customElement("ha-dialog-upload-backup")
export class DialogUploadBackup
diff --git a/src/panels/config/backup/dialogs/show-dialog-backup_onboarding.ts b/src/panels/config/backup/dialogs/show-dialog-backup_onboarding.ts
index 12c0e026b1..90b4ea9ab6 100644
--- a/src/panels/config/backup/dialogs/show-dialog-backup_onboarding.ts
+++ b/src/panels/config/backup/dialogs/show-dialog-backup_onboarding.ts
@@ -1,7 +1,8 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { BackupConfig } from "../../../../data/backup";
import type { CloudStatus } from "../../../../data/cloud";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export interface BackupOnboardingDialogParams {
submit?: (value: boolean) => void;
cancel?: () => void;
diff --git a/src/panels/config/backup/dialogs/show-dialog-download-decrypted-backup.ts b/src/panels/config/backup/dialogs/show-dialog-download-decrypted-backup.ts
index 9f6984171d..c7105d8423 100644
--- a/src/panels/config/backup/dialogs/show-dialog-download-decrypted-backup.ts
+++ b/src/panels/config/backup/dialogs/show-dialog-download-decrypted-backup.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { BackupContent } from "../../../../data/backup";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export interface DownloadDecryptedBackupDialogParams {
backup: BackupContent;
agentId?: string;
diff --git a/src/panels/config/backup/dialogs/show-dialog-generate-backup.ts b/src/panels/config/backup/dialogs/show-dialog-generate-backup.ts
index 75d139d8f8..92d0545d2d 100644
--- a/src/panels/config/backup/dialogs/show-dialog-generate-backup.ts
+++ b/src/panels/config/backup/dialogs/show-dialog-generate-backup.ts
@@ -1,7 +1,8 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { GenerateBackupParams } from "../../../../data/backup";
import type { CloudStatus } from "../../../../data/cloud";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export interface GenerateBackupDialogParams {
submit?: (response: GenerateBackupParams) => void;
cancel?: () => void;
diff --git a/src/panels/config/backup/dialogs/show-dialog-new-backup.ts b/src/panels/config/backup/dialogs/show-dialog-new-backup.ts
index 84cbe72a31..90d2b06edb 100644
--- a/src/panels/config/backup/dialogs/show-dialog-new-backup.ts
+++ b/src/panels/config/backup/dialogs/show-dialog-new-backup.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { BackupConfig } from "../../../../data/backup";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export type NewBackupType = "automatic" | "manual";
export interface NewBackupDialogParams {
diff --git a/src/panels/config/backup/dialogs/show-dialog-restore-backup.ts b/src/panels/config/backup/dialogs/show-dialog-restore-backup.ts
index 67d329988a..2b4b0441b1 100644
--- a/src/panels/config/backup/dialogs/show-dialog-restore-backup.ts
+++ b/src/panels/config/backup/dialogs/show-dialog-restore-backup.ts
@@ -1,9 +1,10 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type {
BackupContentExtended,
BackupData,
} from "../../../../data/backup";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export interface RestoreBackupDialogParams {
backup: BackupContentExtended;
selectedData: BackupData;
diff --git a/src/panels/config/backup/ha-config-backup-backups.ts b/src/panels/config/backup/ha-config-backup-backups.ts
index 30af43c705..4bdc26fe31 100644
--- a/src/panels/config/backup/ha-config-backup-backups.ts
+++ b/src/panels/config/backup/ha-config-backup-backups.ts
@@ -1,3 +1,34 @@
+import type { LocalizeFunc } from "../../../common/translations/localize";
+import type {
+ DataTableColumnContainer,
+ DataTableRowData,
+ RowClickedEvent,
+ SelectionChangedEvent,
+} from "../../../components/data-table/ha-data-table";
+import type {
+ BackupAgent,
+ BackupConfig,
+ BackupContent,
+} from "../../../data/backup";
+import type { ManagerStateEvent } from "../../../data/backup_manager";
+import type { CloudStatus } from "../../../data/cloud";
+import type { DataTableFiltersValues } from "../../../data/data_table_filters";
+import type { HaTabsSubpageDataTable } from "../../../layouts/hass-tabs-subpage-data-table";
+import type { HomeAssistant, Route } from "../../../types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../components/ha-button";
+import "../../../components/ha-button-menu";
+import "../../../components/ha-fab";
+import "../../../components/ha-filter-states";
+import "../../../components/ha-icon";
+import "../../../components/ha-icon-next";
+import "../../../components/ha-icon-overflow-menu";
+import "../../../components/ha-list-item";
+import "../../../components/ha-spinner";
+import "../../../components/ha-svg-icon";
+import "../../../layouts/hass-tabs-subpage-data-table";
+
import {
mdiDelete,
mdiDotsVertical,
@@ -7,10 +38,10 @@ import {
mdiPlus,
mdiUpload,
} from "@mdi/js";
-import type { CSSResultGroup, TemplateResult } from "lit";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import { relativeTime } from "../../../common/datetime/relative_time";
import { storage } from "../../../common/decorators/storage";
@@ -18,28 +49,6 @@ import { fireEvent, type HASSDomEvent } from "../../../common/dom/fire_event";
import { computeDomain } from "../../../common/entity/compute_domain";
import { shouldHandleRequestSelectedEvent } from "../../../common/mwc/handle-request-selected-event";
import { navigate } from "../../../common/navigate";
-import type { LocalizeFunc } from "../../../common/translations/localize";
-import type {
- DataTableColumnContainer,
- DataTableRowData,
- RowClickedEvent,
- SelectionChangedEvent,
-} from "../../../components/data-table/ha-data-table";
-import "../../../components/ha-button";
-import "../../../components/ha-button-menu";
-import "../../../components/ha-spinner";
-import "../../../components/ha-fab";
-import "../../../components/ha-filter-states";
-import "../../../components/ha-icon";
-import "../../../components/ha-icon-next";
-import "../../../components/ha-icon-overflow-menu";
-import "../../../components/ha-list-item";
-import "../../../components/ha-svg-icon";
-import type {
- BackupAgent,
- BackupConfig,
- BackupContent,
-} from "../../../data/backup";
import {
compareAgents,
computeBackupAgentName,
@@ -52,19 +61,13 @@ import {
isLocalAgent,
isNetworkMountAgent,
} from "../../../data/backup";
-import type { ManagerStateEvent } from "../../../data/backup_manager";
-import type { CloudStatus } from "../../../data/cloud";
-import type { DataTableFiltersValues } from "../../../data/data_table_filters";
import { extractApiErrorMessage } from "../../../data/hassio/common";
import {
showAlertDialog,
showConfirmationDialog,
} from "../../../dialogs/generic/show-dialog-box";
-import "../../../layouts/hass-tabs-subpage-data-table";
-import type { HaTabsSubpageDataTable } from "../../../layouts/hass-tabs-subpage-data-table";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../types";
import { brandsUrl } from "../../../util/brands-url";
import { bytesToString } from "../../../util/bytes-to-string";
import { showGenerateBackupDialog } from "./dialogs/show-dialog-generate-backup";
diff --git a/src/panels/config/backup/ha-config-backup-details.ts b/src/panels/config/backup/ha-config-backup-details.ts
index 3d893d2981..59e4779fae 100644
--- a/src/panels/config/backup/ha-config-backup-details.ts
+++ b/src/panels/config/backup/ha-config-backup-details.ts
@@ -1,4 +1,26 @@
+import type {
+ BackupAgent,
+ BackupConfig,
+ BackupContentAgent,
+ BackupContentExtended,
+} from "../../../data/backup";
+import type { HomeAssistant } from "../../../types";
import type { ActionDetail } from "@material/mwc-list";
+
+import "../../../components/ha-alert";
+import "../../../components/ha-button";
+import "../../../components/ha-button-menu";
+import "../../../components/ha-card";
+import "../../../components/ha-fade-in";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-list-item";
+import "../../../components/ha-md-list";
+import "../../../components/ha-md-list-item";
+import "../../../components/ha-spinner";
+import "../../../layouts/hass-subpage";
+import "./components/ha-backup-details-restore";
+import "./components/ha-backup-details-summary";
+
import {
mdiDelete,
mdiDotsVertical,
@@ -8,26 +30,11 @@ import {
} from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
+import { isComponentLoaded } from "../../../common/config/is_component_loaded";
+import { fireEvent } from "../../../common/dom/fire_event";
import { computeDomain } from "../../../common/entity/compute_domain";
import { navigate } from "../../../common/navigate";
-import "../../../components/ha-alert";
-import "../../../components/ha-button";
-import "../../../components/ha-button-menu";
-import "../../../components/ha-card";
-import "../../../components/ha-fade-in";
-import "../../../components/ha-spinner";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-list-item";
-import "../../../components/ha-md-list";
-import "../../../components/ha-md-list-item";
-import type {
- BackupAgent,
- BackupConfig,
- BackupContentAgent,
- BackupContentExtended,
-} from "../../../data/backup";
-import "./components/ha-backup-details-summary";
-import "./components/ha-backup-details-restore";
import {
compareAgents,
computeBackupAgentName,
@@ -36,14 +43,11 @@ import {
isLocalAgent,
isNetworkMountAgent,
} from "../../../data/backup";
-import "../../../layouts/hass-subpage";
-import type { HomeAssistant } from "../../../types";
+import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box";
import { brandsUrl } from "../../../util/brands-url";
import { showRestoreBackupDialog } from "./dialogs/show-dialog-restore-backup";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box";
import { downloadBackup } from "./helper/download_backup";
-import { isComponentLoaded } from "../../../common/config/is_component_loaded";
+
interface Agent extends BackupContentAgent {
id: string;
diff --git a/src/panels/config/backup/ha-config-backup-location.ts b/src/panels/config/backup/ha-config-backup-location.ts
index ad8b7367fc..01b51eb3a2 100644
--- a/src/panels/config/backup/ha-config-backup-location.ts
+++ b/src/panels/config/backup/ha-config-backup-location.ts
@@ -1,33 +1,36 @@
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import "../../../components/ha-alert";
-import "../../../components/ha-button";
-import "../../../components/ha-switch";
-import "../../../components/ha-button-menu";
-import "../../../components/ha-card";
-import "../../../components/ha-fade-in";
-import "../../../components/ha-spinner";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-list-item";
-import "../../../components/ha-md-list";
-import "../../../components/ha-md-list-item";
import type {
BackupAgent,
BackupAgentConfig,
BackupConfig,
} from "../../../data/backup";
+import type { HomeAssistant } from "../../../types";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-alert";
+import "../../../components/ha-button";
+import "../../../components/ha-button-menu";
+import "../../../components/ha-card";
+import "../../../components/ha-fade-in";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-list-item";
+import "../../../components/ha-md-list";
+import "../../../components/ha-md-list-item";
+import "../../../components/ha-spinner";
+import "../../../components/ha-switch";
+import "../../../layouts/hass-subpage";
+import "./components/ha-backup-data-picker";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
import {
CLOUD_AGENT,
computeBackupAgentName,
fetchBackupAgentsInfo,
updateBackupConfig,
} from "../../../data/backup";
-import "../../../layouts/hass-subpage";
-import type { HomeAssistant } from "../../../types";
-import "./components/ha-backup-data-picker";
import { showConfirmationDialog } from "../../lovelace/custom-card-helpers";
-import { fireEvent } from "../../../common/dom/fire_event";
@customElement("ha-config-backup-location")
class HaConfigBackupDetails extends LitElement {
diff --git a/src/panels/config/backup/ha-config-backup-overview.ts b/src/panels/config/backup/ha-config-backup-overview.ts
index 6a4fb1bb68..282fb0ea20 100644
--- a/src/panels/config/backup/ha-config-backup-overview.ts
+++ b/src/panels/config/backup/ha-config-backup-overview.ts
@@ -1,41 +1,44 @@
-import { mdiDotsVertical, mdiPlus, mdiUpload } from "@mdi/js";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { shouldHandleRequestSelectedEvent } from "../../../common/mwc/handle-request-selected-event";
-import "../../../components/ha-button";
-import "../../../components/ha-button-menu";
-import "../../../components/ha-card";
-import "../../../components/ha-fab";
-import "../../../components/ha-spinner";
-import "../../../components/ha-icon";
-import "../../../components/ha-icon-next";
-import "../../../components/ha-icon-overflow-menu";
-import "../../../components/ha-list-item";
-import "../../../components/ha-svg-icon";
import type {
BackupAgent,
BackupConfig,
BackupContent,
BackupInfo,
} from "../../../data/backup";
-import {
- computeBackupAgentName,
- generateBackup,
- generateBackupWithAutomaticSettings,
-} from "../../../data/backup";
import type { ManagerStateEvent } from "../../../data/backup_manager";
import type { CloudStatus } from "../../../data/cloud";
+import type { HomeAssistant, Route } from "../../../types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../components/ha-button";
+import "../../../components/ha-button-menu";
+import "../../../components/ha-card";
+import "../../../components/ha-fab";
+import "../../../components/ha-icon";
+import "../../../components/ha-icon-next";
+import "../../../components/ha-icon-overflow-menu";
+import "../../../components/ha-list-item";
+import "../../../components/ha-spinner";
+import "../../../components/ha-svg-icon";
import "../../../layouts/hass-subpage";
import "../../../layouts/hass-tabs-subpage-data-table";
-import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../types";
import "./components/overview/ha-backup-overview-backups";
import "./components/overview/ha-backup-overview-onboarding";
import "./components/overview/ha-backup-overview-progress";
import "./components/overview/ha-backup-overview-settings";
import "./components/overview/ha-backup-overview-summary";
+
+import { mdiDotsVertical, mdiPlus, mdiUpload } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { shouldHandleRequestSelectedEvent } from "../../../common/mwc/handle-request-selected-event";
+import {
+ computeBackupAgentName,
+ generateBackup,
+ generateBackupWithAutomaticSettings,
+} from "../../../data/backup";
+import { haStyle } from "../../../resources/styles";
import { showBackupOnboardingDialog } from "./dialogs/show-dialog-backup_onboarding";
import { showGenerateBackupDialog } from "./dialogs/show-dialog-generate-backup";
import { showNewBackupDialog } from "./dialogs/show-dialog-new-backup";
diff --git a/src/panels/config/backup/ha-config-backup-settings.ts b/src/panels/config/backup/ha-config-backup-settings.ts
index e841b872aa..c5e92998c7 100644
--- a/src/panels/config/backup/ha-config-backup-settings.ts
+++ b/src/panels/config/backup/ha-config-backup-settings.ts
@@ -1,34 +1,37 @@
-import { mdiDotsVertical, mdiHarddisk, mdiOpenInNew } from "@mdi/js";
+import type { BackupAgent, BackupConfig } from "../../../data/backup";
+import type { CloudStatus } from "../../../data/cloud";
+import type { HomeAssistant } from "../../../types";
+import type { BackupConfigData } from "./components/config/ha-backup-config-data";
+import type { BackupConfigSchedule } from "./components/config/ha-backup-config-schedule";
import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { isComponentLoaded } from "../../../common/config/is_component_loaded";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { shouldHandleRequestSelectedEvent } from "../../../common/mwc/handle-request-selected-event";
-import { debounce } from "../../../common/util/debounce";
-import { nextRender } from "../../../common/util/render-status";
+
+import "../../../components/ha-alert";
import "../../../components/ha-button";
import "../../../components/ha-button-menu";
import "../../../components/ha-card";
import "../../../components/ha-icon-button";
import "../../../components/ha-icon-next";
import "../../../components/ha-list-item";
-import "../../../components/ha-alert";
import "../../../components/ha-password-field";
import "../../../components/ha-svg-icon";
-import type { BackupAgent, BackupConfig } from "../../../data/backup";
-import { updateBackupConfig } from "../../../data/backup";
-import type { CloudStatus } from "../../../data/cloud";
import "../../../layouts/hass-subpage";
-import type { HomeAssistant } from "../../../types";
import "./components/config/ha-backup-config-agents";
import "./components/config/ha-backup-config-data";
-import type { BackupConfigData } from "./components/config/ha-backup-config-data";
import "./components/config/ha-backup-config-encryption-key";
import "./components/config/ha-backup-config-schedule";
-import type { BackupConfigSchedule } from "./components/config/ha-backup-config-schedule";
-import { showLocalBackupLocationDialog } from "./dialogs/show-dialog-local-backup-location";
+
+import { mdiDotsVertical, mdiHarddisk, mdiOpenInNew } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { isComponentLoaded } from "../../../common/config/is_component_loaded";
+import { fireEvent } from "../../../common/dom/fire_event";
+import { shouldHandleRequestSelectedEvent } from "../../../common/mwc/handle-request-selected-event";
+import { debounce } from "../../../common/util/debounce";
+import { nextRender } from "../../../common/util/render-status";
+import { updateBackupConfig } from "../../../data/backup";
import { documentationUrl } from "../../../util/documentation-url";
+import { showLocalBackupLocationDialog } from "./dialogs/show-dialog-local-backup-location";
@customElement("ha-config-backup-settings")
class HaConfigBackupSettings extends LitElement {
diff --git a/src/panels/config/backup/ha-config-backup.ts b/src/panels/config/backup/ha-config-backup.ts
index d61eb33a36..72d040b9b1 100644
--- a/src/panels/config/backup/ha-config-backup.ts
+++ b/src/panels/config/backup/ha-config-backup.ts
@@ -1,31 +1,34 @@
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
-import { customElement, property, state } from "lit/decorators";
import type {
BackupAgent,
BackupConfig,
BackupInfo,
} from "../../../data/backup";
+import type { ManagerStateEvent } from "../../../data/backup_manager";
+import type { CloudStatus } from "../../../data/cloud";
+import type { RouterOptions } from "../../../layouts/hass-router-page";
+import type { HomeAssistant } from "../../../types";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { PropertyValues } from "lit";
+
+import "../../../layouts/hass-tabs-subpage-data-table";
+import "./ha-config-backup-backups";
+import "./ha-config-backup-overview";
+
+import { customElement, property, state } from "lit/decorators";
+
import {
compareAgents,
fetchBackupAgentsInfo,
fetchBackupConfig,
fetchBackupInfo,
} from "../../../data/backup";
-import type { ManagerStateEvent } from "../../../data/backup_manager";
import {
DEFAULT_MANAGER_STATE,
subscribeBackupEvents,
} from "../../../data/backup_manager";
-import type { CloudStatus } from "../../../data/cloud";
-import type { RouterOptions } from "../../../layouts/hass-router-page";
import { HassRouterPage } from "../../../layouts/hass-router-page";
-import "../../../layouts/hass-tabs-subpage-data-table";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
-import type { HomeAssistant } from "../../../types";
import { showToast } from "../../../util/toast";
-import "./ha-config-backup-backups";
-import "./ha-config-backup-overview";
declare global {
interface HASSDomEvents {
diff --git a/src/panels/config/backup/helper/download_backup.ts b/src/panels/config/backup/helper/download_backup.ts
index 3c08cc1df7..5897d14aa6 100644
--- a/src/panels/config/backup/helper/download_backup.ts
+++ b/src/panels/config/backup/helper/download_backup.ts
@@ -1,12 +1,13 @@
-import type { LitElement } from "lit";
-import { getSignedPath } from "../../../../data/auth";
import type { BackupConfig, BackupContent } from "../../../../data/backup";
+import type { HomeAssistant } from "../../../../types";
+import type { LitElement } from "lit";
+
+import { getSignedPath } from "../../../../data/auth";
import {
canDecryptBackupOnDownload,
getBackupDownloadUrl,
getPreferredAgentForDownload,
} from "../../../../data/backup";
-import type { HomeAssistant } from "../../../../types";
import { fileDownload } from "../../../../util/file_download";
import { showAlertDialog } from "../../../lovelace/custom-card-helpers";
import { showDownloadDecryptedBackupDialog } from "../dialogs/show-dialog-download-decrypted-backup";
diff --git a/src/panels/config/blueprint/blueprint-generic-editor.ts b/src/panels/config/blueprint/blueprint-generic-editor.ts
index 840f7f1946..3a397f6386 100644
--- a/src/panels/config/blueprint/blueprint-generic-editor.ts
+++ b/src/panels/config/blueprint/blueprint-generic-editor.ts
@@ -1,14 +1,3 @@
-import "@material/mwc-button/mwc-button";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../common/dom/fire_event";
-import "../../../components/ha-blueprint-picker";
-import "../../../components/ha-card";
-import "../../../components/ha-spinner";
-import "../../../components/ha-markdown";
-import "../../../components/ha-selector/ha-selector";
-import "../../../components/ha-settings-row";
import type { BlueprintAutomationConfig } from "../../../data/automation";
import type {
BlueprintInput,
@@ -17,8 +6,22 @@ import type {
Blueprints,
} from "../../../data/blueprint";
import type { BlueprintScriptConfig } from "../../../data/script";
-import { haStyle } from "../../../resources/styles";
import type { HomeAssistant } from "../../../types";
+import type { CSSResultGroup } from "lit";
+
+import "../../../components/ha-blueprint-picker";
+import "../../../components/ha-card";
+import "../../../components/ha-markdown";
+import "../../../components/ha-selector/ha-selector";
+import "../../../components/ha-settings-row";
+import "../../../components/ha-spinner";
+import "@material/mwc-button/mwc-button";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { haStyle } from "../../../resources/styles";
@customElement("blueprint-generic-editor")
export abstract class HaBlueprintGenericEditor extends LitElement {
diff --git a/src/panels/config/blueprint/dialog-import-blueprint.ts b/src/panels/config/blueprint/dialog-import-blueprint.ts
index dcf38ce41c..953de3133b 100644
--- a/src/panels/config/blueprint/dialog-import-blueprint.ts
+++ b/src/panels/config/blueprint/dialog-import-blueprint.ts
@@ -1,20 +1,23 @@
+import type { HaTextField } from "../../../components/ha-textfield";
+import type { BlueprintImportResult } from "../../../data/blueprint";
+import type { HomeAssistant } from "../../../types";
+
+import "../../../components/ha-alert";
+import "../../../components/ha-dialog";
+import "../../../components/ha-dialog-header";
+import "../../../components/ha-expansion-panel";
+import "../../../components/ha-markdown";
+import "../../../components/ha-spinner";
+import "../../../components/ha-textfield";
import "@material/mwc-button";
+
import { mdiOpenInNew, mdiClose } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
+
import { fireEvent } from "../../../common/dom/fire_event";
-import "../../../components/ha-spinner";
-import "../../../components/ha-expansion-panel";
-import "../../../components/ha-markdown";
-import "../../../components/ha-alert";
-import "../../../components/ha-textfield";
-import "../../../components/ha-dialog";
-import "../../../components/ha-dialog-header";
-import type { HaTextField } from "../../../components/ha-textfield";
-import type { BlueprintImportResult } from "../../../data/blueprint";
import { importBlueprint, saveBlueprint } from "../../../data/blueprint";
import { haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
@customElement("ha-dialog-import-blueprint")
class DialogImportBlueprint extends LitElement {
diff --git a/src/panels/config/blueprint/ha-blueprint-overview.ts b/src/panels/config/blueprint/ha-blueprint-overview.ts
index 6b329ff8e6..3ff364d3c6 100644
--- a/src/panels/config/blueprint/ha-blueprint-overview.ts
+++ b/src/panels/config/blueprint/ha-blueprint-overview.ts
@@ -1,3 +1,26 @@
+import type { HASSDomEvent } from "../../../common/dom/fire_event";
+import type { LocalizeFunc } from "../../../common/translations/localize";
+import type {
+ DataTableColumnContainer,
+ RowClickedEvent,
+ SortingChangedEvent,
+} from "../../../components/data-table/ha-data-table";
+import type {
+ BlueprintImportResult,
+ BlueprintMetaData,
+ Blueprints,
+} from "../../../data/blueprint";
+import type { HomeAssistant, Route } from "../../../types";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/entity/ha-entity-toggle";
+import "../../../components/ha-button";
+import "../../../components/ha-fab";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-icon-overflow-menu";
+import "../../../components/ha-svg-icon";
+import "../../../layouts/hass-tabs-subpage-data-table";
+
import {
mdiAlertCircle,
mdiDelete,
@@ -7,32 +30,16 @@ import {
mdiPlus,
mdiShareVariant,
} from "@mdi/js";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
import { LitElement, html } from "lit";
import { customElement, property } from "lit/decorators";
import memoizeOne from "memoize-one";
-import type { HASSDomEvent } from "../../../common/dom/fire_event";
+
+import { storage } from "../../../common/decorators/storage";
import { fireEvent } from "../../../common/dom/fire_event";
import { computeStateName } from "../../../common/entity/compute_state_name";
import { navigate } from "../../../common/navigate";
import { extractSearchParam } from "../../../common/url/search-params";
-import type {
- DataTableColumnContainer,
- RowClickedEvent,
- SortingChangedEvent,
-} from "../../../components/data-table/ha-data-table";
-import "../../../components/entity/ha-entity-toggle";
-import "../../../components/ha-button";
-import "../../../components/ha-fab";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-icon-overflow-menu";
-import "../../../components/ha-svg-icon";
import { showAutomationEditor } from "../../../data/automation";
-import type {
- BlueprintImportResult,
- BlueprintMetaData,
- Blueprints,
-} from "../../../data/blueprint";
import {
deleteBlueprint,
importBlueprint,
@@ -44,15 +51,11 @@ import {
showAlertDialog,
showConfirmationDialog,
} from "../../../dialogs/generic/show-dialog-box";
-import "../../../layouts/hass-tabs-subpage-data-table";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../types";
-import type { LocalizeFunc } from "../../../common/translations/localize";
import { documentationUrl } from "../../../util/documentation-url";
import { showToast } from "../../../util/toast";
import { configSections } from "../ha-panel-config";
import { showAddBlueprintDialog } from "./show-dialog-import-blueprint";
-import { storage } from "../../../common/decorators/storage";
type BlueprintMetaDataPath = BlueprintMetaData & {
path: string;
diff --git a/src/panels/config/blueprint/ha-config-blueprint.ts b/src/panels/config/blueprint/ha-config-blueprint.ts
index 521e1fd9d5..04594ff52a 100644
--- a/src/panels/config/blueprint/ha-config-blueprint.ts
+++ b/src/panels/config/blueprint/ha-config-blueprint.ts
@@ -1,12 +1,15 @@
-import type { PropertyValues } from "lit";
-import { customElement, property } from "lit/decorators";
import type { Blueprints } from "../../../data/blueprint";
-import { fetchBlueprints } from "../../../data/blueprint";
import type { RouterOptions } from "../../../layouts/hass-router-page";
-import { HassRouterPage } from "../../../layouts/hass-router-page";
import type { HomeAssistant } from "../../../types";
+import type { PropertyValues } from "lit";
+
import "./ha-blueprint-overview";
+import { customElement, property } from "lit/decorators";
+
+import { fetchBlueprints } from "../../../data/blueprint";
+import { HassRouterPage } from "../../../layouts/hass-router-page";
+
declare global {
// for fire event
interface HASSDomEvents {
diff --git a/src/panels/config/category/dialog-assign-category.ts b/src/panels/config/category/dialog-assign-category.ts
index 28767f79b3..1b30669700 100644
--- a/src/panels/config/category/dialog-assign-category.ts
+++ b/src/panels/config/category/dialog-assign-category.ts
@@ -1,18 +1,21 @@
-import "@material/mwc-button";
+import type { HomeAssistant } from "../../../types";
+import type { AssignCategoryDialogParams } from "./show-dialog-assign-category";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../common/dom/fire_event";
+
import "../../../components/ha-alert";
-import { createCloseHeading } from "../../../components/ha-dialog";
import "../../../components/ha-icon-picker";
import "../../../components/ha-settings-row";
import "../../../components/ha-textfield";
+import "./ha-category-picker";
+import "@material/mwc-button";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { createCloseHeading } from "../../../components/ha-dialog";
import { updateEntityRegistryEntry } from "../../../data/entity_registry";
import { haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
-import "./ha-category-picker";
-import type { AssignCategoryDialogParams } from "./show-dialog-assign-category";
@customElement("dialog-assign-category")
class DialogAssignCategory extends LitElement {
diff --git a/src/panels/config/category/dialog-category-registry-detail.ts b/src/panels/config/category/dialog-category-registry-detail.ts
index b6c88faa19..f82149e657 100644
--- a/src/panels/config/category/dialog-category-registry-detail.ts
+++ b/src/panels/config/category/dialog-category-registry-detail.ts
@@ -1,20 +1,23 @@
-import "@material/mwc-button";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../common/dom/fire_event";
-import "../../../components/ha-alert";
-import { createCloseHeading } from "../../../components/ha-dialog";
-import "../../../components/ha-icon-picker";
-import "../../../components/ha-settings-row";
-import "../../../components/ha-textfield";
import type {
CategoryRegistryEntry,
CategoryRegistryEntryMutableParams,
} from "../../../data/category_registry";
-import { haStyleDialog } from "../../../resources/styles";
import type { HomeAssistant } from "../../../types";
import type { CategoryRegistryDetailDialogParams } from "./show-dialog-category-registry-detail";
+import type { CSSResultGroup } from "lit";
+
+import "../../../components/ha-alert";
+import "../../../components/ha-icon-picker";
+import "../../../components/ha-settings-row";
+import "../../../components/ha-textfield";
+import "@material/mwc-button";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { createCloseHeading } from "../../../components/ha-dialog";
+import { haStyleDialog } from "../../../resources/styles";
@customElement("dialog-category-registry-detail")
class DialogCategoryDetail extends LitElement {
diff --git a/src/panels/config/category/ha-category-picker.ts b/src/panels/config/category/ha-category-picker.ts
index 25665f9116..4fb9e9593f 100644
--- a/src/panels/config/category/ha-category-picker.ts
+++ b/src/panels/config/category/ha-category-picker.ts
@@ -1,26 +1,29 @@
-import { mdiTag } from "@mdi/js";
+import type { ScorableTextItem } from "../../../common/string/filter/sequence-matching";
+import type { HaComboBox } from "../../../components/ha-combo-box";
+import type { CategoryRegistryEntry } from "../../../data/category_registry";
+import type { HomeAssistant, ValueChangedEvent } from "../../../types";
import type { ComboBoxLitRenderer } from "@vaadin/combo-box/lit";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
+
+import "../../../components/ha-combo-box";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-list-item";
+import "../../../components/ha-svg-icon";
+
+import { mdiTag } from "@mdi/js";
import { html, LitElement, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../../common/dom/fire_event";
-import type { ScorableTextItem } from "../../../common/string/filter/sequence-matching";
import { fuzzyFilterSort } from "../../../common/string/filter/sequence-matching";
-import "../../../components/ha-combo-box";
-import type { HaComboBox } from "../../../components/ha-combo-box";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-list-item";
-import "../../../components/ha-svg-icon";
-import type { CategoryRegistryEntry } from "../../../data/category_registry";
import {
createCategoryRegistryEntry,
subscribeCategoryRegistry,
} from "../../../data/category_registry";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
-import type { HomeAssistant, ValueChangedEvent } from "../../../types";
import { showCategoryRegistryDetailDialog } from "./show-dialog-category-registry-detail";
type ScorableCategoryRegistryEntry = ScorableTextItem & CategoryRegistryEntry;
diff --git a/src/panels/config/category/show-dialog-assign-category.ts b/src/panels/config/category/show-dialog-assign-category.ts
index edbf91ee83..f868a9e539 100644
--- a/src/panels/config/category/show-dialog-assign-category.ts
+++ b/src/panels/config/category/show-dialog-assign-category.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type { EntityRegistryEntry } from "../../../data/entity_registry";
+import { fireEvent } from "../../../common/dom/fire_event";
+
export interface AssignCategoryDialogParams {
entityReg: EntityRegistryEntry;
scope: string;
diff --git a/src/panels/config/category/show-dialog-category-registry-detail.ts b/src/panels/config/category/show-dialog-category-registry-detail.ts
index 3aa62d4162..664d909e22 100644
--- a/src/panels/config/category/show-dialog-category-registry-detail.ts
+++ b/src/panels/config/category/show-dialog-category-registry-detail.ts
@@ -1,9 +1,10 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type {
CategoryRegistryEntry,
CategoryRegistryEntryMutableParams,
} from "../../../data/category_registry";
+import { fireEvent } from "../../../common/dom/fire_event";
+
export interface CategoryRegistryDetailDialogParams {
entry?: CategoryRegistryEntry;
scope: string;
diff --git a/src/panels/config/cloud/account/cloud-account.ts b/src/panels/config/cloud/account/cloud-account.ts
index 82730ce21c..4038a6a4f0 100644
--- a/src/panels/config/cloud/account/cloud-account.ts
+++ b/src/panels/config/cloud/account/cloud-account.ts
@@ -1,19 +1,29 @@
-import "@material/mwc-button";
-import { mdiDeleteForever, mdiDotsVertical, mdiDownload } from "@mdi/js";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { formatDateTime } from "../../../../common/datetime/format_date_time";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { debounce } from "../../../../common/util/debounce";
+import type {
+ CloudStatusLoggedIn,
+ SubscriptionInfo,
+} from "../../../../data/cloud";
+import type { HomeAssistant } from "../../../../types";
+
import "../../../../components/ha-alert";
import "../../../../components/ha-button-menu";
import "../../../../components/ha-card";
import "../../../../components/ha-list-item";
import "../../../../components/ha-tip";
-import type {
- CloudStatusLoggedIn,
- SubscriptionInfo,
-} from "../../../../data/cloud";
+import "../../../../layouts/hass-subpage";
+import "../../ha-config-section";
+import "./cloud-ice-servers-pref";
+import "./cloud-remote-pref";
+import "./cloud-tts-pref";
+import "./cloud-webhooks";
+import "@material/mwc-button";
+
+import { mdiDeleteForever, mdiDotsVertical, mdiDownload } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { formatDateTime } from "../../../../common/datetime/format_date_time";
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { debounce } from "../../../../common/util/debounce";
import {
cloudLogout,
fetchCloudSubscriptionInfo,
@@ -23,15 +33,8 @@ import {
showAlertDialog,
showConfirmationDialog,
} from "../../../../dialogs/generic/show-dialog-box";
-import "../../../../layouts/hass-subpage";
import { SubscribeMixin } from "../../../../mixins/subscribe-mixin";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
-import "../../ha-config-section";
-import "./cloud-ice-servers-pref";
-import "./cloud-remote-pref";
-import "./cloud-tts-pref";
-import "./cloud-webhooks";
import { showSupportPackageDialog } from "./show-dialog-cloud-support-package";
@customElement("cloud-account")
diff --git a/src/panels/config/cloud/account/cloud-ice-servers-pref.ts b/src/panels/config/cloud/account/cloud-ice-servers-pref.ts
index 785c6b514f..3a2f4173fd 100644
--- a/src/panels/config/cloud/account/cloud-ice-servers-pref.ts
+++ b/src/panels/config/cloud/account/cloud-ice-servers-pref.ts
@@ -1,14 +1,17 @@
-import { mdiHelpCircle } from "@mdi/js";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
+import type { HaSwitch } from "../../../../components/ha-switch";
+import type { CloudStatusLoggedIn } from "../../../../data/cloud";
+import type { HomeAssistant } from "../../../../types";
+
import "../../../../components/ha-card";
import "../../../../components/ha-icon-button";
import "../../../../components/ha-switch";
-import type { HaSwitch } from "../../../../components/ha-switch";
-import type { CloudStatusLoggedIn } from "../../../../data/cloud";
+
+import { mdiHelpCircle } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { updateCloudPref } from "../../../../data/cloud";
-import type { HomeAssistant } from "../../../../types";
import { showToast } from "../../../../util/toast";
@customElement("cloud-ice-servers-pref")
diff --git a/src/panels/config/cloud/account/cloud-remote-pref.ts b/src/panels/config/cloud/account/cloud-remote-pref.ts
index d7ff6a8049..0d48cfe533 100644
--- a/src/panels/config/cloud/account/cloud-remote-pref.ts
+++ b/src/panels/config/cloud/account/cloud-remote-pref.ts
@@ -1,27 +1,29 @@
-import { mdiHelpCircle } from "@mdi/js";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
+import type { HaSwitch } from "../../../../components/ha-switch";
+import type { CloudStatusLoggedIn } from "../../../../data/cloud";
+import type { HomeAssistant } from "../../../../types";
+
import "../../../../components/ha-alert";
import "../../../../components/ha-button";
import "../../../../components/ha-card";
+import "../../../../components/ha-copy-textfield";
import "../../../../components/ha-expansion-panel";
import "../../../../components/ha-settings-row";
import "../../../../components/ha-switch";
+import { mdiHelpCircle } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { formatDate } from "../../../../common/datetime/format_date";
-import type { HaSwitch } from "../../../../components/ha-switch";
-import type { CloudStatusLoggedIn } from "../../../../data/cloud";
+import { fireEvent } from "../../../../common/dom/fire_event";
import {
connectCloudRemote,
disconnectCloudRemote,
updateCloudPref,
} from "../../../../data/cloud";
-import type { HomeAssistant } from "../../../../types";
import { showToast } from "../../../../util/toast";
-import { showCloudCertificateDialog } from "../dialog-cloud-certificate/show-dialog-cloud-certificate";
import { obfuscateUrl } from "../../../../util/url";
-import "../../../../components/ha-copy-textfield";
+import { showCloudCertificateDialog } from "../dialog-cloud-certificate/show-dialog-cloud-certificate";
@customElement("cloud-remote-pref")
export class CloudRemotePref extends LitElement {
diff --git a/src/panels/config/cloud/account/cloud-tts-pref.ts b/src/panels/config/cloud/account/cloud-tts-pref.ts
index 3b24665c2c..fa3dc548fa 100644
--- a/src/panels/config/cloud/account/cloud-tts-pref.ts
+++ b/src/panels/config/cloud/account/cloud-tts-pref.ts
@@ -1,24 +1,27 @@
-import "@material/mwc-button";
-import "@material/mwc-list/mwc-list-item";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../common/dom/fire_event";
+import type { CloudStatusLoggedIn } from "../../../../data/cloud";
+import type { CloudTTSInfo } from "../../../../data/cloud/tts";
+import type { HomeAssistant } from "../../../../types";
+
import "../../../../components/ha-card";
+import "../../../../components/ha-language-picker";
import "../../../../components/ha-select";
import "../../../../components/ha-svg-icon";
import "../../../../components/ha-switch";
-import "../../../../components/ha-language-picker";
-import type { CloudStatusLoggedIn } from "../../../../data/cloud";
+import "@material/mwc-button";
+import "@material/mwc-list/mwc-list-item";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { updateCloudPref } from "../../../../data/cloud";
-import type { CloudTTSInfo } from "../../../../data/cloud/tts";
import {
getCloudTTSInfo,
getCloudTtsLanguages,
getCloudTtsSupportedVoices,
} from "../../../../data/cloud/tts";
import { showAlertDialog } from "../../../../dialogs/generic/show-dialog-box";
-import type { HomeAssistant } from "../../../../types";
import { showTryTtsDialog } from "./show-dialog-cloud-tts-try";
@customElement("cloud-tts-pref")
diff --git a/src/panels/config/cloud/account/cloud-webhooks.ts b/src/panels/config/cloud/account/cloud-webhooks.ts
index 045fa0a825..2ac7c669b6 100644
--- a/src/panels/config/cloud/account/cloud-webhooks.ts
+++ b/src/panels/config/cloud/account/cloud-webhooks.ts
@@ -1,17 +1,20 @@
+import type { CloudStatusLoggedIn, CloudWebhook } from "../../../../data/cloud";
+import type { Webhook, WebhookError } from "../../../../data/webhook";
+import type { HomeAssistant } from "../../../../types";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../../components/ha-card";
+import "../../../../components/ha-settings-row";
+import "../../../../components/ha-spinner";
+import "../../../../components/ha-switch";
+
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { isComponentLoaded } from "../../../../common/config/is_component_loaded";
-import "../../../../components/ha-card";
-import "../../../../components/ha-spinner";
-import "../../../../components/ha-settings-row";
-import "../../../../components/ha-switch";
-import type { CloudStatusLoggedIn, CloudWebhook } from "../../../../data/cloud";
import { createCloudhook, deleteCloudhook } from "../../../../data/cloud";
-import type { Webhook, WebhookError } from "../../../../data/webhook";
import { fetchWebhooks } from "../../../../data/webhook";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import { showManageCloudhookDialog } from "../dialog-manage-cloudhook/show-dialog-manage-cloudhook";
@customElement("cloud-webhooks")
diff --git a/src/panels/config/cloud/account/dialog-cloud-support-package.ts b/src/panels/config/cloud/account/dialog-cloud-support-package.ts
index 33894fbfa4..d3785e751f 100644
--- a/src/panels/config/cloud/account/dialog-cloud-support-package.ts
+++ b/src/panels/config/cloud/account/dialog-cloud-support-package.ts
@@ -1,20 +1,23 @@
-import "@material/mwc-button";
-import "@material/mwc-list/mwc-list-item";
-import { mdiClose } from "@mdi/js";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
+import type { HaMdDialog } from "../../../../components/ha-md-dialog";
+import type { HomeAssistant } from "../../../../types";
+
import "../../../../components/ha-alert";
import "../../../../components/ha-button";
-import "../../../../components/ha-spinner";
import "../../../../components/ha-dialog-header";
import "../../../../components/ha-markdown-element";
import "../../../../components/ha-md-dialog";
-import type { HaMdDialog } from "../../../../components/ha-md-dialog";
import "../../../../components/ha-select";
+import "../../../../components/ha-spinner";
import "../../../../components/ha-textarea";
+import "@material/mwc-button";
+import "@material/mwc-list/mwc-list-item";
+
+import { mdiClose } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { fetchSupportPackage } from "../../../../data/cloud";
-import type { HomeAssistant } from "../../../../types";
import { fileDownload } from "../../../../util/file_download";
@customElement("dialog-cloud-support-package")
diff --git a/src/panels/config/cloud/account/dialog-cloud-tts-try.ts b/src/panels/config/cloud/account/dialog-cloud-tts-try.ts
index df6b33eefc..3f23a2e110 100644
--- a/src/panels/config/cloud/account/dialog-cloud-tts-try.ts
+++ b/src/panels/config/cloud/account/dialog-cloud-tts-try.ts
@@ -1,9 +1,17 @@
+import type { HaTextArea } from "../../../../components/ha-textarea";
+import type { HomeAssistant } from "../../../../types";
+import type { TryTtsDialogParams } from "./show-dialog-cloud-tts-try";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-select";
+import "../../../../components/ha-textarea";
import "@material/mwc-button";
import "@material/mwc-list/mwc-list-item";
+
import { mdiPlayCircleOutline, mdiRobot } from "@mdi/js";
-import type { CSSResultGroup } from "lit";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
+
import { storage } from "../../../../common/decorators/storage";
import { fireEvent } from "../../../../common/dom/fire_event";
import { stopPropagation } from "../../../../common/dom/stop_propagation";
@@ -11,16 +19,11 @@ import { computeStateDomain } from "../../../../common/entity/compute_state_doma
import { computeStateName } from "../../../../common/entity/compute_state_name";
import { supportsFeature } from "../../../../common/entity/supports-feature";
import { createCloseHeading } from "../../../../components/ha-dialog";
-import "../../../../components/ha-select";
-import "../../../../components/ha-textarea";
-import type { HaTextArea } from "../../../../components/ha-textarea";
import { showAutomationEditor } from "../../../../data/automation";
import { MediaPlayerEntityFeature } from "../../../../data/media-player";
import { convertTextToSpeech } from "../../../../data/tts";
import { showAlertDialog } from "../../../../dialogs/generic/show-dialog-box";
import { haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
-import type { TryTtsDialogParams } from "./show-dialog-cloud-tts-try";
@customElement("dialog-cloud-try-tts")
export class DialogTryTts extends LitElement {
diff --git a/src/panels/config/cloud/dialog-cloud-already-connected/dialog-cloud-already-connected.ts b/src/panels/config/cloud/dialog-cloud-already-connected/dialog-cloud-already-connected.ts
index a92d54da31..c91cdf20a2 100644
--- a/src/panels/config/cloud/dialog-cloud-already-connected/dialog-cloud-already-connected.ts
+++ b/src/panels/config/cloud/dialog-cloud-already-connected/dialog-cloud-already-connected.ts
@@ -1,16 +1,19 @@
+import type { HomeAssistant } from "../../../../types";
+import type { CloudAlreadyConnectedParams as CloudAlreadyConnectedDialogParams } from "./show-dialog-cloud-already-connected";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, state } from "lit/decorators";
-import { mdiEye, mdiEyeOff } from "@mdi/js";
-import { formatDateTime } from "../../../../common/datetime/format_date_time";
-import { fireEvent } from "../../../../common/dom/fire_event";
+
import "../../../../components/ha-alert";
import "../../../../components/ha-button";
import "../../../../components/ha-icon-button";
+
+import { mdiEye, mdiEyeOff } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, state } from "lit/decorators";
+
+import { formatDateTime } from "../../../../common/datetime/format_date_time";
+import { fireEvent } from "../../../../common/dom/fire_event";
import { createCloseHeading } from "../../../../components/ha-dialog";
import { haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
-import type { CloudAlreadyConnectedParams as CloudAlreadyConnectedDialogParams } from "./show-dialog-cloud-already-connected";
import { obfuscateUrl } from "../../../../util/url";
@customElement("dialog-cloud-already-connected")
diff --git a/src/panels/config/cloud/dialog-cloud-certificate/dialog-cloud-certificate.ts b/src/panels/config/cloud/dialog-cloud-certificate/dialog-cloud-certificate.ts
index d8752ecabb..93063a703d 100644
--- a/src/panels/config/cloud/dialog-cloud-certificate/dialog-cloud-certificate.ts
+++ b/src/panels/config/cloud/dialog-cloud-certificate/dialog-cloud-certificate.ts
@@ -1,13 +1,16 @@
-import "@material/mwc-button";
+import type { HomeAssistant } from "../../../../types";
+import type { CloudCertificateParams as CloudCertificateDialogParams } from "./show-dialog-cloud-certificate";
import type { CSSResultGroup } from "lit";
+
+import "@material/mwc-button";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, state } from "lit/decorators";
+
import { formatDateTime } from "../../../../common/datetime/format_date_time";
import { fireEvent } from "../../../../common/dom/fire_event";
import { createCloseHeading } from "../../../../components/ha-dialog";
import { haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
-import type { CloudCertificateParams as CloudCertificateDialogParams } from "./show-dialog-cloud-certificate";
@customElement("dialog-cloud-certificate")
class DialogCloudCertificate extends LitElement {
diff --git a/src/panels/config/cloud/dialog-cloud-certificate/show-dialog-cloud-certificate.ts b/src/panels/config/cloud/dialog-cloud-certificate/show-dialog-cloud-certificate.ts
index 4146608fb5..b6beefecf4 100644
--- a/src/panels/config/cloud/dialog-cloud-certificate/show-dialog-cloud-certificate.ts
+++ b/src/panels/config/cloud/dialog-cloud-certificate/show-dialog-cloud-certificate.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { CertificateInformation } from "../../../../data/cloud";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export interface CloudCertificateParams {
certificateInfo: CertificateInformation;
}
diff --git a/src/panels/config/cloud/dialog-manage-cloudhook/dialog-manage-cloudhook.ts b/src/panels/config/cloud/dialog-manage-cloudhook/dialog-manage-cloudhook.ts
index 909866095e..f2cf1ad1f5 100644
--- a/src/panels/config/cloud/dialog-manage-cloudhook/dialog-manage-cloudhook.ts
+++ b/src/panels/config/cloud/dialog-manage-cloudhook/dialog-manage-cloudhook.ts
@@ -1,17 +1,20 @@
-import "@material/mwc-button";
-import { mdiOpenInNew } from "@mdi/js";
+import type { HomeAssistant } from "../../../../types";
+import type { WebhookDialogParams } from "./show-dialog-manage-cloudhook";
import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-copy-textfield";
+import "@material/mwc-button";
+
+import { mdiOpenInNew } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { state } from "lit/decorators";
+
import { fireEvent } from "../../../../common/dom/fire_event";
import { createCloseHeading } from "../../../../components/ha-dialog";
import { showConfirmationDialog } from "../../../../dialogs/generic/show-dialog-box";
import { haStyle, haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import { documentationUrl } from "../../../../util/documentation-url";
-import type { WebhookDialogParams } from "./show-dialog-manage-cloudhook";
-import "../../../../components/ha-copy-textfield";
export class DialogManageCloudhook extends LitElement {
protected hass?: HomeAssistant;
diff --git a/src/panels/config/cloud/dialog-manage-cloudhook/show-dialog-manage-cloudhook.ts b/src/panels/config/cloud/dialog-manage-cloudhook/show-dialog-manage-cloudhook.ts
index d2b8be990e..fe3daf3a0d 100644
--- a/src/panels/config/cloud/dialog-manage-cloudhook/show-dialog-manage-cloudhook.ts
+++ b/src/panels/config/cloud/dialog-manage-cloudhook/show-dialog-manage-cloudhook.ts
@@ -1,7 +1,8 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { CloudWebhook } from "../../../../data/cloud";
import type { Webhook } from "../../../../data/webhook";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export interface WebhookDialogParams {
webhook: Webhook;
cloudhook: CloudWebhook;
diff --git a/src/panels/config/cloud/forgot-password/cloud-forgot-password-card.ts b/src/panels/config/cloud/forgot-password/cloud-forgot-password-card.ts
index 70e6cdfc68..8e8c0dfc85 100644
--- a/src/panels/config/cloud/forgot-password/cloud-forgot-password-card.ts
+++ b/src/panels/config/cloud/forgot-password/cloud-forgot-password-card.ts
@@ -1,17 +1,20 @@
+import type { LocalizeFunc } from "../../../../common/translations/localize";
+import type { HaTextField } from "../../../../components/ha-textfield";
+import type { HomeAssistant } from "../../../../types";
import type { TemplateResult } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
+
import "../../../../components/buttons/ha-progress-button";
import "../../../../components/ha-alert";
import "../../../../components/ha-card";
-import type { HaTextField } from "../../../../components/ha-textfield";
import "../../../../components/ha-textfield";
-import { haStyle } from "../../../../resources/styles";
-import type { LocalizeFunc } from "../../../../common/translations/localize";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { cloudForgotPassword } from "../../../../data/cloud";
import { forgotPasswordHaCloud } from "../../../../data/onboarding";
-import type { HomeAssistant } from "../../../../types";
+import { haStyle } from "../../../../resources/styles";
@customElement("cloud-forgot-password-card")
export class CloudForgotPasswordCard extends LitElement {
diff --git a/src/panels/config/cloud/forgot-password/cloud-forgot-password.ts b/src/panels/config/cloud/forgot-password/cloud-forgot-password.ts
index c877d4c7ff..7a199b3996 100644
--- a/src/panels/config/cloud/forgot-password/cloud-forgot-password.ts
+++ b/src/panels/config/cloud/forgot-password/cloud-forgot-password.ts
@@ -1,10 +1,13 @@
+import type { HomeAssistant } from "../../../../types";
import type { TemplateResult } from "lit";
+
+import "../../../../layouts/hass-subpage";
+import "./cloud-forgot-password-card";
+
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
-import "./cloud-forgot-password-card";
-import "../../../../layouts/hass-subpage";
+
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
@customElement("cloud-forgot-password")
export class CloudForgotPassword extends LitElement {
diff --git a/src/panels/config/cloud/ha-config-cloud.ts b/src/panels/config/cloud/ha-config-cloud.ts
index fd64e8d36a..5bfc63f7bc 100644
--- a/src/panels/config/cloud/ha-config-cloud.ts
+++ b/src/panels/config/cloud/ha-config-cloud.ts
@@ -1,12 +1,15 @@
-import { customElement, property, state } from "lit/decorators";
-import { navigate } from "../../../common/navigate";
import type { CloudStatus } from "../../../data/cloud";
import type { RouterOptions } from "../../../layouts/hass-router-page";
-import { HassRouterPage } from "../../../layouts/hass-router-page";
import type { ValueChangedEvent, HomeAssistant, Route } from "../../../types";
+
import "./account/cloud-account";
import "./login/cloud-login-panel";
+import { customElement, property, state } from "lit/decorators";
+
+import { navigate } from "../../../common/navigate";
+import { HassRouterPage } from "../../../layouts/hass-router-page";
+
const LOGGED_IN_URLS = ["account", "google-assistant", "alexa"];
const NOT_LOGGED_IN_URLS = ["login", "register", "forgot-password"];
diff --git a/src/panels/config/cloud/login/cloud-login-panel.ts b/src/panels/config/cloud/login/cloud-login-panel.ts
index eed00fcfdf..d72d806214 100644
--- a/src/panels/config/cloud/login/cloud-login-panel.ts
+++ b/src/panels/config/cloud/login/cloud-login-panel.ts
@@ -1,27 +1,30 @@
-import "@material/mwc-list/mwc-list";
-import { mdiDeleteForever, mdiDotsVertical, mdiDownload } from "@mdi/js";
+import type { HomeAssistant } from "../../../../types";
+import type { CloudLogin } from "./cloud-login";
import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, query } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { navigate } from "../../../../common/navigate";
+
import "../../../../components/ha-alert";
+import "../../../../components/ha-button-menu";
import "../../../../components/ha-card";
import "../../../../components/ha-icon-next";
import "../../../../components/ha-list-item";
-import "../../../../components/ha-button-menu";
+import "../../../../layouts/hass-subpage";
+import "../../ha-config-section";
+import "./cloud-login";
+import "@material/mwc-list/mwc-list";
+
+import { mdiDeleteForever, mdiDotsVertical, mdiDownload } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement, property, query } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { navigate } from "../../../../common/navigate";
import { removeCloudData } from "../../../../data/cloud";
import {
showAlertDialog,
showConfirmationDialog,
} from "../../../../dialogs/generic/show-dialog-box";
-import "../../../../layouts/hass-subpage";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
-import "../../ha-config-section";
-import "./cloud-login";
import { showSupportPackageDialog } from "../account/show-dialog-cloud-support-package";
-import type { CloudLogin } from "./cloud-login";
@customElement("cloud-login-panel")
export class CloudLoginPanel extends LitElement {
diff --git a/src/panels/config/cloud/login/cloud-login.ts b/src/panels/config/cloud/login/cloud-login.ts
index 8c42063569..ed8de805c3 100644
--- a/src/panels/config/cloud/login/cloud-login.ts
+++ b/src/panels/config/cloud/login/cloud-login.ts
@@ -1,27 +1,30 @@
+import type { LocalizeFunc } from "../../../../common/translations/localize";
+import type { HaPasswordField } from "../../../../components/ha-password-field";
+import type { HaTextField } from "../../../../components/ha-textfield";
+import type { HomeAssistant } from "../../../../types";
import type { TemplateResult } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
+
import "../../../../components/buttons/ha-progress-button";
import "../../../../components/ha-alert";
-import "../../../../components/ha-card";
import "../../../../components/ha-button";
+import "../../../../components/ha-card";
import "../../../../components/ha-password-field";
-import type { HaPasswordField } from "../../../../components/ha-password-field";
import "../../../../components/ha-textfield";
-import type { HaTextField } from "../../../../components/ha-textfield";
-import { haStyle } from "../../../../resources/styles";
-import type { LocalizeFunc } from "../../../../common/translations/localize";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { setAssistPipelinePreferred } from "../../../../data/assist_pipeline";
import { cloudLogin } from "../../../../data/cloud";
+import { loginHaCloud } from "../../../../data/onboarding";
+import { haStyle } from "../../../../resources/styles";
import {
showAlertDialog,
showConfirmationDialog,
showPromptDialog,
} from "../../../lovelace/custom-card-helpers";
-import { setAssistPipelinePreferred } from "../../../../data/assist_pipeline";
import { showCloudAlreadyConnectedDialog } from "../dialog-cloud-already-connected/show-dialog-cloud-already-connected";
-import type { HomeAssistant } from "../../../../types";
-import { loginHaCloud } from "../../../../data/onboarding";
@customElement("cloud-login")
export class CloudLogin extends LitElement {
diff --git a/src/panels/config/cloud/register/cloud-register.ts b/src/panels/config/cloud/register/cloud-register.ts
index ac999a37b0..ea71f51ac0 100644
--- a/src/panels/config/cloud/register/cloud-register.ts
+++ b/src/panels/config/cloud/register/cloud-register.ts
@@ -1,18 +1,21 @@
+import type { HaTextField } from "../../../../components/ha-textfield";
+import type { HomeAssistant } from "../../../../types";
import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
+
import "../../../../components/buttons/ha-progress-button";
import "../../../../components/ha-alert";
import "../../../../components/ha-card";
-import "../../../../components/ha-textfield";
-import type { HaTextField } from "../../../../components/ha-textfield";
-import { cloudRegister, cloudResendVerification } from "../../../../data/cloud";
-import "../../../../layouts/hass-subpage";
-import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
-import "../../ha-config-section";
import "../../../../components/ha-password-field";
+import "../../../../components/ha-textfield";
+import "../../../../layouts/hass-subpage";
+import "../../ha-config-section";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { cloudRegister, cloudResendVerification } from "../../../../data/cloud";
+import { haStyle } from "../../../../resources/styles";
@customElement("cloud-register")
export class CloudRegister extends LitElement {
diff --git a/src/panels/config/core/ha-config-analytics.ts b/src/panels/config/core/ha-config-analytics.ts
index 6beac677d9..3ce61131af 100644
--- a/src/panels/config/core/ha-config-analytics.ts
+++ b/src/panels/config/core/ha-config-analytics.ts
@@ -1,19 +1,22 @@
-import "@material/mwc-button/mwc-button";
+import type { Analytics } from "../../../data/analytics";
+import type { HomeAssistant } from "../../../types";
import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { isComponentLoaded } from "../../../common/config/is_component_loaded";
+
import "../../../components/ha-analytics";
import "../../../components/ha-card";
import "../../../components/ha-checkbox";
import "../../../components/ha-settings-row";
-import type { Analytics } from "../../../data/analytics";
+import "@material/mwc-button/mwc-button";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import {
getAnalyticsDetails,
setAnalyticsPreferences,
} from "../../../data/analytics";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { documentationUrl } from "../../../util/documentation-url";
@customElement("ha-config-analytics")
diff --git a/src/panels/config/core/ha-config-section-analytics.ts b/src/panels/config/core/ha-config-section-analytics.ts
index c64ede995d..e4cff2c8f5 100644
--- a/src/panels/config/core/ha-config-section-analytics.ts
+++ b/src/panels/config/core/ha-config-section-analytics.ts
@@ -1,9 +1,11 @@
+import type { HomeAssistant, Route } from "../../../types";
import type { TemplateResult } from "lit";
+
+import "../../../layouts/hass-subpage";
+import "./ha-config-analytics";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
-import "../../../layouts/hass-subpage";
-import type { HomeAssistant, Route } from "../../../types";
-import "./ha-config-analytics";
@customElement("ha-config-section-analytics")
class HaConfigSectionAnalytics extends LitElement {
diff --git a/src/panels/config/core/ha-config-section-general.ts b/src/panels/config/core/ha-config-section-general.ts
index 693937b1d0..718ef91d38 100644
--- a/src/panels/config/core/ha-config-section-general.ts
+++ b/src/panels/config/core/ha-config-section-general.ts
@@ -1,33 +1,36 @@
-import "@material/mwc-list/mwc-list-item";
-import type { TemplateResult } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { UNIT_C } from "../../../common/const";
-import { stopPropagation } from "../../../common/dom/stop_propagation";
-import { navigate } from "../../../common/navigate";
-import "../../../components/buttons/ha-progress-button";
import type { HaProgressButton } from "../../../components/buttons/ha-progress-button";
+import type { HaCheckbox } from "../../../components/ha-checkbox";
+import type { HaRadio } from "../../../components/ha-radio";
+import type { HaTextField } from "../../../components/ha-textfield";
+import type { ConfigUpdateValues } from "../../../data/core";
+import type { HomeAssistant, ValueChangedEvent } from "../../../types";
+import type { TemplateResult } from "lit";
+
+import "../../../components/buttons/ha-progress-button";
import "../../../components/ha-alert";
import "../../../components/ha-card";
import "../../../components/ha-checkbox";
-import type { HaCheckbox } from "../../../components/ha-checkbox";
import "../../../components/ha-country-picker";
import "../../../components/ha-currency-picker";
import "../../../components/ha-formfield";
import "../../../components/ha-language-picker";
import "../../../components/ha-radio";
-import type { HaRadio } from "../../../components/ha-radio";
import "../../../components/ha-select";
import "../../../components/ha-settings-row";
import "../../../components/ha-textfield";
-import type { HaTextField } from "../../../components/ha-textfield";
import "../../../components/ha-timezone-picker";
-import type { ConfigUpdateValues } from "../../../data/core";
+import "../../../layouts/hass-subpage";
+import "@material/mwc-list/mwc-list-item";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { UNIT_C } from "../../../common/const";
+import { stopPropagation } from "../../../common/dom/stop_propagation";
+import { navigate } from "../../../common/navigate";
import { saveCoreConfig } from "../../../data/core";
import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box";
-import "../../../layouts/hass-subpage";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant, ValueChangedEvent } from "../../../types";
@customElement("ha-config-section-general")
class HaConfigSectionGeneral extends LitElement {
diff --git a/src/panels/config/core/ha-config-section-updates.ts b/src/panels/config/core/ha-config-section-updates.ts
index a556798803..782b5815b2 100644
--- a/src/panels/config/core/ha-config-section-updates.ts
+++ b/src/panels/config/core/ha-config-section-updates.ts
@@ -1,24 +1,30 @@
-import "@material/mwc-list/mwc-list-item";
+import type {
+ HassioSupervisorInfo,
+ SupervisorOptions,
+} from "../../../data/hassio/supervisor";
+import type { HomeAssistant } from "../../../types";
import type { RequestSelectedDetail } from "@material/mwc-list/mwc-list-item";
-import { mdiDotsVertical, mdiRefresh } from "@mdi/js";
import type { HassEntities } from "home-assistant-js-websocket";
import type { TemplateResult } from "lit";
-import { LitElement, css, html } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { isComponentLoaded } from "../../../common/config/is_component_loaded";
-import { shouldHandleRequestSelectedEvent } from "../../../common/mwc/handle-request-selected-event";
+
import "../../../components/ha-alert";
import "../../../components/ha-bar";
import "../../../components/ha-button-menu";
import "../../../components/ha-card";
import "../../../components/ha-check-list-item";
import "../../../components/ha-metric";
+import "../../../layouts/hass-subpage";
+import "../dashboard/ha-config-updates";
+import "@material/mwc-list/mwc-list-item";
+
+import { mdiDotsVertical, mdiRefresh } from "@mdi/js";
+import { LitElement, css, html } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { isComponentLoaded } from "../../../common/config/is_component_loaded";
+import { shouldHandleRequestSelectedEvent } from "../../../common/mwc/handle-request-selected-event";
import { extractApiErrorMessage } from "../../../data/hassio/common";
-import type {
- HassioSupervisorInfo,
- SupervisorOptions,
-} from "../../../data/hassio/supervisor";
import {
fetchHassioSupervisorInfo,
reloadSupervisor,
@@ -29,9 +35,6 @@ import {
filterUpdateEntitiesWithInstall,
} from "../../../data/update";
import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
-import "../../../layouts/hass-subpage";
-import type { HomeAssistant } from "../../../types";
-import "../dashboard/ha-config-updates";
import { showJoinBetaDialog } from "./updates/show-dialog-join-beta";
@customElement("ha-config-section-updates")
diff --git a/src/panels/config/core/ha-config-system-navigation.ts b/src/panels/config/core/ha-config-system-navigation.ts
index 3f6675e5b1..c075f44a04 100644
--- a/src/panels/config/core/ha-config-system-navigation.ts
+++ b/src/panels/config/core/ha-config-system-navigation.ts
@@ -1,35 +1,38 @@
-import { mdiPower } from "@mdi/js";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { canShowPage } from "../../../common/config/can_show_page";
-import { isComponentLoaded } from "../../../common/config/is_component_loaded";
-import { relativeTime } from "../../../common/datetime/relative_time";
-import { blankBeforePercent } from "../../../common/translations/blank_before_percent";
-import "../../../components/ha-card";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-navigation-list";
import type { BackupContent } from "../../../data/backup";
-import { fetchBackupInfo } from "../../../data/backup";
import type { CloudStatus } from "../../../data/cloud";
-import { fetchCloudStatus } from "../../../data/cloud";
import type { HardwareInfo } from "../../../data/hardware";
-import { BOARD_NAMES } from "../../../data/hardware";
import type { HassioBackup } from "../../../data/hassio/backup";
-import { fetchHassioBackups } from "../../../data/hassio/backup";
import type {
HassioHassOSInfo,
HassioHostInfo,
} from "../../../data/hassio/host";
+import type { HomeAssistant } from "../../../types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../components/ha-card";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-navigation-list";
+import "../../../layouts/hass-subpage";
+import "../ha-config-section";
+
+import { mdiPower } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { canShowPage } from "../../../common/config/can_show_page";
+import { isComponentLoaded } from "../../../common/config/is_component_loaded";
+import { relativeTime } from "../../../common/datetime/relative_time";
+import { blankBeforePercent } from "../../../common/translations/blank_before_percent";
+import { fetchBackupInfo } from "../../../data/backup";
+import { fetchCloudStatus } from "../../../data/cloud";
+import { BOARD_NAMES } from "../../../data/hardware";
+import { fetchHassioBackups } from "../../../data/hassio/backup";
import {
fetchHassioHassOsInfo,
fetchHassioHostInfo,
} from "../../../data/hassio/host";
import { showRestartDialog } from "../../../dialogs/restart/show-dialog-restart";
-import "../../../layouts/hass-subpage";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
-import "../ha-config-section";
import { configSections } from "../ha-panel-config";
@customElement("ha-config-system-navigation")
diff --git a/src/panels/config/core/updates/dialog-join-beta.ts b/src/panels/config/core/updates/dialog-join-beta.ts
index 120ee48a9e..461ec0a5e7 100644
--- a/src/panels/config/core/updates/dialog-join-beta.ts
+++ b/src/panels/config/core/updates/dialog-join-beta.ts
@@ -1,16 +1,19 @@
-import "@material/mwc-button/mwc-button";
-import { mdiOpenInNew } from "@mdi/js";
+import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../../types";
+import type { JoinBetaDialogParams } from "./show-dialog-join-beta";
import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-alert";
+import "@material/mwc-button/mwc-button";
+
+import { mdiOpenInNew } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-alert";
import { createCloseHeading } from "../../../../components/ha-dialog";
-import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
import { haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import { documentationUrl } from "../../../../util/documentation-url";
-import type { JoinBetaDialogParams } from "./show-dialog-join-beta";
@customElement("dialog-join-beta")
export class DialogJoinBeta
diff --git a/src/panels/config/core/updates/show-dialog-join-beta.ts b/src/panels/config/core/updates/show-dialog-join-beta.ts
index 515f4d517c..effa5d71a7 100644
--- a/src/panels/config/core/updates/show-dialog-join-beta.ts
+++ b/src/panels/config/core/updates/show-dialog-join-beta.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import "./dialog-join-beta";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export interface JoinBetaDialogParams {
join?: () => any;
cancel?: () => any;
diff --git a/src/panels/config/dashboard/dialog-new-dashboard.ts b/src/panels/config/dashboard/dialog-new-dashboard.ts
index 33040d8f2c..9829237e80 100644
--- a/src/panels/config/dashboard/dialog-new-dashboard.ts
+++ b/src/panels/config/dashboard/dialog-new-dashboard.ts
@@ -1,18 +1,21 @@
-import "@material/mwc-list/mwc-list";
-import { mdiHome, mdiMap, mdiPencilOutline, mdiShape, mdiWeb } from "@mdi/js";
+import type { LovelaceRawConfig } from "../../../data/lovelace/config/types";
+import type { HassDialog } from "../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../types";
+import type { NewDashboardDialogParams } from "./show-dialog-new-dashboard";
import type { CSSResultGroup } from "lit";
+
+import "../../../components/ha-icon-next";
+import "../../../components/ha-list-item";
+import "@material/mwc-list/mwc-list";
+
+import { mdiHome, mdiMap, mdiPencilOutline, mdiShape, mdiWeb } from "@mdi/js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../../../common/dom/fire_event";
import { shouldHandleRequestSelectedEvent } from "../../../common/mwc/handle-request-selected-event";
import { createCloseHeading } from "../../../components/ha-dialog";
-import "../../../components/ha-icon-next";
-import "../../../components/ha-list-item";
-import type { LovelaceRawConfig } from "../../../data/lovelace/config/types";
-import type { HassDialog } from "../../../dialogs/make-dialog-manager";
import { haStyle, haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
-import type { NewDashboardDialogParams } from "./show-dialog-new-dashboard";
const EMPTY_CONFIG: LovelaceRawConfig = { views: [{ title: "Home" }] };
diff --git a/src/panels/config/dashboard/ha-config-dashboard.ts b/src/panels/config/dashboard/ha-config-dashboard.ts
index f1f5280c6d..988b4a4870 100644
--- a/src/panels/config/dashboard/ha-config-dashboard.ts
+++ b/src/panels/config/dashboard/ha-config-dashboard.ts
@@ -1,17 +1,12 @@
+import type { CloudStatus } from "../../../data/cloud";
+import type { RepairsIssue } from "../../../data/repairs";
+import type { UpdateEntity } from "../../../data/update";
+import type { PageNavigation } from "../../../layouts/hass-tabs-subpage";
+import type { HomeAssistant } from "../../../types";
import type { ActionDetail } from "@material/mwc-list";
-import {
- mdiCloudLock,
- mdiDotsVertical,
- mdiMagnify,
- mdiPower,
- mdiRefresh,
-} from "@mdi/js";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { isComponentLoaded } from "../../../common/config/is_component_loaded";
+
import "../../../components/chips/ha-assist-chip";
import "../../../components/ha-button-menu";
import "../../../components/ha-card";
@@ -22,13 +17,27 @@ import "../../../components/ha-menu-button";
import "../../../components/ha-svg-icon";
import "../../../components/ha-tip";
import "../../../components/ha-top-app-bar-fixed";
-import type { CloudStatus } from "../../../data/cloud";
-import type { RepairsIssue } from "../../../data/repairs";
+import "../ha-config-section";
+import "../repairs/ha-config-repairs";
+import "./ha-config-navigation";
+import "./ha-config-updates";
+
+import {
+ mdiCloudLock,
+ mdiDotsVertical,
+ mdiMagnify,
+ mdiPower,
+ mdiRefresh,
+} from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import {
severitySort,
subscribeRepairsIssueRegistry,
} from "../../../data/repairs";
-import type { UpdateEntity } from "../../../data/update";
import {
checkForEntityUpdates,
filterUpdateEntitiesWithInstall,
@@ -38,17 +47,11 @@ import {
showQuickBar,
} from "../../../dialogs/quick-bar/show-dialog-quick-bar";
import { showRestartDialog } from "../../../dialogs/restart/show-dialog-restart";
-import type { PageNavigation } from "../../../layouts/hass-tabs-subpage";
+import { showShortcutsDialog } from "../../../dialogs/shortcuts/show-shortcuts-dialog";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { documentationUrl } from "../../../util/documentation-url";
-import "../ha-config-section";
import { configSections } from "../ha-panel-config";
-import "../repairs/ha-config-repairs";
-import "./ha-config-navigation";
-import "./ha-config-updates";
-import { showShortcutsDialog } from "../../../dialogs/shortcuts/show-shortcuts-dialog";
const randomTip = (openFn: any, hass: HomeAssistant, narrow: boolean) => {
const weighted: string[] = [];
diff --git a/src/panels/config/dashboard/ha-config-navigation.ts b/src/panels/config/dashboard/ha-config-navigation.ts
index 0b0f926dad..4371cf755a 100644
--- a/src/panels/config/dashboard/ha-config-navigation.ts
+++ b/src/panels/config/dashboard/ha-config-navigation.ts
@@ -1,15 +1,18 @@
-import "@material/mwc-list/mwc-list";
-import "@material/mwc-list/mwc-list-item";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { canShowPage } from "../../../common/config/can_show_page";
-import "../../../components/ha-card";
-import "../../../components/ha-icon-next";
-import "../../../components/ha-navigation-list";
import type { CloudStatus } from "../../../data/cloud";
import type { PageNavigation } from "../../../layouts/hass-tabs-subpage";
import type { HomeAssistant } from "../../../types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../components/ha-card";
+import "../../../components/ha-icon-next";
+import "../../../components/ha-navigation-list";
+import "@material/mwc-list/mwc-list";
+import "@material/mwc-list/mwc-list-item";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { canShowPage } from "../../../common/config/can_show_page";
@customElement("ha-config-navigation")
class HaConfigNavigation extends LitElement {
diff --git a/src/panels/config/dashboard/ha-config-updates.ts b/src/panels/config/dashboard/ha-config-updates.ts
index 271e398558..7c382d1f27 100644
--- a/src/panels/config/dashboard/ha-config-updates.ts
+++ b/src/panels/config/dashboard/ha-config-updates.ts
@@ -1,24 +1,27 @@
+import type { DeviceRegistryEntry } from "../../../data/device_registry";
+import type { EntityRegistryEntry } from "../../../data/entity_registry";
+import type { UpdateEntity } from "../../../data/update";
+import type { HomeAssistant } from "../../../types";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { ifDefined } from "lit/directives/if-defined";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { computeDeviceNameDisplay } from "../../../common/entity/compute_device_name";
+
import "../../../components/entity/state-badge";
import "../../../components/ha-alert";
import "../../../components/ha-icon-next";
import "../../../components/ha-md-list";
import "../../../components/ha-md-list-item";
import "../../../components/ha-spinner";
-import type { DeviceRegistryEntry } from "../../../data/device_registry";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { ifDefined } from "lit/directives/if-defined";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { computeDeviceNameDisplay } from "../../../common/entity/compute_device_name";
import { subscribeDeviceRegistry } from "../../../data/device_registry";
-import type { EntityRegistryEntry } from "../../../data/entity_registry";
import { subscribeEntityRegistry } from "../../../data/entity_registry";
-import type { UpdateEntity } from "../../../data/update";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
-import type { HomeAssistant } from "../../../types";
@customElement("ha-config-updates")
class HaConfigUpdates extends SubscribeMixin(LitElement) {
diff --git a/src/panels/config/dashboard/show-dialog-new-dashboard.ts b/src/panels/config/dashboard/show-dialog-new-dashboard.ts
index 237a545e59..b8dfa1079d 100644
--- a/src/panels/config/dashboard/show-dialog-new-dashboard.ts
+++ b/src/panels/config/dashboard/show-dialog-new-dashboard.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type { LovelaceConfig } from "../../../data/lovelace/config/types";
+import { fireEvent } from "../../../common/dom/fire_event";
+
export interface NewDashboardDialogParams {
selectConfig: (config: LovelaceConfig | undefined) => any;
}
diff --git a/src/panels/config/devices/device-detail/ha-device-automation-dialog.ts b/src/panels/config/devices/device-detail/ha-device-automation-dialog.ts
index a3009bfe0a..201a4314ff 100644
--- a/src/panels/config/devices/device-detail/ha-device-automation-dialog.ts
+++ b/src/panels/config/devices/device-detail/ha-device-automation-dialog.ts
@@ -1,36 +1,39 @@
+import type { AutomationConfig } from "../../../../data/automation";
+import type {
+ DeviceAction,
+ DeviceCondition,
+ DeviceTrigger,
+} from "../../../../data/device_automation";
+import type { ScriptConfig } from "../../../../data/script";
+import type { HomeAssistant } from "../../../../types";
+import type { DeviceAutomationDialogParams } from "./show-dialog-device-automation";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-icon-next";
+import "../../../../components/ha-list-item";
import "@material/mwc-list/mwc-list";
+
import {
mdiAbTesting,
mdiGestureTap,
mdiPencilOutline,
mdiRoomService,
} from "@mdi/js";
-import type { CSSResultGroup } from "lit";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../../../../common/dom/fire_event";
import { shouldHandleRequestSelectedEvent } from "../../../../common/mwc/handle-request-selected-event";
import { createCloseHeading } from "../../../../components/ha-dialog";
-import "../../../../components/ha-icon-next";
-import "../../../../components/ha-list-item";
-import type { AutomationConfig } from "../../../../data/automation";
import { showAutomationEditor } from "../../../../data/automation";
-import type {
- DeviceAction,
- DeviceCondition,
- DeviceTrigger,
-} from "../../../../data/device_automation";
import {
fetchDeviceActions,
fetchDeviceConditions,
fetchDeviceTriggers,
sortDeviceAutomations,
} from "../../../../data/device_automation";
-import type { ScriptConfig } from "../../../../data/script";
import { showScriptEditor } from "../../../../data/script";
import { haStyle, haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
-import type { DeviceAutomationDialogParams } from "./show-dialog-device-automation";
@customElement("dialog-device-automation")
export class DialogDeviceAutomation extends LitElement {
diff --git a/src/panels/config/devices/device-detail/ha-device-entities-card.ts b/src/panels/config/devices/device-detail/ha-device-entities-card.ts
index 5415f29028..8d490df70f 100644
--- a/src/panels/config/devices/device-detail/ha-device-entities-card.ts
+++ b/src/panels/config/devices/device-detail/ha-device-entities-card.ts
@@ -1,31 +1,34 @@
-import "@material/mwc-list/mwc-list";
+import type { ExtEntityRegistryEntry } from "../../../../data/entity_registry";
+import type { HomeAssistant } from "../../../../types";
+import type { HuiErrorCard } from "../../../lovelace/cards/hui-error-card";
+import type {
+ LovelaceRow,
+ LovelaceRowConfig,
+} from "../../../lovelace/entity-rows/types";
+import type { EntityRegistryStateEntry } from "../ha-config-device-page";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../../components/ha-card";
+import "../../../../components/ha-icon";
+import "../../../../components/ha-list-item";
+import "@material/mwc-list/mwc-list";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { until } from "lit/directives/until";
+
import { computeEntityName } from "../../../../common/entity/compute_entity_name";
import { stripPrefixFromEntityName } from "../../../../common/entity/strip_prefix_from_entity_name";
-import "../../../../components/ha-card";
-import "../../../../components/ha-icon";
-import "../../../../components/ha-list-item";
-import type { ExtEntityRegistryEntry } from "../../../../data/entity_registry";
import { getExtendedEntityRegistryEntry } from "../../../../data/entity_registry";
import { entryIcon } from "../../../../data/icons";
import { showMoreInfoDialog } from "../../../../dialogs/more-info/show-ha-more-info-dialog";
-import type { HomeAssistant } from "../../../../types";
-import type { HuiErrorCard } from "../../../lovelace/cards/hui-error-card";
import {
computeCards,
computeSection,
} from "../../../lovelace/common/generate-lovelace-config";
import { createRowElement } from "../../../lovelace/create-element/create-row-element";
import { addEntitiesToLovelaceView } from "../../../lovelace/editor/add-entities-to-view";
-import type {
- LovelaceRow,
- LovelaceRowConfig,
-} from "../../../lovelace/entity-rows/types";
-import type { EntityRegistryStateEntry } from "../ha-config-device-page";
@customElement("ha-device-entities-card")
export class HaDeviceEntitiesCard extends LitElement {
diff --git a/src/panels/config/devices/device-detail/ha-device-info-card.ts b/src/panels/config/devices/device-detail/ha-device-info-card.ts
index 03bbdad91e..0192f67cb9 100644
--- a/src/panels/config/devices/device-detail/ha-device-info-card.ts
+++ b/src/panels/config/devices/device-detail/ha-device-info-card.ts
@@ -1,12 +1,15 @@
+import type { DeviceRegistryEntry } from "../../../../data/device_registry";
+import type { HomeAssistant } from "../../../../types";
import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../../components/ha-card";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
+
import { computeDeviceNameDisplay } from "../../../../common/entity/compute_device_name";
import { titleCase } from "../../../../common/string/title-case";
-import "../../../../components/ha-card";
-import type { DeviceRegistryEntry } from "../../../../data/device_registry";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
@customElement("ha-device-info-card")
export class HaDeviceCard extends LitElement {
diff --git a/src/panels/config/devices/device-detail/ha-device-via-devices-card.ts b/src/panels/config/devices/device-detail/ha-device-via-devices-card.ts
index 598963951f..3303f12f84 100644
--- a/src/panels/config/devices/device-detail/ha-device-via-devices-card.ts
+++ b/src/panels/config/devices/device-detail/ha-device-via-devices-card.ts
@@ -1,13 +1,16 @@
+import type { DeviceRegistryEntry } from "../../../../data/device_registry";
+import type { HomeAssistant } from "../../../../types";
+
+import "../../../../components/ha-card";
+import "../../../../components/ha-icon-next";
import "@material/mwc-list/mwc-list-item";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { computeDeviceNameDisplay } from "../../../../common/entity/compute_device_name";
import { caseInsensitiveStringCompare } from "../../../../common/string/compare";
-import "../../../../components/ha-card";
-import "../../../../components/ha-icon-next";
-import type { DeviceRegistryEntry } from "../../../../data/device_registry";
-import type { HomeAssistant } from "../../../../types";
const MAX_VISIBLE_VIA_DEVICES = 10;
diff --git a/src/panels/config/devices/device-detail/integration-elements/matter/device-actions.ts b/src/panels/config/devices/device-detail/integration-elements/matter/device-actions.ts
index f90c78b9fc..80e4527aa8 100644
--- a/src/panels/config/devices/device-detail/integration-elements/matter/device-actions.ts
+++ b/src/panels/config/devices/device-detail/integration-elements/matter/device-actions.ts
@@ -1,21 +1,23 @@
+import type { DeviceRegistryEntry } from "../../../../../../data/device_registry";
+import type { HomeAssistant } from "../../../../../../types";
+import type { DeviceAction } from "../../../ha-config-device-page";
+
import {
mdiAccessPoint,
mdiChatProcessing,
mdiChatQuestion,
mdiExportVariant,
} from "@mdi/js";
-import type { DeviceRegistryEntry } from "../../../../../../data/device_registry";
+
+import { navigate } from "../../../../../../common/navigate";
import {
NetworkType,
getMatterNodeDiagnostics,
} from "../../../../../../data/matter";
-import type { HomeAssistant } from "../../../../../../types";
-import { showMatterReinterviewNodeDialog } from "../../../../integrations/integration-panels/matter/show-dialog-matter-reinterview-node";
-import { showMatterPingNodeDialog } from "../../../../integrations/integration-panels/matter/show-dialog-matter-ping-node";
-import { showMatterOpenCommissioningWindowDialog } from "../../../../integrations/integration-panels/matter/show-dialog-matter-open-commissioning-window";
-import type { DeviceAction } from "../../../ha-config-device-page";
import { showMatterManageFabricsDialog } from "../../../../integrations/integration-panels/matter/show-dialog-matter-manage-fabrics";
-import { navigate } from "../../../../../../common/navigate";
+import { showMatterOpenCommissioningWindowDialog } from "../../../../integrations/integration-panels/matter/show-dialog-matter-open-commissioning-window";
+import { showMatterPingNodeDialog } from "../../../../integrations/integration-panels/matter/show-dialog-matter-ping-node";
+import { showMatterReinterviewNodeDialog } from "../../../../integrations/integration-panels/matter/show-dialog-matter-reinterview-node";
export const getMatterDeviceDefaultActions = (
el: HTMLElement,
diff --git a/src/panels/config/devices/device-detail/integration-elements/matter/ha-device-info-matter.ts b/src/panels/config/devices/device-detail/integration-elements/matter/ha-device-info-matter.ts
index c5f76bbb8a..2df84d7958 100644
--- a/src/panels/config/devices/device-detail/integration-elements/matter/ha-device-info-matter.ts
+++ b/src/panels/config/devices/device-detail/integration-elements/matter/ha-device-info-matter.ts
@@ -1,15 +1,18 @@
-import type { CSSResultGroup, PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import "../../../../../../components/ha-expansion-panel";
import type { DeviceRegistryEntry } from "../../../../../../data/device_registry";
import type { MatterNodeDiagnostics } from "../../../../../../data/matter";
-import { getMatterNodeDiagnostics } from "../../../../../../data/matter";
-import "@material/mwc-list";
+import type { HomeAssistant } from "../../../../../../types";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../../../../components/ha-expansion-panel";
import "../../../../../../components/ha-list-item";
+import "@material/mwc-list";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { getMatterNodeDiagnostics } from "../../../../../../data/matter";
import { SubscribeMixin } from "../../../../../../mixins/subscribe-mixin";
import { haStyle } from "../../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../../types";
@customElement("ha-device-info-matter")
export class HaDeviceInfoMatter extends SubscribeMixin(LitElement) {
diff --git a/src/panels/config/devices/device-detail/integration-elements/mqtt/device-actions.ts b/src/panels/config/devices/device-detail/integration-elements/mqtt/device-actions.ts
index faa99cf83d..690acaddcf 100644
--- a/src/panels/config/devices/device-detail/integration-elements/mqtt/device-actions.ts
+++ b/src/panels/config/devices/device-detail/integration-elements/mqtt/device-actions.ts
@@ -1,6 +1,8 @@
-import { mdiInformation } from "@mdi/js";
import type { DeviceRegistryEntry } from "../../../../../../data/device_registry";
import type { DeviceAction } from "../../../ha-config-device-page";
+
+import { mdiInformation } from "@mdi/js";
+
import { showMQTTDeviceDebugInfoDialog } from "./show-dialog-mqtt-device-debug-info";
export const getMQTTDeviceActions = (
diff --git a/src/panels/config/devices/device-detail/integration-elements/mqtt/dialog-mqtt-device-debug-info.ts b/src/panels/config/devices/device-detail/integration-elements/mqtt/dialog-mqtt-device-debug-info.ts
index b531b5e2d3..5a5e749b06 100644
--- a/src/panels/config/devices/device-detail/integration-elements/mqtt/dialog-mqtt-device-debug-info.ts
+++ b/src/panels/config/devices/device-detail/integration-elements/mqtt/dialog-mqtt-device-debug-info.ts
@@ -1,20 +1,23 @@
-import "@material/mwc-button/mwc-button";
+import type { HaSwitch } from "../../../../../../components/ha-switch";
+import type { MQTTDeviceDebugInfo } from "../../../../../../data/mqtt";
+import type { HomeAssistant } from "../../../../../../types";
+import type { MQTTDeviceDebugInfoDialogParams } from "./show-dialog-mqtt-device-debug-info";
import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, state } from "lit/decorators";
-import { computeDeviceNameDisplay } from "../../../../../../common/entity/compute_device_name";
-import { computeStateName } from "../../../../../../common/entity/compute_state_name";
+
import "../../../../../../components/ha-dialog";
import "../../../../../../components/ha-formfield";
import "../../../../../../components/ha-switch";
-import type { HaSwitch } from "../../../../../../components/ha-switch";
-import type { MQTTDeviceDebugInfo } from "../../../../../../data/mqtt";
-import { fetchMQTTDebugInfo } from "../../../../../../data/mqtt";
-import { haStyleDialog } from "../../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../../types";
import "./mqtt-discovery-payload";
import "./mqtt-messages";
-import type { MQTTDeviceDebugInfoDialogParams } from "./show-dialog-mqtt-device-debug-info";
+import "@material/mwc-button/mwc-button";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, state } from "lit/decorators";
+
+import { computeDeviceNameDisplay } from "../../../../../../common/entity/compute_device_name";
+import { computeStateName } from "../../../../../../common/entity/compute_state_name";
+import { fetchMQTTDebugInfo } from "../../../../../../data/mqtt";
+import { haStyleDialog } from "../../../../../../resources/styles";
@customElement("dialog-mqtt-device-debug-info")
class DialogMQTTDeviceDebugInfo extends LitElement {
diff --git a/src/panels/config/devices/device-detail/integration-elements/mqtt/mqtt-discovery-payload.ts b/src/panels/config/devices/device-detail/integration-elements/mqtt/mqtt-discovery-payload.ts
index 9cce42676b..f0673ee6b9 100644
--- a/src/panels/config/devices/device-detail/integration-elements/mqtt/mqtt-discovery-payload.ts
+++ b/src/panels/config/devices/device-detail/integration-elements/mqtt/mqtt-discovery-payload.ts
@@ -1,5 +1,6 @@
-import { dump } from "js-yaml";
import type { TemplateResult } from "lit";
+
+import { dump } from "js-yaml";
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
diff --git a/src/panels/config/devices/device-detail/integration-elements/mqtt/mqtt-messages.ts b/src/panels/config/devices/device-detail/integration-elements/mqtt/mqtt-messages.ts
index 7cd8134e60..0dc65ef6f5 100644
--- a/src/panels/config/devices/device-detail/integration-elements/mqtt/mqtt-messages.ts
+++ b/src/panels/config/devices/device-detail/integration-elements/mqtt/mqtt-messages.ts
@@ -1,11 +1,13 @@
-import { dump } from "js-yaml";
+import type { MQTTMessage } from "../../../../../../data/mqtt";
+import type { HomeAssistant } from "../../../../../../types";
import type { TemplateResult } from "lit";
+
+import { dump } from "js-yaml";
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { formatTimeWithSeconds } from "../../../../../../common/datetime/format_time";
-import type { MQTTMessage } from "../../../../../../data/mqtt";
-import type { HomeAssistant } from "../../../../../../types";
@customElement("mqtt-messages")
class MQTTMessages extends LitElement {
diff --git a/src/panels/config/devices/device-detail/integration-elements/mqtt/show-dialog-mqtt-device-debug-info.ts b/src/panels/config/devices/device-detail/integration-elements/mqtt/show-dialog-mqtt-device-debug-info.ts
index 25751ba7c5..3c0e0738b7 100644
--- a/src/panels/config/devices/device-detail/integration-elements/mqtt/show-dialog-mqtt-device-debug-info.ts
+++ b/src/panels/config/devices/device-detail/integration-elements/mqtt/show-dialog-mqtt-device-debug-info.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../../../../common/dom/fire_event";
import type { DeviceRegistryEntry } from "../../../../../../data/device_registry";
+import { fireEvent } from "../../../../../../common/dom/fire_event";
+
export interface MQTTDeviceDebugInfoDialogParams {
device: DeviceRegistryEntry;
}
diff --git a/src/panels/config/devices/device-detail/integration-elements/zha/device-actions.ts b/src/panels/config/devices/device-detail/integration-elements/zha/device-actions.ts
index 3403492ef9..4ffa1baa97 100644
--- a/src/panels/config/devices/device-detail/integration-elements/zha/device-actions.ts
+++ b/src/panels/config/devices/device-detail/integration-elements/zha/device-actions.ts
@@ -1,3 +1,7 @@
+import type { DeviceRegistryEntry } from "../../../../../../data/device_registry";
+import type { HomeAssistant } from "../../../../../../types";
+import type { DeviceAction } from "../../../ha-config-device-page";
+
import {
mdiCogRefresh,
mdiDelete,
@@ -5,14 +9,12 @@ import {
mdiGroup,
mdiPlus,
} from "@mdi/js";
+
import { navigate } from "../../../../../../common/navigate";
-import type { DeviceRegistryEntry } from "../../../../../../data/device_registry";
import { fetchZHADevice } from "../../../../../../data/zha";
import { showConfirmationDialog } from "../../../../../../dialogs/generic/show-dialog-box";
-import type { HomeAssistant } from "../../../../../../types";
import { showZHAManageZigbeeDeviceDialog } from "../../../../integrations/integration-panels/zha/show-dialog-zha-manage-zigbee-device";
import { showZHAReconfigureDeviceDialog } from "../../../../integrations/integration-panels/zha/show-dialog-zha-reconfigure-device";
-import type { DeviceAction } from "../../../ha-config-device-page";
export const getZHADeviceActions = async (
el: HTMLElement,
diff --git a/src/panels/config/devices/device-detail/integration-elements/zha/ha-device-info-zha.ts b/src/panels/config/devices/device-detail/integration-elements/zha/ha-device-info-zha.ts
index a682beefe4..7cdc5ae414 100644
--- a/src/panels/config/devices/device-detail/integration-elements/zha/ha-device-info-zha.ts
+++ b/src/panels/config/devices/device-detail/integration-elements/zha/ha-device-info-zha.ts
@@ -1,12 +1,15 @@
-import type { CSSResultGroup, PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import "../../../../../../components/ha-expansion-panel";
import type { DeviceRegistryEntry } from "../../../../../../data/device_registry";
import type { ZHADevice } from "../../../../../../data/zha";
+import type { HomeAssistant } from "../../../../../../types";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../../../../components/ha-expansion-panel";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
import { fetchZHADevice } from "../../../../../../data/zha";
import { haStyle } from "../../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../../types";
import { formatAsPaddedHex } from "../../../../integrations/integration-panels/zha/functions";
@customElement("ha-device-info-zha")
diff --git a/src/panels/config/devices/device-detail/integration-elements/zwave_js/device-actions.ts b/src/panels/config/devices/device-detail/integration-elements/zwave_js/device-actions.ts
index 5e4d719a7e..8851e09da0 100644
--- a/src/panels/config/devices/device-detail/integration-elements/zwave_js/device-actions.ts
+++ b/src/panels/config/devices/device-detail/integration-elements/zwave_js/device-actions.ts
@@ -1,3 +1,7 @@
+import type { DeviceRegistryEntry } from "../../../../../../data/device_registry";
+import type { HomeAssistant } from "../../../../../../types";
+import type { DeviceAction } from "../../../ha-config-device-page";
+
import {
mdiChatQuestion,
mdiCog,
@@ -7,8 +11,8 @@ import {
mdiUpload,
mdiWrench,
} from "@mdi/js";
+
import { getConfigEntries } from "../../../../../../data/config_entries";
-import type { DeviceRegistryEntry } from "../../../../../../data/device_registry";
import {
fetchZwaveIntegrationSettings,
fetchZwaveIsAnyOTAFirmwareUpdateInProgress,
@@ -16,14 +20,12 @@ import {
fetchZwaveNodeStatus,
} from "../../../../../../data/zwave_js";
import { showConfirmationDialog } from "../../../../../../dialogs/generic/show-dialog-box";
-import type { HomeAssistant } from "../../../../../../types";
-import { showZWaveJSRebuildNodeRoutesDialog } from "../../../../integrations/integration-panels/zwave_js/show-dialog-zwave_js-rebuild-node-routes";
+import { showZWaveJSHardResetControllerDialog } from "../../../../integrations/integration-panels/zwave_js/show-dialog-zwave_js-hard-reset-controller";
import { showZWaveJSNodeStatisticsDialog } from "../../../../integrations/integration-panels/zwave_js/show-dialog-zwave_js-node-statistics";
+import { showZWaveJSRebuildNodeRoutesDialog } from "../../../../integrations/integration-panels/zwave_js/show-dialog-zwave_js-rebuild-node-routes";
import { showZWaveJSReinterviewNodeDialog } from "../../../../integrations/integration-panels/zwave_js/show-dialog-zwave_js-reinterview-node";
import { showZWaveJSRemoveFailedNodeDialog } from "../../../../integrations/integration-panels/zwave_js/show-dialog-zwave_js-remove-failed-node";
import { showZWaveJSUpdateFirmwareNodeDialog } from "../../../../integrations/integration-panels/zwave_js/show-dialog-zwave_js-update-firmware-node";
-import type { DeviceAction } from "../../../ha-config-device-page";
-import { showZWaveJSHardResetControllerDialog } from "../../../../integrations/integration-panels/zwave_js/show-dialog-zwave_js-hard-reset-controller";
export const getZwaveDeviceActions = async (
el: HTMLElement,
diff --git a/src/panels/config/devices/device-detail/integration-elements/zwave_js/device-alerts.ts b/src/panels/config/devices/device-detail/integration-elements/zwave_js/device-alerts.ts
index f69ef5e6bd..f10cb38958 100644
--- a/src/panels/config/devices/device-detail/integration-elements/zwave_js/device-alerts.ts
+++ b/src/panels/config/devices/device-detail/integration-elements/zwave_js/device-alerts.ts
@@ -1,8 +1,9 @@
import type { DeviceRegistryEntry } from "../../../../../../data/device_registry";
-import { fetchZwaveNodeAlerts } from "../../../../../../data/zwave_js";
import type { HomeAssistant } from "../../../../../../types";
import type { DeviceAlert } from "../../../ha-config-device-page";
+import { fetchZwaveNodeAlerts } from "../../../../../../data/zwave_js";
+
export const getZwaveDeviceAlerts = async (
hass: HomeAssistant,
device: DeviceRegistryEntry
diff --git a/src/panels/config/devices/device-detail/integration-elements/zwave_js/ha-device-info-zwave_js.ts b/src/panels/config/devices/device-detail/integration-elements/zwave_js/ha-device-info-zwave_js.ts
index bed2ec4872..4134b52d7f 100644
--- a/src/panels/config/devices/device-detail/integration-elements/zwave_js/ha-device-info-zwave_js.ts
+++ b/src/panels/config/devices/device-detail/integration-elements/zwave_js/ha-device-info-zwave_js.ts
@@ -1,18 +1,21 @@
-import type { CSSResultGroup, PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import "../../../../../../components/ha-expansion-panel";
import type { ConfigEntry } from "../../../../../../data/config_entries";
-import { getConfigEntries } from "../../../../../../data/config_entries";
import type { DeviceRegistryEntry } from "../../../../../../data/device_registry";
import type { ZWaveJSNodeStatus } from "../../../../../../data/zwave_js";
+import type { HomeAssistant } from "../../../../../../types";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../../../../components/ha-expansion-panel";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { getConfigEntries } from "../../../../../../data/config_entries";
import {
fetchZwaveNodeStatus,
SecurityClass,
} from "../../../../../../data/zwave_js";
import { SubscribeMixin } from "../../../../../../mixins/subscribe-mixin";
import { haStyle } from "../../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../../types";
@customElement("ha-device-info-zwave_js")
export class HaDeviceInfoZWaveJS extends SubscribeMixin(LitElement) {
diff --git a/src/panels/config/devices/device-detail/show-dialog-device-automation.ts b/src/panels/config/devices/device-detail/show-dialog-device-automation.ts
index 7f7a906c39..fcf209fce6 100644
--- a/src/panels/config/devices/device-detail/show-dialog-device-automation.ts
+++ b/src/panels/config/devices/device-detail/show-dialog-device-automation.ts
@@ -1,7 +1,8 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { DeviceRegistryEntry } from "../../../../data/device_registry";
import type { EntityRegistryEntry } from "../../../../data/entity_registry";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export interface DeviceAutomationDialogParams {
device: DeviceRegistryEntry;
entityReg: EntityRegistryEntry[];
diff --git a/src/panels/config/devices/device-registry-detail/dialog-device-registry-detail.ts b/src/panels/config/devices/device-registry-detail/dialog-device-registry-detail.ts
index 7b912ef489..b829ed17a3 100644
--- a/src/panels/config/devices/device-registry-detail/dialog-device-registry-detail.ts
+++ b/src/panels/config/devices/device-registry-detail/dialog-device-registry-detail.ts
@@ -1,19 +1,22 @@
-import "@material/mwc-button/mwc-button";
+import type { HaSwitch } from "../../../../components/ha-switch";
+import type { DeviceRegistryEntry } from "../../../../data/device_registry";
+import type { HomeAssistant } from "../../../../types";
+import type { DeviceRegistryDetailDialogParams } from "./show-dialog-device-registry-detail";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { computeDeviceNameDisplay } from "../../../../common/entity/compute_device_name";
+
import "../../../../components/ha-alert";
import "../../../../components/ha-area-picker";
import "../../../../components/ha-dialog";
import "../../../../components/ha-labels-picker";
-import type { HaSwitch } from "../../../../components/ha-switch";
import "../../../../components/ha-textfield";
-import type { DeviceRegistryEntry } from "../../../../data/device_registry";
+import "@material/mwc-button/mwc-button";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { computeDeviceNameDisplay } from "../../../../common/entity/compute_device_name";
import { haStyle, haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
-import type { DeviceRegistryDetailDialogParams } from "./show-dialog-device-registry-detail";
@customElement("dialog-device-registry-detail")
class DialogDeviceRegistryDetail extends LitElement {
diff --git a/src/panels/config/devices/device-registry-detail/show-dialog-device-registry-detail.ts b/src/panels/config/devices/device-registry-detail/show-dialog-device-registry-detail.ts
index 2a2514f9b3..42147fd1df 100644
--- a/src/panels/config/devices/device-registry-detail/show-dialog-device-registry-detail.ts
+++ b/src/panels/config/devices/device-registry-detail/show-dialog-device-registry-detail.ts
@@ -1,9 +1,10 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type {
DeviceRegistryEntry,
DeviceRegistryEntryMutableParams,
} from "../../../../data/device_registry";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export interface DeviceRegistryDetailDialogParams {
device: DeviceRegistryEntry;
updateEntry: (
diff --git a/src/panels/config/devices/ha-config-device-page.ts b/src/panels/config/devices/ha-config-device-page.ts
index 67317d0ae6..cf44b33f66 100644
--- a/src/panels/config/devices/ha-config-device-page.ts
+++ b/src/panels/config/devices/ha-config-device-page.ts
@@ -1,3 +1,31 @@
+import type {
+ ConfigEntry,
+ DisableConfigEntryResult,
+} from "../../../data/config_entries";
+import type { DeviceRegistryEntry } from "../../../data/device_registry";
+import type { DiagnosticInfo } from "../../../data/diagnostics";
+import type { EntityRegistryEntry } from "../../../data/entity_registry";
+import type { IntegrationManifest } from "../../../data/integration";
+import type { SceneEntities } from "../../../data/scene";
+import type { RelatedResult } from "../../../data/search";
+import type { HomeAssistant } from "../../../types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../components/entity/ha-battery-icon";
+import "../../../components/ha-alert";
+import "../../../components/ha-button-menu";
+import "../../../components/ha-expansion-panel";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-icon-next";
+import "../../../components/ha-svg-icon";
+import "../../../components/ha-tooltip";
+import "../../../layouts/hass-error-screen";
+import "../../../layouts/hass-subpage";
+import "../../logbook/ha-logbook";
+import "./device-detail/ha-device-entities-card";
+import "./device-detail/ha-device-info-card";
+import "./device-detail/ha-device-via-devices-card";
+
import { consume } from "@lit-labs/context";
import {
mdiCog,
@@ -9,11 +37,11 @@ import {
mdiPencil,
mdiPlusCircle,
} from "@mdi/js";
-import type { CSSResultGroup, TemplateResult } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
import memoizeOne from "memoize-one";
+
import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import { ASSIST_ENTITIES, SENSOR_ENTITIES } from "../../../common/const";
import { computeDeviceNameDisplay } from "../../../common/entity/compute_device_name";
@@ -24,63 +52,38 @@ import { computeStateName } from "../../../common/entity/compute_state_name";
import { stringCompare } from "../../../common/string/compare";
import { slugify } from "../../../common/string/slugify";
import { groupBy } from "../../../common/util/group-by";
-import "../../../components/entity/ha-battery-icon";
-import "../../../components/ha-alert";
-import "../../../components/ha-button-menu";
-import "../../../components/ha-expansion-panel";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-icon-next";
-import "../../../components/ha-svg-icon";
-import "../../../components/ha-tooltip";
import { assistSatelliteSupportsSetupFlow } from "../../../data/assist_satellite";
import { getSignedPath } from "../../../data/auth";
-import type {
- ConfigEntry,
- DisableConfigEntryResult,
-} from "../../../data/config_entries";
import {
disableConfigEntry,
sortConfigEntries,
} from "../../../data/config_entries";
import { fullEntitiesContext } from "../../../data/context";
-import type { DeviceRegistryEntry } from "../../../data/device_registry";
import {
removeConfigEntryFromDevice,
updateDeviceRegistryEntry,
} from "../../../data/device_registry";
-import type { DiagnosticInfo } from "../../../data/diagnostics";
import {
fetchDiagnosticHandler,
getConfigEntryDiagnosticsDownloadUrl,
getDeviceDiagnosticsDownloadUrl,
} from "../../../data/diagnostics";
-import type { EntityRegistryEntry } from "../../../data/entity_registry";
import {
findBatteryChargingEntity,
findBatteryEntity,
updateEntityRegistryEntry,
} from "../../../data/entity_registry";
-import type { IntegrationManifest } from "../../../data/integration";
import { domainToName } from "../../../data/integration";
-import type { SceneEntities } from "../../../data/scene";
import { showSceneEditor } from "../../../data/scene";
-import type { RelatedResult } from "../../../data/search";
import { findRelated } from "../../../data/search";
import {
showAlertDialog,
showConfirmationDialog,
} from "../../../dialogs/generic/show-dialog-box";
import { showVoiceAssistantSetupDialog } from "../../../dialogs/voice-assistant-setup/show-voice-assistant-setup-dialog";
-import "../../../layouts/hass-error-screen";
-import "../../../layouts/hass-subpage";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { brandsUrl } from "../../../util/brands-url";
import { fileDownload } from "../../../util/file_download";
-import "../../logbook/ha-logbook";
-import "./device-detail/ha-device-entities-card";
-import "./device-detail/ha-device-info-card";
-import "./device-detail/ha-device-via-devices-card";
import { showDeviceAutomationDialog } from "./device-detail/show-dialog-device-automation";
import {
loadDeviceRegistryDetailDialog,
diff --git a/src/panels/config/devices/ha-config-devices-dashboard.ts b/src/panels/config/devices/ha-config-devices-dashboard.ts
index 9e276e3978..892ba4c472 100644
--- a/src/panels/config/devices/ha-config-devices-dashboard.ts
+++ b/src/panels/config/devices/ha-config-devices-dashboard.ts
@@ -1,41 +1,24 @@
-import { consume } from "@lit-labs/context";
-import {
- mdiChevronRight,
- mdiDotsVertical,
- mdiMenuDown,
- mdiPlus,
- mdiTextureBox,
- mdiCancel,
-} from "@mdi/js";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-
-import { ResizeController } from "@lit-labs/observers/resize-controller";
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { computeCssColor } from "../../../common/color/compute-color";
-import { formatShortDateTime } from "../../../common/datetime/format_date_time";
-import { storage } from "../../../common/decorators/storage";
import type { HASSDomEvent } from "../../../common/dom/fire_event";
-import { computeDeviceNameDisplay } from "../../../common/entity/compute_device_name";
-import { computeStateDomain } from "../../../common/entity/compute_state_domain";
-import {
- PROTOCOL_INTEGRATIONS,
- protocolIntegrationPicked,
-} from "../../../common/integrations/protocolIntegrationPicked";
-import { navigate } from "../../../common/navigate";
import type { LocalizeFunc } from "../../../common/translations/localize";
-import {
- hasRejectedItems,
- rejectedItems,
-} from "../../../common/util/promise-all-settled-results";
import type {
DataTableColumnContainer,
RowClickedEvent,
SelectionChangedEvent,
SortingChangedEvent,
} from "../../../components/data-table/ha-data-table";
+import type { ConfigEntry, SubEntry } from "../../../data/config_entries";
+import type { DataTableFilters } from "../../../data/data_table_filters";
+import type {
+ DeviceEntityLookup,
+ DeviceRegistryEntry,
+} from "../../../data/device_registry";
+import type { EntityRegistryEntry } from "../../../data/entity_registry";
+import type { IntegrationManifest } from "../../../data/integration";
+import type { LabelRegistryEntry } from "../../../data/label_registry";
+import type { HomeAssistant, Route } from "../../../types";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
import "../../../components/data-table/ha-data-table-labels";
import "../../../components/entity/ha-battery-icon";
import "../../../components/ha-alert";
@@ -51,40 +34,59 @@ import "../../../components/ha-icon-button";
import "../../../components/ha-md-divider";
import "../../../components/ha-md-menu-item";
import "../../../components/ha-sub-menu";
+import "../../../layouts/hass-tabs-subpage-data-table";
+import "../integrations/ha-integration-overflow-menu";
+
+import { consume } from "@lit-labs/context";
+import { ResizeController } from "@lit-labs/observers/resize-controller";
+import {
+ mdiChevronRight,
+ mdiDotsVertical,
+ mdiMenuDown,
+ mdiPlus,
+ mdiTextureBox,
+ mdiCancel,
+} from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { computeCssColor } from "../../../common/color/compute-color";
+import { formatShortDateTime } from "../../../common/datetime/format_date_time";
+import { storage } from "../../../common/decorators/storage";
+import { computeDeviceNameDisplay } from "../../../common/entity/compute_device_name";
+import { computeStateDomain } from "../../../common/entity/compute_state_domain";
+import {
+ PROTOCOL_INTEGRATIONS,
+ protocolIntegrationPicked,
+} from "../../../common/integrations/protocolIntegrationPicked";
+import { navigate } from "../../../common/navigate";
+import {
+ hasRejectedItems,
+ rejectedItems,
+} from "../../../common/util/promise-all-settled-results";
import { createAreaRegistryEntry } from "../../../data/area_registry";
-import type { ConfigEntry, SubEntry } from "../../../data/config_entries";
import { getSubEntries, sortConfigEntries } from "../../../data/config_entries";
import { fullEntitiesContext } from "../../../data/context";
-import type { DataTableFilters } from "../../../data/data_table_filters";
import {
deserializeFilters,
serializeFilters,
} from "../../../data/data_table_filters";
-import type {
- DeviceEntityLookup,
- DeviceRegistryEntry,
-} from "../../../data/device_registry";
import { updateDeviceRegistryEntry } from "../../../data/device_registry";
-import type { EntityRegistryEntry } from "../../../data/entity_registry";
import {
findBatteryChargingEntity,
findBatteryEntity,
} from "../../../data/entity_registry";
-import type { IntegrationManifest } from "../../../data/integration";
-import type { LabelRegistryEntry } from "../../../data/label_registry";
import {
createLabelRegistryEntry,
subscribeLabelRegistry,
} from "../../../data/label_registry";
import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
-import "../../../layouts/hass-tabs-subpage-data-table";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../types";
import { brandsUrl } from "../../../util/brands-url";
import { showAreaRegistryDetailDialog } from "../areas/show-dialog-area-registry-detail";
import { configSections } from "../ha-panel-config";
-import "../integrations/ha-integration-overflow-menu";
import { showAddIntegrationDialog } from "../integrations/show-add-integration-dialog";
import { showLabelDetailDialog } from "../labels/show-dialog-label-detail";
diff --git a/src/panels/config/devices/ha-config-devices.ts b/src/panels/config/devices/ha-config-devices.ts
index 9532d2ba48..dd6b358574 100644
--- a/src/panels/config/devices/ha-config-devices.ts
+++ b/src/panels/config/devices/ha-config-devices.ts
@@ -1,14 +1,17 @@
-import { customElement, property, state } from "lit/decorators";
import type { ConfigEntry } from "../../../data/config_entries";
-import { getConfigEntries } from "../../../data/config_entries";
import type { IntegrationManifest } from "../../../data/integration";
-import { fetchIntegrationManifests } from "../../../data/integration";
import type { RouterOptions } from "../../../layouts/hass-router-page";
-import { HassRouterPage } from "../../../layouts/hass-router-page";
import type { HomeAssistant } from "../../../types";
+
import "./ha-config-device-page";
import "./ha-config-devices-dashboard";
+import { customElement, property, state } from "lit/decorators";
+
+import { getConfigEntries } from "../../../data/config_entries";
+import { fetchIntegrationManifests } from "../../../data/integration";
+import { HassRouterPage } from "../../../layouts/hass-router-page";
+
@customElement("ha-config-devices")
class HaConfigDevices extends HassRouterPage {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/config/energy/components/ha-energy-battery-settings.ts b/src/panels/config/energy/components/ha-energy-battery-settings.ts
index 16e358a7ad..d301638755 100644
--- a/src/panels/config/energy/components/ha-energy-battery-settings.ts
+++ b/src/panels/config/energy/components/ha-energy-battery-settings.ts
@@ -1,30 +1,33 @@
-import "@material/mwc-button/mwc-button";
-import { mdiBatteryHigh, mdiDelete, mdiPencil } from "@mdi/js";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-card";
-import "../../../../components/ha-icon-button";
-import "../../../../components/ha-settings-row";
import type {
BatterySourceTypeEnergyPreference,
EnergyPreferences,
EnergyPreferencesValidation,
EnergyValidationIssue,
} from "../../../../data/energy";
-import { saveEnergyPreferences } from "../../../../data/energy";
import type { StatisticsMetaData } from "../../../../data/recorder";
+import type { HomeAssistant } from "../../../../types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../../components/ha-card";
+import "../../../../components/ha-icon-button";
+import "../../../../components/ha-settings-row";
+import "./ha-energy-validation-result";
+import "@material/mwc-button/mwc-button";
+
+import { mdiBatteryHigh, mdiDelete, mdiPencil } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { saveEnergyPreferences } from "../../../../data/energy";
import { getStatisticLabel } from "../../../../data/recorder";
import {
showAlertDialog,
showConfirmationDialog,
} from "../../../../dialogs/generic/show-dialog-box";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import { documentationUrl } from "../../../../util/documentation-url";
import { showEnergySettingsBatteryDialog } from "../dialogs/show-dialogs-energy";
-import "./ha-energy-validation-result";
import { energyCardStyles } from "./styles";
@customElement("ha-energy-battery-settings")
diff --git a/src/panels/config/energy/components/ha-energy-device-settings.ts b/src/panels/config/energy/components/ha-energy-device-settings.ts
index 11eb58d42f..688dd70fb4 100644
--- a/src/panels/config/energy/components/ha-energy-device-settings.ts
+++ b/src/panels/config/energy/components/ha-energy-device-settings.ts
@@ -1,31 +1,34 @@
-import "@material/mwc-button/mwc-button";
-import { mdiDelete, mdiDevices, mdiDrag, mdiPencil } from "@mdi/js";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { repeat } from "lit/directives/repeat";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-card";
-import "../../../../components/ha-icon-button";
-import "../../../../components/ha-sortable";
-import "../../../../components/ha-svg-icon";
import type {
DeviceConsumptionEnergyPreference,
EnergyPreferences,
EnergyPreferencesValidation,
} from "../../../../data/energy";
-import { saveEnergyPreferences } from "../../../../data/energy";
import type { StatisticsMetaData } from "../../../../data/recorder";
+import type { HomeAssistant } from "../../../../types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../../components/ha-card";
+import "../../../../components/ha-icon-button";
+import "../../../../components/ha-sortable";
+import "../../../../components/ha-svg-icon";
+import "./ha-energy-validation-result";
+import "@material/mwc-button/mwc-button";
+
+import { mdiDelete, mdiDevices, mdiDrag, mdiPencil } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+import { repeat } from "lit/directives/repeat";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { saveEnergyPreferences } from "../../../../data/energy";
import { getStatisticLabel } from "../../../../data/recorder";
import {
showAlertDialog,
showConfirmationDialog,
} from "../../../../dialogs/generic/show-dialog-box";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import { documentationUrl } from "../../../../util/documentation-url";
import { showEnergySettingsDeviceDialog } from "../dialogs/show-dialogs-energy";
-import "./ha-energy-validation-result";
import { energyCardStyles } from "./styles";
@customElement("ha-energy-device-settings")
diff --git a/src/panels/config/energy/components/ha-energy-gas-settings.ts b/src/panels/config/energy/components/ha-energy-gas-settings.ts
index e3be87f220..9c8c385f0c 100644
--- a/src/panels/config/energy/components/ha-energy-gas-settings.ts
+++ b/src/panels/config/energy/components/ha-energy-gas-settings.ts
@@ -1,32 +1,35 @@
-import "@material/mwc-button/mwc-button";
-import { mdiDelete, mdiFire, mdiPencil } from "@mdi/js";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-card";
-import "../../../../components/ha-icon-button";
import type {
EnergyPreferences,
EnergyPreferencesValidation,
EnergyValidationIssue,
GasSourceTypeEnergyPreference,
} from "../../../../data/energy";
+import type { StatisticsMetaData } from "../../../../data/recorder";
+import type { HomeAssistant } from "../../../../types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../../components/ha-card";
+import "../../../../components/ha-icon-button";
+import "./ha-energy-validation-result";
+import "@material/mwc-button/mwc-button";
+
+import { mdiDelete, mdiFire, mdiPencil } from "@mdi/js";
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import {
getEnergyGasUnitClass,
saveEnergyPreferences,
} from "../../../../data/energy";
-import type { StatisticsMetaData } from "../../../../data/recorder";
import { getStatisticLabel } from "../../../../data/recorder";
import {
showAlertDialog,
showConfirmationDialog,
} from "../../../../dialogs/generic/show-dialog-box";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import { documentationUrl } from "../../../../util/documentation-url";
import { showEnergySettingsGasDialog } from "../dialogs/show-dialogs-energy";
-import "./ha-energy-validation-result";
import { energyCardStyles } from "./styles";
@customElement("ha-energy-gas-settings")
diff --git a/src/panels/config/energy/components/ha-energy-grid-settings.ts b/src/panels/config/energy/components/ha-energy-grid-settings.ts
index ae58d26794..857d082b73 100644
--- a/src/panels/config/energy/components/ha-energy-grid-settings.ts
+++ b/src/panels/config/energy/components/ha-energy-grid-settings.ts
@@ -1,22 +1,4 @@
-import "@material/mwc-button/mwc-button";
-import {
- mdiDelete,
- mdiHomeExportOutline,
- mdiHomeImportOutline,
- mdiPencil,
- mdiTransmissionTower,
-} from "@mdi/js";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-card";
-import "../../../../components/ha-icon-button";
import type { ConfigEntry } from "../../../../data/config_entries";
-import {
- deleteConfigEntry,
- getConfigEntries,
-} from "../../../../data/config_entries";
import type {
EnergyPreferences,
EnergyPreferencesValidation,
@@ -26,12 +8,35 @@ import type {
FlowToGridSourceEnergyPreference,
GridSourceTypeEnergyPreference,
} from "../../../../data/energy";
+import type { StatisticsMetaData } from "../../../../data/recorder";
+import type { HomeAssistant } from "../../../../types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../../components/ha-card";
+import "../../../../components/ha-icon-button";
+import "./ha-energy-validation-result";
+import "@material/mwc-button/mwc-button";
+
+import {
+ mdiDelete,
+ mdiHomeExportOutline,
+ mdiHomeImportOutline,
+ mdiPencil,
+ mdiTransmissionTower,
+} from "@mdi/js";
+import { html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import {
+ deleteConfigEntry,
+ getConfigEntries,
+} from "../../../../data/config_entries";
import {
emptyGridSourceEnergyPreference,
energySourcesByType,
saveEnergyPreferences,
} from "../../../../data/energy";
-import type { StatisticsMetaData } from "../../../../data/recorder";
import { getStatisticLabel } from "../../../../data/recorder";
import { showConfigFlowDialog } from "../../../../dialogs/config-flow/show-dialog-config-flow";
import {
@@ -39,14 +44,12 @@ import {
showConfirmationDialog,
} from "../../../../dialogs/generic/show-dialog-box";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import { brandsUrl } from "../../../../util/brands-url";
import { documentationUrl } from "../../../../util/documentation-url";
import {
showEnergySettingsGridFlowFromDialog,
showEnergySettingsGridFlowToDialog,
} from "../dialogs/show-dialogs-energy";
-import "./ha-energy-validation-result";
import { energyCardStyles } from "./styles";
@customElement("ha-energy-grid-settings")
diff --git a/src/panels/config/energy/components/ha-energy-solar-settings.ts b/src/panels/config/energy/components/ha-energy-solar-settings.ts
index 9a01fa4962..ebe3752819 100644
--- a/src/panels/config/energy/components/ha-energy-solar-settings.ts
+++ b/src/panels/config/energy/components/ha-energy-solar-settings.ts
@@ -1,11 +1,3 @@
-import "@material/mwc-button/mwc-button";
-import { mdiDelete, mdiPencil, mdiSolarPower } from "@mdi/js";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-card";
-import "../../../../components/ha-icon-button";
import type {
EnergyInfo,
EnergyPreferences,
@@ -13,18 +5,29 @@ import type {
EnergyValidationIssue,
SolarSourceTypeEnergyPreference,
} from "../../../../data/energy";
-import { saveEnergyPreferences } from "../../../../data/energy";
import type { StatisticsMetaData } from "../../../../data/recorder";
+import type { HomeAssistant } from "../../../../types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../../components/ha-card";
+import "../../../../components/ha-icon-button";
+import "./ha-energy-validation-result";
+import "@material/mwc-button/mwc-button";
+
+import { mdiDelete, mdiPencil, mdiSolarPower } from "@mdi/js";
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { saveEnergyPreferences } from "../../../../data/energy";
import { getStatisticLabel } from "../../../../data/recorder";
import {
showConfirmationDialog,
showAlertDialog,
} from "../../../../dialogs/generic/show-dialog-box";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import { documentationUrl } from "../../../../util/documentation-url";
import { showEnergySettingsSolarDialog } from "../dialogs/show-dialogs-energy";
-import "./ha-energy-validation-result";
import { energyCardStyles } from "./styles";
@customElement("ha-energy-solar-settings")
diff --git a/src/panels/config/energy/components/ha-energy-validation-result.ts b/src/panels/config/energy/components/ha-energy-validation-result.ts
index 7166a74ed1..0d985f3b30 100644
--- a/src/panels/config/energy/components/ha-energy-validation-result.ts
+++ b/src/panels/config/energy/components/ha-energy-validation-result.ts
@@ -1,9 +1,11 @@
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import "../../../../components/ha-alert";
import type { EnergyValidationIssue } from "../../../../data/energy";
import type { HomeAssistant } from "../../../../types";
+import "../../../../components/ha-alert";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("ha-energy-validation-result")
class EnergyValidationMessage extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/config/energy/components/ha-energy-water-settings.ts b/src/panels/config/energy/components/ha-energy-water-settings.ts
index ddb1bb911c..6aa6ebf1d3 100644
--- a/src/panels/config/energy/components/ha-energy-water-settings.ts
+++ b/src/panels/config/energy/components/ha-energy-water-settings.ts
@@ -1,29 +1,32 @@
-import "@material/mwc-button/mwc-button";
-import { mdiDelete, mdiWater, mdiPencil } from "@mdi/js";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-card";
-import "../../../../components/ha-icon-button";
import type {
EnergyPreferences,
EnergyPreferencesValidation,
EnergyValidationIssue,
WaterSourceTypeEnergyPreference,
} from "../../../../data/energy";
-import { saveEnergyPreferences } from "../../../../data/energy";
import type { StatisticsMetaData } from "../../../../data/recorder";
+import type { HomeAssistant } from "../../../../types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../../components/ha-card";
+import "../../../../components/ha-icon-button";
+import "./ha-energy-validation-result";
+import "@material/mwc-button/mwc-button";
+
+import { mdiDelete, mdiWater, mdiPencil } from "@mdi/js";
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { saveEnergyPreferences } from "../../../../data/energy";
import { getStatisticLabel } from "../../../../data/recorder";
import {
showAlertDialog,
showConfirmationDialog,
} from "../../../../dialogs/generic/show-dialog-box";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import { documentationUrl } from "../../../../util/documentation-url";
import { showEnergySettingsWaterDialog } from "../dialogs/show-dialogs-energy";
-import "./ha-energy-validation-result";
import { energyCardStyles } from "./styles";
@customElement("ha-energy-water-settings")
diff --git a/src/panels/config/energy/dialogs/dialog-energy-battery-settings.ts b/src/panels/config/energy/dialogs/dialog-energy-battery-settings.ts
index 745713ad85..8bfd809243 100644
--- a/src/panels/config/energy/dialogs/dialog-energy-battery-settings.ts
+++ b/src/panels/config/energy/dialogs/dialog-energy-battery-settings.ts
@@ -1,21 +1,24 @@
-import "@material/mwc-button/mwc-button";
-import { mdiBatteryHigh } from "@mdi/js";
+import type { BatterySourceTypeEnergyPreference } from "../../../../data/energy";
+import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../../types";
+import type { EnergySettingsBatteryDialogParams } from "./show-dialogs-energy";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
+
import "../../../../components/entity/ha-statistic-picker";
import "../../../../components/ha-dialog";
-import type { BatterySourceTypeEnergyPreference } from "../../../../data/energy";
+import "@material/mwc-button/mwc-button";
+
+import { mdiBatteryHigh } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import {
emptyBatteryEnergyPreference,
energyStatisticHelpUrl,
} from "../../../../data/energy";
import { getSensorDeviceClassConvertibleUnits } from "../../../../data/sensor";
-import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
import { haStyle, haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
-import type { EnergySettingsBatteryDialogParams } from "./show-dialogs-energy";
const energyUnitClasses = ["energy"];
diff --git a/src/panels/config/energy/dialogs/dialog-energy-device-settings.ts b/src/panels/config/energy/dialogs/dialog-energy-device-settings.ts
index c713b3e35c..3d8c4e9282 100644
--- a/src/panels/config/energy/dialogs/dialog-energy-device-settings.ts
+++ b/src/panels/config/energy/dialogs/dialog-energy-device-settings.ts
@@ -1,24 +1,27 @@
-import "@material/mwc-button/mwc-button";
-import { mdiDevices } from "@mdi/js";
+import type { DeviceConsumptionEnergyPreference } from "../../../../data/energy";
+import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../../types";
+import type { EnergySettingsDeviceDialogParams } from "./show-dialogs-energy";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { stopPropagation } from "../../../../common/dom/stop_propagation";
+
import "../../../../components/entity/ha-entity-picker";
import "../../../../components/entity/ha-statistic-picker";
import "../../../../components/ha-dialog";
import "../../../../components/ha-formfield";
import "../../../../components/ha-radio";
import "../../../../components/ha-select";
-import type { DeviceConsumptionEnergyPreference } from "../../../../data/energy";
+import "@material/mwc-button/mwc-button";
+
+import { mdiDevices } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { stopPropagation } from "../../../../common/dom/stop_propagation";
import { energyStatisticHelpUrl } from "../../../../data/energy";
import { getStatisticLabel } from "../../../../data/recorder";
import { getSensorDeviceClassConvertibleUnits } from "../../../../data/sensor";
-import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
import { haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
-import type { EnergySettingsDeviceDialogParams } from "./show-dialogs-energy";
const energyUnitClasses = ["energy"];
diff --git a/src/panels/config/energy/dialogs/dialog-energy-gas-settings.ts b/src/panels/config/energy/dialogs/dialog-energy-gas-settings.ts
index 7cbaf1eb3d..5fd865ba72 100644
--- a/src/panels/config/energy/dialogs/dialog-energy-gas-settings.ts
+++ b/src/panels/config/energy/dialogs/dialog-energy-gas-settings.ts
@@ -1,17 +1,23 @@
-import "@material/mwc-button/mwc-button";
-import { mdiFire } from "@mdi/js";
+import type { HaRadio } from "../../../../components/ha-radio";
+import type { GasSourceTypeEnergyPreference } from "../../../../data/energy";
+import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../../types";
+import type { EnergySettingsGasDialogParams } from "./show-dialogs-energy";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
+
import "../../../../components/entity/ha-entity-picker";
import "../../../../components/entity/ha-statistic-picker";
import "../../../../components/ha-dialog";
import "../../../../components/ha-formfield";
import "../../../../components/ha-radio";
-import type { HaRadio } from "../../../../components/ha-radio";
import "../../../../components/ha-textfield";
-import type { GasSourceTypeEnergyPreference } from "../../../../data/energy";
+import "@material/mwc-button/mwc-button";
+
+import { mdiFire } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import {
emptyGasEnergyPreference,
energyStatisticHelpUrl,
@@ -22,10 +28,7 @@ import {
isExternalStatistic,
} from "../../../../data/recorder";
import { getSensorDeviceClassConvertibleUnits } from "../../../../data/sensor";
-import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
import { haStyle, haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
-import type { EnergySettingsGasDialogParams } from "./show-dialogs-energy";
const gasDeviceClasses = ["gas", "energy"];
const gasUnitClasses = ["volume", "energy"];
diff --git a/src/panels/config/energy/dialogs/dialog-energy-grid-flow-settings.ts b/src/panels/config/energy/dialogs/dialog-energy-grid-flow-settings.ts
index dedc4ffb9a..9d79c57127 100644
--- a/src/panels/config/energy/dialogs/dialog-energy-grid-flow-settings.ts
+++ b/src/panels/config/energy/dialogs/dialog-energy-grid-flow-settings.ts
@@ -1,19 +1,25 @@
-import "@material/mwc-button/mwc-button";
-import { mdiTransmissionTower } from "@mdi/js";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/entity/ha-entity-picker";
-import "../../../../components/entity/ha-statistic-picker";
-import "../../../../components/ha-dialog";
-import "../../../../components/ha-formfield";
-import "../../../../components/ha-radio";
import type { HaRadio } from "../../../../components/ha-radio";
import type {
FlowFromGridSourceEnergyPreference,
FlowToGridSourceEnergyPreference,
} from "../../../../data/energy";
+import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../../types";
+import type { EnergySettingsGridFlowDialogParams } from "./show-dialogs-energy";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../components/entity/ha-entity-picker";
+import "../../../../components/entity/ha-statistic-picker";
+import "../../../../components/ha-dialog";
+import "../../../../components/ha-formfield";
+import "../../../../components/ha-radio";
+import "@material/mwc-button/mwc-button";
+
+import { mdiTransmissionTower } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import {
emptyFlowFromGridSourceEnergyPreference,
emptyFlowToGridSourceEnergyPreference,
@@ -25,10 +31,7 @@ import {
isExternalStatistic,
} from "../../../../data/recorder";
import { getSensorDeviceClassConvertibleUnits } from "../../../../data/sensor";
-import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
import { haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
-import type { EnergySettingsGridFlowDialogParams } from "./show-dialogs-energy";
const energyUnitClasses = ["energy"];
diff --git a/src/panels/config/energy/dialogs/dialog-energy-solar-settings.ts b/src/panels/config/energy/dialogs/dialog-energy-solar-settings.ts
index cc63e33b2f..abe1e6fef6 100644
--- a/src/panels/config/energy/dialogs/dialog-energy-solar-settings.ts
+++ b/src/panels/config/energy/dialogs/dialog-energy-solar-settings.ts
@@ -1,30 +1,33 @@
-import "@material/mwc-button/mwc-button";
-import { mdiSolarPower } from "@mdi/js";
+import type { HaCheckbox } from "../../../../components/ha-checkbox";
+import type { HaRadio } from "../../../../components/ha-radio";
+import type { ConfigEntry } from "../../../../data/config_entries";
+import type { SolarSourceTypeEnergyPreference } from "../../../../data/energy";
+import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../../types";
+import type { EnergySettingsSolarDialogParams } from "./show-dialogs-energy";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
+
import "../../../../components/entity/ha-statistic-picker";
import "../../../../components/ha-checkbox";
-import type { HaCheckbox } from "../../../../components/ha-checkbox";
import "../../../../components/ha-dialog";
import "../../../../components/ha-formfield";
import "../../../../components/ha-radio";
-import type { HaRadio } from "../../../../components/ha-radio";
-import type { ConfigEntry } from "../../../../data/config_entries";
+import "@material/mwc-button/mwc-button";
+
+import { mdiSolarPower } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { getConfigEntries } from "../../../../data/config_entries";
-import type { SolarSourceTypeEnergyPreference } from "../../../../data/energy";
import {
emptySolarEnergyPreference,
energyStatisticHelpUrl,
} from "../../../../data/energy";
import { getSensorDeviceClassConvertibleUnits } from "../../../../data/sensor";
import { showConfigFlowDialog } from "../../../../dialogs/config-flow/show-dialog-config-flow";
-import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
import { haStyle, haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import { brandsUrl } from "../../../../util/brands-url";
-import type { EnergySettingsSolarDialogParams } from "./show-dialogs-energy";
const energyUnitClasses = ["energy"];
diff --git a/src/panels/config/energy/dialogs/dialog-energy-water-settings.ts b/src/panels/config/energy/dialogs/dialog-energy-water-settings.ts
index 85a857219e..39ffe959fb 100644
--- a/src/panels/config/energy/dialogs/dialog-energy-water-settings.ts
+++ b/src/panels/config/energy/dialogs/dialog-energy-water-settings.ts
@@ -1,17 +1,23 @@
-import "@material/mwc-button/mwc-button";
-import { mdiWater } from "@mdi/js";
+import type { HaRadio } from "../../../../components/ha-radio";
+import type { WaterSourceTypeEnergyPreference } from "../../../../data/energy";
+import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../../types";
+import type { EnergySettingsWaterDialogParams } from "./show-dialogs-energy";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
+
import "../../../../components/entity/ha-entity-picker";
import "../../../../components/entity/ha-statistic-picker";
import "../../../../components/ha-dialog";
import "../../../../components/ha-formfield";
import "../../../../components/ha-radio";
-import type { HaRadio } from "../../../../components/ha-radio";
import "../../../../components/ha-textfield";
-import type { WaterSourceTypeEnergyPreference } from "../../../../data/energy";
+import "@material/mwc-button/mwc-button";
+
+import { mdiWater } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import {
emptyWaterEnergyPreference,
energyStatisticHelpUrl,
@@ -22,10 +28,7 @@ import {
isExternalStatistic,
} from "../../../../data/recorder";
import { getSensorDeviceClassConvertibleUnits } from "../../../../data/sensor";
-import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
import { haStyle, haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
-import type { EnergySettingsWaterDialogParams } from "./show-dialogs-energy";
@customElement("dialog-energy-water-settings")
export class DialogEnergyWaterSettings
diff --git a/src/panels/config/energy/dialogs/show-dialogs-energy.ts b/src/panels/config/energy/dialogs/show-dialogs-energy.ts
index f85dc549e6..16d5ca30e5 100644
--- a/src/panels/config/energy/dialogs/show-dialogs-energy.ts
+++ b/src/panels/config/energy/dialogs/show-dialogs-energy.ts
@@ -1,4 +1,3 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type {
BatterySourceTypeEnergyPreference,
DeviceConsumptionEnergyPreference,
@@ -13,6 +12,8 @@ import type {
} from "../../../../data/energy";
import type { StatisticsMetaData } from "../../../../data/recorder";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export interface EnergySettingsGridFlowDialogParams {
source?:
| FlowFromGridSourceEnergyPreference
diff --git a/src/panels/config/energy/ha-config-energy.ts b/src/panels/config/energy/ha-config-energy.ts
index c808dd82f2..f0f6ba100d 100644
--- a/src/panels/config/energy/ha-config-energy.ts
+++ b/src/panels/config/energy/ha-config-energy.ts
@@ -1,31 +1,34 @@
-import "../../../layouts/hass-error-screen";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
import type {
EnergyPreferencesValidation,
EnergyInfo,
EnergyPreferences,
} from "../../../data/energy";
+import type { StatisticsMetaData } from "../../../data/recorder";
+import type { HomeAssistant, Route } from "../../../types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../components/ha-alert";
+import "../../../layouts/hass-error-screen";
+import "../../../layouts/hass-loading-screen";
+import "../../../layouts/hass-subpage";
+import "./components/ha-energy-battery-settings";
+import "./components/ha-energy-device-settings";
+import "./components/ha-energy-gas-settings";
+import "./components/ha-energy-grid-settings";
+import "./components/ha-energy-solar-settings";
+import "./components/ha-energy-water-settings";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
import {
getEnergyPreferenceValidation,
getEnergyInfo,
getEnergyPreferences,
getReferencedStatisticIds,
} from "../../../data/energy";
-import type { StatisticsMetaData } from "../../../data/recorder";
import { getStatisticMetadata } from "../../../data/recorder";
-import "../../../layouts/hass-loading-screen";
-import "../../../layouts/hass-subpage";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../types";
-import "../../../components/ha-alert";
-import "./components/ha-energy-device-settings";
-import "./components/ha-energy-grid-settings";
-import "./components/ha-energy-solar-settings";
-import "./components/ha-energy-battery-settings";
-import "./components/ha-energy-gas-settings";
-import "./components/ha-energy-water-settings";
const INITIAL_CONFIG: EnergyPreferences = {
energy_sources: [],
diff --git a/src/panels/config/entities/editor-tabs/settings/entity-settings-helper-tab.ts b/src/panels/config/entities/editor-tabs/settings/entity-settings-helper-tab.ts
index fff779c4e9..2aab0d6743 100644
--- a/src/panels/config/entities/editor-tabs/settings/entity-settings-helper-tab.ts
+++ b/src/panels/config/entities/editor-tabs/settings/entity-settings-helper-tab.ts
@@ -1,16 +1,9 @@
-import type { CSSResultGroup, PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { isComponentLoaded } from "../../../../../common/config/is_component_loaded";
-import { dynamicElement } from "../../../../../common/dom/dynamic-element-directive";
-import { fireEvent } from "../../../../../common/dom/fire_event";
import type { ExtEntityRegistryEntry } from "../../../../../data/entity_registry";
-import { removeEntityRegistryEntry } from "../../../../../data/entity_registry";
-import { HELPERS_CRUD } from "../../../../../data/helpers_crud";
-import { showConfirmationDialog } from "../../../../../dialogs/generic/show-dialog-box";
-import { haStyle } from "../../../../../resources/styles";
import type { HomeAssistant } from "../../../../../types";
import type { Helper } from "../../../helpers/const";
+import type { EntityRegistrySettingsEditor } from "../../entity-registry-settings-editor";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
import "../../../helpers/forms/ha-counter-form";
import "../../../helpers/forms/ha-input_boolean-form";
import "../../../helpers/forms/ha-input_button-form";
@@ -22,7 +15,17 @@ import "../../../helpers/forms/ha-schedule-form";
import "../../../helpers/forms/ha-timer-form";
import "../../../voice-assistants/entity-voice-settings";
import "../../entity-registry-settings-editor";
-import type { EntityRegistrySettingsEditor } from "../../entity-registry-settings-editor";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { isComponentLoaded } from "../../../../../common/config/is_component_loaded";
+import { dynamicElement } from "../../../../../common/dom/dynamic-element-directive";
+import { fireEvent } from "../../../../../common/dom/fire_event";
+import { removeEntityRegistryEntry } from "../../../../../data/entity_registry";
+import { HELPERS_CRUD } from "../../../../../data/helpers_crud";
+import { showConfirmationDialog } from "../../../../../dialogs/generic/show-dialog-box";
+import { haStyle } from "../../../../../resources/styles";
@customElement("entity-settings-helper-tab")
export class EntitySettingsHelperTab extends LitElement {
diff --git a/src/panels/config/entities/entity-registry-settings-editor.ts b/src/panels/config/entities/entity-registry-settings-editor.ts
index 3cd6ed2774..da8a45d7f9 100644
--- a/src/panels/config/entities/entity-registry-settings-editor.ts
+++ b/src/panels/config/entities/entity-registry-settings-editor.ts
@@ -1,12 +1,46 @@
-import "@material/mwc-button/mwc-button";
-import "@material/mwc-formfield/mwc-formfield";
-import { mdiContentCopy } from "@mdi/js";
+import type {
+ LocalizeFunc,
+ LocalizeKeys,
+} from "../../../common/translations/localize";
+import type { HaSwitch } from "../../../components/ha-switch";
+import type { ConfigEntry } from "../../../data/config_entries";
+import type { DataEntryFlowStepCreateEntry } from "../../../data/data_entry_flow";
+import type { DeviceRegistryEntry } from "../../../data/device_registry";
+import type {
+ AlarmControlPanelEntityOptions,
+ EntityRegistryEntry,
+ EntityRegistryEntryUpdateParams,
+ ExtEntityRegistryEntry,
+ LockEntityOptions,
+ SensorEntityOptions,
+} from "../../../data/entity_registry";
+import type { WeatherUnits } from "../../../data/weather";
+import type { HomeAssistant } from "../../../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../components/ha-alert";
+import "../../../components/ha-area-picker";
+import "../../../components/ha-icon";
+import "../../../components/ha-icon-button-next";
+import "../../../components/ha-icon-picker";
+import "../../../components/ha-labels-picker";
+import "../../../components/ha-list-item";
+import "../../../components/ha-radio";
+import "../../../components/ha-select";
+import "../../../components/ha-settings-row";
+import "../../../components/ha-state-icon";
+import "../../../components/ha-switch";
+import "../../../components/ha-textfield";
+import "@material/mwc-button/mwc-button";
+import "@material/mwc-formfield/mwc-formfield";
+
+import { mdiContentCopy } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { until } from "lit/directives/until";
import memoizeOne from "memoize-one";
+
import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import { fireEvent } from "../../../common/dom/fire_event";
import { stopPropagation } from "../../../common/dom/stop_propagation";
@@ -15,25 +49,8 @@ import { computeObjectId } from "../../../common/entity/compute_object_id";
import { supportsFeature } from "../../../common/entity/supports-feature";
import { formatNumber } from "../../../common/number/format_number";
import { stringCompare } from "../../../common/string/compare";
-import type {
- LocalizeFunc,
- LocalizeKeys,
-} from "../../../common/translations/localize";
+import { autoCaseNoun } from "../../../common/translations/auto_case_noun";
import { copyToClipboard } from "../../../common/util/copy-clipboard";
-import "../../../components/ha-alert";
-import "../../../components/ha-area-picker";
-import "../../../components/ha-icon";
-import "../../../components/ha-icon-button-next";
-import "../../../components/ha-icon-picker";
-import "../../../components/ha-list-item";
-import "../../../components/ha-radio";
-import "../../../components/ha-select";
-import "../../../components/ha-settings-row";
-import "../../../components/ha-state-icon";
-import "../../../components/ha-switch";
-import "../../../components/ha-labels-picker";
-import type { HaSwitch } from "../../../components/ha-switch";
-import "../../../components/ha-textfield";
import {
CAMERA_ORIENTATIONS,
CAMERA_SUPPORT_STREAM,
@@ -43,23 +60,12 @@ import {
STREAM_TYPE_HLS,
updateCameraPrefs,
} from "../../../data/camera";
-import type { ConfigEntry } from "../../../data/config_entries";
import { deleteConfigEntry } from "../../../data/config_entries";
import {
createConfigFlow,
handleConfigFlowStep,
} from "../../../data/config_flow";
-import type { DataEntryFlowStepCreateEntry } from "../../../data/data_entry_flow";
-import type { DeviceRegistryEntry } from "../../../data/device_registry";
import { updateDeviceRegistryEntry } from "../../../data/device_registry";
-import type {
- AlarmControlPanelEntityOptions,
- EntityRegistryEntry,
- EntityRegistryEntryUpdateParams,
- ExtEntityRegistryEntry,
- LockEntityOptions,
- SensorEntityOptions,
-} from "../../../data/entity_registry";
import {
subscribeEntityRegistry,
updateEntityRegistryEntry,
@@ -78,7 +84,6 @@ import {
getSensorDeviceClassConvertibleUnits,
getSensorNumericDeviceClasses,
} from "../../../data/sensor";
-import type { WeatherUnits } from "../../../data/weather";
import { getWeatherConvertibleUnits } from "../../../data/weather";
import { showOptionsFlowDialog } from "../../../dialogs/config-flow/show-dialog-options-flow";
import {
@@ -88,10 +93,8 @@ import {
import { showVoiceAssistantsView } from "../../../dialogs/more-info/components/voice/show-view-voice-assistants";
import { showMoreInfoDialog } from "../../../dialogs/more-info/show-ha-more-info-dialog";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { showToast } from "../../../util/toast";
import { showDeviceRegistryDetailDialog } from "../devices/device-registry-detail/show-dialog-device-registry-detail";
-import { autoCaseNoun } from "../../../common/translations/auto_case_noun";
const OVERRIDE_DEVICE_CLASSES = {
cover: [
diff --git a/src/panels/config/entities/entity-registry-settings.ts b/src/panels/config/entities/entity-registry-settings.ts
index 26dc31f7a4..c7ab9ed23c 100644
--- a/src/panels/config/entities/entity-registry-settings.ts
+++ b/src/panels/config/entities/entity-registry-settings.ts
@@ -1,19 +1,25 @@
+import type { ConfigEntry } from "../../../data/config_entries";
+import type { ExtEntityRegistryEntry } from "../../../data/entity_registry";
+import type { HomeAssistant } from "../../../types";
+import type { EntityRegistrySettingsEditor } from "./entity-registry-settings-editor";
+import type { HassEntity } from "home-assistant-js-websocket";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../components/ha-alert";
+import "./entity-registry-settings-editor";
import "@material/mwc-button/mwc-button";
import "@material/mwc-formfield/mwc-formfield";
import "@material/mwc-list/mwc-list-item";
-import type { HassEntity } from "home-assistant-js-websocket";
-import type { CSSResultGroup, PropertyValues } from "lit";
+
import { css, html, LitElement } from "lit";
import { customElement, property, query, state } from "lit/decorators";
+
import { fireEvent } from "../../../common/dom/fire_event";
-import "../../../components/ha-alert";
-import type { ConfigEntry } from "../../../data/config_entries";
import {
deleteConfigEntry,
getConfigEntry,
} from "../../../data/config_entries";
import { updateDeviceRegistryEntry } from "../../../data/device_registry";
-import type { ExtEntityRegistryEntry } from "../../../data/entity_registry";
import {
removeEntityRegistryEntry,
updateEntityRegistryEntry,
@@ -25,10 +31,7 @@ import {
} from "../../../dialogs/generic/show-dialog-box";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { showDeviceRegistryDetailDialog } from "../devices/device-registry-detail/show-dialog-device-registry-detail";
-import "./entity-registry-settings-editor";
-import type { EntityRegistrySettingsEditor } from "./entity-registry-settings-editor";
const invalidDomainUpdate = false;
diff --git a/src/panels/config/entities/ha-config-entities.ts b/src/panels/config/entities/ha-config-entities.ts
index 4e4e6d357e..c429c143c6 100644
--- a/src/panels/config/entities/ha-config-entities.ts
+++ b/src/panels/config/entities/ha-config-entities.ts
@@ -1,3 +1,50 @@
+import type { HASSDomEvent } from "../../../common/dom/fire_event";
+import type { LocalizeFunc } from "../../../common/translations/localize";
+import type {
+ DataTableColumnContainer,
+ RowClickedEvent,
+ SelectionChangedEvent,
+ SortingChangedEvent,
+} from "../../../components/data-table/ha-data-table";
+import type { ConfigEntry, SubEntry } from "../../../data/config_entries";
+import type {
+ DataTableFiltersItems,
+ DataTableFiltersValues,
+} from "../../../data/data_table_filters";
+import type {
+ EntityRegistryEntry,
+ UpdateEntityRegistryEntryResult,
+} from "../../../data/entity_registry";
+import type { EntitySources } from "../../../data/entity_sources";
+import type { IntegrationManifest } from "../../../data/integration";
+import type { LabelRegistryEntry } from "../../../data/label_registry";
+import type { HaTabsSubpageDataTable } from "../../../layouts/hass-tabs-subpage-data-table";
+import type { HomeAssistant, Route } from "../../../types";
+import type { Helper } from "../helpers/const";
+import type { HassEntity, UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../components/data-table/ha-data-table-labels";
+import "../../../components/ha-alert";
+import "../../../components/ha-button-menu";
+import "../../../components/ha-check-list-item";
+import "../../../components/ha-filter-devices";
+import "../../../components/ha-filter-domains";
+import "../../../components/ha-filter-floor-areas";
+import "../../../components/ha-filter-integrations";
+import "../../../components/ha-filter-labels";
+import "../../../components/ha-filter-states";
+import "../../../components/ha-icon";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-md-divider";
+import "../../../components/ha-md-menu-item";
+import "../../../components/ha-sub-menu";
+import "../../../components/ha-svg-icon";
+import "../../../components/ha-tooltip";
+import "../../../layouts/hass-loading-screen";
+import "../../../layouts/hass-tabs-subpage-data-table";
+import "../integrations/ha-integration-overflow-menu";
+
import { consume } from "@lit-labs/context";
import {
mdiAlertCircle,
@@ -14,82 +61,42 @@ import {
mdiToggleSwitch,
mdiToggleSwitchOffOutline,
} from "@mdi/js";
-import type { HassEntity, UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { CSSResultGroup, PropertyValues } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
import { styleMap } from "lit/directives/style-map";
import memoize from "memoize-one";
+
import { computeCssColor } from "../../../common/color/compute-color";
import { formatShortDateTimeWithConditionalYear } from "../../../common/datetime/format_date_time";
import { storage } from "../../../common/decorators/storage";
-import type { HASSDomEvent } from "../../../common/dom/fire_event";
import { computeDomain } from "../../../common/entity/compute_domain";
+import { computeStateName } from "../../../common/entity/compute_state_name";
import {
isDeletableEntity,
deleteEntity,
} from "../../../common/entity/delete_entity";
-import type { Helper } from "../helpers/const";
-import { isHelperDomain } from "../helpers/const";
-import { HELPERS_CRUD } from "../../../data/helpers_crud";
-import { computeStateName } from "../../../common/entity/compute_state_name";
import {
PROTOCOL_INTEGRATIONS,
protocolIntegrationPicked,
} from "../../../common/integrations/protocolIntegrationPicked";
-import type { LocalizeFunc } from "../../../common/translations/localize";
import {
hasRejectedItems,
rejectedItems,
} from "../../../common/util/promise-all-settled-results";
-import type {
- DataTableColumnContainer,
- RowClickedEvent,
- SelectionChangedEvent,
- SortingChangedEvent,
-} from "../../../components/data-table/ha-data-table";
-import "../../../components/data-table/ha-data-table-labels";
-import "../../../components/ha-alert";
-import "../../../components/ha-button-menu";
-import "../../../components/ha-check-list-item";
-import "../../../components/ha-md-divider";
-import "../../../components/ha-filter-devices";
-import "../../../components/ha-filter-domains";
-import "../../../components/ha-filter-floor-areas";
-import "../../../components/ha-filter-integrations";
-import "../../../components/ha-filter-labels";
-import "../../../components/ha-filter-states";
-import "../../../components/ha-icon";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-md-menu-item";
-import "../../../components/ha-sub-menu";
-import "../../../components/ha-svg-icon";
-import "../../../components/ha-tooltip";
-import type { ConfigEntry, SubEntry } from "../../../data/config_entries";
import { getConfigEntries, getSubEntries } from "../../../data/config_entries";
import { fullEntitiesContext } from "../../../data/context";
-import type {
- DataTableFiltersItems,
- DataTableFiltersValues,
-} from "../../../data/data_table_filters";
import { UNAVAILABLE } from "../../../data/entity";
-import type {
- EntityRegistryEntry,
- UpdateEntityRegistryEntryResult,
-} from "../../../data/entity_registry";
import {
computeEntityRegistryName,
updateEntityRegistryEntry,
} from "../../../data/entity_registry";
-import type { IntegrationManifest } from "../../../data/integration";
+import { fetchEntitySourcesWithCache } from "../../../data/entity_sources";
+import { HELPERS_CRUD } from "../../../data/helpers_crud";
import {
fetchIntegrationManifests,
domainToName,
} from "../../../data/integration";
-import type { EntitySources } from "../../../data/entity_sources";
-import { fetchEntitySourcesWithCache } from "../../../data/entity_sources";
-import type { LabelRegistryEntry } from "../../../data/label_registry";
import {
createLabelRegistryEntry,
subscribeLabelRegistry,
@@ -99,14 +106,10 @@ import {
showConfirmationDialog,
} from "../../../dialogs/generic/show-dialog-box";
import { showMoreInfoDialog } from "../../../dialogs/more-info/show-ha-more-info-dialog";
-import "../../../layouts/hass-loading-screen";
-import "../../../layouts/hass-tabs-subpage-data-table";
-import type { HaTabsSubpageDataTable } from "../../../layouts/hass-tabs-subpage-data-table";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../types";
import { configSections } from "../ha-panel-config";
-import "../integrations/ha-integration-overflow-menu";
+import { isHelperDomain } from "../helpers/const";
import { showAddIntegrationDialog } from "../integrations/show-add-integration-dialog";
import { showLabelDetailDialog } from "../labels/show-dialog-label-detail";
diff --git a/src/panels/config/ha-panel-config.ts b/src/panels/config/ha-panel-config.ts
index b40b01d63c..28bc6a8c2a 100644
--- a/src/panels/config/ha-panel-config.ts
+++ b/src/panels/config/ha-panel-config.ts
@@ -1,3 +1,10 @@
+import type { CloudStatus } from "../../data/cloud";
+import type { RouterOptions } from "../../layouts/hass-router-page";
+import type { PageNavigation } from "../../layouts/hass-tabs-subpage";
+import type { HomeAssistant, Route } from "../../types";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { PropertyValues } from "lit";
+
import { ContextProvider } from "@lit-labs/context";
import {
mdiAccount,
@@ -29,12 +36,10 @@ import {
mdiUpdate,
mdiViewDashboard,
} from "@mdi/js";
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { isComponentLoaded } from "../../common/config/is_component_loaded";
import { listenMediaQuery } from "../../common/dom/media_query";
-import type { CloudStatus } from "../../data/cloud";
import { fetchCloudStatus } from "../../data/cloud";
import { fullEntitiesContext, labelsContext } from "../../data/context";
import {
@@ -43,11 +48,8 @@ import {
subscribeEntityRegistry,
} from "../../data/entity_registry";
import { subscribeLabelRegistry } from "../../data/label_registry";
-import type { RouterOptions } from "../../layouts/hass-router-page";
import { HassRouterPage } from "../../layouts/hass-router-page";
-import type { PageNavigation } from "../../layouts/hass-tabs-subpage";
import { SubscribeMixin } from "../../mixins/subscribe-mixin";
-import type { HomeAssistant, Route } from "../../types";
declare global {
// for fire event
diff --git a/src/panels/config/hardware/dialog-hardware-available.ts b/src/panels/config/hardware/dialog-hardware-available.ts
index 328374f579..65cef60afa 100644
--- a/src/panels/config/hardware/dialog-hardware-available.ts
+++ b/src/panels/config/hardware/dialog-hardware-available.ts
@@ -1,22 +1,25 @@
-import { mdiClose } from "@mdi/js";
-import { dump } from "js-yaml";
+import type { HassioHardwareInfo } from "../../../data/hassio/hardware";
+import type { HassDialog } from "../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../types";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { stringCompare } from "../../../common/string/compare";
+
import "../../../components/ha-dialog";
import "../../../components/ha-expansion-panel";
import "../../../components/ha-icon-next";
import "../../../components/search-input";
+
+import { mdiClose } from "@mdi/js";
+import { dump } from "js-yaml";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { stringCompare } from "../../../common/string/compare";
import { extractApiErrorMessage } from "../../../data/hassio/common";
-import type { HassioHardwareInfo } from "../../../data/hassio/hardware";
import { fetchHassioHardwareInfo } from "../../../data/hassio/hardware";
import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
-import type { HassDialog } from "../../../dialogs/make-dialog-manager";
import { haStyle, haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
const _filterDevices = memoizeOne(
(
diff --git a/src/panels/config/hardware/ha-config-hardware.ts b/src/panels/config/hardware/ha-config-hardware.ts
index 12c14def9a..a5746a57c5 100644
--- a/src/panels/config/hardware/ha-config-hardware.ts
+++ b/src/panels/config/hardware/ha-config-hardware.ts
@@ -1,15 +1,15 @@
-import "@material/mwc-list/mwc-list";
-import "@material/mwc-list/mwc-list-item";
-import { mdiPower } from "@mdi/js";
+import type { ConfigEntry } from "../../../data/config_entries";
+import type {
+ HardwareInfo,
+ SystemStatusStreamMessage,
+} from "../../../data/hardware";
+import type { HassioHassOSInfo } from "../../../data/hassio/host";
+import type { ECOption } from "../../../resources/echarts";
+import type { HomeAssistant } from "../../../types";
+import type { SeriesOption } from "echarts/types/dist/shared";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import type { SeriesOption } from "echarts/types/dist/shared";
-import memoizeOne from "memoize-one";
-import { isComponentLoaded } from "../../../common/config/is_component_loaded";
-import { round } from "../../../common/number/round";
-import { blankBeforePercent } from "../../../common/translations/blank_before_percent";
+
import "../../../components/buttons/ha-progress-button";
import "../../../components/chart/ha-chart-base";
import "../../../components/ha-alert";
@@ -18,27 +18,30 @@ import "../../../components/ha-clickable-list-item";
import "../../../components/ha-icon-button";
import "../../../components/ha-icon-next";
import "../../../components/ha-settings-row";
-import type { ConfigEntry } from "../../../data/config_entries";
+import "../../../layouts/hass-subpage";
+import "@material/mwc-list/mwc-list";
+import "@material/mwc-list/mwc-list-item";
+
+import { mdiPower } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { isComponentLoaded } from "../../../common/config/is_component_loaded";
+import { round } from "../../../common/number/round";
+import { blankBeforePercent } from "../../../common/translations/blank_before_percent";
import { subscribeConfigEntries } from "../../../data/config_entries";
-import type {
- HardwareInfo,
- SystemStatusStreamMessage,
-} from "../../../data/hardware";
import { BOARD_NAMES } from "../../../data/hardware";
-import type { HassioHassOSInfo } from "../../../data/hassio/host";
+import { extractApiErrorMessage } from "../../../data/hassio/common";
import { fetchHassioHassOsInfo } from "../../../data/hassio/host";
import { scanUSBDevices } from "../../../data/usb";
import { showOptionsFlowDialog } from "../../../dialogs/config-flow/show-dialog-options-flow";
import { showRestartDialog } from "../../../dialogs/restart/show-dialog-restart";
-import "../../../layouts/hass-subpage";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
-import { DEFAULT_PRIMARY_COLOR } from "../../../resources/styles-data";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
+import { DEFAULT_PRIMARY_COLOR } from "../../../resources/styles-data";
import { hardwareBrandsUrl } from "../../../util/brands-url";
import { showhardwareAvailableDialog } from "./show-dialog-hardware-available";
-import { extractApiErrorMessage } from "../../../data/hassio/common";
-import type { ECOption } from "../../../resources/echarts";
const DATASAMPLES = 60;
diff --git a/src/panels/config/helpers/const.ts b/src/panels/config/helpers/const.ts
index 43d6c7be78..f66d372089 100644
--- a/src/panels/config/helpers/const.ts
+++ b/src/panels/config/helpers/const.ts
@@ -1,4 +1,3 @@
-import { arrayLiteralIncludes } from "../../../common/array/literal-includes";
import type { Counter } from "../../../data/counter";
import type { InputBoolean } from "../../../data/input_boolean";
import type { InputButton } from "../../../data/input_button";
@@ -9,6 +8,8 @@ import type { InputText } from "../../../data/input_text";
import type { Schedule } from "../../../data/schedule";
import type { Timer } from "../../../data/timer";
+import { arrayLiteralIncludes } from "../../../common/array/literal-includes";
+
export const HELPER_DOMAINS = [
"input_boolean",
"input_button",
diff --git a/src/panels/config/helpers/dialog-helper-detail.ts b/src/panels/config/helpers/dialog-helper-detail.ts
index 55ca187975..f34b252ffb 100644
--- a/src/panels/config/helpers/dialog-helper-detail.ts
+++ b/src/panels/config/helpers/dialog-helper-detail.ts
@@ -1,17 +1,26 @@
-import { mdiAlertOutline } from "@mdi/js";
-import "@material/mwc-button/mwc-button";
+import type { HomeAssistant } from "../../../types";
+import type { Helper, HelperDomain } from "./const";
+import type { ShowDialogHelperDetailParams } from "./show-dialog-helper-detail";
import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../components/ha-list-item";
+import "../../../components/ha-spinner";
+import "../../../components/ha-svg-icon";
+import "../../../components/ha-tooltip";
+import "@material/mwc-button/mwc-button";
+
+import { mdiAlertOutline } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import memoizeOne from "memoize-one";
+
import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import { dynamicElement } from "../../../common/dom/dynamic-element-directive";
-import "../../../components/ha-spinner";
+import { fireEvent } from "../../../common/dom/fire_event";
+import { stopPropagation } from "../../../common/dom/stop_propagation";
+import { stringCompare } from "../../../common/string/compare";
import { createCloseHeading } from "../../../components/ha-dialog";
-import "../../../components/ha-list-item";
-import "../../../components/ha-tooltip";
-import "../../../components/ha-svg-icon";
import { getConfigFlowHandlers } from "../../../data/config_flow";
import { createCounter } from "../../../data/counter";
import { createInputBoolean } from "../../../data/input_boolean";
@@ -28,14 +37,8 @@ import { createSchedule } from "../../../data/schedule";
import { createTimer } from "../../../data/timer";
import { showConfigFlowDialog } from "../../../dialogs/config-flow/show-dialog-config-flow";
import { haStyleDialog, haStyleScrollbar } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { brandsUrl } from "../../../util/brands-url";
-import type { Helper, HelperDomain } from "./const";
import { isHelperDomain } from "./const";
-import type { ShowDialogHelperDetailParams } from "./show-dialog-helper-detail";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { stringCompare } from "../../../common/string/compare";
-import { stopPropagation } from "../../../common/dom/stop_propagation";
type HelperCreators = Record<
HelperDomain,
diff --git a/src/panels/config/helpers/forms/dialog-schedule-block-info.ts b/src/panels/config/helpers/forms/dialog-schedule-block-info.ts
index b4815eec10..541e96c08e 100644
--- a/src/panels/config/helpers/forms/dialog-schedule-block-info.ts
+++ b/src/panels/config/helpers/forms/dialog-schedule-block-info.ts
@@ -1,18 +1,21 @@
-import type { CSSResultGroup } from "lit";
-import { html, LitElement, nothing } from "lit";
-import memoizeOne from "memoize-one";
-import { property, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { createCloseHeading } from "../../../../components/ha-dialog";
-import "../../../../components/ha-form/ha-form";
-import "../../../../components/ha-button";
-import { haStyleDialog } from "../../../../resources/styles";
+import type { SchemaUnion } from "../../../../components/ha-form/types";
import type { HomeAssistant } from "../../../../types";
import type {
ScheduleBlockInfo,
ScheduleBlockInfoDialogParams,
} from "./show-dialog-schedule-block-info";
-import type { SchemaUnion } from "../../../../components/ha-form/types";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-button";
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { createCloseHeading } from "../../../../components/ha-dialog";
+import { haStyleDialog } from "../../../../resources/styles";
class DialogScheduleBlockInfo extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/config/helpers/forms/ha-counter-form.ts b/src/panels/config/helpers/forms/ha-counter-form.ts
index e0f2e76e4b..a5eeb55afb 100644
--- a/src/panels/config/helpers/forms/ha-counter-form.ts
+++ b/src/panels/config/helpers/forms/ha-counter-form.ts
@@ -1,14 +1,17 @@
+import type { HaSwitch } from "../../../../components/ha-switch";
+import type { Counter } from "../../../../data/counter";
+import type { HomeAssistant } from "../../../../types";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
+
import "../../../../components/ha-icon-picker";
import "../../../../components/ha-switch";
-import type { HaSwitch } from "../../../../components/ha-switch";
import "../../../../components/ha-textfield";
-import type { Counter } from "../../../../data/counter";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
@customElement("ha-counter-form")
class HaCounterForm extends LitElement {
diff --git a/src/panels/config/helpers/forms/ha-input_boolean-form.ts b/src/panels/config/helpers/forms/ha-input_boolean-form.ts
index 51291300ae..02fb24d6e7 100644
--- a/src/panels/config/helpers/forms/ha-input_boolean-form.ts
+++ b/src/panels/config/helpers/forms/ha-input_boolean-form.ts
@@ -1,12 +1,15 @@
+import type { InputBoolean } from "../../../../data/input_boolean";
+import type { HomeAssistant } from "../../../../types";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
+
import "../../../../components/ha-icon-picker";
import "../../../../components/ha-textfield";
-import type { InputBoolean } from "../../../../data/input_boolean";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
@customElement("ha-input_boolean-form")
class HaInputBooleanForm extends LitElement {
diff --git a/src/panels/config/helpers/forms/ha-input_button-form.ts b/src/panels/config/helpers/forms/ha-input_button-form.ts
index 3ab2addb86..452bb1dc0e 100644
--- a/src/panels/config/helpers/forms/ha-input_button-form.ts
+++ b/src/panels/config/helpers/forms/ha-input_button-form.ts
@@ -1,12 +1,15 @@
+import type { InputButton } from "../../../../data/input_button";
+import type { HomeAssistant } from "../../../../types";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
+
import "../../../../components/ha-icon-picker";
import "../../../../components/ha-textfield";
-import type { InputButton } from "../../../../data/input_button";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
@customElement("ha-input_button-form")
class HaInputButtonForm extends LitElement {
diff --git a/src/panels/config/helpers/forms/ha-input_datetime-form.ts b/src/panels/config/helpers/forms/ha-input_datetime-form.ts
index 23056b4ade..5f7896d0dc 100644
--- a/src/panels/config/helpers/forms/ha-input_datetime-form.ts
+++ b/src/panels/config/helpers/forms/ha-input_datetime-form.ts
@@ -1,15 +1,18 @@
+import type { HaRadio } from "../../../../components/ha-radio";
+import type { InputDateTime } from "../../../../data/input_datetime";
+import type { HomeAssistant } from "../../../../types";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
+
import "../../../../components/ha-formfield";
import "../../../../components/ha-icon-picker";
import "../../../../components/ha-radio";
-import type { HaRadio } from "../../../../components/ha-radio";
import "../../../../components/ha-textfield";
-import type { InputDateTime } from "../../../../data/input_datetime";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
@customElement("ha-input_datetime-form")
class HaInputDateTimeForm extends LitElement {
diff --git a/src/panels/config/helpers/forms/ha-input_number-form.ts b/src/panels/config/helpers/forms/ha-input_number-form.ts
index 9987525b59..093b2df8e2 100644
--- a/src/panels/config/helpers/forms/ha-input_number-form.ts
+++ b/src/panels/config/helpers/forms/ha-input_number-form.ts
@@ -1,15 +1,18 @@
+import type { HaRadio } from "../../../../components/ha-radio";
+import type { InputNumber } from "../../../../data/input_number";
+import type { HomeAssistant } from "../../../../types";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
+
import "../../../../components/ha-formfield";
import "../../../../components/ha-icon-picker";
import "../../../../components/ha-radio";
-import type { HaRadio } from "../../../../components/ha-radio";
import "../../../../components/ha-textfield";
-import type { InputNumber } from "../../../../data/input_number";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
@customElement("ha-input_number-form")
class HaInputNumberForm extends LitElement {
diff --git a/src/panels/config/helpers/forms/ha-input_select-form.ts b/src/panels/config/helpers/forms/ha-input_select-form.ts
index 213e80a18b..70952d4a74 100644
--- a/src/panels/config/helpers/forms/ha-input_select-form.ts
+++ b/src/panels/config/helpers/forms/ha-input_select-form.ts
@@ -1,21 +1,24 @@
-import "@material/mwc-list/mwc-list";
-import { mdiDelete, mdiDrag } from "@mdi/js";
+import type { HaTextField } from "../../../../components/ha-textfield";
+import type { InputSelect } from "../../../../data/input_select";
+import type { HomeAssistant } from "../../../../types";
import type { CSSResultGroup } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { repeat } from "lit/directives/repeat";
-import { fireEvent } from "../../../../common/dom/fire_event";
+
import "../../../../components/ha-button";
import "../../../../components/ha-icon-button";
import "../../../../components/ha-icon-picker";
import "../../../../components/ha-list-item";
import "../../../../components/ha-sortable";
import "../../../../components/ha-textfield";
-import type { HaTextField } from "../../../../components/ha-textfield";
-import type { InputSelect } from "../../../../data/input_select";
+import "@material/mwc-list/mwc-list";
+
+import { mdiDelete, mdiDrag } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import { repeat } from "lit/directives/repeat";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { showConfirmationDialog } from "../../../../dialogs/generic/show-dialog-box";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
@customElement("ha-input_select-form")
class HaInputSelectForm extends LitElement {
diff --git a/src/panels/config/helpers/forms/ha-input_text-form.ts b/src/panels/config/helpers/forms/ha-input_text-form.ts
index be979fab0c..7fa049fd6b 100644
--- a/src/panels/config/helpers/forms/ha-input_text-form.ts
+++ b/src/panels/config/helpers/forms/ha-input_text-form.ts
@@ -1,16 +1,19 @@
+import type { HaRadio } from "../../../../components/ha-radio";
+import type { InputText } from "../../../../data/input_text";
+import type { HomeAssistant } from "../../../../types";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
+
import "../../../../components/ha-form/ha-form";
import "../../../../components/ha-formfield";
import "../../../../components/ha-icon-picker";
import "../../../../components/ha-radio";
-import type { HaRadio } from "../../../../components/ha-radio";
import "../../../../components/ha-textfield";
-import type { InputText } from "../../../../data/input_text";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
@customElement("ha-input_text-form")
class HaInputTextForm extends LitElement {
diff --git a/src/panels/config/helpers/forms/ha-schedule-form.ts b/src/panels/config/helpers/forms/ha-schedule-form.ts
index 9fe2ef5c7b..80eeee7052 100644
--- a/src/panels/config/helpers/forms/ha-schedule-form.ts
+++ b/src/panels/config/helpers/forms/ha-schedule-form.ts
@@ -1,25 +1,28 @@
+import type { Schedule, ScheduleDay } from "../../../../data/schedule";
+import type { HomeAssistant } from "../../../../types";
import type { CalendarOptions } from "@fullcalendar/core";
+import type { Day } from "date-fns";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../../components/ha-icon-picker";
+import "../../../../components/ha-textfield";
+
import { Calendar } from "@fullcalendar/core";
import allLocales from "@fullcalendar/core/locales-all";
import interactionPlugin from "@fullcalendar/interaction";
import timeGridPlugin from "@fullcalendar/timegrid";
-import type { Day } from "date-fns";
import { addDays, isSameDay, isSameWeek, nextDay } from "date-fns";
-import type { CSSResultGroup, PropertyValues } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { firstWeekdayIndex } from "../../../../common/datetime/first_weekday";
import { formatTime24h } from "../../../../common/datetime/format_time";
import { useAmPm } from "../../../../common/datetime/use_am_pm";
import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-icon-picker";
-import "../../../../components/ha-textfield";
-import type { Schedule, ScheduleDay } from "../../../../data/schedule";
import { weekdays } from "../../../../data/schedule";
import { TimeZone } from "../../../../data/translation";
-import { showScheduleBlockInfoDialog } from "./show-dialog-schedule-block-info";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
+import { showScheduleBlockInfoDialog } from "./show-dialog-schedule-block-info";
const defaultFullCalendarConfig: CalendarOptions = {
plugins: [timeGridPlugin, interactionPlugin],
diff --git a/src/panels/config/helpers/forms/ha-timer-form.ts b/src/panels/config/helpers/forms/ha-timer-form.ts
index d5d8a43762..9c207297b8 100644
--- a/src/panels/config/helpers/forms/ha-timer-form.ts
+++ b/src/panels/config/helpers/forms/ha-timer-form.ts
@@ -1,14 +1,17 @@
+import type { DurationDict, Timer } from "../../../../data/timer";
+import type { HomeAssistant } from "../../../../types";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
+
import "../../../../components/ha-checkbox";
import "../../../../components/ha-formfield";
import "../../../../components/ha-icon-picker";
import "../../../../components/ha-textfield";
-import type { DurationDict, Timer } from "../../../../data/timer";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
@customElement("ha-timer-form")
class HaTimerForm extends LitElement {
diff --git a/src/panels/config/helpers/ha-config-helpers.ts b/src/panels/config/helpers/ha-config-helpers.ts
index 02e9813eb8..656de3efc8 100644
--- a/src/panels/config/helpers/ha-config-helpers.ts
+++ b/src/panels/config/helpers/ha-config-helpers.ts
@@ -1,3 +1,47 @@
+import type { HASSDomEvent } from "../../../common/dom/fire_event";
+import type {
+ LocalizeFunc,
+ LocalizeKeys,
+} from "../../../common/translations/localize";
+import type {
+ DataTableColumnContainer,
+ RowClickedEvent,
+ SelectionChangedEvent,
+ SortingChangedEvent,
+} from "../../../components/data-table/ha-data-table";
+import type { CategoryRegistryEntry } from "../../../data/category_registry";
+import type { ConfigEntry } from "../../../data/config_entries";
+import type {
+ DataTableFiltersItems,
+ DataTableFiltersValues,
+} from "../../../data/data_table_filters";
+import type {
+ EntityRegistryEntry,
+ UpdateEntityRegistryEntryResult,
+} from "../../../data/entity_registry";
+import type { IntegrationManifest } from "../../../data/integration";
+import type { LabelRegistryEntry } from "../../../data/label_registry";
+import type { HomeAssistant, Route } from "../../../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/data-table/ha-data-table-labels";
+import "../../../components/ha-fab";
+import "../../../components/ha-filter-categories";
+import "../../../components/ha-filter-devices";
+import "../../../components/ha-filter-entities";
+import "../../../components/ha-filter-floor-areas";
+import "../../../components/ha-filter-labels";
+import "../../../components/ha-icon";
+import "../../../components/ha-icon-overflow-menu";
+import "../../../components/ha-md-divider";
+import "../../../components/ha-state-icon";
+import "../../../components/ha-svg-icon";
+import "../../../components/ha-tooltip";
+import "../../../layouts/hass-loading-screen";
+import "../../../layouts/hass-tabs-subpage-data-table";
+import "../integrations/ha-integration-overflow-menu";
+
import { consume } from "@lit-labs/context";
import { ResizeController } from "@lit-labs/observers/resize-controller";
import {
@@ -13,51 +57,24 @@ import {
mdiTag,
mdiTrashCan,
} from "@mdi/js";
-import type { HassEntity } from "home-assistant-js-websocket";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
-import { debounce } from "../../../common/util/debounce";
+
import { computeCssColor } from "../../../common/color/compute-color";
import { storage } from "../../../common/decorators/storage";
-import type { HASSDomEvent } from "../../../common/dom/fire_event";
import { computeStateDomain } from "../../../common/entity/compute_state_domain";
import { navigate } from "../../../common/navigate";
-import type {
- LocalizeFunc,
- LocalizeKeys,
-} from "../../../common/translations/localize";
import { extractSearchParam } from "../../../common/url/search-params";
+import { debounce } from "../../../common/util/debounce";
import {
hasRejectedItems,
rejectedItems,
} from "../../../common/util/promise-all-settled-results";
-import type {
- DataTableColumnContainer,
- RowClickedEvent,
- SelectionChangedEvent,
- SortingChangedEvent,
-} from "../../../components/data-table/ha-data-table";
-import "../../../components/data-table/ha-data-table-labels";
-import "../../../components/ha-fab";
-import "../../../components/ha-filter-categories";
-import "../../../components/ha-filter-devices";
-import "../../../components/ha-filter-entities";
-import "../../../components/ha-filter-floor-areas";
-import "../../../components/ha-filter-labels";
-import "../../../components/ha-icon";
-import "../../../components/ha-icon-overflow-menu";
-import "../../../components/ha-md-divider";
-import "../../../components/ha-state-icon";
-import "../../../components/ha-svg-icon";
-import "../../../components/ha-tooltip";
-import type { CategoryRegistryEntry } from "../../../data/category_registry";
import {
createCategoryRegistryEntry,
subscribeCategoryRegistry,
} from "../../../data/category_registry";
-import type { ConfigEntry } from "../../../data/config_entries";
import {
ERROR_STATES,
deleteConfigEntry,
@@ -65,26 +82,16 @@ import {
} from "../../../data/config_entries";
import { getConfigFlowHandlers } from "../../../data/config_flow";
import { fullEntitiesContext } from "../../../data/context";
-import type {
- DataTableFiltersItems,
- DataTableFiltersValues,
-} from "../../../data/data_table_filters";
-import type {
- EntityRegistryEntry,
- UpdateEntityRegistryEntryResult,
-} from "../../../data/entity_registry";
import {
subscribeEntityRegistry,
updateEntityRegistryEntry,
} from "../../../data/entity_registry";
import { fetchEntitySourcesWithCache } from "../../../data/entity_sources";
-import type { IntegrationManifest } from "../../../data/integration";
import {
domainToName,
fetchIntegrationManifest,
fetchIntegrationManifests,
} from "../../../data/integration";
-import type { LabelRegistryEntry } from "../../../data/label_registry";
import {
createLabelRegistryEntry,
subscribeLabelRegistry,
@@ -96,15 +103,11 @@ import {
showConfirmationDialog,
} from "../../../dialogs/generic/show-dialog-box";
import { showMoreInfoDialog } from "../../../dialogs/more-info/show-ha-more-info-dialog";
-import "../../../layouts/hass-loading-screen";
-import "../../../layouts/hass-tabs-subpage-data-table";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../types";
import { showAssignCategoryDialog } from "../category/show-dialog-assign-category";
import { showCategoryRegistryDetailDialog } from "../category/show-dialog-category-registry-detail";
import { configSections } from "../ha-panel-config";
-import "../integrations/ha-integration-overflow-menu";
import { renderConfigEntryError } from "../integrations/ha-config-integration-page";
import { showLabelDetailDialog } from "../labels/show-dialog-label-detail";
import { isHelperDomain } from "./const";
diff --git a/src/panels/config/info/ha-config-info.ts b/src/panels/config/info/ha-config-info.ts
index cebbacb4ff..8fefbe2218 100644
--- a/src/panels/config/info/ha-config-info.ts
+++ b/src/panels/config/info/ha-config-info.ts
@@ -1,4 +1,15 @@
+import type { HassioHassOSInfo } from "../../../data/hassio/host";
+import type { HassioInfo } from "../../../data/hassio/supervisor";
+import type { HomeAssistant, Route } from "../../../types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../components/ha-card";
+import "../../../components/ha-clickable-list-item";
+import "../../../components/ha-icon-next";
+import "../../../components/ha-logo-svg";
+import "../../../layouts/hass-subpage";
import "@material/mwc-list/mwc-list";
+
import {
mdiBug,
mdiFileDocument,
@@ -9,24 +20,16 @@ import {
mdiOpenInNew,
mdiTshirtCrew,
} from "@mdi/js";
-import type { CSSResultGroup, TemplateResult } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { isComponentLoaded } from "../../../common/config/is_component_loaded";
-import "../../../components/ha-card";
-import "../../../components/ha-clickable-list-item";
-import "../../../components/ha-logo-svg";
-import type { HassioHassOSInfo } from "../../../data/hassio/host";
import { fetchHassioHassOsInfo } from "../../../data/hassio/host";
-import type { HassioInfo } from "../../../data/hassio/supervisor";
import { fetchHassioInfo } from "../../../data/hassio/supervisor";
-import "../../../layouts/hass-subpage";
+import { showShortcutsDialog } from "../../../dialogs/shortcuts/show-shortcuts-dialog";
import { mdiHomeAssistant } from "../../../resources/home-assistant-logo-svg";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../types";
import { documentationUrl } from "../../../util/documentation-url";
-import "../../../components/ha-icon-next";
-import { showShortcutsDialog } from "../../../dialogs/shortcuts/show-shortcuts-dialog";
const JS_TYPE = __BUILD__;
const JS_VERSION = __VERSION__;
diff --git a/src/panels/config/integrations/dialog-add-integration.ts b/src/panels/config/integrations/dialog-add-integration.ts
index 66de3b5308..89f1b29ac1 100644
--- a/src/panels/config/integrations/dialog-add-integration.ts
+++ b/src/panels/config/integrations/dialog-add-integration.ts
@@ -1,14 +1,32 @@
-import "@material/mwc-button";
-import "@material/mwc-list/mwc-list";
+import type { LocalizeFunc } from "../../../common/translations/localize";
+import type { DataEntryFlowProgress } from "../../../data/data_entry_flow";
+import type {
+ Brand,
+ Brands,
+ Integration,
+ Integrations,
+} from "../../../data/integrations";
+import type { HomeAssistant } from "../../../types";
+import type { AddIntegrationDialogParams } from "./show-add-integration-dialog";
import type { IFuseOptions } from "fuse.js";
-import Fuse from "fuse.js";
import type { HassConfig } from "home-assistant-js-websocket";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/ha-icon-button-prev";
+import "../../../components/ha-spinner";
+import "../../../components/search-input";
+import "./ha-domain-integrations";
+import "./ha-integration-list-item";
+import "@material/mwc-button";
+import "@material/mwc-list/mwc-list";
+
+import Fuse from "fuse.js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
import { styleMap } from "lit/directives/style-map";
import memoizeOne from "memoize-one";
+
import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import { fireEvent } from "../../../common/dom/fire_event";
import {
@@ -17,23 +35,13 @@ import {
} from "../../../common/integrations/protocolIntegrationPicked";
import { navigate } from "../../../common/navigate";
import { caseInsensitiveStringCompare } from "../../../common/string/compare";
-import type { LocalizeFunc } from "../../../common/translations/localize";
import { createCloseHeading } from "../../../components/ha-dialog";
-import "../../../components/ha-icon-button-prev";
-import "../../../components/search-input";
import { getConfigEntries } from "../../../data/config_entries";
import { fetchConfigFlowInProgress } from "../../../data/config_flow";
-import type { DataEntryFlowProgress } from "../../../data/data_entry_flow";
import {
domainToName,
fetchIntegrationManifest,
} from "../../../data/integration";
-import type {
- Brand,
- Brands,
- Integration,
- Integrations,
-} from "../../../data/integrations";
import {
findIntegration,
getIntegrationDescriptions,
@@ -45,11 +53,6 @@ import {
} from "../../../dialogs/generic/show-dialog-box";
import { haStyleDialog, haStyleScrollbar } from "../../../resources/styles";
import { loadVirtualizer } from "../../../resources/virtualizer";
-import type { HomeAssistant } from "../../../types";
-import "./ha-domain-integrations";
-import "./ha-integration-list-item";
-import "../../../components/ha-spinner";
-import type { AddIntegrationDialogParams } from "./show-add-integration-dialog";
import { showYamlIntegrationDialog } from "./show-add-integration-dialog";
export interface IntegrationListItem {
diff --git a/src/panels/config/integrations/dialog-yaml-integration.ts b/src/panels/config/integrations/dialog-yaml-integration.ts
index 953071c949..976ddb2198 100644
--- a/src/panels/config/integrations/dialog-yaml-integration.ts
+++ b/src/panels/config/integrations/dialog-yaml-integration.ts
@@ -1,11 +1,14 @@
+import type { HomeAssistant } from "../../../types";
+import type { YamlIntegrationDialogParams } from "./show-add-integration-dialog";
+
+import "../../../components/ha-dialog";
import "@material/mwc-button/mwc-button";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../../../common/dom/fire_event";
-import type { HomeAssistant } from "../../../types";
import { documentationUrl } from "../../../util/documentation-url";
-import type { YamlIntegrationDialogParams } from "./show-add-integration-dialog";
-import "../../../components/ha-dialog";
@customElement("dialog-yaml-integration")
export class DialogYamlIntegration extends LitElement {
diff --git a/src/panels/config/integrations/ha-config-flow-card.ts b/src/panels/config/integrations/ha-config-flow-card.ts
index 499e6770a1..60d1ab180d 100644
--- a/src/panels/config/integrations/ha-config-flow-card.ts
+++ b/src/panels/config/integrations/ha-config-flow-card.ts
@@ -1,8 +1,18 @@
-import { mdiBookshelf, mdiCog, mdiDotsVertical, mdiOpenInNew } from "@mdi/js";
+import type { IntegrationManifest } from "../../../data/integration";
+import type { HomeAssistant } from "../../../types";
+import type { DataEntryFlowProgressExtended } from "./ha-config-integrations";
import type { TemplateResult } from "lit";
+
+import "../../../components/ha-button";
+import "../../../components/ha-button-menu";
+import "../../../components/ha-list-item";
+import "./ha-integration-action-card";
+
+import { mdiBookshelf, mdiCog, mdiDotsVertical, mdiOpenInNew } from "@mdi/js";
import { LitElement, css, html } from "lit";
import { customElement, property } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { fireEvent } from "../../../common/dom/fire_event";
import {
ATTENTION_SOURCES,
@@ -10,16 +20,9 @@ import {
ignoreConfigFlow,
localizeConfigFlowTitle,
} from "../../../data/config_flow";
-import type { IntegrationManifest } from "../../../data/integration";
import { showConfigFlowDialog } from "../../../dialogs/config-flow/show-dialog-config-flow";
import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box";
-import type { HomeAssistant } from "../../../types";
import { documentationUrl } from "../../../util/documentation-url";
-import type { DataEntryFlowProgressExtended } from "./ha-config-integrations";
-import "./ha-integration-action-card";
-import "../../../components/ha-button-menu";
-import "../../../components/ha-button";
-import "../../../components/ha-list-item";
@customElement("ha-config-flow-card")
export class HaConfigFlowCard extends LitElement {
diff --git a/src/panels/config/integrations/ha-config-integration-page.ts b/src/panels/config/integrations/ha-config-integration-page.ts
index 0062a9ccac..dc4adc61a9 100644
--- a/src/panels/config/integrations/ha-config-integration-page.ts
+++ b/src/panels/config/integrations/ha-config-integration-page.ts
@@ -1,4 +1,32 @@
+import type {
+ ConfigEntry,
+ DisableConfigEntryResult,
+ SubEntry,
+} from "../../../data/config_entries";
+import type { DeviceRegistryEntry } from "../../../data/device_registry";
+import type { DiagnosticInfo } from "../../../data/diagnostics";
+import type { EntityRegistryEntry } from "../../../data/entity_registry";
+import type {
+ IntegrationLogInfo,
+ IntegrationManifest,
+} from "../../../data/integration";
+import type { HomeAssistant } from "../../../types";
+import type { DataEntryFlowProgressExtended } from "./ha-config-integrations";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/ha-button";
+import "../../../components/ha-card";
+import "../../../components/ha-list-item";
+import "../../../components/ha-md-button-menu";
+import "../../../components/ha-md-divider";
+import "../../../components/ha-md-list";
+import "../../../components/ha-md-list-item";
+import "../../../components/ha-md-menu-item";
+import "../../../layouts/hass-error-screen";
+import "../../../layouts/hass-subpage";
import "@material/mwc-list/mwc-list";
+
import {
mdiAlertCircle,
mdiBookshelf,
@@ -25,35 +53,21 @@ import {
mdiWeb,
mdiWrench,
} from "@mdi/js";
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { until } from "lit/directives/until";
import memoizeOne from "memoize-one";
+
import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import { isDevVersion } from "../../../common/config/version";
import { caseInsensitiveStringCompare } from "../../../common/string/compare";
import { nextRender } from "../../../common/util/render-status";
-import "../../../components/ha-button";
-import "../../../components/ha-card";
-import "../../../components/ha-md-divider";
-import "../../../components/ha-list-item";
-import "../../../components/ha-md-button-menu";
-import "../../../components/ha-md-list";
-import "../../../components/ha-md-list-item";
-import "../../../components/ha-md-menu-item";
import {
deleteApplicationCredential,
fetchApplicationCredentialsConfigEntry,
} from "../../../data/application_credential";
import { getSignedPath } from "../../../data/auth";
-import type {
- ConfigEntry,
- DisableConfigEntryResult,
- SubEntry,
-} from "../../../data/config_entries";
import {
ERROR_STATES,
RECOVERABLE_STATES,
@@ -67,20 +81,13 @@ import {
updateConfigEntry,
} from "../../../data/config_entries";
import { ATTENTION_SOURCES } from "../../../data/config_flow";
-import type { DeviceRegistryEntry } from "../../../data/device_registry";
-import type { DiagnosticInfo } from "../../../data/diagnostics";
import {
fetchDiagnosticHandler,
getConfigEntryDiagnosticsDownloadUrl,
} from "../../../data/diagnostics";
-import type { EntityRegistryEntry } from "../../../data/entity_registry";
import { subscribeEntityRegistry } from "../../../data/entity_registry";
import { fetchEntitySourcesWithCache } from "../../../data/entity_sources";
import { getErrorLogDownloadUrl } from "../../../data/error_log";
-import type {
- IntegrationLogInfo,
- IntegrationManifest,
-} from "../../../data/integration";
import {
LogSeverity,
domainToName,
@@ -90,26 +97,22 @@ import {
setIntegrationLogLevel,
subscribeLogInfo,
} from "../../../data/integration";
+import { QUALITY_SCALE_MAP } from "../../../data/integration_quality_scale";
import { showConfigEntrySystemOptionsDialog } from "../../../dialogs/config-entry-system-options/show-dialog-config-entry-system-options";
import { showConfigFlowDialog } from "../../../dialogs/config-flow/show-dialog-config-flow";
import { showOptionsFlowDialog } from "../../../dialogs/config-flow/show-dialog-options-flow";
+import { showSubConfigFlowDialog } from "../../../dialogs/config-flow/show-dialog-sub-config-flow";
import {
showAlertDialog,
showConfirmationDialog,
showPromptDialog,
} from "../../../dialogs/generic/show-dialog-box";
-import "../../../layouts/hass-error-screen";
-import "../../../layouts/hass-subpage";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { brandsUrl } from "../../../util/brands-url";
import { documentationUrl } from "../../../util/documentation-url";
import { fileDownload } from "../../../util/file_download";
-import type { DataEntryFlowProgressExtended } from "./ha-config-integrations";
import { showAddIntegrationDialog } from "./show-add-integration-dialog";
-import { QUALITY_SCALE_MAP } from "../../../data/integration_quality_scale";
-import { showSubConfigFlowDialog } from "../../../dialogs/config-flow/show-dialog-sub-config-flow";
export const renderConfigEntryError = (
hass: HomeAssistant,
diff --git a/src/panels/config/integrations/ha-config-integrations-dashboard.ts b/src/panels/config/integrations/ha-config-integrations-dashboard.ts
index db98344886..603cfd5d38 100644
--- a/src/panels/config/integrations/ha-config-integrations-dashboard.ts
+++ b/src/panels/config/integrations/ha-config-integrations-dashboard.ts
@@ -1,13 +1,41 @@
+import type { ConfigEntry } from "../../../data/config_entries";
+import type { EntityRegistryEntry } from "../../../data/entity_registry";
+import type {
+ IntegrationLogInfo,
+ IntegrationManifest,
+} from "../../../data/integration";
+import type { ImprovDiscoveredDevice } from "../../../external_app/external_messaging";
+import type { HomeAssistant, Route } from "../../../types";
+import type { DataEntryFlowProgressExtended } from "./ha-config-integrations";
+import type { HaIntegrationCard } from "./ha-integration-card";
import type { ActionDetail } from "@material/mwc-list";
-import { mdiFilterVariant, mdiPlus } from "@mdi/js";
import type { IFuseOptions } from "fuse.js";
-import Fuse from "fuse.js";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../components/ha-button-menu";
+import "../../../components/ha-check-list-item";
+import "../../../components/ha-checkbox";
+import "../../../components/ha-fab";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-svg-icon";
+import "../../../components/search-input";
+import "../../../components/search-input-outlined";
+import "../../../layouts/hass-loading-screen";
+import "../../../layouts/hass-tabs-subpage";
+import "./ha-config-flow-card";
+import "./ha-disabled-config-entry-card";
+import "./ha-ignored-config-entry-card";
+import "./ha-integration-card";
+import "./ha-integration-overflow-menu";
+
+import { mdiFilterVariant, mdiPlus } from "@mdi/js";
+import Fuse from "fuse.js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
import memoizeOne from "memoize-one";
+
import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import {
PROTOCOL_INTEGRATIONS,
@@ -17,25 +45,11 @@ import { navigate } from "../../../common/navigate";
import { caseInsensitiveStringCompare } from "../../../common/string/compare";
import { extractSearchParam } from "../../../common/url/search-params";
import { nextRender } from "../../../common/util/render-status";
-import "../../../components/ha-button-menu";
-import "../../../components/ha-check-list-item";
-import "../../../components/ha-checkbox";
-import "../../../components/ha-fab";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-svg-icon";
-import "../../../components/search-input";
-import "../../../components/search-input-outlined";
-import type { ConfigEntry } from "../../../data/config_entries";
import { getConfigEntries } from "../../../data/config_entries";
import { getConfigFlowInProgressCollection } from "../../../data/config_flow";
import { fetchDiagnosticHandlers } from "../../../data/diagnostics";
-import type { EntityRegistryEntry } from "../../../data/entity_registry";
import { subscribeEntityRegistry } from "../../../data/entity_registry";
import { fetchEntitySourcesWithCache } from "../../../data/entity_sources";
-import type {
- IntegrationLogInfo,
- IntegrationManifest,
-} from "../../../data/integration";
import {
domainToName,
fetchIntegrationManifest,
@@ -52,22 +66,11 @@ import {
showAlertDialog,
showConfirmationDialog,
} from "../../../dialogs/generic/show-dialog-box";
-import type { ImprovDiscoveredDevice } from "../../../external_app/external_messaging";
-import "../../../layouts/hass-loading-screen";
-import "../../../layouts/hass-tabs-subpage";
import { KeyboardShortcutMixin } from "../../../mixins/keyboard-shortcut-mixin";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../types";
import { configSections } from "../ha-panel-config";
import { isHelperDomain } from "../helpers/const";
-import "./ha-config-flow-card";
-import type { DataEntryFlowProgressExtended } from "./ha-config-integrations";
-import "./ha-disabled-config-entry-card";
-import "./ha-ignored-config-entry-card";
-import "./ha-integration-card";
-import type { HaIntegrationCard } from "./ha-integration-card";
-import "./ha-integration-overflow-menu";
import { showAddIntegrationDialog } from "./show-add-integration-dialog";
export interface ConfigEntryExtended extends Omit {
diff --git a/src/panels/config/integrations/ha-config-integrations.ts b/src/panels/config/integrations/ha-config-integrations.ts
index e00106271d..ba6ee54184 100644
--- a/src/panels/config/integrations/ha-config-integrations.ts
+++ b/src/panels/config/integrations/ha-config-integrations.ts
@@ -1,23 +1,25 @@
-import type { PropertyValues } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { navigate } from "../../../common/navigate";
import type { LocalizeFunc } from "../../../common/translations/localize";
import type { ConfigEntry } from "../../../data/config_entries";
+import type { DataEntryFlowProgress } from "../../../data/data_entry_flow";
+import type { RouterOptions } from "../../../layouts/hass-router-page";
+import type { HomeAssistant } from "../../../types";
+import type { PropertyValues } from "lit";
+
+import "../../../layouts/hass-loading-screen";
+import "./ha-config-integration-page";
+import "./ha-config-integrations-dashboard";
+
+import { customElement, property, state } from "lit/decorators";
+
+import { navigate } from "../../../common/navigate";
import { subscribeConfigEntries } from "../../../data/config_entries";
import {
localizeConfigFlowTitle,
subscribeConfigFlowInProgress,
} from "../../../data/config_flow";
-import type { DataEntryFlowProgress } from "../../../data/data_entry_flow";
import { domainToName } from "../../../data/integration";
-import "../../../layouts/hass-loading-screen";
-import type { RouterOptions } from "../../../layouts/hass-router-page";
import { HassRouterPage } from "../../../layouts/hass-router-page";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
-import type { HomeAssistant } from "../../../types";
-
-import "./ha-config-integration-page";
-import "./ha-config-integrations-dashboard";
export interface ConfigEntryUpdatedEvent {
entry: ConfigEntry;
diff --git a/src/panels/config/integrations/ha-disabled-config-entry-card.ts b/src/panels/config/integrations/ha-disabled-config-entry-card.ts
index 6e292e913f..f8fd29a50d 100644
--- a/src/panels/config/integrations/ha-disabled-config-entry-card.ts
+++ b/src/panels/config/integrations/ha-disabled-config-entry-card.ts
@@ -1,17 +1,20 @@
-import { mdiCog } from "@mdi/js";
-import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import "../../../components/ha-button";
-import "../../../components/ha-icon-button";
import type { DisableConfigEntryResult } from "../../../data/config_entries";
-import { enableConfigEntry } from "../../../data/config_entries";
import type { IntegrationManifest } from "../../../data/integration";
-import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
import type { HomeAssistant } from "../../../types";
import type { ConfigEntryExtended } from "./ha-config-integrations";
+import type { TemplateResult } from "lit";
+
+import "../../../components/ha-button";
+import "../../../components/ha-icon-button";
import "./ha-integration-action-card";
+import { mdiCog } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { enableConfigEntry } from "../../../data/config_entries";
+import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
+
@customElement("ha-disabled-config-entry-card")
export class HaDisabledConfigEntryCard extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/config/integrations/ha-domain-integrations.ts b/src/panels/config/integrations/ha-domain-integrations.ts
index b9fc656e04..53a42372fb 100644
--- a/src/panels/config/integrations/ha-domain-integrations.ts
+++ b/src/panels/config/integrations/ha-domain-integrations.ts
@@ -1,6 +1,13 @@
+import type { DataEntryFlowProgress } from "../../../data/data_entry_flow";
+import type { Brand, Integration } from "../../../data/integrations";
+import type { HomeAssistant } from "../../../types";
import type { RequestSelectedDetail } from "@material/mwc-list/mwc-list-item-base";
+
+import "./ha-integration-list-item";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
+
import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import { fireEvent } from "../../../common/dom/fire_event";
import {
@@ -11,17 +18,13 @@ import { shouldHandleRequestSelectedEvent } from "../../../common/mwc/handle-req
import { navigate } from "../../../common/navigate";
import { caseInsensitiveStringCompare } from "../../../common/string/compare";
import { localizeConfigFlowTitle } from "../../../data/config_flow";
-import type { DataEntryFlowProgress } from "../../../data/data_entry_flow";
import {
domainToName,
fetchIntegrationManifest,
} from "../../../data/integration";
-import type { Brand, Integration } from "../../../data/integrations";
import { showConfigFlowDialog } from "../../../dialogs/config-flow/show-dialog-config-flow";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { brandsUrl } from "../../../util/brands-url";
-import "./ha-integration-list-item";
import { showYamlIntegrationDialog } from "./show-add-integration-dialog";
const standardToDomain = { zigbee: "zha", zwave: "zwave_js" } as const;
diff --git a/src/panels/config/integrations/ha-ignored-config-entry-card.ts b/src/panels/config/integrations/ha-ignored-config-entry-card.ts
index dc8f441bd1..d007803e60 100644
--- a/src/panels/config/integrations/ha-ignored-config-entry-card.ts
+++ b/src/panels/config/integrations/ha-ignored-config-entry-card.ts
@@ -1,14 +1,17 @@
-import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { deleteConfigEntry } from "../../../data/config_entries";
import type { IntegrationManifest } from "../../../data/integration";
-import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box";
import type { HomeAssistant } from "../../../types";
import type { ConfigEntryExtended } from "./ha-config-integrations";
-import "./ha-integration-action-card";
+import type { TemplateResult } from "lit";
+
import "../../../components/ha-button";
+import "./ha-integration-action-card";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { deleteConfigEntry } from "../../../data/config_entries";
+import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box";
@customElement("ha-ignored-config-entry-card")
export class HaIgnoredConfigEntryCard extends LitElement {
diff --git a/src/panels/config/integrations/ha-integration-action-card.ts b/src/panels/config/integrations/ha-integration-action-card.ts
index c26a79d6b5..60df49a584 100644
--- a/src/panels/config/integrations/ha-integration-action-card.ts
+++ b/src/panels/config/integrations/ha-integration-action-card.ts
@@ -1,15 +1,18 @@
+import type { HomeAssistant } from "../../../types";
import type { TemplateResult } from "lit";
+
+import "../../../components/ha-card";
+import "./ha-integration-header";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
+
import {
domainToName,
type IntegrationManifest,
} from "../../../data/integration";
-import type { HomeAssistant } from "../../../types";
-import "./ha-integration-header";
-import "../../../components/ha-card";
-import { brandsUrl } from "../../../util/brands-url";
import { haStyle } from "../../../resources/styles";
+import { brandsUrl } from "../../../util/brands-url";
@customElement("ha-integration-action-card")
export class HaIntegrationActionCard extends LitElement {
diff --git a/src/panels/config/integrations/ha-integration-card.ts b/src/panels/config/integrations/ha-integration-card.ts
index 9ac636c354..5ff5a77eff 100644
--- a/src/panels/config/integrations/ha-integration-card.ts
+++ b/src/panels/config/integrations/ha-integration-card.ts
@@ -1,29 +1,32 @@
-import { mdiFileCodeOutline, mdiPackageVariant, mdiWeb } from "@mdi/js";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import memoizeOne from "memoize-one";
-import { computeRTL } from "../../../common/util/compute_rtl";
-import "../../../components/ha-button";
-import "../../../components/ha-card";
-import "../../../components/ha-ripple";
-import "../../../components/ha-svg-icon";
-import "../../../components/ha-tooltip";
import type { ConfigEntry } from "../../../data/config_entries";
-import { ERROR_STATES } from "../../../data/config_entries";
import type { DeviceRegistryEntry } from "../../../data/device_registry";
import type { EntityRegistryEntry } from "../../../data/entity_registry";
import type {
IntegrationLogInfo,
IntegrationManifest,
} from "../../../data/integration";
-import { LogSeverity } from "../../../data/integration";
-import { haStyle } from "../../../resources/styles";
import type { HomeAssistant } from "../../../types";
import type { ConfigEntryExtended } from "./ha-config-integrations";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../components/ha-button";
+import "../../../components/ha-card";
+import "../../../components/ha-ripple";
+import "../../../components/ha-svg-icon";
+import "../../../components/ha-tooltip";
import "./ha-integration-header";
+
+import { mdiFileCodeOutline, mdiPackageVariant, mdiWeb } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+import memoizeOne from "memoize-one";
+
import { PROTOCOL_INTEGRATIONS } from "../../../common/integrations/protocolIntegrationPicked";
+import { computeRTL } from "../../../common/util/compute_rtl";
+import { ERROR_STATES } from "../../../data/config_entries";
+import { LogSeverity } from "../../../data/integration";
+import { haStyle } from "../../../resources/styles";
@customElement("ha-integration-card")
export class HaIntegrationCard extends LitElement {
diff --git a/src/panels/config/integrations/ha-integration-header.ts b/src/panels/config/integrations/ha-integration-header.ts
index d4c3b433a1..f02e6f0d7d 100644
--- a/src/panels/config/integrations/ha-integration-header.ts
+++ b/src/panels/config/integrations/ha-integration-header.ts
@@ -1,12 +1,15 @@
-import { mdiAlertCircleOutline, mdiAlertOutline } from "@mdi/js";
+import type { IntegrationManifest } from "../../../data/integration";
+import type { HomeAssistant } from "../../../types";
import type { TemplateResult } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
+
import "../../../components/ha-icon-next";
import "../../../components/ha-svg-icon";
-import type { IntegrationManifest } from "../../../data/integration";
+
+import { mdiAlertCircleOutline, mdiAlertOutline } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { domainToName } from "../../../data/integration";
-import type { HomeAssistant } from "../../../types";
import { brandsUrl } from "../../../util/brands-url";
@customElement("ha-integration-header")
diff --git a/src/panels/config/integrations/ha-integration-list-item.ts b/src/panels/config/integrations/ha-integration-list-item.ts
index b7275412c9..e997a241c2 100644
--- a/src/panels/config/integrations/ha-integration-list-item.ts
+++ b/src/panels/config/integrations/ha-integration-list-item.ts
@@ -1,18 +1,22 @@
+import type { HomeAssistant } from "../../../types";
+import type { IntegrationListItem } from "./dialog-add-integration";
import type { GraphicType } from "@material/mwc-list/mwc-list-item-base";
-import { ListItemBase } from "@material/mwc-list/mwc-list-item-base";
-import { styles } from "@material/mwc-list/mwc-list-item.css";
-import { mdiFileCodeOutline, mdiPackageVariant, mdiWeb } from "@mdi/js";
import type { CSSResultGroup } from "lit";
+
+import { styles } from "@material/mwc-list/mwc-list-item.css";
+
+import "../../../components/ha-icon-next";
+import "../../../components/ha-svg-icon";
+import "../../../components/ha-tooltip";
+
+import { ListItemBase } from "@material/mwc-list/mwc-list-item-base";
+import { mdiFileCodeOutline, mdiPackageVariant, mdiWeb } from "@mdi/js";
import { css, html, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { domainToName } from "../../../data/integration";
-import type { HomeAssistant } from "../../../types";
import { brandsUrl } from "../../../util/brands-url";
-import type { IntegrationListItem } from "./dialog-add-integration";
-import "../../../components/ha-svg-icon";
-import "../../../components/ha-icon-next";
-import "../../../components/ha-tooltip";
@customElement("ha-integration-list-item")
export class HaIntegrationListItem extends ListItemBase {
diff --git a/src/panels/config/integrations/ha-integration-overflow-menu.ts b/src/panels/config/integrations/ha-integration-overflow-menu.ts
index f4591db5b7..28da474271 100644
--- a/src/panels/config/integrations/ha-integration-overflow-menu.ts
+++ b/src/panels/config/integrations/ha-integration-overflow-menu.ts
@@ -1,10 +1,12 @@
-import { mdiDotsVertical } from "@mdi/js";
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
+import type { HomeAssistant } from "../../../types";
+
import "../../../components/ha-button-menu";
import "../../../components/ha-clickable-list-item";
import "../../../components/ha-icon-button";
-import type { HomeAssistant } from "../../../types";
+
+import { mdiDotsVertical } from "@mdi/js";
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
@customElement("ha-integration-overflow-menu")
export class HaIntegrationOverflowMenu extends LitElement {
diff --git a/src/panels/config/integrations/integration-panels/bluetooth/bluetooth-advertisement-monitor.ts b/src/panels/config/integrations/integration-panels/bluetooth/bluetooth-advertisement-monitor.ts
index c9de84adbd..576d3c2f7f 100644
--- a/src/panels/config/integrations/integration-panels/bluetooth/bluetooth-advertisement-monitor.ts
+++ b/src/panels/config/integrations/integration-panels/bluetooth/bluetooth-advertisement-monitor.ts
@@ -1,30 +1,33 @@
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { storage } from "../../../../../common/decorators/storage";
import type { HASSDomEvent } from "../../../../../common/dom/fire_event";
import type { LocalizeFunc } from "../../../../../common/translations/localize";
import type {
DataTableColumnContainer,
RowClickedEvent,
} from "../../../../../components/data-table/ha-data-table";
-import "../../../../../components/ha-fab";
-import "../../../../../components/ha-icon-button";
-import "../../../../../components/ha-relative-time";
import type {
BluetoothDeviceData,
BluetoothScannersDetails,
} from "../../../../../data/bluetooth";
+import type { DeviceRegistryEntry } from "../../../../../data/device_registry";
+import type { HomeAssistant, Route } from "../../../../../types";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../../../components/ha-fab";
+import "../../../../../components/ha-icon-button";
+import "../../../../../components/ha-relative-time";
+import "../../../../../layouts/hass-tabs-subpage-data-table";
+
+import { html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { storage } from "../../../../../common/decorators/storage";
import {
subscribeBluetoothAdvertisements,
subscribeBluetoothScannersDetails,
} from "../../../../../data/bluetooth";
-import type { DeviceRegistryEntry } from "../../../../../data/device_registry";
-import "../../../../../layouts/hass-tabs-subpage-data-table";
import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../../../types";
import { showBluetoothDeviceInfoDialog } from "./show-dialog-bluetooth-device-info";
@customElement("bluetooth-advertisement-monitor")
diff --git a/src/panels/config/integrations/integration-panels/bluetooth/bluetooth-config-dashboard-router.ts b/src/panels/config/integrations/integration-panels/bluetooth/bluetooth-config-dashboard-router.ts
index 9eb2541515..95dff24f96 100644
--- a/src/panels/config/integrations/integration-panels/bluetooth/bluetooth-config-dashboard-router.ts
+++ b/src/panels/config/integrations/integration-panels/bluetooth/bluetooth-config-dashboard-router.ts
@@ -1,8 +1,10 @@
-import { customElement, property } from "lit/decorators";
import type { RouterOptions } from "../../../../../layouts/hass-router-page";
-import { HassRouterPage } from "../../../../../layouts/hass-router-page";
import type { HomeAssistant } from "../../../../../types";
+import { customElement, property } from "lit/decorators";
+
+import { HassRouterPage } from "../../../../../layouts/hass-router-page";
+
@customElement("bluetooth-config-dashboard-router")
class BluetoothConfigDashboardRouter extends HassRouterPage {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/config/integrations/integration-panels/bluetooth/bluetooth-config-dashboard.ts b/src/panels/config/integrations/integration-panels/bluetooth/bluetooth-config-dashboard.ts
index f5d4ddd50b..783bc12d09 100644
--- a/src/panels/config/integrations/integration-panels/bluetooth/bluetooth-config-dashboard.ts
+++ b/src/panels/config/integrations/integration-panels/bluetooth/bluetooth-config-dashboard.ts
@@ -1,23 +1,26 @@
+import type { BluetoothAllocationsData } from "../../../../../data/bluetooth";
+import type { HomeAssistant } from "../../../../../types";
import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
+
+import "../../../../../components/ha-button";
import "../../../../../components/ha-card";
import "../../../../../components/ha-code-editor";
import "../../../../../components/ha-formfield";
+import "../../../../../components/ha-metric";
import "../../../../../components/ha-switch";
-import "../../../../../components/ha-button";
+import "../../../../../layouts/hass-subpage";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { subscribeBluetoothConnectionAllocations } from "../../../../../data/bluetooth";
import { getConfigEntries } from "../../../../../data/config_entries";
import { showOptionsFlowDialog } from "../../../../../dialogs/config-flow/show-dialog-options-flow";
-import "../../../../../layouts/hass-subpage";
import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
-import { subscribeBluetoothConnectionAllocations } from "../../../../../data/bluetooth";
import {
getValueInPercentage,
roundWithOneDecimal,
} from "../../../../../util/calculate";
-import "../../../../../components/ha-metric";
-import type { BluetoothAllocationsData } from "../../../../../data/bluetooth";
@customElement("bluetooth-config-dashboard")
export class BluetoothConfigDashboard extends LitElement {
diff --git a/src/panels/config/integrations/integration-panels/bluetooth/bluetooth-connection-monitor.ts b/src/panels/config/integrations/integration-panels/bluetooth/bluetooth-connection-monitor.ts
index 1f9ed2f0e8..6e95b807d0 100644
--- a/src/panels/config/integrations/integration-panels/bluetooth/bluetooth-connection-monitor.ts
+++ b/src/panels/config/integrations/integration-panels/bluetooth/bluetooth-connection-monitor.ts
@@ -1,29 +1,32 @@
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { storage } from "../../../../../common/decorators/storage";
import type { LocalizeFunc } from "../../../../../common/translations/localize";
import type { DataTableColumnContainer } from "../../../../../components/data-table/ha-data-table";
-import "../../../../../components/ha-fab";
-import "../../../../../components/ha-icon-button";
-import "../../../../../components/ha-relative-time";
import type {
BluetoothScannersDetails,
BluetoothConnectionData,
BluetoothAllocationsData,
} from "../../../../../data/bluetooth";
+import type { DeviceRegistryEntry } from "../../../../../data/device_registry";
+import type { HomeAssistant, Route } from "../../../../../types";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../../../components/ha-fab";
+import "../../../../../components/ha-icon-button";
+import "../../../../../components/ha-metric";
+import "../../../../../components/ha-relative-time";
+import "../../../../../layouts/hass-tabs-subpage-data-table";
+
+import { html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { storage } from "../../../../../common/decorators/storage";
import {
subscribeBluetoothScannersDetails,
subscribeBluetoothConnectionAllocations,
subscribeBluetoothAdvertisements,
} from "../../../../../data/bluetooth";
-import type { DeviceRegistryEntry } from "../../../../../data/device_registry";
-import "../../../../../layouts/hass-tabs-subpage-data-table";
import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../../../types";
-import "../../../../../components/ha-metric";
@customElement("bluetooth-connection-monitor")
export class BluetoothConnectionMonitorPanel extends LitElement {
diff --git a/src/panels/config/integrations/integration-panels/bluetooth/dialog-bluetooth-device-info.ts b/src/panels/config/integrations/integration-panels/bluetooth/dialog-bluetooth-device-info.ts
index 25c09a9284..d00dbfb448 100644
--- a/src/panels/config/integrations/integration-panels/bluetooth/dialog-bluetooth-device-info.ts
+++ b/src/panels/config/integrations/integration-panels/bluetooth/dialog-bluetooth-device-info.ts
@@ -1,14 +1,18 @@
-import type { TemplateResult } from "lit";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../../common/dom/fire_event";
import type { HassDialog } from "../../../../../dialogs/make-dialog-manager";
-import { createCloseHeading } from "../../../../../components/ha-dialog";
import type { HomeAssistant } from "../../../../../types";
import type { BluetoothDeviceInfoDialogParams } from "./show-dialog-bluetooth-device-info";
+import type { TemplateResult } from "lit";
+
import "../../../../../components/ha-button";
-import { showToast } from "../../../../../util/toast";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
import { copyToClipboard } from "../../../../../common/util/copy-clipboard";
+import { createCloseHeading } from "../../../../../components/ha-dialog";
+import { showToast } from "../../../../../util/toast";
+
@customElement("dialog-bluetooth-device-info")
class DialogBluetoothDeviceInfo extends LitElement implements HassDialog {
diff --git a/src/panels/config/integrations/integration-panels/bluetooth/show-dialog-bluetooth-device-info.ts b/src/panels/config/integrations/integration-panels/bluetooth/show-dialog-bluetooth-device-info.ts
index bfa4560260..dc9e40b186 100644
--- a/src/panels/config/integrations/integration-panels/bluetooth/show-dialog-bluetooth-device-info.ts
+++ b/src/panels/config/integrations/integration-panels/bluetooth/show-dialog-bluetooth-device-info.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../../../common/dom/fire_event";
import type { BluetoothDeviceData } from "../../../../../data/bluetooth";
+import { fireEvent } from "../../../../../common/dom/fire_event";
+
export interface BluetoothDeviceInfoDialogParams {
entry: BluetoothDeviceData;
}
diff --git a/src/panels/config/integrations/integration-panels/matter/dialog-matter-add-device.ts b/src/panels/config/integrations/integration-panels/matter/dialog-matter-add-device.ts
index b4ce0b7e68..b1ed978872 100644
--- a/src/panels/config/integrations/integration-panels/matter/dialog-matter-add-device.ts
+++ b/src/panels/config/integrations/integration-panels/matter/dialog-matter-add-device.ts
@@ -1,28 +1,31 @@
-import { mdiClose } from "@mdi/js";
+import type { HomeAssistant } from "../../../../../types";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { dynamicElement } from "../../../../../common/dom/dynamic-element-directive";
-import { fireEvent } from "../../../../../common/dom/fire_event";
+
+import "../../../../../components/ha-button";
+import "../../../../../components/ha-dialog";
import "../../../../../components/ha-dialog-header";
import "../../../../../components/ha-icon-button";
import "../../../../../components/ha-icon-button-arrow-prev";
-import "../../../../../components/ha-button";
-import "../../../../../components/ha-dialog";
-import {
- commissionMatterDevice,
- redirectOnNewMatterDevice,
-} from "../../../../../data/matter";
-import { haStyleDialog } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
import "./matter-add-device/matter-add-device-apple-home";
+import "./matter-add-device/matter-add-device-commissioning";
import "./matter-add-device/matter-add-device-existing";
import "./matter-add-device/matter-add-device-generic";
import "./matter-add-device/matter-add-device-google-home";
import "./matter-add-device/matter-add-device-google-home-fallback";
import "./matter-add-device/matter-add-device-main";
import "./matter-add-device/matter-add-device-new";
-import "./matter-add-device/matter-add-device-commissioning";
+
+import { mdiClose } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { dynamicElement } from "../../../../../common/dom/dynamic-element-directive";
+import { fireEvent } from "../../../../../common/dom/fire_event";
+import {
+ commissionMatterDevice,
+ redirectOnNewMatterDevice,
+} from "../../../../../data/matter";
+import { haStyleDialog } from "../../../../../resources/styles";
import { showToast } from "../../../../../util/toast";
export type MatterAddDeviceStep =
diff --git a/src/panels/config/integrations/integration-panels/matter/dialog-matter-manage-fabrics.ts b/src/panels/config/integrations/integration-panels/matter/dialog-matter-manage-fabrics.ts
index 24b70e0f20..160c1e81e1 100644
--- a/src/panels/config/integrations/integration-panels/matter/dialog-matter-manage-fabrics.ts
+++ b/src/panels/config/integrations/integration-panels/matter/dialog-matter-manage-fabrics.ts
@@ -1,18 +1,23 @@
-import "@material/mwc-list/mwc-list";
-import "@material/mwc-button/mwc-button";
-import { mdiDelete } from "@mdi/js";
-import type { CSSResultGroup } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-spinner";
-import "../../../../../components/ha-list-item";
-import { createCloseHeading } from "../../../../../components/ha-dialog";
-import "../../../../../components/ha-qr-code";
import type {
MatterFabricData,
MatterNodeDiagnostics,
} from "../../../../../data/matter";
+import type { HomeAssistant } from "../../../../../types";
+import type { MatterManageFabricsDialogParams } from "./show-dialog-matter-manage-fabrics";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../../components/ha-list-item";
+import "../../../../../components/ha-qr-code";
+import "../../../../../components/ha-spinner";
+import "@material/mwc-button/mwc-button";
+import "@material/mwc-list/mwc-list";
+
+import { mdiDelete } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+import { createCloseHeading } from "../../../../../components/ha-dialog";
import {
getMatterNodeDiagnostics,
removeMatterFabric,
@@ -22,8 +27,6 @@ import {
showConfirmationDialog,
} from "../../../../../dialogs/generic/show-dialog-box";
import { haStyleDialog } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
-import type { MatterManageFabricsDialogParams } from "./show-dialog-matter-manage-fabrics";
@customElement("dialog-matter-manage-fabrics")
class DialogMatterManageFabrics extends LitElement {
diff --git a/src/panels/config/integrations/integration-panels/matter/dialog-matter-open-commissioning-window.ts b/src/panels/config/integrations/integration-panels/matter/dialog-matter-open-commissioning-window.ts
index 72808746d7..d7aeab4e17 100644
--- a/src/panels/config/integrations/integration-panels/matter/dialog-matter-open-commissioning-window.ts
+++ b/src/panels/config/integrations/integration-panels/matter/dialog-matter-open-commissioning-window.ts
@@ -1,20 +1,23 @@
-import "@material/mwc-button/mwc-button";
-import { mdiCloseCircle } from "@mdi/js";
+import type { MatterCommissioningParameters } from "../../../../../data/matter";
+import type { HomeAssistant } from "../../../../../types";
+import type { MatterOpenCommissioningWindowDialogParams } from "./show-dialog-matter-open-commissioning-window";
import type { CSSResultGroup } from "lit";
+
+import "../../../../../components/ha-qr-code";
+import "../../../../../components/ha-spinner";
+import "@material/mwc-button/mwc-button";
+
+import { mdiCloseCircle } from "@mdi/js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-spinner";
+import { copyToClipboard } from "../../../../../common/util/copy-clipboard";
import { createCloseHeading } from "../../../../../components/ha-dialog";
-import "../../../../../components/ha-qr-code";
import { domainToName } from "../../../../../data/integration";
-import type { MatterCommissioningParameters } from "../../../../../data/matter";
import { openMatterCommissioningWindow } from "../../../../../data/matter";
import { haStyleDialog } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
import { brandsUrl } from "../../../../../util/brands-url";
-import type { MatterOpenCommissioningWindowDialogParams } from "./show-dialog-matter-open-commissioning-window";
-import { copyToClipboard } from "../../../../../common/util/copy-clipboard";
@customElement("dialog-matter-open-commissioning-window")
class DialogMatterOpenCommissioningWindow extends LitElement {
diff --git a/src/panels/config/integrations/integration-panels/matter/dialog-matter-ping-node.ts b/src/panels/config/integrations/integration-panels/matter/dialog-matter-ping-node.ts
index 1825ea704a..042cab3045 100644
--- a/src/panels/config/integrations/integration-panels/matter/dialog-matter-ping-node.ts
+++ b/src/panels/config/integrations/integration-panels/matter/dialog-matter-ping-node.ts
@@ -1,17 +1,20 @@
-import "@material/mwc-list/mwc-list";
-import "@material/mwc-button/mwc-button";
-import { mdiAlertCircle, mdiCheckCircle, mdiCloseCircle } from "@mdi/js";
+import type { HomeAssistant } from "../../../../../types";
+import type { MatterPingNodeDialogParams } from "./show-dialog-matter-ping-node";
import type { CSSResultGroup } from "lit";
+
+import "../../../../../components/ha-list-item";
+import "../../../../../components/ha-spinner";
+import "@material/mwc-button/mwc-button";
+import "@material/mwc-list/mwc-list";
+
+import { mdiAlertCircle, mdiCheckCircle, mdiCloseCircle } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-spinner";
-import "../../../../../components/ha-list-item";
import { createCloseHeading } from "../../../../../components/ha-dialog";
import { pingMatterNode } from "../../../../../data/matter";
import { haStyle, haStyleDialog } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
-import type { MatterPingNodeDialogParams } from "./show-dialog-matter-ping-node";
@customElement("dialog-matter-ping-node")
class DialogMatterPingNode extends LitElement {
diff --git a/src/panels/config/integrations/integration-panels/matter/dialog-matter-reinterview-node.ts b/src/panels/config/integrations/integration-panels/matter/dialog-matter-reinterview-node.ts
index 636921dbac..a4373a1fc4 100644
--- a/src/panels/config/integrations/integration-panels/matter/dialog-matter-reinterview-node.ts
+++ b/src/panels/config/integrations/integration-panels/matter/dialog-matter-reinterview-node.ts
@@ -1,15 +1,18 @@
-import "@material/mwc-button/mwc-button";
-import { mdiCheckCircle, mdiCloseCircle } from "@mdi/js";
+import type { HomeAssistant } from "../../../../../types";
+import type { MatterReinterviewNodeDialogParams } from "./show-dialog-matter-reinterview-node";
import type { CSSResultGroup } from "lit";
+
+import "../../../../../components/ha-spinner";
+import "@material/mwc-button/mwc-button";
+
+import { mdiCheckCircle, mdiCloseCircle } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-spinner";
import { createCloseHeading } from "../../../../../components/ha-dialog";
import { interviewMatterNode } from "../../../../../data/matter";
import { haStyleDialog } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
-import type { MatterReinterviewNodeDialogParams } from "./show-dialog-matter-reinterview-node";
@customElement("dialog-matter-reinterview-node")
class DialogMatterReinterviewNode extends LitElement {
diff --git a/src/panels/config/integrations/integration-panels/matter/matter-add-device.ts b/src/panels/config/integrations/integration-panels/matter/matter-add-device.ts
index c677c680aa..f2c2331843 100644
--- a/src/panels/config/integrations/integration-panels/matter/matter-add-device.ts
+++ b/src/panels/config/integrations/integration-panels/matter/matter-add-device.ts
@@ -1,7 +1,9 @@
/* eslint-disable lit/lifecycle-super */
-import { customElement } from "lit/decorators";
-import { navigate } from "../../../../../common/navigate";
import type { HomeAssistant } from "../../../../../types";
+
+import { customElement } from "lit/decorators";
+
+import { navigate } from "../../../../../common/navigate";
import { showMatterAddDeviceDialog } from "./show-dialog-add-matter-device";
@customElement("matter-add-device")
diff --git a/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-apple-home.ts b/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-apple-home.ts
index c5413bf3af..375a01911d 100644
--- a/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-apple-home.ts
+++ b/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-apple-home.ts
@@ -1,11 +1,14 @@
+import type { HomeAssistant } from "../../../../../../types";
+
+import "../../../../../../components/ha-icon-next";
+import "../../../../../../components/ha-md-list";
+import "../../../../../../components/ha-md-list-item";
+import "../../../../../../components/ha-textfield";
+
import { LitElement, html } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../../../../../../common/dom/fire_event";
-import "../../../../../../components/ha-icon-next";
-import "../../../../../../components/ha-md-list-item";
-import "../../../../../../components/ha-md-list";
-import "../../../../../../components/ha-textfield";
-import type { HomeAssistant } from "../../../../../../types";
import { sharedStyles } from "./matter-add-device-shared-styles";
@customElement("matter-add-device-apple-home")
diff --git a/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-commissioning.ts b/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-commissioning.ts
index 02d7a8f040..9202e54242 100644
--- a/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-commissioning.ts
+++ b/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-commissioning.ts
@@ -1,8 +1,11 @@
+import type { HomeAssistant } from "../../../../../../types";
+
+import "../../../../../../components/ha-spinner";
+
import { LitElement, css, html } from "lit";
import { customElement, property } from "lit/decorators";
-import type { HomeAssistant } from "../../../../../../types";
+
import { sharedStyles } from "./matter-add-device-shared-styles";
-import "../../../../../../components/ha-spinner";
@customElement("matter-add-device-commissioning")
class MatterAddDeviceCommissioning extends LitElement {
diff --git a/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-existing.ts b/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-existing.ts
index 685ecc91e1..c6bd8cbc04 100644
--- a/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-existing.ts
+++ b/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-existing.ts
@@ -1,12 +1,15 @@
+import type { HomeAssistant } from "../../../../../../types";
+import type { MatterAddDeviceStep } from "../dialog-matter-add-device";
+
+import "../../../../../../components/ha-icon-next";
+import "../../../../../../components/ha-md-list";
+import "../../../../../../components/ha-md-list-item";
+
import { mdiHomeAutomation } from "@mdi/js";
import { LitElement, css, html } from "lit";
import { customElement, property } from "lit/decorators";
+
import { fireEvent } from "../../../../../../common/dom/fire_event";
-import "../../../../../../components/ha-icon-next";
-import "../../../../../../components/ha-md-list-item";
-import "../../../../../../components/ha-md-list";
-import type { HomeAssistant } from "../../../../../../types";
-import type { MatterAddDeviceStep } from "../dialog-matter-add-device";
import { sharedStyles } from "./matter-add-device-shared-styles";
@customElement("matter-add-device-existing")
diff --git a/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-generic.ts b/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-generic.ts
index 97b204cff8..95d62c6e31 100644
--- a/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-generic.ts
+++ b/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-generic.ts
@@ -1,11 +1,14 @@
+import type { HomeAssistant } from "../../../../../../types";
+
+import "../../../../../../components/ha-icon-next";
+import "../../../../../../components/ha-md-list";
+import "../../../../../../components/ha-md-list-item";
+import "../../../../../../components/ha-textfield";
+
import { LitElement, html } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../../../../../../common/dom/fire_event";
-import "../../../../../../components/ha-icon-next";
-import "../../../../../../components/ha-md-list-item";
-import "../../../../../../components/ha-md-list";
-import "../../../../../../components/ha-textfield";
-import type { HomeAssistant } from "../../../../../../types";
import { sharedStyles } from "./matter-add-device-shared-styles";
@customElement("matter-add-device-generic")
diff --git a/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-google-home-fallback.ts b/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-google-home-fallback.ts
index 4da89ef6c1..d35dd153a5 100644
--- a/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-google-home-fallback.ts
+++ b/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-google-home-fallback.ts
@@ -1,11 +1,14 @@
+import type { HomeAssistant } from "../../../../../../types";
+
+import "../../../../../../components/ha-icon-next";
+import "../../../../../../components/ha-md-list";
+import "../../../../../../components/ha-md-list-item";
+import "../../../../../../components/ha-textfield";
+
import { LitElement, html } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../../../../../../common/dom/fire_event";
-import "../../../../../../components/ha-icon-next";
-import "../../../../../../components/ha-md-list-item";
-import "../../../../../../components/ha-md-list";
-import "../../../../../../components/ha-textfield";
-import type { HomeAssistant } from "../../../../../../types";
import { sharedStyles } from "./matter-add-device-shared-styles";
@customElement("matter-add-device-google-home-fallback")
diff --git a/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-google-home.ts b/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-google-home.ts
index 85193fd24a..f22ef0fb62 100644
--- a/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-google-home.ts
+++ b/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-google-home.ts
@@ -1,10 +1,13 @@
+import type { HomeAssistant } from "../../../../../../types";
+
+import "../../../../../../components/ha-icon-next";
+import "../../../../../../components/ha-md-list";
+import "../../../../../../components/ha-md-list-item";
+
import { LitElement, html } from "lit";
import { customElement, property } from "lit/decorators";
+
import { fireEvent } from "../../../../../../common/dom/fire_event";
-import "../../../../../../components/ha-icon-next";
-import "../../../../../../components/ha-md-list-item";
-import "../../../../../../components/ha-md-list";
-import type { HomeAssistant } from "../../../../../../types";
import { sharedStyles } from "./matter-add-device-shared-styles";
@customElement("matter-add-device-google-home")
diff --git a/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-main.ts b/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-main.ts
index 528a776459..ba4f24f670 100644
--- a/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-main.ts
+++ b/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-main.ts
@@ -1,10 +1,13 @@
+import type { HomeAssistant } from "../../../../../../types";
+
+import "../../../../../../components/ha-icon-next";
+import "../../../../../../components/ha-md-list";
+import "../../../../../../components/ha-md-list-item";
+
import { LitElement, html } from "lit";
import { customElement, property } from "lit/decorators";
+
import { fireEvent } from "../../../../../../common/dom/fire_event";
-import "../../../../../../components/ha-icon-next";
-import "../../../../../../components/ha-md-list-item";
-import "../../../../../../components/ha-md-list";
-import type { HomeAssistant } from "../../../../../../types";
import { sharedStyles } from "./matter-add-device-shared-styles";
@customElement("matter-add-device-main")
diff --git a/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-new.ts b/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-new.ts
index 006450d239..999b616734 100644
--- a/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-new.ts
+++ b/src/panels/config/integrations/integration-panels/matter/matter-add-device/matter-add-device-new.ts
@@ -1,11 +1,14 @@
+import type { HomeAssistant } from "../../../../../../types";
+
+import "../../../../../../components/ha-spinner";
+
import { LitElement, css, html } from "lit";
import { customElement, property } from "lit/decorators";
-import "../../../../../../components/ha-spinner";
+
import {
canCommissionMatterExternal,
startExternalCommissioning,
} from "../../../../../../data/matter";
-import type { HomeAssistant } from "../../../../../../types";
import { sharedStyles } from "./matter-add-device-shared-styles";
@customElement("matter-add-device-new")
diff --git a/src/panels/config/integrations/integration-panels/matter/matter-config-dashboard.ts b/src/panels/config/integrations/integration-panels/matter/matter-config-dashboard.ts
index e98845fed6..f575a49902 100644
--- a/src/panels/config/integrations/integration-panels/matter/matter-config-dashboard.ts
+++ b/src/panels/config/integrations/integration-panels/matter/matter-config-dashboard.ts
@@ -1,11 +1,16 @@
-import "@material/mwc-button";
+import type { HomeAssistant } from "../../../../../types";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { isComponentLoaded } from "../../../../../common/config/is_component_loaded";
+
import "../../../../../components/ha-alert";
import "../../../../../components/ha-card";
+import "../../../../../layouts/hass-subpage";
+import "@material/mwc-button";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { isComponentLoaded } from "../../../../../common/config/is_component_loaded";
import {
acceptSharedMatterDevice,
canCommissionMatterExternal,
@@ -16,9 +21,7 @@ import {
startExternalCommissioning,
} from "../../../../../data/matter";
import { showPromptDialog } from "../../../../../dialogs/generic/show-dialog-box";
-import "../../../../../layouts/hass-subpage";
import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
@customElement("matter-config-dashboard")
export class MatterConfigDashboard extends LitElement {
diff --git a/src/panels/config/integrations/integration-panels/matter/matter-config-panel.ts b/src/panels/config/integrations/integration-panels/matter/matter-config-panel.ts
index 14ec0bf728..f836f57938 100644
--- a/src/panels/config/integrations/integration-panels/matter/matter-config-panel.ts
+++ b/src/panels/config/integrations/integration-panels/matter/matter-config-panel.ts
@@ -1,10 +1,12 @@
-import { mdiMathLog, mdiServerNetwork } from "@mdi/js";
-import { customElement, property } from "lit/decorators";
import type { RouterOptions } from "../../../../../layouts/hass-router-page";
-import { HassRouterPage } from "../../../../../layouts/hass-router-page";
import type { PageNavigation } from "../../../../../layouts/hass-tabs-subpage";
import type { HomeAssistant } from "../../../../../types";
+import { mdiMathLog, mdiServerNetwork } from "@mdi/js";
+import { customElement, property } from "lit/decorators";
+
+import { HassRouterPage } from "../../../../../layouts/hass-router-page";
+
export const configTabs: PageNavigation[] = [
{
translationKey: "ui.panel.config.zwave_js.navigation.network",
diff --git a/src/panels/config/integrations/integration-panels/mqtt/mqtt-config-panel.ts b/src/panels/config/integrations/integration-panels/mqtt/mqtt-config-panel.ts
index 5b6cbfb159..115b02a8e1 100644
--- a/src/panels/config/integrations/integration-panels/mqtt/mqtt-config-panel.ts
+++ b/src/panels/config/integrations/integration-panels/mqtt/mqtt-config-panel.ts
@@ -1,18 +1,21 @@
-import "@material/mwc-button";
+import type { HomeAssistant } from "../../../../../types";
import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { storage } from "../../../../../common/decorators/storage";
+
import "../../../../../components/ha-card";
import "../../../../../components/ha-code-editor";
import "../../../../../components/ha-formfield";
import "../../../../../components/ha-switch";
+import "../../../../../layouts/hass-subpage";
+import "./mqtt-subscribe-card";
+import "@material/mwc-button";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { storage } from "../../../../../common/decorators/storage";
import { getConfigEntries } from "../../../../../data/config_entries";
import { showOptionsFlowDialog } from "../../../../../dialogs/config-flow/show-dialog-options-flow";
-import "../../../../../layouts/hass-subpage";
import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
-import "./mqtt-subscribe-card";
const qosLevel = ["0", "1", "2"];
diff --git a/src/panels/config/integrations/integration-panels/mqtt/mqtt-subscribe-card.ts b/src/panels/config/integrations/integration-panels/mqtt/mqtt-subscribe-card.ts
index e050957b6e..a35e0cb916 100644
--- a/src/panels/config/integrations/integration-panels/mqtt/mqtt-subscribe-card.ts
+++ b/src/panels/config/integrations/integration-panels/mqtt/mqtt-subscribe-card.ts
@@ -1,18 +1,21 @@
-import "@material/mwc-button";
+import type { MQTTMessage } from "../../../../../data/mqtt";
+import type { HomeAssistant } from "../../../../../types";
import type { TemplateResult } from "lit";
+
+import "../../../../../components/ha-card";
+import "../../../../../components/ha-formfield";
+import "../../../../../components/ha-select";
+import "../../../../../components/ha-switch";
+import "../../../../../components/ha-textfield";
+import "@material/mwc-button";
+import "@material/mwc-list/mwc-list-item";
+
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
-import "../../../../../components/ha-card";
-import "../../../../../components/ha-select";
-import "../../../../../components/ha-textfield";
+
import { formatTime } from "../../../../../common/datetime/format_time";
-import type { MQTTMessage } from "../../../../../data/mqtt";
-import { subscribeMQTTTopic } from "../../../../../data/mqtt";
-import type { HomeAssistant } from "../../../../../types";
-import "@material/mwc-list/mwc-list-item";
import { storage } from "../../../../../common/decorators/storage";
-import "../../../../../components/ha-formfield";
-import "../../../../../components/ha-switch";
+import { subscribeMQTTTopic } from "../../../../../data/mqtt";
const qosLevel = ["0", "1", "2"];
diff --git a/src/panels/config/integrations/integration-panels/thread/dialog-thread-dataset.ts b/src/panels/config/integrations/integration-panels/thread/dialog-thread-dataset.ts
index 55ce8af7d3..209b4333c7 100644
--- a/src/panels/config/integrations/integration-panels/thread/dialog-thread-dataset.ts
+++ b/src/panels/config/integrations/integration-panels/thread/dialog-thread-dataset.ts
@@ -1,9 +1,11 @@
-import { LitElement, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../../common/dom/fire_event";
import type { HassDialog } from "../../../../../dialogs/make-dialog-manager";
import type { HomeAssistant } from "../../../../../types";
import type { DialogThreadDatasetParams } from "./show-dialog-thread-dataset";
+
+import { LitElement, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
import { createCloseHeading } from "../../../../../components/ha-dialog";
@customElement("ha-dialog-thread-dataset")
diff --git a/src/panels/config/integrations/integration-panels/thread/show-dialog-thread-dataset.ts b/src/panels/config/integrations/integration-panels/thread/show-dialog-thread-dataset.ts
index 17748c000f..301148c661 100644
--- a/src/panels/config/integrations/integration-panels/thread/show-dialog-thread-dataset.ts
+++ b/src/panels/config/integrations/integration-panels/thread/show-dialog-thread-dataset.ts
@@ -1,7 +1,8 @@
-import { fireEvent } from "../../../../../common/dom/fire_event";
import type { OTBRInfo } from "../../../../../data/otbr";
import type { ThreadNetwork } from "./thread-config-panel";
+import { fireEvent } from "../../../../../common/dom/fire_event";
+
export interface DialogThreadDatasetParams {
network: ThreadNetwork;
otbrInfo?: OTBRInfo;
diff --git a/src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts b/src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts
index 921bc8f33d..d02182e319 100644
--- a/src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts
+++ b/src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts
@@ -1,5 +1,15 @@
-import "@material/mwc-button";
+import type { OTBRInfo, OTBRInfoDict } from "../../../../../data/otbr";
+import type { ThreadDataSet, ThreadRouter } from "../../../../../data/thread";
+import type { HomeAssistant } from "../../../../../types";
import type { ActionDetail } from "@material/mwc-list";
+import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../../../components/ha-button-menu";
+import "../../../../../components/ha-card";
+import "../../../../../components/ha-list-item";
+import "../../../../../layouts/hass-subpage";
+import "@material/mwc-button";
+
import {
mdiDeleteOutline,
mdiDevices,
@@ -7,26 +17,21 @@ import {
mdiInformationOutline,
mdiCellphoneKey,
} from "@mdi/js";
-import type { PropertyValues, TemplateResult } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { isComponentLoaded } from "../../../../../common/config/is_component_loaded";
import { stringCompare } from "../../../../../common/string/compare";
import { extractSearchParam } from "../../../../../common/url/search-params";
-import "../../../../../components/ha-button-menu";
-import "../../../../../components/ha-list-item";
-import "../../../../../components/ha-card";
import { getSignedPath } from "../../../../../data/auth";
import { getConfigEntryDiagnosticsDownloadUrl } from "../../../../../data/diagnostics";
-import type { OTBRInfo, OTBRInfoDict } from "../../../../../data/otbr";
import {
OTBRCreateNetwork,
OTBRSetChannel,
OTBRSetNetwork,
getOTBRInfo,
} from "../../../../../data/otbr";
-import type { ThreadDataSet, ThreadRouter } from "../../../../../data/thread";
import {
addThreadDataSet,
getThreadDataSetTLV,
@@ -42,13 +47,11 @@ import {
showConfirmationDialog,
showPromptDialog,
} from "../../../../../dialogs/generic/show-dialog-box";
-import "../../../../../layouts/hass-subpage";
import { SubscribeMixin } from "../../../../../mixins/subscribe-mixin";
import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
import { brandsUrl } from "../../../../../util/brands-url";
-import { fileDownload } from "../../../../../util/file_download";
import { documentationUrl } from "../../../../../util/documentation-url";
+import { fileDownload } from "../../../../../util/file_download";
import { showThreadDatasetDialog } from "./show-dialog-thread-dataset";
export interface ThreadNetwork {
diff --git a/src/panels/config/integrations/integration-panels/zha/dialog-zha-change-channel.ts b/src/panels/config/integrations/integration-panels/zha/dialog-zha-change-channel.ts
index e0833ebcc6..46df4e4893 100644
--- a/src/panels/config/integrations/integration-panels/zha/dialog-zha-change-channel.ts
+++ b/src/panels/config/integrations/integration-panels/zha/dialog-zha-change-channel.ts
@@ -1,19 +1,22 @@
-import type { TemplateResult } from "lit";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import { stopPropagation } from "../../../../../common/dom/stop_propagation";
import type { HassDialog } from "../../../../../dialogs/make-dialog-manager";
-import { changeZHANetworkChannel } from "../../../../../data/zha";
-import { showAlertDialog } from "../../../../../dialogs/generic/show-dialog-box";
-import { createCloseHeading } from "../../../../../components/ha-dialog";
import type { HomeAssistant } from "../../../../../types";
+import type { ZHAChangeChannelDialogParams } from "./show-dialog-zha-change-channel";
+import type { TemplateResult } from "lit";
+
import "../../../../../components/buttons/ha-progress-button";
import "../../../../../components/ha-alert";
import "../../../../../components/ha-button";
-import "../../../../../components/ha-select";
import "../../../../../components/ha-list-item";
-import type { ZHAChangeChannelDialogParams } from "./show-dialog-zha-change-channel";
+import "../../../../../components/ha-select";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+import { stopPropagation } from "../../../../../common/dom/stop_propagation";
+import { createCloseHeading } from "../../../../../components/ha-dialog";
+import { changeZHANetworkChannel } from "../../../../../data/zha";
+import { showAlertDialog } from "../../../../../dialogs/generic/show-dialog-box";
const VALID_CHANNELS = [
"auto",
diff --git a/src/panels/config/integrations/integration-panels/zha/dialog-zha-manage-zigbee-device.ts b/src/panels/config/integrations/integration-panels/zha/dialog-zha-manage-zigbee-device.ts
index 3ac4a62f02..55d598879e 100644
--- a/src/panels/config/integrations/integration-panels/zha/dialog-zha-manage-zigbee-device.ts
+++ b/src/panels/config/integrations/integration-panels/zha/dialog-zha-manage-zigbee-device.ts
@@ -1,24 +1,14 @@
-import "@material/mwc-tab-bar/mwc-tab-bar";
-import "@material/mwc-tab/mwc-tab";
-import { mdiClose } from "@mdi/js";
-import type { CSSResultGroup, PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { cache } from "lit/directives/cache";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-code-editor";
-import "../../../../../components/ha-dialog";
-import "../../../../../components/ha-dialog-header";
import type { ZHADevice, ZHAGroup } from "../../../../../data/zha";
-import { fetchBindableDevices, fetchGroups } from "../../../../../data/zha";
-import { haStyleDialog } from "../../../../../resources/styles";
import type { HomeAssistant } from "../../../../../types";
-import { sortZHADevices, sortZHAGroups } from "./functions";
import type {
Tab,
ZHAManageZigbeeDeviceDialogParams,
} from "./show-dialog-zha-manage-zigbee-device";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../../../components/ha-code-editor";
+import "../../../../../components/ha-dialog";
+import "../../../../../components/ha-dialog-header";
import "./zha-cluster-attributes";
import "./zha-cluster-commands";
import "./zha-device-binding";
@@ -26,6 +16,19 @@ import "./zha-device-neighbors";
import "./zha-device-signature";
import "./zha-group-binding";
import "./zha-manage-clusters";
+import "@material/mwc-tab-bar/mwc-tab-bar";
+import "@material/mwc-tab/mwc-tab";
+
+import { mdiClose } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { cache } from "lit/directives/cache";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+import { fetchBindableDevices, fetchGroups } from "../../../../../data/zha";
+import { haStyleDialog } from "../../../../../resources/styles";
+import { sortZHADevices, sortZHAGroups } from "./functions";
@customElement("dialog-zha-manage-zigbee-device")
class DialogZHAManageZigbeeDevice extends LitElement {
diff --git a/src/panels/config/integrations/integration-panels/zha/dialog-zha-reconfigure-device.ts b/src/panels/config/integrations/integration-panels/zha/dialog-zha-reconfigure-device.ts
index f87b63b895..d9a030d568 100644
--- a/src/panels/config/integrations/integration-panels/zha/dialog-zha-reconfigure-device.ts
+++ b/src/panels/config/integrations/integration-panels/zha/dialog-zha-reconfigure-device.ts
@@ -1,20 +1,25 @@
-import "@material/mwc-button/mwc-button";
-import { mdiCheckCircle, mdiCloseCircle } from "@mdi/js";
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-spinner";
-import { createCloseHeading } from "../../../../../components/ha-dialog";
-import "../../../../../components/ha-svg-icon";
-import "../../../../../components/ha-tooltip";
import type {
AttributeConfigurationStatus,
Cluster,
ClusterConfigurationEvent,
ClusterConfigurationStatus,
} from "../../../../../data/zha";
+import type { HomeAssistant } from "../../../../../types";
+import type { ZHAReconfigureDeviceDialogParams } from "./show-dialog-zha-reconfigure-device";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../../components/ha-spinner";
+import "../../../../../components/ha-svg-icon";
+import "../../../../../components/ha-tooltip";
+import "@material/mwc-button/mwc-button";
+
+import { mdiCheckCircle, mdiCloseCircle } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+import { createCloseHeading } from "../../../../../components/ha-dialog";
import {
fetchClustersForZhaDevice,
reconfigureNode,
@@ -23,8 +28,6 @@ import {
ZHA_CHANNEL_MSG_CFG_RPT,
} from "../../../../../data/zha";
import { haStyleDialog } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
-import type { ZHAReconfigureDeviceDialogParams } from "./show-dialog-zha-reconfigure-device";
@customElement("dialog-zha-reconfigure-device")
class DialogZHAReconfigureDevice extends LitElement {
diff --git a/src/panels/config/integrations/integration-panels/zha/show-dialog-zha-manage-zigbee-device.ts b/src/panels/config/integrations/integration-panels/zha/show-dialog-zha-manage-zigbee-device.ts
index 74e4b9b4a6..e5cd34bc34 100644
--- a/src/panels/config/integrations/integration-panels/zha/show-dialog-zha-manage-zigbee-device.ts
+++ b/src/panels/config/integrations/integration-panels/zha/show-dialog-zha-manage-zigbee-device.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../../../common/dom/fire_event";
import type { ZHADevice } from "../../../../../data/zha";
+import { fireEvent } from "../../../../../common/dom/fire_event";
+
export type Tab = "clusters" | "bindings" | "signature" | "neighbors";
export interface ZHAManageZigbeeDeviceDialogParams {
diff --git a/src/panels/config/integrations/integration-panels/zha/show-dialog-zha-reconfigure-device.ts b/src/panels/config/integrations/integration-panels/zha/show-dialog-zha-reconfigure-device.ts
index e6d1f4eab8..3a4b70eec5 100644
--- a/src/panels/config/integrations/integration-panels/zha/show-dialog-zha-reconfigure-device.ts
+++ b/src/panels/config/integrations/integration-panels/zha/show-dialog-zha-reconfigure-device.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../../../common/dom/fire_event";
import type { ZHADevice } from "../../../../../data/zha";
+import { fireEvent } from "../../../../../common/dom/fire_event";
+
export interface ZHAReconfigureDeviceDialogParams {
device: ZHADevice;
}
diff --git a/src/panels/config/integrations/integration-panels/zha/zha-add-devices-page.ts b/src/panels/config/integrations/integration-panels/zha/zha-add-devices-page.ts
index 9ba02e4124..cd7a38af78 100644
--- a/src/panels/config/integrations/integration-panels/zha/zha-add-devices-page.ts
+++ b/src/panels/config/integrations/integration-panels/zha/zha-add-devices-page.ts
@@ -1,17 +1,20 @@
-import "@material/mwc-button";
+import type { ZHADevice } from "../../../../../data/zha";
+import type { HomeAssistant, Route } from "../../../../../types";
import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../../../../components/ha-spinner";
+import "../../../../../components/ha-textarea";
+import "../../../../../layouts/hass-tabs-subpage";
+import "./zha-device-pairing-status-card";
+import "@material/mwc-button";
+
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
-import "../../../../../components/ha-spinner";
-import type { ZHADevice } from "../../../../../data/zha";
+
import { DEVICE_MESSAGE_TYPES, LOG_OUTPUT } from "../../../../../data/zha";
-import "../../../../../layouts/hass-tabs-subpage";
import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../../../types";
import { documentationUrl } from "../../../../../util/documentation-url";
import { zhaTabs } from "./zha-config-dashboard";
-import "./zha-device-pairing-status-card";
-import "../../../../../components/ha-textarea";
@customElement("zha-add-devices-page")
class ZHAAddDevicesPage extends LitElement {
diff --git a/src/panels/config/integrations/integration-panels/zha/zha-add-group-page.ts b/src/panels/config/integrations/integration-panels/zha/zha-add-group-page.ts
index 5b7945a2e1..34517d44bf 100644
--- a/src/panels/config/integrations/integration-panels/zha/zha-add-group-page.ts
+++ b/src/panels/config/integrations/integration-panels/zha/zha-add-group-page.ts
@@ -1,19 +1,22 @@
-import "@material/mwc-button";
+import type { HASSDomEvent } from "../../../../../common/dom/fire_event";
+import type { SelectionChangedEvent } from "../../../../../components/data-table/ha-data-table";
+import type { ZHADeviceEndpoint, ZHAGroup } from "../../../../../data/zha";
+import type { HomeAssistant } from "../../../../../types";
+import type { ZHADeviceEndpointDataTable } from "./zha-device-endpoint-data-table";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../../../components/ha-spinner";
+import "../../../../../components/ha-textfield";
+import "../../../../../layouts/hass-subpage";
+import "../../../ha-config-section";
+import "./zha-device-endpoint-data-table";
+import "@material/mwc-button";
+
import { css, html, LitElement } from "lit";
import { customElement, property, state, query } from "lit/decorators";
-import type { HASSDomEvent } from "../../../../../common/dom/fire_event";
+
import { navigate } from "../../../../../common/navigate";
-import type { SelectionChangedEvent } from "../../../../../components/data-table/ha-data-table";
-import "../../../../../components/ha-spinner";
-import type { ZHADeviceEndpoint, ZHAGroup } from "../../../../../data/zha";
import { addGroup, fetchGroupableDevices } from "../../../../../data/zha";
-import "../../../../../layouts/hass-subpage";
-import type { HomeAssistant } from "../../../../../types";
-import "../../../ha-config-section";
-import "../../../../../components/ha-textfield";
-import "./zha-device-endpoint-data-table";
-import type { ZHADeviceEndpointDataTable } from "./zha-device-endpoint-data-table";
@customElement("zha-add-group-page")
export class ZHAAddGroupPage extends LitElement {
diff --git a/src/panels/config/integrations/integration-panels/zha/zha-cluster-attributes.ts b/src/panels/config/integrations/integration-panels/zha/zha-cluster-attributes.ts
index 709d1e0db6..d8a3011682 100644
--- a/src/panels/config/integrations/integration-panels/zha/zha-cluster-attributes.ts
+++ b/src/panels/config/integrations/integration-panels/zha/zha-cluster-attributes.ts
@@ -1,28 +1,31 @@
-import "@material/mwc-list/mwc-list-item";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { stopPropagation } from "../../../../../common/dom/stop_propagation";
-import "../../../../../components/buttons/ha-call-service-button";
-import "../../../../../components/buttons/ha-progress-button";
-import "../../../../../components/ha-card";
-import "../../../../../components/ha-select";
-import "../../../../../components/ha-textfield";
-import { forwardHaptic } from "../../../../../data/haptics";
import type {
Attribute,
Cluster,
ReadAttributeServiceData,
ZHADevice,
} from "../../../../../data/zha";
+import type { HomeAssistant } from "../../../../../types";
+import type { ItemSelectedEvent, SetAttributeServiceData } from "./types";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../../../../components/buttons/ha-call-service-button";
+import "../../../../../components/buttons/ha-progress-button";
+import "../../../../../components/ha-card";
+import "../../../../../components/ha-select";
+import "../../../../../components/ha-textfield";
+import "@material/mwc-list/mwc-list-item";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { stopPropagation } from "../../../../../common/dom/stop_propagation";
+import { forwardHaptic } from "../../../../../data/haptics";
import {
fetchAttributesForCluster,
readAttributeValue,
} from "../../../../../data/zha";
import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
import { formatAsPaddedHex } from "./functions";
-import type { ItemSelectedEvent, SetAttributeServiceData } from "./types";
@customElement("zha-cluster-attributes")
export class ZHAClusterAttributes extends LitElement {
diff --git a/src/panels/config/integrations/integration-panels/zha/zha-cluster-commands.ts b/src/panels/config/integrations/integration-panels/zha/zha-cluster-commands.ts
index 832f28a10c..7d62e09adc 100644
--- a/src/panels/config/integrations/integration-panels/zha/zha-cluster-commands.ts
+++ b/src/panels/config/integrations/integration-panels/zha/zha-cluster-commands.ts
@@ -1,19 +1,22 @@
-import "@material/mwc-list/mwc-list-item";
+import type { Cluster, Command, ZHADevice } from "../../../../../data/zha";
+import type { HomeAssistant } from "../../../../../types";
+import type { IssueCommandServiceData } from "./types";
import type { CSSResultGroup, PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { property, state } from "lit/decorators";
-import { stopPropagation } from "../../../../../common/dom/stop_propagation";
+
import "../../../../../components/buttons/ha-call-service-button";
import "../../../../../components/ha-card";
import "../../../../../components/ha-form/ha-form";
import "../../../../../components/ha-select";
import "../../../../../components/ha-textfield";
-import type { Cluster, Command, ZHADevice } from "../../../../../data/zha";
+import "@material/mwc-list/mwc-list-item";
+
+import { css, html, LitElement, nothing } from "lit";
+import { property, state } from "lit/decorators";
+
+import { stopPropagation } from "../../../../../common/dom/stop_propagation";
import { fetchCommandsForCluster } from "../../../../../data/zha";
import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
import { formatAsPaddedHex } from "./functions";
-import type { IssueCommandServiceData } from "./types";
export class ZHAClusterCommands extends LitElement {
@property({ attribute: false }) public hass?: HomeAssistant;
diff --git a/src/panels/config/integrations/integration-panels/zha/zha-clusters-data-table.ts b/src/panels/config/integrations/integration-panels/zha/zha-clusters-data-table.ts
index 3f49025398..bdd59f586f 100644
--- a/src/panels/config/integrations/integration-panels/zha/zha-clusters-data-table.ts
+++ b/src/panels/config/integrations/integration-panels/zha/zha-clusters-data-table.ts
@@ -1,14 +1,17 @@
-import type { TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property, query } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import "../../../../../components/data-table/ha-data-table";
import type {
DataTableColumnContainer,
HaDataTable,
} from "../../../../../components/data-table/ha-data-table";
import type { Cluster } from "../../../../../data/zha";
import type { HomeAssistant } from "../../../../../types";
+import type { TemplateResult } from "lit";
+
+import "../../../../../components/data-table/ha-data-table";
+
+import { html, LitElement } from "lit";
+import { customElement, property, query } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
import { formatAsPaddedHex } from "./functions";
export interface ClusterRowData extends Cluster {
diff --git a/src/panels/config/integrations/integration-panels/zha/zha-config-dashboard-router.ts b/src/panels/config/integrations/integration-panels/zha/zha-config-dashboard-router.ts
index 9b5a54818b..dddc1516fa 100644
--- a/src/panels/config/integrations/integration-panels/zha/zha-config-dashboard-router.ts
+++ b/src/panels/config/integrations/integration-panels/zha/zha-config-dashboard-router.ts
@@ -1,9 +1,11 @@
-import { customElement, property } from "lit/decorators";
-import { navigate } from "../../../../../common/navigate";
import type { RouterOptions } from "../../../../../layouts/hass-router-page";
-import { HassRouterPage } from "../../../../../layouts/hass-router-page";
import type { HomeAssistant } from "../../../../../types";
+import { customElement, property } from "lit/decorators";
+
+import { navigate } from "../../../../../common/navigate";
+import { HassRouterPage } from "../../../../../layouts/hass-router-page";
+
@customElement("zha-config-dashboard-router")
class ZHAConfigDashboardRouter extends HassRouterPage {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/config/integrations/integration-panels/zha/zha-config-dashboard.ts b/src/panels/config/integrations/integration-panels/zha/zha-config-dashboard.ts
index 0963a19b99..73fcaf1935 100644
--- a/src/panels/config/integrations/integration-panels/zha/zha-config-dashboard.ts
+++ b/src/panels/config/integrations/integration-panels/zha/zha-config-dashboard.ts
@@ -1,4 +1,24 @@
+import type { ConfigEntry } from "../../../../../data/config_entries";
+import type {
+ ZHAConfiguration,
+ ZHANetworkSettings,
+ ZHANetworkBackupAndMetadata,
+} from "../../../../../data/zha";
+import type { PageNavigation } from "../../../../../layouts/hass-tabs-subpage";
+import type { HomeAssistant, Route } from "../../../../../types";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../../../../components/buttons/ha-progress-button";
+import "../../../../../components/ha-card";
+import "../../../../../components/ha-fab";
+import "../../../../../components/ha-form/ha-form";
+import "../../../../../components/ha-icon-button";
+import "../../../../../components/ha-icon-next";
+import "../../../../../components/ha-settings-row";
+import "../../../../../layouts/hass-tabs-subpage";
+import "../../../ha-config-section";
import "@material/mwc-button/mwc-button";
+
import {
mdiFolderMultipleOutline,
mdiLan,
@@ -6,38 +26,21 @@ import {
mdiPlus,
mdiPencil,
} from "@mdi/js";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
-import type { ConfigEntry } from "../../../../../data/config_entries";
+
import { getConfigEntries } from "../../../../../data/config_entries";
-import "../../../../../components/ha-card";
-import "../../../../../components/ha-fab";
-import "../../../../../components/ha-icon-button";
-import { fileDownload } from "../../../../../util/file_download";
-import "../../../../../components/ha-icon-next";
-import "../../../../../layouts/hass-tabs-subpage";
-import type { PageNavigation } from "../../../../../layouts/hass-tabs-subpage";
-import { showOptionsFlowDialog } from "../../../../../dialogs/config-flow/show-dialog-options-flow";
-import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../../../types";
-import "../../../ha-config-section";
-import "../../../../../components/ha-form/ha-form";
-import "../../../../../components/buttons/ha-progress-button";
-import "../../../../../components/ha-settings-row";
-import { showZHAChangeChannelDialog } from "./show-dialog-zha-change-channel";
-import type {
- ZHAConfiguration,
- ZHANetworkSettings,
- ZHANetworkBackupAndMetadata,
-} from "../../../../../data/zha";
import {
fetchZHAConfiguration,
updateZHAConfiguration,
fetchZHANetworkSettings,
createZHANetworkBackup,
} from "../../../../../data/zha";
+import { showOptionsFlowDialog } from "../../../../../dialogs/config-flow/show-dialog-options-flow";
import { showAlertDialog } from "../../../../../dialogs/generic/show-dialog-box";
+import { haStyle } from "../../../../../resources/styles";
+import { fileDownload } from "../../../../../util/file_download";
+import { showZHAChangeChannelDialog } from "./show-dialog-zha-change-channel";
const MULTIPROTOCOL_ADDON_URL = "socket://core-silabs-multiprotocol:9999";
diff --git a/src/panels/config/integrations/integration-panels/zha/zha-device-binding.ts b/src/panels/config/integrations/integration-panels/zha/zha-device-binding.ts
index 9f532f868d..47a719d8f5 100644
--- a/src/panels/config/integrations/integration-panels/zha/zha-device-binding.ts
+++ b/src/panels/config/integrations/integration-panels/zha/zha-device-binding.ts
@@ -1,16 +1,19 @@
-import "@material/mwc-list/mwc-list-item";
+import type { ZHADevice } from "../../../../../data/zha";
+import type { HomeAssistant } from "../../../../../types";
+import type { ItemSelectedEvent } from "./types";
import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { stopPropagation } from "../../../../../common/dom/stop_propagation";
+
import "../../../../../components/buttons/ha-progress-button";
import "../../../../../components/ha-card";
import "../../../../../components/ha-select";
-import type { ZHADevice } from "../../../../../data/zha";
+import "@material/mwc-list/mwc-list-item";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { stopPropagation } from "../../../../../common/dom/stop_propagation";
import { bindDevices, unbindDevices } from "../../../../../data/zha";
import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
-import type { ItemSelectedEvent } from "./types";
@customElement("zha-device-binding-control")
export class ZHADeviceBindingControl extends LitElement {
diff --git a/src/panels/config/integrations/integration-panels/zha/zha-device-card.ts b/src/panels/config/integrations/integration-panels/zha/zha-device-card.ts
index 0c411f8ad6..13378c7ddf 100644
--- a/src/panels/config/integrations/integration-panels/zha/zha-device-card.ts
+++ b/src/panels/config/integrations/integration-panels/zha/zha-device-card.ts
@@ -1,28 +1,31 @@
+import type { EntityRegistryEntry } from "../../../../../data/entity_registry";
+import type { ZHADevice } from "../../../../../data/zha";
+import type { HomeAssistant } from "../../../../../types";
+import type { EntityRegistryStateEntry } from "../../../devices/ha-config-device-page";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import { computeStateName } from "../../../../../common/entity/compute_state_name";
-import { stringCompare } from "../../../../../common/string/compare";
-import { slugify } from "../../../../../common/string/slugify";
+
import "../../../../../components/entity/state-badge";
import "../../../../../components/ha-area-picker";
import "../../../../../components/ha-card";
import "../../../../../components/ha-textfield";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+import { computeStateName } from "../../../../../common/entity/compute_state_name";
+import { stringCompare } from "../../../../../common/string/compare";
+import { slugify } from "../../../../../common/string/slugify";
import { updateDeviceRegistryEntry } from "../../../../../data/device_registry";
-import type { EntityRegistryEntry } from "../../../../../data/entity_registry";
import {
subscribeEntityRegistry,
updateEntityRegistryEntry,
} from "../../../../../data/entity_registry";
-import type { ZHADevice } from "../../../../../data/zha";
import { showAlertDialog } from "../../../../../dialogs/generic/show-dialog-box";
import { SubscribeMixin } from "../../../../../mixins/subscribe-mixin";
import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
-import type { EntityRegistryStateEntry } from "../../../devices/ha-config-device-page";
import { getIeeeTail } from "./functions";
@customElement("zha-device-card")
diff --git a/src/panels/config/integrations/integration-panels/zha/zha-device-endpoint-data-table.ts b/src/panels/config/integrations/integration-panels/zha/zha-device-endpoint-data-table.ts
index 0d24216dba..132b76ad46 100644
--- a/src/panels/config/integrations/integration-panels/zha/zha-device-endpoint-data-table.ts
+++ b/src/panels/config/integrations/integration-panels/zha/zha-device-endpoint-data-table.ts
@@ -1,8 +1,3 @@
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, query } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import "../../../../../components/data-table/ha-data-table";
import type {
DataTableColumnContainer,
DataTableRowData,
@@ -13,6 +8,13 @@ import type {
ZHAEntityReference,
} from "../../../../../data/zha";
import type { HomeAssistant } from "../../../../../types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../../../components/data-table/ha-data-table";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, query } from "lit/decorators";
+import memoizeOne from "memoize-one";
export interface DeviceEndpointRowData extends DataTableRowData {
id: string;
diff --git a/src/panels/config/integrations/integration-panels/zha/zha-device-neighbors.ts b/src/panels/config/integrations/integration-panels/zha/zha-device-neighbors.ts
index 1ed0760f04..2af28d910a 100644
--- a/src/panels/config/integrations/integration-panels/zha/zha-device-neighbors.ts
+++ b/src/panels/config/integrations/integration-panels/zha/zha-device-neighbors.ts
@@ -1,17 +1,20 @@
-import type { PropertyValues } from "lit";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import "../../../../../components/data-table/ha-data-table";
import type {
DataTableColumnContainer,
DataTableRowData,
} from "../../../../../components/data-table/ha-data-table";
-import "../../../../../components/ha-spinner";
-import "../../../../../components/ha-code-editor";
import type { ZHADevice } from "../../../../../data/zha";
-import { fetchDevices } from "../../../../../data/zha";
import type { HomeAssistant } from "../../../../../types";
+import type { PropertyValues } from "lit";
+
+import "../../../../../components/data-table/ha-data-table";
+import "../../../../../components/ha-code-editor";
+import "../../../../../components/ha-spinner";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fetchDevices } from "../../../../../data/zha";
export interface DeviceRowData extends DataTableRowData {
id: string;
diff --git a/src/panels/config/integrations/integration-panels/zha/zha-device-pairing-status-card.ts b/src/panels/config/integrations/integration-panels/zha/zha-device-pairing-status-card.ts
index 37214af066..b7923b197c 100644
--- a/src/panels/config/integrations/integration-panels/zha/zha-device-pairing-status-card.ts
+++ b/src/panels/config/integrations/integration-panels/zha/zha-device-pairing-status-card.ts
@@ -1,9 +1,14 @@
+import type { ZHADevice } from "../../../../../data/zha";
+import type { HomeAssistant } from "../../../../../types";
import type { CSSResultGroup } from "lit";
+
+import "../../../../../components/ha-card";
+import "./zha-device-card";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
-import "../../../../../components/ha-card";
-import type { ZHADevice } from "../../../../../data/zha";
+
import {
CONFIGURED,
INCOMPLETE_PAIRING_STATUSES,
@@ -11,9 +16,7 @@ import {
INTERVIEW_COMPLETE,
} from "../../../../../data/zha";
import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
import { formatAsPaddedHex } from "./functions";
-import "./zha-device-card";
@customElement("zha-device-pairing-status-card")
class ZHADevicePairingStatusCard extends LitElement {
diff --git a/src/panels/config/integrations/integration-panels/zha/zha-device-signature.ts b/src/panels/config/integrations/integration-panels/zha/zha-device-signature.ts
index 7ddecd68e5..1d864edbc9 100644
--- a/src/panels/config/integrations/integration-panels/zha/zha-device-signature.ts
+++ b/src/panels/config/integrations/integration-panels/zha/zha-device-signature.ts
@@ -1,9 +1,11 @@
-import type { PropertyValues } from "lit";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import "../../../../../components/ha-code-editor";
import type { ZHADevice } from "../../../../../data/zha";
import type { HomeAssistant } from "../../../../../types";
+import type { PropertyValues } from "lit";
+
+import "../../../../../components/ha-code-editor";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
@customElement("zha-device-zigbee-info")
class ZHADeviceZigbeeInfo extends LitElement {
diff --git a/src/panels/config/integrations/integration-panels/zha/zha-group-binding.ts b/src/panels/config/integrations/integration-panels/zha/zha-group-binding.ts
index 38465b27b3..ae6924129d 100644
--- a/src/panels/config/integrations/integration-panels/zha/zha-group-binding.ts
+++ b/src/panels/config/integrations/integration-panels/zha/zha-group-binding.ts
@@ -1,24 +1,27 @@
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state, query } from "lit/decorators";
import type { HASSDomEvent } from "../../../../../common/dom/fire_event";
-import { stopPropagation } from "../../../../../common/dom/stop_propagation";
-import "../../../../../components/buttons/ha-progress-button";
import type { SelectionChangedEvent } from "../../../../../components/data-table/ha-data-table";
+import type { Cluster, ZHADevice, ZHAGroup } from "../../../../../data/zha";
+import type { HomeAssistant } from "../../../../../types";
+import type { ItemSelectedEvent } from "./types";
+import type { ZHAClustersDataTable } from "./zha-clusters-data-table";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../../../../components/buttons/ha-progress-button";
import "../../../../../components/ha-card";
import "../../../../../components/ha-select";
-import type { Cluster, ZHADevice, ZHAGroup } from "../../../../../data/zha";
+import "./zha-clusters-data-table";
+import "@material/mwc-list/mwc-list-item";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state, query } from "lit/decorators";
+
+import { stopPropagation } from "../../../../../common/dom/stop_propagation";
import {
bindDeviceToGroup,
fetchClustersForZhaDevice,
unbindDeviceFromGroup,
} from "../../../../../data/zha";
import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
-import type { ItemSelectedEvent } from "./types";
-import "./zha-clusters-data-table";
-import type { ZHAClustersDataTable } from "./zha-clusters-data-table";
-import "@material/mwc-list/mwc-list-item";
@customElement("zha-group-binding-control")
export class ZHAGroupBindingControl extends LitElement {
diff --git a/src/panels/config/integrations/integration-panels/zha/zha-group-page.ts b/src/panels/config/integrations/integration-panels/zha/zha-group-page.ts
index 2510ff7c8b..3c4d6e6940 100644
--- a/src/panels/config/integrations/integration-panels/zha/zha-group-page.ts
+++ b/src/panels/config/integrations/integration-panels/zha/zha-group-page.ts
@@ -1,15 +1,26 @@
-import "@material/mwc-button";
-import { mdiDelete } from "@mdi/js";
+import type { HASSDomEvent } from "../../../../../common/dom/fire_event";
+import type { SelectionChangedEvent } from "../../../../../components/data-table/ha-data-table";
+import type { ZHADeviceEndpoint, ZHAGroup } from "../../../../../data/zha";
+import type { HomeAssistant } from "../../../../../types";
+import type { ZHADeviceEndpointDataTable } from "./zha-device-endpoint-data-table";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../../../components/ha-card";
+import "../../../../../components/ha-icon-button";
+import "../../../../../components/ha-list-item";
+import "../../../../../components/ha-spinner";
+import "../../../../../layouts/hass-error-screen";
+import "../../../../../layouts/hass-subpage";
+import "../../../ha-config-section";
+import "./zha-device-endpoint-data-table";
+import "@material/mwc-button";
+import "@material/mwc-list/mwc-list";
+
+import { mdiDelete } from "@mdi/js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
-import type { HASSDomEvent } from "../../../../../common/dom/fire_event";
+
import { navigate } from "../../../../../common/navigate";
-import type { SelectionChangedEvent } from "../../../../../components/data-table/ha-data-table";
-import "../../../../../components/ha-card";
-import "../../../../../components/ha-spinner";
-import "../../../../../components/ha-icon-button";
-import type { ZHADeviceEndpoint, ZHAGroup } from "../../../../../data/zha";
import {
addMembersToGroup,
fetchGroup,
@@ -17,15 +28,7 @@ import {
removeGroups,
removeMembersFromGroup,
} from "../../../../../data/zha";
-import "../../../../../layouts/hass-error-screen";
-import "../../../../../layouts/hass-subpage";
-import type { HomeAssistant } from "../../../../../types";
-import "../../../ha-config-section";
import { formatAsPaddedHex } from "./functions";
-import "./zha-device-endpoint-data-table";
-import type { ZHADeviceEndpointDataTable } from "./zha-device-endpoint-data-table";
-import "@material/mwc-list/mwc-list";
-import "../../../../../components/ha-list-item";
@customElement("zha-group-page")
export class ZHAGroupPage extends LitElement {
diff --git a/src/panels/config/integrations/integration-panels/zha/zha-groups-dashboard.ts b/src/panels/config/integrations/integration-panels/zha/zha-groups-dashboard.ts
index bc4b9efa59..1efeefd688 100644
--- a/src/panels/config/integrations/integration-panels/zha/zha-groups-dashboard.ts
+++ b/src/panels/config/integrations/integration-panels/zha/zha-groups-dashboard.ts
@@ -1,23 +1,26 @@
-import "@material/mwc-button";
-import { mdiPlus } from "@mdi/js";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
import type { HASSDomEvent } from "../../../../../common/dom/fire_event";
-import { navigate } from "../../../../../common/navigate";
import type { LocalizeFunc } from "../../../../../common/translations/localize";
import type {
DataTableColumnContainer,
RowClickedEvent,
} from "../../../../../components/data-table/ha-data-table";
+import type { ZHAGroup } from "../../../../../data/zha";
+import type { HomeAssistant, Route } from "../../../../../types";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
import "../../../../../components/ha-fab";
import "../../../../../components/ha-icon-button";
-import type { ZHAGroup } from "../../../../../data/zha";
-import { fetchGroups } from "../../../../../data/zha";
import "../../../../../layouts/hass-tabs-subpage-data-table";
+import "@material/mwc-button";
+
+import { mdiPlus } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { navigate } from "../../../../../common/navigate";
+import { fetchGroups } from "../../../../../data/zha";
import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../../../types";
import { formatAsPaddedHex, sortZHAGroups } from "./functions";
import { zhaTabs } from "./zha-config-dashboard";
diff --git a/src/panels/config/integrations/integration-panels/zha/zha-manage-clusters.ts b/src/panels/config/integrations/integration-panels/zha/zha-manage-clusters.ts
index cf60f26d99..2e1d1ffad5 100644
--- a/src/panels/config/integrations/integration-panels/zha/zha-manage-clusters.ts
+++ b/src/panels/config/integrations/integration-panels/zha/zha-manage-clusters.ts
@@ -1,20 +1,23 @@
+import type { Cluster, ZHADevice } from "../../../../../data/zha";
+import type { HomeAssistant } from "../../../../../types";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../../../components/ha-card";
+import "../../../../../components/ha-select";
+import "./zha-cluster-attributes";
+import "./zha-cluster-commands";
import "@material/mwc-list/mwc-list-item";
import "@material/mwc-tab-bar/mwc-tab-bar";
import "@material/mwc-tab/mwc-tab";
-import type { CSSResultGroup, PropertyValues } from "lit";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { cache } from "lit/directives/cache";
+
import { stopPropagation } from "../../../../../common/dom/stop_propagation";
-import "../../../../../components/ha-card";
-import "../../../../../components/ha-select";
-import type { Cluster, ZHADevice } from "../../../../../data/zha";
import { fetchClustersForZhaDevice } from "../../../../../data/zha";
import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
import { computeClusterKey } from "./functions";
-import "./zha-cluster-attributes";
-import "./zha-cluster-commands";
declare global {
// for fire event
diff --git a/src/panels/config/integrations/integration-panels/zha/zha-network-visualization-page.ts b/src/panels/config/integrations/integration-panels/zha/zha-network-visualization-page.ts
index f14e8f93b7..fa3b3a0bb1 100644
--- a/src/panels/config/integrations/integration-panels/zha/zha-network-visualization-page.ts
+++ b/src/panels/config/integrations/integration-panels/zha/zha-network-visualization-page.ts
@@ -1,25 +1,28 @@
-import "@material/mwc-button";
-import type { CSSResultGroup, PropertyValues } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import type { Edge, EdgeOptions, Node } from "vis-network/peer/esm/vis-network";
-import { Network } from "vis-network/peer/esm/vis-network";
-import { navigate } from "../../../../../common/navigate";
-import "../../../../../components/search-input";
-import "../../../../../components/device/ha-device-picker";
-import "../../../../../components/ha-button-menu";
-import "../../../../../components/ha-checkbox";
import type { HaCheckbox } from "../../../../../components/ha-checkbox";
-import "../../../../../components/ha-formfield";
import type { DeviceRegistryEntry } from "../../../../../data/device_registry";
import type { ZHADevice } from "../../../../../data/zha";
-import { fetchDevices, refreshTopology } from "../../../../../data/zha";
-import "../../../../../layouts/hass-tabs-subpage";
import type {
ValueChangedEvent,
HomeAssistant,
Route,
} from "../../../../../types";
+import type { CSSResultGroup, PropertyValues } from "lit";
+import type { Edge, EdgeOptions, Node } from "vis-network/peer/esm/vis-network";
+
+import "../../../../../components/device/ha-device-picker";
+import "../../../../../components/ha-button-menu";
+import "../../../../../components/ha-checkbox";
+import "../../../../../components/ha-formfield";
+import "../../../../../components/search-input";
+import "../../../../../layouts/hass-tabs-subpage";
+import "@material/mwc-button";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import { Network } from "vis-network/peer/esm/vis-network";
+
+import { navigate } from "../../../../../common/navigate";
+import { fetchDevices, refreshTopology } from "../../../../../data/zha";
import { formatAsPaddedHex } from "./functions";
import { zhaTabs } from "./zha-config-dashboard";
diff --git a/src/panels/config/integrations/integration-panels/zwave_js/capability-controls/zwave_js-capability-control-color-switch.ts b/src/panels/config/integrations/integration-panels/zwave_js/capability-controls/zwave_js-capability-control-color-switch.ts
index b42fd76158..1125ddcf4b 100644
--- a/src/panels/config/integrations/integration-panels/zwave_js/capability-controls/zwave_js-capability-control-color-switch.ts
+++ b/src/panels/config/integrations/integration-panels/zwave_js/capability-controls/zwave_js-capability-control-color-switch.ts
@@ -1,13 +1,16 @@
-import { LitElement, html } from "lit";
-import { customElement, property, state } from "lit/decorators";
import type { DeviceRegistryEntry } from "../../../../../../data/device_registry";
import type { HomeAssistant } from "../../../../../../types";
-import { invokeZWaveCCApi } from "../../../../../../data/zwave_js";
+
import "../../../../../../components/ha-alert";
import "../../../../../../components/ha-spinner";
-import { extractApiErrorMessage } from "../../../../../../data/hassio/common";
import "./zwave_js-capability-control-multilevel-switch";
+import { LitElement, html } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { extractApiErrorMessage } from "../../../../../../data/hassio/common";
+import { invokeZWaveCCApi } from "../../../../../../data/zwave_js";
+
enum ColorComponent {
"Warm White" = 0,
"Cold White",
diff --git a/src/panels/config/integrations/integration-panels/zwave_js/capability-controls/zwave_js-capability-control-door-lock.ts b/src/panels/config/integrations/integration-panels/zwave_js/capability-controls/zwave_js-capability-control-door-lock.ts
index b378d306f7..362b727dad 100644
--- a/src/panels/config/integrations/integration-panels/zwave_js/capability-controls/zwave_js-capability-control-door-lock.ts
+++ b/src/panels/config/integrations/integration-panels/zwave_js/capability-controls/zwave_js-capability-control-door-lock.ts
@@ -1,20 +1,23 @@
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
+import type { HaProgressButton } from "../../../../../../components/buttons/ha-progress-button";
+import type { HaSwitch } from "../../../../../../components/ha-switch";
import type { DeviceRegistryEntry } from "../../../../../../data/device_registry";
import type { HomeAssistant } from "../../../../../../types";
-import { invokeZWaveCCApi } from "../../../../../../data/zwave_js";
-import "../../../../../../components/ha-button";
+
import "../../../../../../components/buttons/ha-progress-button";
-import "../../../../../../components/ha-textfield";
-import "../../../../../../components/ha-select";
-import "../../../../../../components/ha-list-item";
import "../../../../../../components/ha-alert";
-import "../../../../../../components/ha-switch";
+import "../../../../../../components/ha-button";
import "../../../../../../components/ha-formfield";
+import "../../../../../../components/ha-list-item";
+import "../../../../../../components/ha-select";
import "../../../../../../components/ha-spinner";
-import type { HaSwitch } from "../../../../../../components/ha-switch";
-import type { HaProgressButton } from "../../../../../../components/buttons/ha-progress-button";
+import "../../../../../../components/ha-switch";
+import "../../../../../../components/ha-textfield";
+
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
import { extractApiErrorMessage } from "../../../../../../data/hassio/common";
+import { invokeZWaveCCApi } from "../../../../../../data/zwave_js";
type DoorHandleStatus = [boolean, boolean, boolean, boolean];
diff --git a/src/panels/config/integrations/integration-panels/zwave_js/capability-controls/zwave_js-capability-control-multilevel-switch.ts b/src/panels/config/integrations/integration-panels/zwave_js/capability-controls/zwave_js-capability-control-multilevel-switch.ts
index 9a06049121..4716f1e9a2 100644
--- a/src/panels/config/integrations/integration-panels/zwave_js/capability-controls/zwave_js-capability-control-multilevel-switch.ts
+++ b/src/panels/config/integrations/integration-panels/zwave_js/capability-controls/zwave_js-capability-control-multilevel-switch.ts
@@ -1,20 +1,23 @@
-import { LitElement, css, html } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import "../../../../../../components/buttons/ha-progress-button";
-import type { DeviceRegistryEntry } from "../../../../../../data/device_registry";
-import type { HomeAssistant } from "../../../../../../types";
-import { invokeZWaveCCApi } from "../../../../../../data/zwave_js";
-import "../../../../../../components/ha-textfield";
-import "../../../../../../components/ha-select";
-import "../../../../../../components/ha-list-item";
-import "../../../../../../components/ha-alert";
-import "../../../../../../components/ha-formfield";
-import "../../../../../../components/ha-switch";
import type { HaProgressButton } from "../../../../../../components/buttons/ha-progress-button";
import type { HaSelect } from "../../../../../../components/ha-select";
-import type { HaTextField } from "../../../../../../components/ha-textfield";
import type { HaSwitch } from "../../../../../../components/ha-switch";
+import type { HaTextField } from "../../../../../../components/ha-textfield";
+import type { DeviceRegistryEntry } from "../../../../../../data/device_registry";
+import type { HomeAssistant } from "../../../../../../types";
+
+import "../../../../../../components/buttons/ha-progress-button";
+import "../../../../../../components/ha-alert";
+import "../../../../../../components/ha-formfield";
+import "../../../../../../components/ha-list-item";
+import "../../../../../../components/ha-select";
+import "../../../../../../components/ha-switch";
+import "../../../../../../components/ha-textfield";
+
+import { LitElement, css, html } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
import { extractApiErrorMessage } from "../../../../../../data/hassio/common";
+import { invokeZWaveCCApi } from "../../../../../../data/zwave_js";
@customElement("zwave_js-capability-control-multilevel_switch")
class ZWaveJSCapabilityMultiLevelSwitch extends LitElement {
diff --git a/src/panels/config/integrations/integration-panels/zwave_js/capability-controls/zwave_js-capability-control-thermostat-setback.ts b/src/panels/config/integrations/integration-panels/zwave_js/capability-controls/zwave_js-capability-control-thermostat-setback.ts
index 784a4b8e07..bc02ec27c7 100644
--- a/src/panels/config/integrations/integration-panels/zwave_js/capability-controls/zwave_js-capability-control-thermostat-setback.ts
+++ b/src/panels/config/integrations/integration-panels/zwave_js/capability-controls/zwave_js-capability-control-thermostat-setback.ts
@@ -1,18 +1,21 @@
-import { LitElement, css, html } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import type { DeviceRegistryEntry } from "../../../../../../data/device_registry";
-import type { HomeAssistant } from "../../../../../../types";
-import { invokeZWaveCCApi } from "../../../../../../data/zwave_js";
-import "../../../../../../components/ha-button";
-import "../../../../../../components/buttons/ha-progress-button";
-import "../../../../../../components/ha-textfield";
-import "../../../../../../components/ha-select";
-import "../../../../../../components/ha-list-item";
-import "../../../../../../components/ha-alert";
+import type { HaProgressButton } from "../../../../../../components/buttons/ha-progress-button";
import type { HaSelect } from "../../../../../../components/ha-select";
import type { HaTextField } from "../../../../../../components/ha-textfield";
+import type { DeviceRegistryEntry } from "../../../../../../data/device_registry";
+import type { HomeAssistant } from "../../../../../../types";
+
+import "../../../../../../components/buttons/ha-progress-button";
+import "../../../../../../components/ha-alert";
+import "../../../../../../components/ha-button";
+import "../../../../../../components/ha-list-item";
+import "../../../../../../components/ha-select";
+import "../../../../../../components/ha-textfield";
+
+import { LitElement, css, html } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
import { extractApiErrorMessage } from "../../../../../../data/hassio/common";
-import type { HaProgressButton } from "../../../../../../components/buttons/ha-progress-button";
+import { invokeZWaveCCApi } from "../../../../../../data/zwave_js";
// enum with special states
enum SpecialState {
diff --git a/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-add-node.ts b/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-add-node.ts
index 2151578fce..abc7b30922 100644
--- a/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-add-node.ts
+++ b/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-add-node.ts
@@ -1,26 +1,31 @@
-import "@material/mwc-button/mwc-button";
-import { mdiAlertCircle, mdiCheckCircle, mdiQrcodeScan } from "@mdi/js";
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { ifDefined } from "lit/directives/if-defined";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-alert";
import type { HaCheckbox } from "../../../../../components/ha-checkbox";
-import "../../../../../components/ha-spinner";
-import { createCloseHeading } from "../../../../../components/ha-dialog";
-import "../../../../../components/ha-checkbox";
-import "../../../../../components/ha-formfield";
-import "../../../../../components/ha-qr-scanner";
-import "../../../../../components/ha-radio";
-import "../../../../../components/ha-switch";
-import "../../../../../components/ha-textfield";
import type { HaTextField } from "../../../../../components/ha-textfield";
import type {
QRProvisioningInformation,
RequestedGrant,
} from "../../../../../data/zwave_js";
+import type { HomeAssistant } from "../../../../../types";
+import type { ZWaveJSAddNodeDialogParams } from "./show-dialog-zwave_js-add-node";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../../components/ha-alert";
+import "../../../../../components/ha-checkbox";
+import "../../../../../components/ha-formfield";
+import "../../../../../components/ha-qr-scanner";
+import "../../../../../components/ha-radio";
+import "../../../../../components/ha-spinner";
+import "../../../../../components/ha-switch";
+import "../../../../../components/ha-textfield";
+import "@material/mwc-button/mwc-button";
+
+import { mdiAlertCircle, mdiCheckCircle, mdiQrcodeScan } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import { ifDefined } from "lit/directives/if-defined";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+import { createCloseHeading } from "../../../../../components/ha-dialog";
import {
cancelSecureBootstrapS2,
InclusionStrategy,
@@ -37,8 +42,6 @@ import {
zwaveValidateDskAndEnterPin,
} from "../../../../../data/zwave_js";
import { haStyle, haStyleDialog } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
-import type { ZWaveJSAddNodeDialogParams } from "./show-dialog-zwave_js-add-node";
export interface ZWaveJSAddNodeDevice {
id: string;
diff --git a/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-hard-reset-controller.ts b/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-hard-reset-controller.ts
index b5dec3687e..4c797a59ef 100644
--- a/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-hard-reset-controller.ts
+++ b/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-hard-reset-controller.ts
@@ -1,17 +1,20 @@
-import { mdiCheckCircle, mdiDeleteForever, mdiRestore } from "@mdi/js";
-import "@material/mwc-button/mwc-button";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import { createCloseHeading } from "../../../../../components/ha-dialog";
-import "../../../../../components/ha-svg-icon";
-import { hardResetController } from "../../../../../data/zwave_js";
-import { haStyleDialog } from "../../../../../resources/styles";
import type { HomeAssistant } from "../../../../../types";
import type { ZWaveJSHardResetControllerDialogParams } from "./show-dialog-zwave_js-hard-reset-controller";
-import { showConfirmationDialog } from "../../../../../dialogs/generic/show-dialog-box";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../../components/ha-svg-icon";
+import "@material/mwc-button/mwc-button";
+
+import { mdiCheckCircle, mdiDeleteForever, mdiRestore } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
import { navigate } from "../../../../../common/navigate";
+import { createCloseHeading } from "../../../../../components/ha-dialog";
+import { hardResetController } from "../../../../../data/zwave_js";
+import { showConfirmationDialog } from "../../../../../dialogs/generic/show-dialog-box";
+import { haStyleDialog } from "../../../../../resources/styles";
enum ResetStatus {
NotStarted,
diff --git a/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-node-statistics.ts b/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-node-statistics.ts
index bbe442323b..e288832a0f 100644
--- a/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-node-statistics.ts
+++ b/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-node-statistics.ts
@@ -1,30 +1,33 @@
-import "@material/mwc-list/mwc-list";
-import "@material/mwc-list/mwc-list-item";
-import { mdiSwapHorizontal } from "@mdi/js";
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import { computeDeviceNameDisplay } from "../../../../../common/entity/compute_device_name";
-import { createCloseHeading } from "../../../../../components/ha-dialog";
-import "../../../../../components/ha-expansion-panel";
-import "../../../../../components/ha-help-tooltip";
-import "../../../../../components/ha-svg-icon";
import type { DeviceRegistryEntry } from "../../../../../data/device_registry";
-import { subscribeDeviceRegistry } from "../../../../../data/device_registry";
import type {
ZWaveJSNodeStatisticsUpdatedMessage,
ZWaveJSRouteStatistics,
} from "../../../../../data/zwave_js";
+import type { HomeAssistant } from "../../../../../types";
+import type { ZWaveJSNodeStatisticsDialogParams } from "./show-dialog-zwave_js-node-statistics";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../../../components/ha-expansion-panel";
+import "../../../../../components/ha-help-tooltip";
+import "../../../../../components/ha-svg-icon";
+import "@material/mwc-list/mwc-list";
+import "@material/mwc-list/mwc-list-item";
+
+import { mdiSwapHorizontal } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+import { computeDeviceNameDisplay } from "../../../../../common/entity/compute_device_name";
+import { createCloseHeading } from "../../../../../components/ha-dialog";
+import { subscribeDeviceRegistry } from "../../../../../data/device_registry";
import {
ProtocolDataRate,
RssiError,
subscribeZwaveNodeStatistics,
} from "../../../../../data/zwave_js";
import { haStyleDialog } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
-import type { ZWaveJSNodeStatisticsDialogParams } from "./show-dialog-zwave_js-node-statistics";
type WorkingRouteStatistics =
| (ZWaveJSRouteStatistics & {
diff --git a/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-rebuild-network-routes.ts b/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-rebuild-network-routes.ts
index 5714df0d73..8e49c8149f 100644
--- a/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-rebuild-network-routes.ts
+++ b/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-rebuild-network-routes.ts
@@ -1,16 +1,21 @@
-import "@material/mwc-button/mwc-button";
-import "@material/mwc-linear-progress/mwc-linear-progress";
-import { mdiCheckCircle, mdiCloseCircle, mdiStethoscope } from "@mdi/js";
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import { createCloseHeading } from "../../../../../components/ha-dialog";
import type {
ZWaveJSRebuildRoutesStatusMessage,
ZWaveJSNetwork,
} from "../../../../../data/zwave_js";
+import type { HomeAssistant } from "../../../../../types";
+import type { ZWaveJSRebuildNetworkRoutesDialogParams } from "./show-dialog-zwave_js-rebuild-network-routes";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { CSSResultGroup } from "lit";
+
+import "@material/mwc-button/mwc-button";
+import "@material/mwc-linear-progress/mwc-linear-progress";
+
+import { mdiCheckCircle, mdiCloseCircle, mdiStethoscope } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+import { createCloseHeading } from "../../../../../components/ha-dialog";
import {
fetchZwaveNetworkStatus,
rebuildZwaveNetworkRoutes,
@@ -18,8 +23,6 @@ import {
subscribeRebuildZwaveNetworkRoutesProgress,
} from "../../../../../data/zwave_js";
import { haStyleDialog } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
-import type { ZWaveJSRebuildNetworkRoutesDialogParams } from "./show-dialog-zwave_js-rebuild-network-routes";
@customElement("dialog-zwave_js-rebuild-network-routes")
class DialogZWaveJSRebuildNetworkRoutes extends LitElement {
diff --git a/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-rebuild-node-routes.ts b/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-rebuild-node-routes.ts
index 19b12b06fd..88a150f1a5 100644
--- a/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-rebuild-node-routes.ts
+++ b/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-rebuild-node-routes.ts
@@ -1,21 +1,24 @@
-import "@material/mwc-button/mwc-button";
-import { mdiCheckCircle, mdiCloseCircle, mdiStethoscope } from "@mdi/js";
+import type { DeviceRegistryEntry } from "../../../../../data/device_registry";
+import type { ZWaveJSNetwork } from "../../../../../data/zwave_js";
+import type { HomeAssistant } from "../../../../../types";
+import type { ZWaveJSRebuildNodeRoutesDialogParams } from "./show-dialog-zwave_js-rebuild-node-routes";
import type { CSSResultGroup } from "lit";
+
+import "../../../../../components/ha-spinner";
+import "@material/mwc-button/mwc-button";
+
+import { mdiCheckCircle, mdiCloseCircle, mdiStethoscope } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../../../../../common/dom/fire_event";
import { computeDeviceNameDisplay } from "../../../../../common/entity/compute_device_name";
import { createCloseHeading } from "../../../../../components/ha-dialog";
-import "../../../../../components/ha-spinner";
-import type { DeviceRegistryEntry } from "../../../../../data/device_registry";
-import type { ZWaveJSNetwork } from "../../../../../data/zwave_js";
import {
fetchZwaveNetworkStatus,
rebuildZwaveNodeRoutes,
} from "../../../../../data/zwave_js";
import { haStyleDialog } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
-import type { ZWaveJSRebuildNodeRoutesDialogParams } from "./show-dialog-zwave_js-rebuild-node-routes";
@customElement("dialog-zwave_js-rebuild-node-routes")
class DialogZWaveJSRebuildNodeRoutes extends LitElement {
diff --git a/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-reinterview-node.ts b/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-reinterview-node.ts
index 58edf8fa02..06df0c33f1 100644
--- a/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-reinterview-node.ts
+++ b/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-reinterview-node.ts
@@ -1,16 +1,19 @@
-import "@material/mwc-button/mwc-button";
-import { mdiCheckCircle, mdiCloseCircle } from "@mdi/js";
+import type { HomeAssistant } from "../../../../../types";
+import type { ZWaveJSReinterviewNodeDialogParams } from "./show-dialog-zwave_js-reinterview-node";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { CSSResultGroup } from "lit";
+
+import "../../../../../components/ha-spinner";
+import "@material/mwc-button/mwc-button";
+
+import { mdiCheckCircle, mdiCloseCircle } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-spinner";
import { createCloseHeading } from "../../../../../components/ha-dialog";
import { reinterviewZwaveNode } from "../../../../../data/zwave_js";
import { haStyleDialog } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
-import type { ZWaveJSReinterviewNodeDialogParams } from "./show-dialog-zwave_js-reinterview-node";
@customElement("dialog-zwave_js-reinterview-node")
class DialogZWaveJSReinterviewNode extends LitElement {
diff --git a/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-remove-failed-node.ts b/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-remove-failed-node.ts
index e5b46004a1..335bf69c29 100644
--- a/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-remove-failed-node.ts
+++ b/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-remove-failed-node.ts
@@ -1,17 +1,20 @@
-import "@material/mwc-button/mwc-button";
-import { mdiCheckCircle, mdiCloseCircle, mdiRobotDead } from "@mdi/js";
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-spinner";
-import { createCloseHeading } from "../../../../../components/ha-dialog";
import type { ZWaveJSRemovedNode } from "../../../../../data/zwave_js";
-import { removeFailedZwaveNode } from "../../../../../data/zwave_js";
-import { haStyleDialog } from "../../../../../resources/styles";
import type { HomeAssistant } from "../../../../../types";
import type { ZWaveJSRemoveFailedNodeDialogParams } from "./show-dialog-zwave_js-remove-failed-node";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../../components/ha-spinner";
+import "@material/mwc-button/mwc-button";
+
+import { mdiCheckCircle, mdiCloseCircle, mdiRobotDead } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+import { createCloseHeading } from "../../../../../components/ha-dialog";
+import { removeFailedZwaveNode } from "../../../../../data/zwave_js";
+import { haStyleDialog } from "../../../../../resources/styles";
@customElement("dialog-zwave_js-remove-failed-node")
class DialogZWaveJSRemoveFailedNode extends LitElement {
diff --git a/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-remove-node.ts b/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-remove-node.ts
index 581b59ba0e..cb373b7c42 100644
--- a/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-remove-node.ts
+++ b/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-remove-node.ts
@@ -1,16 +1,19 @@
-import "@material/mwc-button/mwc-button";
-import { mdiCheckCircle, mdiCloseCircle } from "@mdi/js";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-spinner";
-import "../../../../../components/ha-alert";
-import { createCloseHeading } from "../../../../../components/ha-dialog";
-import { haStyleDialog } from "../../../../../resources/styles";
import type { HomeAssistant } from "../../../../../types";
import type { ZWaveJSRemoveNodeDialogParams } from "./show-dialog-zwave_js-remove-node";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../../components/ha-alert";
+import "../../../../../components/ha-spinner";
+import "@material/mwc-button/mwc-button";
+
+import { mdiCheckCircle, mdiCloseCircle } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+import { createCloseHeading } from "../../../../../components/ha-dialog";
+import { haStyleDialog } from "../../../../../resources/styles";
export interface ZWaveJSRemovedNode {
node_id: number;
diff --git a/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-update-firmware-node.ts b/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-update-firmware-node.ts
index 706d394b85..10c266bc25 100644
--- a/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-update-firmware-node.ts
+++ b/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-update-firmware-node.ts
@@ -1,17 +1,4 @@
-import "@material/mwc-button/mwc-button";
-import "@material/mwc-linear-progress/mwc-linear-progress";
-import { mdiCheckCircle, mdiCloseCircle, mdiFileUpload } from "@mdi/js";
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import { computeDeviceNameDisplay } from "../../../../../common/entity/compute_device_name";
-import { createCloseHeading } from "../../../../../components/ha-dialog";
-import "../../../../../components/ha-file-upload";
-import "../../../../../components/ha-form/ha-form";
import type { HaFormSchema } from "../../../../../components/ha-form/types";
-import "../../../../../components/ha-svg-icon";
import type { DeviceRegistryEntry } from "../../../../../data/device_registry";
import type {
ZWaveJSControllerFirmwareUpdateFinishedMessage,
@@ -20,6 +7,24 @@ import type {
ZWaveJSNodeStatus,
ZWaveJSNodeStatusUpdatedMessage,
} from "../../../../../data/zwave_js";
+import type { HomeAssistant } from "../../../../../types";
+import type { ZWaveJSUpdateFirmwareNodeDialogParams } from "./show-dialog-zwave_js-update-firmware-node";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../../components/ha-file-upload";
+import "../../../../../components/ha-form/ha-form";
+import "../../../../../components/ha-svg-icon";
+import "@material/mwc-button/mwc-button";
+import "@material/mwc-linear-progress/mwc-linear-progress";
+
+import { mdiCheckCircle, mdiCloseCircle, mdiFileUpload } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+import { computeDeviceNameDisplay } from "../../../../../common/entity/compute_device_name";
+import { createCloseHeading } from "../../../../../components/ha-dialog";
import {
abortZwaveNodeFirmwareUpdate,
ControllerFirmwareUpdateStatus,
@@ -36,8 +41,6 @@ import {
showConfirmationDialog,
} from "../../../../../dialogs/generic/show-dialog-box";
import { haStyleDialog } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
-import type { ZWaveJSUpdateFirmwareNodeDialogParams } from "./show-dialog-zwave_js-update-firmware-node";
const firmwareTargetSchema: HaFormSchema[] = [
{
diff --git a/src/panels/config/integrations/integration-panels/zwave_js/show-dialog-zwave_js-node-statistics.ts b/src/panels/config/integrations/integration-panels/zwave_js/show-dialog-zwave_js-node-statistics.ts
index 0b684d8f80..607c5275fe 100644
--- a/src/panels/config/integrations/integration-panels/zwave_js/show-dialog-zwave_js-node-statistics.ts
+++ b/src/panels/config/integrations/integration-panels/zwave_js/show-dialog-zwave_js-node-statistics.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../../../common/dom/fire_event";
import type { DeviceRegistryEntry } from "../../../../../data/device_registry";
+import { fireEvent } from "../../../../../common/dom/fire_event";
+
export interface ZWaveJSNodeStatisticsDialogParams {
device: DeviceRegistryEntry;
}
diff --git a/src/panels/config/integrations/integration-panels/zwave_js/show-dialog-zwave_js-rebuild-node-routes.ts b/src/panels/config/integrations/integration-panels/zwave_js/show-dialog-zwave_js-rebuild-node-routes.ts
index 724510c1b3..efede7bc8b 100644
--- a/src/panels/config/integrations/integration-panels/zwave_js/show-dialog-zwave_js-rebuild-node-routes.ts
+++ b/src/panels/config/integrations/integration-panels/zwave_js/show-dialog-zwave_js-rebuild-node-routes.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../../../common/dom/fire_event";
import type { DeviceRegistryEntry } from "../../../../../data/device_registry";
+import { fireEvent } from "../../../../../common/dom/fire_event";
+
export interface ZWaveJSRebuildNodeRoutesDialogParams {
device: DeviceRegistryEntry;
}
diff --git a/src/panels/config/integrations/integration-panels/zwave_js/show-dialog-zwave_js-update-firmware-node.ts b/src/panels/config/integrations/integration-panels/zwave_js/show-dialog-zwave_js-update-firmware-node.ts
index f02385b21f..9fb889c68f 100644
--- a/src/panels/config/integrations/integration-panels/zwave_js/show-dialog-zwave_js-update-firmware-node.ts
+++ b/src/panels/config/integrations/integration-panels/zwave_js/show-dialog-zwave_js-update-firmware-node.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../../../common/dom/fire_event";
import type { DeviceRegistryEntry } from "../../../../../data/device_registry";
+import { fireEvent } from "../../../../../common/dom/fire_event";
+
export interface ZWaveJSUpdateFirmwareNodeDialogParams {
device: DeviceRegistryEntry;
}
diff --git a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-add-node.ts b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-add-node.ts
index 6c7a36486b..001ed18915 100644
--- a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-add-node.ts
+++ b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-add-node.ts
@@ -1,7 +1,9 @@
/* eslint-disable lit/lifecycle-super */
-import { customElement } from "lit/decorators";
-import { navigate } from "../../../../../common/navigate";
import type { HomeAssistant } from "../../../../../types";
+
+import { customElement } from "lit/decorators";
+
+import { navigate } from "../../../../../common/navigate";
import { showZWaveJSAddNodeDialog } from "./show-dialog-zwave_js-add-node";
@customElement("zwave_js-add-node")
diff --git a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-config-dashboard.ts b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-config-dashboard.ts
index 27190a1622..7539d18d28 100644
--- a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-config-dashboard.ts
+++ b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-config-dashboard.ts
@@ -1,5 +1,27 @@
+import type { ConfigEntry } from "../../../../../data/config_entries";
+import type {
+ ZWaveJSClient,
+ ZWaveJSControllerStatisticsUpdatedMessage,
+ ZWaveJSNetwork,
+ ZwaveJSProvisioningEntry,
+} from "../../../../../data/zwave_js";
+import type { HomeAssistant, Route } from "../../../../../types";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../../../components/ha-button";
+import "../../../../../components/ha-card";
+import "../../../../../components/ha-expansion-panel";
+import "../../../../../components/ha-fab";
+import "../../../../../components/ha-icon-button";
+import "../../../../../components/ha-icon-next";
+import "../../../../../components/ha-progress-ring";
+import "../../../../../components/ha-spinner";
+import "../../../../../components/ha-svg-icon";
+import "../../../../../layouts/hass-tabs-subpage";
import "@material/mwc-list/mwc-list";
import "@material/mwc-list/mwc-list-item";
+
import {
mdiAlertCircle,
mdiCheckCircle,
@@ -7,31 +29,14 @@ import {
mdiPlus,
mdiRefresh,
} from "@mdi/js";
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { CSSResultGroup, TemplateResult } from "lit";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
-import "../../../../../components/ha-card";
-import "../../../../../components/ha-expansion-panel";
-import "../../../../../components/ha-fab";
-import "../../../../../components/ha-spinner";
-import "../../../../../components/ha-icon-button";
-import "../../../../../components/ha-button";
-import "../../../../../components/ha-icon-next";
-import "../../../../../components/ha-svg-icon";
-import "../../../../../components/ha-progress-ring";
-import type { ConfigEntry } from "../../../../../data/config_entries";
+
import {
ERROR_STATES,
getConfigEntries,
} from "../../../../../data/config_entries";
-import type {
- ZWaveJSClient,
- ZWaveJSControllerStatisticsUpdatedMessage,
- ZWaveJSNetwork,
- ZwaveJSProvisioningEntry,
-} from "../../../../../data/zwave_js";
import {
fetchZwaveDataCollectionStatus,
fetchZwaveNetworkStatus,
@@ -45,15 +50,13 @@ import {
} from "../../../../../data/zwave_js";
import { showOptionsFlowDialog } from "../../../../../dialogs/config-flow/show-dialog-options-flow";
import { showAlertDialog } from "../../../../../dialogs/generic/show-dialog-box";
-import "../../../../../layouts/hass-tabs-subpage";
import { SubscribeMixin } from "../../../../../mixins/subscribe-mixin";
import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../../../types";
+import { fileDownload } from "../../../../../util/file_download";
import { showZWaveJSAddNodeDialog } from "./show-dialog-zwave_js-add-node";
import { showZWaveJSRebuildNetworkRoutesDialog } from "./show-dialog-zwave_js-rebuild-network-routes";
import { showZWaveJSRemoveNodeDialog } from "./show-dialog-zwave_js-remove-node";
import { configTabs } from "./zwave_js-config-router";
-import { fileDownload } from "../../../../../util/file_download";
@customElement("zwave_js-config-dashboard")
class ZWaveJSConfigDashboard extends SubscribeMixin(LitElement) {
diff --git a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-config-router.ts b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-config-router.ts
index 28e1110e46..d520d88100 100644
--- a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-config-router.ts
+++ b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-config-router.ts
@@ -1,11 +1,13 @@
+import type { RouterOptions } from "../../../../../layouts/hass-router-page";
+import type { PageNavigation } from "../../../../../layouts/hass-tabs-subpage";
+import type { HomeAssistant } from "../../../../../types";
+
import { mdiServerNetwork, mdiMathLog } from "@mdi/js";
import { customElement, property } from "lit/decorators";
-import type { RouterOptions } from "../../../../../layouts/hass-router-page";
-import { HassRouterPage } from "../../../../../layouts/hass-router-page";
-import type { HomeAssistant } from "../../../../../types";
+
import { navigate } from "../../../../../common/navigate";
-import type { PageNavigation } from "../../../../../layouts/hass-tabs-subpage";
import { getConfigEntries } from "../../../../../data/config_entries";
+import { HassRouterPage } from "../../../../../layouts/hass-router-page";
export const configTabs: PageNavigation[] = [
{
diff --git a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-custom-param.ts b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-custom-param.ts
index 979edde420..23e5e61695 100644
--- a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-custom-param.ts
+++ b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-custom-param.ts
@@ -1,17 +1,20 @@
+import type { HomeAssistant } from "../../../../../types";
+
+import "../../../../../components/ha-button";
+import "../../../../../components/ha-list-item";
+import "../../../../../components/ha-select";
+import "../../../../../components/ha-spinner";
+import "../../../../../components/ha-textfield";
+
+import { mdiCloseCircle } from "@mdi/js";
import { LitElement, html, css, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
-import { mdiCloseCircle } from "@mdi/js";
-import "../../../../../components/ha-textfield";
-import "../../../../../components/ha-select";
-import "../../../../../components/ha-button";
-import "../../../../../components/ha-spinner";
-import "../../../../../components/ha-list-item";
-import type { HomeAssistant } from "../../../../../types";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
import {
getZwaveNodeRawConfigParameter,
setZwaveNodeRawConfigParameter,
} from "../../../../../data/zwave_js";
-import { fireEvent } from "../../../../../common/dom/fire_event";
@customElement("zwave_js-custom-param")
class ZWaveJSCustomParam extends LitElement {
diff --git a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-logs.ts b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-logs.ts
index 12d0183fd6..6010088ae5 100644
--- a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-logs.ts
+++ b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-logs.ts
@@ -1,22 +1,25 @@
-import "@material/mwc-list/mwc-list-item";
-import { mdiDownload } from "@mdi/js";
+import type { ZWaveJSLogConfig } from "../../../../../data/zwave_js";
+import type { HomeAssistant, Route } from "../../../../../types";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { CSSResultArray } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { capitalizeFirstLetter } from "../../../../../common/string/capitalize-first-letter";
+
import "../../../../../components/ha-icon-button";
import "../../../../../components/ha-select";
-import type { ZWaveJSLogConfig } from "../../../../../data/zwave_js";
+import "../../../../../layouts/hass-tabs-subpage";
+import "@material/mwc-list/mwc-list-item";
+
+import { mdiDownload } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { capitalizeFirstLetter } from "../../../../../common/string/capitalize-first-letter";
import {
fetchZWaveJSLogConfig,
setZWaveJSLogLevel,
subscribeZWaveJSLogs,
} from "../../../../../data/zwave_js";
-import "../../../../../layouts/hass-tabs-subpage";
import { SubscribeMixin } from "../../../../../mixins/subscribe-mixin";
import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../../../types";
import { fileDownload } from "../../../../../util/file_download";
import { configTabs } from "./zwave_js-config-router";
diff --git a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-node-config.ts b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-node-config.ts
index 25865a3fca..2cd06fefa5 100644
--- a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-node-config.ts
+++ b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-node-config.ts
@@ -1,27 +1,4 @@
-import "@material/mwc-button/mwc-button";
-import "@material/mwc-list/mwc-list-item";
-import {
- mdiCheckCircle,
- mdiCircle,
- mdiCloseCircle,
- mdiProgressClock,
-} from "@mdi/js";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import { computeDeviceNameDisplay } from "../../../../../common/entity/compute_device_name";
-import { groupBy } from "../../../../../common/util/group-by";
-import "../../../../../components/buttons/ha-progress-button";
import type { HaProgressButton } from "../../../../../components/buttons/ha-progress-button";
-import "../../../../../components/ha-alert";
-import "../../../../../components/ha-card";
-import "../../../../../components/ha-select";
-import "../../../../../components/ha-selector/ha-selector-boolean";
-import "../../../../../components/ha-settings-row";
-import "../../../../../components/ha-svg-icon";
-import "../../../../../components/ha-textfield";
import type {
ZWaveJSNodeCapabilities,
ZWaveJSNodeConfigParam,
@@ -29,6 +6,38 @@ import type {
ZWaveJSSetConfigParamResult,
ZwaveJSNodeMetadata,
} from "../../../../../data/zwave_js";
+import type { HomeAssistant, Route } from "../../../../../types";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../../../../components/buttons/ha-progress-button";
+import "../../../../../components/ha-alert";
+import "../../../../../components/ha-card";
+import "../../../../../components/ha-select";
+import "../../../../../components/ha-selector/ha-selector-boolean";
+import "../../../../../components/ha-settings-row";
+import "../../../../../components/ha-svg-icon";
+import "../../../../../components/ha-textfield";
+import "../../../../../layouts/hass-error-screen";
+import "../../../../../layouts/hass-loading-screen";
+import "../../../../../layouts/hass-tabs-subpage";
+import "../../../ha-config-section";
+import "./zwave_js-custom-param";
+import "@material/mwc-button/mwc-button";
+import "@material/mwc-list/mwc-list-item";
+
+import {
+ mdiCheckCircle,
+ mdiCircle,
+ mdiCloseCircle,
+ mdiProgressClock,
+} from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+import { computeDeviceNameDisplay } from "../../../../../common/entity/compute_device_name";
+import { groupBy } from "../../../../../common/util/group-by";
import {
fetchZwaveNodeCapabilities,
fetchZwaveNodeConfigParameters,
@@ -37,14 +46,8 @@ import {
setZwaveNodeConfigParameter,
} from "../../../../../data/zwave_js";
import { showConfirmationDialog } from "../../../../../dialogs/generic/show-dialog-box";
-import "../../../../../layouts/hass-error-screen";
-import "../../../../../layouts/hass-loading-screen";
-import "../../../../../layouts/hass-tabs-subpage";
import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../../../types";
-import "../../../ha-config-section";
import { configTabs } from "./zwave_js-config-router";
-import "./zwave_js-custom-param";
const icons = {
accepted: mdiCheckCircle,
diff --git a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-node-installer.ts b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-node-installer.ts
index 3d8b84bb56..ff28c4998f 100644
--- a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-node-installer.ts
+++ b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-node-installer.ts
@@ -1,29 +1,32 @@
-import "@material/mwc-button/mwc-button";
-import "@material/mwc-list/mwc-list-item";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { dynamicElement } from "../../../../../common/dom/dynamic-element-directive";
-import { computeDeviceNameDisplay } from "../../../../../common/entity/compute_device_name";
-import "../../../../../components/ha-card";
import type {
ZWaveJSNodeCapabilities,
ZwaveJSNodeMetadata,
} from "../../../../../data/zwave_js";
-import {
- fetchZwaveNodeCapabilities,
- fetchZwaveNodeMetadata,
-} from "../../../../../data/zwave_js";
+import type { HomeAssistant, Route } from "../../../../../types";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../../../../components/ha-card";
import "../../../../../layouts/hass-error-screen";
import "../../../../../layouts/hass-loading-screen";
import "../../../../../layouts/hass-subpage";
-import { haStyle } from "../../../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../../../types";
import "../../../ha-config-section";
import "./capability-controls/zwave_js-capability-control-color-switch";
import "./capability-controls/zwave_js-capability-control-door-lock";
import "./capability-controls/zwave_js-capability-control-multilevel-switch";
import "./capability-controls/zwave_js-capability-control-thermostat-setback";
+import "@material/mwc-button/mwc-button";
+import "@material/mwc-list/mwc-list-item";
+
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { dynamicElement } from "../../../../../common/dom/dynamic-element-directive";
+import { computeDeviceNameDisplay } from "../../../../../common/entity/compute_device_name";
+import {
+ fetchZwaveNodeCapabilities,
+ fetchZwaveNodeMetadata,
+} from "../../../../../data/zwave_js";
+import { haStyle } from "../../../../../resources/styles";
const CAPABILITY_CONTROLS = {
38: "multilevel_switch",
diff --git a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-provisioned.ts b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-provisioned.ts
index 38a26852bd..775abb7a7f 100644
--- a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-provisioned.ts
+++ b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-provisioned.ts
@@ -1,18 +1,21 @@
+import type { LocalizeFunc } from "../../../../../common/translations/localize";
+import type { DataTableColumnContainer } from "../../../../../components/data-table/ha-data-table";
+import type { ZwaveJSProvisioningEntry } from "../../../../../data/zwave_js";
+import type { HomeAssistant, Route } from "../../../../../types";
+
+import "../../../../../layouts/hass-tabs-subpage-data-table";
+
import { mdiCheckCircle, mdiCloseCircleOutline, mdiDelete } from "@mdi/js";
import { html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
-import type { DataTableColumnContainer } from "../../../../../components/data-table/ha-data-table";
-import type { ZwaveJSProvisioningEntry } from "../../../../../data/zwave_js";
+
import {
fetchZwaveProvisioningEntries,
SecurityClass,
unprovisionZwaveSmartStartNode,
} from "../../../../../data/zwave_js";
-import type { LocalizeFunc } from "../../../../../common/translations/localize";
import { showConfirmationDialog } from "../../../../../dialogs/generic/show-dialog-box";
-import "../../../../../layouts/hass-tabs-subpage-data-table";
-import type { HomeAssistant, Route } from "../../../../../types";
import { configTabs } from "./zwave_js-config-router";
@customElement("zwave_js-provisioned")
diff --git a/src/panels/config/integrations/show-add-integration-dialog.ts b/src/panels/config/integrations/show-add-integration-dialog.ts
index 83ee10094f..697fa03e7f 100644
--- a/src/panels/config/integrations/show-add-integration-dialog.ts
+++ b/src/panels/config/integrations/show-add-integration-dialog.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type { IntegrationManifest } from "../../../data/integration";
+import { fireEvent } from "../../../common/dom/fire_event";
+
export interface AddIntegrationDialogParams {
brand?: string;
domain?: string;
diff --git a/src/panels/config/labels/dialog-label-detail.ts b/src/panels/config/labels/dialog-label-detail.ts
index 8832808501..eec1e27dd0 100644
--- a/src/panels/config/labels/dialog-label-detail.ts
+++ b/src/panels/config/labels/dialog-label-detail.ts
@@ -1,24 +1,27 @@
-import "@material/mwc-button";
-import type { CSSResultGroup } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../common/dom/fire_event";
-import "../../../components/ha-alert";
-import { createCloseHeading } from "../../../components/ha-dialog";
-import "../../../components/ha-formfield";
-import "../../../components/ha-switch";
-import "../../../components/ha-textfield";
-import "../../../components/ha-textarea";
-import "../../../components/ha-icon-picker";
-import "../../../components/ha-color-picker";
-import type { HassDialog } from "../../../dialogs/make-dialog-manager";
-import { haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
-import type { LabelDetailDialogParams } from "./show-dialog-label-detail";
import type {
LabelRegistryEntry,
LabelRegistryEntryMutableParams,
} from "../../../data/label_registry";
+import type { HassDialog } from "../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../types";
+import type { LabelDetailDialogParams } from "./show-dialog-label-detail";
+import type { CSSResultGroup } from "lit";
+
+import "../../../components/ha-alert";
+import "../../../components/ha-color-picker";
+import "../../../components/ha-formfield";
+import "../../../components/ha-icon-picker";
+import "../../../components/ha-switch";
+import "../../../components/ha-textarea";
+import "../../../components/ha-textfield";
+import "@material/mwc-button";
+
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { createCloseHeading } from "../../../components/ha-dialog";
+import { haStyleDialog } from "../../../resources/styles";
@customElement("dialog-label-detail")
class DialogLabelDetail
diff --git a/src/panels/config/labels/ha-config-labels.ts b/src/panels/config/labels/ha-config-labels.ts
index 77ed20ff72..5676a6e323 100644
--- a/src/panels/config/labels/ha-config-labels.ts
+++ b/src/panels/config/labels/ha-config-labels.ts
@@ -1,3 +1,22 @@
+import type { LocalizeFunc } from "../../../common/translations/localize";
+import type {
+ DataTableColumnContainer,
+ RowClickedEvent,
+ SortingChangedEvent,
+} from "../../../components/data-table/ha-data-table";
+import type {
+ LabelRegistryEntry,
+ LabelRegistryEntryMutableParams,
+} from "../../../data/label_registry";
+import type { HomeAssistant, Route } from "../../../types";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-fab";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-icon-overflow-menu";
+import "../../../components/ha-relative-time";
+import "../../../layouts/hass-tabs-subpage-data-table";
+
import {
mdiDelete,
mdiDevices,
@@ -6,28 +25,14 @@ import {
mdiRobot,
mdiShape,
} from "@mdi/js";
-import type { PropertyValues } from "lit";
import { LitElement, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { computeCssColor } from "../../../common/color/compute-color";
import { formatShortDateTime } from "../../../common/datetime/format_date_time";
import { storage } from "../../../common/decorators/storage";
import { navigate } from "../../../common/navigate";
-import type { LocalizeFunc } from "../../../common/translations/localize";
-import type {
- DataTableColumnContainer,
- RowClickedEvent,
- SortingChangedEvent,
-} from "../../../components/data-table/ha-data-table";
-import "../../../components/ha-fab";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-icon-overflow-menu";
-import "../../../components/ha-relative-time";
-import type {
- LabelRegistryEntry,
- LabelRegistryEntryMutableParams,
-} from "../../../data/label_registry";
import {
createLabelRegistryEntry,
deleteLabelRegistryEntry,
@@ -38,8 +43,6 @@ import {
showAlertDialog,
showConfirmationDialog,
} from "../../../dialogs/generic/show-dialog-box";
-import "../../../layouts/hass-tabs-subpage-data-table";
-import type { HomeAssistant, Route } from "../../../types";
import { configSections } from "../ha-panel-config";
import { showLabelDetailDialog } from "./show-dialog-label-detail";
diff --git a/src/panels/config/labels/show-dialog-label-detail.ts b/src/panels/config/labels/show-dialog-label-detail.ts
index a16f8089f4..4d380f3147 100644
--- a/src/panels/config/labels/show-dialog-label-detail.ts
+++ b/src/panels/config/labels/show-dialog-label-detail.ts
@@ -1,9 +1,10 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type {
LabelRegistryEntry,
LabelRegistryEntryMutableParams,
} from "../../../data/label_registry";
+import { fireEvent } from "../../../common/dom/fire_event";
+
export interface LabelDetailDialogParams {
entry?: LabelRegistryEntry;
suggestedName?: string;
diff --git a/src/panels/config/logs/dialog-download-logs.ts b/src/panels/config/logs/dialog-download-logs.ts
index 801ef1db22..42ea35c453 100644
--- a/src/panels/config/logs/dialog-download-logs.ts
+++ b/src/panels/config/logs/dialog-download-logs.ts
@@ -1,21 +1,24 @@
-import { mdiClose } from "@mdi/js";
+import type { HaMdDialog } from "../../../components/ha-md-dialog";
+import type { HomeAssistant } from "../../../types";
+import type { DownloadLogsDialogParams } from "./show-dialog-download-logs";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { fireEvent } from "../../../common/dom/fire_event";
+
import "../../../components/ha-button";
import "../../../components/ha-dialog-header";
import "../../../components/ha-icon-button";
import "../../../components/ha-md-dialog";
-import type { HaMdDialog } from "../../../components/ha-md-dialog";
import "../../../components/ha-md-select";
import "../../../components/ha-md-select-option";
+
+import { mdiClose } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
import { getSignedPath } from "../../../data/auth";
import { getHassioLogDownloadLinesUrl } from "../../../data/hassio/supervisor";
import { haStyle, haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { fileDownload } from "../../../util/file_download";
-import type { DownloadLogsDialogParams } from "./show-dialog-download-logs";
const DEFAULT_LINE_COUNT = 500;
diff --git a/src/panels/config/logs/dialog-system-log-detail.ts b/src/panels/config/logs/dialog-system-log-detail.ts
index 243216304c..a7eaa04f0c 100644
--- a/src/panels/config/logs/dialog-system-log-detail.ts
+++ b/src/panels/config/logs/dialog-system-log-detail.ts
@@ -1,15 +1,20 @@
-import { mdiClose, mdiContentCopy } from "@mdi/js";
+import type { IntegrationManifest } from "../../../data/integration";
+import type { HomeAssistant } from "../../../types";
+import type { SystemLogDetailDialogParams } from "./show-dialog-system-log-detail";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { property, state } from "lit/decorators";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { copyToClipboard } from "../../../common/util/copy-clipboard";
+
import "../../../components/ha-alert";
import "../../../components/ha-dialog";
import "../../../components/ha-dialog-header";
import "../../../components/ha-icon-button";
import "../../../components/ha-svg-icon";
-import type { IntegrationManifest } from "../../../data/integration";
+
+import { mdiClose, mdiContentCopy } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { copyToClipboard } from "../../../common/util/copy-clipboard";
import {
domainToName,
fetchIntegrationManifest,
@@ -20,10 +25,8 @@ import {
isCustomIntegrationError,
} from "../../../data/system_log";
import { haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { documentationUrl } from "../../../util/documentation-url";
import { showToast } from "../../../util/toast";
-import type { SystemLogDetailDialogParams } from "./show-dialog-system-log-detail";
import { formatSystemLogTime } from "./util";
class DialogSystemLogDetail extends LitElement {
diff --git a/src/panels/config/logs/error-log-card.ts b/src/panels/config/logs/error-log-card.ts
index 395eed7a7e..93a3fd6b28 100644
--- a/src/panels/config/logs/error-log-card.ts
+++ b/src/panels/config/logs/error-log-card.ts
@@ -1,6 +1,27 @@
-import "@material/mwc-list/mwc-list-item";
+import type { LocalizeFunc } from "../../../common/translations/localize";
+import type { HaAnsiToHtml } from "../../../components/ha-ansi-to-html";
+import type { HaMenu } from "../../../components/ha-menu";
+import type { ConnectionStatus } from "../../../data/connection-status";
+import type { HomeAssistant } from "../../../types";
import type { ActionDetail } from "@material/mwc-list";
+import "../../../components/chips/ha-assist-chip";
+import "../../../components/ha-alert";
+import "../../../components/ha-ansi-to-html";
+import "../../../components/ha-button";
+import "../../../components/ha-button-menu";
+import "../../../components/ha-card";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-list-item";
+import "../../../components/ha-md-divider";
+import "../../../components/ha-md-menu-item";
+import "../../../components/ha-menu";
+import "../../../components/ha-spinner";
+import "../../../components/ha-svg-icon";
+import "@material/mwc-list/mwc-list-item";
+
+// eslint-disable-next-line import/extensions
+import { IntersectionController } from "@lit-labs/observers/intersection-controller.js";
import {
mdiArrowCollapseDown,
mdiDotsVertical,
@@ -22,28 +43,14 @@ import {
type TemplateResult,
nothing,
} from "lit";
+import { customElement, property, state, query } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
-// eslint-disable-next-line import/extensions
-import { IntersectionController } from "@lit-labs/observers/intersection-controller.js";
-import { customElement, property, state, query } from "lit/decorators";
-import "../../../components/ha-alert";
-import "../../../components/ha-ansi-to-html";
-import type { HaAnsiToHtml } from "../../../components/ha-ansi-to-html";
-import "../../../components/ha-card";
-import "../../../components/ha-button";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-svg-icon";
-import "../../../components/ha-spinner";
-import "../../../components/chips/ha-assist-chip";
-import "../../../components/ha-menu";
-import "../../../components/ha-md-menu-item";
-import "../../../components/ha-md-divider";
-import "../../../components/ha-button-menu";
-import "../../../components/ha-list-item";
-
+import { isComponentLoaded } from "../../../common/config/is_component_loaded";
+import { atLeastVersion } from "../../../common/config/version";
+import { fireEvent, type HASSDomEvent } from "../../../common/dom/fire_event";
+import { debounce } from "../../../common/util/debounce";
import { getSignedPath } from "../../../data/auth";
-
import { fetchErrorLog, getErrorLogDownloadUrl } from "../../../data/error_log";
import { extractApiErrorMessage } from "../../../data/hassio/common";
import {
@@ -55,19 +62,11 @@ import {
getHassioLogDownloadLinesUrl,
getHassioLogDownloadUrl,
} from "../../../data/hassio/supervisor";
-import type { HomeAssistant } from "../../../types";
import {
downloadFileSupported,
fileDownload,
} from "../../../util/file_download";
-import { fireEvent, type HASSDomEvent } from "../../../common/dom/fire_event";
-import type { ConnectionStatus } from "../../../data/connection-status";
-import { atLeastVersion } from "../../../common/config/version";
-import { isComponentLoaded } from "../../../common/config/is_component_loaded";
-import { debounce } from "../../../common/util/debounce";
import { showDownloadLogsDialog } from "./show-dialog-download-logs";
-import type { HaMenu } from "../../../components/ha-menu";
-import type { LocalizeFunc } from "../../../common/translations/localize";
const NUMBER_OF_LINES = 100;
diff --git a/src/panels/config/logs/ha-config-logs.ts b/src/panels/config/logs/ha-config-logs.ts
index 4492fa07b5..d6169b110e 100644
--- a/src/panels/config/logs/ha-config-logs.ts
+++ b/src/panels/config/logs/ha-config-logs.ts
@@ -1,22 +1,25 @@
-import { mdiChevronDown } from "@mdi/js";
+import type { LogProvider } from "../../../data/error_log";
+import type { HomeAssistant, Route } from "../../../types";
+import type { SystemLogCard } from "./system-log-card";
import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { isComponentLoaded } from "../../../common/config/is_component_loaded";
-import { navigate } from "../../../common/navigate";
-import { extractSearchParam } from "../../../common/url/search-params";
+
import "../../../components/ha-button";
import "../../../components/ha-button-menu";
import "../../../components/search-input";
-import type { LogProvider } from "../../../data/error_log";
-import { fetchHassioAddonsInfo } from "../../../data/hassio/addon";
-import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
import "../../../layouts/hass-subpage";
-import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../types";
import "./error-log-card";
import "./system-log-card";
-import type { SystemLogCard } from "./system-log-card";
+
+import { mdiChevronDown } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { isComponentLoaded } from "../../../common/config/is_component_loaded";
+import { navigate } from "../../../common/navigate";
+import { extractSearchParam } from "../../../common/url/search-params";
+import { fetchHassioAddonsInfo } from "../../../data/hassio/addon";
+import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
+import { haStyle } from "../../../resources/styles";
const logProviders: LogProvider[] = [
{
diff --git a/src/panels/config/logs/show-dialog-system-log-detail.ts b/src/panels/config/logs/show-dialog-system-log-detail.ts
index 95a5e24796..00218ff612 100644
--- a/src/panels/config/logs/show-dialog-system-log-detail.ts
+++ b/src/panels/config/logs/show-dialog-system-log-detail.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type { LoggedError } from "../../../data/system_log";
+import { fireEvent } from "../../../common/dom/fire_event";
+
declare global {
// for fire event
interface HASSDomEvents {
diff --git a/src/panels/config/logs/system-log-card.ts b/src/panels/config/logs/system-log-card.ts
index 23841bdc20..2782790444 100644
--- a/src/panels/config/logs/system-log-card.ts
+++ b/src/panels/config/logs/system-log-card.ts
@@ -1,27 +1,30 @@
-import "@material/mwc-list/mwc-list";
-import { mdiDotsVertical, mdiDownload, mdiRefresh, mdiText } from "@mdi/js";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../common/dom/fire_event";
import type { LocalizeFunc } from "../../../common/translations/localize";
+import type { LoggedError } from "../../../data/system_log";
+import type { HomeAssistant } from "../../../types";
+
import "../../../components/buttons/ha-call-service-button";
import "../../../components/buttons/ha-progress-button";
import "../../../components/ha-button-menu";
import "../../../components/ha-card";
-import "../../../components/ha-spinner";
import "../../../components/ha-icon-button";
import "../../../components/ha-list-item";
+import "../../../components/ha-spinner";
+import "@material/mwc-list/mwc-list";
+
+import { mdiDotsVertical, mdiDownload, mdiRefresh, mdiText } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../common/dom/fire_event";
import { getSignedPath } from "../../../data/auth";
import { getErrorLogDownloadUrl } from "../../../data/error_log";
import { domainToName } from "../../../data/integration";
-import type { LoggedError } from "../../../data/system_log";
import {
fetchSystemLog,
getLoggedErrorIntegration,
isCustomIntegrationError,
} from "../../../data/system_log";
-import type { HomeAssistant } from "../../../types";
import { fileDownload } from "../../../util/file_download";
import { showSystemLogDetailDialog } from "./show-dialog-system-log-detail";
import { formatSystemLogTime } from "./util";
diff --git a/src/panels/config/logs/util.ts b/src/panels/config/logs/util.ts
index f32f4ca703..dd889a24e6 100644
--- a/src/panels/config/logs/util.ts
+++ b/src/panels/config/logs/util.ts
@@ -1,7 +1,8 @@
+import type { FrontendLocaleData } from "../../../data/translation";
import type { HassConfig } from "home-assistant-js-websocket";
+
import { formatDateTimeWithSeconds } from "../../../common/datetime/format_date_time";
import { formatTimeWithSeconds } from "../../../common/datetime/format_time";
-import type { FrontendLocaleData } from "../../../data/translation";
export const formatSystemLogTime = (
date,
diff --git a/src/panels/config/lovelace/dashboards/dialog-lovelace-dashboard-configure-strategy.ts b/src/panels/config/lovelace/dashboards/dialog-lovelace-dashboard-configure-strategy.ts
index 76ff671264..0b6d1cab1b 100644
--- a/src/panels/config/lovelace/dashboards/dialog-lovelace-dashboard-configure-strategy.ts
+++ b/src/panels/config/lovelace/dashboards/dialog-lovelace-dashboard-configure-strategy.ts
@@ -1,15 +1,18 @@
+import type { LovelaceStrategyConfig } from "../../../../data/lovelace/config/strategy";
+import type { HomeAssistant } from "../../../../types";
+import type { LovelaceDashboardConfigureStrategyDialogParams } from "./show-dialog-lovelace-dashboard-configure-strategy";
import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-button";
+import "../../../../components/ha-form/ha-form";
+import "../../../lovelace/editor/dashboard-strategy-editor/hui-dashboard-strategy-element-editor";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-button";
import { createCloseHeading } from "../../../../components/ha-dialog";
-import "../../../../components/ha-form/ha-form";
-import type { LovelaceStrategyConfig } from "../../../../data/lovelace/config/strategy";
import { haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
-import "../../../lovelace/editor/dashboard-strategy-editor/hui-dashboard-strategy-element-editor";
-import type { LovelaceDashboardConfigureStrategyDialogParams } from "./show-dialog-lovelace-dashboard-configure-strategy";
@customElement("dialog-lovelace-dashboard-configure-strategy")
export class DialogLovelaceDashboardDetail extends LitElement {
diff --git a/src/panels/config/lovelace/dashboards/dialog-lovelace-dashboard-detail.ts b/src/panels/config/lovelace/dashboards/dialog-lovelace-dashboard-detail.ts
index bceec4d6a8..09e4550116 100644
--- a/src/panels/config/lovelace/dashboards/dialog-lovelace-dashboard-detail.ts
+++ b/src/panels/config/lovelace/dashboards/dialog-lovelace-dashboard-detail.ts
@@ -1,12 +1,3 @@
-import "@material/mwc-button/mwc-button";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { slugify } from "../../../../common/string/slugify";
-import { createCloseHeading } from "../../../../components/ha-dialog";
-import "../../../../components/ha-form/ha-form";
import type { SchemaUnion } from "../../../../components/ha-form/types";
import type { CoreFrontendUserData } from "../../../../data/frontend";
import type {
@@ -14,10 +5,22 @@ import type {
LovelaceDashboardCreateParams,
LovelaceDashboardMutableParams,
} from "../../../../data/lovelace/dashboard";
-import { DEFAULT_PANEL, setDefaultPanel } from "../../../../data/panel";
-import { haStyleDialog } from "../../../../resources/styles";
import type { HomeAssistant } from "../../../../types";
import type { LovelaceDashboardDetailsDialogParams } from "./show-dialog-lovelace-dashboard-detail";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-form/ha-form";
+import "@material/mwc-button/mwc-button";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { slugify } from "../../../../common/string/slugify";
+import { createCloseHeading } from "../../../../components/ha-dialog";
+import { DEFAULT_PANEL, setDefaultPanel } from "../../../../data/panel";
+import { haStyleDialog } from "../../../../resources/styles";
@customElement("dialog-lovelace-dashboard-detail")
export class DialogLovelaceDashboardDetail extends LitElement {
diff --git a/src/panels/config/lovelace/dashboards/ha-config-lovelace-dashboards.ts b/src/panels/config/lovelace/dashboards/ha-config-lovelace-dashboards.ts
index 033668a24e..b251c26af8 100644
--- a/src/panels/config/lovelace/dashboards/ha-config-lovelace-dashboards.ts
+++ b/src/panels/config/lovelace/dashboards/ha-config-lovelace-dashboards.ts
@@ -1,3 +1,27 @@
+import type { LocalizeFunc } from "../../../../common/translations/localize";
+import type {
+ DataTableColumnContainer,
+ RowClickedEvent,
+ SortingChangedEvent,
+} from "../../../../components/data-table/ha-data-table";
+import type { LovelacePanelConfig } from "../../../../data/lovelace";
+import type { LovelaceRawConfig } from "../../../../data/lovelace/config/types";
+import type {
+ LovelaceDashboard,
+ LovelaceDashboardCreateParams,
+} from "../../../../data/lovelace/dashboard";
+import type { HomeAssistant, Route } from "../../../../types";
+import type { PropertyValues } from "lit";
+
+import "../../../../components/ha-clickable-list-item";
+import "../../../../components/ha-fab";
+import "../../../../components/ha-icon";
+import "../../../../components/ha-icon-button";
+import "../../../../components/ha-svg-icon";
+import "../../../../components/ha-tooltip";
+import "../../../../layouts/hass-loading-screen";
+import "../../../../layouts/hass-tabs-subpage-data-table";
+
import {
mdiCheck,
mdiCheckCircleOutline,
@@ -5,35 +29,19 @@ import {
mdiOpenInNew,
mdiPlus,
} from "@mdi/js";
-import type { PropertyValues } from "lit";
import { LitElement, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
import memoize from "memoize-one";
+
import { isComponentLoaded } from "../../../../common/config/is_component_loaded";
+import { storage } from "../../../../common/decorators/storage";
import { navigate } from "../../../../common/navigate";
import { stringCompare } from "../../../../common/string/compare";
-import type {
- DataTableColumnContainer,
- RowClickedEvent,
- SortingChangedEvent,
-} from "../../../../components/data-table/ha-data-table";
-import "../../../../components/ha-clickable-list-item";
-import "../../../../components/ha-fab";
-import "../../../../components/ha-icon";
-import "../../../../components/ha-icon-button";
-import "../../../../components/ha-svg-icon";
-import "../../../../components/ha-tooltip";
-import type { LovelacePanelConfig } from "../../../../data/lovelace";
-import type { LovelaceRawConfig } from "../../../../data/lovelace/config/types";
import {
isStrategyDashboard,
saveConfig,
} from "../../../../data/lovelace/config/types";
-import type {
- LovelaceDashboard,
- LovelaceDashboardCreateParams,
-} from "../../../../data/lovelace/dashboard";
import {
createDashboard,
deleteDashboard,
@@ -41,16 +49,11 @@ import {
updateDashboard,
} from "../../../../data/lovelace/dashboard";
import { showConfirmationDialog } from "../../../../dialogs/generic/show-dialog-box";
-import "../../../../layouts/hass-loading-screen";
-import "../../../../layouts/hass-tabs-subpage-data-table";
-import type { HomeAssistant, Route } from "../../../../types";
-import type { LocalizeFunc } from "../../../../common/translations/localize";
import { getLovelaceStrategy } from "../../../lovelace/strategies/get-strategy";
import { showNewDashboardDialog } from "../../dashboard/show-dialog-new-dashboard";
import { lovelaceTabs } from "../ha-config-lovelace";
import { showDashboardConfigureStrategyDialog } from "./show-dialog-lovelace-dashboard-configure-strategy";
import { showDashboardDetailDialog } from "./show-dialog-lovelace-dashboard-detail";
-import { storage } from "../../../../common/decorators/storage";
type DataTableItem = Pick<
LovelaceDashboard,
diff --git a/src/panels/config/lovelace/dashboards/show-dialog-lovelace-dashboard-configure-strategy.ts b/src/panels/config/lovelace/dashboards/show-dialog-lovelace-dashboard-configure-strategy.ts
index 132a13d381..851af78157 100644
--- a/src/panels/config/lovelace/dashboards/show-dialog-lovelace-dashboard-configure-strategy.ts
+++ b/src/panels/config/lovelace/dashboards/show-dialog-lovelace-dashboard-configure-strategy.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { LovelaceDashboardStrategyConfig } from "../../../../data/lovelace/config/types";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export interface LovelaceDashboardConfigureStrategyDialogParams {
config: LovelaceDashboardStrategyConfig;
saveConfig: (values: LovelaceDashboardStrategyConfig) => Promise;
diff --git a/src/panels/config/lovelace/dashboards/show-dialog-lovelace-dashboard-detail.ts b/src/panels/config/lovelace/dashboards/show-dialog-lovelace-dashboard-detail.ts
index 3f9e6c8fdf..ad64df327b 100644
--- a/src/panels/config/lovelace/dashboards/show-dialog-lovelace-dashboard-detail.ts
+++ b/src/panels/config/lovelace/dashboards/show-dialog-lovelace-dashboard-detail.ts
@@ -1,10 +1,11 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type {
LovelaceDashboard,
LovelaceDashboardCreateParams,
LovelaceDashboardMutableParams,
} from "../../../../data/lovelace/dashboard";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export interface LovelaceDashboardDetailsDialogParams {
dashboard?: LovelaceDashboard;
urlPath?: string;
diff --git a/src/panels/config/lovelace/ha-config-lovelace.ts b/src/panels/config/lovelace/ha-config-lovelace.ts
index d5da7ea44d..d94df6959e 100644
--- a/src/panels/config/lovelace/ha-config-lovelace.ts
+++ b/src/panels/config/lovelace/ha-config-lovelace.ts
@@ -1,8 +1,10 @@
+import type { RouterOptions } from "../../../layouts/hass-router-page";
+import type { HomeAssistant } from "../../../types";
+
import { mdiViewDashboard } from "@mdi/js";
import { customElement, property } from "lit/decorators";
-import type { RouterOptions } from "../../../layouts/hass-router-page";
+
import { HassRouterPage } from "../../../layouts/hass-router-page";
-import type { HomeAssistant } from "../../../types";
export const lovelaceTabs = [
{
diff --git a/src/panels/config/lovelace/resources/dialog-lovelace-resource-detail.ts b/src/panels/config/lovelace/resources/dialog-lovelace-resource-detail.ts
index 0dee14c356..1babe3cfdf 100644
--- a/src/panels/config/lovelace/resources/dialog-lovelace-resource-detail.ts
+++ b/src/panels/config/lovelace/resources/dialog-lovelace-resource-detail.ts
@@ -1,19 +1,22 @@
-import "@material/mwc-button/mwc-button";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state, query } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { mdiClose } from "@mdi/js";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-md-dialog";
-import type { HaMdDialog } from "../../../../components/ha-md-dialog";
-import "../../../../components/ha-dialog-header";
-import "../../../../components/ha-form/ha-form";
-import "../../../../components/ha-icon-button";
import type { SchemaUnion } from "../../../../components/ha-form/types";
+import type { HaMdDialog } from "../../../../components/ha-md-dialog";
import type { LovelaceResourcesMutableParams } from "../../../../data/lovelace/resource";
import type { HomeAssistant } from "../../../../types";
import type { LovelaceResourceDetailsDialogParams } from "./show-dialog-lovelace-resource-detail";
+import "../../../../components/ha-dialog-header";
+import "../../../../components/ha-form/ha-form";
+import "../../../../components/ha-icon-button";
+import "../../../../components/ha-md-dialog";
+import "@material/mwc-button/mwc-button";
+
+import { mdiClose } from "@mdi/js";
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state, query } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+
const detectResourceType = (url?: string) => {
if (!url) {
return undefined;
diff --git a/src/panels/config/lovelace/resources/ha-config-lovelace-resources.ts b/src/panels/config/lovelace/resources/ha-config-lovelace-resources.ts
index 73a7847f91..44836fa36a 100644
--- a/src/panels/config/lovelace/resources/ha-config-lovelace-resources.ts
+++ b/src/panels/config/lovelace/resources/ha-config-lovelace-resources.ts
@@ -1,19 +1,27 @@
-import { mdiDelete, mdiPlus } from "@mdi/js";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoize from "memoize-one";
-import { stringCompare } from "../../../../common/string/compare";
import type { LocalizeFunc } from "../../../../common/translations/localize";
import type {
DataTableColumnContainer,
RowClickedEvent,
SortingChangedEvent,
} from "../../../../components/data-table/ha-data-table";
+import type { LovelaceResource } from "../../../../data/lovelace/resource";
+import type { HomeAssistant, Route } from "../../../../types";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
import "../../../../components/ha-card";
import "../../../../components/ha-fab";
import "../../../../components/ha-svg-icon";
-import type { LovelaceResource } from "../../../../data/lovelace/resource";
+import "../../../../layouts/hass-loading-screen";
+import "../../../../layouts/hass-subpage";
+import "../../../../layouts/hass-tabs-subpage-data-table";
+
+import { mdiDelete, mdiPlus } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoize from "memoize-one";
+
+import { storage } from "../../../../common/decorators/storage";
+import { stringCompare } from "../../../../common/string/compare";
import {
createResource,
deleteResource,
@@ -24,15 +32,10 @@ import {
showAlertDialog,
showConfirmationDialog,
} from "../../../../dialogs/generic/show-dialog-box";
-import "../../../../layouts/hass-loading-screen";
-import "../../../../layouts/hass-subpage";
-import "../../../../layouts/hass-tabs-subpage-data-table";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../../types";
import { loadLovelaceResources } from "../../../lovelace/common/load-resources";
import { lovelaceResourcesTabs } from "../ha-config-lovelace";
import { showResourceDetailDialog } from "./show-dialog-lovelace-resource-detail";
-import { storage } from "../../../../common/decorators/storage";
@customElement("ha-config-lovelace-resources")
export class HaConfigLovelaceRescources extends LitElement {
diff --git a/src/panels/config/lovelace/resources/show-dialog-lovelace-resource-detail.ts b/src/panels/config/lovelace/resources/show-dialog-lovelace-resource-detail.ts
index d71963e543..1b6f66c796 100644
--- a/src/panels/config/lovelace/resources/show-dialog-lovelace-resource-detail.ts
+++ b/src/panels/config/lovelace/resources/show-dialog-lovelace-resource-detail.ts
@@ -1,9 +1,10 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type {
LovelaceResource,
LovelaceResourcesMutableParams,
} from "../../../../data/lovelace/resource";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export interface LovelaceResourceDetailsDialogParams {
resource?: LovelaceResource;
createResource: (values: LovelaceResourcesMutableParams) => Promise;
diff --git a/src/panels/config/network/ha-config-network.ts b/src/panels/config/network/ha-config-network.ts
index cf9d3e1f36..b11dbf133e 100644
--- a/src/panels/config/network/ha-config-network.ts
+++ b/src/panels/config/network/ha-config-network.ts
@@ -1,18 +1,21 @@
-import "@material/mwc-button/mwc-button";
+import type { NetworkConfig } from "../../../data/network";
+import type { HomeAssistant } from "../../../types";
import type { CSSResultGroup, PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { isComponentLoaded } from "../../../common/config/is_component_loaded";
+
import "../../../components/ha-alert";
import "../../../components/ha-card";
import "../../../components/ha-checkbox";
import "../../../components/ha-network";
import "../../../components/ha-settings-row";
+import "@material/mwc-button/mwc-button";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import { fetchNetworkInfo } from "../../../data/hassio/network";
-import type { NetworkConfig } from "../../../data/network";
import { getNetworkConfig, setNetworkConfig } from "../../../data/network";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
@customElement("ha-config-network")
class ConfigNetwork extends LitElement {
diff --git a/src/panels/config/network/ha-config-section-network.ts b/src/panels/config/network/ha-config-section-network.ts
index 1a18aca3b6..d99fdb121c 100644
--- a/src/panels/config/network/ha-config-section-network.ts
+++ b/src/panels/config/network/ha-config-section-network.ts
@@ -1,14 +1,17 @@
-import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { isComponentLoaded } from "../../../common/config/is_component_loaded";
-import "../../../layouts/hass-subpage";
import type { HomeAssistant, Route } from "../../../types";
+import type { TemplateResult } from "lit";
+
+import "../../../layouts/hass-subpage";
import "./ha-config-network";
import "./ha-config-url-form";
import "./supervisor-hostname";
import "./supervisor-network";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { isComponentLoaded } from "../../../common/config/is_component_loaded";
+
@customElement("ha-config-section-network")
class HaConfigSectionNetwork extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/config/network/ha-config-url-form.ts b/src/panels/config/network/ha-config-url-form.ts
index 062c3f16e0..16f909cccc 100644
--- a/src/panels/config/network/ha-config-url-form.ts
+++ b/src/panels/config/network/ha-config-url-form.ts
@@ -1,28 +1,31 @@
-import "@material/mwc-button/mwc-button";
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { mdiContentCopy, mdiEyeOff, mdiEye } from "@mdi/js";
-import { isComponentLoaded } from "../../../common/config/is_component_loaded";
-import { isIPAddress } from "../../../common/string/is_ip_address";
-import "../../../components/ha-alert";
-import "../../../components/ha-card";
-import "../../../components/ha-formfield";
-import "../../../components/ha-switch";
-import "../../../components/ha-textfield";
-import "../../../components/ha-settings-row";
-import "../../../components/ha-button";
+import type { HaSwitch } from "../../../components/ha-switch";
import type { HaTextField } from "../../../components/ha-textfield";
import type { CloudStatus } from "../../../data/cloud";
+import type { ValueChangedEvent, HomeAssistant } from "../../../types";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-alert";
+import "../../../components/ha-button";
+import "../../../components/ha-card";
+import "../../../components/ha-formfield";
+import "../../../components/ha-settings-row";
+import "../../../components/ha-switch";
+import "../../../components/ha-textfield";
+import "@material/mwc-button/mwc-button";
+
+import { mdiContentCopy, mdiEyeOff, mdiEye } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { isComponentLoaded } from "../../../common/config/is_component_loaded";
+import { isIPAddress } from "../../../common/string/is_ip_address";
+import { copyToClipboard } from "../../../common/util/copy-clipboard";
import { fetchCloudStatus } from "../../../data/cloud";
import { saveCoreConfig } from "../../../data/core";
import { getNetworkUrls, type NetworkUrls } from "../../../data/network";
-import type { ValueChangedEvent, HomeAssistant } from "../../../types";
-import { copyToClipboard } from "../../../common/util/copy-clipboard";
-import { showToast } from "../../../util/toast";
-import type { HaSwitch } from "../../../components/ha-switch";
-import { obfuscateUrl } from "../../../util/url";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
+import { showToast } from "../../../util/toast";
+import { obfuscateUrl } from "../../../util/url";
@customElement("ha-config-url-form")
class ConfigUrlForm extends SubscribeMixin(LitElement) {
diff --git a/src/panels/config/network/supervisor-hostname.ts b/src/panels/config/network/supervisor-hostname.ts
index d359e0031c..c4264fbce1 100644
--- a/src/panels/config/network/supervisor-hostname.ts
+++ b/src/panels/config/network/supervisor-hostname.ts
@@ -1,25 +1,28 @@
-import "@material/mwc-button/mwc-button";
-import "@material/mwc-list/mwc-list";
-import "@material/mwc-list/mwc-list-item";
+import type { HomeAssistant } from "../../../types";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
+
import "../../../components/ha-alert";
import "../../../components/ha-card";
-import "../../../components/ha-spinner";
import "../../../components/ha-expansion-panel";
import "../../../components/ha-formfield";
import "../../../components/ha-icon-button";
import "../../../components/ha-radio";
import "../../../components/ha-settings-row";
+import "../../../components/ha-spinner";
import "../../../components/ha-textfield";
+import "@material/mwc-button/mwc-button";
+import "@material/mwc-list/mwc-list";
+import "@material/mwc-list/mwc-list-item";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
import { extractApiErrorMessage } from "../../../data/hassio/common";
import {
changeHostOptions,
fetchHassioHostInfo,
} from "../../../data/hassio/host";
import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
-import type { HomeAssistant } from "../../../types";
@customElement("supervisor-hostname")
export class HassioHostname extends LitElement {
diff --git a/src/panels/config/network/supervisor-network.ts b/src/panels/config/network/supervisor-network.ts
index 93d03c7db9..26a978c88b 100644
--- a/src/panels/config/network/supervisor-network.ts
+++ b/src/panels/config/network/supervisor-network.ts
@@ -1,24 +1,28 @@
-import "@material/mwc-list/mwc-list";
-import "@material/mwc-tab";
-import "@material/mwc-tab-bar";
-import { mdiDeleteOutline, mdiPlus, mdiMenuDown, mdiWifi } from "@mdi/js";
-import { css, type CSSResultGroup, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { cache } from "lit/directives/cache";
+import type { HaRadio } from "../../../components/ha-radio";
+import type { HaTextField } from "../../../components/ha-textfield";
+import type { HomeAssistant } from "../../../types";
+
import "../../../components/ha-alert";
import "../../../components/ha-button";
import "../../../components/ha-button-menu";
import "../../../components/ha-card";
-import "../../../components/ha-spinner";
import "../../../components/ha-expansion-panel";
import "../../../components/ha-formfield";
import "../../../components/ha-icon-button";
+import "../../../components/ha-list-item";
import "../../../components/ha-password-field";
import "../../../components/ha-radio";
-import "../../../components/ha-list-item";
-import type { HaRadio } from "../../../components/ha-radio";
+import "../../../components/ha-spinner";
import "../../../components/ha-textfield";
-import type { HaTextField } from "../../../components/ha-textfield";
+import "@material/mwc-list/mwc-list";
+import "@material/mwc-tab";
+import "@material/mwc-tab-bar";
+
+import { mdiDeleteOutline, mdiPlus, mdiMenuDown, mdiWifi } from "@mdi/js";
+import { css, type CSSResultGroup, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { cache } from "lit/directives/cache";
+
import { extractApiErrorMessage } from "../../../data/hassio/common";
import {
type AccessPoint,
@@ -34,7 +38,6 @@ import {
showAlertDialog,
showConfirmationDialog,
} from "../../../dialogs/generic/show-dialog-box";
-import type { HomeAssistant } from "../../../types";
const IP_VERSIONS = ["ipv4", "ipv6"];
diff --git a/src/panels/config/person/dialog-person-detail.ts b/src/panels/config/person/dialog-person-detail.ts
index e1de5e1baa..cb86c5e8f8 100644
--- a/src/panels/config/person/dialog-person-detail.ts
+++ b/src/panels/config/person/dialog-person-detail.ts
@@ -1,20 +1,28 @@
-import { mdiPencil } from "@mdi/js";
+import type { HaPictureUpload } from "../../../components/ha-picture-upload";
+import type { PersonMutableParams } from "../../../data/person";
+import type { User } from "../../../data/user";
+import type { CropOptions } from "../../../dialogs/image-cropper-dialog/show-image-cropper-dialog";
+import type { HassDialog } from "../../../dialogs/make-dialog-manager";
+import type { HomeAssistant, ValueChangedEvent } from "../../../types";
+import type { PersonDetailDialogParams } from "./show-dialog-person-detail";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
+
import "../../../components/entity/ha-entities-picker";
import "../../../components/ha-button";
-import { createCloseHeading } from "../../../components/ha-dialog";
import "../../../components/ha-formfield";
import "../../../components/ha-icon-button";
import "../../../components/ha-picture-upload";
-import type { HaPictureUpload } from "../../../components/ha-picture-upload";
import "../../../components/ha-settings-row";
import "../../../components/ha-textfield";
+
+import { mdiPencil } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { createCloseHeading } from "../../../components/ha-dialog";
import { adminChangeUsername } from "../../../data/auth";
-import type { PersonMutableParams } from "../../../data/person";
-import type { User } from "../../../data/user";
import {
deleteUser,
SYSTEM_GROUP_ID_ADMIN,
@@ -26,15 +34,10 @@ import {
showConfirmationDialog,
showPromptDialog,
} from "../../../dialogs/generic/show-dialog-box";
-import type { CropOptions } from "../../../dialogs/image-cropper-dialog/show-image-cropper-dialog";
import { haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant, ValueChangedEvent } from "../../../types";
import { documentationUrl } from "../../../util/documentation-url";
import { showAddUserDialog } from "../users/show-dialog-add-user";
import { showAdminChangePasswordDialog } from "../users/show-dialog-admin-change-password";
-import type { PersonDetailDialogParams } from "./show-dialog-person-detail";
-import { fireEvent } from "../../../common/dom/fire_event";
-import type { HassDialog } from "../../../dialogs/make-dialog-manager";
const includeDomains = ["device_tracker"];
diff --git a/src/panels/config/person/ha-config-person.ts b/src/panels/config/person/ha-config-person.ts
index 3a5ba2ae21..5af602b2c2 100644
--- a/src/panels/config/person/ha-config-person.ts
+++ b/src/panels/config/person/ha-config-person.ts
@@ -1,31 +1,34 @@
-import { mdiPlus } from "@mdi/js";
-import "@material/mwc-list/mwc-list";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { stringCompare } from "../../../common/string/compare";
+import type { Person } from "../../../data/person";
+import type { User } from "../../../data/user";
+import type { HomeAssistant, Route } from "../../../types";
+
import "../../../components/ha-card";
import "../../../components/ha-fab";
-import "../../../components/ha-svg-icon";
import "../../../components/ha-list-item";
+import "../../../components/ha-svg-icon";
import "../../../components/user/ha-person-badge";
-import type { Person } from "../../../data/person";
+import "../../../layouts/hass-loading-screen";
+import "../../../layouts/hass-tabs-subpage";
+import "../ha-config-section";
+import "@material/mwc-list/mwc-list";
+
+import { mdiPlus } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { stringCompare } from "../../../common/string/compare";
import {
createPerson,
deletePerson,
fetchPersons,
updatePerson,
} from "../../../data/person";
-import type { User } from "../../../data/user";
import { fetchUsers } from "../../../data/user";
import {
showAlertDialog,
showConfirmationDialog,
} from "../../../dialogs/generic/show-dialog-box";
-import "../../../layouts/hass-loading-screen";
-import "../../../layouts/hass-tabs-subpage";
-import type { HomeAssistant, Route } from "../../../types";
import { documentationUrl } from "../../../util/documentation-url";
-import "../ha-config-section";
import { configSections } from "../ha-panel-config";
import {
loadPersonDetailDialog,
diff --git a/src/panels/config/person/show-dialog-person-detail.ts b/src/panels/config/person/show-dialog-person-detail.ts
index ae63f8d5ab..93cc2259d3 100644
--- a/src/panels/config/person/show-dialog-person-detail.ts
+++ b/src/panels/config/person/show-dialog-person-detail.ts
@@ -1,7 +1,8 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type { Person, PersonMutableParams } from "../../../data/person";
import type { User } from "../../../data/user";
+import { fireEvent } from "../../../common/dom/fire_event";
+
export interface PersonDetailDialogParams {
entry?: Person;
users: User[];
diff --git a/src/panels/config/repairs/dialog-integration-startup.ts b/src/panels/config/repairs/dialog-integration-startup.ts
index 62996283f5..e85882aab0 100644
--- a/src/panels/config/repairs/dialog-integration-startup.ts
+++ b/src/panels/config/repairs/dialog-integration-startup.ts
@@ -1,13 +1,16 @@
-import "@material/mwc-button/mwc-button";
+import type { HomeAssistant } from "../../../types";
import type { CSSResultGroup } from "lit";
+
+import "../../../components/ha-card";
+import "./integrations-startup-time";
+import "@material/mwc-button/mwc-button";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../../../common/dom/fire_event";
-import "../../../components/ha-card";
import { createCloseHeading } from "../../../components/ha-dialog";
import { haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
-import "./integrations-startup-time";
@customElement("dialog-integration-startup")
class DialogIntegrationStartup extends LitElement {
diff --git a/src/panels/config/repairs/dialog-repairs-issue-subtitle.ts b/src/panels/config/repairs/dialog-repairs-issue-subtitle.ts
index 6ea15ed6e4..c867984140 100644
--- a/src/panels/config/repairs/dialog-repairs-issue-subtitle.ts
+++ b/src/panels/config/repairs/dialog-repairs-issue-subtitle.ts
@@ -1,8 +1,10 @@
+import type { RepairsIssue } from "../../../data/repairs";
+import type { HomeAssistant } from "../../../types";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
-import type { HomeAssistant } from "../../../types";
+
import { domainToName } from "../../../data/integration";
-import type { RepairsIssue } from "../../../data/repairs";
@customElement("dialog-repairs-issue-subtitle")
class DialogRepairsIssueSubtitle extends LitElement {
diff --git a/src/panels/config/repairs/dialog-repairs-issue.ts b/src/panels/config/repairs/dialog-repairs-issue.ts
index 179d3ac62a..9fb160f30e 100644
--- a/src/panels/config/repairs/dialog-repairs-issue.ts
+++ b/src/panels/config/repairs/dialog-repairs-issue.ts
@@ -1,21 +1,24 @@
-import { mdiClose } from "@mdi/js";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state, query } from "lit/decorators";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { isNavigationClick } from "../../../common/dom/is-navigation-click";
-import "../../../components/ha-alert";
-import "../../../components/ha-md-dialog";
import type { HaMdDialog } from "../../../components/ha-md-dialog";
-import "../../../components/ha-button";
-import "../../../components/ha-dialog-header";
-import "./dialog-repairs-issue-subtitle";
-import "../../../components/ha-markdown";
import type { RepairsIssue } from "../../../data/repairs";
-import { ignoreRepairsIssue } from "../../../data/repairs";
-import { haStyleDialog } from "../../../resources/styles";
import type { HomeAssistant } from "../../../types";
import type { RepairsIssueDialogParams } from "./show-repair-issue-dialog";
+import type { CSSResultGroup } from "lit";
+
+import "../../../components/ha-alert";
+import "../../../components/ha-button";
+import "../../../components/ha-dialog-header";
+import "../../../components/ha-markdown";
+import "../../../components/ha-md-dialog";
+import "./dialog-repairs-issue-subtitle";
+
+import { mdiClose } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state, query } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { isNavigationClick } from "../../../common/dom/is-navigation-click";
+import { ignoreRepairsIssue } from "../../../data/repairs";
+import { haStyleDialog } from "../../../resources/styles";
@customElement("dialog-repairs-issue")
class DialogRepairsIssue extends LitElement {
diff --git a/src/panels/config/repairs/dialog-system-information.ts b/src/panels/config/repairs/dialog-system-information.ts
index b9666b0c57..291654d46b 100644
--- a/src/panels/config/repairs/dialog-system-information.ts
+++ b/src/panels/config/repairs/dialog-system-information.ts
@@ -1,31 +1,34 @@
-import "@material/mwc-button/mwc-button";
+import type { HassioStats } from "../../../data/hassio/common";
+import type { HassioResolution } from "../../../data/hassio/resolution";
+import type {
+ SystemCheckValueObject,
+ SystemHealthInfo,
+} from "../../../data/system_health";
+import type { HomeAssistant } from "../../../types";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../components/ha-alert";
+import "../../../components/ha-card";
+import "../../../components/ha-metric";
+import "../../../components/ha-spinner";
+import "@material/mwc-button/mwc-button";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import { formatDateTime } from "../../../common/datetime/format_date_time";
import { fireEvent } from "../../../common/dom/fire_event";
import { copyToClipboard } from "../../../common/util/copy-clipboard";
import { subscribePollingCollection } from "../../../common/util/subscribe-polling";
-import "../../../components/ha-alert";
-import "../../../components/ha-card";
-import "../../../components/ha-spinner";
import { createCloseHeading } from "../../../components/ha-dialog";
-import "../../../components/ha-metric";
-import type { HassioStats } from "../../../data/hassio/common";
import { fetchHassioStats } from "../../../data/hassio/common";
-import type { HassioResolution } from "../../../data/hassio/resolution";
import { fetchHassioResolution } from "../../../data/hassio/resolution";
import { domainToName } from "../../../data/integration";
-import type {
- SystemCheckValueObject,
- SystemHealthInfo,
-} from "../../../data/system_health";
import { subscribeSystemHealthInfo } from "../../../data/system_health";
import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
import { haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { documentationUrl } from "../../../util/documentation-url";
import { showToast } from "../../../util/toast";
diff --git a/src/panels/config/repairs/ha-config-repairs-dashboard.ts b/src/panels/config/repairs/ha-config-repairs-dashboard.ts
index 5aabf9a51c..b5680e76f0 100644
--- a/src/panels/config/repairs/ha-config-repairs-dashboard.ts
+++ b/src/panels/config/repairs/ha-config-repairs-dashboard.ts
@@ -1,25 +1,28 @@
+import type { RepairsIssue } from "../../../data/repairs";
+import type { HomeAssistant } from "../../../types";
import type { RequestSelectedDetail } from "@material/mwc-list/mwc-list-item-base";
-import { mdiDotsVertical } from "@mdi/js";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { TemplateResult } from "lit";
+
+import "../../../components/ha-card";
+import "../../../components/ha-check-list-item";
+import "../../../layouts/hass-subpage";
+import "./ha-config-repairs";
+
+import { mdiDotsVertical } from "@mdi/js";
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import { shouldHandleRequestSelectedEvent } from "../../../common/mwc/handle-request-selected-event";
import { navigate } from "../../../common/navigate";
import { extractSearchParam } from "../../../common/url/search-params";
-import "../../../components/ha-card";
-import "../../../components/ha-check-list-item";
-import type { RepairsIssue } from "../../../data/repairs";
import {
severitySort,
subscribeRepairsIssueRegistry,
} from "../../../data/repairs";
-import "../../../layouts/hass-subpage";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
-import type { HomeAssistant } from "../../../types";
-import "./ha-config-repairs";
import { showIntegrationStartupDialog } from "./show-integration-startup-dialog";
import { showSystemInformationDialog } from "./show-system-information-dialog";
diff --git a/src/panels/config/repairs/ha-config-repairs.ts b/src/panels/config/repairs/ha-config-repairs.ts
index 77345f3e86..88468f4669 100644
--- a/src/panels/config/repairs/ha-config-repairs.ts
+++ b/src/panels/config/repairs/ha-config-repairs.ts
@@ -1,25 +1,28 @@
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import { relativeTime } from "../../../common/datetime/relative_time";
-import { capitalizeFirstLetter } from "../../../common/string/capitalize-first-letter";
+import type { StatisticsValidationResult } from "../../../data/recorder";
+import type { HomeAssistant } from "../../../types";
+
import "../../../components/ha-md-list";
import "../../../components/ha-md-list-item";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { relativeTime } from "../../../common/datetime/relative_time";
+import { capitalizeFirstLetter } from "../../../common/string/capitalize-first-letter";
import { domainToName } from "../../../data/integration";
+import {
+ STATISTIC_TYPES,
+ updateStatisticsIssues,
+} from "../../../data/recorder";
import {
fetchRepairsIssueData,
type RepairsIssue,
} from "../../../data/repairs";
import { showConfigFlowDialog } from "../../../dialogs/config-flow/show-dialog-config-flow";
-import type { HomeAssistant } from "../../../types";
import { brandsUrl } from "../../../util/brands-url";
import { fixStatisticsIssue } from "../../developer-tools/statistics/fix-statistics";
import { showRepairsFlowDialog } from "./show-dialog-repair-flow";
import { showRepairsIssueDialog } from "./show-repair-issue-dialog";
-import type { StatisticsValidationResult } from "../../../data/recorder";
-import {
- STATISTIC_TYPES,
- updateStatisticsIssues,
-} from "../../../data/recorder";
@customElement("ha-config-repairs")
class HaConfigRepairs extends LitElement {
diff --git a/src/panels/config/repairs/integrations-startup-time.ts b/src/panels/config/repairs/integrations-startup-time.ts
index 73f3728640..95346e83d4 100644
--- a/src/panels/config/repairs/integrations-startup-time.ts
+++ b/src/panels/config/repairs/integrations-startup-time.ts
@@ -1,19 +1,22 @@
-import "@material/mwc-list/mwc-list";
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import "../../../components/ha-card";
-import "../../../components/ha-clickable-list-item";
import type {
IntegrationManifest,
IntegrationSetup,
} from "../../../data/integration";
+import type { HomeAssistant } from "../../../types";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-card";
+import "../../../components/ha-clickable-list-item";
+import "@material/mwc-list/mwc-list";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
import {
domainToName,
fetchIntegrationManifests,
fetchIntegrationSetups,
} from "../../../data/integration";
-import type { HomeAssistant } from "../../../types";
import { brandsUrl } from "../../../util/brands-url";
import { documentationUrl } from "../../../util/documentation-url";
diff --git a/src/panels/config/repairs/show-dialog-repair-flow.ts b/src/panels/config/repairs/show-dialog-repair-flow.ts
index 3ea9e79353..f0c1475c5d 100644
--- a/src/panels/config/repairs/show-dialog-repair-flow.ts
+++ b/src/panels/config/repairs/show-dialog-repair-flow.ts
@@ -1,8 +1,12 @@
-import { html, nothing } from "lit";
import type { DataEntryFlowStep } from "../../../data/data_entry_flow";
-import { domainToName } from "../../../data/integration";
-import "./dialog-repairs-issue-subtitle";
import type { RepairsIssue } from "../../../data/repairs";
+import type { HomeAssistant } from "../../../types";
+
+import "./dialog-repairs-issue-subtitle";
+
+import { html, nothing } from "lit";
+
+import { domainToName } from "../../../data/integration";
import {
createRepairsFlow,
deleteRepairsFlow,
@@ -13,7 +17,6 @@ import {
loadDataEntryFlowDialog,
showFlowDialog,
} from "../../../dialogs/config-flow/show-dialog-data-entry-flow";
-import type { HomeAssistant } from "../../../types";
const mergePlaceholders = (issue: RepairsIssue, step: DataEntryFlowStep) =>
step.description_placeholders && issue.translation_placeholders
diff --git a/src/panels/config/repairs/show-repair-issue-dialog.ts b/src/panels/config/repairs/show-repair-issue-dialog.ts
index c88c28ac77..fd3b94d2ad 100644
--- a/src/panels/config/repairs/show-repair-issue-dialog.ts
+++ b/src/panels/config/repairs/show-repair-issue-dialog.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type { RepairsIssue } from "../../../data/repairs";
+import { fireEvent } from "../../../common/dom/fire_event";
+
export interface RepairsIssueDialogParams {
issue: RepairsIssue;
dialogClosedCallback?: () => void;
diff --git a/src/panels/config/scene/ha-config-scene.ts b/src/panels/config/scene/ha-config-scene.ts
index 47e888e0f3..a6a1260c4d 100644
--- a/src/panels/config/scene/ha-config-scene.ts
+++ b/src/panels/config/scene/ha-config-scene.ts
@@ -1,16 +1,19 @@
-import type { HassEntities } from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
-import { customElement, property } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { computeStateDomain } from "../../../common/entity/compute_state_domain";
-import { debounce } from "../../../common/util/debounce";
import type { SceneEntity } from "../../../data/scene";
import type { RouterOptions } from "../../../layouts/hass-router-page";
-import { HassRouterPage } from "../../../layouts/hass-router-page";
import type { HomeAssistant } from "../../../types";
+import type { HassEntities } from "home-assistant-js-websocket";
+import type { PropertyValues } from "lit";
+
import "./ha-scene-dashboard";
import "./ha-scene-editor";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { computeStateDomain } from "../../../common/entity/compute_state_domain";
+import { debounce } from "../../../common/util/debounce";
+import { HassRouterPage } from "../../../layouts/hass-router-page";
+
const equal = (a: SceneEntity[], b: SceneEntity[]): boolean => {
if (a.length !== b.length) {
return false;
diff --git a/src/panels/config/scene/ha-scene-dashboard.ts b/src/panels/config/scene/ha-scene-dashboard.ts
index a54b004fcd..247a450316 100644
--- a/src/panels/config/scene/ha-scene-dashboard.ts
+++ b/src/panels/config/scene/ha-scene-dashboard.ts
@@ -1,3 +1,41 @@
+import type { HASSDomEvent } from "../../../common/dom/fire_event";
+import type { LocalizeFunc } from "../../../common/translations/localize";
+import type {
+ DataTableColumnContainer,
+ RowClickedEvent,
+ SelectionChangedEvent,
+ SortingChangedEvent,
+} from "../../../components/data-table/ha-data-table";
+import type { CategoryRegistryEntry } from "../../../data/category_registry";
+import type { DataTableFilters } from "../../../data/data_table_filters";
+import type {
+ EntityRegistryEntry,
+ UpdateEntityRegistryEntryResult,
+} from "../../../data/entity_registry";
+import type { LabelRegistryEntry } from "../../../data/label_registry";
+import type { SceneEntity } from "../../../data/scene";
+import type { HomeAssistant, Route } from "../../../types";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/data-table/ha-data-table-labels";
+import "../../../components/ha-button";
+import "../../../components/ha-fab";
+import "../../../components/ha-filter-categories";
+import "../../../components/ha-filter-devices";
+import "../../../components/ha-filter-entities";
+import "../../../components/ha-filter-floor-areas";
+import "../../../components/ha-filter-labels";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-icon-overflow-menu";
+import "../../../components/ha-md-divider";
+import "../../../components/ha-md-menu-item";
+import "../../../components/ha-state-icon";
+import "../../../components/ha-sub-menu";
+import "../../../components/ha-svg-icon";
+import "../../../components/ha-tooltip";
+import "../../../layouts/hass-tabs-subpage-data-table";
+
import { consume } from "@lit-labs/context";
import { ResizeController } from "@lit-labs/observers/resize-controller";
import {
@@ -17,71 +55,38 @@ import {
mdiTextureBox,
} from "@mdi/js";
import { differenceInDays } from "date-fns";
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { computeCssColor } from "../../../common/color/compute-color";
import { formatShortDateTime } from "../../../common/datetime/format_date_time";
import { relativeTime } from "../../../common/datetime/relative_time";
import { storage } from "../../../common/decorators/storage";
-import type { HASSDomEvent } from "../../../common/dom/fire_event";
import { fireEvent } from "../../../common/dom/fire_event";
import { computeStateName } from "../../../common/entity/compute_state_name";
import { navigate } from "../../../common/navigate";
-import type { LocalizeFunc } from "../../../common/translations/localize";
import {
hasRejectedItems,
rejectedItems,
} from "../../../common/util/promise-all-settled-results";
-import type {
- DataTableColumnContainer,
- RowClickedEvent,
- SelectionChangedEvent,
- SortingChangedEvent,
-} from "../../../components/data-table/ha-data-table";
-import "../../../components/data-table/ha-data-table-labels";
-import "../../../components/ha-button";
-import "../../../components/ha-md-divider";
-import "../../../components/ha-fab";
-import "../../../components/ha-filter-categories";
-import "../../../components/ha-filter-devices";
-import "../../../components/ha-filter-entities";
-import "../../../components/ha-filter-floor-areas";
-import "../../../components/ha-filter-labels";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-icon-overflow-menu";
-import "../../../components/ha-md-menu-item";
-import "../../../components/ha-state-icon";
-import "../../../components/ha-sub-menu";
-import "../../../components/ha-svg-icon";
-import "../../../components/ha-tooltip";
import { createAreaRegistryEntry } from "../../../data/area_registry";
-import type { CategoryRegistryEntry } from "../../../data/category_registry";
import {
createCategoryRegistryEntry,
subscribeCategoryRegistry,
} from "../../../data/category_registry";
import { fullEntitiesContext } from "../../../data/context";
-import type { DataTableFilters } from "../../../data/data_table_filters";
import {
deserializeFilters,
serializeFilters,
} from "../../../data/data_table_filters";
import { isUnavailableState } from "../../../data/entity";
-import type {
- EntityRegistryEntry,
- UpdateEntityRegistryEntryResult,
-} from "../../../data/entity_registry";
import { updateEntityRegistryEntry } from "../../../data/entity_registry";
import { forwardHaptic } from "../../../data/haptics";
-import type { LabelRegistryEntry } from "../../../data/label_registry";
import {
createLabelRegistryEntry,
subscribeLabelRegistry,
} from "../../../data/label_registry";
-import type { SceneEntity } from "../../../data/scene";
import {
activateScene,
deleteScene,
@@ -93,10 +98,8 @@ import {
showConfirmationDialog,
} from "../../../dialogs/generic/show-dialog-box";
import { showMoreInfoDialog } from "../../../dialogs/more-info/show-ha-more-info-dialog";
-import "../../../layouts/hass-tabs-subpage-data-table";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../types";
import { documentationUrl } from "../../../util/documentation-url";
import { showToast } from "../../../util/toast";
import { showAreaRegistryDetailDialog } from "../areas/show-dialog-area-registry-detail";
diff --git a/src/panels/config/scene/ha-scene-editor.ts b/src/panels/config/scene/ha-scene-editor.ts
index 0d9c3d7f2c..331de9ba14 100644
--- a/src/panels/config/scene/ha-scene-editor.ts
+++ b/src/panels/config/scene/ha-scene-editor.ts
@@ -1,32 +1,16 @@
-import { consume } from "@lit-labs/context";
-import "@material/mwc-list/mwc-list";
+import type { DeviceRegistryEntry } from "../../../data/device_registry";
+import type { EntityRegistryEntry } from "../../../data/entity_registry";
+import type {
+ SceneConfig,
+ SceneEntities,
+ SceneEntity,
+ SceneMetaData,
+} from "../../../data/scene";
+import type { HomeAssistant, Route } from "../../../types";
import type { ActionDetail } from "@material/mwc-list/mwc-list-foundation";
-import {
- mdiCog,
- mdiContentDuplicate,
- mdiContentSave,
- mdiDelete,
- mdiDotsVertical,
- mdiEye,
- mdiInformationOutline,
- mdiMotionPlayOutline,
- mdiPlay,
- mdiPlaylistEdit,
- mdiTag,
-} from "@mdi/js";
import type { HassEvent } from "home-assistant-js-websocket";
import type { CSSResultGroup, PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { computeDeviceNameDisplay } from "../../../common/entity/compute_device_name";
-import { computeDomain } from "../../../common/entity/compute_domain";
-import { computeStateName } from "../../../common/entity/compute_state_name";
-import { navigate } from "../../../common/navigate";
-import { computeRTL } from "../../../common/util/compute_rtl";
-import { afterNextRender } from "../../../common/util/render-status";
+
import "../../../components/device/ha-device-picker";
import "../../../components/entity/ha-entities-picker";
import "../../../components/ha-alert";
@@ -40,16 +24,38 @@ import "../../../components/ha-icon-picker";
import "../../../components/ha-list-item";
import "../../../components/ha-svg-icon";
import "../../../components/ha-textfield";
+import "../../../layouts/hass-subpage";
+import "../ha-config-section";
+import "@material/mwc-list/mwc-list";
+
+import { consume } from "@lit-labs/context";
+import {
+ mdiCog,
+ mdiContentDuplicate,
+ mdiContentSave,
+ mdiDelete,
+ mdiDotsVertical,
+ mdiEye,
+ mdiInformationOutline,
+ mdiMotionPlayOutline,
+ mdiPlay,
+ mdiPlaylistEdit,
+ mdiTag,
+} from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { computeDeviceNameDisplay } from "../../../common/entity/compute_device_name";
+import { computeDomain } from "../../../common/entity/compute_domain";
+import { computeStateName } from "../../../common/entity/compute_state_name";
+import { navigate } from "../../../common/navigate";
+import { computeRTL } from "../../../common/util/compute_rtl";
+import { afterNextRender } from "../../../common/util/render-status";
import { fullEntitiesContext } from "../../../data/context";
-import type { DeviceRegistryEntry } from "../../../data/device_registry";
-import type { EntityRegistryEntry } from "../../../data/entity_registry";
import { updateEntityRegistryEntry } from "../../../data/entity_registry";
-import type {
- SceneConfig,
- SceneEntities,
- SceneEntity,
- SceneMetaData,
-} from "../../../data/scene";
import {
activateScene,
applyScene,
@@ -65,14 +71,11 @@ import {
showConfirmationDialog,
} from "../../../dialogs/generic/show-dialog-box";
import { showMoreInfoDialog } from "../../../dialogs/more-info/show-ha-more-info-dialog";
-import "../../../layouts/hass-subpage";
import { KeyboardShortcutMixin } from "../../../mixins/keyboard-shortcut-mixin";
import { PreventUnsavedMixin } from "../../../mixins/prevent-unsaved-mixin";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../types";
import { showToast } from "../../../util/toast";
import { showAssignCategoryDialog } from "../category/show-dialog-assign-category";
-import "../ha-config-section";
interface DeviceEntities {
id: string;
diff --git a/src/panels/config/script/blueprint-script-editor.ts b/src/panels/config/script/blueprint-script-editor.ts
index 5689d74648..d1fd8e8ef2 100644
--- a/src/panels/config/script/blueprint-script-editor.ts
+++ b/src/panels/config/script/blueprint-script-editor.ts
@@ -1,9 +1,12 @@
+import type { BlueprintScriptConfig } from "../../../data/script";
+
+import "../../../components/ha-markdown";
import "@material/mwc-button/mwc-button";
+
import { html, nothing } from "lit";
import { customElement, property } from "lit/decorators";
-import "../../../components/ha-markdown";
+
import { fetchBlueprints } from "../../../data/blueprint";
-import type { BlueprintScriptConfig } from "../../../data/script";
import { HaBlueprintGenericEditor } from "../blueprint/blueprint-generic-editor";
@customElement("blueprint-script-editor")
diff --git a/src/panels/config/script/ha-config-script.ts b/src/panels/config/script/ha-config-script.ts
index 9bbd0e3a08..a533a75e3f 100644
--- a/src/panels/config/script/ha-config-script.ts
+++ b/src/panels/config/script/ha-config-script.ts
@@ -1,19 +1,22 @@
-import { consume } from "@lit-labs/context";
-import type { HassEntities } from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { computeStateDomain } from "../../../common/entity/compute_state_domain";
-import { debounce } from "../../../common/util/debounce";
-import { fullEntitiesContext } from "../../../data/context";
import type { EntityRegistryEntry } from "../../../data/entity_registry";
import type { ScriptEntity } from "../../../data/script";
import type { RouterOptions } from "../../../layouts/hass-router-page";
-import { HassRouterPage } from "../../../layouts/hass-router-page";
import type { HomeAssistant } from "../../../types";
+import type { HassEntities } from "home-assistant-js-websocket";
+import type { PropertyValues } from "lit";
+
import "./ha-script-editor";
import "./ha-script-picker";
+import { consume } from "@lit-labs/context";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { computeStateDomain } from "../../../common/entity/compute_state_domain";
+import { debounce } from "../../../common/util/debounce";
+import { fullEntitiesContext } from "../../../data/context";
+import { HassRouterPage } from "../../../layouts/hass-router-page";
+
const equal = (a: ScriptEntity[], b: ScriptEntity[]): boolean => {
if (a.length !== b.length) {
return false;
diff --git a/src/panels/config/script/ha-script-editor.ts b/src/panels/config/script/ha-script-editor.ts
index 11e50a36ba..3c8e7ff435 100644
--- a/src/panels/config/script/ha-script-editor.ts
+++ b/src/panels/config/script/ha-script-editor.ts
@@ -1,4 +1,21 @@
+import type { BlueprintScriptConfig, ScriptConfig } from "../../../data/script";
+import type { Entries, HomeAssistant, Route } from "../../../types";
+import type { EntityRegistryUpdate } from "../automation/automation-save-dialog/show-dialog-automation-save";
+import type { HaManualScriptEditor } from "./manual-script-editor";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/ha-button-menu";
+import "../../../components/ha-fab";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-list-item";
+import "../../../components/ha-svg-icon";
+import "../../../components/ha-yaml-editor";
+import "../../../layouts/hass-subpage";
+import "./blueprint-script-editor";
+import "./manual-script-editor";
import "@material/mwc-button";
+
+import { consume } from "@lit-labs/context";
import {
mdiCog,
mdiContentDuplicate,
@@ -16,31 +33,25 @@ import {
mdiTag,
mdiTransitConnection,
} from "@mdi/js";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { property, query, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
-import { consume } from "@lit-labs/context";
+
+import { transform } from "../../../common/decorators/transform";
import { fireEvent } from "../../../common/dom/fire_event";
import { navigate } from "../../../common/navigate";
import { slugify } from "../../../common/string/slugify";
import { computeRTL } from "../../../common/util/compute_rtl";
-import { afterNextRender } from "../../../common/util/render-status";
import { promiseTimeout } from "../../../common/util/promise-timeout";
-import "../../../components/ha-button-menu";
-import "../../../components/ha-fab";
-
-import "../../../components/ha-icon-button";
-import "../../../components/ha-list-item";
-import "../../../components/ha-svg-icon";
-import "../../../components/ha-yaml-editor";
+import { afterNextRender } from "../../../common/util/render-status";
+import { substituteBlueprint } from "../../../data/blueprint";
import { validateConfig } from "../../../data/config";
+import { fullEntitiesContext } from "../../../data/context";
import { UNAVAILABLE } from "../../../data/entity";
import {
type EntityRegistryEntry,
updateEntityRegistryEntry,
} from "../../../data/entity_registry";
-import type { BlueprintScriptConfig, ScriptConfig } from "../../../data/script";
import {
deleteScript,
fetchScriptFileConfig,
@@ -56,23 +67,14 @@ import {
showConfirmationDialog,
} from "../../../dialogs/generic/show-dialog-box";
import { showMoreInfoDialog } from "../../../dialogs/more-info/show-ha-more-info-dialog";
-import "../../../layouts/hass-subpage";
import { KeyboardShortcutMixin } from "../../../mixins/keyboard-shortcut-mixin";
+import { PreventUnsavedMixin } from "../../../mixins/prevent-unsaved-mixin";
+import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
import { haStyle } from "../../../resources/styles";
-import type { Entries, HomeAssistant, Route } from "../../../types";
import { showToast } from "../../../util/toast";
import { showAutomationModeDialog } from "../automation/automation-mode-dialog/show-dialog-automation-mode";
-import type { EntityRegistryUpdate } from "../automation/automation-save-dialog/show-dialog-automation-save";
import { showAutomationSaveDialog } from "../automation/automation-save-dialog/show-dialog-automation-save";
-import "./blueprint-script-editor";
-import "./manual-script-editor";
-import type { HaManualScriptEditor } from "./manual-script-editor";
-import { substituteBlueprint } from "../../../data/blueprint";
-import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
import { showAssignCategoryDialog } from "../category/show-dialog-assign-category";
-import { PreventUnsavedMixin } from "../../../mixins/prevent-unsaved-mixin";
-import { fullEntitiesContext } from "../../../data/context";
-import { transform } from "../../../common/decorators/transform";
export class HaScriptEditor extends SubscribeMixin(
PreventUnsavedMixin(KeyboardShortcutMixin(LitElement))
diff --git a/src/panels/config/script/ha-script-field-row.ts b/src/panels/config/script/ha-script-field-row.ts
index f9d0cc1a36..4cbabb1ebe 100644
--- a/src/panels/config/script/ha-script-field-row.ts
+++ b/src/panels/config/script/ha-script-field-row.ts
@@ -1,25 +1,28 @@
+import type { SchemaUnion } from "../../../components/ha-form/types";
+import type { Field } from "../../../data/script";
+import type { HomeAssistant } from "../../../types";
import type { ActionDetail } from "@material/mwc-list/mwc-list-foundation";
-import { mdiDelete, mdiDotsVertical, mdiPlaylistEdit } from "@mdi/js";
import type { CSSResultGroup } from "lit";
+
+import "../../../components/ha-alert";
+import "../../../components/ha-button-menu";
+import "../../../components/ha-card";
+import "../../../components/ha-expansion-panel";
+import "../../../components/ha-form/ha-form";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-list-item";
+import "../../../components/ha-yaml-editor";
+
+import { mdiDelete, mdiDotsVertical, mdiPlaylistEdit } from "@mdi/js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../../common/dom/fire_event";
import { slugify } from "../../../common/string/slugify";
-import "../../../components/ha-alert";
-import "../../../components/ha-button-menu";
-import "../../../components/ha-card";
-import "../../../components/ha-form/ha-form";
-import "../../../components/ha-expansion-panel";
-import "../../../components/ha-list-item";
-import type { SchemaUnion } from "../../../components/ha-form/types";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-yaml-editor";
-import type { Field } from "../../../data/script";
import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
const preventDefault = (ev) => ev.preventDefault();
diff --git a/src/panels/config/script/ha-script-fields.ts b/src/panels/config/script/ha-script-fields.ts
index 66bbb1f2dc..88c45cf85d 100644
--- a/src/panels/config/script/ha-script-fields.ts
+++ b/src/panels/config/script/ha-script-fields.ts
@@ -1,16 +1,19 @@
-import "@material/mwc-button";
-import { mdiPlus } from "@mdi/js";
+import type { Fields } from "../../../data/script";
+import type { HomeAssistant } from "../../../types";
+import type HaScriptFieldRow from "./ha-script-field-row";
import type { PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../../common/dom/fire_event";
+
import "../../../components/ha-button";
import "../../../components/ha-button-menu";
import "../../../components/ha-svg-icon";
-import type { Fields } from "../../../data/script";
-import type { HomeAssistant } from "../../../types";
import "./ha-script-field-row";
-import type HaScriptFieldRow from "./ha-script-field-row";
+import "@material/mwc-button";
+
+import { mdiPlus } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
@customElement("ha-script-fields")
export default class HaScriptFields extends LitElement {
diff --git a/src/panels/config/script/ha-script-picker.ts b/src/panels/config/script/ha-script-picker.ts
index 0efd0a0a4c..c13c55699d 100644
--- a/src/panels/config/script/ha-script-picker.ts
+++ b/src/panels/config/script/ha-script-picker.ts
@@ -1,3 +1,39 @@
+import type { HASSDomEvent } from "../../../common/dom/fire_event";
+import type { LocalizeFunc } from "../../../common/translations/localize";
+import type {
+ DataTableColumnContainer,
+ RowClickedEvent,
+ SelectionChangedEvent,
+ SortingChangedEvent,
+} from "../../../components/data-table/ha-data-table";
+import type { CategoryRegistryEntry } from "../../../data/category_registry";
+import type { DataTableFilters } from "../../../data/data_table_filters";
+import type {
+ EntityRegistryEntry,
+ UpdateEntityRegistryEntryResult,
+} from "../../../data/entity_registry";
+import type { LabelRegistryEntry } from "../../../data/label_registry";
+import type { ScriptEntity } from "../../../data/script";
+import type { HomeAssistant, Route } from "../../../types";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/data-table/ha-data-table-labels";
+import "../../../components/ha-fab";
+import "../../../components/ha-filter-blueprints";
+import "../../../components/ha-filter-categories";
+import "../../../components/ha-filter-devices";
+import "../../../components/ha-filter-entities";
+import "../../../components/ha-filter-floor-areas";
+import "../../../components/ha-filter-labels";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-icon-overflow-menu";
+import "../../../components/ha-md-divider";
+import "../../../components/ha-md-menu-item";
+import "../../../components/ha-sub-menu";
+import "../../../components/ha-svg-icon";
+import "../../../layouts/hass-tabs-subpage-data-table";
+
import { consume } from "@lit-labs/context";
import { ResizeController } from "@lit-labs/observers/resize-controller";
import {
@@ -17,70 +53,39 @@ import {
mdiTransitConnection,
} from "@mdi/js";
import { differenceInDays } from "date-fns";
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
import memoizeOne from "memoize-one";
+
import { computeCssColor } from "../../../common/color/compute-color";
import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import { formatShortDateTimeWithConditionalYear } from "../../../common/datetime/format_date_time";
import { relativeTime } from "../../../common/datetime/relative_time";
import { storage } from "../../../common/decorators/storage";
-import type { HASSDomEvent } from "../../../common/dom/fire_event";
import { fireEvent } from "../../../common/dom/fire_event";
import { computeStateName } from "../../../common/entity/compute_state_name";
import { navigate } from "../../../common/navigate";
-import type { LocalizeFunc } from "../../../common/translations/localize";
import {
hasRejectedItems,
rejectedItems,
} from "../../../common/util/promise-all-settled-results";
-import type {
- DataTableColumnContainer,
- RowClickedEvent,
- SelectionChangedEvent,
- SortingChangedEvent,
-} from "../../../components/data-table/ha-data-table";
-import "../../../components/data-table/ha-data-table-labels";
-import "../../../components/ha-md-divider";
-import "../../../components/ha-fab";
-import "../../../components/ha-filter-blueprints";
-import "../../../components/ha-filter-categories";
-import "../../../components/ha-filter-devices";
-import "../../../components/ha-filter-entities";
-import "../../../components/ha-filter-floor-areas";
-import "../../../components/ha-filter-labels";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-icon-overflow-menu";
-import "../../../components/ha-md-menu-item";
-import "../../../components/ha-sub-menu";
-import "../../../components/ha-svg-icon";
import { createAreaRegistryEntry } from "../../../data/area_registry";
-import type { CategoryRegistryEntry } from "../../../data/category_registry";
import {
createCategoryRegistryEntry,
subscribeCategoryRegistry,
} from "../../../data/category_registry";
import { fullEntitiesContext } from "../../../data/context";
-import type { DataTableFilters } from "../../../data/data_table_filters";
import {
deserializeFilters,
serializeFilters,
} from "../../../data/data_table_filters";
import { UNAVAILABLE } from "../../../data/entity";
-import type {
- EntityRegistryEntry,
- UpdateEntityRegistryEntryResult,
-} from "../../../data/entity_registry";
import { updateEntityRegistryEntry } from "../../../data/entity_registry";
-import type { LabelRegistryEntry } from "../../../data/label_registry";
import {
createLabelRegistryEntry,
subscribeLabelRegistry,
} from "../../../data/label_registry";
-import type { ScriptEntity } from "../../../data/script";
import {
deleteScript,
fetchScriptFileConfig,
@@ -94,10 +99,8 @@ import {
showConfirmationDialog,
} from "../../../dialogs/generic/show-dialog-box";
import { showMoreInfoDialog } from "../../../dialogs/more-info/show-ha-more-info-dialog";
-import "../../../layouts/hass-tabs-subpage-data-table";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../types";
import { documentationUrl } from "../../../util/documentation-url";
import { showToast } from "../../../util/toast";
import { showAreaRegistryDetailDialog } from "../areas/show-dialog-area-registry-detail";
diff --git a/src/panels/config/script/ha-script-trace.ts b/src/panels/config/script/ha-script-trace.ts
index 2523d0a1bf..cc9233df10 100644
--- a/src/panels/config/script/ha-script-trace.ts
+++ b/src/panels/config/script/ha-script-trace.ts
@@ -1,4 +1,25 @@
+import type {
+ HatScriptGraph,
+ NodeInfo,
+} from "../../../components/trace/hat-script-graph";
+import type { EntityRegistryEntry } from "../../../data/entity_registry";
+import type { LogbookEntry } from "../../../data/logbook";
+import type { ScriptEntity } from "../../../data/script";
+import type { ScriptTrace, ScriptTraceExtended } from "../../../data/trace";
+import type { HomeAssistant, Route } from "../../../types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../components/ha-button-menu";
+import "../../../components/ha-icon-button";
+import "../../../components/trace/ha-trace-blueprint-config";
+import "../../../components/trace/ha-trace-config";
+import "../../../components/trace/ha-trace-logbook";
+import "../../../components/trace/ha-trace-path-details";
+import "../../../components/trace/ha-trace-timeline";
+import "../../../components/trace/hat-script-graph";
+import "../../../layouts/hass-subpage";
import "@material/mwc-list/mwc-list-item";
+
import {
mdiDotsVertical,
mdiDownload,
@@ -8,37 +29,19 @@ import {
mdiRayStartArrow,
mdiRefresh,
} from "@mdi/js";
-import type { CSSResultGroup, TemplateResult } from "lit";
import { css, html, LitElement } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { repeat } from "lit/directives/repeat";
+
import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import { formatDateTimeWithSeconds } from "../../../common/datetime/format_date_time";
-import "../../../components/ha-icon-button";
-import "../../../components/trace/ha-trace-blueprint-config";
-import "../../../components/trace/ha-trace-config";
-import "../../../components/trace/ha-trace-logbook";
-import "../../../components/trace/ha-trace-path-details";
-import "../../../components/trace/ha-trace-timeline";
-import "../../../components/trace/hat-script-graph";
-import type {
- HatScriptGraph,
- NodeInfo,
-} from "../../../components/trace/hat-script-graph";
+import { fireEvent } from "../../../common/dom/fire_event";
import { traceTabStyles } from "../../../components/trace/trace-tab-styles";
-import type { LogbookEntry } from "../../../data/logbook";
import { getLogbookDataForContext } from "../../../data/logbook";
-import type { ScriptEntity } from "../../../data/script";
-import type { ScriptTrace, ScriptTraceExtended } from "../../../data/trace";
import { loadTrace, loadTraces } from "../../../data/trace";
import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../types";
-import "../../../layouts/hass-subpage";
-import "../../../components/ha-button-menu";
-import { fireEvent } from "../../../common/dom/fire_event";
-import type { EntityRegistryEntry } from "../../../data/entity_registry";
@customElement("ha-script-trace")
export class HaScriptTrace extends LitElement {
diff --git a/src/panels/config/script/manual-script-editor.ts b/src/panels/config/script/manual-script-editor.ts
index 8ef9cc66d9..e08eec4267 100644
--- a/src/panels/config/script/manual-script-editor.ts
+++ b/src/panels/config/script/manual-script-editor.ts
@@ -1,25 +1,28 @@
-import "@material/mwc-button/mwc-button";
-import { mdiHelpCircle } from "@mdi/js";
+import type { Action, Fields, ScriptConfig } from "../../../data/script";
+import type { HomeAssistant } from "../../../types";
+import type HaAutomationAction from "../automation/action/ha-automation-action";
+import type HaScriptFields from "./ha-script-fields";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../components/ha-card";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-markdown";
+import "../automation/action/ha-automation-action";
+import "./ha-script-fields";
+import "@material/mwc-button/mwc-button";
+
+import { mdiHelpCircle } from "@mdi/js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, query } from "lit/decorators";
+
import { fireEvent } from "../../../common/dom/fire_event";
import { constructUrlCurrentPath } from "../../../common/url/construct-url";
import {
extractSearchParam,
removeSearchParam,
} from "../../../common/url/search-params";
-import "../../../components/ha-card";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-markdown";
-import type { Action, Fields, ScriptConfig } from "../../../data/script";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { documentationUrl } from "../../../util/documentation-url";
-import "../automation/action/ha-automation-action";
-import type HaAutomationAction from "../automation/action/ha-automation-action";
-import "./ha-script-fields";
-import type HaScriptFields from "./ha-script-fields";
@customElement("manual-script-editor")
export class HaManualScriptEditor extends LitElement {
diff --git a/src/panels/config/storage/dialog-mount-view.ts b/src/panels/config/storage/dialog-mount-view.ts
index 38d579a26e..3aa3fa3fd9 100644
--- a/src/panels/config/storage/dialog-mount-view.ts
+++ b/src/panels/config/storage/dialog-mount-view.ts
@@ -1,18 +1,23 @@
-import { mdiClose, mdiHelpCircle } from "@mdi/js";
+import type { LocalizeFunc } from "../../../common/translations/localize";
+import type { HaProgressButton } from "../../../components/buttons/ha-progress-button";
+import type { SchemaUnion } from "../../../components/ha-form/types";
+import type { SupervisorMountRequestParams } from "../../../data/supervisor/mounts";
+import type { HomeAssistant } from "../../../types";
+import type { MountViewDialogParams } from "./show-dialog-view-mount";
import type { CSSResultGroup } from "lit";
+
+import "../../../components/buttons/ha-progress-button";
+import "../../../components/ha-form/ha-form";
+import "../../../components/ha-icon-button";
+
+import { mdiClose, mdiHelpCircle } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../../common/dom/fire_event";
-import type { LocalizeFunc } from "../../../common/translations/localize";
import { computeRTLDirection } from "../../../common/util/compute_rtl";
-import "../../../components/buttons/ha-progress-button";
-import type { HaProgressButton } from "../../../components/buttons/ha-progress-button";
-import "../../../components/ha-form/ha-form";
-import type { SchemaUnion } from "../../../components/ha-form/types";
-import "../../../components/ha-icon-button";
import { extractApiErrorMessage } from "../../../data/hassio/common";
-import type { SupervisorMountRequestParams } from "../../../data/supervisor/mounts";
import {
createSupervisorMount,
removeSupervisorMount,
@@ -21,9 +26,7 @@ import {
updateSupervisorMount,
} from "../../../data/supervisor/mounts";
import { haStyle, haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { documentationUrl } from "../../../util/documentation-url";
-import type { MountViewDialogParams } from "./show-dialog-view-mount";
const mountSchema = memoizeOne(
(
diff --git a/src/panels/config/storage/dialog-move-datadisk.ts b/src/panels/config/storage/dialog-move-datadisk.ts
index e67cb48a01..4d42e39c45 100644
--- a/src/panels/config/storage/dialog-move-datadisk.ts
+++ b/src/panels/config/storage/dialog-move-datadisk.ts
@@ -1,22 +1,27 @@
-import "@material/mwc-list/mwc-list-item";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { stopPropagation } from "../../../common/dom/stop_propagation";
-import "../../../components/ha-spinner";
-import "../../../components/ha-select";
-import "../../../components/ha-dialog";
-import {
- extractApiErrorMessage,
- ignoreSupervisorError,
-} from "../../../data/hassio/common";
import type {
DatadiskList,
HassioHassOSInfo,
HassioHostInfo,
} from "../../../data/hassio/host";
+import type { HomeAssistant } from "../../../types";
+import type { MoveDatadiskDialogParams } from "./show-dialog-move-datadisk";
+import type { CSSResultGroup } from "lit";
+
+import "../../../components/ha-dialog";
+import "../../../components/ha-select";
+import "../../../components/ha-spinner";
+import "@material/mwc-list/mwc-list-item";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { stopPropagation } from "../../../common/dom/stop_propagation";
+import {
+ extractApiErrorMessage,
+ ignoreSupervisorError,
+} from "../../../data/hassio/common";
import {
fetchHassioHassOsInfo,
listDatadisks,
@@ -24,9 +29,7 @@ import {
} from "../../../data/hassio/host";
import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
import { haStyle, haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { bytesToString } from "../../../util/bytes-to-string";
-import type { MoveDatadiskDialogParams } from "./show-dialog-move-datadisk";
const calculateMoveTime = memoizeOne((hostInfo: HassioHostInfo): number => {
const speed = hostInfo.disk_life_time !== "" ? 30 : 10;
diff --git a/src/panels/config/storage/ha-config-section-storage.ts b/src/panels/config/storage/ha-config-section-storage.ts
index 6f75fa41bf..25afb1d134 100644
--- a/src/panels/config/storage/ha-config-section-storage.ts
+++ b/src/panels/config/storage/ha-config-section-storage.ts
@@ -1,4 +1,21 @@
+import type { HassioHostInfo } from "../../../data/hassio/host";
+import type {
+ SupervisorMount,
+ SupervisorMounts,
+} from "../../../data/supervisor/mounts";
+import type { HomeAssistant, Route } from "../../../types";
+import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/ha-alert";
+import "../../../components/ha-button-menu";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-icon-next";
+import "../../../components/ha-metric";
+import "../../../components/ha-svg-icon";
+import "../../../layouts/hass-subpage";
+import "../core/ha-config-analytics";
import "@material/mwc-list";
+
import {
mdiBackupRestore,
mdiFolder,
@@ -6,23 +23,13 @@ import {
mdiPlayBox,
mdiReload,
} from "@mdi/js";
-import type { PropertyValues, TemplateResult } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { isComponentLoaded } from "../../../common/config/is_component_loaded";
-import "../../../components/ha-alert";
-import "../../../components/ha-button-menu";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-metric";
-import "../../../components/ha-svg-icon";
-import "../../../components/ha-icon-next";
+import { navigate } from "../../../common/navigate";
import { extractApiErrorMessage } from "../../../data/hassio/common";
-import type { HassioHostInfo } from "../../../data/hassio/host";
import { fetchHassioHostInfo } from "../../../data/hassio/host";
-import type {
- SupervisorMount,
- SupervisorMounts,
-} from "../../../data/supervisor/mounts";
import {
SupervisorMountState,
SupervisorMountType,
@@ -31,16 +38,13 @@ import {
reloadSupervisorMount,
} from "../../../data/supervisor/mounts";
import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
-import "../../../layouts/hass-subpage";
-import type { HomeAssistant, Route } from "../../../types";
import {
getValueInPercentage,
roundWithOneDecimal,
} from "../../../util/calculate";
-import "../core/ha-config-analytics";
import { showMoveDatadiskDialog } from "./show-dialog-move-datadisk";
import { showMountViewDialog } from "./show-dialog-view-mount";
-import { navigate } from "../../../common/navigate";
+
@customElement("ha-config-section-storage")
class HaConfigSectionStorage extends LitElement {
diff --git a/src/panels/config/storage/show-dialog-move-datadisk.ts b/src/panels/config/storage/show-dialog-move-datadisk.ts
index 77c287ab73..20af47026f 100644
--- a/src/panels/config/storage/show-dialog-move-datadisk.ts
+++ b/src/panels/config/storage/show-dialog-move-datadisk.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type { HassioHostInfo } from "../../../data/hassio/host";
+import { fireEvent } from "../../../common/dom/fire_event";
+
export interface MoveDatadiskDialogParams {
hostInfo: HassioHostInfo;
}
diff --git a/src/panels/config/storage/show-dialog-view-mount.ts b/src/panels/config/storage/show-dialog-view-mount.ts
index fbfe9dd9f7..4680b09174 100644
--- a/src/panels/config/storage/show-dialog-view-mount.ts
+++ b/src/panels/config/storage/show-dialog-view-mount.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type { SupervisorMount } from "../../../data/supervisor/mounts";
+import { fireEvent } from "../../../common/dom/fire_event";
+
export interface MountViewDialogParams {
mount?: SupervisorMount;
reloadMounts: () => void;
diff --git a/src/panels/config/tags/dialog-tag-detail.ts b/src/panels/config/tags/dialog-tag-detail.ts
index 9f853dfef0..5cf1403c17 100644
--- a/src/panels/config/tags/dialog-tag-detail.ts
+++ b/src/panels/config/tags/dialog-tag-detail.ts
@@ -1,19 +1,22 @@
-import "@material/mwc-button";
+import type { Tag, UpdateTagParams } from "../../../data/tag";
+import type { HassDialog } from "../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../types";
+import type { TagDetailDialogParams } from "./show-dialog-tag-detail";
import type { CSSResultGroup } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../common/dom/fire_event";
+
import "../../../components/ha-alert";
-import { createCloseHeading } from "../../../components/ha-dialog";
import "../../../components/ha-formfield";
import "../../../components/ha-qr-code";
import "../../../components/ha-switch";
import "../../../components/ha-textfield";
-import type { Tag, UpdateTagParams } from "../../../data/tag";
-import type { HassDialog } from "../../../dialogs/make-dialog-manager";
+import "@material/mwc-button";
+
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { createCloseHeading } from "../../../components/ha-dialog";
import { haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
-import type { TagDetailDialogParams } from "./show-dialog-tag-detail";
const TAG_BASE = "https://www.home-assistant.io/tag/";
diff --git a/src/panels/config/tags/ha-config-tags.ts b/src/panels/config/tags/ha-config-tags.ts
index 6bbcc4d76a..486871f3d6 100644
--- a/src/panels/config/tags/ha-config-tags.ts
+++ b/src/panels/config/tags/ha-config-tags.ts
@@ -1,3 +1,20 @@
+import type { LocalizeFunc } from "../../../common/translations/localize";
+import type {
+ DataTableColumnContainer,
+ RowClickedEvent,
+} from "../../../components/data-table/ha-data-table";
+import type { TagTrigger } from "../../../data/automation";
+import type { Tag, TagScannedEvent, UpdateTagParams } from "../../../data/tag";
+import type { HomeAssistant, Route } from "../../../types";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-fab";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-icon-overflow-menu";
+import "../../../components/ha-relative-time";
+import "../../../layouts/hass-tabs-subpage-data-table";
+import "./tag-image";
+
import {
mdiDelete,
mdiHelpCircle,
@@ -5,23 +22,12 @@ import {
mdiPlus,
mdiRobot,
} from "@mdi/js";
-import type { PropertyValues } from "lit";
import { html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { storage } from "../../../common/decorators/storage";
-import type { LocalizeFunc } from "../../../common/translations/localize";
-import type {
- DataTableColumnContainer,
- RowClickedEvent,
-} from "../../../components/data-table/ha-data-table";
-import "../../../components/ha-fab";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-icon-overflow-menu";
-import "../../../components/ha-relative-time";
-import type { TagTrigger } from "../../../data/automation";
import { showAutomationEditor } from "../../../data/automation";
-import type { Tag, TagScannedEvent, UpdateTagParams } from "../../../data/tag";
import {
createTag,
deleteTag,
@@ -33,13 +39,10 @@ import {
showAlertDialog,
showConfirmationDialog,
} from "../../../dialogs/generic/show-dialog-box";
-import "../../../layouts/hass-tabs-subpage-data-table";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
-import type { HomeAssistant, Route } from "../../../types";
import { documentationUrl } from "../../../util/documentation-url";
import { configSections } from "../ha-panel-config";
import { showTagDetailDialog } from "./show-dialog-tag-detail";
-import "./tag-image";
export interface TagRowData extends Tag {
display_name: string;
diff --git a/src/panels/config/tags/show-dialog-tag-detail.ts b/src/panels/config/tags/show-dialog-tag-detail.ts
index f802500796..a69d5f6a8f 100644
--- a/src/panels/config/tags/show-dialog-tag-detail.ts
+++ b/src/panels/config/tags/show-dialog-tag-detail.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type { Tag, UpdateTagParams } from "../../../data/tag";
+import { fireEvent } from "../../../common/dom/fire_event";
+
export interface TagDetailDialogParams {
entry?: Tag;
openWrite?: (tag: Tag) => void;
diff --git a/src/panels/config/tags/tag-image.ts b/src/panels/config/tags/tag-image.ts
index 2d440eaaf4..2d9495462e 100644
--- a/src/panels/config/tags/tag-image.ts
+++ b/src/panels/config/tags/tag-image.ts
@@ -1,8 +1,10 @@
+import type { TagRowData } from "./ha-config-tags";
+
+import "../../../components/ha-svg-icon";
+
import { mdiNfcVariant } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
-import "../../../components/ha-svg-icon";
-import type { TagRowData } from "./ha-config-tags";
@customElement("tag-image")
export class HaTagImage extends LitElement {
diff --git a/src/panels/config/users/dialog-add-user.ts b/src/panels/config/users/dialog-add-user.ts
index 9611cbe49d..1b32adb8ce 100644
--- a/src/panels/config/users/dialog-add-user.ts
+++ b/src/panels/config/users/dialog-add-user.ts
@@ -1,19 +1,25 @@
+import type { HaSwitch } from "../../../components/ha-switch";
+import type { HaTextField } from "../../../components/ha-textfield";
+import type { User } from "../../../data/user";
+import type { HomeAssistant, ValueChangedEvent } from "../../../types";
+import type { AddUserDialogParams } from "./show-dialog-add-user";
import type { CSSResultGroup, PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
+
import "../../../components/ha-alert";
import "../../../components/ha-button";
-import "../../../components/ha-spinner";
-import { createCloseHeading } from "../../../components/ha-dialog";
import "../../../components/ha-formfield";
import "../../../components/ha-icon-button";
+import "../../../components/ha-password-field";
import "../../../components/ha-settings-row";
+import "../../../components/ha-spinner";
import "../../../components/ha-switch";
-import type { HaSwitch } from "../../../components/ha-switch";
import "../../../components/ha-textfield";
-import type { HaTextField } from "../../../components/ha-textfield";
+
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { createCloseHeading } from "../../../components/ha-dialog";
import { createAuthForUser } from "../../../data/auth";
-import type { User } from "../../../data/user";
import {
SYSTEM_GROUP_ID_ADMIN,
SYSTEM_GROUP_ID_USER,
@@ -21,9 +27,6 @@ import {
deleteUser,
} from "../../../data/user";
import { haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant, ValueChangedEvent } from "../../../types";
-import type { AddUserDialogParams } from "./show-dialog-add-user";
-import "../../../components/ha-password-field";
@customElement("dialog-add-user")
export class DialogAddUser extends LitElement {
diff --git a/src/panels/config/users/dialog-admin-change-password.ts b/src/panels/config/users/dialog-admin-change-password.ts
index fe1c9cb29a..33426265e8 100644
--- a/src/panels/config/users/dialog-admin-change-password.ts
+++ b/src/panels/config/users/dialog-admin-change-password.ts
@@ -1,18 +1,20 @@
-import "@material/mwc-button";
+import type { SchemaUnion } from "../../../components/ha-form/types";
+import type { HomeAssistant } from "../../../types";
+import type { AdminChangePasswordDialogParams } from "./show-dialog-admin-change-password";
import type { CSSResultGroup } from "lit";
+
+import "../../../components/ha-form/ha-form";
+import "../../../components/ha-textfield";
+import "@material/mwc-button";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { fireEvent } from "../../../common/dom/fire_event";
import { createCloseHeading } from "../../../components/ha-dialog";
-import "../../../components/ha-form/ha-form";
-import type { SchemaUnion } from "../../../components/ha-form/types";
-import "../../../components/ha-textfield";
import { adminChangePassword } from "../../../data/auth";
import { haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { showToast } from "../../../util/toast";
-import type { AdminChangePasswordDialogParams } from "./show-dialog-admin-change-password";
const SCHEMA = [
{
diff --git a/src/panels/config/users/dialog-user-detail.ts b/src/panels/config/users/dialog-user-detail.ts
index 287e21118e..ed47eed5a4 100644
--- a/src/panels/config/users/dialog-user-detail.ts
+++ b/src/panels/config/users/dialog-user-detail.ts
@@ -1,10 +1,9 @@
-import { mdiPencil } from "@mdi/js";
+import type { HomeAssistant } from "../../../types";
+import type { UserDetailDialogParams } from "./show-dialog-user-detail";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
+
import "../../../components/ha-alert";
import "../../../components/ha-button";
-import { createCloseHeading } from "../../../components/ha-dialog";
import "../../../components/ha-formfield";
import "../../../components/ha-icon-button";
import "../../../components/ha-label";
@@ -12,6 +11,12 @@ import "../../../components/ha-settings-row";
import "../../../components/ha-svg-icon";
import "../../../components/ha-switch";
import "../../../components/ha-textfield";
+
+import { mdiPencil } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { createCloseHeading } from "../../../components/ha-dialog";
import { adminChangeUsername } from "../../../data/auth";
import {
computeUserBadges,
@@ -23,9 +28,7 @@ import {
showPromptDialog,
} from "../../../dialogs/generic/show-dialog-box";
import { haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { showAdminChangePasswordDialog } from "./show-dialog-admin-change-password";
-import type { UserDetailDialogParams } from "./show-dialog-user-detail";
@customElement("dialog-user-detail")
class DialogUserDetail extends LitElement {
diff --git a/src/panels/config/users/ha-config-users.ts b/src/panels/config/users/ha-config-users.ts
index c647ec809a..6519609daf 100644
--- a/src/panels/config/users/ha-config-users.ts
+++ b/src/panels/config/users/ha-config-users.ts
@@ -1,8 +1,3 @@
-import { mdiCheck, mdiPlus } from "@mdi/js";
-import type { PropertyValues } from "lit";
-import { LitElement, html } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
import type { HASSDomEvent } from "../../../common/dom/fire_event";
import type { LocalizeFunc } from "../../../common/translations/localize";
import type {
@@ -10,10 +5,21 @@ import type {
RowClickedEvent,
SortingChangedEvent,
} from "../../../components/data-table/ha-data-table";
+import type { User } from "../../../data/user";
+import type { HomeAssistant, Route } from "../../../types";
+import type { PropertyValues } from "lit";
+
import "../../../components/data-table/ha-data-table-icon";
import "../../../components/ha-fab";
import "../../../components/ha-svg-icon";
-import type { User } from "../../../data/user";
+import "../../../layouts/hass-tabs-subpage-data-table";
+
+import { mdiCheck, mdiPlus } from "@mdi/js";
+import { LitElement, html } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { storage } from "../../../common/decorators/storage";
import {
computeUserBadges,
deleteUser,
@@ -21,12 +27,9 @@ import {
updateUser,
} from "../../../data/user";
import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box";
-import "../../../layouts/hass-tabs-subpage-data-table";
-import type { HomeAssistant, Route } from "../../../types";
import { configSections } from "../ha-panel-config";
import { showAddUserDialog } from "./show-dialog-add-user";
import { showUserDetailDialog } from "./show-dialog-user-detail";
-import { storage } from "../../../common/decorators/storage";
@customElement("ha-config-users")
export class HaConfigUsers extends LitElement {
diff --git a/src/panels/config/users/show-dialog-add-user.ts b/src/panels/config/users/show-dialog-add-user.ts
index 84856e8a97..d1aa386071 100644
--- a/src/panels/config/users/show-dialog-add-user.ts
+++ b/src/panels/config/users/show-dialog-add-user.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type { User } from "../../../data/user";
+import { fireEvent } from "../../../common/dom/fire_event";
+
export interface AddUserDialogParams {
userAddedCallback: (user: User) => void;
name?: string;
diff --git a/src/panels/config/users/show-dialog-user-detail.ts b/src/panels/config/users/show-dialog-user-detail.ts
index 90db3fe82b..2dacd86df7 100644
--- a/src/panels/config/users/show-dialog-user-detail.ts
+++ b/src/panels/config/users/show-dialog-user-detail.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type { UpdateUserParams, User } from "../../../data/user";
+import { fireEvent } from "../../../common/dom/fire_event";
+
export interface UserDetailDialogParams {
entry: User;
updateEntry: (updates: Partial) => Promise;
diff --git a/src/panels/config/voice-assistants/assist-pipeline-detail/assist-pipeline-detail-config.ts b/src/panels/config/voice-assistants/assist-pipeline-detail/assist-pipeline-detail-config.ts
index c85ea484d5..7f9debf9df 100644
--- a/src/panels/config/voice-assistants/assist-pipeline-detail/assist-pipeline-detail-config.ts
+++ b/src/panels/config/voice-assistants/assist-pipeline-detail/assist-pipeline-detail-config.ts
@@ -1,11 +1,13 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import memoizeOne from "memoize-one";
import type { LocalizeKeys } from "../../../../common/translations/localize";
import type { AssistPipeline } from "../../../../data/assist_pipeline";
import type { HomeAssistant } from "../../../../types";
+
import "../../../../components/ha-form/ha-form";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
@customElement("assist-pipeline-detail-config")
export class AssistPipelineDetailConfig extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/config/voice-assistants/assist-pipeline-detail/assist-pipeline-detail-conversation.ts b/src/panels/config/voice-assistants/assist-pipeline-detail/assist-pipeline-detail-conversation.ts
index 0e69b0c9b5..5cf2f01d4b 100644
--- a/src/panels/config/voice-assistants/assist-pipeline-detail/assist-pipeline-detail-conversation.ts
+++ b/src/panels/config/voice-assistants/assist-pipeline-detail/assist-pipeline-detail-conversation.ts
@@ -1,10 +1,13 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
import type { LocalizeKeys } from "../../../../common/translations/localize";
import type { AssistPipeline } from "../../../../data/assist_pipeline";
import type { HomeAssistant } from "../../../../types";
+
import "../../../../components/ha-form/ha-form";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../../../common/dom/fire_event";
@customElement("assist-pipeline-detail-conversation")
diff --git a/src/panels/config/voice-assistants/assist-pipeline-detail/assist-pipeline-detail-stt.ts b/src/panels/config/voice-assistants/assist-pipeline-detail/assist-pipeline-detail-stt.ts
index 3836faa222..c0190594f5 100644
--- a/src/panels/config/voice-assistants/assist-pipeline-detail/assist-pipeline-detail-stt.ts
+++ b/src/panels/config/voice-assistants/assist-pipeline-detail/assist-pipeline-detail-stt.ts
@@ -1,11 +1,13 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
import type { LocalizeKeys } from "../../../../common/translations/localize";
import type { AssistPipeline } from "../../../../data/assist_pipeline";
import type { HomeAssistant } from "../../../../types";
+
import "../../../../components/ha-form/ha-form";
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
@customElement("assist-pipeline-detail-stt")
export class AssistPipelineDetailSTT extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/config/voice-assistants/assist-pipeline-detail/assist-pipeline-detail-tts.ts b/src/panels/config/voice-assistants/assist-pipeline-detail/assist-pipeline-detail-tts.ts
index a8dc5cb6bb..0aa65c8596 100644
--- a/src/panels/config/voice-assistants/assist-pipeline-detail/assist-pipeline-detail-tts.ts
+++ b/src/panels/config/voice-assistants/assist-pipeline-detail/assist-pipeline-detail-tts.ts
@@ -1,12 +1,15 @@
+import type { LocalizeKeys } from "../../../../common/translations/localize";
+import type { AssistPipeline } from "../../../../data/assist_pipeline";
+import type { HomeAssistant } from "../../../../types";
+
+import "../../../../components/ha-button";
+import "../../../../components/ha-form/ha-form";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
-import type { LocalizeKeys } from "../../../../common/translations/localize";
-import "../../../../components/ha-button";
-import "../../../../components/ha-form/ha-form";
-import type { AssistPipeline } from "../../../../data/assist_pipeline";
+
import { showTTSTryDialog } from "../../../../dialogs/tts-try/show-dialog-tts-try";
-import type { HomeAssistant } from "../../../../types";
@customElement("assist-pipeline-detail-tts")
export class AssistPipelineDetailTTS extends LitElement {
diff --git a/src/panels/config/voice-assistants/assist-pipeline-detail/assist-pipeline-detail-wakeword.ts b/src/panels/config/voice-assistants/assist-pipeline-detail/assist-pipeline-detail-wakeword.ts
index 549900b7fb..0898d1475c 100644
--- a/src/panels/config/voice-assistants/assist-pipeline-detail/assist-pipeline-detail-wakeword.ts
+++ b/src/panels/config/voice-assistants/assist-pipeline-detail/assist-pipeline-detail-wakeword.ts
@@ -1,14 +1,17 @@
+import type { LocalizeKeys } from "../../../../common/translations/localize";
+import type { AssistPipeline } from "../../../../data/assist_pipeline";
+import type { WakeWord } from "../../../../data/wake_word";
+import type { HomeAssistant } from "../../../../types";
import type { PropertyValues } from "lit";
+
+import "../../../../components/ha-form/ha-form";
+
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
-import type { LocalizeKeys } from "../../../../common/translations/localize";
-import "../../../../components/ha-form/ha-form";
-import type { AssistPipeline } from "../../../../data/assist_pipeline";
-import type { HomeAssistant } from "../../../../types";
-import type { WakeWord } from "../../../../data/wake_word";
-import { fetchWakeWordInfo } from "../../../../data/wake_word";
+
import { fireEvent } from "../../../../common/dom/fire_event";
+import { fetchWakeWordInfo } from "../../../../data/wake_word";
@customElement("assist-pipeline-detail-wakeword")
export class AssistPipelineDetailWakeWord extends LitElement {
diff --git a/src/panels/config/voice-assistants/assist-pref.ts b/src/panels/config/voice-assistants/assist-pref.ts
index 42c5d8166a..592450f7f9 100644
--- a/src/panels/config/voice-assistants/assist-pref.ts
+++ b/src/panels/config/voice-assistants/assist-pref.ts
@@ -1,4 +1,20 @@
+import type { HaSwitch } from "../../../components/ha-switch";
+import type { AssistPipeline } from "../../../data/assist_pipeline";
+import type { CloudStatus } from "../../../data/cloud";
+import type { ExposeEntitySettings } from "../../../data/expose";
+import type { HomeAssistant } from "../../../types";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-alert";
+import "../../../components/ha-button";
+import "../../../components/ha-button-menu";
+import "../../../components/ha-card";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-list-item";
+import "../../../components/ha-svg-icon";
+import "../../../components/ha-switch";
import "@material/mwc-list/mwc-list";
+
import {
mdiBug,
mdiCommentProcessingOutline,
@@ -8,20 +24,14 @@ import {
mdiStar,
mdiTrashCan,
} from "@mdi/js";
-import type { PropertyValues } from "lit";
import { LitElement, css, html } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
+import { stopPropagation } from "../../../common/dom/stop_propagation";
+import { computeDomain } from "../../../common/entity/compute_domain";
import { formatLanguageCode } from "../../../common/language/format_language";
-import "../../../components/ha-alert";
-import "../../../components/ha-button";
-import "../../../components/ha-button-menu";
-import "../../../components/ha-card";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-list-item";
-import "../../../components/ha-svg-icon";
-import "../../../components/ha-switch";
-import type { AssistPipeline } from "../../../data/assist_pipeline";
+import { navigate } from "../../../common/navigate";
import {
createAssistPipeline,
deleteAssistPipeline,
@@ -29,8 +39,6 @@ import {
setAssistPipelinePreferred,
updateAssistPipeline,
} from "../../../data/assist_pipeline";
-import type { CloudStatus } from "../../../data/cloud";
-import type { ExposeEntitySettings } from "../../../data/expose";
import {
getExposeNewEntities,
setExposeNewEntities,
@@ -39,15 +47,10 @@ import {
showAlertDialog,
showConfirmationDialog,
} from "../../../dialogs/generic/show-dialog-box";
-import type { HomeAssistant } from "../../../types";
+import { showVoiceCommandDialog } from "../../../dialogs/voice-command-dialog/show-ha-voice-command-dialog";
import { brandsUrl } from "../../../util/brands-url";
import { documentationUrl } from "../../../util/documentation-url";
import { showVoiceAssistantPipelineDetailDialog } from "./show-dialog-voice-assistant-pipeline-detail";
-import { showVoiceCommandDialog } from "../../../dialogs/voice-command-dialog/show-ha-voice-command-dialog";
-import { stopPropagation } from "../../../common/dom/stop_propagation";
-import { computeDomain } from "../../../common/entity/compute_domain";
-import type { HaSwitch } from "../../../components/ha-switch";
-import { navigate } from "../../../common/navigate";
@customElement("assist-pref")
export class AssistPref extends LitElement {
diff --git a/src/panels/config/voice-assistants/assist/ha-config-voice-assistants-assist-devices.ts b/src/panels/config/voice-assistants/assist/ha-config-voice-assistants-assist-devices.ts
index f2c26c7795..0ff530ca60 100644
--- a/src/panels/config/voice-assistants/assist/ha-config-voice-assistants-assist-devices.ts
+++ b/src/panels/config/voice-assistants/assist/ha-config-voice-assistants-assist-devices.ts
@@ -1,22 +1,25 @@
-import type { PropertyValues } from "lit";
-import { LitElement, html } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { computeDeviceNameDisplay } from "../../../../common/entity/compute_device_name";
-import { navigate } from "../../../../common/navigate";
import type { LocalizeFunc } from "../../../../common/translations/localize";
-import "../../../../components/data-table/ha-data-table";
import type { DataTableColumnContainer } from "../../../../components/data-table/ha-data-table";
import type {
AssistDevice,
AssistPipeline,
} from "../../../../data/assist_pipeline";
+import type { HomeAssistant } from "../../../../types";
+import type { PropertyValues } from "lit";
+
+import "../../../../components/data-table/ha-data-table";
+import "../../../../layouts/hass-subpage";
+
+import { LitElement, html } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { computeDeviceNameDisplay } from "../../../../common/entity/compute_device_name";
+import { navigate } from "../../../../common/navigate";
import {
listAssistDevices,
listAssistPipelines,
} from "../../../../data/assist_pipeline";
-import "../../../../layouts/hass-subpage";
-import type { HomeAssistant } from "../../../../types";
interface AssistDeviceExtra extends AssistDevice {
name: string;
diff --git a/src/panels/config/voice-assistants/cloud-alexa-pref.ts b/src/panels/config/voice-assistants/cloud-alexa-pref.ts
index 0eb9fd5ae0..1b462222e4 100644
--- a/src/panels/config/voice-assistants/cloud-alexa-pref.ts
+++ b/src/panels/config/voice-assistants/cloud-alexa-pref.ts
@@ -1,23 +1,26 @@
-import "@material/mwc-button";
-import { mdiHelpCircle } from "@mdi/js";
-import { css, html, LitElement, nothing } from "lit";
-import { property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { isEmptyEntityDomainFilter } from "../../../common/entity/entity_domain_filter";
+import type { HaSwitch } from "../../../components/ha-switch";
+import type { CloudStatusLoggedIn } from "../../../data/cloud";
+import type { ExposeEntitySettings } from "../../../data/expose";
+import type { HomeAssistant } from "../../../types";
+
import "../../../components/ha-alert";
import "../../../components/ha-card";
import "../../../components/ha-settings-row";
import "../../../components/ha-switch";
-import type { HaSwitch } from "../../../components/ha-switch";
-import type { CloudStatusLoggedIn } from "../../../data/cloud";
+import "@material/mwc-button";
+
+import { mdiHelpCircle } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { isEmptyEntityDomainFilter } from "../../../common/entity/entity_domain_filter";
import { updateCloudPref } from "../../../data/cloud";
-import type { ExposeEntitySettings } from "../../../data/expose";
import {
getExposeNewEntities,
setExposeNewEntities,
} from "../../../data/expose";
-import type { HomeAssistant } from "../../../types";
import { brandsUrl } from "../../../util/brands-url";
export class CloudAlexaPref extends LitElement {
diff --git a/src/panels/config/voice-assistants/cloud-discover.ts b/src/panels/config/voice-assistants/cloud-discover.ts
index 2142a911eb..ee1e7302ca 100644
--- a/src/panels/config/voice-assistants/cloud-discover.ts
+++ b/src/panels/config/voice-assistants/cloud-discover.ts
@@ -1,12 +1,15 @@
+import type { HomeAssistant } from "../../../types";
+
+import "../../../components/ha-button";
+import "../../../components/ha-card";
+import "../../../components/ha-svg-icon";
+
import { mdiMicrophoneMessage, mdiOpenInNew } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
-import "../../../components/ha-card";
-import type { HomeAssistant } from "../../../types";
-import { brandsUrl } from "../../../util/brands-url";
-import "../../../components/ha-svg-icon";
-import "../../../components/ha-button";
+
import { isComponentLoaded } from "../../../common/config/is_component_loaded";
+import { brandsUrl } from "../../../util/brands-url";
@customElement("cloud-discover")
export class CloudDiscover extends LitElement {
diff --git a/src/panels/config/voice-assistants/cloud-google-pref.ts b/src/panels/config/voice-assistants/cloud-google-pref.ts
index 3c66c9eccb..5b4773388c 100644
--- a/src/panels/config/voice-assistants/cloud-google-pref.ts
+++ b/src/panels/config/voice-assistants/cloud-google-pref.ts
@@ -1,25 +1,28 @@
-import "@material/mwc-button";
-import { mdiHelpCircle } from "@mdi/js";
-import { css, html, LitElement, nothing } from "lit";
-import { property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { isEmptyEntityDomainFilter } from "../../../common/entity/entity_domain_filter";
+import type { HaSwitch } from "../../../components/ha-switch";
+import type { HaTextField } from "../../../components/ha-textfield";
+import type { CloudStatusLoggedIn } from "../../../data/cloud";
+import type { ExposeEntitySettings } from "../../../data/expose";
+import type { HomeAssistant } from "../../../types";
+
import "../../../components/ha-alert";
import "../../../components/ha-card";
import "../../../components/ha-settings-row";
import "../../../components/ha-switch";
-import type { HaSwitch } from "../../../components/ha-switch";
import "../../../components/ha-textfield";
-import type { HaTextField } from "../../../components/ha-textfield";
-import type { CloudStatusLoggedIn } from "../../../data/cloud";
+import "@material/mwc-button";
+
+import { mdiHelpCircle } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { isEmptyEntityDomainFilter } from "../../../common/entity/entity_domain_filter";
import { updateCloudPref } from "../../../data/cloud";
-import type { ExposeEntitySettings } from "../../../data/expose";
import {
getExposeNewEntities,
setExposeNewEntities,
} from "../../../data/expose";
-import type { HomeAssistant } from "../../../types";
import { brandsUrl } from "../../../util/brands-url";
import { showSaveSuccessToast } from "../../../util/toast-saved-success";
diff --git a/src/panels/config/voice-assistants/debug/assist-debug.ts b/src/panels/config/voice-assistants/debug/assist-debug.ts
index 90316b31c6..e9cf828102 100644
--- a/src/panels/config/voice-assistants/debug/assist-debug.ts
+++ b/src/panels/config/voice-assistants/debug/assist-debug.ts
@@ -1,9 +1,11 @@
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
import type { HomeAssistant, Route } from "../../../../types";
+
import "./assist-pipeline-debug";
import "./assist-pipeline-run-debug";
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("assist-debug")
export class AssistDebug extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/config/voice-assistants/debug/assist-pipeline-debug.ts b/src/panels/config/voice-assistants/debug/assist-pipeline-debug.ts
index 7474aa1555..936e152686 100644
--- a/src/panels/config/voice-assistants/debug/assist-pipeline-debug.ts
+++ b/src/panels/config/voice-assistants/debug/assist-pipeline-debug.ts
@@ -1,3 +1,12 @@
+import type {
+ PipelineRunEvent,
+ AssistRunListing,
+} from "../../../../data/assist_pipeline";
+import type { HomeAssistant, Route } from "../../../../types";
+
+import "../../../../layouts/hass-subpage";
+import "./assist-render-pipeline-events";
+
import {
mdiMicrophoneMessage,
mdiRayEndArrow,
@@ -6,20 +15,14 @@ import {
import { LitElement, css, html } from "lit";
import { customElement, property, state } from "lit/decorators";
import { repeat } from "lit/directives/repeat";
+
import { formatDateTimeWithSeconds } from "../../../../common/datetime/format_date_time";
-import type {
- PipelineRunEvent,
- AssistRunListing,
-} from "../../../../data/assist_pipeline";
import {
getAssistPipelineRun,
listAssistPipelineRuns,
} from "../../../../data/assist_pipeline";
import { showAlertDialog } from "../../../../dialogs/generic/show-dialog-box";
-import "../../../../layouts/hass-subpage";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../../types";
-import "./assist-render-pipeline-events";
@customElement("assist-pipeline-debug")
export class AssistPipelineDebug extends LitElement {
diff --git a/src/panels/config/voice-assistants/debug/assist-pipeline-run-debug.ts b/src/panels/config/voice-assistants/debug/assist-pipeline-run-debug.ts
index db714ea87c..4994ed6ba5 100644
--- a/src/panels/config/voice-assistants/debug/assist-pipeline-run-debug.ts
+++ b/src/panels/config/voice-assistants/debug/assist-pipeline-run-debug.ts
@@ -1,29 +1,32 @@
-import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { extractSearchParam } from "../../../../common/url/search-params";
-import "../../../../components/ha-assist-pipeline-picker";
-import "../../../../components/ha-button";
-import "../../../../components/ha-checkbox";
import type { HaCheckbox } from "../../../../components/ha-checkbox";
-import "../../../../components/ha-formfield";
-import "../../../../components/ha-textfield";
import type { HaTextField } from "../../../../components/ha-textfield";
import type {
PipelineRun,
PipelineRunOptions,
} from "../../../../data/assist_pipeline";
+import type { HomeAssistant } from "../../../../types";
+import type { TemplateResult } from "lit";
+
+import "../../../../components/ha-assist-pipeline-picker";
+import "../../../../components/ha-button";
+import "../../../../components/ha-checkbox";
+import "../../../../components/ha-formfield";
+import "../../../../components/ha-textfield";
+import "../../../../layouts/hass-subpage";
+import "./assist-render-pipeline-run";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { extractSearchParam } from "../../../../common/url/search-params";
import { runDebugAssistPipeline } from "../../../../data/assist_pipeline";
import {
showAlertDialog,
showPromptDialog,
} from "../../../../dialogs/generic/show-dialog-box";
-import "../../../../layouts/hass-subpage";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import { AudioRecorder } from "../../../../util/audio-recorder";
import { fileDownload } from "../../../../util/file_download";
-import "./assist-render-pipeline-run";
@customElement("assist-pipeline-run-debug")
export class AssistPipelineRunDebug extends LitElement {
diff --git a/src/panels/config/voice-assistants/debug/assist-render-pipeline-events.ts b/src/panels/config/voice-assistants/debug/assist-render-pipeline-events.ts
index 9c542c6962..373d759a3e 100644
--- a/src/panels/config/voice-assistants/debug/assist-render-pipeline-events.ts
+++ b/src/panels/config/voice-assistants/debug/assist-render-pipeline-events.ts
@@ -1,15 +1,18 @@
-import type { TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import memoizeOne from "memoize-one";
import type {
PipelineRun,
PipelineRunEvent,
} from "../../../../data/assist_pipeline";
-import { processEvent } from "../../../../data/assist_pipeline";
import type { HomeAssistant } from "../../../../types";
+import type { TemplateResult } from "lit";
+
import "./assist-render-pipeline-run";
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { processEvent } from "../../../../data/assist_pipeline";
+
@customElement("assist-render-pipeline-events")
export class AssistPipelineEvents extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/config/voice-assistants/debug/assist-render-pipeline-run.ts b/src/panels/config/voice-assistants/debug/assist-render-pipeline-run.ts
index e3bb6ef500..8c5a06dac0 100644
--- a/src/panels/config/voice-assistants/debug/assist-render-pipeline-run.ts
+++ b/src/panels/config/voice-assistants/debug/assist-render-pipeline-run.ts
@@ -1,15 +1,18 @@
-import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import "../../../../components/ha-card";
-import "../../../../components/ha-alert";
-import "../../../../components/ha-button";
-import "../../../../components/ha-spinner";
-import "../../../../components/ha-expansion-panel";
import type { PipelineRun } from "../../../../data/assist_pipeline";
import type { HomeAssistant } from "../../../../types";
-import { formatNumber } from "../../../../common/number/format_number";
+import type { TemplateResult } from "lit";
+
+import "../../../../components/ha-alert";
+import "../../../../components/ha-button";
+import "../../../../components/ha-card";
+import "../../../../components/ha-expansion-panel";
+import "../../../../components/ha-spinner";
import "../../../../components/ha-yaml-editor";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { formatNumber } from "../../../../common/number/format_number";
import { showAlertDialog } from "../../../../dialogs/generic/show-dialog-box";
const RUN_DATA = {
diff --git a/src/panels/config/voice-assistants/dialog-expose-entity.ts b/src/panels/config/voice-assistants/dialog-expose-entity.ts
index d8b523c7ef..7d55c72c56 100644
--- a/src/panels/config/voice-assistants/dialog-expose-entity.ts
+++ b/src/panels/config/voice-assistants/dialog-expose-entity.ts
@@ -1,26 +1,29 @@
+import type { ExposeEntitySettings } from "../../../data/expose";
+import type { HomeAssistant } from "../../../types";
+import type { ExposeEntityDialogParams } from "./show-dialog-expose-entity";
+import type { HassEntity } from "home-assistant-js-websocket";
+import type { CSSResultGroup } from "lit";
+
+import "../../../components/ha-check-list-item";
+import "../../../components/ha-dialog";
+import "../../../components/ha-dialog-header";
+import "../../../components/ha-state-icon";
+import "../../../components/search-input";
+import "./entity-voice-settings";
import "@lit-labs/virtualizer";
import "@material/mwc-button";
import "@material/mwc-list";
+
import { mdiClose } from "@mdi/js";
-import type { HassEntity } from "home-assistant-js-websocket";
-import type { CSSResultGroup } from "lit";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../../common/dom/fire_event";
import { computeStateName } from "../../../common/entity/compute_state_name";
-import "../../../components/ha-check-list-item";
-import "../../../components/search-input";
-import "../../../components/ha-dialog";
-import "../../../components/ha-dialog-header";
-import "../../../components/ha-state-icon";
-import type { ExposeEntitySettings } from "../../../data/expose";
import { voiceAssistants } from "../../../data/expose";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
-import "./entity-voice-settings";
-import type { ExposeEntityDialogParams } from "./show-dialog-expose-entity";
@customElement("dialog-expose-entity")
class DialogExposeEntity extends LitElement {
diff --git a/src/panels/config/voice-assistants/dialog-voice-assistant-pipeline-detail.ts b/src/panels/config/voice-assistants/dialog-voice-assistant-pipeline-detail.ts
index 07f596c23e..f17c860949 100644
--- a/src/panels/config/voice-assistants/dialog-voice-assistant-pipeline-detail.ts
+++ b/src/panels/config/voice-assistants/dialog-voice-assistant-pipeline-detail.ts
@@ -1,28 +1,31 @@
-import { mdiClose, mdiDotsVertical } from "@mdi/js";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../common/dom/fire_event";
-import "../../../components/ha-button";
-import "../../../components/ha-dialog-header";
-import "../../../components/ha-form/ha-form";
import type {
AssistPipeline,
AssistPipelineMutableParams,
} from "../../../data/assist_pipeline";
-import { fetchAssistPipelineLanguages } from "../../../data/assist_pipeline";
-import { haStyleDialog } from "../../../resources/styles";
import type { HomeAssistant } from "../../../types";
+import type { VoiceAssistantPipelineDetailsDialogParams } from "./show-dialog-voice-assistant-pipeline-detail";
+import type { CSSResultGroup } from "lit";
+
+import "../../../components/ha-button";
+import "../../../components/ha-dialog-header";
+import "../../../components/ha-form/ha-form";
import "./assist-pipeline-detail/assist-pipeline-detail-config";
import "./assist-pipeline-detail/assist-pipeline-detail-conversation";
import "./assist-pipeline-detail/assist-pipeline-detail-stt";
import "./assist-pipeline-detail/assist-pipeline-detail-tts";
import "./assist-pipeline-detail/assist-pipeline-detail-wakeword";
import "./debug/assist-render-pipeline-events";
-import type { VoiceAssistantPipelineDetailsDialogParams } from "./show-dialog-voice-assistant-pipeline-detail";
-import { computeDomain } from "../../../common/entity/compute_domain";
+
+import { mdiClose, mdiDotsVertical } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../common/dom/fire_event";
import { stopPropagation } from "../../../common/dom/stop_propagation";
+import { computeDomain } from "../../../common/entity/compute_domain";
+import { fetchAssistPipelineLanguages } from "../../../data/assist_pipeline";
+import { haStyleDialog } from "../../../resources/styles";
@customElement("dialog-voice-assistant-pipeline-detail")
export class DialogVoiceAssistantPipelineDetail extends LitElement {
diff --git a/src/panels/config/voice-assistants/dialog-voice-settings.ts b/src/panels/config/voice-assistants/dialog-voice-settings.ts
index 8113e155d7..25eeeb7f71 100644
--- a/src/panels/config/voice-assistants/dialog-voice-settings.ts
+++ b/src/panels/config/voice-assistants/dialog-voice-settings.ts
@@ -1,17 +1,20 @@
-import "@material/mwc-button/mwc-button";
-import { mdiClose, mdiTuneVertical } from "@mdi/js";
+import type { HomeAssistant } from "../../../types";
+import type { VoiceSettingsDialogParams } from "./show-dialog-voice-settings";
import type { CSSResultGroup } from "lit";
+
+import "../../../components/ha-dialog";
+import "../../../components/ha-dialog-header";
+import "./entity-voice-settings";
+import "@material/mwc-button/mwc-button";
+
+import { mdiClose, mdiTuneVertical } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../../../common/dom/fire_event";
import { computeStateName } from "../../../common/entity/compute_state_name";
-import "../../../components/ha-dialog-header";
-import "../../../components/ha-dialog";
import { showMoreInfoDialog } from "../../../dialogs/more-info/show-ha-more-info-dialog";
import { haStyle, haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
-import "./entity-voice-settings";
-import type { VoiceSettingsDialogParams } from "./show-dialog-voice-settings";
@customElement("dialog-voice-settings")
class DialogVoiceSettings extends LitElement {
diff --git a/src/panels/config/voice-assistants/entity-voice-settings.ts b/src/panels/config/voice-assistants/entity-voice-settings.ts
index dc166d04df..2d46a7fa29 100644
--- a/src/panels/config/voice-assistants/entity-voice-settings.ts
+++ b/src/panels/config/voice-assistants/entity-voice-settings.ts
@@ -1,44 +1,47 @@
-import { mdiAlertCircle } from "@mdi/js";
-import type { CSSResultGroup, PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { isComponentLoaded } from "../../../common/config/is_component_loaded";
-import { fireEvent } from "../../../common/dom/fire_event";
import type {
EntityDomainFilter,
EntityDomainFilterFunc,
} from "../../../common/entity/entity_domain_filter";
+import type { CloudStatus, CloudStatusLoggedIn } from "../../../data/cloud";
+import type { ExtEntityRegistryEntry } from "../../../data/entity_registry";
+import type { ExposeEntitySettings } from "../../../data/expose";
+import type { GoogleEntity } from "../../../data/google_assistant";
+import type { HomeAssistant } from "../../../types";
+import type { EntityRegistrySettings } from "../entities/entity-registry-settings";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../components/ha-alert";
+import "../../../components/ha-aliases-editor";
+import "../../../components/ha-checkbox";
+import "../../../components/ha-formfield";
+import "../../../components/ha-settings-row";
+import "../../../components/ha-switch";
+
+import { mdiAlertCircle } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { isComponentLoaded } from "../../../common/config/is_component_loaded";
+import { fireEvent } from "../../../common/dom/fire_event";
import {
generateEntityDomainFilter,
isEmptyEntityDomainFilter,
} from "../../../common/entity/entity_domain_filter";
-import "../../../components/ha-aliases-editor";
-import "../../../components/ha-settings-row";
-import "../../../components/ha-switch";
-import "../../../components/ha-formfield";
-import "../../../components/ha-checkbox";
-import "../../../components/ha-alert";
import { fetchCloudAlexaEntity } from "../../../data/alexa";
-import type { CloudStatus, CloudStatusLoggedIn } from "../../../data/cloud";
import {
fetchCloudStatus,
updateCloudGoogleEntityConfig,
} from "../../../data/cloud";
-import type { ExtEntityRegistryEntry } from "../../../data/entity_registry";
import {
getExtendedEntityRegistryEntry,
updateEntityRegistryEntry,
} from "../../../data/entity_registry";
-import type { GoogleEntity } from "../../../data/google_assistant";
-import { fetchCloudGoogleEntity } from "../../../data/google_assistant";
-import type { ExposeEntitySettings } from "../../../data/expose";
import { exposeEntities, voiceAssistants } from "../../../data/expose";
+import { fetchCloudGoogleEntity } from "../../../data/google_assistant";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { brandsUrl } from "../../../util/brands-url";
-import type { EntityRegistrySettings } from "../entities/entity-registry-settings";
import { documentationUrl } from "../../../util/documentation-url";
@customElement("entity-voice-settings")
diff --git a/src/panels/config/voice-assistants/expose/expose-assistant-icon.ts b/src/panels/config/voice-assistants/expose/expose-assistant-icon.ts
index 4eb905b9ea..3bf4884ad5 100644
--- a/src/panels/config/voice-assistants/expose/expose-assistant-icon.ts
+++ b/src/panels/config/voice-assistants/expose/expose-assistant-icon.ts
@@ -1,12 +1,15 @@
+import type { HomeAssistant } from "../../../../types";
+
+import "../../../../components/ha-svg-icon";
+import "../../../../components/ha-tooltip";
+
import { mdiAlertCircle } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
+
import { voiceAssistants } from "../../../../data/expose";
-import type { HomeAssistant } from "../../../../types";
import { brandsUrl } from "../../../../util/brands-url";
-import "../../../../components/ha-svg-icon";
-import "../../../../components/ha-tooltip";
@customElement("voice-assistants-expose-assistant-icon")
export class VoiceAssistantExposeAssistantIcon extends LitElement {
diff --git a/src/panels/config/voice-assistants/ha-config-voice-assistants-assistants.ts b/src/panels/config/voice-assistants/ha-config-voice-assistants-assistants.ts
index ff959d7830..0a31a2f8cd 100644
--- a/src/panels/config/voice-assistants/ha-config-voice-assistants-assistants.ts
+++ b/src/panels/config/voice-assistants/ha-config-voice-assistants-assistants.ts
@@ -1,16 +1,18 @@
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import type { CloudStatus } from "../../../data/cloud";
import type { ExposeEntitySettings } from "../../../data/expose";
+import type { HomeAssistant, Route } from "../../../types";
import "../../../layouts/hass-loading-screen";
import "../../../layouts/hass-tabs-subpage";
-import type { HomeAssistant, Route } from "../../../types";
import "./assist-pref";
import "./cloud-alexa-pref";
import "./cloud-discover";
import "./cloud-google-pref";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import { voiceAssistantTabs } from "./ha-config-voice-assistants";
@customElement("ha-config-voice-assistants-assistants")
diff --git a/src/panels/config/voice-assistants/ha-config-voice-assistants-expose.ts b/src/panels/config/voice-assistants/ha-config-voice-assistants-expose.ts
index 7b4ff58907..d571b40ff0 100644
--- a/src/panels/config/voice-assistants/ha-config-voice-assistants-expose.ts
+++ b/src/panels/config/voice-assistants/ha-config-voice-assistants-expose.ts
@@ -1,24 +1,6 @@
-import { consume } from "@lit-labs/context";
-import {
- mdiCloseBoxMultiple,
- mdiCloseCircleOutline,
- mdiPlus,
- mdiPlusBoxMultiple,
-} from "@mdi/js";
-import type { CSSResultGroup, PropertyValues } from "lit";
-import { LitElement, css, html } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { ifDefined } from "lit/directives/if-defined";
-import memoize from "memoize-one";
import type { HASSDomEvent } from "../../../common/dom/fire_event";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { computeStateName } from "../../../common/entity/compute_state_name";
import type { EntityDomainFilter } from "../../../common/entity/entity_domain_filter";
-import {
- generateEntityDomainFilter,
- isEmptyEntityDomainFilter,
-} from "../../../common/entity/entity_domain_filter";
-import { navigate } from "../../../common/navigate";
+import type { LocalizeFunc } from "../../../common/translations/localize";
import type {
DataTableColumnContainer,
DataTableRowData,
@@ -26,32 +8,53 @@ import type {
SelectionChangedEvent,
SortingChangedEvent,
} from "../../../components/data-table/ha-data-table";
+import type { AlexaEntity } from "../../../data/alexa";
+import type { CloudStatus, CloudStatusLoggedIn } from "../../../data/cloud";
+import type { ExtEntityRegistryEntry } from "../../../data/entity_registry";
+import type { ExposeEntitySettings } from "../../../data/expose";
+import type { GoogleEntity } from "../../../data/google_assistant";
+import type { HaTabsSubpageDataTable } from "../../../layouts/hass-tabs-subpage-data-table";
+import type { HomeAssistant, Route } from "../../../types";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
import "../../../components/ha-fab";
import "../../../components/ha-tooltip";
-import type { AlexaEntity } from "../../../data/alexa";
-import { fetchCloudAlexaEntities } from "../../../data/alexa";
-import type { CloudStatus, CloudStatusLoggedIn } from "../../../data/cloud";
-import { entitiesContext } from "../../../data/context";
-import type { ExtEntityRegistryEntry } from "../../../data/entity_registry";
-import { getExtendedEntityRegistryEntries } from "../../../data/entity_registry";
-import type { ExposeEntitySettings } from "../../../data/expose";
-import { exposeEntities, voiceAssistants } from "../../../data/expose";
-import type { GoogleEntity } from "../../../data/google_assistant";
-import { fetchCloudGoogleEntities } from "../../../data/google_assistant";
-import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box";
import "../../../layouts/hass-loading-screen";
import "../../../layouts/hass-tabs-subpage-data-table";
-import type { HaTabsSubpageDataTable } from "../../../layouts/hass-tabs-subpage-data-table";
-import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant, Route } from "../../../types";
-import type { LocalizeFunc } from "../../../common/translations/localize";
import "./expose/expose-assistant-icon";
+
+import { consume } from "@lit-labs/context";
+import {
+ mdiCloseBoxMultiple,
+ mdiCloseCircleOutline,
+ mdiPlus,
+ mdiPlusBoxMultiple,
+} from "@mdi/js";
+import { LitElement, css, html } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import { ifDefined } from "lit/directives/if-defined";
+import memoize from "memoize-one";
+
+import { storage } from "../../../common/decorators/storage";
+import { fireEvent } from "../../../common/dom/fire_event";
+import { computeDomain } from "../../../common/entity/compute_domain";
+import { computeStateName } from "../../../common/entity/compute_state_name";
+import {
+ generateEntityDomainFilter,
+ isEmptyEntityDomainFilter,
+} from "../../../common/entity/entity_domain_filter";
+import { navigate } from "../../../common/navigate";
+import { fetchCloudAlexaEntities } from "../../../data/alexa";
+import { entitiesContext } from "../../../data/context";
+import { getExtendedEntityRegistryEntries } from "../../../data/entity_registry";
+import { exposeEntities, voiceAssistants } from "../../../data/expose";
+import { fetchCloudGoogleEntities } from "../../../data/google_assistant";
+import { domainToName } from "../../../data/integration";
+import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box";
+import { haStyle } from "../../../resources/styles";
import { voiceAssistantTabs } from "./ha-config-voice-assistants";
import { showExposeEntityDialog } from "./show-dialog-expose-entity";
import { showVoiceSettingsDialog } from "./show-dialog-voice-settings";
-import { storage } from "../../../common/decorators/storage";
-import { domainToName } from "../../../data/integration";
-import { computeDomain } from "../../../common/entity/compute_domain";
@customElement("ha-config-voice-assistants-expose")
export class VoiceAssistantsExpose extends LitElement {
diff --git a/src/panels/config/voice-assistants/ha-config-voice-assistants.ts b/src/panels/config/voice-assistants/ha-config-voice-assistants.ts
index 33f77f2c76..026f4b35e9 100644
--- a/src/panels/config/voice-assistants/ha-config-voice-assistants.ts
+++ b/src/panels/config/voice-assistants/ha-config-voice-assistants.ts
@@ -1,14 +1,16 @@
+import type { CloudStatus } from "../../../data/cloud";
+import type { ExposeEntitySettings } from "../../../data/expose";
+import type { RouterOptions } from "../../../layouts/hass-router-page";
+import type { HomeAssistant } from "../../../types";
+import type { PropertyValues } from "lit";
+
import { consume } from "@lit-labs/context";
import { mdiDevices, mdiMicrophone } from "@mdi/js";
-import type { PropertyValues } from "lit";
import { customElement, property, state } from "lit/decorators";
-import type { CloudStatus } from "../../../data/cloud";
+
import { entitiesContext } from "../../../data/context";
-import type { ExposeEntitySettings } from "../../../data/expose";
import { listExposedEntities } from "../../../data/expose";
-import type { RouterOptions } from "../../../layouts/hass-router-page";
import { HassRouterPage } from "../../../layouts/hass-router-page";
-import type { HomeAssistant } from "../../../types";
export const voiceAssistantTabs = [
{
diff --git a/src/panels/config/voice-assistants/show-dialog-expose-entity.ts b/src/panels/config/voice-assistants/show-dialog-expose-entity.ts
index 01d74fc098..0ac70d86a7 100644
--- a/src/panels/config/voice-assistants/show-dialog-expose-entity.ts
+++ b/src/panels/config/voice-assistants/show-dialog-expose-entity.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type { ExposeEntitySettings } from "../../../data/expose";
+import { fireEvent } from "../../../common/dom/fire_event";
+
export interface ExposeEntityDialogParams {
filterAssistants: string[];
exposedEntities: Record;
diff --git a/src/panels/config/voice-assistants/show-dialog-voice-assistant-pipeline-detail.ts b/src/panels/config/voice-assistants/show-dialog-voice-assistant-pipeline-detail.ts
index 887763e08d..b4d8b9fd2d 100644
--- a/src/panels/config/voice-assistants/show-dialog-voice-assistant-pipeline-detail.ts
+++ b/src/panels/config/voice-assistants/show-dialog-voice-assistant-pipeline-detail.ts
@@ -1,9 +1,10 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type {
AssistPipeline,
AssistPipelineMutableParams,
} from "../../../data/assist_pipeline";
+import { fireEvent } from "../../../common/dom/fire_event";
+
export interface VoiceAssistantPipelineDetailsDialogParams {
cloudActiveSubscription?: boolean;
pipeline?: AssistPipeline;
diff --git a/src/panels/config/voice-assistants/show-dialog-voice-settings.ts b/src/panels/config/voice-assistants/show-dialog-voice-settings.ts
index 25794d7a17..3dcb238228 100644
--- a/src/panels/config/voice-assistants/show-dialog-voice-settings.ts
+++ b/src/panels/config/voice-assistants/show-dialog-voice-settings.ts
@@ -1,7 +1,8 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type { ExtEntityRegistryEntry } from "../../../data/entity_registry";
import type { ExposeEntitySettings } from "../../../data/expose";
+import { fireEvent } from "../../../common/dom/fire_event";
+
export interface VoiceSettingsDialogParams {
entityId: string;
exposed: ExposeEntitySettings;
diff --git a/src/panels/config/zone/dialog-home-zone-detail.ts b/src/panels/config/zone/dialog-home-zone-detail.ts
index 0a25f8d713..244be66d30 100644
--- a/src/panels/config/zone/dialog-home-zone-detail.ts
+++ b/src/panels/config/zone/dialog-home-zone-detail.ts
@@ -1,15 +1,18 @@
-import "@material/mwc-button";
+import type { HomeZoneMutableParams } from "../../../data/zone";
+import type { HomeAssistant } from "../../../types";
+import type { HomeZoneDetailDialogParams } from "./show-dialog-home-zone-detail";
import type { CSSResultGroup } from "lit";
+
+import "../../../components/ha-form/ha-form";
+import "@material/mwc-button";
+
import { css, html, LitElement, nothing } from "lit";
import { property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../../common/dom/fire_event";
import { createCloseHeading } from "../../../components/ha-dialog";
-import "../../../components/ha-form/ha-form";
-import type { HomeZoneMutableParams } from "../../../data/zone";
import { haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
-import type { HomeZoneDetailDialogParams } from "./show-dialog-home-zone-detail";
const SCHEMA = [
{
diff --git a/src/panels/config/zone/dialog-zone-detail.ts b/src/panels/config/zone/dialog-zone-detail.ts
index 065d1e5149..b2cc5d4fcf 100644
--- a/src/panels/config/zone/dialog-zone-detail.ts
+++ b/src/panels/config/zone/dialog-zone-detail.ts
@@ -1,18 +1,21 @@
-import "@material/mwc-button";
+import type { SchemaUnion } from "../../../components/ha-form/types";
+import type { ZoneMutableParams } from "../../../data/zone";
+import type { HomeAssistant } from "../../../types";
+import type { ZoneDetailDialogParams } from "./show-dialog-zone-detail";
import type { CSSResultGroup } from "lit";
+
+import "../../../components/ha-form/ha-form";
+import "@material/mwc-button";
+
import { css, html, LitElement, nothing } from "lit";
import { property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../../common/dom/fire_event";
import { addDistanceToCoord } from "../../../common/location/add_distance_to_coord";
import { createCloseHeading } from "../../../components/ha-dialog";
-import "../../../components/ha-form/ha-form";
-import type { SchemaUnion } from "../../../components/ha-form/types";
-import type { ZoneMutableParams } from "../../../data/zone";
import { getZoneEditorInitData } from "../../../data/zone";
import { haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
-import type { ZoneDetailDialogParams } from "./show-dialog-zone-detail";
class DialogZoneDetail extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/config/zone/ha-config-zone.ts b/src/panels/config/zone/ha-config-zone.ts
index 626bccfc2f..836058fd55 100644
--- a/src/panels/config/zone/ha-config-zone.ts
+++ b/src/panels/config/zone/ha-config-zone.ts
@@ -1,14 +1,16 @@
-import "@material/mwc-list/mwc-list";
-import { mdiPencil, mdiPencilOff, mdiPlus } from "@mdi/js";
+import type {
+ HaLocationsEditor,
+ MarkerLocation,
+} from "../../../components/map/ha-locations-editor";
+import type {
+ HomeZoneMutableParams,
+ Zone,
+ ZoneMutableParams,
+} from "../../../data/zone";
+import type { HomeAssistant, Route } from "../../../types";
import type { HassEntity, UnsubscribeFunc } from "home-assistant-js-websocket";
import type { PropertyValues, TemplateResult } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { computeStateDomain } from "../../../common/entity/compute_state_domain";
-import { shouldHandleRequestSelectedEvent } from "../../../common/mwc/handle-request-selected-event";
-import { navigate } from "../../../common/navigate";
-import { stringCompare } from "../../../common/string/compare";
+
import "../../../components/ha-card";
import "../../../components/ha-fab";
import "../../../components/ha-icon-button";
@@ -16,17 +18,22 @@ import "../../../components/ha-list-item";
import "../../../components/ha-svg-icon";
import "../../../components/ha-tooltip";
import "../../../components/map/ha-locations-editor";
-import type {
- HaLocationsEditor,
- MarkerLocation,
-} from "../../../components/map/ha-locations-editor";
+import "../../../layouts/hass-loading-screen";
+import "../../../layouts/hass-tabs-subpage";
+import "../ha-config-section";
+import "@material/mwc-list/mwc-list";
+
+import { mdiPencil, mdiPencilOff, mdiPlus } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { computeStateDomain } from "../../../common/entity/compute_state_domain";
+import { shouldHandleRequestSelectedEvent } from "../../../common/mwc/handle-request-selected-event";
+import { navigate } from "../../../common/navigate";
+import { stringCompare } from "../../../common/string/compare";
import { saveCoreConfig } from "../../../data/core";
import { subscribeEntityRegistry } from "../../../data/entity_registry";
-import type {
- HomeZoneMutableParams,
- Zone,
- ZoneMutableParams,
-} from "../../../data/zone";
import {
createZone,
deleteZone,
@@ -37,11 +44,7 @@ import {
showAlertDialog,
showConfirmationDialog,
} from "../../../dialogs/generic/show-dialog-box";
-import "../../../layouts/hass-loading-screen";
-import "../../../layouts/hass-tabs-subpage";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
-import type { HomeAssistant, Route } from "../../../types";
-import "../ha-config-section";
import { configSections } from "../ha-panel-config";
import { showHomeZoneDetailDialog } from "./show-dialog-home-zone-detail";
import { showZoneDetailDialog } from "./show-dialog-zone-detail";
diff --git a/src/panels/config/zone/show-dialog-home-zone-detail.ts b/src/panels/config/zone/show-dialog-home-zone-detail.ts
index 9c8f3ba3b2..c16fb22771 100644
--- a/src/panels/config/zone/show-dialog-home-zone-detail.ts
+++ b/src/panels/config/zone/show-dialog-home-zone-detail.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type { HomeZoneMutableParams } from "../../../data/zone";
+import { fireEvent } from "../../../common/dom/fire_event";
+
export interface HomeZoneDetailDialogParams {
updateEntry?: (updates: HomeZoneMutableParams) => Promise;
}
diff --git a/src/panels/config/zone/show-dialog-zone-detail.ts b/src/panels/config/zone/show-dialog-zone-detail.ts
index edb02c2a46..64d088a567 100644
--- a/src/panels/config/zone/show-dialog-zone-detail.ts
+++ b/src/panels/config/zone/show-dialog-zone-detail.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type { Zone, ZoneMutableParams } from "../../../data/zone";
+import { fireEvent } from "../../../common/dom/fire_event";
+
export interface ZoneDetailDialogParams {
entry?: Zone;
createEntry: (values: ZoneMutableParams) => Promise;
diff --git a/src/panels/custom/ha-panel-custom.ts b/src/panels/custom/ha-panel-custom.ts
index e7eaf5442e..66ef005d0b 100644
--- a/src/panels/custom/ha-panel-custom.ts
+++ b/src/panels/custom/ha-panel-custom.ts
@@ -1,11 +1,13 @@
-import type { PropertyValues } from "lit";
-import { ReactiveElement } from "lit";
-import { property } from "lit/decorators";
import type { NavigateOptions } from "../../common/navigate";
-import { navigate } from "../../common/navigate";
-import { deepEqual } from "../../common/util/deep-equal";
import type { CustomPanelInfo } from "../../data/panel_custom";
import type { HomeAssistant, Route } from "../../types";
+import type { PropertyValues } from "lit";
+
+import { ReactiveElement } from "lit";
+import { property } from "lit/decorators";
+
+import { navigate } from "../../common/navigate";
+import { deepEqual } from "../../common/util/deep-equal";
import { createCustomPanelElement } from "../../util/custom-panel/create-custom-panel-element";
import {
getUrl,
diff --git a/src/panels/developer-tools/action/developer-tools-action.ts b/src/panels/developer-tools/action/developer-tools-action.ts
index 83cf76526f..fe5961362d 100644
--- a/src/panels/developer-tools/action/developer-tools-action.ts
+++ b/src/panels/developer-tools/action/developer-tools-action.ts
@@ -1,42 +1,44 @@
-import { mdiHelpCircle } from "@mdi/js";
-import type { HassService } from "home-assistant-js-websocket";
-import { ERR_CONNECTION_LOST } from "home-assistant-js-websocket";
-import { load } from "js-yaml";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { storage } from "../../../common/decorators/storage";
-import { computeDomain } from "../../../common/entity/compute_domain";
-import { computeObjectId } from "../../../common/entity/compute_object_id";
-import { hasTemplate, isTemplate } from "../../../common/string/has-template";
import type { LocalizeFunc } from "../../../common/translations/localize";
-import { extractSearchParam } from "../../../common/url/search-params";
-import { copyToClipboard } from "../../../common/util/copy-clipboard";
import type { HaProgressButton } from "../../../components/buttons/ha-progress-button";
-import { showToast } from "../../../util/toast";
+import type { HaYamlEditor } from "../../../components/ha-yaml-editor";
+import type { Action, ServiceAction } from "../../../data/script";
+import type { HomeAssistant } from "../../../types";
+import type { HassService } from "home-assistant-js-websocket";
+import type { CSSResultGroup } from "lit";
+import "../../../components/buttons/ha-progress-button";
import "../../../components/entity/ha-entity-picker";
import "../../../components/ha-alert";
import "../../../components/ha-button";
import "../../../components/ha-card";
-import "../../../components/buttons/ha-progress-button";
import "../../../components/ha-expansion-panel";
import "../../../components/ha-icon-button";
import "../../../components/ha-service-control";
import "../../../components/ha-service-picker";
import "../../../components/ha-yaml-editor";
-import type { HaYamlEditor } from "../../../components/ha-yaml-editor";
+
+import { mdiHelpCircle } from "@mdi/js";
+import { ERR_CONNECTION_LOST } from "home-assistant-js-websocket";
+import { load } from "js-yaml";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { storage } from "../../../common/decorators/storage";
+import { computeDomain } from "../../../common/entity/compute_domain";
+import { computeObjectId } from "../../../common/entity/compute_object_id";
+import { hasTemplate, isTemplate } from "../../../common/string/has-template";
+import { extractSearchParam } from "../../../common/url/search-params";
+import { copyToClipboard } from "../../../common/util/copy-clipboard";
import { forwardHaptic } from "../../../data/haptics";
-import type { Action, ServiceAction } from "../../../data/script";
import { migrateAutomationAction } from "../../../data/script";
import {
callExecuteScript,
serviceCallWillDisconnect,
} from "../../../data/service";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { documentationUrl } from "../../../util/documentation-url";
+import { showToast } from "../../../util/toast";
@customElement("developer-tools-action")
class HaPanelDevAction extends LitElement {
diff --git a/src/panels/developer-tools/assist/developer-tools-assist.ts b/src/panels/developer-tools/assist/developer-tools-assist.ts
index a10e169ea2..6c7fdafa68 100644
--- a/src/panels/developer-tools/assist/developer-tools-assist.ts
+++ b/src/panels/developer-tools/assist/developer-tools-assist.ts
@@ -1,22 +1,25 @@
-import { mdiDownload, mdiTrashCan } from "@mdi/js";
-import { dump } from "js-yaml";
+import type { HaTextArea } from "../../../components/ha-textarea";
+import type { AssitDebugResult } from "../../../data/conversation";
+import type { HomeAssistant } from "../../../types";
import type { CSSResultGroup } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { storage } from "../../../common/decorators/storage";
-import { formatLanguageCode } from "../../../common/language/format_language";
+
import "../../../components/ha-alert";
import "../../../components/ha-button";
import "../../../components/ha-card";
import "../../../components/ha-code-editor";
import "../../../components/ha-language-picker";
import "../../../components/ha-textarea";
-import type { HaTextArea } from "../../../components/ha-textarea";
-import type { AssitDebugResult } from "../../../data/conversation";
+
+import { mdiDownload, mdiTrashCan } from "@mdi/js";
+import { dump } from "js-yaml";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { storage } from "../../../common/decorators/storage";
+import { formatLanguageCode } from "../../../common/language/format_language";
import { debugAgent, listAgents } from "../../../data/conversation";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { fileDownload } from "../../../util/file_download";
interface SentenceParsingResult {
diff --git a/src/panels/developer-tools/debug/developer-tools-debug.ts b/src/panels/developer-tools/debug/developer-tools-debug.ts
index 360fefb030..64a4d6358b 100644
--- a/src/panels/developer-tools/debug/developer-tools-debug.ts
+++ b/src/panels/developer-tools/debug/developer-tools-debug.ts
@@ -1,10 +1,13 @@
+import type { HomeAssistant } from "../../../types";
+
+import "../../../components/ha-card";
+import "./ha-debug-connection-row";
+
import { LitElement, css, html } from "lit";
import { customElement, property } from "lit/decorators";
-import "../../../components/ha-card";
+
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
-import "./ha-debug-connection-row";
@customElement("developer-tools-debug")
class HaPanelDevDebug extends SubscribeMixin(LitElement) {
diff --git a/src/panels/developer-tools/debug/ha-debug-connection-row.ts b/src/panels/developer-tools/debug/ha-debug-connection-row.ts
index c97172c9c2..12acfafed6 100644
--- a/src/panels/developer-tools/debug/ha-debug-connection-row.ts
+++ b/src/panels/developer-tools/debug/ha-debug-connection-row.ts
@@ -1,10 +1,13 @@
-import type { TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import "../../../components/ha-settings-row";
-import "../../../components/ha-switch";
import type { HaSwitch } from "../../../components/ha-switch";
import type { HomeAssistant } from "../../../types";
+import type { TemplateResult } from "lit";
+
+import "../../../components/ha-settings-row";
+import "../../../components/ha-switch";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { storeState } from "../../../util/ha-pref-storage";
@customElement("ha-debug-connection-row")
diff --git a/src/panels/developer-tools/developer-tools-router.ts b/src/panels/developer-tools/developer-tools-router.ts
index 9b7f8b5fc7..3a61ae1618 100644
--- a/src/panels/developer-tools/developer-tools-router.ts
+++ b/src/panels/developer-tools/developer-tools-router.ts
@@ -1,8 +1,10 @@
-import { customElement, property } from "lit/decorators";
import type { RouterOptions } from "../../layouts/hass-router-page";
-import { HassRouterPage } from "../../layouts/hass-router-page";
import type { HomeAssistant } from "../../types";
+import { customElement, property } from "lit/decorators";
+
+import { HassRouterPage } from "../../layouts/hass-router-page";
+
@customElement("developer-tools-router")
class DeveloperToolsRouter extends HassRouterPage {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/developer-tools/event/developer-tools-event.ts b/src/panels/developer-tools/event/developer-tools-event.ts
index abad0c3701..9faa18136d 100644
--- a/src/panels/developer-tools/event/developer-tools-event.ts
+++ b/src/panels/developer-tools/event/developer-tools-event.ts
@@ -1,17 +1,20 @@
+import type { HomeAssistant } from "../../../types";
import type { CSSResultGroup, TemplateResult } from "lit";
-import { LitElement, css, html } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import "../../../components/ha-yaml-editor";
-import "../../../components/ha-textfield";
+
import "../../../components/ha-button";
import "../../../components/ha-card";
-import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
-import { documentationUrl } from "../../../util/documentation-url";
+import "../../../components/ha-textfield";
+import "../../../components/ha-yaml-editor";
import "./event-subscribe-card";
import "./events-list";
-import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
+
+import { LitElement, css, html } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../../../common/dom/fire_event";
+import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
+import { haStyle } from "../../../resources/styles";
+import { documentationUrl } from "../../../util/documentation-url";
@customElement("developer-tools-event")
class HaPanelDevEvent extends LitElement {
diff --git a/src/panels/developer-tools/event/event-subscribe-card.ts b/src/panels/developer-tools/event/event-subscribe-card.ts
index fb429b8a83..5fb6ec0fa8 100644
--- a/src/panels/developer-tools/event/event-subscribe-card.ts
+++ b/src/panels/developer-tools/event/event-subscribe-card.ts
@@ -1,15 +1,18 @@
+import type { HomeAssistant } from "../../../types";
import type { HassEvent } from "home-assistant-js-websocket";
import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { repeat } from "lit/directives/repeat";
-import { formatTime } from "../../../common/datetime/format_time";
+
+import "../../../components/ha-alert";
+import "../../../components/ha-button";
import "../../../components/ha-card";
import "../../../components/ha-textfield";
import "../../../components/ha-yaml-editor";
-import "../../../components/ha-button";
-import "../../../components/ha-alert";
-import type { HomeAssistant } from "../../../types";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { repeat } from "lit/directives/repeat";
+
+import { formatTime } from "../../../common/datetime/format_time";
@customElement("event-subscribe-card")
class EventSubscribeCard extends LitElement {
diff --git a/src/panels/developer-tools/event/events-list.ts b/src/panels/developer-tools/event/events-list.ts
index f0f61f8369..ed0d640c3d 100644
--- a/src/panels/developer-tools/event/events-list.ts
+++ b/src/panels/developer-tools/event/events-list.ts
@@ -1,9 +1,11 @@
+import type { HomeAssistant } from "../../../types";
import type { TemplateResult } from "lit";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
-import { stringCompare } from "../../../common/string/compare";
+
import { fireEvent } from "../../../common/dom/fire_event";
-import type { HomeAssistant } from "../../../types";
+import { stringCompare } from "../../../common/string/compare";
interface EventListenerCount {
event: string;
diff --git a/src/panels/developer-tools/ha-panel-developer-tools.ts b/src/panels/developer-tools/ha-panel-developer-tools.ts
index 23b299cfcd..8a223f15d1 100644
--- a/src/panels/developer-tools/ha-panel-developer-tools.ts
+++ b/src/panels/developer-tools/ha-panel-developer-tools.ts
@@ -1,18 +1,21 @@
-import { mdiDotsVertical } from "@mdi/js";
-import "@polymer/paper-tabs/paper-tab";
-import "@polymer/paper-tabs/paper-tabs";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
+import type { HomeAssistant, Route } from "../../types";
import type { ActionDetail } from "@material/mwc-list";
-import { navigate } from "../../common/navigate";
-import "../../components/ha-menu-button";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
import "../../components/ha-button-menu";
import "../../components/ha-icon-button";
import "../../components/ha-list-item";
-import { haStyle } from "../../resources/styles";
-import type { HomeAssistant, Route } from "../../types";
+import "../../components/ha-menu-button";
import "./developer-tools-router";
+import "@polymer/paper-tabs/paper-tab";
+import "@polymer/paper-tabs/paper-tabs";
+
+import { mdiDotsVertical } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { navigate } from "../../common/navigate";
+import { haStyle } from "../../resources/styles";
@customElement("ha-panel-developer-tools")
class PanelDeveloperTools extends LitElement {
diff --git a/src/panels/developer-tools/state/developer-tools-state.ts b/src/panels/developer-tools/state/developer-tools-state.ts
index 5f432dae87..45e8f2ca8b 100644
--- a/src/panels/developer-tools/state/developer-tools-state.ts
+++ b/src/panels/developer-tools/state/developer-tools-state.ts
@@ -1,24 +1,12 @@
-import {
- mdiClipboardTextMultipleOutline,
- mdiInformationOutline,
- mdiRefresh,
-} from "@mdi/js";
-import { addHours } from "date-fns";
+import type { HaYamlEditor } from "../../../components/ha-yaml-editor";
+import type { HomeAssistant } from "../../../types";
import type {
HassEntities,
HassEntity,
HassEntityAttributeBase,
} from "home-assistant-js-websocket";
-import { dump } from "js-yaml";
import type { CSSResultGroup } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { formatDateTimeWithSeconds } from "../../../common/datetime/format_date_time";
-import { storage } from "../../../common/decorators/storage";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { escapeRegExp } from "../../../common/string/escape_regexp";
-import { copyToClipboard } from "../../../common/util/copy-clipboard";
+
import "../../../components/entity/ha-entity-picker";
import "../../../components/ha-alert";
import "../../../components/ha-button";
@@ -28,12 +16,27 @@ import "../../../components/ha-icon-button";
import "../../../components/ha-svg-icon";
import "../../../components/ha-tip";
import "../../../components/ha-yaml-editor";
-import type { HaYamlEditor } from "../../../components/ha-yaml-editor";
import "../../../components/search-input";
+
+import {
+ mdiClipboardTextMultipleOutline,
+ mdiInformationOutline,
+ mdiRefresh,
+} from "@mdi/js";
+import { addHours } from "date-fns";
+import { dump } from "js-yaml";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { formatDateTimeWithSeconds } from "../../../common/datetime/format_date_time";
+import { storage } from "../../../common/decorators/storage";
+import { fireEvent } from "../../../common/dom/fire_event";
+import { escapeRegExp } from "../../../common/string/escape_regexp";
+import { copyToClipboard } from "../../../common/util/copy-clipboard";
import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
-import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { showShortcutsDialog } from "../../../dialogs/shortcuts/show-shortcuts-dialog";
+import { haStyle } from "../../../resources/styles";
@customElement("developer-tools-state")
class HaPanelDevState extends LitElement {
diff --git a/src/panels/developer-tools/statistics/developer-tools-statistics.ts b/src/panels/developer-tools/statistics/developer-tools-statistics.ts
index 6bf45ae2cf..07fc63600e 100644
--- a/src/panels/developer-tools/statistics/developer-tools-statistics.ts
+++ b/src/panels/developer-tools/statistics/developer-tools-statistics.ts
@@ -1,4 +1,27 @@
+import type { HASSDomEvent } from "../../../common/dom/fire_event";
+import type { LocalizeFunc } from "../../../common/translations/localize";
+import type {
+ DataTableColumnContainer,
+ HaDataTable,
+ SelectionChangedEvent,
+ SortingDirection,
+} from "../../../components/data-table/ha-data-table";
+import type { HaMenu } from "../../../components/ha-menu";
+import type {
+ StatisticsMetaData,
+ StatisticsValidationResult,
+} from "../../../data/recorder";
+import type { HomeAssistant } from "../../../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../components/chips/ha-assist-chip";
+import "../../../components/data-table/ha-data-table";
+import "../../../components/ha-dialog";
+import "../../../components/ha-md-button-menu";
+import "../../../components/ha-md-menu-item";
+import "../../../components/search-input-outlined";
import "@material/mwc-button/mwc-button";
+
import {
mdiArrowDown,
mdiArrowUp,
@@ -10,34 +33,14 @@ import {
mdiUnfoldLessHorizontal,
mdiUnfoldMoreHorizontal,
} from "@mdi/js";
-
-import type { HassEntity } from "home-assistant-js-websocket";
import { type CSSResultGroup, LitElement, css, html, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import memoizeOne from "memoize-one";
-import type { HASSDomEvent } from "../../../common/dom/fire_event";
+
import { fireEvent } from "../../../common/dom/fire_event";
import { computeStateName } from "../../../common/entity/compute_state_name";
-import type { LocalizeFunc } from "../../../common/translations/localize";
-import "../../../components/chips/ha-assist-chip";
-import "../../../components/data-table/ha-data-table";
-import type {
- DataTableColumnContainer,
- HaDataTable,
- SelectionChangedEvent,
- SortingDirection,
-} from "../../../components/data-table/ha-data-table";
import { showDataTableSettingsDialog } from "../../../components/data-table/show-dialog-data-table-settings";
-import "../../../components/ha-md-button-menu";
-import "../../../components/ha-dialog";
-import type { HaMenu } from "../../../components/ha-menu";
-import "../../../components/ha-md-menu-item";
-import "../../../components/search-input-outlined";
-import type {
- StatisticsMetaData,
- StatisticsValidationResult,
-} from "../../../data/recorder";
import {
clearStatistics,
getStatisticIds,
@@ -45,12 +48,11 @@ import {
updateStatisticsIssues,
validateStatistics,
} from "../../../data/recorder";
+import { KeyboardShortcutMixin } from "../../../mixins/keyboard-shortcut-mixin";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { showConfirmationDialog } from "../../lovelace/custom-card-helpers";
import { fixStatisticsIssue } from "./fix-statistics";
import { showStatisticsAdjustSumDialog } from "./show-dialog-statistics-adjust-sum";
-import { KeyboardShortcutMixin } from "../../../mixins/keyboard-shortcut-mixin";
const FIX_ISSUES_ORDER: Record = {
no_state: 0,
diff --git a/src/panels/developer-tools/statistics/dialog-statistics-adjust-sum.ts b/src/panels/developer-tools/statistics/dialog-statistics-adjust-sum.ts
index b1647f4c0a..c1a209b098 100644
--- a/src/panels/developer-tools/statistics/dialog-statistics-adjust-sum.ts
+++ b/src/panels/developer-tools/statistics/dialog-statistics-adjust-sum.ts
@@ -1,31 +1,34 @@
-import "@material/mwc-button/mwc-button";
-import { formatISO9075 } from "date-fns";
+import type { StatisticValue } from "../../../data/recorder";
+import type { DateTimeSelector, NumberSelector } from "../../../data/selector";
+import type { HomeAssistant } from "../../../types";
+import type { DialogStatisticsAdjustSumParams } from "./show-dialog-statistics-adjust-sum";
import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { formatDateTime } from "../../../common/datetime/format_date_time";
-import { fireEvent } from "../../../common/dom/fire_event";
-import "../../../components/ha-spinner";
+
import "../../../components/ha-dialog";
import "../../../components/ha-form/ha-form";
import "../../../components/ha-icon-next";
import "../../../components/ha-list-item";
import "../../../components/ha-selector/ha-selector-datetime";
import "../../../components/ha-selector/ha-selector-number";
+import "../../../components/ha-spinner";
import "../../../components/ha-svg-icon";
-import type { StatisticValue } from "../../../data/recorder";
+import "@material/mwc-button/mwc-button";
+
+import { formatISO9075 } from "date-fns";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { formatDateTime } from "../../../common/datetime/format_date_time";
+import { fireEvent } from "../../../common/dom/fire_event";
import {
adjustStatisticsSum,
fetchStatistics,
getDisplayUnit,
} from "../../../data/recorder";
-import type { DateTimeSelector, NumberSelector } from "../../../data/selector";
import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
import { haStyle, haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { showToast } from "../../../util/toast";
-import type { DialogStatisticsAdjustSumParams } from "./show-dialog-statistics-adjust-sum";
interface CombinedStat {
hour: StatisticValue | null;
diff --git a/src/panels/developer-tools/statistics/dialog-statistics-fix-units-changed.ts b/src/panels/developer-tools/statistics/dialog-statistics-fix-units-changed.ts
index c5ab6b3d9f..f6f0974fcc 100644
--- a/src/panels/developer-tools/statistics/dialog-statistics-fix-units-changed.ts
+++ b/src/panels/developer-tools/statistics/dialog-statistics-fix-units-changed.ts
@@ -1,19 +1,22 @@
-import "@material/mwc-button/mwc-button";
+import type { HomeAssistant } from "../../../types";
+import type { DialogStatisticsUnitsChangedParams } from "./show-dialog-statistics-fix-units-changed";
import type { CSSResultGroup } from "lit";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../common/dom/fire_event";
+
import "../../../components/ha-dialog";
import "../../../components/ha-formfield";
import "../../../components/ha-radio";
+import "@material/mwc-button/mwc-button";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
import {
clearStatistics,
getStatisticLabel,
updateStatisticsMetadata,
} from "../../../data/recorder";
import { haStyle, haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
-import type { DialogStatisticsUnitsChangedParams } from "./show-dialog-statistics-fix-units-changed";
@customElement("dialog-statistics-fix-units-changed")
export class DialogStatisticsFixUnitsChanged extends LitElement {
diff --git a/src/panels/developer-tools/statistics/dialog-statistics-fix.ts b/src/panels/developer-tools/statistics/dialog-statistics-fix.ts
index 5a1a4e5e94..b0ddb7a90c 100644
--- a/src/panels/developer-tools/statistics/dialog-statistics-fix.ts
+++ b/src/panels/developer-tools/statistics/dialog-statistics-fix.ts
@@ -1,15 +1,18 @@
-import "@material/mwc-button/mwc-button";
+import type { HomeAssistant } from "../../../types";
+import type { DialogStatisticsFixParams } from "./show-dialog-statistics-fix";
import type { CSSResultGroup } from "lit";
+
+import "../../../components/ha-dialog";
+import "../../../components/ha-spinner";
+import "@material/mwc-button/mwc-button";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
-import "../../../components/ha-spinner";
+
import { fireEvent } from "../../../common/dom/fire_event";
-import "../../../components/ha-dialog";
import { clearStatistics, getStatisticLabel } from "../../../data/recorder";
import { haStyle, haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { documentationUrl } from "../../../util/documentation-url";
-import type { DialogStatisticsFixParams } from "./show-dialog-statistics-fix";
import { showAlertDialog } from "../../lovelace/custom-card-helpers";
@customElement("dialog-statistics-fix")
diff --git a/src/panels/developer-tools/statistics/fix-statistics.ts b/src/panels/developer-tools/statistics/fix-statistics.ts
index 49f192cb9c..e190a8c7f7 100644
--- a/src/panels/developer-tools/statistics/fix-statistics.ts
+++ b/src/panels/developer-tools/statistics/fix-statistics.ts
@@ -1,4 +1,5 @@
import type { StatisticsValidationResult } from "../../../data/recorder";
+
import { showFixStatisticsDialog } from "./show-dialog-statistics-fix";
import { showFixStatisticsUnitsChangedDialog } from "./show-dialog-statistics-fix-units-changed";
diff --git a/src/panels/developer-tools/statistics/show-dialog-statistics-adjust-sum.ts b/src/panels/developer-tools/statistics/show-dialog-statistics-adjust-sum.ts
index beb87aa2c7..ec325535ab 100644
--- a/src/panels/developer-tools/statistics/show-dialog-statistics-adjust-sum.ts
+++ b/src/panels/developer-tools/statistics/show-dialog-statistics-adjust-sum.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type { StatisticsMetaData } from "../../../data/recorder";
+import { fireEvent } from "../../../common/dom/fire_event";
+
export const loadAdjustSumDialog = () =>
import("./dialog-statistics-adjust-sum");
diff --git a/src/panels/developer-tools/statistics/show-dialog-statistics-fix-units-changed.ts b/src/panels/developer-tools/statistics/show-dialog-statistics-fix-units-changed.ts
index 7cfcad649c..1124fa1e01 100644
--- a/src/panels/developer-tools/statistics/show-dialog-statistics-fix-units-changed.ts
+++ b/src/panels/developer-tools/statistics/show-dialog-statistics-fix-units-changed.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type { StatisticsValidationResultUnitsChanged } from "../../../data/recorder";
+import { fireEvent } from "../../../common/dom/fire_event";
+
export const loadFixUnitsDialog = () =>
import("./dialog-statistics-fix-units-changed");
diff --git a/src/panels/developer-tools/statistics/show-dialog-statistics-fix.ts b/src/panels/developer-tools/statistics/show-dialog-statistics-fix.ts
index bfa7c5e5d7..ba7b32b579 100644
--- a/src/panels/developer-tools/statistics/show-dialog-statistics-fix.ts
+++ b/src/panels/developer-tools/statistics/show-dialog-statistics-fix.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type { StatisticsValidationResult } from "../../../data/recorder";
+import { fireEvent } from "../../../common/dom/fire_event";
+
export const loadFixDialog = () => import("./dialog-statistics-fix");
export interface DialogStatisticsFixParams {
diff --git a/src/panels/developer-tools/template/developer-tools-template.ts b/src/panels/developer-tools/template/developer-tools-template.ts
index 6be7a0d205..5d65c273db 100644
--- a/src/panels/developer-tools/template/developer-tools-template.ts
+++ b/src/panels/developer-tools/template/developer-tools-template.ts
@@ -1,19 +1,22 @@
-import "@material/mwc-button/mwc-button";
+import type { RenderTemplateResult } from "../../../data/ws-templates";
+import type { HomeAssistant } from "../../../types";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { CSSResultGroup } from "lit";
+
+import "../../../components/ha-alert";
+import "../../../components/ha-card";
+import "../../../components/ha-code-editor";
+import "../../../components/ha-spinner";
+import "@material/mwc-button/mwc-button";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { debounce } from "../../../common/util/debounce";
-import "../../../components/ha-alert";
-import "../../../components/ha-spinner";
-import "../../../components/ha-code-editor";
-import "../../../components/ha-card";
-import type { RenderTemplateResult } from "../../../data/ws-templates";
import { subscribeRenderTemplate } from "../../../data/ws-templates";
import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { documentationUrl } from "../../../util/documentation-url";
const DEMO_TEMPLATE = `{## Imitate available variables: ##}
diff --git a/src/panels/developer-tools/yaml_configuration/developer-yaml-config.ts b/src/panels/developer-tools/yaml_configuration/developer-yaml-config.ts
index e0ed5221ab..dd0246834b 100644
--- a/src/panels/developer-tools/yaml_configuration/developer-yaml-config.ts
+++ b/src/panels/developer-tools/yaml_configuration/developer-yaml-config.ts
@@ -1,19 +1,22 @@
-import "@material/mwc-button";
+import type { CheckConfigResult } from "../../../data/core";
+import type { HomeAssistant, Route, TranslationDict } from "../../../types";
import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { componentsWithService } from "../../../common/config/components_with_service";
+
import "../../../components/buttons/ha-call-service-button";
import "../../../components/ha-alert";
import "../../../components/ha-card";
import "../../../components/ha-spinner";
-import type { CheckConfigResult } from "../../../data/core";
+import "@material/mwc-button";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { componentsWithService } from "../../../common/config/components_with_service";
+import { stringCompare } from "../../../common/string/compare";
import { checkCoreConfig } from "../../../data/core";
import { domainToName } from "../../../data/integration";
-import { stringCompare } from "../../../common/string/compare";
import { showRestartDialog } from "../../../dialogs/restart/show-dialog-restart";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant, Route, TranslationDict } from "../../../types";
type ReloadableDomain = Exclude<
keyof TranslationDict["ui"]["panel"]["developer-tools"]["tabs"]["yaml"]["section"]["reloading"],
diff --git a/src/panels/energy/cards/energy-setup-wizard-card.ts b/src/panels/energy/cards/energy-setup-wizard-card.ts
index 6bd55b6c8e..f2865b6721 100644
--- a/src/panels/energy/cards/energy-setup-wizard-card.ts
+++ b/src/panels/energy/cards/energy-setup-wizard-card.ts
@@ -1,21 +1,24 @@
-import "@material/mwc-button/mwc-button";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../common/dom/fire_event";
import type { EnergyInfo, EnergyPreferences } from "../../../data/energy";
-import { getEnergyInfo, saveEnergyPreferences } from "../../../data/energy";
import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
-import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
-import { haStyle } from "../../../resources/styles";
import type { HomeAssistant } from "../../../types";
+import type { Lovelace, LovelaceCard } from "../../lovelace/types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
import "../../config/energy/components/ha-energy-battery-settings";
import "../../config/energy/components/ha-energy-device-settings";
import "../../config/energy/components/ha-energy-gas-settings";
import "../../config/energy/components/ha-energy-grid-settings";
import "../../config/energy/components/ha-energy-solar-settings";
import "../../config/energy/components/ha-energy-water-settings";
-import type { Lovelace, LovelaceCard } from "../../lovelace/types";
+import "@material/mwc-button/mwc-button";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { getEnergyInfo, saveEnergyPreferences } from "../../../data/energy";
+import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
+import { haStyle } from "../../../resources/styles";
@customElement("energy-setup-wizard-card")
export class EnergySetupWizard extends LitElement implements LovelaceCard {
diff --git a/src/panels/energy/ha-panel-energy.ts b/src/panels/energy/ha-panel-energy.ts
index 7bf69dbc23..2adc942909 100644
--- a/src/panels/energy/ha-panel-energy.ts
+++ b/src/panels/energy/ha-panel-energy.ts
@@ -1,18 +1,3 @@
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { mdiPencil, mdiDownload } from "@mdi/js";
-import { customElement, property, state } from "lit/decorators";
-import "../../components/ha-menu-button";
-import "../../components/ha-list-item";
-import "../../components/ha-top-app-bar-fixed";
-import type { LovelaceConfig } from "../../data/lovelace/config/types";
-import { haStyle } from "../../resources/styles";
-import type { HomeAssistant } from "../../types";
-import "../lovelace/components/hui-energy-period-selector";
-import type { Lovelace } from "../lovelace/types";
-import "../lovelace/views/hui-view";
-import "../lovelace/views/hui-view-container";
-import { navigate } from "../../common/navigate";
import type {
GridSourceTypeEnergyPreference,
SolarSourceTypeEnergyPreference,
@@ -21,11 +6,29 @@ import type {
WaterSourceTypeEnergyPreference,
DeviceConsumptionEnergyPreference,
} from "../../data/energy";
+import type { LovelaceConfig } from "../../data/lovelace/config/types";
+import type { HomeAssistant } from "../../types";
+import type { Lovelace } from "../lovelace/types";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../components/ha-list-item";
+import "../../components/ha-menu-button";
+import "../../components/ha-top-app-bar-fixed";
+import "../lovelace/components/hui-energy-period-selector";
+import "../lovelace/views/hui-view";
+import "../lovelace/views/hui-view-container";
+
+import { mdiPencil, mdiDownload } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { navigate } from "../../common/navigate";
import {
getEnergyDataCollection,
getEnergyGasUnit,
getEnergyWaterUnit,
} from "../../data/energy";
+import { haStyle } from "../../resources/styles";
import { fileDownload } from "../../util/file_download";
const ENERGY_LOVELACE_CONFIG: LovelaceConfig = {
diff --git a/src/panels/energy/strategies/energy-view-strategy.ts b/src/panels/energy/strategies/energy-view-strategy.ts
index 808d4504b0..8b8daac8fe 100644
--- a/src/panels/energy/strategies/energy-view-strategy.ts
+++ b/src/panels/energy/strategies/energy-view-strategy.ts
@@ -1,13 +1,15 @@
-import { ReactiveElement } from "lit";
-import { customElement } from "lit/decorators";
import type {
EnergyPreferences,
GridSourceTypeEnergyPreference,
} from "../../../data/energy";
-import { getEnergyPreferences } from "../../../data/energy";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceViewConfig } from "../../../data/lovelace/config/view";
import type { LovelaceStrategyConfig } from "../../../data/lovelace/config/strategy";
+import type { LovelaceViewConfig } from "../../../data/lovelace/config/view";
+import type { HomeAssistant } from "../../../types";
+
+import { ReactiveElement } from "lit";
+import { customElement } from "lit/decorators";
+
+import { getEnergyPreferences } from "../../../data/energy";
const setupWizard = async (): Promise => {
await import("../cards/energy-setup-wizard-card");
diff --git a/src/panels/history/ha-panel-history.ts b/src/panels/history/ha-panel-history.ts
index cc59c9342f..290edec50c 100644
--- a/src/panels/history/ha-panel-history.ts
+++ b/src/panels/history/ha-panel-history.ts
@@ -1,19 +1,35 @@
+import type { StateHistoryCharts } from "../../components/chart/state-history-charts";
+import type { HistoryResult } from "../../data/history";
+import type { HomeAssistant } from "../../types";
+import type { ActionDetail } from "@material/mwc-list";
+import type {
+ HassServiceTarget,
+ UnsubscribeFunc,
+} from "home-assistant-js-websocket/dist/types";
+import type { PropertyValues } from "lit";
+
+import "../../components/chart/state-history-charts";
+import "../../components/ha-button-menu";
+import "../../components/ha-date-range-picker";
+import "../../components/ha-icon-button";
+import "../../components/ha-icon-button-arrow-prev";
+import "../../components/ha-list-item";
+import "../../components/ha-menu-button";
+import "../../components/ha-spinner";
+import "../../components/ha-target-picker";
+import "../../components/ha-top-app-bar-fixed";
+
import {
mdiDotsVertical,
mdiDownload,
mdiFilterRemove,
mdiImagePlus,
} from "@mdi/js";
-import type { ActionDetail } from "@material/mwc-list";
import { differenceInHours } from "date-fns";
-import type {
- HassServiceTarget,
- UnsubscribeFunc,
-} from "home-assistant-js-websocket/dist/types";
-import type { PropertyValues } from "lit";
import { LitElement, css, html } from "lit";
import { property, query, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { ensureArray } from "../../common/array/ensure-array";
import { storage } from "../../common/decorators/storage";
import { computeDomain } from "../../common/entity/compute_domain";
@@ -25,18 +41,6 @@ import {
removeSearchParam,
} from "../../common/url/search-params";
import { MIN_TIME_BETWEEN_UPDATES } from "../../components/chart/ha-chart-base";
-import "../../components/chart/state-history-charts";
-import type { StateHistoryCharts } from "../../components/chart/state-history-charts";
-import "../../components/ha-spinner";
-import "../../components/ha-date-range-picker";
-import "../../components/ha-icon-button";
-import "../../components/ha-button-menu";
-import "../../components/ha-list-item";
-import "../../components/ha-icon-button-arrow-prev";
-import "../../components/ha-menu-button";
-import "../../components/ha-target-picker";
-import "../../components/ha-top-app-bar-fixed";
-import type { HistoryResult } from "../../data/history";
import {
computeHistory,
subscribeHistory,
@@ -48,7 +52,6 @@ import { resolveEntityIDs } from "../../data/selector";
import { getSensorNumericDeviceClasses } from "../../data/sensor";
import { showAlertDialog } from "../../dialogs/generic/show-dialog-box";
import { haStyle } from "../../resources/styles";
-import type { HomeAssistant } from "../../types";
import { fileDownload } from "../../util/file_download";
import { addEntitiesToLovelaceView } from "../lovelace/editor/add-entities-to-view";
diff --git a/src/panels/iframe/ha-panel-iframe.ts b/src/panels/iframe/ha-panel-iframe.ts
index aa29d29dee..97255c0874 100644
--- a/src/panels/iframe/ha-panel-iframe.ts
+++ b/src/panels/iframe/ha-panel-iframe.ts
@@ -1,9 +1,12 @@
+import type { HomeAssistant, PanelInfo } from "../../types";
+
+import "../../layouts/hass-error-screen";
+import "../../layouts/hass-subpage";
+
import { html, css, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
-import "../../layouts/hass-error-screen";
-import "../../layouts/hass-subpage";
-import type { HomeAssistant, PanelInfo } from "../../types";
+
import { IFRAME_SANDBOX } from "../../util/iframe";
@customElement("ha-panel-iframe")
diff --git a/src/panels/logbook/ha-logbook-renderer.ts b/src/panels/logbook/ha-logbook-renderer.ts
index 9bf41caf3e..9a884c3100 100644
--- a/src/panels/logbook/ha-logbook-renderer.ts
+++ b/src/panels/logbook/ha-logbook-renderer.ts
@@ -1,10 +1,19 @@
+import type { LogbookEntry } from "../../data/logbook";
+import type { TraceContexts } from "../../data/trace";
+import type { HomeAssistant } from "../../types";
import type { VisibilityChangedEvent } from "@lit-labs/virtualizer";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../components/entity/state-badge";
+import "../../components/ha-icon-next";
+import "../../components/ha-relative-time";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, eventOptions, property } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { styleMap } from "lit/directives/style-map";
+
import { isComponentLoaded } from "../../common/config/is_component_loaded";
import { formatDate } from "../../common/datetime/format_date";
import { formatTimeWithSeconds } from "../../common/datetime/format_time";
@@ -13,25 +22,19 @@ import { fireEvent } from "../../common/dom/fire_event";
import { computeDomain } from "../../common/entity/compute_domain";
import { navigate } from "../../common/navigate";
import { computeTimelineColor } from "../../components/chart/timeline-color";
-import "../../components/entity/state-badge";
-import "../../components/ha-icon-next";
-import "../../components/ha-relative-time";
-import type { LogbookEntry } from "../../data/logbook";
+import { domainToName } from "../../data/integration";
import {
createHistoricState,
localizeStateMessage,
localizeTriggerSource,
} from "../../data/logbook";
-import type { TraceContexts } from "../../data/trace";
import {
buttonLinkStyle,
haStyle,
haStyleScrollbar,
} from "../../resources/styles";
import { loadVirtualizer } from "../../resources/virtualizer";
-import type { HomeAssistant } from "../../types";
import { brandsUrl } from "../../util/brands-url";
-import { domainToName } from "../../data/integration";
declare global {
interface HASSDomEvents {
diff --git a/src/panels/logbook/ha-logbook.ts b/src/panels/logbook/ha-logbook.ts
index 2f404ed0aa..1fac8b6e94 100644
--- a/src/panels/logbook/ha-logbook.ts
+++ b/src/panels/logbook/ha-logbook.ts
@@ -1,18 +1,21 @@
+import type { LogbookEntry, LogbookStreamMessage } from "../../data/logbook";
+import type { TraceContexts } from "../../data/trace";
+import type { HomeAssistant } from "../../types";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
+
+import "../../components/ha-spinner";
+import "./ha-logbook-renderer";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+
import { isComponentLoaded } from "../../common/config/is_component_loaded";
import { computeStateDomain } from "../../common/entity/compute_state_domain";
import { throttle } from "../../common/util/throttle";
-import "../../components/ha-spinner";
-import type { LogbookEntry, LogbookStreamMessage } from "../../data/logbook";
import { subscribeLogbook } from "../../data/logbook";
-import type { TraceContexts } from "../../data/trace";
import { loadTraceContexts } from "../../data/trace";
import { fetchUsers } from "../../data/user";
-import type { HomeAssistant } from "../../types";
-import "./ha-logbook-renderer";
interface LogbookTimePeriod {
now: Date;
diff --git a/src/panels/logbook/ha-panel-logbook.ts b/src/panels/logbook/ha-panel-logbook.ts
index df556370ba..960a10ff79 100644
--- a/src/panels/logbook/ha-panel-logbook.ts
+++ b/src/panels/logbook/ha-panel-logbook.ts
@@ -1,9 +1,23 @@
-import { mdiRefresh } from "@mdi/js";
+import type { HomeAssistant } from "../../types";
+import type { HassServiceTarget } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
+
+import "../../components/entity/ha-entity-picker";
+import "../../components/ha-date-range-picker";
+import "../../components/ha-icon-button";
+import "../../components/ha-icon-button-arrow-prev";
+import "../../components/ha-menu-button";
+import "../../components/ha-target-picker";
+import "../../components/ha-top-app-bar-fixed";
+import "./ha-logbook";
+
+import { mdiRefresh } from "@mdi/js";
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
-import type { HassServiceTarget } from "home-assistant-js-websocket";
import memoizeOne from "memoize-one";
+
+import { ensureArray } from "../../common/array/ensure-array";
+import { storage } from "../../common/decorators/storage";
import { navigate } from "../../common/navigate";
import { constructUrlCurrentPath } from "../../common/url/construct-url";
import {
@@ -11,20 +25,9 @@ import {
extractSearchParamsObject,
removeSearchParam,
} from "../../common/url/search-params";
-import "../../components/entity/ha-entity-picker";
-import "../../components/ha-date-range-picker";
-import "../../components/ha-icon-button";
-import "../../components/ha-icon-button-arrow-prev";
-import "../../components/ha-menu-button";
-import "../../components/ha-top-app-bar-fixed";
-import "../../components/ha-target-picker";
import { filterLogbookCompatibleEntities } from "../../data/logbook";
-import { haStyle } from "../../resources/styles";
-import type { HomeAssistant } from "../../types";
-import "./ha-logbook";
-import { storage } from "../../common/decorators/storage";
-import { ensureArray } from "../../common/array/ensure-array";
import { resolveEntityIDs } from "../../data/selector";
+import { haStyle } from "../../resources/styles";
@customElement("ha-panel-logbook")
export class HaPanelLogbook extends LitElement {
diff --git a/src/panels/lovelace/badges/hui-badge.ts b/src/panels/lovelace/badges/hui-badge.ts
index 5384de37b6..f87a261d69 100644
--- a/src/panels/lovelace/badges/hui-badge.ts
+++ b/src/panels/lovelace/badges/hui-badge.ts
@@ -1,18 +1,21 @@
-import type { PropertyValues } from "lit";
-import { ReactiveElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../../common/dom/fire_event";
import type { MediaQueriesListener } from "../../../common/dom/media_query";
-import "../../../components/ha-svg-icon";
import type { LovelaceBadgeConfig } from "../../../data/lovelace/config/badge";
import type { HomeAssistant } from "../../../types";
+import type { LovelaceBadge } from "../types";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-svg-icon";
+
+import { ReactiveElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
import {
attachConditionMediaQueriesListeners,
checkConditionsMet,
} from "../common/validate-condition";
import { createBadgeElement } from "../create-element/create-badge-element";
import { createErrorBadgeConfig } from "../create-element/create-element-base";
-import type { LovelaceBadge } from "../types";
declare global {
interface HASSDomEvents {
diff --git a/src/panels/lovelace/badges/hui-entity-badge.ts b/src/panels/lovelace/badges/hui-entity-badge.ts
index bfd530fd89..8ebdb5f687 100644
--- a/src/panels/lovelace/badges/hui-entity-badge.ts
+++ b/src/panels/lovelace/badges/hui-entity-badge.ts
@@ -1,10 +1,21 @@
-import { mdiAlertCircle } from "@mdi/js";
+import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceBadge, LovelaceBadgeEditor } from "../types";
+import type { EntityBadgeConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../components/ha-badge";
+import "../../../components/ha-ripple";
+import "../../../components/ha-state-icon";
+import "../../../components/ha-svg-icon";
+
+import { mdiAlertCircle } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { styleMap } from "lit/directives/style-map";
import memoizeOne from "memoize-one";
+
import { computeCssColor } from "../../../common/color/compute-color";
import { hsv2rgb, rgb2hex, rgb2hsv } from "../../../common/color/convert-color";
import { computeDomain } from "../../../common/entity/compute_domain";
@@ -12,19 +23,11 @@ import { computeStateDomain } from "../../../common/entity/compute_state_domain"
import { computeStateName } from "../../../common/entity/compute_state_name";
import { stateActive } from "../../../common/entity/state_active";
import { stateColorCss } from "../../../common/entity/state_color";
-import "../../../components/ha-badge";
-import "../../../components/ha-ripple";
-import "../../../components/ha-state-icon";
-import "../../../components/ha-svg-icon";
import { cameraUrlWithWidthHeight } from "../../../data/camera";
-import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
-import type { HomeAssistant } from "../../../types";
import { actionHandler } from "../common/directives/action-handler-directive";
import { findEntities } from "../common/find-entities";
import { handleAction } from "../common/handle-action";
import { hasAction } from "../common/has-action";
-import type { LovelaceBadge, LovelaceBadgeEditor } from "../types";
-import type { EntityBadgeConfig } from "./types";
export const DISPLAY_TYPES = ["minimal", "standard", "complete"] as const;
export type DisplayType = (typeof DISPLAY_TYPES)[number];
diff --git a/src/panels/lovelace/badges/hui-entity-filter-badge.ts b/src/panels/lovelace/badges/hui-entity-filter-badge.ts
index c6a3278233..c6283f75c8 100644
--- a/src/panels/lovelace/badges/hui-entity-filter-badge.ts
+++ b/src/panels/lovelace/badges/hui-entity-filter-badge.ts
@@ -1,7 +1,15 @@
+import type { HomeAssistant } from "../../../types";
+import type { EntityFilterEntityConfig } from "../entity-rows/types";
+import type { LovelaceBadge } from "../types";
+import type { HuiBadge } from "./hui-badge";
+import type { EntityFilterBadgeConfig } from "./types";
import type { PropertyValues } from "lit";
+
+import "./hui-badge";
+
import { ReactiveElement } from "lit";
import { customElement, property, state } from "lit/decorators";
-import type { HomeAssistant } from "../../../types";
+
import { evaluateStateFilter } from "../common/evaluate-filter";
import { processConfigEntities } from "../common/process-config-entities";
import {
@@ -9,11 +17,6 @@ import {
checkConditionsMet,
extractConditionEntityIds,
} from "../common/validate-condition";
-import type { EntityFilterEntityConfig } from "../entity-rows/types";
-import type { LovelaceBadge } from "../types";
-import "./hui-badge";
-import type { HuiBadge } from "./hui-badge";
-import type { EntityFilterBadgeConfig } from "./types";
@customElement("hui-entity-filter-badge")
export class HuiEntityFilterBadge
diff --git a/src/panels/lovelace/badges/hui-error-badge.ts b/src/panels/lovelace/badges/hui-error-badge.ts
index 329819a6d0..c28d551306 100644
--- a/src/panels/lovelace/badges/hui-error-badge.ts
+++ b/src/panels/lovelace/badges/hui-error-badge.ts
@@ -1,13 +1,16 @@
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceBadge } from "../types";
+import type { ErrorBadgeConfig } from "./types";
+
+import "../../../components/ha-badge";
+import "../../../components/ha-svg-icon";
+
import { mdiAlertCircle } from "@mdi/js";
import { dump } from "js-yaml";
import { css, html, LitElement, nothing } from "lit";
import { customElement, state } from "lit/decorators";
-import "../../../components/ha-badge";
-import "../../../components/ha-svg-icon";
-import type { HomeAssistant } from "../../../types";
+
import { showAlertDialog } from "../custom-card-helpers";
-import type { LovelaceBadge } from "../types";
-import type { ErrorBadgeConfig } from "./types";
export const createErrorBadgeElement = (config) => {
const el = document.createElement("hui-error-badge");
diff --git a/src/panels/lovelace/badges/hui-state-label-badge.ts b/src/panels/lovelace/badges/hui-state-label-badge.ts
index 011db03d6e..fa3a5ecca6 100644
--- a/src/panels/lovelace/badges/hui-state-label-badge.ts
+++ b/src/panels/lovelace/badges/hui-state-label-badge.ts
@@ -1,9 +1,12 @@
-import { customElement } from "lit/decorators";
-import "../../../components/entity/ha-state-label-badge";
import type { HuiStateLabelBadgeEditor } from "../editor/config-elements/hui-state-label-badge-editor";
-import { HuiEntityBadge } from "./hui-entity-badge";
import type { EntityBadgeConfig, StateLabelBadgeConfig } from "./types";
+import "../../../components/entity/ha-state-label-badge";
+
+import { customElement } from "lit/decorators";
+
+import { HuiEntityBadge } from "./hui-entity-badge";
+
@customElement("hui-state-label-badge")
export class HuiStateLabelBadge extends HuiEntityBadge {
public static async getConfigElement(): Promise {
diff --git a/src/panels/lovelace/badges/hui-view-badges.ts b/src/panels/lovelace/badges/hui-view-badges.ts
index 312e953597..26fd6f7ded 100644
--- a/src/panels/lovelace/badges/hui-view-badges.ts
+++ b/src/panels/lovelace/badges/hui-view-badges.ts
@@ -1,20 +1,23 @@
-import { mdiPlus } from "@mdi/js";
+import type { HaSortableOptions } from "../../../components/ha-sortable";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardPath } from "../editor/lovelace-path";
+import type { Lovelace } from "../types";
+import type { HuiBadge } from "./hui-badge";
import type { PropertyValues } from "lit";
+
+import "../../../components/ha-ripple";
+import "../../../components/ha-sortable";
+import "../../../components/ha-svg-icon";
+import "../components/hui-badge-edit-mode";
+
+import { mdiPlus } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { repeat } from "lit/directives/repeat";
+
import { fireEvent } from "../../../common/dom/fire_event";
-import "../../../components/ha-ripple";
-import "../../../components/ha-sortable";
-import type { HaSortableOptions } from "../../../components/ha-sortable";
-import "../../../components/ha-svg-icon";
-import type { HomeAssistant } from "../../../types";
-import "../components/hui-badge-edit-mode";
import { moveBadge } from "../editor/config-util";
-import type { LovelaceCardPath } from "../editor/lovelace-path";
-import type { Lovelace } from "../types";
-import type { HuiBadge } from "./hui-badge";
const BADGE_SORTABLE_OPTIONS: HaSortableOptions = {
delay: 100,
diff --git a/src/panels/lovelace/card-features/hui-alarm-modes-card-feature.ts b/src/panels/lovelace/card-features/hui-alarm-modes-card-feature.ts
index 6aa71fe590..d42625b6d7 100644
--- a/src/panels/lovelace/card-features/hui-alarm-modes-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-alarm-modes-card-feature.ts
@@ -1,32 +1,35 @@
-import { mdiShieldOff } from "@mdi/js";
-import type { HassEntity } from "home-assistant-js-websocket";
-import type { PropertyValues, TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { styleMap } from "lit/directives/style-map";
-import memoizeOne from "memoize-one";
-import { computeDomain } from "../../../common/entity/compute_domain";
-import { stateColorCss } from "../../../common/entity/state_color";
-import "../../../components/ha-control-button";
-import "../../../components/ha-control-button-group";
-import "../../../components/ha-control-select";
import type { ControlSelectOption } from "../../../components/ha-control-select";
-import "../../../components/ha-control-slider";
import type {
AlarmControlPanelEntity,
AlarmMode,
} from "../../../data/alarm_control_panel";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
+import type { AlarmModesCardFeatureConfig } from "./types";
+import type { HassEntity } from "home-assistant-js-websocket";
+import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/ha-control-button";
+import "../../../components/ha-control-button-group";
+import "../../../components/ha-control-select";
+import "../../../components/ha-control-slider";
+
+import { mdiShieldOff } from "@mdi/js";
+import { html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { styleMap } from "lit/directives/style-map";
+import memoizeOne from "memoize-one";
+
+import { computeDomain } from "../../../common/entity/compute_domain";
+import { stateColorCss } from "../../../common/entity/state_color";
import {
ALARM_MODES,
setProtectedAlarmControlPanelMode,
supportedAlarmModes,
} from "../../../data/alarm_control_panel";
import { UNAVAILABLE } from "../../../data/entity";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
import { cardFeatureStyles } from "./common/card-feature-styles";
import { filterModes } from "./common/filter-modes";
-import type { AlarmModesCardFeatureConfig } from "./types";
export const supportsAlarmModesCardFeature = (stateObj: HassEntity) => {
const domain = computeDomain(stateObj.entity_id);
diff --git a/src/panels/lovelace/card-features/hui-card-feature.ts b/src/panels/lovelace/card-features/hui-card-feature.ts
index 7a6d3668e7..787289f0c2 100644
--- a/src/panels/lovelace/card-features/hui-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-card-feature.ts
@@ -1,11 +1,13 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import { LitElement, html, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
import type { HomeAssistant } from "../../../types";
import type { HuiErrorCard } from "../cards/hui-error-card";
-import { createCardFeatureElement } from "../create-element/create-card-feature-element";
import type { LovelaceCardFeature } from "../types";
import type { LovelaceCardFeatureConfig } from "./types";
+import type { HassEntity } from "home-assistant-js-websocket";
+
+import { LitElement, html, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { createCardFeatureElement } from "../create-element/create-card-feature-element";
@customElement("hui-card-feature")
export class HuiCardFeature extends LitElement {
diff --git a/src/panels/lovelace/card-features/hui-card-features.ts b/src/panels/lovelace/card-features/hui-card-features.ts
index 7253bb7895..835ce86daf 100644
--- a/src/panels/lovelace/card-features/hui-card-features.ts
+++ b/src/panels/lovelace/card-features/hui-card-features.ts
@@ -1,9 +1,11 @@
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardFeatureConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
+
+import "./hui-card-feature";
+
import { LitElement, css, html, nothing } from "lit";
import { customElement, property } from "lit/decorators";
-import type { HomeAssistant } from "../../../types";
-import "./hui-card-feature";
-import type { LovelaceCardFeatureConfig } from "./types";
@customElement("hui-card-features")
export class HuiCardFeatures extends LitElement {
diff --git a/src/panels/lovelace/card-features/hui-climate-fan-modes-card-feature.ts b/src/panels/lovelace/card-features/hui-climate-fan-modes-card-feature.ts
index 8cfc665de6..26b1ff43ba 100644
--- a/src/panels/lovelace/card-features/hui-climate-fan-modes-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-climate-fan-modes-card-feature.ts
@@ -1,24 +1,27 @@
-import { mdiFan } from "@mdi/js";
+import type { ControlSelectOption } from "../../../components/ha-control-select";
+import type { HaControlSelectMenu } from "../../../components/ha-control-select-menu";
+import type { ClimateEntity } from "../../../data/climate";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
+import type { ClimateFanModesCardFeatureConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/ha-attribute-icon";
+import "../../../components/ha-control-select";
+import "../../../components/ha-control-select-menu";
+
+import { mdiFan } from "@mdi/js";
import { html, LitElement } from "lit";
import { customElement, property, query, state } from "lit/decorators";
+
import { stopPropagation } from "../../../common/dom/stop_propagation";
import { computeDomain } from "../../../common/entity/compute_domain";
import { supportsFeature } from "../../../common/entity/supports-feature";
-import "../../../components/ha-attribute-icon";
-import "../../../components/ha-control-select";
-import type { ControlSelectOption } from "../../../components/ha-control-select";
-import "../../../components/ha-control-select-menu";
-import type { HaControlSelectMenu } from "../../../components/ha-control-select-menu";
-import type { ClimateEntity } from "../../../data/climate";
import { ClimateEntityFeature } from "../../../data/climate";
import { UNAVAILABLE } from "../../../data/entity";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
import { cardFeatureStyles } from "./common/card-feature-styles";
import { filterModes } from "./common/filter-modes";
-import type { ClimateFanModesCardFeatureConfig } from "./types";
export const supportsClimateFanModesCardFeature = (stateObj: HassEntity) => {
const domain = computeDomain(stateObj.entity_id);
diff --git a/src/panels/lovelace/card-features/hui-climate-hvac-modes-card-feature.ts b/src/panels/lovelace/card-features/hui-climate-hvac-modes-card-feature.ts
index d8ada2c5d9..e48eab8ac0 100644
--- a/src/panels/lovelace/card-features/hui-climate-hvac-modes-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-climate-hvac-modes-card-feature.ts
@@ -1,27 +1,30 @@
-import { mdiThermostat } from "@mdi/js";
+import type { ControlSelectOption } from "../../../components/ha-control-select";
+import type { HaControlSelectMenu } from "../../../components/ha-control-select-menu";
+import type { ClimateEntity, HvacMode } from "../../../data/climate";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
+import type { ClimateHvacModesCardFeatureConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/ha-control-select";
+import "../../../components/ha-control-select-menu";
+
+import { mdiThermostat } from "@mdi/js";
import { html, LitElement } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
+
import { stopPropagation } from "../../../common/dom/stop_propagation";
import { computeDomain } from "../../../common/entity/compute_domain";
import { stateColorCss } from "../../../common/entity/state_color";
-import "../../../components/ha-control-select";
-import type { ControlSelectOption } from "../../../components/ha-control-select";
-import "../../../components/ha-control-select-menu";
-import type { HaControlSelectMenu } from "../../../components/ha-control-select-menu";
-import type { ClimateEntity, HvacMode } from "../../../data/climate";
import {
climateHvacModeIcon,
compareClimateHvacModes,
} from "../../../data/climate";
import { UNAVAILABLE } from "../../../data/entity";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
import { cardFeatureStyles } from "./common/card-feature-styles";
import { filterModes } from "./common/filter-modes";
-import type { ClimateHvacModesCardFeatureConfig } from "./types";
export const supportsClimateHvacModesCardFeature = (stateObj: HassEntity) => {
const domain = computeDomain(stateObj.entity_id);
diff --git a/src/panels/lovelace/card-features/hui-climate-preset-modes-card-feature.ts b/src/panels/lovelace/card-features/hui-climate-preset-modes-card-feature.ts
index 825115cbaa..44c2015cbd 100644
--- a/src/panels/lovelace/card-features/hui-climate-preset-modes-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-climate-preset-modes-card-feature.ts
@@ -1,24 +1,27 @@
-import { mdiTuneVariant } from "@mdi/js";
+import type { ControlSelectOption } from "../../../components/ha-control-select";
+import type { HaControlSelectMenu } from "../../../components/ha-control-select-menu";
+import type { ClimateEntity } from "../../../data/climate";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
+import type { ClimatePresetModesCardFeatureConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/ha-attribute-icon";
+import "../../../components/ha-control-select";
+import "../../../components/ha-control-select-menu";
+
+import { mdiTuneVariant } from "@mdi/js";
import { html, LitElement } from "lit";
import { customElement, property, query, state } from "lit/decorators";
+
import { stopPropagation } from "../../../common/dom/stop_propagation";
import { computeDomain } from "../../../common/entity/compute_domain";
import { supportsFeature } from "../../../common/entity/supports-feature";
-import "../../../components/ha-attribute-icon";
-import "../../../components/ha-control-select";
-import type { ControlSelectOption } from "../../../components/ha-control-select";
-import "../../../components/ha-control-select-menu";
-import type { HaControlSelectMenu } from "../../../components/ha-control-select-menu";
-import type { ClimateEntity } from "../../../data/climate";
import { ClimateEntityFeature } from "../../../data/climate";
import { UNAVAILABLE } from "../../../data/entity";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
import { cardFeatureStyles } from "./common/card-feature-styles";
import { filterModes } from "./common/filter-modes";
-import type { ClimatePresetModesCardFeatureConfig } from "./types";
export const supportsClimatePresetModesCardFeature = (stateObj: HassEntity) => {
const domain = computeDomain(stateObj.entity_id);
diff --git a/src/panels/lovelace/card-features/hui-climate-swing-horizontal-modes-card-feature.ts b/src/panels/lovelace/card-features/hui-climate-swing-horizontal-modes-card-feature.ts
index 136d38d142..2269b15f71 100644
--- a/src/panels/lovelace/card-features/hui-climate-swing-horizontal-modes-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-climate-swing-horizontal-modes-card-feature.ts
@@ -1,24 +1,27 @@
-import { mdiArrowOscillating } from "@mdi/js";
+import type { ControlSelectOption } from "../../../components/ha-control-select";
+import type { HaControlSelectMenu } from "../../../components/ha-control-select-menu";
+import type { ClimateEntity } from "../../../data/climate";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
+import type { ClimateSwingHorizontalModesCardFeatureConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/ha-attribute-icon";
+import "../../../components/ha-control-select";
+import "../../../components/ha-control-select-menu";
+
+import { mdiArrowOscillating } from "@mdi/js";
import { html, LitElement } from "lit";
import { customElement, property, query, state } from "lit/decorators";
+
import { stopPropagation } from "../../../common/dom/stop_propagation";
import { computeDomain } from "../../../common/entity/compute_domain";
import { supportsFeature } from "../../../common/entity/supports-feature";
-import "../../../components/ha-attribute-icon";
-import "../../../components/ha-control-select";
-import type { ControlSelectOption } from "../../../components/ha-control-select";
-import "../../../components/ha-control-select-menu";
-import type { HaControlSelectMenu } from "../../../components/ha-control-select-menu";
-import type { ClimateEntity } from "../../../data/climate";
import { ClimateEntityFeature } from "../../../data/climate";
import { UNAVAILABLE } from "../../../data/entity";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
import { cardFeatureStyles } from "./common/card-feature-styles";
import { filterModes } from "./common/filter-modes";
-import type { ClimateSwingHorizontalModesCardFeatureConfig } from "./types";
export const supportsClimateSwingHorizontalModesCardFeature = (
stateObj: HassEntity
diff --git a/src/panels/lovelace/card-features/hui-climate-swing-modes-card-feature.ts b/src/panels/lovelace/card-features/hui-climate-swing-modes-card-feature.ts
index e381e741b4..bb53668dc6 100644
--- a/src/panels/lovelace/card-features/hui-climate-swing-modes-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-climate-swing-modes-card-feature.ts
@@ -1,24 +1,27 @@
-import { mdiArrowOscillating } from "@mdi/js";
+import type { ControlSelectOption } from "../../../components/ha-control-select";
+import type { HaControlSelectMenu } from "../../../components/ha-control-select-menu";
+import type { ClimateEntity } from "../../../data/climate";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
+import type { ClimateSwingModesCardFeatureConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/ha-attribute-icon";
+import "../../../components/ha-control-select";
+import "../../../components/ha-control-select-menu";
+
+import { mdiArrowOscillating } from "@mdi/js";
import { html, LitElement } from "lit";
import { customElement, property, query, state } from "lit/decorators";
+
import { stopPropagation } from "../../../common/dom/stop_propagation";
import { computeDomain } from "../../../common/entity/compute_domain";
import { supportsFeature } from "../../../common/entity/supports-feature";
-import "../../../components/ha-attribute-icon";
-import "../../../components/ha-control-select";
-import type { ControlSelectOption } from "../../../components/ha-control-select";
-import "../../../components/ha-control-select-menu";
-import type { HaControlSelectMenu } from "../../../components/ha-control-select-menu";
-import type { ClimateEntity } from "../../../data/climate";
import { ClimateEntityFeature } from "../../../data/climate";
import { UNAVAILABLE } from "../../../data/entity";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
import { cardFeatureStyles } from "./common/card-feature-styles";
import { filterModes } from "./common/filter-modes";
-import type { ClimateSwingModesCardFeatureConfig } from "./types";
export const supportsClimateSwingModesCardFeature = (stateObj: HassEntity) => {
const domain = computeDomain(stateObj.entity_id);
diff --git a/src/panels/lovelace/card-features/hui-counter-actions-card-feature.ts b/src/panels/lovelace/card-features/hui-counter-actions-card-feature.ts
index d4373a6827..ef71327e7f 100644
--- a/src/panels/lovelace/card-features/hui-counter-actions-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-counter-actions-card-feature.ts
@@ -1,17 +1,20 @@
-import { mdiRestore, mdiPlus, mdiMinus } from "@mdi/js";
-import type { HassEntity } from "home-assistant-js-websocket";
-import type { TemplateResult } from "lit";
-import { LitElement, html } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { computeDomain } from "../../../common/entity/compute_domain";
-import "../../../components/ha-control-select";
-import { UNAVAILABLE } from "../../../data/entity";
import type { HomeAssistant } from "../../../types";
import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+import type { TemplateResult } from "lit";
+
+import "../../../components/ha-control-button";
+import "../../../components/ha-control-button-group";
+import "../../../components/ha-control-select";
+
+import { mdiRestore, mdiPlus, mdiMinus } from "@mdi/js";
+import { LitElement, html } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { computeDomain } from "../../../common/entity/compute_domain";
+import { UNAVAILABLE } from "../../../data/entity";
import { cardFeatureStyles } from "./common/card-feature-styles";
import { COUNTER_ACTIONS, type CounterActionsCardFeatureConfig } from "./types";
-import "../../../components/ha-control-button-group";
-import "../../../components/ha-control-button";
export const supportsCounterActionsCardFeature = (stateObj: HassEntity) => {
const domain = computeDomain(stateObj.entity_id);
diff --git a/src/panels/lovelace/card-features/hui-cover-open-close-card-feature.ts b/src/panels/lovelace/card-features/hui-cover-open-close-card-feature.ts
index 0b4ec5e5f3..5a46ad42f9 100644
--- a/src/panels/lovelace/card-features/hui-cover-open-close-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-cover-open-close-card-feature.ts
@@ -1,26 +1,29 @@
-import { mdiStop } from "@mdi/js";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardFeature } from "../types";
+import type { CoverOpenCloseCardFeatureConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../components/ha-control-button";
+import "../../../components/ha-control-button-group";
+import "../../../components/ha-svg-icon";
+
+import { mdiStop } from "@mdi/js";
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { computeDomain } from "../../../common/entity/compute_domain";
import {
computeCloseIcon,
computeOpenIcon,
} from "../../../common/entity/cover_icon";
import { supportsFeature } from "../../../common/entity/supports-feature";
-import "../../../components/ha-control-button";
-import "../../../components/ha-svg-icon";
-import "../../../components/ha-control-button-group";
import {
canClose,
canOpen,
canStop,
CoverEntityFeature,
} from "../../../data/cover";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceCardFeature } from "../types";
import { cardFeatureStyles } from "./common/card-feature-styles";
-import type { CoverOpenCloseCardFeatureConfig } from "./types";
export const supportsCoverOpenCloseCardFeature = (stateObj: HassEntity) => {
const domain = computeDomain(stateObj.entity_id);
diff --git a/src/panels/lovelace/card-features/hui-cover-position-card-feature.ts b/src/panels/lovelace/card-features/hui-cover-position-card-feature.ts
index 3fd595e447..f7f1a50a8c 100644
--- a/src/panels/lovelace/card-features/hui-cover-position-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-cover-position-card-feature.ts
@@ -1,7 +1,14 @@
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardFeature } from "../types";
+import type { CoverPositionCardFeatureConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../components/ha-control-slider";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
+
import { computeCssColor } from "../../../common/color/compute-color";
import { computeAttributeNameDisplay } from "../../../common/entity/compute_attribute_display";
import { computeDomain } from "../../../common/entity/compute_domain";
@@ -11,11 +18,7 @@ import { supportsFeature } from "../../../common/entity/supports-feature";
import { CoverEntityFeature } from "../../../data/cover";
import { UNAVAILABLE } from "../../../data/entity";
import { DOMAIN_ATTRIBUTES_UNITS } from "../../../data/entity_attributes";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceCardFeature } from "../types";
import { cardFeatureStyles } from "./common/card-feature-styles";
-import type { CoverPositionCardFeatureConfig } from "./types";
-import "../../../components/ha-control-slider";
export const supportsCoverPositionCardFeature = (stateObj: HassEntity) => {
const domain = computeDomain(stateObj.entity_id);
diff --git a/src/panels/lovelace/card-features/hui-cover-tilt-card-feature.ts b/src/panels/lovelace/card-features/hui-cover-tilt-card-feature.ts
index 9c637bb192..b608cbc81c 100644
--- a/src/panels/lovelace/card-features/hui-cover-tilt-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-cover-tilt-card-feature.ts
@@ -1,22 +1,25 @@
-import { mdiArrowBottomLeft, mdiArrowTopRight, mdiStop } from "@mdi/js";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardFeature } from "../types";
+import type { CoverTiltCardFeatureConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../components/ha-control-button";
+import "../../../components/ha-control-button-group";
+import "../../../components/ha-svg-icon";
+
+import { mdiArrowBottomLeft, mdiArrowTopRight, mdiStop } from "@mdi/js";
import { LitElement, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { computeDomain } from "../../../common/entity/compute_domain";
import { supportsFeature } from "../../../common/entity/supports-feature";
-import "../../../components/ha-control-button";
-import "../../../components/ha-svg-icon";
-import "../../../components/ha-control-button-group";
import {
CoverEntityFeature,
canCloseTilt,
canOpenTilt,
canStopTilt,
} from "../../../data/cover";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceCardFeature } from "../types";
import { cardFeatureStyles } from "./common/card-feature-styles";
-import type { CoverTiltCardFeatureConfig } from "./types";
export const supportsCoverTiltCardFeature = (stateObj: HassEntity) => {
const domain = computeDomain(stateObj.entity_id);
diff --git a/src/panels/lovelace/card-features/hui-cover-tilt-position-card-feature.ts b/src/panels/lovelace/card-features/hui-cover-tilt-position-card-feature.ts
index 2b4ed1e2bd..b3a53a0c50 100644
--- a/src/panels/lovelace/card-features/hui-cover-tilt-position-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-cover-tilt-position-card-feature.ts
@@ -1,21 +1,23 @@
+import type { CoverEntity } from "../../../data/cover";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardFeature } from "../types";
+import type { CoverTiltPositionCardFeatureConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
+
import { computeCssColor } from "../../../common/color/compute-color";
import { computeAttributeNameDisplay } from "../../../common/entity/compute_attribute_display";
import { computeDomain } from "../../../common/entity/compute_domain";
import { stateColorCss } from "../../../common/entity/state_color";
import { supportsFeature } from "../../../common/entity/supports-feature";
-import type { CoverEntity } from "../../../data/cover";
import { CoverEntityFeature } from "../../../data/cover";
import { UNAVAILABLE } from "../../../data/entity";
import { DOMAIN_ATTRIBUTES_UNITS } from "../../../data/entity_attributes";
import { generateTiltSliderTrackBackgroundGradient } from "../../../state-control/cover/ha-state-control-cover-tilt-position";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceCardFeature } from "../types";
import { cardFeatureStyles } from "./common/card-feature-styles";
-import type { CoverTiltPositionCardFeatureConfig } from "./types";
const GRADIENT = generateTiltSliderTrackBackgroundGradient();
diff --git a/src/panels/lovelace/card-features/hui-fan-preset-modes-card-feature.ts b/src/panels/lovelace/card-features/hui-fan-preset-modes-card-feature.ts
index 83a6c6b603..6d531cc61b 100644
--- a/src/panels/lovelace/card-features/hui-fan-preset-modes-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-fan-preset-modes-card-feature.ts
@@ -1,24 +1,27 @@
-import { mdiTuneVariant } from "@mdi/js";
+import type { ControlSelectOption } from "../../../components/ha-control-select";
+import type { HaControlSelectMenu } from "../../../components/ha-control-select-menu";
+import type { FanEntity } from "../../../data/fan";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
+import type { FanPresetModesCardFeatureConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/ha-attribute-icon";
+import "../../../components/ha-control-select";
+import "../../../components/ha-control-select-menu";
+
+import { mdiTuneVariant } from "@mdi/js";
import { html, LitElement } from "lit";
import { customElement, property, query, state } from "lit/decorators";
+
import { stopPropagation } from "../../../common/dom/stop_propagation";
import { computeDomain } from "../../../common/entity/compute_domain";
import { supportsFeature } from "../../../common/entity/supports-feature";
-import "../../../components/ha-attribute-icon";
-import "../../../components/ha-control-select";
-import type { ControlSelectOption } from "../../../components/ha-control-select";
-import "../../../components/ha-control-select-menu";
-import type { HaControlSelectMenu } from "../../../components/ha-control-select-menu";
import { UNAVAILABLE } from "../../../data/entity";
-import type { FanEntity } from "../../../data/fan";
import { FanEntityFeature } from "../../../data/fan";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
import { cardFeatureStyles } from "./common/card-feature-styles";
import { filterModes } from "./common/filter-modes";
-import type { FanPresetModesCardFeatureConfig } from "./types";
export const supportsFanPresetModesCardFeature = (stateObj: HassEntity) => {
const domain = computeDomain(stateObj.entity_id);
diff --git a/src/panels/lovelace/card-features/hui-fan-speed-card-feature.ts b/src/panels/lovelace/card-features/hui-fan-speed-card-feature.ts
index 0be0146872..10a2314925 100644
--- a/src/panels/lovelace/card-features/hui-fan-speed-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-fan-speed-card-feature.ts
@@ -1,15 +1,22 @@
+import type { ControlSelectOption } from "../../../components/ha-control-select";
+import type { FanEntity, FanSpeed } from "../../../data/fan";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardFeature } from "../types";
+import type { FanSpeedCardFeatureConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../components/ha-control-select";
+import "../../../components/ha-control-slider";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { computeAttributeNameDisplay } from "../../../common/entity/compute_attribute_display";
import { computeDomain } from "../../../common/entity/compute_domain";
import { stateActive } from "../../../common/entity/state_active";
import { supportsFeature } from "../../../common/entity/supports-feature";
-import "../../../components/ha-control-select";
-import type { ControlSelectOption } from "../../../components/ha-control-select";
-import "../../../components/ha-control-slider";
import { UNAVAILABLE } from "../../../data/entity";
-import type { FanEntity, FanSpeed } from "../../../data/fan";
+import { DOMAIN_ATTRIBUTES_UNITS } from "../../../data/entity_attributes";
import {
computeFanSpeedCount,
computeFanSpeedIcon,
@@ -19,10 +26,6 @@ import {
fanPercentageToSpeed,
fanSpeedToPercentage,
} from "../../../data/fan";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceCardFeature } from "../types";
-import type { FanSpeedCardFeatureConfig } from "./types";
-import { DOMAIN_ATTRIBUTES_UNITS } from "../../../data/entity_attributes";
import { cardFeatureStyles } from "./common/card-feature-styles";
export const supportsFanSpeedCardFeature = (stateObj: HassEntity) => {
diff --git a/src/panels/lovelace/card-features/hui-humidifier-modes-card-feature.ts b/src/panels/lovelace/card-features/hui-humidifier-modes-card-feature.ts
index 4cb01b0c2a..298772eb4a 100644
--- a/src/panels/lovelace/card-features/hui-humidifier-modes-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-humidifier-modes-card-feature.ts
@@ -1,24 +1,27 @@
-import { mdiTuneVariant } from "@mdi/js";
+import type { ControlSelectOption } from "../../../components/ha-control-select";
+import type { HaControlSelectMenu } from "../../../components/ha-control-select-menu";
+import type { HumidifierEntity } from "../../../data/humidifier";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
+import type { HumidifierModesCardFeatureConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/ha-attribute-icon";
+import "../../../components/ha-control-select";
+import "../../../components/ha-control-select-menu";
+
+import { mdiTuneVariant } from "@mdi/js";
import { html, LitElement } from "lit";
import { customElement, property, query, state } from "lit/decorators";
+
import { stopPropagation } from "../../../common/dom/stop_propagation";
import { computeDomain } from "../../../common/entity/compute_domain";
import { supportsFeature } from "../../../common/entity/supports-feature";
-import "../../../components/ha-attribute-icon";
-import "../../../components/ha-control-select";
-import type { ControlSelectOption } from "../../../components/ha-control-select";
-import "../../../components/ha-control-select-menu";
-import type { HaControlSelectMenu } from "../../../components/ha-control-select-menu";
import { UNAVAILABLE } from "../../../data/entity";
-import type { HumidifierEntity } from "../../../data/humidifier";
import { HumidifierEntityFeature } from "../../../data/humidifier";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
import { cardFeatureStyles } from "./common/card-feature-styles";
import { filterModes } from "./common/filter-modes";
-import type { HumidifierModesCardFeatureConfig } from "./types";
export const supportsHumidifierModesCardFeature = (stateObj: HassEntity) => {
const domain = computeDomain(stateObj.entity_id);
diff --git a/src/panels/lovelace/card-features/hui-humidifier-toggle-card-feature.ts b/src/panels/lovelace/card-features/hui-humidifier-toggle-card-feature.ts
index 575437c04d..3126dd5931 100644
--- a/src/panels/lovelace/card-features/hui-humidifier-toggle-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-humidifier-toggle-card-feature.ts
@@ -1,22 +1,25 @@
-import { mdiPower, mdiWaterPercent } from "@mdi/js";
-import type { HassEntity } from "home-assistant-js-websocket";
-import type { PropertyValues, TemplateResult } from "lit";
-import { LitElement, html } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { styleMap } from "lit/directives/style-map";
-import { computeDomain } from "../../../common/entity/compute_domain";
-import { stateColorCss } from "../../../common/entity/state_color";
-import "../../../components/ha-control-select";
import type { ControlSelectOption } from "../../../components/ha-control-select";
-import { UNAVAILABLE } from "../../../data/entity";
import type {
HumidifierEntity,
HumidifierState,
} from "../../../data/humidifier";
import type { HomeAssistant } from "../../../types";
import type { LovelaceCardFeature } from "../types";
-import { cardFeatureStyles } from "./common/card-feature-styles";
import type { HumidifierToggleCardFeatureConfig } from "./types";
+import type { HassEntity } from "home-assistant-js-websocket";
+import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/ha-control-select";
+
+import { mdiPower, mdiWaterPercent } from "@mdi/js";
+import { LitElement, html } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { styleMap } from "lit/directives/style-map";
+
+import { computeDomain } from "../../../common/entity/compute_domain";
+import { stateColorCss } from "../../../common/entity/state_color";
+import { UNAVAILABLE } from "../../../data/entity";
+import { cardFeatureStyles } from "./common/card-feature-styles";
export const supportsHumidifierToggleCardFeature = (stateObj: HassEntity) => {
const domain = computeDomain(stateObj.entity_id);
diff --git a/src/panels/lovelace/card-features/hui-lawn-mower-commands-card-feature.ts b/src/panels/lovelace/card-features/hui-lawn-mower-commands-card-feature.ts
index 70306fd455..86f784543d 100644
--- a/src/panels/lovelace/card-features/hui-lawn-mower-commands-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-lawn-mower-commands-card-feature.ts
@@ -1,22 +1,25 @@
-import { mdiHomeImportOutline, mdiPause, mdiPlay } from "@mdi/js";
-import type { HassEntity } from "home-assistant-js-websocket";
-import { LitElement, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { computeDomain } from "../../../common/entity/compute_domain";
-import { supportsFeature } from "../../../common/entity/supports-feature";
-import "../../../components/ha-control-button";
-import "../../../components/ha-svg-icon";
-import "../../../components/ha-control-button-group";
-import { UNAVAILABLE } from "../../../data/entity";
import type { LawnMowerEntity } from "../../../data/lawn_mower";
-import { LawnMowerEntityFeature, canDock } from "../../../data/lawn_mower";
import type { HomeAssistant } from "../../../types";
import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
-import { cardFeatureStyles } from "./common/card-feature-styles";
import type {
LawnMowerCommand,
LawnMowerCommandsCardFeatureConfig,
} from "./types";
+import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../components/ha-control-button";
+import "../../../components/ha-control-button-group";
+import "../../../components/ha-svg-icon";
+
+import { mdiHomeImportOutline, mdiPause, mdiPlay } from "@mdi/js";
+import { LitElement, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { computeDomain } from "../../../common/entity/compute_domain";
+import { supportsFeature } from "../../../common/entity/supports-feature";
+import { UNAVAILABLE } from "../../../data/entity";
+import { LawnMowerEntityFeature, canDock } from "../../../data/lawn_mower";
+import { cardFeatureStyles } from "./common/card-feature-styles";
import { LAWN_MOWER_COMMANDS } from "./types";
interface LawnMowerButton {
diff --git a/src/panels/lovelace/card-features/hui-light-brightness-card-feature.ts b/src/panels/lovelace/card-features/hui-light-brightness-card-feature.ts
index ae48e0a74f..364f4e64e2 100644
--- a/src/panels/lovelace/card-features/hui-light-brightness-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-light-brightness-card-feature.ts
@@ -1,15 +1,18 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { computeDomain } from "../../../common/entity/compute_domain";
-import { stateActive } from "../../../common/entity/state_active";
-import "../../../components/ha-control-slider";
-import { UNAVAILABLE } from "../../../data/entity";
-import { lightSupportsBrightness } from "../../../data/light";
import type { HomeAssistant } from "../../../types";
import type { LovelaceCardFeature } from "../types";
-import { cardFeatureStyles } from "./common/card-feature-styles";
import type { LightBrightnessCardFeatureConfig } from "./types";
+import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../components/ha-control-slider";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { computeDomain } from "../../../common/entity/compute_domain";
+import { stateActive } from "../../../common/entity/state_active";
+import { UNAVAILABLE } from "../../../data/entity";
+import { lightSupportsBrightness } from "../../../data/light";
+import { cardFeatureStyles } from "./common/card-feature-styles";
export const supportsLightBrightnessCardFeature = (stateObj: HassEntity) => {
const domain = computeDomain(stateObj.entity_id);
diff --git a/src/panels/lovelace/card-features/hui-light-color-temp-card-feature.ts b/src/panels/lovelace/card-features/hui-light-color-temp-card-feature.ts
index 4675b293a6..9917f8a4f7 100644
--- a/src/panels/lovelace/card-features/hui-light-color-temp-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-light-color-temp-card-feature.ts
@@ -1,23 +1,26 @@
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardFeature } from "../types";
+import type { LightColorTempCardFeatureConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../components/ha-control-slider";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
import memoizeOne from "memoize-one";
+
import {
DEFAULT_MAX_KELVIN,
DEFAULT_MIN_KELVIN,
} from "../../../common/color/convert-light-color";
import { computeDomain } from "../../../common/entity/compute_domain";
import { stateActive } from "../../../common/entity/state_active";
-import "../../../components/ha-control-slider";
import { UNAVAILABLE } from "../../../data/entity";
import { DOMAIN_ATTRIBUTES_UNITS } from "../../../data/entity_attributes";
import { LightColorMode, lightSupportsColorMode } from "../../../data/light";
import { generateColorTemperatureGradient } from "../../../dialogs/more-info/components/lights/light-color-temp-picker";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceCardFeature } from "../types";
import { cardFeatureStyles } from "./common/card-feature-styles";
-import type { LightColorTempCardFeatureConfig } from "./types";
export const supportsLightColorTempCardFeature = (stateObj: HassEntity) => {
const domain = computeDomain(stateObj.entity_id);
diff --git a/src/panels/lovelace/card-features/hui-lock-commands-card-feature.ts b/src/panels/lovelace/card-features/hui-lock-commands-card-feature.ts
index 2c6968faf9..c39f8c606c 100644
--- a/src/panels/lovelace/card-features/hui-lock-commands-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-lock-commands-card-feature.ts
@@ -1,22 +1,24 @@
-import { mdiLock, mdiLockOpenVariant } from "@mdi/js";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardFeature } from "../types";
+import type { LockCommandsCardFeatureConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup } from "lit";
-import { LitElement, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { computeDomain } from "../../../common/entity/compute_domain";
import "../../../components/ha-control-button";
import "../../../components/ha-control-button-group";
+
+import { mdiLock, mdiLockOpenVariant } from "@mdi/js";
+import { LitElement, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { computeDomain } from "../../../common/entity/compute_domain";
import { forwardHaptic } from "../../../data/haptics";
import {
callProtectedLockService,
canLock,
canUnlock,
} from "../../../data/lock";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceCardFeature } from "../types";
import { cardFeatureStyles } from "./common/card-feature-styles";
-import type { LockCommandsCardFeatureConfig } from "./types";
export const supportsLockCommandsCardFeature = (stateObj: HassEntity) => {
const domain = computeDomain(stateObj.entity_id);
diff --git a/src/panels/lovelace/card-features/hui-lock-open-door-card-feature.ts b/src/panels/lovelace/card-features/hui-lock-open-door-card-feature.ts
index d0b14f1f46..0f4d1edb28 100644
--- a/src/panels/lovelace/card-features/hui-lock-open-door-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-lock-open-door-card-feature.ts
@@ -1,21 +1,23 @@
-import { mdiCheck } from "@mdi/js";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardFeature } from "../types";
+import type { LockOpenDoorCardFeatureConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { computeDomain } from "../../../common/entity/compute_domain";
-import { supportsFeature } from "../../../common/entity/supports-feature";
import "../../../components/ha-control-button";
import "../../../components/ha-control-button-group";
+
+import { mdiCheck } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { computeDomain } from "../../../common/entity/compute_domain";
+import { supportsFeature } from "../../../common/entity/supports-feature";
import {
callProtectedLockService,
canOpen,
LockEntityFeature,
} from "../../../data/lock";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceCardFeature } from "../types";
-import type { LockOpenDoorCardFeatureConfig } from "./types";
import { cardFeatureStyles } from "./common/card-feature-styles";
export const supportsLockOpenDoorCardFeature = (stateObj: HassEntity) => {
diff --git a/src/panels/lovelace/card-features/hui-media-player-volume-slider-card-feature.ts b/src/panels/lovelace/card-features/hui-media-player-volume-slider-card-feature.ts
index 3aeffe2b19..7f40976337 100644
--- a/src/panels/lovelace/card-features/hui-media-player-volume-slider-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-media-player-volume-slider-card-feature.ts
@@ -1,16 +1,19 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { computeDomain } from "../../../common/entity/compute_domain";
-import { stateActive } from "../../../common/entity/state_active";
-import "../../../components/ha-control-slider";
-import { isUnavailableState } from "../../../data/entity";
import type { HomeAssistant } from "../../../types";
import type { LovelaceCardFeature } from "../types";
-import { cardFeatureStyles } from "./common/card-feature-styles";
import type { MediaPlayerVolumeSliderCardFeatureConfig } from "./types";
-import { MediaPlayerEntityFeature } from "../../../data/media-player";
+import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../components/ha-control-slider";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { computeDomain } from "../../../common/entity/compute_domain";
+import { stateActive } from "../../../common/entity/state_active";
import { supportsFeature } from "../../../common/entity/supports-feature";
+import { isUnavailableState } from "../../../data/entity";
+import { MediaPlayerEntityFeature } from "../../../data/media-player";
+import { cardFeatureStyles } from "./common/card-feature-styles";
export const supportsMediaPlayerVolumeSliderCardFeature = (
stateObj: HassEntity
diff --git a/src/panels/lovelace/card-features/hui-numeric-input-card-feature.ts b/src/panels/lovelace/card-features/hui-numeric-input-card-feature.ts
index 561ce890cf..d4623d959a 100644
--- a/src/panels/lovelace/card-features/hui-numeric-input-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-numeric-input-card-feature.ts
@@ -1,18 +1,21 @@
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
+import type { NumericInputCardFeatureConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { computeDomain } from "../../../common/entity/compute_domain";
+
import "../../../components/ha-control-button";
import "../../../components/ha-control-button-group";
import "../../../components/ha-control-number-buttons";
import "../../../components/ha-control-slider";
import "../../../components/ha-icon";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { computeDomain } from "../../../common/entity/compute_domain";
import { isUnavailableState } from "../../../data/entity";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
import { cardFeatureStyles } from "./common/card-feature-styles";
-import type { NumericInputCardFeatureConfig } from "./types";
export const supportsNumericInputCardFeature = (stateObj: HassEntity) => {
const domain = computeDomain(stateObj.entity_id);
diff --git a/src/panels/lovelace/card-features/hui-select-options-card-feature.ts b/src/panels/lovelace/card-features/hui-select-options-card-feature.ts
index 65ee578b54..534f00cd07 100644
--- a/src/panels/lovelace/card-features/hui-select-options-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-select-options-card-feature.ts
@@ -1,20 +1,23 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { stopPropagation } from "../../../common/dom/stop_propagation";
-import { computeDomain } from "../../../common/entity/compute_domain";
-import "../../../components/ha-control-select-menu";
import type { HaControlSelectMenu } from "../../../components/ha-control-select-menu";
-import { UNAVAILABLE } from "../../../data/entity";
import type { InputSelectEntity } from "../../../data/input_select";
import type { SelectEntity } from "../../../data/select";
import type { HomeAssistant } from "../../../types";
import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
+import type { SelectOptionsCardFeatureConfig } from "./types";
+import type { HassEntity } from "home-assistant-js-websocket";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-control-select-menu";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { stopPropagation } from "../../../common/dom/stop_propagation";
+import { computeDomain } from "../../../common/entity/compute_domain";
+import { UNAVAILABLE } from "../../../data/entity";
import { cardFeatureStyles } from "./common/card-feature-styles";
import { filterModes } from "./common/filter-modes";
-import type { SelectOptionsCardFeatureConfig } from "./types";
export const supportsSelectOptionsCardFeature = (stateObj: HassEntity) => {
const domain = computeDomain(stateObj.entity_id);
diff --git a/src/panels/lovelace/card-features/hui-target-humidity-card-feature.ts b/src/panels/lovelace/card-features/hui-target-humidity-card-feature.ts
index f4650a66ad..a39047e54a 100644
--- a/src/panels/lovelace/card-features/hui-target-humidity-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-target-humidity-card-feature.ts
@@ -1,15 +1,18 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { computeDomain } from "../../../common/entity/compute_domain";
-import "../../../components/ha-control-slider";
-import { UNAVAILABLE } from "../../../data/entity";
import type { HumidifierEntity } from "../../../data/humidifier";
import type { HomeAssistant } from "../../../types";
import type { LovelaceCardFeature } from "../types";
-import { cardFeatureStyles } from "./common/card-feature-styles";
import type { TargetHumidityCardFeatureConfig } from "./types";
+import type { HassEntity } from "home-assistant-js-websocket";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-control-slider";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { computeDomain } from "../../../common/entity/compute_domain";
+import { UNAVAILABLE } from "../../../data/entity";
+import { cardFeatureStyles } from "./common/card-feature-styles";
export const supportsTargetHumidityCardFeature = (stateObj: HassEntity) => {
const domain = computeDomain(stateObj.entity_id);
diff --git a/src/panels/lovelace/card-features/hui-target-temperature-card-feature.ts b/src/panels/lovelace/card-features/hui-target-temperature-card-feature.ts
index 0cea86d0aa..cd19ac6232 100644
--- a/src/panels/lovelace/card-features/hui-target-temperature-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-target-temperature-card-feature.ts
@@ -1,25 +1,28 @@
+import type { ClimateEntity } from "../../../data/climate";
+import type { WaterHeaterEntity } from "../../../data/water_heater";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardFeature } from "../types";
+import type { TargetTemperatureCardFeatureConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
+
+import "../../../components/ha-control-button-group";
+import "../../../components/ha-control-number-buttons";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
+
import { UNIT_F } from "../../../common/const";
import { computeDomain } from "../../../common/entity/compute_domain";
import { computeStateDomain } from "../../../common/entity/compute_state_domain";
import { stateColorCss } from "../../../common/entity/state_color";
import { supportsFeature } from "../../../common/entity/supports-feature";
import { debounce } from "../../../common/util/debounce";
-import "../../../components/ha-control-button-group";
-import "../../../components/ha-control-number-buttons";
-import type { ClimateEntity } from "../../../data/climate";
import { ClimateEntityFeature } from "../../../data/climate";
import { UNAVAILABLE } from "../../../data/entity";
-import type { WaterHeaterEntity } from "../../../data/water_heater";
import { WaterHeaterEntityFeature } from "../../../data/water_heater";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceCardFeature } from "../types";
import { cardFeatureStyles } from "./common/card-feature-styles";
-import type { TargetTemperatureCardFeatureConfig } from "./types";
type Target = "value" | "low" | "high";
diff --git a/src/panels/lovelace/card-features/hui-toggle-card-feature.ts b/src/panels/lovelace/card-features/hui-toggle-card-feature.ts
index 3cef688c9c..c0b90d13ac 100644
--- a/src/panels/lovelace/card-features/hui-toggle-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-toggle-card-feature.ts
@@ -1,3 +1,12 @@
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardFeature } from "../types";
+import type { ToggleCardFeatureConfig } from "./types";
+import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../components/ha-control-button";
+import "../../../components/ha-control-button-group";
+import "../../../components/ha-control-switch";
+
import {
mdiFan,
mdiFanOff,
@@ -8,22 +17,16 @@ import {
mdiVolumeHigh,
mdiVolumeOff,
} from "@mdi/js";
-import type { HassEntity } from "home-assistant-js-websocket";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { styleMap } from "lit/directives/style-map";
+
import { computeDomain } from "../../../common/entity/compute_domain";
import { stateColorCss } from "../../../common/entity/state_color";
-import "../../../components/ha-control-button";
-import "../../../components/ha-control-button-group";
-import "../../../components/ha-control-switch";
import { UNAVAILABLE, UNKNOWN } from "../../../data/entity";
import { forwardHaptic } from "../../../data/haptics";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceCardFeature } from "../types";
import { cardFeatureStyles } from "./common/card-feature-styles";
-import type { ToggleCardFeatureConfig } from "./types";
export const supportsToggleCardFeature = (stateObj: HassEntity) => {
const domain = computeDomain(stateObj.entity_id);
diff --git a/src/panels/lovelace/card-features/hui-update-actions-card-feature.ts b/src/panels/lovelace/card-features/hui-update-actions-card-feature.ts
index 1956df515a..0c287ce417 100644
--- a/src/panels/lovelace/card-features/hui-update-actions-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-update-actions-card-feature.ts
@@ -1,20 +1,23 @@
-import { mdiCancel, mdiCellphoneArrowDown } from "@mdi/js";
+import type { UpdateEntity } from "../../../data/update";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
+import type { UpdateActionsCardFeatureConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../components/ha-control-button";
+import "../../../components/ha-control-button-group";
+
+import { mdiCancel, mdiCellphoneArrowDown } from "@mdi/js";
import { LitElement, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { computeDomain } from "../../../common/entity/compute_domain";
import { stateActive } from "../../../common/entity/state_active";
import { supportsFeature } from "../../../common/entity/supports-feature";
-import "../../../components/ha-control-button";
-import "../../../components/ha-control-button-group";
import { UNAVAILABLE } from "../../../data/entity";
-import type { UpdateEntity } from "../../../data/update";
import { UpdateEntityFeature, updateIsInstalling } from "../../../data/update";
import { showUpdateBackupDialogParams } from "../../../dialogs/update_backup/show-update-backup-dialog";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
import { cardFeatureStyles } from "./common/card-feature-styles";
-import type { UpdateActionsCardFeatureConfig } from "./types";
export const DEFAULT_UPDATE_BACKUP_OPTION = "no";
diff --git a/src/panels/lovelace/card-features/hui-vacuum-commands-card-feature.ts b/src/panels/lovelace/card-features/hui-vacuum-commands-card-feature.ts
index 20f77d12ca..189b3eadc1 100644
--- a/src/panels/lovelace/card-features/hui-vacuum-commands-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-vacuum-commands-card-feature.ts
@@ -1,3 +1,13 @@
+import type { VacuumEntity } from "../../../data/vacuum";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
+import type { VacuumCommand, VacuumCommandsCardFeatureConfig } from "./types";
+import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../components/ha-control-button";
+import "../../../components/ha-control-button-group";
+import "../../../components/ha-svg-icon";
+
import {
mdiHomeImportOutline,
mdiMapMarker,
@@ -7,16 +17,12 @@ import {
mdiStop,
mdiTargetVariant,
} from "@mdi/js";
-import type { HassEntity } from "home-assistant-js-websocket";
import { LitElement, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { computeDomain } from "../../../common/entity/compute_domain";
import { supportsFeature } from "../../../common/entity/supports-feature";
-import "../../../components/ha-control-button";
-import "../../../components/ha-svg-icon";
-import "../../../components/ha-control-button-group";
import { UNAVAILABLE } from "../../../data/entity";
-import type { VacuumEntity } from "../../../data/vacuum";
import {
VacuumEntityFeature,
canReturnHome,
@@ -24,10 +30,7 @@ import {
canStop,
isCleaning,
} from "../../../data/vacuum";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
import { cardFeatureStyles } from "./common/card-feature-styles";
-import type { VacuumCommand, VacuumCommandsCardFeatureConfig } from "./types";
import { VACUUM_COMMANDS } from "./types";
interface VacuumButton {
diff --git a/src/panels/lovelace/card-features/hui-water-heater-operation-modes-card-feature.ts b/src/panels/lovelace/card-features/hui-water-heater-operation-modes-card-feature.ts
index a74041cbdd..47ebed5552 100644
--- a/src/panels/lovelace/card-features/hui-water-heater-operation-modes-card-feature.ts
+++ b/src/panels/lovelace/card-features/hui-water-heater-operation-modes-card-feature.ts
@@ -1,29 +1,32 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import type { PropertyValues, TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { styleMap } from "lit/directives/style-map";
-import { computeDomain } from "../../../common/entity/compute_domain";
-import { stateColorCss } from "../../../common/entity/state_color";
-import "../../../components/ha-control-button";
-import "../../../components/ha-control-button-group";
-import "../../../components/ha-control-select";
import type { ControlSelectOption } from "../../../components/ha-control-select";
-import "../../../components/ha-control-slider";
-import { UNAVAILABLE } from "../../../data/entity";
import type {
OperationMode,
WaterHeaterEntity,
} from "../../../data/water_heater";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
+import type { WaterHeaterOperationModesCardFeatureConfig } from "./types";
+import type { HassEntity } from "home-assistant-js-websocket";
+import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/ha-control-button";
+import "../../../components/ha-control-button-group";
+import "../../../components/ha-control-select";
+import "../../../components/ha-control-slider";
+
+import { html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { styleMap } from "lit/directives/style-map";
+
+import { computeDomain } from "../../../common/entity/compute_domain";
+import { stateColorCss } from "../../../common/entity/state_color";
+import { UNAVAILABLE } from "../../../data/entity";
import {
compareWaterHeaterOperationMode,
computeOperationModeIcon,
} from "../../../data/water_heater";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceCardFeature, LovelaceCardFeatureEditor } from "../types";
import { cardFeatureStyles } from "./common/card-feature-styles";
import { filterModes } from "./common/filter-modes";
-import type { WaterHeaterOperationModesCardFeatureConfig } from "./types";
export const supportsWaterHeaterOperationModesCardFeature = (
stateObj: HassEntity
diff --git a/src/panels/lovelace/cards/energy/common/energy-chart-options.ts b/src/panels/lovelace/cards/energy/common/energy-chart-options.ts
index d26d47f96d..b554d8d948 100644
--- a/src/panels/lovelace/cards/energy/common/energy-chart-options.ts
+++ b/src/panels/lovelace/cards/energy/common/energy-chart-options.ts
@@ -1,4 +1,12 @@
+import type { FrontendLocaleData } from "../../../../../data/translation";
+import type { ECOption } from "../../../../../resources/echarts";
+import type {
+ BarSeriesOption,
+ CallbackDataParams,
+ TopLevelFormatterParams,
+} from "echarts/types/dist/shared";
import type { HassConfig } from "home-assistant-js-websocket";
+
import {
differenceInMonths,
subHours,
@@ -11,19 +19,13 @@ import {
addMonths,
addHours,
} from "date-fns";
-import type {
- BarSeriesOption,
- CallbackDataParams,
- TopLevelFormatterParams,
-} from "echarts/types/dist/shared";
-import type { FrontendLocaleData } from "../../../../../data/translation";
-import { formatNumber } from "../../../../../common/number/format_number";
+
import {
formatDateMonthYear,
formatDateVeryShort,
} from "../../../../../common/datetime/format_date";
import { formatTime } from "../../../../../common/datetime/format_time";
-import type { ECOption } from "../../../../../resources/echarts";
+import { formatNumber } from "../../../../../common/number/format_number";
export function getSuggestedMax(dayDifference: number, end: Date): number {
let suggestedMax = new Date(end);
diff --git a/src/panels/lovelace/cards/energy/hui-energy-carbon-consumed-gauge-card.ts b/src/panels/lovelace/cards/energy/hui-energy-carbon-consumed-gauge-card.ts
index 6281f395a1..ea6f8f7f1b 100644
--- a/src/panels/lovelace/cards/energy/hui-energy-carbon-consumed-gauge-card.ts
+++ b/src/panels/lovelace/cards/energy/hui-energy-carbon-consumed-gauge-card.ts
@@ -1,27 +1,30 @@
-import { mdiInformation } from "@mdi/js";
+import type { EnergyData } from "../../../../data/energy";
+import type { HomeAssistant } from "../../../../types";
+import type { LovelaceCard } from "../../types";
+import type { EnergyCarbonGaugeCardConfig } from "../types";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { styleMap } from "lit/directives/style-map";
-import { round } from "../../../../common/number/round";
+
import "../../../../components/ha-card";
import "../../../../components/ha-gauge";
import "../../../../components/ha-svg-icon";
import "../../../../components/ha-tooltip";
-import type { EnergyData } from "../../../../data/energy";
+
+import { mdiInformation } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { styleMap } from "lit/directives/style-map";
+
+import { round } from "../../../../common/number/round";
import {
energySourcesByType,
getEnergyDataCollection,
} from "../../../../data/energy";
import { calculateStatisticsSumGrowth } from "../../../../data/recorder";
import { SubscribeMixin } from "../../../../mixins/subscribe-mixin";
-import type { HomeAssistant } from "../../../../types";
-import { createEntityNotFoundWarning } from "../../components/hui-warning";
-import type { LovelaceCard } from "../../types";
-import { severityMap } from "../hui-gauge-card";
-import type { EnergyCarbonGaugeCardConfig } from "../types";
import { hasConfigChanged } from "../../common/has-changed";
+import { createEntityNotFoundWarning } from "../../components/hui-warning";
+import { severityMap } from "../hui-gauge-card";
const FORMAT_OPTIONS = {
maximumFractionDigits: 0,
diff --git a/src/panels/lovelace/cards/energy/hui-energy-compare-card.ts b/src/panels/lovelace/cards/energy/hui-energy-compare-card.ts
index 359f388149..127bea198d 100644
--- a/src/panels/lovelace/cards/energy/hui-energy-compare-card.ts
+++ b/src/panels/lovelace/cards/energy/hui-energy-compare-card.ts
@@ -1,18 +1,21 @@
-import { differenceInDays, endOfDay } from "date-fns";
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { formatDate } from "../../../../common/datetime/format_date";
import type { EnergyData } from "../../../../data/energy";
-import { getEnergyDataCollection } from "../../../../data/energy";
-import { SubscribeMixin } from "../../../../mixins/subscribe-mixin";
import type { HomeAssistant } from "../../../../types";
import type { LovelaceCard } from "../../types";
import type { EnergyCardBaseConfig } from "../types";
-import { hasConfigChanged } from "../../common/has-changed";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { PropertyValues } from "lit";
+
import "../../../../components/ha-alert";
+
+import { differenceInDays, endOfDay } from "date-fns";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { formatDate } from "../../../../common/datetime/format_date";
import { fireEvent } from "../../../../common/dom/fire_event";
+import { getEnergyDataCollection } from "../../../../data/energy";
+import { SubscribeMixin } from "../../../../mixins/subscribe-mixin";
+import { hasConfigChanged } from "../../common/has-changed";
@customElement("hui-energy-compare-card")
export class HuiEnergyCompareCard
diff --git a/src/panels/lovelace/cards/energy/hui-energy-date-selection-card.ts b/src/panels/lovelace/cards/energy/hui-energy-date-selection-card.ts
index ca7440b93c..e76496e011 100644
--- a/src/panels/lovelace/cards/energy/hui-energy-date-selection-card.ts
+++ b/src/panels/lovelace/cards/energy/hui-energy-date-selection-card.ts
@@ -1,12 +1,15 @@
-import type { PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import "../../../../components/ha-card";
import type { HomeAssistant } from "../../../../types";
-import { hasConfigChanged } from "../../common/has-changed";
-import "../../components/hui-energy-period-selector";
import type { LovelaceCard, LovelaceGridOptions } from "../../types";
import type { EnergyCardBaseConfig } from "../types";
+import type { PropertyValues } from "lit";
+
+import "../../../../components/ha-card";
+import "../../components/hui-energy-period-selector";
+
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { hasConfigChanged } from "../../common/has-changed";
@customElement("hui-energy-date-selection-card")
export class HuiEnergyDateSelectionCard
diff --git a/src/panels/lovelace/cards/energy/hui-energy-devices-detail-graph-card.ts b/src/panels/lovelace/cards/energy/hui-energy-devices-detail-graph-card.ts
index f36f39a9de..8e0ea0a03a 100644
--- a/src/panels/lovelace/cards/energy/hui-energy-devices-detail-graph-card.ts
+++ b/src/panels/lovelace/cards/energy/hui-energy-devices-detail-graph-card.ts
@@ -1,43 +1,46 @@
-import { endOfToday, startOfToday } from "date-fns";
-import type { HassConfig, UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import memoizeOne from "memoize-one";
-import type { BarSeriesOption } from "echarts/charts";
-import { getGraphColorByIndex } from "../../../../common/color/colors";
-import { getEnergyColor } from "./common/color";
-import "../../../../components/ha-card";
-import "../../../../components/chart/ha-chart-base";
import type {
DeviceConsumptionEnergyPreference,
EnergyData,
} from "../../../../data/energy";
+import type { Statistics, StatisticsMetaData } from "../../../../data/recorder";
+import type { FrontendLocaleData } from "../../../../data/translation";
+import type { ECOption } from "../../../../resources/echarts";
+import type { HomeAssistant } from "../../../../types";
+import type { LovelaceCard } from "../../types";
+import type { EnergyDevicesDetailGraphCardConfig } from "../types";
+import type { BarSeriesOption } from "echarts/charts";
+import type { HassConfig, UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { PropertyValues } from "lit";
+
+import "../../../../components/chart/ha-chart-base";
+import "../../../../components/ha-card";
+
+import { endOfToday, startOfToday } from "date-fns";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+import memoizeOne from "memoize-one";
+
+import { getGraphColorByIndex } from "../../../../common/color/colors";
+import { storage } from "../../../../common/decorators/storage";
+import { formatNumber } from "../../../../common/number/format_number";
import {
getEnergyDataCollection,
getSummedData,
computeConsumptionData,
} from "../../../../data/energy";
-import type { Statistics, StatisticsMetaData } from "../../../../data/recorder";
import {
calculateStatisticSumGrowth,
getStatisticLabel,
} from "../../../../data/recorder";
-import type { FrontendLocaleData } from "../../../../data/translation";
import { SubscribeMixin } from "../../../../mixins/subscribe-mixin";
-import type { HomeAssistant } from "../../../../types";
-import type { LovelaceCard } from "../../types";
-import type { EnergyDevicesDetailGraphCardConfig } from "../types";
import { hasConfigChanged } from "../../common/has-changed";
+import { getEnergyColor } from "./common/color";
import {
fillDataGapsAndRoundCaps,
getCommonOptions,
getCompareTransform,
} from "./common/energy-chart-options";
-import { storage } from "../../../../common/decorators/storage";
-import type { ECOption } from "../../../../resources/echarts";
-import { formatNumber } from "../../../../common/number/format_number";
const UNIT = "kWh";
diff --git a/src/panels/lovelace/cards/energy/hui-energy-devices-graph-card.ts b/src/panels/lovelace/cards/energy/hui-energy-devices-graph-card.ts
index fc987b3300..f86b2b0eba 100644
--- a/src/panels/lovelace/cards/energy/hui-energy-devices-graph-card.ts
+++ b/src/panels/lovelace/cards/energy/hui-energy-devices-graph-card.ts
@@ -1,18 +1,27 @@
+import type { EnergyData } from "../../../../data/energy";
+import type { ECOption } from "../../../../resources/echarts";
+import type { HomeAssistant } from "../../../../types";
+import type { LovelaceCard } from "../../types";
+import type { EnergyDevicesGraphCardConfig } from "../types";
+import type { BarSeriesOption } from "echarts/charts";
+import type { ECElementEvent } from "echarts/types/dist/shared";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
+
+import "../../../../components/chart/ha-chart-base";
+import "../../../../components/ha-card";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import memoizeOne from "memoize-one";
-import type { BarSeriesOption } from "echarts/charts";
-import type { ECElementEvent } from "echarts/types/dist/shared";
+
import { getGraphColorByIndex } from "../../../../common/color/colors";
+import { fireEvent } from "../../../../common/dom/fire_event";
import {
formatNumber,
getNumberFormatOptions,
} from "../../../../common/number/format_number";
-import "../../../../components/chart/ha-chart-base";
-import type { EnergyData } from "../../../../data/energy";
import { getEnergyDataCollection } from "../../../../data/energy";
import {
calculateStatisticSumGrowth,
@@ -20,14 +29,8 @@ import {
isExternalStatistic,
} from "../../../../data/recorder";
import { SubscribeMixin } from "../../../../mixins/subscribe-mixin";
-import type { HomeAssistant } from "../../../../types";
-import type { LovelaceCard } from "../../types";
-import type { EnergyDevicesGraphCardConfig } from "../types";
-import { hasConfigChanged } from "../../common/has-changed";
-import type { ECOption } from "../../../../resources/echarts";
-import "../../../../components/ha-card";
-import { fireEvent } from "../../../../common/dom/fire_event";
import { measureTextWidth } from "../../../../util/text";
+import { hasConfigChanged } from "../../common/has-changed";
@customElement("hui-energy-devices-graph-card")
export class HuiEnergyDevicesGraphCard
diff --git a/src/panels/lovelace/cards/energy/hui-energy-distribution-card.ts b/src/panels/lovelace/cards/energy/hui-energy-distribution-card.ts
index c28a0c772e..3221332886 100644
--- a/src/panels/lovelace/cards/energy/hui-energy-distribution-card.ts
+++ b/src/panels/lovelace/cards/energy/hui-energy-distribution-card.ts
@@ -1,4 +1,14 @@
+import type { EnergyData } from "../../../../data/energy";
+import type { HomeAssistant } from "../../../../types";
+import type { LovelaceCard } from "../../types";
+import type { EnergyDistributionCardConfig } from "../types";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { PropertyValues } from "lit";
+
+import "../../../../components/ha-card";
+import "../../../../components/ha-svg-icon";
import "@material/mwc-button";
+
import {
mdiArrowDown,
mdiArrowLeft,
@@ -12,14 +22,10 @@ import {
mdiTransmissionTower,
mdiWater,
} from "@mdi/js";
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
import { css, html, LitElement, svg, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
-import "../../../../components/ha-card";
-import "../../../../components/ha-svg-icon";
-import type { EnergyData } from "../../../../data/energy";
+
import {
energySourcesByType,
getEnergyDataCollection,
@@ -29,9 +35,6 @@ import {
} from "../../../../data/energy";
import { calculateStatisticsSumGrowth } from "../../../../data/recorder";
import { SubscribeMixin } from "../../../../mixins/subscribe-mixin";
-import type { HomeAssistant } from "../../../../types";
-import type { LovelaceCard } from "../../types";
-import type { EnergyDistributionCardConfig } from "../types";
import { hasConfigChanged } from "../../common/has-changed";
const CIRCLE_CIRCUMFERENCE = 238.76104;
diff --git a/src/panels/lovelace/cards/energy/hui-energy-gas-graph-card.ts b/src/panels/lovelace/cards/energy/hui-energy-gas-graph-card.ts
index df572710be..0b262353a1 100644
--- a/src/panels/lovelace/cards/energy/hui-energy-gas-graph-card.ts
+++ b/src/panels/lovelace/cards/energy/hui-energy-gas-graph-card.ts
@@ -1,37 +1,40 @@
-import { endOfToday, isToday, startOfToday } from "date-fns";
-import type { HassConfig, UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import memoizeOne from "memoize-one";
-import type { BarSeriesOption } from "echarts/charts";
-import { getEnergyColor } from "./common/color";
-import { formatNumber } from "../../../../common/number/format_number";
-import "../../../../components/chart/ha-chart-base";
-import "../../../../components/ha-card";
import type {
EnergyData,
GasSourceTypeEnergyPreference,
} from "../../../../data/energy";
+import type { Statistics, StatisticsMetaData } from "../../../../data/recorder";
+import type { FrontendLocaleData } from "../../../../data/translation";
+import type { ECOption } from "../../../../resources/echarts";
+import type { HomeAssistant } from "../../../../types";
+import type { LovelaceCard } from "../../types";
+import type { EnergyGasGraphCardConfig } from "../types";
+import type { BarSeriesOption } from "echarts/charts";
+import type { HassConfig, UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { PropertyValues } from "lit";
+
+import "../../../../components/chart/ha-chart-base";
+import "../../../../components/ha-card";
+
+import { endOfToday, isToday, startOfToday } from "date-fns";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+import memoizeOne from "memoize-one";
+
+import { formatNumber } from "../../../../common/number/format_number";
import {
getEnergyDataCollection,
getEnergyGasUnit,
} from "../../../../data/energy";
-import type { Statistics, StatisticsMetaData } from "../../../../data/recorder";
import { getStatisticLabel } from "../../../../data/recorder";
-import type { FrontendLocaleData } from "../../../../data/translation";
import { SubscribeMixin } from "../../../../mixins/subscribe-mixin";
-import type { HomeAssistant } from "../../../../types";
-import type { LovelaceCard } from "../../types";
-import type { EnergyGasGraphCardConfig } from "../types";
import { hasConfigChanged } from "../../common/has-changed";
+import { getEnergyColor } from "./common/color";
import {
fillDataGapsAndRoundCaps,
getCommonOptions,
getCompareTransform,
} from "./common/energy-chart-options";
-import type { ECOption } from "../../../../resources/echarts";
@customElement("hui-energy-gas-graph-card")
export class HuiEnergyGasGraphCard
diff --git a/src/panels/lovelace/cards/energy/hui-energy-grid-neutrality-gauge-card.ts b/src/panels/lovelace/cards/energy/hui-energy-grid-neutrality-gauge-card.ts
index 180967aea8..ade11837d8 100644
--- a/src/panels/lovelace/cards/energy/hui-energy-grid-neutrality-gauge-card.ts
+++ b/src/panels/lovelace/cards/energy/hui-energy-grid-neutrality-gauge-card.ts
@@ -1,24 +1,27 @@
-import { mdiInformation } from "@mdi/js";
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { formatNumber } from "../../../../common/number/format_number";
-import "../../../../components/ha-card";
-import "../../../../components/ha-gauge";
import type { LevelDefinition } from "../../../../components/ha-gauge";
-import "../../../../components/ha-svg-icon";
-import "../../../../components/ha-tooltip";
import type {
EnergyData,
GridSourceTypeEnergyPreference,
} from "../../../../data/energy";
-import { getEnergyDataCollection } from "../../../../data/energy";
-import { calculateStatisticsSumGrowth } from "../../../../data/recorder";
-import { SubscribeMixin } from "../../../../mixins/subscribe-mixin";
import type { HomeAssistant } from "../../../../types";
import type { LovelaceCard } from "../../types";
import type { EnergyGridNeutralityGaugeCardConfig } from "../types";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { PropertyValues } from "lit";
+
+import "../../../../components/ha-card";
+import "../../../../components/ha-gauge";
+import "../../../../components/ha-svg-icon";
+import "../../../../components/ha-tooltip";
+
+import { mdiInformation } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { formatNumber } from "../../../../common/number/format_number";
+import { getEnergyDataCollection } from "../../../../data/energy";
+import { calculateStatisticsSumGrowth } from "../../../../data/recorder";
+import { SubscribeMixin } from "../../../../mixins/subscribe-mixin";
import { hasConfigChanged } from "../../common/has-changed";
const LEVELS: LevelDefinition[] = [
diff --git a/src/panels/lovelace/cards/energy/hui-energy-sankey-card.ts b/src/panels/lovelace/cards/energy/hui-energy-sankey-card.ts
index 0314dd1110..09b49d35c0 100644
--- a/src/panels/lovelace/cards/energy/hui-energy-sankey-card.ts
+++ b/src/panels/lovelace/cards/energy/hui-energy-sankey-card.ts
@@ -1,10 +1,20 @@
+import type { Link, Node } from "../../../../components/chart/ha-sankey-chart";
+import type { EnergyData } from "../../../../data/energy";
+import type { HomeAssistant } from "../../../../types";
+import type { LovelaceCard, LovelaceGridOptions } from "../../types";
+import type { EnergySankeyCardConfig } from "../types";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
+
+import "../../../../components/chart/ha-sankey-chart";
import "../../../../components/ha-card";
import "../../../../components/ha-svg-icon";
-import type { EnergyData } from "../../../../data/energy";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { getGraphColorByIndex } from "../../../../common/color/colors";
+import { formatNumber } from "../../../../common/number/format_number";
import {
energySourcesByType,
getEnergyDataCollection,
@@ -15,13 +25,6 @@ import {
getStatisticLabel,
} from "../../../../data/recorder";
import { SubscribeMixin } from "../../../../mixins/subscribe-mixin";
-import type { HomeAssistant } from "../../../../types";
-import type { LovelaceCard, LovelaceGridOptions } from "../../types";
-import type { EnergySankeyCardConfig } from "../types";
-import "../../../../components/chart/ha-sankey-chart";
-import type { Link, Node } from "../../../../components/chart/ha-sankey-chart";
-import { getGraphColorByIndex } from "../../../../common/color/colors";
-import { formatNumber } from "../../../../common/number/format_number";
@customElement("hui-energy-sankey-card")
class HuiEnergySankeyCard
diff --git a/src/panels/lovelace/cards/energy/hui-energy-self-sufficiency-gauge-card.ts b/src/panels/lovelace/cards/energy/hui-energy-self-sufficiency-gauge-card.ts
index e9b5acba71..75bb5bf4ed 100644
--- a/src/panels/lovelace/cards/energy/hui-energy-self-sufficiency-gauge-card.ts
+++ b/src/panels/lovelace/cards/energy/hui-energy-self-sufficiency-gauge-card.ts
@@ -1,25 +1,28 @@
-import { mdiInformation } from "@mdi/js";
+import type { EnergyData } from "../../../../data/energy";
+import type { HomeAssistant } from "../../../../types";
+import type { LovelaceCard } from "../../types";
+import type { EnergySelfSufficiencyGaugeCardConfig } from "../types";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { styleMap } from "lit/directives/style-map";
+
import "../../../../components/ha-card";
import "../../../../components/ha-gauge";
import "../../../../components/ha-svg-icon";
import "../../../../components/ha-tooltip";
-import type { EnergyData } from "../../../../data/energy";
+
+import { mdiInformation } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { styleMap } from "lit/directives/style-map";
+
import {
energySourcesByType,
getEnergyDataCollection,
} from "../../../../data/energy";
import { calculateStatisticsSumGrowth } from "../../../../data/recorder";
import { SubscribeMixin } from "../../../../mixins/subscribe-mixin";
-import type { HomeAssistant } from "../../../../types";
-import type { LovelaceCard } from "../../types";
-import { severityMap } from "../hui-gauge-card";
-import type { EnergySelfSufficiencyGaugeCardConfig } from "../types";
import { hasConfigChanged } from "../../common/has-changed";
+import { severityMap } from "../hui-gauge-card";
const FORMAT_OPTIONS = {
maximumFractionDigits: 0,
diff --git a/src/panels/lovelace/cards/energy/hui-energy-solar-consumed-gauge-card.ts b/src/panels/lovelace/cards/energy/hui-energy-solar-consumed-gauge-card.ts
index 061dd2f7a5..4caa22a7f8 100644
--- a/src/panels/lovelace/cards/energy/hui-energy-solar-consumed-gauge-card.ts
+++ b/src/panels/lovelace/cards/energy/hui-energy-solar-consumed-gauge-card.ts
@@ -1,24 +1,27 @@
-import { mdiInformation } from "@mdi/js";
+import type { EnergyData } from "../../../../data/energy";
+import type { HomeAssistant } from "../../../../types";
+import type { LovelaceCard } from "../../types";
+import type { EnergySolarGaugeCardConfig } from "../types";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { styleMap } from "lit/directives/style-map";
+
import "../../../../components/ha-card";
import "../../../../components/ha-gauge";
import "../../../../components/ha-svg-icon";
-import type { EnergyData } from "../../../../data/energy";
+
+import { mdiInformation } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { styleMap } from "lit/directives/style-map";
+
import {
energySourcesByType,
getEnergyDataCollection,
} from "../../../../data/energy";
import { calculateStatisticsSumGrowth } from "../../../../data/recorder";
import { SubscribeMixin } from "../../../../mixins/subscribe-mixin";
-import type { HomeAssistant } from "../../../../types";
-import type { LovelaceCard } from "../../types";
-import { severityMap } from "../hui-gauge-card";
-import type { EnergySolarGaugeCardConfig } from "../types";
import { hasConfigChanged } from "../../common/has-changed";
+import { severityMap } from "../hui-gauge-card";
const FORMAT_OPTIONS = {
maximumFractionDigits: 0,
diff --git a/src/panels/lovelace/cards/energy/hui-energy-solar-graph-card.ts b/src/panels/lovelace/cards/energy/hui-energy-solar-graph-card.ts
index 3119e53138..a656c9eb6b 100644
--- a/src/panels/lovelace/cards/energy/hui-energy-solar-graph-card.ts
+++ b/src/panels/lovelace/cards/energy/hui-energy-solar-graph-card.ts
@@ -1,38 +1,41 @@
-import { differenceInDays, endOfToday, isToday, startOfToday } from "date-fns";
-import type { HassConfig, UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import memoizeOne from "memoize-one";
-import type { BarSeriesOption, LineSeriesOption } from "echarts/charts";
-import { getEnergyColor } from "./common/color";
-import { formatNumber } from "../../../../common/number/format_number";
-import "../../../../components/chart/ha-chart-base";
-import "../../../../components/ha-card";
import type {
EnergyData,
EnergySolarForecasts,
SolarSourceTypeEnergyPreference,
} from "../../../../data/energy";
+import type { Statistics, StatisticsMetaData } from "../../../../data/recorder";
+import type { FrontendLocaleData } from "../../../../data/translation";
+import type { ECOption } from "../../../../resources/echarts";
+import type { HomeAssistant } from "../../../../types";
+import type { LovelaceCard } from "../../types";
+import type { EnergySolarGraphCardConfig } from "../types";
+import type { BarSeriesOption, LineSeriesOption } from "echarts/charts";
+import type { HassConfig, UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { PropertyValues } from "lit";
+
+import "../../../../components/chart/ha-chart-base";
+import "../../../../components/ha-card";
+
+import { differenceInDays, endOfToday, isToday, startOfToday } from "date-fns";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+import memoizeOne from "memoize-one";
+
+import { formatNumber } from "../../../../common/number/format_number";
import {
getEnergyDataCollection,
getEnergySolarForecasts,
} from "../../../../data/energy";
-import type { Statistics, StatisticsMetaData } from "../../../../data/recorder";
import { getStatisticLabel } from "../../../../data/recorder";
-import type { FrontendLocaleData } from "../../../../data/translation";
import { SubscribeMixin } from "../../../../mixins/subscribe-mixin";
-import type { HomeAssistant } from "../../../../types";
-import type { LovelaceCard } from "../../types";
-import type { EnergySolarGraphCardConfig } from "../types";
import { hasConfigChanged } from "../../common/has-changed";
+import { getEnergyColor } from "./common/color";
import {
fillDataGapsAndRoundCaps,
getCommonOptions,
getCompareTransform,
} from "./common/energy-chart-options";
-import type { ECOption } from "../../../../resources/echarts";
@customElement("hui-energy-solar-graph-card")
export class HuiEnergySolarGraphCard
diff --git a/src/panels/lovelace/cards/energy/hui-energy-sources-table-card.ts b/src/panels/lovelace/cards/energy/hui-energy-sources-table-card.ts
index 8cdf9633cd..492c52c636 100644
--- a/src/panels/lovelace/cards/energy/hui-energy-sources-table-card.ts
+++ b/src/panels/lovelace/cards/energy/hui-energy-sources-table-card.ts
@@ -1,15 +1,22 @@
-// @ts-ignore
-import dataTableStyles from "@material/data-table/dist/mdc.data-table.min.css";
+import type { EnergyData } from "../../../../data/energy";
+import type { HomeAssistant } from "../../../../types";
+import type { LovelaceCard } from "../../types";
+import type { EnergySourcesTableCardConfig } from "../types";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+// @ts-ignore
+import dataTableStyles from "@material/data-table/dist/mdc.data-table.min.css";
+
+import "../../../../components/ha-card";
+
import { css, html, LitElement, unsafeCSS, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { styleMap } from "lit/directives/style-map";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { formatNumber } from "../../../../common/number/format_number";
-import { getEnergyColor } from "./common/color";
-import "../../../../components/ha-card";
-import type { EnergyData } from "../../../../data/energy";
import {
energySourcesByType,
getEnergyDataCollection,
@@ -22,11 +29,8 @@ import {
isExternalStatistic,
} from "../../../../data/recorder";
import { SubscribeMixin } from "../../../../mixins/subscribe-mixin";
-import type { HomeAssistant } from "../../../../types";
-import type { LovelaceCard } from "../../types";
-import type { EnergySourcesTableCardConfig } from "../types";
import { hasConfigChanged } from "../../common/has-changed";
-import { fireEvent } from "../../../../common/dom/fire_event";
+import { getEnergyColor } from "./common/color";
const colorPropertyMap = {
grid_return: "--energy-grid-return-color",
diff --git a/src/panels/lovelace/cards/energy/hui-energy-usage-graph-card.ts b/src/panels/lovelace/cards/energy/hui-energy-usage-graph-card.ts
index cda61fecbf..b338cb3eda 100644
--- a/src/panels/lovelace/cards/energy/hui-energy-usage-graph-card.ts
+++ b/src/panels/lovelace/cards/energy/hui-energy-usage-graph-card.ts
@@ -1,35 +1,38 @@
-import { endOfToday, isToday, startOfToday } from "date-fns";
-import type { HassConfig, UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import memoizeOne from "memoize-one";
+import type { EnergyData } from "../../../../data/energy";
+import type { Statistics, StatisticsMetaData } from "../../../../data/recorder";
+import type { FrontendLocaleData } from "../../../../data/translation";
+import type { ECOption } from "../../../../resources/echarts";
+import type { HomeAssistant } from "../../../../types";
+import type { LovelaceCard } from "../../types";
+import type { EnergyUsageGraphCardConfig } from "../types";
import type { BarSeriesOption } from "echarts/charts";
import type {
TooltipOption,
TopLevelFormatterParams,
} from "echarts/types/dist/shared";
-import { getEnergyColor } from "./common/color";
-import { formatNumber } from "../../../../common/number/format_number";
+import type { HassConfig, UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { PropertyValues } from "lit";
+
import "../../../../components/chart/ha-chart-base";
import "../../../../components/ha-card";
-import type { EnergyData } from "../../../../data/energy";
+
+import { endOfToday, isToday, startOfToday } from "date-fns";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+import memoizeOne from "memoize-one";
+
+import { formatNumber } from "../../../../common/number/format_number";
import { getEnergyDataCollection } from "../../../../data/energy";
-import type { Statistics, StatisticsMetaData } from "../../../../data/recorder";
import { getStatisticLabel } from "../../../../data/recorder";
-import type { FrontendLocaleData } from "../../../../data/translation";
import { SubscribeMixin } from "../../../../mixins/subscribe-mixin";
-import type { HomeAssistant } from "../../../../types";
-import type { LovelaceCard } from "../../types";
-import type { EnergyUsageGraphCardConfig } from "../types";
import { hasConfigChanged } from "../../common/has-changed";
+import { getEnergyColor } from "./common/color";
import {
fillDataGapsAndRoundCaps,
getCommonOptions,
getCompareTransform,
} from "./common/energy-chart-options";
-import type { ECOption } from "../../../../resources/echarts";
const colorPropertyMap = {
to_grid: "--energy-grid-return-color",
diff --git a/src/panels/lovelace/cards/energy/hui-energy-water-graph-card.ts b/src/panels/lovelace/cards/energy/hui-energy-water-graph-card.ts
index adfc3d217a..129bab13e2 100644
--- a/src/panels/lovelace/cards/energy/hui-energy-water-graph-card.ts
+++ b/src/panels/lovelace/cards/energy/hui-energy-water-graph-card.ts
@@ -1,37 +1,40 @@
-import { endOfToday, isToday, startOfToday } from "date-fns";
-import type { HassConfig, UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import memoizeOne from "memoize-one";
-import type { BarSeriesOption } from "echarts/charts";
-import { getEnergyColor } from "./common/color";
-import "../../../../components/chart/ha-chart-base";
-import "../../../../components/ha-card";
import type {
EnergyData,
WaterSourceTypeEnergyPreference,
} from "../../../../data/energy";
+import type { Statistics, StatisticsMetaData } from "../../../../data/recorder";
+import type { FrontendLocaleData } from "../../../../data/translation";
+import type { ECOption } from "../../../../resources/echarts";
+import type { HomeAssistant } from "../../../../types";
+import type { LovelaceCard } from "../../types";
+import type { EnergyWaterGraphCardConfig } from "../types";
+import type { BarSeriesOption } from "echarts/charts";
+import type { HassConfig, UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { PropertyValues } from "lit";
+
+import "../../../../components/chart/ha-chart-base";
+import "../../../../components/ha-card";
+
+import { endOfToday, isToday, startOfToday } from "date-fns";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+import memoizeOne from "memoize-one";
+
+import { formatNumber } from "../../../../common/number/format_number";
import {
getEnergyDataCollection,
getEnergyWaterUnit,
} from "../../../../data/energy";
-import type { Statistics, StatisticsMetaData } from "../../../../data/recorder";
import { getStatisticLabel } from "../../../../data/recorder";
-import type { FrontendLocaleData } from "../../../../data/translation";
import { SubscribeMixin } from "../../../../mixins/subscribe-mixin";
-import type { HomeAssistant } from "../../../../types";
-import type { LovelaceCard } from "../../types";
-import type { EnergyWaterGraphCardConfig } from "../types";
import { hasConfigChanged } from "../../common/has-changed";
+import { getEnergyColor } from "./common/color";
import {
fillDataGapsAndRoundCaps,
getCommonOptions,
getCompareTransform,
} from "./common/energy-chart-options";
-import type { ECOption } from "../../../../resources/echarts";
-import { formatNumber } from "../../../../common/number/format_number";
@customElement("hui-energy-water-graph-card")
export class HuiEnergyWaterGraphCard
diff --git a/src/panels/lovelace/cards/hui-alarm-panel-card.ts b/src/panels/lovelace/cards/hui-alarm-panel-card.ts
index 9eebb8a0ce..cd60ccc03b 100644
--- a/src/panels/lovelace/cards/hui-alarm-panel-card.ts
+++ b/src/panels/lovelace/cards/hui-alarm-panel-card.ts
@@ -1,35 +1,38 @@
+import type { HaTextField } from "../../../components/ha-textfield";
+import type { AlarmMode } from "../../../data/alarm_control_panel";
+import type { ExtEntityRegistryEntry } from "../../../data/entity_registry";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCard } from "../types";
+import type { AlarmPanelCardConfig, AlarmPanelCardConfigState } from "./types";
import type { HassEntity, UnsubscribeFunc } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import { styleMap } from "lit/directives/style-map";
-import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { stateColorCss } from "../../../common/entity/state_color";
-import { supportsFeature } from "../../../common/entity/supports-feature";
+
import "../../../components/chips/ha-assist-chip";
import "../../../components/ha-card";
import "../../../components/ha-state-icon";
import "../../../components/ha-textfield";
-import type { HaTextField } from "../../../components/ha-textfield";
-import type { AlarmMode } from "../../../data/alarm_control_panel";
+
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+import { styleMap } from "lit/directives/style-map";
+
+import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
+import { fireEvent } from "../../../common/dom/fire_event";
+import { stateColorCss } from "../../../common/entity/state_color";
+import { supportsFeature } from "../../../common/entity/supports-feature";
import {
ALARM_MODES,
FORMAT_NUMBER,
callAlarmAction,
} from "../../../data/alarm_control_panel";
import { UNAVAILABLE } from "../../../data/entity";
-import type { HomeAssistant } from "../../../types";
-import { findEntities } from "../common/find-entities";
-import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { LovelaceCard } from "../types";
-import type { ExtEntityRegistryEntry } from "../../../data/entity_registry";
import {
getExtendedEntityRegistryEntry,
subscribeEntityRegistry,
} from "../../../data/entity_registry";
-import type { AlarmPanelCardConfig, AlarmPanelCardConfigState } from "./types";
+import { findEntities } from "../common/find-entities";
+import { createEntityNotFoundWarning } from "../components/hui-warning";
const BUTTONS = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "", "0", "clear"];
diff --git a/src/panels/lovelace/cards/hui-area-card.ts b/src/panels/lovelace/cards/hui-area-card.ts
index 3a901f064f..229f18ef0c 100644
--- a/src/panels/lovelace/cards/hui-area-card.ts
+++ b/src/panels/lovelace/cards/hui-area-card.ts
@@ -1,3 +1,23 @@
+import type { AreaRegistryEntry } from "../../../data/area_registry";
+import type { DeviceRegistryEntry } from "../../../data/device_registry";
+import type { EntityRegistryEntry } from "../../../data/entity_registry";
+import type { HomeAssistant } from "../../../types";
+import type {
+ LovelaceCard,
+ LovelaceCardEditor,
+ LovelaceGridOptions,
+} from "../types";
+import type { AreaCardConfig } from "./types";
+import type { HassEntity, UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/ha-card";
+import "../../../components/ha-domain-icon";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-state-icon";
+import "../components/hui-image";
+import "../components/hui-warning";
+
import {
mdiFan,
mdiFanOff,
@@ -8,13 +28,12 @@ import {
mdiToggleSwitchOff,
mdiWaterAlert,
} from "@mdi/js";
-import type { HassEntity, UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { PropertyValues, TemplateResult } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { styleMap } from "lit/directives/style-map";
import memoizeOne from "memoize-one";
+
import { STATES_OFF } from "../../../common/const";
import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
import { computeDomain } from "../../../common/entity/compute_domain";
@@ -26,28 +45,12 @@ import {
import { blankBeforeUnit } from "../../../common/translations/blank_before_unit";
import parseAspectRatio from "../../../common/util/parse-aspect-ratio";
import { subscribeOne } from "../../../common/util/subscribe-one";
-import "../../../components/ha-card";
-import "../../../components/ha-domain-icon";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-state-icon";
-import type { AreaRegistryEntry } from "../../../data/area_registry";
import { subscribeAreaRegistry } from "../../../data/area_registry";
-import type { DeviceRegistryEntry } from "../../../data/device_registry";
import { subscribeDeviceRegistry } from "../../../data/device_registry";
import { isUnavailableState } from "../../../data/entity";
-import type { EntityRegistryEntry } from "../../../data/entity_registry";
import { subscribeEntityRegistry } from "../../../data/entity_registry";
import { forwardHaptic } from "../../../data/haptics";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
-import type { HomeAssistant } from "../../../types";
-import "../components/hui-image";
-import "../components/hui-warning";
-import type {
- LovelaceCard,
- LovelaceCardEditor,
- LovelaceGridOptions,
-} from "../types";
-import type { AreaCardConfig } from "./types";
export const DEFAULT_ASPECT_RATIO = "16:9";
diff --git a/src/panels/lovelace/cards/hui-button-card.ts b/src/panels/lovelace/cards/hui-button-card.ts
index 59d6db9adc..3b5a880643 100644
--- a/src/panels/lovelace/cards/hui-button-card.ts
+++ b/src/panels/lovelace/cards/hui-button-card.ts
@@ -1,14 +1,31 @@
-import { consume } from "@lit-labs/context";
+import type { LocalizeFunc } from "../../../common/translations/localize";
+import type { EntityRegistryDisplayEntry } from "../../../data/entity_registry";
+import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
+import type { FrontendLocaleData } from "../../../data/translation";
+import type { Themes } from "../../../data/ws-themes";
+import type { HomeAssistant } from "../../../types";
+import type {
+ LovelaceCard,
+ LovelaceCardEditor,
+ LovelaceGridOptions,
+} from "../types";
+import type { ButtonCardConfig } from "./types";
import type {
HassConfig,
HassEntities,
HassEntity,
} from "home-assistant-js-websocket";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../components/ha-card";
+import "../../../components/ha-ripple";
+
+import { consume } from "@lit-labs/context";
import { LitElement, css, html, nothing } from "lit";
import { customElement, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
import { styleMap } from "lit/directives/style-map";
+
import { DOMAINS_TOGGLE } from "../../../common/const";
import { transform } from "../../../common/decorators/transform";
import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
@@ -22,9 +39,6 @@ import {
} from "../../../common/entity/state_color";
import { isValidEntityId } from "../../../common/entity/valid_entity_id";
import { iconColorCSS } from "../../../common/style/icon_color_css";
-import type { LocalizeFunc } from "../../../common/translations/localize";
-import "../../../components/ha-card";
-import "../../../components/ha-ripple";
import { CLIMATE_HVAC_ACTION_TO_MODE } from "../../../data/climate";
import {
configContext,
@@ -34,21 +48,10 @@ import {
statesContext,
themesContext,
} from "../../../data/context";
-import type { EntityRegistryDisplayEntry } from "../../../data/entity_registry";
-import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
-import type { FrontendLocaleData } from "../../../data/translation";
-import type { Themes } from "../../../data/ws-themes";
-import type { HomeAssistant } from "../../../types";
import { actionHandler } from "../common/directives/action-handler-directive";
import { findEntities } from "../common/find-entities";
import { hasAction } from "../common/has-action";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type {
- LovelaceCard,
- LovelaceCardEditor,
- LovelaceGridOptions,
-} from "../types";
-import type { ButtonCardConfig } from "./types";
export const getEntityDefaultButtonAction = (entityId?: string) =>
entityId && DOMAINS_TOGGLE.has(computeDomain(entityId))
diff --git a/src/panels/lovelace/cards/hui-calendar-card.ts b/src/panels/lovelace/cards/hui-calendar-card.ts
index c09835c4e1..12c31e2320 100644
--- a/src/panels/lovelace/cards/hui-calendar-card.ts
+++ b/src/panels/lovelace/cards/hui-calendar-card.ts
@@ -1,24 +1,27 @@
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { getColorByIndex } from "../../../common/color/colors";
-import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
import type { HASSDomEvent } from "../../../common/dom/fire_event";
-import { computeStateName } from "../../../common/entity/compute_state_name";
-import { debounce } from "../../../common/util/debounce";
-import "../../../components/ha-card";
import type { Calendar, CalendarEvent } from "../../../data/calendar";
-import { fetchCalendarEvents } from "../../../data/calendar";
import type {
CalendarViewChanged,
FullCalendarView,
HomeAssistant,
} from "../../../types";
-import "../../calendar/ha-full-calendar";
-import { findEntities } from "../common/find-entities";
-import "../components/hui-warning";
import type { LovelaceCard, LovelaceCardEditor } from "../types";
import type { CalendarCardConfig } from "./types";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-card";
+import "../../calendar/ha-full-calendar";
+import "../components/hui-warning";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { getColorByIndex } from "../../../common/color/colors";
+import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
+import { computeStateName } from "../../../common/entity/compute_state_name";
+import { debounce } from "../../../common/util/debounce";
+import { fetchCalendarEvents } from "../../../data/calendar";
+import { findEntities } from "../common/find-entities";
@customElement("hui-calendar-card")
export class HuiCalendarCard extends LitElement implements LovelaceCard {
diff --git a/src/panels/lovelace/cards/hui-card.ts b/src/panels/lovelace/cards/hui-card.ts
index 9f6ec0b9c7..95bcb3b0cd 100644
--- a/src/panels/lovelace/cards/hui-card.ts
+++ b/src/panels/lovelace/cards/hui-card.ts
@@ -1,11 +1,15 @@
-import type { PropertyValues } from "lit";
-import { ReactiveElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../../common/dom/fire_event";
import type { MediaQueriesListener } from "../../../common/dom/media_query";
-import "../../../components/ha-svg-icon";
import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
import type { HomeAssistant } from "../../../types";
+import type { LovelaceCard, LovelaceGridOptions } from "../types";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-svg-icon";
+
+import { ReactiveElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
import { migrateLayoutToGridOptions } from "../common/compute-card-grid-size";
import { computeCardSize } from "../common/compute-card-size";
import {
@@ -14,7 +18,6 @@ import {
} from "../common/validate-condition";
import { createCardElement } from "../create-element/create-card-element";
import { createErrorCardConfig } from "../create-element/create-element-base";
-import type { LovelaceCard, LovelaceGridOptions } from "../types";
declare global {
interface HASSDomEvents {
diff --git a/src/panels/lovelace/cards/hui-clock-card.ts b/src/panels/lovelace/cards/hui-clock-card.ts
index 729cfb2c14..51ce623e7e 100644
--- a/src/panels/lovelace/cards/hui-clock-card.ts
+++ b/src/panels/lovelace/cards/hui-clock-card.ts
@@ -1,8 +1,3 @@
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import "../../../components/ha-alert";
-import "../../../components/ha-card";
import type { HomeAssistant } from "../../../types";
import type {
LovelaceCard,
@@ -10,8 +5,16 @@ import type {
LovelaceGridOptions,
} from "../types";
import type { ClockCardConfig } from "./types";
-import { useAmPm } from "../../../common/datetime/use_am_pm";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-alert";
+import "../../../components/ha-card";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
import { resolveTimeZone } from "../../../common/datetime/resolve-time-zone";
+import { useAmPm } from "../../../common/datetime/use_am_pm";
const INTERVAL = 1000;
diff --git a/src/panels/lovelace/cards/hui-conditional-card.ts b/src/panels/lovelace/cards/hui-conditional-card.ts
index ca53b589bc..26be09bb12 100644
--- a/src/panels/lovelace/cards/hui-conditional-card.ts
+++ b/src/panels/lovelace/cards/hui-conditional-card.ts
@@ -1,11 +1,13 @@
-import { customElement } from "lit/decorators";
-import { fireEvent } from "../../../common/dom/fire_event";
import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
-import { computeCardSize } from "../common/compute-card-size";
-import { HuiConditionalBase } from "../components/hui-conditional-base";
import type { LovelaceCard, LovelaceCardEditor } from "../types";
import type { ConditionalCardConfig } from "./types";
+import { customElement } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { computeCardSize } from "../common/compute-card-size";
+import { HuiConditionalBase } from "../components/hui-conditional-base";
+
@customElement("hui-conditional-card")
class HuiConditionalCard extends HuiConditionalBase implements LovelaceCard {
public static async getConfigElement(): Promise {
diff --git a/src/panels/lovelace/cards/hui-empty-state-card.ts b/src/panels/lovelace/cards/hui-empty-state-card.ts
index 5a183e5f63..c4906df49f 100644
--- a/src/panels/lovelace/cards/hui-empty-state-card.ts
+++ b/src/panels/lovelace/cards/hui-empty-state-card.ts
@@ -1,11 +1,13 @@
-import "@material/mwc-button/mwc-button";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import "../../../components/ha-card";
import type { HomeAssistant } from "../../../types";
import type { LovelaceCard } from "../types";
import type { EmptyStateCardConfig } from "./types";
+import "../../../components/ha-card";
+import "@material/mwc-button/mwc-button";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
@customElement("hui-empty-state-card")
export class HuiEmptyStateCard extends LitElement implements LovelaceCard {
@property({ attribute: false }) public hass?: HomeAssistant;
diff --git a/src/panels/lovelace/cards/hui-entities-card.ts b/src/panels/lovelace/cards/hui-entities-card.ts
index 387d5a3e46..285357db7c 100644
--- a/src/panels/lovelace/cards/hui-entities-card.ts
+++ b/src/panels/lovelace/cards/hui-entities-card.ts
@@ -1,17 +1,4 @@
-import type { PropertyValues, TemplateResult } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, state } from "lit/decorators";
-import { DOMAINS_TOGGLE } from "../../../common/const";
-import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
-import { computeDomain } from "../../../common/entity/compute_domain";
-import "../../../components/ha-card";
import type { HomeAssistant } from "../../../types";
-import { computeCardSize } from "../common/compute-card-size";
-import { findEntities } from "../common/find-entities";
-import { processConfigEntities } from "../common/process-config-entities";
-import "../components/hui-entities-toggle";
-import { createHeaderFooterElement } from "../create-element/create-header-footer-element";
-import { createRowElement } from "../create-element/create-row-element";
import type {
EntityConfig,
LovelaceRow,
@@ -23,6 +10,22 @@ import type {
LovelaceHeaderFooter,
} from "../types";
import type { EntitiesCardConfig } from "./types";
+import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/ha-card";
+import "../components/hui-entities-toggle";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, state } from "lit/decorators";
+
+import { DOMAINS_TOGGLE } from "../../../common/const";
+import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
+import { computeDomain } from "../../../common/entity/compute_domain";
+import { computeCardSize } from "../common/compute-card-size";
+import { findEntities } from "../common/find-entities";
+import { processConfigEntities } from "../common/process-config-entities";
+import { createHeaderFooterElement } from "../create-element/create-header-footer-element";
+import { createRowElement } from "../create-element/create-row-element";
@customElement("hui-entities-card")
class HuiEntitiesCard extends LitElement implements LovelaceCard {
diff --git a/src/panels/lovelace/cards/hui-entity-button-card.ts b/src/panels/lovelace/cards/hui-entity-button-card.ts
index e6b79249ba..396598d686 100644
--- a/src/panels/lovelace/cards/hui-entity-button-card.ts
+++ b/src/panels/lovelace/cards/hui-entity-button-card.ts
@@ -1,4 +1,5 @@
import { customElement } from "lit/decorators";
+
import { HuiButtonCard } from "./hui-button-card";
@customElement("hui-entity-button-card")
diff --git a/src/panels/lovelace/cards/hui-entity-card.ts b/src/panels/lovelace/cards/hui-entity-card.ts
index 178121b03a..60c533f51d 100644
--- a/src/panels/lovelace/cards/hui-entity-card.ts
+++ b/src/panels/lovelace/cards/hui-entity-card.ts
@@ -1,10 +1,24 @@
+import type { HomeAssistant } from "../../../types";
+import type {
+ LovelaceCard,
+ LovelaceGridOptions,
+ LovelaceHeaderFooter,
+} from "../types";
+import type { HuiErrorCard } from "./hui-error-card";
+import type { EntityCardConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../components/ha-attribute-value";
+import "../../../components/ha-card";
+import "../../../components/ha-icon";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { ifDefined } from "lit/directives/if-defined";
import { styleMap } from "lit/directives/style-map";
+
import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
import { fireEvent } from "../../../common/dom/fire_event";
import { computeStateDomain } from "../../../common/entity/compute_state_domain";
@@ -20,24 +34,13 @@ import {
isNumericState,
} from "../../../common/number/format_number";
import { iconColorCSS } from "../../../common/style/icon_color_css";
-import "../../../components/ha-attribute-value";
-import "../../../components/ha-card";
-import "../../../components/ha-icon";
import { CLIMATE_HVAC_ACTION_TO_MODE } from "../../../data/climate";
import { isUnavailableState } from "../../../data/entity";
-import type { HomeAssistant } from "../../../types";
import { computeCardSize } from "../common/compute-card-size";
import { findEntities } from "../common/find-entities";
import { hasConfigOrEntityChanged } from "../common/has-changed";
import { createEntityNotFoundWarning } from "../components/hui-warning";
import { createHeaderFooterElement } from "../create-element/create-header-footer-element";
-import type {
- LovelaceCard,
- LovelaceGridOptions,
- LovelaceHeaderFooter,
-} from "../types";
-import type { HuiErrorCard } from "./hui-error-card";
-import type { EntityCardConfig } from "./types";
@customElement("hui-entity-card")
export class HuiEntityCard extends LitElement implements LovelaceCard {
diff --git a/src/panels/lovelace/cards/hui-entity-filter-card.ts b/src/panels/lovelace/cards/hui-entity-filter-card.ts
index 96239b8538..1cada8a7d9 100644
--- a/src/panels/lovelace/cards/hui-entity-filter-card.ts
+++ b/src/panels/lovelace/cards/hui-entity-filter-card.ts
@@ -1,9 +1,15 @@
-import type { PropertyValues } from "lit";
-import { ReactiveElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../common/dom/fire_event";
import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
import type { HomeAssistant } from "../../../types";
+import type { EntityFilterEntityConfig } from "../entity-rows/types";
+import type { LovelaceCard } from "../types";
+import type { HuiCard } from "./hui-card";
+import type { EntityFilterCardConfig } from "./types";
+import type { PropertyValues } from "lit";
+
+import { ReactiveElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
import { computeCardSize } from "../common/compute-card-size";
import { evaluateStateFilter } from "../common/evaluate-filter";
import { findEntities } from "../common/find-entities";
@@ -13,10 +19,6 @@ import {
checkConditionsMet,
extractConditionEntityIds,
} from "../common/validate-condition";
-import type { EntityFilterEntityConfig } from "../entity-rows/types";
-import type { LovelaceCard } from "../types";
-import type { HuiCard } from "./hui-card";
-import type { EntityFilterCardConfig } from "./types";
@customElement("hui-entity-filter-card")
export class HuiEntityFilterCard
diff --git a/src/panels/lovelace/cards/hui-error-card.ts b/src/panels/lovelace/cards/hui-error-card.ts
index 59efd46c74..4fee0dfa5e 100644
--- a/src/panels/lovelace/cards/hui-error-card.ts
+++ b/src/panels/lovelace/cards/hui-error-card.ts
@@ -1,11 +1,13 @@
-import { dump } from "js-yaml";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import "../../../components/ha-alert";
import type { HomeAssistant } from "../../../types";
import type { LovelaceCard } from "../types";
import type { ErrorCardConfig } from "./types";
+import "../../../components/ha-alert";
+
+import { dump } from "js-yaml";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
@customElement("hui-error-card")
export class HuiErrorCard extends LitElement implements LovelaceCard {
public hass?: HomeAssistant;
diff --git a/src/panels/lovelace/cards/hui-gauge-card.ts b/src/panels/lovelace/cards/hui-gauge-card.ts
index 62f7e16d2c..4160df1955 100644
--- a/src/panels/lovelace/cards/hui-gauge-card.ts
+++ b/src/panels/lovelace/cards/hui-gauge-card.ts
@@ -1,27 +1,30 @@
+import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCard, LovelaceCardEditor } from "../types";
+import type { GaugeCardConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket/dist/types";
import type { PropertyValues } from "lit";
+
+import "../../../components/ha-card";
+import "../../../components/ha-gauge";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
-import { ifDefined } from "lit/directives/if-defined";
import { classMap } from "lit/directives/class-map";
+import { ifDefined } from "lit/directives/if-defined";
import { styleMap } from "lit/directives/style-map";
+
import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
import { computeStateName } from "../../../common/entity/compute_state_name";
import { isValidEntityId } from "../../../common/entity/valid_entity_id";
import { getNumberFormatOptions } from "../../../common/number/format_number";
-import "../../../components/ha-card";
-import "../../../components/ha-gauge";
import { UNAVAILABLE } from "../../../data/entity";
-import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
-import type { HomeAssistant } from "../../../types";
import { actionHandler } from "../common/directives/action-handler-directive";
import { findEntities } from "../common/find-entities";
import { handleAction } from "../common/handle-action";
import { hasAction, hasAnyAction } from "../common/has-action";
import { hasConfigOrEntityChanged } from "../common/has-changed";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { LovelaceCard, LovelaceCardEditor } from "../types";
-import type { GaugeCardConfig } from "./types";
export const DEFAULT_MIN = 0;
export const DEFAULT_MAX = 100;
diff --git a/src/panels/lovelace/cards/hui-glance-card.ts b/src/panels/lovelace/cards/hui-glance-card.ts
index fe8b4cd5f0..556bb70339 100644
--- a/src/panels/lovelace/cards/hui-glance-card.ts
+++ b/src/panels/lovelace/cards/hui-glance-card.ts
@@ -1,34 +1,37 @@
-import type { PropertyValues, TemplateResult } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import { ifDefined } from "lit/directives/if-defined";
-import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
-import { computeDomain } from "../../../common/entity/compute_domain";
-import { computeStateName } from "../../../common/entity/compute_state_name";
-import "../../../components/entity/state-badge";
-import "../../../components/ha-card";
-import "../../../components/ha-icon";
-import "../../../components/ha-relative-time";
-import { isUnavailableState } from "../../../data/entity";
import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
import type {
CallServiceActionConfig,
MoreInfoActionConfig,
} from "../../../data/lovelace/config/action";
-import { SENSOR_DEVICE_CLASS_TIMESTAMP } from "../../../data/sensor";
import type { HomeAssistant } from "../../../types";
+import type { LovelaceCard, LovelaceCardEditor } from "../types";
+import type { GlanceCardConfig, GlanceConfigEntity } from "./types";
+import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/entity/state-badge";
+import "../../../components/ha-card";
+import "../../../components/ha-icon";
+import "../../../components/ha-relative-time";
+import "../components/hui-timestamp-display";
+import "../components/hui-warning-element";
+
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+import { ifDefined } from "lit/directives/if-defined";
+
+import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
+import { computeDomain } from "../../../common/entity/compute_domain";
+import { computeStateName } from "../../../common/entity/compute_state_name";
+import { isUnavailableState } from "../../../data/entity";
+import { SENSOR_DEVICE_CLASS_TIMESTAMP } from "../../../data/sensor";
import { actionHandler } from "../common/directives/action-handler-directive";
import { findEntities } from "../common/find-entities";
import { handleAction } from "../common/handle-action";
import { hasAction, hasAnyAction } from "../common/has-action";
import { hasConfigOrEntitiesChanged } from "../common/has-changed";
import { processConfigEntities } from "../common/process-config-entities";
-import "../components/hui-timestamp-display";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import "../components/hui-warning-element";
-import type { LovelaceCard, LovelaceCardEditor } from "../types";
-import type { GlanceCardConfig, GlanceConfigEntity } from "./types";
@customElement("hui-glance-card")
export class HuiGlanceCard extends LitElement implements LovelaceCard {
diff --git a/src/panels/lovelace/cards/hui-grid-card.ts b/src/panels/lovelace/cards/hui-grid-card.ts
index 00ec6623de..8a734ce731 100644
--- a/src/panels/lovelace/cards/hui-grid-card.ts
+++ b/src/panels/lovelace/cards/hui-grid-card.ts
@@ -1,9 +1,11 @@
-import type { CSSResultGroup } from "lit";
-import { css } from "lit";
-import { computeCardSize } from "../common/compute-card-size";
import type { LovelaceCardEditor } from "../types";
-import { HuiStackCard } from "./hui-stack-card";
import type { GridCardConfig } from "./types";
+import type { CSSResultGroup } from "lit";
+
+import { css } from "lit";
+
+import { computeCardSize } from "../common/compute-card-size";
+import { HuiStackCard } from "./hui-stack-card";
export const DEFAULT_COLUMNS = 3;
const SQUARE_ROW_HEIGHTS_BY_COLUMNS = {
diff --git a/src/panels/lovelace/cards/hui-heading-card.ts b/src/panels/lovelace/cards/hui-heading-card.ts
index 68337d45d8..9c7a5eb05f 100644
--- a/src/panels/lovelace/cards/hui-heading-card.ts
+++ b/src/panels/lovelace/cards/hui-heading-card.ts
@@ -1,17 +1,5 @@
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { ifDefined } from "lit/directives/if-defined";
-import "../../../components/ha-card";
-import "../../../components/ha-icon";
-import "../../../components/ha-icon-next";
-import "../../../components/ha-state-icon";
import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
-import "../../../state-display/state-display";
import type { HomeAssistant } from "../../../types";
-import { actionHandler } from "../common/directives/action-handler-directive";
-import { handleAction } from "../common/handle-action";
-import { hasAction } from "../common/has-action";
-import "../heading-badges/hui-heading-badge";
import type {
LovelaceCard,
LovelaceCardEditor,
@@ -19,6 +7,21 @@ import type {
} from "../types";
import type { HeadingCardConfig } from "./types";
+import "../../../components/ha-card";
+import "../../../components/ha-icon";
+import "../../../components/ha-icon-next";
+import "../../../components/ha-state-icon";
+import "../../../state-display/state-display";
+import "../heading-badges/hui-heading-badge";
+
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { ifDefined } from "lit/directives/if-defined";
+
+import { actionHandler } from "../common/directives/action-handler-directive";
+import { handleAction } from "../common/handle-action";
+import { hasAction } from "../common/has-action";
+
export const migrateHeadingCardConfig = (
config: HeadingCardConfig
): HeadingCardConfig => {
diff --git a/src/panels/lovelace/cards/hui-history-graph-card.ts b/src/panels/lovelace/cards/hui-history-graph-card.ts
index 5ac50c7fc6..b447e27d17 100644
--- a/src/panels/lovelace/cards/hui-history-graph-card.ts
+++ b/src/panels/lovelace/cards/hui-history-graph-card.ts
@@ -1,12 +1,19 @@
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCard, LovelaceGridOptions } from "../types";
+import type { HistoryGraphCardConfig } from "./types";
import type { PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import { isComponentLoaded } from "../../../common/config/is_component_loaded";
+
import "../../../components/chart/state-history-charts";
import "../../../components/ha-alert";
import "../../../components/ha-card";
import "../../../components/ha-icon-next";
+
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+
+import { isComponentLoaded } from "../../../common/config/is_component_loaded";
+import { createSearchParam } from "../../../common/url/search-params";
import {
computeHistory,
subscribeHistoryStatesTimeWindow,
@@ -14,14 +21,10 @@ import {
convertStatisticsToHistory,
mergeHistoryResults,
} from "../../../data/history";
+import { fetchStatistics } from "../../../data/recorder";
import { getSensorNumericDeviceClasses } from "../../../data/sensor";
-import type { HomeAssistant } from "../../../types";
import { hasConfigOrEntitiesChanged } from "../common/has-changed";
import { processConfigEntities } from "../common/process-config-entities";
-import type { LovelaceCard, LovelaceGridOptions } from "../types";
-import type { HistoryGraphCardConfig } from "./types";
-import { createSearchParam } from "../../../common/url/search-params";
-import { fetchStatistics } from "../../../data/recorder";
export const DEFAULT_HOURS_TO_SHOW = 24;
diff --git a/src/panels/lovelace/cards/hui-horizontal-stack-card.ts b/src/panels/lovelace/cards/hui-horizontal-stack-card.ts
index 9448c65c82..3bd8d17777 100644
--- a/src/panels/lovelace/cards/hui-horizontal-stack-card.ts
+++ b/src/panels/lovelace/cards/hui-horizontal-stack-card.ts
@@ -1,6 +1,8 @@
import type { CSSResultGroup } from "lit";
+
import { css } from "lit";
import { customElement } from "lit/decorators";
+
import { computeCardSize } from "../common/compute-card-size";
import { HuiStackCard } from "./hui-stack-card";
diff --git a/src/panels/lovelace/cards/hui-humidifier-card.ts b/src/panels/lovelace/cards/hui-humidifier-card.ts
index 7da931fba0..46448b48b1 100644
--- a/src/panels/lovelace/cards/hui-humidifier-card.ts
+++ b/src/panels/lovelace/cards/hui-humidifier-card.ts
@@ -1,27 +1,30 @@
-import { ResizeController } from "@lit-labs/observers/resize-controller";
-import { mdiDotsVertical } from "@mdi/js";
-import type { PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { styleMap } from "lit/directives/style-map";
-import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { computeStateName } from "../../../common/entity/compute_state_name";
-import { stateColorCss } from "../../../common/entity/state_color";
-import "../../../components/ha-card";
-import "../../../components/ha-icon-button";
import type { HumidifierEntity } from "../../../data/humidifier";
-import "../../../state-control/humidifier/ha-state-control-humidifier-humidity";
import type { HomeAssistant } from "../../../types";
-import "../card-features/hui-card-features";
-import { findEntities } from "../common/find-entities";
-import { createEntityNotFoundWarning } from "../components/hui-warning";
import type {
LovelaceCard,
LovelaceCardEditor,
LovelaceGridOptions,
} from "../types";
import type { HumidifierCardConfig } from "./types";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-card";
+import "../../../components/ha-icon-button";
+import "../../../state-control/humidifier/ha-state-control-humidifier-humidity";
+import "../card-features/hui-card-features";
+
+import { ResizeController } from "@lit-labs/observers/resize-controller";
+import { mdiDotsVertical } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { styleMap } from "lit/directives/style-map";
+
+import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
+import { fireEvent } from "../../../common/dom/fire_event";
+import { computeStateName } from "../../../common/entity/compute_state_name";
+import { stateColorCss } from "../../../common/entity/state_color";
+import { findEntities } from "../common/find-entities";
+import { createEntityNotFoundWarning } from "../components/hui-warning";
@customElement("hui-humidifier-card")
export class HuiHumidifierCard extends LitElement implements LovelaceCard {
diff --git a/src/panels/lovelace/cards/hui-iframe-card.ts b/src/panels/lovelace/cards/hui-iframe-card.ts
index 63955f93dc..11207b2c5a 100644
--- a/src/panels/lovelace/cards/hui-iframe-card.ts
+++ b/src/panels/lovelace/cards/hui-iframe-card.ts
@@ -1,10 +1,3 @@
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { ifDefined } from "lit/directives/if-defined";
-import { styleMap } from "lit/directives/style-map";
-import parseAspectRatio from "../../../common/util/parse-aspect-ratio";
-import "../../../components/ha-alert";
-import "../../../components/ha-card";
import type { HomeAssistant } from "../../../types";
import type {
LovelaceCard,
@@ -12,6 +5,16 @@ import type {
LovelaceGridOptions,
} from "../types";
import type { IframeCardConfig } from "./types";
+
+import "../../../components/ha-alert";
+import "../../../components/ha-card";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { ifDefined } from "lit/directives/if-defined";
+import { styleMap } from "lit/directives/style-map";
+
+import parseAspectRatio from "../../../common/util/parse-aspect-ratio";
import { IFRAME_SANDBOX } from "../../../util/iframe";
@customElement("hui-iframe-card")
diff --git a/src/panels/lovelace/cards/hui-light-card.ts b/src/panels/lovelace/cards/hui-light-card.ts
index f8ca1282dd..c7c5e288c4 100644
--- a/src/panels/lovelace/cards/hui-light-card.ts
+++ b/src/panels/lovelace/cards/hui-light-card.ts
@@ -1,30 +1,33 @@
-import { mdiDotsVertical } from "@mdi/js";
-import "@thomasloven/round-slider";
+import type { LightEntity } from "../../../data/light";
+import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCard, LovelaceCardEditor } from "../types";
+import type { LightCardConfig } from "./types";
import type { PropertyValues } from "lit";
+
+import "../../../components/ha-card";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-state-icon";
+import "@thomasloven/round-slider";
+
+import { mdiDotsVertical } from "@mdi/js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { styleMap } from "lit/directives/style-map";
+
import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
import { fireEvent } from "../../../common/dom/fire_event";
import { computeStateName } from "../../../common/entity/compute_state_name";
import { stateColorBrightness } from "../../../common/entity/state_color";
-import "../../../components/ha-card";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-state-icon";
import { UNAVAILABLE, isUnavailableState } from "../../../data/entity";
-import type { LightEntity } from "../../../data/light";
import { lightSupportsBrightness } from "../../../data/light";
-import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
-import type { HomeAssistant } from "../../../types";
import { actionHandler } from "../common/directives/action-handler-directive";
import { findEntities } from "../common/find-entities";
import { handleAction } from "../common/handle-action";
import { hasAction } from "../common/has-action";
import { hasConfigOrEntityChanged } from "../common/has-changed";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { LovelaceCard, LovelaceCardEditor } from "../types";
-import type { LightCardConfig } from "./types";
@customElement("hui-light-card")
export class HuiLightCard extends LitElement implements LovelaceCard {
diff --git a/src/panels/lovelace/cards/hui-logbook-card.ts b/src/panels/lovelace/cards/hui-logbook-card.ts
index 12ee971d1f..230ef59b1f 100644
--- a/src/panels/lovelace/cards/hui-logbook-card.ts
+++ b/src/panels/lovelace/cards/hui-logbook-card.ts
@@ -1,23 +1,26 @@
+import type { HomeAssistant } from "../../../types";
+import type { HaLogbook } from "../../logbook/ha-logbook";
+import type { EntityConfig } from "../entity-rows/types";
+import type { LovelaceCard, LovelaceCardEditor } from "../types";
+import type { LogbookCardConfig } from "./types";
+import type { HassServiceTarget } from "home-assistant-js-websocket";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../components/ha-card";
+import "../../logbook/ha-logbook";
+import "../components/hui-warning";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import memoizeOne from "memoize-one";
-import type { HassServiceTarget } from "home-assistant-js-websocket";
+
+import { ensureArray } from "../../../common/array/ensure-array";
import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
-import "../../../components/ha-card";
-import type { HomeAssistant } from "../../../types";
-import "../../logbook/ha-logbook";
-import type { HaLogbook } from "../../logbook/ha-logbook";
+import { resolveEntityIDs } from "../../../data/selector";
import { findEntities } from "../common/find-entities";
import { processConfigEntities } from "../common/process-config-entities";
-import "../components/hui-warning";
-import type { EntityConfig } from "../entity-rows/types";
-import type { LovelaceCard, LovelaceCardEditor } from "../types";
-import type { LogbookCardConfig } from "./types";
-import { resolveEntityIDs } from "../../../data/selector";
-import { ensureArray } from "../../../common/array/ensure-array";
export const DEFAULT_HOURS_TO_SHOW = 24;
diff --git a/src/panels/lovelace/cards/hui-map-card.ts b/src/panels/lovelace/cards/hui-map-card.ts
index 145ff00ade..3aff0b8548 100644
--- a/src/panels/lovelace/cards/hui-map-card.ts
+++ b/src/panels/lovelace/cards/hui-map-card.ts
@@ -1,25 +1,3 @@
-import {
- mdiDotsHexagon,
- mdiGoogleCirclesCommunities,
- mdiImageFilterCenterFocus,
-} from "@mdi/js";
-import type { HassEntities } from "home-assistant-js-websocket";
-import type { LatLngTuple } from "leaflet";
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { getColorByIndex } from "../../../common/color/colors";
-import { isComponentLoaded } from "../../../common/config/is_component_loaded";
-import { computeDomain } from "../../../common/entity/compute_domain";
-import { computeStateDomain } from "../../../common/entity/compute_state_domain";
-import { computeStateName } from "../../../common/entity/compute_state_name";
-import { deepEqual } from "../../../common/util/deep-equal";
-import parseAspectRatio from "../../../common/util/parse-aspect-ratio";
-import "../../../components/ha-alert";
-import "../../../components/ha-card";
-import "../../../components/ha-icon-button";
-import "../../../components/map/ha-map";
import type {
HaMap,
HaMapEntity,
@@ -27,17 +5,42 @@ import type {
HaMapPaths,
} from "../../../components/map/ha-map";
import type { HistoryStates } from "../../../data/history";
-import { subscribeHistoryStatesTimeWindow } from "../../../data/history";
import type { HomeAssistant } from "../../../types";
+import type { EntityConfig } from "../entity-rows/types";
+import type { LovelaceCard, LovelaceGridOptions } from "../types";
+import type { MapCardConfig } from "./types";
+import type { HassEntities } from "home-assistant-js-websocket";
+import type { LatLngTuple } from "leaflet";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-alert";
+import "../../../components/ha-card";
+import "../../../components/ha-icon-button";
+import "../../../components/map/ha-map";
+
+import {
+ mdiDotsHexagon,
+ mdiGoogleCirclesCommunities,
+ mdiImageFilterCenterFocus,
+} from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { getColorByIndex } from "../../../common/color/colors";
+import { isComponentLoaded } from "../../../common/config/is_component_loaded";
+import { computeDomain } from "../../../common/entity/compute_domain";
+import { computeStateDomain } from "../../../common/entity/compute_state_domain";
+import { computeStateName } from "../../../common/entity/compute_state_name";
+import { deepEqual } from "../../../common/util/deep-equal";
+import parseAspectRatio from "../../../common/util/parse-aspect-ratio";
+import { subscribeHistoryStatesTimeWindow } from "../../../data/history";
import { findEntities } from "../common/find-entities";
import {
hasConfigChanged,
hasConfigOrEntitiesChanged,
} from "../common/has-changed";
import { processConfigEntities } from "../common/process-config-entities";
-import type { EntityConfig } from "../entity-rows/types";
-import type { LovelaceCard, LovelaceGridOptions } from "../types";
-import type { MapCardConfig } from "./types";
export const DEFAULT_HOURS_TO_SHOW = 0;
export const DEFAULT_ZOOM = 14;
diff --git a/src/panels/lovelace/cards/hui-markdown-card.ts b/src/panels/lovelace/cards/hui-markdown-card.ts
index 6d2e98e906..9321bc04d6 100644
--- a/src/panels/lovelace/cards/hui-markdown-card.ts
+++ b/src/panels/lovelace/cards/hui-markdown-card.ts
@@ -1,20 +1,23 @@
+import type { RenderTemplateResult } from "../../../data/ws-templates";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCard, LovelaceCardEditor } from "../types";
+import type { MarkdownCardConfig } from "./types";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
+
+import "../../../components/ha-alert";
+import "../../../components/ha-card";
+import "../../../components/ha-markdown";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import hash from "object-hash";
+
import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
import { fireEvent } from "../../../common/dom/fire_event";
-import "../../../components/ha-alert";
-import "../../../components/ha-card";
-import "../../../components/ha-markdown";
-import type { RenderTemplateResult } from "../../../data/ws-templates";
import { subscribeRenderTemplate } from "../../../data/ws-templates";
-import type { HomeAssistant } from "../../../types";
import { CacheManager } from "../../../util/cache-manager";
-import type { LovelaceCard, LovelaceCardEditor } from "../types";
-import type { MarkdownCardConfig } from "./types";
const templateCache = new CacheManager(1000);
diff --git a/src/panels/lovelace/cards/hui-media-control-card.ts b/src/panels/lovelace/cards/hui-media-control-card.ts
index 7b3c3df6c7..4ce0a181ed 100644
--- a/src/panels/lovelace/cards/hui-media-control-card.ts
+++ b/src/panels/lovelace/cards/hui-media-control-card.ts
@@ -1,27 +1,34 @@
-import "@material/mwc-linear-progress/mwc-linear-progress";
-import type { LinearProgress } from "@material/mwc-linear-progress/mwc-linear-progress";
-import { mdiDotsVertical, mdiPlayBoxMultiple } from "@mdi/js";
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import { styleMap } from "lit/directives/style-map";
-import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { computeStateName } from "../../../common/entity/compute_state_name";
-import { supportsFeature } from "../../../common/entity/supports-feature";
-import { extractColors } from "../../../common/image/extract_color";
-import { stateActive } from "../../../common/entity/state_active";
-import { debounce } from "../../../common/util/debounce";
-import "../../../components/ha-card";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-state-icon";
-import { showMediaBrowserDialog } from "../../../components/media-player/show-media-browser-dialog";
-import { isUnavailableState } from "../../../data/entity";
import type {
MediaPickedEvent,
MediaPlayerEntity,
} from "../../../data/media-player";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCard, LovelaceCardEditor } from "../types";
+import type { MediaControlCardConfig } from "./types";
+import type { LinearProgress } from "@material/mwc-linear-progress/mwc-linear-progress";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-card";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-state-icon";
+import "../components/hui-marquee";
+import "@material/mwc-linear-progress/mwc-linear-progress";
+
+import { mdiDotsVertical, mdiPlayBoxMultiple } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+import { styleMap } from "lit/directives/style-map";
+
+import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
+import { fireEvent } from "../../../common/dom/fire_event";
+import { computeStateName } from "../../../common/entity/compute_state_name";
+import { stateActive } from "../../../common/entity/state_active";
+import { supportsFeature } from "../../../common/entity/supports-feature";
+import { extractColors } from "../../../common/image/extract_color";
+import { debounce } from "../../../common/util/debounce";
+import { showMediaBrowserDialog } from "../../../components/media-player/show-media-browser-dialog";
+import { isUnavailableState } from "../../../data/entity";
import {
cleanupMediaTitle,
computeMediaControls,
@@ -31,13 +38,9 @@ import {
MediaPlayerEntityFeature,
mediaPlayerPlayMedia,
} from "../../../data/media-player";
-import type { HomeAssistant } from "../../../types";
import { findEntities } from "../common/find-entities";
import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-marquee";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { LovelaceCard, LovelaceCardEditor } from "../types";
-import type { MediaControlCardConfig } from "./types";
@customElement("hui-media-control-card")
export class HuiMediaControlCard extends LitElement implements LovelaceCard {
diff --git a/src/panels/lovelace/cards/hui-picture-card.ts b/src/panels/lovelace/cards/hui-picture-card.ts
index 8bc3afb40a..f9df9a5936 100644
--- a/src/panels/lovelace/cards/hui-picture-card.ts
+++ b/src/panels/lovelace/cards/hui-picture-card.ts
@@ -1,23 +1,26 @@
+import type { ImageEntity } from "../../../data/image";
+import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
+import type { PersonEntity } from "../../../data/person";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCard, LovelaceCardEditor } from "../types";
+import type { PictureCardConfig } from "./types";
import type { PropertyValues } from "lit";
+
+import "../../../components/ha-card";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { ifDefined } from "lit/directives/if-defined";
+
import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
import { computeDomain } from "../../../common/entity/compute_domain";
-import "../../../components/ha-card";
-import type { ImageEntity } from "../../../data/image";
import { computeImageUrl } from "../../../data/image";
-import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
-import type { HomeAssistant } from "../../../types";
import { actionHandler } from "../common/directives/action-handler-directive";
import { handleAction } from "../common/handle-action";
import { hasAction } from "../common/has-action";
import { hasConfigChanged } from "../common/has-changed";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { LovelaceCard, LovelaceCardEditor } from "../types";
-import type { PictureCardConfig } from "./types";
-import type { PersonEntity } from "../../../data/person";
@customElement("hui-picture-card")
export class HuiPictureCard extends LitElement implements LovelaceCard {
diff --git a/src/panels/lovelace/cards/hui-picture-elements-card.ts b/src/panels/lovelace/cards/hui-picture-elements-card.ts
index cea7d6824c..09d49b44e4 100644
--- a/src/panels/lovelace/cards/hui-picture-elements-card.ts
+++ b/src/panels/lovelace/cards/hui-picture-elements-card.ts
@@ -1,18 +1,21 @@
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
-import { computeDomain } from "../../../common/entity/compute_domain";
-import "../../../components/ha-card";
import type { ImageEntity } from "../../../data/image";
-import { computeImageUrl } from "../../../data/image";
+import type { PersonEntity } from "../../../data/person";
import type { HomeAssistant } from "../../../types";
-import { findEntities } from "../common/find-entities";
import type { LovelaceElement, LovelaceElementConfig } from "../elements/types";
import type { LovelaceCard, LovelaceCardEditor } from "../types";
-import { createStyledHuiElement } from "./picture-elements/create-styled-hui-element";
import type { PictureElementsCardConfig } from "./types";
-import type { PersonEntity } from "../../../data/person";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-card";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
+import { computeDomain } from "../../../common/entity/compute_domain";
+import { computeImageUrl } from "../../../data/image";
+import { findEntities } from "../common/find-entities";
+import { createStyledHuiElement } from "./picture-elements/create-styled-hui-element";
@customElement("hui-picture-elements-card")
class HuiPictureElementsCard extends LitElement implements LovelaceCard {
diff --git a/src/panels/lovelace/cards/hui-picture-entity-card.ts b/src/panels/lovelace/cards/hui-picture-entity-card.ts
index 22bca69b24..d85ab256e9 100644
--- a/src/panels/lovelace/cards/hui-picture-entity-card.ts
+++ b/src/panels/lovelace/cards/hui-picture-entity-card.ts
@@ -1,26 +1,29 @@
-import type { PropertyValues, TemplateResult } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { ifDefined } from "lit/directives/if-defined";
-import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
-import { computeDomain } from "../../../common/entity/compute_domain";
-import { computeStateName } from "../../../common/entity/compute_state_name";
-import "../../../components/ha-card";
import type { CameraEntity } from "../../../data/camera";
import type { ImageEntity } from "../../../data/image";
-import { computeImageUrl } from "../../../data/image";
import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
import type { PersonEntity } from "../../../data/person";
import type { HomeAssistant } from "../../../types";
+import type { LovelaceCard, LovelaceCardEditor } from "../types";
+import type { PictureEntityCardConfig } from "./types";
+import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/ha-card";
+import "../components/hui-image";
+
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { ifDefined } from "lit/directives/if-defined";
+
+import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
+import { computeDomain } from "../../../common/entity/compute_domain";
+import { computeStateName } from "../../../common/entity/compute_state_name";
+import { computeImageUrl } from "../../../data/image";
import { actionHandler } from "../common/directives/action-handler-directive";
import { findEntities } from "../common/find-entities";
import { handleAction } from "../common/handle-action";
import { hasAction } from "../common/has-action";
import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-image";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { LovelaceCard, LovelaceCardEditor } from "../types";
-import type { PictureEntityCardConfig } from "./types";
export const STUB_IMAGE =
"https://demo.home-assistant.io/stub_config/bedroom.png";
diff --git a/src/panels/lovelace/cards/hui-picture-glance-card.ts b/src/panels/lovelace/cards/hui-picture-glance-card.ts
index ecd421cf41..0e63a767c7 100644
--- a/src/panels/lovelace/cards/hui-picture-glance-card.ts
+++ b/src/panels/lovelace/cards/hui-picture-glance-card.ts
@@ -1,34 +1,37 @@
+import type { ImageEntity } from "../../../data/image";
+import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
+import type { PersonEntity } from "../../../data/person";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCard, LovelaceCardEditor } from "../types";
+import type {
+ PictureGlanceCardConfig,
+ PictureGlanceEntityConfig,
+} from "./types";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/ha-card";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-state-icon";
+import "../components/hui-image";
+import "../components/hui-warning-element";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { ifDefined } from "lit/directives/if-defined";
+
import { DOMAINS_TOGGLE } from "../../../common/const";
import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
import { computeDomain } from "../../../common/entity/compute_domain";
import { computeStateName } from "../../../common/entity/compute_state_name";
-import "../../../components/ha-card";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-state-icon";
-import type { ImageEntity } from "../../../data/image";
import { computeImageUrl } from "../../../data/image";
-import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
-import type { HomeAssistant } from "../../../types";
import { actionHandler } from "../common/directives/action-handler-directive";
import { findEntities } from "../common/find-entities";
import { handleAction } from "../common/handle-action";
import { hasAction } from "../common/has-action";
import { hasConfigOrEntityChanged } from "../common/has-changed";
import { processConfigEntities } from "../common/process-config-entities";
-import "../components/hui-image";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import "../components/hui-warning-element";
-import type { LovelaceCard, LovelaceCardEditor } from "../types";
-import type {
- PictureGlanceCardConfig,
- PictureGlanceEntityConfig,
-} from "./types";
-import type { PersonEntity } from "../../../data/person";
const STATES_OFF = new Set(["closed", "locked", "not_home", "off"]);
diff --git a/src/panels/lovelace/cards/hui-plant-status-card.ts b/src/panels/lovelace/cards/hui-plant-status-card.ts
index 5dc3c94f6b..58991d6cc2 100644
--- a/src/panels/lovelace/cards/hui-plant-status-card.ts
+++ b/src/panels/lovelace/cards/hui-plant-status-card.ts
@@ -1,26 +1,29 @@
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCard, LovelaceCardEditor } from "../types";
+import type { PlantAttributeTarget, PlantStatusCardConfig } from "./types";
+import type { HassEntity } from "home-assistant-js-websocket";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-card";
+import "../../../components/ha-svg-icon";
+
import {
mdiSprout,
mdiThermometer,
mdiWaterPercent,
mdiWhiteBalanceSunny,
} from "@mdi/js";
-import type { HassEntity } from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
import { fireEvent } from "../../../common/dom/fire_event";
import { batteryLevelIcon } from "../../../common/entity/battery_icon";
import { computeStateName } from "../../../common/entity/compute_state_name";
-import "../../../components/ha-card";
-import "../../../components/ha-svg-icon";
-import type { HomeAssistant } from "../../../types";
import { actionHandler } from "../common/directives/action-handler-directive";
import { findEntities } from "../common/find-entities";
import { hasConfigOrEntityChanged } from "../common/has-changed";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { LovelaceCard, LovelaceCardEditor } from "../types";
-import type { PlantAttributeTarget, PlantStatusCardConfig } from "./types";
const SENSOR_ICONS = {
moisture: mdiWaterPercent,
diff --git a/src/panels/lovelace/cards/hui-recovery-mode-card.ts b/src/panels/lovelace/cards/hui-recovery-mode-card.ts
index ed09372c20..0a855e82bf 100644
--- a/src/panels/lovelace/cards/hui-recovery-mode-card.ts
+++ b/src/panels/lovelace/cards/hui-recovery-mode-card.ts
@@ -1,11 +1,13 @@
-import "@material/mwc-button";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCard } from "../types";
import type { TemplateResult } from "lit";
+
+import "../../../components/ha-card";
+import "../../config/logs/error-log-card";
+import "@material/mwc-button";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
-import "../../../components/ha-card";
-import type { HomeAssistant } from "../../../types";
-import "../../config/logs/error-log-card";
-import type { LovelaceCard } from "../types";
@customElement("hui-recovery-mode-card")
export class HuiRecoveryModeCard extends LitElement implements LovelaceCard {
diff --git a/src/panels/lovelace/cards/hui-sensor-card.ts b/src/panels/lovelace/cards/hui-sensor-card.ts
index db964f9e0d..e3049993f3 100644
--- a/src/panels/lovelace/cards/hui-sensor-card.ts
+++ b/src/panels/lovelace/cards/hui-sensor-card.ts
@@ -1,14 +1,16 @@
-import type { HassEntity } from "home-assistant-js-websocket/dist/types";
-import type { CSSResultGroup } from "lit";
-import { css } from "lit";
-import { customElement } from "lit/decorators";
-import { computeDomain } from "../../../common/entity/compute_domain";
import type { HomeAssistant } from "../../../types";
-import { findEntities } from "../common/find-entities";
import type { GraphHeaderFooterConfig } from "../header-footer/types";
import type { LovelaceCardEditor, LovelaceGridOptions } from "../types";
-import { HuiEntityCard } from "./hui-entity-card";
import type { EntityCardConfig, SensorCardConfig } from "./types";
+import type { HassEntity } from "home-assistant-js-websocket/dist/types";
+import type { CSSResultGroup } from "lit";
+
+import { css } from "lit";
+import { customElement } from "lit/decorators";
+
+import { computeDomain } from "../../../common/entity/compute_domain";
+import { findEntities } from "../common/find-entities";
+import { HuiEntityCard } from "./hui-entity-card";
const includeDomains = ["counter", "input_number", "number", "sensor"];
diff --git a/src/panels/lovelace/cards/hui-shopping-list-card.ts b/src/panels/lovelace/cards/hui-shopping-list-card.ts
index 7c0718a772..be30204c29 100644
--- a/src/panels/lovelace/cards/hui-shopping-list-card.ts
+++ b/src/panels/lovelace/cards/hui-shopping-list-card.ts
@@ -1,6 +1,7 @@
import { customElement } from "lit/decorators";
-import { HuiTodoListCard } from "./hui-todo-list-card";
+
import { getTodoLists } from "../../../data/todo";
+import { HuiTodoListCard } from "./hui-todo-list-card";
@customElement("hui-shopping-list-card")
class HuiShoppingListCard extends HuiTodoListCard {
diff --git a/src/panels/lovelace/cards/hui-stack-card.ts b/src/panels/lovelace/cards/hui-stack-card.ts
index 2127302e66..1b2988c62c 100644
--- a/src/panels/lovelace/cards/hui-stack-card.ts
+++ b/src/panels/lovelace/cards/hui-stack-card.ts
@@ -1,13 +1,16 @@
-import { LitElement, css, html, nothing } from "lit";
-import { property, state } from "lit/decorators";
-import { computeRTLDirection } from "../../../common/util/compute_rtl";
import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
import type { HomeAssistant } from "../../../types";
import type { LovelaceCard, LovelaceCardEditor } from "../types";
-import "./hui-card";
import type { HuiCard } from "./hui-card";
import type { StackCardConfig } from "./types";
+import "./hui-card";
+
+import { LitElement, css, html, nothing } from "lit";
+import { property, state } from "lit/decorators";
+
+import { computeRTLDirection } from "../../../common/util/compute_rtl";
+
export abstract class HuiStackCard
extends LitElement
implements LovelaceCard
diff --git a/src/panels/lovelace/cards/hui-starting-card.ts b/src/panels/lovelace/cards/hui-starting-card.ts
index 6ae7f66286..e048efea01 100644
--- a/src/panels/lovelace/cards/hui-starting-card.ts
+++ b/src/panels/lovelace/cards/hui-starting-card.ts
@@ -1,14 +1,17 @@
-import "@material/mwc-button/mwc-button";
-import { STATE_NOT_RUNNING } from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../../common/dom/fire_event";
-import "../../../components/ha-card";
-import "../../../components/ha-spinner";
import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
import type { HomeAssistant } from "../../../types";
import type { LovelaceCard } from "../types";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-card";
+import "../../../components/ha-spinner";
+import "@material/mwc-button/mwc-button";
+
+import { STATE_NOT_RUNNING } from "home-assistant-js-websocket";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
@customElement("hui-starting-card")
export class HuiStartingCard extends LitElement implements LovelaceCard {
diff --git a/src/panels/lovelace/cards/hui-statistic-card.ts b/src/panels/lovelace/cards/hui-statistic-card.ts
index eebe867bbf..cce4f42e52 100644
--- a/src/panels/lovelace/cards/hui-statistic-card.ts
+++ b/src/panels/lovelace/cards/hui-statistic-card.ts
@@ -1,28 +1,5 @@
-import type { HassEntity, UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { CSSResultGroup, PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { isValidEntityId } from "../../../common/entity/valid_entity_id";
-import { formatNumber } from "../../../common/number/format_number";
-import "../../../components/ha-alert";
-import "../../../components/ha-card";
-import "../../../components/ha-state-icon";
-import { getEnergyDataCollection } from "../../../data/energy";
import type { StatisticsMetaData } from "../../../data/recorder";
-import {
- fetchStatistic,
- getDisplayUnit,
- getStatisticLabel,
- getStatisticMetadata,
- isExternalStatistic,
-} from "../../../data/recorder";
import type { HomeAssistant } from "../../../types";
-import { computeCardSize } from "../common/compute-card-size";
-import { findEntities } from "../common/find-entities";
-import { hasConfigOrEntityChanged } from "../common/has-changed";
-import { createHeaderFooterElement } from "../create-element/create-header-footer-element";
import type {
LovelaceCard,
LovelaceCardEditor,
@@ -31,6 +8,32 @@ import type {
} from "../types";
import type { HuiErrorCard } from "./hui-error-card";
import type { EntityCardConfig, StatisticCardConfig } from "./types";
+import type { HassEntity, UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../components/ha-alert";
+import "../../../components/ha-card";
+import "../../../components/ha-state-icon";
+
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
+import { fireEvent } from "../../../common/dom/fire_event";
+import { isValidEntityId } from "../../../common/entity/valid_entity_id";
+import { formatNumber } from "../../../common/number/format_number";
+import { getEnergyDataCollection } from "../../../data/energy";
+import {
+ fetchStatistic,
+ getDisplayUnit,
+ getStatisticLabel,
+ getStatisticMetadata,
+ isExternalStatistic,
+} from "../../../data/recorder";
+import { computeCardSize } from "../common/compute-card-size";
+import { findEntities } from "../common/find-entities";
+import { hasConfigOrEntityChanged } from "../common/has-changed";
+import { createHeaderFooterElement } from "../create-element/create-header-footer-element";
export const PERIOD_ENERGY = "energy_date_selection";
diff --git a/src/panels/lovelace/cards/hui-statistics-graph-card.ts b/src/panels/lovelace/cards/hui-statistics-graph-card.ts
index 061f8f9b64..bd8fa64273 100644
--- a/src/panels/lovelace/cards/hui-statistics-graph-card.ts
+++ b/src/panels/lovelace/cards/hui-statistics-graph-card.ts
@@ -1,31 +1,34 @@
-import type { HassEntity, UnsubscribeFunc } from "home-assistant-js-websocket";
-import { subHours, differenceInDays } from "date-fns";
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import "../../../components/ha-card";
-import { getEnergyDataCollection } from "../../../data/energy";
-import {
- getSuggestedMax,
- getSuggestedPeriod,
-} from "./energy/common/energy-chart-options";
import type {
Statistics,
StatisticsMetaData,
StatisticType,
} from "../../../data/recorder";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCard, LovelaceGridOptions } from "../types";
+import type { StatisticsGraphCardConfig } from "./types";
+import type { HassEntity, UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-card";
+
+import { subHours, differenceInDays } from "date-fns";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+
+import { getEnergyDataCollection } from "../../../data/energy";
import {
fetchStatistics,
getDisplayUnit,
getStatisticMetadata,
} from "../../../data/recorder";
-import type { HomeAssistant } from "../../../types";
import { findEntities } from "../common/find-entities";
import { hasConfigOrEntitiesChanged } from "../common/has-changed";
import { processConfigEntities } from "../common/process-config-entities";
-import type { LovelaceCard, LovelaceGridOptions } from "../types";
-import type { StatisticsGraphCardConfig } from "./types";
+import {
+ getSuggestedMax,
+ getSuggestedPeriod,
+} from "./energy/common/energy-chart-options";
export const DEFAULT_DAYS_TO_SHOW = 30;
diff --git a/src/panels/lovelace/cards/hui-thermostat-card.ts b/src/panels/lovelace/cards/hui-thermostat-card.ts
index 4784141970..a68562bc3a 100644
--- a/src/panels/lovelace/cards/hui-thermostat-card.ts
+++ b/src/panels/lovelace/cards/hui-thermostat-card.ts
@@ -1,27 +1,30 @@
-import { ResizeController } from "@lit-labs/observers/resize-controller";
-import { mdiDotsVertical } from "@mdi/js";
-import type { PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { styleMap } from "lit/directives/style-map";
-import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { computeStateName } from "../../../common/entity/compute_state_name";
-import { stateColorCss } from "../../../common/entity/state_color";
-import "../../../components/ha-card";
-import "../../../components/ha-icon-button";
import type { ClimateEntity } from "../../../data/climate";
-import "../../../state-control/climate/ha-state-control-climate-temperature";
import type { HomeAssistant } from "../../../types";
-import "../card-features/hui-card-features";
-import { findEntities } from "../common/find-entities";
-import { createEntityNotFoundWarning } from "../components/hui-warning";
import type {
LovelaceCard,
LovelaceCardEditor,
LovelaceGridOptions,
} from "../types";
import type { ThermostatCardConfig } from "./types";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-card";
+import "../../../components/ha-icon-button";
+import "../../../state-control/climate/ha-state-control-climate-temperature";
+import "../card-features/hui-card-features";
+
+import { ResizeController } from "@lit-labs/observers/resize-controller";
+import { mdiDotsVertical } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { styleMap } from "lit/directives/style-map";
+
+import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
+import { fireEvent } from "../../../common/dom/fire_event";
+import { computeStateName } from "../../../common/entity/compute_state_name";
+import { stateColorCss } from "../../../common/entity/state_color";
+import { findEntities } from "../common/find-entities";
+import { createEntityNotFoundWarning } from "../components/hui-warning";
@customElement("hui-thermostat-card")
export class HuiThermostatCard extends LitElement implements LovelaceCard {
diff --git a/src/panels/lovelace/cards/hui-tile-card.ts b/src/panels/lovelace/cards/hui-tile-card.ts
index ee294c8227..6c78b0342d 100644
--- a/src/panels/lovelace/cards/hui-tile-card.ts
+++ b/src/panels/lovelace/cards/hui-tile-card.ts
@@ -1,11 +1,32 @@
-import { mdiExclamationThick, mdiHelp } from "@mdi/js";
+import type { TileIconImageStyle } from "../../../components/tile/ha-tile-icon";
+import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
+import type { HomeAssistant } from "../../../types";
+import type {
+ LovelaceCard,
+ LovelaceCardEditor,
+ LovelaceGridOptions,
+} from "../types";
+import type { TileCardConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../components/ha-card";
+import "../../../components/ha-ripple";
+import "../../../components/ha-state-icon";
+import "../../../components/ha-svg-icon";
+import "../../../components/tile/ha-tile-badge";
+import "../../../components/tile/ha-tile-icon";
+import "../../../components/tile/ha-tile-info";
+import "../../../state-display/state-display";
+import "../card-features/hui-card-features";
+
+import { mdiExclamationThick, mdiHelp } from "@mdi/js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { ifDefined } from "lit/directives/if-defined";
import { styleMap } from "lit/directives/style-map";
import memoizeOne from "memoize-one";
+
import { computeCssColor } from "../../../common/color/compute-color";
import { hsv2rgb, rgb2hex, rgb2hsv } from "../../../common/color/convert-color";
import { DOMAINS_TOGGLE } from "../../../common/const";
@@ -13,30 +34,12 @@ import { computeDomain } from "../../../common/entity/compute_domain";
import { computeStateName } from "../../../common/entity/compute_state_name";
import { stateActive } from "../../../common/entity/state_active";
import { stateColorCss } from "../../../common/entity/state_color";
-import "../../../components/ha-card";
-import "../../../components/ha-ripple";
-import "../../../components/ha-state-icon";
-import "../../../components/ha-svg-icon";
-import "../../../components/tile/ha-tile-badge";
-import "../../../components/tile/ha-tile-icon";
-import type { TileIconImageStyle } from "../../../components/tile/ha-tile-icon";
-import "../../../components/tile/ha-tile-info";
import { cameraUrlWithWidthHeight } from "../../../data/camera";
-import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
-import "../../../state-display/state-display";
-import type { HomeAssistant } from "../../../types";
-import "../card-features/hui-card-features";
import { actionHandler } from "../common/directives/action-handler-directive";
import { findEntities } from "../common/find-entities";
import { handleAction } from "../common/handle-action";
import { hasAction } from "../common/has-action";
-import type {
- LovelaceCard,
- LovelaceCardEditor,
- LovelaceGridOptions,
-} from "../types";
import { renderTileBadge } from "./tile/badges/tile-badge";
-import type { TileCardConfig } from "./types";
export const getEntityDefaultTileIconAction = (entityId: string) => {
const domain = computeDomain(entityId);
diff --git a/src/panels/lovelace/cards/hui-todo-list-card.ts b/src/panels/lovelace/cards/hui-todo-list-card.ts
index 648c132e5e..3774523892 100644
--- a/src/panels/lovelace/cards/hui-todo-list-card.ts
+++ b/src/panels/lovelace/cards/hui-todo-list-card.ts
@@ -1,27 +1,13 @@
-import "@material/mwc-list/mwc-list";
-import type { ActionDetail } from "@material/mwc-list/mwc-list-foundation";
+import type { HaTextField } from "../../../components/ha-textfield";
+import type { TodoItem } from "../../../data/todo";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCard, LovelaceCardEditor } from "../types";
+import type { TodoListCardConfig } from "./types";
import type { List } from "@material/mwc-list/mwc-list";
-import {
- mdiClock,
- mdiDelete,
- mdiDeleteSweep,
- mdiDotsVertical,
- mdiDrag,
- mdiPlus,
- mdiSort,
-} from "@mdi/js";
-import { endOfDay, isSameDay } from "date-fns";
+import type { ActionDetail } from "@material/mwc-list/mwc-list-foundation";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { PropertyValueMap, PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import { repeat } from "lit/directives/repeat";
-import memoizeOne from "memoize-one";
-import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
-import { supportsFeature } from "../../../common/entity/supports-feature";
-import { stopPropagation } from "../../../common/dom/stop_propagation";
-import { caseInsensitiveStringCompare } from "../../../common/string/compare";
+
import "../../../components/ha-card";
import "../../../components/ha-check-list-item";
import "../../../components/ha-checkbox";
@@ -33,9 +19,29 @@ import "../../../components/ha-select";
import "../../../components/ha-sortable";
import "../../../components/ha-svg-icon";
import "../../../components/ha-textfield";
-import type { HaTextField } from "../../../components/ha-textfield";
+import "@material/mwc-list/mwc-list";
+
+import {
+ mdiClock,
+ mdiDelete,
+ mdiDeleteSweep,
+ mdiDotsVertical,
+ mdiDrag,
+ mdiPlus,
+ mdiSort,
+} from "@mdi/js";
+import { endOfDay, isSameDay } from "date-fns";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+import { repeat } from "lit/directives/repeat";
+import memoizeOne from "memoize-one";
+
+import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
+import { stopPropagation } from "../../../common/dom/stop_propagation";
+import { supportsFeature } from "../../../common/entity/supports-feature";
+import { caseInsensitiveStringCompare } from "../../../common/string/compare";
import { isUnavailableState } from "../../../data/entity";
-import type { TodoItem } from "../../../data/todo";
import {
TodoItemStatus,
TodoListEntityFeature,
@@ -47,12 +53,9 @@ import {
TodoSortMode,
} from "../../../data/todo";
import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box";
-import type { HomeAssistant } from "../../../types";
import { showTodoItemEditDialog } from "../../todo/show-dialog-todo-item-editor";
import { findEntities } from "../common/find-entities";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { LovelaceCard, LovelaceCardEditor } from "../types";
-import type { TodoListCardConfig } from "./types";
@customElement("hui-todo-list-card")
export class HuiTodoListCard extends LitElement implements LovelaceCard {
diff --git a/src/panels/lovelace/cards/hui-vertical-stack-card.ts b/src/panels/lovelace/cards/hui-vertical-stack-card.ts
index e259211b47..7bbd696ccd 100644
--- a/src/panels/lovelace/cards/hui-vertical-stack-card.ts
+++ b/src/panels/lovelace/cards/hui-vertical-stack-card.ts
@@ -1,5 +1,7 @@
import type { CSSResultGroup } from "lit";
+
import { css } from "lit";
+
import { computeCardSize } from "../common/compute-card-size";
import { HuiStackCard } from "./hui-stack-card";
diff --git a/src/panels/lovelace/cards/hui-weather-forecast-card.ts b/src/panels/lovelace/cards/hui-weather-forecast-card.ts
index 6050ef428d..385e843365 100644
--- a/src/panels/lovelace/cards/hui-weather-forecast-card.ts
+++ b/src/panels/lovelace/cards/hui-weather-forecast-card.ts
@@ -1,19 +1,30 @@
-import { ResizeController } from "@lit-labs/observers/resize-controller";
+import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
+import type { ForecastEvent, WeatherEntity } from "../../../data/weather";
+import type { HomeAssistant } from "../../../types";
+import type {
+ LovelaceCard,
+ LovelaceCardEditor,
+ LovelaceGridOptions,
+} from "../types";
+import type { WeatherForecastCardConfig } from "./types";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../components/ha-card";
+import "../../../components/ha-svg-icon";
+
+import { ResizeController } from "@lit-labs/observers/resize-controller";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
+
+import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import { formatDateWeekdayShort } from "../../../common/datetime/format_date";
import { formatTime } from "../../../common/datetime/format_time";
import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
import { computeStateName } from "../../../common/entity/compute_state_name";
import { isValidEntityId } from "../../../common/entity/valid_entity_id";
import { formatNumber } from "../../../common/number/format_number";
-import "../../../components/ha-card";
-import "../../../components/ha-svg-icon";
import { UNAVAILABLE } from "../../../data/entity";
-import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
-import type { ForecastEvent, WeatherEntity } from "../../../data/weather";
import {
getForecast,
getSecondaryWeatherAttribute,
@@ -24,20 +35,12 @@ import {
weatherAttrIcons,
weatherSVGStyles,
} from "../../../data/weather";
-import type { HomeAssistant } from "../../../types";
import { actionHandler } from "../common/directives/action-handler-directive";
import { findEntities } from "../common/find-entities";
import { handleAction } from "../common/handle-action";
import { hasAction } from "../common/has-action";
import { hasConfigOrEntityChanged } from "../common/has-changed";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type {
- LovelaceCard,
- LovelaceCardEditor,
- LovelaceGridOptions,
-} from "../types";
-import type { WeatherForecastCardConfig } from "./types";
-import { isComponentLoaded } from "../../../common/config/is_component_loaded";
@customElement("hui-weather-forecast-card")
class HuiWeatherForecastCard extends LitElement implements LovelaceCard {
diff --git a/src/panels/lovelace/cards/picture-elements/create-styled-hui-element.ts b/src/panels/lovelace/cards/picture-elements/create-styled-hui-element.ts
index 0ce472da39..b68e28063f 100644
--- a/src/panels/lovelace/cards/picture-elements/create-styled-hui-element.ts
+++ b/src/panels/lovelace/cards/picture-elements/create-styled-hui-element.ts
@@ -1,9 +1,10 @@
-import { createHuiElement } from "../../create-element/create-hui-element";
import type {
LovelaceElement,
LovelaceElementConfig,
} from "../../elements/types";
+import { createHuiElement } from "../../create-element/create-hui-element";
+
export function createStyledHuiElement(
elementConfig: LovelaceElementConfig
): LovelaceElement {
diff --git a/src/panels/lovelace/cards/tile/badges/tile-badge-climate.ts b/src/panels/lovelace/cards/tile/badges/tile-badge-climate.ts
index 025b7dc186..9b85584bfb 100644
--- a/src/panels/lovelace/cards/tile/badges/tile-badge-climate.ts
+++ b/src/panels/lovelace/cards/tile/badges/tile-badge-climate.ts
@@ -1,11 +1,14 @@
-import { html, nothing } from "lit";
-import { styleMap } from "lit/directives/style-map";
-import { stateColorCss } from "../../../../../common/entity/state_color";
+import type { ClimateEntity } from "../../../../../data/climate";
+import type { RenderBadgeFunction } from "./tile-badge";
+
import "../../../../../components/ha-attribute-icon";
import "../../../../../components/tile/ha-tile-badge";
-import type { ClimateEntity } from "../../../../../data/climate";
+
+import { html, nothing } from "lit";
+import { styleMap } from "lit/directives/style-map";
+
+import { stateColorCss } from "../../../../../common/entity/state_color";
import { CLIMATE_HVAC_ACTION_TO_MODE } from "../../../../../data/climate";
-import type { RenderBadgeFunction } from "./tile-badge";
export const renderClimateBadge: RenderBadgeFunction = (stateObj, hass) => {
const hvacAction = (stateObj as ClimateEntity).attributes.hvac_action;
diff --git a/src/panels/lovelace/cards/tile/badges/tile-badge-humidifier.ts b/src/panels/lovelace/cards/tile/badges/tile-badge-humidifier.ts
index 01774e7dfc..0f7d199ab0 100644
--- a/src/panels/lovelace/cards/tile/badges/tile-badge-humidifier.ts
+++ b/src/panels/lovelace/cards/tile/badges/tile-badge-humidifier.ts
@@ -1,11 +1,14 @@
-import { html, nothing } from "lit";
-import { styleMap } from "lit/directives/style-map";
-import { stateColorCss } from "../../../../../common/entity/state_color";
+import type { HumidifierEntity } from "../../../../../data/humidifier";
+import type { RenderBadgeFunction } from "./tile-badge";
+
import "../../../../../components/ha-attribute-icon";
import "../../../../../components/tile/ha-tile-badge";
-import type { HumidifierEntity } from "../../../../../data/humidifier";
+
+import { html, nothing } from "lit";
+import { styleMap } from "lit/directives/style-map";
+
+import { stateColorCss } from "../../../../../common/entity/state_color";
import { HUMIDIFIER_ACTION_MODE } from "../../../../../data/humidifier";
-import type { RenderBadgeFunction } from "./tile-badge";
export const renderHumidifierBadge: RenderBadgeFunction = (stateObj, hass) => {
const action = (stateObj as HumidifierEntity).attributes.action;
diff --git a/src/panels/lovelace/cards/tile/badges/tile-badge-person.ts b/src/panels/lovelace/cards/tile/badges/tile-badge-person.ts
index d36ebbe473..b781e0346a 100644
--- a/src/panels/lovelace/cards/tile/badges/tile-badge-person.ts
+++ b/src/panels/lovelace/cards/tile/badges/tile-badge-person.ts
@@ -1,13 +1,16 @@
-import { mdiHome, mdiHomeExportOutline } from "@mdi/js";
+import type { HomeAssistant } from "../../../../../types";
+import type { RenderBadgeFunction } from "./tile-badge";
import type { HassEntity } from "home-assistant-js-websocket";
-import { html } from "lit";
-import { styleMap } from "lit/directives/style-map";
-import { stateColorCss } from "../../../../../common/entity/state_color";
+
import "../../../../../components/ha-icon";
import "../../../../../components/ha-svg-icon";
import "../../../../../components/tile/ha-tile-badge";
-import type { HomeAssistant } from "../../../../../types";
-import type { RenderBadgeFunction } from "./tile-badge";
+
+import { mdiHome, mdiHomeExportOutline } from "@mdi/js";
+import { html } from "lit";
+import { styleMap } from "lit/directives/style-map";
+
+import { stateColorCss } from "../../../../../common/entity/state_color";
function getZone(entity: HassEntity, hass: HomeAssistant) {
const state = entity.state;
diff --git a/src/panels/lovelace/cards/tile/badges/tile-badge.ts b/src/panels/lovelace/cards/tile/badges/tile-badge.ts
index f4e2c152b3..ac168d25cd 100644
--- a/src/panels/lovelace/cards/tile/badges/tile-badge.ts
+++ b/src/panels/lovelace/cards/tile/badges/tile-badge.ts
@@ -1,16 +1,19 @@
-import { mdiExclamationThick } from "@mdi/js";
+import type { HomeAssistant } from "../../../../../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { TemplateResult } from "lit";
+
+import "../../../../../components/ha-svg-icon";
+import "../../../../../components/tile/ha-tile-badge";
+
+import { mdiExclamationThick } from "@mdi/js";
import { html, nothing } from "lit";
import { styleMap } from "lit/directives/style-map";
+
import { computeDomain } from "../../../../../common/entity/compute_domain";
import { UNAVAILABLE, UNKNOWN } from "../../../../../data/entity";
-import type { HomeAssistant } from "../../../../../types";
import { renderClimateBadge } from "./tile-badge-climate";
import { renderHumidifierBadge } from "./tile-badge-humidifier";
import { renderPersonBadge } from "./tile-badge-person";
-import "../../../../../components/tile/ha-tile-badge";
-import "../../../../../components/ha-svg-icon";
export type RenderBadgeFunction = (
stateObj: HassEntity,
diff --git a/src/panels/lovelace/cards/types.ts b/src/panels/lovelace/cards/types.ts
index 30227b5fe3..66d5f5795a 100644
--- a/src/panels/lovelace/cards/types.ts
+++ b/src/panels/lovelace/cards/types.ts
@@ -1,8 +1,8 @@
-import type { HassServiceTarget } from "home-assistant-js-websocket";
import type { HaDurationData } from "../../../components/ha-duration-input";
import type { ActionConfig } from "../../../data/lovelace/config/action";
import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
import type { Statistic, StatisticType } from "../../../data/recorder";
+import type { TimeFormat } from "../../../data/translation";
import type { ForecastType } from "../../../data/weather";
import type {
FullCalendarView,
@@ -22,7 +22,7 @@ import type {
} from "../entity-rows/types";
import type { LovelaceHeaderFooterConfig } from "../header-footer/types";
import type { LovelaceHeadingBadgeConfig } from "../heading-badges/types";
-import type { TimeFormat } from "../../../data/translation";
+import type { HassServiceTarget } from "home-assistant-js-websocket";
export type AlarmPanelCardConfigState =
| "arm_away"
diff --git a/src/panels/lovelace/common/check-lovelace-config.ts b/src/panels/lovelace/common/check-lovelace-config.ts
index 5a79916bda..fba09a3b27 100644
--- a/src/panels/lovelace/common/check-lovelace-config.ts
+++ b/src/panels/lovelace/common/check-lovelace-config.ts
@@ -1,8 +1,9 @@
import type { LovelaceSectionRawConfig } from "../../../data/lovelace/config/section";
-import { isStrategySection } from "../../../data/lovelace/config/section";
import type { LovelaceRawConfig } from "../../../data/lovelace/config/types";
-import { isStrategyDashboard } from "../../../data/lovelace/config/types";
import type { LovelaceViewRawConfig } from "../../../data/lovelace/config/view";
+
+import { isStrategySection } from "../../../data/lovelace/config/section";
+import { isStrategyDashboard } from "../../../data/lovelace/config/types";
import { isStrategyView } from "../../../data/lovelace/config/view";
export const checkLovelaceConfig = (
diff --git a/src/panels/lovelace/common/compute-card-grid-size.ts b/src/panels/lovelace/common/compute-card-grid-size.ts
index 0b8d49f17d..11270f4efa 100644
--- a/src/panels/lovelace/common/compute-card-grid-size.ts
+++ b/src/panels/lovelace/common/compute-card-grid-size.ts
@@ -1,6 +1,7 @@
-import { conditionalClamp } from "../../../common/number/clamp";
import type { LovelaceGridOptions, LovelaceLayoutOptions } from "../types";
+import { conditionalClamp } from "../../../common/number/clamp";
+
export const GRID_COLUMN_MULTIPLIER = 3;
const multiplyBy = (
diff --git a/src/panels/lovelace/common/compute-card-size.ts b/src/panels/lovelace/common/compute-card-size.ts
index 193618900c..09aa069cd0 100644
--- a/src/panels/lovelace/common/compute-card-size.ts
+++ b/src/panels/lovelace/common/compute-card-size.ts
@@ -1,7 +1,8 @@
-import { promiseTimeout } from "../../../common/util/promise-timeout";
import type { HuiCard } from "../cards/hui-card";
import type { LovelaceCard, LovelaceHeaderFooter } from "../types";
+import { promiseTimeout } from "../../../common/util/promise-timeout";
+
export const computeCardSize = (
card: LovelaceCard | LovelaceHeaderFooter | HuiCard
): number | Promise => {
diff --git a/src/panels/lovelace/common/compute-tooltip.ts b/src/panels/lovelace/common/compute-tooltip.ts
index 6f758a046e..ee3f54316d 100644
--- a/src/panels/lovelace/common/compute-tooltip.ts
+++ b/src/panels/lovelace/common/compute-tooltip.ts
@@ -1,7 +1,8 @@
-import { computeStateName } from "../../../common/entity/compute_state_name";
import type { ActionConfig } from "../../../data/lovelace/config/action";
import type { HomeAssistant } from "../../../types";
+import { computeStateName } from "../../../common/entity/compute_state_name";
+
interface Config {
entity?: string;
title?: string;
diff --git a/src/panels/lovelace/common/confirm-action.ts b/src/panels/lovelace/common/confirm-action.ts
index 98762159db..ad7eafb22c 100644
--- a/src/panels/lovelace/common/confirm-action.ts
+++ b/src/panels/lovelace/common/confirm-action.ts
@@ -1,7 +1,8 @@
import type { ConfirmationRestrictionConfig } from "../../../data/lovelace/config/action";
-import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box";
import type { HomeAssistant } from "../../../types";
+import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box";
+
export const confirmAction = async (
node: HTMLElement,
hass: HomeAssistant,
diff --git a/src/panels/lovelace/common/directives/action-handler-directive.ts b/src/panels/lovelace/common/directives/action-handler-directive.ts
index 2b4fff7c92..e5640643df 100644
--- a/src/panels/lovelace/common/directives/action-handler-directive.ts
+++ b/src/panels/lovelace/common/directives/action-handler-directive.ts
@@ -1,13 +1,15 @@
/* eslint-disable max-classes-per-file */
-import { noChange } from "lit";
-import type { AttributePart, DirectiveParameters } from "lit/directive";
-import { directive, Directive } from "lit/directive";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { deepEqual } from "../../../../common/util/deep-equal";
import type {
ActionHandlerDetail,
ActionHandlerOptions,
} from "../../../../data/lovelace/action_handler";
+import type { AttributePart, DirectiveParameters } from "lit/directive";
+
+import { noChange } from "lit";
+import { directive, Directive } from "lit/directive";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { deepEqual } from "../../../../common/util/deep-equal";
import { isTouch } from "../../../../util/is_touch";
interface ActionHandlerType extends HTMLElement {
diff --git a/src/panels/lovelace/common/entity/toggle-entity.ts b/src/panels/lovelace/common/entity/toggle-entity.ts
index 7220c769f1..dcc8b563d0 100644
--- a/src/panels/lovelace/common/entity/toggle-entity.ts
+++ b/src/panels/lovelace/common/entity/toggle-entity.ts
@@ -1,5 +1,6 @@
-import { STATES_OFF } from "../../../../common/const";
import type { HomeAssistant, ServiceCallResponse } from "../../../../types";
+
+import { STATES_OFF } from "../../../../common/const";
import { turnOnOffEntity } from "./turn-on-off-entity";
export const toggleEntity = (
diff --git a/src/panels/lovelace/common/entity/turn-on-off-entities.ts b/src/panels/lovelace/common/entity/turn-on-off-entities.ts
index 709190eea8..116187bfef 100644
--- a/src/panels/lovelace/common/entity/turn-on-off-entities.ts
+++ b/src/panels/lovelace/common/entity/turn-on-off-entities.ts
@@ -1,6 +1,7 @@
+import type { HomeAssistant } from "../../../../types";
+
import { STATES_OFF } from "../../../../common/const";
import { computeDomain } from "../../../../common/entity/compute_domain";
-import type { HomeAssistant } from "../../../../types";
export const turnOnOffEntities = (
hass: HomeAssistant,
diff --git a/src/panels/lovelace/common/entity/turn-on-off-entity.ts b/src/panels/lovelace/common/entity/turn-on-off-entity.ts
index 7c4909000c..d0bdbd5cca 100644
--- a/src/panels/lovelace/common/entity/turn-on-off-entity.ts
+++ b/src/panels/lovelace/common/entity/turn-on-off-entity.ts
@@ -1,6 +1,7 @@
-import { computeDomain } from "../../../../common/entity/compute_domain";
import type { HomeAssistant, ServiceCallResponse } from "../../../../types";
+import { computeDomain } from "../../../../common/entity/compute_domain";
+
export const turnOnOffEntity = (
hass: HomeAssistant,
entityId: string,
diff --git a/src/panels/lovelace/common/find-entities.ts b/src/panels/lovelace/common/find-entities.ts
index 8901ba4bb1..de46cce2cb 100644
--- a/src/panels/lovelace/common/find-entities.ts
+++ b/src/panels/lovelace/common/find-entities.ts
@@ -1,6 +1,7 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import { computeDomain } from "../../../common/entity/compute_domain";
import type { HomeAssistant } from "../../../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+
+import { computeDomain } from "../../../common/entity/compute_domain";
const arrayFilter = (
array: any[],
diff --git a/src/panels/lovelace/common/generate-lovelace-config.ts b/src/panels/lovelace/common/generate-lovelace-config.ts
index 8e373cf384..34fe2e2c60 100644
--- a/src/panels/lovelace/common/generate-lovelace-config.ts
+++ b/src/panels/lovelace/common/generate-lovelace-config.ts
@@ -1,25 +1,15 @@
-import type { HassEntities, HassEntity } from "home-assistant-js-websocket";
-import { SENSOR_ENTITIES, ASSIST_ENTITIES } from "../../../common/const";
-import { computeDomain } from "../../../common/entity/compute_domain";
-import { computeStateDomain } from "../../../common/entity/compute_state_domain";
-import { computeStateName } from "../../../common/entity/compute_state_name";
-import { splitByGroups } from "../../../common/entity/split_by_groups";
-import { stripPrefixFromEntityName } from "../../../common/entity/strip_prefix_from_entity_name";
-import { stringCompare } from "../../../common/string/compare";
import type { LocalizeFunc } from "../../../common/translations/localize";
import type { AreasDisplayValue } from "../../../components/ha-areas-display-editor";
-import { areaCompare } from "../../../data/area_registry";
import type {
EnergyPreferences,
GridSourceTypeEnergyPreference,
} from "../../../data/energy";
-import { domainToName } from "../../../data/integration";
+import type { LovelaceBadgeConfig } from "../../../data/lovelace/config/badge";
import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
import type { LovelaceSectionConfig } from "../../../data/lovelace/config/section";
import type { LovelaceViewConfig } from "../../../data/lovelace/config/view";
-import { computeUserInitials } from "../../../data/user";
import type { HomeAssistant } from "../../../types";
-import { HELPER_DOMAINS } from "../../config/helpers/const";
+import type { EntityBadgeConfig } from "../badges/types";
import type {
AlarmPanelCardConfig,
EntitiesCardConfig,
@@ -31,8 +21,19 @@ import type {
} from "../cards/types";
import type { EntityConfig } from "../entity-rows/types";
import type { ButtonsHeaderFooterConfig } from "../header-footer/types";
-import type { LovelaceBadgeConfig } from "../../../data/lovelace/config/badge";
-import type { EntityBadgeConfig } from "../badges/types";
+import type { HassEntities, HassEntity } from "home-assistant-js-websocket";
+
+import { SENSOR_ENTITIES, ASSIST_ENTITIES } from "../../../common/const";
+import { computeDomain } from "../../../common/entity/compute_domain";
+import { computeStateDomain } from "../../../common/entity/compute_state_domain";
+import { computeStateName } from "../../../common/entity/compute_state_name";
+import { splitByGroups } from "../../../common/entity/split_by_groups";
+import { stripPrefixFromEntityName } from "../../../common/entity/strip_prefix_from_entity_name";
+import { stringCompare } from "../../../common/string/compare";
+import { areaCompare } from "../../../data/area_registry";
+import { domainToName } from "../../../data/integration";
+import { computeUserInitials } from "../../../data/user";
+import { HELPER_DOMAINS } from "../../config/helpers/const";
const HIDE_DOMAIN = new Set([
"automation",
diff --git a/src/panels/lovelace/common/graph/coordinates.ts b/src/panels/lovelace/common/graph/coordinates.ts
index 39f2fb7960..754e333d31 100644
--- a/src/panels/lovelace/common/graph/coordinates.ts
+++ b/src/panels/lovelace/common/graph/coordinates.ts
@@ -1,6 +1,7 @@
-import { strokeWidth } from "../../../../data/graph";
import type { EntityHistoryState } from "../../../../data/history";
+import { strokeWidth } from "../../../../data/graph";
+
const average = (items: any[]): number =>
items.reduce((sum, entry) => sum + parseFloat(entry.state), 0) / items.length;
diff --git a/src/panels/lovelace/common/handle-action.ts b/src/panels/lovelace/common/handle-action.ts
index 7434f75f5d..9f275f0869 100644
--- a/src/panels/lovelace/common/handle-action.ts
+++ b/src/panels/lovelace/common/handle-action.ts
@@ -1,11 +1,12 @@
+import type { ActionConfig } from "../../../data/lovelace/config/action";
+import type { HomeAssistant } from "../../../types";
+
import { fireEvent } from "../../../common/dom/fire_event";
import { navigate } from "../../../common/navigate";
import { forwardHaptic } from "../../../data/haptics";
import { domainToName } from "../../../data/integration";
-import type { ActionConfig } from "../../../data/lovelace/config/action";
import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box";
import { showVoiceCommandDialog } from "../../../dialogs/voice-command-dialog/show-ha-voice-command-dialog";
-import type { HomeAssistant } from "../../../types";
import { showToast } from "../../../util/toast";
import { toggleEntity } from "./entity/toggle-entity";
diff --git a/src/panels/lovelace/common/has-changed.ts b/src/panels/lovelace/common/has-changed.ts
index 8f3005f6b1..b443ac28cb 100644
--- a/src/panels/lovelace/common/has-changed.ts
+++ b/src/panels/lovelace/common/has-changed.ts
@@ -1,7 +1,8 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
import type { EntityRegistryDisplayEntry } from "../../../data/entity_registry";
import type { HomeAssistant } from "../../../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+import type { PropertyValues } from "lit";
+
import { processConfigEntities } from "./process-config-entities";
export function hasConfigChanged(
diff --git a/src/panels/lovelace/common/icon-condition.ts b/src/panels/lovelace/common/icon-condition.ts
index 12341d69c5..f1bbc9a0d8 100644
--- a/src/panels/lovelace/common/icon-condition.ts
+++ b/src/panels/lovelace/common/icon-condition.ts
@@ -1,3 +1,5 @@
+import type { Condition } from "./validate-condition";
+
import {
mdiAccount,
mdiAmpersand,
@@ -6,7 +8,6 @@ import {
mdiResponsive,
mdiStateMachine,
} from "@mdi/js";
-import type { Condition } from "./validate-condition";
export const ICON_CONDITION: Record = {
numeric_state: mdiNumeric,
diff --git a/src/panels/lovelace/common/load-resources.ts b/src/panels/lovelace/common/load-resources.ts
index 7fcd856588..3750d2b96e 100644
--- a/src/panels/lovelace/common/load-resources.ts
+++ b/src/panels/lovelace/common/load-resources.ts
@@ -1,7 +1,8 @@
-import { loadCSS, loadJS, loadModule } from "../../../common/dom/load_resource";
import type { LovelaceResource } from "../../../data/lovelace/resource";
import type { HomeAssistant } from "../../../types";
+import { loadCSS, loadJS, loadModule } from "../../../common/dom/load_resource";
+
// CSS and JS should only be imported once. Modules and HTML are safe.
const CSS_CACHE = {};
const JS_CACHE = {};
diff --git a/src/panels/lovelace/common/process-config-entities.ts b/src/panels/lovelace/common/process-config-entities.ts
index c51e28ebf8..e128b6d426 100644
--- a/src/panels/lovelace/common/process-config-entities.ts
+++ b/src/panels/lovelace/common/process-config-entities.ts
@@ -1,6 +1,7 @@
+import type { EntityConfig, LovelaceRowConfig } from "../entity-rows/types";
+
// Parse array of entity objects from config
import { isValidEntityId } from "../../../common/entity/valid_entity_id";
-import type { EntityConfig, LovelaceRowConfig } from "../entity-rows/types";
export const processConfigEntities = <
T extends EntityConfig | LovelaceRowConfig,
diff --git a/src/panels/lovelace/common/validate-condition.ts b/src/panels/lovelace/common/validate-condition.ts
index c71ca4ea68..b05f5f5e8c 100644
--- a/src/panels/lovelace/common/validate-condition.ts
+++ b/src/panels/lovelace/common/validate-condition.ts
@@ -1,9 +1,10 @@
-import { ensureArray } from "../../../common/array/ensure-array";
import type { MediaQueriesListener } from "../../../common/dom/media_query";
+import type { HomeAssistant } from "../../../types";
+
+import { ensureArray } from "../../../common/array/ensure-array";
import { listenMediaQuery } from "../../../common/dom/media_query";
import { isValidEntityId } from "../../../common/entity/valid_entity_id";
import { UNKNOWN } from "../../../data/entity";
-import type { HomeAssistant } from "../../../types";
export type Condition =
| NumericStateCondition
diff --git a/src/panels/lovelace/components/hui-action-editor.ts b/src/panels/lovelace/components/hui-action-editor.ts
index cd1f466840..fd4ad4b17c 100644
--- a/src/panels/lovelace/components/hui-action-editor.ts
+++ b/src/panels/lovelace/components/hui-action-editor.ts
@@ -1,17 +1,8 @@
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, query } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { stopPropagation } from "../../../common/dom/stop_propagation";
-import "../../../components/ha-assist-pipeline-picker";
import type {
HaFormSchema,
SchemaUnion,
} from "../../../components/ha-form/types";
-import "../../../components/ha-help-tooltip";
-import "../../../components/ha-navigation-picker";
-import "../../../components/ha-service-control";
+import type { HaSelect } from "../../../components/ha-select";
import type {
ActionConfig,
CallServiceActionConfig,
@@ -21,7 +12,19 @@ import type {
import type { ServiceAction } from "../../../data/script";
import type { HomeAssistant } from "../../../types";
import type { EditorTarget } from "../editor/types";
-import type { HaSelect } from "../../../components/ha-select";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-assist-pipeline-picker";
+import "../../../components/ha-help-tooltip";
+import "../../../components/ha-navigation-picker";
+import "../../../components/ha-service-control";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, query } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { stopPropagation } from "../../../common/dom/stop_propagation";
export type UiAction = Exclude;
diff --git a/src/panels/lovelace/components/hui-badge-edit-mode.ts b/src/panels/lovelace/components/hui-badge-edit-mode.ts
index c765b3e8a5..25a480ca2e 100644
--- a/src/panels/lovelace/components/hui-badge-edit-mode.ts
+++ b/src/panels/lovelace/components/hui-badge-edit-mode.ts
@@ -1,4 +1,15 @@
+import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardPath } from "../editor/lovelace-path";
+import type { Lovelace } from "../types";
import type { ActionDetail } from "@material/mwc-list/mwc-list-foundation";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../components/ha-button-menu";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-list-item";
+import "../../../components/ha-svg-icon";
+
import {
mdiContentCopy,
mdiContentCut,
@@ -8,28 +19,20 @@ import {
mdiPlusCircleMultipleOutline,
} from "@mdi/js";
import deepClone from "deep-clone-simple";
-import type { CSSResultGroup, TemplateResult } from "lit";
import { LitElement, css, html } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { storage } from "../../../common/decorators/storage";
import { fireEvent } from "../../../common/dom/fire_event";
-import "../../../components/ha-button-menu";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-list-item";
-import "../../../components/ha-svg-icon";
import { ensureBadgeConfig } from "../../../data/lovelace/config/badge";
-import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { showEditBadgeDialog } from "../editor/badge-editor/show-edit-badge-dialog";
-import type { LovelaceCardPath } from "../editor/lovelace-path";
import {
findLovelaceItems,
getLovelaceContainerPath,
parseLovelaceCardPath,
} from "../editor/lovelace-path";
-import type { Lovelace } from "../types";
@customElement("hui-badge-edit-mode")
export class HuiBadgeEditMode extends LitElement {
diff --git a/src/panels/lovelace/components/hui-buttons-base.ts b/src/panels/lovelace/components/hui-buttons-base.ts
index 202f8a1949..7ebdfdeab2 100644
--- a/src/panels/lovelace/components/hui-buttons-base.ts
+++ b/src/panels/lovelace/components/hui-buttons-base.ts
@@ -1,18 +1,21 @@
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, state, property } from "lit/decorators";
-import { computeStateName } from "../../../common/entity/compute_state_name";
-import "../../../components/entity/state-badge";
import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
import type { HomeAssistant } from "../../../types";
import type { EntitiesCardEntityConfig } from "../cards/types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../components/chips/ha-assist-chip";
+import "../../../components/chips/ha-chip-set";
+import "../../../components/entity/state-badge";
+
+import { css, html, LitElement } from "lit";
+import { customElement, state, property } from "lit/decorators";
+
+import { computeStateName } from "../../../common/entity/compute_state_name";
+import { haStyleScrollbar } from "../../../resources/styles";
import { computeTooltip } from "../common/compute-tooltip";
import { actionHandler } from "../common/directives/action-handler-directive";
import { handleAction } from "../common/handle-action";
import { hasAction } from "../common/has-action";
-import "../../../components/chips/ha-assist-chip";
-import "../../../components/chips/ha-chip-set";
-import { haStyleScrollbar } from "../../../resources/styles";
@customElement("hui-buttons-base")
export class HuiButtonsBase extends LitElement {
diff --git a/src/panels/lovelace/components/hui-card-edit-mode.ts b/src/panels/lovelace/components/hui-card-edit-mode.ts
index 0711cf5849..8d3547a65d 100644
--- a/src/panels/lovelace/components/hui-card-edit-mode.ts
+++ b/src/panels/lovelace/components/hui-card-edit-mode.ts
@@ -1,3 +1,13 @@
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceCardPath } from "../editor/lovelace-path";
+import type { Lovelace } from "../types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../../components/ha-button-menu";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-list-item";
+import "../../../components/ha-svg-icon";
+
import {
mdiContentCopy,
mdiContentCut,
@@ -7,19 +17,12 @@ import {
mdiPencil,
mdiPlusCircleMultipleOutline,
} from "@mdi/js";
-import type { CSSResultGroup, TemplateResult } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { fireEvent } from "../../../common/dom/fire_event";
-import "../../../components/ha-button-menu";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-list-item";
-import "../../../components/ha-svg-icon";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceCardPath } from "../editor/lovelace-path";
-import type { Lovelace } from "../types";
@customElement("hui-card-edit-mode")
export class HuiCardEditMode extends LitElement {
diff --git a/src/panels/lovelace/components/hui-card-options.ts b/src/panels/lovelace/components/hui-card-options.ts
index 3f3f1a91ad..9ca2214942 100644
--- a/src/panels/lovelace/components/hui-card-options.ts
+++ b/src/panels/lovelace/components/hui-card-options.ts
@@ -1,5 +1,15 @@
-import "@material/mwc-button";
+import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
+import type { HomeAssistant } from "../../../types";
+import type { Lovelace, LovelaceCard } from "../types";
import type { ActionDetail } from "@material/mwc-list/mwc-list-foundation";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/ha-button-menu";
+import "../../../components/ha-card";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-list-item";
+import "@material/mwc-button";
+
import {
mdiContentCopy,
mdiContentCut,
@@ -10,16 +20,11 @@ import {
mdiPlus,
mdiPlusCircleMultipleOutline,
} from "@mdi/js";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, queryAssignedNodes } from "lit/decorators";
+
import { storage } from "../../../common/decorators/storage";
import { fireEvent } from "../../../common/dom/fire_event";
-import "../../../components/ha-button-menu";
-import "../../../components/ha-card";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-list-item";
-import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
import { saveConfig } from "../../../data/lovelace/config/types";
import { isStrategyView } from "../../../data/lovelace/config/view";
import {
@@ -27,7 +32,6 @@ import {
showPromptDialog,
} from "../../../dialogs/generic/show-dialog-box";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { computeCardSize } from "../common/compute-card-size";
import {
addCard,
@@ -43,7 +47,6 @@ import {
parseLovelaceCardPath,
} from "../editor/lovelace-path";
import { showSelectViewDialog } from "../editor/select-view/show-select-view-dialog";
-import type { Lovelace, LovelaceCard } from "../types";
@customElement("hui-card-options")
export class HuiCardOptions extends LitElement {
diff --git a/src/panels/lovelace/components/hui-conditional-base.ts b/src/panels/lovelace/components/hui-conditional-base.ts
index 0d5249ee06..567f13dbcf 100644
--- a/src/panels/lovelace/components/hui-conditional-base.ts
+++ b/src/panels/lovelace/components/hui-conditional-base.ts
@@ -1,19 +1,21 @@
-import type { PropertyValues } from "lit";
-import { ReactiveElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
import type { MediaQueriesListener } from "../../../common/dom/media_query";
-import { deepEqual } from "../../../common/util/deep-equal";
import type { HomeAssistant } from "../../../types";
import type { HuiCard } from "../cards/hui-card";
import type { ConditionalCardConfig } from "../cards/types";
import type { Condition } from "../common/validate-condition";
+import type { ConditionalRowConfig, LovelaceRow } from "../entity-rows/types";
+import type { PropertyValues } from "lit";
+
+import { ReactiveElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { deepEqual } from "../../../common/util/deep-equal";
import {
attachConditionMediaQueriesListeners,
checkConditionsMet,
extractMediaQueries,
validateConditionalConfig,
} from "../common/validate-condition";
-import type { ConditionalRowConfig, LovelaceRow } from "../entity-rows/types";
declare global {
interface HASSDomEvents {
diff --git a/src/panels/lovelace/components/hui-energy-period-selector.ts b/src/panels/lovelace/components/hui-energy-period-selector.ts
index 08f136e088..6fea77e555 100644
--- a/src/panels/lovelace/components/hui-energy-period-selector.ts
+++ b/src/panels/lovelace/components/hui-energy-period-selector.ts
@@ -1,5 +1,18 @@
-import "@material/mwc-button/mwc-button";
+import type { DateRange } from "../../../common/datetime/calc_date_range";
+import type { DateRangePickerRanges } from "../../../components/ha-date-range-picker";
+import type { EnergyData } from "../../../data/energy";
+import type { HomeAssistant } from "../../../types";
import type { RequestSelectedDetail } from "@material/mwc-list/mwc-list-item";
+import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-button-menu";
+import "../../../components/ha-check-list-item";
+import "../../../components/ha-date-range-picker";
+import "../../../components/ha-icon-button-next";
+import "../../../components/ha-icon-button-prev";
+import "@material/mwc-button/mwc-button";
+
import { mdiDotsVertical } from "@mdi/js";
import {
differenceInDays,
@@ -13,17 +26,17 @@ import {
startOfWeek,
subDays,
} from "date-fns";
-import type { UnsubscribeFunc } from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import {
calcDate,
calcDateProperty,
calcDateDifferenceProperty,
shiftDateRange,
} from "../../../common/datetime/calc_date";
+import { calcDateRange } from "../../../common/datetime/calc_date_range";
import { firstWeekdayIndex } from "../../../common/datetime/first_weekday";
import {
formatDate,
@@ -33,18 +46,8 @@ import {
formatDateYear,
} from "../../../common/datetime/format_date";
import { debounce } from "../../../common/util/debounce";
-import "../../../components/ha-button-menu";
-import "../../../components/ha-check-list-item";
-import "../../../components/ha-date-range-picker";
-import type { DateRangePickerRanges } from "../../../components/ha-date-range-picker";
-import "../../../components/ha-icon-button-next";
-import "../../../components/ha-icon-button-prev";
-import type { EnergyData } from "../../../data/energy";
import { getEnergyDataCollection } from "../../../data/energy";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
-import type { HomeAssistant } from "../../../types";
-import { calcDateRange } from "../../../common/datetime/calc_date_range";
-import type { DateRange } from "../../../common/datetime/calc_date_range";
const RANGE_KEYS: DateRange[] = [
"today",
diff --git a/src/panels/lovelace/components/hui-entities-toggle.ts b/src/panels/lovelace/components/hui-entities-toggle.ts
index 76a2758698..31fe0fbc42 100644
--- a/src/panels/lovelace/components/hui-entities-toggle.ts
+++ b/src/panels/lovelace/components/hui-entities-toggle.ts
@@ -1,11 +1,14 @@
+import type { HaSwitch } from "../../../components/ha-switch";
+import type { HomeAssistant } from "../../../types";
import type { PropertyValues } from "lit";
+
+import "../../../components/ha-switch";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { DOMAINS_TOGGLE } from "../../../common/const";
-import "../../../components/ha-switch";
-import type { HaSwitch } from "../../../components/ha-switch";
import { forwardHaptic } from "../../../data/haptics";
-import type { HomeAssistant } from "../../../types";
import { turnOnOffEntities } from "../common/entity/turn-on-off-entities";
@customElement("hui-entities-toggle")
diff --git a/src/panels/lovelace/components/hui-entity-editor.ts b/src/panels/lovelace/components/hui-entity-editor.ts
index 7e77ffa041..05fb12079e 100644
--- a/src/panels/lovelace/components/hui-entity-editor.ts
+++ b/src/panels/lovelace/components/hui-entity-editor.ts
@@ -1,18 +1,21 @@
-import { mdiDrag } from "@mdi/js";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import { repeat } from "lit/directives/repeat";
-import { fireEvent } from "../../../common/dom/fire_event";
-import "../../../components/entity/ha-entity-picker";
import type {
HaEntityPicker,
HaEntityPickerEntityFilterFunc,
} from "../../../components/entity/ha-entity-picker";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-sortable";
import type { HomeAssistant } from "../../../types";
import type { EntityConfig } from "../entity-rows/types";
+import "../../../components/entity/ha-entity-picker";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-sortable";
+
+import { mdiDrag } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+import { repeat } from "lit/directives/repeat";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+
@customElement("hui-entity-editor")
export class HuiEntityEditor extends LitElement {
@property({ attribute: false }) public hass?: HomeAssistant;
diff --git a/src/panels/lovelace/components/hui-generic-entity-row.ts b/src/panels/lovelace/components/hui-generic-entity-row.ts
index 441126240d..b11e5785d8 100644
--- a/src/panels/lovelace/components/hui-generic-entity-row.ts
+++ b/src/panels/lovelace/components/hui-generic-entity-row.ts
@@ -1,17 +1,20 @@
+import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
+import type { HomeAssistant } from "../../../types";
+import type { EntitiesCardEntityConfig } from "../cards/types";
import type { PropertyValues } from "lit";
+
+import "../../../components/entity/state-badge";
+import "../../../components/ha-relative-time";
+
import { LitElement, css, html, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { ifDefined } from "lit/directives/if-defined";
+
import { DOMAINS_INPUT_ROW } from "../../../common/const";
import { toggleAttribute } from "../../../common/dom/toggle_attribute";
import { computeDomain } from "../../../common/entity/compute_domain";
import { computeStateName } from "../../../common/entity/compute_state_name";
-import "../../../components/entity/state-badge";
-import "../../../components/ha-relative-time";
-import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
-import type { HomeAssistant } from "../../../types";
-import type { EntitiesCardEntityConfig } from "../cards/types";
import { actionHandler } from "../common/directives/action-handler-directive";
import { handleAction } from "../common/handle-action";
import { hasAction, hasAnyAction } from "../common/has-action";
diff --git a/src/panels/lovelace/components/hui-graph-base.ts b/src/panels/lovelace/components/hui-graph-base.ts
index e82f9e8548..40e5b1bdb2 100644
--- a/src/panels/lovelace/components/hui-graph-base.ts
+++ b/src/panels/lovelace/components/hui-graph-base.ts
@@ -1,6 +1,8 @@
import type { PropertyValues, TemplateResult } from "lit";
+
import { css, html, LitElement, svg } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { strokeWidth } from "../../../data/graph";
import { getPath } from "../common/graph/get-path";
diff --git a/src/panels/lovelace/components/hui-image.ts b/src/panels/lovelace/components/hui-image.ts
index 1cf23eb329..c5045252b1 100644
--- a/src/panels/lovelace/components/hui-image.ts
+++ b/src/panels/lovelace/components/hui-image.ts
@@ -1,20 +1,23 @@
+import type { HaCameraStream } from "../../../components/ha-camera-stream";
+import type { CameraEntity } from "../../../data/camera";
+import type { ImageEntity } from "../../../data/image";
+import type { HomeAssistant } from "../../../types";
import type { PropertyValues } from "lit";
+
+import "../../../components/ha-camera-stream";
+import "../../../components/ha-spinner";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { styleMap } from "lit/directives/style-map";
+
import { STATES_OFF } from "../../../common/const";
import { computeDomain } from "../../../common/entity/compute_domain";
import parseAspectRatio from "../../../common/util/parse-aspect-ratio";
-import "../../../components/ha-camera-stream";
-import type { HaCameraStream } from "../../../components/ha-camera-stream";
-import "../../../components/ha-spinner";
-import type { CameraEntity } from "../../../data/camera";
import { fetchThumbnailUrlWithCache } from "../../../data/camera";
import { UNAVAILABLE } from "../../../data/entity";
-import type { ImageEntity } from "../../../data/image";
import { computeImageUrl } from "../../../data/image";
-import type { HomeAssistant } from "../../../types";
const UPDATE_INTERVAL = 10000;
const DEFAULT_FILTER = "grayscale(100%)";
diff --git a/src/panels/lovelace/components/hui-marquee.ts b/src/panels/lovelace/components/hui-marquee.ts
index 4cf37569f9..8df5b96813 100644
--- a/src/panels/lovelace/components/hui-marquee.ts
+++ b/src/panels/lovelace/components/hui-marquee.ts
@@ -1,4 +1,5 @@
import type { PropertyValues } from "lit";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
diff --git a/src/panels/lovelace/components/hui-timestamp-display.ts b/src/panels/lovelace/components/hui-timestamp-display.ts
index cc7ed22f47..7b014064a2 100644
--- a/src/panels/lovelace/components/hui-timestamp-display.ts
+++ b/src/panels/lovelace/components/hui-timestamp-display.ts
@@ -1,15 +1,17 @@
+import type { FrontendLocaleData } from "../../../data/translation";
+import type { HomeAssistant } from "../../../types";
+import type { TimestampRenderingFormat } from "./types";
import type { HassConfig } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { formatDate } from "../../../common/datetime/format_date";
import { formatDateTime } from "../../../common/datetime/format_date_time";
import { formatTime } from "../../../common/datetime/format_time";
import { relativeTime } from "../../../common/datetime/relative_time";
import { capitalizeFirstLetter } from "../../../common/string/capitalize-first-letter";
-import type { FrontendLocaleData } from "../../../data/translation";
-import type { HomeAssistant } from "../../../types";
-import type { TimestampRenderingFormat } from "./types";
const FORMATS: Record<
string,
diff --git a/src/panels/lovelace/components/hui-warning-element.ts b/src/panels/lovelace/components/hui-warning-element.ts
index b8a9e86097..7465adbee6 100644
--- a/src/panels/lovelace/components/hui-warning-element.ts
+++ b/src/panels/lovelace/components/hui-warning-element.ts
@@ -1,8 +1,10 @@
-import { mdiAlertOutline } from "@mdi/js";
import type { TemplateResult } from "lit";
+
+import "../../../components/ha-svg-icon";
+
+import { mdiAlertOutline } from "@mdi/js";
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
-import "../../../components/ha-svg-icon";
@customElement("hui-warning-element")
export class HuiWarningElement extends LitElement {
diff --git a/src/panels/lovelace/components/hui-warning.ts b/src/panels/lovelace/components/hui-warning.ts
index 3d464a0e6d..80edd7aae5 100644
--- a/src/panels/lovelace/components/hui-warning.ts
+++ b/src/panels/lovelace/components/hui-warning.ts
@@ -1,9 +1,11 @@
-import { STATE_NOT_RUNNING } from "home-assistant-js-websocket";
+import type { HomeAssistant } from "../../../types";
import type { TemplateResult } from "lit";
+
+import "../../../components/ha-alert";
+
+import { STATE_NOT_RUNNING } from "home-assistant-js-websocket";
import { html, LitElement } from "lit";
import { customElement } from "lit/decorators";
-import "../../../components/ha-alert";
-import type { HomeAssistant } from "../../../types";
export const createEntityNotFoundWarning = (
hass: HomeAssistant,
diff --git a/src/panels/lovelace/create-element/create-badge-element.ts b/src/panels/lovelace/create-element/create-badge-element.ts
index 15d7b45cdd..45963ad409 100644
--- a/src/panels/lovelace/create-element/create-badge-element.ts
+++ b/src/panels/lovelace/create-element/create-badge-element.ts
@@ -1,5 +1,7 @@
import type { LovelaceBadgeConfig } from "../../../data/lovelace/config/badge";
+
import "../badges/hui-entity-badge";
+
import {
createLovelaceElement,
getLovelaceElementClass,
diff --git a/src/panels/lovelace/create-element/create-card-element.ts b/src/panels/lovelace/create-element/create-card-element.ts
index 8a4920376f..a0cd863b89 100644
--- a/src/panels/lovelace/create-element/create-card-element.ts
+++ b/src/panels/lovelace/create-element/create-card-element.ts
@@ -1,16 +1,18 @@
import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
-import "../cards/hui-entity-card";
-import "../cards/hui-entities-card";
+
import "../cards/hui-button-card";
+import "../cards/hui-entities-card";
import "../cards/hui-entity-button-card";
+import "../cards/hui-entity-card";
import "../cards/hui-glance-card";
import "../cards/hui-grid-card";
+import "../cards/hui-heading-card";
import "../cards/hui-light-card";
import "../cards/hui-sensor-card";
import "../cards/hui-thermostat-card";
-import "../cards/hui-weather-forecast-card";
import "../cards/hui-tile-card";
-import "../cards/hui-heading-card";
+import "../cards/hui-weather-forecast-card";
+
import {
createLovelaceElement,
getLovelaceElementClass,
diff --git a/src/panels/lovelace/create-element/create-card-feature-element.ts b/src/panels/lovelace/create-element/create-card-feature-element.ts
index 31ce2eccd5..4938fc15b8 100644
--- a/src/panels/lovelace/create-element/create-card-feature-element.ts
+++ b/src/panels/lovelace/create-element/create-card-feature-element.ts
@@ -1,9 +1,11 @@
+import type { LovelaceCardFeatureConfig } from "../card-features/types";
+
import "../card-features/hui-alarm-modes-card-feature";
import "../card-features/hui-climate-fan-modes-card-feature";
-import "../card-features/hui-climate-swing-modes-card-feature";
-import "../card-features/hui-climate-swing-horizontal-modes-card-feature";
import "../card-features/hui-climate-hvac-modes-card-feature";
import "../card-features/hui-climate-preset-modes-card-feature";
+import "../card-features/hui-climate-swing-horizontal-modes-card-feature";
+import "../card-features/hui-climate-swing-modes-card-feature";
import "../card-features/hui-counter-actions-card-feature";
import "../card-features/hui-cover-open-close-card-feature";
import "../card-features/hui-cover-position-card-feature";
@@ -21,14 +23,13 @@ import "../card-features/hui-lock-open-door-card-feature";
import "../card-features/hui-media-player-volume-slider-card-feature";
import "../card-features/hui-numeric-input-card-feature";
import "../card-features/hui-select-options-card-feature";
-import "../card-features/hui-target-temperature-card-feature";
import "../card-features/hui-target-humidity-card-feature";
+import "../card-features/hui-target-temperature-card-feature";
import "../card-features/hui-toggle-card-feature";
import "../card-features/hui-update-actions-card-feature";
import "../card-features/hui-vacuum-commands-card-feature";
import "../card-features/hui-water-heater-operation-modes-card-feature";
-import type { LovelaceCardFeatureConfig } from "../card-features/types";
import {
createLovelaceElement,
getLovelaceElementClass,
diff --git a/src/panels/lovelace/create-element/create-element-base.ts b/src/panels/lovelace/create-element/create-element-base.ts
index d509c18a85..8dc75f5b93 100644
--- a/src/panels/lovelace/create-element/create-element-base.ts
+++ b/src/panels/lovelace/create-element/create-element-base.ts
@@ -1,4 +1,3 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type {
LovelaceSectionElement,
LovelaceViewElement,
@@ -7,10 +6,6 @@ import type { LovelaceBadgeConfig } from "../../../data/lovelace/config/badge";
import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
import type { LovelaceSectionConfig } from "../../../data/lovelace/config/section";
import type { LovelaceViewConfig } from "../../../data/lovelace/config/view";
-import {
- isCustomType,
- stripCustomPrefix,
-} from "../../../data/lovelace_custom_cards";
import type { LovelaceCardFeatureConfig } from "../card-features/types";
import type { ErrorCardConfig } from "../cards/types";
import type { LovelaceElement, LovelaceElementConfig } from "../elements/types";
@@ -32,6 +27,12 @@ import type {
LovelaceRowConstructor,
} from "../types";
+import { fireEvent } from "../../../common/dom/fire_event";
+import {
+ isCustomType,
+ stripCustomPrefix,
+} from "../../../data/lovelace_custom_cards";
+
const TIMEOUT = 2000;
interface CreateElementConfigTypes {
diff --git a/src/panels/lovelace/create-element/create-header-footer-element.ts b/src/panels/lovelace/create-element/create-header-footer-element.ts
index bb18e3373c..abdb3b754f 100644
--- a/src/panels/lovelace/create-element/create-header-footer-element.ts
+++ b/src/panels/lovelace/create-element/create-header-footer-element.ts
@@ -1,4 +1,5 @@
import type { LovelaceHeaderFooterConfig } from "../header-footer/types";
+
import {
createLovelaceElement,
getLovelaceElementClass,
diff --git a/src/panels/lovelace/create-element/create-heading-badge-element.ts b/src/panels/lovelace/create-element/create-heading-badge-element.ts
index 282359295a..4311f5a8ea 100644
--- a/src/panels/lovelace/create-element/create-heading-badge-element.ts
+++ b/src/panels/lovelace/create-element/create-heading-badge-element.ts
@@ -1,10 +1,11 @@
+import type { LovelaceHeadingBadgeConfig } from "../heading-badges/types";
+
import "../heading-badges/hui-entity-heading-badge";
import {
createLovelaceElement,
getLovelaceElementClass,
} from "./create-element-base";
-import type { LovelaceHeadingBadgeConfig } from "../heading-badges/types";
const ALWAYS_LOADED_TYPES = new Set(["error", "entity"]);
diff --git a/src/panels/lovelace/create-element/create-hui-element.ts b/src/panels/lovelace/create-element/create-hui-element.ts
index c2d1b40d67..458321605c 100644
--- a/src/panels/lovelace/create-element/create-hui-element.ts
+++ b/src/panels/lovelace/create-element/create-hui-element.ts
@@ -1,3 +1,5 @@
+import type { LovelaceElementConfig } from "../elements/types";
+
import "../elements/hui-conditional-element";
import "../elements/hui-icon-element";
import "../elements/hui-image-element";
@@ -5,7 +7,7 @@ import "../elements/hui-service-button-element";
import "../elements/hui-state-badge-element";
import "../elements/hui-state-icon-element";
import "../elements/hui-state-label-element";
-import type { LovelaceElementConfig } from "../elements/types";
+
import { createLovelaceElement } from "./create-element-base";
const ALWAYS_LOADED_TYPES = new Set([
diff --git a/src/panels/lovelace/create-element/create-picture-element.ts b/src/panels/lovelace/create-element/create-picture-element.ts
index d9c8ee268a..5347307fb2 100644
--- a/src/panels/lovelace/create-element/create-picture-element.ts
+++ b/src/panels/lovelace/create-element/create-picture-element.ts
@@ -1,3 +1,5 @@
+import type { LovelaceElementConfig } from "../elements/types";
+
import "../elements/hui-conditional-element";
import "../elements/hui-icon-element";
import "../elements/hui-image-element";
@@ -5,7 +7,7 @@ import "../elements/hui-service-button-element";
import "../elements/hui-state-badge-element";
import "../elements/hui-state-icon-element";
import "../elements/hui-state-label-element";
-import type { LovelaceElementConfig } from "../elements/types";
+
import {
createLovelaceElement,
getLovelaceElementClass,
diff --git a/src/panels/lovelace/create-element/create-row-element.ts b/src/panels/lovelace/create-element/create-row-element.ts
index 64ee313069..34ddd0f9ff 100644
--- a/src/panels/lovelace/create-element/create-row-element.ts
+++ b/src/panels/lovelace/create-element/create-row-element.ts
@@ -1,3 +1,5 @@
+import type { LovelaceRowConfig } from "../entity-rows/types";
+
import "../entity-rows/hui-event-entity-row";
import "../entity-rows/hui-media-player-entity-row";
import "../entity-rows/hui-scene-entity-row";
@@ -5,10 +7,10 @@ import "../entity-rows/hui-script-entity-row";
import "../entity-rows/hui-sensor-entity-row";
import "../entity-rows/hui-simple-entity-row";
import "../entity-rows/hui-toggle-entity-row";
-import type { LovelaceRowConfig } from "../entity-rows/types";
import "../special-rows/hui-attribute-row";
import "../special-rows/hui-button-row";
import "../special-rows/hui-call-service-row";
+
import {
createLovelaceElement,
getLovelaceElementClass,
diff --git a/src/panels/lovelace/create-element/create-section-element.ts b/src/panels/lovelace/create-element/create-section-element.ts
index bdfaca27fd..b59f4f9c9d 100644
--- a/src/panels/lovelace/create-element/create-section-element.ts
+++ b/src/panels/lovelace/create-element/create-section-element.ts
@@ -1,7 +1,9 @@
import type { LovelaceSectionElement } from "../../../data/lovelace";
import type { LovelaceSectionConfig } from "../../../data/lovelace/config/section";
import type { HuiErrorCard } from "../cards/hui-error-card";
+
import "../sections/hui-grid-section";
+
import { createLovelaceElement } from "./create-element-base";
const ALWAYS_LOADED_LAYOUTS = new Set(["grid"]);
diff --git a/src/panels/lovelace/create-element/create-view-element.ts b/src/panels/lovelace/create-element/create-view-element.ts
index d0b0edc668..98b191140f 100644
--- a/src/panels/lovelace/create-element/create-view-element.ts
+++ b/src/panels/lovelace/create-element/create-view-element.ts
@@ -1,7 +1,9 @@
import type { LovelaceViewElement } from "../../../data/lovelace";
import type { LovelaceViewConfig } from "../../../data/lovelace/config/view";
import type { HuiErrorCard } from "../cards/hui-error-card";
+
import "../views/hui-masonry-view";
+
import { createLovelaceElement } from "./create-element-base";
const ALWAYS_LOADED_LAYOUTS = new Set(["masonry"]);
diff --git a/src/panels/lovelace/editor/add-entities-to-view.ts b/src/panels/lovelace/editor/add-entities-to-view.ts
index 39b8d4152c..6152c7856c 100644
--- a/src/panels/lovelace/editor/add-entities-to-view.ts
+++ b/src/panels/lovelace/editor/add-entities-to-view.ts
@@ -2,10 +2,11 @@ import type { LovelacePanelConfig } from "../../../data/lovelace";
import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
import type { LovelaceSectionConfig } from "../../../data/lovelace/config/section";
import type { LovelaceConfig } from "../../../data/lovelace/config/types";
+import type { HomeAssistant } from "../../../types";
+
import { fetchConfig, saveConfig } from "../../../data/lovelace/config/types";
import { fetchDashboards } from "../../../data/lovelace/dashboard";
import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
-import type { HomeAssistant } from "../../../types";
import { showSuggestCardDialog } from "./card-editor/show-suggest-card-dialog";
import { showSelectViewDialog } from "./select-view/show-select-view-dialog";
diff --git a/src/panels/lovelace/editor/badge-editor/hui-badge-element-editor.ts b/src/panels/lovelace/editor/badge-editor/hui-badge-element-editor.ts
index d130e37016..fa7a14b78f 100644
--- a/src/panels/lovelace/editor/badge-editor/hui-badge-element-editor.ts
+++ b/src/panels/lovelace/editor/badge-editor/hui-badge-element-editor.ts
@@ -1,13 +1,16 @@
+import type { LovelaceBadgeConfig } from "../../../../data/lovelace/config/badge";
+import type { LovelaceCardEditor, LovelaceConfigForm } from "../../types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "./hui-badge-visibility-editor";
import "@material/mwc-tab-bar/mwc-tab-bar";
import "@material/mwc-tab/mwc-tab";
-import type { CSSResultGroup, TemplateResult } from "lit";
+
import { css, html, nothing } from "lit";
import { customElement, state } from "lit/decorators";
-import type { LovelaceBadgeConfig } from "../../../../data/lovelace/config/badge";
+
import { getBadgeElementClass } from "../../create-element/create-badge-element";
-import type { LovelaceCardEditor, LovelaceConfigForm } from "../../types";
import { HuiTypedElementEditor } from "../hui-typed-element-editor";
-import "./hui-badge-visibility-editor";
const tabs = ["config", "visibility"] as const;
diff --git a/src/panels/lovelace/editor/badge-editor/hui-badge-picker.ts b/src/panels/lovelace/editor/badge-editor/hui-badge-picker.ts
index 1e720a4632..178810026f 100644
--- a/src/panels/lovelace/editor/badge-editor/hui-badge-picker.ts
+++ b/src/panels/lovelace/editor/badge-editor/hui-badge-picker.ts
@@ -1,36 +1,39 @@
+import type { CustomBadgeEntry } from "../../../../data/lovelace_custom_cards";
+import type { LovelaceBadgeConfig } from "../../../../data/lovelace/config/badge";
+import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
+import type { HomeAssistant } from "../../../../types";
+import type { LovelaceBadge } from "../../types";
+import type { Badge, BadgePickTarget } from "../types";
import type { IFuseOptions } from "fuse.js";
-import Fuse from "fuse.js";
import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../../../components/ha-spinner";
+import "../../../../components/search-input";
+
+import Fuse from "fuse.js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { styleMap } from "lit/directives/style-map";
import { until } from "lit/directives/until";
import memoizeOne from "memoize-one";
+
import { storage } from "../../../../common/decorators/storage";
import { fireEvent } from "../../../../common/dom/fire_event";
import { stringCompare } from "../../../../common/string/compare";
-import "../../../../components/ha-spinner";
-import "../../../../components/search-input";
import { isUnavailableState } from "../../../../data/entity";
-import type { LovelaceBadgeConfig } from "../../../../data/lovelace/config/badge";
-import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
-import type { CustomBadgeEntry } from "../../../../data/lovelace_custom_cards";
import {
CUSTOM_TYPE_PREFIX,
customBadges,
getCustomBadgeEntry,
} from "../../../../data/lovelace_custom_cards";
-import type { HomeAssistant } from "../../../../types";
import {
calcUnusedEntities,
computeUsedEntities,
} from "../../common/compute-unused-entities";
import { tryCreateBadgeElement } from "../../create-element/create-badge-element";
-import type { LovelaceBadge } from "../../types";
import { getBadgeStubConfig } from "../get-badge-stub-config";
import { coreBadges } from "../lovelace-badges";
-import type { Badge, BadgePickTarget } from "../types";
interface BadgeElement {
badge: Badge;
diff --git a/src/panels/lovelace/editor/badge-editor/hui-badge-visibility-editor.ts b/src/panels/lovelace/editor/badge-editor/hui-badge-visibility-editor.ts
index aed9c1d53b..8c2b0d0780 100644
--- a/src/panels/lovelace/editor/badge-editor/hui-badge-visibility-editor.ts
+++ b/src/panels/lovelace/editor/badge-editor/hui-badge-visibility-editor.ts
@@ -1,12 +1,15 @@
-import { LitElement, html, css } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-alert";
import type { LovelaceCardConfig } from "../../../../data/lovelace/config/card";
import type { HomeAssistant } from "../../../../types";
import type { Condition } from "../../common/validate-condition";
+
+import "../../../../components/ha-alert";
import "../conditions/ha-card-conditions-editor";
+import { LitElement, html, css } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+
@customElement("hui-badge-visibility-editor")
export class HuiBadgeVisibilityEditor extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/lovelace/editor/badge-editor/hui-dialog-create-badge.ts b/src/panels/lovelace/editor/badge-editor/hui-dialog-create-badge.ts
index 58d37b40ed..2800ed0275 100644
--- a/src/panels/lovelace/editor/badge-editor/hui-dialog-create-badge.ts
+++ b/src/panels/lovelace/editor/badge-editor/hui-dialog-create-badge.ts
@@ -1,27 +1,30 @@
+import type { DataTableRowData } from "../../../../components/data-table/ha-data-table";
+import type { LovelaceViewConfig } from "../../../../data/lovelace/config/view";
+import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../../types";
+import type { CreateBadgeDialogParams } from "./show-create-badge-dialog";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-dialog";
+import "../../../../components/ha-dialog-header";
+import "../card-editor/hui-entity-picker-table";
+import "./hui-badge-picker";
import "@material/mwc-tab-bar/mwc-tab-bar";
import "@material/mwc-tab/mwc-tab";
+
import { mdiClose } from "@mdi/js";
-import type { CSSResultGroup } from "lit";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { cache } from "lit/directives/cache";
import { classMap } from "lit/directives/class-map";
import memoize from "memoize-one";
+
import { fireEvent } from "../../../../common/dom/fire_event";
import { computeDomain } from "../../../../common/entity/compute_domain";
import { computeStateName } from "../../../../common/entity/compute_state_name";
-import type { DataTableRowData } from "../../../../components/data-table/ha-data-table";
-import "../../../../components/ha-dialog";
-import "../../../../components/ha-dialog-header";
-import type { LovelaceViewConfig } from "../../../../data/lovelace/config/view";
-import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
import { haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import { computeBadges } from "../../common/generate-lovelace-config";
-import "../card-editor/hui-entity-picker-table";
import { findLovelaceContainer } from "../lovelace-path";
-import "./hui-badge-picker";
-import type { CreateBadgeDialogParams } from "./show-create-badge-dialog";
import { showEditBadgeDialog } from "./show-edit-badge-dialog";
import { showSuggestBadgeDialog } from "./show-suggest-badge-dialog";
diff --git a/src/panels/lovelace/editor/badge-editor/hui-dialog-edit-badge.ts b/src/panels/lovelace/editor/badge-editor/hui-dialog-edit-badge.ts
index 16175b9ea5..a94bd2a3e1 100644
--- a/src/panels/lovelace/editor/badge-editor/hui-dialog-edit-badge.ts
+++ b/src/panels/lovelace/editor/badge-editor/hui-dialog-edit-badge.ts
@@ -1,38 +1,41 @@
-import { mdiClose, mdiHelpCircle } from "@mdi/js";
-import deepFreeze from "deep-freeze";
-import type { CSSResultGroup, PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
import type { HASSDomEvent } from "../../../../common/dom/fire_event";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { computeRTLDirection } from "../../../../common/util/compute_rtl";
-import "../../../../components/ha-spinner";
+import type { LovelaceBadgeConfig } from "../../../../data/lovelace/config/badge";
+import type { LovelaceViewConfig } from "../../../../data/lovelace/config/view";
+import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../../types";
+import type { ConfigChangedEvent } from "../hui-element-editor";
+import type { GUIModeChangedEvent } from "../types";
+import type { HuiBadgeElementEditor } from "./hui-badge-element-editor";
+import type { EditBadgeDialogParams } from "./show-edit-badge-dialog";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
import "../../../../components/ha-dialog";
import "../../../../components/ha-dialog-header";
import "../../../../components/ha-icon-button";
-import type { LovelaceBadgeConfig } from "../../../../data/lovelace/config/badge";
-import { ensureBadgeConfig } from "../../../../data/lovelace/config/badge";
-import type { LovelaceViewConfig } from "../../../../data/lovelace/config/view";
+import "../../../../components/ha-spinner";
+import "../../badges/hui-badge";
+import "../../sections/hui-section";
+import "./hui-badge-element-editor";
+
+import { mdiClose, mdiHelpCircle } from "@mdi/js";
+import deepFreeze from "deep-freeze";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { computeRTLDirection } from "../../../../common/util/compute_rtl";
import {
getCustomBadgeEntry,
isCustomType,
stripCustomPrefix,
} from "../../../../data/lovelace_custom_cards";
+import { ensureBadgeConfig } from "../../../../data/lovelace/config/badge";
import { showConfirmationDialog } from "../../../../dialogs/generic/show-dialog-box";
-import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
import { haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import { showSaveSuccessToast } from "../../../../util/toast-saved-success";
-import "../../badges/hui-badge";
-import "../../sections/hui-section";
import { addBadge, replaceBadge } from "../config-util";
import { getBadgeDocumentationURL } from "../get-dashboard-documentation-url";
-import type { ConfigChangedEvent } from "../hui-element-editor";
import { findLovelaceContainer } from "../lovelace-path";
-import type { GUIModeChangedEvent } from "../types";
-import "./hui-badge-element-editor";
-import type { HuiBadgeElementEditor } from "./hui-badge-element-editor";
-import type { EditBadgeDialogParams } from "./show-edit-badge-dialog";
declare global {
// for fire event
diff --git a/src/panels/lovelace/editor/badge-editor/hui-dialog-suggest-badge.ts b/src/panels/lovelace/editor/badge-editor/hui-dialog-suggest-badge.ts
index c6fbba1387..b4c82ffd50 100644
--- a/src/panels/lovelace/editor/badge-editor/hui-dialog-suggest-badge.ts
+++ b/src/panels/lovelace/editor/badge-editor/hui-dialog-suggest-badge.ts
@@ -1,22 +1,24 @@
-import deepFreeze from "deep-freeze";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-yaml-editor";
-import "../../../../components/ha-spinner";
-
import type { HaYamlEditor } from "../../../../components/ha-yaml-editor";
import type { LovelaceBadgeConfig } from "../../../../data/lovelace/config/badge";
import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
-import { haStyleDialog } from "../../../../resources/styles";
import type { HomeAssistant } from "../../../../types";
-import { showSaveSuccessToast } from "../../../../util/toast-saved-success";
-import "../../badges/hui-badge";
-import { addBadges } from "../config-util";
import type { LovelaceContainerPath } from "../lovelace-path";
-import { parseLovelaceContainerPath } from "../lovelace-path";
import type { SuggestBadgeDialogParams } from "./show-suggest-badge-dialog";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-spinner";
+import "../../../../components/ha-yaml-editor";
+import "../../badges/hui-badge";
+
+import deepFreeze from "deep-freeze";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { haStyleDialog } from "../../../../resources/styles";
+import { showSaveSuccessToast } from "../../../../util/toast-saved-success";
+import { addBadges } from "../config-util";
+import { parseLovelaceContainerPath } from "../lovelace-path";
@customElement("hui-dialog-suggest-badge")
export class HuiDialogSuggestBadge extends LitElement {
diff --git a/src/panels/lovelace/editor/badge-editor/show-create-badge-dialog.ts b/src/panels/lovelace/editor/badge-editor/show-create-badge-dialog.ts
index 13469820f4..6a4390388e 100644
--- a/src/panels/lovelace/editor/badge-editor/show-create-badge-dialog.ts
+++ b/src/panels/lovelace/editor/badge-editor/show-create-badge-dialog.ts
@@ -1,7 +1,8 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
import type { LovelaceContainerPath } from "../lovelace-path";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export interface CreateBadgeDialogParams {
lovelaceConfig: LovelaceConfig;
saveConfig: (config: LovelaceConfig) => void;
diff --git a/src/panels/lovelace/editor/badge-editor/show-edit-badge-dialog.ts b/src/panels/lovelace/editor/badge-editor/show-edit-badge-dialog.ts
index 4a75b42c26..3ff032479d 100644
--- a/src/panels/lovelace/editor/badge-editor/show-edit-badge-dialog.ts
+++ b/src/panels/lovelace/editor/badge-editor/show-edit-badge-dialog.ts
@@ -1,8 +1,9 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { LovelaceBadgeConfig } from "../../../../data/lovelace/config/badge";
import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
import type { LovelaceContainerPath } from "../lovelace-path";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export type EditBadgeDialogParams = {
lovelaceConfig: LovelaceConfig;
saveConfig: (config: LovelaceConfig) => void;
diff --git a/src/panels/lovelace/editor/badge-editor/show-suggest-badge-dialog.ts b/src/panels/lovelace/editor/badge-editor/show-suggest-badge-dialog.ts
index 4e4421d491..e6d57a2b5a 100644
--- a/src/panels/lovelace/editor/badge-editor/show-suggest-badge-dialog.ts
+++ b/src/panels/lovelace/editor/badge-editor/show-suggest-badge-dialog.ts
@@ -1,8 +1,9 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { LovelaceBadgeConfig } from "../../../../data/lovelace/config/badge";
import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
import type { LovelaceContainerPath } from "../lovelace-path";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export interface SuggestBadgeDialogParams {
lovelaceConfig?: LovelaceConfig;
yaml?: boolean;
diff --git a/src/panels/lovelace/editor/card-editor/ha-grid-layout-slider.ts b/src/panels/lovelace/editor/card-editor/ha-grid-layout-slider.ts
index e0e8e9605f..5761859503 100644
--- a/src/panels/lovelace/editor/card-editor/ha-grid-layout-slider.ts
+++ b/src/panels/lovelace/editor/card-editor/ha-grid-layout-slider.ts
@@ -1,9 +1,11 @@
-import { DIRECTION_ALL, Manager, Pan, Tap } from "@egjs/hammerjs";
import type { PropertyValues, TemplateResult } from "lit";
+
+import { DIRECTION_ALL, Manager, Pan, Tap } from "@egjs/hammerjs";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { styleMap } from "lit/directives/style-map";
+
import { fireEvent } from "../../../../common/dom/fire_event";
declare global {
diff --git a/src/panels/lovelace/editor/card-editor/hui-card-element-editor.ts b/src/panels/lovelace/editor/card-editor/hui-card-element-editor.ts
index c794c783da..f32bfe3540 100644
--- a/src/panels/lovelace/editor/card-editor/hui-card-element-editor.ts
+++ b/src/panels/lovelace/editor/card-editor/hui-card-element-editor.ts
@@ -1,15 +1,18 @@
-import "@material/mwc-tab-bar/mwc-tab-bar";
-import "@material/mwc-tab/mwc-tab";
-import type { TemplateResult } from "lit";
-import { css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
import type { LovelaceCardConfig } from "../../../../data/lovelace/config/card";
-import { getCardElementClass } from "../../create-element/create-card-element";
+import type { LovelaceSectionConfig } from "../../../../data/lovelace/config/section";
import type { LovelaceCardEditor, LovelaceConfigForm } from "../../types";
-import { HuiTypedElementEditor } from "../hui-typed-element-editor";
+import type { TemplateResult } from "lit";
+
import "./hui-card-layout-editor";
import "./hui-card-visibility-editor";
-import type { LovelaceSectionConfig } from "../../../../data/lovelace/config/section";
+import "@material/mwc-tab-bar/mwc-tab-bar";
+import "@material/mwc-tab/mwc-tab";
+
+import { css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { getCardElementClass } from "../../create-element/create-card-element";
+import { HuiTypedElementEditor } from "../hui-typed-element-editor";
const tabs = ["config", "visibility", "layout"] as const;
diff --git a/src/panels/lovelace/editor/card-editor/hui-card-layout-editor.ts b/src/panels/lovelace/editor/card-editor/hui-card-layout-editor.ts
index f18144c6d1..4904eace70 100644
--- a/src/panels/lovelace/editor/card-editor/hui-card-layout-editor.ts
+++ b/src/panels/lovelace/editor/card-editor/hui-card-layout-editor.ts
@@ -1,13 +1,12 @@
+import type { LovelaceCardConfig } from "../../../../data/lovelace/config/card";
+import type { LovelaceSectionConfig } from "../../../../data/lovelace/config/section";
+import type { HomeAssistant } from "../../../../types";
+import type { HuiCard } from "../../cards/hui-card";
+import type { CardGridSize } from "../../common/compute-card-grid-size";
+import type { LovelaceGridOptions } from "../../types";
import type { ActionDetail } from "@material/mwc-list";
-import { mdiDotsVertical, mdiPlaylistEdit } from "@mdi/js";
import type { PropertyValues } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { styleMap } from "lit/directives/style-map";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { preventDefault } from "../../../../common/dom/prevent_default";
-import { stopPropagation } from "../../../../common/dom/stop_propagation";
+
import "../../../../components/ha-button";
import "../../../../components/ha-button-menu";
import "../../../../components/ha-grid-size-picker";
@@ -18,19 +17,23 @@ import "../../../../components/ha-slider";
import "../../../../components/ha-svg-icon";
import "../../../../components/ha-switch";
import "../../../../components/ha-yaml-editor";
-import type { LovelaceCardConfig } from "../../../../data/lovelace/config/card";
-import type { LovelaceSectionConfig } from "../../../../data/lovelace/config/section";
+
+import { mdiDotsVertical, mdiPlaylistEdit } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { styleMap } from "lit/directives/style-map";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { preventDefault } from "../../../../common/dom/prevent_default";
+import { stopPropagation } from "../../../../common/dom/stop_propagation";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
-import type { HuiCard } from "../../cards/hui-card";
-import type { CardGridSize } from "../../common/compute-card-grid-size";
import {
computeCardGridSize,
GRID_COLUMN_MULTIPLIER,
isPreciseMode,
migrateLayoutToGridOptions,
} from "../../common/compute-card-grid-size";
-import type { LovelaceGridOptions } from "../../types";
@customElement("hui-card-layout-editor")
export class HuiCardLayoutEditor extends LitElement {
diff --git a/src/panels/lovelace/editor/card-editor/hui-card-picker.ts b/src/panels/lovelace/editor/card-editor/hui-card-picker.ts
index 392e49d6fd..2673cdb11c 100644
--- a/src/panels/lovelace/editor/card-editor/hui-card-picker.ts
+++ b/src/panels/lovelace/editor/card-editor/hui-card-picker.ts
@@ -1,36 +1,39 @@
+import type { CustomCardEntry } from "../../../../data/lovelace_custom_cards";
+import type { LovelaceCardConfig } from "../../../../data/lovelace/config/card";
+import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
+import type { HomeAssistant } from "../../../../types";
+import type { LovelaceCard } from "../../types";
+import type { Card, CardPickTarget } from "../types";
import type { IFuseOptions } from "fuse.js";
-import Fuse from "fuse.js";
import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../../../components/ha-spinner";
+import "../../../../components/search-input";
+
+import Fuse from "fuse.js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { styleMap } from "lit/directives/style-map";
import { until } from "lit/directives/until";
import memoizeOne from "memoize-one";
+
import { storage } from "../../../../common/decorators/storage";
import { fireEvent } from "../../../../common/dom/fire_event";
import { stringCompare } from "../../../../common/string/compare";
-import "../../../../components/ha-spinner";
-import "../../../../components/search-input";
import { isUnavailableState } from "../../../../data/entity";
-import type { LovelaceCardConfig } from "../../../../data/lovelace/config/card";
-import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
-import type { CustomCardEntry } from "../../../../data/lovelace_custom_cards";
import {
CUSTOM_TYPE_PREFIX,
customCards,
getCustomCardEntry,
} from "../../../../data/lovelace_custom_cards";
-import type { HomeAssistant } from "../../../../types";
import {
calcUnusedEntities,
computeUsedEntities,
} from "../../common/compute-unused-entities";
import { tryCreateCardElement } from "../../create-element/create-card-element";
-import type { LovelaceCard } from "../../types";
import { getCardStubConfig } from "../get-card-stub-config";
import { coreCards } from "../lovelace-cards";
-import type { Card, CardPickTarget } from "../types";
interface CardElement {
card: Card;
diff --git a/src/panels/lovelace/editor/card-editor/hui-card-visibility-editor.ts b/src/panels/lovelace/editor/card-editor/hui-card-visibility-editor.ts
index 3cea5e290d..fe289bd2c7 100644
--- a/src/panels/lovelace/editor/card-editor/hui-card-visibility-editor.ts
+++ b/src/panels/lovelace/editor/card-editor/hui-card-visibility-editor.ts
@@ -1,12 +1,15 @@
-import { LitElement, html, css } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-alert";
import type { LovelaceCardConfig } from "../../../../data/lovelace/config/card";
import type { HomeAssistant } from "../../../../types";
import type { Condition } from "../../common/validate-condition";
+
+import "../../../../components/ha-alert";
import "../conditions/ha-card-conditions-editor";
+import { LitElement, html, css } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+
@customElement("hui-card-visibility-editor")
export class HuiCardVisibilityEditor extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/lovelace/editor/card-editor/hui-dialog-create-card.ts b/src/panels/lovelace/editor/card-editor/hui-dialog-create-card.ts
index 403bc7c31e..660f0ad313 100644
--- a/src/panels/lovelace/editor/card-editor/hui-dialog-create-card.ts
+++ b/src/panels/lovelace/editor/card-editor/hui-dialog-create-card.ts
@@ -1,25 +1,31 @@
+import type { DataTableRowData } from "../../../../components/data-table/ha-data-table";
+import type { LovelaceSectionConfig } from "../../../../data/lovelace/config/section";
+import type { LovelaceViewConfig } from "../../../../data/lovelace/config/view";
+import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../../types";
+import type { CreateCardDialogParams } from "./show-create-card-dialog";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-dialog";
+import "../../../../components/ha-dialog-header";
+import "./hui-card-picker";
+import "./hui-entity-picker-table";
import "@material/mwc-tab-bar/mwc-tab-bar";
import "@material/mwc-tab/mwc-tab";
+
import { mdiClose } from "@mdi/js";
-import type { CSSResultGroup } from "lit";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { cache } from "lit/directives/cache";
import { classMap } from "lit/directives/class-map";
import { ifDefined } from "lit/directives/if-defined";
import memoize from "memoize-one";
+
import { fireEvent } from "../../../../common/dom/fire_event";
import { computeDomain } from "../../../../common/entity/compute_domain";
import { computeStateName } from "../../../../common/entity/compute_state_name";
-import type { DataTableRowData } from "../../../../components/data-table/ha-data-table";
-import "../../../../components/ha-dialog";
-import "../../../../components/ha-dialog-header";
-import type { LovelaceSectionConfig } from "../../../../data/lovelace/config/section";
import { isStrategySection } from "../../../../data/lovelace/config/section";
-import type { LovelaceViewConfig } from "../../../../data/lovelace/config/view";
-import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
import { haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import {
computeCards,
computeSection,
@@ -29,9 +35,6 @@ import {
findLovelaceContainer,
parseLovelaceContainerPath,
} from "../lovelace-path";
-import "./hui-card-picker";
-import "./hui-entity-picker-table";
-import type { CreateCardDialogParams } from "./show-create-card-dialog";
import { showEditCardDialog } from "./show-edit-card-dialog";
import { showSuggestCardDialog } from "./show-suggest-card-dialog";
diff --git a/src/panels/lovelace/editor/card-editor/hui-dialog-delete-card.ts b/src/panels/lovelace/editor/card-editor/hui-dialog-delete-card.ts
index 467e5bc33b..6a46486b5c 100644
--- a/src/panels/lovelace/editor/card-editor/hui-dialog-delete-card.ts
+++ b/src/panels/lovelace/editor/card-editor/hui-dialog-delete-card.ts
@@ -1,13 +1,16 @@
-import deepFreeze from "deep-freeze";
+import type { LovelaceCardConfig } from "../../../../data/lovelace/config/card";
+import type { HomeAssistant } from "../../../../types";
+import type { DeleteCardDialogParams } from "./show-delete-card-dialog";
import type { CSSResultGroup } from "lit";
+
+import "../../cards/hui-card";
+
+import deepFreeze from "deep-freeze";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { fireEvent } from "../../../../common/dom/fire_event";
-import type { LovelaceCardConfig } from "../../../../data/lovelace/config/card";
import { haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
-import "../../cards/hui-card";
-import type { DeleteCardDialogParams } from "./show-delete-card-dialog";
@customElement("hui-dialog-delete-card")
export class HuiDialogDeleteCard extends LitElement {
diff --git a/src/panels/lovelace/editor/card-editor/hui-dialog-edit-card.ts b/src/panels/lovelace/editor/card-editor/hui-dialog-edit-card.ts
index e2e5aebd4e..1428321018 100644
--- a/src/panels/lovelace/editor/card-editor/hui-dialog-edit-card.ts
+++ b/src/panels/lovelace/editor/card-editor/hui-dialog-edit-card.ts
@@ -1,37 +1,40 @@
-import { mdiClose, mdiHelpCircle } from "@mdi/js";
-import deepFreeze from "deep-freeze";
-import type { CSSResultGroup, PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
import type { HASSDomEvent } from "../../../../common/dom/fire_event";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { computeRTLDirection } from "../../../../common/util/compute_rtl";
-import "../../../../components/ha-spinner";
+import type { LovelaceCardConfig } from "../../../../data/lovelace/config/card";
+import type { LovelaceSectionConfig } from "../../../../data/lovelace/config/section";
+import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../../types";
+import type { ConfigChangedEvent } from "../hui-element-editor";
+import type { GUIModeChangedEvent } from "../types";
+import type { HuiCardElementEditor } from "./hui-card-element-editor";
+import type { EditCardDialogParams } from "./show-edit-card-dialog";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
import "../../../../components/ha-dialog";
import "../../../../components/ha-dialog-header";
import "../../../../components/ha-icon-button";
-import type { LovelaceCardConfig } from "../../../../data/lovelace/config/card";
-import type { LovelaceSectionConfig } from "../../../../data/lovelace/config/section";
+import "../../../../components/ha-spinner";
+import "../../cards/hui-card";
+import "../../sections/hui-section";
+import "./hui-card-element-editor";
+
+import { mdiClose, mdiHelpCircle } from "@mdi/js";
+import deepFreeze from "deep-freeze";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { computeRTLDirection } from "../../../../common/util/compute_rtl";
import {
getCustomCardEntry,
isCustomType,
stripCustomPrefix,
} from "../../../../data/lovelace_custom_cards";
import { showConfirmationDialog } from "../../../../dialogs/generic/show-dialog-box";
-import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
import { haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import { showToast } from "../../../../util/toast";
import { showSaveSuccessToast } from "../../../../util/toast-saved-success";
-import "../../cards/hui-card";
-import "../../sections/hui-section";
import { getCardDocumentationURL } from "../get-dashboard-documentation-url";
-import type { ConfigChangedEvent } from "../hui-element-editor";
-import type { GUIModeChangedEvent } from "../types";
-import "./hui-card-element-editor";
-import type { HuiCardElementEditor } from "./hui-card-element-editor";
-import type { EditCardDialogParams } from "./show-edit-card-dialog";
declare global {
// for fire event
diff --git a/src/panels/lovelace/editor/card-editor/hui-dialog-suggest-card.ts b/src/panels/lovelace/editor/card-editor/hui-dialog-suggest-card.ts
index 664eaf6f29..55f1f16b5b 100644
--- a/src/panels/lovelace/editor/card-editor/hui-dialog-suggest-card.ts
+++ b/src/panels/lovelace/editor/card-editor/hui-dialog-suggest-card.ts
@@ -1,26 +1,28 @@
-import deepFreeze from "deep-freeze";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-yaml-editor";
-
import type { HaYamlEditor } from "../../../../components/ha-yaml-editor";
-import "../../../../components/ha-spinner";
import type { LovelaceCardConfig } from "../../../../data/lovelace/config/card";
import type { LovelaceSectionConfig } from "../../../../data/lovelace/config/section";
import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
+import type { HomeAssistant } from "../../../../types";
+import type { LovelaceContainerPath } from "../lovelace-path";
+import type { SuggestCardDialogParams } from "./show-suggest-card-dialog";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-spinner";
+import "../../../../components/ha-yaml-editor";
+import "../../cards/hui-card";
+import "../../sections/hui-section";
+
+import deepFreeze from "deep-freeze";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { isStrategyView } from "../../../../data/lovelace/config/view";
import { haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import { showSaveSuccessToast } from "../../../../util/toast-saved-success";
-import "../../sections/hui-section";
import { addCards, addSection } from "../config-util";
-import type { LovelaceContainerPath } from "../lovelace-path";
import { parseLovelaceContainerPath } from "../lovelace-path";
-import "../../cards/hui-card";
import { showCreateCardDialog } from "./show-create-card-dialog";
-import type { SuggestCardDialogParams } from "./show-suggest-card-dialog";
@customElement("hui-dialog-suggest-card")
export class HuiDialogSuggestCard extends LitElement {
diff --git a/src/panels/lovelace/editor/card-editor/hui-entity-picker-table.ts b/src/panels/lovelace/editor/card-editor/hui-entity-picker-table.ts
index 5918aafef6..9437ff857f 100644
--- a/src/panels/lovelace/editor/card-editor/hui-entity-picker-table.ts
+++ b/src/panels/lovelace/editor/card-editor/hui-entity-picker-table.ts
@@ -1,18 +1,21 @@
-import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import memoizeOne from "memoize-one";
import type { HASSDomEvent } from "../../../../common/dom/fire_event";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/data-table/ha-data-table";
import type {
DataTableColumnContainer,
DataTableRowData,
SelectionChangedEvent,
} from "../../../../components/data-table/ha-data-table";
+import type { HomeAssistant } from "../../../../types";
+import type { TemplateResult } from "lit";
+
+import "../../../../components/data-table/ha-data-table";
import "../../../../components/entity/state-badge";
import "../../../../components/ha-relative-time";
-import type { HomeAssistant } from "../../../../types";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
@customElement("hui-entity-picker-table")
export class HuiEntityPickerTable extends LitElement {
diff --git a/src/panels/lovelace/editor/card-editor/show-create-card-dialog.ts b/src/panels/lovelace/editor/card-editor/show-create-card-dialog.ts
index c2934b0bcd..1bff806bd9 100644
--- a/src/panels/lovelace/editor/card-editor/show-create-card-dialog.ts
+++ b/src/panels/lovelace/editor/card-editor/show-create-card-dialog.ts
@@ -1,7 +1,8 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
import type { LovelaceContainerPath } from "../lovelace-path";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export interface CreateCardDialogParams {
lovelaceConfig: LovelaceConfig;
saveConfig: (config: LovelaceConfig) => void;
diff --git a/src/panels/lovelace/editor/card-editor/show-delete-card-dialog.ts b/src/panels/lovelace/editor/card-editor/show-delete-card-dialog.ts
index 3fee6abed2..35ad4e3f05 100644
--- a/src/panels/lovelace/editor/card-editor/show-delete-card-dialog.ts
+++ b/src/panels/lovelace/editor/card-editor/show-delete-card-dialog.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { LovelaceCardConfig } from "../../../../data/lovelace/config/card";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export interface DeleteCardDialogParams {
deleteCard: () => void;
cardConfig?: LovelaceCardConfig;
diff --git a/src/panels/lovelace/editor/card-editor/show-edit-card-dialog.ts b/src/panels/lovelace/editor/card-editor/show-edit-card-dialog.ts
index ae3930ba55..baa861c108 100644
--- a/src/panels/lovelace/editor/card-editor/show-edit-card-dialog.ts
+++ b/src/panels/lovelace/editor/card-editor/show-edit-card-dialog.ts
@@ -1,8 +1,9 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { LovelaceCardConfig } from "../../../../data/lovelace/config/card";
import type { LovelaceSectionConfig } from "../../../../data/lovelace/config/section";
import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export interface EditCardDialogParams {
lovelaceConfig: LovelaceConfig;
saveCardConfig: (config: LovelaceCardConfig) => void;
diff --git a/src/panels/lovelace/editor/card-editor/show-suggest-card-dialog.ts b/src/panels/lovelace/editor/card-editor/show-suggest-card-dialog.ts
index 3f9d75481c..23c007468d 100644
--- a/src/panels/lovelace/editor/card-editor/show-suggest-card-dialog.ts
+++ b/src/panels/lovelace/editor/card-editor/show-suggest-card-dialog.ts
@@ -1,9 +1,10 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { LovelaceCardConfig } from "../../../../data/lovelace/config/card";
import type { LovelaceSectionConfig } from "../../../../data/lovelace/config/section";
import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
import type { LovelaceContainerPath } from "../lovelace-path";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export interface SuggestCardDialogParams {
lovelaceConfig?: LovelaceConfig;
yaml?: boolean;
diff --git a/src/panels/lovelace/editor/conditions/ha-card-condition-editor.ts b/src/panels/lovelace/editor/conditions/ha-card-condition-editor.ts
index 3f88085c26..6c7eb19cbe 100644
--- a/src/panels/lovelace/editor/conditions/ha-card-condition-editor.ts
+++ b/src/panels/lovelace/editor/conditions/ha-card-condition-editor.ts
@@ -1,14 +1,12 @@
+import type { HomeAssistant } from "../../../../types";
+import type {
+ Condition,
+ LegacyCondition,
+} from "../../common/validate-condition";
+import type { LovelaceConditionEditorConstructor } from "./types";
import type { ActionDetail } from "@material/mwc-list";
-import { mdiDelete, mdiDotsVertical, mdiFlask, mdiPlaylistEdit } from "@mdi/js";
import type { PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import { dynamicElement } from "../../../../common/dom/dynamic-element-directive";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { preventDefault } from "../../../../common/dom/prevent_default";
-import { stopPropagation } from "../../../../common/dom/stop_propagation";
-import { handleStructError } from "../../../../common/structs/handle-errors";
+
import "../../../../components/ha-alert";
import "../../../../components/ha-button-menu";
import "../../../../components/ha-card";
@@ -17,19 +15,24 @@ import "../../../../components/ha-icon-button";
import "../../../../components/ha-list-item";
import "../../../../components/ha-svg-icon";
import "../../../../components/ha-yaml-editor";
+
+import { mdiDelete, mdiDotsVertical, mdiFlask, mdiPlaylistEdit } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+
+import { dynamicElement } from "../../../../common/dom/dynamic-element-directive";
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { preventDefault } from "../../../../common/dom/prevent_default";
+import { stopPropagation } from "../../../../common/dom/stop_propagation";
+import { handleStructError } from "../../../../common/structs/handle-errors";
import { showAlertDialog } from "../../../../dialogs/generic/show-dialog-box";
import { haStyle } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import { ICON_CONDITION } from "../../common/icon-condition";
-import type {
- Condition,
- LegacyCondition,
-} from "../../common/validate-condition";
import {
checkConditionsMet,
validateConditionalConfig,
} from "../../common/validate-condition";
-import type { LovelaceConditionEditorConstructor } from "./types";
@customElement("ha-card-condition-editor")
export class HaCardConditionEditor extends LitElement {
diff --git a/src/panels/lovelace/editor/conditions/ha-card-conditions-editor.ts b/src/panels/lovelace/editor/conditions/ha-card-conditions-editor.ts
index 2f07ff3a02..cc6413d687 100644
--- a/src/panels/lovelace/editor/conditions/ha-card-conditions-editor.ts
+++ b/src/panels/lovelace/editor/conditions/ha-card-conditions-editor.ts
@@ -1,22 +1,17 @@
-import { mdiPlus } from "@mdi/js";
-import type { CSSResultGroup, PropertyValues } from "lit";
-import { LitElement, css, html } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { stopPropagation } from "../../../../common/dom/stop_propagation";
-import "../../../../components/ha-button";
-import "../../../../components/ha-list-item";
import type { HaSelect } from "../../../../components/ha-select";
-import "../../../../components/ha-svg-icon";
import type { HomeAssistant } from "../../../../types";
-import { ICON_CONDITION } from "../../common/icon-condition";
import type {
Condition,
LegacyCondition,
} from "../../common/validate-condition";
-import "./ha-card-condition-editor";
import type { HaCardConditionEditor } from "./ha-card-condition-editor";
import type { LovelaceConditionEditorConstructor } from "./types";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../../components/ha-button";
+import "../../../../components/ha-list-item";
+import "../../../../components/ha-svg-icon";
+import "./ha-card-condition-editor";
import "./types/ha-card-condition-and";
import "./types/ha-card-condition-numeric_state";
import "./types/ha-card-condition-or";
@@ -24,6 +19,14 @@ import "./types/ha-card-condition-screen";
import "./types/ha-card-condition-state";
import "./types/ha-card-condition-user";
+import { mdiPlus } from "@mdi/js";
+import { LitElement, css, html } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { stopPropagation } from "../../../../common/dom/stop_propagation";
+import { ICON_CONDITION } from "../../common/icon-condition";
+
const UI_CONDITION = [
"numeric_state",
"state",
diff --git a/src/panels/lovelace/editor/conditions/types/ha-card-condition-and.ts b/src/panels/lovelace/editor/conditions/types/ha-card-condition-and.ts
index a5d0a152d8..7fe75fa5c9 100644
--- a/src/panels/lovelace/editor/conditions/types/ha-card-condition-and.ts
+++ b/src/panels/lovelace/editor/conditions/types/ha-card-condition-and.ts
@@ -1,16 +1,19 @@
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { any, array, assert, literal, object, optional } from "superstruct";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-form/ha-form";
import type { HomeAssistant } from "../../../../../types";
import type {
AndCondition,
Condition,
StateCondition,
} from "../../../common/validate-condition";
+
+import "../../../../../components/ha-form/ha-form";
import "../ha-card-conditions-editor";
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+import { any, array, assert, literal, object, optional } from "superstruct";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+
const andConditionStruct = object({
condition: literal("and"),
conditions: optional(array(any())),
diff --git a/src/panels/lovelace/editor/conditions/types/ha-card-condition-numeric_state.ts b/src/panels/lovelace/editor/conditions/types/ha-card-condition-numeric_state.ts
index 152e613614..04b4a38222 100644
--- a/src/panels/lovelace/editor/conditions/types/ha-card-condition-numeric_state.ts
+++ b/src/panels/lovelace/editor/conditions/types/ha-card-condition-numeric_state.ts
@@ -1,10 +1,3 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { assert, literal, number, object, optional, string } from "superstruct";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-form/ha-form";
import type {
SchemaUnion,
HaFormSchema,
@@ -14,6 +7,16 @@ import type {
NumericStateCondition,
StateCondition,
} from "../../../common/validate-condition";
+import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../../../components/ha-form/ha-form";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+import { assert, literal, number, object, optional, string } from "superstruct";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
const numericStateConditionStruct = object({
condition: literal("numeric_state"),
diff --git a/src/panels/lovelace/editor/conditions/types/ha-card-condition-or.ts b/src/panels/lovelace/editor/conditions/types/ha-card-condition-or.ts
index a6e41a2e82..cdc5893f57 100644
--- a/src/panels/lovelace/editor/conditions/types/ha-card-condition-or.ts
+++ b/src/panels/lovelace/editor/conditions/types/ha-card-condition-or.ts
@@ -1,16 +1,19 @@
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { any, array, assert, literal, object, optional } from "superstruct";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-form/ha-form";
import type { HomeAssistant } from "../../../../../types";
import type {
Condition,
OrCondition,
StateCondition,
} from "../../../common/validate-condition";
+
+import "../../../../../components/ha-form/ha-form";
import "../ha-card-conditions-editor";
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+import { any, array, assert, literal, object, optional } from "superstruct";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+
const orConditionStruct = object({
condition: literal("or"),
conditions: optional(array(any())),
diff --git a/src/panels/lovelace/editor/conditions/types/ha-card-condition-screen.ts b/src/panels/lovelace/editor/conditions/types/ha-card-condition-screen.ts
index bf609dc5dc..2ccbd73f9c 100644
--- a/src/panels/lovelace/editor/conditions/types/ha-card-condition-screen.ts
+++ b/src/panels/lovelace/editor/conditions/types/ha-card-condition-screen.ts
@@ -1,10 +1,4 @@
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { getAllCombinations } from "../../../../../common/array/combinations";
-import { fireEvent } from "../../../../../common/dom/fire_event";
import type { LocalizeFunc } from "../../../../../common/translations/localize";
-import "../../../../../components/ha-form/ha-form";
import type {
SchemaUnion,
HaFormSchema,
@@ -12,6 +6,15 @@ import type {
import type { HomeAssistant } from "../../../../../types";
import type { ScreenCondition } from "../../../common/validate-condition";
+import "../../../../../components/ha-form/ha-form";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { getAllCombinations } from "../../../../../common/array/combinations";
+import { fireEvent } from "../../../../../common/dom/fire_event";
+
const BREAKPOINT_VALUES = [0, 768, 1024, 1280, Infinity];
const BREAKPOINTS = ["mobile", "tablet", "desktop", "wide"] as const;
diff --git a/src/panels/lovelace/editor/conditions/types/ha-card-condition-state.ts b/src/panels/lovelace/editor/conditions/types/ha-card-condition-state.ts
index 66338de79a..4fd9607583 100644
--- a/src/panels/lovelace/editor/conditions/types/ha-card-condition-state.ts
+++ b/src/panels/lovelace/editor/conditions/types/ha-card-condition-state.ts
@@ -1,17 +1,20 @@
-import type { PropertyValues } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { assert, literal, object, optional, string } from "superstruct";
-import { fireEvent } from "../../../../../common/dom/fire_event";
import type { LocalizeFunc } from "../../../../../common/translations/localize";
-import "../../../../../components/ha-form/ha-form";
import type {
SchemaUnion,
HaFormSchema,
} from "../../../../../components/ha-form/types";
import type { HomeAssistant } from "../../../../../types";
import type { StateCondition } from "../../../common/validate-condition";
+import type { PropertyValues } from "lit";
+
+import "../../../../../components/ha-form/ha-form";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+import { assert, literal, object, optional, string } from "superstruct";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
const stateConditionStruct = object({
condition: literal("state"),
diff --git a/src/panels/lovelace/editor/conditions/types/ha-card-condition-user.ts b/src/panels/lovelace/editor/conditions/types/ha-card-condition-user.ts
index abeb281d4e..b53b3470ff 100644
--- a/src/panels/lovelace/editor/conditions/types/ha-card-condition-user.ts
+++ b/src/panels/lovelace/editor/conditions/types/ha-card-condition-user.ts
@@ -1,18 +1,21 @@
-import "@material/mwc-list";
+import type { User } from "../../../../../data/user";
+import type { HomeAssistant } from "../../../../../types";
+import type { UserCondition } from "../../../common/validate-condition";
import type { PropertyValues } from "lit";
+
+import "../../../../../components/ha-check-list-item";
+import "../../../../../components/ha-switch";
+import "../../../../../components/user/ha-user-badge";
+import "@material/mwc-list";
+
import { LitElement, css, html } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
import { array, assert, literal, object, string } from "superstruct";
+
import { fireEvent } from "../../../../../common/dom/fire_event";
import { stringCompare } from "../../../../../common/string/compare";
-import "../../../../../components/ha-check-list-item";
-import "../../../../../components/ha-switch";
-import "../../../../../components/user/ha-user-badge";
-import type { User } from "../../../../../data/user";
import { fetchUsers } from "../../../../../data/user";
-import type { HomeAssistant } from "../../../../../types";
-import type { UserCondition } from "../../../common/validate-condition";
const userConditionStruct = object({
condition: literal("user"),
diff --git a/src/panels/lovelace/editor/config-elements/elements/hui-conditional-element-editor.ts b/src/panels/lovelace/editor/config-elements/elements/hui-conditional-element-editor.ts
index 6696ebb3ee..8e0e8f6981 100644
--- a/src/panels/lovelace/editor/config-elements/elements/hui-conditional-element-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/elements/hui-conditional-element-editor.ts
@@ -1,3 +1,22 @@
+import type { HASSDomEvent } from "../../../../../common/dom/fire_event";
+import type { SchemaUnion } from "../../../../../components/ha-form/types";
+import type { LovelaceCardConfig } from "../../../../../data/lovelace/config/card";
+import type { HomeAssistant } from "../../../../../types";
+import type {
+ ConditionalElementConfig,
+ LovelaceElementConfig,
+} from "../../../elements/types";
+import type { LovelacePictureElementEditor } from "../../../types";
+import type {
+ EditDetailElementEvent,
+ SubElementEditorConfig,
+} from "../../types";
+
+import "../../../../../components/ha-form/ha-form";
+import "../../conditions/ha-card-conditions-editor";
+import "../../hui-picture-elements-card-row-editor";
+import "../../hui-sub-element-editor";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import {
@@ -9,24 +28,8 @@ import {
optional,
string,
} from "superstruct";
-import type { HASSDomEvent } from "../../../../../common/dom/fire_event";
+
import { fireEvent } from "../../../../../common/dom/fire_event";
-import type { HomeAssistant } from "../../../../../types";
-import "../../../../../components/ha-form/ha-form";
-import type { LovelacePictureElementEditor } from "../../../types";
-import type {
- ConditionalElementConfig,
- LovelaceElementConfig,
-} from "../../../elements/types";
-import "../../conditions/ha-card-conditions-editor";
-import "../../hui-picture-elements-card-row-editor";
-import type { LovelaceCardConfig } from "../../../../../data/lovelace/config/card";
-import type {
- EditDetailElementEvent,
- SubElementEditorConfig,
-} from "../../types";
-import "../../hui-sub-element-editor";
-import type { SchemaUnion } from "../../../../../components/ha-form/types";
const conditionalElementConfigStruct = object({
type: literal("conditional"),
diff --git a/src/panels/lovelace/editor/config-elements/elements/hui-icon-element-editor.ts b/src/panels/lovelace/editor/config-elements/elements/hui-icon-element-editor.ts
index 350327a747..5538e34373 100644
--- a/src/panels/lovelace/editor/config-elements/elements/hui-icon-element-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/elements/hui-icon-element-editor.ts
@@ -1,13 +1,16 @@
-import { mdiGestureTap } from "@mdi/js";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { any, assert, literal, object, optional, string } from "superstruct";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-form/ha-form";
import type { SchemaUnion } from "../../../../../components/ha-form/types";
import type { HomeAssistant } from "../../../../../types";
import type { IconElementConfig } from "../../../elements/types";
import type { LovelacePictureElementEditor } from "../../../types";
+
+import "../../../../../components/ha-form/ha-form";
+
+import { mdiGestureTap } from "@mdi/js";
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { any, assert, literal, object, optional, string } from "superstruct";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
import { actionConfigStruct } from "../../structs/action-struct";
const iconElementConfigStruct = object({
diff --git a/src/panels/lovelace/editor/config-elements/elements/hui-image-element-editor.ts b/src/panels/lovelace/editor/config-elements/elements/hui-image-element-editor.ts
index 092f26456e..72fbeb10af 100644
--- a/src/panels/lovelace/editor/config-elements/elements/hui-image-element-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/elements/hui-image-element-editor.ts
@@ -1,13 +1,16 @@
-import { mdiGestureTap } from "@mdi/js";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { any, assert, literal, object, optional, string } from "superstruct";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-form/ha-form";
import type { SchemaUnion } from "../../../../../components/ha-form/types";
import type { HomeAssistant } from "../../../../../types";
import type { ImageElementConfig } from "../../../elements/types";
import type { LovelacePictureElementEditor } from "../../../types";
+
+import "../../../../../components/ha-form/ha-form";
+
+import { mdiGestureTap } from "@mdi/js";
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { any, assert, literal, object, optional, string } from "superstruct";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
import { actionConfigStruct } from "../../structs/action-struct";
const imageElementConfigStruct = object({
diff --git a/src/panels/lovelace/editor/config-elements/elements/hui-service-button-element-editor.ts b/src/panels/lovelace/editor/config-elements/elements/hui-service-button-element-editor.ts
index 9cd2088342..c29e7c7940 100644
--- a/src/panels/lovelace/editor/config-elements/elements/hui-service-button-element-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/elements/hui-service-button-element-editor.ts
@@ -1,16 +1,19 @@
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { any, assert, enums, object, optional, string } from "superstruct";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-form/ha-form";
import type { SchemaUnion } from "../../../../../components/ha-form/types";
-import "../../../../../components/ha-service-control";
import type { ServiceAction } from "../../../../../data/script";
import type { HomeAssistant } from "../../../../../types";
import type { ServiceButtonElementConfig } from "../../../elements/types";
import type { LovelacePictureElementEditor } from "../../../types";
+import "../../../../../components/ha-form/ha-form";
+import "../../../../../components/ha-service-control";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+import { any, assert, enums, object, optional, string } from "superstruct";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
+
const serviceButtonElementConfigStruct = object({
type: enums(["service-button", "action-button"]),
style: optional(any()),
diff --git a/src/panels/lovelace/editor/config-elements/elements/hui-state-badge-element-editor.ts b/src/panels/lovelace/editor/config-elements/elements/hui-state-badge-element-editor.ts
index 5e012c7a9e..d7bbff0584 100644
--- a/src/panels/lovelace/editor/config-elements/elements/hui-state-badge-element-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/elements/hui-state-badge-element-editor.ts
@@ -1,13 +1,16 @@
+import type { SchemaUnion } from "../../../../../components/ha-form/types";
+import type { HomeAssistant } from "../../../../../types";
+import type { StateBadgeElementConfig } from "../../../elements/types";
+import type { LovelacePictureElementEditor } from "../../../types";
+
+import "../../../../../components/ha-form/ha-form";
+
+import { mdiGestureTap } from "@mdi/js";
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { any, assert, literal, object, optional, string } from "superstruct";
-import { mdiGestureTap } from "@mdi/js";
+
import { fireEvent } from "../../../../../common/dom/fire_event";
-import type { SchemaUnion } from "../../../../../components/ha-form/types";
-import type { HomeAssistant } from "../../../../../types";
-import "../../../../../components/ha-form/ha-form";
-import type { LovelacePictureElementEditor } from "../../../types";
-import type { StateBadgeElementConfig } from "../../../elements/types";
import { actionConfigStruct } from "../../structs/action-struct";
const stateBadgeElementConfigStruct = object({
diff --git a/src/panels/lovelace/editor/config-elements/elements/hui-state-icon-element-editor.ts b/src/panels/lovelace/editor/config-elements/elements/hui-state-icon-element-editor.ts
index 217d8edac6..2a025cc248 100644
--- a/src/panels/lovelace/editor/config-elements/elements/hui-state-icon-element-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/elements/hui-state-icon-element-editor.ts
@@ -1,3 +1,10 @@
+import type { SchemaUnion } from "../../../../../components/ha-form/types";
+import type { HomeAssistant } from "../../../../../types";
+import type { StateIconElementConfig } from "../../../elements/types";
+import type { LovelacePictureElementEditor } from "../../../types";
+
+import "../../../../../components/ha-form/ha-form";
+
import { mdiGestureTap } from "@mdi/js";
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
@@ -10,12 +17,8 @@ import {
optional,
string,
} from "superstruct";
+
import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-form/ha-form";
-import type { SchemaUnion } from "../../../../../components/ha-form/types";
-import type { HomeAssistant } from "../../../../../types";
-import type { StateIconElementConfig } from "../../../elements/types";
-import type { LovelacePictureElementEditor } from "../../../types";
import { actionConfigStruct } from "../../structs/action-struct";
const stateIconElementConfigStruct = object({
diff --git a/src/panels/lovelace/editor/config-elements/elements/hui-state-label-element-editor.ts b/src/panels/lovelace/editor/config-elements/elements/hui-state-label-element-editor.ts
index 561419dd9e..0987da51bd 100644
--- a/src/panels/lovelace/editor/config-elements/elements/hui-state-label-element-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/elements/hui-state-label-element-editor.ts
@@ -1,13 +1,16 @@
-import { mdiGestureTap } from "@mdi/js";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { any, assert, literal, object, optional, string } from "superstruct";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-form/ha-form";
import type { SchemaUnion } from "../../../../../components/ha-form/types";
import type { HomeAssistant } from "../../../../../types";
import type { StateLabelElementConfig } from "../../../elements/types";
import type { LovelacePictureElementEditor } from "../../../types";
+
+import "../../../../../components/ha-form/ha-form";
+
+import { mdiGestureTap } from "@mdi/js";
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { any, assert, literal, object, optional, string } from "superstruct";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
import { actionConfigStruct } from "../../structs/action-struct";
const stateLabelElementConfigStruct = object({
diff --git a/src/panels/lovelace/editor/config-elements/hui-alarm-modes-card-feature-editor.ts b/src/panels/lovelace/editor/config-elements/hui-alarm-modes-card-feature-editor.ts
index 60855d787f..5747c5f323 100644
--- a/src/panels/lovelace/editor/config-elements/hui-alarm-modes-card-feature-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-alarm-modes-card-feature-editor.ts
@@ -1,21 +1,24 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { LocalizeFunc } from "../../../../common/translations/localize";
-import "../../../../components/ha-form/ha-form";
import type {
HaFormSchema,
SchemaUnion,
} from "../../../../components/ha-form/types";
-import { supportedAlarmModes } from "../../../../data/alarm_control_panel";
import type { HomeAssistant } from "../../../../types";
import type {
AlarmModesCardFeatureConfig,
LovelaceCardFeatureContext,
} from "../../card-features/types";
import type { LovelaceCardFeatureEditor } from "../../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { supportedAlarmModes } from "../../../../data/alarm_control_panel";
type AlarmModesCardFeatureData = AlarmModesCardFeatureConfig & {
customize_modes: boolean;
diff --git a/src/panels/lovelace/editor/config-elements/hui-alarm-panel-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-alarm-panel-card-editor.ts
index 63daefefb1..5a3a22e2e0 100644
--- a/src/panels/lovelace/editor/config-elements/hui-alarm-panel-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-alarm-panel-card-editor.ts
@@ -1,11 +1,4 @@
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { array, assert, assign, object, optional, string } from "superstruct";
-import type { HassEntity } from "home-assistant-js-websocket";
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { LocalizeFunc } from "../../../../common/translations/localize";
-import "../../../../components/ha-form/ha-form";
import type { SchemaUnion } from "../../../../components/ha-form/types";
import type { HomeAssistant } from "../../../../types";
import type {
@@ -13,14 +6,24 @@ import type {
AlarmPanelCardConfigState,
} from "../../cards/types";
import type { LovelaceCardEditor } from "../../types";
-import { baseLovelaceCardConfig } from "../structs/base-card-struct";
+import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+import { array, assert, assign, object, optional, string } from "superstruct";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { supportsFeature } from "../../../../common/entity/supports-feature";
+import { ALARM_MODES } from "../../../../data/alarm_control_panel";
import {
DEFAULT_STATES,
ALARM_MODE_STATE_MAP,
filterSupportedAlarmStates,
} from "../../cards/hui-alarm-panel-card";
-import { supportsFeature } from "../../../../common/entity/supports-feature";
-import { ALARM_MODES } from "../../../../data/alarm_control_panel";
+import { baseLovelaceCardConfig } from "../structs/base-card-struct";
const cardConfigStruct = assign(
baseLovelaceCardConfig,
diff --git a/src/panels/lovelace/editor/config-elements/hui-area-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-area-card-editor.ts
index d73fe9ecd2..0612e65ee4 100644
--- a/src/panels/lovelace/editor/config-elements/hui-area-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-area-card-editor.ts
@@ -1,3 +1,11 @@
+import type { SchemaUnion } from "../../../../components/ha-form/types";
+import type { SelectOption } from "../../../../data/selector";
+import type { HomeAssistant } from "../../../../types";
+import type { AreaCardConfig } from "../../cards/types";
+import type { LovelaceCardEditor } from "../../types";
+
+import "../../../../components/ha-form/ha-form";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
@@ -10,21 +18,16 @@ import {
optional,
string,
} from "superstruct";
+
import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-form/ha-form";
+import { computeDomain } from "../../../../common/entity/compute_domain";
+import { caseInsensitiveStringCompare } from "../../../../common/string/compare";
+import { getSensorNumericDeviceClasses } from "../../../../data/sensor";
import {
DEFAULT_ASPECT_RATIO,
DEVICE_CLASSES,
} from "../../cards/hui-area-card";
-import type { SchemaUnion } from "../../../../components/ha-form/types";
-import type { HomeAssistant } from "../../../../types";
-import type { AreaCardConfig } from "../../cards/types";
-import type { LovelaceCardEditor } from "../../types";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
-import { computeDomain } from "../../../../common/entity/compute_domain";
-import { caseInsensitiveStringCompare } from "../../../../common/string/compare";
-import type { SelectOption } from "../../../../data/selector";
-import { getSensorNumericDeviceClasses } from "../../../../data/sensor";
const cardConfigStruct = assign(
baseLovelaceCardConfig,
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 6acd0e5867..79eed8d2e3 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
@@ -1,19 +1,22 @@
-import { mdiGestureTap } from "@mdi/js";
-import type { CSSResultGroup } from "lit";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { assert, assign, boolean, object, optional, string } from "superstruct";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-form/ha-form";
import type {
HaFormSchema,
SchemaUnion,
} from "../../../../components/ha-form/types";
import type { HomeAssistant } from "../../../../types";
-import { getEntityDefaultButtonAction } from "../../cards/hui-button-card";
import type { ButtonCardConfig } from "../../cards/types";
import type { LovelaceCardEditor } from "../../types";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-form/ha-form";
+
+import { mdiGestureTap } from "@mdi/js";
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+import { assert, assign, boolean, object, optional, string } from "superstruct";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { getEntityDefaultButtonAction } from "../../cards/hui-button-card";
import { actionConfigStruct } from "../structs/action-struct";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
import { configElementStyle } from "./config-elements-style";
diff --git a/src/panels/lovelace/editor/config-elements/hui-calendar-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-calendar-card-editor.ts
index 8d3de51c1b..6dc0504893 100644
--- a/src/panels/lovelace/editor/config-elements/hui-calendar-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-calendar-card-editor.ts
@@ -1,3 +1,12 @@
+import type { LocalizeFunc } from "../../../../common/translations/localize";
+import type { SchemaUnion } from "../../../../components/ha-form/types";
+import type { HomeAssistant } from "../../../../types";
+import type { CalendarCardConfig } from "../../cards/types";
+import type { LovelaceCardEditor } from "../../types";
+
+import "../../../../components/entity/ha-entities-picker";
+import "../../../../components/ha-form/ha-form";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
@@ -11,14 +20,8 @@ import {
string,
union,
} from "superstruct";
+
import { fireEvent } from "../../../../common/dom/fire_event";
-import type { LocalizeFunc } from "../../../../common/translations/localize";
-import "../../../../components/entity/ha-entities-picker";
-import "../../../../components/ha-form/ha-form";
-import type { SchemaUnion } from "../../../../components/ha-form/types";
-import type { HomeAssistant } from "../../../../types";
-import type { CalendarCardConfig } from "../../cards/types";
-import type { LovelaceCardEditor } from "../../types";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
const cardConfigStruct = assign(
diff --git a/src/panels/lovelace/editor/config-elements/hui-card-features-editor.ts b/src/panels/lovelace/editor/config-elements/hui-card-features-editor.ts
index 0a2c058ada..8fb0251770 100644
--- a/src/panels/lovelace/editor/config-elements/hui-card-features-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-card-features-editor.ts
@@ -1,29 +1,33 @@
-import { mdiDelete, mdiDrag, mdiPencil, mdiPlus } from "@mdi/js";
+import type { CustomCardFeatureEntry } from "../../../../data/lovelace_custom_cards";
+import type { HomeAssistant } from "../../../../types";
+import type { LovelaceCardFeatureConfig } from "../../card-features/types";
import type { HassEntity } from "home-assistant-js-websocket";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import { repeat } from "lit/directives/repeat";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { stopPropagation } from "../../../../common/dom/stop_propagation";
+
import "../../../../components/ha-button";
import "../../../../components/ha-icon-button";
import "../../../../components/ha-list-item";
import "../../../../components/ha-sortable";
import "../../../../components/ha-svg-icon";
-import type { CustomCardFeatureEntry } from "../../../../data/lovelace_custom_cards";
+
+import { mdiDelete, mdiDrag, mdiPencil, mdiPlus } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+import { repeat } from "lit/directives/repeat";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { stopPropagation } from "../../../../common/dom/stop_propagation";
import {
CUSTOM_TYPE_PREFIX,
getCustomCardFeatures,
isCustomType,
stripCustomPrefix,
} from "../../../../data/lovelace_custom_cards";
-import type { HomeAssistant } from "../../../../types";
import { supportsAlarmModesCardFeature } from "../../card-features/hui-alarm-modes-card-feature";
import { supportsClimateFanModesCardFeature } from "../../card-features/hui-climate-fan-modes-card-feature";
import { supportsClimateHvacModesCardFeature } from "../../card-features/hui-climate-hvac-modes-card-feature";
import { supportsClimatePresetModesCardFeature } from "../../card-features/hui-climate-preset-modes-card-feature";
-import { supportsClimateSwingModesCardFeature } from "../../card-features/hui-climate-swing-modes-card-feature";
import { supportsClimateSwingHorizontalModesCardFeature } from "../../card-features/hui-climate-swing-horizontal-modes-card-feature";
+import { supportsClimateSwingModesCardFeature } from "../../card-features/hui-climate-swing-modes-card-feature";
import { supportsCounterActionsCardFeature } from "../../card-features/hui-counter-actions-card-feature";
import { supportsCoverOpenCloseCardFeature } from "../../card-features/hui-cover-open-close-card-feature";
import { supportsCoverPositionCardFeature } from "../../card-features/hui-cover-position-card-feature";
@@ -47,7 +51,6 @@ import { supportsToggleCardFeature } from "../../card-features/hui-toggle-card-f
import { supportsUpdateActionsCardFeature } from "../../card-features/hui-update-actions-card-feature";
import { supportsVacuumCommandsCardFeature } from "../../card-features/hui-vacuum-commands-card-feature";
import { supportsWaterHeaterOperationModesCardFeature } from "../../card-features/hui-water-heater-operation-modes-card-feature";
-import type { LovelaceCardFeatureConfig } from "../../card-features/types";
import { getCardFeatureElementClass } from "../../create-element/create-card-feature-element";
export type FeatureType = LovelaceCardFeatureConfig["type"];
diff --git a/src/panels/lovelace/editor/config-elements/hui-climate-fan-modes-card-feature-editor.ts b/src/panels/lovelace/editor/config-elements/hui-climate-fan-modes-card-feature-editor.ts
index 8921289f7b..8f5ffdfdde 100644
--- a/src/panels/lovelace/editor/config-elements/hui-climate-fan-modes-card-feature-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-climate-fan-modes-card-feature-editor.ts
@@ -1,11 +1,5 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { FormatEntityAttributeValueFunc } from "../../../../common/translations/entity-state";
import type { LocalizeFunc } from "../../../../common/translations/localize";
-import "../../../../components/ha-form/ha-form";
import type {
HaFormSchema,
SchemaUnion,
@@ -16,6 +10,15 @@ import type {
LovelaceCardFeatureContext,
} from "../../card-features/types";
import type { LovelaceCardFeatureEditor } from "../../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
type ClimateFanModesCardFeatureData = ClimateFanModesCardFeatureConfig & {
customize_modes: boolean;
diff --git a/src/panels/lovelace/editor/config-elements/hui-climate-hvac-modes-card-feature-editor.ts b/src/panels/lovelace/editor/config-elements/hui-climate-hvac-modes-card-feature-editor.ts
index 577fec9be9..789dadd88e 100644
--- a/src/panels/lovelace/editor/config-elements/hui-climate-hvac-modes-card-feature-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-climate-hvac-modes-card-feature-editor.ts
@@ -1,22 +1,25 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { FormatEntityStateFunc } from "../../../../common/translations/entity-state";
import type { LocalizeFunc } from "../../../../common/translations/localize";
-import "../../../../components/ha-form/ha-form";
import type {
HaFormSchema,
SchemaUnion,
} from "../../../../components/ha-form/types";
-import { compareClimateHvacModes } from "../../../../data/climate";
import type { HomeAssistant } from "../../../../types";
import type {
ClimateHvacModesCardFeatureConfig,
LovelaceCardFeatureContext,
} from "../../card-features/types";
import type { LovelaceCardFeatureEditor } from "../../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { compareClimateHvacModes } from "../../../../data/climate";
type ClimateHvacModesCardFeatureData = ClimateHvacModesCardFeatureConfig & {
customize_modes: boolean;
diff --git a/src/panels/lovelace/editor/config-elements/hui-climate-preset-modes-card-feature-editor.ts b/src/panels/lovelace/editor/config-elements/hui-climate-preset-modes-card-feature-editor.ts
index 75522c0635..ad3f4d7796 100644
--- a/src/panels/lovelace/editor/config-elements/hui-climate-preset-modes-card-feature-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-climate-preset-modes-card-feature-editor.ts
@@ -1,11 +1,5 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { FormatEntityAttributeValueFunc } from "../../../../common/translations/entity-state";
import type { LocalizeFunc } from "../../../../common/translations/localize";
-import "../../../../components/ha-form/ha-form";
import type {
HaFormSchema,
SchemaUnion,
@@ -16,6 +10,15 @@ import type {
LovelaceCardFeatureContext,
} from "../../card-features/types";
import type { LovelaceCardFeatureEditor } from "../../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
type ClimatePresetModesCardFeatureData = ClimatePresetModesCardFeatureConfig & {
customize_modes: boolean;
diff --git a/src/panels/lovelace/editor/config-elements/hui-climate-swing-horizontal-modes-card-feature-editor.ts b/src/panels/lovelace/editor/config-elements/hui-climate-swing-horizontal-modes-card-feature-editor.ts
index 0e7da95fe5..e0bb4bfe1a 100644
--- a/src/panels/lovelace/editor/config-elements/hui-climate-swing-horizontal-modes-card-feature-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-climate-swing-horizontal-modes-card-feature-editor.ts
@@ -1,11 +1,5 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { FormatEntityAttributeValueFunc } from "../../../../common/translations/entity-state";
import type { LocalizeFunc } from "../../../../common/translations/localize";
-import "../../../../components/ha-form/ha-form";
import type {
HaFormSchema,
SchemaUnion,
@@ -16,6 +10,15 @@ import type {
LovelaceCardFeatureContext,
} from "../../card-features/types";
import type { LovelaceCardFeatureEditor } from "../../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
type ClimateSwingHorizontalModesCardFeatureData =
ClimateSwingHorizontalModesCardFeatureConfig & {
diff --git a/src/panels/lovelace/editor/config-elements/hui-climate-swing-modes-card-feature-editor.ts b/src/panels/lovelace/editor/config-elements/hui-climate-swing-modes-card-feature-editor.ts
index b46efbaae7..35b37a3ccd 100644
--- a/src/panels/lovelace/editor/config-elements/hui-climate-swing-modes-card-feature-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-climate-swing-modes-card-feature-editor.ts
@@ -1,11 +1,5 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { FormatEntityAttributeValueFunc } from "../../../../common/translations/entity-state";
import type { LocalizeFunc } from "../../../../common/translations/localize";
-import "../../../../components/ha-form/ha-form";
import type {
HaFormSchema,
SchemaUnion,
@@ -16,6 +10,15 @@ import type {
LovelaceCardFeatureContext,
} from "../../card-features/types";
import type { LovelaceCardFeatureEditor } from "../../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
type ClimateSwingModesCardFeatureData = ClimateSwingModesCardFeatureConfig & {
customize_modes: boolean;
diff --git a/src/panels/lovelace/editor/config-elements/hui-clock-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-clock-card-editor.ts
index cb73a2460d..fb9d424cf9 100644
--- a/src/panels/lovelace/editor/config-elements/hui-clock-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-clock-card-editor.ts
@@ -1,3 +1,14 @@
+import type { LocalizeFunc } from "../../../../common/translations/localize";
+import type {
+ HaFormSchema,
+ SchemaUnion,
+} from "../../../../components/ha-form/types";
+import type { HomeAssistant } from "../../../../types";
+import type { ClockCardConfig } from "../../cards/types";
+import type { LovelaceCardEditor } from "../../types";
+
+import "../../../../components/ha-form/ha-form";
+
import timezones from "google-timezones-json";
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
@@ -13,18 +24,10 @@ import {
string,
union,
} from "superstruct";
+
import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-form/ha-form";
-import type {
- HaFormSchema,
- SchemaUnion,
-} from "../../../../components/ha-form/types";
-import type { HomeAssistant } from "../../../../types";
-import type { LocalizeFunc } from "../../../../common/translations/localize";
-import type { ClockCardConfig } from "../../cards/types";
-import type { LovelaceCardEditor } from "../../types";
-import { baseLovelaceCardConfig } from "../structs/base-card-struct";
import { TimeFormat } from "../../../../data/translation";
+import { baseLovelaceCardConfig } from "../structs/base-card-struct";
const cardConfigStruct = assign(
baseLovelaceCardConfig,
diff --git a/src/panels/lovelace/editor/config-elements/hui-conditional-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-conditional-card-editor.ts
index 14e8b07430..c9a1458e27 100644
--- a/src/panels/lovelace/editor/config-elements/hui-conditional-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-conditional-card-editor.ts
@@ -1,32 +1,35 @@
-import "@material/mwc-tab-bar/mwc-tab-bar";
-import "@material/mwc-tab/mwc-tab";
-import type { MDCTabBarActivatedEvent } from "@material/tab-bar";
-import { mdiCodeBraces, mdiContentCopy, mdiListBoxOutline } from "@mdi/js";
-import deepClone from "deep-clone-simple";
-import type { CSSResultGroup } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { any, array, assert, assign, object, optional } from "superstruct";
-import { storage } from "../../../../common/decorators/storage";
import type { HASSDomEvent } from "../../../../common/dom/fire_event";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-alert";
-import "../../../../components/ha-button";
-import "../../../../components/ha-list-item";
-import "../../../../components/ha-svg-icon";
import type { LovelaceCardConfig } from "../../../../data/lovelace/config/card";
import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
import type { HomeAssistant } from "../../../../types";
import type { ConditionalCardConfig } from "../../cards/types";
import type { LovelaceCardEditor } from "../../types";
-import "../card-editor/hui-card-element-editor";
import type { HuiCardElementEditor } from "../card-editor/hui-card-element-editor";
+import type { ConfigChangedEvent } from "../hui-element-editor";
+import type { GUIModeChangedEvent } from "../types";
+import type { MDCTabBarActivatedEvent } from "@material/tab-bar";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-alert";
+import "../../../../components/ha-button";
+import "../../../../components/ha-list-item";
+import "../../../../components/ha-svg-icon";
+import "../card-editor/hui-card-element-editor";
import "../card-editor/hui-card-picker";
import "../conditions/ha-card-conditions-editor";
import "../hui-element-editor";
-import type { ConfigChangedEvent } from "../hui-element-editor";
+import "@material/mwc-tab-bar/mwc-tab-bar";
+import "@material/mwc-tab/mwc-tab";
+
+import { mdiCodeBraces, mdiContentCopy, mdiListBoxOutline } from "@mdi/js";
+import deepClone from "deep-clone-simple";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import { any, array, assert, assign, object, optional } from "superstruct";
+
+import { storage } from "../../../../common/decorators/storage";
+import { fireEvent } from "../../../../common/dom/fire_event";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
-import type { GUIModeChangedEvent } from "../types";
import { configElementStyle } from "./config-elements-style";
const cardConfigStruct = assign(
diff --git a/src/panels/lovelace/editor/config-elements/hui-counter-actions-card-feature-editor.ts b/src/panels/lovelace/editor/config-elements/hui-counter-actions-card-feature-editor.ts
index 97e17f7c93..e2b12b7e36 100644
--- a/src/panels/lovelace/editor/config-elements/hui-counter-actions-card-feature-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-counter-actions-card-feature-editor.ts
@@ -1,17 +1,20 @@
+import type { LocalizeFunc } from "../../../../common/translations/localize";
+import type { SchemaUnion } from "../../../../components/ha-form/types";
+import type { HomeAssistant } from "../../../../types";
+import type { LovelaceCardFeatureEditor } from "../../types";
+
+import "../../../../components/ha-form/ha-form";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../../../common/dom/fire_event";
-import type { LocalizeFunc } from "../../../../common/translations/localize";
-import type { SchemaUnion } from "../../../../components/ha-form/types";
-import "../../../../components/ha-form/ha-form";
-import type { HomeAssistant } from "../../../../types";
import {
COUNTER_ACTIONS,
type LovelaceCardFeatureContext,
type CounterActionsCardFeatureConfig,
} from "../../card-features/types";
-import type { LovelaceCardFeatureEditor } from "../../types";
@customElement("hui-counter-actions-card-feature-editor")
export class HuiCounterActionsCardFeatureEditor
diff --git a/src/panels/lovelace/editor/config-elements/hui-entities-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-entities-card-editor.ts
index 47b172d615..bd899a4a71 100644
--- a/src/panels/lovelace/editor/config-elements/hui-entities-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-entities-card-editor.ts
@@ -1,4 +1,25 @@
+import type { HASSDomEvent } from "../../../../common/dom/fire_event";
+import type { HomeAssistant } from "../../../../types";
+import type { EntitiesCardConfig } from "../../cards/types";
+import type { LovelaceRowConfig } from "../../entity-rows/types";
+import type { LovelaceCardEditor } from "../../types";
+import type {
+ EditorTarget,
+ EditDetailElementEvent,
+ SubElementEditorConfig,
+} from "../types";
import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-card";
+import "../../../../components/ha-formfield";
+import "../../../../components/ha-icon";
+import "../../../../components/ha-switch";
+import "../../../../components/ha-textfield";
+import "../../../../components/ha-theme-picker";
+import "../header-footer-editor/hui-header-footer-editor";
+import "../hui-entities-card-row-editor";
+import "../hui-sub-element-editor";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import {
@@ -17,35 +38,17 @@ import {
type,
union,
} from "superstruct";
-import type { HASSDomEvent } from "../../../../common/dom/fire_event";
+
import { fireEvent } from "../../../../common/dom/fire_event";
import { customType } from "../../../../common/structs/is-custom-type";
-import "../../../../components/ha-card";
-import "../../../../components/ha-formfield";
-import "../../../../components/ha-icon";
-import "../../../../components/ha-switch";
-import "../../../../components/ha-textfield";
-import "../../../../components/ha-theme-picker";
import { isCustomType } from "../../../../data/lovelace_custom_cards";
-import type { HomeAssistant } from "../../../../types";
-import type { EntitiesCardConfig } from "../../cards/types";
import { TIMESTAMP_RENDERING_FORMATS } from "../../components/types";
-import type { LovelaceRowConfig } from "../../entity-rows/types";
import { headerFooterConfigStructs } from "../../header-footer/structs";
-import type { LovelaceCardEditor } from "../../types";
-import "../header-footer-editor/hui-header-footer-editor";
-import "../hui-entities-card-row-editor";
-import "../hui-sub-element-editor";
import { processEditorEntities } from "../process-editor-entities";
import { actionConfigStruct } from "../structs/action-struct";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
import { buttonEntityConfigStruct } from "../structs/button-entity-struct";
import { entitiesConfigStruct } from "../structs/entities-struct";
-import type {
- EditorTarget,
- EditDetailElementEvent,
- SubElementEditorConfig,
-} from "../types";
import { configElementStyle } from "./config-elements-style";
const buttonEntitiesRowConfigStruct = object({
diff --git a/src/panels/lovelace/editor/config-elements/hui-entity-badge-editor.ts b/src/panels/lovelace/editor/config-elements/hui-entity-badge-editor.ts
index f98e9dcbb1..fe6c6d11bd 100644
--- a/src/panels/lovelace/editor/config-elements/hui-entity-badge-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-entity-badge-editor.ts
@@ -1,3 +1,16 @@
+import type { LocalizeFunc } from "../../../../common/translations/localize";
+import type {
+ HaFormSchema,
+ SchemaUnion,
+} from "../../../../components/ha-form/types";
+import type { HomeAssistant } from "../../../../types";
+import type { EntityBadgeConfig } from "../../badges/types";
+import type { LovelaceBadgeEditor } from "../../types";
+
+import "../../../../components/ha-form/ha-form";
+import "../hui-sub-element-editor";
+import "./hui-card-features-editor";
+
import { mdiGestureTap, mdiTextShort } from "@mdi/js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
@@ -13,26 +26,16 @@ import {
string,
union,
} from "superstruct";
+
import { fireEvent } from "../../../../common/dom/fire_event";
-import type { LocalizeFunc } from "../../../../common/translations/localize";
-import "../../../../components/ha-form/ha-form";
-import type {
- HaFormSchema,
- SchemaUnion,
-} from "../../../../components/ha-form/types";
-import type { HomeAssistant } from "../../../../types";
import {
DEFAULT_CONFIG,
DISPLAY_TYPES,
migrateLegacyEntityBadgeConfig,
} from "../../badges/hui-entity-badge";
-import type { EntityBadgeConfig } from "../../badges/types";
-import type { LovelaceBadgeEditor } from "../../types";
-import "../hui-sub-element-editor";
import { actionConfigStruct } from "../structs/action-struct";
import { baseLovelaceBadgeConfig } from "../structs/base-badge-struct";
import { configElementStyle } from "./config-elements-style";
-import "./hui-card-features-editor";
const badgeConfigStruct = assign(
baseLovelaceBadgeConfig,
diff --git a/src/panels/lovelace/editor/config-elements/hui-entity-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-entity-card-editor.ts
index 5144acff59..2341c49034 100644
--- a/src/panels/lovelace/editor/config-elements/hui-entity-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-entity-card-editor.ts
@@ -1,9 +1,11 @@
-import { assert, assign, boolean, object, optional, string } from "superstruct";
import type { LocalizeFunc } from "../../../../common/translations/localize";
import type { HaFormSchema } from "../../../../components/ha-form/types";
import type { EntityCardConfig } from "../../cards/types";
-import { headerFooterConfigStructs } from "../../header-footer/structs";
import type { LovelaceConfigForm } from "../../types";
+
+import { assert, assign, boolean, object, optional, string } from "superstruct";
+
+import { headerFooterConfigStructs } from "../../header-footer/structs";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
const struct = assign(
diff --git a/src/panels/lovelace/editor/config-elements/hui-fan-preset-modes-card-feature-editor.ts b/src/panels/lovelace/editor/config-elements/hui-fan-preset-modes-card-feature-editor.ts
index 92d993dcd7..e6df58c22f 100644
--- a/src/panels/lovelace/editor/config-elements/hui-fan-preset-modes-card-feature-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-fan-preset-modes-card-feature-editor.ts
@@ -1,11 +1,5 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { FormatEntityAttributeValueFunc } from "../../../../common/translations/entity-state";
import type { LocalizeFunc } from "../../../../common/translations/localize";
-import "../../../../components/ha-form/ha-form";
import type {
HaFormSchema,
SchemaUnion,
@@ -16,6 +10,15 @@ import type {
LovelaceCardFeatureContext,
} from "../../card-features/types";
import type { LovelaceCardFeatureEditor } from "../../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
type FanPresetModesCardFeatureData = FanPresetModesCardFeatureConfig & {
customize_modes: boolean;
diff --git a/src/panels/lovelace/editor/config-elements/hui-form-editor.ts b/src/panels/lovelace/editor/config-elements/hui-form-editor.ts
index a0bb712ebf..05c66bc04b 100644
--- a/src/panels/lovelace/editor/config-elements/hui-form-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-form-editor.ts
@@ -1,14 +1,17 @@
-import type { CSSResultGroup } from "lit";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { capitalizeFirstLetter } from "../../../../common/string/capitalize-first-letter";
import type { LocalizeFunc } from "../../../../common/translations/localize";
-import "../../../../components/ha-form/ha-form";
import type { HaFormSchema } from "../../../../components/ha-form/types";
import type { LovelaceCardConfig } from "../../../../data/lovelace/config/card";
import type { HomeAssistant } from "../../../../types";
import type { LovelaceGenericElementEditor } from "../../types";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { capitalizeFirstLetter } from "../../../../common/string/capitalize-first-letter";
import { configElementStyle } from "./config-elements-style";
@customElement("hui-form-editor")
diff --git a/src/panels/lovelace/editor/config-elements/hui-gauge-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-gauge-card-editor.ts
index 0b7359a9e8..43a7bca379 100644
--- a/src/panels/lovelace/editor/config-elements/hui-gauge-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-gauge-card-editor.ts
@@ -1,3 +1,11 @@
+import type { SchemaUnion } from "../../../../components/ha-form/types";
+import type { HomeAssistant } from "../../../../types";
+import type { GaugeCardConfig } from "../../cards/types";
+import type { UiAction } from "../../components/hui-action-editor";
+import type { LovelaceCardEditor } from "../../types";
+
+import "../../../../components/ha-form/ha-form";
+
import { mdiGestureTap } from "@mdi/js";
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
@@ -13,14 +21,9 @@ import {
refine,
string,
} from "superstruct";
+
import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-form/ha-form";
-import type { SchemaUnion } from "../../../../components/ha-form/types";
-import type { HomeAssistant } from "../../../../types";
import { DEFAULT_MAX, DEFAULT_MIN } from "../../cards/hui-gauge-card";
-import type { GaugeCardConfig } from "../../cards/types";
-import type { UiAction } from "../../components/hui-action-editor";
-import type { LovelaceCardEditor } from "../../types";
import { actionConfigStruct } from "../structs/action-struct";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
diff --git a/src/panels/lovelace/editor/config-elements/hui-generic-entity-row-editor.ts b/src/panels/lovelace/editor/config-elements/hui-generic-entity-row-editor.ts
index 70d8c9b6ae..1b818622f7 100644
--- a/src/panels/lovelace/editor/config-elements/hui-generic-entity-row-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-generic-entity-row-editor.ts
@@ -1,15 +1,18 @@
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { assert } from "superstruct";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { computeDomain } from "../../../../common/entity/compute_domain";
import type { LocalizeFunc } from "../../../../common/translations/localize";
-import "../../../../components/ha-form/ha-form";
import type { SchemaUnion } from "../../../../components/ha-form/types";
import type { HomeAssistant } from "../../../../types";
import type { EntitiesCardEntityConfig } from "../../cards/types";
import type { LovelaceRowEditor } from "../../types";
+
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+import { assert } from "superstruct";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { computeDomain } from "../../../../common/entity/compute_domain";
import { entitiesConfigStruct } from "../structs/entities-struct";
const SECONDARY_INFO_VALUES = {
diff --git a/src/panels/lovelace/editor/config-elements/hui-glance-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-glance-card-editor.ts
index 3ef29aaf10..3af425f868 100644
--- a/src/panels/lovelace/editor/config-elements/hui-glance-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-glance-card-editor.ts
@@ -1,3 +1,11 @@
+import type { SchemaUnion } from "../../../../components/ha-form/types";
+import type { HomeAssistant } from "../../../../types";
+import type { ConfigEntity, GlanceCardConfig } from "../../cards/types";
+import type { LovelaceCardEditor } from "../../types";
+
+import "../../../../components/ha-form/ha-form";
+import "../../components/hui-entity-editor";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import {
@@ -11,13 +19,8 @@ import {
string,
union,
} from "superstruct";
+
import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-form/ha-form";
-import type { SchemaUnion } from "../../../../components/ha-form/types";
-import type { HomeAssistant } from "../../../../types";
-import type { ConfigEntity, GlanceCardConfig } from "../../cards/types";
-import "../../components/hui-entity-editor";
-import type { LovelaceCardEditor } from "../../types";
import { processEditorEntities } from "../process-editor-entities";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
import { entitiesConfigStruct } from "../structs/entities-struct";
diff --git a/src/panels/lovelace/editor/config-elements/hui-graph-footer-editor.ts b/src/panels/lovelace/editor/config-elements/hui-graph-footer-editor.ts
index ae15ee6079..7b08f13328 100644
--- a/src/panels/lovelace/editor/config-elements/hui-graph-footer-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-graph-footer-editor.ts
@@ -1,18 +1,21 @@
-import type { CSSResultGroup } from "lit";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { assert } from "superstruct";
import type { HASSDomEvent } from "../../../../common/dom/fire_event";
-import { fireEvent } from "../../../../common/dom/fire_event";
+import type { HomeAssistant } from "../../../../types";
+import type { GraphHeaderFooterConfig } from "../../header-footer/types";
+import type { LovelaceCardEditor } from "../../types";
+import type { EditorTarget, EntitiesEditorEvent } from "../types";
+import type { CSSResultGroup } from "lit";
+
import "../../../../components/entity/ha-entity-picker";
import "../../../../components/ha-formfield";
import "../../../../components/ha-switch";
import "../../../../components/ha-textfield";
-import type { HomeAssistant } from "../../../../types";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { assert } from "superstruct";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { graphHeaderFooterConfigStruct } from "../../header-footer/structs";
-import type { GraphHeaderFooterConfig } from "../../header-footer/types";
-import type { LovelaceCardEditor } from "../../types";
-import type { EditorTarget, EntitiesEditorEvent } from "../types";
import { configElementStyle } from "./config-elements-style";
const includeDomains = ["sensor"];
diff --git a/src/panels/lovelace/editor/config-elements/hui-grid-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-grid-card-editor.ts
index 5212293818..0814b4b6c6 100644
--- a/src/panels/lovelace/editor/config-elements/hui-grid-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-grid-card-editor.ts
@@ -1,3 +1,9 @@
+import type {
+ HaFormSchema,
+ SchemaUnion,
+} from "../../../../components/ha-form/types";
+import type { GridCardConfig } from "../../cards/types";
+
import { customElement } from "lit/decorators";
import {
any,
@@ -10,14 +16,10 @@ import {
optional,
string,
} from "superstruct";
-import type {
- HaFormSchema,
- SchemaUnion,
-} from "../../../../components/ha-form/types";
-import type { GridCardConfig } from "../../cards/types";
+
+import { DEFAULT_COLUMNS } from "../../cards/hui-grid-card";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
import { HuiStackCardEditor } from "./hui-stack-card-editor";
-import { DEFAULT_COLUMNS } from "../../cards/hui-grid-card";
const cardConfigStruct = assign(
baseLovelaceCardConfig,
diff --git a/src/panels/lovelace/editor/config-elements/hui-heading-badges-editor.ts b/src/panels/lovelace/editor/config-elements/hui-heading-badges-editor.ts
index 1624036f5e..c5c92dd8eb 100644
--- a/src/panels/lovelace/editor/config-elements/hui-heading-badges-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-heading-badges-editor.ts
@@ -1,21 +1,24 @@
-import { mdiDelete, mdiDrag, mdiPencil, mdiPlus } from "@mdi/js";
-import type { ComboBoxLightOpenedChangedEvent } from "@vaadin/combo-box/vaadin-combo-box-light";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { repeat } from "lit/directives/repeat";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { preventDefault } from "../../../../common/dom/prevent_default";
-import { stopPropagation } from "../../../../common/dom/stop_propagation";
-import { computeStateName } from "../../../../common/entity/compute_state_name";
-import "../../../../components/entity/ha-entity-picker";
import type { HaEntityPicker } from "../../../../components/entity/ha-entity-picker";
+import type { HomeAssistant } from "../../../../types";
+import type { LovelaceHeadingBadgeConfig } from "../../heading-badges/types";
+import type { ComboBoxLightOpenedChangedEvent } from "@vaadin/combo-box/vaadin-combo-box-light";
+
+import "../../../../components/entity/ha-entity-picker";
import "../../../../components/ha-button";
import "../../../../components/ha-icon-button";
import "../../../../components/ha-list-item";
import "../../../../components/ha-sortable";
import "../../../../components/ha-svg-icon";
-import type { HomeAssistant } from "../../../../types";
-import type { LovelaceHeadingBadgeConfig } from "../../heading-badges/types";
+
+import { mdiDelete, mdiDrag, mdiPencil, mdiPlus } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import { repeat } from "lit/directives/repeat";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { preventDefault } from "../../../../common/dom/prevent_default";
+import { stopPropagation } from "../../../../common/dom/stop_propagation";
+import { computeStateName } from "../../../../common/entity/compute_state_name";
declare global {
interface HASSDomEvents {
diff --git a/src/panels/lovelace/editor/config-elements/hui-heading-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-heading-card-editor.ts
index 9a0486ebbf..e9f8763652 100644
--- a/src/panels/lovelace/editor/config-elements/hui-heading-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-heading-card-editor.ts
@@ -1,3 +1,24 @@
+import type { HASSDomEvent } from "../../../../common/dom/fire_event";
+import type { LocalizeFunc } from "../../../../common/translations/localize";
+import type {
+ HaFormSchema,
+ SchemaUnion,
+} from "../../../../components/ha-form/types";
+import type { HomeAssistant } from "../../../../types";
+import type { HeadingCardConfig } from "../../cards/types";
+import type { UiAction } from "../../components/hui-action-editor";
+import type {
+ EntityHeadingBadgeConfig,
+ LovelaceHeadingBadgeConfig,
+} from "../../heading-badges/types";
+import type { LovelaceCardEditor } from "../../types";
+import type { EditSubElementEvent } from "../types";
+
+import "../../../../components/ha-expansion-panel";
+import "../../../../components/ha-form/ha-form";
+import "../../../../components/ha-svg-icon";
+import "./hui-heading-badges-editor";
+
import { mdiGestureTap, mdiListBox } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
@@ -12,30 +33,12 @@ import {
optional,
string,
} from "superstruct";
-import type { HASSDomEvent } from "../../../../common/dom/fire_event";
+
import { fireEvent } from "../../../../common/dom/fire_event";
-import type { LocalizeFunc } from "../../../../common/translations/localize";
-import "../../../../components/ha-expansion-panel";
-import "../../../../components/ha-form/ha-form";
-import type {
- HaFormSchema,
- SchemaUnion,
-} from "../../../../components/ha-form/types";
-import "../../../../components/ha-svg-icon";
-import type { HomeAssistant } from "../../../../types";
import { migrateHeadingCardConfig } from "../../cards/hui-heading-card";
-import type { HeadingCardConfig } from "../../cards/types";
-import type { UiAction } from "../../components/hui-action-editor";
-import type {
- EntityHeadingBadgeConfig,
- LovelaceHeadingBadgeConfig,
-} from "../../heading-badges/types";
-import type { LovelaceCardEditor } from "../../types";
import { actionConfigStruct } from "../structs/action-struct";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
-import type { EditSubElementEvent } from "../types";
import { configElementStyle } from "./config-elements-style";
-import "./hui-heading-badges-editor";
const actions: UiAction[] = ["navigate", "url", "perform-action", "none"];
diff --git a/src/panels/lovelace/editor/config-elements/hui-history-graph-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-history-graph-card-editor.ts
index 81ce443d72..60c07d2b7a 100644
--- a/src/panels/lovelace/editor/config-elements/hui-history-graph-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-history-graph-card-editor.ts
@@ -1,4 +1,13 @@
+import type { SchemaUnion } from "../../../../components/ha-form/types";
+import type { HomeAssistant } from "../../../../types";
+import type { HistoryGraphCardConfig } from "../../cards/types";
+import type { EntityConfig } from "../../entity-rows/types";
+import type { LovelaceCardEditor } from "../../types";
import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-form/ha-form";
+import "../../components/hui-entity-editor";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
@@ -12,18 +21,12 @@ import {
optional,
string,
} from "superstruct";
+
import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-form/ha-form";
-import type { SchemaUnion } from "../../../../components/ha-form/types";
-import type { HomeAssistant } from "../../../../types";
-import type { HistoryGraphCardConfig } from "../../cards/types";
-import "../../components/hui-entity-editor";
-import type { EntityConfig } from "../../entity-rows/types";
-import type { LovelaceCardEditor } from "../../types";
+import { DEFAULT_HOURS_TO_SHOW } from "../../cards/hui-history-graph-card";
import { processEditorEntities } from "../process-editor-entities";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
import { entitiesConfigStruct } from "../structs/entities-struct";
-import { DEFAULT_HOURS_TO_SHOW } from "../../cards/hui-history-graph-card";
const cardConfigStruct = assign(
baseLovelaceCardConfig,
diff --git a/src/panels/lovelace/editor/config-elements/hui-humidifier-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-humidifier-card-editor.ts
index ebc035dfe3..0b33bd0d7a 100644
--- a/src/panels/lovelace/editor/config-elements/hui-humidifier-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-humidifier-card-editor.ts
@@ -1,3 +1,23 @@
+import type { HASSDomEvent } from "../../../../common/dom/fire_event";
+import type {
+ HaFormSchema,
+ SchemaUnion,
+} from "../../../../components/ha-form/types";
+import type { HomeAssistant } from "../../../../types";
+import type {
+ LovelaceCardFeatureConfig,
+ LovelaceCardFeatureContext,
+} from "../../card-features/types";
+import type { HumidifierCardConfig } from "../../cards/types";
+import type { LovelaceCardEditor } from "../../types";
+import type { EditDetailElementEvent, EditSubElementEvent } from "../types";
+import type { FeatureType } from "./hui-card-features-editor";
+
+import "../../../../components/ha-expansion-panel";
+import "../../../../components/ha-form/ha-form";
+import "../../../../components/ha-svg-icon";
+import "./hui-card-features-editor";
+
import { mdiListBox } from "@mdi/js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
@@ -11,27 +31,10 @@ import {
optional,
string,
} from "superstruct";
-import type { HASSDomEvent } from "../../../../common/dom/fire_event";
+
import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-expansion-panel";
-import "../../../../components/ha-form/ha-form";
-import type {
- HaFormSchema,
- SchemaUnion,
-} from "../../../../components/ha-form/types";
-import "../../../../components/ha-svg-icon";
-import type { HomeAssistant } from "../../../../types";
-import type {
- LovelaceCardFeatureConfig,
- LovelaceCardFeatureContext,
-} from "../../card-features/types";
-import type { HumidifierCardConfig } from "../../cards/types";
-import type { LovelaceCardEditor } from "../../types";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
-import type { EditDetailElementEvent, EditSubElementEvent } from "../types";
import { configElementStyle } from "./config-elements-style";
-import "./hui-card-features-editor";
-import type { FeatureType } from "./hui-card-features-editor";
const COMPATIBLE_FEATURES_TYPES: FeatureType[] = [
"humidifier-modes",
diff --git a/src/panels/lovelace/editor/config-elements/hui-humidifier-modes-card-feature-editor.ts b/src/panels/lovelace/editor/config-elements/hui-humidifier-modes-card-feature-editor.ts
index 0c63483059..eb0665c843 100644
--- a/src/panels/lovelace/editor/config-elements/hui-humidifier-modes-card-feature-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-humidifier-modes-card-feature-editor.ts
@@ -1,11 +1,5 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { FormatEntityAttributeValueFunc } from "../../../../common/translations/entity-state";
import type { LocalizeFunc } from "../../../../common/translations/localize";
-import "../../../../components/ha-form/ha-form";
import type {
HaFormSchema,
SchemaUnion,
@@ -16,6 +10,15 @@ import type {
LovelaceCardFeatureContext,
} from "../../card-features/types";
import type { LovelaceCardFeatureEditor } from "../../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
type HumidifierModesCardFeatureData = HumidifierModesCardFeatureConfig & {
customize_modes: boolean;
diff --git a/src/panels/lovelace/editor/config-elements/hui-iframe-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-iframe-card-editor.ts
index f6a0b664c8..480b3f7abb 100644
--- a/src/panels/lovelace/editor/config-elements/hui-iframe-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-iframe-card-editor.ts
@@ -1,12 +1,15 @@
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { assert, assign, boolean, object, optional, string } from "superstruct";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-form/ha-form";
import type { SchemaUnion } from "../../../../components/ha-form/types";
import type { HomeAssistant } from "../../../../types";
import type { IframeCardConfig } from "../../cards/types";
import type { LovelaceCardEditor } from "../../types";
+
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { assert, assign, boolean, object, optional, string } from "superstruct";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
const cardConfigStruct = assign(
diff --git a/src/panels/lovelace/editor/config-elements/hui-lawn-mower-commands-card-feature-editor.ts b/src/panels/lovelace/editor/config-elements/hui-lawn-mower-commands-card-feature-editor.ts
index d4c7933ae0..015167c804 100644
--- a/src/panels/lovelace/editor/config-elements/hui-lawn-mower-commands-card-feature-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-lawn-mower-commands-card-feature-editor.ts
@@ -1,19 +1,22 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { LocalizeFunc } from "../../../../common/translations/localize";
import type { SchemaUnion } from "../../../../components/ha-form/types";
-import "../../../../components/ha-form/ha-form";
import type { HomeAssistant } from "../../../../types";
-import { supportsLawnMowerCommand } from "../../card-features/hui-lawn-mower-commands-card-feature";
import type {
LawnMowerCommandsCardFeatureConfig,
LovelaceCardFeatureContext,
} from "../../card-features/types";
-import { LAWN_MOWER_COMMANDS } from "../../card-features/types";
import type { LovelaceCardFeatureEditor } from "../../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { supportsLawnMowerCommand } from "../../card-features/hui-lawn-mower-commands-card-feature";
+import { LAWN_MOWER_COMMANDS } from "../../card-features/types";
@customElement("hui-lawn-mower-commands-card-feature-editor")
export class HuiLawnMowerCommandsCardFeatureEditor
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 2427b5d0d4..6b2f693070 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
@@ -1,14 +1,17 @@
-import type { CSSResultGroup } from "lit";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { assert, assign, object, optional, string } from "superstruct";
-import { mdiGestureTap } from "@mdi/js";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-form/ha-form";
import type { SchemaUnion } from "../../../../components/ha-form/types";
import type { HomeAssistant } from "../../../../types";
import type { LightCardConfig } from "../../cards/types";
import type { LovelaceCardEditor } from "../../types";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-form/ha-form";
+
+import { mdiGestureTap } from "@mdi/js";
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { assert, assign, object, optional, string } from "superstruct";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { actionConfigStruct } from "../structs/action-struct";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
import { configElementStyle } from "./config-elements-style";
diff --git a/src/panels/lovelace/editor/config-elements/hui-logbook-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-logbook-card-editor.ts
index 5315a27796..aea9327322 100644
--- a/src/panels/lovelace/editor/config-elements/hui-logbook-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-logbook-card-editor.ts
@@ -1,3 +1,13 @@
+import type { SchemaUnion } from "../../../../components/ha-form/types";
+import type { HomeAssistant } from "../../../../types";
+import type { LogbookCardConfig } from "../../cards/types";
+import type { LovelaceCardEditor } from "../../types";
+import type { HassServiceTarget } from "home-assistant-js-websocket";
+
+import "../../../../components/entity/ha-entities-picker";
+import "../../../../components/ha-form/ha-form";
+import "../../../../components/ha-target-picker";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import {
@@ -9,19 +19,12 @@ import {
optional,
string,
} from "superstruct";
-import type { HassServiceTarget } from "home-assistant-js-websocket";
+
import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/entity/ha-entities-picker";
-import "../../../../components/ha-target-picker";
-import "../../../../components/ha-form/ha-form";
-import type { SchemaUnion } from "../../../../components/ha-form/types";
import { filterLogbookCompatibleEntities } from "../../../../data/logbook";
-import type { HomeAssistant } from "../../../../types";
-import type { LogbookCardConfig } from "../../cards/types";
-import type { LovelaceCardEditor } from "../../types";
-import { baseLovelaceCardConfig } from "../structs/base-card-struct";
-import { DEFAULT_HOURS_TO_SHOW } from "../../cards/hui-logbook-card";
import { targetStruct } from "../../../../data/script";
+import { DEFAULT_HOURS_TO_SHOW } from "../../cards/hui-logbook-card";
+import { baseLovelaceCardConfig } from "../structs/base-card-struct";
const cardConfigStruct = assign(
baseLovelaceCardConfig,
diff --git a/src/panels/lovelace/editor/config-elements/hui-map-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-map-card-editor.ts
index 2b05930ddb..7afb14b288 100644
--- a/src/panels/lovelace/editor/config-elements/hui-map-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-map-card-editor.ts
@@ -1,7 +1,23 @@
-import { mdiPalette } from "@mdi/js";
+import type { LocalizeFunc } from "../../../../common/translations/localize";
+import type { SchemaUnion } from "../../../../components/ha-form/types";
+import type { SelectSelector } from "../../../../data/selector";
+import type { HomeAssistant, ValueChangedEvent } from "../../../../types";
+import type { MapCardConfig } from "../../cards/types";
+import type { EntityConfig } from "../../entity-rows/types";
+import type { LovelaceCardEditor } from "../../types";
+import type { EntitiesEditorEvent } from "../types";
import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-form/ha-form";
+import "../../../../components/ha-formfield";
+import "../../../../components/ha-selector/ha-selector-select";
+import "../../../../components/ha-switch";
+import "../../components/hui-entity-editor";
+
+import { mdiPalette } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
import {
array,
assert,
@@ -13,27 +29,15 @@ import {
string,
union,
} from "superstruct";
-import memoizeOne from "memoize-one";
+
import { fireEvent } from "../../../../common/dom/fire_event";
-import { hasLocation } from "../../../../common/entity/has_location";
import { computeDomain } from "../../../../common/entity/compute_domain";
-import "../../../../components/ha-form/ha-form";
-import type { SchemaUnion } from "../../../../components/ha-form/types";
-import type { SelectSelector } from "../../../../data/selector";
-import "../../../../components/ha-formfield";
-import "../../../../components/ha-switch";
-import "../../../../components/ha-selector/ha-selector-select";
-import type { HomeAssistant, ValueChangedEvent } from "../../../../types";
+import { hasLocation } from "../../../../common/entity/has_location";
import { DEFAULT_HOURS_TO_SHOW, DEFAULT_ZOOM } from "../../cards/hui-map-card";
-import type { MapCardConfig } from "../../cards/types";
-import "../../components/hui-entity-editor";
-import type { EntityConfig } from "../../entity-rows/types";
-import type { LovelaceCardEditor } from "../../types";
import { processEditorEntities } from "../process-editor-entities";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
-import type { EntitiesEditorEvent } from "../types";
import { configElementStyle } from "./config-elements-style";
-import type { LocalizeFunc } from "../../../../common/translations/localize";
+
export const mapEntitiesConfigStruct = union([
object({
diff --git a/src/panels/lovelace/editor/config-elements/hui-markdown-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-markdown-card-editor.ts
index 2e33bd0f39..d92716e2e3 100644
--- a/src/panels/lovelace/editor/config-elements/hui-markdown-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-markdown-card-editor.ts
@@ -1,10 +1,4 @@
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { assert, assign, boolean, object, optional, string } from "superstruct";
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { LocalizeFunc } from "../../../../common/translations/localize";
-import "../../../../components/ha-form/ha-form";
import type {
HaFormSchema,
SchemaUnion,
@@ -12,6 +6,15 @@ import type {
import type { HomeAssistant } from "../../../../types";
import type { MarkdownCardConfig } from "../../cards/types";
import type { LovelaceCardEditor } from "../../types";
+
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+import { assert, assign, boolean, object, optional, string } from "superstruct";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
const cardConfigStruct = assign(
diff --git a/src/panels/lovelace/editor/config-elements/hui-media-control-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-media-control-card-editor.ts
index 6602b02d7e..f42f65c072 100644
--- a/src/panels/lovelace/editor/config-elements/hui-media-control-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-media-control-card-editor.ts
@@ -1,15 +1,18 @@
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { assert, assign, object, optional, string } from "superstruct";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/entity/ha-entity-picker";
-import "../../../../components/ha-theme-picker";
import type { HomeAssistant } from "../../../../types";
import type { MediaControlCardConfig } from "../../cards/types";
import type { LovelaceCardEditor } from "../../types";
-import { baseLovelaceCardConfig } from "../structs/base-card-struct";
import type { EditorTarget, EntitiesEditorEvent } from "../types";
+import "../../../../components/entity/ha-entity-picker";
+import "../../../../components/ha-theme-picker";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { assert, assign, object, optional, string } from "superstruct";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { baseLovelaceCardConfig } from "../structs/base-card-struct";
+
const cardConfigStruct = assign(
baseLovelaceCardConfig,
object({
diff --git a/src/panels/lovelace/editor/config-elements/hui-numeric-input-card-feature-editor.ts b/src/panels/lovelace/editor/config-elements/hui-numeric-input-card-feature-editor.ts
index da7e4ec33c..0ecaa6f6ee 100644
--- a/src/panels/lovelace/editor/config-elements/hui-numeric-input-card-feature-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-numeric-input-card-feature-editor.ts
@@ -1,8 +1,4 @@
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-form/ha-form";
+import type { LocalizeFunc } from "../../../../common/translations/localize";
import type { SchemaUnion } from "../../../../components/ha-form/types";
import type { HomeAssistant } from "../../../../types";
import type {
@@ -10,7 +6,14 @@ import type {
LovelaceCardFeatureContext,
} from "../../card-features/types";
import type { LovelaceCardFeatureEditor } from "../../types";
-import type { LocalizeFunc } from "../../../../common/translations/localize";
+
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
@customElement("hui-numeric-input-card-feature-editor")
export class HuiNumericInputCardFeatureEditor
diff --git a/src/panels/lovelace/editor/config-elements/hui-picture-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-picture-card-editor.ts
index d084a2a400..d670ce42ab 100644
--- a/src/panels/lovelace/editor/config-elements/hui-picture-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-picture-card-editor.ts
@@ -1,14 +1,17 @@
+import type { SchemaUnion } from "../../../../components/ha-form/types";
+import type { HomeAssistant } from "../../../../types";
+import type { PictureCardConfig } from "../../cards/types";
+import type { LovelaceCardEditor } from "../../types";
+
+import "../../../../components/ha-theme-picker";
+import "../../components/hui-action-editor";
+
import { mdiGestureTap } from "@mdi/js";
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { assert, assign, object, optional, string } from "superstruct";
+
import { fireEvent } from "../../../../common/dom/fire_event";
-import type { SchemaUnion } from "../../../../components/ha-form/types";
-import "../../../../components/ha-theme-picker";
-import type { HomeAssistant } from "../../../../types";
-import type { PictureCardConfig } from "../../cards/types";
-import "../../components/hui-action-editor";
-import type { LovelaceCardEditor } from "../../types";
import { actionConfigStruct } from "../structs/action-struct";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
diff --git a/src/panels/lovelace/editor/config-elements/hui-picture-elements-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-picture-elements-card-editor.ts
index 6e1f761f30..e03430e8d2 100644
--- a/src/panels/lovelace/editor/config-elements/hui-picture-elements-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-picture-elements-card-editor.ts
@@ -1,6 +1,23 @@
+import type { HASSDomEvent } from "../../../../common/dom/fire_event";
+import type { LocalizeFunc } from "../../../../common/translations/localize";
+import type { LovelaceCardConfig } from "../../../../data/lovelace/config/card";
+import type { HomeAssistant } from "../../../../types";
+import type { PictureElementsCardConfig } from "../../cards/types";
+import type { LovelaceElementConfig } from "../../elements/types";
+import type { LovelaceCardEditor } from "../../types";
+import type { EditDetailElementEvent, SubElementEditorConfig } from "../types";
import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-card";
+import "../../../../components/ha-form/ha-form";
+import "../../../../components/ha-icon";
+import "../../../../components/ha-switch";
+import "../hui-picture-elements-card-row-editor";
+import "../hui-sub-element-editor";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
import {
any,
array,
@@ -11,24 +28,10 @@ import {
string,
type,
} from "superstruct";
-import memoizeOne from "memoize-one";
-import type { HASSDomEvent } from "../../../../common/dom/fire_event";
+
import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-card";
-import "../../../../components/ha-form/ha-form";
-import "../../../../components/ha-icon";
-import "../../../../components/ha-switch";
-import type { HomeAssistant } from "../../../../types";
-import type { PictureElementsCardConfig } from "../../cards/types";
-import type { LovelaceCardEditor } from "../../types";
-import "../hui-sub-element-editor";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
-import type { EditDetailElementEvent, SubElementEditorConfig } from "../types";
import { configElementStyle } from "./config-elements-style";
-import "../hui-picture-elements-card-row-editor";
-import type { LovelaceElementConfig } from "../../elements/types";
-import type { LovelaceCardConfig } from "../../../../data/lovelace/config/card";
-import type { LocalizeFunc } from "../../../../common/translations/localize";
const genericElementConfigStruct = type({
type: string(),
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 86a5686909..7bfc00a47d 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
@@ -1,16 +1,19 @@
-import { mdiGestureTap } from "@mdi/js";
+import type { SchemaUnion } from "../../../../components/ha-form/types";
+import type { HomeAssistant } from "../../../../types";
+import type { PictureEntityCardConfig } from "../../cards/types";
+import type { LovelaceCardEditor } from "../../types";
import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-form/ha-form";
+
+import { mdiGestureTap } from "@mdi/js";
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { assert, assign, boolean, object, optional, string } from "superstruct";
+
import { fireEvent } from "../../../../common/dom/fire_event";
import { computeDomain } from "../../../../common/entity/compute_domain";
-import "../../../../components/ha-form/ha-form";
-import type { SchemaUnion } from "../../../../components/ha-form/types";
-import type { HomeAssistant } from "../../../../types";
import { STUB_IMAGE } from "../../cards/hui-picture-entity-card";
-import type { PictureEntityCardConfig } from "../../cards/types";
-import type { LovelaceCardEditor } from "../../types";
import { actionConfigStruct } from "../structs/action-struct";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
import { configElementStyle } from "./config-elements-style";
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 763380265d..a6b769f3d7 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
@@ -1,17 +1,20 @@
-import type { CSSResultGroup } from "lit";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { array, assert, assign, object, optional, string } from "superstruct";
-import { mdiGestureTap } from "@mdi/js";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-form/ha-form";
import type { SchemaUnion } from "../../../../components/ha-form/types";
import type { ActionConfig } from "../../../../data/lovelace/config/action";
import type { HomeAssistant } from "../../../../types";
import type { PictureGlanceCardConfig } from "../../cards/types";
-import "../../components/hui-entity-editor";
import type { EntityConfig } from "../../entity-rows/types";
import type { LovelaceCardEditor } from "../../types";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-form/ha-form";
+import "../../components/hui-entity-editor";
+
+import { mdiGestureTap } from "@mdi/js";
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { array, assert, assign, object, optional, string } from "superstruct";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { processEditorEntities } from "../process-editor-entities";
import { actionConfigStruct } from "../structs/action-struct";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
diff --git a/src/panels/lovelace/editor/config-elements/hui-plant-status-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-plant-status-card-editor.ts
index 1fde6b438d..f7cf39a2fc 100644
--- a/src/panels/lovelace/editor/config-elements/hui-plant-status-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-plant-status-card-editor.ts
@@ -1,12 +1,15 @@
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { assert, assign, object, optional, string } from "superstruct";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-form/ha-form";
import type { SchemaUnion } from "../../../../components/ha-form/types";
import type { HomeAssistant } from "../../../../types";
import type { PlantStatusCardConfig } from "../../cards/types";
import type { LovelaceCardEditor } from "../../types";
+
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { assert, assign, object, optional, string } from "superstruct";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
const cardConfigStruct = assign(
diff --git a/src/panels/lovelace/editor/config-elements/hui-select-options-card-feature-editor.ts b/src/panels/lovelace/editor/config-elements/hui-select-options-card-feature-editor.ts
index c9d63bad8a..89387d7eab 100644
--- a/src/panels/lovelace/editor/config-elements/hui-select-options-card-feature-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-select-options-card-feature-editor.ts
@@ -1,10 +1,4 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { FormatEntityStateFunc } from "../../../../common/translations/entity-state";
-import "../../../../components/ha-form/ha-form";
import type {
HaFormSchema,
SchemaUnion,
@@ -15,6 +9,15 @@ import type {
SelectOptionsCardFeatureConfig,
} from "../../card-features/types";
import type { LovelaceCardFeatureEditor } from "../../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
type SelectOptionsCardFeatureData = SelectOptionsCardFeatureConfig & {
customize_options: boolean;
diff --git a/src/panels/lovelace/editor/config-elements/hui-sensor-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-sensor-card-editor.ts
index d7dc0d5cfa..be75e24836 100644
--- a/src/panels/lovelace/editor/config-elements/hui-sensor-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-sensor-card-editor.ts
@@ -1,4 +1,11 @@
+import type { SchemaUnion } from "../../../../components/ha-form/types";
+import type { HomeAssistant } from "../../../../types";
+import type { SensorCardConfig } from "../../cards/types";
+import type { LovelaceCardEditor } from "../../types";
import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-form/ha-form";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import {
@@ -11,15 +18,11 @@ import {
string,
union,
} from "superstruct";
+
import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-form/ha-form";
-import type { SchemaUnion } from "../../../../components/ha-form/types";
-import type { HomeAssistant } from "../../../../types";
-import type { SensorCardConfig } from "../../cards/types";
-import type { LovelaceCardEditor } from "../../types";
+import { DEFAULT_HOURS_TO_SHOW } from "../../cards/hui-sensor-card";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
import { configElementStyle } from "./config-elements-style";
-import { DEFAULT_HOURS_TO_SHOW } from "../../cards/hui-sensor-card";
const cardConfigStruct = assign(
baseLovelaceCardConfig,
diff --git a/src/panels/lovelace/editor/config-elements/hui-stack-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-stack-card-editor.ts
index c08c959c22..01a2e279c0 100644
--- a/src/panels/lovelace/editor/config-elements/hui-stack-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-stack-card-editor.ts
@@ -1,3 +1,26 @@
+import type { HASSDomEvent } from "../../../../common/dom/fire_event";
+import type {
+ HaFormSchema,
+ SchemaUnion,
+} from "../../../../components/ha-form/types";
+import type { LovelaceCardConfig } from "../../../../data/lovelace/config/card";
+import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
+import type { HomeAssistant } from "../../../../types";
+import type { StackCardConfig } from "../../cards/types";
+import type { LovelaceCardEditor } from "../../types";
+import type { HuiCardElementEditor } from "../card-editor/hui-card-element-editor";
+import type { ConfigChangedEvent } from "../hui-element-editor";
+import type { GUIModeChangedEvent } from "../types";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-icon-button";
+import "../../../../components/ha-icon-button-arrow-next";
+import "../../../../components/ha-icon-button-arrow-prev";
+import "../card-editor/hui-card-element-editor";
+import "../card-editor/hui-card-picker";
+import "@polymer/paper-tabs";
+import "@polymer/paper-tabs/paper-tab";
+
import {
mdiCodeBraces,
mdiContentCopy,
@@ -6,12 +29,10 @@ import {
mdiListBoxOutline,
mdiPlus,
} from "@mdi/js";
-import "@polymer/paper-tabs";
-import "@polymer/paper-tabs/paper-tab";
import deepClone from "deep-clone-simple";
-import type { CSSResultGroup } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
+import { keyed } from "lit/directives/keyed";
import {
any,
array,
@@ -21,28 +42,10 @@ import {
optional,
string,
} from "superstruct";
-import { keyed } from "lit/directives/keyed";
-import type {
- HaFormSchema,
- SchemaUnion,
-} from "../../../../components/ha-form/types";
+
import { storage } from "../../../../common/decorators/storage";
-import type { HASSDomEvent } from "../../../../common/dom/fire_event";
import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-icon-button";
-import "../../../../components/ha-icon-button-arrow-prev";
-import "../../../../components/ha-icon-button-arrow-next";
-import type { LovelaceCardConfig } from "../../../../data/lovelace/config/card";
-import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
-import type { HomeAssistant } from "../../../../types";
-import type { StackCardConfig } from "../../cards/types";
-import type { LovelaceCardEditor } from "../../types";
-import "../card-editor/hui-card-element-editor";
-import type { HuiCardElementEditor } from "../card-editor/hui-card-element-editor";
-import "../card-editor/hui-card-picker";
-import type { ConfigChangedEvent } from "../hui-element-editor";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
-import type { GUIModeChangedEvent } from "../types";
import { configElementStyle } from "./config-elements-style";
const cardConfigStruct = assign(
diff --git a/src/panels/lovelace/editor/config-elements/hui-state-label-badge-editor.ts b/src/panels/lovelace/editor/config-elements/hui-state-label-badge-editor.ts
index e76179b176..5e0e692849 100644
--- a/src/panels/lovelace/editor/config-elements/hui-state-label-badge-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-state-label-badge-editor.ts
@@ -1,14 +1,17 @@
-import { customElement } from "lit/decorators";
-import { assert, assign, boolean, object, optional, string } from "superstruct";
-import "../../../../components/ha-form/ha-form";
import type {
EntityBadgeConfig,
StateLabelBadgeConfig,
} from "../../badges/types";
+
+import "../../../../components/ha-form/ha-form";
import "../hui-sub-element-editor";
+import "./hui-card-features-editor";
+
+import { customElement } from "lit/decorators";
+import { assert, assign, boolean, object, optional, string } from "superstruct";
+
import { actionConfigStruct } from "../structs/action-struct";
import { baseLovelaceBadgeConfig } from "../structs/base-badge-struct";
-import "./hui-card-features-editor";
import { HuiEntityBadgeEditor } from "./hui-entity-badge-editor";
const badgeConfigStruct = assign(
diff --git a/src/panels/lovelace/editor/config-elements/hui-statistic-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-statistic-card-editor.ts
index d00448e852..3156ab5794 100644
--- a/src/panels/lovelace/editor/config-elements/hui-statistic-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-statistic-card-editor.ts
@@ -1,25 +1,28 @@
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { any, assert, assign, object, optional, string } from "superstruct";
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { LocalizeFunc } from "../../../../common/translations/localize";
-import { deepEqual } from "../../../../common/util/deep-equal";
-import "../../../../components/ha-form/ha-form";
import type { SchemaUnion } from "../../../../components/ha-form/types";
import type {
StatisticsMetaData,
StatisticType,
} from "../../../../data/recorder";
+import type { HomeAssistant } from "../../../../types";
+import type { StatisticCardConfig } from "../../cards/types";
+import type { LovelaceCardEditor } from "../../types";
+
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+import { any, assert, assign, object, optional, string } from "superstruct";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { deepEqual } from "../../../../common/util/deep-equal";
import {
getStatisticMetadata,
StatisticMeanType,
statisticsMetaHasType,
} from "../../../../data/recorder";
-import type { HomeAssistant } from "../../../../types";
-import type { StatisticCardConfig } from "../../cards/types";
import { headerFooterConfigStructs } from "../../header-footer/structs";
-import type { LovelaceCardEditor } from "../../types";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
const cardConfigStruct = assign(
diff --git a/src/panels/lovelace/editor/config-elements/hui-statistics-graph-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-statistics-graph-card-editor.ts
index 72587da898..bc71205554 100644
--- a/src/panels/lovelace/editor/config-elements/hui-statistics-graph-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-statistics-graph-card-editor.ts
@@ -1,4 +1,17 @@
+import type { LocalizeFunc } from "../../../../common/translations/localize";
+import type { HaFormSchema } from "../../../../components/ha-form/types";
+import type {
+ StatisticsMetaData,
+ StatisticType,
+} from "../../../../data/recorder";
+import type { HomeAssistant } from "../../../../types";
+import type { StatisticsGraphCardConfig } from "../../cards/types";
+import type { LovelaceCardEditor } from "../../types";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../../components/entity/ha-statistics-picker";
+import "../../../../components/ha-form/ha-form";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
@@ -14,31 +27,21 @@ import {
string,
union,
} from "superstruct";
+
import { ensureArray } from "../../../../common/array/ensure-array";
import { fireEvent } from "../../../../common/dom/fire_event";
-import type { LocalizeFunc } from "../../../../common/translations/localize";
import { deepEqual } from "../../../../common/util/deep-equal";
import { supportedStatTypeMap } from "../../../../components/chart/statistics-chart";
-import "../../../../components/entity/ha-statistics-picker";
-import "../../../../components/ha-form/ha-form";
-import type { HaFormSchema } from "../../../../components/ha-form/types";
-import type {
- StatisticsMetaData,
- StatisticType,
-} from "../../../../data/recorder";
import {
getDisplayUnit,
getStatisticMetadata,
isExternalStatistic,
statisticsMetaHasType,
} from "../../../../data/recorder";
-import type { HomeAssistant } from "../../../../types";
-import type { StatisticsGraphCardConfig } from "../../cards/types";
+import { DEFAULT_DAYS_TO_SHOW } from "../../cards/hui-statistics-graph-card";
import { processConfigEntities } from "../../common/process-config-entities";
-import type { LovelaceCardEditor } from "../../types";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
import { entitiesConfigStruct } from "../structs/entities-struct";
-import { DEFAULT_DAYS_TO_SHOW } from "../../cards/hui-statistics-graph-card";
const statTypeStruct = union([
literal("state"),
diff --git a/src/panels/lovelace/editor/config-elements/hui-thermostat-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-thermostat-card-editor.ts
index b274c80bb9..a82722b82c 100644
--- a/src/panels/lovelace/editor/config-elements/hui-thermostat-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-thermostat-card-editor.ts
@@ -1,3 +1,23 @@
+import type { HASSDomEvent } from "../../../../common/dom/fire_event";
+import type {
+ HaFormSchema,
+ SchemaUnion,
+} from "../../../../components/ha-form/types";
+import type { HomeAssistant } from "../../../../types";
+import type {
+ LovelaceCardFeatureConfig,
+ LovelaceCardFeatureContext,
+} from "../../card-features/types";
+import type { ThermostatCardConfig } from "../../cards/types";
+import type { LovelaceCardEditor } from "../../types";
+import type { EditDetailElementEvent, EditSubElementEvent } from "../types";
+import type { FeatureType } from "./hui-card-features-editor";
+
+import "../../../../components/ha-expansion-panel";
+import "../../../../components/ha-form/ha-form";
+import "../../../../components/ha-svg-icon";
+import "./hui-card-features-editor";
+
import { mdiListBox } from "@mdi/js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
@@ -11,27 +31,10 @@ import {
optional,
string,
} from "superstruct";
-import type { HASSDomEvent } from "../../../../common/dom/fire_event";
+
import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-expansion-panel";
-import "../../../../components/ha-form/ha-form";
-import type {
- HaFormSchema,
- SchemaUnion,
-} from "../../../../components/ha-form/types";
-import "../../../../components/ha-svg-icon";
-import type { HomeAssistant } from "../../../../types";
-import type {
- LovelaceCardFeatureConfig,
- LovelaceCardFeatureContext,
-} from "../../card-features/types";
-import type { ThermostatCardConfig } from "../../cards/types";
-import type { LovelaceCardEditor } from "../../types";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
-import type { EditDetailElementEvent, EditSubElementEvent } from "../types";
import { configElementStyle } from "./config-elements-style";
-import "./hui-card-features-editor";
-import type { FeatureType } from "./hui-card-features-editor";
const COMPATIBLE_FEATURES_TYPES: FeatureType[] = [
"climate-hvac-modes",
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 3fe5cc938f..67430eb3fc 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
@@ -1,5 +1,24 @@
-import { mdiGestureTap, mdiListBox, mdiTextShort } from "@mdi/js";
+import type { HASSDomEvent } from "../../../../common/dom/fire_event";
+import type { LocalizeFunc } from "../../../../common/translations/localize";
+import type {
+ HaFormSchema,
+ SchemaUnion,
+} from "../../../../components/ha-form/types";
+import type { HomeAssistant } from "../../../../types";
+import type {
+ LovelaceCardFeatureConfig,
+ LovelaceCardFeatureContext,
+} from "../../card-features/types";
+import type { TileCardConfig } from "../../cards/types";
+import type { LovelaceCardEditor } from "../../types";
+import type { EditDetailElementEvent, EditSubElementEvent } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../../components/ha-expansion-panel";
+import "../../../../components/ha-form/ha-form";
+import "../../../../components/ha-svg-icon";
+
+import { mdiGestureTap, mdiListBox, mdiTextShort } from "@mdi/js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
@@ -15,27 +34,11 @@ import {
string,
union,
} from "superstruct";
-import type { HASSDomEvent } from "../../../../common/dom/fire_event";
+
import { fireEvent } from "../../../../common/dom/fire_event";
-import type { LocalizeFunc } from "../../../../common/translations/localize";
-import "../../../../components/ha-expansion-panel";
-import "../../../../components/ha-form/ha-form";
-import type {
- HaFormSchema,
- SchemaUnion,
-} from "../../../../components/ha-form/types";
-import "../../../../components/ha-svg-icon";
-import type { HomeAssistant } from "../../../../types";
-import type {
- LovelaceCardFeatureConfig,
- LovelaceCardFeatureContext,
-} from "../../card-features/types";
import { getEntityDefaultTileIconAction } from "../../cards/hui-tile-card";
-import type { TileCardConfig } from "../../cards/types";
-import type { LovelaceCardEditor } from "../../types";
import { actionConfigStruct } from "../structs/action-struct";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
-import type { EditDetailElementEvent, EditSubElementEvent } from "../types";
import { configElementStyle } from "./config-elements-style";
import { getSupportedFeaturesType } from "./hui-card-features-editor";
diff --git a/src/panels/lovelace/editor/config-elements/hui-todo-list-editor.ts b/src/panels/lovelace/editor/config-elements/hui-todo-list-editor.ts
index 83396f00d9..f972eeda58 100644
--- a/src/panels/lovelace/editor/config-elements/hui-todo-list-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-todo-list-editor.ts
@@ -1,21 +1,25 @@
+import type { LocalizeFunc } from "../../../../common/translations/localize";
+import type { SchemaUnion } from "../../../../components/ha-form/types";
+import type { HomeAssistant } from "../../../../types";
+import type { TodoListCardConfig } from "../../cards/types";
+import type { LovelaceCardEditor } from "../../types";
import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-alert";
+import "../../../../components/ha-form/ha-form";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
import { assert, assign, boolean, object, optional, string } from "superstruct";
+
import { isComponentLoaded } from "../../../../common/config/is_component_loaded";
import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-alert";
-import "../../../../components/ha-form/ha-form";
-import type { HomeAssistant } from "../../../../types";
-import type { LocalizeFunc } from "../../../../common/translations/localize";
-import type { TodoListCardConfig } from "../../cards/types";
-import type { LovelaceCardEditor } from "../../types";
-import { baseLovelaceCardConfig } from "../structs/base-card-struct";
-import type { SchemaUnion } from "../../../../components/ha-form/types";
-import { configElementStyle } from "./config-elements-style";
-import { TodoListEntityFeature, TodoSortMode } from "../../../../data/todo";
import { supportsFeature } from "../../../../common/entity/supports-feature";
+import { TodoListEntityFeature, TodoSortMode } from "../../../../data/todo";
+import { baseLovelaceCardConfig } from "../structs/base-card-struct";
+import { configElementStyle } from "./config-elements-style";
+
const cardConfigStruct = assign(
baseLovelaceCardConfig,
diff --git a/src/panels/lovelace/editor/config-elements/hui-update-actions-card-feature-editor.ts b/src/panels/lovelace/editor/config-elements/hui-update-actions-card-feature-editor.ts
index 9497c6ae90..f4a27110de 100644
--- a/src/panels/lovelace/editor/config-elements/hui-update-actions-card-feature-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-update-actions-card-feature-editor.ts
@@ -1,9 +1,4 @@
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { LocalizeFunc } from "../../../../common/translations/localize";
-import "../../../../components/ha-form/ha-form";
import type { SchemaUnion } from "../../../../components/ha-form/types";
import type { HomeAssistant } from "../../../../types";
import type {
@@ -11,6 +6,14 @@ import type {
UpdateActionsCardFeatureConfig,
} from "../../card-features/types";
import type { LovelaceCardFeatureEditor } from "../../types";
+
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { supportsFeature } from "../../../../common/entity/supports-feature";
import { UpdateEntityFeature } from "../../../../data/update";
import { DEFAULT_UPDATE_BACKUP_OPTION } from "../../card-features/hui-update-actions-card-feature";
diff --git a/src/panels/lovelace/editor/config-elements/hui-vacuum-commands-card-feature-editor.ts b/src/panels/lovelace/editor/config-elements/hui-vacuum-commands-card-feature-editor.ts
index 0baa887764..5864893884 100644
--- a/src/panels/lovelace/editor/config-elements/hui-vacuum-commands-card-feature-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-vacuum-commands-card-feature-editor.ts
@@ -1,19 +1,22 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { LocalizeFunc } from "../../../../common/translations/localize";
import type { SchemaUnion } from "../../../../components/ha-form/types";
-import "../../../../components/ha-form/ha-form";
import type { HomeAssistant } from "../../../../types";
-import { supportsVacuumCommand } from "../../card-features/hui-vacuum-commands-card-feature";
import type {
LovelaceCardFeatureContext,
VacuumCommandsCardFeatureConfig,
} from "../../card-features/types";
-import { VACUUM_COMMANDS } from "../../card-features/types";
import type { LovelaceCardFeatureEditor } from "../../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { supportsVacuumCommand } from "../../card-features/hui-vacuum-commands-card-feature";
+import { VACUUM_COMMANDS } from "../../card-features/types";
@customElement("hui-vacuum-commands-card-feature-editor")
export class HuiVacuumCommandsCardFeatureEditor
diff --git a/src/panels/lovelace/editor/config-elements/hui-water-heater-operation-modes-card-feature-editor.ts b/src/panels/lovelace/editor/config-elements/hui-water-heater-operation-modes-card-feature-editor.ts
index d793ec81e3..b8ca655b8b 100644
--- a/src/panels/lovelace/editor/config-elements/hui-water-heater-operation-modes-card-feature-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-water-heater-operation-modes-card-feature-editor.ts
@@ -1,10 +1,4 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { FormatEntityStateFunc } from "../../../../common/translations/entity-state";
-import "../../../../components/ha-form/ha-form";
import type {
HaFormSchema,
SchemaUnion,
@@ -15,6 +9,15 @@ import type {
LovelaceCardFeatureContext,
} from "../../card-features/types";
import type { LovelaceCardFeatureEditor } from "../../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { compareWaterHeaterOperationMode } from "../../../../data/water_heater";
type WaterHeaterOperationModesCardFeatureData =
diff --git a/src/panels/lovelace/editor/config-elements/hui-weather-forecast-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-weather-forecast-card-editor.ts
index ccc286cca5..11ae433315 100644
--- a/src/panels/lovelace/editor/config-elements/hui-weather-forecast-card-editor.ts
+++ b/src/panels/lovelace/editor/config-elements/hui-weather-forecast-card-editor.ts
@@ -1,3 +1,12 @@
+import type { LocalizeFunc } from "../../../../common/translations/localize";
+import type { SchemaUnion } from "../../../../components/ha-form/types";
+import type { ForecastType, WeatherEntity } from "../../../../data/weather";
+import type { HomeAssistant } from "../../../../types";
+import type { WeatherForecastCardConfig } from "../../cards/types";
+import type { LovelaceCardEditor } from "../../types";
+
+import "../../../../components/ha-form/ha-form";
+
import { mdiGestureTap } from "@mdi/js";
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
@@ -11,17 +20,11 @@ import {
optional,
string,
} from "superstruct";
+
import { fireEvent } from "../../../../common/dom/fire_event";
import { supportsFeature } from "../../../../common/entity/supports-feature";
-import type { LocalizeFunc } from "../../../../common/translations/localize";
-import "../../../../components/ha-form/ha-form";
-import type { SchemaUnion } from "../../../../components/ha-form/types";
import { UNAVAILABLE } from "../../../../data/entity";
-import type { ForecastType, WeatherEntity } from "../../../../data/weather";
import { WeatherEntityFeature } from "../../../../data/weather";
-import type { HomeAssistant } from "../../../../types";
-import type { WeatherForecastCardConfig } from "../../cards/types";
-import type { LovelaceCardEditor } from "../../types";
import { actionConfigStruct } from "../structs/action-struct";
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
diff --git a/src/panels/lovelace/editor/config-util.ts b/src/panels/lovelace/editor/config-util.ts
index 10c0e37e87..7a99b1f833 100644
--- a/src/panels/lovelace/editor/config-util.ts
+++ b/src/panels/lovelace/editor/config-util.ts
@@ -1,12 +1,13 @@
import type { LovelaceBadgeConfig } from "../../../data/lovelace/config/badge";
-import { ensureBadgeConfig } from "../../../data/lovelace/config/badge";
import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
import type { LovelaceSectionRawConfig } from "../../../data/lovelace/config/section";
import type { LovelaceConfig } from "../../../data/lovelace/config/types";
import type { LovelaceViewConfig } from "../../../data/lovelace/config/view";
-import { isStrategyView } from "../../../data/lovelace/config/view";
import type { HomeAssistant } from "../../../types";
import type { LovelaceCardPath, LovelaceContainerPath } from "./lovelace-path";
+
+import { ensureBadgeConfig } from "../../../data/lovelace/config/badge";
+import { isStrategyView } from "../../../data/lovelace/config/view";
import {
findLovelaceContainer,
findLovelaceItems,
diff --git a/src/panels/lovelace/editor/dashboard-strategy-editor/dialogs/dialog-dashboard-strategy-editor.ts b/src/panels/lovelace/editor/dashboard-strategy-editor/dialogs/dialog-dashboard-strategy-editor.ts
index 0937d6c883..9eb37ca395 100644
--- a/src/panels/lovelace/editor/dashboard-strategy-editor/dialogs/dialog-dashboard-strategy-editor.ts
+++ b/src/panels/lovelace/editor/dashboard-strategy-editor/dialogs/dialog-dashboard-strategy-editor.ts
@@ -1,30 +1,33 @@
+import type { HASSDomEvent } from "../../../../../common/dom/fire_event";
+import type { LovelaceStrategyConfig } from "../../../../../data/lovelace/config/strategy";
+import type { HomeAssistant } from "../../../../../types";
+import type { ConfigChangedEvent } from "../../hui-element-editor";
+import type { GUIModeChangedEvent } from "../../types";
+import type { HuiDashboardStrategyElementEditor } from "../hui-dashboard-strategy-element-editor";
+import type { DashboardStrategyEditorDialogParams } from "./show-dialog-dashboard-strategy-editor";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../../components/ha-button";
+import "../../../../../components/ha-button-menu";
+import "../../../../../components/ha-dialog";
+import "../../../../../components/ha-dialog-header";
+import "../../../../../components/ha-icon-button";
+import "../hui-dashboard-strategy-element-editor";
+
import {
mdiAccountHardHat,
mdiClose,
mdiDotsVertical,
mdiPlaylistEdit,
} from "@mdi/js";
-import type { CSSResultGroup } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
-import type { HASSDomEvent } from "../../../../../common/dom/fire_event";
+
import { fireEvent } from "../../../../../common/dom/fire_event";
import { stopPropagation } from "../../../../../common/dom/stop_propagation";
-import "../../../../../components/ha-button";
-import "../../../../../components/ha-button-menu";
-import "../../../../../components/ha-dialog";
-import "../../../../../components/ha-dialog-header";
-import "../../../../../components/ha-icon-button";
-import type { LovelaceStrategyConfig } from "../../../../../data/lovelace/config/strategy";
import { haStyleDialog } from "../../../../../resources/styles";
-import type { HomeAssistant } from "../../../../../types";
import { showSaveSuccessToast } from "../../../../../util/toast-saved-success";
import { cleanLegacyStrategyConfig } from "../../../strategies/legacy-strategy";
-import type { ConfigChangedEvent } from "../../hui-element-editor";
-import type { GUIModeChangedEvent } from "../../types";
-import "../hui-dashboard-strategy-element-editor";
-import type { HuiDashboardStrategyElementEditor } from "../hui-dashboard-strategy-element-editor";
-import type { DashboardStrategyEditorDialogParams } from "./show-dialog-dashboard-strategy-editor";
@customElement("dialog-dashboard-strategy-editor")
class DialogDashboardStrategyEditor extends LitElement {
diff --git a/src/panels/lovelace/editor/dashboard-strategy-editor/dialogs/show-dialog-dashboard-strategy-editor.ts b/src/panels/lovelace/editor/dashboard-strategy-editor/dialogs/show-dialog-dashboard-strategy-editor.ts
index b2fd7a761d..a51d49e8ba 100644
--- a/src/panels/lovelace/editor/dashboard-strategy-editor/dialogs/show-dialog-dashboard-strategy-editor.ts
+++ b/src/panels/lovelace/editor/dashboard-strategy-editor/dialogs/show-dialog-dashboard-strategy-editor.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../../../common/dom/fire_event";
import type { LovelaceDashboardStrategyConfig } from "../../../../../data/lovelace/config/types";
+import { fireEvent } from "../../../../../common/dom/fire_event";
+
export interface DashboardStrategyEditorDialogParams {
config: LovelaceDashboardStrategyConfig;
saveConfig: (config: LovelaceDashboardStrategyConfig) => void;
diff --git a/src/panels/lovelace/editor/dashboard-strategy-editor/hui-dashboard-strategy-element-editor.ts b/src/panels/lovelace/editor/dashboard-strategy-editor/hui-dashboard-strategy-element-editor.ts
index 195dbec647..47d0572532 100644
--- a/src/panels/lovelace/editor/dashboard-strategy-editor/hui-dashboard-strategy-element-editor.ts
+++ b/src/panels/lovelace/editor/dashboard-strategy-editor/hui-dashboard-strategy-element-editor.ts
@@ -1,7 +1,9 @@
-import { customElement } from "lit/decorators";
import type { LovelaceDashboardStrategyConfig } from "../../../../data/lovelace/config/types";
-import { getLovelaceStrategy } from "../../strategies/get-strategy";
import type { LovelaceStrategyEditor } from "../../strategies/types";
+
+import { customElement } from "lit/decorators";
+
+import { getLovelaceStrategy } from "../../strategies/get-strategy";
import { HuiTypedElementEditor } from "../hui-typed-element-editor";
@customElement("hui-dashboard-strategy-element-editor")
diff --git a/src/panels/lovelace/editor/dashboard-strategy-editor/hui-iframe-dashboard-strategy-editor.ts b/src/panels/lovelace/editor/dashboard-strategy-editor/hui-iframe-dashboard-strategy-editor.ts
index fb06ab34f6..3c5163e63a 100644
--- a/src/panels/lovelace/editor/dashboard-strategy-editor/hui-iframe-dashboard-strategy-editor.ts
+++ b/src/panels/lovelace/editor/dashboard-strategy-editor/hui-iframe-dashboard-strategy-editor.ts
@@ -1,7 +1,3 @@
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-form/ha-form";
import type {
HaFormSchema,
SchemaUnion,
@@ -10,6 +6,13 @@ import type { HomeAssistant } from "../../../../types";
import type { IframeDashboardStrategyConfig } from "../../strategies/iframe/iframe-dashboard-strategy";
import type { LovelaceStrategyEditor } from "../../strategies/types";
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+
const SCHEMA = [
{
name: "url",
diff --git a/src/panels/lovelace/editor/dashboard-strategy-editor/hui-original-states-dashboard-strategy-editor.ts b/src/panels/lovelace/editor/dashboard-strategy-editor/hui-original-states-dashboard-strategy-editor.ts
index 291be48a1f..d0886372d5 100644
--- a/src/panels/lovelace/editor/dashboard-strategy-editor/hui-original-states-dashboard-strategy-editor.ts
+++ b/src/panels/lovelace/editor/dashboard-strategy-editor/hui-original-states-dashboard-strategy-editor.ts
@@ -1,7 +1,3 @@
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-form/ha-form";
import type {
HaFormSchema,
SchemaUnion,
@@ -10,6 +6,13 @@ import type { HomeAssistant } from "../../../../types";
import type { OriginalStatesDashboardStrategyConfig } from "../../strategies/original-states/original-states-dashboard-strategy";
import type { LovelaceStrategyEditor } from "../../strategies/types";
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+
const SCHEMA = [
{
name: "areas",
diff --git a/src/panels/lovelace/editor/delete-badge.ts b/src/panels/lovelace/editor/delete-badge.ts
index 8ee3c1eba7..d752ebaaca 100644
--- a/src/panels/lovelace/editor/delete-badge.ts
+++ b/src/panels/lovelace/editor/delete-badge.ts
@@ -1,8 +1,9 @@
import type { HomeAssistant } from "../../../types";
import type { Lovelace } from "../types";
-import { deleteBadge } from "./config-util";
import type { LovelaceCardPath } from "./lovelace-path";
+import { deleteBadge } from "./config-util";
+
export interface DeleteBadgeParams {
path: LovelaceCardPath;
silent: boolean;
diff --git a/src/panels/lovelace/editor/delete-card.ts b/src/panels/lovelace/editor/delete-card.ts
index 71c37b85e3..b75e735aa2 100644
--- a/src/panels/lovelace/editor/delete-card.ts
+++ b/src/panels/lovelace/editor/delete-card.ts
@@ -1,8 +1,9 @@
import type { HomeAssistant } from "../../../types";
import type { Lovelace } from "../types";
-import { deleteCard } from "./config-util";
import type { LovelaceCardPath } from "./lovelace-path";
+import { deleteCard } from "./config-util";
+
export interface DeleteCardParams {
path: LovelaceCardPath;
silent: boolean;
diff --git a/src/panels/lovelace/editor/entity-row-editor/hui-row-element-editor.ts b/src/panels/lovelace/editor/entity-row-editor/hui-row-element-editor.ts
index bb497c4fb4..b7a6f39216 100644
--- a/src/panels/lovelace/editor/entity-row-editor/hui-row-element-editor.ts
+++ b/src/panels/lovelace/editor/entity-row-editor/hui-row-element-editor.ts
@@ -1,10 +1,13 @@
-import { customElement } from "lit/decorators";
-import { getRowElementClass } from "../../create-element/create-row-element";
import type { LovelaceRowConfig } from "../../entity-rows/types";
import type { LovelaceRowEditor } from "../../types";
-import { HuiTypedElementEditor } from "../hui-typed-element-editor";
+
import "../config-elements/hui-generic-entity-row-editor";
+import { customElement } from "lit/decorators";
+
+import { getRowElementClass } from "../../create-element/create-row-element";
+import { HuiTypedElementEditor } from "../hui-typed-element-editor";
+
const GENERIC_ROW_TYPE = "generic-row";
@customElement("hui-row-element-editor")
diff --git a/src/panels/lovelace/editor/feature-editor/hui-card-feature-element-editor.ts b/src/panels/lovelace/editor/feature-editor/hui-card-feature-element-editor.ts
index 834c331aea..b4ceab1b6f 100644
--- a/src/panels/lovelace/editor/feature-editor/hui-card-feature-element-editor.ts
+++ b/src/panels/lovelace/editor/feature-editor/hui-card-feature-element-editor.ts
@@ -1,5 +1,3 @@
-import { customElement } from "lit/decorators";
-import { getCardFeatureElementClass } from "../../create-element/create-card-feature-element";
import type {
LovelaceCardFeatureConfig,
LovelaceCardFeatureContext,
@@ -8,6 +6,10 @@ import type {
LovelaceConfigForm,
LovelaceCardFeatureEditor,
} from "../../types";
+
+import { customElement } from "lit/decorators";
+
+import { getCardFeatureElementClass } from "../../create-element/create-card-feature-element";
import { HuiTypedElementEditor } from "../hui-typed-element-editor";
@customElement("hui-card-feature-element-editor")
diff --git a/src/panels/lovelace/editor/get-badge-stub-config.ts b/src/panels/lovelace/editor/get-badge-stub-config.ts
index 3f18bb7a74..070b973e7d 100644
--- a/src/panels/lovelace/editor/get-badge-stub-config.ts
+++ b/src/panels/lovelace/editor/get-badge-stub-config.ts
@@ -1,5 +1,6 @@
import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
import type { HomeAssistant } from "../../../types";
+
import { getBadgeElementClass } from "../create-element/create-badge-element";
export const getBadgeStubConfig = async (
diff --git a/src/panels/lovelace/editor/get-card-stub-config.ts b/src/panels/lovelace/editor/get-card-stub-config.ts
index 1fc7eeb1e4..c32ff9e89e 100644
--- a/src/panels/lovelace/editor/get-card-stub-config.ts
+++ b/src/panels/lovelace/editor/get-card-stub-config.ts
@@ -1,5 +1,6 @@
import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
import type { HomeAssistant } from "../../../types";
+
import { getCardElementClass } from "../create-element/create-card-element";
export const getCardStubConfig = async (
diff --git a/src/panels/lovelace/editor/get-dashboard-documentation-url.ts b/src/panels/lovelace/editor/get-dashboard-documentation-url.ts
index 658e1f2cec..39126e6d56 100644
--- a/src/panels/lovelace/editor/get-dashboard-documentation-url.ts
+++ b/src/panels/lovelace/editor/get-dashboard-documentation-url.ts
@@ -1,10 +1,11 @@
+import type { HomeAssistant } from "../../../types";
+
import {
getCustomBadgeEntry,
getCustomCardEntry,
isCustomType,
stripCustomPrefix,
} from "../../../data/lovelace_custom_cards";
-import type { HomeAssistant } from "../../../types";
import { documentationUrl } from "../../../util/documentation-url";
export const getCardDocumentationURL = (
diff --git a/src/panels/lovelace/editor/get-element-stub-config.ts b/src/panels/lovelace/editor/get-element-stub-config.ts
index 46516c7698..d15d0dfc86 100644
--- a/src/panels/lovelace/editor/get-element-stub-config.ts
+++ b/src/panels/lovelace/editor/get-element-stub-config.ts
@@ -1,5 +1,6 @@
-import type { LovelaceElementConfig } from "../elements/types";
import type { HomeAssistant } from "../../../types";
+import type { LovelaceElementConfig } from "../elements/types";
+
import { getPictureElementClass } from "../create-element/create-picture-element";
export const getElementStubConfig = async (
diff --git a/src/panels/lovelace/editor/header-footer-editor/get-headerfooter-stub-config.ts b/src/panels/lovelace/editor/header-footer-editor/get-headerfooter-stub-config.ts
index 791fac8afe..30f00eb40a 100644
--- a/src/panels/lovelace/editor/header-footer-editor/get-headerfooter-stub-config.ts
+++ b/src/panels/lovelace/editor/header-footer-editor/get-headerfooter-stub-config.ts
@@ -1,7 +1,8 @@
import type { HomeAssistant } from "../../../../types";
-import { getHeaderFooterElementClass } from "../../create-element/create-header-footer-element";
import type { LovelaceHeaderFooterConfig } from "../../header-footer/types";
+import { getHeaderFooterElementClass } from "../../create-element/create-header-footer-element";
+
export const getHeaderFooterStubConfig = async (
hass: HomeAssistant,
type: LovelaceHeaderFooterConfig["type"],
diff --git a/src/panels/lovelace/editor/header-footer-editor/hui-dialog-create-headerfooter.ts b/src/panels/lovelace/editor/header-footer-editor/hui-dialog-create-headerfooter.ts
index ffc58df168..5f01a3b034 100644
--- a/src/panels/lovelace/editor/header-footer-editor/hui-dialog-create-headerfooter.ts
+++ b/src/panels/lovelace/editor/header-footer-editor/hui-dialog-create-headerfooter.ts
@@ -1,16 +1,19 @@
-import "@material/mwc-button/mwc-button";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { createCloseHeading } from "../../../../components/ha-dialog";
import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
-import { haStyleDialog } from "../../../../resources/styles";
import type { HomeAssistant } from "../../../../types";
import type { LovelaceHeaderFooterConfig } from "../../header-footer/types";
+import type { CreateHeaderFooterDialogParams } from "./show-create-headerfooter-dialog";
+import type { CSSResultGroup } from "lit";
+
+import "@material/mwc-button/mwc-button";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { createCloseHeading } from "../../../../components/ha-dialog";
+import { haStyleDialog } from "../../../../resources/styles";
import { headerFooterElements } from "../lovelace-headerfooters";
import { getHeaderFooterStubConfig } from "./get-headerfooter-stub-config";
-import type { CreateHeaderFooterDialogParams } from "./show-create-headerfooter-dialog";
@customElement("hui-dialog-create-headerfooter")
export class HuiCreateDialogHeaderFooter
diff --git a/src/panels/lovelace/editor/header-footer-editor/hui-header-footer-editor.ts b/src/panels/lovelace/editor/header-footer-editor/hui-header-footer-editor.ts
index 17f3f2cfb9..7d93f62f11 100644
--- a/src/panels/lovelace/editor/header-footer-editor/hui-header-footer-editor.ts
+++ b/src/panels/lovelace/editor/header-footer-editor/hui-header-footer-editor.ts
@@ -1,12 +1,15 @@
-import { mdiClose, mdiPencil, mdiPlus } from "@mdi/js";
-import type { TemplateResult } from "lit";
-import { LitElement, css, html } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-icon-button";
import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
import type { HomeAssistant } from "../../../../types";
import type { LovelaceHeaderFooterConfig } from "../../header-footer/types";
+import type { TemplateResult } from "lit";
+
+import "../../../../components/ha-icon-button";
+
+import { mdiClose, mdiPencil, mdiPlus } from "@mdi/js";
+import { LitElement, css, html } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
import { showCreateHeaderFooterDialog } from "./show-create-headerfooter-dialog";
@customElement("hui-header-footer-editor")
diff --git a/src/panels/lovelace/editor/header-footer-editor/hui-header-footer-element-editor.ts b/src/panels/lovelace/editor/header-footer-editor/hui-header-footer-element-editor.ts
index 6e1ee68eb6..bb2feeecc2 100644
--- a/src/panels/lovelace/editor/header-footer-editor/hui-header-footer-element-editor.ts
+++ b/src/panels/lovelace/editor/header-footer-editor/hui-header-footer-element-editor.ts
@@ -1,7 +1,9 @@
-import { customElement } from "lit/decorators";
-import { getHeaderFooterElementClass } from "../../create-element/create-header-footer-element";
import type { LovelaceHeaderFooterConfig } from "../../header-footer/types";
import type { LovelaceHeaderFooterEditor } from "../../types";
+
+import { customElement } from "lit/decorators";
+
+import { getHeaderFooterElementClass } from "../../create-element/create-header-footer-element";
import { HuiTypedElementEditor } from "../hui-typed-element-editor";
@customElement("hui-headerfooter-element-editor")
diff --git a/src/panels/lovelace/editor/header-footer-editor/show-create-headerfooter-dialog.ts b/src/panels/lovelace/editor/header-footer-editor/show-create-headerfooter-dialog.ts
index 3a8a6489b7..f52ea3d9e7 100644
--- a/src/panels/lovelace/editor/header-footer-editor/show-create-headerfooter-dialog.ts
+++ b/src/panels/lovelace/editor/header-footer-editor/show-create-headerfooter-dialog.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { LovelaceHeaderFooterConfig } from "../../header-footer/types";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export interface CreateHeaderFooterDialogParams {
pickHeaderFooter: (config: LovelaceHeaderFooterConfig) => void;
type: "header" | "footer";
diff --git a/src/panels/lovelace/editor/heading-badge-editor/hui-entity-heading-badge-editor.ts b/src/panels/lovelace/editor/heading-badge-editor/hui-entity-heading-badge-editor.ts
index 19c607d6f1..50c2304722 100644
--- a/src/panels/lovelace/editor/heading-badge-editor/hui-entity-heading-badge-editor.ts
+++ b/src/panels/lovelace/editor/heading-badge-editor/hui-entity-heading-badge-editor.ts
@@ -1,3 +1,17 @@
+import type { LocalizeFunc } from "../../../../common/translations/localize";
+import type {
+ HaFormSchema,
+ SchemaUnion,
+} from "../../../../components/ha-form/types";
+import type { HomeAssistant } from "../../../../types";
+import type { Condition } from "../../common/validate-condition";
+import type { EntityHeadingBadgeConfig } from "../../heading-badges/types";
+import type { LovelaceGenericElementEditor } from "../../types";
+
+import "../../../../components/ha-expansion-panel";
+import "../../../../components/ha-form/ha-form";
+import "../conditions/ha-card-conditions-editor";
+
import { mdiEye, mdiGestureTap, mdiTextShort } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
@@ -12,19 +26,8 @@ import {
string,
union,
} from "superstruct";
+
import { fireEvent } from "../../../../common/dom/fire_event";
-import type { LocalizeFunc } from "../../../../common/translations/localize";
-import "../../../../components/ha-expansion-panel";
-import "../../../../components/ha-form/ha-form";
-import type {
- HaFormSchema,
- SchemaUnion,
-} from "../../../../components/ha-form/types";
-import type { HomeAssistant } from "../../../../types";
-import type { Condition } from "../../common/validate-condition";
-import type { EntityHeadingBadgeConfig } from "../../heading-badges/types";
-import type { LovelaceGenericElementEditor } from "../../types";
-import "../conditions/ha-card-conditions-editor";
import { configElementStyle } from "../config-elements/config-elements-style";
import { actionConfigStruct } from "../structs/action-struct";
diff --git a/src/panels/lovelace/editor/heading-badge-editor/hui-heading-badge-element-editor.ts b/src/panels/lovelace/editor/heading-badge-editor/hui-heading-badge-element-editor.ts
index 539352cf8e..04585e4435 100644
--- a/src/panels/lovelace/editor/heading-badge-editor/hui-heading-badge-element-editor.ts
+++ b/src/panels/lovelace/editor/heading-badge-editor/hui-heading-badge-element-editor.ts
@@ -1,10 +1,12 @@
-import { customElement } from "lit/decorators";
-import { getHeadingBadgeElementClass } from "../../create-element/create-heading-badge-element";
import type { EntityHeadingBadgeConfig } from "../../heading-badges/types";
import type {
LovelaceConfigForm,
LovelaceHeadingBadgeEditor,
} from "../../types";
+
+import { customElement } from "lit/decorators";
+
+import { getHeadingBadgeElementClass } from "../../create-element/create-heading-badge-element";
import { HuiTypedElementEditor } from "../hui-typed-element-editor";
@customElement("hui-heading-badge-element-editor")
diff --git a/src/panels/lovelace/editor/hui-dialog-save-config.ts b/src/panels/lovelace/editor/hui-dialog-save-config.ts
index cc0faf67a3..4d22f50db8 100644
--- a/src/panels/lovelace/editor/hui-dialog-save-config.ts
+++ b/src/panels/lovelace/editor/hui-dialog-save-config.ts
@@ -1,23 +1,26 @@
-import "@material/mwc-button";
-import { mdiClose, mdiHelpCircle } from "@mdi/js";
+import type { LovelaceConfig } from "../../../data/lovelace/config/types";
+import type { HassDialog } from "../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../types";
+import type { SaveDialogParams } from "./show-save-config-dialog";
import type { CSSResultGroup } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../common/dom/fire_event";
-import "../../../components/ha-spinner";
+
import "../../../components/ha-dialog";
import "../../../components/ha-dialog-header";
import "../../../components/ha-formfield";
import "../../../components/ha-icon-button";
+import "../../../components/ha-spinner";
import "../../../components/ha-switch";
import "../../../components/ha-yaml-editor";
-import type { LovelaceConfig } from "../../../data/lovelace/config/types";
-import type { HassDialog } from "../../../dialogs/make-dialog-manager";
+import "@material/mwc-button";
+
+import { mdiClose, mdiHelpCircle } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
import { haStyleDialog } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
import { documentationUrl } from "../../../util/documentation-url";
import { expandLovelaceConfigStrategies } from "../strategies/get-strategy";
-import type { SaveDialogParams } from "./show-save-config-dialog";
const EMPTY_CONFIG: LovelaceConfig = { views: [{ title: "Home" }] };
diff --git a/src/panels/lovelace/editor/hui-element-editor.ts b/src/panels/lovelace/editor/hui-element-editor.ts
index d243f64911..e80a54ef53 100644
--- a/src/panels/lovelace/editor/hui-element-editor.ts
+++ b/src/panels/lovelace/editor/hui-element-editor.ts
@@ -1,15 +1,4 @@
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { property, query, state } from "lit/decorators";
-import { cache } from "lit/directives/cache";
import type { HASSDomEvent } from "../../../common/dom/fire_event";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { debounce } from "../../../common/util/debounce";
-import { handleStructError } from "../../../common/structs/handle-errors";
-import { deepEqual } from "../../../common/util/deep-equal";
-import "../../../components/ha-alert";
-import "../../../components/ha-spinner";
-import "../../../components/ha-yaml-editor";
import type { HaYamlEditor } from "../../../components/ha-yaml-editor";
import type { LovelaceConfig } from "../../../data/lovelace/config/types";
import type { HomeAssistant } from "../../../types";
@@ -18,13 +7,27 @@ import type {
LovelaceGenericElementEditor,
} from "../types";
import type { HuiFormEditor } from "./config-elements/hui-form-editor";
-import { GUISupportError } from "./gui-support-error";
import type {
EditDetailElementEvent,
EditSubElementEvent,
GUIModeChangedEvent,
SubElementEditorConfig,
} from "./types";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/ha-alert";
+import "../../../components/ha-spinner";
+import "../../../components/ha-yaml-editor";
+
+import { css, html, LitElement, nothing } from "lit";
+import { property, query, state } from "lit/decorators";
+import { cache } from "lit/directives/cache";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { handleStructError } from "../../../common/structs/handle-errors";
+import { debounce } from "../../../common/util/debounce";
+import { deepEqual } from "../../../common/util/deep-equal";
+import { GUISupportError } from "./gui-support-error";
export interface ConfigChangedEvent {
config: T;
diff --git a/src/panels/lovelace/editor/hui-entities-card-row-editor.ts b/src/panels/lovelace/editor/hui-entities-card-row-editor.ts
index 06d9ab0f35..4356d0db9a 100644
--- a/src/panels/lovelace/editor/hui-entities-card-row-editor.ts
+++ b/src/panels/lovelace/editor/hui-entities-card-row-editor.ts
@@ -1,15 +1,18 @@
+import type { HaEntityPicker } from "../../../components/entity/ha-entity-picker";
+import type { HomeAssistant } from "../../../types";
+import type { EntityConfig, LovelaceRowConfig } from "../entity-rows/types";
+
+import "../../../components/entity/ha-entity-picker";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-sortable";
+import "../../../components/ha-svg-icon";
+
import { mdiClose, mdiDrag, mdiPencil } from "@mdi/js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import { repeat } from "lit/directives/repeat";
+
import { fireEvent } from "../../../common/dom/fire_event";
-import "../../../components/entity/ha-entity-picker";
-import type { HaEntityPicker } from "../../../components/entity/ha-entity-picker";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-sortable";
-import "../../../components/ha-svg-icon";
-import type { HomeAssistant } from "../../../types";
-import type { EntityConfig, LovelaceRowConfig } from "../entity-rows/types";
declare global {
interface HASSDomEvents {
diff --git a/src/panels/lovelace/editor/hui-picture-elements-card-row-editor.ts b/src/panels/lovelace/editor/hui-picture-elements-card-row-editor.ts
index c81f09c8cc..57e991884d 100644
--- a/src/panels/lovelace/editor/hui-picture-elements-card-row-editor.ts
+++ b/src/panels/lovelace/editor/hui-picture-elements-card-row-editor.ts
@@ -1,16 +1,5 @@
-import deepClone from "deep-clone-simple";
-import { mdiClose, mdiPencil, mdiContentDuplicate } from "@mdi/js";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, query } from "lit/decorators";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { stopPropagation } from "../../../common/dom/stop_propagation";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-svg-icon";
-import type { HomeAssistant } from "../../../types";
-import "../../../components/ha-select";
import type { HaSelect } from "../../../components/ha-select";
-import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box";
-import { getElementStubConfig } from "./get-element-stub-config";
+import type { HomeAssistant } from "../../../types";
import type {
ConditionalElementConfig,
IconElementConfig,
@@ -22,6 +11,21 @@ import type {
StateLabelElementConfig,
} from "../elements/types";
+import "../../../components/ha-icon-button";
+import "../../../components/ha-select";
+import "../../../components/ha-svg-icon";
+
+import { mdiClose, mdiPencil, mdiContentDuplicate } from "@mdi/js";
+import deepClone from "deep-clone-simple";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, query } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { stopPropagation } from "../../../common/dom/stop_propagation";
+import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box";
+import { getElementStubConfig } from "./get-element-stub-config";
+
+
declare global {
interface HASSDomEvents {
"elements-changed": {
diff --git a/src/panels/lovelace/editor/hui-sub-element-editor.ts b/src/panels/lovelace/editor/hui-sub-element-editor.ts
index 99ef0f0991..f1b4878ebc 100644
--- a/src/panels/lovelace/editor/hui-sub-element-editor.ts
+++ b/src/panels/lovelace/editor/hui-sub-element-editor.ts
@@ -1,19 +1,22 @@
-import { mdiCodeBraces, mdiListBoxOutline } from "@mdi/js";
-import type { TemplateResult } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
import type { HASSDomEvent } from "../../../common/dom/fire_event";
-import { fireEvent } from "../../../common/dom/fire_event";
+import type { HomeAssistant } from "../../../types";
+import type { HuiElementEditor } from "./hui-element-editor";
+import type { GUIModeChangedEvent, SubElementEditorConfig } from "./types";
+import type { TemplateResult } from "lit";
+
import "../../../components/ha-icon-button";
import "../../../components/ha-icon-button-prev";
-import type { HomeAssistant } from "../../../types";
import "./entity-row-editor/hui-row-element-editor";
import "./feature-editor/hui-card-feature-element-editor";
import "./header-footer-editor/hui-header-footer-element-editor";
import "./heading-badge-editor/hui-heading-badge-element-editor";
-import type { HuiElementEditor } from "./hui-element-editor";
import "./picture-element-editor/hui-picture-element-element-editor";
-import type { GUIModeChangedEvent, SubElementEditorConfig } from "./types";
+
+import { mdiCodeBraces, mdiListBoxOutline } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
declare global {
interface HASSDomEvents {
diff --git a/src/panels/lovelace/editor/hui-typed-element-editor.ts b/src/panels/lovelace/editor/hui-typed-element-editor.ts
index 72189151f8..48c77c8b7b 100644
--- a/src/panels/lovelace/editor/hui-typed-element-editor.ts
+++ b/src/panels/lovelace/editor/hui-typed-element-editor.ts
@@ -1,4 +1,5 @@
import { state } from "lit/decorators";
+
import { HuiElementEditor } from "./hui-element-editor";
export abstract class HuiTypedElementEditor<
diff --git a/src/panels/lovelace/editor/lovelace-headerfooters.ts b/src/panels/lovelace/editor/lovelace-headerfooters.ts
index 1ed8c16539..a274a1ba9e 100644
--- a/src/panels/lovelace/editor/lovelace-headerfooters.ts
+++ b/src/panels/lovelace/editor/lovelace-headerfooters.ts
@@ -1,9 +1,10 @@
+import type { HeaderFooter } from "./types";
+
import {
mdiChartBellCurveCumulative,
mdiGestureTapButton,
mdiImageArea,
} from "@mdi/js";
-import type { HeaderFooter } from "./types";
export const headerFooterElements: HeaderFooter[] = [
{ type: "graph", icon: mdiChartBellCurveCumulative },
diff --git a/src/panels/lovelace/editor/lovelace-path.ts b/src/panels/lovelace/editor/lovelace-path.ts
index 259a2ce54e..a6bef464b1 100644
--- a/src/panels/lovelace/editor/lovelace-path.ts
+++ b/src/panels/lovelace/editor/lovelace-path.ts
@@ -1,9 +1,10 @@
import type { LovelaceBadgeConfig } from "../../../data/lovelace/config/badge";
import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
import type { LovelaceSectionRawConfig } from "../../../data/lovelace/config/section";
-import { isStrategySection } from "../../../data/lovelace/config/section";
import type { LovelaceConfig } from "../../../data/lovelace/config/types";
import type { LovelaceViewRawConfig } from "../../../data/lovelace/config/view";
+
+import { isStrategySection } from "../../../data/lovelace/config/section";
import { isStrategyView } from "../../../data/lovelace/config/view";
export type LovelaceCardPath = [number, number] | [number, number, number];
diff --git a/src/panels/lovelace/editor/picture-element-editor/hui-picture-element-element-editor.ts b/src/panels/lovelace/editor/picture-element-editor/hui-picture-element-element-editor.ts
index 2d35315a91..9c7c111c08 100644
--- a/src/panels/lovelace/editor/picture-element-editor/hui-picture-element-element-editor.ts
+++ b/src/panels/lovelace/editor/picture-element-editor/hui-picture-element-element-editor.ts
@@ -1,8 +1,10 @@
-import { customElement } from "lit/decorators";
import type { LovelaceElementConfig } from "../../elements/types";
import type { LovelacePictureElementEditor } from "../../types";
-import { HuiTypedElementEditor } from "../hui-typed-element-editor";
+
+import { customElement } from "lit/decorators";
+
import { getPictureElementClass } from "../../create-element/create-picture-element";
+import { HuiTypedElementEditor } from "../hui-typed-element-editor";
@customElement("hui-picture-element-element-editor")
export class HuiPictureElementElementEditor extends HuiTypedElementEditor {
diff --git a/src/panels/lovelace/editor/section-editor/hui-dialog-edit-section.ts b/src/panels/lovelace/editor/section-editor/hui-dialog-edit-section.ts
index ecbd75f17d..40f038bcd3 100644
--- a/src/panels/lovelace/editor/section-editor/hui-dialog-edit-section.ts
+++ b/src/panels/lovelace/editor/section-editor/hui-dialog-edit-section.ts
@@ -1,11 +1,12 @@
+import type { HaYamlEditor } from "../../../../components/ha-yaml-editor";
+import type { LovelaceSectionRawConfig } from "../../../../data/lovelace/config/section";
+import type { LovelaceViewConfig } from "../../../../data/lovelace/config/view";
+import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
+import type { HomeAssistant } from "../../../../types";
+import type { EditSectionDialogParams } from "./show-edit-section-dialog";
import type { ActionDetail } from "@material/mwc-list";
-import { mdiClose, mdiDotsVertical, mdiPlaylistEdit } from "@mdi/js";
import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, query, state } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { stopPropagation } from "../../../../common/dom/stop_propagation";
+
import "../../../../components/ha-button";
import "../../../../components/ha-button-menu";
import "../../../../components/ha-dialog";
@@ -13,21 +14,23 @@ import "../../../../components/ha-dialog-header";
import "../../../../components/ha-icon-button";
import "../../../../components/ha-list-item";
import "../../../../components/ha-yaml-editor";
-import type { HaYamlEditor } from "../../../../components/ha-yaml-editor";
-import type { LovelaceSectionRawConfig } from "../../../../data/lovelace/config/section";
-import type { HassDialog } from "../../../../dialogs/make-dialog-manager";
+import "./hui-section-settings-editor";
+import "./hui-section-visibility-editor";
+import "@material/mwc-tab-bar/mwc-tab-bar";
+import "@material/mwc-tab/mwc-tab";
+
+import { mdiClose, mdiDotsVertical, mdiPlaylistEdit } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, query, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { stopPropagation } from "../../../../common/dom/stop_propagation";
import { haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
import {
findLovelaceContainer,
updateLovelaceContainer,
} from "../lovelace-path";
-import "./hui-section-settings-editor";
-import "./hui-section-visibility-editor";
-import type { EditSectionDialogParams } from "./show-edit-section-dialog";
-import "@material/mwc-tab-bar/mwc-tab-bar";
-import "@material/mwc-tab/mwc-tab";
-import type { LovelaceViewConfig } from "../../../../data/lovelace/config/view";
const TABS = ["tab-settings", "tab-visibility"] as const;
diff --git a/src/panels/lovelace/editor/section-editor/hui-section-settings-editor.ts b/src/panels/lovelace/editor/section-editor/hui-section-settings-editor.ts
index 4bf53b4f1e..d00c7ed73e 100644
--- a/src/panels/lovelace/editor/section-editor/hui-section-settings-editor.ts
+++ b/src/panels/lovelace/editor/section-editor/hui-section-settings-editor.ts
@@ -1,16 +1,19 @@
-import { LitElement, html } from "lit";
-import { customElement, property } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../common/dom/fire_event";
import type {
HaFormSchema,
SchemaUnion,
} from "../../../../components/ha-form/types";
-import "../../../../components/ha-form/ha-form";
import type { LovelaceSectionRawConfig } from "../../../../data/lovelace/config/section";
import type { LovelaceViewConfig } from "../../../../data/lovelace/config/view";
import type { HomeAssistant } from "../../../../types";
+import "../../../../components/ha-form/ha-form";
+
+import { LitElement, html } from "lit";
+import { customElement, property } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+
interface SettingsData {
column_span?: number;
}
diff --git a/src/panels/lovelace/editor/section-editor/hui-section-visibility-editor.ts b/src/panels/lovelace/editor/section-editor/hui-section-visibility-editor.ts
index 0826113eb0..21fe640436 100644
--- a/src/panels/lovelace/editor/section-editor/hui-section-visibility-editor.ts
+++ b/src/panels/lovelace/editor/section-editor/hui-section-visibility-editor.ts
@@ -1,12 +1,15 @@
-import { LitElement, html } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-alert";
import type { LovelaceSectionRawConfig } from "../../../../data/lovelace/config/section";
import type { HomeAssistant } from "../../../../types";
import type { Condition } from "../../common/validate-condition";
+
+import "../../../../components/ha-alert";
import "../conditions/ha-card-conditions-editor";
+import { LitElement, html } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+
@customElement("hui-section-visibility-editor")
export class HuiDialogEditSection extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/lovelace/editor/section-editor/show-edit-section-dialog.ts b/src/panels/lovelace/editor/section-editor/show-edit-section-dialog.ts
index ebfcfcea45..cabbdb65aa 100644
--- a/src/panels/lovelace/editor/section-editor/show-edit-section-dialog.ts
+++ b/src/panels/lovelace/editor/section-editor/show-edit-section-dialog.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export interface EditSectionDialogParams {
lovelaceConfig: LovelaceConfig;
saveConfig: (config: LovelaceConfig) => void;
diff --git a/src/panels/lovelace/editor/select-dashboard/hui-dialog-select-dashboard.ts b/src/panels/lovelace/editor/select-dashboard/hui-dialog-select-dashboard.ts
index da18eb45ca..9c87042b2e 100644
--- a/src/panels/lovelace/editor/select-dashboard/hui-dialog-select-dashboard.ts
+++ b/src/panels/lovelace/editor/select-dashboard/hui-dialog-select-dashboard.ts
@@ -1,22 +1,25 @@
-import { mdiClose } from "@mdi/js";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, query, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-md-dialog";
-import "../../../../components/ha-dialog-header";
-import "../../../../components/ha-icon-button";
-import "../../../../components/ha-md-select";
-import "../../../../components/ha-md-select-option";
-import "../../../../components/ha-button";
-import "../../../../components/ha-spinner";
+import type { HaMdDialog } from "../../../../components/ha-md-dialog";
import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
import type { LovelaceDashboard } from "../../../../data/lovelace/dashboard";
-import { fetchDashboards } from "../../../../data/lovelace/dashboard";
-import { haStyleDialog } from "../../../../resources/styles";
import type { HomeAssistant } from "../../../../types";
import type { SelectDashboardDialogParams } from "./show-select-dashboard-dialog";
-import type { HaMdDialog } from "../../../../components/ha-md-dialog";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-button";
+import "../../../../components/ha-dialog-header";
+import "../../../../components/ha-icon-button";
+import "../../../../components/ha-md-dialog";
+import "../../../../components/ha-md-select";
+import "../../../../components/ha-md-select-option";
+import "../../../../components/ha-spinner";
+
+import { mdiClose } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, query, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { fetchDashboards } from "../../../../data/lovelace/dashboard";
+import { haStyleDialog } from "../../../../resources/styles";
@customElement("hui-dialog-select-dashboard")
export class HuiDialogSelectDashboard extends LitElement {
diff --git a/src/panels/lovelace/editor/select-dashboard/show-select-dashboard-dialog.ts b/src/panels/lovelace/editor/select-dashboard/show-select-dashboard-dialog.ts
index e36eacfac8..c933a186a8 100644
--- a/src/panels/lovelace/editor/select-dashboard/show-select-dashboard-dialog.ts
+++ b/src/panels/lovelace/editor/select-dashboard/show-select-dashboard-dialog.ts
@@ -1,7 +1,8 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
import type { LovelaceDashboard } from "../../../../data/lovelace/dashboard";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export interface SelectDashboardDialogParams {
lovelaceConfig: LovelaceConfig;
dashboards?: LovelaceDashboard[];
diff --git a/src/panels/lovelace/editor/select-view/hui-dialog-select-view.ts b/src/panels/lovelace/editor/select-view/hui-dialog-select-view.ts
index 1117a11952..d0d5c5395a 100644
--- a/src/panels/lovelace/editor/select-view/hui-dialog-select-view.ts
+++ b/src/panels/lovelace/editor/select-view/hui-dialog-select-view.ts
@@ -1,24 +1,27 @@
+import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
+import type { LovelaceDashboard } from "../../../../data/lovelace/dashboard";
+import type { HomeAssistant } from "../../../../types";
+import type { SelectViewDialogParams } from "./show-select-view-dialog";
+import type { CSSResultGroup } from "lit";
+
+import "../../../../components/ha-alert";
+import "../../../../components/ha-icon";
+import "../../../../components/ha-select";
import "@material/mwc-button/mwc-button";
import "@material/mwc-list/mwc-list";
import "@material/mwc-list/mwc-list-item";
import "@material/mwc-list/mwc-radio-list-item";
-import type { CSSResultGroup } from "lit";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, state } from "lit/decorators";
+
import { fireEvent } from "../../../../common/dom/fire_event";
import { stopPropagation } from "../../../../common/dom/stop_propagation";
-import "../../../../components/ha-alert";
import { createCloseHeading } from "../../../../components/ha-dialog";
-import "../../../../components/ha-icon";
-import "../../../../components/ha-select";
-import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
import { fetchConfig } from "../../../../data/lovelace/config/types";
-import type { LovelaceDashboard } from "../../../../data/lovelace/dashboard";
+import { isStrategyView } from "../../../../data/lovelace/config/view";
import { fetchDashboards } from "../../../../data/lovelace/dashboard";
import { haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
-import type { SelectViewDialogParams } from "./show-select-view-dialog";
-import { isStrategyView } from "../../../../data/lovelace/config/view";
declare global {
interface HASSDomEvents {
diff --git a/src/panels/lovelace/editor/select-view/show-select-view-dialog.ts b/src/panels/lovelace/editor/select-view/show-select-view-dialog.ts
index 776cc26f7d..997e13fb59 100644
--- a/src/panels/lovelace/editor/select-view/show-select-view-dialog.ts
+++ b/src/panels/lovelace/editor/select-view/show-select-view-dialog.ts
@@ -1,7 +1,8 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
import type { LovelaceDashboard } from "../../../../data/lovelace/dashboard";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export interface SelectViewDialogParams {
lovelaceConfig: LovelaceConfig;
allowDashboardChange: boolean;
diff --git a/src/panels/lovelace/editor/show-save-config-dialog.ts b/src/panels/lovelace/editor/show-save-config-dialog.ts
index fbd7336998..b67070f578 100644
--- a/src/panels/lovelace/editor/show-save-config-dialog.ts
+++ b/src/panels/lovelace/editor/show-save-config-dialog.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../common/dom/fire_event";
import type { Lovelace } from "../types";
+import { fireEvent } from "../../../common/dom/fire_event";
+
declare global {
// for fire event
interface HASSDomEvents {
diff --git a/src/panels/lovelace/editor/structs/action-struct.ts b/src/panels/lovelace/editor/structs/action-struct.ts
index b6b7c75a27..0711d0e9ea 100644
--- a/src/panels/lovelace/editor/structs/action-struct.ts
+++ b/src/panels/lovelace/editor/structs/action-struct.ts
@@ -1,3 +1,5 @@
+import type { BaseActionConfig } from "../../../../data/lovelace/config/action";
+
import {
array,
boolean,
@@ -10,7 +12,6 @@ import {
type,
union,
} from "superstruct";
-import type { BaseActionConfig } from "../../../../data/lovelace/config/action";
const actionConfigStructUser = object({
user: string(),
diff --git a/src/panels/lovelace/editor/structs/button-entity-struct.ts b/src/panels/lovelace/editor/structs/button-entity-struct.ts
index 8a80b89884..e0a3d3010f 100644
--- a/src/panels/lovelace/editor/structs/button-entity-struct.ts
+++ b/src/panels/lovelace/editor/structs/button-entity-struct.ts
@@ -1,4 +1,5 @@
import { boolean, object, optional, string } from "superstruct";
+
import { actionConfigStruct } from "./action-struct";
export const buttonEntityConfigStruct = object({
diff --git a/src/panels/lovelace/editor/structs/entities-struct.ts b/src/panels/lovelace/editor/structs/entities-struct.ts
index 870e097b85..45430152cc 100644
--- a/src/panels/lovelace/editor/structs/entities-struct.ts
+++ b/src/panels/lovelace/editor/structs/entities-struct.ts
@@ -1,4 +1,5 @@
import { union, object, string, optional, boolean, enums } from "superstruct";
+
import { TIMESTAMP_RENDERING_FORMATS } from "../../components/types";
import {
actionConfigStruct,
diff --git a/src/panels/lovelace/editor/types.ts b/src/panels/lovelace/editor/types.ts
index 7731cb730a..3e08b6cd5a 100644
--- a/src/panels/lovelace/editor/types.ts
+++ b/src/panels/lovelace/editor/types.ts
@@ -1,14 +1,14 @@
import type { ActionConfig } from "../../../data/lovelace/config/action";
+import type { LovelaceBadgeConfig } from "../../../data/lovelace/config/badge";
import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
import type {
LovelaceViewConfig,
ShowViewConfig,
} from "../../../data/lovelace/config/view";
-import type { EntityConfig, LovelaceRowConfig } from "../entity-rows/types";
-import type { LovelaceHeaderFooterConfig } from "../header-footer/types";
import type { LovelaceCardFeatureConfig } from "../card-features/types";
import type { LovelaceElementConfig } from "../elements/types";
-import type { LovelaceBadgeConfig } from "../../../data/lovelace/config/badge";
+import type { EntityConfig, LovelaceRowConfig } from "../entity-rows/types";
+import type { LovelaceHeaderFooterConfig } from "../header-footer/types";
import type { LovelaceHeadingBadgeConfig } from "../heading-badges/types";
export interface YamlChangedEvent extends Event {
diff --git a/src/panels/lovelace/editor/unused-entities/hui-unused-entities.ts b/src/panels/lovelace/editor/unused-entities/hui-unused-entities.ts
index a63d3e3a50..25ebff7142 100644
--- a/src/panels/lovelace/editor/unused-entities/hui-unused-entities.ts
+++ b/src/panels/lovelace/editor/unused-entities/hui-unused-entities.ts
@@ -1,24 +1,27 @@
-import { mdiPlus } from "@mdi/js";
+import type { DataTableRowData } from "../../../../components/data-table/ha-data-table";
+import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
+import type { HomeAssistant } from "../../../../types";
+import type { Lovelace } from "../../types";
import type { PropertyValues } from "lit";
+
+import "../../../../components/ha-fab";
+import "../../../../components/ha-svg-icon";
+import "../card-editor/hui-entity-picker-table";
+
+import { mdiPlus } from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { computeDomain } from "../../../../common/entity/compute_domain";
import { computeStateName } from "../../../../common/entity/compute_state_name";
-import type { DataTableRowData } from "../../../../components/data-table/ha-data-table";
-import "../../../../components/ha-fab";
-import "../../../../components/ha-svg-icon";
-import type { HomeAssistant } from "../../../../types";
import { computeUnusedEntities } from "../../common/compute-unused-entities";
-import type { Lovelace } from "../../types";
-import "../card-editor/hui-entity-picker-table";
-import { showSuggestCardDialog } from "../card-editor/show-suggest-card-dialog";
-import { showSelectViewDialog } from "../select-view/show-select-view-dialog";
-import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
import {
computeCards,
computeSection,
} from "../../common/generate-lovelace-config";
+import { showSuggestCardDialog } from "../card-editor/show-suggest-card-dialog";
+import { showSelectViewDialog } from "../select-view/show-select-view-dialog";
@customElement("hui-unused-entities")
export class HuiUnusedEntities extends LitElement {
diff --git a/src/panels/lovelace/editor/view-editor/hui-dialog-edit-view.ts b/src/panels/lovelace/editor/view-editor/hui-dialog-edit-view.ts
index a23f64579c..cdba3b40b0 100644
--- a/src/panels/lovelace/editor/view-editor/hui-dialog-edit-view.ts
+++ b/src/panels/lovelace/editor/view-editor/hui-dialog-edit-view.ts
@@ -1,37 +1,52 @@
+import type { HASSDomEvent } from "../../../../common/dom/fire_event";
+import type { HaYamlEditor } from "../../../../components/ha-yaml-editor";
+import type { LovelaceViewConfig } from "../../../../data/lovelace/config/view";
+import type { HomeAssistant } from "../../../../types";
+import type { Lovelace } from "../../types";
+import type { ViewEditEvent, ViewVisibilityChangeEvent } from "../types";
+import type { EditViewDialogParams } from "./show-edit-view-dialog";
import type { ActionDetail } from "@material/mwc-list";
+import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../../components/ha-alert";
+import "../../../../components/ha-button";
+import "../../../../components/ha-dialog";
+import "../../../../components/ha-dialog-header";
+import "../../../../components/ha-spinner";
+import "../../../../components/ha-yaml-editor";
+import "../../components/hui-entity-editor";
+import "./hui-view-background-editor";
+import "./hui-view-editor";
+import "./hui-view-visibility-editor";
import "@material/mwc-tab-bar/mwc-tab-bar";
import "@material/mwc-tab/mwc-tab";
+
import {
mdiClose,
mdiDotsVertical,
mdiFileMoveOutline,
mdiPlaylistEdit,
} from "@mdi/js";
-import type { CSSResultGroup, PropertyValues } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
-import type { HASSDomEvent } from "../../../../common/dom/fire_event";
+
import { fireEvent } from "../../../../common/dom/fire_event";
import { stopPropagation } from "../../../../common/dom/stop_propagation";
import { navigate } from "../../../../common/navigate";
import { deepEqual } from "../../../../common/util/deep-equal";
-import "../../../../components/ha-alert";
-import "../../../../components/ha-button";
-import "../../../../components/ha-spinner";
-import "../../../../components/ha-dialog";
-import "../../../../components/ha-dialog-header";
-import "../../../../components/ha-yaml-editor";
-import type { HaYamlEditor } from "../../../../components/ha-yaml-editor";
-import type { LovelaceViewConfig } from "../../../../data/lovelace/config/view";
+import {
+ fetchConfig,
+ isStrategyDashboard,
+ saveConfig,
+ type LovelaceConfig,
+} from "../../../../data/lovelace/config/types";
import { isStrategyView } from "../../../../data/lovelace/config/view";
import {
showAlertDialog,
showConfirmationDialog,
} from "../../../../dialogs/generic/show-dialog-box";
import { haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
-import "../../components/hui-entity-editor";
import { SECTIONS_VIEW_LAYOUT } from "../../views/const";
import { generateDefaultSection } from "../../views/default-section";
import { getViewType } from "../../views/get-view-type";
@@ -41,19 +56,7 @@ import {
moveViewToDashboard,
replaceView,
} from "../config-util";
-import type { ViewEditEvent, ViewVisibilityChangeEvent } from "../types";
-import "./hui-view-background-editor";
-import "./hui-view-editor";
-import "./hui-view-visibility-editor";
-import type { EditViewDialogParams } from "./show-edit-view-dialog";
import { showSelectDashboardDialog } from "../select-dashboard/show-select-dashboard-dialog";
-import {
- fetchConfig,
- isStrategyDashboard,
- saveConfig,
- type LovelaceConfig,
-} from "../../../../data/lovelace/config/types";
-import type { Lovelace } from "../../types";
const TABS = ["tab-settings", "tab-background", "tab-visibility"] as const;
diff --git a/src/panels/lovelace/editor/view-editor/hui-view-background-editor.ts b/src/panels/lovelace/editor/view-editor/hui-view-background-editor.ts
index 2d338a0362..8cc9ba2c05 100644
--- a/src/panels/lovelace/editor/view-editor/hui-view-background-editor.ts
+++ b/src/panels/lovelace/editor/view-editor/hui-view-background-editor.ts
@@ -1,14 +1,17 @@
-import "@material/mwc-list/mwc-list-item";
-import memoizeOne from "memoize-one";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import "../../../../components/ha-form/ha-form";
import type { SchemaUnion } from "../../../../components/ha-form/types";
-import "../../../../components/ha-selector/ha-selector-background";
import type { LovelaceViewConfig } from "../../../../data/lovelace/config/view";
import type { HomeAssistant } from "../../../../types";
+import "../../../../components/ha-form/ha-form";
+import "../../../../components/ha-selector/ha-selector-background";
+import "@material/mwc-list/mwc-list-item";
+
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+
@customElement("hui-view-background-editor")
export class HuiViewBackgroundEditor extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/lovelace/editor/view-editor/hui-view-editor.ts b/src/panels/lovelace/editor/view-editor/hui-view-editor.ts
index c67204e344..c7ec76720f 100644
--- a/src/panels/lovelace/editor/view-editor/hui-view-editor.ts
+++ b/src/panels/lovelace/editor/view-editor/hui-view-editor.ts
@@ -1,16 +1,19 @@
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { slugify } from "../../../../common/string/slugify";
import type { LocalizeFunc } from "../../../../common/translations/localize";
-import "../../../../components/ha-form/ha-form";
import type {
HaFormSchema,
SchemaUnion,
} from "../../../../components/ha-form/types";
import type { LovelaceViewConfig } from "../../../../data/lovelace/config/view";
import type { HomeAssistant } from "../../../../types";
+
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { slugify } from "../../../../common/string/slugify";
import {
MASONRY_VIEW_LAYOUT,
SECTIONS_VIEW_LAYOUT,
diff --git a/src/panels/lovelace/editor/view-editor/hui-view-visibility-editor.ts b/src/panels/lovelace/editor/view-editor/hui-view-visibility-editor.ts
index 6b445d4831..f886dcdecb 100644
--- a/src/panels/lovelace/editor/view-editor/hui-view-visibility-editor.ts
+++ b/src/panels/lovelace/editor/view-editor/hui-view-visibility-editor.ts
@@ -1,21 +1,24 @@
-import "@material/mwc-list/mwc-list-item";
-import type { PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../common/dom/fire_event";
-import { stringCompare } from "../../../../common/string/compare";
import type { HaSwitch } from "../../../../components/ha-switch";
-import "../../../../components/user/ha-user-badge";
-import "../../../../components/ha-list-item";
-import "../../../../components/ha-switch";
import type {
LovelaceViewConfig,
ShowViewConfig,
} from "../../../../data/lovelace/config/view";
import type { User } from "../../../../data/user";
-import { fetchUsers } from "../../../../data/user";
import type { HomeAssistant } from "../../../../types";
+import type { PropertyValues } from "lit";
+
+import "../../../../components/ha-list-item";
+import "../../../../components/ha-switch";
+import "../../../../components/user/ha-user-badge";
+import "@material/mwc-list/mwc-list-item";
+
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { stringCompare } from "../../../../common/string/compare";
+import { fetchUsers } from "../../../../data/user";
declare global {
interface HASSDomEvents {
diff --git a/src/panels/lovelace/editor/view-editor/show-edit-view-dialog.ts b/src/panels/lovelace/editor/view-editor/show-edit-view-dialog.ts
index ed5d5d40ef..83eeba7a45 100644
--- a/src/panels/lovelace/editor/view-editor/show-edit-view-dialog.ts
+++ b/src/panels/lovelace/editor/view-editor/show-edit-view-dialog.ts
@@ -1,8 +1,9 @@
import type { HASSDomEvent } from "../../../../common/dom/fire_event";
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { LovelaceViewConfig } from "../../../../data/lovelace/config/view";
import type { Lovelace } from "../../types";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
declare global {
// for fire event
interface HASSDomEvents {
diff --git a/src/panels/lovelace/editor/view-header/hui-dialog-edit-view-header.ts b/src/panels/lovelace/editor/view-header/hui-dialog-edit-view-header.ts
index 615b53e36c..ba226681c8 100644
--- a/src/panels/lovelace/editor/view-header/hui-dialog-edit-view-header.ts
+++ b/src/panels/lovelace/editor/view-header/hui-dialog-edit-view-header.ts
@@ -1,24 +1,27 @@
+import type { HaYamlEditor } from "../../../../components/ha-yaml-editor";
+import type { LovelaceViewHeaderConfig } from "../../../../data/lovelace/config/view";
+import type { HomeAssistant } from "../../../../types";
+import type { EditViewHeaderDialogParams } from "./show-edit-view-header-dialog";
import type { ActionDetail } from "@material/mwc-list";
-import { mdiClose, mdiDotsVertical, mdiPlaylistEdit } from "@mdi/js";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../../../components/ha-button";
+import "../../../../components/ha-dialog";
+import "../../../../components/ha-dialog-header";
+import "../../../../components/ha-spinner";
+import "../../../../components/ha-yaml-editor";
+import "./hui-view-header-settings-editor";
+
+import { mdiClose, mdiDotsVertical, mdiPlaylistEdit } from "@mdi/js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { fireEvent } from "../../../../common/dom/fire_event";
import { stopPropagation } from "../../../../common/dom/stop_propagation";
import { deepEqual } from "../../../../common/util/deep-equal";
-import "../../../../components/ha-button";
-import "../../../../components/ha-spinner";
-import "../../../../components/ha-dialog";
-import "../../../../components/ha-dialog-header";
-import "../../../../components/ha-yaml-editor";
-import type { HaYamlEditor } from "../../../../components/ha-yaml-editor";
-import type { LovelaceViewHeaderConfig } from "../../../../data/lovelace/config/view";
import { showAlertDialog } from "../../../../dialogs/generic/show-dialog-box";
import { haStyleDialog } from "../../../../resources/styles";
-import type { HomeAssistant } from "../../../../types";
-import "./hui-view-header-settings-editor";
-import type { EditViewHeaderDialogParams } from "./show-edit-view-header-dialog";
@customElement("hui-dialog-edit-view-header")
export class HuiDialogEditViewHeader extends LitElement {
diff --git a/src/panels/lovelace/editor/view-header/hui-view-header-settings-editor.ts b/src/panels/lovelace/editor/view-header/hui-view-header-settings-editor.ts
index defde66bc9..5a369d1e85 100644
--- a/src/panels/lovelace/editor/view-header/hui-view-header-settings-editor.ts
+++ b/src/panels/lovelace/editor/view-header/hui-view-header-settings-editor.ts
@@ -1,10 +1,4 @@
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { LocalizeFunc } from "../../../../common/translations/localize";
-import { computeRTL } from "../../../../common/util/compute_rtl";
-import "../../../../components/ha-form/ha-form";
import type {
HaFormSchema,
SchemaUnion,
@@ -14,11 +8,20 @@ import type {
LovelaceViewHeaderConfig,
} from "../../../../data/lovelace/config/view";
import type { HomeAssistant } from "../../../../types";
+
+import "../../../../components/ha-form/ha-form";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { fireEvent } from "../../../../common/dom/fire_event";
+import { listenMediaQuery } from "../../../../common/dom/media_query";
+import { computeRTL } from "../../../../common/util/compute_rtl";
import {
DEFAULT_VIEW_HEADER_BADGES_POSITION,
DEFAULT_VIEW_HEADER_LAYOUT,
} from "../../views/hui-view-header";
-import { listenMediaQuery } from "../../../../common/dom/media_query";
@customElement("hui-view-header-settings-editor")
export class HuiViewHeaderSettingsEditor extends LitElement {
diff --git a/src/panels/lovelace/editor/view-header/show-edit-view-header-dialog.ts b/src/panels/lovelace/editor/view-header/show-edit-view-header-dialog.ts
index d2aef306c3..4c726b0c14 100644
--- a/src/panels/lovelace/editor/view-header/show-edit-view-header-dialog.ts
+++ b/src/panels/lovelace/editor/view-header/show-edit-view-header-dialog.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../../../common/dom/fire_event";
import type { LovelaceViewHeaderConfig } from "../../../../data/lovelace/config/view";
+import { fireEvent } from "../../../../common/dom/fire_event";
+
export interface EditViewHeaderDialogParams {
saveConfig: (config: LovelaceViewHeaderConfig) => void;
config: LovelaceViewHeaderConfig;
diff --git a/src/panels/lovelace/elements/hui-conditional-element.ts b/src/panels/lovelace/elements/hui-conditional-element.ts
index b299879820..8b4a204e6d 100644
--- a/src/panels/lovelace/elements/hui-conditional-element.ts
+++ b/src/panels/lovelace/elements/hui-conditional-element.ts
@@ -1,9 +1,4 @@
import type { HomeAssistant } from "../../../types";
-import { createStyledHuiElement } from "../cards/picture-elements/create-styled-hui-element";
-import {
- checkConditionsMet,
- validateConditionalConfig,
-} from "../common/validate-condition";
import type { LovelacePictureElementEditor } from "../types";
import type {
ConditionalElementConfig,
@@ -11,6 +6,12 @@ import type {
LovelaceElementConfig,
} from "./types";
+import { createStyledHuiElement } from "../cards/picture-elements/create-styled-hui-element";
+import {
+ checkConditionsMet,
+ validateConditionalConfig,
+} from "../common/validate-condition";
+
class HuiConditionalElement extends HTMLElement implements LovelaceElement {
public static async getConfigElement(): Promise {
await import(
diff --git a/src/panels/lovelace/elements/hui-icon-element.ts b/src/panels/lovelace/elements/hui-icon-element.ts
index 7d31a9f441..008ebc94bc 100644
--- a/src/panels/lovelace/elements/hui-icon-element.ts
+++ b/src/panels/lovelace/elements/hui-icon-element.ts
@@ -1,15 +1,18 @@
+import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
+import type { HomeAssistant } from "../../../types";
+import type { LovelacePictureElementEditor } from "../types";
+import type { IconElementConfig, LovelaceElement } from "./types";
+
+import "../../../components/ha-icon";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
-import "../../../components/ha-icon";
-import type { HomeAssistant } from "../../../types";
+
import { computeTooltip } from "../common/compute-tooltip";
import { actionHandler } from "../common/directives/action-handler-directive";
import { handleAction } from "../common/handle-action";
import { hasAction } from "../common/has-action";
-import type { IconElementConfig, LovelaceElement } from "./types";
-import type { LovelacePictureElementEditor } from "../types";
-import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
@customElement("hui-icon-element")
export class HuiIconElement extends LitElement implements LovelaceElement {
diff --git a/src/panels/lovelace/elements/hui-image-element.ts b/src/panels/lovelace/elements/hui-image-element.ts
index e59d5e20bd..4661373fbe 100644
--- a/src/panels/lovelace/elements/hui-image-element.ts
+++ b/src/panels/lovelace/elements/hui-image-element.ts
@@ -1,17 +1,20 @@
+import type { ImageEntity } from "../../../data/image";
+import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
+import type { HomeAssistant } from "../../../types";
+import type { LovelacePictureElementEditor } from "../types";
+import type { ImageElementConfig, LovelaceElement } from "./types";
+
+import "../components/hui-image";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
-import type { ImageEntity } from "../../../data/image";
+
import { computeImageUrl } from "../../../data/image";
-import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
-import type { HomeAssistant } from "../../../types";
import { computeTooltip } from "../common/compute-tooltip";
import { actionHandler } from "../common/directives/action-handler-directive";
import { handleAction } from "../common/handle-action";
import { hasAction } from "../common/has-action";
-import "../components/hui-image";
-import type { ImageElementConfig, LovelaceElement } from "./types";
-import type { LovelacePictureElementEditor } from "../types";
@customElement("hui-image-element")
export class HuiImageElement extends LitElement implements LovelaceElement {
diff --git a/src/panels/lovelace/elements/hui-service-button-element.ts b/src/panels/lovelace/elements/hui-service-button-element.ts
index ed2a173e78..0140c646eb 100644
--- a/src/panels/lovelace/elements/hui-service-button-element.ts
+++ b/src/panels/lovelace/elements/hui-service-button-element.ts
@@ -1,9 +1,11 @@
+import type { HomeAssistant } from "../../../types";
+import type { LovelacePictureElementEditor } from "../types";
+import type { LovelaceElement, ServiceButtonElementConfig } from "./types";
+
+import "../../../components/buttons/ha-call-service-button";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, state } from "lit/decorators";
-import "../../../components/buttons/ha-call-service-button";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceElement, ServiceButtonElementConfig } from "./types";
-import type { LovelacePictureElementEditor } from "../types";
@customElement("hui-service-button-element")
export class HuiServiceButtonElement
diff --git a/src/panels/lovelace/elements/hui-state-badge-element.ts b/src/panels/lovelace/elements/hui-state-badge-element.ts
index dcb76ae25a..a79aa29b92 100644
--- a/src/panels/lovelace/elements/hui-state-badge-element.ts
+++ b/src/panels/lovelace/elements/hui-state-badge-element.ts
@@ -1,22 +1,25 @@
+import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
+import type { HomeAssistant } from "../../../types";
+import type { LovelacePictureElementEditor } from "../types";
+import type { LovelaceElement, StateBadgeElementConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
+
+import "../../../components/entity/ha-state-label-badge";
+import "../components/hui-warning-element";
+
import { LitElement, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
-import { findEntities } from "../common/find-entities";
+
import { computeStateName } from "../../../common/entity/compute_state_name";
-import "../../../components/entity/ha-state-label-badge";
-import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
-import type { HomeAssistant } from "../../../types";
+import { isUnavailableState } from "../../../data/entity";
import { actionHandler } from "../common/directives/action-handler-directive";
+import { findEntities } from "../common/find-entities";
import { handleAction } from "../common/handle-action";
import { hasAction } from "../common/has-action";
-import { isUnavailableState } from "../../../data/entity";
import { hasConfigOrEntityChanged } from "../common/has-changed";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import "../components/hui-warning-element";
-import type { LovelaceElement, StateBadgeElementConfig } from "./types";
-import type { LovelacePictureElementEditor } from "../types";
@customElement("hui-state-badge-element")
export class HuiStateBadgeElement
diff --git a/src/panels/lovelace/elements/hui-state-icon-element.ts b/src/panels/lovelace/elements/hui-state-icon-element.ts
index 1d6948642f..8e78568dbb 100644
--- a/src/panels/lovelace/elements/hui-state-icon-element.ts
+++ b/src/panels/lovelace/elements/hui-state-icon-element.ts
@@ -1,22 +1,26 @@
+import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
+import type { HomeAssistant } from "../../../types";
+import type { LovelacePictureElementEditor } from "../types";
+import type { LovelaceElement, StateIconElementConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
+
+import "../../../components/entity/state-badge";
+import "../components/hui-warning-element";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
-import { findEntities } from "../common/find-entities";
-import "../../../components/entity/state-badge";
-import type { HomeAssistant } from "../../../types";
+
+import { isUnavailableState } from "../../../data/entity";
import { computeTooltip } from "../common/compute-tooltip";
import { actionHandler } from "../common/directives/action-handler-directive";
+import { findEntities } from "../common/find-entities";
import { handleAction } from "../common/handle-action";
import { hasAction } from "../common/has-action";
-import { isUnavailableState } from "../../../data/entity";
import { hasConfigOrEntityChanged } from "../common/has-changed";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import "../components/hui-warning-element";
-import type { LovelaceElement, StateIconElementConfig } from "./types";
-import type { LovelacePictureElementEditor } from "../types";
-import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
+
@customElement("hui-state-icon-element")
export class HuiStateIconElement extends LitElement implements LovelaceElement {
diff --git a/src/panels/lovelace/elements/hui-state-label-element.ts b/src/panels/lovelace/elements/hui-state-label-element.ts
index 08a1f16b4d..a57c48e069 100644
--- a/src/panels/lovelace/elements/hui-state-label-element.ts
+++ b/src/panels/lovelace/elements/hui-state-label-element.ts
@@ -1,21 +1,24 @@
+import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
+import type { HomeAssistant } from "../../../types";
+import type { LovelacePictureElementEditor } from "../types";
+import type { LovelaceElement, StateLabelElementConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
+
+import "../components/hui-warning-element";
+
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
-import { findEntities } from "../common/find-entities";
-import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
-import type { HomeAssistant } from "../../../types";
+
+import { isUnavailableState } from "../../../data/entity";
import { computeTooltip } from "../common/compute-tooltip";
import { actionHandler } from "../common/directives/action-handler-directive";
+import { findEntities } from "../common/find-entities";
import { handleAction } from "../common/handle-action";
import { hasAction } from "../common/has-action";
-import { isUnavailableState } from "../../../data/entity";
import { hasConfigOrEntityChanged } from "../common/has-changed";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import "../components/hui-warning-element";
-import type { LovelaceElement, StateLabelElementConfig } from "./types";
-import type { LovelacePictureElementEditor } from "../types";
@customElement("hui-state-label-element")
class HuiStateLabelElement extends LitElement implements LovelaceElement {
diff --git a/src/panels/lovelace/elements/types.ts b/src/panels/lovelace/elements/types.ts
index 5ca44d5027..08e2e5f59a 100644
--- a/src/panels/lovelace/elements/types.ts
+++ b/src/panels/lovelace/elements/types.ts
@@ -1,8 +1,8 @@
-import type { HassServiceTarget } from "home-assistant-js-websocket";
import type { ActionConfig } from "../../../data/lovelace/config/action";
import type { HomeAssistant } from "../../../types";
import type { Condition } from "../common/validate-condition";
import type { HuiImage } from "../components/hui-image";
+import type { HassServiceTarget } from "home-assistant-js-websocket";
interface LovelaceElementConfigBase {
type: string;
diff --git a/src/panels/lovelace/entity-rows/hui-button-entity-row.ts b/src/panels/lovelace/entity-rows/hui-button-entity-row.ts
index e41c4de02d..16e0a32145 100644
--- a/src/panels/lovelace/entity-rows/hui-button-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-button-entity-row.ts
@@ -1,14 +1,17 @@
-import "@material/mwc-button/mwc-button";
+import type { HomeAssistant } from "../../../types";
+import type { ActionRowConfig, LovelaceRow } from "./types";
import type { PropertyValues } from "lit";
+
+import "../components/hui-generic-entity-row";
+import "@material/mwc-button/mwc-button";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { UNAVAILABLE } from "../../../data/entity";
-import type { HomeAssistant } from "../../../types";
-import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
-import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { ActionRowConfig, LovelaceRow } from "./types";
import { confirmAction } from "../common/confirm-action";
+import { hasConfigOrEntityChanged } from "../common/has-changed";
+import { createEntityNotFoundWarning } from "../components/hui-warning";
@customElement("hui-button-entity-row")
class HuiButtonEntityRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/entity-rows/hui-climate-entity-row.ts b/src/panels/lovelace/entity-rows/hui-climate-entity-row.ts
index 82b1a3a25f..cc5f26cf69 100644
--- a/src/panels/lovelace/entity-rows/hui-climate-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-climate-entity-row.ts
@@ -1,12 +1,15 @@
+import type { HomeAssistant } from "../../../types";
+import type { EntityConfig, LovelaceRow } from "./types";
import type { PropertyValues } from "lit";
+
+import "../../../components/ha-climate-state";
+import "../components/hui-generic-entity-row";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
-import "../../../components/ha-climate-state";
-import type { HomeAssistant } from "../../../types";
+
import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { EntityConfig, LovelaceRow } from "./types";
@customElement("hui-climate-entity-row")
class HuiClimateEntityRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/entity-rows/hui-cover-entity-row.ts b/src/panels/lovelace/entity-rows/hui-cover-entity-row.ts
index 7658be502e..1aefe60863 100644
--- a/src/panels/lovelace/entity-rows/hui-cover-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-cover-entity-row.ts
@@ -1,15 +1,18 @@
+import type { CoverEntity } from "../../../data/cover";
+import type { HomeAssistant } from "../../../types";
+import type { EntityConfig, LovelaceRow } from "./types";
import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
+
import "../../../components/ha-cover-controls";
import "../../../components/ha-cover-tilt-controls";
-import type { CoverEntity } from "../../../data/cover";
-import { isTiltOnly } from "../../../data/cover";
-import type { HomeAssistant } from "../../../types";
-import { hasConfigOrEntityChanged } from "../common/has-changed";
import "../components/hui-generic-entity-row";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { isTiltOnly } from "../../../data/cover";
+import { hasConfigOrEntityChanged } from "../common/has-changed";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { EntityConfig, LovelaceRow } from "./types";
@customElement("hui-cover-entity-row")
class HuiCoverEntityRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/entity-rows/hui-date-entity-row.ts b/src/panels/lovelace/entity-rows/hui-date-entity-row.ts
index 473d06bbb9..c6682f8a2e 100644
--- a/src/panels/lovelace/entity-rows/hui-date-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-date-entity-row.ts
@@ -1,14 +1,17 @@
+import type { HomeAssistant } from "../../../types";
+import type { EntityConfig, LovelaceRow } from "./types";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/ha-date-input";
+import "../components/hui-generic-entity-row";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
-import "../../../components/ha-date-input";
-import { isUnavailableState, UNAVAILABLE } from "../../../data/entity";
+
import { setDateValue } from "../../../data/date";
-import type { HomeAssistant } from "../../../types";
+import { isUnavailableState, UNAVAILABLE } from "../../../data/entity";
import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { EntityConfig, LovelaceRow } from "./types";
@customElement("hui-date-entity-row")
class HuiDateEntityRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/entity-rows/hui-datetime-entity-row.ts b/src/panels/lovelace/entity-rows/hui-datetime-entity-row.ts
index f2de95979a..5c9f791818 100644
--- a/src/panels/lovelace/entity-rows/hui-datetime-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-datetime-entity-row.ts
@@ -1,17 +1,21 @@
+import type { HomeAssistant } from "../../../types";
+import type { EntityConfig, LovelaceRow } from "./types";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/ha-date-input";
+import "../../../components/ha-time-input";
+import "../components/hui-generic-entity-row";
+
+import { format } from "date-fns";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
-import "../../../components/ha-date-input";
-import { format } from "date-fns";
-import { isUnavailableState, UNAVAILABLE } from "../../../data/entity";
-import { setDateTimeValue } from "../../../data/datetime";
-import type { HomeAssistant } from "../../../types";
-import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
-import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { EntityConfig, LovelaceRow } from "./types";
-import "../../../components/ha-time-input";
+
import { computeStateName } from "../../../common/entity/compute_state_name";
+import { setDateTimeValue } from "../../../data/datetime";
+import { isUnavailableState, UNAVAILABLE } from "../../../data/entity";
+import { hasConfigOrEntityChanged } from "../common/has-changed";
+import { createEntityNotFoundWarning } from "../components/hui-warning";
+
@customElement("hui-datetime-entity-row")
class HuiInputDatetimeEntityRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/entity-rows/hui-event-entity-row.ts b/src/panels/lovelace/entity-rows/hui-event-entity-row.ts
index 8e73f757cf..d5cdd78fb3 100644
--- a/src/panels/lovelace/entity-rows/hui-event-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-event-entity-row.ts
@@ -1,19 +1,22 @@
-import type { PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { isUnavailableState } from "../../../data/entity";
import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
import type { HomeAssistant } from "../../../types";
import type { EntitiesCardEntityConfig } from "../cards/types";
+import type { TimestampRenderingFormat } from "../components/types";
+import type { LovelaceRow } from "./types";
+import type { PropertyValues } from "lit";
+
+import "../components/hui-generic-entity-row";
+import "../components/hui-timestamp-display";
+
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { isUnavailableState } from "../../../data/entity";
import { actionHandler } from "../common/directives/action-handler-directive";
import { handleAction } from "../common/handle-action";
import { hasAction } from "../common/has-action";
import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
-import "../components/hui-timestamp-display";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { TimestampRenderingFormat } from "../components/types";
-import type { LovelaceRow } from "./types";
interface EventEntityConfig extends EntitiesCardEntityConfig {
format?: TimestampRenderingFormat;
diff --git a/src/panels/lovelace/entity-rows/hui-group-entity-row.ts b/src/panels/lovelace/entity-rows/hui-group-entity-row.ts
index a51bcc8d93..c708987cb2 100644
--- a/src/panels/lovelace/entity-rows/hui-group-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-group-entity-row.ts
@@ -1,14 +1,17 @@
+import type { HomeAssistant } from "../../../types";
+import type { EntityConfig, LovelaceRow } from "./types";
import type { PropertyValues } from "lit";
+
+import "../../../components/entity/ha-entity-toggle";
+import "../components/hui-generic-entity-row";
+
import { LitElement, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { DOMAINS_TOGGLE } from "../../../common/const";
import { computeDomain } from "../../../common/entity/compute_domain";
-import "../../../components/entity/ha-entity-toggle";
-import type { HomeAssistant } from "../../../types";
import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { EntityConfig, LovelaceRow } from "./types";
@customElement("hui-group-entity-row")
class HuiGroupEntityRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/entity-rows/hui-humidifier-entity-row.ts b/src/panels/lovelace/entity-rows/hui-humidifier-entity-row.ts
index b8c14a8d64..2d63e078f0 100644
--- a/src/panels/lovelace/entity-rows/hui-humidifier-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-humidifier-entity-row.ts
@@ -1,14 +1,17 @@
-import type { PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import "../../../components/entity/ha-entity-toggle";
-import "../../../components/ha-humidifier-state";
import type { HumidifierEntity } from "../../../data/humidifier";
import type { HomeAssistant } from "../../../types";
-import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
-import { createEntityNotFoundWarning } from "../components/hui-warning";
import type { EntityConfig, LovelaceRow } from "./types";
+import type { PropertyValues } from "lit";
+
+import "../../../components/entity/ha-entity-toggle";
+import "../../../components/ha-humidifier-state";
+import "../components/hui-generic-entity-row";
+
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { hasConfigOrEntityChanged } from "../common/has-changed";
+import { createEntityNotFoundWarning } from "../components/hui-warning";
@customElement("hui-humidifier-entity-row")
class HuiHumidifierEntityRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/entity-rows/hui-input-button-entity-row.ts b/src/panels/lovelace/entity-rows/hui-input-button-entity-row.ts
index d869d98abd..33f3e03191 100644
--- a/src/panels/lovelace/entity-rows/hui-input-button-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-input-button-entity-row.ts
@@ -1,14 +1,17 @@
-import "@material/mwc-button/mwc-button";
+import type { HomeAssistant } from "../../../types";
+import type { ActionRowConfig, LovelaceRow } from "./types";
import type { PropertyValues } from "lit";
+
+import "../components/hui-generic-entity-row";
+import "@material/mwc-button/mwc-button";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { UNAVAILABLE } from "../../../data/entity";
-import type { HomeAssistant } from "../../../types";
-import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
-import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { ActionRowConfig, LovelaceRow } from "./types";
import { confirmAction } from "../common/confirm-action";
+import { hasConfigOrEntityChanged } from "../common/has-changed";
+import { createEntityNotFoundWarning } from "../components/hui-warning";
@customElement("hui-input-button-entity-row")
class HuiInputButtonEntityRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/entity-rows/hui-input-datetime-entity-row.ts b/src/panels/lovelace/entity-rows/hui-input-datetime-entity-row.ts
index 623f07a7b0..70ba2f7329 100644
--- a/src/panels/lovelace/entity-rows/hui-input-datetime-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-input-datetime-entity-row.ts
@@ -1,19 +1,22 @@
+import type { HomeAssistant } from "../../../types";
+import type { EntityConfig, LovelaceRow } from "./types";
import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { computeStateName } from "../../../common/entity/compute_state_name";
+
import "../../../components/ha-date-input";
import "../../../components/ha-time-input";
+import "../components/hui-generic-entity-row";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { computeStateName } from "../../../common/entity/compute_state_name";
import { isUnavailableState, UNKNOWN } from "../../../data/entity";
import {
setInputDateTimeValue,
stateToIsoDateString,
} from "../../../data/input_datetime";
-import type { HomeAssistant } from "../../../types";
import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { EntityConfig, LovelaceRow } from "./types";
@customElement("hui-input-datetime-entity-row")
class HuiInputDatetimeEntityRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/entity-rows/hui-input-number-entity-row.ts b/src/panels/lovelace/entity-rows/hui-input-number-entity-row.ts
index 2508d5efd9..6d31350d72 100644
--- a/src/panels/lovelace/entity-rows/hui-input-number-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-input-number-entity-row.ts
@@ -1,16 +1,19 @@
+import type { HomeAssistant } from "../../../types";
+import type { EntityConfig, LovelaceRow } from "./types";
import type { PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { debounce } from "../../../common/util/debounce";
+
import "../../../components/ha-slider";
import "../../../components/ha-textfield";
+import "../components/hui-generic-entity-row";
+
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { debounce } from "../../../common/util/debounce";
import { isUnavailableState } from "../../../data/entity";
import { setValue } from "../../../data/input_text";
-import type { HomeAssistant } from "../../../types";
import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { EntityConfig, LovelaceRow } from "./types";
@customElement("hui-input-number-entity-row")
class HuiInputNumberEntityRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/entity-rows/hui-input-select-entity-row.ts b/src/panels/lovelace/entity-rows/hui-input-select-entity-row.ts
index 95e2ddebff..a71dc7b083 100644
--- a/src/panels/lovelace/entity-rows/hui-input-select-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-input-select-entity-row.ts
@@ -1,20 +1,23 @@
-import "@material/mwc-list/mwc-list-item";
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { stopPropagation } from "../../../common/dom/stop_propagation";
-import { computeStateName } from "../../../common/entity/compute_state_name";
-import "../../../components/ha-select";
-import { UNAVAILABLE } from "../../../data/entity";
-import { forwardHaptic } from "../../../data/haptics";
import type { InputSelectEntity } from "../../../data/input_select";
-import { setInputSelectOption } from "../../../data/input_select";
import type { HomeAssistant } from "../../../types";
import type { EntitiesCardEntityConfig } from "../cards/types";
-import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
-import { createEntityNotFoundWarning } from "../components/hui-warning";
import type { LovelaceRow } from "./types";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-select";
+import "../components/hui-generic-entity-row";
+import "@material/mwc-list/mwc-list-item";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { stopPropagation } from "../../../common/dom/stop_propagation";
+import { computeStateName } from "../../../common/entity/compute_state_name";
+import { UNAVAILABLE } from "../../../data/entity";
+import { forwardHaptic } from "../../../data/haptics";
+import { setInputSelectOption } from "../../../data/input_select";
+import { hasConfigOrEntityChanged } from "../common/has-changed";
+import { createEntityNotFoundWarning } from "../components/hui-warning";
@customElement("hui-input-select-entity-row")
class HuiInputSelectEntityRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/entity-rows/hui-input-text-entity-row.ts b/src/panels/lovelace/entity-rows/hui-input-text-entity-row.ts
index 73f00a7a11..0ff7200f6a 100644
--- a/src/panels/lovelace/entity-rows/hui-input-text-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-input-text-entity-row.ts
@@ -1,15 +1,18 @@
+import type { HomeAssistant } from "../../../types";
+import type { EntityConfig, LovelaceRow } from "./types";
import type { PropertyValues } from "lit";
+
+import "../../../components/ha-textfield";
+import "../components/hui-generic-entity-row";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { computeStateName } from "../../../common/entity/compute_state_name";
-import "../../../components/ha-textfield";
import { isUnavailableState, UNAVAILABLE } from "../../../data/entity";
import { setValue } from "../../../data/input_text";
-import type { HomeAssistant } from "../../../types";
import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { EntityConfig, LovelaceRow } from "./types";
@customElement("hui-input-text-entity-row")
class HuiInputTextEntityRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/entity-rows/hui-lock-entity-row.ts b/src/panels/lovelace/entity-rows/hui-lock-entity-row.ts
index 6832139051..3d6752ca4e 100644
--- a/src/panels/lovelace/entity-rows/hui-lock-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-lock-entity-row.ts
@@ -1,15 +1,18 @@
-import "@material/mwc-button/mwc-button";
+import type { HomeAssistant } from "../../../types";
+import type { ConfirmableRowConfig, LovelaceRow } from "./types";
import type { PropertyValues } from "lit";
+
+import "../components/hui-generic-entity-row";
+import "@material/mwc-button/mwc-button";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { isUnavailableState } from "../../../data/entity";
-import type { HomeAssistant } from "../../../types";
-import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
-import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { ConfirmableRowConfig, LovelaceRow } from "./types";
import { callProtectedLockService } from "../../../data/lock";
import { confirmAction } from "../common/confirm-action";
+import { hasConfigOrEntityChanged } from "../common/has-changed";
+import { createEntityNotFoundWarning } from "../components/hui-warning";
@customElement("hui-lock-entity-row")
class HuiLockEntityRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/entity-rows/hui-media-player-entity-row.ts b/src/panels/lovelace/entity-rows/hui-media-player-entity-row.ts
index b08504c470..27d81d8a63 100644
--- a/src/panels/lovelace/entity-rows/hui-media-player-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-media-player-entity-row.ts
@@ -1,3 +1,16 @@
+import type {
+ ControlButton,
+ MediaPlayerEntity,
+} from "../../../data/media-player";
+import type { HomeAssistant } from "../../../types";
+import type { EntityConfig, LovelaceRow } from "./types";
+import type { HassEntity } from "home-assistant-js-websocket";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-icon-button";
+import "../../../components/ha-slider";
+import "../components/hui-generic-entity-row";
+
import {
mdiPause,
mdiPlay,
@@ -11,29 +24,19 @@ import {
mdiVolumeOff,
mdiVolumePlus,
} from "@mdi/js";
-import type { HassEntity } from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { stateActive } from "../../../common/entity/state_active";
import { supportsFeature } from "../../../common/entity/supports-feature";
import { debounce } from "../../../common/util/debounce";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-slider";
import { isUnavailableState } from "../../../data/entity";
-import type {
- ControlButton,
- MediaPlayerEntity,
-} from "../../../data/media-player";
import {
MediaPlayerEntityFeature,
computeMediaDescription,
} from "../../../data/media-player";
-import type { HomeAssistant } from "../../../types";
import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { EntityConfig, LovelaceRow } from "./types";
@customElement("hui-media-player-entity-row")
class HuiMediaPlayerEntityRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/entity-rows/hui-number-entity-row.ts b/src/panels/lovelace/entity-rows/hui-number-entity-row.ts
index 311f4493f7..2e3e38aa00 100644
--- a/src/panels/lovelace/entity-rows/hui-number-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-number-entity-row.ts
@@ -1,16 +1,19 @@
+import type { HomeAssistant } from "../../../types";
+import type { EntityConfig, LovelaceRow } from "./types";
import type { PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { debounce } from "../../../common/util/debounce";
+
import "../../../components/ha-slider";
import "../../../components/ha-textfield";
+import "../components/hui-generic-entity-row";
+
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { debounce } from "../../../common/util/debounce";
import { UNAVAILABLE } from "../../../data/entity";
import { setValue } from "../../../data/input_text";
-import type { HomeAssistant } from "../../../types";
import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { EntityConfig, LovelaceRow } from "./types";
@customElement("hui-number-entity-row")
class HuiNumberEntityRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/entity-rows/hui-scene-entity-row.ts b/src/panels/lovelace/entity-rows/hui-scene-entity-row.ts
index 55b8e62b86..c02cf0ab94 100644
--- a/src/panels/lovelace/entity-rows/hui-scene-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-scene-entity-row.ts
@@ -1,16 +1,19 @@
-import "@material/mwc-button/mwc-button";
+import type { HomeAssistant } from "../../../types";
+import type { ActionRowConfig, LovelaceRow } from "./types";
import type { PropertyValues } from "lit";
+
+import "../../../components/entity/ha-entity-toggle";
+import "../components/hui-generic-entity-row";
+import "@material/mwc-button/mwc-button";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
-import "../../../components/entity/ha-entity-toggle";
+
import { UNAVAILABLE } from "../../../data/entity";
import { activateScene } from "../../../data/scene";
-import type { HomeAssistant } from "../../../types";
-import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
-import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { ActionRowConfig, LovelaceRow } from "./types";
import { confirmAction } from "../common/confirm-action";
+import { hasConfigOrEntityChanged } from "../common/has-changed";
+import { createEntityNotFoundWarning } from "../components/hui-warning";
@customElement("hui-scene-entity-row")
class HuiSceneEntityRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/entity-rows/hui-script-entity-row.ts b/src/panels/lovelace/entity-rows/hui-script-entity-row.ts
index bbf1fba097..036ba1e96d 100644
--- a/src/panels/lovelace/entity-rows/hui-script-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-script-entity-row.ts
@@ -1,17 +1,20 @@
-import "@material/mwc-button/mwc-button";
+import type { ScriptEntity } from "../../../data/script";
+import type { HomeAssistant } from "../../../types";
+import type { ActionRowConfig, LovelaceRow } from "./types";
import type { PropertyValues } from "lit";
+
+import "../components/hui-generic-entity-row";
+import "@material/mwc-button/mwc-button";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { isUnavailableState } from "../../../data/entity";
-import type { ScriptEntity } from "../../../data/script";
import { canRun, hasScriptFields } from "../../../data/script";
-import type { HomeAssistant } from "../../../types";
-import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
-import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { ActionRowConfig, LovelaceRow } from "./types";
import { showMoreInfoDialog } from "../../../dialogs/more-info/show-ha-more-info-dialog";
import { confirmAction } from "../common/confirm-action";
+import { hasConfigOrEntityChanged } from "../common/has-changed";
+import { createEntityNotFoundWarning } from "../components/hui-warning";
@customElement("hui-script-entity-row")
class HuiScriptEntityRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/entity-rows/hui-select-entity-row.ts b/src/panels/lovelace/entity-rows/hui-select-entity-row.ts
index e877ac1bf4..e4a48238ae 100644
--- a/src/panels/lovelace/entity-rows/hui-select-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-select-entity-row.ts
@@ -1,20 +1,23 @@
-import "@material/mwc-list/mwc-list-item";
-import type { PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { stopPropagation } from "../../../common/dom/stop_propagation";
-import { computeStateName } from "../../../common/entity/compute_state_name";
-import "../../../components/ha-select";
-import { UNAVAILABLE } from "../../../data/entity";
-import { forwardHaptic } from "../../../data/haptics";
import type { SelectEntity } from "../../../data/select";
-import { setSelectOption } from "../../../data/select";
import type { HomeAssistant } from "../../../types";
import type { EntitiesCardEntityConfig } from "../cards/types";
-import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
-import { createEntityNotFoundWarning } from "../components/hui-warning";
import type { LovelaceRow } from "./types";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-select";
+import "../components/hui-generic-entity-row";
+import "@material/mwc-list/mwc-list-item";
+
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { stopPropagation } from "../../../common/dom/stop_propagation";
+import { computeStateName } from "../../../common/entity/compute_state_name";
+import { UNAVAILABLE } from "../../../data/entity";
+import { forwardHaptic } from "../../../data/haptics";
+import { setSelectOption } from "../../../data/select";
+import { hasConfigOrEntityChanged } from "../common/has-changed";
+import { createEntityNotFoundWarning } from "../components/hui-warning";
@customElement("hui-select-entity-row")
class HuiSelectEntityRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/entity-rows/hui-sensor-entity-row.ts b/src/panels/lovelace/entity-rows/hui-sensor-entity-row.ts
index df47cd3690..33d40c62da 100644
--- a/src/panels/lovelace/entity-rows/hui-sensor-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-sensor-entity-row.ts
@@ -1,16 +1,19 @@
-import type { PropertyValues } from "lit";
-import { LitElement, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { isUnavailableState } from "../../../data/entity";
-import { SENSOR_DEVICE_CLASS_TIMESTAMP } from "../../../data/sensor";
import type { HomeAssistant } from "../../../types";
import type { EntitiesCardEntityConfig } from "../cards/types";
-import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
-import "../components/hui-timestamp-display";
-import { createEntityNotFoundWarning } from "../components/hui-warning";
import type { TimestampRenderingFormat } from "../components/types";
import type { LovelaceRow } from "./types";
+import type { PropertyValues } from "lit";
+
+import "../components/hui-generic-entity-row";
+import "../components/hui-timestamp-display";
+
+import { LitElement, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { isUnavailableState } from "../../../data/entity";
+import { SENSOR_DEVICE_CLASS_TIMESTAMP } from "../../../data/sensor";
+import { hasConfigOrEntityChanged } from "../common/has-changed";
+import { createEntityNotFoundWarning } from "../components/hui-warning";
interface SensorEntityConfig extends EntitiesCardEntityConfig {
format?: TimestampRenderingFormat;
diff --git a/src/panels/lovelace/entity-rows/hui-simple-entity-row.ts b/src/panels/lovelace/entity-rows/hui-simple-entity-row.ts
index 00c8f2910e..e99bfb8313 100644
--- a/src/panels/lovelace/entity-rows/hui-simple-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-simple-entity-row.ts
@@ -1,12 +1,15 @@
-import type { PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
import type { HomeAssistant } from "../../../types";
import type { EntitiesCardEntityConfig } from "../cards/types";
-import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
-import { createEntityNotFoundWarning } from "../components/hui-warning";
import type { LovelaceRow } from "./types";
+import type { PropertyValues } from "lit";
+
+import "../components/hui-generic-entity-row";
+
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { hasConfigOrEntityChanged } from "../common/has-changed";
+import { createEntityNotFoundWarning } from "../components/hui-warning";
@customElement("hui-simple-entity-row")
class HuiSimpleEntityRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/entity-rows/hui-text-entity-row.ts b/src/panels/lovelace/entity-rows/hui-text-entity-row.ts
index d593225ad3..9ab76d834f 100644
--- a/src/panels/lovelace/entity-rows/hui-text-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-text-entity-row.ts
@@ -1,16 +1,19 @@
+import type { TextEntity } from "../../../data/text";
+import type { HomeAssistant } from "../../../types";
+import type { EntityConfig, LovelaceRow } from "./types";
import type { PropertyValues } from "lit";
+
+import "../../../components/ha-textfield";
+import "../components/hui-generic-entity-row";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { computeStateName } from "../../../common/entity/compute_state_name";
-import "../../../components/ha-textfield";
import { isUnavailableState, UNAVAILABLE } from "../../../data/entity";
-import type { TextEntity } from "../../../data/text";
import { setValue } from "../../../data/text";
-import type { HomeAssistant } from "../../../types";
import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { EntityConfig, LovelaceRow } from "./types";
@customElement("hui-text-entity-row")
class HuiTextEntityRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/entity-rows/hui-time-entity-row.ts b/src/panels/lovelace/entity-rows/hui-time-entity-row.ts
index 6650b0a21e..721291b888 100644
--- a/src/panels/lovelace/entity-rows/hui-time-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-time-entity-row.ts
@@ -1,15 +1,18 @@
+import type { HomeAssistant } from "../../../types";
+import type { EntityConfig, LovelaceRow } from "./types";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/ha-date-input";
+import "../../../components/ha-time-input";
+import "../components/hui-generic-entity-row";
+
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
-import "../../../components/ha-date-input";
+
import { isUnavailableState, UNAVAILABLE } from "../../../data/entity";
import { setTimeValue } from "../../../data/time";
-import type { HomeAssistant } from "../../../types";
import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { EntityConfig, LovelaceRow } from "./types";
-import "../../../components/ha-time-input";
@customElement("hui-time-entity-row")
class HuiTimeEntityRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/entity-rows/hui-timer-entity-row.ts b/src/panels/lovelace/entity-rows/hui-timer-entity-row.ts
index 514ce69a9a..99756804f1 100644
--- a/src/panels/lovelace/entity-rows/hui-timer-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-timer-entity-row.ts
@@ -1,12 +1,15 @@
+import type { HomeAssistant } from "../../../types";
+import type { EntityConfig } from "./types";
import type { PropertyValues } from "lit";
+
+import "../../../state-display/ha-timer-remaining-time";
+import "../components/hui-generic-entity-row";
+
import { LitElement, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
-import "../../../state-display/ha-timer-remaining-time";
-import type { HomeAssistant } from "../../../types";
+
import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { EntityConfig } from "./types";
@customElement("hui-timer-entity-row")
class HuiTimerEntityRow extends LitElement {
diff --git a/src/panels/lovelace/entity-rows/hui-toggle-entity-row.ts b/src/panels/lovelace/entity-rows/hui-toggle-entity-row.ts
index 1df87198d4..bfec7450d7 100644
--- a/src/panels/lovelace/entity-rows/hui-toggle-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-toggle-entity-row.ts
@@ -1,13 +1,16 @@
+import type { HomeAssistant } from "../../../types";
+import type { EntityConfig, LovelaceRow } from "./types";
import type { PropertyValues } from "lit";
+
+import "../../../components/entity/ha-entity-toggle";
+import "../components/hui-generic-entity-row";
+
import { LitElement, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
-import "../../../components/entity/ha-entity-toggle";
+
import { isUnavailableState } from "../../../data/entity";
-import type { HomeAssistant } from "../../../types";
import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { EntityConfig, LovelaceRow } from "./types";
@customElement("hui-toggle-entity-row")
class HuiToggleEntityRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/entity-rows/hui-update-entity-row.ts b/src/panels/lovelace/entity-rows/hui-update-entity-row.ts
index 2ad19e2274..f8bcd81353 100644
--- a/src/panels/lovelace/entity-rows/hui-update-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-update-entity-row.ts
@@ -1,14 +1,17 @@
-import type { PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
import type { UpdateEntity } from "../../../data/update";
-import { computeUpdateStateDisplay } from "../../../data/update";
import type { HomeAssistant } from "../../../types";
import type { EntitiesCardEntityConfig } from "../cards/types";
-import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
-import { createEntityNotFoundWarning } from "../components/hui-warning";
import type { LovelaceRow } from "./types";
+import type { PropertyValues } from "lit";
+
+import "../components/hui-generic-entity-row";
+
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { computeUpdateStateDisplay } from "../../../data/update";
+import { hasConfigOrEntityChanged } from "../common/has-changed";
+import { createEntityNotFoundWarning } from "../components/hui-warning";
@customElement("hui-update-entity-row")
class HuiUpdateEntityRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/entity-rows/hui-valve-entity-row.ts b/src/panels/lovelace/entity-rows/hui-valve-entity-row.ts
index 69c0e42883..57c9c533ee 100644
--- a/src/panels/lovelace/entity-rows/hui-valve-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-valve-entity-row.ts
@@ -1,13 +1,16 @@
+import type { HomeAssistant } from "../../../types";
+import type { EntityConfig, LovelaceRow } from "./types";
import type { PropertyValues } from "lit";
+
+import "../../../components/entity/ha-entity-toggle";
+import "../components/hui-generic-entity-row";
+
import { LitElement, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
-import "../../../components/entity/ha-entity-toggle";
+
import { isUnavailableState } from "../../../data/entity";
-import type { HomeAssistant } from "../../../types";
import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { EntityConfig, LovelaceRow } from "./types";
@customElement("hui-valve-entity-row")
class HuiValveEntityRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/entity-rows/hui-weather-entity-row.ts b/src/panels/lovelace/entity-rows/hui-weather-entity-row.ts
index 856d9d6990..6e33d07697 100644
--- a/src/panels/lovelace/entity-rows/hui-weather-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-weather-entity-row.ts
@@ -1,12 +1,19 @@
+import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
+import type { ForecastEvent, WeatherEntity } from "../../../data/weather";
+import type { HomeAssistant } from "../../../types";
+import type { EntitiesCardEntityConfig } from "../cards/types";
+import type { LovelaceRow } from "./types";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../components/hui-generic-entity-row";
+
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { ifDefined } from "lit/directives/if-defined";
+
import { computeStateName } from "../../../common/entity/compute_state_name";
import { isUnavailableState } from "../../../data/entity";
-import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
-import type { ForecastEvent, WeatherEntity } from "../../../data/weather";
import {
getDefaultForecastType,
getForecast,
@@ -15,15 +22,11 @@ import {
subscribeForecast,
weatherSVGStyles,
} from "../../../data/weather";
-import type { HomeAssistant } from "../../../types";
-import type { EntitiesCardEntityConfig } from "../cards/types";
import { actionHandler } from "../common/directives/action-handler-directive";
import { handleAction } from "../common/handle-action";
import { hasAction, hasAnyAction } from "../common/has-action";
import { hasConfigOrEntityChanged } from "../common/has-changed";
-import "../components/hui-generic-entity-row";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { LovelaceRow } from "./types";
@customElement("hui-weather-entity-row")
class HuiWeatherEntityRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/ha-panel-lovelace.ts b/src/panels/lovelace/ha-panel-lovelace.ts
index 8c17d07796..3d487b8b65 100644
--- a/src/panels/lovelace/ha-panel-lovelace.ts
+++ b/src/panels/lovelace/ha-panel-lovelace.ts
@@ -1,9 +1,24 @@
-import "@material/mwc-button";
-import deepFreeze from "deep-freeze";
+import type {
+ LovelaceConfig,
+ LovelaceDashboardStrategyConfig,
+ LovelaceRawConfig,
+} from "../../data/lovelace/config/types";
+import type { WindowWithPreloads } from "../../data/preloads";
+import type { ShowToastParams } from "../../managers/notification-manager";
+import type { HomeAssistant, PanelInfo, Route } from "../../types";
+import type { Lovelace } from "./types";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../layouts/hass-error-screen";
+import "../../layouts/hass-loading-screen";
+import "./hui-root";
+import "@material/mwc-button";
+
+import deepFreeze from "deep-freeze";
import { html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { constructUrlCurrentPath } from "../../common/url/construct-url";
import {
addSearchParam,
@@ -11,11 +26,6 @@ import {
} from "../../common/url/search-params";
import { domainToName } from "../../data/integration";
import { subscribeLovelaceUpdates } from "../../data/lovelace";
-import type {
- LovelaceConfig,
- LovelaceDashboardStrategyConfig,
- LovelaceRawConfig,
-} from "../../data/lovelace/config/types";
import {
deleteConfig,
fetchConfig,
@@ -23,18 +33,11 @@ import {
saveConfig,
} from "../../data/lovelace/config/types";
import { fetchResources } from "../../data/lovelace/resource";
-import type { WindowWithPreloads } from "../../data/preloads";
-import "../../layouts/hass-error-screen";
-import "../../layouts/hass-loading-screen";
-import type { ShowToastParams } from "../../managers/notification-manager";
-import type { HomeAssistant, PanelInfo, Route } from "../../types";
import { showToast } from "../../util/toast";
import { checkLovelaceConfig } from "./common/check-lovelace-config";
import { loadLovelaceResources } from "./common/load-resources";
import { showSaveDialog } from "./editor/show-save-config-dialog";
-import "./hui-root";
import { generateLovelaceDashboardStrategy } from "./strategies/get-strategy";
-import type { Lovelace } from "./types";
(window as any).loadCardHelpers = () => import("./custom-card-helpers");
diff --git a/src/panels/lovelace/header-footer/hui-buttons-header-footer.ts b/src/panels/lovelace/header-footer/hui-buttons-header-footer.ts
index 589981a798..30bd17d4a3 100644
--- a/src/panels/lovelace/header-footer/hui-buttons-header-footer.ts
+++ b/src/panels/lovelace/header-footer/hui-buttons-header-footer.ts
@@ -1,14 +1,17 @@
-import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { classMap } from "lit/directives/class-map";
-import { customElement, property, state } from "lit/decorators";
-import { computeDomain } from "../../../common/entity/compute_domain";
import type { HomeAssistant } from "../../../types";
-import { processConfigEntities } from "../common/process-config-entities";
-import "../components/hui-buttons-base";
import type { EntityConfig } from "../entity-rows/types";
import type { LovelaceHeaderFooter } from "../types";
import type { ButtonsHeaderFooterConfig } from "./types";
+import type { TemplateResult } from "lit";
+
+import "../components/hui-buttons-base";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+
+import { computeDomain } from "../../../common/entity/compute_domain";
+import { processConfigEntities } from "../common/process-config-entities";
@customElement("hui-buttons-header-footer")
export class HuiButtonsHeaderFooter
diff --git a/src/panels/lovelace/header-footer/hui-graph-header-footer.ts b/src/panels/lovelace/header-footer/hui-graph-header-footer.ts
index 003eeee538..eea2b2b791 100644
--- a/src/panels/lovelace/header-footer/hui-graph-header-footer.ts
+++ b/src/panels/lovelace/header-footer/hui-graph-header-footer.ts
@@ -1,20 +1,23 @@
-import type { HassEntity } from "home-assistant-js-websocket";
-import type { PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { isComponentLoaded } from "../../../common/config/is_component_loaded";
-import { computeDomain } from "../../../common/entity/compute_domain";
-import "../../../components/ha-spinner";
-import { subscribeHistoryStatesTimeWindow } from "../../../data/history";
import type { HomeAssistant } from "../../../types";
-import { findEntities } from "../common/find-entities";
-import { coordinatesMinimalResponseCompressedState } from "../common/graph/coordinates";
-import "../components/hui-graph-base";
import type {
LovelaceHeaderFooter,
LovelaceHeaderFooterEditor,
} from "../types";
import type { GraphHeaderFooterConfig } from "./types";
+import type { HassEntity } from "home-assistant-js-websocket";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-spinner";
+import "../components/hui-graph-base";
+
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { isComponentLoaded } from "../../../common/config/is_component_loaded";
+import { computeDomain } from "../../../common/entity/compute_domain";
+import { subscribeHistoryStatesTimeWindow } from "../../../data/history";
+import { findEntities } from "../common/find-entities";
+import { coordinatesMinimalResponseCompressedState } from "../common/graph/coordinates";
const MINUTE = 60000;
const HOUR = 60 * MINUTE;
diff --git a/src/panels/lovelace/header-footer/hui-picture-header-footer.ts b/src/panels/lovelace/header-footer/hui-picture-header-footer.ts
index 3f02690776..d33be4d06d 100644
--- a/src/panels/lovelace/header-footer/hui-picture-header-footer.ts
+++ b/src/panels/lovelace/header-footer/hui-picture-header-footer.ts
@@ -1,16 +1,19 @@
+import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceHeaderFooter } from "../types";
+import type { PictureHeaderFooterConfig } from "./types";
import type { PropertyValues } from "lit";
+
+import "../../../components/ha-card";
+
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { ifDefined } from "lit/directives/if-defined";
-import "../../../components/ha-card";
-import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
-import type { HomeAssistant } from "../../../types";
+
import { actionHandler } from "../common/directives/action-handler-directive";
import { handleAction } from "../common/handle-action";
import { hasAction } from "../common/has-action";
-import type { LovelaceHeaderFooter } from "../types";
-import type { PictureHeaderFooterConfig } from "./types";
@customElement("hui-picture-header-footer")
export class HuiPictureHeaderFooter
diff --git a/src/panels/lovelace/header-footer/structs.ts b/src/panels/lovelace/header-footer/structs.ts
index dd0a28780f..efd8e32664 100644
--- a/src/panels/lovelace/header-footer/structs.ts
+++ b/src/panels/lovelace/header-footer/structs.ts
@@ -1,3 +1,5 @@
+import type { LovelaceHeaderFooterConfig } from "./types";
+
import {
array,
dynamic,
@@ -7,9 +9,9 @@ import {
union,
string,
} from "superstruct";
+
import { actionConfigStruct } from "../editor/structs/action-struct";
import { buttonEntityConfigStruct } from "../editor/structs/button-entity-struct";
-import type { LovelaceHeaderFooterConfig } from "./types";
export const pictureHeaderFooterConfigStruct = object({
type: string(),
diff --git a/src/panels/lovelace/heading-badges/hui-entity-heading-badge.ts b/src/panels/lovelace/heading-badges/hui-entity-heading-badge.ts
index 7779e3a6e2..b317f39e8a 100644
--- a/src/panels/lovelace/heading-badges/hui-entity-heading-badge.ts
+++ b/src/panels/lovelace/heading-badges/hui-entity-heading-badge.ts
@@ -1,29 +1,32 @@
-import { mdiAlertCircle } from "@mdi/js";
+import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
+import type { HomeAssistant } from "../../../types";
+import type {
+ LovelaceHeadingBadge,
+ LovelaceHeadingBadgeEditor,
+} from "../types";
+import type { EntityHeadingBadgeConfig } from "./types";
import type { HassEntity } from "home-assistant-js-websocket";
+
+import "../../../components/ha-heading-badge";
+import "../../../components/ha-state-icon";
+import "../../../state-display/state-display";
+
+import { mdiAlertCircle } from "@mdi/js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
import memoizeOne from "memoize-one";
+
import { computeCssColor } from "../../../common/color/compute-color";
import { hsv2rgb, rgb2hex, rgb2hsv } from "../../../common/color/convert-color";
import { computeDomain } from "../../../common/entity/compute_domain";
import { computeStateName } from "../../../common/entity/compute_state_name";
import { stateActive } from "../../../common/entity/state_active";
import { stateColorCss } from "../../../common/entity/state_color";
-import "../../../components/ha-heading-badge";
-import "../../../components/ha-state-icon";
-import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
-import "../../../state-display/state-display";
-import type { HomeAssistant } from "../../../types";
import { actionHandler } from "../common/directives/action-handler-directive";
import { handleAction } from "../common/handle-action";
import { hasAction } from "../common/has-action";
import { DEFAULT_CONFIG } from "../editor/heading-badge-editor/hui-entity-heading-badge-editor";
-import type {
- LovelaceHeadingBadge,
- LovelaceHeadingBadgeEditor,
-} from "../types";
-import type { EntityHeadingBadgeConfig } from "./types";
const DEFAULT_ACTIONS: Pick<
EntityHeadingBadgeConfig,
diff --git a/src/panels/lovelace/heading-badges/hui-error-heading-badge.ts b/src/panels/lovelace/heading-badges/hui-error-heading-badge.ts
index 537314a0b3..e6740531d6 100644
--- a/src/panels/lovelace/heading-badges/hui-error-heading-badge.ts
+++ b/src/panels/lovelace/heading-badges/hui-error-heading-badge.ts
@@ -1,13 +1,16 @@
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceBadge } from "../types";
+import type { ErrorBadgeConfig } from "./types";
+
+import "../../../components/ha-badge";
+import "../../../components/ha-svg-icon";
+
import { mdiAlertCircle } from "@mdi/js";
import { dump } from "js-yaml";
import { css, html, LitElement, nothing } from "lit";
import { customElement, state } from "lit/decorators";
-import "../../../components/ha-badge";
-import "../../../components/ha-svg-icon";
-import type { HomeAssistant } from "../../../types";
+
import { showAlertDialog } from "../custom-card-helpers";
-import type { LovelaceBadge } from "../types";
-import type { ErrorBadgeConfig } from "./types";
export const createErrorHeadingBadgeElement = (config) => {
const el = document.createElement("hui-error-heading-badge");
diff --git a/src/panels/lovelace/heading-badges/hui-heading-badge.ts b/src/panels/lovelace/heading-badges/hui-heading-badge.ts
index 3f7c74b048..28114d3081 100644
--- a/src/panels/lovelace/heading-badges/hui-heading-badge.ts
+++ b/src/panels/lovelace/heading-badges/hui-heading-badge.ts
@@ -1,17 +1,20 @@
+import type { MediaQueriesListener } from "../../../common/dom/media_query";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceHeadingBadge } from "../types";
+import type { LovelaceHeadingBadgeConfig } from "./types";
import type { PropertyValues } from "lit";
+
+import "../../../components/ha-svg-icon";
+
import { ReactiveElement } from "lit";
import { customElement, property } from "lit/decorators";
+
import { fireEvent } from "../../../common/dom/fire_event";
-import type { MediaQueriesListener } from "../../../common/dom/media_query";
-import "../../../components/ha-svg-icon";
-import type { HomeAssistant } from "../../../types";
import {
attachConditionMediaQueriesListeners,
checkConditionsMet,
} from "../common/validate-condition";
import { createHeadingBadgeElement } from "../create-element/create-heading-badge-element";
-import type { LovelaceHeadingBadge } from "../types";
-import type { LovelaceHeadingBadgeConfig } from "./types";
declare global {
interface HASSDomEvents {
diff --git a/src/panels/lovelace/hui-editor.ts b/src/panels/lovelace/hui-editor.ts
index 75ea3430aa..df18cb728e 100644
--- a/src/panels/lovelace/hui-editor.ts
+++ b/src/panels/lovelace/hui-editor.ts
@@ -1,27 +1,30 @@
-import { undoDepth } from "@codemirror/commands";
+import type { HaCodeEditor } from "../../components/ha-code-editor";
+import type { LovelaceRawConfig } from "../../data/lovelace/config/types";
+import type { HomeAssistant } from "../../types";
+import type { Lovelace } from "./types";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../components/ha-code-editor";
+import "../../components/ha-icon-button";
+import "../../components/ha-top-app-bar-fixed";
import "@material/mwc-button";
+
+import { undoDepth } from "@codemirror/commands";
import { mdiClose } from "@mdi/js";
import { dump, load } from "js-yaml";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { array, assert, object, optional, string, type } from "superstruct";
+
import { deepEqual } from "../../common/util/deep-equal";
-import "../../components/ha-code-editor";
-import type { HaCodeEditor } from "../../components/ha-code-editor";
-import "../../components/ha-icon-button";
+import { isStrategyDashboard } from "../../data/lovelace/config/types";
import {
showAlertDialog,
showConfirmationDialog,
} from "../../dialogs/generic/show-dialog-box";
import { haStyle } from "../../resources/styles";
-import type { HomeAssistant } from "../../types";
import { showToast } from "../../util/toast";
-import type { Lovelace } from "./types";
-import "../../components/ha-top-app-bar-fixed";
-import type { LovelaceRawConfig } from "../../data/lovelace/config/types";
-import { isStrategyDashboard } from "../../data/lovelace/config/types";
const lovelaceStruct = type({
title: optional(string()),
diff --git a/src/panels/lovelace/hui-root.ts b/src/panels/lovelace/hui-root.ts
index b4fa06cab7..842bb1b492 100644
--- a/src/panels/lovelace/hui-root.ts
+++ b/src/panels/lovelace/hui-root.ts
@@ -1,6 +1,29 @@
+import type { LocalizeKeys } from "../../common/translations/localize";
+import type { LovelacePanelConfig } from "../../data/lovelace";
+import type { LovelaceConfig } from "../../data/lovelace/config/types";
+import type { LovelaceViewConfig } from "../../data/lovelace/config/view";
+import type { HomeAssistant, PanelInfo } from "../../types";
+import type { Lovelace } from "./types";
+import type { HUIView } from "./views/hui-view";
+import type { RequestSelectedDetail } from "@material/mwc-list/mwc-list-item";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../components/ha-button-menu";
+import "../../components/ha-icon";
+import "../../components/ha-icon-button";
+import "../../components/ha-icon-button-arrow-next";
+import "../../components/ha-icon-button-arrow-prev";
+import "../../components/ha-menu-button";
+import "../../components/ha-svg-icon";
+import "../../components/ha-tabs";
+import "./views/hui-view";
+import "./views/hui-view-background";
+import "./views/hui-view-container";
import "@material/mwc-button";
import "@material/mwc-list/mwc-list-item";
-import type { RequestSelectedDetail } from "@material/mwc-list/mwc-list-item";
+import "@polymer/paper-tabs/paper-tab";
+import "@polymer/paper-tabs/paper-tabs";
+
import {
mdiCodeBraces,
mdiCommentProcessingOutline,
@@ -15,19 +38,16 @@ import {
mdiShape,
mdiViewDashboard,
} from "@mdi/js";
-import "@polymer/paper-tabs/paper-tab";
-import "@polymer/paper-tabs/paper-tabs";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { ifDefined } from "lit/directives/if-defined";
import memoizeOne from "memoize-one";
+
import { isComponentLoaded } from "../../common/config/is_component_loaded";
import { fireEvent } from "../../common/dom/fire_event";
import { shouldHandleRequestSelectedEvent } from "../../common/mwc/handle-request-selected-event";
import { navigate } from "../../common/navigate";
-import type { LocalizeKeys } from "../../common/translations/localize";
import { constructUrlCurrentPath } from "../../common/url/construct-url";
import {
addSearchParam,
@@ -37,18 +57,7 @@ import {
import { computeRTLDirection } from "../../common/util/compute_rtl";
import { debounce } from "../../common/util/debounce";
import { afterNextRender } from "../../common/util/render-status";
-import "../../components/ha-button-menu";
-import "../../components/ha-icon";
-import "../../components/ha-icon-button";
-import "../../components/ha-icon-button-arrow-next";
-import "../../components/ha-icon-button-arrow-prev";
-import "../../components/ha-menu-button";
-import "../../components/ha-svg-icon";
-import "../../components/ha-tabs";
-import type { LovelacePanelConfig } from "../../data/lovelace";
-import type { LovelaceConfig } from "../../data/lovelace/config/types";
import { isStrategyDashboard } from "../../data/lovelace/config/types";
-import type { LovelaceViewConfig } from "../../data/lovelace/config/view";
import {
deleteDashboard,
fetchDashboards,
@@ -63,9 +72,9 @@ import {
QuickBarMode,
showQuickBar,
} from "../../dialogs/quick-bar/show-dialog-quick-bar";
+import { showShortcutsDialog } from "../../dialogs/shortcuts/show-shortcuts-dialog";
import { showVoiceCommandDialog } from "../../dialogs/voice-command-dialog/show-ha-voice-command-dialog";
import { haStyle } from "../../resources/styles";
-import type { HomeAssistant, PanelInfo } from "../../types";
import { documentationUrl } from "../../util/documentation-url";
import { showDashboardDetailDialog } from "../config/lovelace/dashboards/show-dialog-lovelace-dashboard-detail";
import { swapView } from "./editor/config-util";
@@ -74,12 +83,6 @@ import { showSaveDialog } from "./editor/show-save-config-dialog";
import { showEditViewDialog } from "./editor/view-editor/show-edit-view-dialog";
import { getLovelaceStrategy } from "./strategies/get-strategy";
import { isLegacyStrategyConfig } from "./strategies/legacy-strategy";
-import type { Lovelace } from "./types";
-import "./views/hui-view";
-import "./views/hui-view-container";
-import type { HUIView } from "./views/hui-view";
-import "./views/hui-view-background";
-import { showShortcutsDialog } from "../../dialogs/shortcuts/show-shortcuts-dialog";
@customElement("hui-root")
class HUIRoot extends LitElement {
diff --git a/src/panels/lovelace/sections/hui-error-section.ts b/src/panels/lovelace/sections/hui-error-section.ts
index e394c98bbe..4ad131f4ad 100644
--- a/src/panels/lovelace/sections/hui-error-section.ts
+++ b/src/panels/lovelace/sections/hui-error-section.ts
@@ -1,11 +1,13 @@
-import { html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import "../../../components/ha-label-badge";
-import "../../../components/ha-svg-icon";
import type { LovelaceSectionElement } from "../../../data/lovelace";
import type { LovelaceSectionConfig } from "../../../data/lovelace/config/section";
import type { HomeAssistant } from "../../../types";
+import "../../../components/ha-label-badge";
+import "../../../components/ha-svg-icon";
+
+import { html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
export interface ErrorSectionConfig extends LovelaceSectionConfig {
error: string;
}
diff --git a/src/panels/lovelace/sections/hui-grid-section.ts b/src/panels/lovelace/sections/hui-grid-section.ts
index c30b3484b2..db31a93825 100644
--- a/src/panels/lovelace/sections/hui-grid-section.ts
+++ b/src/panels/lovelace/sections/hui-grid-section.ts
@@ -1,25 +1,28 @@
-import { mdiPlus } from "@mdi/js";
+import type { HaSortableOptions } from "../../../components/ha-sortable";
+import type { LovelaceSectionElement } from "../../../data/lovelace";
+import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
+import type { LovelaceSectionConfig } from "../../../data/lovelace/config/section";
+import type { HomeAssistant } from "../../../types";
+import type { HuiCard } from "../cards/hui-card";
+import type { LovelaceCardPath } from "../editor/lovelace-path";
+import type { Lovelace } from "../types";
import type { CSSResultGroup } from "lit";
+
+import "../../../components/ha-ripple";
+import "../../../components/ha-sortable";
+import "../components/hui-card-edit-mode";
+
+import { mdiPlus } from "@mdi/js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { repeat } from "lit/directives/repeat";
import { styleMap } from "lit/directives/style-map";
+
import { fireEvent } from "../../../common/dom/fire_event";
-import "../../../components/ha-ripple";
-import "../../../components/ha-sortable";
-import type { HaSortableOptions } from "../../../components/ha-sortable";
-import type { LovelaceSectionElement } from "../../../data/lovelace";
-import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
-import type { LovelaceSectionConfig } from "../../../data/lovelace/config/section";
import { haStyle } from "../../../resources/styles";
-import type { HomeAssistant } from "../../../types";
-import type { HuiCard } from "../cards/hui-card";
import { computeCardGridSize } from "../common/compute-card-grid-size";
-import "../components/hui-card-edit-mode";
import { moveCard } from "../editor/config-util";
-import type { LovelaceCardPath } from "../editor/lovelace-path";
-import type { Lovelace } from "../types";
const CARD_SORTABLE_OPTIONS: HaSortableOptions = {
delay: 100,
diff --git a/src/panels/lovelace/sections/hui-section.ts b/src/panels/lovelace/sections/hui-section.ts
index 1db1de751e..9f18a4f246 100644
--- a/src/panels/lovelace/sections/hui-section.ts
+++ b/src/panels/lovelace/sections/hui-section.ts
@@ -1,21 +1,25 @@
-import deepClone from "deep-clone-simple";
-import type { PropertyValues } from "lit";
-import { ReactiveElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { storage } from "../../../common/decorators/storage";
-import { fireEvent } from "../../../common/dom/fire_event";
import type { MediaQueriesListener } from "../../../common/dom/media_query";
-import "../../../components/ha-svg-icon";
import type { LovelaceSectionElement } from "../../../data/lovelace";
import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
import type {
LovelaceSectionConfig,
LovelaceSectionRawConfig,
} from "../../../data/lovelace/config/section";
-import { isStrategySection } from "../../../data/lovelace/config/section";
import type { HomeAssistant } from "../../../types";
-import "../cards/hui-card";
import type { HuiCard } from "../cards/hui-card";
+import type { Lovelace } from "../types";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-svg-icon";
+import "../cards/hui-card";
+
+import deepClone from "deep-clone-simple";
+import { ReactiveElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { storage } from "../../../common/decorators/storage";
+import { fireEvent } from "../../../common/dom/fire_event";
+import { isStrategySection } from "../../../data/lovelace/config/section";
import {
attachConditionMediaQueriesListeners,
checkConditionsMet,
@@ -27,7 +31,6 @@ import { addCard, replaceCard } from "../editor/config-util";
import { performDeleteCard } from "../editor/delete-card";
import { parseLovelaceCardPath } from "../editor/lovelace-path";
import { generateLovelaceSectionStrategy } from "../strategies/get-strategy";
-import type { Lovelace } from "../types";
import { DEFAULT_SECTION_LAYOUT } from "./const";
declare global {
diff --git a/src/panels/lovelace/special-rows/hui-attribute-row.ts b/src/panels/lovelace/special-rows/hui-attribute-row.ts
index 6ad3e3d75a..328a727ef1 100644
--- a/src/panels/lovelace/special-rows/hui-attribute-row.ts
+++ b/src/panels/lovelace/special-rows/hui-attribute-row.ts
@@ -1,14 +1,17 @@
-import type { PropertyValues } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import checkValidDate from "../../../common/datetime/check_valid_date";
-import "../../../components/ha-attribute-value";
import type { HomeAssistant } from "../../../types";
-import { hasConfigOrEntityChanged } from "../common/has-changed";
+import type { AttributeRowConfig, LovelaceRow } from "../entity-rows/types";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-attribute-value";
import "../components/hui-generic-entity-row";
import "../components/hui-timestamp-display";
+
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import checkValidDate from "../../../common/datetime/check_valid_date";
+import { hasConfigOrEntityChanged } from "../common/has-changed";
import { createEntityNotFoundWarning } from "../components/hui-warning";
-import type { AttributeRowConfig, LovelaceRow } from "../entity-rows/types";
@customElement("hui-attribute-row")
class HuiAttributeRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/special-rows/hui-button-row.ts b/src/panels/lovelace/special-rows/hui-button-row.ts
index 3eccfbc982..1bacf9c60f 100644
--- a/src/panels/lovelace/special-rows/hui-button-row.ts
+++ b/src/panels/lovelace/special-rows/hui-button-row.ts
@@ -1,16 +1,19 @@
+import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
+import type { HomeAssistant } from "../../../types";
+import type { ButtonRowConfig, LovelaceRow } from "../entity-rows/types";
+
+import "../../../components/ha-state-icon";
import "@material/mwc-button";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, state } from "lit/decorators";
+
import { DOMAINS_TOGGLE } from "../../../common/const";
import { computeDomain } from "../../../common/entity/compute_domain";
import { computeStateName } from "../../../common/entity/compute_state_name";
-import "../../../components/ha-state-icon";
-import type { HomeAssistant } from "../../../types";
import { actionHandler } from "../common/directives/action-handler-directive";
import { handleAction } from "../common/handle-action";
import { hasAction } from "../common/has-action";
-import type { ButtonRowConfig, LovelaceRow } from "../entity-rows/types";
-import type { ActionHandlerEvent } from "../../../data/lovelace/action_handler";
@customElement("hui-button-row")
export class HuiButtonRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/special-rows/hui-buttons-row.ts b/src/panels/lovelace/special-rows/hui-buttons-row.ts
index c999ef6670..979067bdb3 100644
--- a/src/panels/lovelace/special-rows/hui-buttons-row.ts
+++ b/src/panels/lovelace/special-rows/hui-buttons-row.ts
@@ -1,16 +1,19 @@
-import type { TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { DOMAINS_TOGGLE } from "../../../common/const";
-import { computeDomain } from "../../../common/entity/compute_domain";
import type { HomeAssistant } from "../../../types";
-import { processConfigEntities } from "../common/process-config-entities";
-import "../components/hui-buttons-base";
import type {
ButtonsRowConfig,
EntityConfig,
LovelaceRow,
} from "../entity-rows/types";
+import type { TemplateResult } from "lit";
+
+import "../components/hui-buttons-base";
+
+import { html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { DOMAINS_TOGGLE } from "../../../common/const";
+import { computeDomain } from "../../../common/entity/compute_domain";
+import { processConfigEntities } from "../common/process-config-entities";
@customElement("hui-buttons-row")
export class HuiButtonsRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/special-rows/hui-call-service-row.ts b/src/panels/lovelace/special-rows/hui-call-service-row.ts
index 2894460e1c..c6aeafe2d2 100644
--- a/src/panels/lovelace/special-rows/hui-call-service-row.ts
+++ b/src/panels/lovelace/special-rows/hui-call-service-row.ts
@@ -1,5 +1,7 @@
-import { customElement } from "lit/decorators";
import type { CallServiceConfig } from "../entity-rows/types";
+
+import { customElement } from "lit/decorators";
+
import { HuiButtonRow } from "./hui-button-row";
@customElement("hui-call-service-row")
diff --git a/src/panels/lovelace/special-rows/hui-cast-row.ts b/src/panels/lovelace/special-rows/hui-cast-row.ts
index 2503886a6e..870ed0b15f 100644
--- a/src/panels/lovelace/special-rows/hui-cast-row.ts
+++ b/src/panels/lovelace/special-rows/hui-cast-row.ts
@@ -1,16 +1,19 @@
-import "@material/mwc-button/mwc-button";
+import type { CastManager } from "../../../cast/cast_manager";
+import type { HomeAssistant } from "../../../types";
+import type { CastConfig, LovelaceRow } from "../entity-rows/types";
import type { PropertyValues } from "lit";
+
+import "../../../components/ha-icon";
+import "@material/mwc-button/mwc-button";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
-import type { CastManager } from "../../../cast/cast_manager";
+
import {
castSendShowLovelaceView,
ensureConnectedCastSession,
} from "../../../cast/receiver_messages";
-import "../../../components/ha-icon";
-import type { HomeAssistant } from "../../../types";
-import type { CastConfig, LovelaceRow } from "../entity-rows/types";
@customElement("hui-cast-row")
class HuiCastRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/special-rows/hui-conditional-row.ts b/src/panels/lovelace/special-rows/hui-conditional-row.ts
index 5e76c476e1..b8f917db10 100644
--- a/src/panels/lovelace/special-rows/hui-conditional-row.ts
+++ b/src/panels/lovelace/special-rows/hui-conditional-row.ts
@@ -1,13 +1,15 @@
-import { customElement } from "lit/decorators";
import type { EntityCardConfig } from "../cards/types";
-import { HuiConditionalBase } from "../components/hui-conditional-base";
-import { createRowElement } from "../create-element/create-row-element";
import type {
ConditionalRowConfig,
EntityConfig,
LovelaceRow,
} from "../entity-rows/types";
+import { customElement } from "lit/decorators";
+
+import { HuiConditionalBase } from "../components/hui-conditional-base";
+import { createRowElement } from "../create-element/create-row-element";
+
@customElement("hui-conditional-row")
class HuiConditionalRow extends HuiConditionalBase implements LovelaceRow {
public setConfig(config: ConditionalRowConfig): void {
diff --git a/src/panels/lovelace/special-rows/hui-divider-row.ts b/src/panels/lovelace/special-rows/hui-divider-row.ts
index 7ceab1d563..684f831505 100644
--- a/src/panels/lovelace/special-rows/hui-divider-row.ts
+++ b/src/panels/lovelace/special-rows/hui-divider-row.ts
@@ -1,8 +1,9 @@
+import type { HomeAssistant } from "../../../types";
+import type { DividerConfig, LovelaceRow } from "../entity-rows/types";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, state } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
-import type { HomeAssistant } from "../../../types";
-import type { DividerConfig, LovelaceRow } from "../entity-rows/types";
@customElement("hui-divider-row")
class HuiDividerRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/special-rows/hui-section-row.ts b/src/panels/lovelace/special-rows/hui-section-row.ts
index 64eeb7cac4..64c6bd9959 100644
--- a/src/panels/lovelace/special-rows/hui-section-row.ts
+++ b/src/panels/lovelace/special-rows/hui-section-row.ts
@@ -1,8 +1,9 @@
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, state } from "lit/decorators";
import type { HomeAssistant } from "../../../types";
import type { LovelaceRow, SectionConfig } from "../entity-rows/types";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, state } from "lit/decorators";
+
@customElement("hui-section-row")
class HuiSectionRow extends LitElement implements LovelaceRow {
public hass?: HomeAssistant;
diff --git a/src/panels/lovelace/special-rows/hui-text-row.ts b/src/panels/lovelace/special-rows/hui-text-row.ts
index fc47ce7d1f..9b633648a4 100644
--- a/src/panels/lovelace/special-rows/hui-text-row.ts
+++ b/src/panels/lovelace/special-rows/hui-text-row.ts
@@ -1,7 +1,9 @@
+import type { LovelaceRow, TextConfig } from "../entity-rows/types";
+
+import "../../../components/ha-icon";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, state } from "lit/decorators";
-import "../../../components/ha-icon";
-import type { LovelaceRow, TextConfig } from "../entity-rows/types";
@customElement("hui-text-row")
class HuiTextRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/special-rows/hui-weblink-row.ts b/src/panels/lovelace/special-rows/hui-weblink-row.ts
index 783cf59010..e735e13251 100644
--- a/src/panels/lovelace/special-rows/hui-weblink-row.ts
+++ b/src/panels/lovelace/special-rows/hui-weblink-row.ts
@@ -1,9 +1,11 @@
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceRow, WeblinkConfig } from "../entity-rows/types";
+
+import "../../../components/ha-icon";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
-import "../../../components/ha-icon";
-import type { HomeAssistant } from "../../../types";
-import type { LovelaceRow, WeblinkConfig } from "../entity-rows/types";
@customElement("hui-weblink-row")
class HuiWeblinkRow extends LitElement implements LovelaceRow {
diff --git a/src/panels/lovelace/strategies/areas/area-view-strategy.ts b/src/panels/lovelace/strategies/areas/area-view-strategy.ts
index 853568dfbb..a44e5858eb 100644
--- a/src/panels/lovelace/strategies/areas/area-view-strategy.ts
+++ b/src/panels/lovelace/strategies/areas/area-view-strategy.ts
@@ -1,11 +1,13 @@
-import { ReactiveElement } from "lit";
-import { customElement } from "lit/decorators";
-import { clamp } from "../../../../common/number/clamp";
import type { LovelaceBadgeConfig } from "../../../../data/lovelace/config/badge";
import type { LovelaceCardConfig } from "../../../../data/lovelace/config/card";
import type { LovelaceSectionRawConfig } from "../../../../data/lovelace/config/section";
import type { LovelaceViewConfig } from "../../../../data/lovelace/config/view";
import type { HomeAssistant } from "../../../../types";
+
+import { ReactiveElement } from "lit";
+import { customElement } from "lit/decorators";
+
+import { clamp } from "../../../../common/number/clamp";
import {
AREA_STRATEGY_GROUP_ICONS,
computeAreaTileCardConfig,
diff --git a/src/panels/lovelace/strategies/areas/areas-dashboard-strategy.ts b/src/panels/lovelace/strategies/areas/areas-dashboard-strategy.ts
index ef397b4a8e..a426691e0c 100644
--- a/src/panels/lovelace/strategies/areas/areas-dashboard-strategy.ts
+++ b/src/panels/lovelace/strategies/areas/areas-dashboard-strategy.ts
@@ -1,6 +1,3 @@
-import { STATE_NOT_RUNNING } from "home-assistant-js-websocket";
-import { ReactiveElement } from "lit";
-import { customElement } from "lit/decorators";
import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
import type { LovelaceViewRawConfig } from "../../../../data/lovelace/config/view";
import type { HomeAssistant } from "../../../../types";
@@ -10,6 +7,11 @@ import type {
EntitiesDisplay,
} from "./area-view-strategy";
import type { AreasViewStrategyConfig } from "./areas-overview-view-strategy";
+
+import { STATE_NOT_RUNNING } from "home-assistant-js-websocket";
+import { ReactiveElement } from "lit";
+import { customElement } from "lit/decorators";
+
import { computeAreaPath, getAreas } from "./helpers/areas-strategy-helper";
interface AreaOptions {
diff --git a/src/panels/lovelace/strategies/areas/areas-overview-view-strategy.ts b/src/panels/lovelace/strategies/areas/areas-overview-view-strategy.ts
index 547f93ed34..a903ee9841 100644
--- a/src/panels/lovelace/strategies/areas/areas-overview-view-strategy.ts
+++ b/src/panels/lovelace/strategies/areas/areas-overview-view-strategy.ts
@@ -1,9 +1,11 @@
-import { ReactiveElement } from "lit";
-import { customElement } from "lit/decorators";
import type { LovelaceSectionConfig } from "../../../../data/lovelace/config/section";
import type { LovelaceViewConfig } from "../../../../data/lovelace/config/view";
import type { HomeAssistant } from "../../../../types";
import type { EntitiesDisplay } from "./area-view-strategy";
+
+import { ReactiveElement } from "lit";
+import { customElement } from "lit/decorators";
+
import {
computeAreaPath,
computeAreaTileCardConfig,
diff --git a/src/panels/lovelace/strategies/areas/editor/hui-areas-dashboard-strategy-editor.ts b/src/panels/lovelace/strategies/areas/editor/hui-areas-dashboard-strategy-editor.ts
index 10975e4d35..56366b44b5 100644
--- a/src/panels/lovelace/strategies/areas/editor/hui-areas-dashboard-strategy-editor.ts
+++ b/src/panels/lovelace/strategies/areas/editor/hui-areas-dashboard-strategy-editor.ts
@@ -1,21 +1,24 @@
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../../../../common/dom/fire_event";
-import "../../../../../components/ha-areas-display-editor";
import type { AreasDisplayValue } from "../../../../../components/ha-areas-display-editor";
+import type { HomeAssistant } from "../../../../../types";
+import type { LovelaceStrategyEditor } from "../../types";
+import type { AreasDashboardStrategyConfig } from "../areas-dashboard-strategy";
+import type { AreaStrategyGroup } from "../helpers/areas-strategy-helper";
+
+import "../../../../../components/ha-areas-display-editor";
import "../../../../../components/ha-entities-display-editor";
+import "../../../../../components/ha-icon";
import "../../../../../components/ha-icon-button";
import "../../../../../components/ha-icon-button-prev";
-import "../../../../../components/ha-icon";
-import type { HomeAssistant } from "../../../../../types";
-import type { AreaStrategyGroup } from "../helpers/areas-strategy-helper";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../../../common/dom/fire_event";
import {
AREA_STRATEGY_GROUP_ICONS,
AREA_STRATEGY_GROUPS,
getAreaGroupedEntities,
} from "../helpers/areas-strategy-helper";
-import type { LovelaceStrategyEditor } from "../../types";
-import type { AreasDashboardStrategyConfig } from "../areas-dashboard-strategy";
@customElement("hui-areas-dashboard-strategy-editor")
export class HuiAreasDashboardStrategyEditor
diff --git a/src/panels/lovelace/strategies/areas/helpers/areas-strategy-helper.ts b/src/panels/lovelace/strategies/areas/helpers/areas-strategy-helper.ts
index 2c284fcca8..0b8d061a18 100644
--- a/src/panels/lovelace/strategies/areas/helpers/areas-strategy-helper.ts
+++ b/src/panels/lovelace/strategies/areas/helpers/areas-strategy-helper.ts
@@ -1,20 +1,21 @@
+import type { EntityFilterFunc } from "../../../../../common/entity/entity_filter";
+import type { AreaRegistryEntry } from "../../../../../data/area_registry";
+import type { LovelaceCardConfig } from "../../../../../data/lovelace/config/card";
+import type { HomeAssistant } from "../../../../../types";
+import type { LovelaceCardFeatureConfig } from "../../../card-features/types";
+import type { TileCardConfig } from "../../../cards/types";
+
import { computeDomain } from "../../../../../common/entity/compute_domain";
import { computeStateName } from "../../../../../common/entity/compute_state_name";
-import type { EntityFilterFunc } from "../../../../../common/entity/entity_filter";
import { generateEntityFilter } from "../../../../../common/entity/entity_filter";
import { stripPrefixFromEntityName } from "../../../../../common/entity/strip_prefix_from_entity_name";
import { orderCompare } from "../../../../../common/string/compare";
-import type { AreaRegistryEntry } from "../../../../../data/area_registry";
import { areaCompare } from "../../../../../data/area_registry";
-import type { LovelaceCardConfig } from "../../../../../data/lovelace/config/card";
-import type { HomeAssistant } from "../../../../../types";
import { supportsAlarmModesCardFeature } from "../../../card-features/hui-alarm-modes-card-feature";
import { supportsCoverOpenCloseCardFeature } from "../../../card-features/hui-cover-open-close-card-feature";
import { supportsLightBrightnessCardFeature } from "../../../card-features/hui-light-brightness-card-feature";
import { supportsLockCommandsCardFeature } from "../../../card-features/hui-lock-commands-card-feature";
import { supportsTargetTemperatureCardFeature } from "../../../card-features/hui-target-temperature-card-feature";
-import type { LovelaceCardFeatureConfig } from "../../../card-features/types";
-import type { TileCardConfig } from "../../../cards/types";
export const AREA_STRATEGY_GROUPS = [
"lights",
diff --git a/src/panels/lovelace/strategies/get-strategy.ts b/src/panels/lovelace/strategies/get-strategy.ts
index af7db8413f..4177a11f60 100644
--- a/src/panels/lovelace/strategies/get-strategy.ts
+++ b/src/panels/lovelace/strategies/get-strategy.ts
@@ -8,14 +8,11 @@ import type {
LovelaceDashboardStrategyConfig,
LovelaceRawConfig,
} from "../../../data/lovelace/config/types";
-import { isStrategyDashboard } from "../../../data/lovelace/config/types";
import type {
LovelaceStrategyViewConfig,
LovelaceViewConfig,
} from "../../../data/lovelace/config/view";
-import { isStrategyView } from "../../../data/lovelace/config/view";
import type { AsyncReturnType, HomeAssistant } from "../../../types";
-import { cleanLegacyStrategyConfig, isLegacyStrategy } from "./legacy-strategy";
import type {
LovelaceDashboardStrategy,
LovelaceSectionStrategy,
@@ -23,6 +20,10 @@ import type {
LovelaceViewStrategy,
} from "./types";
+import { isStrategyDashboard } from "../../../data/lovelace/config/types";
+import { isStrategyView } from "../../../data/lovelace/config/view";
+import { cleanLegacyStrategyConfig, isLegacyStrategy } from "./legacy-strategy";
+
const MAX_WAIT_STRATEGY_LOAD = 5000;
const CUSTOM_PREFIX = "custom:";
diff --git a/src/panels/lovelace/strategies/iframe/iframe-dashboard-strategy.ts b/src/panels/lovelace/strategies/iframe/iframe-dashboard-strategy.ts
index ddaafdd43f..0ae5e0aebe 100644
--- a/src/panels/lovelace/strategies/iframe/iframe-dashboard-strategy.ts
+++ b/src/panels/lovelace/strategies/iframe/iframe-dashboard-strategy.ts
@@ -1,9 +1,10 @@
-import { ReactiveElement } from "lit";
-import { customElement } from "lit/decorators";
import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
import type { LovelaceStrategyEditor } from "../types";
import type { IframeViewStrategyConfig } from "./iframe-view-strategy";
+import { ReactiveElement } from "lit";
+import { customElement } from "lit/decorators";
+
export type IframeDashboardStrategyConfig = IframeViewStrategyConfig;
@customElement("iframe-dashboard-strategy")
diff --git a/src/panels/lovelace/strategies/iframe/iframe-view-strategy.ts b/src/panels/lovelace/strategies/iframe/iframe-view-strategy.ts
index fa695d86d3..6c131f1028 100644
--- a/src/panels/lovelace/strategies/iframe/iframe-view-strategy.ts
+++ b/src/panels/lovelace/strategies/iframe/iframe-view-strategy.ts
@@ -1,8 +1,9 @@
-import { ReactiveElement } from "lit";
-import { customElement } from "lit/decorators";
import type { LovelaceViewConfig } from "../../../../data/lovelace/config/view";
import type { IframeCardConfig } from "../../cards/types";
+import { ReactiveElement } from "lit";
+import { customElement } from "lit/decorators";
+
export interface IframeViewStrategyConfig {
type: "iframe";
url: string;
diff --git a/src/panels/lovelace/strategies/map/map-dashboard-strategy.ts b/src/panels/lovelace/strategies/map/map-dashboard-strategy.ts
index 6e592095bf..2f77399c6f 100644
--- a/src/panels/lovelace/strategies/map/map-dashboard-strategy.ts
+++ b/src/panels/lovelace/strategies/map/map-dashboard-strategy.ts
@@ -1,8 +1,9 @@
-import { ReactiveElement } from "lit";
-import { customElement } from "lit/decorators";
import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
import type { MapViewStrategyConfig } from "./map-view-strategy";
+import { ReactiveElement } from "lit";
+import { customElement } from "lit/decorators";
+
export type MapDashboardStrategyConfig = MapViewStrategyConfig;
@customElement("map-dashboard-strategy")
diff --git a/src/panels/lovelace/strategies/map/map-view-strategy.ts b/src/panels/lovelace/strategies/map/map-view-strategy.ts
index 7205d200fe..62efe5c178 100644
--- a/src/panels/lovelace/strategies/map/map-view-strategy.ts
+++ b/src/panels/lovelace/strategies/map/map-view-strategy.ts
@@ -1,9 +1,10 @@
-import { ReactiveElement } from "lit";
-import { customElement } from "lit/decorators";
import type { LovelaceViewConfig } from "../../../../data/lovelace/config/view";
import type { HomeAssistant } from "../../../../types";
import type { MapCardConfig } from "../../cards/types";
+import { ReactiveElement } from "lit";
+import { customElement } from "lit/decorators";
+
export interface MapViewStrategyConfig {
type: "map";
}
diff --git a/src/panels/lovelace/strategies/original-states/original-states-dashboard-strategy.ts b/src/panels/lovelace/strategies/original-states/original-states-dashboard-strategy.ts
index e4e9bfb02d..0fe88cc7ca 100644
--- a/src/panels/lovelace/strategies/original-states/original-states-dashboard-strategy.ts
+++ b/src/panels/lovelace/strategies/original-states/original-states-dashboard-strategy.ts
@@ -1,9 +1,10 @@
-import { ReactiveElement } from "lit";
-import { customElement } from "lit/decorators";
import type { LovelaceConfig } from "../../../../data/lovelace/config/types";
import type { LovelaceStrategyEditor } from "../types";
import type { OriginalStatesViewStrategyConfig } from "./original-states-view-strategy";
+import { ReactiveElement } from "lit";
+import { customElement } from "lit/decorators";
+
export type OriginalStatesDashboardStrategyConfig =
OriginalStatesViewStrategyConfig;
diff --git a/src/panels/lovelace/strategies/original-states/original-states-view-strategy.ts b/src/panels/lovelace/strategies/original-states/original-states-view-strategy.ts
index 6336cc2611..45bd70bc46 100644
--- a/src/panels/lovelace/strategies/original-states/original-states-view-strategy.ts
+++ b/src/panels/lovelace/strategies/original-states/original-states-view-strategy.ts
@@ -1,11 +1,13 @@
+import type { AreasDisplayValue } from "../../../../components/ha-areas-display-editor";
+import type { LovelaceViewConfig } from "../../../../data/lovelace/config/view";
+import type { HomeAssistant } from "../../../../types";
+
import { STATE_NOT_RUNNING } from "home-assistant-js-websocket";
import { ReactiveElement } from "lit";
import { customElement } from "lit/decorators";
+
import { isComponentLoaded } from "../../../../common/config/is_component_loaded";
-import type { AreasDisplayValue } from "../../../../components/ha-areas-display-editor";
import { getEnergyPreferences } from "../../../../data/energy";
-import type { LovelaceViewConfig } from "../../../../data/lovelace/config/view";
-import type { HomeAssistant } from "../../../../types";
import { generateDefaultViewConfig } from "../../common/generate-lovelace-config";
export interface OriginalStatesViewStrategyConfig {
diff --git a/src/panels/lovelace/types.ts b/src/panels/lovelace/types.ts
index c3810265d9..0d10abd264 100644
--- a/src/panels/lovelace/types.ts
+++ b/src/panels/lovelace/types.ts
@@ -1,4 +1,3 @@
-import type { HassEntity } from "home-assistant-js-websocket";
import type { LocalizeFunc } from "../../common/translations/localize";
import type { HaFormSchema } from "../../components/ha-form/types";
import type { LovelaceBadgeConfig } from "../../data/lovelace/config/badge";
@@ -8,13 +7,14 @@ import type {
LovelaceRawConfig,
} from "../../data/lovelace/config/types";
import type { FrontendLocaleData } from "../../data/translation";
+import type { ShowToastParams } from "../../managers/notification-manager";
import type { Constructor, HomeAssistant } from "../../types";
-import type { LovelaceRow, LovelaceRowConfig } from "./entity-rows/types";
-import type { LovelaceHeaderFooterConfig } from "./header-footer/types";
import type { LovelaceCardFeatureConfig } from "./card-features/types";
import type { LovelaceElement, LovelaceElementConfig } from "./elements/types";
+import type { LovelaceRow, LovelaceRowConfig } from "./entity-rows/types";
+import type { LovelaceHeaderFooterConfig } from "./header-footer/types";
import type { LovelaceHeadingBadgeConfig } from "./heading-badges/types";
-import type { ShowToastParams } from "../../managers/notification-manager";
+import type { HassEntity } from "home-assistant-js-websocket";
declare global {
interface HASSDomEvents {
diff --git a/src/panels/lovelace/views/default-view-editable.ts b/src/panels/lovelace/views/default-view-editable.ts
index b839edef98..7aa06025f6 100644
--- a/src/panels/lovelace/views/default-view-editable.ts
+++ b/src/panels/lovelace/views/default-view-editable.ts
@@ -1,6 +1,7 @@
// hui-view dependencies for when in edit mode.
import "../../../components/ha-fab";
import "../components/hui-card-options";
+
import { importCreateCardDialog } from "../editor/card-editor/show-create-card-dialog";
import { importDeleteCardDialog } from "../editor/card-editor/show-delete-card-dialog";
import { importEditCardDialog } from "../editor/card-editor/show-edit-card-dialog";
diff --git a/src/panels/lovelace/views/get-view-type.ts b/src/panels/lovelace/views/get-view-type.ts
index 1394c82ae4..f77823c386 100644
--- a/src/panels/lovelace/views/get-view-type.ts
+++ b/src/panels/lovelace/views/get-view-type.ts
@@ -1,4 +1,5 @@
import type { LovelaceViewConfig } from "../../../data/lovelace/config/view";
+
import {
MASONRY_VIEW_LAYOUT,
PANEL_VIEW_LAYOUT,
diff --git a/src/panels/lovelace/views/hui-masonry-view.ts b/src/panels/lovelace/views/hui-masonry-view.ts
index dc90245e1d..4f239331f5 100644
--- a/src/panels/lovelace/views/hui-masonry-view.ts
+++ b/src/panels/lovelace/views/hui-masonry-view.ts
@@ -1,19 +1,22 @@
-import { mdiPlus } from "@mdi/js";
-import type { PropertyValues, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { property, state } from "lit/decorators";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { nextRender } from "../../../common/util/render-status";
-import "../../../components/entity/ha-state-label-badge";
-import "../../../components/ha-svg-icon";
import type { LovelaceViewElement } from "../../../data/lovelace";
import type { LovelaceViewConfig } from "../../../data/lovelace/config/view";
import type { HomeAssistant } from "../../../types";
import type { HuiBadge } from "../badges/hui-badge";
-import "../badges/hui-view-badges";
import type { HuiCard } from "../cards/hui-card";
-import { computeCardSize } from "../common/compute-card-size";
import type { Lovelace } from "../types";
+import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../../components/entity/ha-state-label-badge";
+import "../../../components/ha-svg-icon";
+import "../badges/hui-view-badges";
+
+import { mdiPlus } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { nextRender } from "../../../common/util/render-status";
+import { computeCardSize } from "../common/compute-card-size";
// Find column with < 5 size, else smallest column
const getColumnIndex = (columnSizes: number[], size: number) => {
diff --git a/src/panels/lovelace/views/hui-panel-view.ts b/src/panels/lovelace/views/hui-panel-view.ts
index 17b091a3e3..2b925c845d 100644
--- a/src/panels/lovelace/views/hui-panel-view.ts
+++ b/src/panels/lovelace/views/hui-panel-view.ts
@@ -1,10 +1,3 @@
-import { mdiPlus } from "@mdi/js";
-import type { PropertyValues, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { property, state } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import { fireEvent } from "../../../common/dom/fire_event";
-import { computeRTL } from "../../../common/util/compute_rtl";
import type { LovelaceViewElement } from "../../../data/lovelace";
import type { LovelaceViewConfig } from "../../../data/lovelace/config/view";
import type { HomeAssistant } from "../../../types";
@@ -12,6 +5,15 @@ import type { HuiCard } from "../cards/hui-card";
import type { HuiCardOptions } from "../components/hui-card-options";
import type { HuiWarning } from "../components/hui-warning";
import type { Lovelace } from "../types";
+import type { PropertyValues, TemplateResult } from "lit";
+
+import { mdiPlus } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { property, state } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { computeRTL } from "../../../common/util/compute_rtl";
let editCodeLoaded = false;
diff --git a/src/panels/lovelace/views/hui-sections-view.ts b/src/panels/lovelace/views/hui-sections-view.ts
index 58d45edba8..b5965d3987 100644
--- a/src/panels/lovelace/views/hui-sections-view.ts
+++ b/src/panels/lovelace/views/hui-sections-view.ts
@@ -1,3 +1,22 @@
+import type { LovelaceViewElement } from "../../../data/lovelace";
+import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
+import type { LovelaceSectionConfig } from "../../../data/lovelace/config/section";
+import type { LovelaceViewConfig } from "../../../data/lovelace/config/view";
+import type { HomeAssistant } from "../../../types";
+import type { HuiBadge } from "../badges/hui-badge";
+import type { HuiCard } from "../cards/hui-card";
+import type { LovelaceCardPath } from "../editor/lovelace-path";
+import type { HuiSection } from "../sections/hui-section";
+import type { Lovelace } from "../types";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-icon-button";
+import "../../../components/ha-ripple";
+import "../../../components/ha-sortable";
+import "../../../components/ha-svg-icon";
+import "../components/hui-badge-edit-mode";
+import "./hui-view-header";
+
import { ResizeController } from "@lit-labs/observers/resize-controller";
import {
mdiDelete,
@@ -6,35 +25,21 @@ import {
mdiPencil,
mdiViewGridPlus,
} from "@mdi/js";
-import type { PropertyValues } from "lit";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { repeat } from "lit/directives/repeat";
import { styleMap } from "lit/directives/style-map";
import memoizeOne from "memoize-one";
+
import { clamp } from "../../../common/number/clamp";
-import "../../../components/ha-icon-button";
-import "../../../components/ha-ripple";
-import "../../../components/ha-sortable";
-import "../../../components/ha-svg-icon";
-import type { LovelaceViewElement } from "../../../data/lovelace";
-import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
-import type { LovelaceSectionConfig } from "../../../data/lovelace/config/section";
-import type { LovelaceViewConfig } from "../../../data/lovelace/config/view";
import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box";
-import type { HomeAssistant } from "../../../types";
-import type { HuiBadge } from "../badges/hui-badge";
-import "./hui-view-header";
-import type { HuiCard } from "../cards/hui-card";
-import "../components/hui-badge-edit-mode";
import {
addSection,
deleteSection,
moveCard,
moveSection,
} from "../editor/config-util";
-import type { LovelaceCardPath } from "../editor/lovelace-path";
import {
findLovelaceContainer,
findLovelaceItems,
@@ -42,8 +47,6 @@ import {
parseLovelaceCardPath,
} from "../editor/lovelace-path";
import { showEditSectionDialog } from "../editor/section-editor/show-edit-section-dialog";
-import type { HuiSection } from "../sections/hui-section";
-import type { Lovelace } from "../types";
export const DEFAULT_MAX_COLUMNS = 4;
diff --git a/src/panels/lovelace/views/hui-sidebar-view.ts b/src/panels/lovelace/views/hui-sidebar-view.ts
index a445737a35..4db7f67b25 100644
--- a/src/panels/lovelace/views/hui-sidebar-view.ts
+++ b/src/panels/lovelace/views/hui-sidebar-view.ts
@@ -1,17 +1,20 @@
-import { mdiArrowLeft, mdiArrowRight, mdiPlus } from "@mdi/js";
-import type { PropertyValues, TemplateResult } from "lit";
-import { LitElement, css, html } from "lit";
-import { property, state } from "lit/decorators";
-import { fireEvent } from "../../../common/dom/fire_event";
import type { LovelaceViewElement } from "../../../data/lovelace";
import type { LovelaceViewConfig } from "../../../data/lovelace/config/view";
import type { HomeAssistant } from "../../../types";
import type { HuiBadge } from "../badges/hui-badge";
-import "../badges/hui-view-badges";
import type { HuiCard } from "../cards/hui-card";
import type { HuiCardOptions } from "../components/hui-card-options";
-import { replaceCard } from "../editor/config-util";
import type { Lovelace } from "../types";
+import type { PropertyValues, TemplateResult } from "lit";
+
+import "../badges/hui-view-badges";
+
+import { mdiArrowLeft, mdiArrowRight, mdiPlus } from "@mdi/js";
+import { LitElement, css, html } from "lit";
+import { property, state } from "lit/decorators";
+
+import { fireEvent } from "../../../common/dom/fire_event";
+import { replaceCard } from "../editor/config-util";
export class SideBarView extends LitElement implements LovelaceViewElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/lovelace/views/hui-view-background.ts b/src/panels/lovelace/views/hui-view-background.ts
index a00a7fe967..ea9a9ea7b3 100644
--- a/src/panels/lovelace/views/hui-view-background.ts
+++ b/src/panels/lovelace/views/hui-view-background.ts
@@ -1,8 +1,9 @@
-import { css, LitElement, nothing } from "lit";
-import type { PropertyValues } from "lit";
-import { customElement, property } from "lit/decorators";
-import type { HomeAssistant } from "../../../types";
import type { LovelaceViewBackgroundConfig } from "../../../data/lovelace/config/view";
+import type { HomeAssistant } from "../../../types";
+import type { PropertyValues } from "lit";
+
+import { css, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
@customElement("hui-view-background")
export class HUIViewBackground extends LitElement {
diff --git a/src/panels/lovelace/views/hui-view-container.ts b/src/panels/lovelace/views/hui-view-container.ts
index 8746d44c0d..7d19845ab3 100644
--- a/src/panels/lovelace/views/hui-view-container.ts
+++ b/src/panels/lovelace/views/hui-view-container.ts
@@ -1,10 +1,12 @@
-import type { PropertyValues } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
-import { listenMediaQuery } from "../../../common/dom/media_query";
import type { LovelaceViewConfig } from "../../../data/lovelace/config/view";
import type { HomeAssistant } from "../../../types";
+import type { PropertyValues } from "lit";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
+import { listenMediaQuery } from "../../../common/dom/media_query";
type BackgroundConfig = LovelaceViewConfig["background"];
diff --git a/src/panels/lovelace/views/hui-view-header.ts b/src/panels/lovelace/views/hui-view-header.ts
index cf1e751a41..41ea48347e 100644
--- a/src/panels/lovelace/views/hui-view-header.ts
+++ b/src/panels/lovelace/views/hui-view-header.ts
@@ -1,11 +1,3 @@
-import { mdiPencil, mdiPlus } from "@mdi/js";
-import type { PropertyValues } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import { classMap } from "lit/directives/class-map";
-import "../../../components/ha-ripple";
-import "../../../components/ha-sortable";
-import "../../../components/ha-svg-icon";
import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
import type {
LovelaceViewConfig,
@@ -13,13 +5,24 @@ import type {
} from "../../../data/lovelace/config/view";
import type { HomeAssistant } from "../../../types";
import type { HuiBadge } from "../badges/hui-badge";
-import "../badges/hui-view-badges";
import type { HuiCard } from "../cards/hui-card";
+import type { Lovelace } from "../types";
+import type { PropertyValues } from "lit";
+
+import "../../../components/ha-ripple";
+import "../../../components/ha-sortable";
+import "../../../components/ha-svg-icon";
+import "../badges/hui-view-badges";
import "../components/hui-badge-edit-mode";
+
+import { mdiPencil, mdiPlus } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+import { classMap } from "lit/directives/class-map";
+
+import { showEditCardDialog } from "../editor/card-editor/show-edit-card-dialog";
import { replaceView } from "../editor/config-util";
import { showEditViewHeaderDialog } from "../editor/view-header/show-edit-view-header-dialog";
-import type { Lovelace } from "../types";
-import { showEditCardDialog } from "../editor/card-editor/show-edit-card-dialog";
export const DEFAULT_VIEW_HEADER_LAYOUT = "center";
export const DEFAULT_VIEW_HEADER_BADGES_POSITION = "bottom";
diff --git a/src/panels/lovelace/views/hui-view.ts b/src/panels/lovelace/views/hui-view.ts
index 12d10e3214..5a865f4aa9 100644
--- a/src/panels/lovelace/views/hui-view.ts
+++ b/src/panels/lovelace/views/hui-view.ts
@@ -1,23 +1,30 @@
-import deepClone from "deep-clone-simple";
-import type { PropertyValues } from "lit";
-import { ReactiveElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { storage } from "../../../common/decorators/storage";
import type { HASSDomEvent } from "../../../common/dom/fire_event";
-import "../../../components/entity/ha-state-label-badge";
-import "../../../components/ha-svg-icon";
import type { LovelaceViewElement } from "../../../data/lovelace";
import type { LovelaceBadgeConfig } from "../../../data/lovelace/config/badge";
-import { ensureBadgeConfig } from "../../../data/lovelace/config/badge";
import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
import type { LovelaceSectionConfig } from "../../../data/lovelace/config/section";
import type { LovelaceViewConfig } from "../../../data/lovelace/config/view";
-import { isStrategyView } from "../../../data/lovelace/config/view";
import type { HomeAssistant } from "../../../types";
-import "../badges/hui-badge";
import type { HuiBadge } from "../badges/hui-badge";
-import "../cards/hui-card";
import type { HuiCard } from "../cards/hui-card";
+import type { LovelaceCardPath } from "../editor/lovelace-path";
+import type { HuiSection } from "../sections/hui-section";
+import type { Lovelace } from "../types";
+import type { PropertyValues } from "lit";
+
+import "../../../components/entity/ha-state-label-badge";
+import "../../../components/ha-svg-icon";
+import "../badges/hui-badge";
+import "../cards/hui-card";
+import "../sections/hui-section";
+
+import deepClone from "deep-clone-simple";
+import { ReactiveElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { storage } from "../../../common/decorators/storage";
+import { ensureBadgeConfig } from "../../../data/lovelace/config/badge";
+import { isStrategyView } from "../../../data/lovelace/config/view";
import { createViewElement } from "../create-element/create-view-element";
import { showCreateBadgeDialog } from "../editor/badge-editor/show-create-badge-dialog";
import { showEditBadgeDialog } from "../editor/badge-editor/show-edit-badge-dialog";
@@ -32,13 +39,9 @@ import {
type DeleteCardParams,
performDeleteCard,
} from "../editor/delete-card";
-import type { LovelaceCardPath } from "../editor/lovelace-path";
import { parseLovelaceCardPath } from "../editor/lovelace-path";
import { createErrorSectionConfig } from "../sections/hui-error-section";
-import "../sections/hui-section";
-import type { HuiSection } from "../sections/hui-section";
import { generateLovelaceViewStrategy } from "../strategies/get-strategy";
-import type { Lovelace } from "../types";
import { getViewType } from "./get-view-type";
declare global {
diff --git a/src/panels/map/ha-panel-map.ts b/src/panels/map/ha-panel-map.ts
index 811a047c45..1a6c7de562 100644
--- a/src/panels/map/ha-panel-map.ts
+++ b/src/panels/map/ha-panel-map.ts
@@ -1,15 +1,18 @@
-import { mdiPencil } from "@mdi/js";
+import type { HomeAssistant } from "../../types";
import type { CSSResultGroup, PropertyValues } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { computeStateDomain } from "../../common/entity/compute_state_domain";
-import { navigate } from "../../common/navigate";
+
import "../../components/ha-icon-button";
import "../../components/ha-menu-button";
import "../../components/ha-top-app-bar-fixed";
import "../../components/map/ha-map";
+
+import { mdiPencil } from "@mdi/js";
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { computeStateDomain } from "../../common/entity/compute_state_domain";
+import { navigate } from "../../common/navigate";
import { haStyle } from "../../resources/styles";
-import type { HomeAssistant } from "../../types";
@customElement("ha-panel-map")
class HaPanelMap extends LitElement {
diff --git a/src/panels/media-browser/browser-media-player.ts b/src/panels/media-browser/browser-media-player.ts
index 47de0f5969..9fc0cc4e17 100644
--- a/src/panels/media-browser/browser-media-player.ts
+++ b/src/panels/media-browser/browser-media-player.ts
@@ -1,13 +1,14 @@
+import type { ResolvedMediaSource } from "../../data/media_source";
import type {
MediaPlayerEntity,
MediaPlayerItem,
} from "../../data/media-player";
+import type { HomeAssistant } from "../../types";
+
import {
BROWSER_PLAYER,
MediaPlayerEntityFeature,
} from "../../data/media-player";
-import type { ResolvedMediaSource } from "../../data/media_source";
-import type { HomeAssistant } from "../../types";
export const ERR_UNSUPPORTED_MEDIA = "Unsupported Media";
diff --git a/src/panels/media-browser/ha-bar-media-player.ts b/src/panels/media-browser/ha-bar-media-player.ts
index 3add74d949..164a0eb6e0 100644
--- a/src/panels/media-browser/ha-bar-media-player.ts
+++ b/src/panels/media-browser/ha-bar-media-player.ts
@@ -1,5 +1,25 @@
-import "@material/mwc-linear-progress/mwc-linear-progress";
+import type { ResolvedMediaSource } from "../../data/media_source";
+import type {
+ ControlButton,
+ MediaPlayerEntity,
+ MediaPlayerItem,
+} from "../../data/media-player";
+import type { HomeAssistant } from "../../types";
import type { LinearProgress } from "@material/mwc-linear-progress/mwc-linear-progress";
+import type { PropertyValues } from "lit";
+
+import "../../components/ha-button";
+import "../../components/ha-button-menu";
+import "../../components/ha-domain-icon";
+import "../../components/ha-icon-button";
+import "../../components/ha-list-item";
+import "../../components/ha-slider";
+import "../../components/ha-spinner";
+import "../../components/ha-state-icon";
+import "../../components/ha-svg-icon";
+import "../lovelace/components/hui-marquee";
+import "@material/mwc-linear-progress/mwc-linear-progress";
+
import {
mdiChevronDown,
mdiMonitor,
@@ -9,32 +29,18 @@ import {
mdiStop,
mdiVolumeHigh,
} from "@mdi/js";
-import type { PropertyValues } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { until } from "lit/directives/until";
+
import { fireEvent } from "../../common/dom/fire_event";
import { computeDomain } from "../../common/entity/compute_domain";
import { computeStateDomain } from "../../common/entity/compute_state_domain";
import { computeStateName } from "../../common/entity/compute_state_name";
import { supportsFeature } from "../../common/entity/supports-feature";
import { debounce } from "../../common/util/debounce";
-import "../../components/ha-slider";
-import "../../components/ha-button";
-import "../../components/ha-button-menu";
-import "../../components/ha-spinner";
-import "../../components/ha-domain-icon";
-import "../../components/ha-icon-button";
-import "../../components/ha-list-item";
-import "../../components/ha-state-icon";
-import "../../components/ha-svg-icon";
import { UNAVAILABLE } from "../../data/entity";
-import type {
- ControlButton,
- MediaPlayerEntity,
- MediaPlayerItem,
-} from "../../data/media-player";
import {
BROWSER_PLAYER,
MediaPlayerEntityFeature,
@@ -46,11 +52,8 @@ import {
handleMediaControlClick,
setMediaPlayerVolume,
} from "../../data/media-player";
-import type { ResolvedMediaSource } from "../../data/media_source";
import { showAlertDialog } from "../../dialogs/generic/show-dialog-box";
import { SubscribeMixin } from "../../mixins/subscribe-mixin";
-import type { HomeAssistant } from "../../types";
-import "../lovelace/components/hui-marquee";
import {
BrowserMediaPlayer,
ERR_UNSUPPORTED_MEDIA,
diff --git a/src/panels/media-browser/ha-panel-media-browser.ts b/src/panels/media-browser/ha-panel-media-browser.ts
index c12d5d65da..8cf05dffd0 100644
--- a/src/panels/media-browser/ha-panel-media-browser.ts
+++ b/src/panels/media-browser/ha-panel-media-browser.ts
@@ -1,3 +1,28 @@
+import type { HASSDomEvent } from "../../common/dom/fire_event";
+import type {
+ HaMediaPlayerBrowse,
+ MediaPlayerItemId,
+} from "../../components/media-player/ha-media-player-browse";
+import type { ResolvedMediaSource } from "../../data/media_source";
+import type {
+ MediaPickedEvent,
+ MediaPlayerItem,
+ MediaPlayerLayoutType,
+} from "../../data/media-player";
+import type { HomeAssistant, Route } from "../../types";
+import type { BarMediaPlayer } from "./ha-bar-media-player";
+import type { ActionDetail } from "@material/mwc-list";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../components/ha-icon-button";
+import "../../components/ha-icon-button-arrow-prev";
+import "../../components/ha-menu-button";
+import "../../components/ha-top-app-bar-fixed";
+import "../../components/media-player/ha-media-manage-button";
+import "../../components/media-player/ha-media-player-browse";
+import "./ha-bar-media-player";
+import "@material/mwc-button";
+
import {
mdiGrid,
mdiListBoxOutline,
@@ -5,43 +30,21 @@ import {
mdiAlphaABoxOutline,
mdiDotsVertical,
} from "@mdi/js";
-import type { ActionDetail } from "@material/mwc-list";
-import "@material/mwc-button";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
import { css, html, LitElement } from "lit";
import { customElement, property, query, state } from "lit/decorators";
+
import { storage } from "../../common/decorators/storage";
-import type { HASSDomEvent } from "../../common/dom/fire_event";
import { fireEvent } from "../../common/dom/fire_event";
import { navigate } from "../../common/navigate";
-import "../../components/ha-menu-button";
-import "../../components/ha-icon-button";
-import "../../components/ha-icon-button-arrow-prev";
-import "../../components/media-player/ha-media-player-browse";
-import "../../components/media-player/ha-media-manage-button";
-import type {
- HaMediaPlayerBrowse,
- MediaPlayerItemId,
-} from "../../components/media-player/ha-media-player-browse";
-import type {
- MediaPickedEvent,
- MediaPlayerItem,
- MediaPlayerLayoutType,
-} from "../../data/media-player";
-import { BROWSER_PLAYER, mediaPlayerPlayMedia } from "../../data/media-player";
-import type { ResolvedMediaSource } from "../../data/media_source";
-import { resolveMediaSource } from "../../data/media_source";
-import { haStyle } from "../../resources/styles";
-import type { HomeAssistant, Route } from "../../types";
-import "./ha-bar-media-player";
-import type { BarMediaPlayer } from "./ha-bar-media-player";
-import { showWebBrowserPlayMediaDialog } from "./show-media-player-dialog";
-import { showAlertDialog } from "../../dialogs/generic/show-dialog-box";
import {
getEntityIdFromCameraMediaSource,
isCameraMediaSource,
} from "../../data/camera";
-import "../../components/ha-top-app-bar-fixed";
+import { resolveMediaSource } from "../../data/media_source";
+import { BROWSER_PLAYER, mediaPlayerPlayMedia } from "../../data/media-player";
+import { showAlertDialog } from "../../dialogs/generic/show-dialog-box";
+import { haStyle } from "../../resources/styles";
+import { showWebBrowserPlayMediaDialog } from "./show-media-player-dialog";
const createMediaPanelUrl = (entityId: string, items: MediaPlayerItemId[]) => {
let path = `/media-browser/${entityId}`;
diff --git a/src/panels/media-browser/hui-dialog-web-browser-play-media.ts b/src/panels/media-browser/hui-dialog-web-browser-play-media.ts
index fef3726e27..5847fb2d07 100644
--- a/src/panels/media-browser/hui-dialog-web-browser-play-media.ts
+++ b/src/panels/media-browser/hui-dialog-web-browser-play-media.ts
@@ -1,12 +1,15 @@
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
-import { createCloseHeading } from "../../components/ha-dialog";
-import "../../components/ha-hls-player";
-import { haStyleDialog } from "../../resources/styles";
import type { HomeAssistant } from "../../types";
import type { WebBrowserPlayMediaDialogParams } from "./show-media-player-dialog";
+import type { CSSResultGroup } from "lit";
+
+import "../../components/ha-hls-player";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
+import { createCloseHeading } from "../../components/ha-dialog";
+import { haStyleDialog } from "../../resources/styles";
@customElement("hui-dialog-web-browser-play-media")
export class HuiDialogWebBrowserPlayMedia extends LitElement {
diff --git a/src/panels/my/ha-panel-my.ts b/src/panels/my/ha-panel-my.ts
index f8480455e4..339491df17 100644
--- a/src/panels/my/ha-panel-my.ts
+++ b/src/panels/my/ha-panel-my.ts
@@ -1,6 +1,11 @@
+import type { HomeAssistant, Route } from "../../types";
+
+import "../../layouts/hass-error-screen";
+
import { sanitizeUrl } from "@braintree/sanitize-url";
import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { isComponentLoaded } from "../../common/config/is_component_loaded";
import {
protocolIntegrationPicked,
@@ -12,8 +17,6 @@ import {
extractSearchParamsObject,
} from "../../common/url/search-params";
import { domainToName } from "../../data/integration";
-import "../../layouts/hass-error-screen";
-import type { HomeAssistant, Route } from "../../types";
import { documentationUrl } from "../../util/documentation-url";
export const getMyRedirects = (): Redirects => ({
diff --git a/src/panels/profile/dialog-ha-mfa-module-setup-flow.ts b/src/panels/profile/dialog-ha-mfa-module-setup-flow.ts
index 4d10f8883d..563a810e8d 100644
--- a/src/panels/profile/dialog-ha-mfa-module-setup-flow.ts
+++ b/src/panels/profile/dialog-ha-mfa-module-setup-flow.ts
@@ -1,18 +1,21 @@
-import "@material/mwc-button";
-import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import "../../components/ha-spinner";
-import "../../components/ha-dialog";
-import "../../components/ha-form/ha-form";
-import "../../components/ha-markdown";
-import { autocompleteLoginFields } from "../../data/auth";
import type {
DataEntryFlowStep,
DataEntryFlowStepForm,
} from "../../data/data_entry_flow";
-import { haStyleDialog } from "../../resources/styles";
import type { HomeAssistant } from "../../types";
+import type { CSSResultGroup } from "lit";
+
+import "../../components/ha-dialog";
+import "../../components/ha-form/ha-form";
+import "../../components/ha-markdown";
+import "../../components/ha-spinner";
+import "@material/mwc-button";
+
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { autocompleteLoginFields } from "../../data/auth";
+import { haStyleDialog } from "../../resources/styles";
let instance = 0;
diff --git a/src/panels/profile/ha-advanced-mode-row.ts b/src/panels/profile/ha-advanced-mode-row.ts
index b67e98d26a..09bfa16fd5 100644
--- a/src/panels/profile/ha-advanced-mode-row.ts
+++ b/src/panels/profile/ha-advanced-mode-row.ts
@@ -1,12 +1,15 @@
+import type { CoreFrontendUserData } from "../../data/frontend";
+import type { HomeAssistant } from "../../types";
import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
+
import "../../components/ha-card";
import "../../components/ha-settings-row";
import "../../components/ha-switch";
-import type { CoreFrontendUserData } from "../../data/frontend";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { getOptimisticFrontendUserDataCollection } from "../../data/frontend";
-import type { HomeAssistant } from "../../types";
@customElement("ha-advanced-mode-row")
class AdvancedModeRow extends LitElement {
diff --git a/src/panels/profile/ha-change-password-card.ts b/src/panels/profile/ha-change-password-card.ts
index d30a68b3bd..377abcb735 100644
--- a/src/panels/profile/ha-change-password-card.ts
+++ b/src/panels/profile/ha-change-password-card.ts
@@ -1,20 +1,23 @@
-import "@material/mwc-button";
+import type { RefreshToken } from "../../data/refresh_token";
+import type { HomeAssistant } from "../../types";
import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
+
+import "../../components/ha-alert";
import "../../components/ha-card";
+import "../../components/ha-password-field";
import "../../components/ha-spinner";
import "../../components/ha-textfield";
-import "../../components/ha-password-field";
-import { haStyle } from "../../resources/styles";
-import type { HomeAssistant } from "../../types";
-import "../../components/ha-alert";
+import "@material/mwc-button";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { changePassword, deleteAllRefreshTokens } from "../../data/auth";
import {
showAlertDialog,
showConfirmationDialog,
} from "../../dialogs/generic/show-dialog-box";
-import type { RefreshToken } from "../../data/refresh_token";
-import { changePassword, deleteAllRefreshTokens } from "../../data/auth";
+import { haStyle } from "../../resources/styles";
@customElement("ha-change-password-card")
class HaChangePasswordCard extends LitElement {
diff --git a/src/panels/profile/ha-enable-shortcuts-row.ts b/src/panels/profile/ha-enable-shortcuts-row.ts
index d85d7715b3..4bf09dbbc1 100644
--- a/src/panels/profile/ha-enable-shortcuts-row.ts
+++ b/src/panels/profile/ha-enable-shortcuts-row.ts
@@ -1,11 +1,14 @@
-import type { TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
-import "../../components/ha-settings-row";
-import "../../components/ha-switch";
import type { HaSwitch } from "../../components/ha-switch";
import type { HomeAssistant } from "../../types";
+import type { TemplateResult } from "lit";
+
+import "../../components/ha-settings-row";
+import "../../components/ha-switch";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
@customElement("ha-enable-shortcuts-row")
class HaEnableShortcutsRow extends LitElement {
diff --git a/src/panels/profile/ha-force-narrow-row.ts b/src/panels/profile/ha-force-narrow-row.ts
index d40ecc4d94..34d53fff63 100644
--- a/src/panels/profile/ha-force-narrow-row.ts
+++ b/src/panels/profile/ha-force-narrow-row.ts
@@ -1,11 +1,14 @@
-import type { TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
-import "../../components/ha-settings-row";
-import "../../components/ha-switch";
import type { HaSwitch } from "../../components/ha-switch";
import type { HomeAssistant } from "../../types";
+import type { TemplateResult } from "lit";
+
+import "../../components/ha-settings-row";
+import "../../components/ha-switch";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
@customElement("ha-force-narrow-row")
class HaForcedNarrowRow extends LitElement {
diff --git a/src/panels/profile/ha-long-lived-access-token-dialog.ts b/src/panels/profile/ha-long-lived-access-token-dialog.ts
index 018325c284..0e560fa4e9 100644
--- a/src/panels/profile/ha-long-lived-access-token-dialog.ts
+++ b/src/panels/profile/ha-long-lived-access-token-dialog.ts
@@ -1,17 +1,20 @@
-import "@material/mwc-button";
-import { mdiContentCopy } from "@mdi/js";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
-import { createCloseHeading } from "../../components/ha-dialog";
-import "../../components/ha-textfield";
-import "../../components/ha-icon-button";
-import { haStyleDialog } from "../../resources/styles";
+import type { HaTextField } from "../../components/ha-textfield";
import type { HomeAssistant } from "../../types";
import type { LongLivedAccessTokenDialogParams } from "./show-long-lived-access-token-dialog";
-import type { HaTextField } from "../../components/ha-textfield";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../components/ha-icon-button";
+import "../../components/ha-textfield";
+import "@material/mwc-button";
+
+import { mdiContentCopy } from "@mdi/js";
+import { css, html, LitElement, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
import { copyToClipboard } from "../../common/util/copy-clipboard";
+import { createCloseHeading } from "../../components/ha-dialog";
+import { haStyleDialog } from "../../resources/styles";
import { showToast } from "../../util/toast";
const QR_LOGO_URL = "/static/icons/favicon-192x192.png";
diff --git a/src/panels/profile/ha-long-lived-access-tokens-card.ts b/src/panels/profile/ha-long-lived-access-tokens-card.ts
index 2877db9301..4c18c0b4bb 100644
--- a/src/panels/profile/ha-long-lived-access-tokens-card.ts
+++ b/src/panels/profile/ha-long-lived-access-tokens-card.ts
@@ -1,22 +1,25 @@
-import "@material/mwc-button/mwc-button";
-import { mdiDelete } from "@mdi/js";
+import type { RefreshToken } from "../../data/refresh_token";
+import type { HomeAssistant } from "../../types";
import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../components/ha-card";
+import "../../components/ha-icon-button";
+import "../../components/ha-settings-row";
+import "@material/mwc-button/mwc-button";
+
+import { mdiDelete } from "@mdi/js";
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { relativeTime } from "../../common/datetime/relative_time";
import { fireEvent } from "../../common/dom/fire_event";
-import "../../components/ha-card";
-import "../../components/ha-settings-row";
-import "../../components/ha-icon-button";
-import type { RefreshToken } from "../../data/refresh_token";
import {
showAlertDialog,
showConfirmationDialog,
showPromptDialog,
} from "../../dialogs/generic/show-dialog-box";
import { haStyle } from "../../resources/styles";
-import type { HomeAssistant } from "../../types";
import { showLongLivedAccessTokenDialog } from "./show-long-lived-access-token-dialog";
@customElement("ha-long-lived-access-tokens-card")
diff --git a/src/panels/profile/ha-mfa-modules-card.ts b/src/panels/profile/ha-mfa-modules-card.ts
index 1f15f6be54..2fa6b7894c 100644
--- a/src/panels/profile/ha-mfa-modules-card.ts
+++ b/src/panels/profile/ha-mfa-modules-card.ts
@@ -1,11 +1,14 @@
-import "@material/mwc-button";
+import type { HomeAssistant, MFAModule } from "../../types";
import type { TemplateResult } from "lit";
+
+import "../../components/ha-card";
+import "@material/mwc-button";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
+
import { fireEvent } from "../../common/dom/fire_event";
-import "../../components/ha-card";
import { showConfirmationDialog } from "../../dialogs/generic/show-dialog-box";
-import type { HomeAssistant, MFAModule } from "../../types";
import { showMfaModuleSetupFlowDialog } from "./show-ha-mfa-module-setup-flow-dialog";
@customElement("ha-mfa-modules-card")
diff --git a/src/panels/profile/ha-panel-profile.ts b/src/panels/profile/ha-panel-profile.ts
index 35e74d046e..04787078eb 100644
--- a/src/panels/profile/ha-panel-profile.ts
+++ b/src/panels/profile/ha-panel-profile.ts
@@ -1,12 +1,14 @@
-import { customElement, property } from "lit/decorators";
+
+import type { RouterOptions } from "../../layouts/hass-router-page";
+import type { PageNavigation } from "../../layouts/hass-tabs-subpage";
+import type { HomeAssistant } from "../../types";
+import type { PropertyValues } from "lit";
import { mdiAccount, mdiLock } from "@mdi/js";
-import type { PropertyValues } from "lit";
-import type { RouterOptions } from "../../layouts/hass-router-page";
+import { customElement, property } from "lit/decorators";
+
import { HassRouterPage } from "../../layouts/hass-router-page";
-import type { PageNavigation } from "../../layouts/hass-tabs-subpage";
import { SubscribeMixin } from "../../mixins/subscribe-mixin";
-import type { HomeAssistant } from "../../types";
export const profileSections: PageNavigation[] = [
{
diff --git a/src/panels/profile/ha-pick-dashboard-row.ts b/src/panels/profile/ha-pick-dashboard-row.ts
index c279bd4719..9ebdd9cbb5 100644
--- a/src/panels/profile/ha-pick-dashboard-row.ts
+++ b/src/panels/profile/ha-pick-dashboard-row.ts
@@ -1,13 +1,16 @@
-import "@material/mwc-list/mwc-list-item";
+import type { LovelaceDashboard } from "../../data/lovelace/dashboard";
+import type { HomeAssistant } from "../../types";
import type { PropertyValues, TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
+
import "../../components/ha-select";
import "../../components/ha-settings-row";
-import type { LovelaceDashboard } from "../../data/lovelace/dashboard";
+import "@material/mwc-list/mwc-list-item";
+
+import { html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
import { fetchDashboards } from "../../data/lovelace/dashboard";
import { setDefaultPanel } from "../../data/panel";
-import type { HomeAssistant } from "../../types";
@customElement("ha-pick-dashboard-row")
class HaPickDashboardRow extends LitElement {
diff --git a/src/panels/profile/ha-pick-date-format-row.ts b/src/panels/profile/ha-pick-date-format-row.ts
index 78ff9c1387..e3275ab28f 100644
--- a/src/panels/profile/ha-pick-date-format-row.ts
+++ b/src/panels/profile/ha-pick-date-format-row.ts
@@ -1,14 +1,17 @@
-import "@material/mwc-list/mwc-list-item";
+import type { HomeAssistant } from "../../types";
import type { TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { formatDateNumeric } from "../../common/datetime/format_date";
-import { fireEvent } from "../../common/dom/fire_event";
+
import "../../components/ha-card";
import "../../components/ha-select";
import "../../components/ha-settings-row";
+import "@material/mwc-list/mwc-list-item";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { formatDateNumeric } from "../../common/datetime/format_date";
+import { fireEvent } from "../../common/dom/fire_event";
import { DateFormat } from "../../data/translation";
-import type { HomeAssistant } from "../../types";
@customElement("ha-pick-date-format-row")
class DateFormatRow extends LitElement {
diff --git a/src/panels/profile/ha-pick-first-weekday-row.ts b/src/panels/profile/ha-pick-first-weekday-row.ts
index 63ccb1ba11..60dc7bfa75 100644
--- a/src/panels/profile/ha-pick-first-weekday-row.ts
+++ b/src/panels/profile/ha-pick-first-weekday-row.ts
@@ -1,13 +1,16 @@
-import "@material/mwc-list/mwc-list-item";
+import type { HomeAssistant } from "../../types";
import type { TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { firstWeekday } from "../../common/datetime/first_weekday";
-import { fireEvent } from "../../common/dom/fire_event";
+
import "../../components/ha-select";
import "../../components/ha-settings-row";
+import "@material/mwc-list/mwc-list-item";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { firstWeekday } from "../../common/datetime/first_weekday";
+import { fireEvent } from "../../common/dom/fire_event";
import { FirstWeekday } from "../../data/translation";
-import type { HomeAssistant } from "../../types";
@customElement("ha-pick-first-weekday-row")
class FirstWeekdayRow extends LitElement {
diff --git a/src/panels/profile/ha-pick-language-row.ts b/src/panels/profile/ha-pick-language-row.ts
index 09ccbb9a6f..08528e153a 100644
--- a/src/panels/profile/ha-pick-language-row.ts
+++ b/src/panels/profile/ha-pick-language-row.ts
@@ -1,9 +1,12 @@
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
+import type { HomeAssistant } from "../../types";
+
import "../../components/ha-language-picker";
import "../../components/ha-settings-row";
-import type { HomeAssistant } from "../../types";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
@customElement("ha-pick-language-row")
export class HaPickLanguageRow extends LitElement {
diff --git a/src/panels/profile/ha-pick-number-format-row.ts b/src/panels/profile/ha-pick-number-format-row.ts
index 4e04f249c6..cc766d3fe8 100644
--- a/src/panels/profile/ha-pick-number-format-row.ts
+++ b/src/panels/profile/ha-pick-number-format-row.ts
@@ -1,14 +1,17 @@
-import "@material/mwc-list/mwc-list-item";
+import type { HomeAssistant } from "../../types";
import type { TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
-import { formatNumber } from "../../common/number/format_number";
+
import "../../components/ha-card";
import "../../components/ha-select";
import "../../components/ha-settings-row";
+import "@material/mwc-list/mwc-list-item";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
+import { formatNumber } from "../../common/number/format_number";
import { NumberFormat } from "../../data/translation";
-import type { HomeAssistant } from "../../types";
@customElement("ha-pick-number-format-row")
class NumberFormatRow extends LitElement {
diff --git a/src/panels/profile/ha-pick-theme-row.ts b/src/panels/profile/ha-pick-theme-row.ts
index d37471f938..79bdaff21c 100644
--- a/src/panels/profile/ha-pick-theme-row.ts
+++ b/src/panels/profile/ha-pick-theme-row.ts
@@ -1,20 +1,23 @@
-import "@material/mwc-button/mwc-button";
-import "@material/mwc-list/mwc-list-item";
+import type { HaRadio } from "../../components/ha-radio";
+import type { HomeAssistant } from "../../types";
import type { PropertyValues, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
+
import "../../components/ha-formfield";
import "../../components/ha-radio";
-import type { HaRadio } from "../../components/ha-radio";
import "../../components/ha-select";
import "../../components/ha-settings-row";
import "../../components/ha-textfield";
+import "@material/mwc-button/mwc-button";
+import "@material/mwc-list/mwc-list-item";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
import {
DEFAULT_ACCENT_COLOR,
DEFAULT_PRIMARY_COLOR,
} from "../../resources/styles-data";
-import type { HomeAssistant } from "../../types";
import { documentationUrl } from "../../util/documentation-url";
const USE_DEFAULT_THEME = "__USE_DEFAULT_THEME__";
diff --git a/src/panels/profile/ha-pick-time-format-row.ts b/src/panels/profile/ha-pick-time-format-row.ts
index 1cb7d8800a..2808f8dba7 100644
--- a/src/panels/profile/ha-pick-time-format-row.ts
+++ b/src/panels/profile/ha-pick-time-format-row.ts
@@ -1,14 +1,17 @@
-import "@material/mwc-list/mwc-list-item";
+import type { HomeAssistant } from "../../types";
import type { TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { formatTime } from "../../common/datetime/format_time";
-import { fireEvent } from "../../common/dom/fire_event";
+
import "../../components/ha-card";
import "../../components/ha-select";
import "../../components/ha-settings-row";
+import "@material/mwc-list/mwc-list-item";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { formatTime } from "../../common/datetime/format_time";
+import { fireEvent } from "../../common/dom/fire_event";
import { TimeFormat } from "../../data/translation";
-import type { HomeAssistant } from "../../types";
@customElement("ha-pick-time-format-row")
class TimeFormatRow extends LitElement {
diff --git a/src/panels/profile/ha-pick-time-zone-row.ts b/src/panels/profile/ha-pick-time-zone-row.ts
index 6698e7da4a..c322504565 100644
--- a/src/panels/profile/ha-pick-time-zone-row.ts
+++ b/src/panels/profile/ha-pick-time-zone-row.ts
@@ -1,15 +1,18 @@
-import "@material/mwc-list/mwc-list-item";
+import type { HomeAssistant } from "../../types";
import type { TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { formatDateTimeNumeric } from "../../common/datetime/format_date_time";
-import { resolveTimeZone } from "../../common/datetime/resolve-time-zone";
-import { fireEvent } from "../../common/dom/fire_event";
+
import "../../components/ha-card";
import "../../components/ha-select";
import "../../components/ha-settings-row";
+import "@material/mwc-list/mwc-list-item";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { formatDateTimeNumeric } from "../../common/datetime/format_date_time";
+import { resolveTimeZone } from "../../common/datetime/resolve-time-zone";
+import { fireEvent } from "../../common/dom/fire_event";
import { TimeZone } from "../../data/translation";
-import type { HomeAssistant } from "../../types";
@customElement("ha-pick-time-zone-row")
class TimeZoneRow extends LitElement {
diff --git a/src/panels/profile/ha-profile-section-general.ts b/src/panels/profile/ha-profile-section-general.ts
index 3c06368a80..2eda56ac9a 100644
--- a/src/panels/profile/ha-profile-section-general.ts
+++ b/src/panels/profile/ha-profile-section-general.ts
@@ -1,33 +1,36 @@
-import "@material/mwc-button";
+import type { CoreFrontendUserData } from "../../data/frontend";
+import type { HomeAssistant, Route } from "../../types";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
+
import "../../components/ha-card";
import "../../layouts/hass-tabs-subpage";
-import { profileSections } from "./ha-panel-profile";
-import { isExternal } from "../../data/external";
-import type { CoreFrontendUserData } from "../../data/frontend";
-import { getOptimisticFrontendUserDataCollection } from "../../data/frontend";
-import { showConfirmationDialog } from "../../dialogs/generic/show-dialog-box";
-import { haStyle } from "../../resources/styles";
-import type { HomeAssistant, Route } from "../../types";
import "./ha-advanced-mode-row";
import "./ha-enable-shortcuts-row";
import "./ha-force-narrow-row";
import "./ha-pick-dashboard-row";
+import "./ha-pick-date-format-row";
import "./ha-pick-first-weekday-row";
import "./ha-pick-language-row";
import "./ha-pick-number-format-row";
import "./ha-pick-theme-row";
import "./ha-pick-time-format-row";
-import "./ha-pick-date-format-row";
import "./ha-pick-time-zone-row";
import "./ha-push-notifications-row";
import "./ha-set-suspend-row";
import "./ha-set-vibrate-row";
+import "@material/mwc-button";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
import { nextRender } from "../../common/util/render-status";
+import { isExternal } from "../../data/external";
+import { getOptimisticFrontendUserDataCollection } from "../../data/frontend";
+import { showConfirmationDialog } from "../../dialogs/generic/show-dialog-box";
+import { haStyle } from "../../resources/styles";
+import { profileSections } from "./ha-panel-profile";
@customElement("ha-profile-section-general")
class HaProfileSectionGeneral extends LitElement {
diff --git a/src/panels/profile/ha-profile-section-security.ts b/src/panels/profile/ha-profile-section-security.ts
index 83b2043138..342ac63ff2 100644
--- a/src/panels/profile/ha-profile-section-security.ts
+++ b/src/panels/profile/ha-profile-section-security.ts
@@ -1,16 +1,19 @@
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import "../../layouts/hass-tabs-subpage";
-import { profileSections } from "./ha-panel-profile";
import type { RefreshToken } from "../../data/refresh_token";
-import { haStyle } from "../../resources/styles";
import type { HomeAssistant, Route } from "../../types";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../layouts/hass-tabs-subpage";
import "./ha-change-password-card";
import "./ha-long-lived-access-tokens-card";
import "./ha-mfa-modules-card";
import "./ha-refresh-tokens-card";
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
+import { haStyle } from "../../resources/styles";
+import { profileSections } from "./ha-panel-profile";
+
@customElement("ha-profile-section-security")
class HaProfileSectionSecurity extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/panels/profile/ha-push-notifications-row.ts b/src/panels/profile/ha-push-notifications-row.ts
index dd9abe6ef1..84ada6329f 100644
--- a/src/panels/profile/ha-push-notifications-row.ts
+++ b/src/panels/profile/ha-push-notifications-row.ts
@@ -1,11 +1,14 @@
+import type { HomeAssistant } from "../../types";
import type { TemplateResult } from "lit";
+
+import "../../components/ha-settings-row";
+
import { LitElement, css, html } from "lit";
import { customElement, property } from "lit/decorators";
+
import { isComponentLoaded } from "../../common/config/is_component_loaded";
import { pushSupported } from "../../components/ha-push-notifications-toggle";
-import "../../components/ha-settings-row";
import { documentationUrl } from "../../util/documentation-url";
-import type { HomeAssistant } from "../../types";
@customElement("ha-push-notifications-row")
class HaPushNotificationsRow extends LitElement {
diff --git a/src/panels/profile/ha-refresh-tokens-card.ts b/src/panels/profile/ha-refresh-tokens-card.ts
index eba7a50837..bc509c586e 100644
--- a/src/panels/profile/ha-refresh-tokens-card.ts
+++ b/src/panels/profile/ha-refresh-tokens-card.ts
@@ -1,4 +1,15 @@
+import type { RefreshToken } from "../../data/refresh_token";
+import type { HomeAssistant } from "../../types";
import type { ActionDetail } from "@material/mwc-list";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../components/ha-button-menu";
+import "../../components/ha-card";
+import "../../components/ha-icon-button";
+import "../../components/ha-label";
+import "../../components/ha-list-item";
+import "../../components/ha-settings-row";
+
import {
mdiAndroid,
mdiApple,
@@ -8,26 +19,18 @@ import {
mdiDotsVertical,
mdiWeb,
} from "@mdi/js";
-import type { CSSResultGroup, TemplateResult } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { relativeTime } from "../../common/datetime/relative_time";
import { fireEvent } from "../../common/dom/fire_event";
-import "../../components/ha-button-menu";
-import "../../components/ha-card";
-import "../../components/ha-icon-button";
-import "../../components/ha-label";
-import "../../components/ha-settings-row";
-import "../../components/ha-list-item";
import { deleteAllRefreshTokens } from "../../data/auth";
-import type { RefreshToken } from "../../data/refresh_token";
import {
showAlertDialog,
showConfirmationDialog,
} from "../../dialogs/generic/show-dialog-box";
import { haStyle } from "../../resources/styles";
-import type { HomeAssistant } from "../../types";
// Client ID used by iOS app
const iOSclientId = "https://home-assistant.io/iOS";
diff --git a/src/panels/profile/ha-set-suspend-row.ts b/src/panels/profile/ha-set-suspend-row.ts
index 4cfd25f3ce..48cc044204 100644
--- a/src/panels/profile/ha-set-suspend-row.ts
+++ b/src/panels/profile/ha-set-suspend-row.ts
@@ -1,12 +1,15 @@
-import type { TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
import type { HASSDomEvent } from "../../common/dom/fire_event";
-import { fireEvent } from "../../common/dom/fire_event";
-import "../../components/ha-settings-row";
-import "../../components/ha-switch";
import type { HaSwitch } from "../../components/ha-switch";
import type { HomeAssistant } from "../../types";
+import type { TemplateResult } from "lit";
+
+import "../../components/ha-settings-row";
+import "../../components/ha-switch";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
declare global {
// for fire event
diff --git a/src/panels/profile/ha-set-vibrate-row.ts b/src/panels/profile/ha-set-vibrate-row.ts
index f269cf7381..f3c91fcc8e 100644
--- a/src/panels/profile/ha-set-vibrate-row.ts
+++ b/src/panels/profile/ha-set-vibrate-row.ts
@@ -1,12 +1,15 @@
+import type { HaSwitch } from "../../components/ha-switch";
+import type { HomeAssistant } from "../../types";
import type { TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { fireEvent } from "../../common/dom/fire_event";
+
import "../../components/ha-settings-row";
import "../../components/ha-switch";
-import type { HaSwitch } from "../../components/ha-switch";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { fireEvent } from "../../common/dom/fire_event";
import { forwardHaptic } from "../../data/haptics";
-import type { HomeAssistant } from "../../types";
@customElement("ha-set-vibrate-row")
class HaSetVibrateRow extends LitElement {
diff --git a/src/panels/todo/dialog-todo-item-editor.ts b/src/panels/todo/dialog-todo-item-editor.ts
index 880f74cafa..91c71702af 100644
--- a/src/panels/todo/dialog-todo-item-editor.ts
+++ b/src/panels/todo/dialog-todo-item-editor.ts
@@ -1,19 +1,24 @@
-import "@material/mwc-button";
-import { formatInTimeZone, toDate } from "date-fns-tz";
+import type { HomeAssistant } from "../../types";
+import type { TodoItemEditDialogParams } from "./show-dialog-todo-item-editor";
import type { CSSResultGroup } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import memoizeOne from "memoize-one";
-import { resolveTimeZone } from "../../common/datetime/resolve-time-zone";
-import { fireEvent } from "../../common/dom/fire_event";
-import { supportsFeature } from "../../common/entity/supports-feature";
+
import "../../components/ha-alert";
import "../../components/ha-checkbox";
import "../../components/ha-date-input";
-import { createCloseHeading } from "../../components/ha-dialog";
import "../../components/ha-textarea";
import "../../components/ha-textfield";
import "../../components/ha-time-input";
+import "@material/mwc-button";
+
+import { formatInTimeZone, toDate } from "date-fns-tz";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import memoizeOne from "memoize-one";
+
+import { resolveTimeZone } from "../../common/datetime/resolve-time-zone";
+import { fireEvent } from "../../common/dom/fire_event";
+import { supportsFeature } from "../../common/entity/supports-feature";
+import { createCloseHeading } from "../../components/ha-dialog";
import {
TodoItemStatus,
TodoListEntityFeature,
@@ -23,8 +28,6 @@ import {
} from "../../data/todo";
import { showConfirmationDialog } from "../../dialogs/generic/show-dialog-box";
import { haStyleDialog } from "../../resources/styles";
-import type { HomeAssistant } from "../../types";
-import type { TodoItemEditDialogParams } from "./show-dialog-todo-item-editor";
@customElement("dialog-todo-item-editor")
class DialogTodoItemEditor extends LitElement {
diff --git a/src/panels/todo/ha-panel-todo.ts b/src/panels/todo/ha-panel-todo.ts
index a52780ee72..528bc44108 100644
--- a/src/panels/todo/ha-panel-todo.ts
+++ b/src/panels/todo/ha-panel-todo.ts
@@ -1,5 +1,19 @@
-import { ResizeController } from "@lit-labs/observers/resize-controller";
+import type { LovelaceCardConfig } from "../../data/lovelace/config/card";
+import type { HomeAssistant } from "../../types";
+import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
+
+import "../../components/ha-button";
+import "../../components/ha-fab";
+import "../../components/ha-icon-button";
+import "../../components/ha-list-item";
+import "../../components/ha-menu-button";
+import "../../components/ha-state-icon";
+import "../../components/ha-svg-icon";
+import "../../components/ha-two-pane-top-app-bar-fixed";
+import "../lovelace/cards/hui-card";
import "@material/mwc-list";
+
+import { ResizeController } from "@lit-labs/observers/resize-controller";
import {
mdiChevronDown,
mdiCommentProcessingOutline,
@@ -8,10 +22,10 @@ import {
mdiInformationOutline,
mdiPlus,
} from "@mdi/js";
-import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import memoizeOne from "memoize-one";
+
import { isComponentLoaded } from "../../common/config/is_component_loaded";
import { storage } from "../../common/decorators/storage";
import { fireEvent } from "../../common/dom/fire_event";
@@ -23,18 +37,9 @@ import {
createSearchParam,
extractSearchParam,
} from "../../common/url/search-params";
-import "../../components/ha-button";
-import "../../components/ha-fab";
-import "../../components/ha-icon-button";
-import "../../components/ha-list-item";
-import "../../components/ha-menu-button";
-import "../../components/ha-state-icon";
-import "../../components/ha-svg-icon";
-import "../../components/ha-two-pane-top-app-bar-fixed";
import { deleteConfigEntry } from "../../data/config_entries";
import { getExtendedEntityRegistryEntry } from "../../data/entity_registry";
import { fetchIntegrationManifest } from "../../data/integration";
-import type { LovelaceCardConfig } from "../../data/lovelace/config/card";
import { TodoListEntityFeature, getTodoLists } from "../../data/todo";
import { showConfigFlowDialog } from "../../dialogs/config-flow/show-dialog-config-flow";
import {
@@ -43,8 +48,6 @@ import {
} from "../../dialogs/generic/show-dialog-box";
import { showVoiceCommandDialog } from "../../dialogs/voice-command-dialog/show-ha-voice-command-dialog";
import { haStyle } from "../../resources/styles";
-import type { HomeAssistant } from "../../types";
-import "../lovelace/cards/hui-card";
import { showTodoItemEditDialog } from "./show-dialog-todo-item-editor";
@customElement("ha-panel-todo")
diff --git a/src/panels/todo/show-dialog-todo-item-editor.ts b/src/panels/todo/show-dialog-todo-item-editor.ts
index 0b3969ea1e..066339cb5a 100644
--- a/src/panels/todo/show-dialog-todo-item-editor.ts
+++ b/src/panels/todo/show-dialog-todo-item-editor.ts
@@ -1,6 +1,7 @@
-import { fireEvent } from "../../common/dom/fire_event";
import type { TodoItem } from "../../data/todo";
+import { fireEvent } from "../../common/dom/fire_event";
+
export interface TodoItemEditDialogParams {
entity: string;
item?: TodoItem;
diff --git a/src/resources/codemirror.ts b/src/resources/codemirror.ts
index 841afdc8d8..f46ffa724c 100644
--- a/src/resources/codemirror.ts
+++ b/src/resources/codemirror.ts
@@ -1,3 +1,5 @@
+import type { KeyBinding } from "@codemirror/view";
+
import { indentLess, indentMore } from "@codemirror/commands";
import {
foldService,
@@ -8,7 +10,6 @@ import {
import { jinja2 } from "@codemirror/legacy-modes/mode/jinja2";
import { yaml } from "@codemirror/legacy-modes/mode/yaml";
import { Compartment } from "@codemirror/state";
-import type { KeyBinding } from "@codemirror/view";
import { EditorView } from "@codemirror/view";
import { tags } from "@lezer/highlight";
diff --git a/src/resources/echarts.ts b/src/resources/echarts.ts
index 2f5c27e483..a037fb8683 100644
--- a/src/resources/echarts.ts
+++ b/src/resources/echarts.ts
@@ -1,27 +1,4 @@
// Import the echarts core module, which provides the necessary interfaces for using echarts.
-import * as echarts from "echarts/core";
-
-// Import charts, all suffixed with Chart
-import { BarChart, LineChart, CustomChart } from "echarts/charts";
-
-// Import the title, tooltip, rectangular coordinate system, dataset and transform components
-import {
- TooltipComponent,
- DatasetComponent,
- TransformComponent,
- LegendComponent,
- GridComponent,
- DataZoomComponent,
- VisualMapComponent,
- ToolboxComponent,
-} from "echarts/components";
-
-// Features like Universal Transition and Label Layout
-import { LabelLayout, UniversalTransition } from "echarts/features";
-
-// Import the Canvas renderer
-// Note that including the CanvasRenderer or SVGRenderer is a required step
-import { CanvasRenderer } from "echarts/renderers";
import type {
// The series option types are defined with the SeriesOption suffix
@@ -30,6 +7,10 @@ import type {
CustomSeriesOption,
SankeySeriesOption,
} from "echarts/charts";
+// Import the title, tooltip, rectangular coordinate system, dataset and transform components
+// Features like Universal Transition and Label Layout
+// Import the Canvas renderer
+// Note that including the CanvasRenderer or SVGRenderer is a required step
import type {
// The component option types are defined with the ComponentOption suffix
TooltipComponentOption,
@@ -41,6 +22,22 @@ import type {
} from "echarts/components";
import type { ComposeOption } from "echarts/core";
+// Import charts, all suffixed with Chart
+import { BarChart, LineChart, CustomChart } from "echarts/charts";
+import {
+ TooltipComponent,
+ DatasetComponent,
+ TransformComponent,
+ LegendComponent,
+ GridComponent,
+ DataZoomComponent,
+ VisualMapComponent,
+ ToolboxComponent,
+} from "echarts/components";
+import * as echarts from "echarts/core";
+import { LabelLayout, UniversalTransition } from "echarts/features";
+import { CanvasRenderer } from "echarts/renderers";
+
// Create an Option type with only the required components and charts via ComposeOption
export type ECOption = ComposeOption<
| BarSeriesOption
diff --git a/src/resources/ha-style.ts b/src/resources/ha-style.ts
index 2fbabcfbba..2024d3a973 100644
--- a/src/resources/ha-style.ts
+++ b/src/resources/ha-style.ts
@@ -1,4 +1,5 @@
import { css, unsafeCSS } from "lit";
+
import { fontStyles } from "./roboto";
import {
DEFAULT_ACCENT_COLOR,
diff --git a/src/resources/icon-metadata.ts b/src/resources/icon-metadata.ts
index ce972dd0fa..4f673b234e 100644
--- a/src/resources/icon-metadata.ts
+++ b/src/resources/icon-metadata.ts
@@ -1,4 +1,5 @@
-import * as iconMetadata_ from "../../build/mdi/iconMetadata.json";
import type { IconMetaFile } from "../types.js";
+import * as iconMetadata_ from "../../build/mdi/iconMetadata.json";
+
export const iconMetadata = (iconMetadata_ as any).default as IconMetaFile;
diff --git a/src/resources/markdown-worker.ts b/src/resources/markdown-worker.ts
index 1a8d3e3dc1..1f329f7901 100644
--- a/src/resources/markdown-worker.ts
+++ b/src/resources/markdown-worker.ts
@@ -1,7 +1,8 @@
-import { expose } from "comlink";
import type { MarkedOptions } from "marked";
-import { marked } from "marked";
import type { IWhiteList } from "xss";
+
+import { expose } from "comlink";
+import { marked } from "marked";
import { filterXSS, getDefaultWhiteList } from "xss";
let whiteListNormal: IWhiteList | undefined;
diff --git a/src/resources/particles.ts b/src/resources/particles.ts
index 1734c99219..0ec84af9ab 100644
--- a/src/resources/particles.ts
+++ b/src/resources/particles.ts
@@ -1,5 +1,6 @@
import { tsParticles } from "@tsparticles/engine";
import { loadLinksPreset } from "@tsparticles/preset-links";
+
import { DEFAULT_PRIMARY_COLOR } from "./styles-data";
loadLinksPreset(tsParticles).then(() => {
diff --git a/src/resources/polyfills/intl-polyfill.ts b/src/resources/polyfills/intl-polyfill.ts
index 97026fdbaf..4cdbc4e8e5 100644
--- a/src/resources/polyfills/intl-polyfill.ts
+++ b/src/resources/polyfills/intl-polyfill.ts
@@ -1,12 +1,12 @@
import { shouldPolyfill as shouldPolyfillDateTimeFormat } from "@formatjs/intl-datetimeformat/should-polyfill";
import { shouldPolyfill as shouldPolyfillDisplayNames } from "@formatjs/intl-displaynames/should-polyfill";
+import { shouldPolyfill as shouldPolyfillDurationFormat } from "@formatjs/intl-durationformat/should-polyfill";
import { shouldPolyfill as shouldPolyfillGetCanonicalLocales } from "@formatjs/intl-getcanonicallocales/should-polyfill";
import { shouldPolyfill as shouldPolyfillListFormat } from "@formatjs/intl-listformat/should-polyfill";
import { shouldPolyfill as shouldPolyfillLocale } from "@formatjs/intl-locale/should-polyfill";
import { shouldPolyfill as shouldPolyfillNumberFormat } from "@formatjs/intl-numberformat/should-polyfill";
import { shouldPolyfill as shouldPolyfillPluralRules } from "@formatjs/intl-pluralrules/should-polyfill";
import { shouldPolyfill as shouldPolyfillRelativeTimeFormat } from "@formatjs/intl-relativetimeformat/should-polyfill";
-import { shouldPolyfill as shouldPolyfillDurationFormat } from "@formatjs/intl-durationformat/should-polyfill";
import { getLocalLanguage } from "../../util/common-translation";
import {
diff --git a/src/resources/render-markdown.ts b/src/resources/render-markdown.ts
index 0513348afa..a203b5f499 100644
--- a/src/resources/render-markdown.ts
+++ b/src/resources/render-markdown.ts
@@ -1,6 +1,7 @@
-import type { Remote } from "comlink";
-import { wrap } from "comlink";
import type { Api } from "./markdown-worker";
+import type { Remote } from "comlink";
+
+import { wrap } from "comlink";
type RenderMarkdownType = Api["renderMarkdown"];
type RenderMarkdownParamTypes = Parameters;
diff --git a/src/resources/sortable.ts b/src/resources/sortable.ts
index 6db53f0117..f180d0abe2 100644
--- a/src/resources/sortable.ts
+++ b/src/resources/sortable.ts
@@ -1,4 +1,5 @@
import type Sortable from "sortablejs";
+
import SortableCore, {
AutoScroll,
OnSpill,
diff --git a/src/resources/translations-metadata.ts b/src/resources/translations-metadata.ts
index 9eecf235c8..5e498c2df6 100644
--- a/src/resources/translations-metadata.ts
+++ b/src/resources/translations-metadata.ts
@@ -1,5 +1,6 @@
-import * as translationMetadata_ from "../../build/translations/translationMetadata.json";
import type { TranslationMetadata } from "../types.js";
+import * as translationMetadata_ from "../../build/translations/translationMetadata.json";
+
export const translationMetadata = (translationMetadata_ as any)
.default as TranslationMetadata;
diff --git a/src/state-control/alarm_control_panel/ha-state-control-alarm_control_panel-modes.ts b/src/state-control/alarm_control_panel/ha-state-control-alarm_control_panel-modes.ts
index 26f58ca468..7cb0735adf 100644
--- a/src/state-control/alarm_control_panel/ha-state-control-alarm_control_panel-modes.ts
+++ b/src/state-control/alarm_control_panel/ha-state-control-alarm_control_panel-modes.ts
@@ -1,23 +1,26 @@
-import type { PropertyValues } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { styleMap } from "lit/directives/style-map";
-import memoizeOne from "memoize-one";
-import { stateColorCss } from "../../common/entity/state_color";
-import { supportsFeature } from "../../common/entity/supports-feature";
-import "../../components/ha-control-select";
import type { ControlSelectOption } from "../../components/ha-control-select";
-import "../../components/ha-control-slider";
import type {
AlarmControlPanelEntity,
AlarmMode,
} from "../../data/alarm_control_panel";
+import type { HomeAssistant } from "../../types";
+import type { PropertyValues } from "lit";
+
+import "../../components/ha-control-select";
+import "../../components/ha-control-slider";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { styleMap } from "lit/directives/style-map";
+import memoizeOne from "memoize-one";
+
+import { stateColorCss } from "../../common/entity/state_color";
+import { supportsFeature } from "../../common/entity/supports-feature";
import {
ALARM_MODES,
setProtectedAlarmControlPanelMode,
} from "../../data/alarm_control_panel";
import { UNAVAILABLE } from "../../data/entity";
-import type { HomeAssistant } from "../../types";
@customElement("ha-state-control-alarm_control_panel-modes")
export class HaStateControlAlarmControlPanelModes extends LitElement {
diff --git a/src/state-control/climate/ha-state-control-climate-humidity.ts b/src/state-control/climate/ha-state-control-climate-humidity.ts
index a6bfba7daa..02e55da0c1 100644
--- a/src/state-control/climate/ha-state-control-climate-humidity.ts
+++ b/src/state-control/climate/ha-state-control-climate-humidity.ts
@@ -1,22 +1,25 @@
-import { mdiMinus, mdiPlus, mdiWaterPercent } from "@mdi/js";
+import type { ClimateEntity } from "../../data/climate";
+import type { HomeAssistant } from "../../types";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../components/ha-big-number";
+import "../../components/ha-control-circular-slider";
+import "../../components/ha-outlined-icon-button";
+import "../../components/ha-svg-icon";
+
+import { mdiMinus, mdiPlus, mdiWaterPercent } from "@mdi/js";
import { LitElement, html } from "lit";
import { customElement, property, state } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
+
import { stateActive } from "../../common/entity/state_active";
import { domainStateColorProperties } from "../../common/entity/state_color";
import { supportsFeature } from "../../common/entity/supports-feature";
import { clamp } from "../../common/number/clamp";
import { debounce } from "../../common/util/debounce";
-import "../../components/ha-big-number";
-import "../../components/ha-control-circular-slider";
-import "../../components/ha-outlined-icon-button";
-import "../../components/ha-svg-icon";
-import type { ClimateEntity } from "../../data/climate";
import { ClimateEntityFeature } from "../../data/climate";
import { UNAVAILABLE } from "../../data/entity";
import { computeCssVariable } from "../../resources/css-variables";
-import type { HomeAssistant } from "../../types";
import {
createStateControlCircularSliderController,
stateControlCircularSliderStyle,
diff --git a/src/state-control/climate/ha-state-control-climate-temperature.ts b/src/state-control/climate/ha-state-control-climate-temperature.ts
index 6b2000222b..24f376d742 100644
--- a/src/state-control/climate/ha-state-control-climate-temperature.ts
+++ b/src/state-control/climate/ha-state-control-climate-temperature.ts
@@ -1,9 +1,19 @@
-import { mdiMinus, mdiPlus, mdiThermometer, mdiThermostat } from "@mdi/js";
+import type { ControlCircularSliderMode } from "../../components/ha-control-circular-slider";
+import type { ClimateEntity, HvacMode } from "../../data/climate";
+import type { HomeAssistant } from "../../types";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../components/ha-big-number";
+import "../../components/ha-control-circular-slider";
+import "../../components/ha-outlined-icon-button";
+import "../../components/ha-svg-icon";
+
+import { mdiMinus, mdiPlus, mdiThermometer, mdiThermostat } from "@mdi/js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { styleMap } from "lit/directives/style-map";
+
import { UNIT_F } from "../../common/const";
import { stateActive } from "../../common/entity/state_active";
import { stateColorCss } from "../../common/entity/state_color";
@@ -12,18 +22,11 @@ import { clamp } from "../../common/number/clamp";
import { formatNumber } from "../../common/number/format_number";
import { blankBeforeUnit } from "../../common/translations/blank_before_unit";
import { debounce } from "../../common/util/debounce";
-import "../../components/ha-big-number";
-import "../../components/ha-control-circular-slider";
-import type { ControlCircularSliderMode } from "../../components/ha-control-circular-slider";
-import "../../components/ha-outlined-icon-button";
-import "../../components/ha-svg-icon";
-import type { ClimateEntity, HvacMode } from "../../data/climate";
import {
CLIMATE_HVAC_ACTION_TO_MODE,
ClimateEntityFeature,
} from "../../data/climate";
import { UNAVAILABLE } from "../../data/entity";
-import type { HomeAssistant } from "../../types";
import {
createStateControlCircularSliderController,
stateControlCircularSliderStyle,
diff --git a/src/state-control/cover/ha-state-control-cover-buttons.ts b/src/state-control/cover/ha-state-control-cover-buttons.ts
index da0f1efffc..1c86170ad7 100644
--- a/src/state-control/cover/ha-state-control-cover-buttons.ts
+++ b/src/state-control/cover/ha-state-control-cover-buttons.ts
@@ -1,19 +1,23 @@
-import { mdiArrowBottomLeft, mdiArrowTopRight, mdiStop } from "@mdi/js";
+import type { CoverEntity } from "../../data/cover";
+import type { HomeAssistant } from "../../types";
import type { TemplateResult } from "lit";
+
+import "../../components/ha-control-button";
+import "../../components/ha-control-button-group";
+import "../../components/ha-control-slider";
+import "../../components/ha-svg-icon";
+
+import { mdiArrowBottomLeft, mdiArrowTopRight, mdiStop } from "@mdi/js";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import { repeat } from "lit/directives/repeat";
import memoizeOne from "memoize-one";
+
import {
computeCloseIcon,
computeOpenIcon,
} from "../../common/entity/cover_icon";
import { supportsFeature } from "../../common/entity/supports-feature";
-import "../../components/ha-control-button";
-import "../../components/ha-control-button-group";
-import "../../components/ha-control-slider";
-import "../../components/ha-svg-icon";
-import type { CoverEntity } from "../../data/cover";
import {
CoverEntityFeature,
canClose,
@@ -23,7 +27,6 @@ import {
canStop,
canStopTilt,
} from "../../data/cover";
-import type { HomeAssistant } from "../../types";
type CoverButton =
| "open"
diff --git a/src/state-control/cover/ha-state-control-cover-position.ts b/src/state-control/cover/ha-state-control-cover-position.ts
index 5608ed92b5..8c15444bdf 100644
--- a/src/state-control/cover/ha-state-control-cover-position.ts
+++ b/src/state-control/cover/ha-state-control-cover-position.ts
@@ -1,14 +1,17 @@
+import type { CoverEntity } from "../../data/cover";
+import type { HomeAssistant } from "../../types";
import type { TemplateResult } from "lit";
+
+import "../../components/ha-control-slider";
+
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
+
import { computeAttributeNameDisplay } from "../../common/entity/compute_attribute_display";
import { stateColorCss } from "../../common/entity/state_color";
-import "../../components/ha-control-slider";
-import type { CoverEntity } from "../../data/cover";
import { UNAVAILABLE } from "../../data/entity";
import { DOMAIN_ATTRIBUTES_UNITS } from "../../data/entity_attributes";
-import type { HomeAssistant } from "../../types";
@customElement("ha-state-control-cover-position")
export class HaStateControlCoverPosition extends LitElement {
diff --git a/src/state-control/cover/ha-state-control-cover-tilt-position.ts b/src/state-control/cover/ha-state-control-cover-tilt-position.ts
index 77b6f573af..7ab75a8228 100644
--- a/src/state-control/cover/ha-state-control-cover-tilt-position.ts
+++ b/src/state-control/cover/ha-state-control-cover-tilt-position.ts
@@ -1,14 +1,17 @@
+import type { CoverEntity } from "../../data/cover";
+import type { HomeAssistant } from "../../types";
import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../../components/ha-control-slider";
+
import { css, html, LitElement, unsafeCSS } from "lit";
import { customElement, property, state } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
+
import { computeAttributeNameDisplay } from "../../common/entity/compute_attribute_display";
import { stateColorCss } from "../../common/entity/state_color";
-import "../../components/ha-control-slider";
-import type { CoverEntity } from "../../data/cover";
import { UNAVAILABLE } from "../../data/entity";
import { DOMAIN_ATTRIBUTES_UNITS } from "../../data/entity_attributes";
-import type { HomeAssistant } from "../../types";
export function generateTiltSliderTrackBackgroundGradient() {
const count = 24;
diff --git a/src/state-control/cover/ha-state-control-cover-toggle.ts b/src/state-control/cover/ha-state-control-cover-toggle.ts
index 071c15c758..a99e2b5d8c 100644
--- a/src/state-control/cover/ha-state-control-cover-toggle.ts
+++ b/src/state-control/cover/ha-state-control-cover-toggle.ts
@@ -1,16 +1,19 @@
+import type { HomeAssistant } from "../../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { TemplateResult } from "lit";
+
+import "../../components/ha-control-button";
+import "../../components/ha-control-switch";
+import "../../components/ha-state-icon";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { styleMap } from "lit/directives/style-map";
+
import { stateColorCss } from "../../common/entity/state_color";
-import "../../components/ha-control-button";
-import "../../components/ha-control-switch";
-import "../../components/ha-state-icon";
import { UNAVAILABLE, UNKNOWN } from "../../data/entity";
import { forwardHaptic } from "../../data/haptics";
-import type { HomeAssistant } from "../../types";
@customElement("ha-state-control-cover-toggle")
export class HaStateControlCoverToggle extends LitElement {
diff --git a/src/state-control/fan/ha-state-control-fan-speed.ts b/src/state-control/fan/ha-state-control-fan-speed.ts
index 8ed0d15baf..8bb39473fd 100644
--- a/src/state-control/fan/ha-state-control-fan-speed.ts
+++ b/src/state-control/fan/ha-state-control-fan-speed.ts
@@ -1,15 +1,19 @@
+import type { ControlSelectOption } from "../../components/ha-control-select";
+import type { FanEntity, FanSpeed } from "../../data/fan";
+import type { HomeAssistant } from "../../types";
+
+import "../../components/ha-control-select";
+import "../../components/ha-control-slider";
+
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
+
import { computeAttributeNameDisplay } from "../../common/entity/compute_attribute_display";
import { stateActive } from "../../common/entity/state_active";
import { stateColorCss } from "../../common/entity/state_color";
-import "../../components/ha-control-select";
-import type { ControlSelectOption } from "../../components/ha-control-select";
-import "../../components/ha-control-slider";
import { UNAVAILABLE } from "../../data/entity";
import { DOMAIN_ATTRIBUTES_UNITS } from "../../data/entity_attributes";
-import type { FanEntity, FanSpeed } from "../../data/fan";
import {
computeFanSpeedCount,
computeFanSpeedIcon,
@@ -18,7 +22,6 @@ import {
fanPercentageToSpeed,
fanSpeedToPercentage,
} from "../../data/fan";
-import type { HomeAssistant } from "../../types";
@customElement("ha-state-control-fan-speed")
export class HaStateControlFanSpeed extends LitElement {
diff --git a/src/state-control/ha-state-control-toggle.ts b/src/state-control/ha-state-control-toggle.ts
index 0fcf4eef38..10c54750d4 100644
--- a/src/state-control/ha-state-control-toggle.ts
+++ b/src/state-control/ha-state-control-toggle.ts
@@ -1,18 +1,21 @@
-import { mdiFlash, mdiFlashOff } from "@mdi/js";
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { TemplateResult } from "lit";
+
+import "../components/ha-control-button";
+import "../components/ha-control-switch";
+
+import { mdiFlash, mdiFlashOff } from "@mdi/js";
import { LitElement, css, html } from "lit";
import { customElement, property } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { styleMap } from "lit/directives/style-map";
+
import { computeDomain } from "../common/entity/compute_domain";
import { stateActive } from "../common/entity/state_active";
import { stateColorCss } from "../common/entity/state_color";
-import "../components/ha-control-button";
-import "../components/ha-control-switch";
import { UNAVAILABLE, UNKNOWN } from "../data/entity";
import { forwardHaptic } from "../data/haptics";
-import type { HomeAssistant } from "../types";
@customElement("ha-state-control-toggle")
export class HaStateControlToggle extends LitElement {
diff --git a/src/state-control/humidifier/ha-state-control-humidifier-humidity.ts b/src/state-control/humidifier/ha-state-control-humidifier-humidity.ts
index 3072710d2c..26b0e571a7 100644
--- a/src/state-control/humidifier/ha-state-control-humidifier-humidity.ts
+++ b/src/state-control/humidifier/ha-state-control-humidifier-humidity.ts
@@ -1,24 +1,27 @@
-import { mdiMinus, mdiPlus, mdiThermostat, mdiWaterPercent } from "@mdi/js";
+import type { HumidifierEntity } from "../../data/humidifier";
+import type { HomeAssistant } from "../../types";
import type { CSSResultGroup, PropertyValues } from "lit";
-import { LitElement, html, nothing } from "lit";
-import { customElement, property, state } from "lit/decorators";
-import { styleMap } from "lit/directives/style-map";
-import { stateActive } from "../../common/entity/state_active";
-import { stateColorCss } from "../../common/entity/state_color";
-import { clamp } from "../../common/number/clamp";
-import { debounce } from "../../common/util/debounce";
+
import "../../components/ha-big-number";
import "../../components/ha-control-circular-slider";
import "../../components/ha-outlined-icon-button";
import "../../components/ha-svg-icon";
+
+import { mdiMinus, mdiPlus, mdiThermostat, mdiWaterPercent } from "@mdi/js";
+import { LitElement, html, nothing } from "lit";
+import { customElement, property, state } from "lit/decorators";
+import { styleMap } from "lit/directives/style-map";
+
+import { stateActive } from "../../common/entity/state_active";
+import { stateColorCss } from "../../common/entity/state_color";
+import { clamp } from "../../common/number/clamp";
+import { debounce } from "../../common/util/debounce";
import { UNAVAILABLE } from "../../data/entity";
import { DOMAIN_ATTRIBUTES_UNITS } from "../../data/entity_attributes";
-import type { HumidifierEntity } from "../../data/humidifier";
import {
HUMIDIFIER_ACTION_MODE,
HumidifierEntityDeviceClass,
} from "../../data/humidifier";
-import type { HomeAssistant } from "../../types";
import {
createStateControlCircularSliderController,
stateControlCircularSliderStyle,
diff --git a/src/state-control/light/ha-state-control-light-brightness.ts b/src/state-control/light/ha-state-control-light-brightness.ts
index ce649782ea..48cc3af8e8 100644
--- a/src/state-control/light/ha-state-control-light-brightness.ts
+++ b/src/state-control/light/ha-state-control-light-brightness.ts
@@ -1,14 +1,17 @@
+import type { LightEntity } from "../../data/light";
+import type { HomeAssistant } from "../../types";
import type { TemplateResult } from "lit";
+
+import "../../components/ha-control-slider";
+
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
+
import { hsv2rgb, rgb2hex, rgb2hsv } from "../../common/color/convert-color";
import { stateActive } from "../../common/entity/state_active";
import { stateColorCss } from "../../common/entity/state_color";
-import "../../components/ha-control-slider";
import { UNAVAILABLE } from "../../data/entity";
-import type { LightEntity } from "../../data/light";
-import type { HomeAssistant } from "../../types";
@customElement("ha-state-control-light-brightness")
export class HaStateControlLightBrightness extends LitElement {
diff --git a/src/state-control/lock/ha-state-control-lock-toggle.ts b/src/state-control/lock/ha-state-control-lock-toggle.ts
index c7cb21216b..b766db2c21 100644
--- a/src/state-control/lock/ha-state-control-lock-toggle.ts
+++ b/src/state-control/lock/ha-state-control-lock-toggle.ts
@@ -1,18 +1,21 @@
+import type { LockEntity } from "../../data/lock";
+import type { HomeAssistant } from "../../types";
import type { PropertyValues, TemplateResult } from "lit";
+
+import "../../components/ha-control-button";
+import "../../components/ha-control-switch";
+import "../../components/ha-state-icon";
+
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { styleMap } from "lit/directives/style-map";
+
+import { fireEvent } from "../../common/dom/fire_event";
import { stateColorCss } from "../../common/entity/state_color";
-import "../../components/ha-control-button";
-import "../../components/ha-control-switch";
-import "../../components/ha-state-icon";
import { UNAVAILABLE, UNKNOWN } from "../../data/entity";
import { forwardHaptic } from "../../data/haptics";
-import type { LockEntity } from "../../data/lock";
import { callProtectedLockService } from "../../data/lock";
-import type { HomeAssistant } from "../../types";
-import { fireEvent } from "../../common/dom/fire_event";
declare global {
interface HASSDomEvents {
diff --git a/src/state-control/state-control-circular-slider-style.ts b/src/state-control/state-control-circular-slider-style.ts
index c0f51bb8b6..29326ad291 100644
--- a/src/state-control/state-control-circular-slider-style.ts
+++ b/src/state-control/state-control-circular-slider-style.ts
@@ -1,5 +1,6 @@
-import { ResizeController } from "@lit-labs/observers/resize-controller";
import type { ReactiveControllerHost } from "lit";
+
+import { ResizeController } from "@lit-labs/observers/resize-controller";
import { css } from "lit";
export const stateControlCircularSliderStyle = css`
diff --git a/src/state-control/valve/ha-state-control-valve-buttons.ts b/src/state-control/valve/ha-state-control-valve-buttons.ts
index 897cc64ba3..214f37c7b5 100644
--- a/src/state-control/valve/ha-state-control-valve-buttons.ts
+++ b/src/state-control/valve/ha-state-control-valve-buttons.ts
@@ -1,22 +1,25 @@
-import { mdiStop, mdiValveClosed, mdiValveOpen } from "@mdi/js";
+import type { ValveEntity } from "../../data/valve";
+import type { HomeAssistant } from "../../types";
import type { TemplateResult } from "lit";
-import { LitElement, css, html, nothing } from "lit";
-import { customElement, property } from "lit/decorators";
-import { repeat } from "lit/directives/repeat";
-import memoizeOne from "memoize-one";
-import { supportsFeature } from "../../common/entity/supports-feature";
+
import "../../components/ha-control-button";
import "../../components/ha-control-button-group";
import "../../components/ha-control-slider";
import "../../components/ha-svg-icon";
-import type { ValveEntity } from "../../data/valve";
+
+import { mdiStop, mdiValveClosed, mdiValveOpen } from "@mdi/js";
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+import { repeat } from "lit/directives/repeat";
+import memoizeOne from "memoize-one";
+
+import { supportsFeature } from "../../common/entity/supports-feature";
import {
ValveEntityFeature,
canClose,
canOpen,
canStop,
} from "../../data/valve";
-import type { HomeAssistant } from "../../types";
type ValveButton = "open" | "close" | "stop" | "none";
diff --git a/src/state-control/valve/ha-state-control-valve-position.ts b/src/state-control/valve/ha-state-control-valve-position.ts
index 45808adc61..16ac1228b5 100644
--- a/src/state-control/valve/ha-state-control-valve-position.ts
+++ b/src/state-control/valve/ha-state-control-valve-position.ts
@@ -1,14 +1,17 @@
+import type { CoverEntity } from "../../data/cover";
+import type { HomeAssistant } from "../../types";
import type { TemplateResult } from "lit";
+
+import "../../components/ha-control-slider";
+
import { css, html, LitElement } from "lit";
import { customElement, property, state } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
+
import { computeAttributeNameDisplay } from "../../common/entity/compute_attribute_display";
import { stateColorCss } from "../../common/entity/state_color";
-import "../../components/ha-control-slider";
-import type { CoverEntity } from "../../data/cover";
import { UNAVAILABLE } from "../../data/entity";
import { DOMAIN_ATTRIBUTES_UNITS } from "../../data/entity_attributes";
-import type { HomeAssistant } from "../../types";
@customElement("ha-state-control-valve-position")
export class HaStateControlValvePosition extends LitElement {
diff --git a/src/state-control/valve/ha-state-control-valve-toggle.ts b/src/state-control/valve/ha-state-control-valve-toggle.ts
index e476b3bd58..d92bdd1ec4 100644
--- a/src/state-control/valve/ha-state-control-valve-toggle.ts
+++ b/src/state-control/valve/ha-state-control-valve-toggle.ts
@@ -1,16 +1,19 @@
+import type { HomeAssistant } from "../../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { TemplateResult } from "lit";
+
+import "../../components/ha-control-button";
+import "../../components/ha-control-switch";
+import "../../components/ha-state-icon";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { styleMap } from "lit/directives/style-map";
+
import { stateColorCss } from "../../common/entity/state_color";
-import "../../components/ha-control-button";
-import "../../components/ha-control-switch";
-import "../../components/ha-state-icon";
import { UNAVAILABLE, UNKNOWN } from "../../data/entity";
import { forwardHaptic } from "../../data/haptics";
-import type { HomeAssistant } from "../../types";
@customElement("ha-state-control-valve-toggle")
export class HaStateControlValveToggle extends LitElement {
diff --git a/src/state-control/water_heater/ha-state-control-water_heater-temperature.ts b/src/state-control/water_heater/ha-state-control-water_heater-temperature.ts
index 0bad74a565..c6940fc8eb 100644
--- a/src/state-control/water_heater/ha-state-control-water_heater-temperature.ts
+++ b/src/state-control/water_heater/ha-state-control-water_heater-temperature.ts
@@ -1,22 +1,25 @@
-import { mdiMinus, mdiPlus } from "@mdi/js";
+import type { WaterHeaterEntity } from "../../data/water_heater";
+import type { HomeAssistant } from "../../types";
import type { CSSResultGroup, PropertyValues } from "lit";
+
+import "../../components/ha-big-number";
+import "../../components/ha-control-circular-slider";
+import "../../components/ha-outlined-icon-button";
+import "../../components/ha-svg-icon";
+
+import { mdiMinus, mdiPlus } from "@mdi/js";
import { LitElement, html } from "lit";
import { customElement, property, state } from "lit/decorators";
import { styleMap } from "lit/directives/style-map";
+
import { UNIT_F } from "../../common/const";
import { stateActive } from "../../common/entity/state_active";
import { stateColorCss } from "../../common/entity/state_color";
import { supportsFeature } from "../../common/entity/supports-feature";
import { clamp } from "../../common/number/clamp";
import { debounce } from "../../common/util/debounce";
-import "../../components/ha-big-number";
-import "../../components/ha-control-circular-slider";
-import "../../components/ha-outlined-icon-button";
-import "../../components/ha-svg-icon";
import { UNAVAILABLE } from "../../data/entity";
-import type { WaterHeaterEntity } from "../../data/water_heater";
import { WaterHeaterEntityFeature } from "../../data/water_heater";
-import type { HomeAssistant } from "../../types";
import {
createStateControlCircularSliderController,
stateControlCircularSliderStyle,
diff --git a/src/state-display/ha-timer-remaining-time.ts b/src/state-display/ha-timer-remaining-time.ts
index 549152276c..1c01ff9a31 100644
--- a/src/state-display/ha-timer-remaining-time.ts
+++ b/src/state-display/ha-timer-remaining-time.ts
@@ -1,9 +1,11 @@
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { PropertyValues } from "lit";
+
import { ReactiveElement } from "lit";
import { customElement, property, state } from "lit/decorators";
+
import { computeDisplayTimer, timerTimeRemaining } from "../data/timer";
-import type { HomeAssistant } from "../types";
@customElement("ha-timer-remaining-time")
class HaTimerRemainingTime extends ReactiveElement {
diff --git a/src/state-display/state-display.ts b/src/state-display/state-display.ts
index ba018f0dfc..3e573e95ba 100644
--- a/src/state-display/state-display.ts
+++ b/src/state-display/state-display.ts
@@ -1,18 +1,21 @@
+import type { UpdateEntity } from "../data/update";
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { TemplateResult } from "lit";
+
+import "../components/ha-relative-time";
+import "../panels/lovelace/components/hui-timestamp-display";
+
import { html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
import { join } from "lit/directives/join";
+
import { ensureArray } from "../common/array/ensure-array";
import { computeStateDomain } from "../common/entity/compute_state_domain";
import { computeStateName } from "../common/entity/compute_state_name";
-import "../components/ha-relative-time";
import { isUnavailableState } from "../data/entity";
import { SENSOR_DEVICE_CLASS_TIMESTAMP } from "../data/sensor";
-import type { UpdateEntity } from "../data/update";
import { computeUpdateStateDisplay } from "../data/update";
-import "../panels/lovelace/components/hui-timestamp-display";
-import type { HomeAssistant } from "../types";
const TIMESTAMP_STATE_DOMAINS = ["button", "input_button", "scene"];
diff --git a/src/state-summary/state-card-alert.ts b/src/state-summary/state-card-alert.ts
index fa8af96f6e..377b17bf55 100755
--- a/src/state-summary/state-card-alert.ts
+++ b/src/state-summary/state-card-alert.ts
@@ -1,12 +1,15 @@
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { stateActive } from "../common/entity/state_active";
+
import "../components/entity/ha-entity-toggle";
import "../components/entity/state-info";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { stateActive } from "../common/entity/state_active";
import { haStyle } from "../resources/styles";
-import type { HomeAssistant } from "../types";
@customElement("state-card-alert")
class StateCardAlert extends LitElement {
diff --git a/src/state-summary/state-card-button.ts b/src/state-summary/state-card-button.ts
index eb9203b7f8..9f7e1234fe 100644
--- a/src/state-summary/state-card-button.ts
+++ b/src/state-summary/state-card-button.ts
@@ -1,13 +1,16 @@
-import "@material/mwc-button";
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
+
import "../components/entity/ha-entity-toggle";
import "../components/entity/state-info";
+import "@material/mwc-button";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { UNAVAILABLE } from "../data/entity";
import { haStyle } from "../resources/styles";
-import type { HomeAssistant } from "../types";
@customElement("state-card-button")
class StateCardButton extends LitElement {
diff --git a/src/state-summary/state-card-climate.ts b/src/state-summary/state-card-climate.ts
index 8c32836566..7250ffe6a6 100644
--- a/src/state-summary/state-card-climate.ts
+++ b/src/state-summary/state-card-climate.ts
@@ -1,10 +1,13 @@
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
+
import "../components/entity/state-info";
import "../components/ha-climate-state";
+
+import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
-import type { HomeAssistant } from "../types";
+
import { haStyle } from "../resources/styles";
@customElement("state-card-climate")
diff --git a/src/state-summary/state-card-configurator.ts b/src/state-summary/state-card-configurator.ts
index d5dacddefc..5d1e94539d 100644
--- a/src/state-summary/state-card-configurator.ts
+++ b/src/state-summary/state-card-configurator.ts
@@ -1,10 +1,13 @@
-import "@material/mwc-button";
-import type { HassEntity } from "home-assistant-js-websocket";
-import "../components/entity/state-info";
-import { customElement, property } from "lit/decorators";
-import type { CSSResultGroup, TemplateResult } from "lit";
-import { LitElement, css, html, nothing } from "lit";
import type { HomeAssistant } from "../types";
+import type { HassEntity } from "home-assistant-js-websocket";
+import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../components/entity/state-info";
+import "@material/mwc-button";
+
+import { LitElement, css, html, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { haStyle } from "../resources/styles";
@customElement("state-card-configurator")
diff --git a/src/state-summary/state-card-content.ts b/src/state-summary/state-card-content.ts
index b2c87e8749..c5f342c325 100644
--- a/src/state-summary/state-card-content.ts
+++ b/src/state-summary/state-card-content.ts
@@ -1,9 +1,6 @@
-import { LitElement, nothing } from "lit";
-import type { HassEntity } from "home-assistant-js-websocket";
-import { customElement, property } from "lit/decorators";
import type { HomeAssistant } from "../types";
-import { dynamicElement } from "../common/dom/dynamic-element-directive";
-import { stateCardType } from "../common/entity/state_card_type";
+import type { HassEntity } from "home-assistant-js-websocket";
+
import "./state-card-alert";
import "./state-card-button";
import "./state-card-climate";
@@ -30,6 +27,12 @@ import "./state-card-update";
import "./state-card-vacuum";
import "./state-card-water_heater";
+import { LitElement, nothing } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { dynamicElement } from "../common/dom/dynamic-element-directive";
+import { stateCardType } from "../common/entity/state_card_type";
+
@customElement("state-card-content")
class StateCardContent extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
diff --git a/src/state-summary/state-card-cover.ts b/src/state-summary/state-card-cover.ts
index d83737df0c..6b22d0a430 100644
--- a/src/state-summary/state-card-cover.ts
+++ b/src/state-summary/state-card-cover.ts
@@ -1,13 +1,16 @@
+import type { CoverEntity } from "../data/cover";
+import type { HomeAssistant } from "../types";
import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
+
import "../components/entity/state-info";
import "../components/ha-cover-controls";
import "../components/ha-cover-tilt-controls";
-import type { CoverEntity } from "../data/cover";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { isTiltOnly } from "../data/cover";
import { haStyle } from "../resources/styles";
-import type { HomeAssistant } from "../types";
@customElement("state-card-cover")
class StateCardCover extends LitElement {
diff --git a/src/state-summary/state-card-display.ts b/src/state-summary/state-card-display.ts
index 3928af0742..2dc63866e1 100755
--- a/src/state-summary/state-card-display.ts
+++ b/src/state-summary/state-card-display.ts
@@ -1,15 +1,18 @@
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../components/entity/state-info";
+import "../panels/lovelace/components/hui-timestamp-display";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
+
import { computeDomain } from "../common/entity/compute_domain";
-import "../components/entity/state-info";
import { isUnavailableState } from "../data/entity";
import { SENSOR_DEVICE_CLASS_TIMESTAMP } from "../data/sensor";
-import "../panels/lovelace/components/hui-timestamp-display";
import { haStyle } from "../resources/styles";
-import type { HomeAssistant } from "../types";
@customElement("state-card-display")
class StateCardDisplay extends LitElement {
diff --git a/src/state-summary/state-card-event.ts b/src/state-summary/state-card-event.ts
index 970bb8fe4c..d5a7c1ba1d 100644
--- a/src/state-summary/state-card-event.ts
+++ b/src/state-summary/state-card-event.ts
@@ -1,11 +1,14 @@
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
+
import "../components/entity/ha-entity-toggle";
import "../components/entity/state-info";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { haStyle } from "../resources/styles";
-import type { HomeAssistant } from "../types";
@customElement("state-card-event")
class StateCardEvent extends LitElement {
diff --git a/src/state-summary/state-card-humidifier.ts b/src/state-summary/state-card-humidifier.ts
index e691ce7956..7fd2e7417e 100644
--- a/src/state-summary/state-card-humidifier.ts
+++ b/src/state-summary/state-card-humidifier.ts
@@ -1,11 +1,13 @@
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
import "../components/entity/state-info";
import "../components/ha-humidifier-state";
-import type { HomeAssistant } from "../types";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { haStyle } from "../resources/styles";
@customElement("state-card-humidifier")
diff --git a/src/state-summary/state-card-input_button.ts b/src/state-summary/state-card-input_button.ts
index e44c9bf576..95f5457e6b 100644
--- a/src/state-summary/state-card-input_button.ts
+++ b/src/state-summary/state-card-input_button.ts
@@ -1,13 +1,16 @@
-import "@material/mwc-button";
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
+
import "../components/entity/ha-entity-toggle";
import "../components/entity/state-info";
+import "@material/mwc-button";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { UNAVAILABLE } from "../data/entity";
import { haStyle } from "../resources/styles";
-import type { HomeAssistant } from "../types";
@customElement("state-card-input_button")
class StateCardInputButton extends LitElement {
diff --git a/src/state-summary/state-card-input_number.ts b/src/state-summary/state-card-input_number.ts
index 39497ead04..3b6cec730e 100644
--- a/src/state-summary/state-card-input_number.ts
+++ b/src/state-summary/state-card-input_number.ts
@@ -1,14 +1,17 @@
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { debounce } from "../common/util/debounce";
+
import "../components/entity/state-info";
import "../components/ha-slider";
import "../components/ha-textfield";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { debounce } from "../common/util/debounce";
import { isUnavailableState } from "../data/entity";
import { setValue } from "../data/input_text";
-import type { HomeAssistant } from "../types";
@customElement("state-card-input_number")
class StateCardInputNumber extends LitElement {
diff --git a/src/state-summary/state-card-input_select.ts b/src/state-summary/state-card-input_select.ts
index 3ee4c92c7f..52d7a444f5 100644
--- a/src/state-summary/state-card-input_select.ts
+++ b/src/state-summary/state-card-input_select.ts
@@ -1,15 +1,18 @@
-import "@material/mwc-list/mwc-list-item";
-import "../components/ha-select";
+import type { InputSelectEntity } from "../data/input_select";
+import type { HomeAssistant } from "../types";
import type { TemplateResult } from "lit";
+
+import "../components/entity/state-badge";
+import "../components/ha-select";
+import "@material/mwc-list/mwc-list-item";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
+
import { stopPropagation } from "../common/dom/stop_propagation";
import { computeStateName } from "../common/entity/compute_state_name";
-import "../components/entity/state-badge";
import { UNAVAILABLE } from "../data/entity";
-import type { InputSelectEntity } from "../data/input_select";
import { setInputSelectOption } from "../data/input_select";
-import type { HomeAssistant } from "../types";
@customElement("state-card-input_select")
class StateCardInputSelect extends LitElement {
diff --git a/src/state-summary/state-card-input_text.ts b/src/state-summary/state-card-input_text.ts
index 29f4bf98be..e4e304cd07 100644
--- a/src/state-summary/state-card-input_text.ts
+++ b/src/state-summary/state-card-input_text.ts
@@ -1,12 +1,15 @@
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property, state } from "lit/decorators";
+
import "../components/entity/state-info";
import "../components/ha-textfield";
-import type { HomeAssistant } from "../types";
-import { haStyle } from "../resources/styles";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property, state } from "lit/decorators";
+
import { stopPropagation } from "../common/dom/stop_propagation";
+import { haStyle } from "../resources/styles";
@customElement("state-card-input_text")
class StateCardInputText extends LitElement {
diff --git a/src/state-summary/state-card-lawn_mower.ts b/src/state-summary/state-card-lawn_mower.ts
index 1a2c53d11f..ae0ca755e7 100644
--- a/src/state-summary/state-card-lawn_mower.ts
+++ b/src/state-summary/state-card-lawn_mower.ts
@@ -1,11 +1,14 @@
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup } from "lit";
-import { LitElement, html } from "lit";
-import { customElement, property } from "lit/decorators";
+
import "../components/entity/state-info";
import "../components/ha-lawn_mower-action-button";
+
+import { LitElement, html } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { haStyle } from "../resources/styles";
-import type { HomeAssistant } from "../types";
@customElement("state-card-lawn_mower")
class StateCardLawnMower extends LitElement {
diff --git a/src/state-summary/state-card-lock.ts b/src/state-summary/state-card-lock.ts
index 3e73be74e5..14f2055928 100644
--- a/src/state-summary/state-card-lock.ts
+++ b/src/state-summary/state-card-lock.ts
@@ -1,12 +1,15 @@
-import "@material/mwc-button";
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../components/entity/state-info";
+import "@material/mwc-button";
+
import { css, html, LitElement, nothing } from "lit";
import { customElement, property } from "lit/decorators";
+
import { supportsFeature } from "../common/entity/supports-feature";
-import "../components/entity/state-info";
import { callProtectedLockService, LockEntityFeature } from "../data/lock";
-import type { HomeAssistant } from "../types";
import { haStyle } from "../resources/styles";
@customElement("state-card-lock")
diff --git a/src/state-summary/state-card-media_player.ts b/src/state-summary/state-card-media_player.ts
index b5101cf28a..7adaea704b 100644
--- a/src/state-summary/state-card-media_player.ts
+++ b/src/state-summary/state-card-media_player.ts
@@ -1,11 +1,14 @@
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../components/entity/state-info";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
-import "../components/entity/state-info";
-import HassMediaPlayerEntity from "../util/hass-media-player-model";
-import type { HomeAssistant } from "../types";
+
import { haStyle } from "../resources/styles";
+import HassMediaPlayerEntity from "../util/hass-media-player-model";
@customElement("state-card-media_player")
class StateCardMediaPlayer extends LitElement {
diff --git a/src/state-summary/state-card-number.ts b/src/state-summary/state-card-number.ts
index c722127846..e0c85c8f12 100644
--- a/src/state-summary/state-card-number.ts
+++ b/src/state-summary/state-card-number.ts
@@ -1,14 +1,17 @@
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
+
import "../components/entity/state-info";
import "../components/ha-slider";
import "../components/ha-textfield";
-import type { HomeAssistant } from "../types";
-import { haStyle } from "../resources/styles";
-import { isUnavailableState } from "../data/entity";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { debounce } from "../common/util/debounce";
+import { isUnavailableState } from "../data/entity";
+import { haStyle } from "../resources/styles";
@customElement("state-card-number")
class StateCardNumber extends LitElement {
diff --git a/src/state-summary/state-card-scene.ts b/src/state-summary/state-card-scene.ts
index cf42b3e284..98f2380ddc 100644
--- a/src/state-summary/state-card-scene.ts
+++ b/src/state-summary/state-card-scene.ts
@@ -1,11 +1,14 @@
-import "@material/mwc-button";
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup } from "lit";
+
+import "../components/entity/state-info";
+import "@material/mwc-button";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
-import "../components/entity/state-info";
+
import { activateScene } from "../data/scene";
-import type { HomeAssistant } from "../types";
import { haStyle } from "../resources/styles";
@customElement("state-card-scene")
diff --git a/src/state-summary/state-card-script.ts b/src/state-summary/state-card-script.ts
index ea07602420..6043679e19 100644
--- a/src/state-summary/state-card-script.ts
+++ b/src/state-summary/state-card-script.ts
@@ -1,16 +1,19 @@
-import "@material/mwc-button";
+import type { ScriptEntity } from "../data/script";
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
+
import "../components/entity/ha-entity-toggle";
import "../components/entity/state-info";
+import "@material/mwc-button";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { isUnavailableState } from "../data/entity";
-import type { ScriptEntity } from "../data/script";
import { canRun, hasScriptFields } from "../data/script";
-import { haStyle } from "../resources/styles";
-import type { HomeAssistant } from "../types";
import { showMoreInfoDialog } from "../dialogs/more-info/show-ha-more-info-dialog";
+import { haStyle } from "../resources/styles";
@customElement("state-card-script")
class StateCardScript extends LitElement {
diff --git a/src/state-summary/state-card-select.ts b/src/state-summary/state-card-select.ts
index 642310e032..f734044a14 100644
--- a/src/state-summary/state-card-select.ts
+++ b/src/state-summary/state-card-select.ts
@@ -1,15 +1,18 @@
-import "@material/mwc-list/mwc-list-item";
+import type { SelectEntity } from "../data/select";
+import type { HomeAssistant } from "../types";
import type { TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
-import { stopPropagation } from "../common/dom/stop_propagation";
-import { computeStateName } from "../common/entity/compute_state_name";
+
import "../components/entity/state-badge";
import "../components/ha-select";
+import "@material/mwc-list/mwc-list-item";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
+import { stopPropagation } from "../common/dom/stop_propagation";
+import { computeStateName } from "../common/entity/compute_state_name";
import { UNAVAILABLE } from "../data/entity";
-import type { SelectEntity } from "../data/select";
import { setSelectOption } from "../data/select";
-import type { HomeAssistant } from "../types";
@customElement("state-card-select")
class StateCardSelect extends LitElement {
diff --git a/src/state-summary/state-card-text.ts b/src/state-summary/state-card-text.ts
index e7b45da80f..88c76e7fca 100644
--- a/src/state-summary/state-card-text.ts
+++ b/src/state-summary/state-card-text.ts
@@ -1,14 +1,17 @@
-import "../components/ha-textfield";
+import type { TextEntity } from "../data/text";
+import type { HomeAssistant } from "../types";
import type { TemplateResult } from "lit";
+
+import "../components/entity/state-badge";
+import "../components/ha-textfield";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
-import { computeStateName } from "../common/entity/compute_state_name";
+
import { stopPropagation } from "../common/dom/stop_propagation";
-import "../components/entity/state-badge";
+import { computeStateName } from "../common/entity/compute_state_name";
import { isUnavailableState, UNAVAILABLE } from "../data/entity";
-import type { TextEntity } from "../data/text";
import { setValue } from "../data/text";
-import type { HomeAssistant } from "../types";
@customElement("state-card-text")
class StateCardText extends LitElement {
diff --git a/src/state-summary/state-card-timer.ts b/src/state-summary/state-card-timer.ts
index f83fdeb33f..699a8d1b5d 100644
--- a/src/state-summary/state-card-timer.ts
+++ b/src/state-summary/state-card-timer.ts
@@ -1,11 +1,14 @@
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../components/entity/state-info";
+import "../state-display/ha-timer-remaining-time";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
-import "../components/entity/state-info";
+
import { haStyle } from "../resources/styles";
-import "../state-display/ha-timer-remaining-time";
-import type { HomeAssistant } from "../types";
@customElement("state-card-timer")
class StateCardTimer extends LitElement {
diff --git a/src/state-summary/state-card-toggle.ts b/src/state-summary/state-card-toggle.ts
index dbcd26777a..49616e5835 100644
--- a/src/state-summary/state-card-toggle.ts
+++ b/src/state-summary/state-card-toggle.ts
@@ -1,10 +1,13 @@
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
+
import "../components/entity/ha-entity-toggle";
import "../components/entity/state-info";
-import type { HomeAssistant } from "../types";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { haStyle } from "../resources/styles";
@customElement("state-card-toggle")
diff --git a/src/state-summary/state-card-update.ts b/src/state-summary/state-card-update.ts
index baa898d6bb..8e48963f93 100755
--- a/src/state-summary/state-card-update.ts
+++ b/src/state-summary/state-card-update.ts
@@ -1,11 +1,14 @@
+import type { UpdateEntity } from "../data/update";
+import type { HomeAssistant } from "../types";
import type { CSSResultGroup, TemplateResult } from "lit";
+
+import "../components/entity/state-info";
+
import { css, html, LitElement } from "lit";
import { customElement, property } from "lit/decorators";
-import "../components/entity/state-info";
-import type { UpdateEntity } from "../data/update";
+
import { computeUpdateStateDisplay } from "../data/update";
import { haStyle } from "../resources/styles";
-import type { HomeAssistant } from "../types";
@customElement("state-card-update")
export class StateCardUpdate extends LitElement {
diff --git a/src/state-summary/state-card-vacuum.ts b/src/state-summary/state-card-vacuum.ts
index 5a856000b3..a5c40f1e3b 100644
--- a/src/state-summary/state-card-vacuum.ts
+++ b/src/state-summary/state-card-vacuum.ts
@@ -1,10 +1,13 @@
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup, TemplateResult } from "lit";
-import { html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
+
import "../components/entity/state-info";
import "../components/ha-vacuum-state";
-import type { HomeAssistant } from "../types";
+
+import { html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { haStyle } from "../resources/styles";
@customElement("state-card-vacuum")
diff --git a/src/state-summary/state-card-water_heater.ts b/src/state-summary/state-card-water_heater.ts
index 2fe2204b6c..cccd11d845 100644
--- a/src/state-summary/state-card-water_heater.ts
+++ b/src/state-summary/state-card-water_heater.ts
@@ -1,11 +1,14 @@
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
import type { CSSResultGroup, TemplateResult } from "lit";
-import { css, html, LitElement } from "lit";
-import { customElement, property } from "lit/decorators";
+
import "../components/entity/state-info";
import "../components/ha-water_heater-state";
+
+import { css, html, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
+
import { haStyle } from "../resources/styles";
-import type { HomeAssistant } from "../types";
@customElement("state-card-water_heater")
class StateCardWaterHeater extends LitElement {
diff --git a/src/state/action-mixin.ts b/src/state/action-mixin.ts
index 976055c780..0563a29584 100644
--- a/src/state/action-mixin.ts
+++ b/src/state/action-mixin.ts
@@ -1,9 +1,10 @@
-import type { PropertyValues } from "lit";
import type { HASSDomEvent } from "../common/dom/fire_event";
import type { ActionConfigParams } from "../panels/lovelace/common/handle-action";
-import { handleAction } from "../panels/lovelace/common/handle-action";
import type { Constructor } from "../types";
import type { HassBaseEl } from "./hass-base-mixin";
+import type { PropertyValues } from "lit";
+
+import { handleAction } from "../panels/lovelace/common/handle-action";
declare global {
// for fire event
diff --git a/src/state/auth-mixin.ts b/src/state/auth-mixin.ts
index 4306acc588..df4de756f7 100644
--- a/src/state/auth-mixin.ts
+++ b/src/state/auth-mixin.ts
@@ -1,8 +1,9 @@
-import { subscribeUser, userCollection } from "../data/ws-user";
import type { Constructor } from "../types";
-import { clearState } from "../util/ha-pref-storage";
import type { HassBaseEl } from "./hass-base-mixin";
+import { subscribeUser, userCollection } from "../data/ws-user";
+import { clearState } from "../util/ha-pref-storage";
+
declare global {
// for fire event
interface HASSDomEvents {
diff --git a/src/state/connection-mixin.ts b/src/state/connection-mixin.ts
index 725201f6cd..c3415087a3 100644
--- a/src/state/connection-mixin.ts
+++ b/src/state/connection-mixin.ts
@@ -1,4 +1,7 @@
+import type { Constructor, HomeAssistant, ServiceCallResponse } from "../types";
+import type { HassBaseEl } from "./hass-base-mixin";
import type { Auth, Connection, HassConfig } from "home-assistant-js-websocket";
+
import {
callService,
ERR_CONNECTION_LOST,
@@ -7,7 +10,9 @@ import {
subscribeEntities,
subscribeServices,
} from "home-assistant-js-websocket";
+
import { fireEvent } from "../common/dom/fire_event";
+import { promiseTimeout } from "../common/util/promise-timeout";
import { subscribeAreaRegistry } from "../data/area_registry";
import { broadcastConnectionStatus } from "../data/connection-status";
import { subscribeDeviceRegistry } from "../data/device_registry";
@@ -22,17 +27,14 @@ import {
TimeFormat,
TimeZone,
} from "../data/translation";
+import { subscribeEntityRegistryDisplay } from "../data/ws-entity_registry_display";
+import { subscribeFloorRegistry } from "../data/ws-floor_registry";
import { subscribePanels } from "../data/ws-panels";
import { translationMetadata } from "../resources/translations-metadata";
-import type { Constructor, HomeAssistant, ServiceCallResponse } from "../types";
import { getLocalLanguage } from "../util/common-translation";
import { fetchWithAuth } from "../util/fetch-with-auth";
import { getState } from "../util/ha-pref-storage";
import hassCallApi, { hassCallApiRaw } from "../util/hass-call-api";
-import type { HassBaseEl } from "./hass-base-mixin";
-import { promiseTimeout } from "../common/util/promise-timeout";
-import { subscribeFloorRegistry } from "../data/ws-floor_registry";
-import { subscribeEntityRegistryDisplay } from "../data/ws-entity_registry_display";
export const connectionMixin = >(
superClass: T
diff --git a/src/state/context-mixin.ts b/src/state/context-mixin.ts
index fd5bae6025..07008091c3 100644
--- a/src/state/context-mixin.ts
+++ b/src/state/context-mixin.ts
@@ -1,4 +1,8 @@
+import type { Constructor, HomeAssistant } from "../types";
+import type { HassBaseEl } from "./hass-base-mixin";
+
import { ContextProvider } from "@lit-labs/context";
+
import {
areasContext,
configContext,
@@ -15,8 +19,6 @@ import {
userContext,
userDataContext,
} from "../data/context";
-import type { Constructor, HomeAssistant } from "../types";
-import type { HassBaseEl } from "./hass-base-mixin";
export const contextMixin = >(
superClass: T
diff --git a/src/state/dialog-manager-mixin.ts b/src/state/dialog-manager-mixin.ts
index 26ac3e509b..73a2568b74 100644
--- a/src/state/dialog-manager-mixin.ts
+++ b/src/state/dialog-manager-mixin.ts
@@ -1,8 +1,9 @@
-import type { PropertyValues } from "lit";
import type { HASSDomEvent } from "../common/dom/fire_event";
-import { makeDialogManager, showDialog } from "../dialogs/make-dialog-manager";
import type { Constructor } from "../types";
import type { HassBaseEl } from "./hass-base-mixin";
+import type { PropertyValues } from "lit";
+
+import { makeDialogManager, showDialog } from "../dialogs/make-dialog-manager";
interface RegisterDialogParams {
dialogShowEvent: keyof HASSDomEvents;
diff --git a/src/state/disconnect-toast-mixin.ts b/src/state/disconnect-toast-mixin.ts
index 8eaa814db0..20359a4678 100644
--- a/src/state/disconnect-toast-mixin.ts
+++ b/src/state/disconnect-toast-mixin.ts
@@ -1,16 +1,18 @@
+import type { BootstrapIntegrationsTimings } from "../data/bootstrap_integrations";
+import type { Constructor } from "../types";
+import type { HassBaseEl } from "./hass-base-mixin";
import type { UnsubscribeFunc } from "home-assistant-js-websocket";
+
import {
STATE_NOT_RUNNING,
STATE_RUNNING,
STATE_STARTING,
} from "home-assistant-js-websocket";
-import type { BootstrapIntegrationsTimings } from "../data/bootstrap_integrations";
+
+import { navigate } from "../common/navigate";
import { subscribeBootstrapIntegrations } from "../data/bootstrap_integrations";
import { domainToName } from "../data/integration";
-import type { Constructor } from "../types";
import { showToast } from "../util/toast";
-import type { HassBaseEl } from "./hass-base-mixin";
-import { navigate } from "../common/navigate";
export default >(superClass: T) =>
class extends superClass {
diff --git a/src/state/haptic-mixin.ts b/src/state/haptic-mixin.ts
index 1aa0fe727e..86ff63e8f8 100644
--- a/src/state/haptic-mixin.ts
+++ b/src/state/haptic-mixin.ts
@@ -1,9 +1,10 @@
-import type { PropertyValues } from "lit";
import type { HASSDomEvent } from "../common/dom/fire_event";
import type { HapticType } from "../data/haptics";
import type { Constructor, HomeAssistant } from "../types";
-import { storeState } from "../util/ha-pref-storage";
import type { HassBaseEl } from "./hass-base-mixin";
+import type { PropertyValues } from "lit";
+
+import { storeState } from "../util/ha-pref-storage";
interface VibrateParams {
vibrate: HomeAssistant["vibrate"];
diff --git a/src/state/hass-base-mixin.ts b/src/state/hass-base-mixin.ts
index 977f72df9c..c9efeb87ba 100644
--- a/src/state/hass-base-mixin.ts
+++ b/src/state/hass-base-mixin.ts
@@ -1,7 +1,8 @@
+import type { HomeAssistant } from "../types";
import type { Auth, Connection } from "home-assistant-js-websocket";
+
import { LitElement } from "lit";
import { property } from "lit/decorators";
-import type { HomeAssistant } from "../types";
export class HassBaseEl extends LitElement {
@property({ attribute: false }) public hass?: HomeAssistant;
diff --git a/src/state/hass-element.ts b/src/state/hass-element.ts
index c0e7ca92a5..ccacf428a6 100644
--- a/src/state/hass-element.ts
+++ b/src/state/hass-element.ts
@@ -1,20 +1,21 @@
import type { Constructor } from "../types";
+
+import ActionMixin from "./action-mixin";
import AuthMixin from "./auth-mixin";
import { connectionMixin } from "./connection-mixin";
+import { contextMixin } from "./context-mixin";
import { dialogManagerMixin } from "./dialog-manager-mixin";
import DisconnectToastMixin from "./disconnect-toast-mixin";
import { hapticMixin } from "./haptic-mixin";
import { HassBaseEl } from "./hass-base-mixin";
import { loggingMixin } from "./logging-mixin";
-import { contextMixin } from "./context-mixin";
import MoreInfoMixin from "./more-info-mixin";
-import ActionMixin from "./action-mixin";
import NotificationMixin from "./notification-mixin";
import { panelTitleMixin } from "./panel-title-mixin";
import SidebarMixin from "./sidebar-mixin";
+import StateDisplayMixin from "./state-display-mixin";
import ThemesMixin from "./themes-mixin";
import TranslationsMixin from "./translations-mixin";
-import StateDisplayMixin from "./state-display-mixin";
import { urlSyncMixin } from "./url-sync-mixin";
const ext = (baseClass: T, mixins): T =>
diff --git a/src/state/more-info-mixin.ts b/src/state/more-info-mixin.ts
index 7b14098279..b92907c932 100644
--- a/src/state/more-info-mixin.ts
+++ b/src/state/more-info-mixin.ts
@@ -1,9 +1,10 @@
-import type { PropertyValues } from "lit";
import type { HASSDomEvent } from "../common/dom/fire_event";
-import { showDialog } from "../dialogs/make-dialog-manager";
import type { MoreInfoDialogParams } from "../dialogs/more-info/ha-more-info-dialog";
import type { Constructor } from "../types";
import type { HassBaseEl } from "./hass-base-mixin";
+import type { PropertyValues } from "lit";
+
+import { showDialog } from "../dialogs/make-dialog-manager";
declare global {
// for fire event
diff --git a/src/state/panel-title-mixin.ts b/src/state/panel-title-mixin.ts
index ae9a30e2a6..2d69663943 100644
--- a/src/state/panel-title-mixin.ts
+++ b/src/state/panel-title-mixin.ts
@@ -1,7 +1,8 @@
-import { getPanelTitleFromUrlPath } from "../data/panel";
import type { Constructor, HomeAssistant } from "../types";
import type { HassBaseEl } from "./hass-base-mixin";
+import { getPanelTitleFromUrlPath } from "../data/panel";
+
const setTitle = (title: string | undefined) => {
document.title = title ? `${title} – Home Assistant` : "Home Assistant";
};
diff --git a/src/state/quick-bar-mixin.ts b/src/state/quick-bar-mixin.ts
index 116c9d1fbd..00900607b5 100644
--- a/src/state/quick-bar-mixin.ts
+++ b/src/state/quick-bar-mixin.ts
@@ -1,19 +1,21 @@
+import type { QuickBarParams } from "../dialogs/quick-bar/show-dialog-quick-bar";
+import type { Constructor, HomeAssistant } from "../types";
+import type { HassElement } from "./hass-element";
import type { PropertyValues } from "lit";
-import { tinykeys } from "tinykeys";
+
import memoizeOne from "memoize-one";
+import { tinykeys } from "tinykeys";
+
import { isComponentLoaded } from "../common/config/is_component_loaded";
import { mainWindow } from "../common/dom/get_main_window";
-import type { QuickBarParams } from "../dialogs/quick-bar/show-dialog-quick-bar";
+import { extractSearchParamsObject } from "../common/url/search-params";
import {
QuickBarMode,
showQuickBar,
} from "../dialogs/quick-bar/show-dialog-quick-bar";
-import type { Constructor, HomeAssistant } from "../types";
+import { showVoiceCommandDialog } from "../dialogs/voice-command-dialog/show-ha-voice-command-dialog";
import { storeState } from "../util/ha-pref-storage";
import { showToast } from "../util/toast";
-import type { HassElement } from "./hass-element";
-import { extractSearchParamsObject } from "../common/url/search-params";
-import { showVoiceCommandDialog } from "../dialogs/voice-command-dialog/show-ha-voice-command-dialog";
declare global {
interface HASSDomEvents {
diff --git a/src/state/sidebar-mixin.ts b/src/state/sidebar-mixin.ts
index 59d258da4e..c58b665d77 100644
--- a/src/state/sidebar-mixin.ts
+++ b/src/state/sidebar-mixin.ts
@@ -1,8 +1,9 @@
import type { HASSDomEvent } from "../common/dom/fire_event";
import type { Constructor, HomeAssistant } from "../types";
-import { storeState } from "../util/ha-pref-storage";
import type { HassBaseEl } from "./hass-base-mixin";
+import { storeState } from "../util/ha-pref-storage";
+
interface DockSidebarParams {
dock: HomeAssistant["dockedSidebar"];
}
diff --git a/src/state/state-display-mixin.ts b/src/state/state-display-mixin.ts
index 05cca8e8f7..2c3ea26458 100644
--- a/src/state/state-display-mixin.ts
+++ b/src/state/state-display-mixin.ts
@@ -1,8 +1,9 @@
+import type { Constructor, HomeAssistant } from "../types";
+import type { HassBaseEl } from "./hass-base-mixin";
+
import { isComponentLoaded } from "../common/config/is_component_loaded";
import { computeFormatFunctions } from "../common/translations/entity-state";
import { getSensorNumericDeviceClasses } from "../data/sensor";
-import type { Constructor, HomeAssistant } from "../types";
-import type { HassBaseEl } from "./hass-base-mixin";
export default >(superClass: T) => {
class StateDisplayMixin extends superClass {
diff --git a/src/state/themes-mixin.ts b/src/state/themes-mixin.ts
index adfa0cecb5..4d8ae16e9e 100644
--- a/src/state/themes-mixin.ts
+++ b/src/state/themes-mixin.ts
@@ -1,12 +1,13 @@
+import type { HASSDomEvent } from "../common/dom/fire_event";
+import type { Constructor, HomeAssistant } from "../types";
+import type { HassBaseEl } from "./hass-base-mixin";
+
import {
applyThemesOnElement,
invalidateThemeCache,
} from "../common/dom/apply_themes_on_element";
-import type { HASSDomEvent } from "../common/dom/fire_event";
import { subscribeThemes } from "../data/ws-themes";
-import type { Constructor, HomeAssistant } from "../types";
import { storeState } from "../util/ha-pref-storage";
-import type { HassBaseEl } from "./hass-base-mixin";
declare global {
// for add event listener
diff --git a/src/state/translations-mixin.ts b/src/state/translations-mixin.ts
index 6d84bb0825..5ddb8edd1e 100644
--- a/src/state/translations-mixin.ts
+++ b/src/state/translations-mixin.ts
@@ -1,12 +1,4 @@
-import { atLeastVersion } from "../common/config/version";
-import { fireEvent } from "../common/dom/fire_event";
import type { LocalizeFunc } from "../common/translations/localize";
-import { computeLocalize } from "../common/translations/localize";
-import {
- computeRTLDirection,
- setDirectionStyles,
-} from "../common/util/compute_rtl";
-import { debounce } from "../common/util/debounce";
import type {
FirstWeekday,
NumberFormat,
@@ -15,20 +7,29 @@ import type {
TranslationCategory,
TimeZone,
} from "../data/translation";
+import type { Constructor, HomeAssistant } from "../types";
+import type { HassBaseEl } from "./hass-base-mixin";
+
+import { atLeastVersion } from "../common/config/version";
+import { fireEvent } from "../common/dom/fire_event";
+import { computeLocalize } from "../common/translations/localize";
+import {
+ computeRTLDirection,
+ setDirectionStyles,
+} from "../common/util/compute_rtl";
+import { debounce } from "../common/util/debounce";
import {
getHassTranslations,
getHassTranslationsPre109,
saveTranslationPreferences,
} from "../data/translation";
import { translationMetadata } from "../resources/translations-metadata";
-import type { Constructor, HomeAssistant } from "../types";
import {
getLocalLanguage,
getTranslation,
getUserLocale,
} from "../util/common-translation";
import { storeState } from "../util/ha-pref-storage";
-import type { HassBaseEl } from "./hass-base-mixin";
declare global {
// for fire event
diff --git a/src/state/url-sync-mixin.ts b/src/state/url-sync-mixin.ts
index 2ed322f74d..afe5bf818e 100644
--- a/src/state/url-sync-mixin.ts
+++ b/src/state/url-sync-mixin.ts
@@ -1,9 +1,10 @@
/* eslint-disable no-console */
-import type { PropertyValueMap, ReactiveElement } from "lit";
-import { mainWindow } from "../common/dom/get_main_window";
-import { closeLastDialog } from "../dialogs/make-dialog-manager";
import type { ProvideHassElement } from "../mixins/provide-hass-lit-mixin";
import type { Constructor } from "../types";
+import type { PropertyValueMap, ReactiveElement } from "lit";
+
+import { mainWindow } from "../common/dom/get_main_window";
+import { closeLastDialog } from "../dialogs/make-dialog-manager";
const DEBUG = false;
diff --git a/src/types.ts b/src/types.ts
index 02d50a82ab..9a5ccd2e3b 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -1,14 +1,3 @@
-import type { DurationFormatConstructor } from "@formatjs/intl-durationformat/src/types";
-import type {
- Auth,
- Connection,
- HassConfig,
- HassEntities,
- HassEntity,
- HassServices,
- HassServiceTarget,
- MessageBase,
-} from "home-assistant-js-websocket";
import type { LocalizeFunc } from "./common/translations/localize";
import type { AreaRegistryEntry } from "./data/area_registry";
import type { DeviceRegistryEntry } from "./data/device_registry";
@@ -21,6 +10,17 @@ import type {
} from "./data/translation";
import type { Themes } from "./data/ws-themes";
import type { ExternalMessaging } from "./external_app/external_messaging";
+import type { DurationFormatConstructor } from "@formatjs/intl-durationformat/src/types";
+import type {
+ Auth,
+ Connection,
+ HassConfig,
+ HassEntities,
+ HassEntity,
+ HassServices,
+ HassServiceTarget,
+ MessageBase,
+} from "home-assistant-js-websocket";
declare global {
/* eslint-disable no-var, @typescript-eslint/naming-convention */
diff --git a/src/util/common-translation.ts b/src/util/common-translation.ts
index 263fba9bb9..bbb9135ba6 100644
--- a/src/util/common-translation.ts
+++ b/src/util/common-translation.ts
@@ -1,7 +1,8 @@
import type { FrontendLocaleData } from "../data/translation";
+import type { HomeAssistant } from "../types";
+
import { fetchTranslationPreferences } from "../data/translation";
import { translationMetadata } from "../resources/translations-metadata";
-import type { HomeAssistant } from "../types";
const BASE_URL = `${__STATIC_PATH__}translations`;
const STORAGE = window.localStorage || {};
diff --git a/src/util/custom-panel/load-custom-panel.ts b/src/util/custom-panel/load-custom-panel.ts
index 235d153d6e..573ecaa370 100644
--- a/src/util/custom-panel/load-custom-panel.ts
+++ b/src/util/custom-panel/load-custom-panel.ts
@@ -1,6 +1,7 @@
-import { loadJS, loadModule } from "../../common/dom/load_resource";
import type { CustomPanelConfig } from "../../data/panel_custom";
+import { loadJS, loadModule } from "../../common/dom/load_resource";
+
// Make sure we only import every JS-based panel once (HTML import has this built-in)
const JS_CACHE = {};
diff --git a/src/util/file_download.ts b/src/util/file_download.ts
index 71d9a896df..d7c975edfa 100644
--- a/src/util/file_download.ts
+++ b/src/util/file_download.ts
@@ -1,4 +1,5 @@
import type { HomeAssistant } from "../types";
+
import { isIosApp } from "./is_ios";
export const fileDownload = (href: string, filename = ""): void => {
diff --git a/src/util/hass-call-api.ts b/src/util/hass-call-api.ts
index 80370abf8b..f82a7c1ad2 100644
--- a/src/util/hass-call-api.ts
+++ b/src/util/hass-call-api.ts
@@ -1,4 +1,5 @@
import type { Auth } from "home-assistant-js-websocket";
+
import { fetchWithAuth } from "./fetch-with-auth";
export const handleFetchPromise = async (
diff --git a/src/util/hass-media-player-model.ts b/src/util/hass-media-player-model.ts
index 852fe1baad..c64b06033c 100644
--- a/src/util/hass-media-player-model.ts
+++ b/src/util/hass-media-player-model.ts
@@ -1,7 +1,8 @@
+import type { HomeAssistant } from "../types";
import type { HassEntity } from "home-assistant-js-websocket";
+
import { supportsFeature } from "../common/entity/supports-feature";
import { cleanupMediaTitle } from "../data/media-player";
-import type { HomeAssistant } from "../types";
export default class MediaPlayerEntity {
public hass: HomeAssistant;
diff --git a/src/util/is_ios.ts b/src/util/is_ios.ts
index f685e4d3bd..9597bf3be6 100644
--- a/src/util/is_ios.ts
+++ b/src/util/is_ios.ts
@@ -1,4 +1,5 @@
import type { HomeAssistant } from "../types";
+
import { isSafari } from "./is_safari";
export const isIosApp = (hass: HomeAssistant): boolean =>
diff --git a/src/util/launch-screen.ts b/src/util/launch-screen.ts
index fa11828f3b..c99a2e960c 100644
--- a/src/util/launch-screen.ts
+++ b/src/util/launch-screen.ts
@@ -1,4 +1,5 @@
import type { TemplateResult } from "lit";
+
import { render } from "lit";
export const removeLaunchScreen = () => {
diff --git a/src/util/toast-saved-success.ts b/src/util/toast-saved-success.ts
index 4a7ea2abcc..8f5dc93666 100644
--- a/src/util/toast-saved-success.ts
+++ b/src/util/toast-saved-success.ts
@@ -1,4 +1,5 @@
import type { HomeAssistant } from "../types";
+
import { showToast } from "./toast";
export const showSaveSuccessToast = (el: HTMLElement, hass: HomeAssistant) =>
diff --git a/src/util/toast.ts b/src/util/toast.ts
index 6cdaa3f709..6418a46e2c 100644
--- a/src/util/toast.ts
+++ b/src/util/toast.ts
@@ -1,5 +1,6 @@
-import { fireEvent } from "../common/dom/fire_event";
import type { ShowToastParams } from "../managers/notification-manager";
+import { fireEvent } from "../common/dom/fire_event";
+
export const showToast = (el: HTMLElement, params: ShowToastParams) =>
fireEvent(el, "hass-notification", params);
diff --git a/yarn.lock b/yarn.lock
index b92943d863..9127850ea5 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5254,6 +5254,16 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/scope-manager@npm:8.29.1":
+ version: 8.29.1
+ resolution: "@typescript-eslint/scope-manager@npm:8.29.1"
+ dependencies:
+ "@typescript-eslint/types": "npm:8.29.1"
+ "@typescript-eslint/visitor-keys": "npm:8.29.1"
+ checksum: 10/33a02f490b53436729f5ca2e6e0c5b8db72adb455274e5de43bdaada21033e7941aed1d92653321991e186af77f7794dc0ac35d2fce891cdf65a6d3fb192249e
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/type-utils@npm:8.29.0":
version: 8.29.0
resolution: "@typescript-eslint/type-utils@npm:8.29.0"
@@ -5276,6 +5286,13 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/types@npm:8.29.1, @typescript-eslint/types@npm:^8.29.0":
+ version: 8.29.1
+ resolution: "@typescript-eslint/types@npm:8.29.1"
+ checksum: 10/99ff59e7af3728858af9b7fdc0165955bcf5cd2eefeaafabfbdd7951fbc8ad869cbb7bed7bcbed6c3c50a8661333b33364dc1de0a0c8f3c64d5882339a5d30dd
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/typescript-estree@npm:8.29.0":
version: 8.29.0
resolution: "@typescript-eslint/typescript-estree@npm:8.29.0"
@@ -5294,6 +5311,24 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/typescript-estree@npm:8.29.1":
+ version: 8.29.1
+ resolution: "@typescript-eslint/typescript-estree@npm:8.29.1"
+ dependencies:
+ "@typescript-eslint/types": "npm:8.29.1"
+ "@typescript-eslint/visitor-keys": "npm:8.29.1"
+ debug: "npm:^4.3.4"
+ fast-glob: "npm:^3.3.2"
+ is-glob: "npm:^4.0.3"
+ minimatch: "npm:^9.0.4"
+ semver: "npm:^7.6.0"
+ ts-api-utils: "npm:^2.0.1"
+ peerDependencies:
+ typescript: ">=4.8.4 <5.9.0"
+ checksum: 10/dded2ebe4c3287443000e3b825e673d0eddb7c48eb2d373c5b7059ea7dbbeba488d7f1de2e42ed7a9299ccff926a65821f2b5594022b49564026ba01c0cc07ab
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/utils@npm:8.29.0":
version: 8.29.0
resolution: "@typescript-eslint/utils@npm:8.29.0"
@@ -5309,6 +5344,21 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/utils@npm:^8.29.0":
+ version: 8.29.1
+ resolution: "@typescript-eslint/utils@npm:8.29.1"
+ dependencies:
+ "@eslint-community/eslint-utils": "npm:^4.4.0"
+ "@typescript-eslint/scope-manager": "npm:8.29.1"
+ "@typescript-eslint/types": "npm:8.29.1"
+ "@typescript-eslint/typescript-estree": "npm:8.29.1"
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: ">=4.8.4 <5.9.0"
+ checksum: 10/1d2c85c97a39e063fe490c0cdb6513716e4735bda0bc937475b44d9224074a5070f888dfed1e75f4a91c8f4d825b44fce90b685e07bda391dfeb2553b9b39a5a
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/visitor-keys@npm:8.29.0":
version: 8.29.0
resolution: "@typescript-eslint/visitor-keys@npm:8.29.0"
@@ -5319,6 +5369,16 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/visitor-keys@npm:8.29.1":
+ version: 8.29.1
+ resolution: "@typescript-eslint/visitor-keys@npm:8.29.1"
+ dependencies:
+ "@typescript-eslint/types": "npm:8.29.1"
+ eslint-visitor-keys: "npm:^4.2.0"
+ checksum: 10/788290c369c13403692d857e0a464b5c2223e1fef28c717b7dbc61140d33697ce43c7d1a7cb7ac585f2012fc702ce2ec489363d34bf566303d3c48fa494803c5
+ languageName: node
+ linkType: hard
+
"@vaadin/a11y-base@npm:~24.7.2":
version: 24.7.2
resolution: "@vaadin/a11y-base@npm:24.7.2"
@@ -8313,6 +8373,19 @@ __metadata:
languageName: node
linkType: hard
+"eslint-plugin-perfectionist@npm:4.11.0":
+ version: 4.11.0
+ resolution: "eslint-plugin-perfectionist@npm:4.11.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:^8.29.0"
+ "@typescript-eslint/utils": "npm:^8.29.0"
+ natural-orderby: "npm:^5.0.0"
+ peerDependencies:
+ eslint: ">=8.45.0"
+ checksum: 10/4f7b570c96b3fa3ce81813e7971e0f1be7707f7e9de4cc898ab81040d09f65e7b05c0964e888c27bdec0f6fa2964b3013a790d0c93e5cf9cb8ec02e3e0db60ca
+ languageName: node
+ linkType: hard
+
"eslint-plugin-unused-imports@npm:4.1.4":
version: 4.1.4
resolution: "eslint-plugin-unused-imports@npm:4.1.4"
@@ -9696,6 +9769,7 @@ __metadata:
eslint-plugin-import: "npm:2.31.0"
eslint-plugin-lit: "npm:2.0.0"
eslint-plugin-lit-a11y: "npm:4.1.4"
+ eslint-plugin-perfectionist: "npm:4.11.0"
eslint-plugin-unused-imports: "npm:4.1.4"
eslint-plugin-wc: "npm:3.0.0"
fancy-log: "npm:2.0.0"
@@ -11775,6 +11849,13 @@ __metadata:
languageName: node
linkType: hard
+"natural-orderby@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "natural-orderby@npm:5.0.0"
+ checksum: 10/7620051a2d79af81ac6bce96f6bdec45c291d4acc1d709d62d7a6648b01cda4e751415d63bc71060ce8ab223dbf3ce013f229ee683ea651868f36ea4008d0dbe
+ languageName: node
+ linkType: hard
+
"negotiator@npm:0.6.3":
version: 0.6.3
resolution: "negotiator@npm:0.6.3"