import React from "react"; import Input from "../app/components/Input"; export default { title: "Forms/Input", component: Input, parameters: { layout: "centered", }, argTypes: { size: { control: { type: "select" }, options: ["small", "medium", "large"], }, labelVariant: { control: { type: "select" }, options: ["default", "horizontal"], }, state: { control: { type: "select" }, options: ["default", "active", "hover", "focus", "error", "disabled"], }, disabled: { control: { type: "boolean" }, }, error: { control: { type: "boolean" }, }, label: { control: { type: "text" }, }, placeholder: { control: { type: "text" }, }, value: { control: { type: "text" }, }, }, }; const Template = (args) => ; // Default story export const Default = Template.bind({}); Default.args = { label: "Default Input", placeholder: "Enter text...", size: "medium", labelVariant: "default", state: "default", }; // Size variants export const Small = Template.bind({}); Small.args = { label: "Small Input", placeholder: "Small size", size: "small", labelVariant: "default", state: "default", }; export const Medium = Template.bind({}); Medium.args = { label: "Medium Input", placeholder: "Medium size", size: "medium", labelVariant: "default", state: "default", }; export const Large = Template.bind({}); Large.args = { label: "Large Input", placeholder: "Large size", size: "large", labelVariant: "default", state: "default", }; // Label variants export const DefaultLabel = Template.bind({}); DefaultLabel.args = { label: "Default Label (Top)", placeholder: "Top label", size: "medium", labelVariant: "default", state: "default", }; export const HorizontalLabel = Template.bind({}); HorizontalLabel.args = { label: "Horizontal Label", placeholder: "Left label", size: "medium", labelVariant: "horizontal", state: "default", }; // States export const Active = Template.bind({}); Active.args = { label: "Active State", placeholder: "Active input", size: "medium", labelVariant: "default", state: "active", }; export const Hover = Template.bind({}); Hover.args = { label: "Hover State", placeholder: "Hover input", size: "medium", labelVariant: "default", state: "hover", }; export const Focus = Template.bind({}); Focus.args = { label: "Focus State", placeholder: "Focused input", size: "medium", labelVariant: "default", state: "focus", }; export const Error = Template.bind({}); Error.args = { label: "Error State", placeholder: "Error input", size: "medium", labelVariant: "default", state: "default", error: true, }; export const Disabled = Template.bind({}); Disabled.args = { label: "Disabled State", placeholder: "Disabled input", size: "medium", labelVariant: "default", state: "default", disabled: true, }; // Interactive example export const Interactive = (args) => { const [value, setValue] = React.useState(""); return (
setValue(e.target.value)} />

Current value: "{value}"

); }; Interactive.args = { label: "Interactive Input", placeholder: "Type something...", size: "medium", labelVariant: "default", state: "default", }; // All sizes comparison export const AllSizes = () => (

Small Size

Medium Size

Large Size

); // All states comparison export const AllStates = () => (

Input States

);