@vaadin/context-menu 24.8.4 → 25.0.0-alpha10

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 (44) hide show
  1. package/README.md +0 -23
  2. package/package.json +16 -17
  3. package/src/styles/vaadin-context-menu-item-base-styles.d.ts +8 -0
  4. package/src/styles/vaadin-context-menu-item-base-styles.js +34 -0
  5. package/src/styles/vaadin-context-menu-item-core-styles.d.ts +8 -0
  6. package/src/styles/vaadin-context-menu-item-core-styles.js +8 -0
  7. package/src/styles/vaadin-context-menu-overlay-base-styles.d.ts +8 -0
  8. package/src/styles/vaadin-context-menu-overlay-base-styles.js +9 -0
  9. package/src/styles/vaadin-context-menu-overlay-core-styles.d.ts +8 -0
  10. package/src/styles/vaadin-context-menu-overlay-core-styles.js +9 -0
  11. package/src/{vaadin-menu-overlay-styles.d.ts → styles/vaadin-menu-overlay-base-styles.d.ts} +1 -1
  12. package/src/styles/vaadin-menu-overlay-base-styles.js +31 -0
  13. package/src/styles/vaadin-menu-overlay-core-styles.d.ts +8 -0
  14. package/src/{vaadin-menu-overlay-styles.js → styles/vaadin-menu-overlay-core-styles.js} +1 -1
  15. package/src/vaadin-context-menu-item.js +11 -12
  16. package/src/vaadin-context-menu-list-box.d.ts +1 -2
  17. package/src/vaadin-context-menu-list-box.js +17 -26
  18. package/src/vaadin-context-menu-mixin.js +43 -70
  19. package/src/vaadin-context-menu-overlay.js +16 -11
  20. package/src/vaadin-context-menu.d.ts +15 -6
  21. package/src/vaadin-context-menu.js +44 -42
  22. package/src/vaadin-contextmenu-items-mixin.js +19 -15
  23. package/src/vaadin-menu-overlay-mixin.d.ts +0 -5
  24. package/src/vaadin-menu-overlay-mixin.js +22 -27
  25. package/web-types.json +6 -2
  26. package/web-types.lit.json +9 -2
  27. package/src/vaadin-lit-context-menu-item.js +0 -60
  28. package/src/vaadin-lit-context-menu-list-box.js +0 -87
  29. package/src/vaadin-lit-context-menu-overlay.js +0 -51
  30. package/src/vaadin-lit-context-menu.js +0 -79
  31. package/theme/lumo/vaadin-lit-context-menu.d.ts +0 -4
  32. package/theme/lumo/vaadin-lit-context-menu.js +0 -4
  33. package/theme/material/vaadin-context-menu-item-styles.d.ts +0 -5
  34. package/theme/material/vaadin-context-menu-item-styles.js +0 -36
  35. package/theme/material/vaadin-context-menu-list-box-styles.d.ts +0 -4
  36. package/theme/material/vaadin-context-menu-list-box-styles.js +0 -38
  37. package/theme/material/vaadin-context-menu-overlay-styles.d.ts +0 -2
  38. package/theme/material/vaadin-context-menu-overlay-styles.js +0 -15
  39. package/theme/material/vaadin-context-menu.d.ts +0 -4
  40. package/theme/material/vaadin-context-menu.js +0 -4
  41. package/theme/material/vaadin-lit-context-menu.d.ts +0 -4
  42. package/theme/material/vaadin-lit-context-menu.js +0 -4
  43. package/vaadin-lit-context-menu.d.ts +0 -1
  44. package/vaadin-lit-context-menu.js +0 -2
@@ -1,51 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright (c) 2016 - 2025 Vaadin Ltd.
4
- * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
- */
6
- import { html, LitElement } from 'lit';
7
- import { defineCustomElement } from '@vaadin/component-base/src/define.js';
8
- import { DirMixin } from '@vaadin/component-base/src/dir-mixin.js';
9
- import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
10
- import { OverlayMixin } from '@vaadin/overlay/src/vaadin-overlay-mixin.js';
11
- import { overlayStyles } from '@vaadin/overlay/src/vaadin-overlay-styles.js';
12
- import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
13
- import { MenuOverlayMixin } from './vaadin-menu-overlay-mixin.js';
14
- import { styles } from './vaadin-menu-overlay-styles.js';
15
-
16
- /**
17
- * An element used internally by `<vaadin-context-menu>`. Not intended to be used separately.
18
- *
19
- * @customElement
20
- * @extends HTMLElement
21
- * @mixes DirMixin
22
- * @mixes MenuOverlayMixin
23
- * @mixes OverlayMixin
24
- * @mixes ThemableMixin
25
- * @protected
26
- */
27
- export class ContextMenuOverlay extends MenuOverlayMixin(
28
- OverlayMixin(DirMixin(ThemableMixin(PolylitMixin(LitElement)))),
29
- ) {
30
- static get is() {
31
- return 'vaadin-context-menu-overlay';
32
- }
33
-
34
- static get styles() {
35
- return [overlayStyles, styles];
36
- }
37
-
38
- /** @protected */
39
- render() {
40
- return html`
41
- <div id="backdrop" part="backdrop" ?hidden="${!this.withBackdrop}"></div>
42
- <div part="overlay" id="overlay" tabindex="0">
43
- <div part="content" id="content">
44
- <slot></slot>
45
- </div>
46
- </div>
47
- `;
48
- }
49
- }
50
-
51
- defineCustomElement(ContextMenuOverlay);
@@ -1,79 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright (c) 2016 - 2025 Vaadin Ltd.
4
- * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
- */
6
- import './vaadin-contextmenu-event.js';
7
- import './vaadin-lit-context-menu-item.js';
8
- import './vaadin-lit-context-menu-list-box.js';
9
- import './vaadin-lit-context-menu-overlay.js';
10
- import { css, html, LitElement } from 'lit';
11
- import { defineCustomElement } from '@vaadin/component-base/src/define.js';
12
- import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
13
- import { OverlayClassMixin } from '@vaadin/component-base/src/overlay-class-mixin.js';
14
- import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
15
- import { processTemplates } from '@vaadin/component-base/src/templates.js';
16
- import { ThemePropertyMixin } from '@vaadin/vaadin-themable-mixin/vaadin-theme-property-mixin.js';
17
- import { ContextMenuMixin } from './vaadin-context-menu-mixin.js';
18
-
19
- /**
20
- * LitElement based version of `<vaadin-context-menu>` web component.
21
- *
22
- * ## Disclaimer
23
- *
24
- * This component is an experiment and not yet a part of Vaadin platform.
25
- * There is no ETA regarding specific Vaadin version where it'll land.
26
- * Feel free to try this code in your apps as per Apache 2.0 license.
27
- */
28
- class ContextMenu extends ContextMenuMixin(
29
- OverlayClassMixin(ElementMixin(ThemePropertyMixin(PolylitMixin(LitElement)))),
30
- ) {
31
- static get is() {
32
- return 'vaadin-context-menu';
33
- }
34
-
35
- static get styles() {
36
- return css`
37
- :host {
38
- display: block;
39
- }
40
-
41
- :host([hidden]) {
42
- display: none !important;
43
- }
44
- `;
45
- }
46
-
47
- /** @protected */
48
- render() {
49
- return html`<slot id="slot"></slot>`;
50
- }
51
-
52
- /** @protected */
53
- ready() {
54
- super.ready();
55
-
56
- processTemplates(this);
57
- }
58
-
59
- /**
60
- * @protected
61
- * @override
62
- */
63
- createRenderRoot() {
64
- const root = super.createRenderRoot();
65
- root.appendChild(this._overlayElement);
66
- return root;
67
- }
68
-
69
- /**
70
- * Fired when an item is selected when the context menu is populated using the `items` API.
71
- *
72
- * @event item-selected
73
- * @param {Object} detail
74
- * @param {Object} detail.value the selected menu item
75
- */
76
- }
77
-
78
- defineCustomElement(ContextMenu);
79
- export { ContextMenu };
@@ -1,4 +0,0 @@
1
- import './vaadin-context-menu-item-styles.js';
2
- import './vaadin-context-menu-list-box-styles.js';
3
- import './vaadin-context-menu-overlay-styles.js';
4
- import '../../src/vaadin-lit-context-menu.js';
@@ -1,4 +0,0 @@
1
- import './vaadin-context-menu-item-styles.js';
2
- import './vaadin-context-menu-list-box-styles.js';
3
- import './vaadin-context-menu-overlay-styles.js';
4
- import '../../src/vaadin-lit-context-menu.js';
@@ -1,5 +0,0 @@
1
- import '@vaadin/vaadin-material-styles/font-icons.js';
2
- import '@vaadin/vaadin-material-styles/color.js';
3
- import '@vaadin/vaadin-material-styles/typography.js';
4
- declare const contextMenuItem: import("lit").CSSResult;
5
- export { contextMenuItem };
@@ -1,36 +0,0 @@
1
- import '@vaadin/vaadin-material-styles/font-icons.js';
2
- import '@vaadin/vaadin-material-styles/color.js';
3
- import '@vaadin/vaadin-material-styles/typography.js';
4
- import { item } from '@vaadin/item/theme/material/vaadin-item-styles.js';
5
- import { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
6
-
7
- const contextMenuItem = css`
8
- :host([aria-haspopup='true'])::after {
9
- font-family: material-icons;
10
- font-size: var(--material-icon-font-size);
11
- }
12
-
13
- :host(:not([dir='rtl'])[aria-haspopup='true'])::after {
14
- content: var(--material-icons-chevron-right);
15
- padding-left: 9px;
16
- margin-right: -9px;
17
- }
18
-
19
- :host([dir='rtl'][aria-haspopup='true'])::after {
20
- content: var(--material-icons-chevron-left);
21
- padding-right: 9px;
22
- margin-left: -9px;
23
- }
24
-
25
- :host([menu-item-checked]) [part='checkmark']::before {
26
- content: var(--material-icons-check);
27
- }
28
-
29
- :host([expanded]) {
30
- background-color: var(--material-secondary-background-color);
31
- }
32
- `;
33
-
34
- registerStyles('vaadin-context-menu-item', [item, contextMenuItem], { moduleId: 'material-context-menu-item' });
35
-
36
- export { contextMenuItem };
@@ -1,4 +0,0 @@
1
- import '@vaadin/vaadin-material-styles/color.js';
2
- import '@vaadin/vaadin-material-styles/typography.js';
3
- declare const contextMenuListBox: import("lit").CSSResult;
4
- export { contextMenuListBox };
@@ -1,38 +0,0 @@
1
- import '@vaadin/vaadin-material-styles/color.js';
2
- import '@vaadin/vaadin-material-styles/typography.js';
3
- import { listBox } from '@vaadin/list-box/theme/material/vaadin-list-box-styles.js';
4
- import { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
5
-
6
- const contextMenuListBox = css`
7
- [part='items'] ::slotted([role='menuitem']) {
8
- min-height: 36px;
9
- padding: 8px 32px 8px 10px;
10
- font-size: var(--material-small-font-size);
11
- line-height: 24px;
12
- }
13
-
14
- :host([dir='rtl']) [part='items'] ::slotted([role='menuitem']) {
15
- padding: 8px 10px 8px 32px;
16
- }
17
-
18
- [part='items'] ::slotted([role='menuitem']:hover:not([disabled])) {
19
- background-color: var(--material-secondary-background-color);
20
- }
21
-
22
- [part='items'] ::slotted([role='menuitem'][focused]:not([disabled])) {
23
- background-color: var(--material-divider-color);
24
- }
25
-
26
- @media (pointer: coarse) {
27
- [part='items'] ::slotted([role='menuitem']:hover:not([disabled])),
28
- [part='items'] ::slotted([role='menuitem'][focused]:not([disabled])) {
29
- background-color: transparent;
30
- }
31
- }
32
- `;
33
-
34
- registerStyles('vaadin-context-menu-list-box', [listBox, contextMenuListBox], {
35
- moduleId: 'material-context-menu-list-box',
36
- });
37
-
38
- export { contextMenuListBox };
@@ -1,2 +0,0 @@
1
- declare const contextMenuOverlay: import("lit").CSSResult;
2
- export { contextMenuOverlay };
@@ -1,15 +0,0 @@
1
- import { menuOverlay } from '@vaadin/vaadin-material-styles/mixins/menu-overlay.js';
2
- import { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
3
-
4
- const contextMenuOverlay = css`
5
- [part='overlay'] {
6
- outline: none;
7
- will-change: transform, opacity;
8
- }
9
- `;
10
-
11
- registerStyles('vaadin-context-menu-overlay', [menuOverlay, contextMenuOverlay], {
12
- moduleId: 'material-context-menu-overlay',
13
- });
14
-
15
- export { contextMenuOverlay };
@@ -1,4 +0,0 @@
1
- import './vaadin-context-menu-item-styles.js';
2
- import './vaadin-context-menu-list-box-styles.js';
3
- import './vaadin-context-menu-overlay-styles.js';
4
- import '../../src/vaadin-context-menu.js';
@@ -1,4 +0,0 @@
1
- import './vaadin-context-menu-item-styles.js';
2
- import './vaadin-context-menu-list-box-styles.js';
3
- import './vaadin-context-menu-overlay-styles.js';
4
- import '../../src/vaadin-context-menu.js';
@@ -1,4 +0,0 @@
1
- import './vaadin-context-menu-item-styles.js';
2
- import './vaadin-context-menu-list-box-styles.js';
3
- import './vaadin-context-menu-overlay-styles.js';
4
- import '../../src/vaadin-lit-context-menu.js';
@@ -1,4 +0,0 @@
1
- import './vaadin-context-menu-item-styles.js';
2
- import './vaadin-context-menu-list-box-styles.js';
3
- import './vaadin-context-menu-overlay-styles.js';
4
- import '../../src/vaadin-lit-context-menu.js';
@@ -1 +0,0 @@
1
- export * from './src/vaadin-context-menu.js';
@@ -1,2 +0,0 @@
1
- import './theme/lumo/vaadin-lit-context-menu.js';
2
- export * from './src/vaadin-lit-context-menu.js';