import { useState } from "react"; import type { Meta, StoryObj } from "@storybook/react-vite"; import { FormField } from "@shared/components/FormField"; import { Input } from "@shared/components/Input"; import { Select } from "@shared/components/Select"; import { Checkbox } from "@shared/components/Checkbox"; import { RadioGroup } from "@shared/components/Radio"; import { Slider } from "@shared/components/Slider"; import { Stack } from "@shared/components/Stack"; import { Inline } from "@shared/components/Inline"; // Inline icon to avoid a cross-layer import; shared/ must not depend on portal/. function SearchIcon({ size = 14 }: { size?: number }) { return ( ); } const meta: Meta = { title: "Primitives/Forms", parameters: { layout: "padded" }, decorators: [ (S) => (
), ], }; export default meta; type Story = StoryObj; export const Input_Default: Story = { render: () => ( ), }; export const Input_WithIcon: Story = { render: () => ( } placeholder="Search Stirling…" /> ), }; export const Input_Error: Story = { render: () => ( {}} /> ), }; export const Select_Default: Story = { render: () => ( setName(e.target.value)} placeholder="e.g. coi-compliance" />