@aquera/nile-elements 0.1.32-beta-1.6 → 0.1.33-beta-1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Webcomponent nile-elements following open-wc recommendations",
4
4
  "license": "MIT",
5
5
  "author": "nile-elements",
6
- "version": "0.1.32-beta-1.6",
6
+ "version": "0.1.33-beta-1.0",
7
7
  "main": "dist/src/index.js",
8
8
  "type": "module",
9
9
  "module": "dist/src/index.js",
@@ -67,21 +67,26 @@ export class NileMenu extends NileElement {
67
67
  }
68
68
 
69
69
  private handleKeyDown(event: KeyboardEvent) {
70
+ const target = event.target as HTMLElement;
71
+
72
+ // Only handle keyboard shortcuts if NOT inside input, textarea, or contenteditable
73
+ if (target.closest('nile-input') || target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {
74
+ return; // Ignore handling space, arrows, etc.
75
+ }
76
+
70
77
  // Make a selection when pressing enter
71
78
  if (event.key === 'Enter') {
72
79
  const item = this.getCurrentItem();
73
80
  event.preventDefault();
74
-
75
- // Simulate a click to support @click handlers on menu items that also work with the keyboard
76
81
  item?.click();
77
82
  }
78
83
 
79
- // Prevent scrolling when space is pressed
84
+ // Prevent scrolling when space is pressed (ONLY if not typing)
80
85
  if (event.key === ' ') {
81
86
  event.preventDefault();
82
87
  }
83
88
 
84
- // Move the selection when pressing down or up
89
+ // Move selection
85
90
  if (['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) {
86
91
  const items = this.getAllItems();
87
92
  const activeItem = this.getCurrentItem();
@@ -90,28 +95,20 @@ export class NileMenu extends NileElement {
90
95
  if (items.length > 0) {
91
96
  event.preventDefault();
92
97
 
93
- if (event.key === 'ArrowDown') {
94
- index++;
95
- } else if (event.key === 'ArrowUp') {
96
- index--;
97
- } else if (event.key === 'Home') {
98
- index = 0;
99
- } else if (event.key === 'End') {
100
- index = items.length - 1;
101
- }
98
+ if (event.key === 'ArrowDown') index++;
99
+ else if (event.key === 'ArrowUp') index--;
100
+ else if (event.key === 'Home') index = 0;
101
+ else if (event.key === 'End') index = items.length - 1;
102
102
 
103
- if (index < 0) {
104
- index = items.length - 1;
105
- }
106
- if (index > items.length - 1) {
107
- index = 0;
108
- }
103
+ if (index < 0) index = items.length - 1;
104
+ if (index > items.length - 1) index = 0;
109
105
 
110
106
  this.setCurrentItem(items[index]);
111
107
  items[index].focus();
112
108
  }
113
109
  }
114
- }
110
+ }
111
+
115
112
 
116
113
  private handleMouseDown(event: MouseEvent) {
117
114
  const target = event.target as HTMLElement;