import type { Meta, StoryObj } from '@storybook/react' import { createSizeDecorator } from '../../utils/decorators' import { Button } from '../Button/Button' import { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent, CardAction, } from './Card' const meta = { title: 'Blocks/Card', component: Card, decorators: [createSizeDecorator('XS')], argTypes: { className: { control: 'text', description: 'Additional CSS classes for custom styling', }, children: { control: false, description: 'Card content and sub-components', }, }, } satisfies Meta export default meta type Story = StoryObj export const Default: Story = { render: (_args) => ( Default Card This is a description for the default card, which includes an action. This is some content inside the card. ), } export const NoFooter: Story = { render: (_args) => ( Card Without Footer This card does not have a footer. Sometimes, cards do not need footers. This is an example of such a card. ), } export const NoAction: Story = { render: (_args) => ( Card Title Card Description

Card Content

Card Footer

), } export const ContainerOnly: Story = { render: (_args) => (

Put here anything you want

This card demonstrates using Card as a simple container.

), } export const InteractiveCard: Story = { render: (_args) => ( Interactive Card Hover over this card to see the effect. This card demonstrates interactivity using hover styles. ), parameters: { docs: { description: { story: 'Use hover or focus styling only when the entire card behaves as one interactive target.', }, }, }, } export const WithCustomStyling: Story = { render: (_args) => ( Custom Styled Card This card demonstrates custom styling with background gradients.

Content with custom text colors.

), } export const MinimalCard: Story = { render: (_args) => (

A minimal card with just content and basic padding.

), }