+ }
+
+ if (event.code === 'ArrowDown') {
+ this.focusAdjacent(true);
+ }
+ if (event.code === 'ArrowUp') {
+ this.focusAdjacent(false);
+ }
+ });
+
+ this.searchInput.addEventListener('keydown', event => {
+ if (event.code === 'ArrowDown') {
+ this.focusAdjacent(true);
+ }
+ });
+ }
+
+ focusAdjacent(forward = true) {
+ const items = Array.from(this.resultsContainer.querySelectorAll('[data-entity-type]'));
+ const selectedIndex = items.indexOf(document.activeElement);
+ const newItem = items[selectedIndex + (forward ? 1 : -1)] || items[0];
+ if (newItem) {
+ newItem.focus();