@spectrum-web-components/menu 1.0.0 → 1.0.2

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.
Files changed (50) hide show
  1. package/package.json +11 -12
  2. package/src/menu-item.css.dev.js +1 -1
  3. package/src/menu-item.css.dev.js.map +1 -1
  4. package/src/menu-item.css.js +1 -1
  5. package/src/menu-item.css.js.map +1 -1
  6. package/LICENSE +0 -201
  7. package/stories/index.js +0 -82
  8. package/stories/index.js.map +0 -7
  9. package/stories/menu-divider.stories.js +0 -32
  10. package/stories/menu-divider.stories.js.map +0 -7
  11. package/stories/menu-group.stories.js +0 -144
  12. package/stories/menu-group.stories.js.map +0 -7
  13. package/stories/menu-item.disconnected.stories.js +0 -176
  14. package/stories/menu-item.disconnected.stories.js.map +0 -7
  15. package/stories/menu-item.stories.js +0 -73
  16. package/stories/menu-item.stories.js.map +0 -7
  17. package/stories/menu-sizes.stories.js +0 -11
  18. package/stories/menu-sizes.stories.js.map +0 -7
  19. package/stories/menu.stories.js +0 -403
  20. package/stories/menu.stories.js.map +0 -7
  21. package/stories/submenu.stories.js +0 -346
  22. package/stories/submenu.stories.js.map +0 -7
  23. package/test/benchmark/test-basic.js +0 -24
  24. package/test/benchmark/test-basic.js.map +0 -7
  25. package/test/menu-divider.test-vrt.js +0 -5
  26. package/test/menu-divider.test-vrt.js.map +0 -7
  27. package/test/menu-group.test-vrt.js +0 -5
  28. package/test/menu-group.test-vrt.js.map +0 -7
  29. package/test/menu-group.test.js +0 -405
  30. package/test/menu-group.test.js.map +0 -7
  31. package/test/menu-item.disconnected.test-vrt.js +0 -5
  32. package/test/menu-item.disconnected.test-vrt.js.map +0 -7
  33. package/test/menu-item.test-vrt.js +0 -5
  34. package/test/menu-item.test-vrt.js.map +0 -7
  35. package/test/menu-item.test.js +0 -180
  36. package/test/menu-item.test.js.map +0 -7
  37. package/test/menu-memory.test.js +0 -5
  38. package/test/menu-memory.test.js.map +0 -7
  39. package/test/menu-selects.test.js +0 -530
  40. package/test/menu-selects.test.js.map +0 -7
  41. package/test/menu-sizes.test-vrt.js +0 -5
  42. package/test/menu-sizes.test-vrt.js.map +0 -7
  43. package/test/menu.test-vrt.js +0 -5
  44. package/test/menu.test-vrt.js.map +0 -7
  45. package/test/menu.test.js +0 -559
  46. package/test/menu.test.js.map +0 -7
  47. package/test/submenu.test-vrt.js +0 -5
  48. package/test/submenu.test-vrt.js.map +0 -7
  49. package/test/submenu.test.js +0 -970
  50. package/test/submenu.test.js.map +0 -7
@@ -1,346 +0,0 @@
1
- "use strict";
2
- import { html } from "@spectrum-web-components/base";
3
- import "@spectrum-web-components/action-menu/sp-action-menu.js";
4
- import "@spectrum-web-components/menu/sp-menu.js";
5
- import "@spectrum-web-components/menu/sp-menu-item.js";
6
- import "@spectrum-web-components/menu/sp-menu-divider.js";
7
- import "@spectrum-web-components/menu/sp-menu-group.js";
8
- import { VirtualTrigger } from "@spectrum-web-components/overlay";
9
- import "@spectrum-web-components/popover/sp-popover.js";
10
- import "@spectrum-web-components/icons-workflow/icons/sp-icon-show-menu.js";
11
- export default {
12
- component: "sp-menu",
13
- title: "Menu/Submenu"
14
- };
15
- function nextFrame() {
16
- return new Promise((res) => requestAnimationFrame(() => res()));
17
- }
18
- class SubmenuReady extends HTMLElement {
19
- constructor() {
20
- super();
21
- this.handleMenuOpened = async (event) => {
22
- this.menu.removeEventListener("sp-opened", this.handleMenuOpened);
23
- await nextFrame();
24
- await event.target.updateComplete;
25
- this.submenu = document.querySelector("#submenu-item-1");
26
- if (!this.submenu) {
27
- return;
28
- }
29
- this.submenu.addEventListener("sp-opened", this.handleSubmenuOpened);
30
- this.submenu.click();
31
- };
32
- this.handleSubmenuOpened = async (event) => {
33
- this.submenu.removeEventListener("sp-opened", this.handleSubmenuOpened);
34
- await nextFrame();
35
- await event.target.updateComplete;
36
- this.submenuChild = document.querySelector(
37
- "#submenu-item-2"
38
- );
39
- if (!this.submenuChild) {
40
- return;
41
- }
42
- this.submenuChild.addEventListener(
43
- "sp-opened",
44
- this.handleSubmenuChildOpened
45
- );
46
- this.submenuChild.click();
47
- };
48
- this.handleSubmenuChildOpened = async (event) => {
49
- this.submenuChild.removeEventListener(
50
- "sp-opened",
51
- this.handleSubmenuChildOpened
52
- );
53
- await nextFrame();
54
- await event.target.updateComplete;
55
- this.ready(true);
56
- };
57
- this.readyPromise = Promise.resolve(false);
58
- this.readyPromise = new Promise((res) => {
59
- this.ready = res;
60
- this.setup();
61
- });
62
- }
63
- async setup() {
64
- await nextFrame();
65
- this.menu = document.querySelector(`sp-action-menu`);
66
- this.menu.addEventListener("sp-opened", this.handleMenuOpened);
67
- this.menu.addEventListener(
68
- "sp-closed",
69
- () => {
70
- this.menu.removeEventListener(
71
- "sp-opened",
72
- this.handleMenuOpened
73
- );
74
- },
75
- { once: true }
76
- );
77
- this.menu.open = true;
78
- }
79
- get updateComplete() {
80
- return this.readyPromise;
81
- }
82
- }
83
- customElements.define("submenu-ready", SubmenuReady);
84
- const submenuDecorator = (story) => {
85
- return html`
86
- ${story()}
87
- <submenu-ready></submenu-ready>
88
- `;
89
- };
90
- export const submenu = () => {
91
- const getValueEls = () => {
92
- return {
93
- root: document.querySelector("#root-value"),
94
- first: document.querySelector("#first-value"),
95
- second: document.querySelector("#second-value")
96
- };
97
- };
98
- const clearValues = () => {
99
- const valueEls = getValueEls();
100
- valueEls.root.textContent = "";
101
- valueEls.first.textContent = "";
102
- valueEls.second.textContent = "";
103
- };
104
- const handleRootChange = (event) => {
105
- const valueEls = getValueEls();
106
- valueEls.root.textContent = event.target.value;
107
- };
108
- const handleFirstDescendantChange = (event) => {
109
- const valueEls = getValueEls();
110
- valueEls.first.textContent = event.target.selected[0] || "";
111
- };
112
- const handleSecondDescendantChange = (event) => {
113
- const valueEls = getValueEls();
114
- valueEls.second.textContent = event.target.selected[0] || "";
115
- };
116
- return html`
117
- <sp-action-menu
118
- label="More Actions"
119
- @change=${handleRootChange}
120
- @sp-opened=${clearValues}
121
- >
122
- <sp-icon-show-menu slot="icon"></sp-icon-show-menu>
123
- <sp-menu-group
124
- @change=${() => console.log("group change")}
125
- role="none"
126
- >
127
- <span slot="header">New York</span>
128
- <sp-menu-item>Bronx</sp-menu-item>
129
- <sp-menu-item id="submenu-item-1">
130
- Brooklyn
131
- <sp-menu
132
- slot="submenu"
133
- @change=${handleFirstDescendantChange}
134
- >
135
- <sp-menu-item id="submenu-item-2">
136
- Ft. Greene
137
- <sp-menu
138
- slot="submenu"
139
- @change=${handleSecondDescendantChange}
140
- >
141
- <sp-menu-item>S. Oxford St</sp-menu-item>
142
- <sp-menu-item>S. Portland Ave</sp-menu-item>
143
- <sp-menu-item>S. Elliot Pl</sp-menu-item>
144
- </sp-menu>
145
- </sp-menu-item>
146
- <sp-menu-item disabled>Park Slope</sp-menu-item>
147
- <sp-menu-item>Williamsburg</sp-menu-item>
148
- </sp-menu>
149
- </sp-menu-item>
150
- <sp-menu-item>
151
- Manhattan
152
- <sp-menu
153
- slot="submenu"
154
- @change=${handleFirstDescendantChange}
155
- >
156
- <sp-menu-item disabled>SoHo</sp-menu-item>
157
- <sp-menu-item>
158
- Union Square
159
- <sp-menu
160
- slot="submenu"
161
- @change=${handleSecondDescendantChange}
162
- >
163
- <sp-menu-item>14th St</sp-menu-item>
164
- <sp-menu-item>Broadway</sp-menu-item>
165
- <sp-menu-item>Park Ave</sp-menu-item>
166
- </sp-menu>
167
- </sp-menu-item>
168
- <sp-menu-item>Upper East Side</sp-menu-item>
169
- </sp-menu>
170
- </sp-menu-item>
171
- <sp-menu-item disabled>
172
- Queens
173
- <sp-menu slot="submenu">
174
- <sp-menu-item>
175
- You shouldn't be able to see this!
176
- </sp-menu-item>
177
- <sp-menu-item>Forest Hills</sp-menu-item>
178
- <sp-menu-item>Jamaica</sp-menu-item>
179
- </sp-menu>
180
- </sp-menu-item>
181
- </sp-menu-group>
182
- </sp-action-menu>
183
- <div>
184
- Root value:
185
- <span id="root-value"></span>
186
- <br />
187
- First descendant value:
188
- <span id="first-value"></span>
189
- <br />
190
- Second descendant value:
191
- <span id="second-value"></span>
192
- <br />
193
- </div>
194
- `;
195
- };
196
- submenu.decorators = [submenuDecorator];
197
- export const contextMenu = () => {
198
- const contextmenu = async (event) => {
199
- event.preventDefault();
200
- const virtualTrigger = new VirtualTrigger(event.clientX, event.clientY);
201
- const overlay = document.querySelector("sp-overlay");
202
- clearValues();
203
- overlay.triggerElement = virtualTrigger;
204
- overlay.willPreventClose = true;
205
- overlay.type = "auto";
206
- overlay.placement = "right-start";
207
- overlay.open = true;
208
- };
209
- const getValueEls = () => {
210
- return {
211
- root: document.querySelector("#root-value"),
212
- first: document.querySelector("#first-value")
213
- };
214
- };
215
- const clearValues = () => {
216
- const valueEls = getValueEls();
217
- valueEls.root.textContent = "";
218
- valueEls.first.textContent = "";
219
- };
220
- const handleRootChange = (event) => {
221
- var _a;
222
- const valueEls = getValueEls();
223
- valueEls.root.textContent = event.target.value;
224
- (_a = event.target.parentElement) == null ? void 0 : _a.dispatchEvent(
225
- new Event("close", { bubbles: true })
226
- );
227
- };
228
- const handleFirstDescendantChange = (event) => {
229
- const valueEls = getValueEls();
230
- valueEls.first.textContent = event.target.selected[0] || "";
231
- };
232
- return html`
233
- <style>
234
- .app-root {
235
- position: absolute;
236
- inset: 0;
237
- }
238
- active-overlay::part(theme) {
239
- --swc-menu-width: 200px;
240
- }
241
- </style>
242
- <div class="app-root" @contextmenu=${contextmenu}>
243
- <div>
244
- Root value:
245
- <span id="root-value"></span>
246
- <br />
247
- First descendant value:
248
- <span id="first-value"></span>
249
- <br />
250
- </div>
251
- </div>
252
- <sp-overlay>
253
- <sp-popover
254
- style="max-width: 33vw;"
255
- @click=${(event) => {
256
- var _a;
257
- return (_a = event.target) == null ? void 0 : _a.dispatchEvent(
258
- new Event("close", { bubbles: true })
259
- );
260
- }}
261
- >
262
- <sp-menu @change=${handleRootChange}>
263
- <sp-menu-group>
264
- <span slot="header">Options</span>
265
- <sp-menu-item>
266
- Copy
267
- <span slot="value">⌘​S</span>
268
- </sp-menu-item>
269
- <sp-menu-item>
270
- Paste
271
- <span slot="value">⌘​P</span>
272
- </sp-menu-item>
273
- <sp-menu-item>
274
- Cut
275
- <span slot="value">⌘​X</span>
276
- </sp-menu-item>
277
- <sp-menu-divider></sp-menu-divider>
278
- <sp-menu-item>
279
- Select layer
280
- <sp-menu
281
- slot="submenu"
282
- selects="single"
283
- @change=${handleFirstDescendantChange}
284
- >
285
- <sp-menu-item selected>Ellipse 1</sp-menu-item>
286
- <sp-menu-item>Rectangle</sp-menu-item>
287
- </sp-menu>
288
- </sp-menu-item>
289
- <sp-menu-item>
290
- Group
291
- <span slot="value">⌘​G</span>
292
- </sp-menu-item>
293
- <sp-menu-item>
294
- Unlock
295
- <span slot="value">⌘​L</span>
296
- </sp-menu-item>
297
- <sp-menu-divider></sp-menu-divider>
298
- <sp-menu-item>
299
- Bring to front
300
- <span slot="value">⇧​⌘​​]</span>
301
- </sp-menu-item>
302
- <sp-menu-item>
303
- Bring forward
304
- <span slot="value">⌘​​]</span>
305
- </sp-menu-item>
306
- <sp-menu-item>
307
- Send backward
308
- <span slot="value">⌘​​[</span>
309
- </sp-menu-item>
310
- <sp-menu-item>
311
- Send to back
312
- <span slot="value">⇧​⌘​​[</span>
313
- </sp-menu-item>
314
- <sp-menu-divider></sp-menu-divider>
315
- <sp-menu-item>
316
- Delete
317
- <span slot="value">DEL</span>
318
- </sp-menu-item>
319
- </sp-menu-group>
320
- </sp-menu>
321
- </sp-popover>
322
- </sp-overlay>
323
- `;
324
- };
325
- export const customRootSubmenu = () => {
326
- return html`
327
- <sp-action-menu label="More Actions">
328
- <sp-menu-item>Bronx</sp-menu-item>
329
- <sp-menu-item id="submenu-item-1">
330
- Brooklyn
331
- <div role="menuitem" slot="submenu" style="padding: 12px">
332
- <img
333
- src="https://placekitten.com/200/200"
334
- alt="Kitten"
335
- style="width: 100%; height: auto; border-radius: 4px"
336
- />
337
- <p>I am an arbitrary content in submenu</p>
338
- </div>
339
- </sp-menu-item>
340
- </sp-action-menu>
341
- `;
342
- };
343
- customRootSubmenu.swc_vrt = {
344
- skip: true
345
- };
346
- //# sourceMappingURL=submenu.stories.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["submenu.stories.ts"],
4
- "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport { html, TemplateResult } from '@spectrum-web-components/base';\n\nimport '@spectrum-web-components/action-menu/sp-action-menu.js';\nimport '@spectrum-web-components/menu/sp-menu.js';\nimport '@spectrum-web-components/menu/sp-menu-item.js';\nimport '@spectrum-web-components/menu/sp-menu-divider.js';\nimport '@spectrum-web-components/menu/sp-menu-group.js';\nimport { Overlay, VirtualTrigger } from '@spectrum-web-components/overlay';\nimport '@spectrum-web-components/popover/sp-popover.js';\nimport '@spectrum-web-components/icons-workflow/icons/sp-icon-show-menu.js';\nimport type { ActionMenu } from '@spectrum-web-components/action-menu';\nimport type { Menu, MenuItem } from '@spectrum-web-components/menu';\n\nexport default {\n component: 'sp-menu',\n title: 'Menu/Submenu',\n};\n\nfunction nextFrame(): Promise<void> {\n return new Promise((res) => requestAnimationFrame(() => res()));\n}\n\nclass SubmenuReady extends HTMLElement {\n ready!: (value: boolean | PromiseLike<boolean>) => void;\n\n constructor() {\n super();\n this.readyPromise = new Promise((res) => {\n this.ready = res;\n this.setup();\n });\n }\n\n menu!: ActionMenu;\n submenu!: MenuItem;\n submenuChild!: MenuItem;\n\n async setup(): Promise<void> {\n await nextFrame();\n\n this.menu = document.querySelector(`sp-action-menu`) as ActionMenu;\n this.menu.addEventListener('sp-opened', this.handleMenuOpened);\n this.menu.addEventListener(\n 'sp-closed',\n () => {\n this.menu.removeEventListener(\n 'sp-opened',\n this.handleMenuOpened\n );\n },\n { once: true }\n );\n this.menu.open = true;\n }\n\n handleMenuOpened = async (event: Event): Promise<void> => {\n this.menu.removeEventListener('sp-opened', this.handleMenuOpened);\n await nextFrame();\n await (event.target as ActionMenu).updateComplete;\n\n this.submenu = document.querySelector('#submenu-item-1') as MenuItem;\n if (!this.submenu) {\n return;\n }\n\n this.submenu.addEventListener('sp-opened', this.handleSubmenuOpened);\n this.submenu.click();\n };\n\n handleSubmenuOpened = async (event: Event): Promise<void> => {\n this.submenu.removeEventListener('sp-opened', this.handleSubmenuOpened);\n await nextFrame();\n await (event.target as MenuItem).updateComplete;\n\n this.submenuChild = document.querySelector(\n '#submenu-item-2'\n ) as MenuItem;\n if (!this.submenuChild) {\n return;\n }\n this.submenuChild.addEventListener(\n 'sp-opened',\n this.handleSubmenuChildOpened\n );\n this.submenuChild.click();\n };\n\n handleSubmenuChildOpened = async (event: Event): Promise<void> => {\n this.submenuChild.removeEventListener(\n 'sp-opened',\n this.handleSubmenuChildOpened\n );\n await nextFrame();\n await (event.target as MenuItem).updateComplete;\n\n this.ready(true);\n };\n\n private readyPromise: Promise<boolean> = Promise.resolve(false);\n\n get updateComplete(): Promise<boolean> {\n return this.readyPromise;\n }\n}\n\ncustomElements.define('submenu-ready', SubmenuReady);\n\nconst submenuDecorator = (story: () => TemplateResult): TemplateResult => {\n return html`\n ${story()}\n <submenu-ready></submenu-ready>\n `;\n};\n\nexport const submenu = (): TemplateResult => {\n const getValueEls = (): {\n root: HTMLElement;\n first: HTMLElement;\n second: HTMLElement;\n } => {\n return {\n root: document.querySelector('#root-value') as HTMLElement,\n first: document.querySelector('#first-value') as HTMLElement,\n second: document.querySelector('#second-value') as HTMLElement,\n };\n };\n const clearValues = (): void => {\n const valueEls = getValueEls();\n valueEls.root.textContent = '';\n valueEls.first.textContent = '';\n valueEls.second.textContent = '';\n };\n const handleRootChange = (event: Event & { target: ActionMenu }): void => {\n const valueEls = getValueEls();\n valueEls.root.textContent = event.target.value;\n };\n const handleFirstDescendantChange = (\n event: Event & { target: Menu }\n ): void => {\n const valueEls = getValueEls();\n valueEls.first.textContent = event.target.selected[0] || '';\n };\n const handleSecondDescendantChange = (\n event: Event & { target: Menu }\n ): void => {\n const valueEls = getValueEls();\n valueEls.second.textContent = event.target.selected[0] || '';\n };\n return html`\n <sp-action-menu\n label=\"More Actions\"\n @change=${handleRootChange}\n @sp-opened=${clearValues}\n >\n <sp-icon-show-menu slot=\"icon\"></sp-icon-show-menu>\n <sp-menu-group\n @change=${() => console.log('group change')}\n role=\"none\"\n >\n <span slot=\"header\">New York</span>\n <sp-menu-item>Bronx</sp-menu-item>\n <sp-menu-item id=\"submenu-item-1\">\n Brooklyn\n <sp-menu\n slot=\"submenu\"\n @change=${handleFirstDescendantChange}\n >\n <sp-menu-item id=\"submenu-item-2\">\n Ft. Greene\n <sp-menu\n slot=\"submenu\"\n @change=${handleSecondDescendantChange}\n >\n <sp-menu-item>S. Oxford St</sp-menu-item>\n <sp-menu-item>S. Portland Ave</sp-menu-item>\n <sp-menu-item>S. Elliot Pl</sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n <sp-menu-item disabled>Park Slope</sp-menu-item>\n <sp-menu-item>Williamsburg</sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n <sp-menu-item>\n Manhattan\n <sp-menu\n slot=\"submenu\"\n @change=${handleFirstDescendantChange}\n >\n <sp-menu-item disabled>SoHo</sp-menu-item>\n <sp-menu-item>\n Union Square\n <sp-menu\n slot=\"submenu\"\n @change=${handleSecondDescendantChange}\n >\n <sp-menu-item>14th St</sp-menu-item>\n <sp-menu-item>Broadway</sp-menu-item>\n <sp-menu-item>Park Ave</sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n <sp-menu-item>Upper East Side</sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n <sp-menu-item disabled>\n Queens\n <sp-menu slot=\"submenu\">\n <sp-menu-item>\n You shouldn't be able to see this!\n </sp-menu-item>\n <sp-menu-item>Forest Hills</sp-menu-item>\n <sp-menu-item>Jamaica</sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n </sp-menu-group>\n </sp-action-menu>\n <div>\n Root value:\n <span id=\"root-value\"></span>\n <br />\n First descendant value:\n <span id=\"first-value\"></span>\n <br />\n Second descendant value:\n <span id=\"second-value\"></span>\n <br />\n </div>\n `;\n};\n\nsubmenu.decorators = [submenuDecorator];\n\nexport const contextMenu = (): TemplateResult => {\n const contextmenu = async (event: PointerEvent): Promise<void> => {\n event.preventDefault();\n const virtualTrigger = new VirtualTrigger(event.clientX, event.clientY);\n const overlay = document.querySelector('sp-overlay') as Overlay;\n clearValues();\n overlay.triggerElement = virtualTrigger;\n overlay.willPreventClose = true;\n overlay.type = 'auto';\n overlay.placement = 'right-start';\n overlay.open = true;\n };\n const getValueEls = (): { root: HTMLElement; first: HTMLElement } => {\n return {\n root: document.querySelector('#root-value') as HTMLElement,\n first: document.querySelector('#first-value') as HTMLElement,\n };\n };\n const clearValues = (): void => {\n const valueEls = getValueEls();\n valueEls.root.textContent = '';\n valueEls.first.textContent = '';\n };\n const handleRootChange = (event: Event & { target: ActionMenu }): void => {\n const valueEls = getValueEls();\n valueEls.root.textContent = event.target.value;\n event.target.parentElement?.dispatchEvent(\n new Event('close', { bubbles: true })\n );\n };\n const handleFirstDescendantChange = (\n event: Event & { target: Menu }\n ): void => {\n const valueEls = getValueEls();\n valueEls.first.textContent = event.target.selected[0] || '';\n };\n return html`\n <style>\n .app-root {\n position: absolute;\n inset: 0;\n }\n active-overlay::part(theme) {\n --swc-menu-width: 200px;\n }\n </style>\n <div class=\"app-root\" @contextmenu=${contextmenu}>\n <div>\n Root value:\n <span id=\"root-value\"></span>\n <br />\n First descendant value:\n <span id=\"first-value\"></span>\n <br />\n </div>\n </div>\n <sp-overlay>\n <sp-popover\n style=\"max-width: 33vw;\"\n @click=${(event: Event) =>\n event.target?.dispatchEvent(\n new Event('close', { bubbles: true })\n )}\n >\n <sp-menu @change=${handleRootChange}>\n <sp-menu-group>\n <span slot=\"header\">Options</span>\n <sp-menu-item>\n Copy\n <span slot=\"value\">\u2318\u200BS</span>\n </sp-menu-item>\n <sp-menu-item>\n Paste\n <span slot=\"value\">\u2318\u200BP</span>\n </sp-menu-item>\n <sp-menu-item>\n Cut\n <span slot=\"value\">\u2318\u200BX</span>\n </sp-menu-item>\n <sp-menu-divider></sp-menu-divider>\n <sp-menu-item>\n Select layer\n <sp-menu\n slot=\"submenu\"\n selects=\"single\"\n @change=${handleFirstDescendantChange}\n >\n <sp-menu-item selected>Ellipse 1</sp-menu-item>\n <sp-menu-item>Rectangle</sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n <sp-menu-item>\n Group\n <span slot=\"value\">\u2318\u200BG</span>\n </sp-menu-item>\n <sp-menu-item>\n Unlock\n <span slot=\"value\">\u2318\u200BL</span>\n </sp-menu-item>\n <sp-menu-divider></sp-menu-divider>\n <sp-menu-item>\n Bring to front\n <span slot=\"value\">\u21E7\u200B\u2318\u200B\u200B]</span>\n </sp-menu-item>\n <sp-menu-item>\n Bring forward\n <span slot=\"value\">\u2318\u200B\u200B]</span>\n </sp-menu-item>\n <sp-menu-item>\n Send backward\n <span slot=\"value\">\u2318\u200B\u200B[</span>\n </sp-menu-item>\n <sp-menu-item>\n Send to back\n <span slot=\"value\">\u21E7\u200B\u2318\u200B\u200B[</span>\n </sp-menu-item>\n <sp-menu-divider></sp-menu-divider>\n <sp-menu-item>\n Delete\n <span slot=\"value\">DEL</span>\n </sp-menu-item>\n </sp-menu-group>\n </sp-menu>\n </sp-popover>\n </sp-overlay>\n `;\n};\n\nexport const customRootSubmenu = (): TemplateResult => {\n return html`\n <sp-action-menu label=\"More Actions\">\n <sp-menu-item>Bronx</sp-menu-item>\n <sp-menu-item id=\"submenu-item-1\">\n Brooklyn\n <div role=\"menuitem\" slot=\"submenu\" style=\"padding: 12px\">\n <img\n src=\"https://placekitten.com/200/200\"\n alt=\"Kitten\"\n style=\"width: 100%; height: auto; border-radius: 4px\"\n />\n <p>I am an arbitrary content in submenu</p>\n </div>\n </sp-menu-item>\n </sp-action-menu>\n `;\n};\n\ncustomRootSubmenu.swc_vrt = {\n skip: true,\n};\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,24 +0,0 @@
1
- "use strict";
2
- import "@spectrum-web-components/menu/sp-menu.js";
3
- import "@spectrum-web-components/menu/sp-menu-item.js";
4
- import "@spectrum-web-components/menu/sp-menu-group.js";
5
- import "@spectrum-web-components/menu/sp-menu-divider.js";
6
- import { html } from "lit";
7
- import { measureFixtureCreation } from "../../../../test/benchmark/helpers.js";
8
- measureFixtureCreation(html`
9
- <sp-menu selects="multiple">
10
- <sp-menu-group selects="inherit">
11
- <span slot="header">Section Heading</span>
12
- <sp-menu-item>Action 1</sp-menu-item>
13
- <sp-menu-item>Action 2</sp-menu-item>
14
- <sp-menu-item>Action 3</sp-menu-item>
15
- </sp-menu-group>
16
- <sp-menu-divider></sp-menu-divider>
17
- <sp-menu-group selects="inherit">
18
- <span slot="header">Section Heading</span>
19
- <sp-menu-item>Save</sp-menu-item>
20
- <sp-menu-item disabled>Download</sp-menu-item>
21
- </sp-menu-group>
22
- </sp-menu>
23
- `);
24
- //# sourceMappingURL=test-basic.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["test-basic.ts"],
4
- "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport '@spectrum-web-components/menu/sp-menu.js';\nimport '@spectrum-web-components/menu/sp-menu-item.js';\nimport '@spectrum-web-components/menu/sp-menu-group.js';\nimport '@spectrum-web-components/menu/sp-menu-divider.js';\nimport { html } from 'lit';\nimport { measureFixtureCreation } from '../../../../test/benchmark/helpers.js';\n\nmeasureFixtureCreation(html`\n <sp-menu selects=\"multiple\">\n <sp-menu-group selects=\"inherit\">\n <span slot=\"header\">Section Heading</span>\n <sp-menu-item>Action 1</sp-menu-item>\n <sp-menu-item>Action 2</sp-menu-item>\n <sp-menu-item>Action 3</sp-menu-item>\n </sp-menu-group>\n <sp-menu-divider></sp-menu-divider>\n <sp-menu-group selects=\"inherit\">\n <span slot=\"header\">Section Heading</span>\n <sp-menu-item>Save</sp-menu-item>\n <sp-menu-item disabled>Download</sp-menu-item>\n </sp-menu-group>\n </sp-menu>\n`);\n"],
5
- "mappings": ";AAYA,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,SAAS,YAAY;AACrB,SAAS,8BAA8B;AAEvC,uBAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAetB;",
6
- "names": []
7
- }
@@ -1,5 +0,0 @@
1
- "use strict";
2
- import * as stories from "../stories/menu-divider.stories.js";
3
- import { regressVisuals } from "../../../test/visual/test.js";
4
- regressVisuals("MenuDividerStories", stories);
5
- //# sourceMappingURL=menu-divider.test-vrt.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["menu-divider.test-vrt.ts"],
4
- "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport * as stories from '../stories/menu-divider.stories.js';\nimport { regressVisuals } from '../../../test/visual/test.js';\nimport type { TestsType } from '../../../test/visual/test.js';\n\nregressVisuals('MenuDividerStories', stories as unknown as TestsType);\n"],
5
- "mappings": ";AAYA,YAAY,aAAa;AACzB,SAAS,sBAAsB;AAG/B,eAAe,sBAAsB,OAA+B;",
6
- "names": []
7
- }
@@ -1,5 +0,0 @@
1
- "use strict";
2
- import * as stories from "../stories/menu-group.stories.js";
3
- import { regressVisuals } from "../../../test/visual/test.js";
4
- regressVisuals("MenuGroupStories", stories);
5
- //# sourceMappingURL=menu-group.test-vrt.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["menu-group.test-vrt.ts"],
4
- "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport * as stories from '../stories/menu-group.stories.js';\nimport { regressVisuals } from '../../../test/visual/test.js';\nimport type { TestsType } from '../../../test/visual/test.js';\n\nregressVisuals('MenuGroupStories', stories as unknown as TestsType);\n"],
5
- "mappings": ";AAYA,YAAY,aAAa;AACzB,SAAS,sBAAsB;AAG/B,eAAe,oBAAoB,OAA+B;",
6
- "names": []
7
- }