"use client" import type { Meta, StoryObj } from '@storybook/react'; import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './card'; import { Button } from './button'; import { Badge } from './badge'; import { Bell, Check, X } from 'lucide-react'; const meta: Meta = { title: 'Components/Card', component: Card, parameters: { layout: 'centered', docs: { description: { component: 'Displays a card with header, content, and footer.', }, }, }, tags: ['autodocs'], argTypes: { className: { control: 'text', description: 'Additional CSS classes', }, }, }; export default meta; type Story = StoryObj; export const Default: Story = { render: () => ( Card Title Card Description

Card Content

), }; export const WithNotification: Story = { render: () => (
Notifications
You have 3 unread messages.
New comment on your post
Your order has been shipped
Payment reminder
), }; export const WithBadge: Story = { render: () => (
Feature Request Open
Add dark mode support to the dashboard

Users have been requesting a dark mode option for better accessibility and reduced eye strain during night usage.

+12 others
), }; export const ProductCard: Story = { render: () => (
Product Image
Wireless Headphones High-quality wireless headphones with noise cancellation
$299 In Stock
), }; export const SimpleCard: Story = { render: () => (

Total Revenue

$15,231.89

+20.1% from last month

), }; export const InteractiveCard: Story = { render: () => ( Interactive Card This card responds to hover and click events

Hover over this card to see the elevation effect, or click to interact with it.

), }; export const CardGrid: Story = { render: () => (
{Array.from({ length: 6 }).map((_, index) => ( Card {index + 1} This is card number {index + 1}

Some content for card {index + 1}

))}
), parameters: { docs: { description: { story: 'Multiple cards arranged in a responsive grid layout.', }, }, }, };