import type { Meta, StoryObj } from '@storybook/vue3' import AmeliproCopyBtn from './AmeliproCopyBtn.vue' import AmeliproTextArea from '../AmeliproTextArea/AmeliproTextArea.vue' import { createDeprecationNotice } from '@/stories/DeprecationNotice/DeprecationNotice' const meta = { argTypes: { textToCopy: { description: 'Le texte à copier au clic sur le bouton.' }, uniqueId: { description: 'Identifiant unique du bouton.' }, }, component: AmeliproCopyBtn, title: 'Composants/Amelipro/AmeliproCopyBtn', } as Meta export default meta type Story = StoryObj export const Default: Story = { args: { textToCopy: 'texte à copier', uniqueId: 'my-btn-id', }, parameters: { sourceCode: [ { name: 'Template', code: ` Copier `, }, { name: 'Script', code: ` `, }, ], }, render: args => ({ components: { AmeliproCopyBtn, AmeliproTextArea }, setup() { return { args } }, template: `

Cliquer sur le bouton pour copier le texte dans le presse-papier.

Copier
`, }), } export const AvecTexteLong: Story = { name: 'Texte à copier long', args: { textToCopy: 'Ceci est un texte très long à copier pour tester le comportement du bouton et du message de validation.', uniqueId: 'copy-btn-long', }, parameters: { sourceCode: [ { name: 'Template', code: ` `, }, { name: 'Script', code: ` `, }, ], }, render: args => ({ components: { AmeliproCopyBtn, AmeliproTextArea }, setup() { return { args } }, template: `

Le bouton copie un texte long dans le presse-papier et affiche un message de validation.

Copier `, }), } export const AvecGestionClick: Story = { name: 'Gestion de l’événement click', args: { textToCopy: 'Texte à copier avec gestion d’événement', uniqueId: 'copy-btn-click', }, parameters: { sourceCode: [ { name: 'Template', code: ` `, }, { name: 'Script', code: ` `, }, ], }, render: args => ({ components: { AmeliproCopyBtn, AmeliproTextArea }, setup() { function onCopyClick(id: string) { alert('Événement click émis par : ' + id) } return { args, onCopyClick } }, template: `

Le bouton émet un événement click lors de la copie.

Copier avec gestion `, }), } export const DeprecationNotice = { ...createDeprecationNotice([ { label: 'CopyBtn', url: '/?path=/docs/composants-boutons-copybtn--docs&globals=theme:ap' }, ]), tags: ['!dev'], }