@vaadin/context-menu 25.0.0-alpha8 → 25.0.0-beta1
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 +13 -16
- package/src/styles/vaadin-context-menu-item-base-styles.js +3 -3
- package/src/styles/vaadin-context-menu-overlay-base-styles.js +28 -1
- package/src/vaadin-context-menu-item.js +1 -1
- package/src/vaadin-context-menu-list-box.js +1 -1
- package/src/vaadin-context-menu-mixin.js +48 -76
- package/src/vaadin-context-menu-overlay.js +56 -1
- package/src/vaadin-context-menu.d.ts +48 -11
- package/src/vaadin-context-menu.js +98 -23
- package/src/vaadin-contextmenu-items-mixin.js +44 -30
- package/src/vaadin-menu-overlay-mixin.d.ts +0 -5
- package/src/vaadin-menu-overlay-mixin.js +23 -28
- package/vaadin-context-menu.js +1 -1
- package/web-types.json +10 -6
- package/web-types.lit.json +11 -4
- package/src/styles/vaadin-context-menu-item-core-styles.d.ts +0 -8
- package/src/styles/vaadin-context-menu-item-core-styles.js +0 -8
- package/src/styles/vaadin-context-menu-overlay-core-styles.d.ts +0 -8
- package/src/styles/vaadin-context-menu-overlay-core-styles.js +0 -9
- package/src/styles/vaadin-menu-overlay-core-styles.d.ts +0 -8
- package/src/styles/vaadin-menu-overlay-core-styles.js +0 -32
- package/theme/lumo/vaadin-context-menu-item-styles.d.ts +0 -6
- package/theme/lumo/vaadin-context-menu-item-styles.js +0 -45
- package/theme/lumo/vaadin-context-menu-list-box-styles.d.ts +0 -5
- package/theme/lumo/vaadin-context-menu-list-box-styles.js +0 -47
- package/theme/lumo/vaadin-context-menu-overlay-styles.d.ts +0 -4
- package/theme/lumo/vaadin-context-menu-overlay-styles.js +0 -35
- package/theme/lumo/vaadin-context-menu.d.ts +0 -4
- package/theme/lumo/vaadin-context-menu.js +0 -4
|
@@ -1,9 +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 { overlayStyles } from '@vaadin/overlay/src/styles/vaadin-overlay-core-styles.js';
|
|
7
|
-
import { menuOverlayStyles } from './vaadin-menu-overlay-core-styles.js';
|
|
8
|
-
|
|
9
|
-
export const contextMenuOverlayStyles = [overlayStyles, menuOverlayStyles];
|
|
@@ -1,32 +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 { css } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
7
|
-
|
|
8
|
-
export const menuOverlayStyles = css`
|
|
9
|
-
:host {
|
|
10
|
-
align-items: flex-start;
|
|
11
|
-
justify-content: flex-start;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
:host([right-aligned]),
|
|
15
|
-
:host([end-aligned]) {
|
|
16
|
-
align-items: flex-end;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
:host([bottom-aligned]) {
|
|
20
|
-
justify-content: flex-end;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
[part='overlay'] {
|
|
24
|
-
background-color: #fff;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
@media (forced-colors: active) {
|
|
28
|
-
[part='overlay'] {
|
|
29
|
-
outline: 3px solid !important;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
`;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import '@vaadin/vaadin-lumo-styles/color.js';
|
|
2
|
-
import '@vaadin/vaadin-lumo-styles/font-icons.js';
|
|
3
|
-
import '@vaadin/vaadin-lumo-styles/sizing.js';
|
|
4
|
-
import '@vaadin/vaadin-lumo-styles/spacing.js';
|
|
5
|
-
declare const contextMenuItem: import("lit").CSSResult;
|
|
6
|
-
export { contextMenuItem };
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import '@vaadin/vaadin-lumo-styles/color.js';
|
|
2
|
-
import '@vaadin/vaadin-lumo-styles/font-icons.js';
|
|
3
|
-
import '@vaadin/vaadin-lumo-styles/sizing.js';
|
|
4
|
-
import '@vaadin/vaadin-lumo-styles/spacing.js';
|
|
5
|
-
import { item } from '@vaadin/item/theme/lumo/vaadin-item-styles.js';
|
|
6
|
-
import { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
7
|
-
|
|
8
|
-
const contextMenuItem = css`
|
|
9
|
-
/* :hover needed to workaround https://github.com/vaadin/web-components/issues/3133 */
|
|
10
|
-
:host(:hover) {
|
|
11
|
-
user-select: none;
|
|
12
|
-
-webkit-user-select: none;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
:host([role='menuitem'][menu-item-checked]) [part='checkmark']::before {
|
|
16
|
-
opacity: 1;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
:host([aria-haspopup='true'])::after {
|
|
20
|
-
font-family: lumo-icons;
|
|
21
|
-
font-size: var(--lumo-icon-size-xs);
|
|
22
|
-
content: var(--lumo-icons-angle-right);
|
|
23
|
-
color: var(--lumo-tertiary-text-color);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
:host(:not([dir='rtl'])[aria-haspopup='true'])::after {
|
|
27
|
-
margin-right: calc(var(--lumo-space-m) * -1);
|
|
28
|
-
padding-left: var(--lumo-space-m);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
:host([expanded]) {
|
|
32
|
-
background-color: var(--lumo-primary-color-10pct);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/* RTL styles */
|
|
36
|
-
:host([dir='rtl'][aria-haspopup='true'])::after {
|
|
37
|
-
content: var(--lumo-icons-angle-left);
|
|
38
|
-
margin-left: calc(var(--lumo-space-m) * -1);
|
|
39
|
-
padding-right: var(--lumo-space-m);
|
|
40
|
-
}
|
|
41
|
-
`;
|
|
42
|
-
|
|
43
|
-
registerStyles('vaadin-context-menu-item', [item, contextMenuItem], { moduleId: 'lumo-context-menu-item' });
|
|
44
|
-
|
|
45
|
-
export { contextMenuItem };
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import '@vaadin/vaadin-lumo-styles/color.js';
|
|
2
|
-
import '@vaadin/vaadin-lumo-styles/spacing.js';
|
|
3
|
-
import '@vaadin/vaadin-lumo-styles/style.js';
|
|
4
|
-
import { listBox } from '@vaadin/list-box/theme/lumo/vaadin-list-box-styles.js';
|
|
5
|
-
import { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
6
|
-
|
|
7
|
-
const contextMenuListBox = css`
|
|
8
|
-
:host {
|
|
9
|
-
--_lumo-list-box-item-selected-icon-display: block;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
/* Normal item */
|
|
13
|
-
[part='items'] ::slotted([role='menuitem']) {
|
|
14
|
-
-webkit-tap-highlight-color: var(--lumo-primary-color-10pct);
|
|
15
|
-
cursor: default;
|
|
16
|
-
outline: none;
|
|
17
|
-
border-radius: var(--lumo-border-radius-m);
|
|
18
|
-
padding-left: calc(var(--lumo-border-radius-m) / 4);
|
|
19
|
-
padding-right: calc(var(--lumo-space-l) + var(--lumo-border-radius-m) / 4);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/* Hovered item */
|
|
23
|
-
/* TODO a workaround until we have "focus-follows-mouse". After that, use the hover style for focus-ring as well */
|
|
24
|
-
[part='items'] ::slotted([role='menuitem']:hover:not([disabled])),
|
|
25
|
-
[part='items'] ::slotted([role='menuitem'][expanded]:not([disabled])) {
|
|
26
|
-
background-color: var(--lumo-primary-color-10pct);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/* RTL styles */
|
|
30
|
-
:host([dir='rtl']) [part='items'] ::slotted([role='menuitem']) {
|
|
31
|
-
padding-left: calc(var(--lumo-space-l) + var(--lumo-border-radius-m) / 4);
|
|
32
|
-
padding-right: calc(var(--lumo-border-radius-m) / 4);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/* Focused item */
|
|
36
|
-
@media (pointer: coarse) {
|
|
37
|
-
[part='items'] ::slotted([role='menuitem']:hover:not([expanded]):not([disabled])) {
|
|
38
|
-
background-color: transparent;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
`;
|
|
42
|
-
|
|
43
|
-
registerStyles('vaadin-context-menu-list-box', [listBox, contextMenuListBox], {
|
|
44
|
-
moduleId: 'lumo-context-menu-list-box',
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
export { contextMenuListBox };
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import '@vaadin/vaadin-lumo-styles/spacing.js';
|
|
2
|
-
import '@vaadin/vaadin-lumo-styles/style.js';
|
|
3
|
-
import { menuOverlay } from '@vaadin/vaadin-lumo-styles/mixins/menu-overlay.js';
|
|
4
|
-
import { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
5
|
-
|
|
6
|
-
const contextMenuOverlay = css`
|
|
7
|
-
:host([phone]) {
|
|
8
|
-
/* stylelint-disable declaration-block-no-redundant-longhand-properties */
|
|
9
|
-
top: 0 !important;
|
|
10
|
-
right: 0 !important;
|
|
11
|
-
bottom: var(--vaadin-overlay-viewport-bottom) !important;
|
|
12
|
-
left: 0 !important;
|
|
13
|
-
/* stylelint-enable declaration-block-no-redundant-longhand-properties */
|
|
14
|
-
align-items: stretch;
|
|
15
|
-
justify-content: flex-end;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/* TODO These style overrides should not be needed.
|
|
19
|
-
We should instead offer a way to have non-selectable items inside the context menu. */
|
|
20
|
-
|
|
21
|
-
:host {
|
|
22
|
-
--_lumo-list-box-item-selected-icon-display: none;
|
|
23
|
-
--_lumo-list-box-item-padding-left: calc(var(--lumo-space-m) + var(--lumo-border-radius-m) / 4);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
[part='overlay'] {
|
|
27
|
-
outline: none;
|
|
28
|
-
}
|
|
29
|
-
`;
|
|
30
|
-
|
|
31
|
-
registerStyles('vaadin-context-menu-overlay', [menuOverlay, contextMenuOverlay], {
|
|
32
|
-
moduleId: 'lumo-context-menu-overlay',
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
export { contextMenuOverlay };
|