import { storiesOf, html } from '@open-wc/demoing-storybook'; import { LitElement, css } from '@lion/core'; import '../lion-tabs.js'; const tabsDemoStyle = css` .demo-tabs__tab[selected] { font-weight: bold; } `; storiesOf('Tabs', module) .add( 'Default', () => html`

Info

Lorem ipsum dolor sit, amet consectetur adipisicing elit. Laboriosam sequi odit cumque, enim aut assumenda itaque quis voluptas est quos fugiat unde labore reiciendis saepe, iure, optio officiis obcaecati quibusdam.

About

Lorem ipsum dolor sit, amet consectetur adipisicing elit. Laboriosam sequi odit cumque, enim aut assumenda itaque quis voluptas est quos fugiat unde labore reiciendis saepe, iure, optio officiis obcaecati quibusdam.

`, ) .add( 'selectedIndex', () => html`

Info

Lorem ipsum dolor sit, amet consectetur adipisicing elit. Laboriosam sequi odit cumque, enim aut assumenda itaque quis voluptas est quos fugiat unde labore reiciendis saepe, iure, optio officiis obcaecati quibusdam.

About

Lorem ipsum dolor sit, amet consectetur adipisicing elit. Laboriosam sequi odit cumque, enim aut assumenda itaque quis voluptas est quos fugiat unde labore reiciendis saepe, iure, optio officiis obcaecati quibusdam.

`, ) .add( 'Slots order', () => html`

Info

This is exactly the same just in the code it's differently ordered.

About

Lorem ipsum dolor sit, amet consectetur adipisicing elit. Laboriosam sequi odit cumque, enim aut assumenda itaque quis voluptas est quos fugiat unde labore reiciendis saepe, iure, optio officiis obcaecati quibusdam.

`, ) .add('Distribute new elements', () => { const tagName = 'lion-tabs-experimental'; if (!customElements.get(tagName)) { customElements.define( tagName, class extends LitElement { static get properties() { return { __collection: { type: Array }, }; } render() { return html`

Append

panel 1

panel 2


Push

panel 1

panel 2

${this.__collection.map( item => html`

${item.panel}

`, )}
`; } constructor() { super(); this.__collection = []; } __handleAppendClick() { const tabsElement = this.shadowRoot.querySelector('#appendTabs'); const c = 2; const n = Math.floor(tabsElement.children.length / 2); for (let i = n + 1; i < n + c; i += 1) { const tab = document.createElement('button'); tab.setAttribute('slot', 'tab'); tab.innerText = `tab ${i}`; const panel = document.createElement('p'); panel.setAttribute('slot', 'panel'); panel.innerText = `panel ${i}`; tabsElement.append(tab); tabsElement.append(panel); } } __handlePushClick() { const tabsElement = this.shadowRoot.querySelector('#pushTabs'); const i = Math.floor(tabsElement.children.length / 2) + 1; this.__collection = [ ...this.__collection, { button: `tab ${i}`, panel: `panel ${i}`, }, ]; } }, ); } return html` `; });