@vaadin/side-nav 25.0.0-alpha7 → 25.0.0-alpha8

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vaadin/side-nav",
3
- "version": "25.0.0-alpha7",
3
+ "version": "25.0.0-alpha8",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -37,15 +37,15 @@
37
37
  ],
38
38
  "dependencies": {
39
39
  "@open-wc/dedupe-mixin": "^1.3.0",
40
- "@vaadin/a11y-base": "25.0.0-alpha7",
41
- "@vaadin/component-base": "25.0.0-alpha7",
42
- "@vaadin/vaadin-lumo-styles": "25.0.0-alpha7",
43
- "@vaadin/vaadin-themable-mixin": "25.0.0-alpha7",
40
+ "@vaadin/a11y-base": "25.0.0-alpha8",
41
+ "@vaadin/component-base": "25.0.0-alpha8",
42
+ "@vaadin/vaadin-lumo-styles": "25.0.0-alpha8",
43
+ "@vaadin/vaadin-themable-mixin": "25.0.0-alpha8",
44
44
  "lit": "^3.0.0"
45
45
  },
46
46
  "devDependencies": {
47
- "@vaadin/chai-plugins": "25.0.0-alpha7",
48
- "@vaadin/test-runner-commands": "25.0.0-alpha7",
47
+ "@vaadin/chai-plugins": "25.0.0-alpha8",
48
+ "@vaadin/test-runner-commands": "25.0.0-alpha8",
49
49
  "@vaadin/testing-helpers": "^2.0.0",
50
50
  "lit": "^3.0.0",
51
51
  "sinon": "^18.0.0"
@@ -54,5 +54,5 @@
54
54
  "web-types.json",
55
55
  "web-types.lit.json"
56
56
  ],
57
- "gitHead": "87f72707ce6866892f8be5782fa0da008e87dcbc"
57
+ "gitHead": "ebf53673d5f639d2b1b6f2b31f640f530643ee2f"
58
58
  }
@@ -8,39 +8,35 @@ import { css } from 'lit';
8
8
  import { sharedStyles } from './vaadin-side-nav-shared-base-styles.js';
9
9
 
10
10
  const sideNav = css`
11
- @layer base {
12
- :host {
13
- white-space: nowrap;
14
- touch-action: manipulation;
15
- }
11
+ :host {
12
+ white-space: nowrap;
13
+ touch-action: manipulation;
14
+ }
16
15
 
17
- [part='label'] {
18
- align-self: start;
19
- display: flex;
20
- align-items: center;
21
- justify-content: start;
22
- gap: var(--vaadin-side-nav-item-gap, var(--vaadin-gap-container-inline));
23
- padding: var(--vaadin-side-nav-item-padding, var(--vaadin-padding-container));
24
- font-size: var(--vaadin-side-nav-label-font-size, 0.875em);
25
- font-weight: var(--vaadin-side-nav-label-font-weight, 500);
26
- color: var(--vaadin-side-nav-label-color, var(--vaadin-color-subtle));
27
- line-height: var(--vaadin-side-nav-label-line-height, inherit);
28
- border-radius: var(--vaadin-side-nav-item-border-radius, var(--vaadin-radius-m));
29
- touch-action: manipulation;
30
- }
16
+ [part='label'] {
17
+ align-self: start;
18
+ display: flex;
19
+ align-items: center;
20
+ justify-content: start;
21
+ gap: var(--vaadin-side-nav-item-gap, var(--vaadin-gap-container-inline));
22
+ padding: var(--vaadin-side-nav-item-padding, var(--vaadin-padding-container));
23
+ font-size: var(--vaadin-side-nav-label-font-size, 0.875em);
24
+ font-weight: var(--vaadin-side-nav-label-font-weight, 500);
25
+ color: var(--vaadin-side-nav-label-color, var(--vaadin-color-subtle));
26
+ line-height: var(--vaadin-side-nav-label-line-height, inherit);
27
+ border-radius: var(--vaadin-side-nav-item-border-radius, var(--vaadin-radius-m));
28
+ touch-action: manipulation;
31
29
  }
32
30
  `;
33
31
 
34
32
  export const sideNavStyles = [sharedStyles, sideNav];
35
33
 
36
34
  export const sideNavSlotStyles = css`
37
- @layer vaadin.base {
38
- vaadin-side-nav:has(vaadin-icon[slot='prefix']) {
39
- --_has-prefix-icon: '';
40
- }
35
+ :where(vaadin-side-nav:has(vaadin-icon[slot='prefix'])) {
36
+ --_has-prefix-icon: '';
37
+ }
41
38
 
42
- vaadin-side-nav-item:has(> vaadin-icon[slot='prefix'])::part(link) {
43
- --_has-prefix-icon:;
44
- }
39
+ :where(vaadin-side-nav-item:has(> vaadin-icon[slot='prefix']))::part(link) {
40
+ --_has-prefix-icon:;
45
41
  }
46
42
  `;
@@ -8,115 +8,113 @@ import { css } from 'lit';
8
8
  import { sharedStyles } from './vaadin-side-nav-shared-base-styles.js';
9
9
 
10
10
  const sideNavItem = css`
11
- @layer base {
12
- [part='content'] {
13
- display: flex;
14
- align-items: center;
15
- padding: var(--vaadin-side-nav-item-padding, var(--vaadin-padding-container));
16
- gap: var(--vaadin-side-nav-item-gap, var(--vaadin-gap-container-inline));
17
- font-size: var(--vaadin-side-nav-item-font-size, 1em);
18
- font-weight: var(--vaadin-side-nav-item-font-weight, 500);
19
- line-height: var(--vaadin-side-nav-item-line-height, inherit);
20
- color: var(--vaadin-side-nav-item-color, var(--vaadin-color-subtle));
21
- background: var(--vaadin-side-nav-item-background, transparent);
22
- background-origin: border-box;
23
- border: var(--vaadin-side-nav-item-border-width, 0) solid var(--vaadin-side-nav-item-border-color, transparent);
24
- border-radius: var(--vaadin-side-nav-item-border-radius, var(--vaadin-radius-m));
25
- cursor: var(--vaadin-clickable-cursor);
26
- touch-action: manipulation;
27
- }
11
+ [part='content'] {
12
+ display: flex;
13
+ align-items: center;
14
+ padding: var(--vaadin-side-nav-item-padding, var(--vaadin-padding-container));
15
+ gap: var(--vaadin-side-nav-item-gap, var(--vaadin-gap-container-inline));
16
+ font-size: var(--vaadin-side-nav-item-font-size, 1em);
17
+ font-weight: var(--vaadin-side-nav-item-font-weight, 500);
18
+ line-height: var(--vaadin-side-nav-item-line-height, inherit);
19
+ color: var(--vaadin-side-nav-item-color, var(--vaadin-color-subtle));
20
+ background: var(--vaadin-side-nav-item-background, transparent);
21
+ background-origin: border-box;
22
+ border: var(--vaadin-side-nav-item-border-width, 0) solid var(--vaadin-side-nav-item-border-color, transparent);
23
+ border-radius: var(--vaadin-side-nav-item-border-radius, var(--vaadin-radius-m));
24
+ cursor: var(--vaadin-clickable-cursor);
25
+ touch-action: manipulation;
26
+ }
28
27
 
29
- :host([current]) [part='content'] {
30
- --vaadin-side-nav-item-background: var(--vaadin-background-container);
31
- --vaadin-side-nav-item-color: var(--vaadin-color);
32
- }
28
+ :host([current]) [part='content'] {
29
+ --vaadin-side-nav-item-background: var(--vaadin-background-container);
30
+ --vaadin-side-nav-item-color: var(--vaadin-color);
31
+ }
33
32
 
34
- :host([disabled]) {
35
- --vaadin-clickable-cursor: var(--vaadin-disabled-cursor);
36
- }
33
+ :host([disabled]) {
34
+ --vaadin-clickable-cursor: var(--vaadin-disabled-cursor);
35
+ }
37
36
 
38
- :host([disabled]) [part='content'] {
39
- --vaadin-side-nav-item-color: var(--vaadin-color-disabled);
40
- }
37
+ :host([disabled]) [part='content'] {
38
+ --vaadin-side-nav-item-color: var(--vaadin-color-disabled);
39
+ }
41
40
 
42
- [part='link'] {
43
- flex: auto;
44
- min-width: 0;
45
- display: flex;
46
- align-items: center;
47
- gap: inherit;
48
- text-decoration: none;
49
- color: inherit;
50
- outline: 0;
51
- }
41
+ [part='link'] {
42
+ flex: auto;
43
+ min-width: 0;
44
+ display: flex;
45
+ align-items: center;
46
+ gap: inherit;
47
+ text-decoration: none;
48
+ color: inherit;
49
+ outline: 0;
50
+ }
52
51
 
53
- :host(:not([has-children])) [part='toggle-button'] {
54
- display: none !important;
55
- }
52
+ :host(:not([has-children])) [part='toggle-button'] {
53
+ display: none !important;
54
+ }
56
55
 
57
- slot:not([name]) {
58
- display: block;
59
- flex: auto;
60
- min-width: 0;
61
- overflow: hidden;
62
- text-overflow: ellipsis;
63
- /* Don't clip ascenders or descenders */
64
- padding-block: 0.25em;
65
- margin-block: -0.25em;
66
- }
56
+ slot:not([name]) {
57
+ display: block;
58
+ flex: auto;
59
+ min-width: 0;
60
+ overflow: hidden;
61
+ text-overflow: ellipsis;
62
+ /* Don't clip ascenders or descenders */
63
+ padding-block: 0.25em;
64
+ margin-block: -0.25em;
65
+ }
67
66
 
68
- slot:is([name='prefix'], [name='suffix'])::slotted(*) {
69
- flex: none;
70
- }
67
+ slot:is([name='prefix'], [name='suffix'])::slotted(*) {
68
+ flex: none;
69
+ }
71
70
 
72
- /* Reserved space for icon */
73
- slot[name='prefix']::before {
74
- content: var(--_has-prefix-icon);
75
- display: block;
76
- width: var(--vaadin-icon-size, 1lh);
77
- flex: none;
78
- }
71
+ /* Reserved space for icon */
72
+ slot[name='prefix']::before {
73
+ content: var(--_has-prefix-icon);
74
+ display: block;
75
+ width: var(--vaadin-icon-size, 1lh);
76
+ flex: none;
77
+ }
79
78
 
80
- [part='content']:not(:has([href])):has([part='toggle-button']:focus-visible),
81
- [part='content']:has(:not([part='toggle-button']):focus-visible),
82
- [part='content']:has([href]) [part='toggle-button']:focus-visible {
83
- outline: var(--vaadin-focus-ring-width) solid var(--vaadin-focus-ring-color);
84
- }
79
+ [part='content']:not(:has([href])):has([part='toggle-button']:focus-visible),
80
+ [part='content']:has(:not([part='toggle-button']):focus-visible),
81
+ [part='content']:has([href]) [part='toggle-button']:focus-visible {
82
+ outline: var(--vaadin-focus-ring-width) solid var(--vaadin-focus-ring-color);
83
+ }
85
84
 
86
- [part='content']:not(:has([href])) [part='toggle-button']:focus-visible {
87
- outline: 0;
88
- }
85
+ [part='content']:not(:has([href])) [part='toggle-button']:focus-visible {
86
+ outline: 0;
87
+ }
89
88
 
90
- /* Hierarchy indentation */
91
- [part='content']::before {
92
- content: '';
93
- --_hierarchy-indent: calc(var(--_level, 0) * var(--vaadin-side-nav-child-indent, var(--vaadin-icon-size, 1lh)));
94
- --_icon-indent: calc(var(--_level, 0) * var(--vaadin-side-nav-item-gap, var(--vaadin-gap-container-inline)));
95
- width: calc(var(--_hierarchy-indent) + var(--_icon-indent));
96
- flex: none;
97
- margin-inline-start: calc(var(--vaadin-side-nav-item-gap, var(--vaadin-gap-container-inline)) * -1);
98
- }
89
+ /* Hierarchy indentation */
90
+ [part='content']::before {
91
+ content: '';
92
+ --_hierarchy-indent: calc(var(--_level, 0) * var(--vaadin-side-nav-child-indent, var(--vaadin-icon-size, 1lh)));
93
+ --_icon-indent: calc(var(--_level, 0) * var(--vaadin-side-nav-item-gap, var(--vaadin-gap-container-inline)));
94
+ width: calc(var(--_hierarchy-indent) + var(--_icon-indent));
95
+ flex: none;
96
+ margin-inline-start: calc(var(--vaadin-side-nav-item-gap, var(--vaadin-gap-container-inline)) * -1);
97
+ }
99
98
 
100
- slot[name='children'] {
101
- --_level: calc(var(--_level-2, 0) + 1);
102
- }
99
+ slot[name='children'] {
100
+ --_level: calc(var(--_level-2, 0) + 1);
101
+ }
103
102
 
104
- slot[name='children']::slotted(*) {
105
- --_level-2: var(--_level);
106
- }
103
+ slot[name='children']::slotted(*) {
104
+ --_level-2: var(--_level);
105
+ }
107
106
 
108
- @media (forced-colors: active) {
109
- :host([current]) [part='content'] {
110
- color: Highlight;
111
- }
107
+ @media (forced-colors: active) {
108
+ :host([current]) [part='content'] {
109
+ color: Highlight;
110
+ }
112
111
 
113
- :host([disabled]) [part='content'] {
114
- --vaadin-side-nav-item-color: GrayText;
115
- }
112
+ :host([disabled]) [part='content'] {
113
+ --vaadin-side-nav-item-color: GrayText;
114
+ }
116
115
 
117
- :host([disabled]) [part='toggle-button']::before {
118
- background: GrayText;
119
- }
116
+ :host([disabled]) [part='toggle-button']::before {
117
+ background: GrayText;
120
118
  }
121
119
  }
122
120
  `;
@@ -7,87 +7,85 @@ import '@vaadin/component-base/src/style-props.js';
7
7
  import { css } from 'lit';
8
8
 
9
9
  export const sharedStyles = css`
10
- @layer base {
11
- :host {
12
- display: flex;
13
- flex-direction: column;
14
- gap: var(--vaadin-side-nav-items-gap, var(--vaadin-gap-container-block));
15
- cursor: default;
16
- -webkit-tap-highlight-color: transparent;
17
- }
10
+ :host {
11
+ display: flex;
12
+ flex-direction: column;
13
+ gap: var(--vaadin-side-nav-items-gap, var(--vaadin-gap-container-block));
14
+ cursor: default;
15
+ -webkit-tap-highlight-color: transparent;
16
+ }
18
17
 
19
- :host([hidden]),
20
- [hidden] {
21
- display: none !important;
22
- }
18
+ :host([hidden]),
19
+ [hidden] {
20
+ display: none !important;
21
+ }
23
22
 
24
- button {
25
- appearance: none;
26
- margin: 0;
27
- padding: 0;
28
- border: 0;
29
- background: transparent;
30
- color: inherit;
31
- font: inherit;
32
- text-align: inherit;
33
- cursor: var(--vaadin-clickable-cursor);
34
- flex: none;
35
- }
23
+ button {
24
+ appearance: none;
25
+ margin: 0;
26
+ padding: 0;
27
+ border: 0;
28
+ background: transparent;
29
+ color: inherit;
30
+ font: inherit;
31
+ text-align: inherit;
32
+ cursor: var(--vaadin-clickable-cursor);
33
+ flex: none;
34
+ }
36
35
 
37
- [part='toggle-button'] {
38
- border-radius: var(--vaadin-side-nav-item-border-radius, var(--vaadin-radius-s));
39
- color: var(--vaadin-color-subtle);
40
- }
36
+ [part='toggle-button'] {
37
+ border-radius: var(--vaadin-side-nav-item-border-radius, var(--vaadin-radius-s));
38
+ color: var(--vaadin-color-subtle);
39
+ }
41
40
 
42
- [part='toggle-button']::before {
43
- content: '';
44
- display: block;
45
- background: currentColor;
46
- mask-image: var(--_vaadin-icon-chevron-down);
47
- width: var(--vaadin-icon-size, 1lh);
48
- height: var(--vaadin-icon-size, 1lh);
49
- rotate: -90deg;
50
- }
41
+ [part='toggle-button']::before {
42
+ content: '';
43
+ display: block;
44
+ background: currentColor;
45
+ mask-image: var(--_vaadin-icon-chevron-down);
46
+ width: var(--vaadin-icon-size, 1lh);
47
+ height: var(--vaadin-icon-size, 1lh);
48
+ rotate: -90deg;
49
+ }
51
50
 
52
- :host([dir='rtl']) [part='toggle-button']::before {
53
- scale: -1;
54
- }
51
+ :host([dir='rtl']) [part='toggle-button']::before {
52
+ scale: -1;
53
+ }
55
54
 
56
- :host(:is(vaadin-side-nav-item[expanded], vaadin-side-nav:not([collapsed]))) [part='toggle-button'] {
57
- rotate: 90deg;
58
- }
55
+ :host(:is(vaadin-side-nav-item[expanded], vaadin-side-nav:not([collapsed]))) [part='toggle-button'] {
56
+ rotate: 90deg;
57
+ }
59
58
 
60
- :host([dir='rtl']:is(vaadin-side-nav-item[expanded], vaadin-side-nav:not([collapsed]))) [part='toggle-button'] {
61
- rotate: -90deg;
62
- }
59
+ :host([dir='rtl']:is(vaadin-side-nav-item[expanded], vaadin-side-nav:not([collapsed]))) [part='toggle-button'] {
60
+ rotate: -90deg;
61
+ }
63
62
 
64
- @media (prefers-reduced-motion: no-preference) {
65
- [part='toggle-button'] {
66
- transition: rotate 150ms;
67
- }
63
+ @media (prefers-reduced-motion: no-preference) {
64
+ [part='toggle-button'] {
65
+ transition: rotate 150ms;
68
66
  }
67
+ }
69
68
 
70
- :host([disabled]) [part='toggle-button'] {
71
- opacity: 0.5;
72
- }
69
+ :host([disabled]) [part='toggle-button'] {
70
+ opacity: 0.5;
71
+ }
73
72
 
74
- [part='children'] {
75
- padding: 0;
76
- margin: 0;
77
- list-style-type: none;
78
- display: flex;
79
- flex-direction: column;
80
- gap: var(--vaadin-side-nav-items-gap, var(--vaadin-gap-container-block));
81
- }
73
+ [part='children'] {
74
+ padding: 0;
75
+ margin: 0;
76
+ list-style-type: none;
77
+ display: flex;
78
+ flex-direction: column;
79
+ gap: var(--vaadin-side-nav-items-gap, var(--vaadin-gap-container-block));
80
+ }
82
81
 
83
- :focus-visible {
84
- outline: var(--vaadin-focus-ring-width) solid var(--vaadin-focus-ring-color);
85
- }
82
+ :focus-visible {
83
+ outline: var(--vaadin-focus-ring-width) solid var(--vaadin-focus-ring-color);
84
+ }
86
85
 
87
- @media (forced-colors: active) {
88
- [part='toggle-button']::before {
89
- background: CanvasText;
90
- }
86
+ @media (forced-colors: active) {
87
+ [part='toggle-button']::before {
88
+ background: CanvasText;
91
89
  }
92
90
  }
93
91
  `;
@@ -82,7 +82,7 @@ import { SideNavChildrenMixin } from './vaadin-side-nav-children-mixin.js';
82
82
  * @mixes SideNavChildrenMixin
83
83
  */
84
84
  class SideNavItem extends SideNavChildrenMixin(
85
- DisabledMixin(ElementMixin(ThemableMixin(LumoInjectionMixin(PolylitMixin(LitElement))))),
85
+ DisabledMixin(ElementMixin(ThemableMixin(PolylitMixin(LumoInjectionMixin(LitElement))))),
86
86
  ) {
87
87
  static get is() {
88
88
  return 'vaadin-side-nav-item';
@@ -74,7 +74,7 @@ import { SideNavChildrenMixin } from './vaadin-side-nav-children-mixin.js';
74
74
  * @mixes SideNavChildrenMixin
75
75
  */
76
76
  class SideNav extends SideNavChildrenMixin(
77
- SlotStylesMixin(FocusMixin(ElementMixin(ThemableMixin(LumoInjectionMixin(PolylitMixin(LitElement)))))),
77
+ SlotStylesMixin(FocusMixin(ElementMixin(ThemableMixin(PolylitMixin(LumoInjectionMixin(LitElement)))))),
78
78
  ) {
79
79
  static get is() {
80
80
  return 'vaadin-side-nav';
package/web-types.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": "25.0.0-alpha7",
4
+ "version": "25.0.0-alpha8",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/web-types",
3
3
  "name": "@vaadin/side-nav",
4
- "version": "25.0.0-alpha7",
4
+ "version": "25.0.0-alpha8",
5
5
  "description-markup": "markdown",
6
6
  "framework": "lit",
7
7
  "framework-config": {