import React from 'react'
import { type Meta, type StoryObj } from '@storybook/react'
import { SingleSelect } from '../index'
import { type SelectItem, type SingleSelectProps } from '../types'
import { singleMockItems } from './mockData'
const meta: Meta = {
title: 'Components/SingleSelect/SingleSelect (alpha)',
component: SingleSelect,
decorators: [
(Story) => (
),
],
argTypes: {
label: { control: 'text', description: 'The label for the select/combobox input' },
labelHidden: { control: 'boolean', description: 'Visually hide the label' },
labelPosition: {
control: { type: 'radio' },
options: ['top', 'side'],
description: 'Position of the label relative to the input',
},
variant: {
control: { type: 'radio' },
options: ['primary', 'secondary'],
description: 'Visual variant',
},
size: {
control: { type: 'radio' },
options: ['small', 'medium', 'large'],
description: 'Size of the input',
},
isReadOnly: { control: 'boolean', description: 'Whether the input is read-only' },
isDisabled: { control: 'boolean', description: 'Whether the input is disabled' },
isComboBox: {
control: 'boolean',
description: 'Whether to render as a combobox (filterable input) or select',
},
items: { control: 'object', description: 'List of options to display' },
},
}
export default meta
export const Playground: StoryObj> = {
args: {
label: 'Choose an item',
isComboBox: false,
items: singleMockItems,
},
render: (args: SingleSelectProps) => (
{(item) => {item.label}}
),
parameters: {
docs: { canvas: { sourceState: 'shown' } },
},
}