import type { Meta, StoryObj } from '@storybook/vue3-vite' import { ArrowUpDown } from 'lucide-vue-next' import { ref } from 'vue' import SingleSelect from './SingleSelect.vue' const meta: Meta = { title: 'Components/Input/SingleSelect', component: SingleSelect, tags: ['autodocs'], argTypes: { label: { control: 'text' } } } export default meta export type Story = StoryObj const sampleOptions = [ { name: 'Popular', value: 'popular' }, { name: 'Newest', value: 'newest' }, { name: 'Oldest', value: 'oldest' }, { name: 'A → Z', value: 'az' }, { name: 'Z → A', value: 'za' } ] export const Default: Story = { render: (args) => ({ components: { SingleSelect }, setup() { const selected = ref(null) const options = sampleOptions return { selected, options, args } }, template: `

Selected: {{ selected ?? 'None' }}

` }), args: { label: 'Sorting Type' } } export const WithIcon: Story = { render: () => ({ components: { SingleSelect, ArrowUpDown }, setup() { const selected = ref('popular') const options = sampleOptions return { selected, options } }, template: `

Selected: {{ selected }}

` }) } export const Preselected: Story = { render: () => ({ components: { SingleSelect }, setup() { const selected = ref('newest') const options = sampleOptions return { selected, options } }, template: ` ` }) } export const AllVariants: Story = { render: () => ({ components: { SingleSelect, ArrowUpDown }, setup() { const options = sampleOptions const a = ref(null) const b = ref('popular') const c = ref('az') return { options, a, b, c } }, template: `
` }), parameters: { controls: { disable: true }, actions: { disable: true } } }