@spectrum-web-components/menu 1.1.0 → 1.1.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.
- package/package.json +12 -12
- package/sp-menu-divider.d.ts +6 -0
- package/sp-menu-divider.dev.js +5 -0
- package/sp-menu-divider.dev.js.map +7 -0
- package/sp-menu-divider.js +2 -0
- package/sp-menu-divider.js.map +7 -0
- package/sp-menu-group.d.ts +6 -0
- package/sp-menu-group.dev.js +5 -0
- package/sp-menu-group.dev.js.map +7 -0
- package/sp-menu-group.js +2 -0
- package/sp-menu-group.js.map +7 -0
- package/sp-menu-item.d.ts +6 -0
- package/sp-menu-item.dev.js +5 -0
- package/sp-menu-item.dev.js.map +7 -0
- package/sp-menu-item.js +2 -0
- package/sp-menu-item.js.map +7 -0
- package/sp-menu.d.ts +6 -0
- package/sp-menu.dev.js +5 -0
- package/sp-menu.dev.js.map +7 -0
- package/sp-menu.js +2 -0
- package/sp-menu.js.map +7 -0
- package/src/Menu.d.ts +118 -0
- package/src/Menu.dev.js +740 -0
- package/src/Menu.dev.js.map +7 -0
- package/src/Menu.js +8 -0
- package/src/Menu.js.map +7 -0
- package/src/MenuDivider.d.ts +13 -0
- package/src/MenuDivider.dev.js +19 -0
- package/src/MenuDivider.dev.js.map +7 -0
- package/src/MenuDivider.js +2 -0
- package/src/MenuDivider.js.map +7 -0
- package/src/MenuGroup.d.ts +18 -0
- package/src/MenuGroup.dev.js +78 -0
- package/src/MenuGroup.dev.js.map +7 -0
- package/src/MenuGroup.js +7 -0
- package/src/MenuGroup.js.map +7 -0
- package/src/MenuItem.d.ts +125 -0
- package/src/MenuItem.dev.js +518 -0
- package/src/MenuItem.dev.js.map +7 -0
- package/src/MenuItem.js +50 -0
- package/src/MenuItem.js.map +7 -0
- package/src/checkmark-overrides.css.d.ts +2 -0
- package/src/checkmark-overrides.css.dev.js +7 -0
- package/src/checkmark-overrides.css.dev.js.map +7 -0
- package/src/checkmark-overrides.css.js +4 -0
- package/src/checkmark-overrides.css.js.map +7 -0
- package/src/chevron-overrides.css.d.ts +2 -0
- package/src/chevron-overrides.css.dev.js +7 -0
- package/src/chevron-overrides.css.dev.js.map +7 -0
- package/src/chevron-overrides.css.js +4 -0
- package/src/chevron-overrides.css.js.map +7 -0
- package/src/index.d.ts +4 -0
- package/src/index.dev.js +6 -0
- package/src/index.dev.js.map +7 -0
- package/src/index.js +2 -0
- package/src/index.js.map +7 -0
- package/src/menu-divider-overrides.css.d.ts +2 -0
- package/src/menu-divider-overrides.css.dev.js +7 -0
- package/src/menu-divider-overrides.css.dev.js.map +7 -0
- package/src/menu-divider-overrides.css.js +4 -0
- package/src/menu-divider-overrides.css.js.map +7 -0
- package/src/menu-divider.css.d.ts +2 -0
- package/src/menu-divider.css.dev.js +7 -0
- package/src/menu-divider.css.dev.js.map +7 -0
- package/src/menu-divider.css.js +4 -0
- package/src/menu-divider.css.js.map +7 -0
- package/src/menu-group.css.d.ts +2 -0
- package/src/menu-group.css.dev.js +7 -0
- package/src/menu-group.css.dev.js.map +7 -0
- package/src/menu-group.css.js +4 -0
- package/src/menu-group.css.js.map +7 -0
- package/src/menu-item-overrides.css.d.ts +2 -0
- package/src/menu-item-overrides.css.dev.js +7 -0
- package/src/menu-item-overrides.css.dev.js.map +7 -0
- package/src/menu-item-overrides.css.js +4 -0
- package/src/menu-item-overrides.css.js.map +7 -0
- package/src/menu-item.css.d.ts +2 -0
- package/src/menu-item.css.dev.js +7 -0
- package/src/menu-item.css.dev.js.map +7 -0
- package/src/menu-item.css.js +4 -0
- package/src/menu-item.css.js.map +7 -0
- package/src/menu-overrides.css.d.ts +2 -0
- package/src/menu-overrides.css.dev.js +7 -0
- package/src/menu-overrides.css.dev.js.map +7 -0
- package/src/menu-overrides.css.js +4 -0
- package/src/menu-overrides.css.js.map +7 -0
- package/src/menu-sectionHeading-overrides.css.d.ts +2 -0
- package/src/menu-sectionHeading-overrides.css.dev.js +7 -0
- package/src/menu-sectionHeading-overrides.css.dev.js.map +7 -0
- package/src/menu-sectionHeading-overrides.css.js +4 -0
- package/src/menu-sectionHeading-overrides.css.js.map +7 -0
- package/src/menu.css.d.ts +2 -0
- package/src/menu.css.dev.js +7 -0
- package/src/menu.css.dev.js.map +7 -0
- package/src/menu.css.js +4 -0
- package/src/menu.css.js.map +7 -0
- package/src/spectrum-checkmark.css.d.ts +2 -0
- package/src/spectrum-checkmark.css.dev.js +7 -0
- package/src/spectrum-checkmark.css.dev.js.map +7 -0
- package/src/spectrum-checkmark.css.js +4 -0
- package/src/spectrum-checkmark.css.js.map +7 -0
- package/src/spectrum-chevron.css.d.ts +2 -0
- package/src/spectrum-chevron.css.dev.js +7 -0
- package/src/spectrum-chevron.css.dev.js.map +7 -0
- package/src/spectrum-chevron.css.js +4 -0
- package/src/spectrum-chevron.css.js.map +7 -0
- package/src/spectrum-menu-divider.css.d.ts +2 -0
- package/src/spectrum-menu-divider.css.dev.js +7 -0
- package/src/spectrum-menu-divider.css.dev.js.map +7 -0
- package/src/spectrum-menu-divider.css.js +4 -0
- package/src/spectrum-menu-divider.css.js.map +7 -0
- package/src/spectrum-menu-item.css.d.ts +2 -0
- package/src/spectrum-menu-item.css.dev.js +7 -0
- package/src/spectrum-menu-item.css.dev.js.map +7 -0
- package/src/spectrum-menu-item.css.js +4 -0
- package/src/spectrum-menu-item.css.js.map +7 -0
- package/src/spectrum-menu-sectionHeading.css.d.ts +2 -0
- package/src/spectrum-menu-sectionHeading.css.dev.js +7 -0
- package/src/spectrum-menu-sectionHeading.css.dev.js.map +7 -0
- package/src/spectrum-menu-sectionHeading.css.js +4 -0
- package/src/spectrum-menu-sectionHeading.css.js.map +7 -0
- package/src/spectrum-menu.css.d.ts +2 -0
- package/src/spectrum-menu.css.dev.js +7 -0
- package/src/spectrum-menu.css.dev.js.map +7 -0
- package/src/spectrum-menu.css.js +4 -0
- package/src/spectrum-menu.css.js.map +7 -0
- package/stories/index.js +82 -0
- package/stories/index.js.map +7 -0
- package/stories/menu-divider.stories.js +32 -0
- package/stories/menu-divider.stories.js.map +7 -0
- package/stories/menu-group.stories.js +144 -0
- package/stories/menu-group.stories.js.map +7 -0
- package/stories/menu-item.disconnected.stories.js +178 -0
- package/stories/menu-item.disconnected.stories.js.map +7 -0
- package/stories/menu-item.stories.js +73 -0
- package/stories/menu-item.stories.js.map +7 -0
- package/stories/menu-sizes.stories.js +11 -0
- package/stories/menu-sizes.stories.js.map +7 -0
- package/stories/menu.stories.js +407 -0
- package/stories/menu.stories.js.map +7 -0
- package/stories/submenu.stories.js +346 -0
- package/stories/submenu.stories.js.map +7 -0
- package/test/benchmark/test-basic.js +24 -0
- package/test/benchmark/test-basic.js.map +7 -0
- package/test/menu-divider.test-vrt.js +5 -0
- package/test/menu-divider.test-vrt.js.map +7 -0
- package/test/menu-group.test-vrt.js +5 -0
- package/test/menu-group.test-vrt.js.map +7 -0
- package/test/menu-group.test.js +405 -0
- package/test/menu-group.test.js.map +7 -0
- package/test/menu-item.disconnected.test-vrt.js +5 -0
- package/test/menu-item.disconnected.test-vrt.js.map +7 -0
- package/test/menu-item.test-vrt.js +5 -0
- package/test/menu-item.test-vrt.js.map +7 -0
- package/test/menu-item.test.js +189 -0
- package/test/menu-item.test.js.map +7 -0
- package/test/menu-memory.test.js +5 -0
- package/test/menu-memory.test.js.map +7 -0
- package/test/menu-selects.test.js +530 -0
- package/test/menu-selects.test.js.map +7 -0
- package/test/menu-sizes.test-vrt.js +5 -0
- package/test/menu-sizes.test-vrt.js.map +7 -0
- package/test/menu.test-vrt.js +5 -0
- package/test/menu.test-vrt.js.map +7 -0
- package/test/menu.test.js +559 -0
- package/test/menu.test.js.map +7 -0
- package/test/submenu.test-vrt.js +5 -0
- package/test/submenu.test-vrt.js.map +7 -0
- package/test/submenu.test.js +970 -0
- package/test/submenu.test.js.map +7 -0
package/stories/index.js
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import {
|
|
3
|
+
html,
|
|
4
|
+
LitElement
|
|
5
|
+
} from "@spectrum-web-components/base";
|
|
6
|
+
import "@spectrum-web-components/menu/sp-menu.js";
|
|
7
|
+
import "@spectrum-web-components/menu/sp-menu-divider.js";
|
|
8
|
+
import "@spectrum-web-components/menu/sp-menu-item.js";
|
|
9
|
+
import "@spectrum-web-components/popover/sp-popover.js";
|
|
10
|
+
export const MenuMarkup = ({
|
|
11
|
+
size = "m"
|
|
12
|
+
} = {}) => {
|
|
13
|
+
return html`
|
|
14
|
+
<sp-menu size=${size}>
|
|
15
|
+
<sp-menu-item>Deselect</sp-menu-item>
|
|
16
|
+
<sp-menu-item>Select Inverse</sp-menu-item>
|
|
17
|
+
<sp-menu-item>Feather...</sp-menu-item>
|
|
18
|
+
<sp-menu-item>Select and Mask...</sp-menu-item>
|
|
19
|
+
<sp-menu-divider></sp-menu-divider>
|
|
20
|
+
<sp-menu-item>Save Selection</sp-menu-item>
|
|
21
|
+
<sp-menu-item disabled>Make Work Path</sp-menu-item>
|
|
22
|
+
</sp-menu>
|
|
23
|
+
|
|
24
|
+
<sp-popover open>
|
|
25
|
+
<sp-menu size=${size}>
|
|
26
|
+
<sp-menu-item>Deselect</sp-menu-item>
|
|
27
|
+
<sp-menu-item>Select Inverse</sp-menu-item>
|
|
28
|
+
<sp-menu-item>Feather...</sp-menu-item>
|
|
29
|
+
<sp-menu-item>Select and Mask...</sp-menu-item>
|
|
30
|
+
<sp-menu-divider></sp-menu-divider>
|
|
31
|
+
<sp-menu-item>Save Selection</sp-menu-item>
|
|
32
|
+
<sp-menu-item disabled>Make Work Path</sp-menu-item>
|
|
33
|
+
</sp-menu>
|
|
34
|
+
</sp-popover>
|
|
35
|
+
`;
|
|
36
|
+
};
|
|
37
|
+
export class ComplexSlottedGroup extends LitElement {
|
|
38
|
+
get menu() {
|
|
39
|
+
return this.renderRoot.querySelector("sp-menu");
|
|
40
|
+
}
|
|
41
|
+
render() {
|
|
42
|
+
return html`
|
|
43
|
+
<sp-menu>
|
|
44
|
+
<sp-menu-group>
|
|
45
|
+
<sp-menu-item id="i-1">Before First</sp-menu-item>
|
|
46
|
+
<slot name="before"></slot>
|
|
47
|
+
</sp-menu-group>
|
|
48
|
+
<sp-menu-group>
|
|
49
|
+
<sp-menu-item id="i-4">Sibling 1</sp-menu-item>
|
|
50
|
+
<slot></slot>
|
|
51
|
+
<sp-menu-item id="i-10">Sibling 2</sp-menu-item>
|
|
52
|
+
</sp-menu-group>
|
|
53
|
+
<sp-menu-group>
|
|
54
|
+
<sp-menu-item id="i-11">After 1</sp-menu-item>
|
|
55
|
+
<sp-menu-item id="i-12">After 2</sp-menu-item>
|
|
56
|
+
</sp-menu-group>
|
|
57
|
+
</sp-menu>
|
|
58
|
+
`;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
customElements.define("complex-slotted-group", ComplexSlottedGroup);
|
|
62
|
+
export class ComplexSlottedMenu extends LitElement {
|
|
63
|
+
get menu() {
|
|
64
|
+
return this.renderRoot.querySelector(
|
|
65
|
+
"complex-slotted-group"
|
|
66
|
+
).menu;
|
|
67
|
+
}
|
|
68
|
+
render() {
|
|
69
|
+
return html`
|
|
70
|
+
<complex-slotted-group id="group">
|
|
71
|
+
<sp-menu-item id="i-5">Middle 1</sp-menu-item>
|
|
72
|
+
<sp-menu-item id="i-6">Middle 2</sp-menu-item>
|
|
73
|
+
<sp-menu-item id="i-7">Middle 3</sp-menu-item>
|
|
74
|
+
<slot></slot>
|
|
75
|
+
<slot name="before" slot="before"></slot>
|
|
76
|
+
<sp-menu-item slot="before" id="i-3">Before Last</sp-menu-item>
|
|
77
|
+
</complex-slotted-group>
|
|
78
|
+
`;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
customElements.define("complex-slotted-menu", ComplexSlottedMenu);
|
|
82
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["index.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2023 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 {\n html,\n LitElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport '@spectrum-web-components/menu/sp-menu.js';\nimport '@spectrum-web-components/menu/sp-menu-divider.js';\nimport '@spectrum-web-components/menu/sp-menu-item.js';\nimport '@spectrum-web-components/popover/sp-popover.js';\nimport { Menu } from '@spectrum-web-components/menu';\n\nexport const MenuMarkup = ({\n size = 'm' as 's' | 'm' | 'l' | 'xl',\n} = {}): TemplateResult => {\n return html`\n <sp-menu size=${size}>\n <sp-menu-item>Deselect</sp-menu-item>\n <sp-menu-item>Select Inverse</sp-menu-item>\n <sp-menu-item>Feather...</sp-menu-item>\n <sp-menu-item>Select and Mask...</sp-menu-item>\n <sp-menu-divider></sp-menu-divider>\n <sp-menu-item>Save Selection</sp-menu-item>\n <sp-menu-item disabled>Make Work Path</sp-menu-item>\n </sp-menu>\n\n <sp-popover open>\n <sp-menu size=${size}>\n <sp-menu-item>Deselect</sp-menu-item>\n <sp-menu-item>Select Inverse</sp-menu-item>\n <sp-menu-item>Feather...</sp-menu-item>\n <sp-menu-item>Select and Mask...</sp-menu-item>\n <sp-menu-divider></sp-menu-divider>\n <sp-menu-item>Save Selection</sp-menu-item>\n <sp-menu-item disabled>Make Work Path</sp-menu-item>\n </sp-menu>\n </sp-popover>\n `;\n};\n\nexport class ComplexSlottedGroup extends LitElement {\n get menu(): Menu {\n return this.renderRoot.querySelector('sp-menu') as Menu;\n }\n protected override render(): TemplateResult {\n return html`\n <sp-menu>\n <sp-menu-group>\n <sp-menu-item id=\"i-1\">Before First</sp-menu-item>\n <slot name=\"before\"></slot>\n </sp-menu-group>\n <sp-menu-group>\n <sp-menu-item id=\"i-4\">Sibling 1</sp-menu-item>\n <slot></slot>\n <sp-menu-item id=\"i-10\">Sibling 2</sp-menu-item>\n </sp-menu-group>\n <sp-menu-group>\n <sp-menu-item id=\"i-11\">After 1</sp-menu-item>\n <sp-menu-item id=\"i-12\">After 2</sp-menu-item>\n </sp-menu-group>\n </sp-menu>\n `;\n }\n}\n\ncustomElements.define('complex-slotted-group', ComplexSlottedGroup);\n\nexport class ComplexSlottedMenu extends LitElement {\n get menu(): Menu {\n return (\n this.renderRoot.querySelector(\n 'complex-slotted-group'\n ) as ComplexSlottedGroup\n ).menu;\n }\n protected override render(): TemplateResult {\n return html`\n <complex-slotted-group id=\"group\">\n <sp-menu-item id=\"i-5\">Middle 1</sp-menu-item>\n <sp-menu-item id=\"i-6\">Middle 2</sp-menu-item>\n <sp-menu-item id=\"i-7\">Middle 3</sp-menu-item>\n <slot></slot>\n <slot name=\"before\" slot=\"before\"></slot>\n <sp-menu-item slot=\"before\" id=\"i-3\">Before Last</sp-menu-item>\n </complex-slotted-group>\n `;\n }\n}\n\ncustomElements.define('complex-slotted-menu', ComplexSlottedMenu);\n"],
|
|
5
|
+
"mappings": ";AAYA;AAAA,EACI;AAAA,EACA;AAAA,OAEG;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AAGA,aAAM,aAAa,CAAC;AAAA,EACvB,OAAO;AACX,IAAI,CAAC,MAAsB;AACvB,SAAO;AAAA,wBACa,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAWA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWhC;AAEO,aAAM,4BAA4B,WAAW;AAAA,EAChD,IAAI,OAAa;AACb,WAAO,KAAK,WAAW,cAAc,SAAS;AAAA,EAClD;AAAA,EACmB,SAAyB;AACxC,WAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBX;AACJ;AAEA,eAAe,OAAO,yBAAyB,mBAAmB;AAE3D,aAAM,2BAA2B,WAAW;AAAA,EAC/C,IAAI,OAAa;AACb,WACI,KAAK,WAAW;AAAA,MACZ;AAAA,IACJ,EACF;AAAA,EACN;AAAA,EACmB,SAAyB;AACxC,WAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUX;AACJ;AAEA,eAAe,OAAO,wBAAwB,kBAAkB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { html } from "@spectrum-web-components/base";
|
|
3
|
+
import "@spectrum-web-components/menu/sp-menu.js";
|
|
4
|
+
import "@spectrum-web-components/menu/sp-menu-divider.js";
|
|
5
|
+
import "@spectrum-web-components/menu/sp-menu-item.js";
|
|
6
|
+
import "@spectrum-web-components/popover/sp-popover.js";
|
|
7
|
+
export default {
|
|
8
|
+
component: "sp-menu-divider",
|
|
9
|
+
title: "Menu Divider"
|
|
10
|
+
};
|
|
11
|
+
const Template = (size) => {
|
|
12
|
+
return html`
|
|
13
|
+
<sp-popover open>
|
|
14
|
+
<sp-menu>
|
|
15
|
+
<sp-menu-item>Deselect</sp-menu-item>
|
|
16
|
+
<sp-menu-item>Select Inverse</sp-menu-item>
|
|
17
|
+
<sp-menu-item>Feather...</sp-menu-item>
|
|
18
|
+
<sp-menu-divider size=${size}></sp-menu-divider>
|
|
19
|
+
<sp-menu-item>Select and Mask...</sp-menu-item>
|
|
20
|
+
<sp-menu-item>Make Work Path</sp-menu-item>
|
|
21
|
+
<sp-menu-divider size=${size}></sp-menu-divider>
|
|
22
|
+
<sp-menu-item>Save Selection</sp-menu-item>
|
|
23
|
+
<sp-menu-divider size=${size}></sp-menu-divider>
|
|
24
|
+
<sp-menu-item>Create group</sp-menu-item>
|
|
25
|
+
</sp-menu>
|
|
26
|
+
</sp-popover>
|
|
27
|
+
`;
|
|
28
|
+
};
|
|
29
|
+
export const sizeS = () => Template("s");
|
|
30
|
+
export const sizeM = () => Template("m");
|
|
31
|
+
export const sizeL = () => Template("l");
|
|
32
|
+
//# sourceMappingURL=menu-divider.stories.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["menu-divider.stories.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2023 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*/ import { html, TemplateResult } from '@spectrum-web-components/base';\n\nimport '@spectrum-web-components/menu/sp-menu.js';\nimport '@spectrum-web-components/menu/sp-menu-divider.js';\nimport '@spectrum-web-components/menu/sp-menu-item.js';\nimport '@spectrum-web-components/popover/sp-popover.js';\n\nexport default {\n component: 'sp-menu-divider',\n title: 'Menu Divider',\n};\n\nconst Template = (size: string): TemplateResult => {\n return html`\n <sp-popover open>\n <sp-menu>\n <sp-menu-item>Deselect</sp-menu-item>\n <sp-menu-item>Select Inverse</sp-menu-item>\n <sp-menu-item>Feather...</sp-menu-item>\n <sp-menu-divider size=${size}></sp-menu-divider>\n <sp-menu-item>Select and Mask...</sp-menu-item>\n <sp-menu-item>Make Work Path</sp-menu-item>\n <sp-menu-divider size=${size}></sp-menu-divider>\n <sp-menu-item>Save Selection</sp-menu-item>\n <sp-menu-divider size=${size}></sp-menu-divider>\n <sp-menu-item>Create group</sp-menu-item>\n </sp-menu>\n </sp-popover>\n `;\n};\n\nexport const sizeS = (): TemplateResult => Template('s');\n\nexport const sizeM = (): TemplateResult => Template('m');\n\nexport const sizeL = (): TemplateResult => Template('l');\n"],
|
|
5
|
+
"mappings": ";AAUG,SAAS,YAA4B;AAExC,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AAEP,eAAe;AAAA,EACX,WAAW;AAAA,EACX,OAAO;AACX;AAEA,MAAM,WAAW,CAAC,SAAiC;AAC/C,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wCAM6B,IAAI;AAAA;AAAA;AAAA,wCAGJ,IAAI;AAAA;AAAA,wCAEJ,IAAI;AAAA;AAAA;AAAA;AAAA;AAK5C;AAEO,aAAM,QAAQ,MAAsB,SAAS,GAAG;AAEhD,aAAM,QAAQ,MAAsB,SAAS,GAAG;AAEhD,aAAM,QAAQ,MAAsB,SAAS,GAAG;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { html } from "@spectrum-web-components/base";
|
|
3
|
+
import "@spectrum-web-components/menu/sp-menu.js";
|
|
4
|
+
import "@spectrum-web-components/menu/sp-menu-divider.js";
|
|
5
|
+
import "@spectrum-web-components/popover/sp-popover.js";
|
|
6
|
+
import "@spectrum-web-components/menu/sp-menu.js";
|
|
7
|
+
import "@spectrum-web-components/menu/sp-menu-item.js";
|
|
8
|
+
import "@spectrum-web-components/menu/sp-menu-divider.js";
|
|
9
|
+
import "@spectrum-web-components/menu/sp-menu-group.js";
|
|
10
|
+
import "./index.js";
|
|
11
|
+
export default {
|
|
12
|
+
component: "sp-menu",
|
|
13
|
+
title: "Menu Group"
|
|
14
|
+
};
|
|
15
|
+
export const complexSlotted = () => {
|
|
16
|
+
return html`
|
|
17
|
+
<complex-slotted-menu>
|
|
18
|
+
<sp-menu-item slot="before" id="i-2">External A</sp-menu-item>
|
|
19
|
+
<sp-menu-item id="i-8">External 1</sp-menu-item>
|
|
20
|
+
<sp-menu-item id="i-9">External 2</sp-menu-item>
|
|
21
|
+
</complex-slotted-menu>
|
|
22
|
+
`;
|
|
23
|
+
};
|
|
24
|
+
export const mixed = () => {
|
|
25
|
+
let style = "italic";
|
|
26
|
+
let weight = "700";
|
|
27
|
+
let color = "blue";
|
|
28
|
+
let decoration = "overline";
|
|
29
|
+
const styleRules = ({
|
|
30
|
+
style: style2,
|
|
31
|
+
weight: weight2,
|
|
32
|
+
color: color2,
|
|
33
|
+
decoration: decoration2
|
|
34
|
+
}) => {
|
|
35
|
+
return `
|
|
36
|
+
.style-rule {
|
|
37
|
+
font-weight: ${weight2};
|
|
38
|
+
font-style: ${style2};
|
|
39
|
+
color: ${color2};
|
|
40
|
+
text-decoration: ${decoration2};
|
|
41
|
+
}
|
|
42
|
+
`;
|
|
43
|
+
};
|
|
44
|
+
const update = (event) => {
|
|
45
|
+
const { value, id } = event.target;
|
|
46
|
+
switch (id) {
|
|
47
|
+
case "font":
|
|
48
|
+
const values = value.split(",");
|
|
49
|
+
style = values.indexOf("italic") > -1 ? "italic" : "normal";
|
|
50
|
+
weight = values.indexOf("bold") > -1 ? "700" : "400";
|
|
51
|
+
break;
|
|
52
|
+
case "color":
|
|
53
|
+
color = value;
|
|
54
|
+
break;
|
|
55
|
+
case "decoration":
|
|
56
|
+
decoration = value;
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
document.querySelector("#output").textContent = styleRules({
|
|
60
|
+
style,
|
|
61
|
+
weight,
|
|
62
|
+
color,
|
|
63
|
+
decoration
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
return html`
|
|
67
|
+
<style>
|
|
68
|
+
sp-popover {
|
|
69
|
+
position: static;
|
|
70
|
+
float: left;
|
|
71
|
+
}
|
|
72
|
+
</style>
|
|
73
|
+
<sp-popover open>
|
|
74
|
+
<sp-menu label="Style/Color" @change=${update}>
|
|
75
|
+
<sp-menu-group label="Font Style" selects="multiple" id="font">
|
|
76
|
+
<sp-menu-item value="bold" selected>Bold</sp-menu-item>
|
|
77
|
+
<sp-menu-item value="italic" selected>Italic</sp-menu-item>
|
|
78
|
+
</sp-menu-group>
|
|
79
|
+
<sp-menu-divider></sp-menu-divider>
|
|
80
|
+
<sp-menu-group label="Text Color" selects="single" id="color">
|
|
81
|
+
<sp-menu-item value="black">Black</sp-menu-item>
|
|
82
|
+
<sp-menu-item value="blue" selected>Blue</sp-menu-item>
|
|
83
|
+
<sp-menu-item value="red">Red</sp-menu-item>
|
|
84
|
+
<sp-menu-item value="green">Green</sp-menu-item>
|
|
85
|
+
</sp-menu-group>
|
|
86
|
+
<sp-menu-divider></sp-menu-divider>
|
|
87
|
+
<sp-menu-group
|
|
88
|
+
label="Text Decoration"
|
|
89
|
+
selects="single"
|
|
90
|
+
id="decoration"
|
|
91
|
+
>
|
|
92
|
+
<sp-menu-item value="none">None</sp-menu-item>
|
|
93
|
+
<sp-menu-item value="overline" selected>
|
|
94
|
+
Overline
|
|
95
|
+
</sp-menu-item>
|
|
96
|
+
<sp-menu-item value="line-through">
|
|
97
|
+
Line-through
|
|
98
|
+
</sp-menu-item>
|
|
99
|
+
<sp-menu-item value="underline">Underline</sp-menu-item>
|
|
100
|
+
</sp-menu-group>
|
|
101
|
+
</sp-menu>
|
|
102
|
+
</sp-popover>
|
|
103
|
+
<pre
|
|
104
|
+
id="output"
|
|
105
|
+
style="font-family: var(--spectrum-alias-body-text-font-family);"
|
|
106
|
+
>
|
|
107
|
+
${styleRules({ style, weight, color, decoration })}
|
|
108
|
+
</pre
|
|
109
|
+
>
|
|
110
|
+
`;
|
|
111
|
+
};
|
|
112
|
+
export const inherit = () => {
|
|
113
|
+
return html`
|
|
114
|
+
<style>
|
|
115
|
+
sp-popover {
|
|
116
|
+
position: static;
|
|
117
|
+
float: left;
|
|
118
|
+
}
|
|
119
|
+
</style>
|
|
120
|
+
<sp-popover open>
|
|
121
|
+
<sp-menu label="Groceries" selects="multiple">
|
|
122
|
+
<sp-menu-group label="Juice" selects="inherit">
|
|
123
|
+
<sp-menu-item selected>Orange</sp-menu-item>
|
|
124
|
+
<sp-menu-item selected>Apple</sp-menu-item>
|
|
125
|
+
<sp-menu-item>Grape</sp-menu-item>
|
|
126
|
+
</sp-menu-group>
|
|
127
|
+
<sp-menu-divider></sp-menu-divider>
|
|
128
|
+
<sp-menu-group label="Vegetables" selects="inherit">
|
|
129
|
+
<sp-menu-item>Carrots</sp-menu-item>
|
|
130
|
+
<sp-menu-item selected>Summer Squash</sp-menu-item>
|
|
131
|
+
<sp-menu-item>Zuccini</sp-menu-item>
|
|
132
|
+
</sp-menu-group>
|
|
133
|
+
<sp-menu-divider></sp-menu-divider>
|
|
134
|
+
<sp-menu-group label="Dry Goods" selects="inherit">
|
|
135
|
+
<sp-menu-item>Ceral</sp-menu-item>
|
|
136
|
+
<sp-menu-item selected>Flour</sp-menu-item>
|
|
137
|
+
<sp-menu-item>Salt</sp-menu-item>
|
|
138
|
+
<sp-menu-item>Sugar</sp-menu-item>
|
|
139
|
+
</sp-menu-group>
|
|
140
|
+
</sp-menu>
|
|
141
|
+
</sp-popover>
|
|
142
|
+
`;
|
|
143
|
+
};
|
|
144
|
+
//# sourceMappingURL=menu-group.stories.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["menu-group.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*/\nimport { html, TemplateResult } from '@spectrum-web-components/base';\n\nimport { MenuGroup } from '@spectrum-web-components/menu';\nimport '@spectrum-web-components/menu/sp-menu.js';\nimport '@spectrum-web-components/menu/sp-menu-divider.js';\nimport '@spectrum-web-components/popover/sp-popover.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';\n\nimport './index.js';\n\nexport default {\n component: 'sp-menu',\n title: 'Menu Group',\n};\n\nexport const complexSlotted = (): TemplateResult => {\n return html`\n <complex-slotted-menu>\n <sp-menu-item slot=\"before\" id=\"i-2\">External A</sp-menu-item>\n <sp-menu-item id=\"i-8\">External 1</sp-menu-item>\n <sp-menu-item id=\"i-9\">External 2</sp-menu-item>\n </complex-slotted-menu>\n `;\n};\n\nexport const mixed = (): TemplateResult => {\n let style = 'italic';\n let weight = '700';\n let color = 'blue';\n let decoration = 'overline';\n const styleRules = ({\n style,\n weight,\n color,\n decoration,\n }: {\n style: string;\n weight: string;\n color: string;\n decoration: string;\n }): string => {\n return `\n .style-rule {\n font-weight: ${weight};\n font-style: ${style};\n color: ${color};\n text-decoration: ${decoration};\n }\n `;\n };\n const update = (event: Event): void => {\n const { value, id } = event.target as MenuGroup;\n switch (id) {\n case 'font':\n const values = value.split(',');\n style = values.indexOf('italic') > -1 ? 'italic' : 'normal';\n weight = values.indexOf('bold') > -1 ? '700' : '400';\n break;\n case 'color':\n color = value;\n break;\n case 'decoration':\n decoration = value;\n break;\n }\n (document.querySelector('#output') as HTMLElement).textContent =\n styleRules({\n style,\n weight,\n color,\n decoration,\n });\n };\n return html`\n <style>\n sp-popover {\n position: static;\n float: left;\n }\n </style>\n <sp-popover open>\n <sp-menu label=\"Style/Color\" @change=${update}>\n <sp-menu-group label=\"Font Style\" selects=\"multiple\" id=\"font\">\n <sp-menu-item value=\"bold\" selected>Bold</sp-menu-item>\n <sp-menu-item value=\"italic\" selected>Italic</sp-menu-item>\n </sp-menu-group>\n <sp-menu-divider></sp-menu-divider>\n <sp-menu-group label=\"Text Color\" selects=\"single\" id=\"color\">\n <sp-menu-item value=\"black\">Black</sp-menu-item>\n <sp-menu-item value=\"blue\" selected>Blue</sp-menu-item>\n <sp-menu-item value=\"red\">Red</sp-menu-item>\n <sp-menu-item value=\"green\">Green</sp-menu-item>\n </sp-menu-group>\n <sp-menu-divider></sp-menu-divider>\n <sp-menu-group\n label=\"Text Decoration\"\n selects=\"single\"\n id=\"decoration\"\n >\n <sp-menu-item value=\"none\">None</sp-menu-item>\n <sp-menu-item value=\"overline\" selected>\n Overline\n </sp-menu-item>\n <sp-menu-item value=\"line-through\">\n Line-through\n </sp-menu-item>\n <sp-menu-item value=\"underline\">Underline</sp-menu-item>\n </sp-menu-group>\n </sp-menu>\n </sp-popover>\n <pre\n id=\"output\"\n style=\"font-family: var(--spectrum-alias-body-text-font-family);\"\n >\n ${styleRules({ style, weight, color, decoration })}\n </pre\n >\n `;\n};\n\nexport const inherit = (): TemplateResult => {\n return html`\n <style>\n sp-popover {\n position: static;\n float: left;\n }\n </style>\n <sp-popover open>\n <sp-menu label=\"Groceries\" selects=\"multiple\">\n <sp-menu-group label=\"Juice\" selects=\"inherit\">\n <sp-menu-item selected>Orange</sp-menu-item>\n <sp-menu-item selected>Apple</sp-menu-item>\n <sp-menu-item>Grape</sp-menu-item>\n </sp-menu-group>\n <sp-menu-divider></sp-menu-divider>\n <sp-menu-group label=\"Vegetables\" selects=\"inherit\">\n <sp-menu-item>Carrots</sp-menu-item>\n <sp-menu-item selected>Summer Squash</sp-menu-item>\n <sp-menu-item>Zuccini</sp-menu-item>\n </sp-menu-group>\n <sp-menu-divider></sp-menu-divider>\n <sp-menu-group label=\"Dry Goods\" selects=\"inherit\">\n <sp-menu-item>Ceral</sp-menu-item>\n <sp-menu-item selected>Flour</sp-menu-item>\n <sp-menu-item>Salt</sp-menu-item>\n <sp-menu-item>Sugar</sp-menu-item>\n </sp-menu-group>\n </sp-menu>\n </sp-popover>\n `;\n};\n"],
|
|
5
|
+
"mappings": ";AAWA,SAAS,YAA4B;AAGrC,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AAEP,OAAO;AAEP,eAAe;AAAA,EACX,WAAW;AAAA,EACX,OAAO;AACX;AAEO,aAAM,iBAAiB,MAAsB;AAChD,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOX;AAEO,aAAM,QAAQ,MAAsB;AACvC,MAAI,QAAQ;AACZ,MAAI,SAAS;AACb,MAAI,QAAQ;AACZ,MAAI,aAAa;AACjB,QAAM,aAAa,CAAC;AAAA,IAChB,OAAAA;AAAA,IACA,QAAAC;AAAA,IACA,OAAAC;AAAA,IACA,YAAAC;AAAA,EACJ,MAKc;AACV,WAAO;AAAA;AAAA,2BAEYF,OAAM;AAAA,0BACPD,MAAK;AAAA,qBACVE,MAAK;AAAA,+BACKC,WAAU;AAAA;AAAA;AAAA,EAGrC;AACA,QAAM,SAAS,CAAC,UAAuB;AACnC,UAAM,EAAE,OAAO,GAAG,IAAI,MAAM;AAC5B,YAAQ,IAAI;AAAA,MACR,KAAK;AACD,cAAM,SAAS,MAAM,MAAM,GAAG;AAC9B,gBAAQ,OAAO,QAAQ,QAAQ,IAAI,KAAK,WAAW;AACnD,iBAAS,OAAO,QAAQ,MAAM,IAAI,KAAK,QAAQ;AAC/C;AAAA,MACJ,KAAK;AACD,gBAAQ;AACR;AAAA,MACJ,KAAK;AACD,qBAAa;AACb;AAAA,IACR;AACA,IAAC,SAAS,cAAc,SAAS,EAAkB,cAC/C,WAAW;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,CAAC;AAAA,EACT;AACA,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mDAQwC,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAiC3C,WAAW,EAAE,OAAO,QAAQ,OAAO,WAAW,CAAC,CAAC;AAAA;AAAA;AAAA;AAI9D;AAEO,aAAM,UAAU,MAAsB;AACzC,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA8BX;",
|
|
6
|
+
"names": ["style", "weight", "color", "decoration"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
5
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
6
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
7
|
+
if (decorator = decorators[i])
|
|
8
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
9
|
+
if (kind && result) __defProp(target, key, result);
|
|
10
|
+
return result;
|
|
11
|
+
};
|
|
12
|
+
import { html, LitElement } from "lit";
|
|
13
|
+
import { property, state } from "lit/decorators.js";
|
|
14
|
+
import { repeat } from "lit/directives/repeat.js";
|
|
15
|
+
import { when } from "lit/directives/when.js";
|
|
16
|
+
import "@spectrum-web-components/picker/sp-picker.js";
|
|
17
|
+
import "@spectrum-web-components/button/sp-button.js";
|
|
18
|
+
import { SpectrumMixin } from "@spectrum-web-components/base";
|
|
19
|
+
var BlendModeValue = /* @__PURE__ */ ((BlendModeValue2) => {
|
|
20
|
+
BlendModeValue2[BlendModeValue2["normal"] = 2] = "normal";
|
|
21
|
+
BlendModeValue2[BlendModeValue2["multiply"] = 3] = "multiply";
|
|
22
|
+
BlendModeValue2[BlendModeValue2["screen"] = 7] = "screen";
|
|
23
|
+
return BlendModeValue2;
|
|
24
|
+
})(BlendModeValue || {});
|
|
25
|
+
const XElement = SpectrumMixin(LitElement);
|
|
26
|
+
class MyContainer extends XElement {
|
|
27
|
+
constructor() {
|
|
28
|
+
super(...arguments);
|
|
29
|
+
this._counter = 0;
|
|
30
|
+
}
|
|
31
|
+
_handleClick() {
|
|
32
|
+
this._counter += 1;
|
|
33
|
+
}
|
|
34
|
+
render() {
|
|
35
|
+
return html`
|
|
36
|
+
<div>
|
|
37
|
+
${when(
|
|
38
|
+
this._counter % 2 === 0,
|
|
39
|
+
() => html`
|
|
40
|
+
<my-view1></my-view1>
|
|
41
|
+
`,
|
|
42
|
+
() => html`
|
|
43
|
+
<my-view2></my-view2>
|
|
44
|
+
`
|
|
45
|
+
)}
|
|
46
|
+
<sp-button
|
|
47
|
+
variant="primary"
|
|
48
|
+
size="m"
|
|
49
|
+
@click=${this._handleClick}
|
|
50
|
+
>
|
|
51
|
+
Switch views
|
|
52
|
+
</sp-button>
|
|
53
|
+
</div>
|
|
54
|
+
`;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
__decorateClass([
|
|
58
|
+
state()
|
|
59
|
+
], MyContainer.prototype, "_counter", 2);
|
|
60
|
+
customElements.define("my-container", MyContainer);
|
|
61
|
+
class MyView1 extends XElement {
|
|
62
|
+
render() {
|
|
63
|
+
const blendModeOptions = [
|
|
64
|
+
{
|
|
65
|
+
value: 2 /* normal */,
|
|
66
|
+
title: "Normal 1",
|
|
67
|
+
subtitle: "No effect applied"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
value: 3 /* multiply */,
|
|
71
|
+
title: "Multiply",
|
|
72
|
+
subtitle: "Darken shadows with contrast and details"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
value: 7 /* screen */,
|
|
76
|
+
title: "Screen",
|
|
77
|
+
subtitle: "Brighten highlights with contrast and details"
|
|
78
|
+
}
|
|
79
|
+
];
|
|
80
|
+
return html`
|
|
81
|
+
View 1
|
|
82
|
+
<my-picker
|
|
83
|
+
.blendMode=${2 /* normal */}
|
|
84
|
+
.blendModeOptions=${blendModeOptions}
|
|
85
|
+
dir="ltr"
|
|
86
|
+
></my-picker>
|
|
87
|
+
`;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
customElements.define("my-view1", MyView1);
|
|
91
|
+
class MyView2 extends XElement {
|
|
92
|
+
render() {
|
|
93
|
+
const blendModeOptions = [
|
|
94
|
+
{
|
|
95
|
+
value: 2 /* normal */,
|
|
96
|
+
title: "Normal 2",
|
|
97
|
+
subtitle: "No effect applied"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
value: 3 /* multiply */,
|
|
101
|
+
title: "Multiply",
|
|
102
|
+
subtitle: "Darken shadows with contrast and details"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
value: 7 /* screen */,
|
|
106
|
+
title: "Screen",
|
|
107
|
+
subtitle: "Brighten highlights with contrast and details"
|
|
108
|
+
}
|
|
109
|
+
];
|
|
110
|
+
return html`
|
|
111
|
+
View 2
|
|
112
|
+
<my-picker
|
|
113
|
+
.blendMode=${2 /* normal */}
|
|
114
|
+
.blendModeOptions=${blendModeOptions}
|
|
115
|
+
></my-picker>
|
|
116
|
+
`;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
customElements.define("my-view2", MyView2);
|
|
120
|
+
class MyPicker extends XElement {
|
|
121
|
+
constructor() {
|
|
122
|
+
super(...arguments);
|
|
123
|
+
this.blendModeOptions = [];
|
|
124
|
+
this.blendMode = 2 /* normal */;
|
|
125
|
+
}
|
|
126
|
+
_renderBlendOptions() {
|
|
127
|
+
return html`
|
|
128
|
+
${repeat(
|
|
129
|
+
this.blendModeOptions,
|
|
130
|
+
// This is intentional so that repeat directive will add instead of
|
|
131
|
+
// update existing DOM which will then trigger error in
|
|
132
|
+
// MenuItem.childrenItem
|
|
133
|
+
// Using .value for the key will workaround the issue
|
|
134
|
+
(blendModeOption) => blendModeOption,
|
|
135
|
+
(blendModeOption) => html`
|
|
136
|
+
<sp-menu-item value=${blendModeOption.value}>
|
|
137
|
+
${blendModeOption.title}
|
|
138
|
+
<span slot="value">${blendModeOption.subtitle}</span>
|
|
139
|
+
</sp-menu-item>
|
|
140
|
+
`
|
|
141
|
+
)}
|
|
142
|
+
`;
|
|
143
|
+
}
|
|
144
|
+
render() {
|
|
145
|
+
return html`
|
|
146
|
+
<sp-picker
|
|
147
|
+
id="blendMode"
|
|
148
|
+
size="l"
|
|
149
|
+
label="Blend"
|
|
150
|
+
value=${this.blendMode}
|
|
151
|
+
>
|
|
152
|
+
${this._renderBlendOptions()}
|
|
153
|
+
</sp-picker>
|
|
154
|
+
`;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
__decorateClass([
|
|
158
|
+
property({ type: Array })
|
|
159
|
+
], MyPicker.prototype, "blendModeOptions", 2);
|
|
160
|
+
__decorateClass([
|
|
161
|
+
property()
|
|
162
|
+
], MyPicker.prototype, "blendMode", 2);
|
|
163
|
+
customElements.define("my-picker", MyPicker);
|
|
164
|
+
export default {
|
|
165
|
+
component: "sp-menu-item",
|
|
166
|
+
title: "Menu Item/Disconnected"
|
|
167
|
+
};
|
|
168
|
+
export const disconnectedChildItems = () => html`
|
|
169
|
+
<my-container></my-container>
|
|
170
|
+
`;
|
|
171
|
+
disconnectedChildItems.swc_vrt = {
|
|
172
|
+
skip: true
|
|
173
|
+
};
|
|
174
|
+
disconnectedChildItems.parameters = {
|
|
175
|
+
// Disables Chromatic's snapshotting on a global level
|
|
176
|
+
chromatic: { disableSnapshot: true }
|
|
177
|
+
};
|
|
178
|
+
//# sourceMappingURL=menu-item.disconnected.stories.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["menu-item.disconnected.stories.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2023 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, LitElement, TemplateResult } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { repeat } from 'lit/directives/repeat.js';\nimport { when } from 'lit/directives/when.js';\n\nimport '@spectrum-web-components/picker/sp-picker.js';\nimport '@spectrum-web-components/button/sp-button.js';\nimport { SpectrumMixin } from '@spectrum-web-components/base';\n\nenum BlendModeValue {\n normal = 2,\n multiply = 3,\n screen = 7,\n}\n\ninterface BlendModeOption {\n value: BlendModeValue;\n title: string;\n subtitle: string;\n thumbnail: string;\n}\n\nconst XElement = SpectrumMixin(LitElement);\n\nclass MyContainer extends XElement {\n @state()\n private _counter = 0;\n\n private _handleClick(): void {\n this._counter += 1;\n }\n\n protected override render(): TemplateResult {\n return html`\n <div>\n ${when(\n this._counter % 2 === 0,\n () => html`\n <my-view1></my-view1>\n `,\n () => html`\n <my-view2></my-view2>\n `\n )}\n <sp-button\n variant=\"primary\"\n size=\"m\"\n @click=${this._handleClick}\n >\n Switch views\n </sp-button>\n </div>\n `;\n }\n}\n\ncustomElements.define('my-container', MyContainer);\n\nclass MyView1 extends XElement {\n protected override render(): TemplateResult {\n const blendModeOptions = [\n {\n value: BlendModeValue.normal,\n title: 'Normal 1',\n subtitle: 'No effect applied',\n },\n {\n value: BlendModeValue.multiply,\n title: 'Multiply',\n subtitle: 'Darken shadows with contrast and details',\n },\n {\n value: BlendModeValue.screen,\n title: 'Screen',\n subtitle: 'Brighten highlights with contrast and details',\n },\n ];\n return html`\n View 1\n <my-picker\n .blendMode=${BlendModeValue.normal}\n .blendModeOptions=${blendModeOptions}\n dir=\"ltr\"\n ></my-picker>\n `;\n }\n}\n\ncustomElements.define('my-view1', MyView1);\n\nclass MyView2 extends XElement {\n protected override render(): TemplateResult {\n const blendModeOptions = [\n {\n value: BlendModeValue.normal,\n title: 'Normal 2',\n subtitle: 'No effect applied',\n },\n {\n value: BlendModeValue.multiply,\n title: 'Multiply',\n subtitle: 'Darken shadows with contrast and details',\n },\n {\n value: BlendModeValue.screen,\n title: 'Screen',\n subtitle: 'Brighten highlights with contrast and details',\n },\n ];\n return html`\n View 2\n <my-picker\n .blendMode=${BlendModeValue.normal}\n .blendModeOptions=${blendModeOptions}\n ></my-picker>\n `;\n }\n}\n\ncustomElements.define('my-view2', MyView2);\n\nclass MyPicker extends XElement {\n @property({ type: Array })\n public blendModeOptions: BlendModeOption[] = [];\n\n @property()\n public blendMode: number = BlendModeValue.normal;\n\n private _renderBlendOptions(): TemplateResult {\n return html`\n ${repeat(\n this.blendModeOptions,\n // This is intentional so that repeat directive will add instead of\n // update existing DOM which will then trigger error in\n // MenuItem.childrenItem\n // Using .value for the key will workaround the issue\n (blendModeOption) => blendModeOption,\n (blendModeOption: BlendModeOption) => html`\n <sp-menu-item value=${blendModeOption.value}>\n ${blendModeOption.title}\n <span slot=\"value\">${blendModeOption.subtitle}</span>\n </sp-menu-item>\n `\n )}\n `;\n }\n protected override render(): TemplateResult {\n return html`\n <sp-picker\n id=\"blendMode\"\n size=\"l\"\n label=\"Blend\"\n value=${this.blendMode}\n >\n ${this._renderBlendOptions()}\n </sp-picker>\n `;\n }\n}\n\ncustomElements.define('my-picker', MyPicker);\n\nexport default {\n component: 'sp-menu-item',\n title: 'Menu Item/Disconnected',\n};\n\nexport const disconnectedChildItems = (): TemplateResult => html`\n <my-container></my-container>\n`;\n\ndisconnectedChildItems.swc_vrt = {\n skip: true,\n};\n\ndisconnectedChildItems.parameters = {\n // Disables Chromatic's snapshotting on a global level\n chromatic: { disableSnapshot: true },\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["BlendModeValue"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { html } from "@spectrum-web-components/base";
|
|
3
|
+
import "@spectrum-web-components/icons-workflow/icons/sp-icon-edit.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/icons-workflow/icons/sp-icon-edit.js";
|
|
7
|
+
export default {
|
|
8
|
+
component: "sp-menu-item",
|
|
9
|
+
title: "Menu Item"
|
|
10
|
+
};
|
|
11
|
+
export const Default = () => {
|
|
12
|
+
return html`
|
|
13
|
+
<sp-menu>
|
|
14
|
+
<sp-menu-item>Menu Item</sp-menu-item>
|
|
15
|
+
</sp-menu>
|
|
16
|
+
`;
|
|
17
|
+
};
|
|
18
|
+
export const noWrap = () => {
|
|
19
|
+
return html`
|
|
20
|
+
<sp-menu style="width: 150px;">
|
|
21
|
+
<sp-menu-item no-wrap>
|
|
22
|
+
Select a Country with a very long label, too long, in fact
|
|
23
|
+
</sp-menu-item>
|
|
24
|
+
</sp-menu>
|
|
25
|
+
`;
|
|
26
|
+
};
|
|
27
|
+
export const descriptionSlot = () => {
|
|
28
|
+
return html`
|
|
29
|
+
<sp-menu>
|
|
30
|
+
<sp-menu-item>
|
|
31
|
+
Quick export
|
|
32
|
+
<span slot="description">Share a snapshot</span>
|
|
33
|
+
</sp-menu-item>
|
|
34
|
+
</sp-menu>
|
|
35
|
+
`;
|
|
36
|
+
};
|
|
37
|
+
export const valueSlot = () => {
|
|
38
|
+
return html`
|
|
39
|
+
<style>
|
|
40
|
+
kbd {
|
|
41
|
+
font-family: var(--spectrum-alias-body-text-font-family);
|
|
42
|
+
white-space: nowrap;
|
|
43
|
+
}
|
|
44
|
+
</style>
|
|
45
|
+
<sp-menu style="width: 150px;" selects="single">
|
|
46
|
+
<sp-menu-item>
|
|
47
|
+
Save
|
|
48
|
+
<kbd slot="value">⌘S</kbd>
|
|
49
|
+
</sp-menu-item>
|
|
50
|
+
<sp-menu-item selected>
|
|
51
|
+
Save As...
|
|
52
|
+
<kbd slot="value">⇧⌘S</kbd>
|
|
53
|
+
</sp-menu-item>
|
|
54
|
+
<sp-menu-item disabled>
|
|
55
|
+
Save All
|
|
56
|
+
<kbd slot="value">⌥⌘S</kbd>
|
|
57
|
+
</sp-menu-item>
|
|
58
|
+
</sp-menu>
|
|
59
|
+
`;
|
|
60
|
+
};
|
|
61
|
+
export const href = () => {
|
|
62
|
+
return html`
|
|
63
|
+
<sp-menu style="width: 150px;">
|
|
64
|
+
<sp-menu-item
|
|
65
|
+
href="https://opensource.adobe.com/spectrum-web-components"
|
|
66
|
+
>
|
|
67
|
+
<sp-icon-edit slot="icon"></sp-icon-edit>
|
|
68
|
+
Edit the Documentation Site
|
|
69
|
+
</sp-menu-item>
|
|
70
|
+
</sp-menu>
|
|
71
|
+
`;
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=menu-item.stories.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["menu-item.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*/\nimport { html, TemplateResult } from '@spectrum-web-components/base';\nimport '@spectrum-web-components/icons-workflow/icons/sp-icon-edit.js';\n\nimport '@spectrum-web-components/menu/sp-menu.js';\nimport '@spectrum-web-components/menu/sp-menu-item.js';\nimport '@spectrum-web-components/icons-workflow/icons/sp-icon-edit.js';\n\nexport default {\n component: 'sp-menu-item',\n title: 'Menu Item',\n};\n\nexport const Default = (): TemplateResult => {\n return html`\n <sp-menu>\n <sp-menu-item>Menu Item</sp-menu-item>\n </sp-menu>\n `;\n};\n\nexport const noWrap = (): TemplateResult => {\n return html`\n <sp-menu style=\"width: 150px;\">\n <sp-menu-item no-wrap>\n Select a Country with a very long label, too long, in fact\n </sp-menu-item>\n </sp-menu>\n `;\n};\n\nexport const descriptionSlot = (): TemplateResult => {\n return html`\n <sp-menu>\n <sp-menu-item>\n Quick export\n <span slot=\"description\">Share a snapshot</span>\n </sp-menu-item>\n </sp-menu>\n `;\n};\n\nexport const valueSlot = (): TemplateResult => {\n /**\n * This story featurs zero width spaces between the characters in the `<kbd>` element.\n * While their absence has not caused issues in the local Storybook, the visual regression\n * suite was causig the `\u2318\u200B` character to display different between the various Menu Items\n * without the intevening zero width space character. When reviewing in the future,\n * `font-variant-ligatures: none` was also not enough to address this situation.\n */\n //\n //\n return html`\n <style>\n kbd {\n font-family: var(--spectrum-alias-body-text-font-family);\n white-space: nowrap;\n }\n </style>\n <sp-menu style=\"width: 150px;\" selects=\"single\">\n <sp-menu-item>\n Save\n <kbd slot=\"value\">\u2318\u200BS</kbd>\n </sp-menu-item>\n <sp-menu-item selected>\n Save As...\n <kbd slot=\"value\">\u21E7\u200B\u2318\u200BS</kbd>\n </sp-menu-item>\n <sp-menu-item disabled>\n Save All\n <kbd slot=\"value\">\u2325\u200B\u2318\u200BS</kbd>\n </sp-menu-item>\n </sp-menu>\n `;\n};\n\nexport const href = (): TemplateResult => {\n return html`\n <sp-menu style=\"width: 150px;\">\n <sp-menu-item\n href=\"https://opensource.adobe.com/spectrum-web-components\"\n >\n <sp-icon-edit slot=\"icon\"></sp-icon-edit>\n Edit the Documentation Site\n </sp-menu-item>\n </sp-menu>\n `;\n};\n"],
|
|
5
|
+
"mappings": ";AAWA,SAAS,YAA4B;AACrC,OAAO;AAEP,OAAO;AACP,OAAO;AACP,OAAO;AAEP,eAAe;AAAA,EACX,WAAW;AAAA,EACX,OAAO;AACX;AAEO,aAAM,UAAU,MAAsB;AACzC,SAAO;AAAA;AAAA;AAAA;AAAA;AAKX;AAEO,aAAM,SAAS,MAAsB;AACxC,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOX;AAEO,aAAM,kBAAkB,MAAsB;AACjD,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQX;AAEO,aAAM,YAAY,MAAsB;AAU3C,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBX;AAEO,aAAM,OAAO,MAAsB;AACtC,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUX;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { MenuMarkup } from "./";
|
|
3
|
+
export default {
|
|
4
|
+
component: "sp-menu",
|
|
5
|
+
title: "Menu/Sizes"
|
|
6
|
+
};
|
|
7
|
+
export const S = () => MenuMarkup({ size: "s" });
|
|
8
|
+
export const M = () => MenuMarkup({ size: "m" });
|
|
9
|
+
export const L = () => MenuMarkup({ size: "l" });
|
|
10
|
+
export const XL = () => MenuMarkup({ size: "xl" });
|
|
11
|
+
//# sourceMappingURL=menu-sizes.stories.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["menu-sizes.stories.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2023 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 { TemplateResult } from '@spectrum-web-components/base';\nimport { MenuMarkup } from './';\n\nexport default {\n component: 'sp-menu',\n title: 'Menu/Sizes',\n};\n\nexport const S = (): TemplateResult => MenuMarkup({ size: 's' });\nexport const M = (): TemplateResult => MenuMarkup({ size: 'm' });\nexport const L = (): TemplateResult => MenuMarkup({ size: 'l' });\nexport const XL = (): TemplateResult => MenuMarkup({ size: 'xl' });\n"],
|
|
5
|
+
"mappings": ";AAaA,SAAS,kBAAkB;AAE3B,eAAe;AAAA,EACX,WAAW;AAAA,EACX,OAAO;AACX;AAEO,aAAM,IAAI,MAAsB,WAAW,EAAE,MAAM,IAAI,CAAC;AACxD,aAAM,IAAI,MAAsB,WAAW,EAAE,MAAM,IAAI,CAAC;AACxD,aAAM,IAAI,MAAsB,WAAW,EAAE,MAAM,IAAI,CAAC;AACxD,aAAM,KAAK,MAAsB,WAAW,EAAE,MAAM,KAAK,CAAC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|