import type { Meta, StoryObj } from '@storybook/vue3' import AmeliproDisclosure from './AmeliproDisclosure.vue' const meta = { argTypes: { default: { description: 'Contenu du panneau dépliant' }, isOpen: { description: 'Défini si le panneau dépliant est ouvert au chargement du composant' }, title: { description: 'Titre du panneau dépliant' }, uniqueId: { description: 'Identifiant unique du panneau dépliant' }, }, component: AmeliproDisclosure, title: 'Composants/Amelipro/Blocs dépliants/AmeliproDisclosure', } as Meta export default meta type Story = StoryObj export const Default: Story = { args: { default: '[Slot: default]', title: 'Mon titre', uniqueId: 'amelipro-disclosure-unique-id', }, parameters: { sourceCode: [ { name: 'Template', code: ``, }, { name: 'Scripts', code: ``, }, ], }, render: args => ({ components: { AmeliproDisclosure }, setup() { return { args } }, template: ` {{ args.default }} `, }), } // --- Panneau ouvert par défaut --- export const OpenByDefault: Story = { args: { default: '[Slot: default]', title: 'Ouvert par défaut', uniqueId: 'amelipro-disclosure-open', isOpen: true, }, parameters: { sourceCode: [ { name: 'Template', code: ``, }, { name: 'Script', code: ``, }, ], }, render: args => ({ components: { AmeliproDisclosure }, setup() { return { args } }, template: `

Le panneau dépliant est ouvert au chargement grâce à la prop isOpen.

{{ args.default }} `, }), } // --- Contenu personnalisé complexe --- export const CustomContent: Story = { args: { title: 'Contenu personnalisé', uniqueId: 'amelipro-disclosure-custom', isOpen: false, }, parameters: { sourceCode: [ { name: 'Template', code: ``, }, { name: 'Script', code: ``, }, ], }, render: args => ({ components: { AmeliproDisclosure }, setup() { return { args } }, template: `

Le slot default permet d’ajouter un contenu totalement personnalisé dans le panneau.

  • Premier élément
  • Deuxième élément
  • Troisième élément
`, }), }