@vaadin/tabs 23.2.0-dev.8a7678b70 → 23.3.0-alpha1

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/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  A web component for organizing and grouping content into sections.
4
4
 
5
- [Documentation + Live Demo ↗](https://vaadin.com/docs/latest/ds/components/tabs)
5
+ [Documentation + Live Demo ↗](https://vaadin.com/docs/latest/components/tabs)
6
6
 
7
7
  [![npm version](https://badgen.net/npm/v/@vaadin/tabs)](https://www.npmjs.com/package/@vaadin/tabs)
8
8
  [![Discord](https://img.shields.io/discord/732335336448852018?label=discord)](https://discord.gg/PHmkCKC)
@@ -16,7 +16,7 @@ A web component for organizing and grouping content into sections.
16
16
  </vaadin-tabs>
17
17
  ```
18
18
 
19
- [<img src="https://raw.githubusercontent.com/vaadin/web-components/master/packages/tabs/screenshot.png" width="355" alt="Screenshot of vaadin-tabs">](https://vaadin.com/docs/latest/ds/components/tabs)
19
+ [<img src="https://raw.githubusercontent.com/vaadin/web-components/master/packages/tabs/screenshot.png" width="355" alt="Screenshot of vaadin-tabs">](https://vaadin.com/docs/latest/components/tabs)
20
20
 
21
21
  ## Installation
22
22
 
@@ -34,7 +34,7 @@ import '@vaadin/tabs';
34
34
 
35
35
  ## Themes
36
36
 
37
- Vaadin components come with two built-in [themes](https://vaadin.com/docs/latest/ds/customization/using-themes), Lumo and Material.
37
+ Vaadin components come with two built-in [themes](https://vaadin.com/docs/latest/styling), Lumo and Material.
38
38
  The [main entrypoint](https://github.com/vaadin/web-components/blob/master/packages/tabs/vaadin-tabs.js) of the package uses the Lumo theme.
39
39
 
40
40
  To use the Material theme, import the component from the `theme/material` folder:
@@ -57,7 +57,7 @@ import '@vaadin/tabs/src/vaadin-tabs.js';
57
57
 
58
58
  ## Contributing
59
59
 
60
- Read the [contributing guide](https://vaadin.com/docs/latest/guide/contributing/overview) to learn about our development process, how to propose bugfixes and improvements, and how to test your changes to Vaadin components.
60
+ Read the [contributing guide](https://vaadin.com/docs/latest/contributing/overview) to learn about our development process, how to propose bugfixes and improvements, and how to test your changes to Vaadin components.
61
61
 
62
62
  ## License
63
63
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vaadin/tabs",
3
- "version": "23.2.0-dev.8a7678b70",
3
+ "version": "23.3.0-alpha1",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -23,7 +23,9 @@
23
23
  "src",
24
24
  "theme",
25
25
  "vaadin-*.d.ts",
26
- "vaadin-*.js"
26
+ "vaadin-*.js",
27
+ "web-types.json",
28
+ "web-types.lit.json"
27
29
  ],
28
30
  "keywords": [
29
31
  "Vaadin",
@@ -34,17 +36,21 @@
34
36
  ],
35
37
  "dependencies": {
36
38
  "@polymer/polymer": "^3.0.0",
37
- "@vaadin/component-base": "23.2.0-dev.8a7678b70",
38
- "@vaadin/item": "23.2.0-dev.8a7678b70",
39
- "@vaadin/vaadin-list-mixin": "23.2.0-dev.8a7678b70",
40
- "@vaadin/vaadin-lumo-styles": "23.2.0-dev.8a7678b70",
41
- "@vaadin/vaadin-material-styles": "23.2.0-dev.8a7678b70",
42
- "@vaadin/vaadin-themable-mixin": "23.2.0-dev.8a7678b70"
39
+ "@vaadin/component-base": "23.3.0-alpha1",
40
+ "@vaadin/item": "23.3.0-alpha1",
41
+ "@vaadin/vaadin-list-mixin": "23.3.0-alpha1",
42
+ "@vaadin/vaadin-lumo-styles": "23.3.0-alpha1",
43
+ "@vaadin/vaadin-material-styles": "23.3.0-alpha1",
44
+ "@vaadin/vaadin-themable-mixin": "23.3.0-alpha1"
43
45
  },
44
46
  "devDependencies": {
45
47
  "@esm-bundle/chai": "^4.3.4",
46
48
  "@vaadin/testing-helpers": "^0.3.2",
47
49
  "sinon": "^13.0.2"
48
50
  },
49
- "gitHead": "85b403f96d8282f262322b56c0ff4289f843d02a"
51
+ "web-types": [
52
+ "web-types.json",
53
+ "web-types.lit.json"
54
+ ],
55
+ "gitHead": "beabc527d4b1274eb798ff701d406fed45cfe638"
50
56
  }
@@ -3,6 +3,7 @@
3
3
  * Copyright (c) 2017 - 2022 Vaadin Ltd.
4
4
  * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
5
  */
6
+ import { ControllerMixin } from '@vaadin/component-base/src/controller-mixin.js';
6
7
  import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
7
8
  import { ItemMixin } from '@vaadin/item/src/vaadin-item-mixin.js';
8
9
  import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
@@ -27,9 +28,9 @@ import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mix
27
28
  * `active` | Set when mousedown or enter/spacebar pressed | :host
28
29
  * `orientation` | Set to `horizontal` or `vertical` depending on the direction of items | :host
29
30
  *
30
- * See [Styling Components](https://vaadin.com/docs/latest/ds/customization/styling-components) documentation.
31
+ * See [Styling Components](https://vaadin.com/docs/latest/styling/custom-theme/styling-components) documentation.
31
32
  */
32
- declare class Tab extends ElementMixin(ThemableMixin(ItemMixin(HTMLElement))) {}
33
+ declare class Tab extends ElementMixin(ThemableMixin(ItemMixin(ControllerMixin(HTMLElement)))) {}
33
34
 
34
35
  declare global {
35
36
  interface HTMLElementTagNameMap {
package/src/vaadin-tab.js CHANGED
@@ -4,7 +4,9 @@
4
4
  * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
5
  */
6
6
  import { html, PolymerElement } from '@polymer/polymer/polymer-element.js';
7
+ import { ControllerMixin } from '@vaadin/component-base/src/controller-mixin.js';
7
8
  import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
9
+ import { TooltipController } from '@vaadin/component-base/src/tooltip-controller.js';
8
10
  import { ItemMixin } from '@vaadin/item/src/vaadin-item-mixin.js';
9
11
  import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
10
12
 
@@ -28,14 +30,15 @@ import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mix
28
30
  * `active` | Set when mousedown or enter/spacebar pressed | :host
29
31
  * `orientation` | Set to `horizontal` or `vertical` depending on the direction of items | :host
30
32
  *
31
- * See [Styling Components](https://vaadin.com/docs/latest/ds/customization/styling-components) documentation.
33
+ * See [Styling Components](https://vaadin.com/docs/latest/styling/custom-theme/styling-components) documentation.
32
34
  *
33
35
  * @extends HTMLElement
36
+ * @mixes ControllerMixin
34
37
  * @mixes ElementMixin
35
38
  * @mixes ThemableMixin
36
39
  * @mixes ItemMixin
37
40
  */
38
- class Tab extends ElementMixin(ThemableMixin(ItemMixin(PolymerElement))) {
41
+ class Tab extends ElementMixin(ThemableMixin(ItemMixin(ControllerMixin(PolymerElement)))) {
39
42
  static get template() {
40
43
  return html`
41
44
  <style>
@@ -48,6 +51,7 @@ class Tab extends ElementMixin(ThemableMixin(ItemMixin(PolymerElement))) {
48
51
  }
49
52
  </style>
50
53
  <slot></slot>
54
+ <slot name="tooltip"></slot>
51
55
  `;
52
56
  }
53
57
 
@@ -59,6 +63,9 @@ class Tab extends ElementMixin(ThemableMixin(ItemMixin(PolymerElement))) {
59
63
  ready() {
60
64
  super.ready();
61
65
  this.setAttribute('role', 'tab');
66
+
67
+ this._tooltipController = new TooltipController(this);
68
+ this.addController(this._tooltipController);
62
69
  }
63
70
 
64
71
  /**
@@ -29,7 +29,7 @@ export interface TabsCustomEventMap {
29
29
  export interface TabsEventMap extends HTMLElementEventMap, TabsCustomEventMap {}
30
30
 
31
31
  /**
32
- * `<vaadin-tabs>` is a Web Component for easy switching between different views.
32
+ * `<vaadin-tabs>` is a Web Component for organizing and grouping content into sections.
33
33
  *
34
34
  * ```
35
35
  * <vaadin-tabs selected="4">
@@ -57,7 +57,7 @@ export interface TabsEventMap extends HTMLElementEventMap, TabsCustomEventMap {}
57
57
  * `orientation` | Tabs disposition, valid values are `horizontal` and `vertical`. | :host
58
58
  * `overflow` | It's set to `start`, `end`, none or both. | :host
59
59
  *
60
- * See [Styling Components](https://vaadin.com/docs/latest/ds/customization/styling-components) documentation.
60
+ * See [Styling Components](https://vaadin.com/docs/latest/styling/custom-theme/styling-components) documentation.
61
61
  *
62
62
  * @fires {CustomEvent} items-changed - Fired when the `items` property changes.
63
63
  * @fires {CustomEvent} selected-changed - Fired when the `selected` property changes.
@@ -76,13 +76,13 @@ declare class Tabs extends ResizeMixin(ElementMixin(ListMixin(ThemableMixin(HTML
76
76
  addEventListener<K extends keyof TabsEventMap>(
77
77
  type: K,
78
78
  listener: (this: Tabs, ev: TabsEventMap[K]) => void,
79
- options?: boolean | AddEventListenerOptions,
79
+ options?: AddEventListenerOptions | boolean,
80
80
  ): void;
81
81
 
82
82
  removeEventListener<K extends keyof TabsEventMap>(
83
83
  type: K,
84
84
  listener: (this: Tabs, ev: TabsEventMap[K]) => void,
85
- options?: boolean | EventListenerOptions,
85
+ options?: EventListenerOptions | boolean,
86
86
  ): void;
87
87
  }
88
88
 
@@ -12,7 +12,7 @@ import { ListMixin } from '@vaadin/vaadin-list-mixin/vaadin-list-mixin.js';
12
12
  import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
13
13
 
14
14
  /**
15
- * `<vaadin-tabs>` is a Web Component for easy switching between different views.
15
+ * `<vaadin-tabs>` is a Web Component for organizing and grouping content into sections.
16
16
  *
17
17
  * ```
18
18
  * <vaadin-tabs selected="4">
@@ -40,7 +40,7 @@ import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mix
40
40
  * `orientation` | Tabs disposition, valid values are `horizontal` and `vertical`. | :host
41
41
  * `overflow` | It's set to `start`, `end`, none or both. | :host
42
42
  *
43
- * See [Styling Components](https://vaadin.com/docs/latest/ds/customization/styling-components) documentation.
43
+ * See [Styling Components](https://vaadin.com/docs/latest/styling/custom-theme/styling-components) documentation.
44
44
  *
45
45
  * @fires {CustomEvent} items-changed - Fired when the `items` property changes.
46
46
  * @fires {CustomEvent} selected-changed - Fired when the `selected` property changes.
package/web-types.json ADDED
@@ -0,0 +1,132 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/web-types",
3
+ "name": "@vaadin/tabs",
4
+ "version": "23.3.0-alpha1",
5
+ "description-markup": "markdown",
6
+ "contributions": {
7
+ "html": {
8
+ "elements": [
9
+ {
10
+ "name": "vaadin-tab",
11
+ "description": "`<vaadin-tab>` is a Web Component providing an accessible and customizable tab.\n\n```\n <vaadin-tab>\n Tab 1\n </vaadin-tab>\n```\n\nThe following state attributes are available for styling:\n\nAttribute | Description | Part name\n-----------|-------------|------------\n`disabled` | Set to a disabled tab | :host\n`focused` | Set when the element is focused | :host\n`focus-ring` | Set when the element is keyboard focused | :host\n`selected` | Set when the tab is selected | :host\n`active` | Set when mousedown or enter/spacebar pressed | :host\n`orientation` | Set to `horizontal` or `vertical` depending on the direction of items | :host\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/custom-theme/styling-components) documentation.",
12
+ "attributes": [
13
+ {
14
+ "name": "selected",
15
+ "description": "If true, the item is in selected state.",
16
+ "value": {
17
+ "type": [
18
+ "boolean"
19
+ ]
20
+ }
21
+ },
22
+ {
23
+ "name": "theme",
24
+ "description": "The theme variants to apply to the component.",
25
+ "value": {
26
+ "type": [
27
+ "string",
28
+ "null",
29
+ "undefined"
30
+ ]
31
+ }
32
+ }
33
+ ],
34
+ "js": {
35
+ "properties": [
36
+ {
37
+ "name": "value",
38
+ "description": "",
39
+ "value": {
40
+ "type": [
41
+ "string"
42
+ ]
43
+ }
44
+ },
45
+ {
46
+ "name": "selected",
47
+ "description": "If true, the item is in selected state.",
48
+ "value": {
49
+ "type": [
50
+ "boolean"
51
+ ]
52
+ }
53
+ }
54
+ ],
55
+ "events": []
56
+ }
57
+ },
58
+ {
59
+ "name": "vaadin-tabs",
60
+ "description": "`<vaadin-tabs>` is a Web Component for organizing and grouping content into sections.\n\n```\n <vaadin-tabs selected=\"4\">\n <vaadin-tab>Page 1</vaadin-tab>\n <vaadin-tab>Page 2</vaadin-tab>\n <vaadin-tab>Page 3</vaadin-tab>\n <vaadin-tab>Page 4</vaadin-tab>\n </vaadin-tabs>\n```\n\n### Styling\n\nThe following shadow DOM parts are available for styling:\n\nPart name | Description\n------------------|--------------------------------------\n`back-button` | Button for moving the scroll back\n`tabs` | The tabs container\n`forward-button` | Button for moving the scroll forward\n\nThe following state attributes are available for styling:\n\nAttribute | Description | Part name\n-----------|-------------|------------\n`orientation` | Tabs disposition, valid values are `horizontal` and `vertical`. | :host\n`overflow` | It's set to `start`, `end`, none or both. | :host\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/custom-theme/styling-components) documentation.",
61
+ "attributes": [
62
+ {
63
+ "name": "selected",
64
+ "description": "The index of the selected tab.",
65
+ "value": {
66
+ "type": [
67
+ "number",
68
+ "null",
69
+ "undefined"
70
+ ]
71
+ }
72
+ },
73
+ {
74
+ "name": "orientation",
75
+ "description": "Set tabs disposition. Possible values are `horizontal|vertical`",
76
+ "value": {
77
+ "type": [
78
+ "TabsOrientation"
79
+ ]
80
+ }
81
+ },
82
+ {
83
+ "name": "theme",
84
+ "description": "The theme variants to apply to the component.",
85
+ "value": {
86
+ "type": [
87
+ "string",
88
+ "null",
89
+ "undefined"
90
+ ]
91
+ }
92
+ }
93
+ ],
94
+ "js": {
95
+ "properties": [
96
+ {
97
+ "name": "selected",
98
+ "description": "The index of the selected tab.",
99
+ "value": {
100
+ "type": [
101
+ "number",
102
+ "null",
103
+ "undefined"
104
+ ]
105
+ }
106
+ },
107
+ {
108
+ "name": "orientation",
109
+ "description": "Set tabs disposition. Possible values are `horizontal|vertical`",
110
+ "value": {
111
+ "type": [
112
+ "TabsOrientation"
113
+ ]
114
+ }
115
+ }
116
+ ],
117
+ "events": [
118
+ {
119
+ "name": "selected-changed",
120
+ "description": "Fired when the selection is changed.\nNot fired when used in `multiple` selection mode."
121
+ },
122
+ {
123
+ "name": "items-changed",
124
+ "description": "Fired when the `items` property changes."
125
+ }
126
+ ]
127
+ }
128
+ }
129
+ ]
130
+ }
131
+ }
132
+ }
@@ -0,0 +1,76 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/web-types",
3
+ "name": "@vaadin/tabs",
4
+ "version": "23.3.0-alpha1",
5
+ "description-markup": "markdown",
6
+ "framework": "lit",
7
+ "framework-config": {
8
+ "enable-when": {
9
+ "node-packages": [
10
+ "lit"
11
+ ]
12
+ }
13
+ },
14
+ "contributions": {
15
+ "html": {
16
+ "elements": [
17
+ {
18
+ "name": "vaadin-tab",
19
+ "description": "`<vaadin-tab>` is a Web Component providing an accessible and customizable tab.\n\n```\n <vaadin-tab>\n Tab 1\n </vaadin-tab>\n```\n\nThe following state attributes are available for styling:\n\nAttribute | Description | Part name\n-----------|-------------|------------\n`disabled` | Set to a disabled tab | :host\n`focused` | Set when the element is focused | :host\n`focus-ring` | Set when the element is keyboard focused | :host\n`selected` | Set when the tab is selected | :host\n`active` | Set when mousedown or enter/spacebar pressed | :host\n`orientation` | Set to `horizontal` or `vertical` depending on the direction of items | :host\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/custom-theme/styling-components) documentation.",
20
+ "extension": true,
21
+ "attributes": [
22
+ {
23
+ "name": "?selected",
24
+ "description": "If true, the item is in selected state.",
25
+ "value": {
26
+ "kind": "expression"
27
+ }
28
+ },
29
+ {
30
+ "name": ".value",
31
+ "description": "",
32
+ "value": {
33
+ "kind": "expression"
34
+ }
35
+ }
36
+ ]
37
+ },
38
+ {
39
+ "name": "vaadin-tabs",
40
+ "description": "`<vaadin-tabs>` is a Web Component for organizing and grouping content into sections.\n\n```\n <vaadin-tabs selected=\"4\">\n <vaadin-tab>Page 1</vaadin-tab>\n <vaadin-tab>Page 2</vaadin-tab>\n <vaadin-tab>Page 3</vaadin-tab>\n <vaadin-tab>Page 4</vaadin-tab>\n </vaadin-tabs>\n```\n\n### Styling\n\nThe following shadow DOM parts are available for styling:\n\nPart name | Description\n------------------|--------------------------------------\n`back-button` | Button for moving the scroll back\n`tabs` | The tabs container\n`forward-button` | Button for moving the scroll forward\n\nThe following state attributes are available for styling:\n\nAttribute | Description | Part name\n-----------|-------------|------------\n`orientation` | Tabs disposition, valid values are `horizontal` and `vertical`. | :host\n`overflow` | It's set to `start`, `end`, none or both. | :host\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/custom-theme/styling-components) documentation.",
41
+ "extension": true,
42
+ "attributes": [
43
+ {
44
+ "name": ".selected",
45
+ "description": "The index of the selected tab.",
46
+ "value": {
47
+ "kind": "expression"
48
+ }
49
+ },
50
+ {
51
+ "name": ".orientation",
52
+ "description": "Set tabs disposition. Possible values are `horizontal|vertical`",
53
+ "value": {
54
+ "kind": "expression"
55
+ }
56
+ },
57
+ {
58
+ "name": "@selected-changed",
59
+ "description": "Fired when the selection is changed.\nNot fired when used in `multiple` selection mode.",
60
+ "value": {
61
+ "kind": "expression"
62
+ }
63
+ },
64
+ {
65
+ "name": "@items-changed",
66
+ "description": "Fired when the `items` property changes.",
67
+ "value": {
68
+ "kind": "expression"
69
+ }
70
+ }
71
+ ]
72
+ }
73
+ ]
74
+ }
75
+ }
76
+ }