import type { Meta, StoryObj } from '@storybook/react-vite'; import { ArrowRight, Plus, Trash2 } from 'lucide-react'; import { Button } from './button'; const meta = { title: 'Components/Button', component: Button, parameters: { layout: 'centered', docs: { description: { component: 'The kit\'s primary interactive control. Six variants cover the full emphasis range, from a single primary call to action down to a link-styled button for dense UI.', }, }, }, tags: ['autodocs'], argTypes: { variant: { control: 'select', options: ['default', 'destructive', 'outline', 'secondary', 'ghost', 'link'], }, size: { control: 'select', options: ['sm', 'md', 'lg', 'icon'] }, disabled: { control: 'boolean' }, }, args: { children: 'Button' }, } satisfies Meta; export default meta; type Story = StoryObj; export const Default: Story = {}; export const Variants: Story = { render: () => (
), }; export const Sizes: Story = { render: () => (
), }; export const WithIcons: Story = { render: () => (
), }; export const Disabled: Story = { args: { disabled: true }, render: (args) => (
), }; /** * `asChild` hands the button's styling to whatever element you nest, so a * router link can look like a button without an invalid `` inside ` ), };