@cnamts/synapse 1.0.21 → 1.0.22
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/dist/{DateFilter-uN8OURoP.js → DateFilter-B5n-ZkLi.js} +29 -24
- package/dist/{NumberFilter-sm1dQNQi.js → NumberFilter-CtiZ9uj8.js} +1 -1
- package/dist/{PeriodFilter-Cklsxnh9.js → PeriodFilter-DzqiMb-b.js} +1 -1
- package/dist/{SelectFilter-CWefj27Z.js → SelectFilter-BOYlF7rX.js} +1 -1
- package/dist/{TextFilter-Ddyj885L.js → TextFilter-BOFRNfcX.js} +1 -1
- package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +7399 -5967
- package/dist/components/Amelipro/AmeliproBtn/AmeliproBtn.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproCallback/AmeliproCallback.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarousel.d.ts +10 -14
- package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarouselItem/AmeliproCarouselItem.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproFooter/AmeliproFooter.d.ts +8 -8
- package/dist/components/Amelipro/AmeliproHeader/AmeliproHeader.d.ts +3 -3
- package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBar.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/AmeliproHeaderBrandSection.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproIcon/AmeliproIcon.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.d.ts +16 -20
- package/dist/components/Amelipro/AmeliproMenu/AmeliproMenu.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproPagination/AmeliproPaginationBtn/AmeliproPaginationBtn.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproPatientBanner/AmeliproPatientBanner.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.d.ts +1610 -1354
- package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.d.ts +2411 -2027
- package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +8889 -7327
- package/dist/components/Amelipro/AmeliproStateTile/AmeliproStateTile.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproStepper/AmeliproStepper.d.ts +2 -6
- package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +8888 -7334
- package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +951 -839
- package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +1613 -1357
- package/dist/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.d.ts +223 -203
- package/dist/components/Amelipro/AmeliproTransmission/AmeliproTransmission.d.ts +3 -3
- package/dist/components/Amelipro/StructureMenu/StructureTabs/StructureTabs.d.ts +3 -7
- package/dist/components/CollapsibleList/CollapsibleList.d.ts +4 -1
- package/dist/components/CookieBanner/CookieBanner.d.ts +303 -273
- package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +1297 -1156
- package/dist/components/CookiesSelection/CookiesSelection.d.ts +404 -377
- package/dist/components/Customs/Selects/SelectBtnField/SelectBtnField.d.ts +1 -1
- package/dist/components/Customs/Selects/SyAutocomplete/SyAutocomplete.d.ts +1088 -847
- package/dist/components/Customs/Selects/SyInputSelect/SyInputSelect.d.ts +1 -1
- package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +515 -321
- package/dist/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.d.ts +41 -39
- package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +921 -801
- package/dist/components/Customs/SyForm/SyForm.d.ts +356 -348
- package/dist/components/Customs/SyPagination/SyPagination.d.ts +11 -1
- package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +907 -795
- package/dist/components/Customs/SyTextField/SyTextField.d.ts +1629 -1365
- package/dist/components/DataList/DataList.d.ts +1 -1
- package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +3868 -3123
- package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +1946 -1562
- package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +833 -687
- package/dist/components/DialogBox/DialogBox.d.ts +482 -416
- package/dist/components/DownloadBtn/config.d.ts +1 -1
- package/dist/components/ErrorPage/ErrorPage.d.ts +4 -0
- package/dist/components/FileList/UploadItem/locales.d.ts +4 -0
- package/dist/components/FileUpload/FileUpload.d.ts +4 -4
- package/dist/components/FileUpload/locales.d.ts +1 -0
- package/dist/components/FilterSideBar/FilterSideBar.d.ts +418 -366
- package/dist/components/FooterBar/FooterBar.d.ts +13 -1
- package/dist/components/FooterBar/locales.d.ts +1 -0
- package/dist/components/FooterBar/types.d.ts +1 -0
- package/dist/components/HeaderBar/HeaderBar.d.ts +1 -0
- package/dist/components/HeaderBar/HeaderLogo/HeaderLogo.d.ts +1 -0
- package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +3 -6
- package/dist/components/HeaderToolbar/HeaderToolbar.d.ts +1031 -643
- package/dist/components/LangBtn/LangBtn.d.ts +277 -239
- package/dist/components/LogoBrandSection/LogoBrandSection.d.ts +4 -0
- package/dist/components/MaintenancePage/MaintenancePage.d.ts +16 -1
- package/dist/components/NirField/NirField.d.ts +1659 -1371
- package/dist/components/NotFoundPage/NotFoundPage.d.ts +9 -3
- package/dist/components/PageContainer/PageContainer.d.ts +3 -1
- package/dist/components/PasswordField/PasswordField.d.ts +1 -1
- package/dist/components/PeriodField/PeriodField.d.ts +7712 -6216
- package/dist/components/PhoneField/PhoneField.d.ts +831 -687
- package/dist/components/RangeField/RangeSlider/RangeSlider.d.ts +4 -12
- package/dist/components/StatusPage/StatusPage.d.ts +12 -1
- package/dist/components/SubHeader/SubHeader.d.ts +2 -0
- package/dist/components/SyAlert/SyAlert.d.ts +74 -70
- package/dist/components/SyBtnMenu/SyBtnMenu.d.ts +10 -1
- package/dist/components/SyHeading/SyHeading.d.ts +20 -0
- package/dist/components/SyTextArea/SyTextArea.d.ts +476 -420
- package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +759 -468
- package/dist/components/Tables/SyTable/SyTable.d.ts +761 -470
- package/dist/components/Tables/common/SyTableFilter.d.ts +1 -1
- package/dist/components/Tables/common/SyTablePagination.d.ts +269 -170
- package/dist/components/Tables/common/filters/DateFilter.d.ts +10 -1
- package/dist/components/Tables/common/filters/NumberFilter.d.ts +1 -1
- package/dist/components/Tables/common/filters/PeriodFilter.d.ts +1 -1
- package/dist/components/Tables/common/filters/SelectFilter.d.ts +1 -1
- package/dist/components/Tables/common/filters/TextFilter.d.ts +1 -1
- package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +166 -138
- package/dist/components/Tables/common/types.d.ts +2 -0
- package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +24 -1211
- package/dist/components/UserMenuBtn/UserMenuBtn.d.ts +1 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/types.d.ts +2 -0
- package/dist/design-system-v3.js +70 -69
- package/dist/design-system-v3.umd.cjs +265 -265
- package/dist/designTokens/tokens/amelipro/apLightTheme.d.ts +26 -14
- package/dist/designTokens/tokens/amelipro/apSemantic.d.ts +19 -13
- package/dist/designTokens/tokens/cnam/cnamLightTheme.d.ts +28 -15
- package/dist/designTokens/tokens/cnam/cnamSemantic.d.ts +20 -13
- package/dist/designTokens/tokens/pa/paLightTheme.d.ts +26 -15
- package/dist/designTokens/tokens/pa/paSemantic.d.ts +19 -13
- package/dist/main-CEl4J8_T.js +37241 -0
- package/dist/style.css +1 -1
- package/dist/vuetifyConfig.d.ts +14 -14
- package/package.json +13 -7
- package/src/assets/amelipro/img/logo-amelipro.svg +9 -0
- package/src/assets/apTokens.scss +53 -17
- package/src/assets/overrides/_icons.scss +12 -2
- package/src/assets/overrides/_tooltips.scss +5 -6
- package/src/assets/overrides/_typography.scss +17 -2
- package/src/assets/overrides/_utilities.scss +49 -3
- package/src/assets/tokens.scss +53 -17
- package/src/components/Accordion/accessibilite/Accessibility.mdx +5 -4
- package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/AmeliproAccordionTemplate.vue +2 -2
- package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/__tests__/__snapshots__/AmeliproAccordionTemplate.spec.ts.snap +0 -2
- package/src/components/Amelipro/AmeliproAccordionFrieze/AmeliproAccordionFrieze.vue +2 -2
- package/src/components/Amelipro/AmeliproAccordionFrieze/__tests__/__snapshots__/AmeliproAccordionFrieze.spec.ts.snap +14 -56
- package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.vue +1 -1
- package/src/components/Amelipro/AmeliproAccordionList/__tests__/__snapshots__/AmeliproAccordionList.spec.ts.snap +15 -23
- package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.vue +1 -1
- package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/__snapshots__/AmeliproAccordionResultList.spec.ts.snap +15 -3
- package/src/components/Amelipro/AmeliproCarousel/__tests__/__snapshots__/AmeliproCarousel.spec.ts.snap +0 -2
- package/src/components/Amelipro/AmeliproClickableTile/tests/__snapshots__/AmeliproClickableTile.spec.ts.snap +0 -98
- package/src/components/Amelipro/AmeliproContentLayout/AmeliproContentLayout.mdx +1 -1
- package/src/components/Amelipro/AmeliproContentLayout/AmeliproContentLayout.stories.ts +5 -16
- package/src/components/Amelipro/AmeliproCopyBtn/AmeliproCopyBtn.mdx +3 -1
- package/src/components/Amelipro/AmeliproCopyBtn/AmeliproCopyBtn.stories.ts +7 -0
- package/src/components/Amelipro/AmeliproDentalChart/AmeliproTooth/AmeliproTooth.vue +0 -1
- package/src/components/Amelipro/AmeliproDentalChart/AmeliproTooth/tests/__snapshots__/AmeliproTooth.spec.ts.snap +0 -1
- package/src/components/Amelipro/AmeliproDentalChart/tests/__snapshots__/AmeliproDentalChart.spec.ts.snap +0 -52
- package/src/components/Amelipro/AmeliproDialog/__tests__/__snapshots__/AmeliproDialog.spec.ts.snap +6 -0
- package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.mdx +3 -1
- package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.stories.ts +19 -0
- package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.vue +2 -2
- package/src/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.vue +3 -4
- package/src/components/Amelipro/AmeliproFirstLogin/__tests__/__snapshots__/AmeliproFirstLogin.spec.ts.snap +2 -13
- package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.mdx +3 -1
- package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.stories.ts +7 -0
- package/src/components/Amelipro/AmeliproMenu/__tests__/__snapshots__/AmeliproMenu.spec.ts.snap +8 -0
- package/src/components/Amelipro/AmeliproPatientLogged/__tests__/__snapshots__/AmeliproPatientLogged.spec.ts.snap +9 -2
- package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/__snapshots__/AmeliproPostalAddressCityRow.spec.ts.snap +28 -10
- package/src/components/Amelipro/AmeliproPostalAddressField/__tests__/__snapshots__/AmeliproPostalAddressField.spec.ts.snap +44 -8
- package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.vue +1 -1
- package/src/components/Amelipro/AmeliproResultList/__tests__/__snapshots__/AmeliproResultList.spec.ts.snap +15 -3
- package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +1 -1
- package/src/components/Amelipro/AmeliproTable/__tests__/__snapshots__/AmeliproTable.spec.ts.snap +0 -1
- package/src/components/Amelipro/AmeliproTooltips/__tests__/__snapshots__/AmeliproTooltips.spec.ts.snap +6 -0
- package/src/components/Amelipro/AmeliproUpload/__tests__/__snapshots__/AmeliproUpload.spec.ts.snap +2 -4
- package/src/components/Amelipro/StructureMenu/StructureList/__tests__/__snapshots__/StructureList.spec.ts.snap +0 -2
- package/src/components/Amelipro/UserMenu/__tests__/__snapshots__/UserMenu.spec.ts.snap +8 -0
- package/src/components/BackBtn/BackBtn.vue +1 -1
- package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +36 -18
- package/src/components/ChipList/ChipList.vue +4 -2
- package/src/components/CollapsibleList/CollapsibleList.stories.ts +8 -3
- package/src/components/CollapsibleList/CollapsibleList.vue +14 -6
- package/src/components/CollapsibleList/accessibilite/Accessibility.mdx +19 -6
- package/src/components/CollapsibleList/tests/CollapsibleList.a11y.spec.ts +1 -0
- package/src/components/CollapsibleList/tests/CollapsibleList.spec.ts +2 -0
- package/src/components/CookieBanner/CookieBanner.stories.ts +10 -0
- package/src/components/CookieBanner/CookieBanner.vue +15 -5
- package/src/components/CookieBanner/accessibilite/Accessibility.mdx +9 -0
- package/src/components/CookieBanner/tests/CookieBanner.spec.ts +10 -2
- package/src/components/CookieBanner/tests/__snapshots__/CookieBanner.spec.ts.snap +21 -15
- package/src/components/CookiesSelection/CookiesInformation/CookiesInformation.vue +17 -8
- package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.a11y.spec.ts +1 -0
- package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.spec.ts +5 -0
- package/src/components/CookiesSelection/CookiesSelection.vue +7 -2
- package/src/components/CookiesSelection/tests/CookiesSelection.a11y.spec.ts +1 -0
- package/src/components/CookiesSelection/tests/CookiesSelection.spec.ts +5 -0
- package/src/components/CookiesSelection/tests/__snapshots__/CookiesSelection.spec.ts.snap +21 -15
- package/src/components/CopyBtn/CopyBtn.vue +6 -4
- package/src/components/CopyBtn/accessibilite/Accessibility.mdx +82 -11
- package/src/components/CopyBtn/tests/__snapshots__/CopyBtn.spec.ts.snap +5 -1
- package/src/components/Customs/Selects/SyInputSelect/SyInputSelect.stories.ts +4 -10
- package/src/components/Customs/Selects/SySelect/SySelect.mdx +0 -1
- package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +10 -10
- package/src/components/Customs/Selects/SySelect/SySelect.vue +17 -0
- package/src/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.ts +1 -1
- package/src/components/Customs/Selects/SySelect/tests/SySelect.a11y.spec.ts +1 -3
- package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +72 -0
- package/src/components/Customs/SyCheckbox/SyCheckbox.vue +1 -1
- package/src/components/Customs/SyIcon/SyIcon.a11y.spec.ts +31 -2
- package/src/components/Customs/SyIcon/SyIcon.vue +9 -5
- package/src/components/Customs/SyPagination/SyPagination.stories.ts +14 -2
- package/src/components/Customs/SyPagination/SyPagination.vue +20 -5
- package/src/components/Customs/SyPagination/accessibilite/Accessibility.mdx +79 -8
- package/src/components/Customs/SyPagination/tests/SyPagination.a11y.spec.ts +53 -0
- package/src/components/Customs/SyPagination/tests/SyPagination.spec.ts +12 -0
- package/src/components/Customs/SyTextField/SyTextField.stories.ts +4 -0
- package/src/components/Customs/SyTextField/SyTextField.vue +39 -5
- package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +28 -3
- package/src/components/DatePicker/CalendarMode/DatePicker.vue +20 -8
- package/src/components/DatePicker/CalendarMode/tests/DatePicker.spec.ts +9 -3
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +1 -1
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +70 -47
- package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.a11y.spec.ts +34 -0
- package/src/components/DatePicker/DateTextInput/tests/DateTextInput.a11y.spec.ts +27 -0
- package/src/components/DatePicker/docExamples/BidirectionalComplexValidation.vue +23 -9
- package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +21 -8
- package/src/components/DatePicker/docExamples/DatePickerValidationExamples.vue +50 -22
- package/src/components/DatePicker/playground/ComplexDatePickerPlayground.vue +48 -10
- package/src/components/DatePicker/playground/DatePickerHolidayRule.vue +16 -3
- package/src/components/DialogBox/DialogBox.stories.ts +13 -0
- package/src/components/DialogBox/DialogBox.vue +12 -5
- package/src/components/DialogBox/accessibilite/Accessibility.mdx +27 -7
- package/src/components/DialogBox/tests/DialogBox.a11y.spec.ts +1 -0
- package/src/components/DialogBox/tests/DialogBox.spec.ts +40 -6
- package/src/components/DownloadBtn/accessibilite/Accessibility.mdx +73 -11
- package/src/components/DownloadBtn/config.ts +1 -1
- package/src/components/ErrorPage/ErrorPage.stories.ts +82 -47
- package/src/components/ErrorPage/ErrorPage.vue +6 -0
- package/src/components/ErrorPage/accessibilite/Accessibility.mdx +15 -0
- package/src/components/ErrorPage/tests/__snapshots__/ErrorPage.spec.ts.snap +2 -0
- package/src/components/ExternalLinks/tests/__snapshots__/ExternalLinks.spec.ts.snap +13 -2
- package/src/components/FileList/FileList.stories.ts +4 -0
- package/src/components/FileList/UploadItem/UploadItem.vue +8 -3
- package/src/components/FileList/UploadItem/locales.ts +10 -0
- package/src/components/FileList/accessibilite/Accessibility.mdx +55 -7
- package/src/components/FileUpload/FileUpload.vue +60 -37
- package/src/components/FileUpload/FileUploadContent.vue +1 -1
- package/src/components/FileUpload/accessibilite/Accessibility.mdx +48 -5
- package/src/components/FileUpload/locales.ts +1 -0
- package/src/components/FileUpload/tests/FileUpload.spec.ts +14 -14
- package/src/components/FilterInline/FilterInline.stories.ts +0 -15
- package/src/components/FilterInline/FilterInline.vue +1 -0
- package/src/components/FilterInline/accessibilite/Accessibility.mdx +70 -7
- package/src/components/FilterInline/tests/__snapshots__/FilterInline.spec.ts.snap +3 -3
- package/src/components/FilterSideBar/FilterSideBar.stories.ts +0 -3
- package/src/components/FilterSideBar/FilterSideBar.vue +2 -1
- package/src/components/FilterSideBar/accessibilite/Accessibility.mdx +70 -9
- package/src/components/FooterBar/FooterBar.stories.ts +298 -34
- package/src/components/FooterBar/FooterBar.vue +67 -9
- package/src/components/FooterBar/config.ts +2 -2
- package/src/components/FooterBar/locales.ts +1 -0
- package/src/components/FooterBar/tests/FooterBarConfig.spec.ts +1 -1
- package/src/components/FooterBar/tests/__snapshots__/FooterBar.spec.ts.snap +6 -25
- package/src/components/FooterBar/types.d.ts +1 -0
- package/src/components/HeaderBar/HeaderBar.stories.ts +23 -1
- package/src/components/HeaderBar/HeaderBar.vue +4 -0
- package/src/components/HeaderBar/HeaderLogo/HeaderLogo.vue +7 -2
- package/src/components/HeaderBar/HeaderLogo/tests/HeaderLogo.spec.ts +5 -0
- package/src/components/HeaderBar/accessibilite/Accessibility.mdx +24 -5
- package/src/components/HeaderBar/tests/HeaderBar.a11y.spec.ts +1 -0
- package/src/components/HeaderBar/tests/HeaderBar.spec.ts +3 -0
- package/src/components/HeaderNavigationBar/HeaderNavigationBar.stories.ts +4 -0
- package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +2 -0
- package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.spec.ts +3 -0
- package/src/components/LogoBrandSection/LogoBrandSection.stories.ts +22 -0
- package/src/components/LogoBrandSection/LogoBrandSection.vue +13 -5
- package/src/components/LogoBrandSection/tests/LogoBrandSection.a11y.spec.ts +2 -0
- package/src/components/LogoBrandSection/tests/LogoBrandSection.spec.ts +44 -0
- package/src/components/LogoBrandSection/tests/__snapshots__/LogoBrandSection.spec.ts.snap +2 -0
- package/src/components/MaintenancePage/MaintenancePage.vue +33 -6
- package/src/components/MaintenancePage/accessibilite/Accessibility.mdx +3 -1
- package/src/components/MaintenancePage/tests/MaintenancePage.a11y.spec.ts +3 -2
- package/src/components/MaintenancePage/tests/MaintenancePage.spec.ts +18 -0
- package/src/components/MaintenancePage/tests/__snapshots__/MaintenancePage.spec.ts.snap +2 -0
- package/src/components/NotFoundPage/NotFoundPage.stories.ts +1 -1
- package/src/components/NotFoundPage/NotFoundPage.vue +16 -5
- package/src/components/NotFoundPage/accessibilite/Accessibility.mdx +2 -0
- package/src/components/NotFoundPage/tests/NotFoundPage.a11y.spec.ts +49 -0
- package/src/components/NotFoundPage/tests/NotFoundPage.spec.ts +25 -2
- package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +2 -0
- package/src/components/PageContainer/PageContainer.stories.ts +47 -0
- package/src/components/PageContainer/PageContainer.vue +4 -2
- package/src/components/PageContainer/accessibilite/Accessibility.mdx +31 -17
- package/src/components/PaginatedTable/PaginatedTable.mdx +3 -3
- package/src/components/PaginatedTable/PaginatedTable.stories.ts +9 -1
- package/src/components/PeriodField/PeriodField.vue +4 -0
- package/src/components/PeriodField/tests/PeriodField.a11y.spec.ts +10 -1
- package/src/components/PhoneField/PhoneField.stories.ts +73 -35
- package/src/components/PhoneField/PhoneField.vue +152 -83
- package/src/components/PhoneField/accessibilite/Accessibility.mdx +306 -9
- package/src/components/PhoneField/indicatifs.ts +2 -2
- package/src/components/PhoneField/tests/PhoneField.a11y.spec.ts +47 -0
- package/src/components/PhoneField/tests/PhoneField.spec.ts +82 -5
- package/src/components/SearchListField/SearchListField.vue +1 -1
- package/src/components/SearchListField/accessibilite/Accessibility.mdx +69 -9
- package/src/components/SearchListField/tests/SearchListField.a11y.spec.ts +37 -0
- package/src/components/SocialMediaLinks/SocialMediaLinks.vue +1 -1
- package/src/components/StatusPage/StatusPage.mdx +10 -1
- package/src/components/StatusPage/StatusPage.stories.ts +43 -0
- package/src/components/StatusPage/StatusPage.vue +26 -4
- package/src/components/StatusPage/accessibilite/Accessibility.mdx +24 -5
- package/src/components/StatusPage/tests/StatusPage.a11y.spec.ts +1 -0
- package/src/components/StatusPage/tests/StatusPage.spec.ts +3 -0
- package/src/components/StatusPage/tests/__snapshots__/StatusPage.spec.ts.snap +2 -0
- package/src/components/SubHeader/SubHeader.stories.ts +16 -0
- package/src/components/SubHeader/SubHeader.vue +6 -3
- package/src/components/SubHeader/accessibilite/Accessibility.mdx +27 -6
- package/src/components/SyAlert/SyAlert.vue +21 -20
- package/src/components/SyBtnMenu/SyBtnMenu.vue +33 -17
- package/src/components/SyBtnMenu/tests/SyBtnMenu.a11y.spec.ts +38 -0
- package/src/components/SyBtnMenu/tests/SyBtnMenu.spec.ts +41 -0
- package/src/components/SyHeading/SyHeading.vue +18 -0
- package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +96 -30
- package/src/components/Tables/SyServerTable/SyServerTable.vue +2 -0
- package/src/components/Tables/SyTable/SyTable.vue +2 -0
- package/src/components/Tables/common/SyTablePagination.vue +16 -10
- package/src/components/Tables/common/filters/DateFilter.vue +5 -0
- package/src/components/Tables/common/tests/SyTablePagination.spec.ts +40 -24
- package/src/components/Tables/common/types.ts +3 -0
- package/src/components/UploadWorkflow/UploadWorkflow.stories.ts +11 -11
- package/src/components/UploadWorkflow/UploadWorkflow.vue +30 -13
- package/src/components/UploadWorkflow/accessibilite/Accessibility.mdx +56 -5
- package/src/components/UploadWorkflow/accessibilite/UploadWorkflow.a11y.spec.ts +110 -0
- package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +7 -25
- package/src/components/UploadWorkflow/tests/__snapshots__/UploadWorkflow.spec.ts.snap +144 -121
- package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +53 -31
- package/src/components/UserMenuBtn/UserMenuBtn.vue +4 -1
- package/src/components/UserMenuBtn/accessibilite/Accessibility.mdx +72 -8
- package/src/components/index.ts +1 -0
- package/src/components/types.ts +4 -0
- package/src/composables/date/tests/useDateInitialization.spec.ts +22 -1
- package/src/composables/date/useDateInitializationDayjs.ts +4 -7
- package/src/composables/date/useDatePickerAccessibility.ts +2 -3
- package/src/composables/useFilterable/useFilterable.spec.ts +52 -2
- package/src/composables/useFilterable/useFilterable.ts +7 -1
- package/src/designTokens/tokens/amelipro/apLightTheme.ts +27 -15
- package/src/designTokens/tokens/amelipro/apSemantic.ts +21 -15
- package/src/designTokens/tokens/cnam/cnamLightTheme.ts +28 -15
- package/src/designTokens/tokens/cnam/cnamSemantic.ts +21 -14
- package/src/designTokens/tokens/pa/paLightTheme.ts +27 -16
- package/src/designTokens/tokens/pa/paSemantic.ts +19 -13
- package/src/directives/rgaaSvgFix.ts +2 -7
- package/src/stories/Accessibilite/{Audit → AuditEtContreAudit}/Exemptions-derogations.mdx +1 -1
- package/src/stories/Accessibilite/AuditEtContreAudit/Introduction.mdx +188 -0
- package/src/stories/Accessibilite/{Audit → AuditEtContreAudit}/RGAA.mdx +1 -1
- package/src/stories/Accessibilite/Introduction.mdx +22 -3
- package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +21 -22
- package/src/stories/DeprecationNotice/DeprecationNotice.ts +41 -0
- package/src/stories/DesignTokens/ColorDisplay.vue +12 -5
- package/src/stories/DesignTokens/Colors.mdx +8 -59
- package/src/stories/DesignTokens/colors.stories.ts +1862 -1071
- package/src/stories/EcoConception/EcoGuideComponent.vue +10 -4
- package/dist/main-CWniLr0s.js +0 -36919
|
@@ -1,15 +1,77 @@
|
|
|
1
|
-
import { Meta,
|
|
2
|
-
import * as
|
|
3
|
-
import '@/
|
|
1
|
+
import { Meta, Primary } from '@storybook/blocks'
|
|
2
|
+
import * as DownloadBtnStories from '../DownloadBtn.stories'
|
|
3
|
+
import AccessibilityIcon from '@/common/imgs/accessibility-svgrepo-com.svg'
|
|
4
|
+
import {
|
|
5
|
+
AccessibilityGuideLayout,
|
|
6
|
+
CriteriaSection,
|
|
7
|
+
CriteriaCard,
|
|
8
|
+
DemoSection,
|
|
9
|
+
BestPracticesSection,
|
|
10
|
+
ResourcesSection,
|
|
11
|
+
AuditSection
|
|
12
|
+
} from '@/stories/accessibility/AccessibilityGuideLayout.mdx'
|
|
4
13
|
|
|
5
|
-
<Meta of={
|
|
14
|
+
<Meta of={DownloadBtnStories}/>
|
|
6
15
|
|
|
7
|
-
<
|
|
8
|
-
<h1>Accessibilité</h1>
|
|
9
|
-
</div>
|
|
16
|
+
<AccessibilityGuideLayout componentName="DownloadBtn" iconSrc={AccessibilityIcon}>
|
|
10
17
|
|
|
18
|
+
<AuditSection>
|
|
19
|
+
<p>Rapport d’audit manuel : <a href="/audits/DownloadBtn.xlsx" style={{color: '#0C41BD'}}>Voir le rapport</a></p>
|
|
20
|
+
</AuditSection>
|
|
11
21
|
|
|
12
|
-
<
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
22
|
+
<CriteriaSection>
|
|
23
|
+
|
|
24
|
+
<CriteriaCard icon="🏷️" title="Nom accessible explicite">
|
|
25
|
+
<ul>
|
|
26
|
+
<li>Le bouton doit avoir un texte visible explicite.</li>
|
|
27
|
+
<li>Si icône seule, un aria-label est obligatoire.</li>
|
|
28
|
+
<li>L’icône doit être décorative.</li>
|
|
29
|
+
</ul>
|
|
30
|
+
</CriteriaCard>
|
|
31
|
+
|
|
32
|
+
<CriteriaCard icon="⌨️" title="Interaction clavier">
|
|
33
|
+
<ul>
|
|
34
|
+
<li>Activation via Entrée et Espace.</li>
|
|
35
|
+
<li>Ordre de tabulation cohérent.</li>
|
|
36
|
+
</ul>
|
|
37
|
+
</CriteriaCard>
|
|
38
|
+
|
|
39
|
+
<CriteriaCard icon="🔄" title="Gestion des états">
|
|
40
|
+
<ul>
|
|
41
|
+
<li>Annonce du chargement via aria-live.</li>
|
|
42
|
+
<li>Message d’erreur accessible en cas d’échec.</li>
|
|
43
|
+
</ul>
|
|
44
|
+
</CriteriaCard>
|
|
45
|
+
|
|
46
|
+
<CriteriaCard icon="👁️" title="Focus visible">
|
|
47
|
+
<ul>
|
|
48
|
+
<li>Focus clavier visible.</li>
|
|
49
|
+
<li>Ne pas supprimer le focus natif.</li>
|
|
50
|
+
</ul>
|
|
51
|
+
</CriteriaCard>
|
|
52
|
+
|
|
53
|
+
</CriteriaSection>
|
|
54
|
+
|
|
55
|
+
<DemoSection componentName="DownloadBtn">
|
|
56
|
+
<Primary/>
|
|
57
|
+
</DemoSection>
|
|
58
|
+
|
|
59
|
+
<BestPracticesSection>
|
|
60
|
+
<ul>
|
|
61
|
+
<li>Indiquer le format et le poids du fichier.</li>
|
|
62
|
+
<li>Fournir un fallbackFilename explicite.</li>
|
|
63
|
+
<li>Désactiver le bouton pendant le chargement.</li>
|
|
64
|
+
</ul>
|
|
65
|
+
</BestPracticesSection>
|
|
66
|
+
|
|
67
|
+
<ResourcesSection>
|
|
68
|
+
<ul>
|
|
69
|
+
<li>
|
|
70
|
+
<a href="https://accessibilite.numerique.gouv.fr/methode/criteres-et-tests/" target="_blank" rel="noopener noreferrer">
|
|
71
|
+
RGAA 4.1 – Critères
|
|
72
|
+
</a>
|
|
73
|
+
</li>
|
|
74
|
+
</ul>
|
|
75
|
+
</ResourcesSection>
|
|
76
|
+
|
|
77
|
+
</AccessibilityGuideLayout>
|
|
@@ -22,19 +22,19 @@ export const Default: Story = {
|
|
|
22
22
|
{
|
|
23
23
|
name: 'Template',
|
|
24
24
|
code: `
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
<template>
|
|
26
|
+
<div style="padding: 20px; background: rgb(231, 236, 245)">
|
|
27
|
+
<ErrorPage />
|
|
28
|
+
</div>
|
|
29
|
+
</template>
|
|
30
|
+
`,
|
|
31
31
|
}, {
|
|
32
32
|
name: 'Script',
|
|
33
33
|
code: `
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
<script setup lang="ts">
|
|
35
|
+
import { ErrorPage } from '@cnamts/synapse'
|
|
36
|
+
</script>
|
|
37
|
+
`,
|
|
38
38
|
},
|
|
39
39
|
],
|
|
40
40
|
},
|
|
@@ -54,22 +54,57 @@ export const WithLink: Story = {
|
|
|
54
54
|
{
|
|
55
55
|
name: 'Template',
|
|
56
56
|
code: `
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
57
|
+
<template>
|
|
58
|
+
<div style="padding: 20px; background: rgb(231, 236, 245)">
|
|
59
|
+
<ErrorPage
|
|
60
|
+
btn-href="/"
|
|
61
|
+
btn-text="Retour à l'accueil"
|
|
62
|
+
/>
|
|
63
|
+
</div>
|
|
64
|
+
</template>
|
|
65
|
+
`,
|
|
66
66
|
}, {
|
|
67
67
|
name: 'Script',
|
|
68
68
|
code: `
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
69
|
+
<script setup lang="ts">
|
|
70
|
+
import { ErrorPage } from '@cnamts/synapse'
|
|
71
|
+
</script>
|
|
72
|
+
`,
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
},
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export const WithRole: Story = {
|
|
79
|
+
args: {
|
|
80
|
+
...Default.args,
|
|
81
|
+
role: 'region',
|
|
82
|
+
uniqueId: 'error-page-region',
|
|
83
|
+
},
|
|
84
|
+
decorators: [
|
|
85
|
+
() => ({ template: '<div style="padding: 20px; background: rgb(231, 236, 245)"><story /></div>' }),
|
|
86
|
+
],
|
|
87
|
+
parameters: {
|
|
88
|
+
sourceCode: [
|
|
89
|
+
{
|
|
90
|
+
name: 'Template',
|
|
91
|
+
code: `
|
|
92
|
+
<template>
|
|
93
|
+
<div style="padding: 20px; background: rgb(231, 236, 245)">
|
|
94
|
+
<ErrorPage
|
|
95
|
+
role="region"
|
|
96
|
+
unique-id="error-page-region"
|
|
97
|
+
/>
|
|
98
|
+
</div>
|
|
99
|
+
</template>
|
|
100
|
+
`,
|
|
101
|
+
}, {
|
|
102
|
+
name: 'Script',
|
|
103
|
+
code: `
|
|
104
|
+
<script setup lang="ts">
|
|
105
|
+
import { ErrorPage } from '@cnamts/synapse'
|
|
106
|
+
</script>
|
|
107
|
+
`,
|
|
73
108
|
},
|
|
74
109
|
],
|
|
75
110
|
},
|
|
@@ -84,39 +119,39 @@ export const CustomIllustration: Story = {
|
|
|
84
119
|
{
|
|
85
120
|
name: 'Template',
|
|
86
121
|
code: `
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
122
|
+
<template>
|
|
123
|
+
<div style="padding: 20px; background: rgb(231, 236, 245)">
|
|
124
|
+
<ErrorPage>
|
|
125
|
+
<template #illustration>
|
|
126
|
+
<div style="width: 260px; height: 200px; display: grid; place-items: center; border-radius: 12px; background: white; border: 2px dashed #0D419A;">
|
|
127
|
+
<span style="font-weight: 700; color: #0D419A;">Illustration</span>
|
|
128
|
+
</div>
|
|
129
|
+
</template>
|
|
130
|
+
</ErrorPage>
|
|
131
|
+
</div>
|
|
132
|
+
</template>
|
|
133
|
+
`,
|
|
99
134
|
},
|
|
100
135
|
{
|
|
101
136
|
name: 'Script',
|
|
102
137
|
code: `
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
138
|
+
<script setup lang="ts">
|
|
139
|
+
import { ErrorPage } from '@cnamts/synapse'
|
|
140
|
+
</script>
|
|
141
|
+
`,
|
|
107
142
|
},
|
|
108
143
|
],
|
|
109
144
|
},
|
|
110
145
|
render: () => ({
|
|
111
146
|
components: { ErrorPage },
|
|
112
147
|
template: `
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
148
|
+
<ErrorPage>
|
|
149
|
+
<template #illustration>
|
|
150
|
+
<div style="width: 260px; height: 200px; display: grid; place-items: center; border-radius: 12px; background: white; border: 2px dashed #0D419A;">
|
|
151
|
+
<span style="font-weight: 700; color: #0D419A;">Illustration</span>
|
|
152
|
+
</div>
|
|
153
|
+
</template>
|
|
154
|
+
</ErrorPage>
|
|
155
|
+
`,
|
|
121
156
|
}),
|
|
122
157
|
}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { computed } from 'vue'
|
|
5
5
|
import type { RouteRecordRaw } from 'vue-router'
|
|
6
6
|
import { useThemeLocales } from '@/utils/theme'
|
|
7
|
+
import type { PageAriaRole } from '../types'
|
|
7
8
|
|
|
8
9
|
const props = defineProps<{
|
|
9
10
|
pageTitle?: string
|
|
@@ -14,6 +15,9 @@
|
|
|
14
15
|
btnHref?: string
|
|
15
16
|
btnLink?: RouteRecordRaw | string
|
|
16
17
|
hideBtn?: boolean
|
|
18
|
+
headingLevel: 1 | 2 | 3 | 4 | 5 | 6
|
|
19
|
+
uniqueId?: string
|
|
20
|
+
role?: PageAriaRole
|
|
17
21
|
}>()
|
|
18
22
|
|
|
19
23
|
const { themeLocales } = useThemeLocales(locales)
|
|
@@ -35,6 +39,8 @@
|
|
|
35
39
|
:btn-href="props.btnHref"
|
|
36
40
|
:btn-link="props.btnLink"
|
|
37
41
|
:hide-btn="props.hideBtn"
|
|
42
|
+
:unique-id="props.uniqueId"
|
|
43
|
+
:role="props.role"
|
|
38
44
|
>
|
|
39
45
|
<template
|
|
40
46
|
v-if="src || $slots.illustration"
|
|
@@ -32,6 +32,14 @@ import {
|
|
|
32
32
|
</ul>
|
|
33
33
|
</CriteriaCard>
|
|
34
34
|
|
|
35
|
+
<CriteriaCard icon="🏷️" title="Rôle et identifiant ARIA">
|
|
36
|
+
<ul>
|
|
37
|
+
<li><strong>Prop <code>role</code></strong> : permet de définir le rôle ARIA de la page d'erreur — deux valeurs acceptées : <code>main</code> ou <code>region</code></li>
|
|
38
|
+
<li><strong>Prop <code>uniqueId</code></strong> : permet de définir un identifiant unique sur le conteneur, facilitant le ciblage par <code>aria-labelledby</code> ou <code>aria-describedby</code> depuis d'autres éléments</li>
|
|
39
|
+
<li><strong>Usage recommandé</strong> : utiliser <code>role="main"</code> si la page d'erreur constitue le contenu principal, ou <code>role="region"</code> si elle est intégrée dans une section d'une mise en page plus complexe</li>
|
|
40
|
+
</ul>
|
|
41
|
+
</CriteriaCard>
|
|
42
|
+
|
|
35
43
|
<CriteriaCard icon="🔗" title="Liens et boutons">
|
|
36
44
|
<ul>
|
|
37
45
|
<li><strong>Bouton de retour</strong> : rendu via <code>btn-href</code> (balise <code>a</code>) ou <code>btn-link</code> (balise <code>router-link</code>)</li>
|
|
@@ -55,6 +63,10 @@ import {
|
|
|
55
63
|
<Story of={Stories.Default} />
|
|
56
64
|
</DemoSection>
|
|
57
65
|
|
|
66
|
+
<DemoSection title="Avec rôle et identifiant ARIA" componentName="ErrorPage">
|
|
67
|
+
<Story of={Stories.WithRole} />
|
|
68
|
+
</DemoSection>
|
|
69
|
+
|
|
58
70
|
<BestPracticesSection>
|
|
59
71
|
<ul>
|
|
60
72
|
<li>Les valeurs par défaut de <code>page-title</code>, <code>message</code> et <code>code</code> proviennent du thème — les surcharger uniquement si le contexte métier le nécessite</li>
|
|
@@ -62,6 +74,8 @@ import {
|
|
|
62
74
|
<li>Ne pas masquer le bouton (<code>hide-btn</code>) sans proposer une alternative de navigation claire</li>
|
|
63
75
|
<li>Les illustrations doivent toujours être décoratives (<code>aria-hidden="true"</code>) — ne jamais y placer d'information essentielle</li>
|
|
64
76
|
<li>Personnaliser <code>code-error-text</code> si le contexte métier nécessite une formulation différente de <em>"Code d'erreur : "</em></li>
|
|
77
|
+
<li>Utiliser <code>role</code> pour préciser le rôle sémantique du composant dans son contexte d'intégration — préférer <code>role="main"</code> pour le contenu principal ou <code>role="region"</code> pour une section d'une mise en page plus complexe</li>
|
|
78
|
+
<li>Utiliser <code>unique-id</code> pour permettre à d'autres éléments de référencer la page d'erreur via <code>aria-labelledby</code> ou <code>aria-describedby</code></li>
|
|
65
79
|
</ul>
|
|
66
80
|
</BestPracticesSection>
|
|
67
81
|
|
|
@@ -71,6 +85,7 @@ import {
|
|
|
71
85
|
<li><a href="https://www.w3.org/WAI/WCAG21/Understanding/link-purpose-in-context.html" target="_blank" style={{ color: '#0C41BD' }}>WCAG 2.4.4 – Link Purpose</a></li>
|
|
72
86
|
<li><a href="https://www.w3.org/WAI/WCAG21/Understanding/non-text-content.html" target="_blank" style={{ color: '#0C41BD' }}>WCAG 1.1.1 – Non-text Content</a></li>
|
|
73
87
|
<li><a href="https://www.w3.org/WAI/ARIA/apg/patterns/" target="_blank" style={{ color: '#0C41BD' }}>ARIA Authoring Practices Guide</a></li>
|
|
88
|
+
<li><a href="https://www.w3.org/TR/wai-aria-1.2/#landmark_roles" target="_blank" style={{ color: '#0C41BD' }}>WAI-ARIA 1.2 – Landmark Roles</a></li>
|
|
74
89
|
</ul>
|
|
75
90
|
</ResourcesSection>
|
|
76
91
|
|
|
@@ -5,8 +5,10 @@ exports[`ErrorPage > renders correctly 1`] = `
|
|
|
5
5
|
btnlink="/"
|
|
6
6
|
code="500"
|
|
7
7
|
codeerrortext="Code d'erreur : "
|
|
8
|
+
headinglevel="1"
|
|
8
9
|
hidebtn="false"
|
|
9
10
|
message="Une erreur est survenue de notre côté, veuillez réessayer plus tard."
|
|
10
11
|
pagetitle="Une erreur est survenue"
|
|
12
|
+
uniqueid=""
|
|
11
13
|
></status-page-stub>
|
|
12
14
|
`;
|
|
@@ -7,6 +7,7 @@ exports[`ExternalLinks > opens the menu when the button is clicked 1`] = `
|
|
|
7
7
|
aria-expanded="true"
|
|
8
8
|
aria-haspopup="menu"
|
|
9
9
|
aria-label="Menu : Consulter les données externes"
|
|
10
|
+
aria-owns="sy-external-links-menu-v-0"
|
|
10
11
|
class="
|
|
11
12
|
d-flex
|
|
12
13
|
px-3
|
|
@@ -94,7 +95,7 @@ exports[`ExternalLinks > opens the menu when the button is clicked 1`] = `
|
|
|
94
95
|
css="true"
|
|
95
96
|
name="fade-transition"
|
|
96
97
|
persisted="true"
|
|
97
|
-
target="<button data-v-353763df="" type="button" class="v-btn v-btn--elevated v-theme--light v-btn--density-default rounded-0 v-btn--size-default v-btn--variant-elevated d-flex px-3 sy-external-links-btn" style="background-color: #0c419a; color: #fff; caret-color: #fff; min-height: 48px; min-width: 328px; transform: translateX(0); position: absolute; flex-direction: row; top: 0px; bottom: auto; left: 0px; right: auto; z-index: 4;" aria-haspopup="menu" aria-expanded="true" aria-label="Menu : Consulter les données externes" aria-controls="sy-external-links-menu-v-0"><span class="v-btn__overlay"></span><span class="v-btn__underlay"></span><!----><span class="v-btn__content" data-no-activator=""><span data-v-353763df="" class="mr-3 sy-external-links-btn-text white--text">Consulter les données externes</span><i data-v-353763df="" class="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z mdi v-icon notranslate v-theme--light v-icon--size-default text-white" aria-hidden="true"></i></span><!----><!----></button>"
|
|
98
|
+
target="<button data-v-353763df="" type="button" class="v-btn v-btn--elevated v-theme--light v-btn--density-default rounded-0 v-btn--size-default v-btn--variant-elevated d-flex px-3 sy-external-links-btn" style="background-color: #0c419a; color: #fff; caret-color: #fff; min-height: 48px; min-width: 328px; transform: translateX(0); position: absolute; flex-direction: row; top: 0px; bottom: auto; left: 0px; right: auto; z-index: 4;" aria-haspopup="menu" aria-expanded="true" aria-owns="sy-external-links-menu-v-0" aria-label="Menu : Consulter les données externes" aria-controls="sy-external-links-menu-v-0"><span class="v-btn__overlay"></span><span class="v-btn__underlay"></span><!----><span class="v-btn__content" data-no-activator=""><span data-v-353763df="" class="mr-3 sy-external-links-btn-text white--text">Consulter les données externes</span><i data-v-353763df="" class="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z mdi v-icon notranslate v-theme--light v-icon--size-default text-white" aria-hidden="true"></i></span><!----><!----></button>"
|
|
98
99
|
>
|
|
99
100
|
<div
|
|
100
101
|
class="v-overlay__content"
|
|
@@ -304,6 +305,7 @@ exports[`ExternalLinks > renders correctly 1`] = `
|
|
|
304
305
|
<v-menu-stub
|
|
305
306
|
activatorprops="[object Object]"
|
|
306
307
|
attach="true"
|
|
308
|
+
capturefocus="true"
|
|
307
309
|
class="
|
|
308
310
|
sy-external-links
|
|
309
311
|
sy-external-links--left
|
|
@@ -325,10 +327,13 @@ exports[`ExternalLinks > renders correctly 1`] = `
|
|
|
325
327
|
openonhover="false"
|
|
326
328
|
origin="auto"
|
|
327
329
|
persistent="false"
|
|
330
|
+
retainfocus="false"
|
|
328
331
|
scrim="false"
|
|
329
332
|
scrollstrategy="reposition"
|
|
333
|
+
sticktotarget="false"
|
|
330
334
|
submenu="false"
|
|
331
335
|
transition="fade-transition"
|
|
336
|
+
viewportmargin="12"
|
|
332
337
|
zindex="4"
|
|
333
338
|
></v-menu-stub>
|
|
334
339
|
</div>
|
|
@@ -341,6 +346,7 @@ exports[`ExternalLinks > renders correctly with fixed prop 1`] = `
|
|
|
341
346
|
aria-expanded="true"
|
|
342
347
|
aria-haspopup="menu"
|
|
343
348
|
aria-label="Menu : Consulter les données externes"
|
|
349
|
+
aria-owns="sy-external-links-menu-v-0"
|
|
344
350
|
class="
|
|
345
351
|
d-flex
|
|
346
352
|
px-3
|
|
@@ -428,7 +434,7 @@ exports[`ExternalLinks > renders correctly with fixed prop 1`] = `
|
|
|
428
434
|
css="true"
|
|
429
435
|
name="fade-transition"
|
|
430
436
|
persisted="true"
|
|
431
|
-
target="<button data-v-353763df="" type="button" class="v-btn v-btn--elevated v-theme--light v-btn--density-default rounded-0 v-btn--size-default v-btn--variant-elevated d-flex px-3 sy-external-links-btn" style="background-color: #0c419a; color: #fff; caret-color: #fff; min-height: 48px; min-width: 328px; transform: translateX(0); position: fixed; flex-direction: row-reverse; top: auto; bottom: 0px; left: auto; right: 0px; z-index: 5;" aria-haspopup="menu" aria-expanded="true" aria-label="Menu : Consulter les données externes" aria-controls="sy-external-links-menu-v-0"><span class="v-btn__overlay"></span><span class="v-btn__underlay"></span><!----><span class="v-btn__content" data-no-activator=""><span data-v-353763df="" class="ml-3 sy-external-links-btn-text white--text">Consulter les données externes</span><i data-v-353763df="" class="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z mdi v-icon notranslate v-theme--light v-icon--size-default text-white" aria-hidden="true"></i></span><!----><!----></button>"
|
|
437
|
+
target="<button data-v-353763df="" type="button" class="v-btn v-btn--elevated v-theme--light v-btn--density-default rounded-0 v-btn--size-default v-btn--variant-elevated d-flex px-3 sy-external-links-btn" style="background-color: #0c419a; color: #fff; caret-color: #fff; min-height: 48px; min-width: 328px; transform: translateX(0); position: fixed; flex-direction: row-reverse; top: auto; bottom: 0px; left: auto; right: 0px; z-index: 5;" aria-haspopup="menu" aria-expanded="true" aria-owns="sy-external-links-menu-v-0" aria-label="Menu : Consulter les données externes" aria-controls="sy-external-links-menu-v-0"><span class="v-btn__overlay"></span><span class="v-btn__underlay"></span><!----><span class="v-btn__content" data-no-activator=""><span data-v-353763df="" class="ml-3 sy-external-links-btn-text white--text">Consulter les données externes</span><i data-v-353763df="" class="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z mdi v-icon notranslate v-theme--light v-icon--size-default text-white" aria-hidden="true"></i></span><!----><!----></button>"
|
|
432
438
|
>
|
|
433
439
|
<div
|
|
434
440
|
class="v-overlay__content"
|
|
@@ -639,6 +645,7 @@ exports[`ExternalLinks > slides on hover or focus 1`] = `
|
|
|
639
645
|
aria-expanded="false"
|
|
640
646
|
aria-haspopup="menu"
|
|
641
647
|
aria-label="Menu : Consulter les données externes"
|
|
648
|
+
aria-owns="sy-external-links-menu-v-0"
|
|
642
649
|
class="
|
|
643
650
|
d-flex
|
|
644
651
|
px-3
|
|
@@ -708,6 +715,7 @@ exports[`ExternalLinks > slides on hover or focus 2`] = `
|
|
|
708
715
|
aria-expanded="false"
|
|
709
716
|
aria-haspopup="menu"
|
|
710
717
|
aria-label="Menu : Consulter les données externes"
|
|
718
|
+
aria-owns="sy-external-links-menu-v-0"
|
|
711
719
|
class="
|
|
712
720
|
d-flex
|
|
713
721
|
px-3
|
|
@@ -777,6 +785,7 @@ exports[`ExternalLinks > slides on hover or focus 3`] = `
|
|
|
777
785
|
aria-expanded="false"
|
|
778
786
|
aria-haspopup="menu"
|
|
779
787
|
aria-label="Menu : Consulter les données externes"
|
|
788
|
+
aria-owns="sy-external-links-menu-v-0"
|
|
780
789
|
class="
|
|
781
790
|
d-flex
|
|
782
791
|
px-3
|
|
@@ -846,6 +855,7 @@ exports[`ExternalLinks > slides on hover or focus 4`] = `
|
|
|
846
855
|
aria-expanded="false"
|
|
847
856
|
aria-haspopup="menu"
|
|
848
857
|
aria-label="Menu : Consulter les données externes"
|
|
858
|
+
aria-owns="sy-external-links-menu-v-0"
|
|
849
859
|
class="
|
|
850
860
|
d-flex
|
|
851
861
|
px-3
|
|
@@ -915,6 +925,7 @@ exports[`ExternalLinks > slides on hover or focus 5`] = `
|
|
|
915
925
|
aria-expanded="false"
|
|
916
926
|
aria-haspopup="menu"
|
|
917
927
|
aria-label="Menu : Consulter les données externes"
|
|
928
|
+
aria-owns="sy-external-links-menu-v-0"
|
|
918
929
|
class="
|
|
919
930
|
d-flex
|
|
920
931
|
px-3
|
|
@@ -42,8 +42,12 @@ const meta = {
|
|
|
42
42
|
detail: `{
|
|
43
43
|
optionalDocument: 'Document facultatif',
|
|
44
44
|
see: 'Voir',
|
|
45
|
+
import: 'Importer',
|
|
45
46
|
delete: 'Supprimer',
|
|
46
47
|
uploading: 'En cours',
|
|
48
|
+
importLabel: (title: string) => string,
|
|
49
|
+
seeLabel: (title: string) => string,
|
|
50
|
+
deleteLabel: (title: string) => string,
|
|
47
51
|
success: 'Téléchargé',
|
|
48
52
|
error: 'Erreur',
|
|
49
53
|
errorOccurred: 'Une erreur est survenue pendant le téléchargement.',
|
|
@@ -118,10 +118,12 @@
|
|
|
118
118
|
{{ message ?? locales.optionalDocument }}
|
|
119
119
|
</div>
|
|
120
120
|
<div
|
|
121
|
-
v-if="state === 'error'"
|
|
122
121
|
class="file-item__error-message text-error"
|
|
122
|
+
role="status"
|
|
123
123
|
>
|
|
124
|
-
|
|
124
|
+
<div v-if="state === 'error'">
|
|
125
|
+
{{ locales.error }}
|
|
126
|
+
</div>
|
|
125
127
|
</div>
|
|
126
128
|
</div>
|
|
127
129
|
</div>
|
|
@@ -130,9 +132,10 @@
|
|
|
130
132
|
v-if="(state === 'initial' || state == 'error') && showUploadBtn"
|
|
131
133
|
class="file-item__action file-item__action-upload text-primary"
|
|
132
134
|
variant="text"
|
|
135
|
+
:aria-label="locales.importLabel(title)"
|
|
133
136
|
@click="$emit('upload', itemId)"
|
|
134
137
|
>
|
|
135
|
-
<span>
|
|
138
|
+
<span>{{ locales.import }}</span>
|
|
136
139
|
<template #prepend>
|
|
137
140
|
<SyIcon
|
|
138
141
|
color="primary"
|
|
@@ -145,6 +148,7 @@
|
|
|
145
148
|
v-if="state === 'success' && showPreviewBtn"
|
|
146
149
|
class="file-item__action file-item__action-preview text-primary"
|
|
147
150
|
variant="text"
|
|
151
|
+
:aria-label="locales.seeLabel(title)"
|
|
148
152
|
@click="$emit('preview', itemId)"
|
|
149
153
|
>
|
|
150
154
|
<span>{{ locales.see }}</span>
|
|
@@ -160,6 +164,7 @@
|
|
|
160
164
|
v-if="state === 'success' && showDeleteBtn"
|
|
161
165
|
class="file-item__action file-item__action-delete text-error"
|
|
162
166
|
variant="text"
|
|
167
|
+
:aria-label="locales.deleteLabel(title)"
|
|
163
168
|
@click="$emit('delete', itemId)"
|
|
164
169
|
>
|
|
165
170
|
<span>{{ locales.delete }}</span>
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
export const locales = {
|
|
2
2
|
optionalDocument: 'Document facultatif',
|
|
3
|
+
import: 'Importer',
|
|
3
4
|
see: 'Voir',
|
|
4
5
|
delete: 'Supprimer',
|
|
6
|
+
importLabel(title: string) {
|
|
7
|
+
return `Importer le fichier ${title}`
|
|
8
|
+
},
|
|
9
|
+
seeLabel(title: string) {
|
|
10
|
+
return `Voir le fichier ${title}`
|
|
11
|
+
},
|
|
12
|
+
deleteLabel(title: string) {
|
|
13
|
+
return `Supprimer le fichier ${title}`
|
|
14
|
+
},
|
|
5
15
|
uploading: 'En cours',
|
|
6
16
|
success: 'Téléchargé',
|
|
7
17
|
error: 'Erreur',
|
|
@@ -1,12 +1,60 @@
|
|
|
1
|
-
import { Meta,
|
|
1
|
+
import { Meta, Primary } from '@storybook/addon-docs';
|
|
2
2
|
import * as Stories from '../FileList.stories.ts';
|
|
3
|
-
import '@/
|
|
3
|
+
import AccessibilityIcon from '@/common/imgs/accessibility-svgrepo-com.svg';
|
|
4
|
+
import {
|
|
5
|
+
AccessibilityGuideLayout,
|
|
6
|
+
CriteriaSection,
|
|
7
|
+
CriteriaCard,
|
|
8
|
+
DemoSection,
|
|
9
|
+
BestPracticesSection,
|
|
10
|
+
ResourcesSection,
|
|
11
|
+
} from '@/stories/accessibility/AccessibilityGuideLayout.mdx';
|
|
4
12
|
|
|
5
13
|
<Meta of={Stories} />
|
|
6
14
|
|
|
7
|
-
<
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
15
|
+
<AccessibilityGuideLayout
|
|
16
|
+
componentName="FileList"
|
|
17
|
+
iconSrc={AccessibilityIcon}
|
|
18
|
+
>
|
|
19
|
+
<CriteriaSection>
|
|
20
|
+
<CriteriaCard icon="🔍" title="Structure sémantique">
|
|
21
|
+
<ul>
|
|
22
|
+
<li><strong>Formattage sous forme de liste </strong> : Utilisation de balises HTML sémantiques pour structurer les éléments de la liste de fichiers.</li>
|
|
23
|
+
<li><strong>Boutons</strong> : Utilisation de <code><button></code> pour les actions associées à chaque fichier, avec des étiquettes claires qui reprennent l'action et le nom du fichier.</li>
|
|
24
|
+
</ul>
|
|
25
|
+
</CriteriaCard>
|
|
11
26
|
|
|
12
|
-
|
|
27
|
+
|
|
28
|
+
<CriteriaCard icon="⌨️" title="Navigation clavier complète">
|
|
29
|
+
<ul>
|
|
30
|
+
<li><strong>Navigation entre les éléments</strong> : Utilisation des touches Tab et Shift+Tab pour naviguer entre les fichiers et les actions associées.</li>
|
|
31
|
+
<li><strong>Activation des actions</strong> : Utilisation de la touche Entrée ou Espace pour activer les boutons d'action (télécharger, supprimer, etc.).</li>
|
|
32
|
+
</ul>
|
|
33
|
+
</CriteriaCard>
|
|
34
|
+
|
|
35
|
+
<CriteriaCard icon="📱" title="États et retours d'information">
|
|
36
|
+
<ul>
|
|
37
|
+
<li><strong>Indication de l'état de téléchargement</strong> : Utilisation d'icônes ou de messages pour indiquer si un fichier est en cours de téléchargement, téléchargé avec succès ou en échec.</li>
|
|
38
|
+
<li><strong>Indication de l'état d'erreur</strong> : Affichage d'un message d'erreur dans un élément avec le rôle <code>status</code> pour informer les utilisateurs de l'erreur.</li>
|
|
39
|
+
</ul>
|
|
40
|
+
</CriteriaCard>
|
|
41
|
+
|
|
42
|
+
<DemoSection componentName="FileList">
|
|
43
|
+
<Primary />
|
|
44
|
+
</DemoSection>
|
|
45
|
+
|
|
46
|
+
<BestPracticesSection>
|
|
47
|
+
<ul>
|
|
48
|
+
<li><strong>Labels clairs et descriptifs</strong> : Assurez-vous que les titres des fichiers requis sont assez descriptifs pour que les utilisateurs comprennent facilement ce qui est attendu d'eux.</li>
|
|
49
|
+
<li><strong>Progression</strong> : Fournissez une indication de la progression du téléchargement pour les fichiers volumineux.</li>
|
|
50
|
+
</ul>
|
|
51
|
+
</BestPracticesSection>
|
|
52
|
+
</CriteriaSection>
|
|
53
|
+
<ResourcesSection>
|
|
54
|
+
<ul>
|
|
55
|
+
<li><a href="https://developer.mozilla.org/fr/docs/Web/HTML/Reference/Elements/button">Documentation MDN sur les boutons</a></li>
|
|
56
|
+
<li><a href="https://developer.mozilla.org/fr/docs/Web/Accessibility/ARIA/Reference/Roles/status_role">Documentation MDN sur le rôle ARIA "status"</a></li>
|
|
57
|
+
<li><a href="https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Roles/status_role">MDN documentation on ARIA "status" role</a></li>
|
|
58
|
+
</ul>
|
|
59
|
+
</ResourcesSection>
|
|
60
|
+
</AccessibilityGuideLayout>
|