import React from 'react'; import styled from 'styled-components'; import { Card, CardHeader, CardBody, CardBodyContainer, } from '../src/lib/components/card/Card.component'; import { CircularProgressBar } from '../src/lib/components/circularprogressbar/CircularProgressBar.component'; import { Text } from './common'; import { coreUIAvailableThemes } from '../src/lib/style/theme'; import { action } from 'storybook/actions'; // RGB color in theme provoke an error, excludes from control options const colors = Object.keys(coreUIAvailableThemes.darkRebrand).filter( (color) => !/RGB/.test(color), ); export default { title: 'Components/Data Display/Card', component: Card, argTypes: { status: { options: ['healthy', 'warning', 'critical'], }, onClick: { description: 'Click handler', }, children: { table: { disable: true } }, headerBackgroundColor: { control: { type: 'select' }, options: colors, }, bodyBackgroundColor: { options: colors, control: { type: 'select' }, }, }, }; const Row = styled.div` display: flex; & > * { margin-left: 10px; } `; const defaultBody = ( 60% ); const defaultPropsCard = { width: '160px', height: '140px', onClick: action('Card Clicked'), }; const statuses = ['healthy', 'warning', 'critical']; export const Playground = { args: { ...defaultPropsCard, children: [
Capacity usage
, {defaultBody} , ], status: undefined, }, }; export const NormalCards = { render: (args) => { return ( {statuses.map((status) => ( ))} ); }, args: { ...defaultPropsCard, children: [
Capacity usage
, {defaultBody} , ], }, }; export const DisabledCards = { ...NormalCards, args: { ...NormalCards.args, disabled: true, }, }; export const ActiveCards = { ...NormalCards, args: { ...NormalCards.args, active: true, }, }; export const NoOnClickProps = { name: 'No onClick props', ...NormalCards, args: { ...NormalCards.args, onClick: null, }, }; export const NoHeaders = { args: { ...defaultPropsCard, children: ( {defaultBody} ), }, }; export const NoBody = { args: { ...defaultPropsCard, status: 'critical', children: (
Capacity usage
), }, }; export const NoBodyWithAutoHeight = { ...NoBody, args: { ...NoBody.args, height: 'auto', }, }; export const MultipleBodies = { args: { ...defaultPropsCard, status: 'critical', children: [
Capacity usage
, {defaultBody} {defaultBody} , ], }, }; export const CustomizedCards = { args: { ...NormalCards.args, headerBackgroundColor: 'buttonPrimary', bodyBackgroundColor: 'infoSecondary', status: undefined, height: '200px', }, };