@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vaadin/side-nav",
3
- "version": "24.2.0-alpha8",
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-alpha8",
39
- "@vaadin/vaadin-lumo-styles": "24.2.0-alpha8",
40
- "@vaadin/vaadin-material-styles": "24.2.0-alpha8",
41
- "@vaadin/vaadin-themable-mixin": "24.2.0-alpha8",
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.4.3",
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": "2c024e8fd462d178430418f76a61f498fb549998"
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
- * @extends LitElement
80
- * @mixes PolylitMixin
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
- if (isEnabled()) {
272
- customElements.define(SideNavItem.is, SideNavItem);
273
- }
268
+ defineCustomElement(SideNavItem);
274
269
 
275
270
  export { SideNavItem };
@@ -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(PolylitMixin(LitElement))))) {
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
  */
@@ -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
- * @extends LitElement
72
- * @mixes PolylitMixin
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 id="children" part="children" ?hidden="${this.collapsed}" aria-hidden="${this.collapsed ? 'true' : 'false'}">
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
- if (isEnabled()) {
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='link'] {
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='link'] {
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='link']::before {
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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/web-types",
3
3
  "name": "@vaadin/side-nav",
4
- "version": "24.2.0-alpha8",
4
+ "version": "24.2.0-beta1",
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": "24.2.0-alpha8",
4
+ "version": "24.2.0-beta1",
5
5
  "description-markup": "markdown",
6
6
  "framework": "lit",
7
7
  "framework-config": {
package/enable.js DELETED
@@ -1,3 +0,0 @@
1
- window.Vaadin ||= {};
2
- window.Vaadin.featureFlags ||= {};
3
- window.Vaadin.featureFlags.sideNavComponent = true;