@cnamts/synapse 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/{DateFilter-BmRuzQ9Z.js → DateFilter-YWOTbfeL.js} +1 -1
- package/dist/{NumberFilter-CnIPDHqx.js → NumberFilter-DMmMgALM.js} +1 -1
- package/dist/{PeriodFilter-CZwZ8CnQ.js → PeriodFilter-Bok5BHcn.js} +1 -1
- package/dist/SelectFilter-BKud2WhN.js +136 -0
- package/dist/{TextFilter-DTxZHJwX.js → TextFilter-DvMf2thH.js} +1 -1
- package/dist/components/Accordion/Accordion.d.ts +2 -1
- package/dist/components/Accordion/composables/useAccordionGroupCommunication.d.ts +5 -0
- package/dist/components/Accordion/composables/useAccordionKeyboardNavigation.d.ts +12 -0
- package/dist/components/Accordion/composables/useAccordionState.d.ts +13 -0
- package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +85 -0
- package/dist/components/Customs/SyInputSelect/SyInputSelect.d.ts +2 -0
- package/dist/components/Customs/SySelect/SySelect.d.ts +33 -13
- package/dist/components/Customs/SyTextField/SyTextField.d.ts +2 -2
- package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +1585 -1452
- package/dist/components/DatePicker/DatePicker/DatePicker.d.ts +16 -2
- package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +3 -1
- package/dist/components/DatePicker/composables/index.d.ts +2 -0
- package/dist/components/DatePicker/composables/useAsteriskDisplay.d.ts +14 -0
- package/dist/components/DatePicker/composables/useDateAutoClamp.d.ts +16 -0
- package/dist/components/DatePicker/composables/useDateRangeInput.d.ts +1 -1
- package/dist/components/DatePicker/composables/useDisplayedDateString.d.ts +3 -0
- package/dist/components/DatePicker/composables/useInputBlurHandler.d.ts +1 -0
- package/dist/components/DatePicker/composables/useMonthButtonCustomization.d.ts +5 -2
- package/dist/components/NirField/NirField.d.ts +7 -3
- package/dist/components/NirField/nirValidation.d.ts +1 -1
- package/dist/components/PasswordField/PasswordField.d.ts +2 -0
- package/dist/components/PeriodField/PeriodField.d.ts +52 -8
- package/dist/components/PhoneField/PhoneField.d.ts +2 -2
- package/dist/components/RangeField/RangeField.d.ts +2 -0
- package/dist/components/SearchListField/SearchListField.d.ts +9 -0
- package/dist/components/SyTextArea/SyTextArea.d.ts +2 -0
- package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +14 -9
- package/dist/components/Tables/SyTable/SyTable.d.ts +12 -7
- package/dist/components/Tables/common/SyTablePagination.d.ts +1636 -0
- package/dist/components/Tables/common/TableHeader.d.ts +2 -20
- package/dist/components/Tables/common/filters/SelectFilter.d.ts +5 -5
- package/dist/components/Tables/common/filters/getFilterComponent.d.ts +1 -0
- package/dist/components/Tables/common/filters/locales.d.ts +4 -0
- package/dist/components/Tables/common/filters/logics/date.d.ts +1 -0
- package/dist/components/Tables/common/filters/logics/number.d.ts +1 -0
- package/dist/components/Tables/common/filters/logics/period.d.ts +1 -0
- package/dist/components/Tables/common/filters/logics/select.d.ts +1 -0
- package/dist/components/Tables/common/filters/logics/text.d.ts +1 -0
- package/dist/components/Tables/common/locales.d.ts +21 -0
- package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +267 -0
- package/dist/components/Tables/common/organizeColumns/sortHeaders.d.ts +2 -0
- package/dist/components/Tables/common/tableFilterUtils.d.ts +1 -0
- package/dist/components/Tables/common/tableStorageUtils.d.ts +41 -1
- package/dist/components/Tables/common/tableUtils.d.ts +42 -5
- package/dist/components/Tables/common/types.d.ts +19 -8
- package/dist/components/Tables/common/usePagination.d.ts +22 -0
- package/dist/components/Tables/common/useTableCheckbox.d.ts +20 -0
- package/dist/components/Tables/common/useTableHeaders.d.ts +76 -0
- package/dist/components/Tables/common/useTableItems.d.ts +24 -0
- package/dist/components/Tables/common/useTableOptions.d.ts +18 -0
- package/dist/components/ToolbarContainer/ToolbarContainer.d.ts +11 -0
- package/dist/components/UserMenuBtn/UserMenuBtn.d.ts +9 -2
- package/dist/components/index.d.ts +8 -6
- package/dist/design-system-v3.js +58 -56
- package/dist/design-system-v3.umd.cjs +22 -22
- package/dist/main-Cx8qG7YR.js +16344 -0
- package/dist/stories/Accessibilite/Vuetify/VuetifyItems.d.ts +14 -2
- package/dist/stories/DesignTokens/StylesTypographiques.stories.new.d.ts +8 -0
- package/dist/stories/DesignTokens/TypographyDisplay.d.ts +28 -0
- package/dist/stories/DesignTokens/vue-shims.d.ts +6 -0
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/common/imgs/accessibility-svgrepo-com.svg +4 -0
- package/src/components/Accordion/Accessibilite/AccessibilityGuide.mdx +249 -0
- package/src/components/Accordion/Accordion.vue +48 -76
- package/src/components/Accordion/composables/__tests__/useAccordionGroupCommunication.spec.ts +146 -0
- package/src/components/Accordion/composables/__tests__/useAccordionKeyboardNavigation.spec.ts +209 -0
- package/src/components/Accordion/composables/__tests__/useAccordionState.spec.ts +144 -0
- package/src/components/Accordion/composables/useAccordionGroupCommunication.ts +52 -0
- package/src/components/Accordion/composables/useAccordionKeyboardNavigation.ts +111 -0
- package/src/components/Accordion/composables/useAccordionState.ts +59 -0
- package/src/components/Accordion/tests/__snapshots__/accordion.spec.ts.snap +3 -0
- package/src/components/Customs/SyCheckbox/Accessibilite.mdx +303 -0
- package/src/components/Customs/SyCheckbox/SyCheckbox.mdx +50 -0
- package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +630 -0
- package/src/components/Customs/SyCheckbox/SyCheckbox.vue +326 -0
- package/src/components/Customs/SyCheckbox/tests/SyCheckbox.spec.ts +201 -0
- package/src/components/Customs/SyInputSelect/SyInputSelect.stories.ts +1 -0
- package/src/components/Customs/SyInputSelect/SyInputSelect.vue +8 -1
- package/src/components/Customs/SySelect/SySelect.stories.ts +160 -0
- package/src/components/Customs/SySelect/SySelect.vue +291 -32
- package/src/components/Customs/SySelect/tests/SySelect.spec.ts +230 -0
- package/src/components/Customs/SyTextField/SyTextField.stories.ts +3 -2
- package/src/components/Customs/SyTextField/SyTextField.vue +19 -8
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +241 -31
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +305 -57
- package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.events.spec.ts +161 -0
- package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +4 -2
- package/src/components/DatePicker/DatePicker/DatePicker.stories.ts +259 -137
- package/src/components/DatePicker/DatePicker/DatePicker.vue +153 -25
- package/src/components/DatePicker/DatePicker/tests/DatePicker.events.spec.ts +189 -0
- package/src/components/DatePicker/DatePicker/{DatePicker.spec.ts → tests/DatePicker.spec.ts} +1 -15
- package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +24 -14
- package/src/components/DatePicker/DateTextInput/DateTextInput.events.spec.ts +148 -0
- package/src/components/DatePicker/DateTextInput/DateTextInput.spec.ts +3 -1
- package/src/components/DatePicker/DateTextInput/DateTextInput.vue +200 -5
- package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +241 -31
- package/src/components/DatePicker/composables/index.ts +2 -0
- package/src/components/DatePicker/composables/tests/useDateAutoClamp.spec.ts +190 -0
- package/src/components/DatePicker/composables/tests/useInputBlurHandler.spec.ts +182 -4
- package/src/components/DatePicker/composables/tests/useMonthButtonCustomization.spec.ts +105 -80
- package/src/components/DatePicker/composables/useAsteriskDisplay.ts +31 -0
- package/src/components/DatePicker/composables/useDateAutoClamp.ts +136 -0
- package/src/components/DatePicker/composables/useDateRangeInput.ts +21 -18
- package/src/components/DatePicker/composables/useDisplayedDateString.ts +13 -1
- package/src/components/DatePicker/composables/useInputBlurHandler.ts +84 -20
- package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +149 -51
- package/src/components/DiacriticPicker/DiacriticPicker.stories.ts +10 -0
- package/src/components/ErrorPage/Accessibilite.stories.ts +8 -0
- package/src/components/ErrorPage/ErrorPage.vue +12 -6
- package/src/components/ErrorPage/tests/__snapshots__/ErrorPage.spec.ts.snap +4 -4
- package/src/components/NirField/NirField.mdx +22 -9
- package/src/components/NirField/NirField.stories.ts +26 -2
- package/src/components/NirField/NirField.vue +209 -22
- package/src/components/NirField/nirValidation.ts +17 -3
- package/src/components/NirField/tests/NirField.spec.ts +2 -2
- package/src/components/NotFoundPage/Accessibilite.stories.ts +8 -0
- package/src/components/NotFoundPage/NotFoundPage.vue +2 -1
- package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +8 -6
- package/src/components/PaginatedTable/PaginatedTable.mdx +2 -0
- package/src/components/PasswordField/PasswordField.stories.ts +4 -0
- package/src/components/PasswordField/PasswordField.vue +3 -0
- package/src/components/PeriodField/PeriodField.vue +2 -0
- package/src/components/PhoneField/PhoneField.stories.ts +15 -15
- package/src/components/PhoneField/PhoneField.vue +1 -1
- package/src/components/RangeField/RangeField.stories.ts +9 -0
- package/src/components/RangeField/RangeField.vue +4 -0
- package/src/components/RangeField/tests/__snapshots__/RangeField.spec.ts.snap +12 -0
- package/src/components/SearchListField/SearchListField.vue +5 -0
- package/src/components/SyTextArea/SyTextArea.vue +3 -0
- package/src/components/SyTextArea/tests/SyTextArea.spec.ts +0 -1
- package/src/components/Tables/SyServerTable/FilterRules.stories.ts +632 -15
- package/src/components/Tables/SyServerTable/SyServerTable.mdx +15 -5
- package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +2844 -1377
- package/src/components/Tables/SyServerTable/SyServerTable.vue +155 -66
- package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +256 -4
- package/src/components/Tables/SyTable/FilterRules.stories.ts +183 -0
- package/src/components/Tables/SyTable/SyTable.mdx +14 -4
- package/src/components/Tables/SyTable/SyTable.stories.ts +1265 -477
- package/src/components/Tables/SyTable/SyTable.vue +152 -72
- package/src/components/Tables/SyTable/tests/SyTable.spec.ts +366 -4
- package/src/components/Tables/common/SyTableFilter.vue +3 -56
- package/src/components/Tables/common/SyTablePagination.vue +375 -0
- package/src/components/Tables/common/TableHeader.vue +10 -26
- package/src/components/Tables/common/filters/SelectFilter.vue +131 -22
- package/src/components/Tables/common/filters/getFilterComponent.ts +54 -0
- package/src/components/Tables/common/filters/locales.ts +4 -0
- package/src/components/Tables/common/filters/logics/date.ts +12 -0
- package/src/components/Tables/common/filters/logics/number.ts +48 -0
- package/src/components/Tables/common/filters/logics/period.ts +25 -0
- package/src/components/Tables/common/filters/logics/select.ts +27 -0
- package/src/components/Tables/common/filters/logics/tests/TextFilterLogic.spec.ts +177 -0
- package/src/components/Tables/common/filters/logics/text.ts +62 -0
- package/src/components/Tables/common/filters/tests/TextFilter.spec.ts +11 -11
- package/src/components/Tables/common/locales.ts +24 -0
- package/src/components/Tables/common/organizeColumns/OrganizeColumns.vue +269 -0
- package/src/components/Tables/common/organizeColumns/sortHeaders.ts +9 -0
- package/src/components/Tables/common/tableFilterUtils.ts +43 -295
- package/src/components/Tables/common/tableStorageUtils.ts +27 -2
- package/src/components/Tables/common/tableStyles.scss +26 -0
- package/src/components/Tables/common/tableUtils.ts +3 -16
- package/src/components/Tables/common/tests/SyTablePagination.spec.ts +170 -0
- package/src/components/Tables/common/tests/filterByRange.spec.ts +215 -0
- package/src/components/Tables/common/tests/tableFilterUtils.spec.ts +0 -14
- package/src/components/Tables/common/tests/tableUtils.spec.ts +7 -51
- package/src/components/Tables/common/types.ts +17 -6
- package/src/components/Tables/common/usePagination.ts +83 -0
- package/src/components/Tables/common/useTableCheckbox.ts +58 -0
- package/src/components/Tables/common/useTableHeaders.ts +88 -0
- package/src/components/Tables/common/useTableItems.ts +87 -0
- package/src/components/Tables/common/useTableOptions.ts +93 -0
- package/src/components/ToolbarContainer/ToolbarContainer.mdx +16 -0
- package/src/components/ToolbarContainer/ToolbarContainer.stories.ts +675 -0
- package/src/components/ToolbarContainer/ToolbarContainer.vue +128 -0
- package/src/components/ToolbarContainer/tests/ToolbarContainer.spec.ts +156 -0
- package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +74 -0
- package/src/components/UserMenuBtn/UserMenuBtn.vue +19 -17
- package/src/components/index.ts +8 -6
- package/src/stories/Accessibilite/Aculturation/AuditDesignSystem.mdx +293 -20
- package/src/stories/Accessibilite/Aculturation/SensibilisationAccessibilite.mdx +448 -54
- package/src/stories/Accessibilite/Audit/RGAA.mdx +231 -23
- package/src/stories/Accessibilite/Avancement/Avancement.mdx +591 -7
- package/src/stories/Accessibilite/Avancement/Avancement.stories.ts +139 -38
- package/src/stories/Accessibilite/Introduction.mdx +258 -18
- package/src/stories/Accessibilite/KitDePreAudit/Echantillonnage.mdx +221 -31
- package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +204 -22
- package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +537 -24
- package/src/stories/Accessibilite/KitDePreAudit/Outils/LecteursDEcran.mdx +577 -70
- package/src/stories/Accessibilite/KitDePreAudit/Outils/Tanaguru.mdx +382 -31
- package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +419 -81
- package/src/stories/Accessibilite/Vuetify/Vuetify.mdx +132 -6
- package/src/stories/Accessibilite/Vuetify/Vuetify.stories.ts +370 -146
- package/src/stories/Accessibilite/Vuetify/VuetifyItems.ts +35 -57
- package/src/stories/Demarrer/Accueil.stories.ts +20 -5
- package/src/stories/DesignTokens/StylesTypographiques.mdx +10 -9
- package/src/stories/DesignTokens/StylesTypographiques.stories.new.ts +397 -0
- package/src/stories/DesignTokens/StylesTypographiques.stories.ts +397 -0
- package/src/stories/DesignTokens/TypographyDisplay.vue +155 -0
- package/src/stories/DesignTokens/vue-shims.d.ts +6 -0
- package/src/stories/GuideDuDev/LesBreackingChanges.mdx +0 -2
- package/src/stories/GuideDuDev/MigrationDepuisBridge.mdx +1 -1
- package/src/stories/GuideDuDev/MigrationDepuisVue2.mdx +1 -1
- package/src/stories/GuideDuDev/PortailAgent.mdx +10 -0
- package/src/stories/GuideDuDev/PortailAgent.stories.ts +506 -0
- package/src/stories/GuideDuDev/Theme.mdx +41 -0
- package/dist/SelectFilter-Cj-GW2Cc.js +0 -97
- package/dist/main-WDqeoGM-.js +0 -14788
- package/src/components/PaginatedTable/tests/__snapshots__/PaginatedTable.spec.ts.snap +0 -886
- package/src/components/Tables/SyServerTable/tests/__snapshots__/SyServerTable.spec.ts.snap +0 -521
- package/src/components/Tables/SyTable/tests/__snapshots__/SyTable.spec.ts.snap +0 -521
- package/src/stories/DesignTokens/ThemePA.mdx +0 -35
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { StoryObj } from '@storybook/vue3'
|
|
2
|
-
import { computed } from 'vue'
|
|
2
|
+
import { computed, ref } from 'vue'
|
|
3
|
+
import { mdiCheckCircle, mdiClockOutline, mdiProgressClock } from '@mdi/js'
|
|
3
4
|
|
|
4
5
|
export default {
|
|
5
|
-
title: 'Accessibilité/Avancement',
|
|
6
|
+
title: 'Accessibilité/Design System/Avancement',
|
|
6
7
|
}
|
|
7
8
|
|
|
8
9
|
export const PreAudit: StoryObj = {
|
|
@@ -15,7 +16,7 @@ export const PreAudit: StoryObj = {
|
|
|
15
16
|
color="success"
|
|
16
17
|
variant="elevated"
|
|
17
18
|
>
|
|
18
|
-
|
|
19
|
+
59/59 Composants
|
|
19
20
|
</v-chip>
|
|
20
21
|
`,
|
|
21
22
|
}
|
|
@@ -27,9 +28,14 @@ export const Manuel: StoryObj = {
|
|
|
27
28
|
render: () => {
|
|
28
29
|
return {
|
|
29
30
|
setup() {
|
|
31
|
+
const search = ref('')
|
|
32
|
+
const statusFilter = ref('all')
|
|
33
|
+
const page = ref(1)
|
|
34
|
+
const itemsPerPage = 20
|
|
30
35
|
const headers = [
|
|
31
36
|
{ text: 'Composant', value: 'composant' },
|
|
32
37
|
{ text: 'Statut', value: 'status' },
|
|
38
|
+
{ text: 'Dernière mise à jour', value: 'lastUpdate' },
|
|
33
39
|
]
|
|
34
40
|
|
|
35
41
|
const items = [
|
|
@@ -51,9 +57,9 @@ export const Manuel: StoryObj = {
|
|
|
51
57
|
{ composant: 'HeaderLoading', status: 'Non audité' },
|
|
52
58
|
{ composant: 'HeaderToolbar', status: 'Non audité' },
|
|
53
59
|
{ composant: 'Footer', status: 'Non audité' },
|
|
54
|
-
{ composant: 'SySelect', status: '
|
|
60
|
+
{ composant: 'SySelect', status: 'En cours' },
|
|
55
61
|
{ composant: 'SyInputSelect', status: 'Non audité' },
|
|
56
|
-
{ composant: 'Logo', status: '
|
|
62
|
+
{ composant: 'Logo', status: 'Audité' },
|
|
57
63
|
{ composant: 'DataListGroup', status: 'Non audité' },
|
|
58
64
|
{ composant: 'DataList', status: 'Non audité' },
|
|
59
65
|
{ composant: 'DataListItem', status: 'Non audité' },
|
|
@@ -83,50 +89,145 @@ export const Manuel: StoryObj = {
|
|
|
83
89
|
{ composant: 'FilterSideBar', status: 'Non audité' },
|
|
84
90
|
{ composant: 'PaginatedTable', status: 'Non audité' },
|
|
85
91
|
{ composant: 'TableToolbar', status: 'Non audité' },
|
|
92
|
+
{ composant: 'ErrorPage', status: 'Audité' },
|
|
93
|
+
{ composant: 'NotFoundPage', status: 'En cours' },
|
|
94
|
+
{ composant: 'MaintenancePage', status: 'En cours' },
|
|
95
|
+
{ composant: 'ContextualMenu', status: 'En cours' },
|
|
96
|
+
{ composant: 'ExternalLinks', status: 'En cours' },
|
|
86
97
|
]
|
|
87
98
|
|
|
99
|
+
// Options de filtrage par statut
|
|
100
|
+
const statusOptions = [
|
|
101
|
+
{ title: 'Tous les composants', value: 'all' },
|
|
102
|
+
{ title: 'Audités', value: 'audited' },
|
|
103
|
+
{ title: 'En cours', value: 'in-progress' },
|
|
104
|
+
{ title: 'Non audités', value: 'not-audited' },
|
|
105
|
+
]
|
|
106
|
+
|
|
107
|
+
// Filtrer les items en fonction de la recherche et du statut
|
|
108
|
+
const filteredItems = computed(() => {
|
|
109
|
+
let result = [...items]
|
|
110
|
+
|
|
111
|
+
// Filtrage par statut
|
|
112
|
+
if (statusFilter.value !== 'all') {
|
|
113
|
+
result = result.filter((item) => {
|
|
114
|
+
// Filtrer selon le statut sélectionné
|
|
115
|
+
switch (statusFilter.value) {
|
|
116
|
+
case 'audited':
|
|
117
|
+
return item.status === 'Audité'
|
|
118
|
+
case 'in-progress':
|
|
119
|
+
return item.status === 'En cours'
|
|
120
|
+
case 'not-audited':
|
|
121
|
+
return item.status === 'Non audité'
|
|
122
|
+
default:
|
|
123
|
+
return true
|
|
124
|
+
}
|
|
125
|
+
})
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Filtrage par recherche
|
|
129
|
+
if (search.value) {
|
|
130
|
+
const searchTerm = search.value.toLowerCase()
|
|
131
|
+
result = result.filter(item => item.composant.toLowerCase().includes(searchTerm))
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
return result
|
|
135
|
+
})
|
|
136
|
+
|
|
88
137
|
const totalItems = computed(() => items.length)
|
|
89
138
|
|
|
90
139
|
const checkedItems = computed(() => {
|
|
91
140
|
return items.filter(item => item.status === 'Audité').length
|
|
92
141
|
})
|
|
93
142
|
|
|
94
|
-
|
|
143
|
+
// Calcul des éléments paginés
|
|
144
|
+
const paginatedItems = computed(() => {
|
|
145
|
+
const start = (page.value - 1) * itemsPerPage
|
|
146
|
+
const end = start + itemsPerPage
|
|
147
|
+
return filteredItems.value.slice(start, end)
|
|
148
|
+
})
|
|
149
|
+
|
|
150
|
+
return { headers, items, filteredItems, totalItems, checkedItems, search, statusFilter, statusOptions, page, itemsPerPage, paginatedItems, mdiCheckCircle, mdiClockOutline, mdiProgressClock }
|
|
95
151
|
},
|
|
96
152
|
template: `
|
|
97
|
-
<
|
|
98
|
-
class="
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
153
|
+
<div class="audit-dashboard pa-4">
|
|
154
|
+
<div class="d-flex flex-wrap align-center justify-space-between mb-6">
|
|
155
|
+
<div class="d-flex flex-wrap">
|
|
156
|
+
<v-select
|
|
157
|
+
v-model="statusFilter"
|
|
158
|
+
:items="statusOptions"
|
|
159
|
+
item-title="title"
|
|
160
|
+
item-value="value"
|
|
161
|
+
label="Filtrer par statut"
|
|
162
|
+
hide-details
|
|
163
|
+
class="mr-2 mb-2"
|
|
164
|
+
style="max-width: 250px; min-width: 250px"
|
|
165
|
+
density="comfortable"
|
|
166
|
+
variant="outlined"
|
|
167
|
+
></v-select>
|
|
168
|
+
|
|
169
|
+
<v-text-field
|
|
170
|
+
v-model="search"
|
|
171
|
+
label="Rechercher un composant"
|
|
172
|
+
append-inner-icon="mdi-magnify"
|
|
173
|
+
single-line
|
|
174
|
+
hide-details
|
|
175
|
+
class="mb-2"
|
|
176
|
+
style="max-width: 250px; min-width: 250px"
|
|
177
|
+
density="comfortable"
|
|
178
|
+
variant="outlined"
|
|
179
|
+
></v-text-field>
|
|
180
|
+
</div>
|
|
181
|
+
</div>
|
|
104
182
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
183
|
+
<div class="component-grid mb-6">
|
|
184
|
+
|
|
185
|
+
<v-row>
|
|
186
|
+
<v-col
|
|
187
|
+
v-for="item in paginatedItems"
|
|
188
|
+
:key="item.composant"
|
|
189
|
+
cols="12"
|
|
190
|
+
sm="6"
|
|
191
|
+
md="4"
|
|
192
|
+
lg="3"
|
|
193
|
+
>
|
|
194
|
+
<v-card
|
|
195
|
+
class="component-card"
|
|
196
|
+
:class="{ 'audited': item.status === 'Audité', 'in-progress': item.status === 'En cours', 'not-audited': item.status === 'Non audité' }"
|
|
197
|
+
elevation="2"
|
|
198
|
+
height="100%"
|
|
199
|
+
>
|
|
200
|
+
<v-card-item>
|
|
201
|
+
<v-card-title class="text-truncate">{{ item.composant }}</v-card-title>
|
|
202
|
+
</v-card-item>
|
|
203
|
+
|
|
204
|
+
<v-card-text>
|
|
205
|
+
<v-chip
|
|
206
|
+
:color="item.status === 'Audité' ? '#56c271' : (item.status === 'En cours' ? '#a05bb6' : '#f0b323')"
|
|
207
|
+
variant="flat"
|
|
208
|
+
class="mb-2"
|
|
209
|
+
>
|
|
210
|
+
{{ item.status }}
|
|
211
|
+
</v-chip>
|
|
212
|
+
</v-card-text>
|
|
213
|
+
</v-card>
|
|
214
|
+
</v-col>
|
|
215
|
+
</v-row>
|
|
216
|
+
|
|
217
|
+
<div class="d-flex justify-center mt-4">
|
|
218
|
+
<v-pagination
|
|
219
|
+
v-model="page"
|
|
220
|
+
:length="Math.ceil(filteredItems.length / itemsPerPage)"
|
|
221
|
+
total-visible="7"
|
|
222
|
+
rounded
|
|
223
|
+
></v-pagination>
|
|
224
|
+
</div>
|
|
225
|
+
|
|
226
|
+
<div class="pa-2 text-caption text-right">
|
|
227
|
+
Dernière mise à jour: 20/06/2025
|
|
228
|
+
</div>
|
|
229
|
+
</div>
|
|
230
|
+
</div>
|
|
130
231
|
`,
|
|
131
232
|
}
|
|
132
233
|
},
|
|
@@ -1,31 +1,271 @@
|
|
|
1
|
-
import {Meta} from '@storybook/
|
|
1
|
+
import {Meta} from '@storybook/blocks';
|
|
2
2
|
|
|
3
3
|
<Meta title="Accessibilité/Introduction"/>
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
<style>
|
|
7
|
+
{
|
|
8
|
+
/* Styles globaux pour améliorer l'apparence */
|
|
9
|
+
`
|
|
10
|
+
.accessibility-header {
|
|
11
|
+
color: white;
|
|
12
|
+
padding: 2rem;
|
|
13
|
+
border-radius: 8px;
|
|
14
|
+
margin-bottom: 2rem;
|
|
15
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.accessibility-header h1 {
|
|
19
|
+
margin-top: 0;
|
|
20
|
+
font-size: 2.5rem;
|
|
21
|
+
font-weight: 700;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.accessibility-header p {
|
|
25
|
+
font-size: 1.1rem;
|
|
26
|
+
margin-bottom: 0;
|
|
27
|
+
opacity: 0.9;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.key-element {
|
|
31
|
+
background-color: #f8f9fa;
|
|
32
|
+
border-left: 4px solid #0c419a;
|
|
33
|
+
padding: 1.5rem;
|
|
34
|
+
margin-bottom: 1.5rem;
|
|
35
|
+
border-radius: 4px;
|
|
36
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
|
|
37
|
+
transition: transform 0.2s ease, box-shadow 0.2s ease;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.key-element:hover {
|
|
41
|
+
transform: translateY(-2px);
|
|
42
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.key-element h3 {
|
|
46
|
+
color: #0c419a;
|
|
47
|
+
margin-top: 0;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.info-section {
|
|
51
|
+
margin: 3rem 0 2rem;
|
|
52
|
+
padding: 1.5rem;
|
|
53
|
+
background-color: #fff;
|
|
54
|
+
border-radius: 8px;
|
|
55
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
|
|
56
|
+
border: none;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.info-section h2 {
|
|
60
|
+
padding-bottom: 0.5rem;
|
|
61
|
+
margin-top: 0;
|
|
62
|
+
}
|
|
7
63
|
|
|
8
|
-
|
|
64
|
+
.accessibility-header-approche {
|
|
65
|
+
position: relative;
|
|
66
|
+
padding-bottom: 0.75rem;
|
|
67
|
+
display: inline-block;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.accessibility-header-approche::after {
|
|
71
|
+
content: '';
|
|
72
|
+
position: absolute;
|
|
73
|
+
bottom: -2px;
|
|
74
|
+
left: 0;
|
|
75
|
+
width: 80px;
|
|
76
|
+
height: 4px;
|
|
77
|
+
|
|
78
|
+
border-radius: 3px;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.contact-card {
|
|
82
|
+
background-color: #f0f7ff;
|
|
83
|
+
border-radius: 8px;
|
|
84
|
+
padding: 1.5rem;
|
|
85
|
+
margin: 2rem 0;
|
|
86
|
+
display: flex;
|
|
87
|
+
align-items: center;
|
|
88
|
+
gap: 1rem;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.contact-icon {
|
|
92
|
+
font-size: 2rem;
|
|
93
|
+
color: #0c419a;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.resources-grid {
|
|
97
|
+
display: grid;
|
|
98
|
+
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
|
|
99
|
+
gap: 1.5rem;
|
|
100
|
+
margin: 2rem 0;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.resource-card {
|
|
104
|
+
background-color: #fff;
|
|
105
|
+
border-radius: 8px;
|
|
106
|
+
padding: 1.5rem;
|
|
107
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
|
|
108
|
+
transition: transform 0.2s ease, box-shadow 0.2s ease;
|
|
109
|
+
display: flex;
|
|
110
|
+
flex-direction: column;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.resource-card:hover {
|
|
114
|
+
transform: translateY(-2px);
|
|
115
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.resource-card h3 {
|
|
119
|
+
margin-top: 0;
|
|
120
|
+
color: #0c419a;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.resource-card a {
|
|
124
|
+
margin-top: auto;
|
|
125
|
+
text-decoration: none;
|
|
126
|
+
font-weight: 500;
|
|
127
|
+
color: #0c419a;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.resource-card a:hover {
|
|
131
|
+
text-decoration: underline;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.alert {
|
|
135
|
+
background-color: #e3e8f2;
|
|
136
|
+
border-left: 4px solid #0c419a;
|
|
137
|
+
padding: 1rem 1.5rem;
|
|
138
|
+
margin: 1.5rem 0;
|
|
139
|
+
border-radius: 4px;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.alert-title {
|
|
143
|
+
color: #0c419a;
|
|
144
|
+
font-weight: 600;
|
|
145
|
+
margin: 0 0 0.5rem 0;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.process-steps {
|
|
149
|
+
counter-reset: step;
|
|
150
|
+
margin: 2rem 0;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.process-step {
|
|
154
|
+
position: relative;
|
|
155
|
+
padding-left: 3rem;
|
|
156
|
+
margin-bottom: 1.5rem;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.process-step::before {
|
|
160
|
+
counter-increment: step;
|
|
161
|
+
content: counter(step);
|
|
162
|
+
position: absolute;
|
|
163
|
+
left: 0;
|
|
164
|
+
top: 0;
|
|
165
|
+
width: 2rem;
|
|
166
|
+
height: 2rem;
|
|
167
|
+
background-color: #0c419a;
|
|
168
|
+
color: white;
|
|
169
|
+
border-radius: 50%;
|
|
170
|
+
display: flex;
|
|
171
|
+
align-items: center;
|
|
172
|
+
justify-content: center;
|
|
173
|
+
font-weight: bold;
|
|
174
|
+
}
|
|
175
|
+
`
|
|
176
|
+
}
|
|
177
|
+
</style>
|
|
9
178
|
|
|
10
|
-
-
|
|
11
|
-
|
|
12
|
-
|
|
179
|
+
<div className="accessibility-header">
|
|
180
|
+
<h1>Accessibilité numérique</h1>
|
|
181
|
+
<p>Construire des interfaces inclusives et conformes aux normes réglementaires</p>
|
|
182
|
+
</div>
|
|
13
183
|
|
|
14
|
-
|
|
15
|
-
C'est pourquoi et sauf exception motivée, toute nouvelle demande d'audit d'accessibilité numérique sera soumise à la validation de critères d'éligibilité définis dans le kit de pré-audit.<br/>
|
|
16
|
-
L'objectif ici est d'anticiper les erreurs et diluer l'effort de mise en conformité tout au long du processus de fabrication afin de ne pas attendre le résultat de l'audit pour réécrire le produit.<br/>
|
|
17
|
-
Une fois le produit éligible, l'équipe experte de la Filière Digital réalise un audit et communique à l'équipe-produit un rapport comportant des recommandations. Si le produit utilise le DS CNAM et que des problèmes sont identifiés associés à ce dernier, les évolutions seront portés directement par la Filière Digital, en cas contraire il est demandé à l'équipe-produit de corriger les anomalies et de mettre à jour en autonomie le rapport d'audit pour atteindre la pleine conformité.
|
|
184
|
+
<h2 className="accessibility-header-approche">Notre approche de l'accessibilité</h2>
|
|
18
185
|
|
|
19
|
-
|
|
186
|
+
Pour répondre aux objectifs de mise en conformité des interfaces utilisateurs avec les normes réglementaires de l'accessibilité numérique, la Filière Digital propose une offre accessibilité numérique basée sur trois éléments clés :
|
|
20
187
|
|
|
21
|
-
|
|
188
|
+
<div className="key-element">
|
|
189
|
+
<h3>🧩 Design System accessible</h3>
|
|
190
|
+
<p>Mise à disposition d'un Design System performant pour des produits web embarquant déjà les bonnes pratiques d'accessibilité.</p>
|
|
191
|
+
</div>
|
|
22
192
|
|
|
23
|
-
|
|
193
|
+
<div className="key-element">
|
|
194
|
+
<h3>📚 Documentation d'aide</h3>
|
|
195
|
+
<p>Documentation spécifique d'aide à la conception comportant des outils d'autocontrôle pour faciliter la mise en conformité.</p>
|
|
196
|
+
</div>
|
|
24
197
|
|
|
25
|
-
|
|
198
|
+
<div className="key-element" style={{ marginBottom: '3rem', borderBottom: 'none' }}>
|
|
199
|
+
<h3>👥 Accompagnement</h3>
|
|
200
|
+
<p>Accompagnement personnalisé des équipes-produits sur le sujet de l'accessibilité numérique.</p>
|
|
201
|
+
</div>
|
|
26
202
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
203
|
+
<div className="info-section">
|
|
204
|
+
<h2 className="accessibility-header-approche">Notre démarche</h2>
|
|
205
|
+
|
|
206
|
+
<p>Face à l'ampleur du parc numérique de la Cnam et pour atteindre puis maintenir dans la durée la conformité requise par la DINUM, nous pensons que la prise de conscience des enjeux de l'accessibilité numérique doit être partagée entre tous les acteurs, de la conception à la fabrication des produits numériques.</p>
|
|
207
|
+
|
|
208
|
+
<div className="process-steps">
|
|
209
|
+
<div className="process-step">
|
|
210
|
+
<h4>Validation des critères d'éligibilité</h4>
|
|
211
|
+
<p>Toute nouvelle demande d'audit d'accessibilité numérique sera soumise à la validation de critères d'éligibilité définis dans le kit de pré-audit, sauf exception motivée.</p>
|
|
212
|
+
</div>
|
|
213
|
+
|
|
214
|
+
<div className="process-step">
|
|
215
|
+
<h4>Anticipation des erreurs</h4>
|
|
216
|
+
<p>L'objectif est d'anticiper les erreurs et diluer l'effort de mise en conformité tout au long du processus de fabrication afin de ne pas attendre le résultat de l'audit pour réécrire le produit.</p>
|
|
217
|
+
</div>
|
|
218
|
+
|
|
219
|
+
<div className="process-step">
|
|
220
|
+
<h4>Audit et recommandations</h4>
|
|
221
|
+
<p>Une fois le produit éligible, l'équipe experte de la Filière Digital réalise un audit et communique à l'équipe-produit un rapport comportant des recommandations.</p>
|
|
222
|
+
</div>
|
|
223
|
+
|
|
224
|
+
<div className="process-step">
|
|
225
|
+
<h4>Corrections et mise en conformité</h4>
|
|
226
|
+
<p>Si le produit utilise le DS CNAM et que des problèmes sont identifiés associés à ce dernier, les évolutions seront portées directement par la Filière Digital. Dans le cas contraire, il est demandé à l'équipe-produit de corriger les anomalies et de mettre à jour en autonomie le rapport d'audit pour atteindre la pleine conformité.</p>
|
|
227
|
+
</div>
|
|
228
|
+
</div>
|
|
229
|
+
|
|
230
|
+
<div className="alert">
|
|
231
|
+
<h4 className="alert-title">À noter</h4>
|
|
232
|
+
<p>Conscient que tous les produits ne peuvent pas utiliser dans l'immédiat le Design System thème Cnam ou thème Portail Agent, nous avons conçu le kit de pré-audit pour qu'il puisse fonctionner en autonomie.</p>
|
|
233
|
+
</div>
|
|
234
|
+
</div>
|
|
30
235
|
|
|
31
|
-
|
|
236
|
+
<div className="contact-card">
|
|
237
|
+
<div className="contact-icon">📧</div>
|
|
238
|
+
<div>
|
|
239
|
+
<h3>Besoin d'accompagnement ?</h3>
|
|
240
|
+
<p>Si vous avez besoin d'un accompagnement sur le sujet, merci de prendre contact avec <a href="mailto:valentin.becquet@assurance-maladie.fr">valentin.becquet@assurance-maladie.fr</a>.</p>
|
|
241
|
+
<p>Pour toute remontée de problème liée à l'accessibilité, veuillez <a href="https://github.com/assurance-maladie-digital/design-system-v3/issues/new?template=accessibility.md">signaler un problème d'accessibilité</a>.</p>
|
|
242
|
+
</div>
|
|
243
|
+
</div>
|
|
244
|
+
|
|
245
|
+
<h2 className="accessibility-header-approche">Ressources disponibles</h2>
|
|
246
|
+
|
|
247
|
+
<div className="resources-grid">
|
|
248
|
+
<div className="resource-card">
|
|
249
|
+
<h3>Aculturation</h3>
|
|
250
|
+
<p>Sensibilisation à l'accessibilité numérique et bonnes pratiques pour la conception de produits accessibles.</p>
|
|
251
|
+
<a href="/?path=/docs/accessibilité-aculturation-audit-du-design-system--docs">Découvrir →</a>
|
|
252
|
+
</div>
|
|
253
|
+
|
|
254
|
+
<div className="resource-card">
|
|
255
|
+
<h3>Kit du Pré-Audit</h3>
|
|
256
|
+
<p>Outils et méthodologies pour préparer votre produit à l'audit d'accessibilité.</p>
|
|
257
|
+
<a href="/?path=/docs/accessibilité-kit-de-pré-audit-introduction--docs">Explorer →</a>
|
|
258
|
+
</div>
|
|
259
|
+
|
|
260
|
+
<div className="resource-card">
|
|
261
|
+
<h3>Audit RGAA</h3>
|
|
262
|
+
<p>Informations sur le processus d'audit et les critères d'évaluation selon le RGAA.</p>
|
|
263
|
+
<a href="/?path=/docs/accessibilité-audit-rgaa--docs">Consulter →</a>
|
|
264
|
+
</div>
|
|
265
|
+
</div>
|
|
266
|
+
|
|
267
|
+
<div className="info-section">
|
|
268
|
+
<h2 className="accessibility-header-approche">Audit du Design System</h2>
|
|
269
|
+
<p>Le Design System Synapse réalise un audit de conformité au <abbr title="Référentiel Général d'Amélioration de l'Accessibilité">RGAA</abbr> facilitant la prise en compte de l'accessibilité dans vos produits.</p>
|
|
270
|
+
<p>Pour en savoir plus, vous pouvez consulter <a href="/docs/accessibilité-aculturation-audit-du-design-system--docs">la page dédiée à l'audit d'accessibilité du Design System</a>.</p>
|
|
271
|
+
</div>
|