UNPKG

@gdwc/components

Version:

A library of generic web components that are accessible, framework agnostic, possible to style, and easy to use with data provided by Drupal

132 lines (124 loc) 3.21 kB
import { html } from 'lit'; import { themeControls } from '../stories/fixtures/controls.js'; import '../card.js'; import '../store.js'; import '../provider.js'; import '../stories/components/gdwc-theme.js'; export default { title: 'Components/Card', component: 'Card', description: 'A simple card component', parameters: { docs: { description: { component: 'A generic card.', }, }, }, argTypes: { imgSrc: { table: { category: 'properties', }, }, headline: { table: { category: 'properties', }, }, body: { table: { category: 'properties', }, }, linkHref: { table: { category: 'properties', }, }, 'part(card)': { description: 'Stylable part for outer card container. Example selector: gdwc-card::part(card) {}', table: { category: 'shadow parts', }, }, 'part(image)': { description: 'Stylable part for card image. Example selector: gdwc-card::part(image) {}', table: { category: 'shadow parts', }, }, 'part(body)': { description: 'Stylable part for card body. Example selector: gdwc-card::part(body) {}', table: { category: 'shadow parts', }, }, ...themeControls, }, }; const Template = args => { const { imgSrc, headline, body, linkHref } = args; return html` <gdwc-theme args=${JSON.stringify(args)}> <gdwc-card imgSrc=${imgSrc} headline=${headline} body=${body} linkHref=${linkHref} ></gdwc-card> </gdwc-theme>`; }; const DataTemplate = ({ apiBase, defaultLocale, debug, objectName }) => html` <gdwc-store apiBase=${apiBase} defaultLocale=${defaultLocale} ?debug=${debug} > <gdwc-provider objectName=${objectName} id="616d69df-e9a1-41e9-ac4f-4d5d649f40d4" include="field_media_image.field_media_image" query=${`{ headline: title field_media_image { field_media_image { uri { url } } } field_summary { processed } }`} debug="true" > <template> <gdwc-card headline="{{ headline }}" imgSrc="https://dev-ds-demo.pantheonsite.io/{{ field_media_image.field_media_image.uri.url }}" > {{ field_summary.processed }} </gdwc-card> </template> </gdwc-provider> </gdwc-store> `; export const Primary = Template.bind({}); Primary.args = { imgSrc: 'https://picsum.photos/2000/500', headline: 'Example Headline', body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', linkHref: 'https://www.google.com', }; export const WithData = DataTemplate.bind({}); WithData.args = { apiBase: 'https://dev-ds-demo.pantheonsite.io', defaultLocale: 'en', debug: true, objectName: 'node--recipe', };