import type { Meta, StoryObj } from '@storybook/nextjs-vite' import { fn } from 'storybook/test' import { themes } from '../../../../.storybook/preview' import { Card } from '../' import { Typography } from '../../Typography' import { Button } from '../../Button' type CompositionProps = React.ComponentPropsWithoutRef & { _onPrimaryPress?: () => void _onSecondaryPress?: () => void inMainArea: boolean showTitle: boolean showPreamble: boolean showPrimaryButton: boolean showSecondaryButton: boolean } const meta: Meta = { title: 'Compositions/Card', component: Card, decorators: [ (Story, context) => { if (context.name.toLowerCase().indexOf('all themes') >= 0) { return ( <>

{context.name}

{Object.entries(themes.themes).map(([key, value], ix) => { return (

{key}

) })} ) } return (
) }, ], argTypes: { inMainArea: { name: 'Is in main area', }, showTitle: { name: 'Composition: Show title', }, showPreamble: { name: 'Composition: Show preamble', }, showPrimaryButton: { name: 'Composition: Show primary button', }, showSecondaryButton: { name: 'Composition: Show secondary button', }, _onPrimaryPress: { table: { disable: true, }, }, _onSecondaryPress: { table: { disable: true, }, }, }, render: ({ inMainArea, showTitle, showPreamble, showPrimaryButton, showSecondaryButton, ...args }) => ( {showTitle && (

Content Card

)} {showPreamble && (

Mattis sit duis pulvinar ultricies auctor euismod. Augue mattis mauris at est iaculis pulvinar pulvinar.

)} {showPrimaryButton && inMainArea && ( )} {showPrimaryButton && !inMainArea && ( )} {showSecondaryButton && ( )}
), } export default meta type Story = StoryObj export const ContentCardMainArea: Story = { args: { as: 'Default', inMainArea: true, showTitle: true, showPreamble: true, showPrimaryButton: true, showSecondaryButton: true, _onPrimaryPress: fn(), _onSecondaryPress: fn(), }, } export const ContentCardNonMainArea: Story = { args: { as: 'Default', inMainArea: false, showTitle: true, showPreamble: true, showPrimaryButton: true, showSecondaryButton: true, _onPrimaryPress: fn(), _onSecondaryPress: fn(), }, } export const ContentCardMainAreaAllThemes: Story = { ...ContentCardMainArea, } export const ContentCardNonMainAreaAllThemes: Story = { ...ContentCardNonMainArea, }