@vaadin/side-nav 24.2.0-alpha8 → 24.2.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 +7 -8
- package/src/vaadin-side-nav-item.d.ts +1 -5
- package/src/vaadin-side-nav-item.js +6 -11
- package/src/vaadin-side-nav.d.ts +1 -3
- package/src/vaadin-side-nav.js +12 -14
- package/theme/lumo/vaadin-side-nav-item-styles.js +3 -2
- package/theme/material/vaadin-side-nav-item-styles.js +6 -3
- package/web-types.json +1 -1
- package/web-types.lit.json +1 -1
- package/enable.js +0 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vaadin/side-nav",
|
|
3
|
-
"version": "24.2.0-
|
|
3
|
+
"version": "24.2.0-beta1",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -20,7 +20,6 @@
|
|
|
20
20
|
"module": "vaadin-side-nav.js",
|
|
21
21
|
"type": "module",
|
|
22
22
|
"files": [
|
|
23
|
-
"enable.js",
|
|
24
23
|
"src",
|
|
25
24
|
"theme",
|
|
26
25
|
"vaadin-*.d.ts",
|
|
@@ -35,15 +34,15 @@
|
|
|
35
34
|
"web-component"
|
|
36
35
|
],
|
|
37
36
|
"dependencies": {
|
|
38
|
-
"@vaadin/component-base": "24.2.0-
|
|
39
|
-
"@vaadin/vaadin-lumo-styles": "24.2.0-
|
|
40
|
-
"@vaadin/vaadin-material-styles": "24.2.0-
|
|
41
|
-
"@vaadin/vaadin-themable-mixin": "24.2.0-
|
|
37
|
+
"@vaadin/component-base": "24.2.0-beta1",
|
|
38
|
+
"@vaadin/vaadin-lumo-styles": "24.2.0-beta1",
|
|
39
|
+
"@vaadin/vaadin-material-styles": "24.2.0-beta1",
|
|
40
|
+
"@vaadin/vaadin-themable-mixin": "24.2.0-beta1",
|
|
42
41
|
"lit": "^2.0.0"
|
|
43
42
|
},
|
|
44
43
|
"devDependencies": {
|
|
45
44
|
"@esm-bundle/chai": "^4.3.4",
|
|
46
|
-
"@vaadin/testing-helpers": "^0.
|
|
45
|
+
"@vaadin/testing-helpers": "^0.5.0",
|
|
47
46
|
"lit": "^2.0.0",
|
|
48
47
|
"sinon": "^13.0.2"
|
|
49
48
|
},
|
|
@@ -51,5 +50,5 @@
|
|
|
51
50
|
"web-types.json",
|
|
52
51
|
"web-types.lit.json"
|
|
53
52
|
],
|
|
54
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "67c8eef57d1c59e7476e29adaf003cf4548878f2"
|
|
55
54
|
}
|
|
@@ -3,10 +3,8 @@
|
|
|
3
3
|
* Copyright (c) 2023 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
|
-
import { LitElement } from 'lit';
|
|
7
6
|
import { DisabledMixin } from '@vaadin/a11y-base/src/disabled-mixin.js';
|
|
8
7
|
import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
|
|
9
|
-
import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
|
|
10
8
|
import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
11
9
|
import { SideNavChildrenMixin } from './vaadin-side-nav-children-mixin.js';
|
|
12
10
|
|
|
@@ -79,9 +77,7 @@ export type SideNavItemEventMap = HTMLElementEventMap & SideNavItemCustomEventMa
|
|
|
79
77
|
*
|
|
80
78
|
* @fires {CustomEvent} expanded-changed - Fired when the `expanded` property changes.
|
|
81
79
|
*/
|
|
82
|
-
declare class SideNavItem extends SideNavChildrenMixin(
|
|
83
|
-
DisabledMixin(ElementMixin(ThemableMixin(PolylitMixin(LitElement)))),
|
|
84
|
-
) {
|
|
80
|
+
declare class SideNavItem extends SideNavChildrenMixin(DisabledMixin(ElementMixin(ThemableMixin(HTMLElement)))) {
|
|
85
81
|
/**
|
|
86
82
|
* The path to navigate to
|
|
87
83
|
*/
|
|
@@ -7,6 +7,7 @@ import { html, LitElement } from 'lit';
|
|
|
7
7
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
8
8
|
import { DisabledMixin } from '@vaadin/a11y-base/src/disabled-mixin.js';
|
|
9
9
|
import { screenReaderOnly } from '@vaadin/a11y-base/src/styles/sr-only-styles.js';
|
|
10
|
+
import { defineCustomElement } from '@vaadin/component-base/src/define.js';
|
|
10
11
|
import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
|
|
11
12
|
import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
|
|
12
13
|
import { matchPaths } from '@vaadin/component-base/src/url-utils.js';
|
|
@@ -14,10 +15,6 @@ import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mix
|
|
|
14
15
|
import { sideNavItemBaseStyles } from './vaadin-side-nav-base-styles.js';
|
|
15
16
|
import { SideNavChildrenMixin } from './vaadin-side-nav-children-mixin.js';
|
|
16
17
|
|
|
17
|
-
function isEnabled() {
|
|
18
|
-
return window.Vaadin && window.Vaadin.featureFlags && !!window.Vaadin.featureFlags.sideNavComponent;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
18
|
/**
|
|
22
19
|
* A navigation item to be used within `<vaadin-side-nav>`. Represents a navigation target.
|
|
23
20
|
* Not intended to be used separately.
|
|
@@ -76,8 +73,8 @@ function isEnabled() {
|
|
|
76
73
|
*
|
|
77
74
|
* @fires {CustomEvent} expanded-changed - Fired when the `expanded` property changes.
|
|
78
75
|
*
|
|
79
|
-
* @
|
|
80
|
-
* @
|
|
76
|
+
* @customElement
|
|
77
|
+
* @extends HTMLElement
|
|
81
78
|
* @mixes ThemableMixin
|
|
82
79
|
* @mixes DisabledMixin
|
|
83
80
|
* @mixes ElementMixin
|
|
@@ -202,7 +199,7 @@ class SideNavItem extends SideNavChildrenMixin(DisabledMixin(ElementMixin(Themab
|
|
|
202
199
|
<a
|
|
203
200
|
id="link"
|
|
204
201
|
?disabled="${this.disabled}"
|
|
205
|
-
tabindex="${this.disabled ? '-1' : '0'}"
|
|
202
|
+
tabindex="${this.disabled || !this.path ? '-1' : '0'}"
|
|
206
203
|
href="${ifDefined(this.disabled ? null : this.path)}"
|
|
207
204
|
part="link"
|
|
208
205
|
aria-current="${this.current ? 'page' : 'false'}"
|
|
@@ -220,7 +217,7 @@ class SideNavItem extends SideNavChildrenMixin(DisabledMixin(ElementMixin(Themab
|
|
|
220
217
|
aria-labelledby="link i18n"
|
|
221
218
|
></button>
|
|
222
219
|
</div>
|
|
223
|
-
<ul part="children" ?hidden="${!this.expanded}" aria-hidden="${this.expanded ? 'false' : 'true'}">
|
|
220
|
+
<ul part="children" role="list" ?hidden="${!this.expanded}" aria-hidden="${this.expanded ? 'false' : 'true'}">
|
|
224
221
|
<slot name="children"></slot>
|
|
225
222
|
</ul>
|
|
226
223
|
<div class="sr-only" id="i18n">${this.i18n.toggle}</div>
|
|
@@ -268,8 +265,6 @@ class SideNavItem extends SideNavChildrenMixin(DisabledMixin(ElementMixin(Themab
|
|
|
268
265
|
}
|
|
269
266
|
}
|
|
270
267
|
|
|
271
|
-
|
|
272
|
-
customElements.define(SideNavItem.is, SideNavItem);
|
|
273
|
-
}
|
|
268
|
+
defineCustomElement(SideNavItem);
|
|
274
269
|
|
|
275
270
|
export { SideNavItem };
|
package/src/vaadin-side-nav.d.ts
CHANGED
|
@@ -3,10 +3,8 @@
|
|
|
3
3
|
* Copyright (c) 2023 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
|
-
import { LitElement } from 'lit';
|
|
7
6
|
import { FocusMixin } from '@vaadin/a11y-base/src/focus-mixin.js';
|
|
8
7
|
import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
|
|
9
|
-
import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
|
|
10
8
|
import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
11
9
|
import { SideNavChildrenMixin, type SideNavI18n } from './vaadin-side-nav-children-mixin.js';
|
|
12
10
|
|
|
@@ -74,7 +72,7 @@ export type SideNavEventMap = HTMLElementEventMap & SideNavCustomEventMap;
|
|
|
74
72
|
*
|
|
75
73
|
* @fires {CustomEvent} collapsed-changed - Fired when the `collapsed` property changes.
|
|
76
74
|
*/
|
|
77
|
-
declare class SideNav extends SideNavChildrenMixin(FocusMixin(ElementMixin(ThemableMixin(
|
|
75
|
+
declare class SideNav extends SideNavChildrenMixin(FocusMixin(ElementMixin(ThemableMixin(HTMLElement)))) {
|
|
78
76
|
/**
|
|
79
77
|
* Whether the side nav is collapsible. When enabled, the toggle icon is shown.
|
|
80
78
|
*/
|
package/src/vaadin-side-nav.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { html, LitElement } from 'lit';
|
|
7
7
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
8
8
|
import { FocusMixin } from '@vaadin/a11y-base/src/focus-mixin.js';
|
|
9
|
+
import { defineCustomElement } from '@vaadin/component-base/src/define.js';
|
|
9
10
|
import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
|
|
10
11
|
import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
|
|
11
12
|
import { generateUniqueId } from '@vaadin/component-base/src/unique-id-utils.js';
|
|
@@ -13,10 +14,6 @@ import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mix
|
|
|
13
14
|
import { sideNavBaseStyles } from './vaadin-side-nav-base-styles.js';
|
|
14
15
|
import { SideNavChildrenMixin } from './vaadin-side-nav-children-mixin.js';
|
|
15
16
|
|
|
16
|
-
function isEnabled() {
|
|
17
|
-
return window.Vaadin && window.Vaadin.featureFlags && !!window.Vaadin.featureFlags.sideNavComponent;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
17
|
/**
|
|
21
18
|
* `<vaadin-side-nav>` is a Web Component for navigation menus.
|
|
22
19
|
*
|
|
@@ -68,8 +65,8 @@ function isEnabled() {
|
|
|
68
65
|
*
|
|
69
66
|
* @fires {CustomEvent} collapsed-changed - Fired when the `collapsed` property changes.
|
|
70
67
|
*
|
|
71
|
-
* @
|
|
72
|
-
* @
|
|
68
|
+
* @customElement
|
|
69
|
+
* @extends HTMLElement
|
|
73
70
|
* @mixes ThemableMixin
|
|
74
71
|
* @mixes ElementMixin
|
|
75
72
|
* @mixes SideNavChildrenMixin
|
|
@@ -152,12 +149,19 @@ class SideNav extends SideNavChildrenMixin(FocusMixin(ElementMixin(ThemableMixin
|
|
|
152
149
|
part="label"
|
|
153
150
|
@click="${this._onLabelClick}"
|
|
154
151
|
aria-expanded="${ifDefined(this.collapsible ? !this.collapsed : null)}"
|
|
152
|
+
aria-hidden="${ifDefined(this.collapsible === false ? true : null)}"
|
|
155
153
|
aria-controls="children"
|
|
156
154
|
>
|
|
157
155
|
<slot name="label" @slotchange="${this._onLabelSlotChange}"></slot>
|
|
158
156
|
<span part="toggle-button" aria-hidden="true"></span>
|
|
159
157
|
</button>
|
|
160
|
-
<ul
|
|
158
|
+
<ul
|
|
159
|
+
id="children"
|
|
160
|
+
role="list"
|
|
161
|
+
part="children"
|
|
162
|
+
?hidden="${this.collapsed}"
|
|
163
|
+
aria-hidden="${this.collapsed ? 'true' : 'false'}"
|
|
164
|
+
>
|
|
161
165
|
<slot></slot>
|
|
162
166
|
</ul>
|
|
163
167
|
`;
|
|
@@ -199,12 +203,6 @@ class SideNav extends SideNavChildrenMixin(FocusMixin(ElementMixin(ThemableMixin
|
|
|
199
203
|
}
|
|
200
204
|
}
|
|
201
205
|
|
|
202
|
-
|
|
203
|
-
customElements.define(SideNav.is, SideNav);
|
|
204
|
-
} else {
|
|
205
|
-
console.warn(
|
|
206
|
-
'WARNING: The side-nav component is currently an experimental feature and needs to be explicitly enabled. To enable the component, `import "@vaadin/side-nav/enable.js"` *before* importing the side-nav module itself.',
|
|
207
|
-
);
|
|
208
|
-
}
|
|
206
|
+
defineCustomElement(SideNav);
|
|
209
207
|
|
|
210
208
|
export { SideNav };
|
|
@@ -108,9 +108,10 @@ export const sideNavItemStyles = css`
|
|
|
108
108
|
--_child-indent-2: var(--_child-indent);
|
|
109
109
|
}
|
|
110
110
|
|
|
111
|
-
:host([current]) [part='
|
|
112
|
-
color: var(--lumo-primary-text-color);
|
|
111
|
+
:host([current]) [part='content'] {
|
|
113
112
|
background-color: var(--lumo-primary-color-10pct);
|
|
113
|
+
color: var(--lumo-primary-text-color);
|
|
114
|
+
border-radius: var(--lumo-border-radius-m);
|
|
114
115
|
}
|
|
115
116
|
`;
|
|
116
117
|
|
|
@@ -5,8 +5,11 @@ import { fieldButton } from '@vaadin/vaadin-material-styles/mixins/field-button.
|
|
|
5
5
|
import { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
6
6
|
|
|
7
7
|
export const sideNavItemStyles = css`
|
|
8
|
-
[part='
|
|
8
|
+
[part='content'] {
|
|
9
9
|
position: relative;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
[part='link'] {
|
|
10
13
|
width: 100%;
|
|
11
14
|
min-height: 32px;
|
|
12
15
|
margin: 4px 0;
|
|
@@ -35,10 +38,10 @@ export const sideNavItemStyles = css`
|
|
|
35
38
|
color: var(--material-disabled-text-color);
|
|
36
39
|
}
|
|
37
40
|
|
|
38
|
-
:host([current]) [part='
|
|
41
|
+
:host([current]) [part='content']::before {
|
|
39
42
|
position: absolute;
|
|
40
43
|
content: '';
|
|
41
|
-
inset: 0;
|
|
44
|
+
inset: 4px 0;
|
|
42
45
|
background-color: var(--material-primary-color);
|
|
43
46
|
opacity: 0.12;
|
|
44
47
|
border-radius: 4px;
|
package/web-types.json
CHANGED
package/web-types.lit.json
CHANGED
package/enable.js
DELETED