Skip to content

Commit c863926

Browse files
committed
docs: 📝 Améliore la documentation Storybook
1 parent 1e15959 commit c863926

File tree

50 files changed

+414
-157
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+414
-157
lines changed

src/components/DsfrAccordion/DsfrAccordion.stories.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,21 @@ export default {
99
control: 'boolean',
1010
description: 'Permet de voir le composant dans les deux **thèmes** : **clair** (`false`, défaut) et **sombre** (`true`).\n\n*N.B. : Ne fait pas partie du composant.*',
1111
},
12+
id: {
13+
control: 'text',
14+
description: '(optionnel) Valeur de l’attribut `id` de l’accordéon. Par défaut, un id pseudo-aléatoire sera donné.',
15+
},
1216
title: {
1317
control: 'text',
1418
description: 'Intitulé de l’accordéon',
1519
},
20+
expand: {
21+
description: 'Événement déclenché au clic sur le titre de l’accordéon et qui renvoie l’`id` de l’accordéon correspondant.',
22+
},
23+
expandedId: {
24+
control: 'text',
25+
description: 'Id de l’accordéon déplié',
26+
},
1627
},
1728
}
1829

src/components/DsfrAccordion/DsfrAccordion.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ export default defineComponent({
2424
default: 'Sans intitulé',
2525
},
2626
},
27-
2827
emits: ['expand'],
2928
3029
computed: {
@@ -62,6 +61,7 @@ export default defineComponent({
6261
class="fr-collapse"
6362
:class="{ 'fr-collapse--expanded': expanded }"
6463
>
64+
<!-- @slot Slot par défaut pour le contenu de l’accordéon: sera dans `<div class="fr-collapse">` -->
6565
<slot />
6666
</div>
6767
</section>

src/components/DsfrAccordion/DsfrAccordionsGroup.stories.js

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ export default {
99
control: 'boolean',
1010
description: 'Permet de voir le composant dans les deux **thèmes** : **clair** (`false`, défaut) et **sombre** (`true`).\n\n*N.B. : Ne fait pas partie du composant.*',
1111
},
12+
id: {
13+
control: 'text',
14+
description: '(optionnel) Valeur de l’attribut `id` de l’accordéon. Par défaut, un id pseudo-aléatoire sera donné.',
15+
},
1216
expandedId: {
1317
control: 'radio',
1418
options: [
@@ -17,15 +21,19 @@ export default {
1721
'accordion-2',
1822
'accordion-3',
1923
],
24+
description: 'Valeur de l’`id` de l’accordéon déplié',
2025
},
2126
title1: {
2227
control: 'text',
28+
description: 'Titre du premier accordéon',
2329
},
2430
title2: {
2531
control: 'text',
32+
description: 'Titre du deuxième accordéon',
2633
},
2734
title3: {
2835
control: 'text',
36+
description: 'Titre du troisième accordéon',
2937
},
3038
},
3139
}
@@ -51,7 +59,7 @@ export const AccordeonGroupe = (args) => ({
5159
:expanded-id="expandedId"
5260
@expand="expandedId = $event"
5361
>
54-
Contenu de l’accordéon
62+
Contenu de l’accordéon 1
5563
</DsfrAccordion>
5664
</li>
5765
<li>
@@ -61,7 +69,7 @@ export const AccordeonGroupe = (args) => ({
6169
:expanded-id="expandedId"
6270
@expand="id => expandedId = id"
6371
>
64-
Contenu de l’accordéon
72+
Contenu de l’accordéon 2
6573
</DsfrAccordion>
6674
</li>
6775
<li>
@@ -71,7 +79,7 @@ export const AccordeonGroupe = (args) => ({
7179
:expanded-id="expandedId"
7280
@expand="id => expandedId = id"
7381
>
74-
Contenu de l’accordéon
82+
Contenu de l’accordéon 3
7583
</DsfrAccordion>
7684
</li>
7785
</DsfrAccordionsGroup>
@@ -83,8 +91,8 @@ export const AccordeonGroupe = (args) => ({
8391
})
8492
AccordeonGroupe.args = {
8593
dark: false,
86-
title1: 'Un titre d’accordéon',
87-
title2: 'Un titre d’accordéon',
88-
title3: 'Un titre d’accordéon',
94+
title1: 'Un titre d’accordéon 1',
95+
title2: 'Un titre d’accordéon 2',
96+
title3: 'Un titre d’accordéon 3',
8997
expandedId: '',
9098
}

src/components/DsfrAlert/DsfrAlert.stories.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
import DsfrAlert from './DsfrAlert.vue'
22

3+
import { addIcons } from 'oh-vue-icons'
4+
5+
import { RiCloseLine } from 'oh-vue-icons/icons/ri/index.js'
6+
7+
addIcons(RiCloseLine)
8+
39
export default {
410
component: DsfrAlert,
511
title: 'Composants/Alertes - DsfrAlert',
@@ -8,6 +14,10 @@ export default {
814
control: 'boolean',
915
description: 'Permet de voir le composant dans les deux **thèmes** : **clair** (`false`, défaut) et **sombre** (`true`).\n\n*N.B. : Ne fait pas partie du composant.*',
1016
},
17+
id: {
18+
control: 'text',
19+
description: '(optionnel) Valeur de l’attribut `id` de l’alerte. Par défaut, un id pseudo-aléatoire sera donné.',
20+
},
1121
title: {
1222
control: 'text',
1323
description: '**Titre** de l\'alerte',

src/components/DsfrBreadcrumb/DsfrBreadcrumb.stories.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,14 @@ export default {
88
control: 'boolean',
99
description: 'Permet de voir le composant dans les deux **thèmes** : **clair** (`false`, défaut) et **sombre** (`true`).\n\n*N.B. : Ne fait pas partie du composant.*',
1010
},
11-
1211
links: {
1312
control: 'object',
1413
description: 'Tableau d’objets, chaque objet contiendra 2 propriétés : `to` avec le lien et `text` avec le texte à afficher',
1514
},
15+
breadcrumbId: {
16+
control: 'text',
17+
description: 'Id de la balise `div` à l’intérieur de la balise `nav` du fil d’Ariane',
18+
},
1619
},
1720
}
1821

src/components/DsfrCallout/DsfrCallout.stories.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ export default {
2626
control: 'text',
2727
description: 'Permet de passer l’icône désirée en chaîne de caractères (cf. remix-icon)',
2828
},
29+
button: {
30+
control: 'object',
31+
description: '(optionnel) Objet contenant les props à passer à DsfrButton (pour afficher un bouton sous la mise en avant)',
32+
},
2933
onClick: {
3034
action: 'Clicked',
3135
},

src/components/DsfrCheckbox/DsfrCheckbox.stories.js

Lines changed: 26 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ export default {
88
control: 'boolean',
99
description: 'Permet de voir le composant dans les deux **thèmes** : **clair** (`false`, défaut) et **sombre** (`true`).\n\n*N.B. : Ne fait pas partie du composant.*',
1010
},
11+
id: {
12+
control: 'text',
13+
description: '(optionnel) Valeur de l’attribut `id` de la checkbox. Par défaut, un id pseudo-aléatoire sera donné.',
14+
},
1115
label: {
1216
control: 'text',
1317
description: 'Label de la case à cocher',
@@ -28,10 +32,6 @@ export default {
2832
control: 'boolean',
2933
description: 'Indique si le champ est obligatoire',
3034
},
31-
checked: {
32-
control: 'boolean',
33-
description: 'Indique si la case à cocher est cochée',
34-
},
3535
errorMessage: {
3636
control: 'text',
3737
description: 'Texte du message à afficher en cas d’erreur',
@@ -40,6 +40,13 @@ export default {
4040
control: 'text',
4141
description: 'Texte du message à afficher en cas de succès',
4242
},
43+
modelValue: {
44+
control: 'boolean',
45+
description: 'Valeur de la case à cocher : `true` si cochée, `false` sinon',
46+
},
47+
'update:modelValue': {
48+
description: 'Événement émis lors du changement de l’état coché (`true`) ou non (`false`)',
49+
},
4350
onChange: { action: 'changed' },
4451
},
4552
}
@@ -50,33 +57,28 @@ export const Checkbox = (args) => ({
5057
return { ...args }
5158
},
5259
template: `
53-
<div :data-fr-theme="dark ? 'dark' : ''" style="background-color: var(--grey-1000-50); padding: 1rem;">
5460
<DsfrCheckbox
5561
:label="label"
5662
:disabled="disabled"
5763
:required="required"
58-
:modelValue="checked"
5964
:hint="hint"
6065
:name="name || 'name1'"
61-
@update:modelValue="updateChecked($event)"
66+
v-model="modelValue"
6267
/>
63-
</div>
6468
`,
65-
methods: {
66-
updateChecked (val) {
67-
this.onChange(val)
68-
this.checked = val
69+
watch: {
70+
modelValue (newValue, oldValue) {
71+
this.onChange(newValue)
6972
},
7073
},
7174
})
7275
Checkbox.args = {
7376
disabled: false,
7477
dark: false,
75-
checked: false,
78+
modelValue: false,
7679
required: false,
7780
label: 'Checkbox 1',
7881
name: 'name1',
79-
value: false,
8082
hint: 'Description 1',
8183
}
8284

@@ -86,30 +88,25 @@ export const CheckboxAvecErreur = (args) => ({
8688
return args
8789
},
8890
template: `
89-
<div :data-fr-theme="dark ? 'dark' : ''" style="background-color: var(--grey-1000-50); padding: 1rem;">
9091
<DsfrCheckbox
9192
:label="label"
9293
:disabled="disabled"
93-
:modelValue="checked"
9494
:hint="hint"
95-
@update:modelValue="updateChecked($event)"
9695
:error-message="errorMessage"
96+
v-model="modelValue"
9797
/>
98-
</div>
9998
`,
100-
methods: {
101-
updateChecked (val) {
102-
this.onChange(val)
103-
this.checked = val
99+
watch: {
100+
modelValue (newValue, oldValue) {
101+
this.onChange(newValue)
104102
},
105103
},
106104
})
107105
CheckboxAvecErreur.args = {
108106
disabled: false,
109107
dark: false,
110-
checked: false,
108+
modelValue: false,
111109
label: 'Checkbox 1',
112-
value: false,
113110
hint: 'Description 1',
114111
errorMessage: 'Erreur formulaire',
115112
}
@@ -120,31 +117,26 @@ export const CheckboxAvecSucces = (args) => ({
120117
return args
121118
},
122119
template: `
123-
<div :data-fr-theme="dark ? 'dark' : ''" style="background-color: var(--grey-1000-50); padding: 1rem;">
124120
<DsfrCheckbox
125121
:label="label"
126122
:disabled="disabled"
127-
:modelValue="checked"
128123
:hint="hint"
129-
@update:modelValue="updateChecked($event)"
130124
:valid-message="validMessage"
125+
v-model="modelValue"
131126
/>
132-
</div>
133127
`,
134-
methods: {
135-
updateChecked (val) {
136-
this.onChange(val)
137-
this.checked = val
128+
watch: {
129+
modelValue (newValue, oldValue) {
130+
this.onChange(newValue)
138131
},
139132
},
140133
})
141134

142135
CheckboxAvecSucces.args = {
143136
disabled: false,
144137
dark: false,
145-
checked: false,
138+
modelValue: false,
146139
label: 'Checkbox 1',
147-
value: false,
148140
hint: 'Description 1',
149141
validMessage: 'Formulaire valide',
150142
}

src/components/DsfrConsent/DsfrConsent.stories.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,15 @@ export default {
1717
control: 'text',
1818
description: '',
1919
},
20+
'accept-all': {
21+
description: 'Évenement émis lors du clic sur le bouton \'Tout accepter\'',
22+
},
23+
'refuse-all': {
24+
description: 'Évenement émis lors du clic sur le bouton \'Tout refuser\'',
25+
},
26+
customize: {
27+
description: 'Évenement émis lors du clic sur le bouton \'Personnaliser\'',
28+
},
2029
},
2130
}
2231

src/components/DsfrFileUpload/DsfrFileUpload.stories.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ export default {
1212
control: 'text',
1313
description: 'Valeur de l’attribut `id` de l’input (sera aussi utilisé pour l’attribut `for` du `<label>`), chaîne aléatoire par défaut (conseillé)',
1414
},
15+
modelValue: {
16+
control: 'text',
17+
description: 'Valeur du fichier sélectionné',
18+
},
1519
label: {
1620
control: 'text',
1721
description: 'Court texte mettant en avant l’input associé',
@@ -24,6 +28,12 @@ export default {
2428
control: 'text',
2529
description: 'Texte de l’erreur à afficher à l’utilisateur',
2630
},
31+
'update:modelValue': {
32+
description: 'Événement émis lors du changement de valeur de `modelValue` : le paramètre passé est la valeur de la propriété `value` de l’`input`',
33+
},
34+
change: {
35+
description: 'Événement émis lors du changement de valeur de `modelValue` : le paramètre passé est la valeur de la propriété `files` de l’input',
36+
},
2737
},
2838
}
2939

src/components/DsfrFollow/DsfrFollow.vue

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -42,19 +42,21 @@ export default defineComponent({
4242
<div class="fr-container">
4343
<div class="fr-grid-row">
4444
<!-- @slot Slot par défaut pour le contenu. Sera dans `<div class="fr-grid-row">` -->
45-
<slot />
46-
<div
47-
v-if="newsletterData"
48-
:class="{ 'fr-col-12' : true, 'fr-col-md-8': hasNetworks }"
49-
>
50-
<DsfrNewsLetter v-bind="newsletterData" />
51-
</div>
52-
<div
53-
v-if="hasNetworks"
54-
:class="{ 'fr-col-12' : true, 'fr-col-md-4': hasNewsletter }"
55-
>
56-
<DsfrSocialNetworks :networks="networks" />
57-
</div>
45+
<slot>
46+
<div
47+
v-if="newsletterData"
48+
:class="{ 'fr-col-12' : true, 'fr-col-md-8': hasNetworks }"
49+
>
50+
<DsfrNewsLetter v-bind="newsletterData" />
51+
</div>
52+
<div
53+
v-if="hasNetworks"
54+
:class="{ 'fr-col-12' : true, 'fr-col-md-4': hasNewsletter }"
55+
>
56+
<DsfrSocialNetworks :networks="networks" />
57+
</div>
58+
<slot />
59+
</slot>
5860
</div>
5961
</div>
6062
</div>

0 commit comments

Comments
 (0)