@cnamts/synapse 1.0.21 → 1.0.23
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-Dc-gSGwk.js} +29 -24
- package/dist/{NumberFilter-sm1dQNQi.js → NumberFilter-vP38Wp6j.js} +1 -1
- package/dist/{PeriodFilter-Cklsxnh9.js → PeriodFilter-Ba1uYUnT.js} +1 -1
- package/dist/{SelectFilter-CWefj27Z.js → SelectFilter-BioGT6Nn.js} +1 -1
- package/dist/{TextFilter-Ddyj885L.js → TextFilter-B84dpnoq.js} +1 -1
- package/dist/components/Accordion/Accordion.d.ts +13 -2
- package/dist/components/Accordion/composables/useAccordionState.d.ts +2 -1
- package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +7405 -5973
- 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/AmeliproClickableTile/AmeliproClickableTile.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 +2413 -2029
- package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +8885 -7323
- 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 +8884 -7330
- package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +950 -838
- package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +1614 -1358
- 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 +1108 -846
- package/dist/components/Customs/Selects/SyAutocomplete/locales.d.ts +5 -0
- package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +514 -320
- package/dist/components/Customs/Selects/SySelect/locales.d.ts +1 -0
- package/dist/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.d.ts +40 -38
- package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +920 -800
- 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 +906 -794
- package/dist/components/Customs/SyTextField/SyTextField.d.ts +1634 -1367
- package/dist/components/DataList/DataList.d.ts +1 -1
- package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +3869 -3120
- package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +1947 -1561
- package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +831 -684
- 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 +6 -0
- package/dist/components/FileList/UploadItem/UploadItem.d.ts +6 -0
- package/dist/components/FileList/UploadItem/locales.d.ts +1 -0
- package/dist/components/FileUpload/FileUpload.d.ts +4 -4
- package/dist/components/FileUpload/FileUploadContent.d.ts +2 -0
- package/dist/components/FileUpload/locales.d.ts +1 -0
- package/dist/components/FileUpload/validateFiles.d.ts +2 -1
- 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 +2 -0
- package/dist/components/HeaderBar/HeaderLogo/HeaderLogo.d.ts +2 -0
- package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +4 -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/MonthPicker/MonthPicker.d.ts +1939 -0
- package/dist/components/MonthPicker/MonthPickerText/MonthPickerInput.d.ts +1899 -0
- package/dist/components/MonthPicker/MonthPickerText/useTextField.d.ts +21 -0
- package/dist/components/MonthPicker/MonthPickerVisual/MonthPickerVisual.d.ts +21 -0
- package/dist/components/MonthPicker/MonthPickerVisual/MonthPickerVisualProps.d.ts +12 -0
- package/dist/components/MonthPicker/MonthPickerVisual/MonthSelector.d.ts +11 -0
- package/dist/components/MonthPicker/MonthPickerVisual/VisualPickerFooter.d.ts +6 -0
- package/dist/components/MonthPicker/MonthPickerVisual/VisualPickerHeader.d.ts +14 -0
- package/dist/components/MonthPicker/MonthPickerVisual/YearSelector.d.ts +14 -0
- package/dist/components/MonthPicker/MonthPickerVisual/useMonthGrid.d.ts +9 -0
- package/dist/components/MonthPicker/MonthPickerVisual/useYearGrid.d.ts +8 -0
- package/dist/components/MonthPicker/MonthPickerVisual/utils.d.ts +8 -0
- package/dist/components/MonthPicker/locales.d.ts +12 -0
- package/dist/components/MonthPicker/useMonthPickerValidation.d.ts +25 -0
- package/dist/components/NirField/NirField.d.ts +1669 -1379
- package/dist/components/NotFoundPage/NotFoundPage.d.ts +9 -3
- package/dist/components/NotificationBar/Notification/Notification.d.ts +3 -0
- package/dist/components/PageContainer/PageContainer.d.ts +3 -1
- package/dist/components/PeriodField/PeriodField.d.ts +7696 -6192
- package/dist/components/PhoneField/PhoneField.d.ts +829 -684
- 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 +9 -0
- package/dist/components/SyHeading/SyHeading.a11y.test.d.ts +1 -0
- package/dist/components/SyHeading/SyHeading.d.ts +22 -0
- package/dist/components/SyHeading/SyHeading.test.d.ts +1 -0
- package/dist/components/SyTextArea/SyTextArea.d.ts +475 -419
- 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 +263 -164
- 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 +2 -0
- package/dist/components/types.d.ts +2 -0
- package/dist/design-system-v3.js +111 -107
- package/dist/design-system-v3.umd.cjs +158 -158
- 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/cnamContextual.d.ts +5 -0
- 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-aLKwdMi1.js +37886 -0
- package/dist/main.d.ts +1 -0
- package/dist/style.css +1 -1
- package/dist/vuetifyConfig.d.ts +14 -14
- package/package.json +21 -9
- package/src/assets/amelipro/img/logo-amelipro.svg +9 -0
- package/src/assets/apTokens.scss +53 -17
- package/src/assets/overrides/_btns.scss +8 -0
- package/src/assets/overrides/_forms.scss +9 -0
- package/src/assets/overrides/_icons.scss +43 -4
- package/src/assets/overrides/_tables.scss +19 -0
- 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/Accordion.mdx +23 -9
- package/src/components/Accordion/Accordion.stories.ts +153 -3
- package/src/components/Accordion/Accordion.vue +7 -6
- package/src/components/Accordion/accessibilite/Accessibility.mdx +5 -4
- package/src/components/Accordion/composables/__tests__/useAccordionState.spec.ts +40 -12
- package/src/components/Accordion/composables/useAccordionState.ts +3 -4
- package/src/components/Accordion/tests/accordion.spec.ts +131 -19
- 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/AmeliproPagination/AmeliproPagination.mdx +3 -1
- package/src/components/Amelipro/AmeliproPagination/AmeliproPagination.stories.ts +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/BackBtn/accessibilite/Accessibility.mdx +62 -10
- package/src/components/BackToTopBtn/BackToTopBtn.stories.ts +9 -3
- package/src/components/BackToTopBtn/accessibilite/Accessibility.mdx +86 -6
- package/src/components/Captcha/tests/Captcha.spec.ts +0 -29
- package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +18 -108
- 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/SelectBtnField/accessibilite/Accessibility.mdx +133 -10
- package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.stories.ts +379 -93
- package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.vue +144 -83
- package/src/components/Customs/Selects/SyAutocomplete/accessibilite/Accessibilite.stories.ts +40 -1
- package/src/components/Customs/Selects/SyAutocomplete/accessibilite/Accessibility.mdx +7 -1
- package/src/components/Customs/Selects/SyAutocomplete/locales.ts +5 -0
- package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.a11y.spec.ts +96 -0
- package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.spec.ts +234 -9
- package/src/components/Customs/Selects/SyAutocomplete/utils/ariaManager.ts +13 -3
- package/src/components/Customs/Selects/SyAutocomplete/utils/useSelectionLogic.ts +9 -10
- 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 +63 -3
- package/src/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.ts +1 -1
- package/src/components/Customs/Selects/SySelect/locales.ts +1 -0
- 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/SyIcon/tests/SyIcon.a11y.spec.ts +20 -0
- package/src/components/Customs/SyIconButton/SyIconButton.mdx +46 -0
- package/src/components/Customs/SyIconButton/SyIconButton.stories.ts +184 -0
- package/src/components/Customs/SyIconButton/SyIconButton.vue +38 -0
- package/src/components/Customs/SyIconButton/accessibilite/Accessibility.mdx +64 -0
- package/src/components/Customs/SyIconButton/tests/SyIconButton.a11y.spec.ts +87 -0
- package/src/components/Customs/SyIconButton/tests/SyIconButton.spec.ts +152 -0
- package/src/components/Customs/SyIconButton/tests/__snapshots__/SyIconButton.spec.ts.snap +61 -0
- package/src/components/Customs/SyPagination/SyPagination.stories.ts +14 -2
- package/src/components/Customs/SyPagination/SyPagination.vue +25 -10
- 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 +59 -7
- package/src/components/Customs/SyTextField/accessibilite/Accessibility.mdx +67 -9
- package/src/components/Customs/SyTextField/tests/SyTextField.a11y.spec.ts +15 -0
- package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +36 -0
- package/src/components/DataList/accessibilite/Accessibility.mdx +79 -11
- package/src/components/DataListGroup/accessibilite/Accessibility.mdx +80 -11
- 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/DownloadBtn/tests/DownloadBtn.a11y.spec.ts +25 -0
- package/src/components/ErrorPage/ErrorPage.stories.ts +176 -47
- package/src/components/ErrorPage/ErrorPage.vue +21 -0
- package/src/components/ErrorPage/accessibilite/Accessibility.mdx +15 -0
- package/src/components/ErrorPage/tests/ErrorPage.a11y.spec.ts +17 -0
- package/src/components/ErrorPage/tests/ErrorPage.spec.ts +21 -1
- package/src/components/ErrorPage/tests/__snapshots__/ErrorPage.spec.ts.snap +1 -0
- package/src/components/ExternalLinks/tests/ExternalLinks.a11y.spec.ts +23 -0
- package/src/components/ExternalLinks/tests/__snapshots__/ExternalLinks.spec.ts.snap +13 -2
- package/src/components/FileList/FileList.stories.ts +55 -1
- package/src/components/FileList/UploadItem/UploadItem.vue +17 -5
- package/src/components/FileList/UploadItem/locales.ts +3 -2
- package/src/components/FileList/accessibilite/Accessibility.mdx +58 -7
- package/src/components/FileUpload/FileUpload.vue +62 -38
- package/src/components/FileUpload/FileUploadContent.vue +3 -2
- 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 +61 -14
- package/src/components/FileUpload/validateFiles.ts +5 -2
- 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/FranceConnectBtn/accessibilite/Accessibility.mdx +62 -9
- package/src/components/HeaderBar/HeaderBar.stories.ts +23 -1
- package/src/components/HeaderBar/HeaderBar.vue +5 -0
- package/src/components/HeaderBar/HeaderLogo/HeaderLogo.vue +8 -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 +3 -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/LunarCalendar/accessibilite/Accessibility.mdx +74 -8
- package/src/components/LunarCalendar/tests/LunarCalendar.a11y.spec.ts +163 -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 -1
- package/src/components/MaintenancePage/tests/__snapshots__/MaintenancePage.spec.ts.snap +1 -0
- package/src/components/MonthPicker/MonthPicker.mdx +35 -0
- package/src/components/MonthPicker/MonthPicker.stories.ts +527 -0
- package/src/components/MonthPicker/MonthPicker.vue +79 -0
- package/src/components/MonthPicker/MonthPickerText/MonthPickerInput.vue +89 -0
- package/src/components/MonthPicker/MonthPickerText/useTextField.ts +27 -0
- package/src/components/MonthPicker/MonthPickerVisual/MonthPickerVisual.vue +154 -0
- package/src/components/MonthPicker/MonthPickerVisual/MonthPickerVisualProps.ts +13 -0
- package/src/components/MonthPicker/MonthPickerVisual/MonthSelector.vue +137 -0
- package/src/components/MonthPicker/MonthPickerVisual/VisualPickerFooter.vue +60 -0
- package/src/components/MonthPicker/MonthPickerVisual/VisualPickerHeader.vue +149 -0
- package/src/components/MonthPicker/MonthPickerVisual/YearSelector.vue +143 -0
- package/src/components/MonthPicker/MonthPickerVisual/useMonthGrid.ts +45 -0
- package/src/components/MonthPicker/MonthPickerVisual/useYearGrid.ts +45 -0
- package/src/components/MonthPicker/MonthPickerVisual/utils.ts +17 -0
- package/src/components/MonthPicker/accessibilite/Accessibility.mdx +59 -0
- package/src/components/MonthPicker/locales.ts +12 -0
- package/src/components/MonthPicker/tests/MonthPicker.a11y.spec.ts +71 -0
- package/src/components/MonthPicker/tests/MonthPicker.spec.ts +1248 -0
- package/src/components/MonthPicker/tests/__snapshots__/MonthPicker.spec.ts.snap +2545 -0
- package/src/components/MonthPicker/useMonthPickerValidation.ts +30 -0
- package/src/components/NirField/NirField.mdx +1 -2
- package/src/components/NirField/NirField.stories.ts +66 -6
- 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 +24 -2
- package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +24 -14
- package/src/components/NotificationBar/Notification/Notification.vue +3 -1
- package/src/components/NotificationBar/NotificationBar.stories.ts +154 -0
- package/src/components/NotificationBar/tests/NotificationBar.a11y.spec.ts +26 -0
- package/src/components/NotificationBar/tests/NotificationBar.spec.ts +60 -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/RangeField/accessibilite/Accessibility.mdx +79 -11
- 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/SkipLink/tests/SkipLink.a11y.spec.ts +23 -0
- package/src/components/SocialMediaLinks/SocialMediaLinks.vue +1 -1
- package/src/components/StatusPage/StatusPage.mdx +10 -1
- package/src/components/StatusPage/StatusPage.stories.ts +161 -0
- package/src/components/StatusPage/StatusPage.vue +29 -5
- package/src/components/StatusPage/accessibilite/Accessibility.mdx +24 -5
- package/src/components/StatusPage/tests/StatusPage.a11y.spec.ts +23 -0
- package/src/components/StatusPage/tests/StatusPage.spec.ts +25 -0
- package/src/components/StatusPage/tests/__snapshots__/StatusPage.spec.ts.snap +24 -14
- 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/SubHeader/tests/SubHeader.a11y.spec.ts +20 -0
- package/src/components/SyAlert/SyAlert.vue +22 -20
- package/src/components/SyAlert/accessibilite/Accessibility.mdx +79 -9
- package/src/components/SyAlert/tests/SyAlert.a11y.spec.ts +23 -0
- 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.a11y.test.ts +149 -0
- package/src/components/SyHeading/SyHeading.test.ts +115 -0
- package/src/components/SyHeading/SyHeading.vue +20 -0
- package/src/components/SyTextArea/accessibilite/Accessibility.mdx +80 -8
- package/src/components/SyTextArea/tests/SyTextArea.a11y.spec.ts +151 -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/ToolbarContainer/tests/ToolbarContainer.a11y.spec.ts +126 -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 +146 -123
- 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 +2 -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/composables/useFormFieldErrorHandling.ts +11 -2
- package/src/designTokens/tokens/amelipro/apLightTheme.ts +27 -15
- package/src/designTokens/tokens/amelipro/apSemantic.ts +21 -15
- package/src/designTokens/tokens/cnam/cnamContextual.ts +6 -1
- 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/main.ts +2 -0
- 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
|
@@ -6,6 +6,7 @@ describe('SyTablePagination.vue', () => {
|
|
|
6
6
|
it('renders the component with default props', () => {
|
|
7
7
|
const wrapper = mount(SyTablePagination, {
|
|
8
8
|
props: {
|
|
9
|
+
headingLevel: 2,
|
|
9
10
|
page: 1,
|
|
10
11
|
itemsPerPage: 10,
|
|
11
12
|
itemsLength: 100,
|
|
@@ -19,6 +20,7 @@ describe('SyTablePagination.vue', () => {
|
|
|
19
20
|
it('displays pagination when there are multiple pages', () => {
|
|
20
21
|
const wrapper = mount(SyTablePagination, {
|
|
21
22
|
props: {
|
|
23
|
+
headingLevel: 2,
|
|
22
24
|
page: 1,
|
|
23
25
|
itemsPerPage: 10,
|
|
24
26
|
itemsLength: 100,
|
|
@@ -31,6 +33,7 @@ describe('SyTablePagination.vue', () => {
|
|
|
31
33
|
it('does not display pagination navigation when there is only one page', () => {
|
|
32
34
|
const wrapper = mount(SyTablePagination, {
|
|
33
35
|
props: {
|
|
36
|
+
headingLevel: 2,
|
|
34
37
|
page: 1,
|
|
35
38
|
itemsPerPage: 10,
|
|
36
39
|
itemsLength: 5,
|
|
@@ -44,6 +47,7 @@ describe('SyTablePagination.vue', () => {
|
|
|
44
47
|
it('always shows items per page selector even with only one page', () => {
|
|
45
48
|
const wrapper = mount(SyTablePagination, {
|
|
46
49
|
props: {
|
|
50
|
+
headingLevel: 2,
|
|
47
51
|
page: 1,
|
|
48
52
|
itemsPerPage: 10,
|
|
49
53
|
itemsLength: 5,
|
|
@@ -59,6 +63,7 @@ describe('SyTablePagination.vue', () => {
|
|
|
59
63
|
// Test with standard value
|
|
60
64
|
const wrapper1 = mount(SyTablePagination, {
|
|
61
65
|
props: {
|
|
66
|
+
headingLevel: 2,
|
|
62
67
|
page: 1,
|
|
63
68
|
itemsPerPage: 10, // Standard value
|
|
64
69
|
itemsLength: 42,
|
|
@@ -66,16 +71,17 @@ describe('SyTablePagination.vue', () => {
|
|
|
66
71
|
},
|
|
67
72
|
})
|
|
68
73
|
|
|
69
|
-
const vm1 = wrapper1.vm as unknown as {
|
|
70
|
-
expect(vm1.
|
|
74
|
+
const vm1 = wrapper1.vm as unknown as { formatedItemsPerPageOptions: Array<{ text: string, value: number }> }
|
|
75
|
+
expect(vm1.formatedItemsPerPageOptions).toBeDefined()
|
|
71
76
|
|
|
72
|
-
const options1 = vm1.
|
|
77
|
+
const options1 = vm1.formatedItemsPerPageOptions
|
|
73
78
|
// Should have standard options 5, 10, 25, 50, 100) plus the 'All' option (-1)
|
|
74
79
|
expect(options1.map(o => o.value).sort((a, b) => a - b)).toEqual([-1, 5, 10, 25, 50, 100])
|
|
75
80
|
|
|
76
81
|
// Test with custom value
|
|
77
82
|
const wrapper2 = mount(SyTablePagination, {
|
|
78
83
|
props: {
|
|
84
|
+
headingLevel: 2,
|
|
79
85
|
page: 1,
|
|
80
86
|
itemsPerPage: 42, // Custom value
|
|
81
87
|
itemsLength: 100,
|
|
@@ -83,8 +89,8 @@ describe('SyTablePagination.vue', () => {
|
|
|
83
89
|
},
|
|
84
90
|
})
|
|
85
91
|
|
|
86
|
-
const vm2 = wrapper2.vm as unknown as {
|
|
87
|
-
const options2 = vm2.
|
|
92
|
+
const vm2 = wrapper2.vm as unknown as { formatedItemsPerPageOptions: Array<{ text: string, value: number }> }
|
|
93
|
+
const options2 = vm2.formatedItemsPerPageOptions
|
|
88
94
|
|
|
89
95
|
// Should include the custom value (42)
|
|
90
96
|
const hasCustomValue = options2.some(option => option.value === 42)
|
|
@@ -97,6 +103,7 @@ describe('SyTablePagination.vue', () => {
|
|
|
97
103
|
it('shows correct range when "All" is selected', async () => {
|
|
98
104
|
const wrapper = mount(SyTablePagination, {
|
|
99
105
|
props: {
|
|
106
|
+
headingLevel: 2,
|
|
100
107
|
page: 1,
|
|
101
108
|
itemsPerPage: -1, // "All" option
|
|
102
109
|
itemsLength: 42,
|
|
@@ -111,6 +118,7 @@ describe('SyTablePagination.vue', () => {
|
|
|
111
118
|
it('emits update:page event when SyPagination emits update:modelValue', async () => {
|
|
112
119
|
const wrapper = mount(SyTablePagination, {
|
|
113
120
|
props: {
|
|
121
|
+
headingLevel: 2,
|
|
114
122
|
page: 1,
|
|
115
123
|
itemsPerPage: 10,
|
|
116
124
|
itemsLength: 100,
|
|
@@ -130,6 +138,7 @@ describe('SyTablePagination.vue', () => {
|
|
|
130
138
|
it('has the correct structure for items per page selection', () => {
|
|
131
139
|
const wrapper = mount(SyTablePagination, {
|
|
132
140
|
props: {
|
|
141
|
+
headingLevel: 2,
|
|
133
142
|
page: 1,
|
|
134
143
|
itemsPerPage: 10,
|
|
135
144
|
itemsLength: 100,
|
|
@@ -144,10 +153,11 @@ describe('SyTablePagination.vue', () => {
|
|
|
144
153
|
})
|
|
145
154
|
|
|
146
155
|
// Tests for itemsPerPageOptions functionality
|
|
147
|
-
describe('
|
|
148
|
-
it('should use default options when
|
|
156
|
+
describe('formatedItemsPerPageOptions', () => {
|
|
157
|
+
it('should use default options when formatedItemsPerPageOptions is not provided', () => {
|
|
149
158
|
const wrapper = mount(SyTablePagination, {
|
|
150
159
|
props: {
|
|
160
|
+
headingLevel: 2,
|
|
151
161
|
page: 1,
|
|
152
162
|
pageCount: 5,
|
|
153
163
|
itemsPerPage: 10,
|
|
@@ -156,15 +166,16 @@ describe('SyTablePagination.vue', () => {
|
|
|
156
166
|
})
|
|
157
167
|
|
|
158
168
|
// Should have default options: 5, 10, 25, 50, 100, and "Tous" (-1)
|
|
159
|
-
const vm = wrapper.vm as unknown as {
|
|
160
|
-
const selectOptions = vm.
|
|
169
|
+
const vm = wrapper.vm as unknown as { formatedItemsPerPageOptions: Array<{ text: string, value: number }> }
|
|
170
|
+
const selectOptions = vm.formatedItemsPerPageOptions
|
|
161
171
|
expect(selectOptions).toHaveLength(6)
|
|
162
172
|
expect(selectOptions.map(opt => opt.value)).toEqual([5, 10, 25, 50, 100, -1])
|
|
163
173
|
})
|
|
164
174
|
|
|
165
|
-
it('should limit options when
|
|
175
|
+
it('should limit options when formatedItemsPerPageOptions is provided', () => {
|
|
166
176
|
const wrapper = mount(SyTablePagination, {
|
|
167
177
|
props: {
|
|
178
|
+
headingLevel: 2,
|
|
168
179
|
page: 1,
|
|
169
180
|
pageCount: 5,
|
|
170
181
|
itemsPerPage: 10,
|
|
@@ -174,16 +185,17 @@ describe('SyTablePagination.vue', () => {
|
|
|
174
185
|
})
|
|
175
186
|
|
|
176
187
|
// Should only have the limited options, no "Tous" option
|
|
177
|
-
const vm = wrapper.vm as unknown as {
|
|
178
|
-
const selectOptions = vm.
|
|
188
|
+
const vm = wrapper.vm as unknown as { formatedItemsPerPageOptions: Array<{ text: string, value: number }> }
|
|
189
|
+
const selectOptions = vm.formatedItemsPerPageOptions
|
|
179
190
|
expect(selectOptions).toHaveLength(3)
|
|
180
191
|
expect(selectOptions.map(opt => opt.value)).toEqual([5, 10, 25])
|
|
181
192
|
expect(selectOptions.map(opt => opt.text)).toEqual(['5', '10', '25'])
|
|
182
193
|
})
|
|
183
194
|
|
|
184
|
-
it('should include "Tous" option when explicitly allowed in
|
|
195
|
+
it('should include "Tous" option when explicitly allowed in formatedItemsPerPageOptions', () => {
|
|
185
196
|
const wrapper = mount(SyTablePagination, {
|
|
186
197
|
props: {
|
|
198
|
+
headingLevel: 2,
|
|
187
199
|
page: 1,
|
|
188
200
|
pageCount: 5,
|
|
189
201
|
itemsPerPage: 10,
|
|
@@ -193,8 +205,8 @@ describe('SyTablePagination.vue', () => {
|
|
|
193
205
|
})
|
|
194
206
|
|
|
195
207
|
// Should have the limited options plus "Tous"
|
|
196
|
-
const vm = wrapper.vm as unknown as {
|
|
197
|
-
const selectOptions = vm.
|
|
208
|
+
const vm = wrapper.vm as unknown as { formatedItemsPerPageOptions: Array<{ text: string, value: number }> }
|
|
209
|
+
const selectOptions = vm.formatedItemsPerPageOptions
|
|
198
210
|
expect(selectOptions).toHaveLength(4)
|
|
199
211
|
expect(selectOptions.map(opt => opt.value)).toEqual([5, 10, 25, -1])
|
|
200
212
|
|
|
@@ -207,6 +219,7 @@ describe('SyTablePagination.vue', () => {
|
|
|
207
219
|
it('should add current itemsPerPage to options if not already included', () => {
|
|
208
220
|
const wrapper = mount(SyTablePagination, {
|
|
209
221
|
props: {
|
|
222
|
+
headingLevel: 2,
|
|
210
223
|
page: 1,
|
|
211
224
|
pageCount: 5,
|
|
212
225
|
itemsPerPage: 15, // Not in the itemsPerPageOptions
|
|
@@ -216,8 +229,8 @@ describe('SyTablePagination.vue', () => {
|
|
|
216
229
|
})
|
|
217
230
|
|
|
218
231
|
// Should include the current itemsPerPage value and sort numerically
|
|
219
|
-
const vm = wrapper.vm as unknown as {
|
|
220
|
-
const selectOptions = vm.
|
|
232
|
+
const vm = wrapper.vm as unknown as { formatedItemsPerPageOptions: Array<{ text: string, value: number }> }
|
|
233
|
+
const selectOptions = vm.formatedItemsPerPageOptions
|
|
221
234
|
expect(selectOptions).toHaveLength(4)
|
|
222
235
|
expect(selectOptions.map(opt => opt.value)).toEqual([5, 10, 15, 25])
|
|
223
236
|
})
|
|
@@ -225,6 +238,7 @@ describe('SyTablePagination.vue', () => {
|
|
|
225
238
|
it('should not add current itemsPerPage if it is -1 (Tous)', () => {
|
|
226
239
|
const wrapper = mount(SyTablePagination, {
|
|
227
240
|
props: {
|
|
241
|
+
headingLevel: 2,
|
|
228
242
|
page: 1,
|
|
229
243
|
pageCount: 5,
|
|
230
244
|
itemsPerPage: -1, // "Tous" option
|
|
@@ -233,9 +247,9 @@ describe('SyTablePagination.vue', () => {
|
|
|
233
247
|
},
|
|
234
248
|
})
|
|
235
249
|
|
|
236
|
-
// Should not add -1 to the options since
|
|
237
|
-
const vm = wrapper.vm as unknown as {
|
|
238
|
-
const selectOptions = vm.
|
|
250
|
+
// Should not add -1 to the options since formatedItemsPerPageOptions doesn't include it
|
|
251
|
+
const vm = wrapper.vm as unknown as { formatedItemsPerPageOptions: Array<{ text: string, value: number }> }
|
|
252
|
+
const selectOptions = vm.formatedItemsPerPageOptions
|
|
239
253
|
expect(selectOptions).toHaveLength(3)
|
|
240
254
|
expect(selectOptions.map(opt => opt.value)).toEqual([5, 10, 25])
|
|
241
255
|
expect(selectOptions.find(opt => opt.value === -1)).toBeUndefined()
|
|
@@ -244,6 +258,7 @@ describe('SyTablePagination.vue', () => {
|
|
|
244
258
|
it('should work with very restrictive options', () => {
|
|
245
259
|
const wrapper = mount(SyTablePagination, {
|
|
246
260
|
props: {
|
|
261
|
+
headingLevel: 2,
|
|
247
262
|
page: 1,
|
|
248
263
|
pageCount: 5,
|
|
249
264
|
itemsPerPage: 5,
|
|
@@ -253,8 +268,8 @@ describe('SyTablePagination.vue', () => {
|
|
|
253
268
|
})
|
|
254
269
|
|
|
255
270
|
// Should only have one option
|
|
256
|
-
const vm = wrapper.vm as unknown as {
|
|
257
|
-
const selectOptions = vm.
|
|
271
|
+
const vm = wrapper.vm as unknown as { formatedItemsPerPageOptions: Array<{ text: string, value: number }> }
|
|
272
|
+
const selectOptions = vm.formatedItemsPerPageOptions
|
|
258
273
|
expect(selectOptions).toHaveLength(1)
|
|
259
274
|
expect(selectOptions.map(opt => opt.value)).toEqual([5])
|
|
260
275
|
expect(selectOptions.map(opt => opt.text)).toEqual(['5'])
|
|
@@ -263,6 +278,7 @@ describe('SyTablePagination.vue', () => {
|
|
|
263
278
|
it('should handle empty itemsPerPageOptions array', () => {
|
|
264
279
|
const wrapper = mount(SyTablePagination, {
|
|
265
280
|
props: {
|
|
281
|
+
headingLevel: 2,
|
|
266
282
|
page: 1,
|
|
267
283
|
pageCount: 5,
|
|
268
284
|
itemsPerPage: 10,
|
|
@@ -272,8 +288,8 @@ describe('SyTablePagination.vue', () => {
|
|
|
272
288
|
})
|
|
273
289
|
|
|
274
290
|
// Should only include the current itemsPerPage since base options are empty
|
|
275
|
-
const vm = wrapper.vm as unknown as {
|
|
276
|
-
const selectOptions = vm.
|
|
291
|
+
const vm = wrapper.vm as unknown as { formatedItemsPerPageOptions: Array<{ text: string, value: number }> }
|
|
292
|
+
const selectOptions = vm.formatedItemsPerPageOptions
|
|
277
293
|
expect(selectOptions).toHaveLength(1)
|
|
278
294
|
expect(selectOptions.map(opt => opt.value)).toEqual([10])
|
|
279
295
|
})
|
|
@@ -98,6 +98,7 @@ export type SyTableProps = {
|
|
|
98
98
|
multiSort?: boolean
|
|
99
99
|
mustSort?: boolean
|
|
100
100
|
itemsPerPageOptions?: number[]
|
|
101
|
+
headingLevel?: 1 | 2 | 3 | 4 | 5 | 6
|
|
101
102
|
}
|
|
102
103
|
|
|
103
104
|
export type SyServerTableProps = {
|
|
@@ -120,4 +121,6 @@ export type SyServerTableProps = {
|
|
|
120
121
|
multiSort?: boolean
|
|
121
122
|
mustSort?: boolean
|
|
122
123
|
itemsPerPageOptions?: number[]
|
|
124
|
+
headingLevel?: 1 | 2 | 3 | 4 | 5 | 6
|
|
125
|
+
|
|
123
126
|
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest'
|
|
2
|
+
import { mount } from '@vue/test-utils'
|
|
3
|
+
import { axe } from 'vitest-axe'
|
|
4
|
+
import { assertNoA11yViolations } from '@tests/unit/accessibility/axeUtils'
|
|
5
|
+
import ToolbarContainer from '../ToolbarContainer.vue'
|
|
6
|
+
|
|
7
|
+
// Scénario d'accessibilité : barre d'outils avec des boutons de navigation
|
|
8
|
+
// Le composant doit avoir un rôle toolbar et gérer la navigation au clavier
|
|
9
|
+
describe('ToolbarContainer – accessibility (axe)', () => {
|
|
10
|
+
it('should not have any axe violations with default buttons', async () => {
|
|
11
|
+
const wrapper = mount(ToolbarContainer, {
|
|
12
|
+
slots: {
|
|
13
|
+
default: `
|
|
14
|
+
<VBtn>Action 1</VBtn>
|
|
15
|
+
<VBtn>Action 2</VBtn>
|
|
16
|
+
<VBtn>Action 3</VBtn>
|
|
17
|
+
`,
|
|
18
|
+
},
|
|
19
|
+
attachTo: document.body,
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
const results = await axe(wrapper.element)
|
|
23
|
+
assertNoA11yViolations(results, 'ToolbarContainer with default buttons')
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
it('should not have any axe violations with custom content', async () => {
|
|
27
|
+
const wrapper = mount(ToolbarContainer, {
|
|
28
|
+
slots: {
|
|
29
|
+
default: `
|
|
30
|
+
<div>
|
|
31
|
+
<VBtn icon="mdi-plus" aria-label="Ajouter"></VBtn>
|
|
32
|
+
<VBtn icon="mdi-minus" aria-label="Retirer"></VBtn>
|
|
33
|
+
<button aria-label="Action personnalisée">Custom Button</button>
|
|
34
|
+
</div>
|
|
35
|
+
`,
|
|
36
|
+
},
|
|
37
|
+
attachTo: document.body,
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
const results = await axe(wrapper.element)
|
|
41
|
+
assertNoA11yViolations(results, 'ToolbarContainer with custom content')
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
it('should not have any axe violations with disabled buttons', async () => {
|
|
45
|
+
const wrapper = mount(ToolbarContainer, {
|
|
46
|
+
slots: {
|
|
47
|
+
default: `
|
|
48
|
+
<VBtn>Action 1</VBtn>
|
|
49
|
+
<VBtn disabled>Action 2</VBtn>
|
|
50
|
+
<VBtn>Action 3</VBtn>
|
|
51
|
+
`,
|
|
52
|
+
},
|
|
53
|
+
attachTo: document.body,
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
const results = await axe(wrapper.element)
|
|
57
|
+
assertNoA11yViolations(results, 'ToolbarContainer with disabled buttons')
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
it('should not have any axe violations with links and buttons', async () => {
|
|
61
|
+
const wrapper = mount(ToolbarContainer, {
|
|
62
|
+
slots: {
|
|
63
|
+
default: `
|
|
64
|
+
<VBtn>Action Button</VBtn>
|
|
65
|
+
<a href="#home" aria-label="Accueil">Home Link</a>
|
|
66
|
+
<input type="text" placeholder="Rechercher" aria-label="Recherche" />
|
|
67
|
+
`,
|
|
68
|
+
},
|
|
69
|
+
attachTo: document.body,
|
|
70
|
+
})
|
|
71
|
+
|
|
72
|
+
const results = await axe(wrapper.element)
|
|
73
|
+
assertNoA11yViolations(results, 'ToolbarContainer with mixed focusable elements')
|
|
74
|
+
})
|
|
75
|
+
|
|
76
|
+
it('should have proper toolbar role and attributes', async () => {
|
|
77
|
+
const wrapper = mount(ToolbarContainer, {
|
|
78
|
+
slots: {
|
|
79
|
+
default: `
|
|
80
|
+
<VBtn>Action 1</VBtn>
|
|
81
|
+
<VBtn>Action 2</VBtn>
|
|
82
|
+
`,
|
|
83
|
+
},
|
|
84
|
+
attachTo: document.body,
|
|
85
|
+
})
|
|
86
|
+
|
|
87
|
+
const toolbar = wrapper.find('.sy-toolbar')
|
|
88
|
+
|
|
89
|
+
expect(toolbar.exists()).toBe(true)
|
|
90
|
+
expect(toolbar.attributes('role')).toBe('toolbar')
|
|
91
|
+
expect(toolbar.attributes('tabindex')).toBe('0')
|
|
92
|
+
|
|
93
|
+
const results = await axe(wrapper.element)
|
|
94
|
+
assertNoA11yViolations(results, 'ToolbarContainer role and attributes')
|
|
95
|
+
})
|
|
96
|
+
|
|
97
|
+
it('should handle keyboard navigation accessibility', async () => {
|
|
98
|
+
const wrapper = mount(ToolbarContainer, {
|
|
99
|
+
slots: {
|
|
100
|
+
default: `
|
|
101
|
+
<VBtn>Action 1</VBtn>
|
|
102
|
+
<VBtn>Action 2</VBtn>
|
|
103
|
+
<VBtn>Action 3</VBtn>
|
|
104
|
+
`,
|
|
105
|
+
},
|
|
106
|
+
attachTo: document.body,
|
|
107
|
+
})
|
|
108
|
+
|
|
109
|
+
const toolbar = wrapper.find('.sy-toolbar')
|
|
110
|
+
const buttons = wrapper.findAll('button.v-btn')
|
|
111
|
+
|
|
112
|
+
// Vérifier que les boutons ont le tabindex approprié
|
|
113
|
+
expect(buttons[0]?.attributes('tabindex')).toBe('-1')
|
|
114
|
+
expect(buttons[1]?.attributes('tabindex')).toBe('-1')
|
|
115
|
+
expect(buttons[2]?.attributes('tabindex')).toBe('-1')
|
|
116
|
+
|
|
117
|
+
// Simuler le focus sur la toolbar
|
|
118
|
+
await toolbar.trigger('focus')
|
|
119
|
+
|
|
120
|
+
// Après le focus, le premier bouton devrait être focusable
|
|
121
|
+
expect(buttons[0]?.attributes('tabindex')).toBe('0')
|
|
122
|
+
|
|
123
|
+
const results = await axe(wrapper.element)
|
|
124
|
+
assertNoA11yViolations(results, 'ToolbarContainer keyboard navigation')
|
|
125
|
+
})
|
|
126
|
+
})
|
|
@@ -259,7 +259,7 @@ const meta: Meta<typeof UploadWorkflow> = {
|
|
|
259
259
|
table: {
|
|
260
260
|
category: 'slots',
|
|
261
261
|
type: {
|
|
262
|
-
summary: '{}',
|
|
262
|
+
summary: '{ id: string }',
|
|
263
263
|
},
|
|
264
264
|
},
|
|
265
265
|
control: 'text',
|
|
@@ -386,7 +386,7 @@ export const OptionalDocument: Story = {
|
|
|
386
386
|
const uploadList = [
|
|
387
387
|
{
|
|
388
388
|
id: '1',
|
|
389
|
-
title: 'Carte d'identité',
|
|
389
|
+
title: 'Carte d\\'identité',
|
|
390
390
|
},
|
|
391
391
|
{
|
|
392
392
|
id: '2',
|
|
@@ -395,7 +395,7 @@ export const OptionalDocument: Story = {
|
|
|
395
395
|
},
|
|
396
396
|
{
|
|
397
397
|
id: '3',
|
|
398
|
-
title: 'Relevé d'identité bancaire',
|
|
398
|
+
title: 'Relevé d\\'identité bancaire',
|
|
399
399
|
optional: true,
|
|
400
400
|
},
|
|
401
401
|
]
|
|
@@ -447,7 +447,7 @@ export const WithPreviewStep: Story = {
|
|
|
447
447
|
const uploadList = [
|
|
448
448
|
{
|
|
449
449
|
id: 'ID',
|
|
450
|
-
title: 'Carte d'identité',
|
|
450
|
+
title: 'Carte d\\'identité',
|
|
451
451
|
},
|
|
452
452
|
{
|
|
453
453
|
id: 'Bill',
|
|
@@ -544,7 +544,7 @@ export const OneFile: Story = {
|
|
|
544
544
|
const uploadList = [
|
|
545
545
|
{
|
|
546
546
|
id: 'ID',
|
|
547
|
-
title: 'Carte d'identité',
|
|
547
|
+
title: 'Carte d\\'identité',
|
|
548
548
|
},
|
|
549
549
|
]
|
|
550
550
|
|
|
@@ -661,7 +661,7 @@ export const Events: Story = {
|
|
|
661
661
|
const uploadList = [
|
|
662
662
|
{
|
|
663
663
|
id: 'ID',
|
|
664
|
-
title: 'Carte d'identité',
|
|
664
|
+
title: 'Carte d\\'identité',
|
|
665
665
|
showPreviewBtn: true,
|
|
666
666
|
},
|
|
667
667
|
{
|
|
@@ -784,7 +784,7 @@ export const Slots: Story = {
|
|
|
784
784
|
const uploadList = [
|
|
785
785
|
{
|
|
786
786
|
id: 'ID',
|
|
787
|
-
title: 'Carte d'identité',
|
|
787
|
+
title: 'Carte d\\'identité',
|
|
788
788
|
},
|
|
789
789
|
{
|
|
790
790
|
id: 'Bill',
|
|
@@ -849,7 +849,7 @@ export const Customization: Story = {
|
|
|
849
849
|
const uploadList = [
|
|
850
850
|
{
|
|
851
851
|
id: '1',
|
|
852
|
-
title: 'Carte d'identité',
|
|
852
|
+
title: 'Carte d\\'identité',
|
|
853
853
|
},
|
|
854
854
|
{
|
|
855
855
|
id: '2',
|
|
@@ -931,7 +931,7 @@ export const ManuallySetFile: Story = {
|
|
|
931
931
|
const files = ref([
|
|
932
932
|
{
|
|
933
933
|
id: '1',
|
|
934
|
-
title: 'Carte d'identité',
|
|
934
|
+
title: 'Carte d\\'identité',
|
|
935
935
|
state: 'success',
|
|
936
936
|
fileName: 'carte_identite.jpg',
|
|
937
937
|
optional: false,
|
|
@@ -952,7 +952,7 @@ export const ManuallySetFile: Story = {
|
|
|
952
952
|
const uploadList = [
|
|
953
953
|
{
|
|
954
954
|
id: '1',
|
|
955
|
-
title: 'Carte d'identité',
|
|
955
|
+
title: 'Carte d\\'identité',
|
|
956
956
|
},
|
|
957
957
|
{
|
|
958
958
|
id: '2',
|
|
@@ -1021,7 +1021,7 @@ export const ManuallySetStates: Story = {
|
|
|
1021
1021
|
const files = ref([
|
|
1022
1022
|
{
|
|
1023
1023
|
id: '1',
|
|
1024
|
-
title: 'Carte d'identité',
|
|
1024
|
+
title: 'Carte d\\'identité',
|
|
1025
1025
|
state: 'error',
|
|
1026
1026
|
fileName: 'carte_identite.jpg',
|
|
1027
1027
|
optional: false,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
+
import SySelect from '@/components/Customs/Selects/SySelect/SySelect.vue'
|
|
2
3
|
import useCustomizableOptions, {
|
|
3
4
|
type CustomizableOptions,
|
|
4
5
|
} from '@/composables/useCustomizableOptions'
|
|
@@ -14,6 +15,7 @@
|
|
|
14
15
|
import type { FileItem, SelectedFile, UploadItem } from './types'
|
|
15
16
|
import useFileUploadJourney from './useFileUploadJourney'
|
|
16
17
|
import useFileList from './useFileList'
|
|
18
|
+
import SyHeading from '../SyHeading/SyHeading.vue'
|
|
17
19
|
|
|
18
20
|
const props = withDefaults(
|
|
19
21
|
defineProps<
|
|
@@ -23,7 +25,7 @@
|
|
|
23
25
|
sectionTitle?: string
|
|
24
26
|
showFilePreview?: boolean
|
|
25
27
|
infoText?: string
|
|
26
|
-
headingLevel?:
|
|
28
|
+
headingLevel?: 1 | 2 | 3 | 4 | 5 | 6
|
|
27
29
|
locales?: typeof defaultLocales
|
|
28
30
|
}
|
|
29
31
|
>(),
|
|
@@ -42,6 +44,13 @@
|
|
|
42
44
|
(e: 'update:modelValue', value: SelectedFile[]): void
|
|
43
45
|
}>()
|
|
44
46
|
|
|
47
|
+
defineSlots<{
|
|
48
|
+
'title'?: () => undefined
|
|
49
|
+
'modal-title'?: (props: { id: string }) => undefined
|
|
50
|
+
'modal-description'?: () => undefined
|
|
51
|
+
'preview-description'?: () => undefined
|
|
52
|
+
}>()
|
|
53
|
+
|
|
45
54
|
const selectedFiles = defineModel<SelectedFile[]>({
|
|
46
55
|
type: Array,
|
|
47
56
|
default: () => [],
|
|
@@ -137,13 +146,12 @@
|
|
|
137
146
|
class="sy-upload-workflow white"
|
|
138
147
|
>
|
|
139
148
|
<slot name="title">
|
|
140
|
-
<
|
|
141
|
-
:
|
|
142
|
-
|
|
143
|
-
class="text-h6 mb-2"
|
|
149
|
+
<SyHeading
|
|
150
|
+
:level="props.headingLevel"
|
|
151
|
+
:class="headingLevel === 4 ? 'text-h6 mb-2' : 'mb-2'"
|
|
144
152
|
>
|
|
145
153
|
{{ title }}
|
|
146
|
-
</
|
|
154
|
+
</SyHeading>
|
|
147
155
|
</slot>
|
|
148
156
|
|
|
149
157
|
<FileList
|
|
@@ -175,24 +183,32 @@
|
|
|
175
183
|
|
|
176
184
|
<DialogBox
|
|
177
185
|
v-model="showSelectDialog"
|
|
186
|
+
:heading-level="props.headingLevel"
|
|
178
187
|
v-bind="options.dialog"
|
|
179
188
|
@cancel="showSelectDialog = false"
|
|
180
189
|
@confirm="dialogConfirm"
|
|
181
190
|
>
|
|
182
|
-
<template #title>
|
|
183
|
-
<slot
|
|
184
|
-
|
|
191
|
+
<template #title="titleSlotProps">
|
|
192
|
+
<slot
|
|
193
|
+
:id="titleSlotProps.id"
|
|
194
|
+
name="modal-title"
|
|
195
|
+
>
|
|
196
|
+
<div
|
|
197
|
+
:id="titleSlotProps.id"
|
|
198
|
+
class="text-h4 font-weight-medium"
|
|
199
|
+
>
|
|
200
|
+
{{ locales.modalTitle }}
|
|
201
|
+
</div>
|
|
185
202
|
</slot>
|
|
186
203
|
</template>
|
|
187
204
|
<slot name="modal-description" />
|
|
188
205
|
|
|
189
|
-
<
|
|
190
|
-
v-if="true"
|
|
206
|
+
<div
|
|
191
207
|
ref="form"
|
|
192
208
|
v-bind="options.form"
|
|
193
209
|
class="mb-2"
|
|
194
210
|
>
|
|
195
|
-
<
|
|
211
|
+
<SySelect
|
|
196
212
|
v-model="selectedItem"
|
|
197
213
|
v-bind="options.select"
|
|
198
214
|
:items="selectItems"
|
|
@@ -201,7 +217,7 @@
|
|
|
201
217
|
:rules="[isRequired]"
|
|
202
218
|
color="primary"
|
|
203
219
|
/>
|
|
204
|
-
</
|
|
220
|
+
</div>
|
|
205
221
|
|
|
206
222
|
<FilePreview
|
|
207
223
|
v-if="showFilePreview"
|
|
@@ -212,6 +228,7 @@
|
|
|
212
228
|
|
|
213
229
|
<DialogBox
|
|
214
230
|
v-model="showPreviewDialog"
|
|
231
|
+
:heading-level="props.headingLevel"
|
|
215
232
|
v-bind="options.previewDialog"
|
|
216
233
|
hide-actions
|
|
217
234
|
>
|
|
@@ -1,12 +1,63 @@
|
|
|
1
1
|
import { Meta, Story } from '@storybook/addon-docs';
|
|
2
2
|
import * as Stories from '../UploadWorkflow.stories.ts';
|
|
3
3
|
import '@/stories/styles/shared.css';
|
|
4
|
+
import AccessibilityIcon from '@/common/imgs/accessibility-svgrepo-com.svg';
|
|
5
|
+
import {
|
|
6
|
+
AccessibilityGuideLayout,
|
|
7
|
+
CriteriaSection,
|
|
8
|
+
CriteriaCard,
|
|
9
|
+
DemoSection,
|
|
10
|
+
BestPracticesSection,
|
|
11
|
+
ResourcesSection,
|
|
12
|
+
} from '@/stories/accessibility/AccessibilityGuideLayout.mdx';
|
|
4
13
|
|
|
5
14
|
<Meta of={Stories} />
|
|
15
|
+
<AccessibilityGuideLayout
|
|
16
|
+
componentName="UploadWorkflow"
|
|
17
|
+
iconSrc={AccessibilityIcon}
|
|
18
|
+
>
|
|
19
|
+
<CriteriaSection>
|
|
6
20
|
|
|
7
|
-
<
|
|
8
|
-
<
|
|
9
|
-
|
|
10
|
-
|
|
21
|
+
<CriteriaCard icon="🧩" title="Niveau de titre configurable via la prop headingLevel">
|
|
22
|
+
<ul>
|
|
23
|
+
<li>Le niveau du titre (h1 à h6) est défini grâce à la propriété <strong>headingLevel</strong> déclarée dans le composant. Si aucune valeur n’est fournie, le composant applique par défaut un titre de niveau h4, défini dans l’implémentation du composant.</li>
|
|
24
|
+
<code><UploadWorkflow
|
|
25
|
+
:heading-level="4" /> </code>
|
|
26
|
+
|
|
27
|
+
<li><strong>Accessibilité</strong> : Permet que la hiérarchie entre les titres soit pertinente (critère 9.1.1 RGAA)</li>
|
|
28
|
+
</ul>
|
|
29
|
+
</CriteriaCard>
|
|
30
|
+
</CriteriaSection>
|
|
31
|
+
<CriteriaSection>
|
|
32
|
+
<CriteriaCard icon="🔍" title="Structure sémantique">
|
|
33
|
+
<ul>
|
|
34
|
+
<li><strong>Niveaux de titres personnalisables</strong> : Permet de choisir le niveau de titre de la zone de contenu.</li>
|
|
35
|
+
<li><strong>Dialog</strong> : Voir la page d'accessibilité des dialogues pour plus d'informations.</li>
|
|
36
|
+
<li><strong>Liste des fichiers</strong> : Utilisation des balises <code>ul</code> et <code>li</code> pour présenter les fichiers téléchargés.</li>
|
|
37
|
+
<li><strong>Actions</strong> : Utilisation des balises <code>button</code> et <code>role="button"</code> pour les actions disponibles.</li>
|
|
38
|
+
<li><strong>Champs de fichier</strong> : Utilisation de <code>input type="file"</code>, <code>label</code> et <code>accept</code> pour les champs de téléchargement de fichiers.</li>
|
|
39
|
+
</ul>
|
|
40
|
+
</CriteriaCard>
|
|
11
41
|
|
|
12
|
-
<
|
|
42
|
+
<CriteriaCard icon="⌨️" title="Navigation clavier complète">
|
|
43
|
+
<ul>
|
|
44
|
+
<li><strong>Boutons d'actions</strong> : Utilisation des touches Espace et Entrée.</li>
|
|
45
|
+
<li><strong>Modal</strong> : Navigation complète au clavier dans les dialogues, y compris la gestion du focus et des raccourcis clavier pour fermer les modals.</li>
|
|
46
|
+
</ul>
|
|
47
|
+
</CriteriaCard>
|
|
48
|
+
</CriteriaSection>
|
|
49
|
+
|
|
50
|
+
<DemoSection componentName="UploadWorkflow">
|
|
51
|
+
<Story name="Default" />
|
|
52
|
+
</DemoSection>
|
|
53
|
+
|
|
54
|
+
<BestPracticesSection>
|
|
55
|
+
<ul>
|
|
56
|
+
<li><strong>Utiliser dans une balise de formulaire</strong> : Intégrer le composant dans une balise <code>form</code> ou le composant <code>SyForm</code> pour la sémantique et l'accessibilité.</li>
|
|
57
|
+
<li><strong>Fournir des messages d'erreur clairs</strong> : Utiliser des messages d'erreur explicites et accessibles pour informer les utilisateurs des problèmes de téléchargement.</li>
|
|
58
|
+
<li><strong>Renseigner le bon niveau de titre</strong> : Choisir le niveau de titre approprié pour la zone de contenu afin de maintenir une structure sémantique claire.</li>
|
|
59
|
+
<li><strong>Gérer les états de téléchargement</strong> : Fournir des indications visuelles et textuelles pour les différents états de téléchargement, y compris les erreurs et les succès.</li>
|
|
60
|
+
</ul>
|
|
61
|
+
</BestPracticesSection>
|
|
62
|
+
|
|
63
|
+
</AccessibilityGuideLayout>
|