1+ import type { Meta , StoryObj } from '@storybook/vue3-vite'
2+
13import DsfrBadge from './DsfrBadge.vue'
24
35/**
46 * [Voir quand l’utiliser sur la documentation du DSFR](https://www.systeme-de-design.gouv.fr/version-courante/fr/composants/badge)
57 */
6- export default {
8+ const meta = {
79 component : DsfrBadge ,
810 title : 'Composants/DsfrBadge' ,
911 tags : [ 'chip' ] ,
@@ -26,56 +28,67 @@ export default {
2628 control : 'boolean' ,
2729 description : 'Permet d’afficher une petite icône (si `true`)' ,
2830 } ,
31+ ellipsis : {
32+ control : 'boolean' ,
33+ description : 'Permet de couper le texte avec des points de suspension si le texte est trop long' ,
34+ } ,
2935 } ,
30- }
36+ } satisfies Meta < typeof DsfrBadge >
3137
32- export const Badge = ( args ) => ( {
33- components : {
34- DsfrBadge,
35- } ,
36- data ( ) {
37- return args
38+ export default meta
39+
40+ type Story = StoryObj < typeof meta >
41+
42+ export const Badge : Story = {
43+ args : {
44+ small : false ,
45+ type : 'success' ,
46+ label : 'Succès au chocolat vert' ,
47+ noIcon : false ,
3848 } ,
39- template : `
40- <DsfrBadge :label="label" :small="small" :type="type" :no-icon="noIcon" />
41- ` ,
42- } )
43- Badge . args = {
44- small : false ,
45- type : 'success' ,
46- label : 'Succès au chocolat vert' ,
47- noIcon : false ,
49+ render : ( args ) => ( {
50+ components : {
51+ DsfrBadge,
52+ } ,
53+ setup ( ) {
54+ return { args }
55+ } ,
56+ template : `
57+ <DsfrBadge :label="args.label" :small="args.small" :type="args.type" :no-icon="args.noIcon" />
58+ ` ,
59+ } ) ,
4860}
4961
50- export const TousLesBadges = ( args ) => ( {
51- components : {
52- DsfrBadge ,
62+ export const TousLesBadges : Story = {
63+ args : {
64+ label : 'Exemple' , // Valeur par défaut, non utilisée car hardcodée dans le template
5365 } ,
54- data ( ) {
55- return args
56- } ,
57- template : `
58- <p>
59- <DsfrBadge label="Simple" />
60- </p>
61- <p>
62- <DsfrBadge style="width: 300px" ellipsis label="Label très long qui, normalement, devrait être coupé par une ellipse" />
63- </p>
64- <p>
65- <DsfrBadge label="Succès" type="success" />
66- </p>
67- <p>
68- <DsfrBadge label="Erreur" type="error" />
69- </p>
70- <p>
71- <DsfrBadge label="Attention !" type="warning" />
72- </p>
73- <p>
74- <DsfrBadge label="Information" type="info" />
75- </p>
76- <p>
77- <DsfrBadge label="Nouveauté" type="new" />
78- </p>
79- ` ,
80- } )
81- TousLesBadges . args = { }
66+ render : ( ) => ( {
67+ components : {
68+ DsfrBadge,
69+ } ,
70+ template : `
71+ <p>
72+ <DsfrBadge label="Simple" />
73+ </p>
74+ <p>
75+ <DsfrBadge style="width: 300px" ellipsis label="Label très long qui, normalement, devrait être coupé par une ellipse" />
76+ </p>
77+ <p>
78+ <DsfrBadge label="Succès" type="success" />
79+ </p>
80+ <p>
81+ <DsfrBadge label="Erreur" type="error" />
82+ </p>
83+ <p>
84+ <DsfrBadge label="Attention !" type="warning" />
85+ </p>
86+ <p>
87+ <DsfrBadge label="Information" type="info" />
88+ </p>
89+ <p>
90+ <DsfrBadge label="Nouveauté" type="new" />
91+ </p>
92+ ` ,
93+ } ) ,
94+ }
0 commit comments