diff --git a/src/dialogs/quick-bar/ha-quick-bar.ts b/src/dialogs/quick-bar/ha-quick-bar.ts
index 828397f353..cf57a14e31 100644
--- a/src/dialogs/quick-bar/ha-quick-bar.ts
+++ b/src/dialogs/quick-bar/ha-quick-bar.ts
@@ -15,24 +15,26 @@ 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 Fuse from "fuse.js";
import { canShowPage } from "../../common/config/can_show_page";
import { componentsWithService } from "../../common/config/components_with_service";
import { isComponentLoaded } from "../../common/config/is_component_loaded";
import { fireEvent } from "../../common/dom/fire_event";
-import { computeDeviceNameDisplay } from "../../common/entity/compute_device_name";
-import { computeStateName } from "../../common/entity/compute_state_name";
+import {
+ computeDeviceName,
+ computeDeviceNameDisplay,
+} from "../../common/entity/compute_device_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";
-import "../../components/ha-list-item";
import "../../components/ha-spinner";
import "../../components/ha-textfield";
import "../../components/ha-tip";
+import "../../components/ha-md-list-item";
import { fetchHassioAddonsInfo } from "../../data/hassio/addon";
import { domainToName } from "../../data/integration";
import { getPanelNameTranslationKey } from "../../data/panel";
@@ -44,6 +46,13 @@ import type { HomeAssistant } from "../../types";
import { showConfirmationDialog } from "../generic/show-dialog-box";
import { showShortcutsDialog } from "../shortcuts/show-shortcuts-dialog";
import { QuickBarMode, type QuickBarParams } from "./show-dialog-quick-bar";
+import { getEntityContext } from "../../common/entity/context/get_entity_context";
+import { computeEntityName } from "../../common/entity/compute_entity_name";
+import { computeAreaName } from "../../common/entity/compute_area_name";
+import { computeRTL } from "../../common/util/compute_rtl";
+import { computeDomain } from "../../common/entity/compute_domain";
+import { computeStateName } from "../../common/entity/compute_state_name";
+import { HaFuse } from "../../resources/fuse";
interface QuickBarItem extends ScorableTextItem {
primaryText: string;
@@ -59,6 +68,9 @@ interface CommandItem extends QuickBarItem {
interface EntityItem extends QuickBarItem {
altText: string;
icon?: TemplateResult;
+ translatedDomain: string;
+ entityId: string;
+ friendlyName: string;
}
interface DeviceItem extends QuickBarItem {
@@ -82,6 +94,23 @@ type BaseNavigationCommand = Pick<
QuickBarNavigationItem,
"primaryText" | "path"
>;
+
+const DOMAIN_STYLE = styleMap({
+ fontSize: "var(--ha-font-size-s)",
+ fontWeight: "var(--ha-font-weight-normal)",
+ lineHeight: "var(--ha-line-height-normal)",
+ alignSelf: "flex-end",
+ maxWidth: "30%",
+ textOverflow: "ellipsis",
+ overflow: "hidden",
+ whiteSpace: "nowrap",
+});
+
+const ENTITY_ID_STYLE = styleMap({
+ fontFamily: "var(--ha-font-family-code)",
+ fontSize: "var(--ha-font-size-xs)",
+});
+
@customElement("ha-quick-bar")
export class QuickBar extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
@@ -139,6 +168,11 @@ export class QuickBar extends LitElement {
}
}
+ protected firstUpdated(changedProps) {
+ super.firstUpdated(changedProps);
+ this.hass.loadBackendTranslation("title");
+ }
+
private _getItems = memoizeOne(
(
mode: QuickBarMode,
@@ -323,61 +357,65 @@ export class QuickBar extends LitElement {
private _renderDeviceItem(item: DeviceItem, index?: number) {
return html`
-