import { commonArgTypes } from '@/lib/constants'; import Stepper from '@/lib/components/Stepper'; import type { Meta } from '@storybook/vue3'; import { Icon } from '@iconify/vue'; const meta = { title: 'Layout Component/Stepper', component: Stepper.Root, parameters: { layout: 'centered', themes: { themeOverride: '' }, docs: { description: { component: '일련의 이벤트나 단계를 시간 순서대로 시각화하는 데 사용됩니다.' } } }, argTypes: { scaling: { ...commonArgTypes.scaling, description: 'stepper 비율' }, color: { ...commonArgTypes.color, description: 'stepper 색상', defaultValue: { summary: 'red' } }, size: { table: { category: 'Props', type: { summary: ['small', 'medium', 'large'].join(' | ') } }, control: { type: 'select' }, options: ['small', 'medium', 'large'], defaultValue: { summary: 'medium' }, description: 'stepper 크기' } } } as Meta; export default meta; const commonComponents = { StepperRoot: Stepper.Root, StepperItem: Stepper.Item, StepperTrigger: Stepper.Trigger, StepperIndicator: Stepper.Indicator, StepperTitle: Stepper.Title, StepperDescription: Stepper.Description, StepperSeparator: Stepper.Separator, Icon }; const steps = [ { step: 1, title: 'Address', description: 'Add your address here', icon: 'radix-icons:home' }, { step: 2, title: 'Shipping', description: 'Set your preferred shipping method', icon: 'radix-icons:archive' }, { step: 3, title: 'Checkout', description: 'Confirm your order', icon: 'radix-icons:check' } ]; export const Default = { render: (args: any) => ({ components: commonComponents, setup() { return { args, steps }; }, template: `
{{ item.title }} {{ item.description }}
` }), parameters: { docs: { source: { code: ` ` } } } }; export const WithIcon = { render: (args: any) => ({ components: commonComponents, setup() { return { args, steps }; }, template: `
{{ item.title }} {{ item.description }}
` }), parameters: { docs: { source: { code: ` ` } } } }; export const Vertical = { render: (args: any) => ({ components: commonComponents, setup() { return { args, steps }; }, template: `
{{ item.title }} {{ item.description }}
` }), parameters: { docs: { source: { code: ` ` } } } };