Skip to content

Commit 29edbbd

Browse files
authored
Merge pull request #974 from dnum-mi/develop
Develop
2 parents cbc986a + d9bba2b commit 29edbbd

File tree

149 files changed

+2627
-1139
lines changed

Some content is hidden

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

149 files changed

+2627
-1139
lines changed

.storybook/manager.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { addons } from '@storybook/manager-api'
22
import { themes } from '@storybook/theming'
3+
34
import VueDsfrTheme from './vue-dsfr-theme.js'
45

56
addons.setConfig({

.storybook/preview.ts

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { setup } from '@storybook/vue3'
44
import { FocusTrap } from 'focus-trap-vue'
55
import { defineComponent } from 'vue'
66
import type { Preview } from '@storybook/vue3'
7+
78
import VIcon from '../src/components/VIcon/VIcon.vue'
89

910
import VueDsfrTheme from './vue-dsfr-theme.js'

.storybook/vue-dsfr-theme.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { create } from '@storybook/theming'
2+
23
import brandImage from '../src/assets/icone-marianne-seule.png'
34

45
export default create({

.vitepress/config.ts

+5
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { fileURLToPath, URL } from 'node:url'
33
import { whyframe } from '@whyframe/core'
44
import { whyframeVue } from '@whyframe/vue'
55
import { defineConfig } from 'vitepress'
6+
67
import { hmrFix } from './plugins/hmrFix.js'
78

89
const minimalToc = [
@@ -231,6 +232,10 @@ const composants = [
231232
text: 'DsfrModal',
232233
link: '/composants/DsfrModal.md',
233234
},
235+
{
236+
text: 'DsfrMultiselect',
237+
link: '/composants/DsfrMultiselect.md',
238+
},
234239
{
235240
text: 'DsfrNotice',
236241
link: '/composants/DsfrNotice.md',

.vitepress/plugins/hmrFix.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { fileURLToPath } from 'node:url'
2+
23
import fullReload from 'vite-plugin-full-reload'
34
import type { Plugin } from 'vitepress'
45

.vitepress/theme/Story.vue

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<script setup lang="ts">
22
import { useData } from 'vitepress'
33
import { onMounted, onUnmounted, ref, watchEffect } from 'vue'
4+
45
import { useScheme, type UseSchemeResult } from '../../src/index'
56
67
withDefaults(defineProps<{

.vitepress/theme/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ import { RouterLink } from 'vue-router'
33
import type { Theme } from 'vitepress'
44

55
import VIcon from '../../src/components/VIcon/VIcon.vue'
6+
67
import AppColors from './AppColors.vue'
78
import AppIcons from './AppIcons.vue'
89
import Story from './Story.vue'
9-
1010
import VIconLink from './VIconLink.vue'
1111
import './official-icons.css'
1212
import '@gouvfr/dsfr/dist/utility/icons/icons.main.css'

demo-app/App.vue

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
<script setup lang="ts">
22
import { computed, ref } from 'vue'
3-
43
import { useRoute } from 'vue-router'
5-
import DsfrBreadcrumb from '../src/components/DsfrBreadcrumb/DsfrBreadcrumb.vue'
64
5+
import DsfrBreadcrumb from '../src/components/DsfrBreadcrumb/DsfrBreadcrumb.vue'
76
import DsfrFooter from '../src/components/DsfrFooter/DsfrFooter.vue'
87
import DsfrHeader, { type DsfrHeaderProps } from '../src/components/DsfrHeader/DsfrHeader.vue'
98
import DsfrModal from '../src/components/DsfrModal/DsfrModal.vue'
109
import DsfrNavigation, { type DsfrNavigationProps } from '../src/components/DsfrNavigation/DsfrNavigation.vue'
1110
import DsfrSkipLinks, { type DsfrSkipLinksProps } from '../src/components/DsfrSkipLinks/DsfrSkipLinks.vue'
11+
1212
import AppToaster from './components/AppToaster.vue'
1313
import useToaster from './composables/use-toaster.js'
1414
@@ -280,6 +280,7 @@ const currentRoute = computed(() => route.name)
280280
v-model="search"
281281
:quick-links="quickLinks"
282282
show-search
283+
service-title="VueDSFR demo App"
283284
placeholder="Rechercher placeholder"
284285
>
285286
<template #mainnav>

demo-app/main.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
import VueDsfr from '@/index'
2-
31
import { createApp } from 'vue'
2+
43
import App from './App.vue'
54
import router from './router.js'
5+
6+
import VueDsfr from '@/index'
67
import '@gouvfr/dsfr/dist/core/core.main.min.css'
78
import '@gouvfr/dsfr/dist/scheme/scheme.min.css'
89

demo-app/views/AppAccordions.vue

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<script setup>
2-
import DsfrAccordion from '@/components/DsfrAccordion/DsfrAccordion.vue'
2+
import { ref } from 'vue'
33
4+
import DsfrAccordion from '@/components/DsfrAccordion/DsfrAccordion.vue'
45
import DsfrAccordionsGroup from '@/components/DsfrAccordion/DsfrAccordionsGroup.vue'
56
import DsfrTranscription from '@/components/DsfrTranscription/DsfrTranscription.vue'
6-
import { ref } from 'vue'
77
88
const activeAccordion = ref(-1)
99
const activeAccordionInGroup = ref(-1)

demo-app/views/AppAlerts.vue

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
<script setup>
2+
import { ref } from 'vue'
3+
24
import DsfrAlert from '@/components/DsfrAlert/DsfrAlert.vue'
35
import DsfrNotice from '@/components/DsfrNotice/DsfrNotice.vue'
46
// @ts-check
5-
import { ref } from 'vue'
67
78
const noticeClosed = ref(false)
89

demo-app/views/AppForm.vue

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
<script setup lang="ts">
2+
import { ref } from 'vue'
3+
24
import DsfrAlert from '@/components/DsfrAlert/DsfrAlert.vue'
35
import DsfrButton from '@/components/DsfrButton/DsfrButton.vue'
46
import DsfrCheckboxSet from '@/components/DsfrCheckbox/DsfrCheckboxSet.vue'
57
import DsfrFileUpload from '@/components/DsfrFileUpload/DsfrFileUpload.vue'
68
import DsfrRadioButtonSet from '@/components/DsfrRadioButton/DsfrRadioButtonSet.vue'
7-
import { ref } from 'vue'
89
import type { DsfrCheckboxSetProps } from '@/components/DsfrCheckbox/DsfrCheckbox.types'
910
1011
const inputValue = ref('')

demo-app/views/CardTile.vue

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<script lang="ts" setup>
22
import svgSchool from '@gouvfr/dsfr/dist/artwork/pictograms/buildings/school.svg'
3+
34
import DsfrTile from '../../src/components/DsfrTile/DsfrTile.vue'
45
</script>
56

demo-app/views/SchemeSettings.vue

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
<script setup>
2-
import DsfrButton from '@/components/DsfrButton/DsfrButton.vue'
2+
import { onMounted, reactive, watchEffect } from 'vue'
33
4+
import DsfrButton from '@/components/DsfrButton/DsfrButton.vue'
45
import DsfrRadioButtonSet from '@/components/DsfrRadioButton/DsfrRadioButtonSet.vue'
56
import { useScheme } from '@/composables'
67
7-
import { onMounted, reactive, watchEffect } from 'vue'
8-
98
const options = [
109
{
1110
label: 'System',

demo-app/views/SideMenu.vue

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<script lang="ts" setup>
2-
import DsfrSideMenu from '@/components/DsfrSideMenu/DsfrSideMenu.vue'
32
import { ref } from 'vue'
4-
53
import { useRoute } from 'vue-router'
64
5+
import DsfrSideMenu from '@/components/DsfrSideMenu/DsfrSideMenu.vue'
6+
77
const buttonLabel = 'Dans cette rubrique'
88
const headingTitle = 'Titre de la rubrique'
99
const route = useRoute()

demo-app/views/SimpleModal.vue

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
<script setup lang="ts">
2-
import DsfrModal from '@/components/DsfrModal/DsfrModal.vue'
3-
import { useScheme } from '@/composables/index'
42
import darkThemeSvg from '@gouvfr/dsfr/dist/artwork/pictograms/environment/moon.svg'
53
import lightThemeSvg from '@gouvfr/dsfr/dist/artwork/pictograms/environment/sun.svg'
64
import systemThemeSvg from '@gouvfr/dsfr/dist/artwork/pictograms/system/system.svg'
75
import { onMounted, reactive, ref, watchEffect } from 'vue'
6+
7+
import { useScheme } from '@/composables/index'
8+
import DsfrModal from '@/components/DsfrModal/DsfrModal.vue'
89
import type { Preferences, UseSchemeResult } from '@/composables/index'
910
1011
const isModalOpen = ref(false)

docs/docs-demo/DsfrCheckboxSetV7Demo.vue

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<script lang="ts" setup>
2-
import DsfrCheckboxSet from '@/components/DsfrCheckbox/DsfrCheckboxSet.vue'
32
import { ref } from 'vue'
3+
4+
import DsfrCheckboxSet from '@/components/DsfrCheckbox/DsfrCheckboxSet.vue'
45
import type { DsfrCheckboxSetProps } from '@/components/DsfrCheckbox/DsfrCheckbox.types'
56
67
const selectedCheckboxes = ref([])

docs/guide/pour-commencer.md

+1
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ Ajouter la bibliothèque en tant que plugin a deux conséquences :
8989

9090
```js
9191
import { createApp } from 'vue'
92+
9293
import App from './App.vue'
9394

9495
const app = createApp(App)

docs/recettes/toaster.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,9 @@ Ce composant `AppToaster` sera ajouté une seule fois dans l’application : da
3535
```vue [App.vue]
3636
<script setup lang="ts">
3737
// (...)
38-
import AppToaster from '@/components/AppToaster.vue'
3938
import { ref } from 'vue' // Import du composant AppToaster
39+
40+
import AppToaster from '@/components/AppToaster.vue'
4041
// (...)
4142
</script>
4243

eslint.config.js

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
import antfu from '@antfu/eslint-config'
22

3-
// const compat = new FlatCompat({
4-
// baseDirectory: import.meta.dirname,
5-
// })
6-
73
export default antfu({
84
vue: true,
95
}, [
106
{
117
rules: {
128
'test/prefer-lowercase-title': 'off',
139
'sort-imports': 'off', // Should be 'error'
14-
'import/order': 'off', // Should be 'error'
10+
'import/order': ['error', {
11+
'newlines-between': 'always',
12+
groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index'],
13+
}],
1514
'antfu/top-level-function': 'off', // Should be 'error'
1615
'style/quote-props': ['error', 'as-needed'], // Should be ['error', 'consistent-as-needed']
1716
'vue/quote-props': ['error', 'as-needed'], // Should be ['error', 'consistent-as-needed']
@@ -21,6 +20,8 @@ export default antfu({
2120
'style/max-statements-per-line': 'off', // Should be 'error'
2221
'vue/no-irregular-whitespace': 'warn',
2322
'no-irregular-whitespace': 'warn',
23+
'perfectionist/sort-imports': 'off', // import/order is better
24+
'perfectionist/sort-exports': 'off', // Think about it
2425
'style/space-before-function-paren': ['error', 'always'],
2526
'style/brace-style': ['error', '1tbs', { allowSingleLine: true }],
2627
curly: ['error', 'all'],
@@ -70,9 +71,9 @@ export default antfu({
7071
},
7172
},
7273
{
73-
files: ['src/components/index.ts'],
74+
files: ['ci/**/*.mjs'],
7475
rules: {
75-
'perfectionist/sort-exports': 'off',
76+
'antfu/no-top-level-await': 'off',
7677
},
7778
},
7879
])

package.json

+39-39
Original file line numberDiff line numberDiff line change
@@ -76,75 +76,75 @@
7676
},
7777
"dependencies": {
7878
"@gouvfr/dsfr": "~1.12.1",
79-
"focus-trap": "^7.5.4",
79+
"focus-trap": "^7.6.0",
8080
"focus-trap-vue": "^4.0.3",
81-
"pnpm": "^9.10.0",
82-
"vue": "^3.5.4",
83-
"vue-router": "^4.4.4"
81+
"vue": "^3.5.12",
82+
"vue-router": "^4.4.5"
8483
},
8584
"devDependencies": {
86-
"@antfu/eslint-config": "^3.5.1",
85+
"@antfu/eslint-config": "^3.8.0",
8786
"@chromatic-com/storybook": "^2.0.2",
88-
"@commitlint/cli": "^19.4.1",
89-
"@commitlint/config-conventional": "^19.4.1",
87+
"@commitlint/cli": "^19.5.0",
88+
"@commitlint/config-conventional": "^19.5.0",
9089
"@iconify/vue": "^4.1.2",
9190
"@playwright/test": "1.48.1",
92-
"@storybook/addon-a11y": "^8.3.0",
93-
"@storybook/addon-docs": "^8.3.0",
94-
"@storybook/addon-essentials": "^8.3.0",
95-
"@storybook/addon-interactions": "^8.3.0",
96-
"@storybook/addon-links": "^8.3.0",
97-
"@storybook/addon-mdx-gfm": "^8.3.0",
91+
"@storybook/addon-a11y": "^8.3.6",
92+
"@storybook/addon-docs": "^8.3.6",
93+
"@storybook/addon-essentials": "^8.3.6",
94+
"@storybook/addon-interactions": "^8.3.6",
95+
"@storybook/addon-links": "^8.3.6",
96+
"@storybook/addon-mdx-gfm": "^8.3.6",
9897
"@storybook/addon-styling": "^1.3.7",
99-
"@storybook/addon-themes": "^8.3.0",
100-
"@storybook/blocks": "^8.3.0",
101-
"@storybook/test": "^8.3.0",
98+
"@storybook/addon-themes": "^8.3.6",
99+
"@storybook/blocks": "^8.3.6",
100+
"@storybook/test": "^8.3.6",
102101
"@storybook/test-runner": "^0.19.1",
103-
"@storybook/theming": "^8.3.0",
104-
"@storybook/vue3": "^8.3.0",
105-
"@storybook/vue3-vite": "^8.3.0",
102+
"@storybook/theming": "^8.3.6",
103+
"@storybook/vue3": "^8.3.6",
104+
"@storybook/vue3-vite": "^8.3.6",
106105
"@testing-library/dom": "^10.4.0",
107-
"@testing-library/jest-dom": "^6.5.0",
106+
"@testing-library/jest-dom": "^6.6.2",
108107
"@testing-library/user-event": "^14.5.2",
109108
"@testing-library/vue": "^8.1.0",
110109
"@types/jsdom": "^21.1.7",
111-
"@types/node": "^20.16.5",
112-
"@vitejs/plugin-vue": "^5.1.3",
110+
"@types/node": "^20.17.4",
111+
"@vitejs/plugin-vue": "^5.1.4",
113112
"@vitejs/plugin-vue-jsx": "^4.0.1",
114113
"@vue/test-utils": "^2.4.6",
115114
"@vue/tsconfig": "^0.5.1",
116-
"@vueuse/core": "^11.0.3",
117-
"@vueuse/shared": "^11.0.3",
115+
"@vueuse/core": "^11.2.0",
116+
"@vueuse/shared": "^11.2.0",
118117
"@whyframe/core": "^0.1.11",
119118
"@whyframe/vue": "^0.1.7",
120-
"browserslist": "^4.23.3",
119+
"browserslist": "^4.24.2",
121120
"chalk": "^5.3.0",
122-
"commitlint": "^19.4.1",
121+
"commitlint": "^19.5.0",
123122
"cross-env": "^7.0.3",
124-
"eslint": "^9.10.0",
125-
"eslint-plugin-vue": "^9.28.0",
123+
"eslint": "^9.13.0",
124+
"eslint-plugin-vue": "^9.30.0",
126125
"globby": "^14.0.2",
127-
"husky": "^9.1.5",
126+
"husky": "^9.1.6",
128127
"inquirer": "^10.2.2",
129-
"jsdom": "^25.0.0",
128+
"jsdom": "^25.0.1",
130129
"lightningcss": "^1.27.0",
131130
"lint-staged": "^15.2.10",
132131
"npm-run-all": "^4.1.5",
133132
"p-debounce": "^4.0.0",
134-
"publint": "^0.2.10",
133+
"pnpm": "^9.10.0",
134+
"publint": "^0.2.12",
135135
"regenerator-runtime": "^0.14.1",
136136
"rimraf": "^6.0.1",
137-
"semantic-release": "^24.1.1",
138-
"start-server-and-test": "^2.0.7",
139-
"storybook": "^8.3.0",
137+
"semantic-release": "^24.2.0",
138+
"start-server-and-test": "^2.0.8",
139+
"storybook": "^8.3.6",
140140
"typescript": "~5.5.4",
141-
"vite": "^5.4.4",
142-
"vite-node": "^2.0.5",
141+
"vite": "^5.4.10",
142+
"vite-node": "^2.1.4",
143143
"vite-plugin-full-reload": "^1.2.0",
144-
"vitepress": "^1.3.4",
145-
"vitest": "^2.0.5",
144+
"vitepress": "^1.4.2",
145+
"vitest": "^2.1.4",
146146
"vue-demi": "^0.14.10",
147-
"vue-tsc": "^2.1.6"
147+
"vue-tsc": "^2.1.10"
148148
},
149149
"lint-staged": {
150150
"*.{vue,js,jsx,ts,tsx}": "run-s check-exports-ci lint --"

0 commit comments

Comments
 (0)