import { commonArgTypes, radiusOptions } from '@/lib/constants'; import DropdownMenu from '@/lib/components/DropdownMenu'; import Button from '@/lib/components/Button'; import type { Meta } from '@storybook/vue3'; import { Icon } from '@iconify/vue'; import { ref } from 'vue'; const meta = { title: 'Menu Select Component/DropdownMenu', component: DropdownMenu.Root, parameters: { layout: 'centered', themes: { themeOverride: 'dark' }, docs: { description: { component: '버튼을 클릭하여 세부항목을 확인하고 하나의 항목을 선택하는 기능' } } }, argTypes: { radius: { ...commonArgTypes.radius, description: 'dropdownMenu 둥글기' }, size: { ...commonArgTypes.size, table: { category: 'Props', type: { summary: ['small', 'medium'].join(' | ') } }, options: ['small', 'medium'], description: 'dropdownMenu 크기' }, scaling: { ...commonArgTypes.scaling, description: 'dropdownMenu scaling' }, color: { ...commonArgTypes.color, description: 'dropdownMenu color' }, appearance: { ...commonArgTypes.appearance, table: { category: 'Props', type: { summary: ['solid', 'soft'].join(' | ') } }, options: ['solid', 'soft'] }, default: { table: { disable: true } } } } as Meta; export default meta; const commonComponents = { DropdownMenuRoot: DropdownMenu.Root, DropdownMenuTrigger: DropdownMenu.Trigger, DropdownMenuContent: DropdownMenu.Content, DropdownMenuLabel: DropdownMenu.Label, DropdownMenuItem: DropdownMenu.Item, DropdownMenuSeparator: DropdownMenu.Separator, DropdownMenuCheckboxItem: DropdownMenu.CheckboxItem, DropdownMenuRadioGroup: DropdownMenu.RadioGroup, DropdownMenuRadioItem: DropdownMenu.RadioItem, DropdownMenuSub: DropdownMenu.Sub, DropdownMenuSubTrigger: DropdownMenu.SubTrigger, DropdownMenuSubContent: DropdownMenu.SubContent, DropdownMenuItemIndicator: DropdownMenu.ItemIndicator, Button, Icon }; export const Default = { render: (args: any) => ({ components: commonComponents, setup() { const checkboxOne = ref(true); const checkboxTwo = ref(false); const option = ref('option1'); return { args, option, checkboxOne, checkboxTwo }; }, template: ` 라벨 기본 아이템 사용불가 아이템 체크박스1 체크박스2 라디오1 라디오2 More project folder options ` }), parameters: { docs: { source: { code: ` ` } } } }; export const Radius = { render: () => ({ components: commonComponents, setup() { return { radiusOptions }; }, template: `
` }), parameters: { docs: { source: { code: `
` } } } }; export const Size = { render: () => ({ components: commonComponents, setup() { const sizeOptions = ['small', 'medium']; return { sizeOptions }; }, template: `
` }), parameters: { docs: { source: { code: `
` } } } }; export const Appearance = { render: () => ({ components: commonComponents, setup() { const appearanceOptions = ['solid', 'soft']; return { appearanceOptions }; }, template: `
` }), parameters: { docs: { source: { code: `
` } } } };