@vaadin/side-nav 24.1.0-alpha9 → 24.1.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/LICENSE +1 -1
- package/README.md +1 -1
- package/package.json +8 -8
- package/src/vaadin-side-nav-item.d.ts +1 -1
- package/src/vaadin-side-nav-item.js +25 -11
- package/src/vaadin-side-nav.d.ts +4 -2
- package/src/vaadin-side-nav.js +4 -5
- package/web-types.json +3 -3
- package/web-types.lit.json +3 -3
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -48,7 +48,7 @@ import '@vaadin/side-nav';
|
|
|
48
48
|
|
|
49
49
|
## Themes
|
|
50
50
|
|
|
51
|
-
Vaadin components come with two built-in [themes](https://vaadin.com/docs/latest/styling), Lumo and Material.
|
|
51
|
+
Vaadin components come with two built-in [themes](https://vaadin.com/docs/latest/styling), Lumo and Material.
|
|
52
52
|
This component currently does not support Material theme.
|
|
53
53
|
The [main entrypoint](https://github.com/vaadin/web-components/blob/main/packages/side-nav/vaadin-side-nav.js) of the package uses the Lumo theme.
|
|
54
54
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vaadin/side-nav",
|
|
3
|
-
"version": "24.1.0-
|
|
3
|
+
"version": "24.1.0-beta1",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -20,13 +20,13 @@
|
|
|
20
20
|
"module": "vaadin-side-nav.js",
|
|
21
21
|
"type": "module",
|
|
22
22
|
"files": [
|
|
23
|
+
"enable.js",
|
|
23
24
|
"src",
|
|
24
25
|
"theme",
|
|
25
26
|
"vaadin-*.d.ts",
|
|
26
27
|
"vaadin-*.js",
|
|
27
28
|
"web-types.json",
|
|
28
|
-
"web-types.lit.json"
|
|
29
|
-
"enable.js"
|
|
29
|
+
"web-types.lit.json"
|
|
30
30
|
],
|
|
31
31
|
"keywords": [
|
|
32
32
|
"Vaadin",
|
|
@@ -35,10 +35,10 @@
|
|
|
35
35
|
"web-component"
|
|
36
36
|
],
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@vaadin/component-base": "24.1.0-
|
|
39
|
-
"@vaadin/vaadin-lumo-styles": "24.1.0-
|
|
40
|
-
"@vaadin/vaadin-material-styles": "24.1.0-
|
|
41
|
-
"@vaadin/vaadin-themable-mixin": "24.1.0-
|
|
38
|
+
"@vaadin/component-base": "24.1.0-beta1",
|
|
39
|
+
"@vaadin/vaadin-lumo-styles": "24.1.0-beta1",
|
|
40
|
+
"@vaadin/vaadin-material-styles": "24.1.0-beta1",
|
|
41
|
+
"@vaadin/vaadin-themable-mixin": "24.1.0-beta1",
|
|
42
42
|
"lit": "^2.0.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
@@ -51,5 +51,5 @@
|
|
|
51
51
|
"web-types.json",
|
|
52
52
|
"web-types.lit.json"
|
|
53
53
|
],
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "f0ddb6576073a6af05ab29867bc5ec82e334f9d7"
|
|
55
55
|
}
|
|
@@ -44,7 +44,7 @@ export type SideNavItemEventMap = HTMLElementEventMap & SideNavItemCustomEventMa
|
|
|
44
44
|
* `prefix` | A slot for content before the label (e.g. an icon).
|
|
45
45
|
* `suffix` | A slot for content after the label (e.g. an icon).
|
|
46
46
|
*
|
|
47
|
-
* #### Example
|
|
47
|
+
* #### Example
|
|
48
48
|
*
|
|
49
49
|
* ```html
|
|
50
50
|
* <vaadin-side-nav-item>
|
|
@@ -39,7 +39,7 @@ function isEnabled() {
|
|
|
39
39
|
* `prefix` | A slot for content before the label (e.g. an icon).
|
|
40
40
|
* `suffix` | A slot for content after the label (e.g. an icon).
|
|
41
41
|
*
|
|
42
|
-
* #### Example
|
|
42
|
+
* #### Example
|
|
43
43
|
*
|
|
44
44
|
* ```html
|
|
45
45
|
* <vaadin-side-nav-item>
|
|
@@ -61,10 +61,6 @@ class SideNavItem extends ElementMixin(ThemableMixin(PolylitMixin(LitElement)))
|
|
|
61
61
|
return 'vaadin-side-nav-item';
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
static get observers() {
|
|
65
|
-
return ['__pathChanged(path)'];
|
|
66
|
-
}
|
|
67
|
-
|
|
68
64
|
static get properties() {
|
|
69
65
|
return {
|
|
70
66
|
/**
|
|
@@ -109,10 +105,33 @@ class SideNavItem extends ElementMixin(ThemableMixin(PolylitMixin(LitElement)))
|
|
|
109
105
|
return this.shadowRoot.querySelector('button');
|
|
110
106
|
}
|
|
111
107
|
|
|
108
|
+
/**
|
|
109
|
+
* @protected
|
|
110
|
+
* @override
|
|
111
|
+
*/
|
|
112
|
+
firstUpdated() {
|
|
113
|
+
// By default, if the user hasn't provided a custom role,
|
|
114
|
+
// the role attribute is set to "listitem".
|
|
115
|
+
if (!this.hasAttribute('role')) {
|
|
116
|
+
this.setAttribute('role', 'listitem');
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* @protected
|
|
122
|
+
* @override
|
|
123
|
+
*/
|
|
124
|
+
updated(props) {
|
|
125
|
+
super.updated(props);
|
|
126
|
+
|
|
127
|
+
if (props.has('path')) {
|
|
128
|
+
this.__updateActive();
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
112
132
|
/** @protected */
|
|
113
133
|
connectedCallback() {
|
|
114
134
|
super.connectedCallback();
|
|
115
|
-
this.setAttribute('role', 'listitem');
|
|
116
135
|
this.__updateActive();
|
|
117
136
|
this.__boundUpdateActive = this.__updateActive.bind(this);
|
|
118
137
|
window.addEventListener('popstate', this.__boundUpdateActive);
|
|
@@ -144,11 +163,6 @@ class SideNavItem extends ElementMixin(ThemableMixin(PolylitMixin(LitElement)))
|
|
|
144
163
|
`;
|
|
145
164
|
}
|
|
146
165
|
|
|
147
|
-
/** @private */
|
|
148
|
-
__pathChanged() {
|
|
149
|
-
this.__updateActive();
|
|
150
|
-
}
|
|
151
|
-
|
|
152
166
|
/** @private */
|
|
153
167
|
__toggleExpanded(e) {
|
|
154
168
|
e.preventDefault();
|
package/src/vaadin-side-nav.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
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
6
|
import { LitElement } from 'lit';
|
|
@@ -21,6 +21,7 @@ export type SideNavEventMap = HTMLElementEventMap & SideNavCustomEventMap;
|
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* `<vaadin-side-nav>` is a Web Component for navigation menus.
|
|
24
|
+
*
|
|
24
25
|
* ```html
|
|
25
26
|
* <vaadin-side-nav>
|
|
26
27
|
* <vaadin-side-nav-item>Item 1</vaadin-side-nav-item>
|
|
@@ -38,7 +39,8 @@ export type SideNavEventMap = HTMLElementEventMap & SideNavCustomEventMap;
|
|
|
38
39
|
* ----------|-------------
|
|
39
40
|
* `label` | The label (text) inside the side nav.
|
|
40
41
|
*
|
|
41
|
-
* #### Example
|
|
42
|
+
* #### Example
|
|
43
|
+
*
|
|
42
44
|
* ```html
|
|
43
45
|
* <vaadin-side-nav>
|
|
44
46
|
* <span slot="label">Main menu</span>
|
package/src/vaadin-side-nav.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
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
|
-
|
|
7
6
|
import { html, LitElement } from 'lit';
|
|
8
7
|
import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
|
|
9
8
|
import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
|
|
@@ -17,6 +16,7 @@ function isEnabled() {
|
|
|
17
16
|
|
|
18
17
|
/**
|
|
19
18
|
* `<vaadin-side-nav>` is a Web Component for navigation menus.
|
|
19
|
+
*
|
|
20
20
|
* ```html
|
|
21
21
|
* <vaadin-side-nav>
|
|
22
22
|
* <vaadin-side-nav-item>Item 1</vaadin-side-nav-item>
|
|
@@ -34,7 +34,8 @@ function isEnabled() {
|
|
|
34
34
|
* ----------|-------------
|
|
35
35
|
* `label` | The label (text) inside the side nav.
|
|
36
36
|
*
|
|
37
|
-
* #### Example
|
|
37
|
+
* #### Example
|
|
38
|
+
*
|
|
38
39
|
* ```html
|
|
39
40
|
* <vaadin-side-nav>
|
|
40
41
|
* <span slot="label">Main menu</span>
|
|
@@ -87,8 +88,6 @@ class SideNav extends ElementMixin(ThemableMixin(PolylitMixin(LitElement))) {
|
|
|
87
88
|
|
|
88
89
|
/** @protected */
|
|
89
90
|
firstUpdated() {
|
|
90
|
-
super.ready();
|
|
91
|
-
|
|
92
91
|
// By default, if the user hasn't provided a custom role,
|
|
93
92
|
// the role attribute is set to "navigation".
|
|
94
93
|
if (!this.hasAttribute('role')) {
|
package/web-types.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/web-types",
|
|
3
3
|
"name": "@vaadin/side-nav",
|
|
4
|
-
"version": "24.1.0-
|
|
4
|
+
"version": "24.1.0-beta1",
|
|
5
5
|
"description-markup": "markdown",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
8
8
|
"elements": [
|
|
9
9
|
{
|
|
10
10
|
"name": "vaadin-side-nav-item",
|
|
11
|
-
"description": "A navigation item to be used within `<vaadin-side-nav>`. Represents a navigation target.\nNot intended to be used separately.\n\n```html\n<vaadin-side-nav-item>\n Item 1\n <vaadin-side-nav-item path=\"/path1\" slot=\"children\">\n Child item 1\n </vaadin-side-nav-item>\n <vaadin-side-nav-item path=\"/path2\" slot=\"children\">\n Child item 2\n </vaadin-side-nav-item>\n</vaadin-side-nav-item>\n```\n\n### Customization\n\nYou can configure the item by using `slot` names.\n\nSlot name | Description\n----------|-------------\n`prefix` | A slot for content before the label (e.g. an icon).\n`suffix` | A slot for content after the label (e.g. an icon).\n\n#### Example
|
|
11
|
+
"description": "A navigation item to be used within `<vaadin-side-nav>`. Represents a navigation target.\nNot intended to be used separately.\n\n```html\n<vaadin-side-nav-item>\n Item 1\n <vaadin-side-nav-item path=\"/path1\" slot=\"children\">\n Child item 1\n </vaadin-side-nav-item>\n <vaadin-side-nav-item path=\"/path2\" slot=\"children\">\n Child item 2\n </vaadin-side-nav-item>\n</vaadin-side-nav-item>\n```\n\n### Customization\n\nYou can configure the item by using `slot` names.\n\nSlot name | Description\n----------|-------------\n`prefix` | A slot for content before the label (e.g. an icon).\n`suffix` | A slot for content after the label (e.g. an icon).\n\n#### Example\n\n```html\n<vaadin-side-nav-item>\n <vaadin-icon icon=\"vaadin:chart\" slot=\"prefix\"></vaadin-icon>\n Item\n <span theme=\"badge primary\" slot=\"suffix\">Suffix</span>\n</vaadin-side-nav-item>\n```",
|
|
12
12
|
"attributes": [
|
|
13
13
|
{
|
|
14
14
|
"name": "path",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
},
|
|
76
76
|
{
|
|
77
77
|
"name": "vaadin-side-nav",
|
|
78
|
-
"description": "`<vaadin-side-nav>` is a Web Component for navigation menus.\n```html\n<vaadin-side-nav>\n <vaadin-side-nav-item>Item 1</vaadin-side-nav-item>\n <vaadin-side-nav-item>Item 2</vaadin-side-nav-item>\n <vaadin-side-nav-item>Item 3</vaadin-side-nav-item>\n <vaadin-side-nav-item>Item 4</vaadin-side-nav-item>\n</vaadin-side-nav>\n```\n\n### Customization\n\nYou can configure the component by using `slot` names.\n\nSlot name | Description\n----------|-------------\n`label` | The label (text) inside the side nav.\n\n#### Example
|
|
78
|
+
"description": "`<vaadin-side-nav>` is a Web Component for navigation menus.\n\n```html\n<vaadin-side-nav>\n <vaadin-side-nav-item>Item 1</vaadin-side-nav-item>\n <vaadin-side-nav-item>Item 2</vaadin-side-nav-item>\n <vaadin-side-nav-item>Item 3</vaadin-side-nav-item>\n <vaadin-side-nav-item>Item 4</vaadin-side-nav-item>\n</vaadin-side-nav>\n```\n\n### Customization\n\nYou can configure the component by using `slot` names.\n\nSlot name | Description\n----------|-------------\n`label` | The label (text) inside the side nav.\n\n#### Example\n\n```html\n<vaadin-side-nav>\n <span slot=\"label\">Main menu</span>\n <vaadin-side-nav-item>Item</vaadin-side-nav-item>\n</vaadin-side-nav>\n```",
|
|
79
79
|
"attributes": [
|
|
80
80
|
{
|
|
81
81
|
"name": "collapsible",
|
package/web-types.lit.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/web-types",
|
|
3
3
|
"name": "@vaadin/side-nav",
|
|
4
|
-
"version": "24.1.0-
|
|
4
|
+
"version": "24.1.0-beta1",
|
|
5
5
|
"description-markup": "markdown",
|
|
6
6
|
"framework": "lit",
|
|
7
7
|
"framework-config": {
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"elements": [
|
|
17
17
|
{
|
|
18
18
|
"name": "vaadin-side-nav-item",
|
|
19
|
-
"description": "A navigation item to be used within `<vaadin-side-nav>`. Represents a navigation target.\nNot intended to be used separately.\n\n```html\n<vaadin-side-nav-item>\n Item 1\n <vaadin-side-nav-item path=\"/path1\" slot=\"children\">\n Child item 1\n </vaadin-side-nav-item>\n <vaadin-side-nav-item path=\"/path2\" slot=\"children\">\n Child item 2\n </vaadin-side-nav-item>\n</vaadin-side-nav-item>\n```\n\n### Customization\n\nYou can configure the item by using `slot` names.\n\nSlot name | Description\n----------|-------------\n`prefix` | A slot for content before the label (e.g. an icon).\n`suffix` | A slot for content after the label (e.g. an icon).\n\n#### Example
|
|
19
|
+
"description": "A navigation item to be used within `<vaadin-side-nav>`. Represents a navigation target.\nNot intended to be used separately.\n\n```html\n<vaadin-side-nav-item>\n Item 1\n <vaadin-side-nav-item path=\"/path1\" slot=\"children\">\n Child item 1\n </vaadin-side-nav-item>\n <vaadin-side-nav-item path=\"/path2\" slot=\"children\">\n Child item 2\n </vaadin-side-nav-item>\n</vaadin-side-nav-item>\n```\n\n### Customization\n\nYou can configure the item by using `slot` names.\n\nSlot name | Description\n----------|-------------\n`prefix` | A slot for content before the label (e.g. an icon).\n`suffix` | A slot for content after the label (e.g. an icon).\n\n#### Example\n\n```html\n<vaadin-side-nav-item>\n <vaadin-icon icon=\"vaadin:chart\" slot=\"prefix\"></vaadin-icon>\n Item\n <span theme=\"badge primary\" slot=\"suffix\">Suffix</span>\n</vaadin-side-nav-item>\n```",
|
|
20
20
|
"extension": true,
|
|
21
21
|
"attributes": [
|
|
22
22
|
{
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
"name": "vaadin-side-nav",
|
|
47
|
-
"description": "`<vaadin-side-nav>` is a Web Component for navigation menus.\n```html\n<vaadin-side-nav>\n <vaadin-side-nav-item>Item 1</vaadin-side-nav-item>\n <vaadin-side-nav-item>Item 2</vaadin-side-nav-item>\n <vaadin-side-nav-item>Item 3</vaadin-side-nav-item>\n <vaadin-side-nav-item>Item 4</vaadin-side-nav-item>\n</vaadin-side-nav>\n```\n\n### Customization\n\nYou can configure the component by using `slot` names.\n\nSlot name | Description\n----------|-------------\n`label` | The label (text) inside the side nav.\n\n#### Example
|
|
47
|
+
"description": "`<vaadin-side-nav>` is a Web Component for navigation menus.\n\n```html\n<vaadin-side-nav>\n <vaadin-side-nav-item>Item 1</vaadin-side-nav-item>\n <vaadin-side-nav-item>Item 2</vaadin-side-nav-item>\n <vaadin-side-nav-item>Item 3</vaadin-side-nav-item>\n <vaadin-side-nav-item>Item 4</vaadin-side-nav-item>\n</vaadin-side-nav>\n```\n\n### Customization\n\nYou can configure the component by using `slot` names.\n\nSlot name | Description\n----------|-------------\n`label` | The label (text) inside the side nav.\n\n#### Example\n\n```html\n<vaadin-side-nav>\n <span slot=\"label\">Main menu</span>\n <vaadin-side-nav-item>Item</vaadin-side-nav-item>\n</vaadin-side-nav>\n```",
|
|
48
48
|
"extension": true,
|
|
49
49
|
"attributes": [
|
|
50
50
|
{
|