@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.
Files changed (170) hide show
  1. package/package.json +12 -12
  2. package/sp-menu-divider.d.ts +6 -0
  3. package/sp-menu-divider.dev.js +5 -0
  4. package/sp-menu-divider.dev.js.map +7 -0
  5. package/sp-menu-divider.js +2 -0
  6. package/sp-menu-divider.js.map +7 -0
  7. package/sp-menu-group.d.ts +6 -0
  8. package/sp-menu-group.dev.js +5 -0
  9. package/sp-menu-group.dev.js.map +7 -0
  10. package/sp-menu-group.js +2 -0
  11. package/sp-menu-group.js.map +7 -0
  12. package/sp-menu-item.d.ts +6 -0
  13. package/sp-menu-item.dev.js +5 -0
  14. package/sp-menu-item.dev.js.map +7 -0
  15. package/sp-menu-item.js +2 -0
  16. package/sp-menu-item.js.map +7 -0
  17. package/sp-menu.d.ts +6 -0
  18. package/sp-menu.dev.js +5 -0
  19. package/sp-menu.dev.js.map +7 -0
  20. package/sp-menu.js +2 -0
  21. package/sp-menu.js.map +7 -0
  22. package/src/Menu.d.ts +118 -0
  23. package/src/Menu.dev.js +740 -0
  24. package/src/Menu.dev.js.map +7 -0
  25. package/src/Menu.js +8 -0
  26. package/src/Menu.js.map +7 -0
  27. package/src/MenuDivider.d.ts +13 -0
  28. package/src/MenuDivider.dev.js +19 -0
  29. package/src/MenuDivider.dev.js.map +7 -0
  30. package/src/MenuDivider.js +2 -0
  31. package/src/MenuDivider.js.map +7 -0
  32. package/src/MenuGroup.d.ts +18 -0
  33. package/src/MenuGroup.dev.js +78 -0
  34. package/src/MenuGroup.dev.js.map +7 -0
  35. package/src/MenuGroup.js +7 -0
  36. package/src/MenuGroup.js.map +7 -0
  37. package/src/MenuItem.d.ts +125 -0
  38. package/src/MenuItem.dev.js +518 -0
  39. package/src/MenuItem.dev.js.map +7 -0
  40. package/src/MenuItem.js +50 -0
  41. package/src/MenuItem.js.map +7 -0
  42. package/src/checkmark-overrides.css.d.ts +2 -0
  43. package/src/checkmark-overrides.css.dev.js +7 -0
  44. package/src/checkmark-overrides.css.dev.js.map +7 -0
  45. package/src/checkmark-overrides.css.js +4 -0
  46. package/src/checkmark-overrides.css.js.map +7 -0
  47. package/src/chevron-overrides.css.d.ts +2 -0
  48. package/src/chevron-overrides.css.dev.js +7 -0
  49. package/src/chevron-overrides.css.dev.js.map +7 -0
  50. package/src/chevron-overrides.css.js +4 -0
  51. package/src/chevron-overrides.css.js.map +7 -0
  52. package/src/index.d.ts +4 -0
  53. package/src/index.dev.js +6 -0
  54. package/src/index.dev.js.map +7 -0
  55. package/src/index.js +2 -0
  56. package/src/index.js.map +7 -0
  57. package/src/menu-divider-overrides.css.d.ts +2 -0
  58. package/src/menu-divider-overrides.css.dev.js +7 -0
  59. package/src/menu-divider-overrides.css.dev.js.map +7 -0
  60. package/src/menu-divider-overrides.css.js +4 -0
  61. package/src/menu-divider-overrides.css.js.map +7 -0
  62. package/src/menu-divider.css.d.ts +2 -0
  63. package/src/menu-divider.css.dev.js +7 -0
  64. package/src/menu-divider.css.dev.js.map +7 -0
  65. package/src/menu-divider.css.js +4 -0
  66. package/src/menu-divider.css.js.map +7 -0
  67. package/src/menu-group.css.d.ts +2 -0
  68. package/src/menu-group.css.dev.js +7 -0
  69. package/src/menu-group.css.dev.js.map +7 -0
  70. package/src/menu-group.css.js +4 -0
  71. package/src/menu-group.css.js.map +7 -0
  72. package/src/menu-item-overrides.css.d.ts +2 -0
  73. package/src/menu-item-overrides.css.dev.js +7 -0
  74. package/src/menu-item-overrides.css.dev.js.map +7 -0
  75. package/src/menu-item-overrides.css.js +4 -0
  76. package/src/menu-item-overrides.css.js.map +7 -0
  77. package/src/menu-item.css.d.ts +2 -0
  78. package/src/menu-item.css.dev.js +7 -0
  79. package/src/menu-item.css.dev.js.map +7 -0
  80. package/src/menu-item.css.js +4 -0
  81. package/src/menu-item.css.js.map +7 -0
  82. package/src/menu-overrides.css.d.ts +2 -0
  83. package/src/menu-overrides.css.dev.js +7 -0
  84. package/src/menu-overrides.css.dev.js.map +7 -0
  85. package/src/menu-overrides.css.js +4 -0
  86. package/src/menu-overrides.css.js.map +7 -0
  87. package/src/menu-sectionHeading-overrides.css.d.ts +2 -0
  88. package/src/menu-sectionHeading-overrides.css.dev.js +7 -0
  89. package/src/menu-sectionHeading-overrides.css.dev.js.map +7 -0
  90. package/src/menu-sectionHeading-overrides.css.js +4 -0
  91. package/src/menu-sectionHeading-overrides.css.js.map +7 -0
  92. package/src/menu.css.d.ts +2 -0
  93. package/src/menu.css.dev.js +7 -0
  94. package/src/menu.css.dev.js.map +7 -0
  95. package/src/menu.css.js +4 -0
  96. package/src/menu.css.js.map +7 -0
  97. package/src/spectrum-checkmark.css.d.ts +2 -0
  98. package/src/spectrum-checkmark.css.dev.js +7 -0
  99. package/src/spectrum-checkmark.css.dev.js.map +7 -0
  100. package/src/spectrum-checkmark.css.js +4 -0
  101. package/src/spectrum-checkmark.css.js.map +7 -0
  102. package/src/spectrum-chevron.css.d.ts +2 -0
  103. package/src/spectrum-chevron.css.dev.js +7 -0
  104. package/src/spectrum-chevron.css.dev.js.map +7 -0
  105. package/src/spectrum-chevron.css.js +4 -0
  106. package/src/spectrum-chevron.css.js.map +7 -0
  107. package/src/spectrum-menu-divider.css.d.ts +2 -0
  108. package/src/spectrum-menu-divider.css.dev.js +7 -0
  109. package/src/spectrum-menu-divider.css.dev.js.map +7 -0
  110. package/src/spectrum-menu-divider.css.js +4 -0
  111. package/src/spectrum-menu-divider.css.js.map +7 -0
  112. package/src/spectrum-menu-item.css.d.ts +2 -0
  113. package/src/spectrum-menu-item.css.dev.js +7 -0
  114. package/src/spectrum-menu-item.css.dev.js.map +7 -0
  115. package/src/spectrum-menu-item.css.js +4 -0
  116. package/src/spectrum-menu-item.css.js.map +7 -0
  117. package/src/spectrum-menu-sectionHeading.css.d.ts +2 -0
  118. package/src/spectrum-menu-sectionHeading.css.dev.js +7 -0
  119. package/src/spectrum-menu-sectionHeading.css.dev.js.map +7 -0
  120. package/src/spectrum-menu-sectionHeading.css.js +4 -0
  121. package/src/spectrum-menu-sectionHeading.css.js.map +7 -0
  122. package/src/spectrum-menu.css.d.ts +2 -0
  123. package/src/spectrum-menu.css.dev.js +7 -0
  124. package/src/spectrum-menu.css.dev.js.map +7 -0
  125. package/src/spectrum-menu.css.js +4 -0
  126. package/src/spectrum-menu.css.js.map +7 -0
  127. package/stories/index.js +82 -0
  128. package/stories/index.js.map +7 -0
  129. package/stories/menu-divider.stories.js +32 -0
  130. package/stories/menu-divider.stories.js.map +7 -0
  131. package/stories/menu-group.stories.js +144 -0
  132. package/stories/menu-group.stories.js.map +7 -0
  133. package/stories/menu-item.disconnected.stories.js +178 -0
  134. package/stories/menu-item.disconnected.stories.js.map +7 -0
  135. package/stories/menu-item.stories.js +73 -0
  136. package/stories/menu-item.stories.js.map +7 -0
  137. package/stories/menu-sizes.stories.js +11 -0
  138. package/stories/menu-sizes.stories.js.map +7 -0
  139. package/stories/menu.stories.js +407 -0
  140. package/stories/menu.stories.js.map +7 -0
  141. package/stories/submenu.stories.js +346 -0
  142. package/stories/submenu.stories.js.map +7 -0
  143. package/test/benchmark/test-basic.js +24 -0
  144. package/test/benchmark/test-basic.js.map +7 -0
  145. package/test/menu-divider.test-vrt.js +5 -0
  146. package/test/menu-divider.test-vrt.js.map +7 -0
  147. package/test/menu-group.test-vrt.js +5 -0
  148. package/test/menu-group.test-vrt.js.map +7 -0
  149. package/test/menu-group.test.js +405 -0
  150. package/test/menu-group.test.js.map +7 -0
  151. package/test/menu-item.disconnected.test-vrt.js +5 -0
  152. package/test/menu-item.disconnected.test-vrt.js.map +7 -0
  153. package/test/menu-item.test-vrt.js +5 -0
  154. package/test/menu-item.test-vrt.js.map +7 -0
  155. package/test/menu-item.test.js +189 -0
  156. package/test/menu-item.test.js.map +7 -0
  157. package/test/menu-memory.test.js +5 -0
  158. package/test/menu-memory.test.js.map +7 -0
  159. package/test/menu-selects.test.js +530 -0
  160. package/test/menu-selects.test.js.map +7 -0
  161. package/test/menu-sizes.test-vrt.js +5 -0
  162. package/test/menu-sizes.test-vrt.js.map +7 -0
  163. package/test/menu.test-vrt.js +5 -0
  164. package/test/menu.test-vrt.js.map +7 -0
  165. package/test/menu.test.js +559 -0
  166. package/test/menu.test.js.map +7 -0
  167. package/test/submenu.test-vrt.js +5 -0
  168. package/test/submenu.test-vrt.js.map +7 -0
  169. package/test/submenu.test.js +970 -0
  170. package/test/submenu.test.js.map +7 -0
@@ -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": ";;;;;;;;;;;AAYA,SAAS,MAAM,kBAAkC;AACjD,SAAS,UAAU,aAAa;AAChC,SAAS,cAAc;AACvB,SAAS,YAAY;AAErB,OAAO;AACP,OAAO;AACP,SAAS,qBAAqB;AAE9B,IAAK,iBAAL,kBAAKA,oBAAL;AACI,EAAAA,gCAAA,YAAS,KAAT;AACA,EAAAA,gCAAA,cAAW,KAAX;AACA,EAAAA,gCAAA,YAAS,KAAT;AAHC,SAAAA;AAAA,GAAA;AAaL,MAAM,WAAW,cAAc,UAAU;AAEzC,MAAM,oBAAoB,SAAS;AAAA,EAAnC;AAAA;AAEI,SAAQ,WAAW;AAAA;AAAA,EAEX,eAAqB;AACzB,SAAK,YAAY;AAAA,EACrB;AAAA,EAEmB,SAAyB;AACxC,WAAO;AAAA;AAAA,kBAEG;AAAA,MACE,KAAK,WAAW,MAAM;AAAA,MACtB,MAAM;AAAA;AAAA;AAAA,MAGN,MAAM;AAAA;AAAA;AAAA,IAGV,CAAC;AAAA;AAAA;AAAA;AAAA,6BAIY,KAAK,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM1C;AACJ;AA5BY;AAAA,EADP,MAAM;AAAA,GADL,YAEM;AA8BZ,eAAe,OAAO,gBAAgB,WAAW;AAEjD,MAAM,gBAAgB,SAAS;AAAA,EACR,SAAyB;AACxC,UAAM,mBAAmB;AAAA,MACrB;AAAA,QACI,OAAO;AAAA,QACP,OAAO;AAAA,QACP,UAAU;AAAA,MACd;AAAA,MACA;AAAA,QACI,OAAO;AAAA,QACP,OAAO;AAAA,QACP,UAAU;AAAA,MACd;AAAA,MACA;AAAA,QACI,OAAO;AAAA,QACP,OAAO;AAAA,QACP,UAAU;AAAA,MACd;AAAA,IACJ;AACA,WAAO;AAAA;AAAA;AAAA,6BAGc,cAAqB;AAAA,oCACd,gBAAgB;AAAA;AAAA;AAAA;AAAA,EAIhD;AACJ;AAEA,eAAe,OAAO,YAAY,OAAO;AAEzC,MAAM,gBAAgB,SAAS;AAAA,EACR,SAAyB;AACxC,UAAM,mBAAmB;AAAA,MACrB;AAAA,QACI,OAAO;AAAA,QACP,OAAO;AAAA,QACP,UAAU;AAAA,MACd;AAAA,MACA;AAAA,QACI,OAAO;AAAA,QACP,OAAO;AAAA,QACP,UAAU;AAAA,MACd;AAAA,MACA;AAAA,QACI,OAAO;AAAA,QACP,OAAO;AAAA,QACP,UAAU;AAAA,MACd;AAAA,IACJ;AACA,WAAO;AAAA;AAAA;AAAA,6BAGc,cAAqB;AAAA,oCACd,gBAAgB;AAAA;AAAA;AAAA,EAGhD;AACJ;AAEA,eAAe,OAAO,YAAY,OAAO;AAEzC,MAAM,iBAAiB,SAAS;AAAA,EAAhC;AAAA;AAEI,SAAO,mBAAsC,CAAC;AAG9C,SAAO,YAAoB;AAAA;AAAA,EAEnB,sBAAsC;AAC1C,WAAO;AAAA,cACD;AAAA,MACE,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,MAKL,CAAC,oBAAoB;AAAA,MACrB,CAAC,oBAAqC;AAAA,0CACZ,gBAAgB,KAAK;AAAA,0BACrC,gBAAgB,KAAK;AAAA,6CACF,gBAAgB,QAAQ;AAAA;AAAA;AAAA,IAGzD,CAAC;AAAA;AAAA,EAET;AAAA,EACmB,SAAyB;AACxC,WAAO;AAAA;AAAA;AAAA;AAAA;AAAA,wBAKS,KAAK,SAAS;AAAA;AAAA,kBAEpB,KAAK,oBAAoB,CAAC;AAAA;AAAA;AAAA,EAGxC;AACJ;AAnCW;AAAA,EADN,SAAS,EAAE,MAAM,MAAM,CAAC;AAAA,GADvB,SAEK;AAGA;AAAA,EADN,SAAS;AAAA,GAJR,SAKK;AAkCX,eAAe,OAAO,aAAa,QAAQ;AAE3C,eAAe;AAAA,EACX,WAAW;AAAA,EACX,OAAO;AACX;AAEO,aAAM,yBAAyB,MAAsB;AAAA;AAAA;AAI5D,uBAAuB,UAAU;AAAA,EAC7B,MAAM;AACV;AAEA,uBAAuB,aAAa;AAAA;AAAA,EAEhC,WAAW,EAAE,iBAAiB,KAAK;AACvC;",
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
+ }