@spectrum-web-components/menu 1.3.0-testing.0 → 1.3.1-beta.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/README.md +195 -20
- package/custom-elements.json +40 -0
- package/package.json +11 -11
- package/src/Menu.d.ts +1 -0
- package/src/Menu.dev.js +9 -0
- package/src/Menu.dev.js.map +2 -2
- package/src/Menu.js +2 -2
- package/src/Menu.js.map +2 -2
- package/src/menu-divider.css.dev.js +1 -1
- package/src/menu-divider.css.dev.js.map +1 -1
- package/src/menu-divider.css.js +1 -1
- package/src/menu-divider.css.js.map +1 -1
- package/src/menu-group.css.dev.js +1 -1
- package/src/menu-group.css.dev.js.map +1 -1
- package/src/menu-group.css.js +1 -1
- package/src/menu-group.css.js.map +1 -1
- package/src/menu-item.css.dev.js +1 -1
- package/src/menu-item.css.dev.js.map +1 -1
- package/src/menu-item.css.js +1 -1
- package/src/menu-item.css.js.map +1 -1
- package/src/menu-overrides.css.dev.js +1 -1
- package/src/menu-overrides.css.dev.js.map +1 -1
- package/src/menu-overrides.css.js +3 -3
- package/src/menu-overrides.css.js.map +1 -1
- package/src/menu.css.dev.js +1 -1
- package/src/menu.css.dev.js.map +1 -1
- package/src/menu.css.js +1 -1
- package/src/menu.css.js.map +1 -1
- package/src/spectrum-checkmark.css.dev.js +1 -1
- package/src/spectrum-checkmark.css.dev.js.map +1 -1
- package/src/spectrum-checkmark.css.js +3 -3
- package/src/spectrum-checkmark.css.js.map +1 -1
- package/src/spectrum-chevron.css.dev.js +1 -1
- package/src/spectrum-chevron.css.dev.js.map +1 -1
- package/src/spectrum-chevron.css.js +3 -3
- package/src/spectrum-chevron.css.js.map +1 -1
- package/src/spectrum-menu-divider.css.dev.js +1 -1
- package/src/spectrum-menu-divider.css.dev.js.map +1 -1
- package/src/spectrum-menu-divider.css.js +1 -1
- package/src/spectrum-menu-divider.css.js.map +1 -1
- package/src/spectrum-menu-item.css.dev.js +1 -1
- package/src/spectrum-menu-item.css.dev.js.map +1 -1
- package/src/spectrum-menu-item.css.js +1 -1
- package/src/spectrum-menu-item.css.js.map +1 -1
- package/src/spectrum-menu-sectionHeading.css.dev.js +1 -1
- package/src/spectrum-menu-sectionHeading.css.dev.js.map +1 -1
- package/src/spectrum-menu-sectionHeading.css.js +1 -1
- package/src/spectrum-menu-sectionHeading.css.js.map +1 -1
- package/src/spectrum-menu.css.dev.js +1 -1
- package/src/spectrum-menu.css.dev.js.map +1 -1
- package/src/spectrum-menu.css.js +1 -1
- package/src/spectrum-menu.css.js.map +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
##
|
|
1
|
+
## Overview
|
|
2
2
|
|
|
3
|
-
An `<sp-menu>` is used for creating a menu list. The various elements inside a menu are given as `<sp-menu-group
|
|
3
|
+
An `<sp-menu>` is used for creating a menu list. The various elements inside a menu are given as [`<sp-menu-group>`](../menu-group), [`<sp-menu-item>`](../menu-item), or `<sp-menu-divider>`. Often a `<sp-menu>` element will appear in a [`<sp-popover>`](../popover) element so that it displays as a toggling menu.
|
|
4
4
|
|
|
5
5
|
### Usage
|
|
6
6
|
|
|
@@ -32,11 +32,11 @@ import {
|
|
|
32
32
|
} from '@spectrum-web-components/menu';
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
### Anatomy
|
|
36
36
|
|
|
37
37
|
<!-- prettier-ignore -->
|
|
38
38
|
```html
|
|
39
|
-
<sp-menu>
|
|
39
|
+
<sp-menu label="Selection type">
|
|
40
40
|
<sp-menu-item>
|
|
41
41
|
Deselect
|
|
42
42
|
</sp-menu-item>
|
|
@@ -58,10 +58,12 @@ import {
|
|
|
58
58
|
</sp-menu>
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
+
#### Popover menus
|
|
62
|
+
|
|
61
63
|
Often an `<sp-menu>` element will be delivered inside of an `<sp-popover>` element when displaying it above other content.
|
|
62
64
|
|
|
63
65
|
```html
|
|
64
|
-
<sp-popover open style="position: relative">
|
|
66
|
+
<sp-popover open style="position: relative" label="Selection type">
|
|
65
67
|
<sp-menu>
|
|
66
68
|
<sp-menu-item value="item-1">Deselect</sp-menu-item>
|
|
67
69
|
<sp-menu-item value="item-2">Select inverse</sp-menu-item>
|
|
@@ -73,15 +75,175 @@ Often an `<sp-menu>` element will be delivered inside of an `<sp-popover>` eleme
|
|
|
73
75
|
</sp-popover>
|
|
74
76
|
```
|
|
75
77
|
|
|
76
|
-
|
|
78
|
+
#### Labels
|
|
79
|
+
|
|
80
|
+
To render accessibly, an `<sp-menu>` element or its parent `<sp-popover>` must have a label. For an accessible label that is visibly hidden, but can still be read by assistive technology, use the `label` attribute.
|
|
81
|
+
|
|
82
|
+
<sp-tabs selected="sp-field-label" auto label="Label options">
|
|
83
|
+
<sp-tab value="sp-field-label">Menu with label</sp-tab>
|
|
84
|
+
<sp-tab-panel value="sp-field-label">
|
|
85
|
+
|
|
86
|
+
```html demo
|
|
87
|
+
<sp-menu id="menu-label-attribute" label="Selection type">
|
|
88
|
+
<sp-menu-item>Deselect</sp-menu-item>
|
|
89
|
+
<sp-menu-item>Select inverse</sp-menu-item>
|
|
90
|
+
<sp-menu-item>Feather...</sp-menu-item>
|
|
91
|
+
<sp-menu-item>Select and mask...</sp-menu-item>
|
|
92
|
+
<sp-menu-divider></sp-menu-divider>
|
|
93
|
+
<sp-menu-item>Save selection</sp-menu-item>
|
|
94
|
+
<sp-menu-item disabled>Make work path</sp-menu-item>
|
|
95
|
+
</sp-menu>
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
</sp-tab-panel>
|
|
99
|
+
<sp-tab value="label-attribute">Popover with label</sp-tab>
|
|
100
|
+
<sp-tab-panel value="label-attribute">
|
|
101
|
+
|
|
102
|
+
```html demo
|
|
103
|
+
<sp-popover open style="position: relative" label="Selection type:">
|
|
104
|
+
<sp-menu id="popover-label-attribute">
|
|
105
|
+
<sp-menu-item>Deselect</sp-menu-item>
|
|
106
|
+
<sp-menu-item>Select inverse</sp-menu-item>
|
|
107
|
+
<sp-menu-item>Feather...</sp-menu-item>
|
|
108
|
+
<sp-menu-item>Select and mask...</sp-menu-item>
|
|
109
|
+
<sp-menu-divider></sp-menu-divider>
|
|
110
|
+
<sp-menu-item>Save selection</sp-menu-item>
|
|
111
|
+
<sp-menu-item disabled>Make work path</sp-menu-item>
|
|
112
|
+
</sp-menu>
|
|
113
|
+
</sp-popover>
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
</sp-tab-panel>
|
|
117
|
+
</sp-tabs>
|
|
118
|
+
|
|
119
|
+
### Options
|
|
120
|
+
|
|
121
|
+
#### Sizes
|
|
122
|
+
|
|
123
|
+
<sp-tabs selected="m" auto label="Size attribute options">
|
|
124
|
+
<sp-tab value="s">Small</sp-tab>
|
|
125
|
+
<sp-tab-panel value="s">
|
|
126
|
+
|
|
127
|
+
```html demo
|
|
128
|
+
<sp-menu id="menu-s" size="s" label="Selection type">
|
|
129
|
+
<sp-menu-item>Deselect</sp-menu-item>
|
|
130
|
+
<sp-menu-item>Select inverse</sp-menu-item>
|
|
131
|
+
<sp-menu-item>Feather...</sp-menu-item>
|
|
132
|
+
<sp-menu-item>Select and mask...</sp-menu-item>
|
|
133
|
+
<sp-menu-divider></sp-menu-divider>
|
|
134
|
+
<sp-menu-item>Save selection</sp-menu-item>
|
|
135
|
+
<sp-menu-item disabled>Make work path</sp-menu-item>
|
|
136
|
+
</sp-menu>
|
|
137
|
+
<sp-popover open style="position: relative" label="Selection type:">
|
|
138
|
+
<sp-menu id="menu-s-popover" size="s">
|
|
139
|
+
<sp-menu-item>Deselect</sp-menu-item>
|
|
140
|
+
<sp-menu-item>Select inverse</sp-menu-item>
|
|
141
|
+
<sp-menu-item>Feather...</sp-menu-item>
|
|
142
|
+
<sp-menu-item>Select and mask...</sp-menu-item>
|
|
143
|
+
<sp-menu-divider></sp-menu-divider>
|
|
144
|
+
<sp-menu-item>Save selection</sp-menu-item>
|
|
145
|
+
<sp-menu-item disabled>Make work path</sp-menu-item>
|
|
146
|
+
</sp-menu>
|
|
147
|
+
</sp-popover>
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
</sp-tab-panel>
|
|
151
|
+
<sp-tab value="m">Medium</sp-tab>
|
|
152
|
+
<sp-tab-panel value="m">
|
|
153
|
+
|
|
154
|
+
```html demo
|
|
155
|
+
<sp-menu id="menu-m" size="m" label="Selection type">
|
|
156
|
+
<sp-menu-item>Deselect</sp-menu-item>
|
|
157
|
+
<sp-menu-item>Select inverse</sp-menu-item>
|
|
158
|
+
<sp-menu-item>Feather...</sp-menu-item>
|
|
159
|
+
<sp-menu-item>Select and mask...</sp-menu-item>
|
|
160
|
+
<sp-menu-divider></sp-menu-divider>
|
|
161
|
+
<sp-menu-item>Save selection</sp-menu-item>
|
|
162
|
+
<sp-menu-item disabled>Make work path</sp-menu-item>
|
|
163
|
+
</sp-menu>
|
|
164
|
+
<sp-popover open style="position: relative" label="Selection type:">
|
|
165
|
+
<sp-menu id="menu-m-popover" size="m">
|
|
166
|
+
<sp-menu-item>Deselect</sp-menu-item>
|
|
167
|
+
<sp-menu-item>Select inverse</sp-menu-item>
|
|
168
|
+
<sp-menu-item>Feather...</sp-menu-item>
|
|
169
|
+
<sp-menu-item>Select and mask...</sp-menu-item>
|
|
170
|
+
<sp-menu-divider></sp-menu-divider>
|
|
171
|
+
<sp-menu-item>Save selection</sp-menu-item>
|
|
172
|
+
<sp-menu-item disabled>Make work path</sp-menu-item>
|
|
173
|
+
</sp-menu>
|
|
174
|
+
</sp-popover>
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
</sp-tab-panel>
|
|
178
|
+
<sp-tab value="l">Large</sp-tab>
|
|
179
|
+
<sp-tab-panel value="l">
|
|
180
|
+
|
|
181
|
+
```html demo
|
|
182
|
+
<sp-menu id="menu-l" size="l" label="Selection type">
|
|
183
|
+
<sp-menu-item>Deselect</sp-menu-item>
|
|
184
|
+
<sp-menu-item>Select inverse</sp-menu-item>
|
|
185
|
+
<sp-menu-item>Feather...</sp-menu-item>
|
|
186
|
+
<sp-menu-item>Select and mask...</sp-menu-item>
|
|
187
|
+
<sp-menu-divider></sp-menu-divider>
|
|
188
|
+
<sp-menu-item>Save selection</sp-menu-item>
|
|
189
|
+
<sp-menu-item disabled>Make work path</sp-menu-item>
|
|
190
|
+
</sp-menu>
|
|
191
|
+
<sp-popover open style="position: relative" label="Selection type:">
|
|
192
|
+
<sp-menu id="menu-l-popover" size="l">
|
|
193
|
+
<sp-menu-item>Deselect</sp-menu-item>
|
|
194
|
+
<sp-menu-item>Select inverse</sp-menu-item>
|
|
195
|
+
<sp-menu-item>Feather...</sp-menu-item>
|
|
196
|
+
<sp-menu-item>Select and mask...</sp-menu-item>
|
|
197
|
+
<sp-menu-divider></sp-menu-divider>
|
|
198
|
+
<sp-menu-item>Save selection</sp-menu-item>
|
|
199
|
+
<sp-menu-item disabled>Make work path</sp-menu-item>
|
|
200
|
+
</sp-menu>
|
|
201
|
+
</sp-popover>
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
</sp-tab-panel>
|
|
205
|
+
<sp-tab value="xl">Extra Large</sp-tab>
|
|
206
|
+
<sp-tab-panel value="xl">
|
|
207
|
+
|
|
208
|
+
```html demo
|
|
209
|
+
<sp-menu id="menu-xl" size="xl" label="Selection type">
|
|
210
|
+
<sp-menu-item>Deselect</sp-menu-item>
|
|
211
|
+
<sp-menu-item>Select inverse</sp-menu-item>
|
|
212
|
+
<sp-menu-item>Feather...</sp-menu-item>
|
|
213
|
+
<sp-menu-item>Select and mask...</sp-menu-item>
|
|
214
|
+
<sp-menu-divider></sp-menu-divider>
|
|
215
|
+
<sp-menu-item>Save selection</sp-menu-item>
|
|
216
|
+
<sp-menu-item disabled>Make work path</sp-menu-item>
|
|
217
|
+
</sp-menu>
|
|
218
|
+
<sp-popover open style="position: relative" label="Selection type:">
|
|
219
|
+
<sp-menu id="menu-xl-popover" size="xl">
|
|
220
|
+
<sp-menu-item>Deselect</sp-menu-item>
|
|
221
|
+
<sp-menu-item>Select inverse</sp-menu-item>
|
|
222
|
+
<sp-menu-item>Feather...</sp-menu-item>
|
|
223
|
+
<sp-menu-item>Select and mask...</sp-menu-item>
|
|
224
|
+
<sp-menu-divider></sp-menu-divider>
|
|
225
|
+
<sp-menu-item>Save selection</sp-menu-item>
|
|
226
|
+
<sp-menu-item disabled>Make work path</sp-menu-item>
|
|
227
|
+
</sp-menu>
|
|
228
|
+
</sp-popover>
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
</sp-tab-panel>
|
|
232
|
+
</sp-tabs>
|
|
233
|
+
|
|
234
|
+
#### Selection
|
|
77
235
|
|
|
78
236
|
The `<sp-menu>` element can be instructed to maintain a selection via the `selects` attribute. Depending on the chosen algorithm, the `<sp-menu>` element will hold a `value` property and manage the `selected` state of its `<sp-menu-item>` descendants.
|
|
79
237
|
|
|
80
|
-
|
|
238
|
+
- When `selects="single"`, the `<sp-menu>` element will maintain one selected item after an initial selection is made.
|
|
239
|
+
- When `selects` is set to `multiple`, the `<sp-menu>` element will maintain zero or more selected items.
|
|
240
|
+
- When `selects` is set to `inherit`, the `<sp-menu>` element will allow its `<sp-menu-item>` children to participate in the selection of its nearest `<sp-menu>` ancestor.
|
|
81
241
|
|
|
82
|
-
|
|
242
|
+
<sp-tabs selected="selects-single" auto label="Selects attribute">
|
|
243
|
+
<sp-tab value="selects-single">Single</sp-tab>
|
|
244
|
+
<sp-tab-panel value="selects-single">
|
|
83
245
|
|
|
84
|
-
```html
|
|
246
|
+
```html demo
|
|
85
247
|
<p>
|
|
86
248
|
The value of the `<sp-menu>` element is:
|
|
87
249
|
<span id="single-value"></span>
|
|
@@ -92,7 +254,7 @@ When `selects` is set to `single`, the `<sp-menu>` element will maintain one sel
|
|
|
92
254
|
onchange="this.previousElementSibling.querySelector('#single-value').textContent=this.value"
|
|
93
255
|
>
|
|
94
256
|
<sp-menu-item value="item-1">Square</sp-menu-item>
|
|
95
|
-
<sp-menu-item value="item-2">Triangle</sp-menu-item>
|
|
257
|
+
<sp-menu-item value="item-2" selected>Triangle</sp-menu-item>
|
|
96
258
|
<sp-menu-item value="item-3">Parallelogram</sp-menu-item>
|
|
97
259
|
<sp-menu-item value="item-4">Star</sp-menu-item>
|
|
98
260
|
<sp-menu-item value="item-5">Hexagon</sp-menu-item>
|
|
@@ -100,11 +262,11 @@ When `selects` is set to `single`, the `<sp-menu>` element will maintain one sel
|
|
|
100
262
|
</sp-menu>
|
|
101
263
|
```
|
|
102
264
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
265
|
+
</sp-tab-panel>
|
|
266
|
+
<sp-tab value="selects-multiple">Multiple</sp-tab>
|
|
267
|
+
<sp-tab-panel value="selects-multiple">
|
|
106
268
|
|
|
107
|
-
```html
|
|
269
|
+
```html demo
|
|
108
270
|
<p>
|
|
109
271
|
The value of the `<sp-menu>` element is:
|
|
110
272
|
<span id="multiple-value">item-3,item-4</span>
|
|
@@ -123,11 +285,11 @@ When `selects` is set to `multiple`, the `<sp-menu>` element will maintain zero
|
|
|
123
285
|
</sp-menu>
|
|
124
286
|
```
|
|
125
287
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
288
|
+
</sp-tab-panel>
|
|
289
|
+
<sp-tab value="selects-inherit">Inherit</sp-tab>
|
|
290
|
+
<sp-tab-panel value="selects-inherit">
|
|
129
291
|
|
|
130
|
-
```html
|
|
292
|
+
```html demo
|
|
131
293
|
<p>
|
|
132
294
|
The value of the `<sp-menu>` element is:
|
|
133
295
|
<span id="inherit-value">item-3 || item-4 || item-8 || item-11</span>
|
|
@@ -157,8 +319,21 @@ When `selects` is set to `inherit`, the `<sp-menu>` element will allow its `<sp-
|
|
|
157
319
|
</sp-menu>
|
|
158
320
|
```
|
|
159
321
|
|
|
160
|
-
|
|
322
|
+
</sp-tab-panel>
|
|
323
|
+
</sp-tabs>
|
|
161
324
|
|
|
162
|
-
|
|
325
|
+
### Behaviors
|
|
326
|
+
|
|
327
|
+
#### "change" event
|
|
328
|
+
|
|
329
|
+
Regardless of whether or not `<sp-menu>` carries a selection, when one of the `<sp-menu-item>` children that it manages is activated, the `<sp-menu>` element will dispatch a `change` event. At dispatch time, even when a selection is not held due to the absence of the `selects` attribute, the `value` of the `<sp-menu>` will correspond to the `<sp-menu-item>` that was activated. When the `selects` attribute is present, this `value` will persist beyond the lifecycle of the `change` event. When `selects="multiple"`, the values of multiple items will be comma separated, unless otherwise set via the `value-separator` attribute.
|
|
163
330
|
|
|
164
331
|
Note: The `change` event is only dispatched on a left mouse click or Enter/Space keypress. Right/Middle mouse clicks will not dispatch the `change` event.
|
|
332
|
+
|
|
333
|
+
### Accessibility
|
|
334
|
+
|
|
335
|
+
Review the accessibility guidelines for the [menu-item](../menu-item#accessibility-guidelines) and [menu-group](../menu-group#accessibility-guidelines) descendants.
|
|
336
|
+
|
|
337
|
+
#### Include a label
|
|
338
|
+
|
|
339
|
+
A menu is required to have an accessible label.
|
package/custom-elements.json
CHANGED
|
@@ -421,6 +421,24 @@
|
|
|
421
421
|
"privacy": "private",
|
|
422
422
|
"default": "null"
|
|
423
423
|
},
|
|
424
|
+
{
|
|
425
|
+
"kind": "method",
|
|
426
|
+
"name": "handleMouseover",
|
|
427
|
+
"privacy": "private",
|
|
428
|
+
"return": {
|
|
429
|
+
"type": {
|
|
430
|
+
"text": "void"
|
|
431
|
+
}
|
|
432
|
+
},
|
|
433
|
+
"parameters": [
|
|
434
|
+
{
|
|
435
|
+
"name": "event",
|
|
436
|
+
"type": {
|
|
437
|
+
"text": "MouseEvent"
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
]
|
|
441
|
+
},
|
|
424
442
|
{
|
|
425
443
|
"kind": "method",
|
|
426
444
|
"name": "handleFocusout",
|
|
@@ -1442,6 +1460,28 @@
|
|
|
1442
1460
|
"module": "src/Menu.js"
|
|
1443
1461
|
}
|
|
1444
1462
|
},
|
|
1463
|
+
{
|
|
1464
|
+
"kind": "method",
|
|
1465
|
+
"name": "handleMouseover",
|
|
1466
|
+
"privacy": "private",
|
|
1467
|
+
"return": {
|
|
1468
|
+
"type": {
|
|
1469
|
+
"text": "void"
|
|
1470
|
+
}
|
|
1471
|
+
},
|
|
1472
|
+
"parameters": [
|
|
1473
|
+
{
|
|
1474
|
+
"name": "event",
|
|
1475
|
+
"type": {
|
|
1476
|
+
"text": "MouseEvent"
|
|
1477
|
+
}
|
|
1478
|
+
}
|
|
1479
|
+
],
|
|
1480
|
+
"inheritedFrom": {
|
|
1481
|
+
"name": "Menu",
|
|
1482
|
+
"module": "src/Menu.js"
|
|
1483
|
+
}
|
|
1484
|
+
},
|
|
1445
1485
|
{
|
|
1446
1486
|
"kind": "method",
|
|
1447
1487
|
"name": "handleFocusout",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spectrum-web-components/menu",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.1-beta.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -90,18 +90,18 @@
|
|
|
90
90
|
],
|
|
91
91
|
"dependencies": {
|
|
92
92
|
"@lit-labs/observers": "^2.0.2",
|
|
93
|
-
"@spectrum-web-components/action-button": "
|
|
94
|
-
"@spectrum-web-components/base": "
|
|
95
|
-
"@spectrum-web-components/divider": "
|
|
96
|
-
"@spectrum-web-components/icon": "
|
|
97
|
-
"@spectrum-web-components/icons-ui": "
|
|
98
|
-
"@spectrum-web-components/overlay": "
|
|
99
|
-
"@spectrum-web-components/popover": "
|
|
100
|
-
"@spectrum-web-components/reactive-controllers": "
|
|
101
|
-
"@spectrum-web-components/shared": "
|
|
93
|
+
"@spectrum-web-components/action-button": "1.3.1-beta.0",
|
|
94
|
+
"@spectrum-web-components/base": "1.3.1-beta.0",
|
|
95
|
+
"@spectrum-web-components/divider": "1.3.1-beta.0",
|
|
96
|
+
"@spectrum-web-components/icon": "1.3.1-beta.0",
|
|
97
|
+
"@spectrum-web-components/icons-ui": "1.3.1-beta.0",
|
|
98
|
+
"@spectrum-web-components/overlay": "1.3.1-beta.0",
|
|
99
|
+
"@spectrum-web-components/popover": "1.3.1-beta.0",
|
|
100
|
+
"@spectrum-web-components/reactive-controllers": "1.3.1-beta.0",
|
|
101
|
+
"@spectrum-web-components/shared": "1.3.1-beta.0"
|
|
102
102
|
},
|
|
103
103
|
"devDependencies": {
|
|
104
|
-
"@spectrum-css/menu": "
|
|
104
|
+
"@spectrum-css/menu": "9.1.1"
|
|
105
105
|
},
|
|
106
106
|
"types": "./src/index.d.ts",
|
|
107
107
|
"customElements": "custom-elements.json",
|
package/src/Menu.d.ts
CHANGED
|
@@ -121,6 +121,7 @@ export declare class Menu extends Menu_base {
|
|
|
121
121
|
focusOnFirstSelectedItem({ preventScroll, }?: FocusOptions): void;
|
|
122
122
|
focus({ preventScroll }?: FocusOptions): void;
|
|
123
123
|
private pointerUpTarget;
|
|
124
|
+
private handleMouseover;
|
|
124
125
|
private handleFocusout;
|
|
125
126
|
private handleClick;
|
|
126
127
|
private handlePointerup;
|
package/src/Menu.dev.js
CHANGED
|
@@ -98,6 +98,7 @@ export class Menu extends SizedMixin(SpectrumElement, { noDefaultSize: true }) {
|
|
|
98
98
|
}
|
|
99
99
|
);
|
|
100
100
|
this.addEventListener("click", this.handleClick);
|
|
101
|
+
this.addEventListener("mouseover", this.handleMouseover);
|
|
101
102
|
this.addEventListener("focusout", this.handleFocusout);
|
|
102
103
|
this.addEventListener("sp-menu-item-keydown", this.handleKeydown);
|
|
103
104
|
this.addEventListener("pointerup", this.handlePointerup);
|
|
@@ -305,6 +306,14 @@ export class Menu extends SizedMixin(SpectrumElement, { noDefaultSize: true }) {
|
|
|
305
306
|
this.rovingTabindexController.focus({ preventScroll });
|
|
306
307
|
}
|
|
307
308
|
}
|
|
309
|
+
handleMouseover(event) {
|
|
310
|
+
var _a;
|
|
311
|
+
const { target } = event;
|
|
312
|
+
const menuItem = target;
|
|
313
|
+
if (this.childItems.includes(menuItem) && this.isFocusableElement(menuItem)) {
|
|
314
|
+
(_a = this.rovingTabindexController) == null ? void 0 : _a.focusOnItem(menuItem);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
308
317
|
handleFocusout() {
|
|
309
318
|
var _a;
|
|
310
319
|
if (!this.matches(":focus-within"))
|