import type { Meta } from '@storybook/vue3'; import { commonArgTypes } from '@/lib/constants'; import DropdownMenu from '@/lib/components/DropdownMenu'; import Button from '@/lib/components/Button'; import { Icon } from '@iconify/vue'; import Gnb from '@/lib/components/Gnb'; const meta = { title: 'Navigation Component/Gnb', component: Gnb.Root, parameters: { layout: 'centered', themes: { themeOverride: 'dark' }, docs: { description: { component: '상단에 위치하며 주요 네비게이션 링크와 로고, 사용자 메뉴 등을 포함하는 UI 요소입니다.' } } }, argTypes: { size: { table: { category: 'Props', type: { summary: ['small', 'medium', 'large'].join(' | ') } }, control: { type: 'select' }, options: ['small', 'medium', 'large'], defaultValue: { summary: 'medium' }, description: 'gnb 크기' }, scaling: { ...commonArgTypes.scaling, description: 'gnb 비율' }, color: { ...commonArgTypes.color, description: 'gnb 색상', defaultValue: { summary: 'none' } }, default: { table: { disable: true } } } } as Meta; export default meta; const commonComponents = { GnbRoot: Gnb.Root, GnbLogo: Gnb.Logo, GnbMenu: Gnb.Menu, GnbMenuItem: Gnb.MenuItem, GnbInfo: Gnb.Info, Button, Icon }; export const Default = { render: (args: any) => ({ components: commonComponents, setup() { return { args }; }, template: ` Document Components Themes Colors ` }), parameters: { docs: { source: { code: ` ` } } } }; export const CustomContent = { render: (args: any) => ({ components: { ...commonComponents, DropdownMenuRoot: DropdownMenu.Root, DropdownMenuTrigger: DropdownMenu.Trigger, DropdownMenuContent: DropdownMenu.Content, DropdownMenuItem: DropdownMenu.Item }, setup() { return { args }; }, template: ` Document Components Themes Colors Light Dark ` }), parameters: { docs: { source: { code: ` ` } } } };