From e994e3565daa8a03b31630e82cadcb01270e24ee Mon Sep 17 00:00:00 2001 From: Jan-Philipp Benecke Date: Tue, 21 Jan 2025 09:53:28 +0100 Subject: [PATCH] Improve add cards dialog user experience (#23773) Co-authored-by: Wendelin <12148533+wendevlin@users.noreply.github.com> --- .../editor/card-editor/hui-card-picker.ts | 60 ++++++++++++------- .../card-editor/hui-dialog-create-card.ts | 2 +- src/translations/en.json | 3 +- 3 files changed, 40 insertions(+), 25 deletions(-) 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 d127d17a47..d7a5d5f2c3 100644 --- a/src/panels/lovelace/editor/card-editor/hui-card-picker.ts +++ b/src/panels/lovelace/editor/card-editor/hui-card-picker.ts @@ -155,12 +155,14 @@ export class HuiCardPicker extends LitElement { height: this._height ? `${this._height}px` : "auto", })} > -
- ${this._filter - ? this._filterCards(this._cards, this._filter).map( + ${this._filter + ? html`
+ ${this._filterCards(this._cards, this._filter).map( (cardElement: CardElement) => cardElement.element - ) - : html` + )} +
` + : html` +
${suggestedCards.length > 0 ? html`
@@ -174,6 +176,8 @@ export class HuiCardPicker extends LitElement { ${suggestedCards.map( (cardElement: CardElement) => cardElement.element )} +
+
${suggestedCards.length > 0 ? html`
@@ -186,6 +190,8 @@ export class HuiCardPicker extends LitElement { ${othersCards.map( (cardElement: CardElement) => cardElement.element )} +
+
${customCardsItems.length > 0 ? html`
@@ -198,8 +204,8 @@ export class HuiCardPicker extends LitElement { ${customCardsItems.map( (cardElement: CardElement) => cardElement.element )} - `} -
+
+ `}
+
@@ -442,19 +449,20 @@ export class HuiCardPicker extends LitElement { } } + // prevent tabbing to card + if (element) { + element.tabIndex = -1; + } + return html` -
+
- ${customCard - ? `${this.hass!.localize( - "ui.panel.lovelace.editor.cardpicker.custom_card" - )}: ${customCard.name || customCard.type}` - : name} + ${customCard ? customCard.name || customCard.type : name}