Skip to content

Commit 775e4ec

Browse files
committed
Added TabElement
1 parent bc9ae25 commit 775e4ec

File tree

2 files changed

+64
-0
lines changed

2 files changed

+64
-0
lines changed

src/nav/TabElement.js

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
import {
2+
LitElement, html, css, nothing,
3+
} from 'lit';
4+
5+
/**
6+
* TabElement
7+
* This class is used to create a tab, within a tab group, which
8+
* displays a tabbed navigation horizontally.
9+
*
10+
* @example
11+
* <wc-tab-group>
12+
* <wc-tab name="tab1" selected>Tab1</wc-tab>
13+
* <wc-tab name="tab2">Tab2</wc-tab>
14+
* <wc-tab name="tab3">Tab3</wc-tab>
15+
* <wc-tab name="tab4" disabled>Tab4</wc-tab>
16+
* </wc-tab-group>
17+
*/
18+
export class TabElement extends LitElement {
19+
static get localName() {
20+
return 'wc-tab';
21+
}
22+
23+
static get properties() {
24+
return {
25+
/**
26+
* Whether the tab is selected. Only one tab within a group should
27+
* be selected at a time.
28+
* @type {Boolean}
29+
* @default false
30+
* @memberof TabElement
31+
*/
32+
selected: { type: Boolean },
33+
34+
/**
35+
* Whether the tab can be selected.
36+
* @type {Boolean}
37+
* @default false
38+
* @memberof TabElement
39+
*/
40+
disabled: { type: Boolean },
41+
42+
/**
43+
* The name of the tab, for click events.
44+
* @type {String}
45+
* @default ''
46+
* @memberof TabElement
47+
*/
48+
name: { type: String },
49+
};
50+
}
51+
52+
static get styles() {
53+
return css``;
54+
}
55+
56+
// eslint-disable-next-line class-methods-use-this
57+
render() {
58+
return html`
59+
<li class=${this.className || nothing}><slot></slot></li>
60+
`;
61+
}
62+
}

src/nav/nav.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { NavSpacerElement } from './NavSpacerElement';
99
import { CanvasElement } from './CanvasElement';
1010
import { SideBarElement } from './SideBarElement';
1111
import { ContentElement } from './ContentElement';
12+
import { TabElement } from './TabElement';
1213

1314
// Web Components
1415
customElements.define(NavBarElement.localName, NavBarElement); // wc-navbar
@@ -18,3 +19,4 @@ customElements.define(NavSpacerElement.localName, NavSpacerElement); // wc-nav-s
1819
customElements.define(CanvasElement.localName, CanvasElement); // wc-canvas
1920
customElements.define(SideBarElement.localName, SideBarElement); // wc-sidebar
2021
customElements.define(ContentElement.localName, ContentElement); // wc-content
22+
customElements.define(TabElement.localName, TabElement); // wc-tab

0 commit comments

Comments
 (0)