/*! Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. */
import * as React from 'react';
import Screener from 'screener-storybook/src/screener';
import { storiesOf } from '@storybook/react';
import { FabricDecoratorFullWidth } from '../utilities';
import { Button, IButtonStyles, IButtonTokens } from '@uifabric/experiments';
import {
Card,
ICardStyles,
ICardTokens,
ICardItemStyles,
ICardItemTokens,
ICardSectionStyles,
ICardSectionTokens,
} from '@uifabric/react-cards';
import {
ActionButton,
Fabric,
FontWeights,
Icon,
IIconStyles,
Image,
Persona,
Stack,
Text,
ITextStyles,
} from 'office-ui-fabric-react';
const cardClicked = (): void => {
/** no-impl **/
};
// Styles used in story examples.
const siteTextStyles: ITextStyles = {
root: {
color: '#025F52',
fontWeight: FontWeights.semibold,
},
};
const descriptionTextStyles: ITextStyles = {
root: {
color: '#333333',
fontWeight: FontWeights.semibold,
},
};
const helpfulTextStyles: ITextStyles = {
root: {
color: '#333333',
fontWeight: FontWeights.regular,
},
};
const iconStyles: IIconStyles = {
root: {
color: '#0078D4',
fontSize: 16,
fontWeight: FontWeights.regular,
},
};
const footerCardSectionStyles: ICardSectionStyles = {
root: {
borderTop: '1px solid #F3F2F1',
},
};
const backgroundImageCardSectionStyles: ICardSectionStyles = {
root: {
backgroundImage: 'url(https://placehold.it/256x144)',
backgroundPosition: 'center center',
backgroundSize: 'cover',
height: 144,
},
};
const dateTextStyles: ITextStyles = {
root: {
color: '#505050',
fontWeight: 600,
},
};
const subduedTextStyles: ITextStyles = {
root: {
color: '#666666',
},
};
const actionButtonStyles: IButtonStyles = {
root: {
border: 'none',
color: '#333333',
height: 'auto',
minHeight: 0,
minWidth: 0,
padding: 0,
selectors: {
':hover': {
color: '#0078D4',
},
},
},
content: {
fontSize: 12,
fontWeight: FontWeights.semibold,
},
};
const footerHorizontalCardSectionStyles: ICardSectionStyles = {
root: {
borderLeft: '1px solid #F3F2F1',
},
};
const cardStyles: ICardStyles = {
root: {
backgroundColor: '#D8F6FF',
},
};
const cardSectionOrItemStyles: ICardSectionStyles | ICardItemStyles = {
root: {
borderStyle: 'dashed',
borderWidth: '2px',
},
};
const firstCardSectionStyles: ICardSectionStyles = {
root: {
backgroundColor: '#B0DEFF',
borderColor: '#2566CA',
...(cardSectionOrItemStyles.root as object),
},
};
const secondCardSectionStyles: ICardSectionStyles = {
root: {
backgroundColor: '#ABFFEF',
borderColor: '#0F7A67',
...(cardSectionOrItemStyles.root as object),
},
};
const thirdCardSectionStyles: ICardSectionStyles = {
root: {
backgroundColor: '#E8D4FF',
borderColor: '#7742B3',
...(cardSectionOrItemStyles.root as object),
},
};
// Tokens used in story examples.
const cardTokens: ICardTokens = { childrenMargin: 12 };
const footerCardSectionTokens: ICardSectionTokens = { padding: '12px 0px 0px' };
const backgroundImageCardSectionTokens: ICardSectionTokens = { padding: 12 };
const agendaCardSectionTokens: ICardSectionTokens = { childrenGap: 0 };
const attendantsCardSectionTokens: ICardSectionTokens = { childrenGap: 6 };
const footerCardItemTokens: ICardItemTokens = {
margin: '12px 12px 6px',
padding: '6px 0px 0px',
};
const addEventButtonTokens: IButtonTokens = {
backgroundColor: 'transparent',
backgroundColorHovered: 'transparent',
backgroundColorPressed: 'transparent',
borderColor: 'transparent',
borderColorHovered: 'transparent',
borderColorPressed: 'transparent',
colorHovered: '#0078D4',
colorPressed: '#0078D4',
contentPadding: 0,
iconColor: '#0078D4',
iconColorHovered: '#0078D4',
iconColorPressed: '#0078D4',
textSize: 12,
textWeight: FontWeights.regular,
};
const footerHorizontalCardSectionTokens: ICardSectionTokens = { padding: '0px 0px 0px 12px' };
const cardSectionTokens: ICardSectionTokens = {
childrenGap: 6,
padding: 6,
};
storiesOf('Card', module)
.addDecorator(FabricDecoratorFullWidth)
.addDecorator(story =>
// prettier-ignore
{story()}
,
)
.addStory('Vertical Card - Basic - Non hoverable', () => (
Basic vertical card
))
.addStory('Vertical Card - Basic - Hoverable', () => (
Basic vertical card
))
.addStory('Vertical Card - Example with contents - Image on top', () => (
Contoso
Contoso Denver expansion design marketing hero guidelines
Is this recommendation helpful?
))
.addStory('Vertical Card - Example with contents - Image in middle', () => (
NOVEMBER
26
Category
Contoso marketing customer visit and survey results
Tuesday 2:00-4:30 pm
Conf Room 34/1301
))
.addStory('Horizontal Card - Basic - Non hoverable', () => (
Basic horizontal card
))
.addStory('Horizontal Card - Basic - Hoverable', () => (
Basic horizontal card
))
.addStory('Horizontal Card - Example with contents', () => (
Contoso
Contoso Denver expansion design marketing hero guidelines
Is this recommendation helpful?
))
.addStory('Card with first CardSection filled', () => (
This is a Card Section
This is a Card Section
This is a Card Section
This is a Card Section
This is a Card Section
This is a Card Section
This is a Card Section
This is a Card Section
This is a Card Section
))
.addStory('Card with second CardSection filled', () => (
This is a Card Section
This is a Card Section
This is a Card Section
This is a Card Section
This is a Card Section
This is a Card Section
This is a Card Section
This is a Card Section
This is a Card Section
))
.addStory('Card with third CardSection filled', () => (
This is a Card Section
This is a Card Section
This is a Card Section
This is a Card Section
This is a Card Section
This is a Card Section
This is a Card Section
This is a Card Section
This is a Card Section
));