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: () => ,
}