/* eslint-disable import/extensions */ import { action } from '@storybook/addon-actions'; import { html } from 'lit-html'; import '../demo-wc-card.js'; import { array, boolean, button, color, date, select, withKnobs, text, number, } from '@storybook/addon-knobs'; export default { title: 'Addons/Knobs', decorators: [withKnobs], }; export const Simple = () => { const header = text('header', 'Power Ranger'); const age = number('Age', 44); return html` I am ${text('Name', 'John Doe')} and I'm ${age} years old. `; }; export const Story3 = () => { const header = text('header', 'Power Ranger'); const textColor = color('Text color', 'orangered'); return html` I am ${text('Name', 'John Doe')} and I'm 30 years old. `; }; Story3.storyName = 'Color Selection'; export const Story4 = () => { const name = text('Name', 'Jane'); const stock = number('Stock', 20, { range: true, min: 0, max: 30, step: 5, }); const fruits = { Apple: 'apples', Banana: 'bananas', Cherry: 'cherries', }; const fruit = select('Fruit', fruits, 'apples'); const price = number('Price', 2.25); const colour = color('Border', 'deeppink'); const today = date('Today', new Date('Jan 20 2017 GMT+0')); const items = array('Items', ['Laptop', 'Book', 'Whiskey']); const nice = boolean('Nice', true); const stockMessage = stock ? `I have a stock of ${stock} ${fruit}, costing $${price} each.` : `I'm out of ${fruit}${nice ? ', Sorry!' : '.'}`; const salutation = nice ? 'Nice to meet you!' : 'Leave me alone!'; const dateOptions = { year: 'numeric', month: 'long', day: 'numeric', timeZone: 'UTC' }; button('Arbitrary action', action('You clicked it!')); const style = `border: 2px dotted ${colour}; padding: 8px 22px; border-radius: 8px`; return html`

My name is ${name},

today is ${new Date(today).toLocaleDateString('en-US', dateOptions)}

${stockMessage}

Also, I have:

${salutation}

`; }; Story4.storyName = 'All knobs'; export const XssSafety = () => { const content = text('content', ''); return html` Code text works :)
Xss insert? ${content}
`; };