import type { Meta, StoryObj } from '@storybook/vue3-vite' import SyAlert from './SyAlert.vue' import { VBtn } from 'vuetify/components' const meta = { title: 'Composants/Feedback/SyAlert', component: SyAlert, parameters: { layout: 'fullscreen', controls: { exclude: ['prependIcon', 'dismissAlert'] }, }, args: { modelValue: true, }, argTypes: { modelValue: { control: { type: 'boolean' }, description: 'Contrôle l\'affichage de l\'alerte', table: { category: 'props', }, }, type: { options: ['info', 'warning', 'success', 'error'], control: { type: 'select' }, default: 'info', }, variant: { options: ['outlined', 'tonal'], control: { type: 'select' }, default: 'outlined', }, role: { description: 'Rôle ARIA appliqué au conteneur de l’alerte.', control: 'text', default: 'alert', table: { category: 'props', type: { summary: 'string', }, defaultValue: { summary: 'alert', }, }, }, ariaLive: { name: 'aria-live', description: 'Priorité d’annonce du message par les technologies d’assistance.', control: 'select', options: [undefined, 'off', 'polite', 'assertive'], table: { category: 'props', type: { summary: 'off, polite, assertive', }, }, }, density: { description: 'Densité de l’alerte.', control: 'select', options: ['default', 'comfortable', 'compact'], table: { category: 'props', }, }, }, } as Meta export default meta type Story = StoryObj export const Default: Story = { parameters: { sourceCode: [ { name: 'Template', code: ` `, }, { name: 'Script', code: ` `, }, ], }, args: { modelValue: true, type: 'success', closable: true, variant: 'tonal', role: 'alert', default: 'Contenu de l\'alerte', }, render: (args) => { return { components: { SyAlert, VBtn }, setup() { return { args } }, template: `
Réinitialiser
`, } }, } export const Outlined: Story = { parameters: { sourceCode: [ { name: 'Template', code: ` `, }, { name: 'Script', code: ` `, }, ], }, args: { type: 'warning', closable: true, variant: 'outlined', role: 'alert', default: 'Contenu de l\'alerte', }, render: (args) => { return { components: { SyAlert, VBtn }, setup() { return { args } }, template: `
Réinitialiser
`, } }, } export const Density: Story = { args: { type: 'info', default: 'Contenu de l’alerte', }, parameters: { controls: { exclude: ['density'], }, sourceCode: [ { name: 'Template', code: ``, }, ], }, render: (args) => { return { components: { SyAlert }, setup() { return { args } }, template: `
Densité par défaut Densité confortable Densité compacte
`, } }, } export const SlotIcon: Story = { parameters: { sourceCode: [ { name: 'Template', code: ` `, }, { name: 'Script', code: ` `, }, ], }, args: { type: 'success', closable: true, variant: 'tonal', role: 'alert', default: 'Contenu de l\'alerte', icon: 'M21.1,12.5L22.5,13.91L15.97,20.5L12.5,17L13.9,15.59L15.97,17.67L21.1,12.5M10,17L13,20H3V18C3,15.79 6.58,14 11,14L12.89,14.11L10,17M11,4A4,4 0 0,1 15,8A4,4 0 0,1 11,12A4,4 0 0,1 7,8A4,4 0 0,1 11,4Z', }, render: (args) => { return { components: { SyAlert, VBtn }, setup() { return { args } }, template: `
Réinitialiser
`, } }, } export const StatusMessage: Story = { parameters: { sourceCode: [ { name: 'Template', code: ` `, }, { name: 'Script', code: ` `, }, ], }, args: { modelValue: true, type: 'success', closable: false, variant: 'outlined', role: 'status', ariaLive: 'polite', default: 'Votre action a bien été prise en compte.', }, render: (args) => { return { components: { SyAlert }, setup() { return { args } }, template: ` `, } }, }