import { playgroundParameters } from "@charcuterie/storybook-config/story-parameters" import type { Meta, StoryObj } from "@storybook/react" import { useState } from "react" import { controlSizeArgType } from "../argTypes.storyHelpers.ts" import { ContainerBoard, StoryCell, StoryGrid, StorySection, } from "../board.storyHelpers.tsx" import { Field } from "../Field/Field.tsx" import { SearchInput } from "./SearchInput.tsx" const ClearIcon = () => ( ) const ControlledSearch = ({ size = "md", }: { size?: "md" | "lg" }) => { const [value, setValue] = useState("filter paper") return ( } onChange={(event) => setValue(event.target.value)} onClear={() => setValue("")} placeholder="Name or location…" size={size} value={value} /> ) } const meta = { title: "Components/Controls/SearchInput", component: SearchInput, parameters: { layout: "padded" }, argTypes: { size: controlSizeArgType }, args: { clearIcon: , onClear: () => undefined, placeholder: "Name or location…", readOnly: true, size: "md", value: "filter paper", }, } satisfies Meta export default meta type Story = StoryObj export const Playground: Story = { parameters: playgroundParameters, render: () => , } export const AllVariants: Story = { render: () => ( {(["md", "lg"] as const).map((size) => ( ))} ), } export const AllStates: Story = { render: () => ( } onClear={() => undefined} value="" /> } onClear={() => undefined} readOnly value="filter paper" /> } disabled onClear={() => undefined} readOnly value="filter paper" /> } onClear={() => undefined} readOnly value="filter paper" /> ), } export const Responsive: Story = { render: () => ( ), } export const Interactive: Story = { render: () => , }