import { SelectPlanButton } from "./index"; import { DocsPage } from "@shared/stories/DocsTemplate"; import type { Meta, StoryObj } from "@storybook/react"; const meta: Meta = { title: "Components/SelectPlanButton", component: SelectPlanButton, tags: ["autodocs"], parameters: { layout: "centered", docs: { page: DocsPage, description: { component: "A button component specifically designed for selecting plans, with speed information and interactive states.", }, }, }, argTypes: { speed: { control: { type: "text" }, description: "Speed value for the plan", }, onSelect: { action: "selected", description: "Callback function when button is clicked", }, }, args: { speed: "100 Mbps", onSelect: () => {}, }, }; export default meta; type Story = StoryObj; // Default button export const Default: Story = { args: {}, }; // With speed prop export const WithSpeed: Story = { args: { speed: "500 Mbps", }, }; // Different speeds export const DifferentSpeeds: Story = { render: () => (
{}} /> {}} /> {}} /> {}} />
), parameters: { docs: { description: { story: "SelectPlanButton with different speed values.", }, }, }, }; // Interactive state export const Interactive: Story = { render: () => { const handleSelect = (speed: string) => { alert(`Selected plan: ${speed}`); }; return (
handleSelect("100 Mbps")} /> handleSelect("500 Mbps")} /> handleSelect("1 Gbps")} />
); }, parameters: { docs: { description: { story: "Interactive SelectPlanButton examples that trigger callbacks.", }, }, }, }; // Selected State export const SelectedState: Story = { render: () => (
{}} isSelected={true} />
), parameters: { docs: { description: { story: "SelectPlanButton with selected state.", }, }, }, }; // In plan card export const InPlanCard: Story = { render: () => (

Standard Plan

Perfect for families

$49.99

per month

  • Up to 500 Mbps
  • Unlimited data
  • Free installation
{}} />
), parameters: { docs: { description: { story: "SelectPlanButton used within a plan card layout.", }, }, }, }; // All variants showcase export const AllVariants: Story = { render: () => (

Different Speeds

{}} /> {}} /> {}} /> {}} />

In Context

Basic Plan

100 Mbps

{}} />

Premium Plan

1 Gbps

{}} />
), parameters: { docs: { description: { story: "Showcase of all SelectPlanButton variants and use cases.", }, }, }, };