Skip to content

Commit 7eceb73

Browse files
JoelPagniezlaruiss
authored andcommitted
docs: 📝 ajoute la doc vitepress de DsfrSideMenu
1 parent 9eaa8ed commit 7eceb73

File tree

3 files changed

+91
-12
lines changed

3 files changed

+91
-12
lines changed

.vitepress/config.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,10 @@ const composants = [
338338
text: 'DsfrSelect',
339339
link: '/composants/DsfrSelect.md',
340340
},
341+
{
342+
text: 'DsfrSideMenu',
343+
link: '/composants/DsfrSideMenu.md',
344+
},
341345
{
342346
text: 'DsfrSkipLinks',
343347
link: '/composants/DsfrSkipLinks.md',

src/components/DsfrSideMenu/DsfrSideMenu.md

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,18 @@
1-
# Menu latéral - `DsfrSideMenu`
1+
# Menu latéral
22

3-
## 🌟 Introduction
4-
5-
Le menu latéral est un composant de navigation verticale qui peut être réduit/expandé. Il suit les spécifications du Système de Design Français (DSFR) pour les menus de navigation latérale.
3+
Le menu latéral est un système de navigation secondaire présentant une liste verticale de liens placée à côté du contenu.
64

75
Le composant `DsfrSideMenu` fournit une navigation latérale avec support du collapse/expand, gestion des éléments de menu imbriqués, et intégration avec le routeur Vue.
86

9-
## 📐 Structure
7+
## 🌟 Introduction
8+
9+
Le menu latéral est un système de navigation secondaire présentant une liste verticale de liens placée à côté du contenu.
10+
11+
🏅 La documentation sur le menu latéral sur le [DSFR](https://www.systeme-de-design.gouv.fr/version-courante/fr/composants/menu-lateral)
12+
13+
<VIcon name="vi-file-type-storybook" /> La story sur le menu latéral sur le storybook de [VueDsfr](https://storybook.vue-ds.fr/?path=/docs/composants-dsfrfsidemenu--docs)
14+
15+
## 📐 Structure
1016

1117
Le menu latéral crée :
1218

@@ -16,17 +22,17 @@ Le menu latéral crée :
1622
- Support des liens externes et internes avec le routeur Vue
1723
- Gestion automatique des états actifs et expandés
1824

19-
## 🛠️ Props
25+
## 🛠️ Props
2026

2127
| nom | type | défaut | obligatoire | description |
2228
|-------------------|----------------------------|-------------------------|-------------|----------------------------------------------------------|
23-
| `buttonLabel` | `string` | `'Dans cette rubrique'` | | Texte du bouton de toggle |
24-
| `id` | `string` | `() => useRandomId(...)`| | Identifiant unique du menu |
29+
| `buttonLabel` | `string` | `'Dans cette rubrique'` | | Label associé au bouton en état responsive dont le rôle est de déplier le side menu. |
30+
| `id` | `string` | `() => useRandomId(...)`| | (optionnel) Valeur de l’attribut id du side menu. Par défaut, un id pseudo-aléatoire sera donné. |
2531
| `sideMenuListId` | `string` | `() => useRandomId(...)`| | Identifiant de la liste de menu |
2632
| `collapseValue` | `string` | `'-492px'` | | Valeur de collapse CSS |
27-
| `menuItems` | `DsfrSideMenuListItemProps[]` | `undefined` | | Éléments du menu (structure imbriquée) |
28-
| `headingTitle` | `string` | `''` | | Titre du menu |
29-
| `titleTag` | `string` | `'h3'` | | Balise HTML pour le titre |
33+
| `menuItems` | `DsfrSideMenuListItemProps[]` | `undefined` | | Tableau d’objets contenant les props attendus par DsfrSideMenuList. |
34+
| `headingTitle` | `string` | `''` | | Titre de la rubrique (c’est le titre du menu latéral). |
35+
| `titleTag` | [*`TitleTag`*](/docs/types.md#title-tag "'h1' \| 'h2' \| 'h3' \| 'h4' \| 'h5' \| 'h6'") | `'h3'` | | Balise HTML pour le titre |
3036
| `focusOnExpanding`| `boolean` | `true` | | Focus automatique lors de l'expansion |
3137

3238
## 📡 Événements
@@ -45,7 +51,7 @@ Le menu latéral crée :
4551

4652
## 📝 Exemples
4753

48-
Exemple d'utilisation basique du menu latéral :
54+
### Exemple d'utilisation basique du menu latéral
4955

5056
::: code-group
5157

@@ -81,6 +87,16 @@ const onToggleExpand = (id: string) => {
8187

8288
:::
8389

90+
### Exemple plus complet
91+
92+
::: code-group
93+
94+
<Story data-title="Démo" min-h="350px">
95+
<DsfrSideMenuDemo />
96+
</Story>
97+
98+
<<< docs-demo/DsfrSideMenuDemo.vue [Code de la démo]
99+
84100
## ⚙️ Code source du composant
85101

86102
::: code-group
@@ -89,3 +105,7 @@ const onToggleExpand = (id: string) => {
89105
<<< DsfrSideMenu.types.ts
90106

91107
:::
108+
109+
<script setup lang="ts">
110+
import DsfrSideMenuDemo from './docs-demo/DsfrSideMenuDemo.vue'
111+
</script>
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
<script lang="ts" setup>
2+
import { ref } from 'vue'
3+
4+
import DsfrSideMenu from '../DsfrSideMenu.vue'
5+
6+
const headingTitle = 'Titre de la rubrique'
7+
const menuItems = ref([
8+
{
9+
id: '11',
10+
to: '/rubrique-1',
11+
text: 'Premier titre de niveau 1',
12+
},
13+
{
14+
id: '12',
15+
text: 'Deuxième titre de niveau 1',
16+
active: true,
17+
menuItems: [
18+
{
19+
id: '21',
20+
to: '/rubrique-2/sous-rubrique-1',
21+
text: 'Premier titre de niveau 2',
22+
},
23+
{
24+
id: '22',
25+
text: 'Deuxième titre de niveau 2',
26+
active: true,
27+
menuItems: [
28+
{
29+
id: '31',
30+
to: '/rubrique-2/sous-rubrique-2/sous-sous-rubrique-1',
31+
text: 'Premier titre de niveau 3',
32+
},
33+
{
34+
id: '32',
35+
to: '/rubrique-2/sous-rubrique-2/sous-sous-rubrique-2',
36+
text: 'Deuxième titre de niveau 3',
37+
active: true,
38+
},
39+
],
40+
},
41+
],
42+
},
43+
])
44+
</script>
45+
46+
<template>
47+
<div class="fr-container fr-my-2w">
48+
<h2>SideMenu</h2>
49+
50+
<DsfrSideMenu
51+
:heading-title="headingTitle"
52+
:menu-items="menuItems"
53+
/>
54+
</div>
55+
</template>

0 commit comments

Comments
 (0)