import type { Meta } from '@storybook/vue3'; import { Utils } from '@youcan/ui-core'; import BaseButton_ from './_BaseButton.vue'; import PrimaryButton_ from './PrimaryButton.vue'; import SecondaryButton_ from './SecondaryButton.vue'; import PrimaryDestructiveButton_ from './PrimaryDestructiveButton.vue'; import SecondaryDestructiveButton_ from './SecondaryDestructiveButton.vue'; import TertiaryButton_ from './TertiaryButton.vue'; const meta: Meta = { title: 'Primitive/Button', component: BaseButton_, tags: ['primitive', 'button', 'input'], }; export default meta; const BaseButtonTemplate = (args: Record) => ({ components: { BaseButton_ }, setup() { return { args }; }, template: ` Button label `, }); export const _BaseButton = Utils.templatify(BaseButtonTemplate.bind({})); _BaseButton.args = { size: 'xs', iconPosition: 'left', disabled: false, roundedFull: false, }; const PrimaryButtonTemplate = (args: Record) => ({ components: { PrimaryButton_ }, setup() { return { args }; }, template: ` Button label `, }); export const PrimaryButton = Utils.templatify(PrimaryButtonTemplate.bind({})); PrimaryButton.args = { size: 'xs', iconPosition: 'left', disabled: false, roundedFull: false, }; const SecondaryButtonTemplate = (args: Record) => ({ components: { SecondaryButton_ }, setup() { return { args }; }, template: ` Button label `, }); export const SecondaryButton = Utils.templatify(SecondaryButtonTemplate.bind({})); SecondaryButton.args = { size: 'xs', iconPosition: 'left', disabled: false, roundedFull: false, }; const PrimaryDestructiveButtonTemplate = (args: Record) => ({ components: { PrimaryDestructiveButton_ }, setup() { return { args }; }, template: ` Button label `, }); export const PrimaryDestructiveButton = Utils.templatify(PrimaryDestructiveButtonTemplate.bind({})); PrimaryDestructiveButton.args = { size: 'xs', iconPosition: 'left', disabled: false, roundedFull: false, }; const SecondaryDestructiveButtonTemplate = (args: Record) => ({ components: { SecondaryDestructiveButton_ }, setup() { return { args }; }, template: ` Button label `, }); export const SecondaryDestructiveButton = Utils.templatify(SecondaryDestructiveButtonTemplate.bind({})); SecondaryDestructiveButton.args = { size: 'xs', iconPosition: 'left', disabled: false, roundedFull: false, }; const TertiaryButtonTemplate = (args: Record) => ({ components: { TertiaryButton_ }, setup() { return { args }; }, template: ` Button label `, }); export const TertiaryButton = Utils.templatify(TertiaryButtonTemplate.bind({})); TertiaryButton.args = { size: 'xs', iconPosition: 'left', disabled: false, roundedFull: false, };