import type { Meta, StoryObj } from '@storybook/nextjs-vite'; import { FieldWrapper } from '../components/ui/field-wrapper'; import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, } from '../components/ui/select'; const meta = { title: 'UI/Select', component: Select, parameters: { layout: 'padded', }, tags: ['autodocs'], decorators: [ Story => (
), ], } satisfies Meta; export default meta; type Story = StoryObj; /** * Default select with placeholder. */ export const Default: Story = { render: () => ( ), }; /** * Select with a pre-selected value. */ export const WithValue: Story = { render: () => ( ), }; /** * Disabled select. */ export const Disabled: Story = { render: () => ( ), }; /** * Select with grouped items and labels. */ export const WithGroups: Story = { render: () => ( ), }; /** * Select with a disabled item. */ export const WithDisabledItem: Story = { render: () => ( ), }; /** * Select with many items to demonstrate scrolling. */ export const ManyItems: Story = { render: () => ( ), }; /** * Select with invalid state. */ export const Invalid: Story = { render: () => ( ), }; /** * Select with label using FieldWrapper. */ export const WithLabel: Story = { render: () => ( ), }; /** * Select with label and error message. */ export const WithLabelAndError: Story = { render: () => ( ), }; /** * Select with label and selected value. */ export const WithLabelAndValue: Story = { render: () => ( ), }; /** * All select variants displayed together for comparison. */ export const AllVariants: Story = { render: () => (
), };