Skip to content

Commit e2907a5

Browse files
authored
Merge pull request #1135 from dnum-mi/fix/reparer-controles-dans-storybook
fix/reparer controles dans storybook
2 parents 3d27842 + b308ac1 commit e2907a5

File tree

155 files changed

+10010
-12865
lines changed

Some content is hidden

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

155 files changed

+10010
-12865
lines changed

.github/copilot-instructions.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
## Vue d'ensemble du projet
44
VueDsfr est une bibliothèque de composants Vue 3 qui porte le Système de Design Français (DSFR) vers Vue.js. Elle fournit ~50 composants accessibles et prêts pour la production suivant les normes de design du gouvernement français.
55

6+
## Pour les tâches que je vais te demander
7+
8+
Voir le fichier `.github/copilot-tasks.instructions.md` pour les instructions spécifiques aux tâches.
9+
610
## Architecture et structure des fichiers
711

812
### Organisation des composants
@@ -91,9 +95,10 @@ pnpm format # Corriger automatiquement ESLint
9195
## 🎯 Conventions Git & Commits
9296

9397
### Format des commits
98+
9499
Utilise **TOUJOURS** le format : `type(scope): gitmoji description`
95100

96-
**Exemple** : `feat(auth): ✨ add user authentication system`
101+
**Exemple** : `feat(auth): ✨ ajoute la fonctionnalité de connexion OAuth2`
97102

98103
### Types de commits conventionnels
99104
- `feat`: ✨ Nouvelles fonctionnalités

.github/copilot-tasks.instructions.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,35 @@ Elles respectent les conventions définies dans `copilot-instructions.md`, `fron
1919
> Explique ce code comme si tu parlais à un développeur junior TypeScript.
2020
> Précise les concepts clés (types, inférences, hooks Vue, schémas Fastify, etc.).
2121
22+
### Storybook
23+
24+
**Objectif :** Générer des stories pour les composants Vue.
25+
26+
> Analyse les composants Vue et crée des stories correspondantes dans Storybook.
27+
> Assure-toi que chaque état et variation du composant est couvert.
28+
29+
*Fréquence recommandée : à chaque ajout ou modification de composant.*
30+
31+
#### Remanier (refactor) les stories existantes
32+
33+
> Il faut s’assurer que les stories sont au format attendu par Storybook 9, CSF3, et qu’elles utilisent les bonnes pratiques du projet.
34+
> Utilise les conventions de nommage et d’organisation du projet.
35+
> Génère des exemples d’utilisation clairs et typés.
36+
> Utilise les apostrophes françaises `` et les espaces insécables ` ` devant `:` et les espaces fines insécables `` devant les autres ponctuations doubles `; ! ?` dans les stories et les commentaires.
37+
> Garde les règles typographiques françaises comme les apostrophes françaises `` et les espaces insécables ` ` devant `:` et les espaces fines insécables `` devant les autres ponctuations doubles `; ! ?` dans tes refactorisations.
38+
> Les apostrophes françaises `` ne posent pas de problème dans le code TypeScript ou les fichiers stories et doivent être utilisées partout où c’est pertinent, et laissées inchangées lors de la refactorisation.
39+
> Prends exemple sur les stories de DsfrAlert.stories.ts
40+
> Il faut s’assurer que les stories sont au format attendu par Storybook 9.
41+
> Il faut aussi remanier le fichier Vue correspondant (il porte le même nom que la story, mais avec l’extension .vue au lieu de .stories.ts) pour qu’il utilise defineSlots au lieu du commentaire HTML pour documenter les slots : `<!-- @slotName Ici la description -->`
42+
> Dans le commit, si les fichiers remaniés ne concernent qu’un seul composant (par exemple DsfrAlert.vue et DsfrAlert.stories.ts), indique le nom du composant en entier dans le scope du message de commit : `refactor(DsfrAlert): remanie les stories et ajoute defineSlots`
43+
44+
---
45+
2246
### ✏️ Refactorisation
2347

2448
> Refactorise ce code selon nos conventions (TypeScript strict, composition API, fonctions pures, etc.).
2549
> Garde la même logique métier.
50+
> Garde les règles typographiques françaises comme les apostrophes françaises `` et les espaces insécables ` ` devant `:` et les espaces fines insécables `` devant les autres ponctuations doubles `; ! ?`.
2651
2752
---
2853

.storybook/main.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,18 @@ const config: StorybookConfig = {
44
stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
55
addons: [
66
'@storybook/addon-links',
7-
'@storybook/addon-essentials',
8-
'@storybook/addon-interactions',
97
'@storybook/addon-themes',
108
'@storybook/addon-a11y',
119
'@chromatic-com/storybook',
10+
'@storybook/addon-docs',
1211
],
1312
framework: {
1413
name: '@storybook/vue3-vite',
15-
options: {},
14+
options: {
15+
docgen: 'vue-component-meta',
16+
},
1617
},
1718
docs: {},
19+
staticDirs: ['../public'],
1820
}
1921
export default config

.storybook/manager.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { addons } from '@storybook/manager-api'
2-
import { themes } from '@storybook/theming'
1+
import { addons } from 'storybook/manager-api'
2+
import { themes } from 'storybook/theming'
33

44
import VueDsfrTheme from './vue-dsfr-theme.js'
55

.storybook/preview.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import type { Preview } from '@storybook/vue3'
1+
import type { Preview } from '@storybook/vue3-vite'
22

3-
import { themes } from '@storybook/theming'
4-
import { setup } from '@storybook/vue3'
3+
import { setup } from '@storybook/vue3-vite'
54
import { FocusTrap } from 'focus-trap-vue'
5+
import { themes } from 'storybook/theming'
66
import { defineComponent } from 'vue'
77

88
import VIcon from '../src/components/VIcon/VIcon.vue'
@@ -23,7 +23,7 @@ import './theme.css'
2323
const preview: Preview = {
2424
parameters: {
2525
backgrounds: {
26-
disable: true,
26+
disabled: true,
2727
},
2828
docs: {
2929
theme: { ...themes.normal, ...VueDsfrTheme },
@@ -35,7 +35,7 @@ const preview: Preview = {
3535
},
3636
},
3737
viewport: {
38-
viewports: {
38+
options: {
3939
DSFR_XS: {
4040
name: 'DSFR XS',
4141
styles: {

.storybook/vue-dsfr-theme.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { create } from '@storybook/theming'
1+
import { create } from 'storybook/theming'
22

33
import brandImage from '../src/assets/icone-marianne-seule.png'
44

demo-app/App.vue

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,19 @@ const ecosystemLinks = [
274274
275275
const search = ref('')
276276
const currentRoute = computed(() => route.name)
277+
const language = ref('fr')
278+
const languageSelector = ref({
279+
currentLanguage: 'fr',
280+
languages: [
281+
{ label: 'Français', codeIso: 'fr' },
282+
{ label: 'English', codeIso: 'en' },
283+
{ label: 'Español', codeIso: 'es' },
284+
],
285+
onLanguageSelect: (languageCode: string) => {
286+
toaster.addMessage({ description: `Langue changée en ${languageCode}`, type: 'info' })
287+
language.value = languageCode
288+
},
289+
})
277290
</script>
278291

279292
<template>
@@ -287,6 +300,8 @@ const currentRoute = computed(() => route.name)
287300
show-search
288301
service-title="VueDSFR demo App"
289302
placeholder="Rechercher placeholder"
303+
:language-selector="languageSelector"
304+
@language-select="languageSelector.currentLanguage = $event.codeIso"
290305
>
291306
<template #mainnav>
292307
<DsfrNavigation

eslint.config.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// For more info, see https://github.com/storybookjs/eslint-plugin-storybook#configuration-flat-config-format
2+
13
import antfu from '@antfu/eslint-config'
24

35
export default antfu({

package.json

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -93,24 +93,17 @@
9393
},
9494
"devDependencies": {
9595
"@antfu/eslint-config": "^4.1.1",
96-
"@chromatic-com/storybook": "^3.2.4",
96+
"@chromatic-com/storybook": "^4.1.2",
9797
"@commitlint/cli": "^19.7.1",
9898
"@commitlint/config-conventional": "^19.7.1",
9999
"@iconify/vue": "^4.3.0",
100100
"@playwright/test": "1.49.1",
101-
"@storybook/addon-a11y": "^8.5.3",
102-
"@storybook/addon-docs": "^8.5.3",
103-
"@storybook/addon-essentials": "^8.5.3",
104-
"@storybook/addon-interactions": "^8.5.3",
105-
"@storybook/addon-links": "^8.5.3",
106-
"@storybook/addon-mdx-gfm": "^8.5.3",
107-
"@storybook/addon-themes": "^8.5.3",
108-
"@storybook/blocks": "^8.5.3",
109-
"@storybook/test": "^8.5.3",
110-
"@storybook/test-runner": "^0.21.0",
111-
"@storybook/theming": "^8.5.3",
112-
"@storybook/vue3": "^8.5.3",
113-
"@storybook/vue3-vite": "^8.5.3",
101+
"@storybook/addon-a11y": "^10.0.2",
102+
"@storybook/addon-docs": "^10.0.2",
103+
"@storybook/addon-links": "^10.0.2",
104+
"@storybook/addon-themes": "^10.0.2",
105+
"@storybook/test-runner": "^0.24.1",
106+
"@storybook/vue3-vite": "^10.0.2",
114107
"@testing-library/dom": "^10.4.0",
115108
"@testing-library/jest-dom": "^6.6.3",
116109
"@testing-library/user-event": "^14.6.1",
@@ -131,6 +124,7 @@
131124
"commitlint": "^19.7.1",
132125
"cross-env": "^7.0.3",
133126
"eslint": "^9.20.0",
127+
"eslint-plugin-storybook": "10.0.2",
134128
"eslint-plugin-vue": "^9.32.0",
135129
"globby": "^14.1.0",
136130
"husky": "^9.1.7",
@@ -146,7 +140,7 @@
146140
"rimraf": "^6.0.1",
147141
"semantic-release": "^24.2.1",
148142
"start-server-and-test": "^2.0.10",
149-
"storybook": "^8.5.3",
143+
"storybook": "^10.0.2",
150144
"typescript": "~5.7.3",
151145
"unplugin-lightningcss": "^0.3.0",
152146
"vite": "^6.1.0",

0 commit comments

Comments
 (0)