From 1319b575922c1541e8f1727a3cc0fa8199351bd0 Mon Sep 17 00:00:00 2001 From: pk Date: Wed, 20 Aug 2025 14:42:58 +0200 Subject: [PATCH] Highlight options using a attribute instead of focus. This brings a few advantages. --- package.json | 2 +- tp-dropdown.js | 164 ++++++++++++++++++++++++++----------------------- 2 files changed, 87 insertions(+), 79 deletions(-) diff --git a/package.json b/package.json index a216ede..7a8efed 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@tp/tp-dropdown", - "version": "1.5.0", + "version": "2.0.0", "description": "", "main": "tp-dropdown.js", "scripts": { diff --git a/tp-dropdown.js b/tp-dropdown.js index 9cc3dce..b0573eb 100644 --- a/tp-dropdown.js +++ b/tp-dropdown.js @@ -28,7 +28,7 @@ const BaseElement = mixins.reduce((baseClass, mixin) => { return mixin(baseClass); }, LitElement); -class TpDropdown extends BaseElement { +export class TpDropdown extends BaseElement { static get styles() { return [ css` @@ -152,10 +152,9 @@ class TpDropdown extends BaseElement { color: var(--tp-dropdown-hovered-item-color, inherit); } - div[role="option"]:focus { - background: var(--tp-dropdown-focused-item-bg, #EEEEEE); - color: var(--tp-dropdown-focused-item-color, inherit); - outline: none; + div[role="option"][highlighted] { + background: var(--tp-dropdown-highlighted-item-bg, #EEEEEE); + color: var(--tp-dropdown-highlighted-item-color, inherit); } div[role="option"][selected] { @@ -251,15 +250,15 @@ class TpDropdown extends BaseElement {