diff --git a/app/story/accordion/accordion.story.vue b/app/story/accordion/accordion.story.vue new file mode 100644 index 0000000..3142e63 --- /dev/null +++ b/app/story/accordion/accordion.story.vue @@ -0,0 +1,125 @@ + + + +# MalioAccordion + +Accordéon compositionnel : un parent `MalioAccordion` qui enveloppe des +`MalioAccordionItem`. Conçu pour des systèmes de filtres (plusieurs sections +dépliées simultanément) comme pour des FAQ (une seule section ouverte). + +--- + +## Props — MalioAccordion + +### mode +- Type: `'single' | 'multiple'` +- Défaut: `'multiple'` +- Description: `multiple` autorise plusieurs panneaux ouverts ; `single` ferme les autres à l'ouverture. + +### modelValue +- Type: `string | string[]` +- Description: clés ouvertes. `string[]` en mode `multiple`, `string` en mode `single`. Sans v-model, état interne (non contrôlé). + +### id +- Type: `string` +- Description: préfixe des IDs d'accessibilité. Auto-généré si absent. + +### groupClass +- Type: `string` +- Description: classes du conteneur, fusionnées via `twMerge`. + +--- + +## Props — MalioAccordionItem + +### title +- Type: `string` (requis) — texte de l'en-tête. + +### value +- Type: `string` — clé unique de la section (recommandée pour piloter le v-model). Auto-générée si absente. + +### defaultOpen +- Type: `boolean` — défaut `false`. Ouvre la section au montage (mode non contrôlé uniquement). + +### disabled +- Type: `boolean` — défaut `false`. En-tête non cliquable. + +### headerClass / panelClass +- Type: `string` — override des classes de l'en-tête / du panneau (`twMerge`). + +--- + +## Slots + +Slot par défaut de `MalioAccordionItem` = contenu du panneau. + +--- + +## Accessibilité + +- En-tête = `