@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
|
@@ -207,3 +207,50 @@ export const Card: Story = {
|
|
|
207
207
|
}
|
|
208
208
|
},
|
|
209
209
|
}
|
|
210
|
+
|
|
211
|
+
export const WithAriaRole: Story = {
|
|
212
|
+
parameters: {
|
|
213
|
+
sourceCode: [
|
|
214
|
+
{
|
|
215
|
+
name: 'Template',
|
|
216
|
+
code: `<template>
|
|
217
|
+
<PageContainer
|
|
218
|
+
role="region"
|
|
219
|
+
unique-id="main-content"
|
|
220
|
+
aria-labelledby="main-content-title"
|
|
221
|
+
>
|
|
222
|
+
<h2 id="main-content-title">Contenu principal</h2>
|
|
223
|
+
Contenu de la page
|
|
224
|
+
</PageContainer>
|
|
225
|
+
</template>
|
|
226
|
+
`,
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
name: 'Script',
|
|
230
|
+
code: `<script setup lang="ts">
|
|
231
|
+
import { PageContainer } from '@cnamts/synapse'
|
|
232
|
+
</script>
|
|
233
|
+
`,
|
|
234
|
+
},
|
|
235
|
+
],
|
|
236
|
+
},
|
|
237
|
+
args: {
|
|
238
|
+
role: 'region',
|
|
239
|
+
uniqueId: 'main-content',
|
|
240
|
+
ariaLabelledby: 'main-content-title',
|
|
241
|
+
},
|
|
242
|
+
render: (args) => {
|
|
243
|
+
return {
|
|
244
|
+
components: { PageContainer },
|
|
245
|
+
setup() {
|
|
246
|
+
return { args }
|
|
247
|
+
},
|
|
248
|
+
template: `
|
|
249
|
+
<PageContainer :role="args.role" :unique-id="args.uniqueId" :aria-labelledby="args.ariaLabelledby">
|
|
250
|
+
<h2 id="main-content-title" class="pa-4">Contenu principal</h2>
|
|
251
|
+
<p class="pa-4">Contenu de la page</p>
|
|
252
|
+
</PageContainer>
|
|
253
|
+
`,
|
|
254
|
+
}
|
|
255
|
+
},
|
|
256
|
+
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { computed } from 'vue'
|
|
3
3
|
import { useDisplay } from 'vuetify'
|
|
4
|
-
|
|
5
|
-
type AriaRole = 'main' | 'region' | 'navigation' | 'contentinfo' | 'banner'
|
|
4
|
+
import type { AriaRole } from '../types'
|
|
6
5
|
|
|
7
6
|
const props = withDefaults(defineProps<{
|
|
8
7
|
size?: 'xl' | 'lg' | 'md' | 'sm' | 'xs'
|
|
@@ -10,12 +9,14 @@
|
|
|
10
9
|
color?: string
|
|
11
10
|
uniqueId?: string
|
|
12
11
|
role?: AriaRole
|
|
12
|
+
ariaLabelledby?: string
|
|
13
13
|
}>(), {
|
|
14
14
|
size: undefined,
|
|
15
15
|
spacing: undefined,
|
|
16
16
|
color: 'transparent',
|
|
17
17
|
uniqueId: undefined,
|
|
18
18
|
role: undefined,
|
|
19
|
+
ariaLabelledby: undefined,
|
|
19
20
|
})
|
|
20
21
|
|
|
21
22
|
const display = useDisplay()
|
|
@@ -63,6 +64,7 @@
|
|
|
63
64
|
:id="uniqueId ? `${uniqueId}-container` : undefined"
|
|
64
65
|
:class="[spacingClass, 'vd-page-container d-flex justify-center']"
|
|
65
66
|
:role="role"
|
|
67
|
+
:aria-labelledby="ariaLabelledby"
|
|
66
68
|
>
|
|
67
69
|
<VSheet
|
|
68
70
|
:id="uniqueId ? `${uniqueId}-content` : undefined"
|
|
@@ -25,29 +25,43 @@ import {
|
|
|
25
25
|
<CriteriaSection>
|
|
26
26
|
<CriteriaCard icon="🔍" title="Structure sémantique">
|
|
27
27
|
<ul>
|
|
28
|
-
<li><strong>Id unique</strong> :
|
|
29
|
-
<li><strong>Rôles ARIA
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
</
|
|
28
|
+
<li><strong>Id unique</strong> : la prop <code>uniqueId</code> génère un identifiant sur le conteneur (suffixe <code>-container</code>) et sur le contenu interne (suffixe <code>-content</code>), permettant des relations ARIA robustes</li>
|
|
29
|
+
<li><strong>Rôles ARIA disponibles via la prop <code>role</code></strong> :</li>
|
|
30
|
+
<ul style={{ listStyleType: 'none', paddingLeft: 0 }}>
|
|
31
|
+
<li style={{ listStyleType: '"- "' }}><code>role="region"</code> : contient une zone importante identifiée par un titre</li>
|
|
32
|
+
<li style={{ listStyleType: '"- "' }}><code>role="main"</code> : représente le contenu principal</li>
|
|
33
|
+
<li style={{ listStyleType: '"- "' }}><code>role="banner"</code> : pour l'en-tête du site</li>
|
|
34
|
+
<li style={{ listStyleType: '"- "' }}><code>role="contentinfo"</code> : pour le pied de page du site</li>
|
|
35
|
+
<li style={{ listStyleType: '"- "' }}><code>role="navigation"</code> : pour un conteneur de navigation</li>
|
|
36
|
+
</ul>
|
|
37
|
+
</ul>
|
|
38
|
+
</CriteriaCard>
|
|
39
|
+
|
|
40
|
+
<CriteriaCard icon="🏷️" title="Liaison ARIA">
|
|
41
|
+
<ul>
|
|
42
|
+
<li><strong>Prop <code>ariaLabelledby</code></strong> : permet de lier le conteneur à un titre via son <code>id</code>, renforçant la compréhension par les lecteurs d'écran — particulièrement utile avec <code>role="region"</code></li>
|
|
43
|
+
<li><strong>Avec <code>StatusPage</code></strong> : la liaison est gérée automatiquement via les props <code>role</code> et <code>uniqueId</code> de <code>StatusPage</code></li>
|
|
36
44
|
</ul>
|
|
37
45
|
</CriteriaCard>
|
|
38
46
|
</CriteriaSection>
|
|
39
47
|
|
|
48
|
+
<DemoSection title="Avec rôle et liaison ARIA" componentName="PageContainer">
|
|
49
|
+
<Story of={PageContainerStories.WithAriaRole} />
|
|
50
|
+
</DemoSection>
|
|
51
|
+
|
|
40
52
|
<BestPracticesSection>
|
|
41
53
|
<ul>
|
|
42
|
-
<li>Toujours privilégier les balises HTML sémantiques
|
|
43
|
-
|
|
44
|
-
<li><code>
|
|
45
|
-
<li><code>
|
|
46
|
-
<li><code>
|
|
47
|
-
<li><code>
|
|
48
|
-
<li><code>
|
|
49
|
-
<li><code>
|
|
50
|
-
<li
|
|
54
|
+
<li>Toujours privilégier les balises HTML sémantiques natives avant ARIA :</li>
|
|
55
|
+
<li><code>header</code></li>
|
|
56
|
+
<li><code>nav</code></li>
|
|
57
|
+
<li><code>main</code></li>
|
|
58
|
+
<li><code>footer</code></li>
|
|
59
|
+
<li><code>section (avec un titre)</code></li>
|
|
60
|
+
<li><code>aside</code></li>
|
|
61
|
+
<li><code>article</code></li>
|
|
62
|
+
<li>Toujours associer <code>role="region"</code> à un <code>aria-labelledby</code> pointant vers un titre visible</li>
|
|
63
|
+
<li>Ne pas utiliser <code>role="main"</code> plus d'une fois par page</li>
|
|
64
|
+
<li>Fournir un <code>uniqueId</code> explicite et descriptif pour garantir l'unicité des identifiants générés</li>
|
|
51
65
|
</ul>
|
|
52
66
|
</BestPracticesSection>
|
|
53
67
|
</AccessibilityGuideLayout>
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {Meta, Canvas, Controls, Source} from '@storybook/blocks';
|
|
1
|
+
import {Meta, Canvas, Controls, Source, Story} from '@storybook/blocks';
|
|
2
2
|
import * as PaginatedTableStories from "./PaginatedTable.stories.ts";
|
|
3
3
|
|
|
4
4
|
<Meta of={PaginatedTableStories}/>
|
|
5
5
|
|
|
6
|
+
<Story of={PaginatedTableStories.DeprecationNotice} />
|
|
7
|
+
|
|
6
8
|
<div className="header">
|
|
7
9
|
<h1>PaginatedTable</h1>
|
|
8
10
|
<p>Le composant `PaginatedTable` est utilisé pour afficher une `VDataTable` de Vuetify avec une pagination persistante.</p>
|
|
9
11
|
</div>
|
|
10
12
|
|
|
11
|
-
> **⚠️ Attention** : Ce composant est déprécié au profit des composants [SyTable](?path=/docs/composants-tableaux-sytable--docs) et [SyServerTable](?path=/docs/composants-tableaux-syservertable--docs).
|
|
12
|
-
|
|
13
13
|
<Canvas story={{height: '550px'}} of={PaginatedTableStories.Default}/>
|
|
14
14
|
|
|
15
15
|
# API
|
|
@@ -4,6 +4,7 @@ import { StateEnum } from './constants/StateEnum'
|
|
|
4
4
|
import type { DataOptions } from './types'
|
|
5
5
|
import { ref } from 'vue'
|
|
6
6
|
import type { VDataTable } from 'vuetify/components'
|
|
7
|
+
import { createDeprecationNotice } from '@/stories/DeprecationNotice/DeprecationNotice'
|
|
7
8
|
|
|
8
9
|
interface User {
|
|
9
10
|
[key: string]: string
|
|
@@ -22,7 +23,7 @@ const meta = {
|
|
|
22
23
|
component: PaginatedTable,
|
|
23
24
|
decorators: [
|
|
24
25
|
() => ({
|
|
25
|
-
template: '<div
|
|
26
|
+
template: '<div><story/></div>',
|
|
26
27
|
}),
|
|
27
28
|
],
|
|
28
29
|
parameters: {
|
|
@@ -767,3 +768,10 @@ export const ManyTables: Story = {
|
|
|
767
768
|
}
|
|
768
769
|
},
|
|
769
770
|
}
|
|
771
|
+
|
|
772
|
+
export const DeprecationNotice = {
|
|
773
|
+
...createDeprecationNotice([
|
|
774
|
+
{ label: 'SyTable', url: '?path=/docs/composants-tableaux-sytable--docs' },
|
|
775
|
+
]),
|
|
776
|
+
tags: ['!dev'],
|
|
777
|
+
}
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
bgColor?: string
|
|
33
33
|
density?: 'default' | 'comfortable' | 'compact'
|
|
34
34
|
hideDetails?: boolean | 'auto'
|
|
35
|
+
headingLevel?: 1 | 2 | 3 | 4 | 5 | 6
|
|
35
36
|
}>(), {
|
|
36
37
|
modelValue: () => ({ from: null, to: null }),
|
|
37
38
|
placeholderFrom: 'Début',
|
|
@@ -54,6 +55,7 @@
|
|
|
54
55
|
bgColor: 'white',
|
|
55
56
|
density: 'default',
|
|
56
57
|
hideDetails: false,
|
|
58
|
+
headingLevel: 2,
|
|
57
59
|
})
|
|
58
60
|
|
|
59
61
|
const emit = defineEmits(['update:modelValue'])
|
|
@@ -345,6 +347,7 @@
|
|
|
345
347
|
:error-message="fromDateValidation.hasError"
|
|
346
348
|
:format="props.format"
|
|
347
349
|
:disabled="props.disabled"
|
|
350
|
+
:heading-level="props.headingLevel"
|
|
348
351
|
:is-outlined="props.isOutlined"
|
|
349
352
|
:no-calendar="props.noCalendar"
|
|
350
353
|
:no-icon="props.noIcon"
|
|
@@ -371,6 +374,7 @@
|
|
|
371
374
|
:display-append-icon="props.displayAppendIcon"
|
|
372
375
|
:display-icon="props.displayIcon"
|
|
373
376
|
:error-message="toDateValidation.hasError"
|
|
377
|
+
:heading-level="props.headingLevel"
|
|
374
378
|
:format="props.format"
|
|
375
379
|
:disabled="props.disabled"
|
|
376
380
|
:is-outlined="props.isOutlined"
|
|
@@ -21,9 +21,18 @@ describe('PeriodField – accessibility (axe)', () => {
|
|
|
21
21
|
attachTo: document.body,
|
|
22
22
|
})
|
|
23
23
|
|
|
24
|
+
// TODO : https://github.com/assurance-maladie-digital/design-system-v3/issues/1960
|
|
25
|
+
// 'aria-valid-attr-value' is ignored because Vuetify sets aria-owns on the
|
|
26
|
+
// DatePicker input referencing the VMenu id, but in JSDOM the menu is
|
|
27
|
+
// rendered via <Teleport> and not present in the scanned subtree.
|
|
28
|
+
const ignoreRules = ['region', 'aria-valid-attr-value']
|
|
29
|
+
|
|
24
30
|
const results = await axe(wrapper.element as HTMLElement)
|
|
31
|
+
if (results.violations.filter(violation => !ignoreRules.includes(violation.id)).length > 0) {
|
|
32
|
+
console.log(JSON.stringify(results.violations, null, 2))
|
|
33
|
+
}
|
|
25
34
|
assertNoA11yViolations(results, 'PeriodField – valid period', {
|
|
26
|
-
ignoreRules:
|
|
35
|
+
ignoreRules: ignoreRules,
|
|
27
36
|
})
|
|
28
37
|
|
|
29
38
|
wrapper.unmount()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { StoryObj, Meta } from '@storybook/vue3'
|
|
2
2
|
import PhoneField from './PhoneField.vue'
|
|
3
|
-
import { ref } from 'vue'
|
|
3
|
+
import { ref, watch } from 'vue'
|
|
4
4
|
import { indicatifs } from './indicatifs'
|
|
5
5
|
|
|
6
6
|
const meta = {
|
|
@@ -44,11 +44,11 @@ const meta = {
|
|
|
44
44
|
},
|
|
45
45
|
'autocompleteCountryCode': {
|
|
46
46
|
control: 'text',
|
|
47
|
-
description: 'Valeur de l\'attribut autocomplete pour le champ indicatif pays (
|
|
47
|
+
description: 'Valeur de l\'attribut `autocomplete` pour le champ indicatif pays. Utiliser `tel-country-code` (défaut) lorsque le numéro est séparé en deux champs (indicatif + numéro national), conformément à [WHATWG](https://html.spec.whatwg.org/#autofill-field-tel-country-code) et [WCAG 1.3.5](https://www.w3.org/WAI/WCAG21/quickref/#identify-input-purpose).',
|
|
48
48
|
},
|
|
49
49
|
'autocompletePhone': {
|
|
50
50
|
control: 'text',
|
|
51
|
-
description: 'Valeur de l\'attribut autocomplete pour le champ numéro de téléphone
|
|
51
|
+
description: 'Valeur de l\'attribut `autocomplete` pour le champ numéro de téléphone. Valeurs recommandées selon le scénario :\n\n- `tel-national` (défaut) — numéro sans indicatif, lorsque le composant est en mode deux champs (`withCountryCode`).\n- `tel` — numéro complet avec indicatif intégré, pour un champ unique sans sélecteur de pays.\n- `tel-extension` — poste ou extension téléphonique.',
|
|
52
52
|
},
|
|
53
53
|
'isValidatedOnBlur': { control: 'boolean' },
|
|
54
54
|
'displayAsterisk': { control: 'boolean' },
|
|
@@ -65,7 +65,7 @@ type Story = StoryObj<typeof meta>
|
|
|
65
65
|
export const Default: Story = {
|
|
66
66
|
parameters: {
|
|
67
67
|
a11y: {
|
|
68
|
-
disable:
|
|
68
|
+
disable: false,
|
|
69
69
|
},
|
|
70
70
|
sourceCode: [
|
|
71
71
|
{
|
|
@@ -106,7 +106,7 @@ export const Default: Story = {
|
|
|
106
106
|
},
|
|
107
107
|
args: {
|
|
108
108
|
modelValue: '',
|
|
109
|
-
required:
|
|
109
|
+
required: false,
|
|
110
110
|
outlined: true,
|
|
111
111
|
outlinedIndicatif: true,
|
|
112
112
|
withCountryCode: true,
|
|
@@ -140,7 +140,7 @@ export const Default: Story = {
|
|
|
140
140
|
export const Required: Story = {
|
|
141
141
|
parameters: {
|
|
142
142
|
a11y: {
|
|
143
|
-
disable:
|
|
143
|
+
disable: false,
|
|
144
144
|
},
|
|
145
145
|
sourceCode: [
|
|
146
146
|
{
|
|
@@ -223,7 +223,7 @@ export const RequiredWithAsterisk: Story = {
|
|
|
223
223
|
},
|
|
224
224
|
parameters: {
|
|
225
225
|
a11y: {
|
|
226
|
-
disable:
|
|
226
|
+
disable: false,
|
|
227
227
|
},
|
|
228
228
|
docs: {
|
|
229
229
|
description: {
|
|
@@ -276,7 +276,7 @@ const phoneNumber = ref('')
|
|
|
276
276
|
export const HelpText: Story = {
|
|
277
277
|
parameters: {
|
|
278
278
|
a11y: {
|
|
279
|
-
disable:
|
|
279
|
+
disable: false,
|
|
280
280
|
},
|
|
281
281
|
sourceCode: [
|
|
282
282
|
{
|
|
@@ -399,7 +399,21 @@ const selectedDialCode = ref('')
|
|
|
399
399
|
export const Autocomplete: Story = {
|
|
400
400
|
parameters: {
|
|
401
401
|
a11y: {
|
|
402
|
-
disable:
|
|
402
|
+
disable: false,
|
|
403
|
+
},
|
|
404
|
+
docs: {
|
|
405
|
+
description: {
|
|
406
|
+
story: `
|
|
407
|
+
Les attributs \`autocomplete\` permettent aux navigateurs et aux outils d'assistance de remplir automatiquement les champs avec les bonnes informations utilisateur, conformément à [WCAG 1.3.5 — Identifier la finalité de la saisie](https://www.w3.org/WAI/WCAG21/quickref/#identify-input-purpose).
|
|
408
|
+
|
|
409
|
+
| Scénario | Prop à utiliser | Valeur recommandée | Source |
|
|
410
|
+
|---|---|---|---|
|
|
411
|
+
| **Code pays** (ex : +33) — champ séparé | \`autocompleteCountryCode\` | \`tel-country-code\` | [WHATWG](https://html.spec.whatwg.org/#autofill-field-tel-country-code) |
|
|
412
|
+
| **Numéro sans indicatif** (ex : 06 12 34 56 78) — avec \`withCountryCode\` | \`autocompletePhone\` | \`tel-national\` | [WHATWG](https://html.spec.whatwg.org/#autofill-field-tel-national) |
|
|
413
|
+
| **Numéro complet** (indicatif intégré) — sans \`withCountryCode\` | \`autocompletePhone\` | \`tel\` | [WHATWG](https://html.spec.whatwg.org/#autofill-field-tel) |
|
|
414
|
+
| **Extension / poste** | \`autocompletePhone\` | \`tel-extension\` | [WHATWG](https://html.spec.whatwg.org/#autofill-field-tel-extension) |
|
|
415
|
+
`,
|
|
416
|
+
},
|
|
403
417
|
},
|
|
404
418
|
sourceCode: [
|
|
405
419
|
{
|
|
@@ -472,7 +486,7 @@ const phoneValue3 = ref('')
|
|
|
472
486
|
],
|
|
473
487
|
},
|
|
474
488
|
args: {
|
|
475
|
-
required:
|
|
489
|
+
required: false,
|
|
476
490
|
withCountryCode: true,
|
|
477
491
|
autocompleteCountryCode: 'tel-country-code',
|
|
478
492
|
autocompletePhone: 'tel-national',
|
|
@@ -554,7 +568,7 @@ const phoneValue3 = ref('')
|
|
|
554
568
|
export const CustomIndicatifs: Story = {
|
|
555
569
|
parameters: {
|
|
556
570
|
a11y: {
|
|
557
|
-
disable:
|
|
571
|
+
disable: false,
|
|
558
572
|
},
|
|
559
573
|
sourceCode: [
|
|
560
574
|
{
|
|
@@ -638,7 +652,7 @@ export const CustomIndicatifs: Story = {
|
|
|
638
652
|
export const NotValidatedOnBlur: Story = {
|
|
639
653
|
parameters: {
|
|
640
654
|
a11y: {
|
|
641
|
-
disable:
|
|
655
|
+
disable: false,
|
|
642
656
|
},
|
|
643
657
|
sourceCode: [
|
|
644
658
|
{
|
|
@@ -712,7 +726,7 @@ export const NotValidatedOnBlur: Story = {
|
|
|
712
726
|
export const DisplayFormatCode: Story = {
|
|
713
727
|
parameters: {
|
|
714
728
|
a11y: {
|
|
715
|
-
disable:
|
|
729
|
+
disable: false,
|
|
716
730
|
},
|
|
717
731
|
sourceCode: [
|
|
718
732
|
{
|
|
@@ -761,7 +775,7 @@ export const DisplayFormatCode: Story = {
|
|
|
761
775
|
displayFormat: 'code',
|
|
762
776
|
customIndicatifs: [],
|
|
763
777
|
useCustomIndicatifsOnly: false,
|
|
764
|
-
isValidatedOnBlur:
|
|
778
|
+
isValidatedOnBlur: true,
|
|
765
779
|
readonly: false,
|
|
766
780
|
disabled: false,
|
|
767
781
|
bgColor: 'white',
|
|
@@ -786,7 +800,7 @@ export const DisplayFormatCode: Story = {
|
|
|
786
800
|
export const DisplayFormatCodeAbbreviation: Story = {
|
|
787
801
|
parameters: {
|
|
788
802
|
a11y: {
|
|
789
|
-
disable:
|
|
803
|
+
disable: false,
|
|
790
804
|
},
|
|
791
805
|
sourceCode: [
|
|
792
806
|
{
|
|
@@ -835,7 +849,7 @@ export const DisplayFormatCodeAbbreviation: Story = {
|
|
|
835
849
|
displayFormat: 'code-abbreviation',
|
|
836
850
|
customIndicatifs: [],
|
|
837
851
|
useCustomIndicatifsOnly: false,
|
|
838
|
-
isValidatedOnBlur:
|
|
852
|
+
isValidatedOnBlur: true,
|
|
839
853
|
readonly: false,
|
|
840
854
|
disabled: false,
|
|
841
855
|
bgColor: 'white',
|
|
@@ -860,7 +874,7 @@ export const DisplayFormatCodeAbbreviation: Story = {
|
|
|
860
874
|
export const DisplayFormatCodeCountry: Story = {
|
|
861
875
|
parameters: {
|
|
862
876
|
a11y: {
|
|
863
|
-
disable:
|
|
877
|
+
disable: false,
|
|
864
878
|
},
|
|
865
879
|
sourceCode: [
|
|
866
880
|
{
|
|
@@ -909,7 +923,7 @@ export const DisplayFormatCodeCountry: Story = {
|
|
|
909
923
|
displayFormat: 'code-country',
|
|
910
924
|
customIndicatifs: [],
|
|
911
925
|
useCustomIndicatifsOnly: false,
|
|
912
|
-
isValidatedOnBlur:
|
|
926
|
+
isValidatedOnBlur: true,
|
|
913
927
|
readonly: false,
|
|
914
928
|
disabled: false,
|
|
915
929
|
bgColor: 'white',
|
|
@@ -934,7 +948,7 @@ export const DisplayFormatCodeCountry: Story = {
|
|
|
934
948
|
export const DisplayFormatCountry: Story = {
|
|
935
949
|
parameters: {
|
|
936
950
|
a11y: {
|
|
937
|
-
disable:
|
|
951
|
+
disable: false,
|
|
938
952
|
},
|
|
939
953
|
sourceCode: [
|
|
940
954
|
{
|
|
@@ -983,7 +997,7 @@ export const DisplayFormatCountry: Story = {
|
|
|
983
997
|
displayFormat: 'country',
|
|
984
998
|
customIndicatifs: [],
|
|
985
999
|
useCustomIndicatifsOnly: false,
|
|
986
|
-
isValidatedOnBlur:
|
|
1000
|
+
isValidatedOnBlur: true,
|
|
987
1001
|
readonly: false,
|
|
988
1002
|
disabled: false,
|
|
989
1003
|
bgColor: 'white',
|
|
@@ -1008,7 +1022,7 @@ export const DisplayFormatCountry: Story = {
|
|
|
1008
1022
|
export const DisplayFormatAbbreviation: Story = {
|
|
1009
1023
|
parameters: {
|
|
1010
1024
|
a11y: {
|
|
1011
|
-
disable:
|
|
1025
|
+
disable: false,
|
|
1012
1026
|
},
|
|
1013
1027
|
sourceCode: [
|
|
1014
1028
|
{
|
|
@@ -1057,7 +1071,7 @@ export const DisplayFormatAbbreviation: Story = {
|
|
|
1057
1071
|
displayFormat: 'abbreviation',
|
|
1058
1072
|
customIndicatifs: [],
|
|
1059
1073
|
useCustomIndicatifsOnly: false,
|
|
1060
|
-
isValidatedOnBlur:
|
|
1074
|
+
isValidatedOnBlur: true,
|
|
1061
1075
|
readonly: false,
|
|
1062
1076
|
disabled: false,
|
|
1063
1077
|
bgColor: 'white',
|
|
@@ -1082,7 +1096,7 @@ export const DisplayFormatAbbreviation: Story = {
|
|
|
1082
1096
|
export const DefaultDialCode: Story = {
|
|
1083
1097
|
parameters: {
|
|
1084
1098
|
a11y: {
|
|
1085
|
-
disable:
|
|
1099
|
+
disable: false,
|
|
1086
1100
|
},
|
|
1087
1101
|
sourceCode: [
|
|
1088
1102
|
{
|
|
@@ -1136,7 +1150,7 @@ export const DefaultDialCode: Story = {
|
|
|
1136
1150
|
args: {
|
|
1137
1151
|
modelValue: '',
|
|
1138
1152
|
dialCodeModel: { code: '+3433', country: 'Exemple', abbreviation: 'EX', phoneLength: 10, mask: '## ## ## ## ##' },
|
|
1139
|
-
required:
|
|
1153
|
+
required: false,
|
|
1140
1154
|
outlined: true,
|
|
1141
1155
|
outlinedIndicatif: true,
|
|
1142
1156
|
withCountryCode: true,
|
|
@@ -1175,7 +1189,7 @@ export const DefaultDialCode: Story = {
|
|
|
1175
1189
|
export const DefaultDialCodeStandard: Story = {
|
|
1176
1190
|
parameters: {
|
|
1177
1191
|
a11y: {
|
|
1178
|
-
disable:
|
|
1192
|
+
disable: false,
|
|
1179
1193
|
},
|
|
1180
1194
|
sourceCode: [
|
|
1181
1195
|
{
|
|
@@ -1253,7 +1267,7 @@ export const DefaultDialCodeStandard: Story = {
|
|
|
1253
1267
|
export const DisplayModels: Story = {
|
|
1254
1268
|
parameters: {
|
|
1255
1269
|
a11y: {
|
|
1256
|
-
disable:
|
|
1270
|
+
disable: false,
|
|
1257
1271
|
},
|
|
1258
1272
|
sourceCode: [
|
|
1259
1273
|
{
|
|
@@ -1308,25 +1322,47 @@ export const DisplayModels: Story = {
|
|
|
1308
1322
|
displayFormat: 'code-country',
|
|
1309
1323
|
customIndicatifs: [],
|
|
1310
1324
|
useCustomIndicatifsOnly: false,
|
|
1311
|
-
isValidatedOnBlur:
|
|
1325
|
+
isValidatedOnBlur: true,
|
|
1312
1326
|
readonly: false,
|
|
1313
1327
|
bgColor: 'white',
|
|
1314
1328
|
},
|
|
1315
1329
|
render: args => ({
|
|
1316
1330
|
components: { PhoneField },
|
|
1317
1331
|
setup() {
|
|
1318
|
-
|
|
1332
|
+
const modelValue = ref(args.modelValue)
|
|
1333
|
+
const selectedDialCode = ref(args.dialCodeModel)
|
|
1334
|
+
|
|
1335
|
+
// Sync ref -> args (pour afficher les modèles dans la story)
|
|
1336
|
+
watch(modelValue, (val) => {
|
|
1337
|
+
args.modelValue = val
|
|
1338
|
+
})
|
|
1339
|
+
watch(selectedDialCode, (val) => {
|
|
1340
|
+
args.dialCodeModel = val
|
|
1341
|
+
})
|
|
1342
|
+
// Sync args -> ref (quand on change les controls Storybook)
|
|
1343
|
+
watch(() => args.modelValue, (val) => {
|
|
1344
|
+
modelValue.value = val
|
|
1345
|
+
})
|
|
1346
|
+
watch(() => args.dialCodeModel, (val) => {
|
|
1347
|
+
selectedDialCode.value = val
|
|
1348
|
+
})
|
|
1349
|
+
|
|
1350
|
+
return {
|
|
1351
|
+
args,
|
|
1352
|
+
modelValue,
|
|
1353
|
+
selectedDialCode,
|
|
1354
|
+
}
|
|
1319
1355
|
},
|
|
1320
1356
|
template: `
|
|
1321
1357
|
<div class="pa-4">
|
|
1322
1358
|
<div class="pa-4">
|
|
1323
|
-
Indicatif: {{
|
|
1359
|
+
Indicatif: {{ selectedDialCode }}<br/>Numéro: {{ modelValue }}
|
|
1324
1360
|
</div>
|
|
1325
1361
|
|
|
1326
1362
|
<PhoneField
|
|
1327
1363
|
v-bind="args"
|
|
1328
|
-
|
|
1329
|
-
|
|
1364
|
+
v-model="modelValue"
|
|
1365
|
+
v-model:selectedDialCode="selectedDialCode"
|
|
1330
1366
|
/>
|
|
1331
1367
|
</div>
|
|
1332
1368
|
`,
|
|
@@ -1340,7 +1376,7 @@ export const DisplayModels: Story = {
|
|
|
1340
1376
|
export const DisabledErrorHandling: Story = {
|
|
1341
1377
|
parameters: {
|
|
1342
1378
|
a11y: {
|
|
1343
|
-
disable:
|
|
1379
|
+
disable: false,
|
|
1344
1380
|
},
|
|
1345
1381
|
sourceCode: [
|
|
1346
1382
|
{
|
|
@@ -1411,6 +1447,7 @@ export const DisabledErrorHandling: Story = {
|
|
|
1411
1447
|
<p>Ce champ est requis et affichera une erreur s'il est vide.</p>
|
|
1412
1448
|
<PhoneField
|
|
1413
1449
|
v-bind="args"
|
|
1450
|
+
:disable-error-handling="false"
|
|
1414
1451
|
/>
|
|
1415
1452
|
</div>
|
|
1416
1453
|
</div>
|
|
@@ -1422,7 +1459,7 @@ export const DisabledErrorHandling: Story = {
|
|
|
1422
1459
|
export const FormValidation: Story = {
|
|
1423
1460
|
parameters: {
|
|
1424
1461
|
a11y: {
|
|
1425
|
-
disable:
|
|
1462
|
+
disable: false,
|
|
1426
1463
|
},
|
|
1427
1464
|
sourceCode: [
|
|
1428
1465
|
{
|
|
@@ -1438,7 +1475,7 @@ export const FormValidation: Story = {
|
|
|
1438
1475
|
:outlinedIndicatif="true"
|
|
1439
1476
|
:withCountryCode="true"
|
|
1440
1477
|
:country-code-required="true"
|
|
1441
|
-
:isValidatedOnBlur="
|
|
1478
|
+
:isValidatedOnBlur="true"
|
|
1442
1479
|
:readonly="readonly"
|
|
1443
1480
|
:disabled="disabled"
|
|
1444
1481
|
/>
|
|
@@ -1493,7 +1530,7 @@ export const FormValidation: Story = {
|
|
|
1493
1530
|
displayFormat: 'code',
|
|
1494
1531
|
customIndicatifs: [],
|
|
1495
1532
|
useCustomIndicatifsOnly: false,
|
|
1496
|
-
isValidatedOnBlur:
|
|
1533
|
+
isValidatedOnBlur: true,
|
|
1497
1534
|
bgColor: 'white',
|
|
1498
1535
|
readonly: false,
|
|
1499
1536
|
disabled: false,
|
|
@@ -1527,6 +1564,7 @@ export const FormValidation: Story = {
|
|
|
1527
1564
|
<div class="pa-4">
|
|
1528
1565
|
<form @submit.prevent="submitForm" class="d-flex flex-column">
|
|
1529
1566
|
<PhoneField
|
|
1567
|
+
ref="phoneFieldRef"
|
|
1530
1568
|
v-bind="args"
|
|
1531
1569
|
/>
|
|
1532
1570
|
<v-btn type="submit" color="primary" class="mt-4" style="width: 200px;">Soumettre le formulaire</v-btn>
|