Skip to content

Commit c54ae54

Browse files
committed
docs(DsfrMultiselect): 📝 ajoute la JSDoc pour les slots
- Pour améliorer la documentation et l'expérience de développement en fournissant une description claire de chaque slot directement dans le composant. - Pour suivre les conventions de documentation du projet. - Remplacement de l'import `DsfrMultiSelectSlots` par une définition en ligne dans `defineSlots`. - Ajout de commentaires JSDoc détaillés pour chaque slot (`label`, `required-tip`, `hint`, `button-label`, `legend`, `checkbox-label`, `no-results`). - Suppression de l'import inutilisé `DsfrMultiSelectSlots` du fichier de types.
1 parent 5ed17cc commit c54ae54

File tree

3 files changed

+34
-15
lines changed

3 files changed

+34
-15
lines changed

‎src/components/DsfrMultiselect/DsfrMultiSelect.stories.ts‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import type { Meta, StoryObj } from '@storybook/vue3'
2+
23
import { fn } from '@storybook/test'
34
import { ref, watch } from 'vue'
45

@@ -10,7 +11,7 @@ import DsfrMultiSelect from './DsfrMultiselect.vue'
1011
const meta = {
1112
component: DsfrMultiSelect,
1213
title: 'Composants/DsfrMultiSelect',
13-
tags: ['autodocs', 'formulaire'],
14+
tags: ['formulaire'],
1415
argTypes: {
1516
selectId: {
1617
control: 'text',

‎src/components/DsfrMultiselect/DsfrMultiselect.types.ts‎

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import type { VNode } from 'vue'
2-
31
export type DsfrMultiSelectProps<T> = {
42
modelValue: (string | number)[]
53
options: T[]
@@ -24,13 +22,3 @@ export type DsfrMultiSelectProps<T> = {
2422
filteringKeys?: (keyof T)[]
2523
maxOverflowHeight?: CSSStyleDeclaration['maxHeight']
2624
}
27-
28-
export type DsfrMultiSelectSlots<T> = {
29-
label?: () => VNode
30-
'required-tip'?: () => VNode
31-
hint?: () => VNode
32-
'button-label'?: () => VNode
33-
legend?: () => VNode
34-
'checkbox-label'?: (props: { option: T }) => VNode
35-
'no-results'?: () => VNode
36-
}

‎src/components/DsfrMultiselect/DsfrMultiselect.vue‎

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<script lang="ts" setup generic="T extends Object | string | number">
2-
import type { DsfrMultiSelectProps, DsfrMultiSelectSlots } from './DsfrMultiselect.types'
2+
import type { DsfrMultiSelectProps } from './DsfrMultiselect.types'
3+
import type { VNode } from 'vue'
34
45
import { computed, onUnmounted, ref } from 'vue'
56
@@ -36,7 +37,36 @@ const props = withDefaults(
3637
},
3738
)
3839
39-
defineSlots<DsfrMultiSelectSlots<T>>()
40+
defineSlots<{
41+
/**
42+
* Slot pour personnaliser le label.
43+
*/
44+
label?: () => VNode
45+
/**
46+
* Slot pour personnaliser l'indicateur de champ requis.
47+
*/
48+
'required-tip'?: () => VNode
49+
/**
50+
* Slot pour ajouter un texte d'aide.
51+
*/
52+
hint?: () => VNode
53+
/**
54+
* Slot pour personnaliser le label du bouton.
55+
*/
56+
'button-label'?: () => VNode
57+
/**
58+
* Slot pour ajouter une légende au fieldset des cases à cocher.
59+
*/
60+
legend?: () => VNode
61+
/**
62+
* Slot pour personnaliser le label de chaque case Ă  cocher.
63+
*/
64+
'checkbox-label'?: (props: { option: T }) => VNode
65+
/**
66+
* Slot pour afficher un message quand il n'y a pas de résultats de recherche.
67+
*/
68+
'no-results'?: () => VNode
69+
}>()
4070
4171
const isObjectWithIdKey = (
4272
option: unknown,

0 commit comments

Comments
 (0)