@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
|
@@ -5,6 +5,20 @@ const meta = {
|
|
|
5
5
|
title: 'Composants/Données/LogoBrandSection',
|
|
6
6
|
component: LogoBrandSection,
|
|
7
7
|
argTypes: {
|
|
8
|
+
'headingLevelTitle': {
|
|
9
|
+
control: {
|
|
10
|
+
type: 'select',
|
|
11
|
+
},
|
|
12
|
+
options: [1, 2, 3, 4, 5, 6],
|
|
13
|
+
description: 'Le niveau de titre pour le serviceTitle.',
|
|
14
|
+
},
|
|
15
|
+
'headingLevelSubtitle': {
|
|
16
|
+
control: {
|
|
17
|
+
type: 'select',
|
|
18
|
+
},
|
|
19
|
+
options: [1, 2, 3, 4, 5, 6],
|
|
20
|
+
description: 'Le niveau de titre pour le serviceSubTitle.',
|
|
21
|
+
},
|
|
8
22
|
'theme': {
|
|
9
23
|
description: 'Applique un preset de style à la section.',
|
|
10
24
|
control: {
|
|
@@ -72,6 +86,8 @@ const meta = {
|
|
|
72
86
|
},
|
|
73
87
|
args: {
|
|
74
88
|
theme: 'default',
|
|
89
|
+
headingLevelSubtitle: 2,
|
|
90
|
+
headingLevelTitle: 1,
|
|
75
91
|
},
|
|
76
92
|
} satisfies Meta<typeof LogoBrandSection>
|
|
77
93
|
|
|
@@ -81,6 +97,8 @@ type Story = StoryObj<typeof LogoBrandSection>
|
|
|
81
97
|
|
|
82
98
|
export const Default: Story = {
|
|
83
99
|
args: {
|
|
100
|
+
headingLevelSubtitle: 2,
|
|
101
|
+
headingLevelTitle: 1,
|
|
84
102
|
serviceTitle: 'Synapse',
|
|
85
103
|
serviceSubTitle: 'Documentation du Design System',
|
|
86
104
|
},
|
|
@@ -91,6 +109,8 @@ export const Default: Story = {
|
|
|
91
109
|
code: `
|
|
92
110
|
<template>
|
|
93
111
|
<LogoBrandSection
|
|
112
|
+
:heading-level-title="headingLevelTitle"
|
|
113
|
+
:heading-level-subtitle="headingLevelSubtitle"
|
|
94
114
|
service-title="Synapse"
|
|
95
115
|
service-sub-title="Documentation du Design System"
|
|
96
116
|
/>
|
|
@@ -113,6 +133,8 @@ export const WithBrand: Story = {
|
|
|
113
133
|
args: {
|
|
114
134
|
serviceTitle: 'Synapse',
|
|
115
135
|
serviceSubTitle: ' Documentation du Design System',
|
|
136
|
+
headingLevelTitle: 1,
|
|
137
|
+
headingLevelSubtitle: 2,
|
|
116
138
|
},
|
|
117
139
|
render: (args) => {
|
|
118
140
|
return {
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
import { locales } from './locales'
|
|
9
9
|
import { secondaryLogoMapping } from './secondaryLogoMapping'
|
|
10
10
|
import type { Theme } from './types'
|
|
11
|
+
import SyHeading from '@/components/SyHeading/SyHeading.vue'
|
|
11
12
|
|
|
12
13
|
const props = withDefaults(
|
|
13
14
|
defineProps<{
|
|
@@ -21,12 +22,16 @@
|
|
|
21
22
|
to?: RouteLocationRaw
|
|
22
23
|
href?: string
|
|
23
24
|
}
|
|
25
|
+
headingLevelTitle?: 1 | 2 | 3 | 4 | 5 | 6
|
|
26
|
+
headingLevelSubtitle?: 1 | 2 | 3 | 4
|
|
24
27
|
}>(), {
|
|
25
28
|
theme: 'default',
|
|
26
29
|
serviceTitle: undefined,
|
|
27
30
|
serviceSubTitle: undefined,
|
|
28
31
|
mobileVersion: false,
|
|
29
32
|
reduceLogo: false,
|
|
33
|
+
headingLevelTitle: 1,
|
|
34
|
+
headingLevelSubtitle: 2,
|
|
30
35
|
homeLink: () => ({
|
|
31
36
|
href: '/',
|
|
32
37
|
}),
|
|
@@ -246,12 +251,14 @@
|
|
|
246
251
|
class="vd-title-container d-flex justify-center flex-column text-primary"
|
|
247
252
|
>
|
|
248
253
|
<slot name="brand-content">
|
|
249
|
-
<
|
|
254
|
+
<SyHeading
|
|
250
255
|
v-if="service.title"
|
|
251
256
|
:class="{
|
|
252
257
|
'vd-compte-entreprise-title': isCompteEntreprise,
|
|
258
|
+
'vd-title text-caption text-md-subtitle-1 font-weight-medium': headingLevelTitle === 1,
|
|
259
|
+
'vd-title text-caption font-weight-medium': headingLevelTitle !== 1,
|
|
253
260
|
}"
|
|
254
|
-
|
|
261
|
+
:level="headingLevelTitle"
|
|
255
262
|
>
|
|
256
263
|
<template v-if="typeof service.title === 'string'">
|
|
257
264
|
<span>
|
|
@@ -267,14 +274,15 @@
|
|
|
267
274
|
{{ service.title.highlight }}
|
|
268
275
|
</span>
|
|
269
276
|
</template>
|
|
270
|
-
</
|
|
277
|
+
</SyHeading>
|
|
271
278
|
|
|
272
|
-
<
|
|
279
|
+
<SyHeading
|
|
273
280
|
v-if="showServiceSubTitle"
|
|
274
281
|
class="vd-title text-caption"
|
|
282
|
+
:level="headingLevelSubtitle"
|
|
275
283
|
>
|
|
276
284
|
{{ service.subTitle }}
|
|
277
|
-
</
|
|
285
|
+
</SyHeading>
|
|
278
286
|
</slot>
|
|
279
287
|
</div>
|
|
280
288
|
</slot>
|
|
@@ -9,6 +9,8 @@ describe('LogoBrandSection', () => {
|
|
|
9
9
|
global: {
|
|
10
10
|
stubs: ['RouterLink', 'Logo'] },
|
|
11
11
|
props: {
|
|
12
|
+
headingLevelTitle: 1,
|
|
13
|
+
headingLevelSubtitle: 2,
|
|
12
14
|
theme: 'default',
|
|
13
15
|
serviceTitle: 'Service Title',
|
|
14
16
|
serviceSubTitle: 'Service Sub Title',
|
|
@@ -28,6 +30,8 @@ describe('LogoBrandSection', () => {
|
|
|
28
30
|
global: {
|
|
29
31
|
stubs: ['RouterLink', 'Logo'] },
|
|
30
32
|
props: {
|
|
33
|
+
headingLevelTitle: 1,
|
|
34
|
+
headingLevelSubtitle: 2,
|
|
31
35
|
theme: 'default',
|
|
32
36
|
serviceTitle: 'Service Title',
|
|
33
37
|
serviceSubTitle: 'Service Sub Title',
|
|
@@ -42,6 +46,8 @@ describe('LogoBrandSection', () => {
|
|
|
42
46
|
global: {
|
|
43
47
|
stubs: ['RouterLink', 'Logo'] },
|
|
44
48
|
props: {
|
|
49
|
+
headingLevelTitle: 1,
|
|
50
|
+
headingLevelSubtitle: 2,
|
|
45
51
|
theme: 'compte-entreprise',
|
|
46
52
|
},
|
|
47
53
|
})
|
|
@@ -54,6 +60,8 @@ describe('LogoBrandSection', () => {
|
|
|
54
60
|
global: {
|
|
55
61
|
stubs: ['RouterLink', 'Logo'] },
|
|
56
62
|
props: {
|
|
63
|
+
headingLevelTitle: 1,
|
|
64
|
+
headingLevelSubtitle: 2,
|
|
57
65
|
theme: 'default',
|
|
58
66
|
serviceTitle: 'Service Title',
|
|
59
67
|
serviceSubTitle: 'Service Sub Title',
|
|
@@ -74,6 +82,8 @@ describe('LogoBrandSection', () => {
|
|
|
74
82
|
global: {
|
|
75
83
|
stubs: ['RouterLink', 'Logo'] },
|
|
76
84
|
props: {
|
|
85
|
+
headingLevelTitle: 1,
|
|
86
|
+
headingLevelSubtitle: 2,
|
|
77
87
|
theme: 'default',
|
|
78
88
|
serviceTitle: 'Service Title',
|
|
79
89
|
serviceSubTitle: 'Service Sub Title',
|
|
@@ -88,6 +98,8 @@ describe('LogoBrandSection', () => {
|
|
|
88
98
|
global: {
|
|
89
99
|
stubs: ['RouterLink', 'Logo'] },
|
|
90
100
|
props: {
|
|
101
|
+
headingLevelTitle: 1,
|
|
102
|
+
headingLevelSubtitle: 2,
|
|
91
103
|
theme: 'default',
|
|
92
104
|
serviceTitle: 'Service Title',
|
|
93
105
|
serviceSubTitle: '',
|
|
@@ -102,6 +114,8 @@ describe('LogoBrandSection', () => {
|
|
|
102
114
|
global: {
|
|
103
115
|
stubs: ['RouterLink', 'Logo'] },
|
|
104
116
|
props: {
|
|
117
|
+
headingLevelTitle: 1,
|
|
118
|
+
headingLevelSubtitle: 2,
|
|
105
119
|
serviceTitle: 'Service Title',
|
|
106
120
|
serviceSubTitle: 'Service Sub Title',
|
|
107
121
|
},
|
|
@@ -116,6 +130,8 @@ describe('LogoBrandSection', () => {
|
|
|
116
130
|
global: {
|
|
117
131
|
stubs: ['RouterLink', 'Logo'] },
|
|
118
132
|
props: {
|
|
133
|
+
headingLevelTitle: 1,
|
|
134
|
+
headingLevelSubtitle: 2,
|
|
119
135
|
theme: 'cnam',
|
|
120
136
|
serviceTitle: 'Service Title',
|
|
121
137
|
serviceSubTitle: 'Service Sub Title',
|
|
@@ -131,6 +147,8 @@ describe('LogoBrandSection', () => {
|
|
|
131
147
|
global: {
|
|
132
148
|
stubs: ['RouterLink', 'Logo'] },
|
|
133
149
|
props: {
|
|
150
|
+
headingLevelTitle: 1,
|
|
151
|
+
headingLevelSubtitle: 2,
|
|
134
152
|
theme: 'compte-entreprise',
|
|
135
153
|
serviceTitle: 'Service Title',
|
|
136
154
|
serviceSubTitle: 'Service Sub Title',
|
|
@@ -146,6 +164,8 @@ describe('LogoBrandSection', () => {
|
|
|
146
164
|
global: {
|
|
147
165
|
stubs: ['RouterLink', 'Logo'] },
|
|
148
166
|
props: {
|
|
167
|
+
headingLevelTitle: 1,
|
|
168
|
+
headingLevelSubtitle: 2,
|
|
149
169
|
theme: 'risque-pro',
|
|
150
170
|
reduceLogo: false,
|
|
151
171
|
},
|
|
@@ -160,6 +180,8 @@ describe('LogoBrandSection', () => {
|
|
|
160
180
|
global: {
|
|
161
181
|
stubs: ['RouterLink', 'Logo'] },
|
|
162
182
|
props: {
|
|
183
|
+
headingLevelTitle: 1,
|
|
184
|
+
headingLevelSubtitle: 2,
|
|
163
185
|
theme: 'risque-pro',
|
|
164
186
|
reduceLogo: true,
|
|
165
187
|
},
|
|
@@ -173,6 +195,8 @@ describe('LogoBrandSection', () => {
|
|
|
173
195
|
global: {
|
|
174
196
|
stubs: ['RouterLink', 'Logo'] },
|
|
175
197
|
props: {
|
|
198
|
+
headingLevelTitle: 1,
|
|
199
|
+
headingLevelSubtitle: 2,
|
|
176
200
|
theme: 'compte-entreprise',
|
|
177
201
|
},
|
|
178
202
|
})
|
|
@@ -185,6 +209,8 @@ describe('LogoBrandSection', () => {
|
|
|
185
209
|
global: {
|
|
186
210
|
stubs: ['RouterLink', 'Logo'] },
|
|
187
211
|
props: {
|
|
212
|
+
headingLevelTitle: 1,
|
|
213
|
+
headingLevelSubtitle: 2,
|
|
188
214
|
theme: 'compte-ameli',
|
|
189
215
|
mobileVersion: true,
|
|
190
216
|
},
|
|
@@ -199,6 +225,8 @@ describe('LogoBrandSection', () => {
|
|
|
199
225
|
global: {
|
|
200
226
|
stubs: ['RouterLink', 'Logo'] },
|
|
201
227
|
props: {
|
|
228
|
+
headingLevelTitle: 1,
|
|
229
|
+
headingLevelSubtitle: 2,
|
|
202
230
|
theme: 'default',
|
|
203
231
|
reduceLogo: true,
|
|
204
232
|
},
|
|
@@ -212,6 +240,8 @@ describe('LogoBrandSection', () => {
|
|
|
212
240
|
global: {
|
|
213
241
|
stubs: ['RouterLink', 'Logo'] },
|
|
214
242
|
props: {
|
|
243
|
+
headingLevelTitle: 1,
|
|
244
|
+
headingLevelSubtitle: 2,
|
|
215
245
|
theme: 'default',
|
|
216
246
|
reduceLogo: false,
|
|
217
247
|
},
|
|
@@ -225,6 +255,8 @@ describe('LogoBrandSection', () => {
|
|
|
225
255
|
global: {
|
|
226
256
|
stubs: ['RouterLink', 'Logo'] },
|
|
227
257
|
props: {
|
|
258
|
+
headingLevelTitle: 1,
|
|
259
|
+
headingLevelSubtitle: 2,
|
|
228
260
|
theme: 'compte-ameli',
|
|
229
261
|
},
|
|
230
262
|
})
|
|
@@ -237,6 +269,8 @@ describe('LogoBrandSection', () => {
|
|
|
237
269
|
global: {
|
|
238
270
|
stubs: ['RouterLink', 'Logo'] },
|
|
239
271
|
props: {
|
|
272
|
+
headingLevelTitle: 1,
|
|
273
|
+
headingLevelSubtitle: 2,
|
|
240
274
|
theme: 'default',
|
|
241
275
|
homeLink: {
|
|
242
276
|
href: '#',
|
|
@@ -252,6 +286,8 @@ describe('LogoBrandSection', () => {
|
|
|
252
286
|
global: {
|
|
253
287
|
stubs: ['RouterLink', 'Logo'] },
|
|
254
288
|
props: {
|
|
289
|
+
headingLevelTitle: 1,
|
|
290
|
+
headingLevelSubtitle: 2,
|
|
255
291
|
theme: 'default',
|
|
256
292
|
homeLink: {
|
|
257
293
|
to: '/',
|
|
@@ -267,6 +303,8 @@ describe('LogoBrandSection', () => {
|
|
|
267
303
|
global: {
|
|
268
304
|
stubs: ['RouterLink', 'Logo'] },
|
|
269
305
|
props: {
|
|
306
|
+
headingLevelTitle: 1,
|
|
307
|
+
headingLevelSubtitle: 2,
|
|
270
308
|
theme: 'default',
|
|
271
309
|
homeLink: {
|
|
272
310
|
href: undefined,
|
|
@@ -283,6 +321,8 @@ describe('LogoBrandSection', () => {
|
|
|
283
321
|
global: {
|
|
284
322
|
stubs: ['RouterLink', 'Logo'] },
|
|
285
323
|
props: {
|
|
324
|
+
headingLevelTitle: 1,
|
|
325
|
+
headingLevelSubtitle: 2,
|
|
286
326
|
theme: 'default',
|
|
287
327
|
},
|
|
288
328
|
})
|
|
@@ -295,6 +335,8 @@ describe('LogoBrandSection', () => {
|
|
|
295
335
|
global: {
|
|
296
336
|
stubs: ['RouterLink', 'Logo'] },
|
|
297
337
|
props: {
|
|
338
|
+
headingLevelTitle: 1,
|
|
339
|
+
headingLevelSubtitle: 2,
|
|
298
340
|
theme: 'ameli-pro',
|
|
299
341
|
},
|
|
300
342
|
})
|
|
@@ -307,6 +349,8 @@ describe('LogoBrandSection', () => {
|
|
|
307
349
|
global: {
|
|
308
350
|
stubs: ['RouterLink', 'Logo'] },
|
|
309
351
|
props: {
|
|
352
|
+
headingLevelTitle: 1,
|
|
353
|
+
headingLevelSubtitle: 2,
|
|
310
354
|
theme: 'ameli',
|
|
311
355
|
homeLink: {
|
|
312
356
|
href: undefined,
|
|
@@ -44,6 +44,7 @@ exports[`LogoBrandSection > renders correctly 1`] = `
|
|
|
44
44
|
">
|
|
45
45
|
<h1 class="
|
|
46
46
|
font-weight-medium
|
|
47
|
+
sy-heading
|
|
47
48
|
text-caption
|
|
48
49
|
text-md-subtitle-1
|
|
49
50
|
vd-title
|
|
@@ -53,6 +54,7 @@ exports[`LogoBrandSection > renders correctly 1`] = `
|
|
|
53
54
|
</span>
|
|
54
55
|
</h1>
|
|
55
56
|
<h2 class="
|
|
57
|
+
sy-heading
|
|
56
58
|
text-caption
|
|
57
59
|
vd-title
|
|
58
60
|
">
|
|
@@ -1,26 +1,53 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
+
import { computed } from 'vue'
|
|
2
3
|
import StatusPage from '../StatusPage/StatusPage.vue'
|
|
3
4
|
import { locales } from './locales'
|
|
4
5
|
import { useThemeLocales } from '@/utils/theme'
|
|
5
6
|
|
|
6
7
|
const { themeLocales } = useThemeLocales(locales)
|
|
8
|
+
|
|
9
|
+
interface Props {
|
|
10
|
+
pageTitle?: string
|
|
11
|
+
message?: string
|
|
12
|
+
code?: string
|
|
13
|
+
src?: string
|
|
14
|
+
uniqueId?: string
|
|
15
|
+
headingLevel?: 1 | 2 | 3 | 4 | 5 | 6
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const props = withDefaults(defineProps<Props>(), {
|
|
19
|
+
pageTitle: undefined,
|
|
20
|
+
message: undefined,
|
|
21
|
+
code: undefined,
|
|
22
|
+
src: undefined,
|
|
23
|
+
uniqueId: undefined,
|
|
24
|
+
headingLevel: 1,
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
// Utiliser les props de l'utilisateur en priorité, sinon les locales du thème
|
|
28
|
+
const pageTitle = computed(() => props.pageTitle || themeLocales.value.pageTitle)
|
|
29
|
+
const message = computed(() => props.message || themeLocales.value.message)
|
|
30
|
+
const code = computed(() => props.code || themeLocales.value.code)
|
|
31
|
+
const src = computed(() => props.src || themeLocales.value.src)
|
|
7
32
|
</script>
|
|
8
33
|
|
|
9
34
|
<template>
|
|
10
35
|
<StatusPage
|
|
11
|
-
:
|
|
12
|
-
:
|
|
13
|
-
:
|
|
36
|
+
:heading-level="headingLevel"
|
|
37
|
+
:unique-id="props.uniqueId"
|
|
38
|
+
:page-title="pageTitle"
|
|
39
|
+
:message="message"
|
|
40
|
+
:code="code"
|
|
14
41
|
:hide-btn="true"
|
|
15
42
|
>
|
|
16
43
|
<template
|
|
17
|
-
v-if="
|
|
44
|
+
v-if="src || $slots.illustration"
|
|
18
45
|
#illustration
|
|
19
46
|
>
|
|
20
47
|
<slot name="illustration">
|
|
21
48
|
<img
|
|
22
|
-
v-if="
|
|
23
|
-
:src="
|
|
49
|
+
v-if="src"
|
|
50
|
+
:src="src"
|
|
24
51
|
alt=""
|
|
25
52
|
aria-hidden="true"
|
|
26
53
|
>
|
|
@@ -28,7 +28,9 @@ import {
|
|
|
28
28
|
<ul>
|
|
29
29
|
<li><strong>Titre de page</strong> : rendu dans une balise <code>h1</code> via <code>StatusPage</code>, sa valeur provient des locales du thème via <code>useThemeLocales</code></li>
|
|
30
30
|
<li><strong>Code d'erreur</strong> : le code est précédé du texte masqué visuellement <code>codeErrorText</code> (par défaut <em>"Code d'erreur : "</em>) pour les lecteurs d'écran</li>
|
|
31
|
-
<li><strong>Valeurs par défaut</strong> : <code>pageTitle</code>, <code>message</code> et <code>code</code> proviennent des locales du thème via <code>useThemeLocales</code></li>
|
|
31
|
+
<li><strong>Valeurs par défaut</strong> : <code>pageTitle</code>, <code>message</code> <code>src</code> et <code>code</code> proviennent des locales du thème via <code>useThemeLocales</code></li>
|
|
32
|
+
<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>
|
|
33
|
+
<li><strong>Prop <code>role</code></strong> : aucune prop <code>role</code> n'est exposée sur ce composant — la page de maintenance est une page statique d'information, sa structure sémantique (<code>h1</code>, paragraphe) suffit à en exprimer le rôle sans qu'un attribut ARIA <code>role</code> supplémentaire soit nécessaire ; l'exposer risquerait d'introduire de mauvaises utilisations (ex. <code>role="alert"</code> inapproprié) pouvant nuire à l'expérience des utilisateurs de lecteurs d'écran</li>
|
|
32
34
|
</ul>
|
|
33
35
|
</CriteriaCard>
|
|
34
36
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// @vitest-environment jsdom
|
|
2
2
|
|
|
3
3
|
import { describe, it, expect, vi, afterEach } from 'vitest'
|
|
4
|
+
import { ref } from 'vue'
|
|
4
5
|
import { mount } from '@vue/test-utils'
|
|
5
6
|
import { axe } from 'vitest-axe'
|
|
6
7
|
import { assertNoA11yViolations } from '@tests/unit/accessibility/axeUtils'
|
|
@@ -8,14 +9,14 @@ import StatusPage from '../../StatusPage/StatusPage.vue'
|
|
|
8
9
|
|
|
9
10
|
const themeLocales = {
|
|
10
11
|
pageTitle: 'Maintenance en cours',
|
|
11
|
-
message: 'L
|
|
12
|
+
message: 'L\'application n\'est pas disponible pour le moment.',
|
|
12
13
|
code: '503',
|
|
13
14
|
src: '/img/maintenance.svg',
|
|
14
15
|
}
|
|
15
16
|
|
|
16
17
|
vi.mock('@/utils/theme', () => ({
|
|
17
18
|
useThemeLocales: () => ({
|
|
18
|
-
themeLocales,
|
|
19
|
+
themeLocales: ref(themeLocales),
|
|
19
20
|
}),
|
|
20
21
|
}))
|
|
21
22
|
|
|
@@ -26,6 +26,24 @@ describe('MaintenancePage', () => {
|
|
|
26
26
|
expect(statusPage.props('code')).toBeDefined()
|
|
27
27
|
})
|
|
28
28
|
|
|
29
|
+
it('passes a uniqueId prop to StatusPage', () => {
|
|
30
|
+
const wrapper = shallowMount(MaintenancePage)
|
|
31
|
+
const statusPage = wrapper.findComponent(StatusPage)
|
|
32
|
+
|
|
33
|
+
expect(statusPage.props('uniqueId')).toBeDefined()
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
it('passes a custom uniqueId prop to StatusPage', () => {
|
|
37
|
+
const wrapper = shallowMount(MaintenancePage, {
|
|
38
|
+
props: {
|
|
39
|
+
uniqueId: 'custom-id',
|
|
40
|
+
},
|
|
41
|
+
})
|
|
42
|
+
const statusPage = wrapper.findComponent(StatusPage)
|
|
43
|
+
|
|
44
|
+
expect(statusPage.props('uniqueId')).toBe('custom-id')
|
|
45
|
+
})
|
|
46
|
+
|
|
29
47
|
it('renders default illustration when no slot is provided', () => {
|
|
30
48
|
const wrapper = shallowMount(MaintenancePage)
|
|
31
49
|
|
|
@@ -5,8 +5,10 @@ exports[`MaintenancePage > renders correctly 1`] = `
|
|
|
5
5
|
btnlink="/"
|
|
6
6
|
code=""
|
|
7
7
|
codeerrortext="Code d'erreur : "
|
|
8
|
+
headinglevel="1"
|
|
8
9
|
hidebtn="true"
|
|
9
10
|
message="L’application n’est pas disponible pour le moment, veuillez nous excuser pour la gêne occasionnée."
|
|
10
11
|
pagetitle="Maintenance en cours"
|
|
12
|
+
uniqueid=""
|
|
11
13
|
></status-page-stub>
|
|
12
14
|
`;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import { onMounted, ref } from 'vue'
|
|
2
|
+
import { computed, onMounted, ref } from 'vue'
|
|
3
3
|
import StatusPage from '../StatusPage/StatusPage.vue'
|
|
4
4
|
import { locales, SUPPORT_ID_PARAM_NAME, supportIdMessage } from './locales'
|
|
5
5
|
import type { RouteRecordRaw } from 'vue-router'
|
|
@@ -9,16 +9,23 @@
|
|
|
9
9
|
|
|
10
10
|
const supportId = ref<string | undefined>()
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
interface Props {
|
|
13
13
|
btnText?: string
|
|
14
14
|
btnHref?: string
|
|
15
15
|
btnLink?: RouteRecordRaw | string
|
|
16
16
|
hideBtn?: boolean
|
|
17
|
-
|
|
17
|
+
headingLevel?: 1 | 2 | 3 | 4 | 5 | 6
|
|
18
|
+
src?: string
|
|
19
|
+
uniqueId?: string
|
|
20
|
+
}
|
|
21
|
+
const props = withDefaults(defineProps<Props>(), {
|
|
18
22
|
btnText: undefined,
|
|
19
23
|
btnLink: '/',
|
|
20
24
|
btnHref: undefined,
|
|
21
25
|
hideBtn: false,
|
|
26
|
+
headingLevel: 1,
|
|
27
|
+
src: undefined,
|
|
28
|
+
uniqueId: undefined,
|
|
22
29
|
})
|
|
23
30
|
|
|
24
31
|
onMounted(() => {
|
|
@@ -31,17 +38,20 @@
|
|
|
31
38
|
|
|
32
39
|
supportId.value = supportIdParam.trim().match(/.{1,4}/g)?.join(' ')
|
|
33
40
|
})
|
|
41
|
+
const src = computed(() => props.src || themeLocales.value.src)
|
|
34
42
|
</script>
|
|
35
43
|
|
|
36
44
|
<template>
|
|
37
45
|
<StatusPage
|
|
38
46
|
:page-title="themeLocales.pageTitle"
|
|
47
|
+
:heading-level="headingLevel"
|
|
39
48
|
:message="themeLocales.message"
|
|
40
49
|
:code="themeLocales.code"
|
|
41
50
|
:btn-text="btnText"
|
|
42
51
|
:btn-href="btnHref"
|
|
43
52
|
:btn-link="btnLink"
|
|
44
53
|
:hide-btn="hideBtn"
|
|
54
|
+
:unique-id="uniqueId"
|
|
45
55
|
>
|
|
46
56
|
<template
|
|
47
57
|
v-if="supportId"
|
|
@@ -56,12 +66,13 @@
|
|
|
56
66
|
</template>
|
|
57
67
|
|
|
58
68
|
<template
|
|
59
|
-
v-if="
|
|
69
|
+
v-if="src || $slots.illustration"
|
|
60
70
|
#illustration
|
|
61
71
|
>
|
|
62
72
|
<slot name="illustration">
|
|
63
73
|
<img
|
|
64
|
-
|
|
74
|
+
v-if="src"
|
|
75
|
+
:src="src"
|
|
65
76
|
alt=""
|
|
66
77
|
aria-hidden="true"
|
|
67
78
|
>
|
|
@@ -29,6 +29,8 @@ import {
|
|
|
29
29
|
<li><strong>Titre de page</strong> : rendu dans une balise <code>h1</code> via <code>StatusPage</code>, sa valeur provient des locales du thème via <code>useThemeLocales</code></li>
|
|
30
30
|
<li><strong>Code d'erreur</strong> : le code <em>404</em> est précédé du texte masqué visuellement <code>codeErrorText</code> (par défaut <em>"Code d'erreur : "</em>) pour les lecteurs d'écran</li>
|
|
31
31
|
<li><strong>Identifiant de support</strong> : si le paramètre <code>support_id</code> est présent dans l'URL, il est affiché dans le slot <code>#additional-content</code> avec un formatage espacé par groupes de 4 caractères pour faciliter la lecture</li>
|
|
32
|
+
<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>
|
|
33
|
+
<li><strong>Prop <code>role</code></strong> : aucune prop <code>role</code> n'est exposée sur ce composant — la <code>NotFoundPage</code> est une page statique d'information, sa structure sémantique (<code>h1</code>, paragraphe) suffit à en exprimer le rôle sans qu'un attribut ARIA <code>role</code> supplémentaire soit nécessaire ; l'exposer risquerait d'introduire de mauvaises utilisations pouvant nuire à l'expérience des utilisateurs de lecteurs d'écran</li>
|
|
32
34
|
</ul>
|
|
33
35
|
</CriteriaCard>
|
|
34
36
|
|
|
@@ -192,4 +192,53 @@ describe('NotFoundPage – accessibility (axe)', () => {
|
|
|
192
192
|
ignoreRules: ['region'],
|
|
193
193
|
})
|
|
194
194
|
})
|
|
195
|
+
|
|
196
|
+
it('has no obvious axe violations with a custom uniqueId', async () => {
|
|
197
|
+
const wrapper = mount(NotFoundPage, {
|
|
198
|
+
props: {
|
|
199
|
+
uniqueId: 'custom-not-found-id',
|
|
200
|
+
},
|
|
201
|
+
})
|
|
202
|
+
await flushPromises()
|
|
203
|
+
await wrapper.vm.$nextTick()
|
|
204
|
+
|
|
205
|
+
const results = await axe(wrapper.element as HTMLElement)
|
|
206
|
+
assertNoA11yViolations(results, 'NotFoundPage – custom uniqueId', {
|
|
207
|
+
ignoreRules: ['region'],
|
|
208
|
+
})
|
|
209
|
+
})
|
|
210
|
+
|
|
211
|
+
it('has a single h1 heading', async () => {
|
|
212
|
+
const wrapper = mount(NotFoundPage)
|
|
213
|
+
await flushPromises()
|
|
214
|
+
await wrapper.vm.$nextTick()
|
|
215
|
+
|
|
216
|
+
const headings = wrapper.findAll('h1')
|
|
217
|
+
if (headings.length !== 1) {
|
|
218
|
+
throw new Error(`Expected exactly 1 h1 heading, found ${headings.length}`)
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
const results = await axe(wrapper.element as HTMLElement)
|
|
222
|
+
assertNoA11yViolations(results, 'NotFoundPage – single h1', {
|
|
223
|
+
ignoreRules: ['region'],
|
|
224
|
+
})
|
|
225
|
+
})
|
|
226
|
+
|
|
227
|
+
it('has no obvious axe violations with all props provided', async () => {
|
|
228
|
+
const wrapper = mount(NotFoundPage, {
|
|
229
|
+
props: {
|
|
230
|
+
uniqueId: 'full-props-id',
|
|
231
|
+
btnText: 'Retour à l\'accueil',
|
|
232
|
+
btnHref: 'https://example.com',
|
|
233
|
+
hideBtn: false,
|
|
234
|
+
},
|
|
235
|
+
})
|
|
236
|
+
await flushPromises()
|
|
237
|
+
await wrapper.vm.$nextTick()
|
|
238
|
+
|
|
239
|
+
const results = await axe(wrapper.element as HTMLElement)
|
|
240
|
+
assertNoA11yViolations(results, 'NotFoundPage – all props', {
|
|
241
|
+
ignoreRules: ['region'],
|
|
242
|
+
})
|
|
243
|
+
})
|
|
195
244
|
})
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { describe, it, expect, vi, beforeEach } from 'vitest'
|
|
2
|
+
import { ref } from 'vue'
|
|
2
3
|
import { mount, flushPromises } from '@vue/test-utils'
|
|
3
4
|
import NotFoundPage from '../NotFoundPage.vue'
|
|
4
5
|
import StatusPage from '../../StatusPage/StatusPage.vue'
|
|
5
6
|
|
|
6
7
|
vi.mock('@/utils/theme', () => ({
|
|
7
8
|
useThemeLocales: () => ({
|
|
8
|
-
themeLocales: {
|
|
9
|
+
themeLocales: ref({
|
|
9
10
|
code: '404',
|
|
10
11
|
pageTitle: 'Page non trouvée',
|
|
11
12
|
message: 'Cette page n\'existe pas ou a été déplacée.',
|
|
12
13
|
src: '/src/components/NotFoundPage/assets/not-found.svg',
|
|
13
|
-
},
|
|
14
|
+
}),
|
|
14
15
|
}),
|
|
15
16
|
}))
|
|
16
17
|
|
|
@@ -113,4 +114,26 @@ describe('NotFoundPage', () => {
|
|
|
113
114
|
expect(img.exists()).toBe(true)
|
|
114
115
|
expect(img.attributes('src')).toBe('/custom.svg')
|
|
115
116
|
})
|
|
117
|
+
|
|
118
|
+
it('passes a uniqueId prop to StatusPage', async () => {
|
|
119
|
+
const wrapper = mount(NotFoundPage)
|
|
120
|
+
await flushPromises()
|
|
121
|
+
await wrapper.vm.$nextTick()
|
|
122
|
+
|
|
123
|
+
const statusPage = wrapper.findComponent(StatusPage)
|
|
124
|
+
expect(statusPage.props('uniqueId')).toBeDefined()
|
|
125
|
+
})
|
|
126
|
+
|
|
127
|
+
it('passes a custom uniqueId prop to StatusPage', async () => {
|
|
128
|
+
const wrapper = mount(NotFoundPage, {
|
|
129
|
+
props: {
|
|
130
|
+
uniqueId: 'custom-id',
|
|
131
|
+
},
|
|
132
|
+
})
|
|
133
|
+
await flushPromises()
|
|
134
|
+
await wrapper.vm.$nextTick()
|
|
135
|
+
|
|
136
|
+
const statusPage = wrapper.findComponent(StatusPage)
|
|
137
|
+
expect(statusPage.props('uniqueId')).toBe('custom-id')
|
|
138
|
+
})
|
|
116
139
|
})
|
|
@@ -107,6 +107,7 @@ exports[`NotFoundPage > display the support ID if provided in the url 1`] = `
|
|
|
107
107
|
font-weight-bold
|
|
108
108
|
mb-2
|
|
109
109
|
mb-4
|
|
110
|
+
sy-heading
|
|
110
111
|
text-h5
|
|
111
112
|
">
|
|
112
113
|
Page non trouvée
|
|
@@ -254,6 +255,7 @@ exports[`NotFoundPage > renders correctly 1`] = `
|
|
|
254
255
|
font-weight-bold
|
|
255
256
|
mb-2
|
|
256
257
|
mb-4
|
|
258
|
+
sy-heading
|
|
257
259
|
text-h5
|
|
258
260
|
">
|
|
259
261
|
Page non trouvée
|