import type { Meta, StoryObj } from "@storybook/react" import { SvgUse } from "../../shared/SvgUse" import { Input, InputAdornment, InputAdornmentButton, InputControl, InputRoot } from "./Input" /** * The Input component is a customizable input container that provides structure * for creating form inputs with consistent styling. */ const meta = { title: "base/form/Input", component: InputRoot, parameters: { layout: "centered", }, tags: ["autodocs"], args: { className: "w-full md:w-80", }, } satisfies Meta export default meta type Story = StoryObj /** * Default implementation of the Input component with a basic text input. */ export const Default: Story = { render: args => ( ), } /** * Input with a leading icon adornment to enhance visual context. */ export const WithLeadingIcon: Story = { render: args => ( ), } /** * Input with a trailing icon adornment, useful for actions like clear. */ export const WithTrailingIcon: Story = { render: args => ( ), } /** * Input with both leading and trailing adornments for enhanced functionality. */ export const WithBothAdornments: Story = { render: args => ( ), } /** * Input with a clickable adornment button for additional actions. */ export const WithAdornmentButton: Story = { render: args => ( ), } /** * Disabled state of the Input component. */ export const Disabled: Story = { args: { disabled: true, }, render: args => ( ), } /** * Input with pre-filled value. */ export const WithValue: Story = { render: args => ( {}} /> ), } /** * Input with validation styles for error state. */ export const WithError: Story = { render: args => (

Please enter a valid value

), } /** * Input with different sizes for various use cases. */ export const Sizes: Story = { render: args => (
Small
Medium (Default)
Large
), }