@cnamts/synapse 1.0.23 → 1.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -5
- package/dist/AutocompleteFilter-D7qBuCAP.js +114 -0
- package/dist/AutocompleteFilter-Df9i5mAl.cjs +1 -0
- package/dist/DateFilter-BJD6FMev.cjs +1 -0
- package/dist/{DateFilter-Dc-gSGwk.js → DateFilter-BitMWrMU.js} +1 -1
- package/dist/{NumberFilter-vP38Wp6j.js → NumberFilter-BTLUxw0a.js} +3 -3
- package/dist/NumberFilter-DGCzCXzI.cjs +1 -0
- package/dist/{PeriodFilter-Ba1uYUnT.js → PeriodFilter-B5rUIPAC.js} +1 -1
- package/dist/PeriodFilter-DO_ecTZW.cjs +1 -0
- package/dist/SelectFilter-CGwcKWLm.cjs +1 -0
- package/dist/SelectFilter-l4QnRcuk.js +135 -0
- package/dist/TextFilter-B8nf7xoK.cjs +1 -0
- package/dist/{TextFilter-B84dpnoq.js → TextFilter-C9hj6Qrp.js} +7 -7
- package/dist/apLightTheme-CEK4iY3f.cjs +1 -0
- package/dist/apLightTheme-DnIM24Lv.js +950 -0
- package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +7022 -9616
- package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarousel.d.ts +2 -2
- package/dist/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.d.ts +2 -2
- package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.d.ts +40 -40
- package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.d.ts +60 -60
- package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +7168 -9762
- package/dist/components/Amelipro/AmeliproStepper/AmeliproStepper.d.ts +2 -2
- package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +7501 -10095
- package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +21 -21
- package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +41 -41
- package/dist/components/Amelipro/StructureMenu/StructureTabs/StructureTabs.d.ts +2 -2
- package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +20 -498
- package/dist/components/Customs/Selects/SyAutocomplete/SyAutocomplete.d.ts +117 -151
- package/dist/components/Customs/Selects/SyInputSelect/SyInputSelect.d.ts +5 -5
- package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +12 -16
- package/dist/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.d.ts +8 -8
- package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +31 -506
- package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +28 -506
- package/dist/components/Customs/SyTabs/SyTabs.d.ts +13 -11
- package/dist/components/Customs/SyTextField/SyTextField.d.ts +69 -89
- package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +627 -791
- package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +315 -412
- package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +112 -160
- package/dist/components/DatePicker/composables/index.d.ts +1 -0
- package/dist/components/DatePicker/composables/useDatePickerFocusTrap.d.ts +11 -0
- package/dist/components/DatePicker/composables/useDatePickerState.d.ts +1 -0
- package/dist/components/DatePicker/composables/useDateTextField.d.ts +4 -4
- package/dist/components/DatePicker/composables/useDateValidation.d.ts +3 -3
- package/dist/components/DatePicker/composables/useInputBlurHandler.d.ts +2 -2
- package/dist/components/DatePicker/composables/useManualDateValidation.d.ts +2 -2
- package/dist/components/FileList/FileList.d.ts +6 -0
- package/dist/components/FilterSideBar/FilterSideBar.d.ts +2 -0
- package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +17 -17
- package/dist/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.d.ts +3 -3
- package/dist/components/HeaderToolbar/HeaderToolbar.d.ts +20 -28
- package/dist/components/LunarCalendar/useLunarCalendarValidation.d.ts +3 -3
- package/dist/components/MonthPicker/MonthPicker.d.ts +86 -127
- package/dist/components/MonthPicker/MonthPickerText/MonthPickerInput.d.ts +85 -126
- package/dist/components/NirField/NirField.d.ts +202 -278
- package/dist/components/NirField/locales.d.ts +10 -10
- package/dist/components/NirField/useNirValidation.d.ts +64 -0
- package/dist/components/PasswordField/PasswordField.d.ts +8 -9
- package/dist/components/PeriodField/PeriodField.d.ts +1352 -1680
- package/dist/components/PhoneField/PhoneField.d.ts +88 -129
- package/dist/components/RangeField/RangeSlider/RangeSlider.d.ts +12 -12
- package/dist/components/SyTextArea/SyTextArea.d.ts +34 -14
- package/dist/components/SyTextArea/useDefaultValidationRules.d.ts +11 -0
- package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +10 -6
- package/dist/components/Tables/SyTable/SyTable.d.ts +10 -6
- package/dist/components/Tables/common/SyTableFilter.d.ts +2 -3
- package/dist/components/Tables/common/SyTablePagination.d.ts +19 -19
- package/dist/components/Tables/common/TableHeader.d.ts +5 -0
- package/dist/components/Tables/common/filters/AutocompleteFilter.d.ts +120 -0
- package/dist/components/Tables/common/filters/locales.d.ts +0 -1
- package/dist/components/Tables/common/locales.d.ts +3 -0
- package/dist/components/Tables/common/types.d.ts +21 -3
- package/dist/components/Tables/common/useClickableTableRow.d.ts +17 -0
- package/dist/components/Tables/common/usePagination.d.ts +3 -1
- package/dist/components/Tables/common/usePinnedColumns.d.ts +31 -0
- package/dist/components/Tables/common/useTableHeaders.d.ts +2 -0
- package/dist/components/Tables/common/useTableRowCheckboxAccessibility.d.ts +5 -0
- package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +7 -6
- package/dist/composables/date/useDatePickerAccessibility.d.ts +1 -1
- package/dist/composables/rules/useFieldValidation.d.ts +4 -4
- package/dist/composables/unifyValidation/documentationValidationProps.d.ts +230 -0
- package/dist/composables/unifyValidation/useCustomValidation.d.ts +8 -0
- package/dist/composables/unifyValidation/useValidation.d.ts +102 -0
- package/dist/composables/unifyValidation/useVuetifyValidation.d.ts +18 -0
- package/dist/composables/useFormFieldErrorHandling.d.ts +2 -2
- package/dist/composables/validation/useFormValidation.d.ts +11 -2
- package/dist/composables/validation/useValidation.d.ts +19 -9
- package/dist/design-system-v3.d.ts +2 -0
- package/dist/design-system-v3.js +186 -187
- package/dist/design-system-v3.umd.cjs +1 -1066
- package/dist/designTokens/tokens/amelipro/apColors.d.ts +10 -10
- package/dist/designTokens/tokens/amelipro/apColors2026.d.ts +1 -2
- package/dist/designTokens/tokens/amelipro/apContextual.d.ts +44 -0
- package/dist/designTokens/tokens/amelipro/apSemantic.d.ts +1 -1
- package/dist/designTokens/tokens/baseColors.d.ts +127 -0
- package/dist/designTokens/tokens/baseContextualTokens.d.ts +50 -0
- package/dist/designTokens/tokens/cnam/cnamColors.d.ts +10 -10
- package/dist/designTokens/tokens/cnam/cnamSemantic.d.ts +1 -1
- package/dist/designTokens/tokens/pa/paColors.d.ts +1 -166
- package/dist/designTokens/tokens/pa/paSemantic.d.ts +1 -1
- package/dist/designTokens/utils/buildColorClassMap.d.ts +12 -0
- package/dist/designTokens/utils/createFlattenTheme.d.ts +1 -3
- package/dist/designTokens/utils/index.d.ts +2 -2
- package/dist/main-ByDPHpae.cjs +1067 -0
- package/dist/main-Cpx8Co6H.js +38869 -0
- package/dist/main.d.ts +0 -1
- package/dist/synapse.css +1 -0
- package/dist/tooth-11-D3sLWv2n.cjs +1 -0
- package/dist/tooth-12-CXrLuH03.cjs +1 -0
- package/dist/tooth-13-BSfo5fpT.cjs +1 -0
- package/dist/tooth-14-DMzulx0h.cjs +1 -0
- package/dist/tooth-15-BKRFVi-9.cjs +1 -0
- package/dist/tooth-16-CpuxAbuM.cjs +1 -0
- package/dist/tooth-17-BPoahUdg.cjs +1 -0
- package/dist/tooth-18-DhHJz8sy.cjs +1 -0
- package/dist/tooth-21-Dgd5hn_X.cjs +1 -0
- package/dist/tooth-22-C2Tn19sB.cjs +1 -0
- package/dist/tooth-23-C9uaaSGb.cjs +1 -0
- package/dist/tooth-24-BrK9UGpf.cjs +1 -0
- package/dist/tooth-25-CE_EfGNp.cjs +1 -0
- package/dist/tooth-26-Ctv4i9Fy.cjs +1 -0
- package/dist/tooth-27-C5J7JkWM.cjs +1 -0
- package/dist/tooth-28-Z9oWqjo0.cjs +1 -0
- package/dist/tooth-31-BrYqmkTi.cjs +1 -0
- package/dist/tooth-32-BNNR0oCZ.cjs +1 -0
- package/dist/tooth-33-DuxvqO2J.cjs +1 -0
- package/dist/tooth-34-BCSCXMB6.cjs +1 -0
- package/dist/tooth-35-BLUXkX88.cjs +1 -0
- package/dist/tooth-36-IrKHYqlA.cjs +1 -0
- package/dist/tooth-37-BYqpdMwo.cjs +1 -0
- package/dist/tooth-38-B_eNXXdu.cjs +1 -0
- package/dist/tooth-41-Ddva4Ot8.cjs +1 -0
- package/dist/tooth-42-szcDqlM0.cjs +1 -0
- package/dist/tooth-43-B3ka6rQm.cjs +1 -0
- package/dist/tooth-44-CazyQucj.cjs +1 -0
- package/dist/tooth-45-B4HQtc8n.cjs +1 -0
- package/dist/tooth-46-BPM40gbG.cjs +1 -0
- package/dist/tooth-47-Dvr20dlh.cjs +1 -0
- package/dist/tooth-48-Bd8ljGsF.cjs +1 -0
- package/dist/tooth-51-OBpwCOF3.cjs +1 -0
- package/dist/tooth-52-aKxyHcmq.cjs +1 -0
- package/dist/tooth-53-vCwJjTOc.cjs +1 -0
- package/dist/tooth-54-DsWu2iFy.cjs +1 -0
- package/dist/tooth-55-BxC1X2Dn.cjs +1 -0
- package/dist/tooth-61-BbLvxMQi.cjs +1 -0
- package/dist/tooth-62-CmTkWczP.cjs +1 -0
- package/dist/tooth-63-DI7l_2qI.cjs +1 -0
- package/dist/tooth-64-B21sOsJh.cjs +1 -0
- package/dist/tooth-65-D2ZC2VEr.cjs +1 -0
- package/dist/tooth-71-D473PPO5.cjs +1 -0
- package/dist/tooth-72-Drh1wnNu.cjs +1 -0
- package/dist/tooth-73-DzlwYI23.cjs +1 -0
- package/dist/tooth-74-8aGvcZPg.cjs +1 -0
- package/dist/tooth-75-BFK7At_r.cjs +1 -0
- package/dist/tooth-81-BZmR-I0M.cjs +1 -0
- package/dist/tooth-82-euVfUUZV.cjs +1 -0
- package/dist/tooth-83-KV010j64.cjs +1 -0
- package/dist/tooth-84-BBg1RjhZ.cjs +1 -0
- package/dist/tooth-85-Cr-kc1wM.cjs +1 -0
- package/dist/utils/functions/classToHex.d.ts +1 -1
- package/dist/utils/functions/createHexResolver.d.ts +16 -0
- package/dist/vuetifyConfig.js +522 -0
- package/dist/vuetifyConfig.umd.cjs +1 -0
- package/package.json +37 -20
- package/src/assets/amelipro/apTokens2026.scss +5 -5
- package/src/assets/overrides/_breakpoints.scss +25 -0
- package/src/assets/overrides/_btns.scss +0 -8
- package/src/assets/overrides/_forms.scss +1 -3
- package/src/assets/overrides/_icons.scss +14 -10
- package/src/assets/overrides/_otp.scss +41 -0
- package/src/assets/overrides/_tables.scss +11 -20
- package/src/assets/overrides/_tooltips.scss +17 -7
- package/src/assets/overrides/_typography.scss +35 -47
- package/src/assets/overrides/_utilities.scss +43 -47
- package/src/assets/themes.scss +1 -0
- package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/AmeliproAccordionTemplate.vue +20 -20
- package/src/components/Amelipro/AmeliproAccordionFrieze/AmeliproAccordionFrieze.vue +12 -14
- package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.vue +4 -6
- package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/AmeliproAccordionResultTemplate.vue +5 -5
- package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.vue +4 -6
- package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.vue +4 -6
- package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/__snapshots__/AmeliproAutoCompleteField.spec.ts.snap +2 -2
- package/src/components/Amelipro/AmeliproBadge/AmeliproBadge.vue +4 -6
- package/src/components/Amelipro/AmeliproBreadcrumb/AmeliproBreadcrumb.vue +1 -3
- package/src/components/Amelipro/AmeliproBtn/AmeliproBtn.vue +4 -6
- package/src/components/Amelipro/AmeliproCallback/AmeliproCallback.vue +2 -2
- package/src/components/Amelipro/AmeliproCard/AmeliproCard.vue +31 -31
- package/src/components/Amelipro/AmeliproCarousel/AmeliproCarousel.vue +5 -7
- package/src/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.vue +13 -15
- package/src/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.vue +23 -23
- package/src/components/Amelipro/AmeliproChips/AmeliproChips.vue +1 -3
- package/src/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.vue +17 -12
- package/src/components/Amelipro/AmeliproClickableTile/tests/__snapshots__/AmeliproClickableTile.spec.ts.snap +2 -2
- package/src/components/Amelipro/AmeliproCopyBtn/AmeliproCopyBtn.vue +4 -6
- package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.vue +13 -13
- package/src/components/Amelipro/AmeliproDentalChart/AmeliproDentalChart.vue +4 -2
- package/src/components/Amelipro/AmeliproDentalChart/AmeliproTooth/AmeliproTooth.vue +4 -4
- package/src/components/Amelipro/AmeliproDialog/AmeliproDialog.vue +5 -7
- package/src/components/Amelipro/AmeliproDisclosure/AmeliproDisclosure.vue +1 -3
- package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.vue +2 -4
- package/src/components/Amelipro/AmeliproFilePreview/AmeliproFilePreview.vue +4 -6
- package/src/components/Amelipro/AmeliproFilters/AmeliproFilters.vue +13 -13
- package/src/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.vue +3 -5
- package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.vue +1 -3
- package/src/components/Amelipro/AmeliproHeader/AmeliproHeader.vue +2 -4
- package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBar.vue +1 -3
- package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/AmeliproHeaderBrandSection.vue +20 -16
- package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/__tests__/__snapshots__/AmeliproHeaderBrandSection.spec.ts.snap +2 -2
- package/src/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.vue +2 -4
- package/src/components/Amelipro/AmeliproIllustratedDataTile/AmeliproIllustratedDataTile.vue +5 -7
- package/src/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.vue +6 -8
- package/src/components/Amelipro/AmeliproMailTile/AmeliproMailTile.vue +14 -14
- package/src/components/Amelipro/AmeliproMenu/AmeliproMenu.vue +11 -13
- package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproDropdownMenu/AmeliproDropdownMenu.vue +2 -4
- package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproMessagingLayout.vue +8 -8
- package/src/components/Amelipro/AmeliproMultipleFoldingCard/AmeliproMultipleFoldingCard.vue +40 -40
- package/src/components/Amelipro/AmeliproNumberedCard/AmeliproNumberedCard.vue +27 -27
- package/src/components/Amelipro/AmeliproOnboarding/AmeliproOnboarding.vue +3 -5
- package/src/components/Amelipro/AmeliproPageLayout/AmeliproPageLayout.vue +2 -4
- package/src/components/Amelipro/AmeliproPagination/AmeliproPagination.vue +2 -4
- package/src/components/Amelipro/AmeliproPagination/AmeliproPaginationBtn/AmeliproPaginationBtn.vue +3 -5
- package/src/components/Amelipro/AmeliproPatientBanner/AmeliproPatientBanner.vue +1 -3
- package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.vue +2 -4
- package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLogin.vue +4 -4
- package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLoginForm/AmeliproPatientLoginForm.vue +1 -3
- package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.vue +3 -5
- package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.vue +3 -5
- package/src/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.vue +23 -23
- package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.vue +4 -6
- package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.vue +12 -22
- package/src/components/Amelipro/AmeliproStateTile/AmeliproStateTile.vue +10 -12
- package/src/components/Amelipro/AmeliproStepper/AmeliproStepper.vue +17 -17
- package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +8 -10
- package/src/components/Amelipro/AmeliproTabs/AmeliproTabBtn/AmeliproTabBtn.vue +6 -8
- package/src/components/Amelipro/AmeliproTabs/AmeliproTabs.vue +4 -4
- package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.vue +4 -6
- package/src/components/Amelipro/AmeliproTextArea/__tests__/__snapshots__/AmeliproTextArea.spec.ts.snap +2 -2
- package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.vue +7 -9
- package/src/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.vue +3 -5
- package/src/components/Amelipro/AmeliproTooltips/AmeliproTooltips.vue +0 -2
- package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.vue +6 -6
- package/src/components/Amelipro/ServiceMenu/ServiceMenu.vue +2 -2
- package/src/components/Amelipro/StructureMenu/StructureBtn/StructureBtn.vue +4 -4
- package/src/components/Amelipro/StructureMenu/StructureItem/StructureItem.vue +4 -6
- package/src/components/Amelipro/StructureMenu/StructureMenu.vue +2 -2
- package/src/components/Amelipro/StructureMenu/StructureTabs/StructureTabs.vue +2 -2
- package/src/components/Amelipro/UserMenu/UserMenu.vue +1 -3
- package/src/components/BackBtn/tests/BackBtn.visual.cy.ts +43 -0
- package/src/components/BackBtn/tests/__snapshots__/back-btn-custom-bg.snap.png +0 -0
- package/src/components/BackBtn/tests/__snapshots__/back-btn-dark-mode.snap.png +0 -0
- package/src/components/BackBtn/tests/__snapshots__/back-btn-default.snap.png +0 -0
- package/src/components/BackBtn/tests/__snapshots__/back-btn-no-icon.snap.png +0 -0
- package/src/components/Captcha/Captcha.vue +1 -3
- package/src/components/Captcha/accessibilite/Accessibility.mdx +86 -8
- package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +12 -12
- package/src/components/ChipList/ChipList.stories.ts +0 -15
- package/src/components/ChipList/ChipList.vue +19 -17
- package/src/components/ChipList/accessibilite/Accessibility.mdx +83 -10
- package/src/components/ChipList/tests/ChipList.a11y.spec.ts +41 -0
- package/src/components/CookiesSelection/CookiesInformation/CookiesInformation.vue +0 -2
- package/src/components/CopyBtn/CopyBtn.vue +1 -3
- package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.vue +17 -17
- package/src/components/Customs/Selects/SelectBtnField/accessibilite/Accessibility.mdx +0 -9
- package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.spec.ts +31 -0
- package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.stories.ts +66 -0
- package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.vue +28 -7
- package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.a11y.spec.ts +18 -0
- package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.spec.ts +209 -0
- package/src/components/Customs/Selects/SyAutocomplete/utils/ariaManager.ts +14 -10
- package/src/components/Customs/Selects/SyInputSelect/SyInputSelect.stories.ts +4 -4
- package/src/components/Customs/Selects/SyInputSelect/SyInputSelect.vue +12 -15
- package/src/components/Customs/Selects/SyInputSelect/tests/SyInputSelect.spec.ts +10 -10
- package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +1 -39
- package/src/components/Customs/Selects/SySelect/SySelect.vue +274 -71
- package/src/components/Customs/Selects/SySelect/accessibilite/Accessibility.mdx +199 -269
- package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +89 -0
- package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.vue +6 -9
- package/src/components/Customs/SyCheckbox/SyCheckbox.mdx +5 -0
- package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +10 -16
- package/src/components/Customs/SyCheckbox/SyCheckbox.vue +45 -11
- package/src/components/Customs/SyCheckbox/accessibilite/Accessibility.mdx +53 -3
- package/src/components/Customs/SyCheckbox/tests/SyCheckbox.a11y.spec.ts +134 -2
- package/src/components/Customs/SyForm/SyForm.stories.ts +31 -5
- package/src/components/Customs/SyPagination/SyPagination.vue +0 -2
- package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +4 -7
- package/src/components/Customs/SyTabs/SyTabs.mdx +0 -58
- package/src/components/Customs/SyTabs/SyTabs.stories.ts +32 -33
- package/src/components/Customs/SyTabs/SyTabs.vue +87 -67
- package/src/components/Customs/SyTabs/accessibilite/Accessibility.mdx +83 -23
- package/src/components/Customs/SyTabs/tests/SyTabs.a11y.spec.ts +88 -0
- package/src/components/Customs/SyTabs/tests/SyTabs.spec.ts +46 -1
- package/src/components/Customs/SyTextField/SyTextField.mdx +1 -1
- package/src/components/Customs/SyTextField/SyTextField.stories.ts +50 -68
- package/src/components/Customs/SyTextField/SyTextField.vue +156 -161
- package/src/components/Customs/SyTextField/tests/SyTextField.a11y.spec.ts +32 -0
- package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +120 -11
- package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +62 -58
- package/src/components/DatePicker/CalendarMode/DatePicker.vue +342 -237
- package/src/components/DatePicker/CalendarMode/accessibilite/Accessibility.mdx +82 -0
- package/src/components/DatePicker/CalendarMode/tests/DatePicker.a11y.spec.ts +141 -0
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +2 -56
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +215 -175
- package/src/components/DatePicker/ComplexDatePicker/accessibilite/Accessibility.mdx +76 -0
- package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +33 -10
- package/src/components/DatePicker/DatePickerValidationExample/CalendarMode.stories.ts +8 -8
- package/src/components/DatePicker/DatePickerValidationExample/ComplexDatePicker.stories.ts +106 -8
- package/src/components/DatePicker/DatePickerValidationExample/DateTextInput.stories.ts +12 -11
- package/src/components/DatePicker/DatePickerValidationExample/MultiMode.stories.ts +12 -12
- package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +0 -12
- package/src/components/DatePicker/DateTextInput/DateTextInput.vue +71 -67
- package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +3 -0
- package/src/components/DatePicker/DateTextInput/accessibilite/Accessibility.mdx +66 -0
- package/src/components/DatePicker/DateTextInput/tests/DateTextInput.spec.ts +52 -1
- package/src/components/DatePicker/composables/index.ts +1 -0
- package/src/components/DatePicker/composables/tests/useCalendarKeyboardNavigation.spec.ts +109 -65
- package/src/components/DatePicker/composables/tests/useDatePickerFocusTrap.spec.ts +138 -0
- package/src/components/DatePicker/composables/tests/useDatePickerState.spec.ts +53 -0
- package/src/components/DatePicker/composables/tests/useDateValidation.spec.ts +74 -18
- package/src/components/DatePicker/composables/tests/useInputBlurHandler.spec.ts +39 -0
- package/src/components/DatePicker/composables/tests/useManualDateValidation.spec.ts +91 -0
- package/src/components/DatePicker/composables/useCalendarKeyboardNavigation.ts +442 -36
- package/src/components/DatePicker/composables/useDatePickerFocusTrap.ts +92 -0
- package/src/components/DatePicker/composables/useDatePickerState.ts +24 -0
- package/src/components/DatePicker/composables/useDateTextField.ts +6 -6
- package/src/components/DatePicker/composables/useDateValidation.ts +36 -35
- package/src/components/DatePicker/composables/useInputBlurHandler.ts +3 -3
- package/src/components/DatePicker/composables/useManualDateValidation.ts +6 -2
- package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +9 -8
- package/src/components/DatePicker/playground/DatePickerHolidayRule.vue +1 -1
- package/src/components/DiacriticPicker/accessibilite/Accessibility.mdx +76 -8
- package/src/components/DialogBox/DialogBox.vue +3 -5
- package/src/components/DialogBox/tests/DialogBox.visual.cy.ts +76 -0
- package/src/components/DialogBox/tests/__snapshots__/dialog-box-custom-texts.snap.png +0 -0
- package/src/components/DialogBox/tests/__snapshots__/dialog-box-default.snap.png +0 -0
- package/src/components/DialogBox/tests/__snapshots__/dialog-box-no-actions.snap.png +0 -0
- package/src/components/FileList/FileList.vue +9 -2
- package/src/components/FileList/UploadItem/UploadItem.vue +11 -13
- package/src/components/FileList/tests/FileList.spec.ts +47 -0
- package/src/components/FileUpload/FileUpload.vue +3 -5
- package/src/components/FileUpload/FileUploadContent.vue +3 -5
- package/src/components/FilterInline/FilterInline.vue +1 -3
- package/src/components/FilterSideBar/FilterSideBar.mdx +44 -1
- package/src/components/FilterSideBar/FilterSideBar.stories.ts +105 -1
- package/src/components/FilterSideBar/FilterSideBar.vue +7 -0
- package/src/components/FilterSideBar/tests/FilterSideBar.a11y.spec.ts +54 -1
- package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +42 -0
- package/src/components/FooterBar/FooterBar.vue +9 -13
- package/src/components/FranceConnectBtn/FranceConnectBtn.vue +1 -1
- package/src/components/HeaderBar/HeaderBar.stories.ts +14 -2
- package/src/components/HeaderBar/HeaderBar.vue +2 -3
- package/src/components/HeaderBar/HeaderBurgerMenu/HeaderBurgerMenu.vue +2 -3
- package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/HeaderMenuItem.vue +2 -3
- package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuSection/HeaderMenuSection.vue +0 -1
- package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.vue +8 -9
- package/src/components/HeaderBar/HeaderBurgerMenu/menu.scss +0 -8
- package/src/components/HeaderBar/HeaderBurgerMenu/tests/HeaderBurgerMenu.visual.cy.ts +196 -0
- package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/header-burger-menu-generated-submenu-open.snap.png +0 -0
- package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/header-burger-menu-generated.snap.png +0 -0
- package/src/components/HeaderBar/HeaderLogo/HeaderLogo.vue +0 -1
- package/src/components/HeaderBar/HeaderMenuBtn/HeaderMenuBtn.vue +6 -7
- package/src/components/HeaderBar/tests/HeaderBar.visual.cy.ts +81 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-custom-width.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-default.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-no-sticky.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-prepend.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-side.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-subtitle.snap.png +0 -0
- package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +12 -3
- package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +15 -8
- package/src/components/HeaderToolbar/HeaderToolbar.vue +6 -7
- package/src/components/LangBtn/LangBtn.vue +2 -4
- package/src/components/Logo/accessibilite/Accessibility.mdx +73 -11
- package/src/components/Logo/tests/Logo.visual.cy.ts +57 -0
- package/src/components/Logo/tests/__snapshots__/logo-avatar.snap.png +0 -0
- package/src/components/Logo/tests/__snapshots__/logo-dark.snap.png +0 -0
- package/src/components/Logo/tests/__snapshots__/logo-default.snap.png +0 -0
- package/src/components/Logo/tests/__snapshots__/logo-no-organism.snap.png +0 -0
- package/src/components/Logo/tests/__snapshots__/logo-no-signature.snap.png +0 -0
- package/src/components/Logo/tests/__snapshots__/logo-risque-pro.snap.png +0 -0
- package/src/components/LogoBrandSection/LogoBrandSection.vue +2 -2
- package/src/components/LogoBrandSection/accessibilite/Accessibility.mdx +85 -9
- package/src/components/LunarCalendar/tests/LunarCalendar.spec.ts +3 -1
- package/src/components/LunarCalendar/useLunarCalendarValidation.ts +4 -5
- package/src/components/MonthPicker/MonthPickerVisual/VisualPickerHeader.vue +1 -1
- package/src/components/MonthPicker/tests/MonthPicker.spec.ts +2 -1
- package/src/components/MonthPicker/tests/__snapshots__/MonthPicker.spec.ts.snap +7 -7
- package/src/components/NirField/NirField.stories.ts +6 -2
- package/src/components/NirField/NirField.vue +67 -265
- package/src/components/NirField/accessibilite/Accessibility.mdx +102 -7
- package/src/components/NirField/locales.ts +1 -1
- package/src/components/NirField/tests/NirField.spec.ts +124 -0
- package/src/components/NirField/tests/useNirValidation.spec.ts +449 -0
- package/src/components/NirField/useNirValidation.ts +277 -0
- package/src/components/NotificationBar/Notification/Notification.vue +5 -7
- package/src/components/NotificationBar/NotificationBar.vue +1 -3
- package/src/components/PaginatedTable/PaginatedTable.vue +2 -3
- package/src/components/PaginatedTable/Pagination.vue +3 -5
- package/src/components/PasswordField/PasswordField.stories.ts +4 -4
- package/src/components/PasswordField/PasswordField.vue +26 -34
- package/src/components/PasswordField/tests/PasswordField.spec.ts +6 -3
- package/src/components/PeriodField/PeriodField.stories.ts +4 -4
- package/src/components/PeriodField/PeriodField.vue +57 -57
- package/src/components/PeriodField/__tests__/PeriodField.async.spec.ts +32 -0
- package/src/components/PeriodField/accessibilite/Accessibility.mdx +68 -8
- package/src/components/PeriodField/tests/PeriodField.spec.ts +28 -2
- package/src/components/PhoneField/PhoneField.vue +8 -9
- package/src/components/PhoneField/tests/PhoneField.spec.ts +1 -0
- package/src/components/RangeField/RangeField.vue +6 -0
- package/src/components/RangeField/RangeSlider/RangeSlider.vue +0 -2
- package/src/components/RangeField/RangeSlider/Tooltip/Tooltip.vue +1 -1
- package/src/components/RangeField/tests/RangeField.visual.cy.ts +65 -0
- package/src/components/RangeField/tests/__snapshots__/range-field-custom-bg.snap.png +0 -0
- package/src/components/RangeField/tests/__snapshots__/range-field-custom-range.snap.png +0 -0
- package/src/components/RangeField/tests/__snapshots__/range-field-default.snap.png +0 -0
- package/src/components/RangeField/tests/__snapshots__/range-field-step.snap.png +0 -0
- package/src/components/RangeField/tests/__snapshots__/range-field-with-label.snap.png +0 -0
- package/src/components/RatingPicker/EmotionPicker/EmotionPicker.vue +6 -8
- package/src/components/RatingPicker/StarsPicker/StarsPicker.vue +3 -5
- package/src/components/SearchListField/SearchListField.vue +0 -2
- package/src/components/SkipLink/SkipLink.vue +2 -4
- package/src/components/SocialMediaLinks/SocialMediaLinks.vue +6 -6
- package/src/components/SubHeader/SubHeader.vue +1 -1
- package/src/components/SyAlert/SyAlert.vue +7 -9
- package/src/components/SyAlert/tests/SyAlert.visual.cy.ts +46 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-closable.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-error.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-info.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-success.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-outlined.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-tonal.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-warning.snap.png +0 -0
- package/src/components/SyBtnMenu/SyBtnMenu.vue +2 -4
- package/src/components/SyTextArea/SyTextArea.stories.ts +138 -2
- package/src/components/SyTextArea/SyTextArea.vue +53 -23
- package/src/components/SyTextArea/tests/SyTextArea.spec.ts +126 -3
- package/src/components/SyTextArea/useDefaultValidationRules.ts +74 -0
- package/src/components/TableToolbar/TableToolbar.vue +6 -8
- package/src/components/Tables/SyServerTable/SyServerTable.mdx +25 -0
- package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +839 -1
- package/src/components/Tables/SyServerTable/SyServerTable.vue +154 -95
- package/src/components/Tables/SyServerTable/tests/SyServerTable.a11y.spec.ts +81 -0
- package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +390 -0
- package/src/components/Tables/SyTable/SyTable.mdx +25 -0
- package/src/components/Tables/SyTable/SyTable.stories.ts +556 -1
- package/src/components/Tables/SyTable/SyTable.vue +136 -60
- package/src/components/Tables/SyTable/tests/SyTable.a11y.spec.ts +79 -0
- package/src/components/Tables/SyTable/tests/SyTable.spec.ts +382 -0
- package/src/components/Tables/common/SyTableFilter.vue +49 -4
- package/src/components/Tables/common/SyTablePagination.vue +142 -19
- package/src/components/Tables/common/TableHeader.vue +45 -4
- package/src/components/Tables/common/filters/AutocompleteFilter.vue +160 -0
- package/src/components/Tables/common/filters/NumberFilter.vue +1 -1
- package/src/components/Tables/common/filters/SelectFilter.vue +11 -12
- package/src/components/Tables/common/filters/TextFilter.vue +1 -1
- package/src/components/Tables/common/filters/getFilterComponent.ts +8 -1
- package/src/components/Tables/common/filters/locales.ts +0 -1
- package/src/components/Tables/common/filters/tests/AutocompleteFilter.a11y.spec.ts +110 -0
- package/src/components/Tables/common/filters/tests/AutocompleteFilter.spec.ts +203 -0
- package/src/components/Tables/common/filters/tests/SelectFilter.a11y.spec.ts +104 -0
- package/src/components/Tables/common/filters/tests/SelectFilter.spec.ts +152 -16
- package/src/components/Tables/common/locales.ts +3 -0
- package/src/components/Tables/common/tableFilterUtils.ts +3 -0
- package/src/components/Tables/common/tableStyles.scss +60 -19
- package/src/components/Tables/common/tests/SyTablePagination.spec.ts +18 -0
- package/src/components/Tables/common/tests/TableHeader.spec.ts +39 -0
- package/src/components/Tables/common/tests/filterByRange.spec.ts +2 -1
- package/src/components/Tables/common/types.ts +15 -4
- package/src/components/Tables/common/useClickableTableRow.ts +103 -0
- package/src/components/Tables/common/usePagination.ts +13 -0
- package/src/components/Tables/common/usePinnedColumns.ts +237 -0
- package/src/components/Tables/common/useTableHeaders.ts +52 -30
- package/src/components/Tables/common/useTableRowCheckboxAccessibility.ts +41 -0
- package/src/components/UploadWorkflow/UploadWorkflow.vue +1 -0
- package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +23 -0
- package/src/components/UploadWorkflow/tests/__snapshots__/UploadWorkflow.spec.ts.snap +66 -0
- package/src/components/UploadWorkflow/useFileList.ts +3 -0
- package/src/components/UserMenuBtn/UserMenuBtn.vue +1 -3
- package/src/composables/date/tests/useDatePickerAccessibility.spec.ts +2 -6
- package/src/composables/date/useDatePickerAccessibility.ts +42 -207
- package/src/composables/rules/tests/useFieldValidation.spec.ts +120 -120
- package/src/composables/rules/useFieldValidation.ts +34 -17
- package/src/composables/unifyValidation/documentationValidationProps.ts +235 -0
- package/src/composables/unifyValidation/tests/useCustomValidation.spec.ts +601 -0
- package/src/composables/unifyValidation/tests/useValidation.spec.ts +2048 -0
- package/src/composables/unifyValidation/tests/useVuetifyValidation.spec.ts +184 -0
- package/src/composables/unifyValidation/useCustomValidation.ts +95 -0
- package/src/composables/unifyValidation/useValidation.ts +190 -0
- package/src/composables/unifyValidation/useVuetifyValidation.ts +54 -0
- package/src/composables/useFormFieldErrorHandling.ts +4 -7
- package/src/composables/validation/tests/useFormValidation.spec.ts +14 -0
- package/src/composables/validation/tests/useValidation.spec.ts +116 -21
- package/src/composables/validation/useFormValidation.ts +20 -13
- package/src/composables/validation/useValidatable.ts +8 -1
- package/src/composables/validation/useValidation.ts +151 -99
- package/src/composantsVuetify/Introduction.mdx +48 -0
- package/src/composantsVuetify/VBreadcrumbs/VBreadcrumbs.mdx +28 -0
- package/src/composantsVuetify/VBreadcrumbs/v-breadcrumbs.stories.ts +108 -0
- package/src/composantsVuetify/VBtn/VBtn.mdx +72 -0
- package/src/composantsVuetify/VBtn/v-btn.stories.ts +121 -0
- package/src/composantsVuetify/VOtpInput/VOtpInput.mdx +39 -0
- package/src/composantsVuetify/VOtpInput/v-otp-input.stories.ts +56 -0
- package/src/composantsVuetify/VSkeletonLoader/VSkeletonLoader.mdx +42 -0
- package/src/composantsVuetify/VSkeletonLoader/v-skeleton-loader.stories.ts +77 -0
- package/src/composantsVuetify/VSwitch/VSwitch.mdx +47 -0
- package/src/composantsVuetify/VSwitch/v-switch.stories.ts +166 -0
- package/src/composantsVuetify/VTooltip/VTooltip.mdx +32 -0
- package/src/composantsVuetify/VTooltip/v-tooltip.stories.ts +95 -0
- package/src/designTokens/tests/buildColorClassMap.spec.ts +31 -0
- package/src/designTokens/tests/generateScssTokens.spec.ts +12 -0
- package/src/designTokens/tests/themeUtils.spec.ts +53 -0
- package/src/designTokens/tokens/amelipro/apColors.ts +8 -130
- package/src/designTokens/tokens/amelipro/apColors2026.ts +3 -15
- package/src/designTokens/tokens/amelipro/apContextual.ts +55 -47
- package/src/designTokens/tokens/amelipro/apLightTheme.ts +1 -1
- package/src/designTokens/tokens/amelipro/apSemantic.ts +1 -1
- package/src/designTokens/tokens/baseColors.ts +129 -0
- package/src/designTokens/tokens/baseContextualTokens.ts +52 -0
- package/src/designTokens/tokens/cnam/cnamColors.ts +3 -125
- package/src/designTokens/tokens/cnam/cnamContextual.ts +4 -48
- package/src/designTokens/tokens/cnam/cnamLightTheme.ts +1 -1
- package/src/designTokens/tokens/cnam/cnamSemantic.ts +3 -3
- package/src/designTokens/tokens/pa/paColors.ts +2 -166
- package/src/designTokens/tokens/pa/paContextual.ts +3 -48
- package/src/designTokens/tokens/pa/paLightTheme.ts +1 -1
- package/src/designTokens/tokens/pa/paSemantic.ts +2 -2
- package/src/designTokens/utils/buildColorClassMap.ts +34 -0
- package/src/designTokens/utils/convertSemanticsToken.ts +8 -11
- package/src/designTokens/utils/createFlattenTheme.ts +15 -7
- package/src/designTokens/utils/index.ts +2 -2
- package/src/main.ts +0 -2
- package/src/stories/Accessibilite/AuditDesignSystem.mdx +0 -11
- package/src/stories/Accessibilite/DesignSystem/Avancement.mdx +433 -0
- package/src/stories/Accessibilite/DesignSystem/a11y-status.json +692 -0
- package/src/stories/Accessibilite/KitDePreAudit/Echantillonnage.mdx +8 -1
- package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +51 -10
- package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +16 -9
- package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +48 -58
- package/src/stories/Components/Components.stories.ts +113 -9
- package/src/stories/Demarrer/Accueil.stories.ts +3 -3
- package/src/stories/Demarrer/EnrichirLeDesignSystem.mdx +4 -9
- package/src/stories/Demarrer/EnrichirLeDesignSystem.stories.ts +28 -0
- package/src/stories/Demarrer/Releases.stories.ts +48 -5
- package/src/stories/DesignTokens/ColorDisplay.vue +6 -5
- package/src/stories/DesignTokens/ColorIntegrationExample.vue +2 -4
- package/src/stories/DesignTokens/colors.stories.ts +5 -6
- package/src/stories/GuideDuDev/Amelipro.mdx +15 -0
- package/src/stories/GuideDuDev/Amelipro.stories.ts +209 -0
- package/src/stories/GuideDuDev/CreateVuetifyInstance.mdx +95 -0
- package/src/stories/GuideDuDev/Theme.mdx +36 -26
- package/src/stories/GuideDuDev/moduleDeNotification.mdx +3 -2
- package/src/stories/GuideDuDev/vuetifyOptions.mdx +3 -3
- package/src/stories/styles/accessibility-guide.css +3 -3
- package/src/utils/functions/classToHex.ts +6 -34
- package/src/utils/functions/createHexResolver.ts +45 -0
- package/src/utils/functions/tests/classToHex.spec.ts +36 -0
- package/src/utils/functions/tests/convertToHex.spec.ts +31 -0
- package/src/utils/functions/tests/createHexResolver.spec.ts +66 -0
- package/src/utils/functions/tests/isCssColor.spec.ts +48 -0
- package/dist/SelectFilter-BioGT6Nn.js +0 -136
- package/dist/designTokens/utils/convertGaps.d.ts +0 -5
- package/dist/main-aLKwdMi1.js +0 -37886
- package/dist/style.css +0 -1
- package/src/assets/apTokens.scss +0 -343
- package/src/assets/overrides/_container.scss +0 -36
- package/src/assets/tokens.scss +0 -388
- package/src/components/DatePicker/Accessibilite.mdx +0 -14
- package/src/designTokens/apColors.md +0 -66
- package/src/designTokens/cnamColors.md +0 -193
- package/src/designTokens/paColors.md +0 -66
- package/src/designTokens/tokens/json/contextual-tokens.json +0 -156
- package/src/designTokens/tokens/json/primitives.json +0 -209
- package/src/designTokens/tokens/json/semantic.json +0 -120
- package/src/designTokens/utils/convertGaps.ts +0 -11
- package/src/stories/Accessibilite/Avancement/Avancement.mdx +0 -533
- package/src/stories/Accessibilite/Avancement/Avancement.stories.ts +0 -306
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Meta, Story } from '@storybook/addon-docs'
|
|
2
|
+
import * as Stories from '../ComplexDatePicker.stories.ts'
|
|
3
|
+
import AccessibilityIcon from '@/common/imgs/accessibility-svgrepo-com.svg'
|
|
4
|
+
import '@/stories/styles/shared.css'
|
|
5
|
+
import {
|
|
6
|
+
AccessibilityGuideLayout,
|
|
7
|
+
CriteriaSection,
|
|
8
|
+
CriteriaCard,
|
|
9
|
+
DemoSection,
|
|
10
|
+
BestPracticesSection,
|
|
11
|
+
ResourcesSection,
|
|
12
|
+
} from '@/stories/accessibility/AccessibilityGuideLayout.mdx'
|
|
13
|
+
|
|
14
|
+
<Meta of={Stories} />
|
|
15
|
+
|
|
16
|
+
<AccessibilityGuideLayout
|
|
17
|
+
componentName="ComplexDatePicker (mode combiné)"
|
|
18
|
+
iconSrc={AccessibilityIcon}
|
|
19
|
+
>
|
|
20
|
+
|
|
21
|
+
<CriteriaSection>
|
|
22
|
+
<CriteriaCard title="Structure sémantique" icon="🔍">
|
|
23
|
+
<ul>
|
|
24
|
+
<li><strong>Champ</strong> : conteneur <code>role="combobox"</code> qui expose <code>aria-controls</code> et <code>aria-expanded</code>; champ de saisie interne en <code>textbox</code> avec libellé dynamique. À la différence du mode calendrier simple, ce mode permet la saisie libre, justifiant l'utilisation du pattern combobox.</li>
|
|
25
|
+
<li><strong>Panneau</strong> : calendrier dans un menu <code>role="presentation"</code>, grille de boutons natifs pour les jours.</li>
|
|
26
|
+
<li><strong>Relations</strong> : l’activateur référence le panneau via <code>aria-controls</code> quand ouvert; <code>aria-labelledby</code> et <code>aria-label</code> portés par l’input.</li>
|
|
27
|
+
<li><strong>États</strong> : <code>aria-expanded</code> synchronisé, <code>aria-disabled</code> / <code>aria-readonly</code> propagés aux champs et messages.</li>
|
|
28
|
+
</ul>
|
|
29
|
+
</CriteriaCard>
|
|
30
|
+
|
|
31
|
+
<CriteriaCard title="Ouverture et focus" icon="🧭">
|
|
32
|
+
<ul>
|
|
33
|
+
<li><strong>Ouverture</strong> : clic sur le champ ou l’icône; <kbd>Entrée</kbd> sur le champ ouvre; option <code>textFieldActivator</code> active toute la zone.</li>
|
|
34
|
+
<li><strong>Fermeture</strong> : <kbd>Échap</kbd> via le piège de focus; fermeture valide et émet <code>closed</code>.</li>
|
|
35
|
+
<li><strong>Piège de focus</strong> : <kbd>Tab</kbd>/<kbd>Shift+Tab</kbd> circulent dans l’en-tête, la grille et le bouton « Aujourd’hui » tant que le panneau est ouvert.</li>
|
|
36
|
+
<li><strong>Lecture seule</strong> : aucun clear ni validation interactive, champs non éditables.</li>
|
|
37
|
+
</ul>
|
|
38
|
+
</CriteriaCard>
|
|
39
|
+
|
|
40
|
+
<CriteriaCard title="Navigation clavier dans le calendrier" icon="⌨️">
|
|
41
|
+
<ul>
|
|
42
|
+
<li><strong>Jours</strong> : flèches déplacent le focus; <code>PageUp/PageDown</code> changent de mois (<kbd>Shift</kbd> + touche change d’année).</li>
|
|
43
|
+
<li><strong>Home/End</strong> : premier/dernier jour du mois affiché.</li>
|
|
44
|
+
<li><strong>Activation</strong> : <kbd>Espace</kbd>/<kbd>Entrée</kbd> déclenchent les boutons de jour et de l’en-tête (mois/année/flèches).</li>
|
|
45
|
+
<li><strong>Dialogue mois/années</strong> : flèches et <kbd>Home</kbd>/<kbd>End</kbd>, <kbd>Espace</kbd>/<kbd>Entrée</kbd> sélectionnent l’option et conservent le focus.</li>
|
|
46
|
+
</ul>
|
|
47
|
+
</CriteriaCard>
|
|
48
|
+
|
|
49
|
+
<CriteriaCard title="Messages et annonces" icon="📣">
|
|
50
|
+
<ul>
|
|
51
|
+
<li><strong>Statuts</strong> : erreurs/avertissements/succès affichés sous le champ; bouton « Aujourd’hui » avec <code>title</code>.</li>
|
|
52
|
+
<li><strong>Formats attendus</strong> : placeholder + hint décrivent la saisie; autoClamp optionnel sur la saisie interne.</li>
|
|
53
|
+
<li><strong>Lecture/voix</strong> : libellé/placeholder alimentent <code>aria-label</code>; les messages sont reliés via <code>aria-describedby</code>.</li>
|
|
54
|
+
</ul>
|
|
55
|
+
</CriteriaCard>
|
|
56
|
+
</CriteriaSection>
|
|
57
|
+
|
|
58
|
+
<DemoSection title="Saisie + calendrier (mode combiné)">
|
|
59
|
+
<Story of={Stories.Default} />
|
|
60
|
+
</DemoSection>
|
|
61
|
+
|
|
62
|
+
<BestPracticesSection>
|
|
63
|
+
- Fournir un libellé ou <code>aria-label</code> explicite, surtout si le label visuel est masqué ou tronqué.
|
|
64
|
+
- Si <code>readonly</code>, laisser le calendrier fermé et désactiver l’effacement; ne pas surcharger les raccourcis.
|
|
65
|
+
- En plage de dates, conserver la séparatrice <code>" - "</code> et préciser l’ordre début/fin dans le hint.
|
|
66
|
+
- Ajuster <code>period</code> pour ne pas masquer des dates attendues; vérifier <code>min/max</code> cohérents avec la plage.
|
|
67
|
+
- Avec <code>textFieldActivator</code>, s’assurer que le label reste lisible et que l’icône n’est pas le seul point d’entrée.
|
|
68
|
+
</BestPracticesSection>
|
|
69
|
+
|
|
70
|
+
<ResourcesSection>
|
|
71
|
+
- Stories : <code>Default</code>, <code>DateRange</code>, <code>DisablePickerInteraction</code>, <code>AutoFormattingInput</code>, <code>WithTextFieldActivator</code>, <code>ReadonlyMode</code>.
|
|
72
|
+
- Tests : <code>ComplexDatePicker.a11y.spec.ts</code> (axe) et <code>ComplexDatePicker.spec.ts</code> couvrent ouverture, focus et validation combinée.
|
|
73
|
+
- Références : WAI-ARIA combobox + grid pour les schémas combobox + calendrier.
|
|
74
|
+
</ResourcesSection>
|
|
75
|
+
|
|
76
|
+
</AccessibilityGuideLayout>
|
|
@@ -160,6 +160,29 @@ describe('ComplexDatePicker.clean', () => {
|
|
|
160
160
|
expect((input.element as HTMLInputElement).value).toBe('01/01/2025 - ')
|
|
161
161
|
})
|
|
162
162
|
|
|
163
|
+
it('generates all intermediate dates when selecting a range in range mode', async () => {
|
|
164
|
+
const wrapper = mountComponent({
|
|
165
|
+
label: 'Date Field',
|
|
166
|
+
format: 'DD/MM/YYYY',
|
|
167
|
+
displayRange: true,
|
|
168
|
+
})
|
|
169
|
+
|
|
170
|
+
await wrapper.vm.handleDateSelected(['01/01/2025', '05/01/2025'])
|
|
171
|
+
await flushPromises()
|
|
172
|
+
|
|
173
|
+
const selection = wrapper.vm.selectedDates as Date[]
|
|
174
|
+
expect(Array.isArray(selection)).toBe(true)
|
|
175
|
+
// Should contain 5 dates: 01/01, 02/01, 03/01, 04/01, 05/01
|
|
176
|
+
expect(selection).toHaveLength(5)
|
|
177
|
+
|
|
178
|
+
// Verify start and end dates are correct (handle timezone differences)
|
|
179
|
+
expect(selection[0]).toBeInstanceOf(Date)
|
|
180
|
+
expect(selection[selection.length - 1]).toBeInstanceOf(Date)
|
|
181
|
+
// Use local date string to avoid timezone issues
|
|
182
|
+
expect(selection[0]?.toLocaleDateString('fr-FR')).toContain('01/01/2025')
|
|
183
|
+
expect(selection[selection.length - 1]?.toLocaleDateString('fr-FR')).toContain('05/01/2025')
|
|
184
|
+
})
|
|
185
|
+
|
|
163
186
|
it('formatDateInput formats raw digits according to the format and computes cursor position', () => {
|
|
164
187
|
const wrapper = mountComponent({
|
|
165
188
|
label: 'Date Field',
|
|
@@ -247,7 +270,7 @@ describe('ComplexDatePicker.clean', () => {
|
|
|
247
270
|
expect(wrapper.vm.currentYearName).toBe('2030')
|
|
248
271
|
})
|
|
249
272
|
|
|
250
|
-
it('validateOnSubmit returns false when required and empty in text-only mode', () => {
|
|
273
|
+
it('validateOnSubmit returns false when required and empty in text-only mode', async () => {
|
|
251
274
|
const wrapper = mountComponent({
|
|
252
275
|
label: 'Date Field',
|
|
253
276
|
noCalendar: true,
|
|
@@ -255,7 +278,7 @@ describe('ComplexDatePicker.clean', () => {
|
|
|
255
278
|
format: 'DD/MM/YYYY',
|
|
256
279
|
})
|
|
257
280
|
|
|
258
|
-
const result = wrapper.vm.validateOnSubmit()
|
|
281
|
+
const result = await wrapper.vm.validateOnSubmit()
|
|
259
282
|
expect(result).toBe(false)
|
|
260
283
|
})
|
|
261
284
|
|
|
@@ -269,7 +292,7 @@ describe('ComplexDatePicker.clean', () => {
|
|
|
269
292
|
})
|
|
270
293
|
|
|
271
294
|
await nextTick()
|
|
272
|
-
const result = wrapper.vm.validateOnSubmit()
|
|
295
|
+
const result = await wrapper.vm.validateOnSubmit()
|
|
273
296
|
expect(result).toBe(true)
|
|
274
297
|
})
|
|
275
298
|
|
|
@@ -283,20 +306,20 @@ describe('ComplexDatePicker.clean', () => {
|
|
|
283
306
|
expect(wrapper.exists()).toBe(true)
|
|
284
307
|
})
|
|
285
308
|
|
|
286
|
-
it('validateOnSubmit returns false when required and empty in calendar mode', () => {
|
|
309
|
+
it('validateOnSubmit returns false when required and empty in calendar mode', async () => {
|
|
287
310
|
const wrapper = mountComponent({
|
|
288
311
|
label: 'Date Field',
|
|
289
312
|
required: true,
|
|
290
313
|
format: 'DD/MM/YYYY',
|
|
291
314
|
})
|
|
292
315
|
|
|
293
|
-
const result = wrapper.vm.validateOnSubmit()
|
|
316
|
+
const result = await wrapper.vm.validateOnSubmit()
|
|
294
317
|
expect(result).toBe(false)
|
|
295
318
|
// Should surface at least one error message
|
|
296
319
|
expect(wrapper.vm.errorMessages.length).toBeGreaterThan(0)
|
|
297
320
|
})
|
|
298
321
|
|
|
299
|
-
it('validateDates flags an error when end date is before start date in range mode', () => {
|
|
322
|
+
it('validateDates flags an error when end date is before start date in range mode', async () => {
|
|
300
323
|
const wrapper = mountComponent({
|
|
301
324
|
label: 'Date Field',
|
|
302
325
|
format: 'DD/MM/YYYY',
|
|
@@ -309,12 +332,12 @@ describe('ComplexDatePicker.clean', () => {
|
|
|
309
332
|
new Date(2025, 0, 1),
|
|
310
333
|
]
|
|
311
334
|
|
|
312
|
-
const result = wrapper.vm.validateDates(true)
|
|
335
|
+
const result = await wrapper.vm.validateDates(true)
|
|
313
336
|
expect(result.hasError).toBe(true)
|
|
314
|
-
expect(
|
|
337
|
+
expect(result.state.errors.length).toBeGreaterThan(0)
|
|
315
338
|
})
|
|
316
339
|
|
|
317
|
-
it('validateDates does not flag an error for an incomplete range when not forced', () => {
|
|
340
|
+
it('validateDates does not flag an error for an incomplete range when not forced', async () => {
|
|
318
341
|
const wrapper = mountComponent({
|
|
319
342
|
label: 'Date Field',
|
|
320
343
|
format: 'DD/MM/YYYY',
|
|
@@ -341,7 +364,7 @@ describe('ComplexDatePicker.clean', () => {
|
|
|
341
364
|
|
|
342
365
|
// Simuler une erreur required
|
|
343
366
|
wrapper.vm.selectedDates = null
|
|
344
|
-
wrapper.vm.validateDates(true)
|
|
367
|
+
await wrapper.vm.validateDates(true)
|
|
345
368
|
expect(wrapper.vm.errorMessages.length).toBeGreaterThan(0)
|
|
346
369
|
|
|
347
370
|
// Ouvrir le calendrier puis réinitialiser
|
|
@@ -51,8 +51,8 @@ export const Required: StoryObj = {
|
|
|
51
51
|
const datePicker1 = ref()
|
|
52
52
|
const date1 = ref('')
|
|
53
53
|
|
|
54
|
-
const handleSubmit = () => {
|
|
55
|
-
const isValid1 = datePicker1.value?.validateOnSubmit()
|
|
54
|
+
const handleSubmit = async () => {
|
|
55
|
+
const isValid1 = await datePicker1.value?.validateOnSubmit()
|
|
56
56
|
|
|
57
57
|
if (!isValid1) {
|
|
58
58
|
alert('Corrigez les erreurs avant de soumettre !')
|
|
@@ -71,8 +71,8 @@ export const Required: StoryObj = {
|
|
|
71
71
|
const datePicker1 = ref()
|
|
72
72
|
const date1 = ref('')
|
|
73
73
|
|
|
74
|
-
const handleSubmit = () => {
|
|
75
|
-
const isValid1 = datePicker1.value?.validateOnSubmit()
|
|
74
|
+
const handleSubmit = async () => {
|
|
75
|
+
const isValid1 = await datePicker1.value?.validateOnSubmit()
|
|
76
76
|
|
|
77
77
|
if (!isValid1) {
|
|
78
78
|
alert('Corrigez les erreurs avant de soumettre !')
|
|
@@ -151,8 +151,8 @@ export const WithCustomRulesAndRequired: StoryObj = {
|
|
|
151
151
|
const datePicker1 = ref()
|
|
152
152
|
const date1 = ref('01/01/2100')
|
|
153
153
|
|
|
154
|
-
const handleSubmit = () => {
|
|
155
|
-
const isValid1 = datePicker1.value?.validateOnSubmit()
|
|
154
|
+
const handleSubmit = async () => {
|
|
155
|
+
const isValid1 = await datePicker1.value?.validateOnSubmit()
|
|
156
156
|
|
|
157
157
|
if (!isValid1) {
|
|
158
158
|
alert('Corrigez les erreurs avant de soumettre !')
|
|
@@ -171,8 +171,8 @@ export const WithCustomRulesAndRequired: StoryObj = {
|
|
|
171
171
|
const datePicker1 = ref()
|
|
172
172
|
const date1 = ref('01/01/2100')
|
|
173
173
|
|
|
174
|
-
const handleSubmit = () => {
|
|
175
|
-
const isValid1 = datePicker1.value?.validateOnSubmit()
|
|
174
|
+
const handleSubmit = async () => {
|
|
175
|
+
const isValid1 = await datePicker1.value?.validateOnSubmit()
|
|
176
176
|
|
|
177
177
|
if (!isValid1) {
|
|
178
178
|
alert('Corrigez les erreurs avant de soumettre !')
|
|
@@ -52,8 +52,8 @@ export const Required: StoryObj = {
|
|
|
52
52
|
const datePicker1 = ref()
|
|
53
53
|
const date1 = ref('')
|
|
54
54
|
|
|
55
|
-
const handleSubmit = () => {
|
|
56
|
-
const isValid1 = datePicker1.value?.validateOnSubmit()
|
|
55
|
+
const handleSubmit = async () => {
|
|
56
|
+
const isValid1 = await datePicker1.value?.validateOnSubmit()
|
|
57
57
|
|
|
58
58
|
if (!isValid1) {
|
|
59
59
|
alert('Corrigez les erreurs avant de soumettre !')
|
|
@@ -72,8 +72,8 @@ export const Required: StoryObj = {
|
|
|
72
72
|
const datePicker1 = ref()
|
|
73
73
|
const date1 = ref(null)
|
|
74
74
|
|
|
75
|
-
const handleSubmit = () => {
|
|
76
|
-
const isValid1 = datePicker1.value?.validateOnSubmit()
|
|
75
|
+
const handleSubmit = async () => {
|
|
76
|
+
const isValid1 = await datePicker1.value?.validateOnSubmit()
|
|
77
77
|
|
|
78
78
|
if (!isValid1) {
|
|
79
79
|
alert('Corrigez les erreurs avant de soumettre !')
|
|
@@ -114,6 +114,104 @@ export const Required: StoryObj = {
|
|
|
114
114
|
}),
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
+
export const NotRequired: StoryObj = {
|
|
118
|
+
parameters: {
|
|
119
|
+
sourceCode: [
|
|
120
|
+
{
|
|
121
|
+
name: 'Template',
|
|
122
|
+
code: `
|
|
123
|
+
<template>
|
|
124
|
+
<v-form @submit.prevent="handleSubmit">
|
|
125
|
+
<div style="display: flex; flex-direction: column; gap: 16px;">
|
|
126
|
+
<div>
|
|
127
|
+
<h3 class="mb-4">Avec calendrier</h3>
|
|
128
|
+
<DatePicker
|
|
129
|
+
ref="datePicker1"
|
|
130
|
+
v-model="date1"
|
|
131
|
+
format="DD/MM/YYYY"
|
|
132
|
+
placeholder="Date requise"
|
|
133
|
+
useCombinedMode
|
|
134
|
+
/>
|
|
135
|
+
</div>
|
|
136
|
+
</div>
|
|
137
|
+
<button type="submit" style="margin-top: 16px; padding: 8px 16px; background-color:#0c419a; color: white; border: none; border-radius: 4px; cursor: pointer;">
|
|
138
|
+
Soumettre
|
|
139
|
+
</button>
|
|
140
|
+
</v-form>
|
|
141
|
+
</template>
|
|
142
|
+
`,
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
name: 'Script',
|
|
146
|
+
code: `
|
|
147
|
+
<script setup lang="ts">
|
|
148
|
+
import { ref } from 'vue'
|
|
149
|
+
import { DatePicker } from '@cnamts/synapse'
|
|
150
|
+
|
|
151
|
+
const datePicker1 = ref()
|
|
152
|
+
const date1 = ref('')
|
|
153
|
+
|
|
154
|
+
const handleSubmit = async () => {
|
|
155
|
+
const isValid1 = await datePicker1.value?.validateOnSubmit()
|
|
156
|
+
|
|
157
|
+
if (!isValid1) {
|
|
158
|
+
alert('Corrigez les erreurs avant de soumettre !')
|
|
159
|
+
} else {
|
|
160
|
+
alert('Formulaire soumis avec succès !')
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
</script>
|
|
164
|
+
`,
|
|
165
|
+
},
|
|
166
|
+
],
|
|
167
|
+
},
|
|
168
|
+
render: () => ({
|
|
169
|
+
components: { DatePicker },
|
|
170
|
+
setup() {
|
|
171
|
+
const datePicker1 = ref()
|
|
172
|
+
const date1 = ref(null)
|
|
173
|
+
|
|
174
|
+
const handleSubmit = async () => {
|
|
175
|
+
const isValid1 = await datePicker1.value?.validateOnSubmit()
|
|
176
|
+
|
|
177
|
+
if (!isValid1) {
|
|
178
|
+
alert('Corrigez les erreurs avant de soumettre !')
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
alert('Formulaire soumis avec succès !')
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
return {
|
|
186
|
+
datePicker1,
|
|
187
|
+
date1,
|
|
188
|
+
handleSubmit,
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
template: `
|
|
192
|
+
<div class="d-flex flex-wrap align-center pa-4">
|
|
193
|
+
<form @submit.prevent="handleSubmit" style="width: 100%;">
|
|
194
|
+
<div style="display: flex; flex-direction: column; gap: 16px;">
|
|
195
|
+
<div>
|
|
196
|
+
<DatePicker
|
|
197
|
+
ref="datePicker1"
|
|
198
|
+
v-model="date1"
|
|
199
|
+
format="DD/MM/YYYY"
|
|
200
|
+
placeholder="Date requise"
|
|
201
|
+
useCombinedMode
|
|
202
|
+
:is-validate-on-blur="false"
|
|
203
|
+
/>
|
|
204
|
+
</div>
|
|
205
|
+
</div>
|
|
206
|
+
<button type="submit" style="margin-top: 16px; padding: 8px 16px; background-color:#0c419a; color: white; border: none; border-radius: 4px; cursor: pointer;">
|
|
207
|
+
Soumettre
|
|
208
|
+
</button>
|
|
209
|
+
</form>
|
|
210
|
+
</div>
|
|
211
|
+
`,
|
|
212
|
+
}),
|
|
213
|
+
}
|
|
214
|
+
|
|
117
215
|
export const WithCustomRulesAndRequired: StoryObj = {
|
|
118
216
|
parameters: {
|
|
119
217
|
sourceCode: [
|
|
@@ -154,8 +252,8 @@ export const WithCustomRulesAndRequired: StoryObj = {
|
|
|
154
252
|
const datePicker1 = ref()
|
|
155
253
|
const date1 = ref('01/01/2100')
|
|
156
254
|
|
|
157
|
-
const handleSubmit = () => {
|
|
158
|
-
const isValid1 = datePicker1.value?.validateOnSubmit()
|
|
255
|
+
const handleSubmit = async () => {
|
|
256
|
+
const isValid1 = await datePicker1.value?.validateOnSubmit()
|
|
159
257
|
|
|
160
258
|
if (!isValid1) {
|
|
161
259
|
alert('Corrigez les erreurs avant de soumettre !')
|
|
@@ -174,8 +272,8 @@ export const WithCustomRulesAndRequired: StoryObj = {
|
|
|
174
272
|
const datePicker1 = ref()
|
|
175
273
|
const date1 = ref('01/01/2100')
|
|
176
274
|
|
|
177
|
-
const handleSubmit = () => {
|
|
178
|
-
const isValid1 = datePicker1.value?.validateOnSubmit()
|
|
275
|
+
const handleSubmit = async () => {
|
|
276
|
+
const isValid1 = await datePicker1.value?.validateOnSubmit()
|
|
179
277
|
|
|
180
278
|
if (!isValid1) {
|
|
181
279
|
alert('Corrigez les erreurs avant de soumettre !')
|
|
@@ -52,8 +52,8 @@ export const Required: StoryObj = {
|
|
|
52
52
|
const datePicker1 = ref()
|
|
53
53
|
const date1 = ref('')
|
|
54
54
|
|
|
55
|
-
const handleSubmit = () => {
|
|
56
|
-
const isValid1 = datePicker1.value?.validateOnSubmit()
|
|
55
|
+
const handleSubmit = async () => {
|
|
56
|
+
const isValid1 = await datePicker1.value?.validateOnSubmit()
|
|
57
57
|
|
|
58
58
|
if (!isValid1) {
|
|
59
59
|
alert('Corrigez les erreurs avant de soumettre !')
|
|
@@ -72,8 +72,8 @@ export const Required: StoryObj = {
|
|
|
72
72
|
const datePicker1 = ref()
|
|
73
73
|
const date1 = ref('')
|
|
74
74
|
|
|
75
|
-
const handleSubmit = () => {
|
|
76
|
-
const isValid1 = datePicker1.value?.validateOnSubmit()
|
|
75
|
+
const handleSubmit = async () => {
|
|
76
|
+
const isValid1 = await datePicker1.value?.validateOnSubmit()
|
|
77
77
|
if (!isValid1) {
|
|
78
78
|
alert('Corrigez les erreurs avant de soumettre !')
|
|
79
79
|
}
|
|
@@ -131,7 +131,7 @@ export const WithCustomRulesAndRequired: StoryObj = {
|
|
|
131
131
|
placeholder="Date requise"
|
|
132
132
|
noCalendar
|
|
133
133
|
:customRules="[
|
|
134
|
-
{ type: 'notAfterToday', options: { message: 'La date ne peut pas être après aujourd'hui' } },
|
|
134
|
+
{ type: 'notAfterToday', options: { message: 'La date ne peut pas être après aujourd\\'hui' } },
|
|
135
135
|
]"
|
|
136
136
|
/>
|
|
137
137
|
</div>
|
|
@@ -153,8 +153,8 @@ export const WithCustomRulesAndRequired: StoryObj = {
|
|
|
153
153
|
const datePicker1 = ref()
|
|
154
154
|
const date1 = ref('01/01/2100')
|
|
155
155
|
|
|
156
|
-
const handleSubmit = () => {
|
|
157
|
-
const isValid1 = datePicker1.value?.validateOnSubmit()
|
|
156
|
+
const handleSubmit = async (): Promise<void> => {
|
|
157
|
+
const isValid1 = await datePicker1.value?.validateOnSubmit()
|
|
158
158
|
|
|
159
159
|
if (!isValid1) {
|
|
160
160
|
alert('Corrigez les erreurs avant de soumettre !')
|
|
@@ -170,11 +170,11 @@ export const WithCustomRulesAndRequired: StoryObj = {
|
|
|
170
170
|
render: () => ({
|
|
171
171
|
components: { DatePicker },
|
|
172
172
|
setup() {
|
|
173
|
-
const datePicker1 = ref()
|
|
173
|
+
const datePicker1 = ref<typeof DatePicker>()
|
|
174
174
|
const date1 = ref('01/01/2100')
|
|
175
175
|
|
|
176
|
-
const handleSubmit = () => {
|
|
177
|
-
const isValid1 = datePicker1.value?.validateOnSubmit()
|
|
176
|
+
const handleSubmit = async (): Promise<void> => {
|
|
177
|
+
const isValid1 = await datePicker1.value?.validateOnSubmit()
|
|
178
178
|
|
|
179
179
|
if (!isValid1) {
|
|
180
180
|
alert('Corrigez les erreurs avant de soumettre !')
|
|
@@ -197,13 +197,14 @@ export const WithCustomRulesAndRequired: StoryObj = {
|
|
|
197
197
|
<div>
|
|
198
198
|
<DatePicker
|
|
199
199
|
ref="datePicker1"
|
|
200
|
+
label="Date"
|
|
200
201
|
v-model="date1"
|
|
201
202
|
required
|
|
202
203
|
format="DD/MM/YYYY"
|
|
203
204
|
placeholder="Date requise"
|
|
204
205
|
noCalendar
|
|
205
206
|
:custom-rules="[
|
|
206
|
-
{ type: 'notAfterToday', options: { message: 'La date ne peut pas être après
|
|
207
|
+
{ type: 'notAfterToday', options: { message: 'La date ne peut pas être après aujourd\\'hui' } },
|
|
207
208
|
]"
|
|
208
209
|
/>
|
|
209
210
|
</div>
|
|
@@ -63,9 +63,9 @@ export const Required: StoryObj = {
|
|
|
63
63
|
const datePicker2 = ref()
|
|
64
64
|
const date2 = ref('')
|
|
65
65
|
|
|
66
|
-
const handleSubmit = () => {
|
|
67
|
-
const isValid1 = datePicker1.value?.validateOnSubmit()
|
|
68
|
-
const isValid2 = datePicker2.value?.validateOnSubmit()
|
|
66
|
+
const handleSubmit = async () => {
|
|
67
|
+
const isValid1 = await datePicker1.value?.validateOnSubmit()
|
|
68
|
+
const isValid2 = await datePicker2.value?.validateOnSubmit()
|
|
69
69
|
|
|
70
70
|
if (!isValid1 || !isValid2) {
|
|
71
71
|
alert('Corrigez les erreurs avant de soumettre !')
|
|
@@ -87,9 +87,9 @@ export const Required: StoryObj = {
|
|
|
87
87
|
const datePicker2 = ref()
|
|
88
88
|
const date2 = ref('')
|
|
89
89
|
|
|
90
|
-
const handleSubmit = () => {
|
|
91
|
-
const isValid1 = datePicker1.value?.validateOnSubmit()
|
|
92
|
-
const isValid2 = datePicker2.value?.validateOnSubmit()
|
|
90
|
+
const handleSubmit = async () => {
|
|
91
|
+
const isValid1 = await datePicker1.value?.validateOnSubmit()
|
|
92
|
+
const isValid2 = await datePicker2.value?.validateOnSubmit()
|
|
93
93
|
|
|
94
94
|
if (!isValid1 || !isValid2) {
|
|
95
95
|
alert('Corrigez les erreurs avant de soumettre !')
|
|
@@ -197,9 +197,9 @@ export const WithCustomRulesAndRequired: StoryObj = {
|
|
|
197
197
|
const datePicker2 = ref()
|
|
198
198
|
const date2 = ref('01/01/2100')
|
|
199
199
|
|
|
200
|
-
const handleSubmit = () => {
|
|
201
|
-
const isValid1 = datePicker1.value?.validateOnSubmit()
|
|
202
|
-
const isValid2 = datePicker2.value?.validateOnSubmit()
|
|
200
|
+
const handleSubmit = async (): Promise<void> => {
|
|
201
|
+
const isValid1 = await datePicker1.value?.validateOnSubmit()
|
|
202
|
+
const isValid2 = await datePicker2.value?.validateOnSubmit()
|
|
203
203
|
|
|
204
204
|
if (!isValid1 || !isValid2) {
|
|
205
205
|
alert('Corrigez les erreurs avant de soumettre !')
|
|
@@ -221,9 +221,9 @@ export const WithCustomRulesAndRequired: StoryObj = {
|
|
|
221
221
|
const datePicker2 = ref()
|
|
222
222
|
const date2 = ref('01/01/2100')
|
|
223
223
|
|
|
224
|
-
const handleSubmit = () => {
|
|
225
|
-
const isValid1 = datePicker1.value?.validateOnSubmit()
|
|
226
|
-
const isValid2 = datePicker2.value?.validateOnSubmit()
|
|
224
|
+
const handleSubmit = async (): Promise<void> => {
|
|
225
|
+
const isValid1 = await datePicker1.value?.validateOnSubmit()
|
|
226
|
+
const isValid2 = await datePicker2.value?.validateOnSubmit()
|
|
227
227
|
|
|
228
228
|
if (!isValid1 || !isValid2) {
|
|
229
229
|
alert('Corrigez les erreurs avant de soumettre !')
|
|
@@ -180,9 +180,6 @@ type Story = StoryObj<typeof meta>
|
|
|
180
180
|
|
|
181
181
|
export const Default: Story = {
|
|
182
182
|
parameters: {
|
|
183
|
-
a11y: {
|
|
184
|
-
disable: true,
|
|
185
|
-
},
|
|
186
183
|
sourceCode: [
|
|
187
184
|
{
|
|
188
185
|
name: 'Template',
|
|
@@ -240,9 +237,6 @@ export const Default: Story = {
|
|
|
240
237
|
|
|
241
238
|
export const WithInitialValue: Story = {
|
|
242
239
|
parameters: {
|
|
243
|
-
a11y: {
|
|
244
|
-
disable: true,
|
|
245
|
-
},
|
|
246
240
|
sourceCode: [
|
|
247
241
|
{
|
|
248
242
|
name: 'Template',
|
|
@@ -299,9 +293,6 @@ export const WithInitialValue: Story = {
|
|
|
299
293
|
|
|
300
294
|
export const WithCustomFormat: Story = {
|
|
301
295
|
parameters: {
|
|
302
|
-
a11y: {
|
|
303
|
-
disable: true,
|
|
304
|
-
},
|
|
305
296
|
sourceCode: [
|
|
306
297
|
{
|
|
307
298
|
name: 'Template',
|
|
@@ -356,9 +347,6 @@ export const WithCustomFormat: Story = {
|
|
|
356
347
|
|
|
357
348
|
export const WithValidation: Story = {
|
|
358
349
|
parameters: {
|
|
359
|
-
a11y: {
|
|
360
|
-
disable: true,
|
|
361
|
-
},
|
|
362
350
|
sourceCode: [
|
|
363
351
|
{
|
|
364
352
|
name: 'Template',
|