@cnamts/synapse 1.0.27 → 1.1.1
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 +1 -1
- package/dist/{AutocompleteFilter-C9eLKyW8.js → AutocompleteFilter-CGF33skz.js} +3 -3
- package/dist/{DateFilter-y-GLkAkn.js → DateFilter-D7-MsKtx.js} +8 -8
- package/dist/{NumberFilter-DN6hIBS7.js → NumberFilter-bjQPPfsj.js} +1 -1
- package/dist/{PeriodFilter-MoUUp9qS.js → PeriodFilter-B3wJpK8-.js} +1 -1
- package/dist/{SelectFilter-bCbrdLmu.js → SelectFilter-BN6DbKAV.js} +1 -1
- package/dist/{TextFilter-CvjgEaoM.js → TextFilter-BffP0J2f.js} +4 -4
- package/dist/{apLightTheme2026-ug4Y23ns.js → apLightTheme2026-C4ygwMHC.js} +23 -22
- package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +10 -10
- package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.d.ts +4 -4
- package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.d.ts +6 -6
- package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +10 -10
- package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +10 -10
- package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +4 -4
- package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +4 -4
- package/dist/components/Captcha/Captcha.d.ts +27 -16
- package/dist/components/Captcha/CaptchaForm.d.ts +29 -3
- package/dist/components/Captcha/types.d.ts +14 -0
- package/dist/components/Captcha/useCaptchaValidation.d.ts +37 -0
- package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +2 -2
- package/dist/components/Customs/Selects/SelectBtnField/SelectBtnField.d.ts +33 -13
- package/dist/components/Customs/Selects/SelectBtnField/composables/useSelectBtnFieldValidation.d.ts +23 -0
- package/dist/components/Customs/Selects/SyAutocomplete/SyAutocomplete.d.ts +85 -313
- package/dist/components/Customs/Selects/SyAutocomplete/composables/useSyAutocompleteValidation.d.ts +4 -4
- package/dist/components/Customs/Selects/SyInputSelect/SyInputSelect.d.ts +1 -1
- package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +9 -11
- package/dist/components/Customs/Selects/SySelect/composables/useSySelectValidation.d.ts +7 -7
- package/dist/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.d.ts +18 -49
- package/dist/components/Customs/SyCheckBoxGroup/composables/useSyCheckBoxGroupValidation.d.ts +29 -0
- package/dist/components/Customs/SyCheckBoxGroup/types.d.ts +46 -0
- package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +19 -54
- package/dist/components/Customs/SyCheckbox/composables/useSyCheckboxValidation.d.ts +27 -0
- package/dist/components/Customs/SyCheckbox/types.d.ts +49 -0
- package/dist/components/Customs/SyIcon/SyIcon.d.ts +77 -1
- package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +10 -10
- package/dist/components/Customs/SyTextField/FieldState.d.ts +5 -0
- package/dist/components/Customs/SyTextField/SyTextField.d.ts +19 -79
- package/dist/components/Customs/SyTextField/locales.d.ts +7 -0
- package/dist/components/Customs/SyTextField/types.d.ts +67 -4
- package/dist/components/Customs/SyTextField/useNumberField.d.ts +23 -0
- package/dist/components/Customs/SyTextField/useSyTextFieldValidation.d.ts +38 -0
- package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +170 -622
- package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +85 -311
- package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +39 -152
- package/dist/components/DialogBox/DialogBox.d.ts +2 -0
- package/dist/components/DialogBox/locales.d.ts +1 -0
- package/dist/components/FilterInline/FilterInline.d.ts +3 -3
- package/dist/components/FilterSideBar/FilterSideBar.d.ts +8 -4
- package/dist/components/LunarCalendar/LunarCalendar.d.ts +43 -14
- package/dist/components/LunarCalendar/types.d.ts +35 -0
- package/dist/components/LunarCalendar/useLunarCalendarValidation.d.ts +11 -12
- package/dist/components/MonthPicker/MonthPicker.d.ts +72 -1860
- package/dist/components/MonthPicker/MonthPickerText/MonthPickerInput.d.ts +21 -1846
- package/dist/components/MonthPicker/MonthPickerText/useTextField.d.ts +5 -0
- package/dist/components/MonthPicker/locales.d.ts +1 -0
- package/dist/components/MonthPicker/types.d.ts +11 -0
- package/dist/components/MonthPicker/useMonthPickerValidation.d.ts +37 -24
- package/dist/components/NirField/NirField.d.ts +96 -325
- package/dist/components/NirField/useNirValidation.d.ts +17 -25
- package/dist/components/PageContainer/PageContainer.d.ts +8 -0
- package/dist/components/PasswordField/PasswordField.d.ts +18 -37
- package/dist/components/PasswordField/locales.d.ts +2 -0
- package/dist/components/PasswordField/types.d.ts +16 -0
- package/dist/components/PasswordField/usePasswordFieldValidation.d.ts +38 -0
- package/dist/components/PeriodField/PeriodField.d.ts +349 -1253
- package/dist/components/PhoneField/PhoneField.d.ts +960 -2051
- package/dist/components/PhoneField/indicatifs.d.ts +715 -8
- package/dist/components/PhoneField/locales.d.ts +7 -0
- package/dist/components/PhoneField/types.d.ts +29 -0
- package/dist/components/PhoneField/usePhoneFieldValidation.d.ts +45 -0
- package/dist/components/PhoneField/usePhoneIndicatifs.d.ts +947 -0
- package/dist/components/SearchListField/SearchListField.d.ts +3 -3
- package/dist/components/SyTextArea/SyTextArea.d.ts +14 -11
- package/dist/components/SyTextArea/composables/useSyTextAreaValidation.d.ts +7 -7
- package/dist/components/Tables/common/SyTablePagination.d.ts +19 -20
- package/dist/composables/unifyValidation/documentationValidationProps.d.ts +2 -2
- package/dist/composables/unifyValidation/useValidation.d.ts +4 -13
- package/dist/composables/useFilterable/useFilterable.d.ts +1 -2
- package/dist/design-system-v3.js +19 -19
- package/dist/designTokens/tokens/amelipro/apLightTheme.d.ts +11 -10
- package/dist/designTokens/tokens/baseTokens.d.ts +18 -18
- package/dist/designTokens/tokens/cnam/cnamLightTheme.d.ts +10 -10
- package/dist/designTokens/tokens/pa/paLightTheme.d.ts +11 -10
- package/dist/designTokens/tokens/semanticTokens.d.ts +14 -14
- package/dist/{main-CI6Q9nmO.js → main-C4wAktOs.js} +14999 -14025
- package/dist/synapse.css +1 -1
- package/dist/vuetifyConfig.js +27 -25
- package/package.json +12 -11
- package/src/assets/compat/_legacy-tokens.scss +91 -0
- package/src/assets/overrides/_utilities.scss +23 -0
- package/src/components/Accordion/Accordion.stories.ts +121 -1
- package/src/components/Accordion/tests/Accordion.visual.cy.ts +44 -0
- package/src/components/Accordion/tests/__snapshots__/accordion-default.snap.png +0 -0
- package/src/components/Accordion/tests/__snapshots__/accordion-disabled-item.snap.png +0 -0
- package/src/components/Accordion/tests/__snapshots__/accordion-open-first.snap.png +0 -0
- package/src/components/BackBtn/BackBtn.mdx +1 -1
- 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/BackToTopBtn/BackToTopBtn.mdx +0 -1
- package/src/components/BackToTopBtn/tests/BackToTopBtn.visual.cy.ts +34 -0
- package/src/components/BackToTopBtn/tests/__snapshots__/back-to-top-btn-custom-nudge.snap.png +0 -0
- package/src/components/BackToTopBtn/tests/__snapshots__/back-to-top-btn-default.snap.png +0 -0
- package/src/components/Captcha/Captcha.stories.ts +134 -31
- package/src/components/Captcha/Captcha.vue +95 -28
- package/src/components/Captcha/CaptchaForm.vue +51 -22
- package/src/components/Captcha/tests/Captcha.focus.spec.ts +214 -0
- package/src/components/Captcha/tests/Captcha.spec.ts +233 -24
- package/src/components/Captcha/tests/Captcha.visual.cy.ts +45 -0
- package/src/components/Captcha/tests/CaptchaForm.spec.ts +82 -0
- package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +20 -42
- package/src/components/Captcha/tests/__snapshots__/captcha-audio-type.snap.png +0 -0
- package/src/components/Captcha/tests/__snapshots__/captcha-image-type.snap.png +0 -0
- package/src/components/Captcha/tests/__snapshots__/captcha-no-helpdesk.snap.png +0 -0
- package/src/components/Captcha/types.ts +15 -0
- package/src/components/Captcha/useCaptchaValidation.ts +87 -0
- package/src/components/Captcha/validation/validation.stories.ts +1194 -0
- package/src/components/ChipList/ChipList.mdx +0 -1
- package/src/components/ChipList/tests/ChipList.visual.cy.ts +46 -0
- package/src/components/ChipList/tests/__snapshots__/chip-list-default.snap.png +0 -0
- package/src/components/ChipList/tests/__snapshots__/chip-list-readonly.snap.png +0 -0
- package/src/components/ChipList/tests/__snapshots__/chip-list-state-icons.snap.png +0 -0
- package/src/components/CollapsibleList/CollapsibleList.mdx +0 -1
- package/src/components/CollapsibleList/tests/CollapsibleList.visual.cy.ts +33 -0
- package/src/components/CollapsibleList/tests/__snapshots__/collapsible-list-default.snap.png +0 -0
- package/src/components/CollapsibleList/tests/__snapshots__/collapsible-list-no-title.snap.png +0 -0
- package/src/components/ContextualMenu/tests/ContextualMenu.visual.cy.ts +35 -0
- package/src/components/ContextualMenu/tests/__snapshots__/contextual-menu-default.snap.png +0 -0
- package/src/components/ContextualMenu/tests/__snapshots__/contextual-menu-selected.snap.png +0 -0
- package/src/components/CookieBanner/CookieBanner.mdx +0 -1
- package/src/components/CookieBanner/tests/CookieBanner.visual.cy.ts +29 -0
- package/src/components/CookieBanner/tests/__snapshots__/cookie-banner-default.snap.png +0 -0
- package/src/components/CookieBanner/tests/__snapshots__/cookie-banner-with-items.snap.png +0 -0
- package/src/components/CookiesSelection/tests/CookiesSelection.visual.cy.ts +21 -0
- package/src/components/CookiesSelection/tests/__snapshots__/cookies-selection-default.snap.png +0 -0
- package/src/components/CopyBtn/CopyBtn.mdx +0 -1
- package/src/components/CopyBtn/tests/CopyBtn.visual.cy.ts +24 -0
- package/src/components/CopyBtn/tests/__snapshots__/copy-btn-default.snap.png +0 -0
- package/src/components/CopyBtn/tests/__snapshots__/copy-btn-no-tooltip.snap.png +0 -0
- package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.stories.ts +123 -439
- package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.vue +147 -41
- package/src/components/Customs/Selects/SelectBtnField/Validation/Validation.stories.ts +600 -0
- package/src/components/Customs/Selects/SelectBtnField/composables/useSelectBtnFieldValidation.ts +87 -0
- package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.spec.ts +402 -33
- package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.visual.cy.ts +60 -0
- package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/SelectBtnField.spec.ts.snap +52 -38
- package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/select-btn-field-default.snap.png +0 -0
- package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/select-btn-field-inline.snap.png +0 -0
- package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/select-btn-field-readonly.snap.png +0 -0
- package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/select-btn-field-selected.snap.png +0 -0
- package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.vue +1 -1
- package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.spec.ts +2 -0
- package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.visual.cy.ts +63 -0
- package/src/components/Customs/Selects/SyAutocomplete/tests/__snapshots__/sy-autocomplete-default.snap.png +0 -0
- package/src/components/Customs/Selects/SyAutocomplete/tests/__snapshots__/sy-autocomplete-loading.snap.png +0 -0
- package/src/components/Customs/Selects/SyAutocomplete/tests/__snapshots__/sy-autocomplete-multiple.snap.png +0 -0
- package/src/components/Customs/Selects/SyAutocomplete/tests/__snapshots__/sy-autocomplete-with-value.snap.png +0 -0
- package/src/components/Customs/Selects/SyAutocomplete/validation/Validation.stories.ts +0 -93
- package/src/components/Customs/Selects/SyInputSelect/tests/SyInputSelect.visual.cy.ts +48 -0
- package/src/components/Customs/Selects/SyInputSelect/tests/__snapshots__/sy-input-select-default.snap.png +0 -0
- package/src/components/Customs/Selects/SyInputSelect/tests/__snapshots__/sy-input-select-required.snap.png +0 -0
- package/src/components/Customs/Selects/SyInputSelect/tests/__snapshots__/sy-input-select-with-value.snap.png +0 -0
- package/src/components/Customs/Selects/SySelect/SySelect.vue +22 -47
- package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +3 -3
- package/src/components/Customs/Selects/SySelect/tests/SySelect.visual.cy.ts +77 -0
- package/src/components/Customs/Selects/SySelect/tests/__snapshots__/sy-select-clearable.snap.png +0 -0
- package/src/components/Customs/Selects/SySelect/tests/__snapshots__/sy-select-default.snap.png +0 -0
- package/src/components/Customs/Selects/SySelect/tests/__snapshots__/sy-select-multiple-chips.snap.png +0 -0
- package/src/components/Customs/Selects/SySelect/tests/__snapshots__/sy-select-required.snap.png +0 -0
- package/src/components/Customs/Selects/SySelect/tests/__snapshots__/sy-select-with-value.snap.png +0 -0
- package/src/components/Customs/Selects/SySelect/validation/Validation.stories.ts +1 -92
- package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.stories.ts +342 -162
- package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.vue +77 -129
- package/src/components/Customs/SyCheckBoxGroup/Validation/Validation.stories.ts +1008 -0
- package/src/components/Customs/SyCheckBoxGroup/composables/useSyCheckBoxGroupValidation.ts +107 -0
- package/src/components/Customs/SyCheckBoxGroup/tests/SyCheckBoxGroup.spec.ts +180 -7
- package/src/components/Customs/SyCheckBoxGroup/tests/SyCheckBoxGroup.visual.cy.ts +55 -0
- package/src/components/Customs/SyCheckBoxGroup/tests/__snapshots__/sy-checkbox-group-default.snap.png +0 -0
- package/src/components/Customs/SyCheckBoxGroup/tests/__snapshots__/sy-checkbox-group-disabled.snap.png +0 -0
- package/src/components/Customs/SyCheckBoxGroup/tests/__snapshots__/sy-checkbox-group-selected.snap.png +0 -0
- package/src/components/Customs/SyCheckBoxGroup/tests/__snapshots__/sy-checkbox-group-with-label.snap.png +0 -0
- package/src/components/Customs/SyCheckBoxGroup/types.ts +49 -0
- package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +41 -161
- package/src/components/Customs/SyCheckbox/SyCheckbox.vue +71 -156
- package/src/components/Customs/SyCheckbox/Validation/Validation.stories.ts +654 -0
- package/src/components/Customs/SyCheckbox/composables/useSyCheckboxValidation.ts +105 -0
- package/src/components/Customs/SyCheckbox/tests/SyCheckbox.spec.ts +106 -0
- package/src/components/Customs/SyCheckbox/tests/SyCheckbox.visual.cy.ts +61 -0
- package/src/components/Customs/SyCheckbox/tests/__snapshots__/sy-checkbox-checked.snap.png +0 -0
- package/src/components/Customs/SyCheckbox/tests/__snapshots__/sy-checkbox-disabled.snap.png +0 -0
- package/src/components/Customs/SyCheckbox/tests/__snapshots__/sy-checkbox-indeterminate.snap.png +0 -0
- package/src/components/Customs/SyCheckbox/tests/__snapshots__/sy-checkbox-required.snap.png +0 -0
- package/src/components/Customs/SyCheckbox/tests/__snapshots__/sy-checkbox-unchecked.snap.png +0 -0
- package/src/components/Customs/SyCheckbox/tests/useSyCheckboxValidation.spec.ts +98 -0
- package/src/components/Customs/SyCheckbox/types.ts +51 -0
- package/src/components/Customs/SyIcon/SyIcon.vue +19 -1
- package/src/components/Customs/SyIcon/tests/SyIcon.visual.cy.ts +83 -0
- package/src/components/Customs/SyIcon/tests/__snapshots__/sy-icon-color-error.snap.png +0 -0
- package/src/components/Customs/SyIcon/tests/__snapshots__/sy-icon-decorative.snap.png +0 -0
- package/src/components/Customs/SyIcon/tests/__snapshots__/sy-icon-informative.snap.png +0 -0
- package/src/components/Customs/SyIcon/tests/__snapshots__/sy-icon-role-button.snap.png +0 -0
- package/src/components/Customs/SyIcon/tests/__snapshots__/sy-icon-size-large.snap.png +0 -0
- package/src/components/Customs/SyIconButton/tests/SyIconButton.visual.cy.ts +55 -0
- package/src/components/Customs/SyIconButton/tests/__snapshots__/sy-icon-button-default.snap.png +0 -0
- package/src/components/Customs/SyIconButton/tests/__snapshots__/sy-icon-button-disabled.snap.png +0 -0
- package/src/components/Customs/SyIconButton/tests/__snapshots__/sy-icon-button-error.snap.png +0 -0
- package/src/components/Customs/SyIconButton/tests/__snapshots__/sy-icon-button-large.snap.png +0 -0
- package/src/components/Customs/SyPagination/tests/SyPagination.visual.cy.ts +40 -0
- package/src/components/Customs/SyPagination/tests/__snapshots__/sy-pagination-first-page.snap.png +0 -0
- package/src/components/Customs/SyPagination/tests/__snapshots__/sy-pagination-middle-page.snap.png +0 -0
- package/src/components/Customs/SyPagination/tests/__snapshots__/sy-pagination-with-label.snap.png +0 -0
- package/src/components/Customs/SyRadioGroup/SyRadioGroup.stories.ts +0 -1
- package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +4 -3
- package/src/components/Customs/SyRadioGroup/composables/useSyRadioGroupValidation.ts +1 -1
- package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-asterisk.snap.png +0 -0
- package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-comfortable.snap.png +0 -0
- package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-compact.snap.png +0 -0
- package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-default.snap.png +0 -0
- package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-disabled.snap.png +0 -0
- package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-error.snap.png +0 -0
- package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-no-details.snap.png +0 -0
- package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-readonly.snap.png +0 -0
- package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-selected.snap.png +0 -0
- package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-success.snap.png +0 -0
- package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-warning.snap.png +0 -0
- package/src/components/Customs/SyRadioGroup/validation/Validation.stories.ts +63 -27
- package/src/components/Customs/SyTabs/tests/SyTabs.visual.cy.ts +30 -0
- package/src/components/Customs/SyTabs/tests/__snapshots__/sy-tabs-default.snap.png +0 -0
- package/src/components/Customs/SyTabs/tests/__snapshots__/sy-tabs-second-active.snap.png +0 -0
- package/src/components/Customs/SyTextField/FieldState.vue +50 -0
- package/src/components/Customs/SyTextField/SyTextField.stories.ts +160 -778
- package/src/components/Customs/SyTextField/SyTextField.vue +178 -160
- package/src/components/Customs/SyTextField/Validation/Validation.stories.ts +1164 -0
- package/src/components/Customs/SyTextField/locales.ts +12 -0
- package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +174 -8
- package/src/components/Customs/SyTextField/tests/SyTextField.visual.cy.ts +116 -0
- package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-clearable.snap.png +0 -0
- package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-default.snap.png +0 -0
- package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-number-disabled.snap.png +0 -0
- package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-number-no-spinner.snap.png +0 -0
- package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-number.snap.png +0 -0
- package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-prepend-icon.snap.png +0 -0
- package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-readonly.snap.png +0 -0
- package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-required.snap.png +0 -0
- package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-with-value.snap.png +0 -0
- package/src/components/Customs/SyTextField/types.ts +70 -0
- package/src/components/Customs/SyTextField/useNumberField.ts +93 -0
- package/src/components/Customs/SyTextField/useSyTextFieldValidation.ts +95 -0
- package/src/components/DataList/DataList.mdx +0 -1
- package/src/components/DataList/tests/DataList.visual.cy.ts +85 -0
- package/src/components/DataList/tests/__snapshots__/data-list-default.snap.png +0 -0
- package/src/components/DataList/tests/__snapshots__/data-list-loading.snap.png +0 -0
- package/src/components/DataList/tests/__snapshots__/data-list-row.snap.png +0 -0
- package/src/components/DataList/tests/__snapshots__/data-list-with-icons.snap.png +0 -0
- package/src/components/DataList/tests/__snapshots__/data-list-with-title.snap.png +0 -0
- package/src/components/DataListGroup/DataListGroup.mdx +0 -1
- package/src/components/DataListGroup/tests/DataListGroup.visual.cy.ts +51 -0
- package/src/components/DataListGroup/tests/__snapshots__/data-list-group-default.snap.png +0 -0
- package/src/components/DataListGroup/tests/__snapshots__/data-list-group-loading.snap.png +0 -0
- package/src/components/DataListItem/tests/DataListItem.visual.cy.ts +53 -0
- package/src/components/DataListItem/tests/__snapshots__/data-list-item-chip.snap.png +0 -0
- package/src/components/DataListItem/tests/__snapshots__/data-list-item-default.snap.png +0 -0
- package/src/components/DataListItem/tests/__snapshots__/data-list-item-placeholder.snap.png +0 -0
- package/src/components/DataListItem/tests/__snapshots__/data-list-item-row.snap.png +0 -0
- package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +1 -1
- package/src/components/DatePicker/CalendarMode/DatePicker.vue +7 -7
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +1 -1
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +7 -8
- package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +1 -1
- package/src/components/DatePicker/DateTextInput/DateTextInput.vue +2 -2
- package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +1 -1
- package/src/components/DatePicker/composables/tests/useTodayButton.spec.ts +10 -10
- package/src/components/DatePicker/composables/useCalendarKeyboardNavigation.ts +11 -2
- package/src/components/DeclarationAccessibilityPage/tests/DeclarationAccessibilityPage.visual.cy.ts +35 -0
- package/src/components/DeclarationAccessibilityPage/tests/__snapshots__/declaration-a11y-page-default.snap.png +0 -0
- package/src/components/DeclarationAccessibilityPage/tests/__snapshots__/declaration-a11y-page-full.snap.png +0 -0
- package/src/components/DiacriticPicker/DiacriticPicker.mdx +0 -1
- package/src/components/DiacriticPicker/tests/DiacriticPicker.visual.cy.ts +24 -0
- package/src/components/DiacriticPicker/tests/__snapshots__/diacritic-picker-custom-title.snap.png +0 -0
- package/src/components/DiacriticPicker/tests/__snapshots__/diacritic-picker-default.snap.png +0 -0
- package/src/components/DialogBox/DialogBox.mdx +0 -1
- package/src/components/DialogBox/DialogBox.stories.ts +399 -4
- package/src/components/DialogBox/DialogBox.vue +20 -0
- package/src/components/DialogBox/locales.ts +1 -0
- package/src/components/DialogBox/tests/DialogBox.spec.ts +73 -0
- package/src/components/DialogBox/tests/DialogBox.visual.cy.ts +24 -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/DownloadBtn/tests/DownloadBtn.spec.ts +2 -2
- package/src/components/DownloadBtn/tests/DownloadBtn.visual.cy.ts +38 -0
- package/src/components/DownloadBtn/tests/__snapshots__/download-btn-dark.snap.png +0 -0
- package/src/components/DownloadBtn/tests/__snapshots__/download-btn-idle.snap.png +0 -0
- package/src/components/ErrorPage/ErrorPage.mdx +1 -1
- package/src/components/ErrorPage/tests/ErrorPage.visual.cy.ts +32 -0
- package/src/components/ErrorPage/tests/__snapshots__/error-page-custom.snap.png +0 -0
- package/src/components/ErrorPage/tests/__snapshots__/error-page-default.snap.png +0 -0
- package/src/components/ErrorPage/tests/__snapshots__/error-page-no-btn.snap.png +0 -0
- package/src/components/ExternalLinks/ExternalLinks.mdx +0 -1
- package/src/components/ExternalLinks/tests/ExternalLinks.visual.cy.ts +30 -0
- package/src/components/ExternalLinks/tests/__snapshots__/external-links-default.snap.png +0 -0
- package/src/components/ExternalLinks/tests/__snapshots__/external-links-fixed.snap.png +0 -0
- package/src/components/FileList/FileList.mdx +0 -1
- package/src/components/FileList/tests/FileList.visual.cy.ts +31 -0
- package/src/components/FileList/tests/__snapshots__/file-list-default.snap.png +0 -0
- package/src/components/FileList/tests/__snapshots__/file-list-with-delete.snap.png +0 -0
- package/src/components/FilePreview/accessibilite/Accessibility.mdx +86 -8
- package/src/components/FileUpload/tests/FileUpload.visual.cy.ts +36 -0
- package/src/components/FileUpload/tests/__snapshots__/file-upload-default.snap.png +0 -0
- package/src/components/FileUpload/tests/__snapshots__/file-upload-disabled.snap.png +0 -0
- package/src/components/FileUpload/tests/__snapshots__/file-upload-multiple.snap.png +0 -0
- package/src/components/FilterInline/FilterInline.mdx +0 -1
- package/src/components/FilterInline/FilterInline.stories.ts +2 -0
- package/src/components/FilterInline/FilterInline.vue +10 -5
- package/src/components/FilterInline/tests/FilterInline.visual.cy.ts +25 -0
- package/src/components/FilterInline/tests/__snapshots__/filter-inline-default.snap.png +0 -0
- package/src/components/FilterSideBar/FilterSideBar.mdx +8 -1
- package/src/components/FilterSideBar/FilterSideBar.stories.ts +136 -1
- package/src/components/FilterSideBar/FilterSideBar.vue +30 -8
- package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +55 -0
- package/src/components/FilterSideBar/tests/FilterSideBar.visual.cy.ts +37 -0
- package/src/components/FilterSideBar/tests/__snapshots__/filter-sidebar-default.snap.png +0 -0
- package/src/components/FilterSideBar/tests/__snapshots__/filter-sidebar-modale.snap.png +0 -0
- package/src/components/FooterBar/FooterBar.mdx +0 -1
- package/src/components/FooterBar/tests/FooterBar.visual.cy.ts +37 -0
- package/src/components/FooterBar/tests/__snapshots__/footer-bar-default.snap.png +0 -0
- package/src/components/FooterBar/tests/__snapshots__/footer-bar-no-logo.snap.png +0 -0
- package/src/components/FooterBar/tests/__snapshots__/footer-bar-no-social.snap.png +0 -0
- package/src/components/FooterBar/tests/__snapshots__/footer-bar-version.snap.png +0 -0
- package/src/components/FranceConnectBtn/FranceConnectBtn.mdx +0 -1
- package/src/components/FranceConnectBtn/tests/FranceConnectBtn.visual.cy.ts +38 -0
- package/src/components/FranceConnectBtn/tests/__snapshots__/france-connect-btn-dark.snap.png +0 -0
- package/src/components/FranceConnectBtn/tests/__snapshots__/france-connect-btn-default.snap.png +0 -0
- package/src/components/FranceConnectBtn/tests/__snapshots__/france-connect-btn-plus.snap.png +0 -0
- package/src/components/HeaderBar/HeaderBar.mdx +0 -1
- package/src/components/HeaderBar/HeaderBurgerMenu/tests/HeaderBurgerMenu.spec.ts +4 -4
- 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/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/HeaderLoading/HeaderLoading.mdx +0 -1
- package/src/components/HeaderLoading/tests/HeaderLoading.visual.cy.ts +34 -0
- package/src/components/HeaderLoading/tests/__snapshots__/header-loading-custom-size.snap.png +0 -0
- package/src/components/HeaderLoading/tests/__snapshots__/header-loading-default.snap.png +0 -0
- package/src/components/HeaderLoading/tests/__snapshots__/header-loading-standalone.snap.png +0 -0
- package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.spec.ts +4 -4
- package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.visual.cy.ts +34 -0
- package/src/components/HeaderNavigationBar/tests/__snapshots__/header-navigation-bar-default.snap.png +0 -0
- package/src/components/HeaderNavigationBar/tests/__snapshots__/header-navigation-bar-subtitle.snap.png +0 -0
- package/src/components/HeaderToolbar/tests/HeaderToolbar.visual.cy.ts +25 -0
- package/src/components/HeaderToolbar/tests/__snapshots__/header-toolbar-custom.snap.png +0 -0
- package/src/components/HeaderToolbar/tests/__snapshots__/header-toolbar-default.snap.png +0 -0
- package/src/components/LangBtn/LangBtn.mdx +0 -1
- package/src/components/LangBtn/tests/LangBtn.visual.cy.ts +33 -0
- package/src/components/LangBtn/tests/__snapshots__/lang-btn-default.snap.png +0 -0
- package/src/components/LangBtn/tests/__snapshots__/lang-btn-english.snap.png +0 -0
- package/src/components/LangBtn/tests/__snapshots__/lang-btn-no-arrow.snap.png +0 -0
- package/src/components/Logo/Logo.mdx +1 -1
- 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/tests/LogoBrandSection.visual.cy.ts +43 -0
- package/src/components/LogoBrandSection/tests/__snapshots__/logo-brand-section-default.snap.png +0 -0
- package/src/components/LogoBrandSection/tests/__snapshots__/logo-brand-section-mobile.snap.png +0 -0
- package/src/components/LogoBrandSection/tests/__snapshots__/logo-brand-section-reduced.snap.png +0 -0
- package/src/components/LogoBrandSection/tests/__snapshots__/logo-brand-section-with-title.snap.png +0 -0
- package/src/components/LunarCalendar/LunarCalendar.mdx +6 -9
- package/src/components/LunarCalendar/LunarCalendar.stories.ts +243 -46
- package/src/components/LunarCalendar/LunarCalendar.vue +61 -26
- package/src/components/LunarCalendar/Validation/Validation.stories.ts +717 -0
- package/src/components/LunarCalendar/tests/LunarCalendar.a11y.spec.ts +1 -1
- package/src/components/LunarCalendar/tests/LunarCalendar.spec.ts +197 -6
- package/src/components/LunarCalendar/tests/LunarCalendar.visual.cy.ts +36 -0
- package/src/components/LunarCalendar/tests/__snapshots__/lunar-calendar-default.snap.png +0 -0
- package/src/components/LunarCalendar/tests/__snapshots__/lunar-calendar-required.snap.png +0 -0
- package/src/components/LunarCalendar/tests/__snapshots__/lunar-calendar-with-value.snap.png +0 -0
- package/src/components/LunarCalendar/tests/useLunarCalendarValidation.spec.ts +287 -0
- package/src/components/LunarCalendar/types.ts +39 -0
- package/src/components/LunarCalendar/useLunarCalendarValidation.ts +115 -39
- package/src/components/MaintenancePage/tests/MaintenancePage.visual.cy.ts +22 -0
- package/src/components/MaintenancePage/tests/__snapshots__/maintenance-page-custom.snap.png +0 -0
- package/src/components/MaintenancePage/tests/__snapshots__/maintenance-page-default.snap.png +0 -0
- package/src/components/MonthPicker/MonthPicker.stories.ts +38 -281
- package/src/components/MonthPicker/MonthPicker.vue +66 -17
- package/src/components/MonthPicker/MonthPickerText/MonthPickerInput.vue +44 -20
- package/src/components/MonthPicker/MonthPickerText/useTextField.ts +5 -0
- package/src/components/MonthPicker/Validation/Validation.stories.ts +1117 -0
- package/src/components/MonthPicker/locales.ts +1 -0
- package/src/components/MonthPicker/tests/MonthPicker.spec.ts +353 -2
- package/src/components/MonthPicker/tests/MonthPicker.visual.cy.ts +37 -0
- package/src/components/MonthPicker/tests/__snapshots__/MonthPicker.spec.ts.snap +14 -8
- package/src/components/MonthPicker/tests/__snapshots__/month-picker-default.snap.png +0 -0
- package/src/components/MonthPicker/tests/__snapshots__/month-picker-disabled.snap.png +0 -0
- package/src/components/MonthPicker/tests/__snapshots__/month-picker-readonly.snap.png +0 -0
- package/src/components/MonthPicker/tests/__snapshots__/month-picker-with-value.snap.png +0 -0
- package/src/components/MonthPicker/types.ts +16 -0
- package/src/components/MonthPicker/useMonthPickerValidation.ts +64 -27
- package/src/components/NirField/NirField.mdx +120 -66
- package/src/components/NirField/NirField.stories.ts +256 -682
- package/src/components/NirField/NirField.vue +98 -32
- package/src/components/NirField/tests/NirField.spec.ts +135 -14
- package/src/components/NirField/tests/NirField.visual.cy.ts +28 -0
- package/src/components/NirField/tests/__snapshots__/nir-field-complex.snap.png +0 -0
- package/src/components/NirField/tests/__snapshots__/nir-field-default.snap.png +0 -0
- package/src/components/NirField/tests/__snapshots__/nir-field-with-key.snap.png +0 -0
- package/src/components/NirField/tests/useNirValidation.spec.ts +168 -0
- package/src/components/NirField/useNirValidation.ts +44 -19
- package/src/components/NirField/validation/Validation.stories.ts +866 -0
- package/src/components/NotFoundPage/tests/NotFoundPage.visual.cy.ts +28 -0
- package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +263 -245
- package/src/components/NotFoundPage/tests/__snapshots__/not-found-page-custom-btn.snap.png +0 -0
- package/src/components/NotFoundPage/tests/__snapshots__/not-found-page-default.snap.png +0 -0
- package/src/components/NotFoundPage/tests/__snapshots__/not-found-page-no-btn.snap.png +0 -0
- package/src/components/NotificationBar/NotificationBar.mdx +0 -1
- package/src/components/NotificationBar/tests/NotificationBar.visual.cy.ts +54 -0
- package/src/components/NotificationBar/tests/__snapshots__/notification-bar-bottom.snap.png +0 -0
- package/src/components/NotificationBar/tests/__snapshots__/notification-bar-info.snap.png +0 -0
- package/src/components/NotificationBar/tests/__snapshots__/notification-bar-multiple.snap.png +0 -0
- package/src/components/PageContainer/PageContainer.mdx +0 -1
- package/src/components/PageContainer/PageContainer.stories.ts +170 -2
- package/src/components/PageContainer/PageContainer.vue +63 -8
- package/src/components/PageContainer/tests/PageContainer.visual.cy.ts +33 -0
- package/src/components/PageContainer/tests/__snapshots__/PageContainer.spec.ts.snap +19 -11
- package/src/components/PageContainer/tests/__snapshots__/page-container-color.snap.png +0 -0
- package/src/components/PageContainer/tests/__snapshots__/page-container-default.snap.png +0 -0
- package/src/components/PageContainer/tests/__snapshots__/page-container-md.snap.png +0 -0
- package/src/components/PaginatedTable/PaginatedTable.mdx +0 -1
- package/src/components/PaginatedTable/accessibilite/Accessibility.mdx +99 -7
- package/src/components/PaginatedTable/tests/PaginatedTable.visual.cy.ts +41 -0
- package/src/components/PaginatedTable/tests/__snapshots__/paginated-table-default.snap.png +0 -0
- package/src/components/PaginatedTable/tests/__snapshots__/paginated-table-server.snap.png +0 -0
- package/src/components/PasswordField/PasswordField.mdx +5 -52
- package/src/components/PasswordField/PasswordField.stories.ts +74 -931
- package/src/components/PasswordField/PasswordField.vue +120 -191
- package/src/components/PasswordField/Validation/Validation.stories.ts +1295 -0
- package/src/components/PasswordField/locales.ts +2 -0
- package/src/components/PasswordField/tests/PasswordField.spec.ts +144 -106
- package/src/components/PasswordField/tests/PasswordField.visual.cy.ts +49 -0
- package/src/components/PasswordField/tests/__snapshots__/password-field-default.snap.png +0 -0
- package/src/components/PasswordField/tests/__snapshots__/password-field-disabled.snap.png +0 -0
- package/src/components/PasswordField/tests/__snapshots__/password-field-required.snap.png +0 -0
- package/src/components/PasswordField/tests/__snapshots__/password-field-underlined.snap.png +0 -0
- package/src/components/PasswordField/types.ts +17 -0
- package/src/components/PasswordField/usePasswordFieldValidation.ts +100 -0
- package/src/components/PeriodField/PeriodField.mdx +0 -1
- package/src/components/PeriodField/PeriodField.stories.ts +3 -1
- package/src/components/PeriodField/PeriodField.vue +1 -1
- package/src/components/PeriodField/tests/PeriodField.visual.cy.ts +39 -0
- package/src/components/PeriodField/tests/__snapshots__/period-field-default.snap.png +0 -0
- package/src/components/PeriodField/tests/__snapshots__/period-field-no-calendar.snap.png +0 -0
- package/src/components/PeriodField/tests/__snapshots__/period-field-required.snap.png +0 -0
- package/src/components/PeriodField/tests/__snapshots__/period-field-with-value.snap.png +0 -0
- package/src/components/PhoneField/PhoneField.mdx +2 -3
- package/src/components/PhoneField/PhoneField.stories.ts +227 -410
- package/src/components/PhoneField/PhoneField.vue +205 -439
- package/src/components/PhoneField/indicatifs.ts +1 -1
- package/src/components/PhoneField/locales.ts +7 -0
- package/src/components/PhoneField/tests/PhoneField.a11y.spec.ts +0 -1
- package/src/components/PhoneField/tests/PhoneField.spec.ts +518 -220
- package/src/components/PhoneField/tests/PhoneField.visual.cy.ts +28 -0
- package/src/components/PhoneField/tests/__snapshots__/phone-field-default.snap.png +0 -0
- package/src/components/PhoneField/tests/__snapshots__/phone-field-with-country-code.snap.png +0 -0
- package/src/components/PhoneField/tests/__snapshots__/phone-field-with-value.snap.png +0 -0
- package/src/components/PhoneField/types.ts +30 -0
- package/src/components/PhoneField/usePhoneFieldValidation.ts +119 -0
- package/src/components/PhoneField/usePhoneIndicatifs.ts +89 -0
- package/src/components/PhoneField/validation/validation.stories.ts +717 -0
- package/src/components/RangeField/RangeField.mdx +0 -1
- 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/RatingPicker.mdx +0 -1
- package/src/components/RatingPicker/tests/RatingPicker.visual.cy.ts +52 -0
- package/src/components/RatingPicker/tests/__snapshots__/rating-picker-emotion.snap.png +0 -0
- package/src/components/RatingPicker/tests/__snapshots__/rating-picker-number.snap.png +0 -0
- package/src/components/RatingPicker/tests/__snapshots__/rating-picker-readonly.snap.png +0 -0
- package/src/components/RatingPicker/tests/__snapshots__/rating-picker-stars.snap.png +0 -0
- package/src/components/SearchListField/SearchListField.mdx +1 -1
- package/src/components/SearchListField/SearchListField.stories.ts +1 -1
- package/src/components/SearchListField/SearchListField.vue +9 -4
- package/src/components/SearchListField/tests/SearchListField.spec.ts +127 -0
- package/src/components/SearchListField/tests/SearchListField.visual.cy.ts +35 -0
- package/src/components/SearchListField/tests/__snapshots__/search-list-field-default.snap.png +0 -0
- package/src/components/SearchListField/tests/__snapshots__/search-list-field-with-selection.snap.png +0 -0
- package/src/components/SkipLink/tests/SkipLink.visual.cy.ts +16 -0
- package/src/components/SkipLink/tests/__snapshots__/skip-link-focused.snap.png +0 -0
- package/src/components/SocialMediaLinks/SocialMediaLinks.mdx +0 -1
- package/src/components/SocialMediaLinks/tests/SocialMediaLinks.visual.cy.ts +33 -0
- package/src/components/SocialMediaLinks/tests/__snapshots__/social-media-links-default.snap.png +0 -0
- package/src/components/SocialMediaLinks/tests/__snapshots__/social-media-links-no-native-heading.snap.png +0 -0
- package/src/components/StatusPage/StatusPage.vue +1 -0
- package/src/components/StatusPage/tests/StatusPage.visual.cy.ts +47 -0
- package/src/components/StatusPage/tests/__snapshots__/StatusPage.spec.ts.snap +248 -230
- package/src/components/StatusPage/tests/__snapshots__/status-page-default.snap.png +0 -0
- package/src/components/StatusPage/tests/__snapshots__/status-page-full.snap.png +0 -0
- package/src/components/StatusPage/tests/__snapshots__/status-page-no-btn.snap.png +0 -0
- package/src/components/SubHeader/SubHeader.mdx +5 -6
- package/src/components/SubHeader/tests/SubHeader.visual.cy.ts +48 -0
- package/src/components/SubHeader/tests/__snapshots__/sub-header-default.snap.png +0 -0
- package/src/components/SubHeader/tests/__snapshots__/sub-header-loading.snap.png +0 -0
- package/src/components/SubHeader/tests/__snapshots__/sub-header-no-back-btn.snap.png +0 -0
- package/src/components/SubHeader/tests/__snapshots__/sub-header-with-subtitle.snap.png +0 -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/SyHeading/tests/SyHeading.visual.cy.ts +33 -0
- package/src/components/SyHeading/tests/__snapshots__/sy-heading-level-1.snap.png +0 -0
- package/src/components/SyHeading/tests/__snapshots__/sy-heading-level-2.snap.png +0 -0
- package/src/components/SyHeading/tests/__snapshots__/sy-heading-level-3.snap.png +0 -0
- package/src/components/SyTextArea/SyTextArea.stories.ts +25 -0
- package/src/components/SyTextArea/SyTextArea.vue +7 -0
- package/src/components/SyTextArea/composables/useSyTextAreaValidation.ts +1 -1
- package/src/components/SyTextArea/tests/SyTextArea.a11y.spec.ts +18 -0
- package/src/components/SyTextArea/tests/SyTextArea.spec.ts +135 -1
- package/src/components/SyTextArea/tests/SyTextArea.visual.cy.ts +48 -0
- package/src/components/SyTextArea/tests/__snapshots__/sy-textarea-default.snap.png +0 -0
- package/src/components/SyTextArea/tests/__snapshots__/sy-textarea-filled.snap.png +0 -0
- package/src/components/SyTextArea/tests/__snapshots__/sy-textarea-required.snap.png +0 -0
- package/src/components/SyTextArea/tests/__snapshots__/sy-textarea-with-value.snap.png +0 -0
- package/src/components/SyTextArea/validation/Validation.stories.ts +6 -86
- package/src/components/TableToolbar/tests/TableToolbar.visual.cy.ts +49 -0
- package/src/components/TableToolbar/tests/__snapshots__/table-toolbar-default.snap.png +0 -0
- package/src/components/TableToolbar/tests/__snapshots__/table-toolbar-filtered.snap.png +0 -0
- package/src/components/TableToolbar/tests/__snapshots__/table-toolbar-loading.snap.png +0 -0
- package/src/components/TableToolbar/tests/__snapshots__/table-toolbar-with-add-btn.snap.png +0 -0
- package/src/components/Tables/SyServerTable/SyServerTable.vue +3 -3
- package/src/components/Tables/SyServerTable/accessibilite/Accessibility.mdx +114 -7
- package/src/components/Tables/SyServerTable/tests/SyServerTable.visual.cy.ts +58 -0
- package/src/components/Tables/SyServerTable/tests/__snapshots__/sy-server-table-default.snap.png +0 -0
- package/src/components/Tables/SyServerTable/tests/__snapshots__/sy-server-table-loading.snap.png +0 -0
- package/src/components/Tables/SyServerTable/tests/__snapshots__/sy-server-table-with-select.snap.png +0 -0
- package/src/components/Tables/SyTable/accessibilite/Accessibility.mdx +116 -7
- package/src/components/Tables/SyTable/tests/SyTable.visual.cy.ts +70 -0
- package/src/components/Tables/SyTable/tests/__snapshots__/sy-table-compact.snap.png +0 -0
- package/src/components/Tables/SyTable/tests/__snapshots__/sy-table-default.snap.png +0 -0
- package/src/components/Tables/SyTable/tests/__snapshots__/sy-table-striped.snap.png +0 -0
- package/src/components/Tables/SyTable/tests/__snapshots__/sy-table-with-select.snap.png +0 -0
- package/src/components/Tables/common/tableStyles.scss +4 -4
- package/src/components/Tables/common/tests/SyTableFilter.spec.ts +19 -13
- package/src/components/Tables/common/tests/filterByRange.spec.ts +23 -22
- package/src/components/ToolbarContainer/tests/ToolbarContainer.visual.cy.ts +34 -0
- package/src/components/ToolbarContainer/tests/__snapshots__/toolbar-container-default.snap.png +0 -0
- package/src/components/ToolbarContainer/tests/__snapshots__/toolbar-container-links.snap.png +0 -0
- package/src/components/UploadWorkflow/UploadWorkflow.mdx +0 -1
- package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +1 -2
- package/src/components/UploadWorkflow/tests/UploadWorkflow.visual.cy.ts +39 -0
- package/src/components/UploadWorkflow/tests/__snapshots__/upload-workflow-default.snap.png +0 -0
- package/src/components/UploadWorkflow/tests/__snapshots__/upload-workflow-with-title.snap.png +0 -0
- package/src/components/UserMenuBtn/UserMenuBtn.mdx +0 -1
- package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +177 -0
- package/src/components/UserMenuBtn/tests/UserMenuBtn.visual.cy.ts +42 -0
- package/src/components/UserMenuBtn/tests/__snapshots__/user-menu-btn-default.snap.png +0 -0
- package/src/components/UserMenuBtn/tests/__snapshots__/user-menu-btn-no-logout.snap.png +0 -0
- package/src/components/UserMenuBtn/tests/__snapshots__/user-menu-btn-with-name.snap.png +0 -0
- package/src/composables/unifyValidation/documentationValidationProps.ts +2 -2
- package/src/composables/unifyValidation/tests/documentationValidationProps.spec.ts +2 -2
- package/src/composables/unifyValidation/tests/useValidation.spec.ts +13 -1
- package/src/composables/unifyValidation/useValidation.ts +41 -31
- package/src/composables/useFilterable/useFilterable.spec.ts +105 -142
- package/src/composables/useFilterable/useFilterable.ts +6 -17
- package/src/composables/useFormFieldErrorHandling.ts +1 -1
- package/src/composables/validation/tests/useFormValidation.spec.ts +11 -2
- package/src/composables/validation/tests/useValidatable.spec.ts +16 -6
- package/src/composables/validation/tests/useValidation.spec.ts +2 -2
- package/src/composables/validation/useValidation.ts +1 -1
- package/src/composantsVuetify/VCard/VCard.mdx +12 -0
- package/src/composantsVuetify/VCard/v-card.stories.ts +283 -1
- package/src/composantsVuetify/VCarousel/VCarousel.mdx +74 -0
- package/src/composantsVuetify/VCarousel/v-carousel.stories.ts +531 -0
- package/src/composantsVuetify/VNavigationDrawer/VNavgationDrawer.mdx +53 -0
- package/src/composantsVuetify/VNavigationDrawer/v-navigation-drawer.stories.ts +310 -0
- package/src/composantsVuetify/VSlideGroup/VSlideGroup.mdx +105 -0
- package/src/composantsVuetify/VSlideGroup/v-slide-group.stories.ts +463 -0
- package/src/composantsVuetify/VStepper/VStepper.mdx +56 -0
- package/src/composantsVuetify/VStepper/v-stepper.stories.ts +563 -0
- package/src/designTokens/tokens/amelipro/apLightTheme.ts +1 -0
- package/src/designTokens/tokens/amelipro/apSemantic.ts +1 -1
- package/src/designTokens/tokens/baseColors.ts +1 -1
- package/src/designTokens/tokens/baseTokens.ts +18 -18
- package/src/designTokens/tokens/pa/paLightTheme.ts +1 -0
- package/src/stories/Accessibilite/DesignSystem/a11y-status.json +1 -1
- package/src/stories/Components/Components.stories.ts +95 -11
- package/src/stories/Demarrer/Releases.stories.ts +59 -2
- package/src/stories/DesignTokens/Arrondis.mdx +1 -1
- package/src/stories/DesignTokens/Colors.mdx +2 -0
- package/src/stories/DesignTokens/Correspondances.mdx +219 -0
- package/src/stories/DesignTokens/UtiliserLesTokens.mdx +235 -0
- package/src/stories/DesignTokens/colors.stories.ts +582 -569
- package/src/stories/EcoConception/EcoBestPracticesDoc.vue +930 -0
- package/src/stories/EcoConception/EcoBestPratices.mdx +38 -0
- package/src/stories/EcoConception/Introduction.mdx +8 -1
- package/src/stories/EcoConception/datas/bonnes_pratiques_essentielles.json +1018 -0
- package/src/stories/EcoConception/ecoconception-best-practices.stories.ts +20 -0
- package/src/stories/GuideDuDev/Amelipro.mdx +9 -1
- package/src/stories/GuideDuDev/Amelipro.stories.ts +1023 -168
- package/src/stories/GuideDuDev/PortailAgent.stories.ts +0 -1
- package/src/utils/functions/deepCopy/index.ts +2 -3
- package/dist/components/Customs/SyCheckbox/locales.d.ts +0 -3
- package/dist/components/LunarCalendar/useLunarCalendarRules.d.ts +0 -5
- package/dist/components/PhoneField/tests/types.d.ts +0 -18
- package/dist/components/SyHeading/SyHeading.a11y.test.d.ts +0 -1
- package/dist/components/SyHeading/SyHeading.test.d.ts +0 -1
- package/src/components/Customs/SyCheckbox/locales.ts +0 -3
- package/src/components/Customs/SyTextField/types.d.ts +0 -4
- package/src/components/LunarCalendar/tests/useLunarCalendarRules.spec.ts +0 -184
- package/src/components/LunarCalendar/useLunarCalendarRules.ts +0 -96
- package/src/components/PhoneField/tests/types.d.ts +0 -19
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/vue3'
|
|
2
2
|
import PageContainer from './PageContainer.vue'
|
|
3
|
-
import { VCard } from 'vuetify/components'
|
|
3
|
+
import { VCard, VDivider } from 'vuetify/components'
|
|
4
|
+
import HeaderBar from '../HeaderBar/HeaderBar.vue'
|
|
5
|
+
import FooterBar from '../FooterBar/FooterBar.vue'
|
|
4
6
|
|
|
5
7
|
const meta = {
|
|
6
8
|
title: 'Composants/Layout/PageContainer',
|
|
7
9
|
component: PageContainer,
|
|
8
10
|
parameters: {
|
|
9
11
|
layout: 'fullscreen',
|
|
10
|
-
controls: { exclude: ['spacingClass', 'containerSize'] },
|
|
12
|
+
controls: { exclude: ['spacingClass', 'containerSize', 'alignCenter'] },
|
|
11
13
|
},
|
|
12
14
|
argTypes: {
|
|
13
15
|
size: {
|
|
@@ -254,3 +256,169 @@ export const WithAriaRole: Story = {
|
|
|
254
256
|
}
|
|
255
257
|
},
|
|
256
258
|
}
|
|
259
|
+
|
|
260
|
+
export const WithHeaderAndFooter: Story = {
|
|
261
|
+
parameters: {
|
|
262
|
+
layout: 'fullscreen',
|
|
263
|
+
sourceCode: [
|
|
264
|
+
{
|
|
265
|
+
name: 'Template',
|
|
266
|
+
code: `<template>
|
|
267
|
+
<div class="d-flex flex-column" style="min-height: 100vh; width: 100%;">
|
|
268
|
+
<PageContainer style="flex: 1; width: 100%;">
|
|
269
|
+
<template #prepend="{ width }">
|
|
270
|
+
<HeaderBar
|
|
271
|
+
service-title="Mon espace"
|
|
272
|
+
service-subtitle="Service de santé"
|
|
273
|
+
:heading-level-title="1"
|
|
274
|
+
:width="width"
|
|
275
|
+
>
|
|
276
|
+
<template #header-side>
|
|
277
|
+
<div class="d-flex align-center ga-3 text-primary">
|
|
278
|
+
<div class="text-body-2">
|
|
279
|
+
<div class="font-weight-medium">Dr. Jean Dupont</div>
|
|
280
|
+
<div>Cabinet médical</div>
|
|
281
|
+
<div>12 rue de la Paix, 75001 Paris</div>
|
|
282
|
+
</div>
|
|
283
|
+
<VDivider vertical class="mx-2" style="height: 48px;" />
|
|
284
|
+
<div class="text-body-2">
|
|
285
|
+
<div class="font-weight-medium">Contact</div>
|
|
286
|
+
<div>Tel: 01 23 45 67 89</div>
|
|
287
|
+
<div>contact@cabinet.fr</div>
|
|
288
|
+
</div>
|
|
289
|
+
</div>
|
|
290
|
+
</template>
|
|
291
|
+
<template #append>
|
|
292
|
+
<div class="bg-primary" style="width: 100%; min-height: 48px; display: flex; align-items: center; justify-content: center;">
|
|
293
|
+
<div class="text-white font-weight-medium">Mon Espace Personnel</div>
|
|
294
|
+
</div>
|
|
295
|
+
</template>
|
|
296
|
+
</HeaderBar>
|
|
297
|
+
</template>
|
|
298
|
+
|
|
299
|
+
<h2 class="text-h5 mb-4">Bienvenue dans votre espace professionnel</h2>
|
|
300
|
+
<p>
|
|
301
|
+
Le lorem ipsum est, en imprimerie, une suite de mots sans signification utilisée
|
|
302
|
+
à titre provisoire pour calibrer une mise en page, le texte définitif venant remplacer le
|
|
303
|
+
faux-texte dès qu'il est prêt ou que la mise en page est achevée. Généralement, on utilise
|
|
304
|
+
un texte en faux latin, qui permet de faire office de texte d'attente.
|
|
305
|
+
</p>
|
|
306
|
+
<p class="mt-4">
|
|
307
|
+
L'avantage de le mettre en latin est que l'opérateur sait au premier coup d'œil que la page
|
|
308
|
+
contenant ces lignes n'est pas valide, et surtout l'attention du client n'est pas dérangée
|
|
309
|
+
par le contenu, il demeure concentré seulement sur l'aspect graphique. Ce texte a pour autre
|
|
310
|
+
avantage d'utiliser des mots de longueur variable, essayant de simuler une occupation normale.
|
|
311
|
+
</p>
|
|
312
|
+
<p class="mt-4">
|
|
313
|
+
La méthode simplifiée consiste à ne pas s'embarrasser de prétentions philosophiques,
|
|
314
|
+
et à composer un texte en français présentable. On peut aussi utiliser des générateurs
|
|
315
|
+
de texte automatiques pour obtenir du contenu aléatoire, mais il faut veiller à ce que
|
|
316
|
+
le résultat soit cohérent et agréable à lire.
|
|
317
|
+
</p>
|
|
318
|
+
<p class="mt-4 mb-16">
|
|
319
|
+
Ce contenu supplémentaire permet de bien visualiser l'espacement entre le contenu principal
|
|
320
|
+
et le pied de page. Il est important de prévoir suffisamment d'espace pour que la mise en page
|
|
321
|
+
reste harmonieuse et que le contenu soit facilement lisible. Le texte d'attente peut être remplacé
|
|
322
|
+
par du texte réel dès que celui-ci est disponible.
|
|
323
|
+
</p>
|
|
324
|
+
|
|
325
|
+
<template #append="{ width }">
|
|
326
|
+
<FooterBar
|
|
327
|
+
:width="width"
|
|
328
|
+
version="3.0.0"
|
|
329
|
+
a11y-compliance="partiellement-conforme"
|
|
330
|
+
/>
|
|
331
|
+
</template>
|
|
332
|
+
</PageContainer>
|
|
333
|
+
</div>
|
|
334
|
+
</template>
|
|
335
|
+
`,
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
name: 'Script',
|
|
339
|
+
code: `<script setup lang="ts">
|
|
340
|
+
import { PageContainer, HeaderBar, FooterBar } from '@cnamts/synapse'
|
|
341
|
+
import { VDivider } from 'vuetify/components'
|
|
342
|
+
</script>
|
|
343
|
+
`,
|
|
344
|
+
},
|
|
345
|
+
],
|
|
346
|
+
},
|
|
347
|
+
render: (args) => {
|
|
348
|
+
return {
|
|
349
|
+
components: { PageContainer, HeaderBar, FooterBar, VDivider },
|
|
350
|
+
setup() {
|
|
351
|
+
return { args }
|
|
352
|
+
},
|
|
353
|
+
template: `
|
|
354
|
+
<div class="d-flex flex-column" style="min-height: 100vh; width: 100%;">
|
|
355
|
+
<PageContainer :size="args.size" :spacing="args.spacing" :color="args.color" style="flex: 1; width: 100%;">
|
|
356
|
+
<template #prepend="{ width }">
|
|
357
|
+
<HeaderBar
|
|
358
|
+
service-title="Mon espace"
|
|
359
|
+
service-subtitle="Service de santé"
|
|
360
|
+
:heading-level-title="1"
|
|
361
|
+
:width="width"
|
|
362
|
+
>
|
|
363
|
+
<template #header-side v-if="args.size !== 'xs' && args.size !== 'sm'">
|
|
364
|
+
<div class="d-flex align-center ga-3 text-primary mr-4">
|
|
365
|
+
<div class="text-body-2">
|
|
366
|
+
<div class="font-weight-medium">Dr. Jean Dupont</div>
|
|
367
|
+
<div>Cabinet médical</div>
|
|
368
|
+
<div>12 rue de la Paix, 75001 Paris</div>
|
|
369
|
+
</div>
|
|
370
|
+
<VDivider vertical class="mx-2" style="height: 48px;" />
|
|
371
|
+
<div class="text-body-2">
|
|
372
|
+
<div class="font-weight-medium">Contact</div>
|
|
373
|
+
<div>Tel: 01 23 45 67 89</div>
|
|
374
|
+
<div>contact@cabinet.fr</div>
|
|
375
|
+
</div>
|
|
376
|
+
</div>
|
|
377
|
+
</template>
|
|
378
|
+
<template #append>
|
|
379
|
+
<div class="bg-primary" style="width: 100%; min-height: 48px; display: flex; align-items: center; justify-content: center;">
|
|
380
|
+
<div class="text-white font-weight-medium">Mon Espace Personnel</div>
|
|
381
|
+
</div>
|
|
382
|
+
</template>
|
|
383
|
+
</HeaderBar>
|
|
384
|
+
</template>
|
|
385
|
+
|
|
386
|
+
<h2 class="text-h5 mb-4">Bienvenue dans votre espace professionnel</h2>
|
|
387
|
+
<p>
|
|
388
|
+
Le lorem ipsum est, en imprimerie, une suite de mots sans signification utilisée
|
|
389
|
+
à titre provisoire pour calibrer une mise en page, le texte définitif venant remplacer le
|
|
390
|
+
faux-texte dès qu'il est prêt ou que la mise en page est achevée. Généralement, on utilise
|
|
391
|
+
un texte en faux latin, qui permet de faire office de texte d'attente.
|
|
392
|
+
</p>
|
|
393
|
+
<p class="mt-4">
|
|
394
|
+
L'avantage de le mettre en latin est que l'opérateur sait au premier coup d'œil que la page
|
|
395
|
+
contenant ces lignes n'est pas valide, et surtout l'attention du client n'est pas dérangée
|
|
396
|
+
par le contenu, il demeure concentré seulement sur l'aspect graphique. Ce texte a pour autre
|
|
397
|
+
avantage d'utiliser des mots de longueur variable, essayant de simuler une occupation normale.
|
|
398
|
+
</p>
|
|
399
|
+
<p class="mt-4">
|
|
400
|
+
La méthode simplifiée consiste à ne pas s'embarrasser de prétentions philosophiques,
|
|
401
|
+
et à composer un texte en français présentable. On peut aussi utiliser des générateurs
|
|
402
|
+
de texte automatiques pour obtenir du contenu aléatoire, mais il faut veiller à ce que
|
|
403
|
+
le résultat soit cohérent et agréable à lire.
|
|
404
|
+
</p>
|
|
405
|
+
<p class="mt-4 mb-16">
|
|
406
|
+
Ce contenu supplémentaire permet de bien visualiser l'espacement entre le contenu principal
|
|
407
|
+
et le pied de page. Il est important de prévoir suffisamment d'espace pour que la mise en page
|
|
408
|
+
reste harmonieuse et que le contenu soit facilement lisible. Le texte d'attente peut être remplacé
|
|
409
|
+
par du texte réel dès que celui-ci est disponible.
|
|
410
|
+
</p>
|
|
411
|
+
|
|
412
|
+
<template #append="{ width }">
|
|
413
|
+
<FooterBar
|
|
414
|
+
:width="width"
|
|
415
|
+
version="3.0.0"
|
|
416
|
+
a11y-compliance="partiellement-conforme"
|
|
417
|
+
/>
|
|
418
|
+
</template>
|
|
419
|
+
</PageContainer>
|
|
420
|
+
</div>
|
|
421
|
+
`,
|
|
422
|
+
}
|
|
423
|
+
},
|
|
424
|
+
}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
uniqueId?: string
|
|
11
11
|
role?: AriaRole
|
|
12
12
|
ariaLabelledby?: string
|
|
13
|
+
alignCenter?: boolean
|
|
13
14
|
}>(), {
|
|
14
15
|
size: undefined,
|
|
15
16
|
spacing: undefined,
|
|
@@ -17,6 +18,7 @@
|
|
|
17
18
|
uniqueId: undefined,
|
|
18
19
|
role: undefined,
|
|
19
20
|
ariaLabelledby: undefined,
|
|
21
|
+
alignCenter: false,
|
|
20
22
|
})
|
|
21
23
|
|
|
22
24
|
const display = useDisplay()
|
|
@@ -53,6 +55,8 @@
|
|
|
53
55
|
}
|
|
54
56
|
})
|
|
55
57
|
|
|
58
|
+
const containerWidth = computed(() => `${containerSize.value}px`)
|
|
59
|
+
|
|
56
60
|
defineExpose({
|
|
57
61
|
spacingClass,
|
|
58
62
|
containerSize,
|
|
@@ -62,17 +66,54 @@
|
|
|
62
66
|
<template>
|
|
63
67
|
<div
|
|
64
68
|
:id="uniqueId ? `${uniqueId}-container` : undefined"
|
|
65
|
-
:class="[
|
|
69
|
+
:class="['vd-page-container d-flex flex-column', { 'align-center': alignCenter }]"
|
|
66
70
|
:role="role"
|
|
67
71
|
:aria-labelledby="ariaLabelledby"
|
|
68
72
|
>
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
+
<!-- Slot prepend avec wrapper de largeur fixe -->
|
|
74
|
+
<div
|
|
75
|
+
v-if="$slots.prepend"
|
|
76
|
+
class="vd-page-container__slot-wrapper"
|
|
77
|
+
>
|
|
78
|
+
<div
|
|
79
|
+
class="vd-page-container__slot-content"
|
|
80
|
+
:style="{ width: containerWidth }"
|
|
81
|
+
>
|
|
82
|
+
<slot
|
|
83
|
+
name="prepend"
|
|
84
|
+
:width="containerWidth"
|
|
85
|
+
/>
|
|
86
|
+
</div>
|
|
87
|
+
</div>
|
|
88
|
+
|
|
89
|
+
<div
|
|
90
|
+
:class="spacingClass"
|
|
91
|
+
class="vd-page-container__content"
|
|
73
92
|
>
|
|
74
|
-
<
|
|
75
|
-
|
|
93
|
+
<VSheet
|
|
94
|
+
:id="uniqueId ? `${uniqueId}-content` : undefined"
|
|
95
|
+
:width="containerSize"
|
|
96
|
+
:color="color"
|
|
97
|
+
>
|
|
98
|
+
<slot />
|
|
99
|
+
</VSheet>
|
|
100
|
+
</div>
|
|
101
|
+
|
|
102
|
+
<!-- Slot append avec wrapper de largeur fixe -->
|
|
103
|
+
<div
|
|
104
|
+
v-if="$slots.append"
|
|
105
|
+
class="vd-page-container__slot-wrapper"
|
|
106
|
+
>
|
|
107
|
+
<div
|
|
108
|
+
class="vd-page-container__slot-content"
|
|
109
|
+
:style="{ width: containerWidth }"
|
|
110
|
+
>
|
|
111
|
+
<slot
|
|
112
|
+
name="append"
|
|
113
|
+
:width="containerWidth"
|
|
114
|
+
/>
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
76
117
|
</div>
|
|
77
118
|
</template>
|
|
78
119
|
|
|
@@ -80,7 +121,21 @@
|
|
|
80
121
|
.vd-page-container {
|
|
81
122
|
flex: 1;
|
|
82
123
|
width: 100%;
|
|
83
|
-
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.vd-page-container__content {
|
|
127
|
+
display: flex;
|
|
128
|
+
justify-content: center;
|
|
129
|
+
width: 100%;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.vd-page-container__slot-wrapper {
|
|
133
|
+
width: 100%;
|
|
134
|
+
display: flex;
|
|
135
|
+
justify-content: center;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.vd-page-container__slot-content {
|
|
84
139
|
margin: 0 auto;
|
|
85
140
|
}
|
|
86
141
|
</style>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import PageContainer from '../PageContainer.vue'
|
|
2
|
+
import { h } from 'vue'
|
|
3
|
+
|
|
4
|
+
describe('PageContainer - Visual regression tests', () => {
|
|
5
|
+
it('displays the page container by default', () => {
|
|
6
|
+
cy.mountWithVuetify(PageContainer, {
|
|
7
|
+
slots: { default: () => h('p', 'Contenu de la page') },
|
|
8
|
+
})
|
|
9
|
+
|
|
10
|
+
cy.get('.v-application').should('be.visible')
|
|
11
|
+
cy.matchImageSnapshot('page-container-default', cy.get('.v-application'))
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
it('displays the page container with md size', () => {
|
|
15
|
+
cy.mountWithVuetify(PageContainer, {
|
|
16
|
+
props: { size: 'md' },
|
|
17
|
+
slots: { default: () => h('p', 'Contenu de la page') },
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
cy.get('.v-application').should('be.visible')
|
|
21
|
+
cy.matchImageSnapshot('page-container-md', cy.get('.v-application'))
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
it('displays the page container with background color', () => {
|
|
25
|
+
cy.mountWithVuetify(PageContainer, {
|
|
26
|
+
props: { color: 'blue-lighten-5' },
|
|
27
|
+
slots: { default: () => h('p', 'Contenu de la page') },
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
cy.get('.v-application').should('be.visible')
|
|
31
|
+
cy.matchImageSnapshot('page-container-color', cy.get('.v-application'))
|
|
32
|
+
})
|
|
33
|
+
})
|
|
@@ -3,18 +3,26 @@
|
|
|
3
3
|
exports[`PageContainer > render correctly 1`] = `
|
|
4
4
|
<div class="
|
|
5
5
|
d-flex
|
|
6
|
-
|
|
7
|
-
px-14
|
|
8
|
-
py-10
|
|
6
|
+
flex-column
|
|
9
7
|
vd-page-container
|
|
10
8
|
">
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
9
|
+
<!-- Slot prepend avec wrapper de largeur fixe -->
|
|
10
|
+
<!-- v-if -->
|
|
11
|
+
<div class="
|
|
12
|
+
px-14
|
|
13
|
+
py-10
|
|
14
|
+
vd-page-container__content
|
|
15
|
+
">
|
|
16
|
+
<div
|
|
17
|
+
class="
|
|
18
|
+
bg-transparent
|
|
19
|
+
v-sheet
|
|
20
|
+
v-theme--light
|
|
21
|
+
"
|
|
22
|
+
style="width: 800px;"
|
|
23
|
+
></div>
|
|
24
|
+
</div>
|
|
25
|
+
<!-- Slot append avec wrapper de largeur fixe -->
|
|
26
|
+
<!-- v-if -->
|
|
19
27
|
</div>
|
|
20
28
|
`;
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -28,7 +28,6 @@ import * as PaginatedTableStories from "./PaginatedTable.stories.ts";
|
|
|
28
28
|
itemsPerPage: 4,
|
|
29
29
|
sortBy: [{ key: 'calories', order: 'desc' }],
|
|
30
30
|
})
|
|
31
|
-
import '../../stories/styles/shared.css';
|
|
32
31
|
|
|
33
32
|
const headers = reactive([
|
|
34
33
|
{ text: 'Dessert (100g serving)', value: 'name' },
|
|
@@ -1,12 +1,104 @@
|
|
|
1
|
-
import { Meta, Story } from '@storybook/
|
|
2
|
-
import * as Stories from '../PaginatedTable.stories
|
|
1
|
+
import { Meta, Story } from '@storybook/blocks';
|
|
2
|
+
import * as Stories from '../PaginatedTable.stories';
|
|
3
|
+
import AccessibilityIcon from '@/common/imgs/accessibility-svgrepo-com.svg';
|
|
3
4
|
import '@/stories/styles/shared.css';
|
|
5
|
+
import {
|
|
6
|
+
AccessibilityGuideLayout,
|
|
7
|
+
CriteriaSection,
|
|
8
|
+
CriteriaCard,
|
|
9
|
+
DemoSection,
|
|
10
|
+
BestPracticesSection,
|
|
11
|
+
ResourcesSection,
|
|
12
|
+
AuditSection,
|
|
13
|
+
} from '@/stories/accessibility/AccessibilityGuideLayout.mdx';
|
|
4
14
|
|
|
5
15
|
<Meta of={Stories} />
|
|
6
16
|
|
|
7
|
-
<
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
17
|
+
<AccessibilityGuideLayout
|
|
18
|
+
componentName="PaginatedTable"
|
|
19
|
+
iconSrc={AccessibilityIcon}
|
|
20
|
+
>
|
|
21
|
+
<AuditSection>
|
|
22
|
+
<div>Rapport d’audit manuel :{' '}
|
|
23
|
+
<a href="/audits/PaginatedTable.xlsx" style={{color: '#0C41BD'}}>Voir le rapport</a></div>
|
|
24
|
+
<div style={{color: 'grey', fontSize: '14px', marginTop: '0px'}}>
|
|
25
|
+
Correctifs associés (<a href="https://github.com/assurance-maladie-digital/design-system-v3/issues/914" target="_blank" rel="noopener noreferrer" style={{color: '#0C41BD'}}>issue #914</a>)
|
|
26
|
+
</div>
|
|
27
|
+
</AuditSection>
|
|
11
28
|
|
|
12
|
-
<
|
|
29
|
+
<CriteriaSection>
|
|
30
|
+
<CriteriaCard icon="🏷️" title="Structure et rôles">
|
|
31
|
+
<ul>
|
|
32
|
+
<li>Le composant repose sur <code>VDataTable</code> ou <code>VDataTableServer</code> et conserve la structure sémantique native d’un tableau HTML (<code>table</code>, <code>caption</code>, <code>thead</code>, <code>tbody</code>, <code>th</code>, <code>td</code>).</li>
|
|
33
|
+
<li>Une légende (<code>caption</code>) est injectée dynamiquement au montage et reste accessible via <code>d-sr-only</code> si elle est visuellement masquée.</li>
|
|
34
|
+
<li>Les en-têtes utilisent des cellules <code>th</code> avec <code>scope="col"</code> et exposent les états de tri via <code>aria-sort</code>.</li>
|
|
35
|
+
<li>Les options de pagination et de tri sont exposées via des composants natifs (<code>Pagination</code>, sélecteurs Vuetify).</li>
|
|
36
|
+
<li>Les slots permettent d’étendre le tableau sans casser la sémantique native.</li>
|
|
37
|
+
<li>L’état de tri, pagination et groupement peut être persisté sans impacter la structure accessible.</li>
|
|
38
|
+
</ul>
|
|
39
|
+
</CriteriaCard>
|
|
40
|
+
|
|
41
|
+
<CriteriaCard icon="⌨️" title="Navigation clavier">
|
|
42
|
+
<ul>
|
|
43
|
+
<li>Les en-têtes de colonnes sont focalisables via <code>tabindex="0"</code>.</li>
|
|
44
|
+
<li>Les actions de tri sont accessibles au clavier via Entrée ou Espace.</li>
|
|
45
|
+
<li>La pagination est entièrement navigable au clavier (page, items par page).</li>
|
|
46
|
+
<li>Le sélecteur « éléments par page » est accessible et correctement libellé.</li>
|
|
47
|
+
<li>Les champs de filtre et composants injectés restent accessibles dans l’ordre de tabulation.</li>
|
|
48
|
+
<li>Les interactions dynamiques ne bloquent pas la navigation clavier.</li>
|
|
49
|
+
</ul>
|
|
50
|
+
</CriteriaCard>
|
|
51
|
+
|
|
52
|
+
<CriteriaCard icon="📢" title="Annonces aux technologies d’assistance">
|
|
53
|
+
<ul>
|
|
54
|
+
<li>Le <code>caption</code> fournit un contexte global pour la lecture du tableau.</li>
|
|
55
|
+
<li>Les changements de pagination et de tri sont restitués via les attributs ARIA des en-têtes.</li>
|
|
56
|
+
<li>Les champs « éléments par page » sont annoncés avec un libellé explicite.</li>
|
|
57
|
+
<li>Les suppressions d’attributs comme <code>aria-describedby</code> évitent les annonces redondantes.</li>
|
|
58
|
+
<li>Les modifications d’état du tableau restent cohérentes pour les lecteurs d’écran.</li>
|
|
59
|
+
</ul>
|
|
60
|
+
</CriteriaCard>
|
|
61
|
+
|
|
62
|
+
<CriteriaCard icon="🎨" title="Contraste et lisibilité">
|
|
63
|
+
<ul>
|
|
64
|
+
<li>Les styles du design system garantissent un contraste suffisant pour texte, bordures et focus.</li>
|
|
65
|
+
<li>Les en-têtes sont visuellement différenciés via une typographie renforcée.</li>
|
|
66
|
+
<li>Les états actifs (focus, tri, sélection) restent perceptibles visuellement et programmatiquement.</li>
|
|
67
|
+
<li>Les contrôles de pagination et filtres conservent une lisibilité constante sur tous les thèmes.</li>
|
|
68
|
+
</ul>
|
|
69
|
+
</CriteriaCard>
|
|
70
|
+
|
|
71
|
+
<CriteriaCard icon="💾" title="Persistance et état">
|
|
72
|
+
<ul>
|
|
73
|
+
<li>L’état du tableau (tri, pagination, groupement) peut être sauvegardé dans le localStorage.</li>
|
|
74
|
+
<li>La restauration de l’état n’altère pas la structure du tableau ni son accessibilité.</li>
|
|
75
|
+
<li>Les préférences utilisateur sont isolées par clé (<code>suffix</code>) pour éviter les collisions.</li>
|
|
76
|
+
<li>Les champs et en-têtes restent accessibles après rechargement.</li>
|
|
77
|
+
</ul>
|
|
78
|
+
</CriteriaCard>
|
|
79
|
+
</CriteriaSection>
|
|
80
|
+
|
|
81
|
+
<DemoSection componentName="PaginatedTable">
|
|
82
|
+
<Story of={Stories.Default}/>
|
|
83
|
+
</DemoSection>
|
|
84
|
+
|
|
85
|
+
<BestPracticesSection>
|
|
86
|
+
<ul>
|
|
87
|
+
<li>Fournissez toujours un <code>caption</code> explicite pour décrire le contenu du tableau.</li>
|
|
88
|
+
<li>Utilisez des intitulés de colonnes courts, uniques et compréhensibles.</li>
|
|
89
|
+
<li>Évitez de surcharger les slots avec des contrôles non liés au tableau.</li>
|
|
90
|
+
<li>Vérifiez que les interactions de tri restent accessibles uniquement au clavier.</li>
|
|
91
|
+
<li>Testez la restitution des changements (pagination, tri) avec un lecteur d’écran.</li>
|
|
92
|
+
<li>Assurez une cohérence entre les états visuels et les attributs ARIA.</li>
|
|
93
|
+
</ul>
|
|
94
|
+
</BestPracticesSection>
|
|
95
|
+
|
|
96
|
+
<ResourcesSection>
|
|
97
|
+
<ul>
|
|
98
|
+
<li><a href="https://www.w3.org/WAI/tutorials/tables/" target="_blank" rel="noopener noreferrer">W3C WAI – Tables Tutorial</a></li>
|
|
99
|
+
<li><a href="https://www.w3.org/WAI/ARIA/apg/patterns/table/" target="_blank" rel="noopener noreferrer">WAI-ARIA Authoring Practices – Table Pattern</a></li>
|
|
100
|
+
<li><a href="https://www.w3.org/WAI/WCAG21/Understanding/status-messages.html" target="_blank" rel="noopener noreferrer">WCAG – Status Messages (4.1.3)</a></li>
|
|
101
|
+
<li><a href="https://www.numerique.gouv.fr/publications/rgaa-accessibilite/" target="_blank" rel="noopener noreferrer">RGAA – critères 5 (tableaux), 7 (ARIA), 10 (présentation)</a></li>
|
|
102
|
+
</ul>
|
|
103
|
+
</ResourcesSection>
|
|
104
|
+
</AccessibilityGuideLayout>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import PaginatedTable from '../PaginatedTable.vue'
|
|
2
|
+
|
|
3
|
+
const defaultHeaders = [
|
|
4
|
+
{ title: 'Nom', key: 'nom' },
|
|
5
|
+
{ title: 'Prénom', key: 'prenom' },
|
|
6
|
+
{ title: 'Date', key: 'date' },
|
|
7
|
+
]
|
|
8
|
+
|
|
9
|
+
const defaultItems = [
|
|
10
|
+
{ nom: 'Dupont', prenom: 'Jean', date: '01/01/1990' },
|
|
11
|
+
{ nom: 'Martin', prenom: 'Marie', date: '15/06/1985' },
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
describe('PaginatedTable - Visual regression tests', () => {
|
|
15
|
+
it('displays the paginated table by default', () => {
|
|
16
|
+
cy.mountWithVuetify(PaginatedTable, {
|
|
17
|
+
props: {
|
|
18
|
+
headers: defaultHeaders,
|
|
19
|
+
items: defaultItems,
|
|
20
|
+
caption: 'Tableau de données',
|
|
21
|
+
},
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
cy.get('.v-table').should('be.visible')
|
|
25
|
+
cy.matchImageSnapshot('paginated-table-default', cy.get('.v-application'))
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
it('displays the paginated table with server items', () => {
|
|
29
|
+
cy.mountWithVuetify(PaginatedTable, {
|
|
30
|
+
props: {
|
|
31
|
+
headers: defaultHeaders,
|
|
32
|
+
items: defaultItems,
|
|
33
|
+
serverItemsLength: 50,
|
|
34
|
+
caption: 'Tableau serveur',
|
|
35
|
+
},
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
cy.get('.v-table').should('be.visible')
|
|
39
|
+
cy.matchImageSnapshot('paginated-table-server', cy.get('.v-application'))
|
|
40
|
+
})
|
|
41
|
+
})
|
|
Binary file
|
|
Binary file
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Meta, Canvas, Controls, Source } from '@storybook/blocks'
|
|
2
2
|
import * as PasswordFieldStories from './PasswordField.stories'
|
|
3
|
+
import * as PasswordFieldValidationStories from './Validation/Validation.stories'
|
|
3
4
|
|
|
4
5
|
<Meta of={PasswordFieldStories} />
|
|
5
6
|
|
|
@@ -56,73 +57,25 @@ Le composant peut être requis et afficher un message d'erreur si le champ est v
|
|
|
56
57
|
|
|
57
58
|
Exemple complet montrant les différents types de validation (erreurs, avertissements, succès).
|
|
58
59
|
|
|
59
|
-
<Canvas of={
|
|
60
|
+
<Canvas of={PasswordFieldValidationStories.WithCustomRules} />
|
|
60
61
|
|
|
61
62
|
### Exemples d'états de validation
|
|
62
63
|
|
|
63
64
|
<div className="sb-grid">
|
|
64
65
|
<div>
|
|
65
66
|
<h4>Avec erreur</h4>
|
|
66
|
-
<Canvas of={
|
|
67
|
+
<Canvas of={PasswordFieldValidationStories.WithError} />
|
|
67
68
|
</div>
|
|
68
69
|
<div>
|
|
69
70
|
<h4>Avec avertissement</h4>
|
|
70
|
-
<Canvas of={
|
|
71
|
+
<Canvas of={PasswordFieldValidationStories.WithWarning} />
|
|
71
72
|
</div>
|
|
72
73
|
<div>
|
|
73
74
|
<h4>Avec succès</h4>
|
|
74
|
-
<Canvas of={
|
|
75
|
+
<Canvas of={PasswordFieldValidationStories.WithSuccess} />
|
|
75
76
|
</div>
|
|
76
77
|
</div>
|
|
77
78
|
|
|
78
|
-
### Validation de formulaire
|
|
79
|
-
|
|
80
|
-
Le composant expose une méthode `validateOnSubmit` pour valider le champ lors de la soumission d'un formulaire.
|
|
81
|
-
|
|
82
|
-
<Canvas of={PasswordFieldStories.WithFormValidation} />
|
|
83
|
-
|
|
84
|
-
<Source
|
|
85
|
-
dark code={`
|
|
86
|
-
<template>
|
|
87
|
-
<form @submit.prevent="handleSubmit">
|
|
88
|
-
<PasswordField
|
|
89
|
-
ref="passwordFieldRef"
|
|
90
|
-
v-model="password"
|
|
91
|
-
required
|
|
92
|
-
:custom-rules="customRules"
|
|
93
|
-
/>
|
|
94
|
-
<button type="submit">Valider</button>
|
|
95
|
-
</form>
|
|
96
|
-
</template>
|
|
97
|
-
|
|
98
|
-
<script setup lang="ts">
|
|
99
|
-
import { ref } from 'vue'
|
|
100
|
-
import { PasswordField } from '@cnamts/synapse'
|
|
101
|
-
|
|
102
|
-
const password = ref('')
|
|
103
|
-
import '../../stories/styles/shared.css';
|
|
104
|
-
const passwordFieldRef = ref()
|
|
105
|
-
|
|
106
|
-
const customRules = [{
|
|
107
|
-
type: 'custom',
|
|
108
|
-
options: {
|
|
109
|
-
message: 'Le mot de passe doit contenir au moins 8 caractères',
|
|
110
|
-
validate: (value: string) => value.length >= 8
|
|
111
|
-
}
|
|
112
|
-
}]
|
|
113
|
-
|
|
114
|
-
function handleSubmit() {
|
|
115
|
-
const isValid = passwordFieldRef.value?.validateOnSubmit()
|
|
116
|
-
if (!isValid) {
|
|
117
|
-
// Gérer l'erreur
|
|
118
|
-
return
|
|
119
|
-
}
|
|
120
|
-
// Continuer avec la soumission
|
|
121
|
-
}
|
|
122
|
-
</script>
|
|
123
|
-
`}
|
|
124
|
-
/>
|
|
125
|
-
|
|
126
79
|
### Méthodes exposées
|
|
127
80
|
|
|
128
81
|
Le composant expose les méthodes et propriétés suivantes via `defineExpose` :
|