Skip to content

Commit 6f88f24

Browse files
committed
docs: 📝 ajoute la doc vitepress pour DsfrBreadcrumb
1 parent 81ed3f7 commit 6f88f24

File tree

5 files changed

+112
-0
lines changed

5 files changed

+112
-0
lines changed

.vitepress/config.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,10 @@ export default defineConfig({
102102
text: 'DsfrBadge',
103103
link: '/composants/DsfrBadge.md',
104104
},
105+
{
106+
text: 'DsfrBreadcrumb',
107+
link: '/composants/DsfrBreadcrumb.md',
108+
},
105109
{
106110
text: 'DsfrButton',
107111
link: '/composants/DsfrButton.md',

.vitepress/theme/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import type { Theme } from 'vitepress'
22
import DefaultTheme from 'vitepress/theme'
33
import { OhVueIcon as VIcon, addIcons } from 'oh-vue-icons'
4+
import { RouterLink } from 'vue-router'
45

56
import Story from './Story.vue'
67
import VIconLink from './VIconLink.vue'
@@ -16,5 +17,6 @@ export default {
1617
app.component('VIcon', VIcon)
1718
app.component('VIconLink', VIconLink)
1819
app.component('Story', Story)
20+
app.component('RouterLink', RouterLink)
1921
}
2022
} satisfies Theme

docs/composants.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,7 @@
2626
## Infobulle (Information contextuelle)
2727

2828
- [DsfrTooltip](./composants/DsfrTooltip)
29+
30+
## Fil d’ariane
31+
32+
- [DsfrBreadcrumb](./composants/DsfrBreadcrumb)
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# Fil d’ariane - DsfrBreadcrumb
2+
3+
## 🌟 Introduction
4+
5+
Bienvenue à la documentation du composant DsfrBreadcrumb ! Ce composant est un véritable GPS pour vos interfaces utilisateur, guidant les utilisateurs à travers les différents niveaux de votre application avec aisance et élégance. Utilisons TypeScript et Vue pour explorer ses fonctionnalités.
6+
7+
Le fil d’Ariane est un système de navigation secondaire qui permet à l’utilisateur de se situer sur le site qu’il consulte.
8+
9+
🏅 La documentation sur le fil d’Ariane sur le [DSFR](https://www.systeme-de-design.gouv.fr/elements-d-interface/composants/fil-d-ariane)
10+
11+
<VIcon name="vi-file-type-storybook" /> La story sur le fil d’Ariane sur le storybook de [VueDsfr](https://vue-dsfr.netlify.app/?path=/docs/composants-dsfrbreadcrumb--docs)
12+
13+
## 📐 Structure
14+
15+
Dans l’ordre, il se compose des éléments suivants :
16+
17+
- un lien menant à la racine du site (page d’accueil) - obligatoire ;
18+
- des liens vers les pages séparant la racine du site de la page courante - obligatoire si la hiérarchie du site comporte plus d’un niveau ;
19+
- la page courante, seul élément non cliquable - obligatoire.
20+
21+
## 🛠️ Props
22+
23+
| Nom | Type | Défaut | Description |
24+
|--------------|--------|-----------------|-------------|
25+
| breadcrumbId | String | () => getRandomId('breadcrumb') | Identifiant unique pour le composant breadcrumb, généré automatiquement pour assurer l'accessibilité. |
26+
| links | Array | () => [{ text: '' }] | Un tableau d'objets représentant les liens dans le fil d'Ariane. Chaque objet peut avoir une propriété 'text' et, optionnellement, 'to' pour les routes. |
27+
28+
## 📡 Événements
29+
30+
Ce composant n'émet pas directement d'événements, mais vous pouvez écouter les événements de clic sur les liens individuels si nécessaire.
31+
32+
## 🧩 Slots
33+
34+
Pas de slots définis pour `DsfrBreadcrumb`. Le contenu est entièrement géré via les props.
35+
36+
## 📝 Exemples
37+
38+
Voici un exemple d'utilisation de DsfrBreadcrumb  :
39+
40+
```vue
41+
<DsfrBreadcrumb
42+
breadcrumbId="mon-fil-dariane"
43+
:links="[
44+
{ text: 'Accueil', to: '/' },
45+
{ text: 'Bibliothèque', to: '/bibliotheque' },
46+
{ text: 'Livre', to: '/livre' }
47+
{ text: 'Le Seigneur des anneaux' }
48+
]"
49+
/>
50+
```
51+
52+
::: code-group
53+
54+
<Story data-title="Démo">
55+
<DsfrBreadcrumbDemo />
56+
</Story>
57+
58+
<<< docs-demo/DsfrBreadcrumbDemo.vue [Code de la démo]
59+
60+
<<< DsfrBreadcrumb.vue
61+
:::
62+
63+
::: info Note :
64+
65+
Sur un écran plus large, le fil d’Ariane apparaîtrait directement en entier, sans le lien "Voir le fil d’Ariane"
66+
67+
:::
68+
69+
<script setup lang="ts">
70+
import DsfrBreadcrumbDemo from './docs-demo/DsfrBreadcrumbDemo.vue'
71+
</script>
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<template>
2+
<div class="fr-container fr-my-2v">
3+
<DsfrBreadcrumb
4+
breadcrumb-id="mon-fil-dariane"
5+
:links="[
6+
{ text: 'Accueil', to: '/' },
7+
{ text: 'Bibliothèque', to: '/bibliotheque' },
8+
{ text: 'Livre', to: '/livre' },
9+
{ text: 'Le Seigneur des anneaux' }
10+
]"
11+
/>
12+
</div>
13+
</template>
14+
15+
<script lang="ts" setup>
16+
import DsfrBreadcrumb from '../DsfrBreadcrumb.vue'
17+
import { createWebHistory, createRouter } from 'vue-router'
18+
import { getCurrentInstance } from 'vue'
19+
20+
const app = getCurrentInstance()
21+
app?.appContext.app.use(
22+
createRouter({
23+
history: createWebHistory(),
24+
routes: [
25+
{ path: '/', component: { template: '<div>Accueil</div>' } },
26+
{ path: '/bibliotheque', component: { template: '<div>Bibliothèque</div>' } },
27+
{ path: '/livre', component: { template: '<div>Livre</div>' } },
28+
],
29+
}),
30+
)
31+
</script>

0 commit comments

Comments
 (0)