import type { Meta, StoryObj } from '@storybook/react'; import { Button } from './button'; import { Mail, Trash2 } from 'lucide-react'; const meta = { title: 'Components/UI/Button', component: Button, tags: ['autodocs'], argTypes: { variant: { control: 'select', options: ['default', 'primary', 'destructive', 'outline', 'secondary', 'ghost', 'gaming', 'terminal', 'nature', 'glass'], }, size: { control: 'select', options: ['default', 'sm', 'lg', 'icon'], }, disabled: { control: 'boolean' }, asChild: { table: { disable: true } }, }, args: { children: 'Button', variant: 'default', size: 'default', } } satisfies Meta; export default meta; type Story = StoryObj; export const Default: Story = {}; export const Variants = { render: () => (
), }; export const Sizes = { render: () => (
), }; export const WithIcon: Story = { args: { children: 'Email Login', icon: , }, }; export const Destructive: Story = { args: { variant: 'destructive', children: 'Delete Account', icon: , }, }; export const LoadingState: Story = { render: () => ( ), }; /** Very long label, very short label, and dark/light context. */ export const VisualStressTest: Story = { render: () => (
), };