import type { Meta, StoryObj } from "@storybook/nextjs-vite" import { fn } from "storybook/test" import { themes } from "../../../../.storybook/preview" import { Card } from "../" import { Button } from "../../Button" import { Typography } from "../../Typography" 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, }