@cnamts/synapse 1.0.26 → 1.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AutocompleteFilter-BPR-a55G.js → AutocompleteFilter-C9eLKyW8.js} +3 -3
- package/dist/{DateFilter-CknrJWs2.js → DateFilter-y-GLkAkn.js} +8 -8
- package/dist/{NumberFilter-DJ-yNlzv.js → NumberFilter-DN6hIBS7.js} +1 -1
- package/dist/{PeriodFilter-CiB5Oa9Z.js → PeriodFilter-MoUUp9qS.js} +1 -1
- package/dist/{SelectFilter-EiafX97M.js → SelectFilter-bCbrdLmu.js} +1 -1
- package/dist/{TextFilter-BzOmpdxj.js → TextFilter-CvjgEaoM.js} +4 -4
- package/dist/apLightTheme2026-ug4Y23ns.js +611 -0
- package/dist/components/Customs/Selects/SyAutocomplete/SyAutocomplete.d.ts +2369 -353
- package/dist/components/Customs/Selects/SyAutocomplete/composables/useSyAutocompleteValidation.d.ts +18 -0
- package/dist/components/Customs/Selects/SyAutocomplete/utils/ariaManager.d.ts +1 -1
- package/dist/components/Customs/Selects/SyAutocomplete/utils/useKeyboardHandler.d.ts +3 -1
- package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +9 -10
- package/dist/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.d.ts +1 -0
- package/dist/components/Customs/Selects/SySelect/composables/useSySelectValidation.d.ts +15 -0
- package/dist/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.d.ts +3 -3
- package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +3 -3
- package/dist/components/Customs/SyIconButton/SyIconButton.d.ts +18 -0
- package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +20 -38
- package/dist/components/Customs/SyRadioGroup/composables/useSyRadioGroupValidation.d.ts +50 -0
- package/dist/components/Customs/SyTextField/SyTextField.d.ts +6 -6
- package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +147 -136
- package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +62 -54
- package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +27 -24
- package/dist/components/DatePicker/composables/index.d.ts +1 -0
- package/dist/components/DatePicker/composables/useDatePickerValidationBridge.d.ts +51 -0
- package/dist/components/MonthPicker/MonthPicker.d.ts +23 -23
- package/dist/components/MonthPicker/MonthPickerText/MonthPickerInput.d.ts +23 -23
- package/dist/components/NirField/NirField.d.ts +56 -56
- package/dist/components/PasswordField/PasswordField.d.ts +3 -3
- package/dist/components/PeriodField/PeriodField.d.ts +236 -212
- package/dist/components/PhoneField/PhoneField.d.ts +23 -23
- package/dist/components/SyTextArea/SyTextArea.d.ts +25 -15
- package/dist/components/SyTextArea/composables/useSyTextAreaValidation.d.ts +20 -0
- package/dist/components/SyTextArea/locales.d.ts +1 -0
- package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +1 -0
- package/dist/components/Tables/SyTable/SyTable.d.ts +1 -0
- package/dist/components/Tables/common/SyTablePagination.d.ts +25 -25
- package/dist/components/Tables/common/types.d.ts +2 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/composables/unifyValidation/documentationValidationProps.d.ts +160 -160
- package/dist/composables/unifyValidation/useValidation.d.ts +16 -14
- package/dist/design-system-v3.js +81 -80
- package/dist/designTokens/tokens/amelipro/apContextual.d.ts +6 -6
- package/dist/designTokens/tokens/amelipro/apDarkTheme.d.ts +3 -1
- package/dist/designTokens/tokens/amelipro/apLightTheme.d.ts +53 -100
- package/dist/designTokens/tokens/baseContextualTokens.d.ts +0 -6
- package/dist/designTokens/tokens/baseTokens.d.ts +232 -0
- package/dist/designTokens/tokens/cnam/cnamContextual.d.ts +6 -6
- package/dist/designTokens/tokens/cnam/cnamDarkTheme.d.ts +1 -1
- package/dist/designTokens/tokens/cnam/cnamLightTheme.d.ts +57 -101
- package/dist/designTokens/tokens/pa/paContextual.d.ts +0 -6
- package/dist/designTokens/tokens/pa/paDarkTheme.d.ts +1 -1
- package/dist/designTokens/tokens/pa/paLightTheme.d.ts +53 -97
- package/dist/designTokens/tokens/pa/paSemantic.d.ts +1 -0
- package/dist/designTokens/tokens/semanticTokens.d.ts +112 -0
- package/dist/main-CI6Q9nmO.js +39234 -0
- package/dist/synapse.css +1 -1
- package/dist/vuetifyConfig.js +208 -72
- package/package.json +4 -2
- package/src/assets/overrides/_icons.scss +5 -4
- package/src/assets/overrides/_otp.scss +4 -4
- package/src/assets/overrides/_typography.scss +2 -1
- package/src/assets/overrides/_utilities.scss +1 -42
- package/src/components/ChipList/ChipList.vue +30 -18
- package/src/components/ChipList/tests/chipList.spec.ts +4 -4
- package/src/components/CopyBtn/CopyBtn.vue +2 -2
- package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.stories.ts +4 -0
- package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.vue +7 -6
- package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.spec.ts +223 -0
- package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.stories.ts +283 -351
- package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.vue +182 -218
- package/src/components/Customs/Selects/SyAutocomplete/composables/useSyAutocompleteValidation.ts +101 -0
- package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.spec.ts +761 -1
- package/src/components/Customs/Selects/SyAutocomplete/utils/ariaManager.ts +3 -1
- package/src/components/Customs/Selects/SyAutocomplete/utils/useKeyboardHandler.ts +79 -5
- package/src/components/Customs/Selects/SyAutocomplete/validation/Validation.stories.ts +1029 -0
- package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +9 -491
- package/src/components/Customs/Selects/SySelect/SySelect.vue +46 -79
- package/src/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.ts +3 -0
- package/src/components/Customs/Selects/SySelect/composables/useSySelectValidation.ts +64 -0
- package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +196 -0
- package/src/components/Customs/Selects/SySelect/validation/Validation.stories.ts +1026 -0
- package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.stories.ts +18 -7
- package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.vue +2 -2
- package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +8 -8
- package/src/components/Customs/SyCheckbox/SyCheckbox.vue +8 -8
- package/src/components/Customs/SyCheckbox/tests/SyCheckbox.spec.ts +1 -1
- package/src/components/Customs/SyIcon/accessibilite/Accessibility.mdx +0 -6
- package/src/components/Customs/SyIcon/utils/tests/iconUtils.spec.ts +107 -0
- package/src/components/Customs/SyRadioGroup/SyRadioGroup.mdx +2 -2
- package/src/components/Customs/SyRadioGroup/SyRadioGroup.stories.ts +395 -200
- package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +82 -127
- package/src/components/Customs/SyRadioGroup/composables/useSyRadioGroupValidation.ts +127 -0
- package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.a11y.spec.ts +93 -1
- package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.spec.ts +146 -9
- package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.visual.cy.ts +165 -0
- package/src/components/Customs/SyRadioGroup/validation/Validation.stories.ts +773 -0
- package/src/components/Customs/SyTabs/config.ts +3 -3
- package/src/components/Customs/SyTabs/tests/SyTabs.spec.ts +265 -0
- package/src/components/Customs/SyTabs/tests/useTabTransition.spec.ts +188 -0
- package/src/components/Customs/SyTextField/SyTextField.stories.ts +10 -29
- package/src/components/Customs/SyTextField/SyTextField.vue +23 -15
- package/src/components/DataList/DataList.stories.ts +1 -1
- package/src/components/DataListItem/tests/DataListItem.spec.ts +3 -1
- package/src/components/DatePicker/CalendarMode/DatePicker.vue +37 -142
- package/src/components/DatePicker/CalendarMode/tests/DatePicker.coverage.spec.ts +156 -0
- package/src/components/DatePicker/CalendarMode/tests/DatePicker.spec.ts +495 -4
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +47 -66
- package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +206 -0
- package/src/components/DatePicker/ComplexDatePicker/tests/bridge-integration.regression.spec.ts +210 -0
- package/src/components/DatePicker/ComplexDatePicker/tests/calendar-navigation.regression.spec.ts +214 -0
- package/src/components/DatePicker/ComplexDatePicker/tests/validation-cross.regression.spec.ts +194 -0
- package/src/components/DatePicker/ComplexDatePicker/tests/validation-success-messages.regression.spec.ts +83 -0
- package/src/components/DatePicker/DateTextInput/DateTextInput.vue +129 -54
- package/src/components/DatePicker/DateTextInput/tests/DateTextInput.spec.ts +320 -0
- package/src/components/DatePicker/composables/index.ts +1 -0
- package/src/components/DatePicker/composables/tests/useCalendarKeyboardNavigation.spec.ts +360 -0
- package/src/components/DatePicker/composables/tests/useDatePickerValidationBridge.spec.ts +129 -0
- package/src/components/DatePicker/composables/useDatePickerValidationBridge.ts +205 -0
- package/src/components/DatePicker/docExamples/BidirectionalComplexValidation.vue +1 -1
- package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +1 -1
- package/src/components/DatePicker/tests/exposed-methods.coverage.spec.ts +75 -0
- package/src/components/DialogBox/DialogBox.vue +1 -1
- package/src/components/FileList/UploadItem/UploadItem.vue +4 -4
- package/src/components/FileUpload/FileUpload.vue +2 -2
- package/src/components/FileUpload/FileUploadContent.vue +1 -1
- package/src/components/FilterInline/FilterInline.mdx +2 -2
- package/src/components/FilterSideBar/FilterSideBar.stories.ts +1 -1
- package/src/components/FilterSideBar/FilterSideBar.vue +2 -2
- package/src/components/FooterBar/FooterBar.vue +7 -7
- package/src/components/FranceConnectBtn/FranceConnectBtn.vue +1 -1
- package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/HeaderMenuItem.vue +2 -2
- package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.vue +7 -7
- package/src/components/HeaderBar/HeaderMenuBtn/HeaderMenuBtn.vue +2 -2
- package/src/components/HeaderLoading/tests/HeaderLoading.spec.ts +87 -8
- package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +3 -3
- package/src/components/HeaderNavigationBar/HorizontalNavbar/tests/HorizontalNavbar.spec.ts +589 -0
- package/src/components/HeaderToolbar/tests/HeaderToolBar.spec.ts +153 -1
- package/src/components/HeaderToolbar/tests/useMobileRightMenu.spec.ts +258 -0
- package/src/components/LogoBrandSection/tests/LogoBrandSection.spec.ts +2 -2
- package/src/components/LogoBrandSection/tests/__snapshots__/LogoBrandSection.spec.ts.snap +1 -1
- package/src/components/LunarCalendar/tests/useLunarCalendarRules.spec.ts +184 -0
- package/src/components/MonthPicker/MonthPickerVisual/MonthSelector.vue +3 -3
- package/src/components/MonthPicker/MonthPickerVisual/VisualPickerFooter.vue +1 -1
- package/src/components/MonthPicker/MonthPickerVisual/VisualPickerHeader.vue +2 -2
- package/src/components/MonthPicker/MonthPickerVisual/YearSelector.vue +1 -1
- package/src/components/NirField/NirField.vue +3 -3
- package/src/components/NotificationBar/Notification/Notification.vue +12 -12
- package/src/components/NotificationBar/NotificationBar.stories.ts +8 -8
- package/src/components/PaginatedTable/Pagination.vue +2 -2
- package/src/components/PasswordField/PasswordField.vue +8 -8
- package/src/components/PasswordField/tests/PasswordField.spec.ts +3 -3
- package/src/components/RangeField/RangeSlider/RangeSlider.vue +2 -2
- package/src/components/RangeField/RangeSlider/Tooltip/Tooltip.vue +1 -1
- package/src/components/StatusPage/tests/StatusPage.spec.ts +149 -0
- package/src/components/SubHeader/SubHeader.vue +1 -1
- package/src/components/SyAlert/SyAlert.vue +23 -23
- package/src/components/SyTextArea/SyTextArea.stories.ts +177 -131
- package/src/components/SyTextArea/SyTextArea.vue +235 -83
- package/src/components/SyTextArea/composables/useSyTextAreaValidation.ts +81 -0
- package/src/components/SyTextArea/locales.ts +1 -0
- package/src/components/SyTextArea/tests/SyTextArea.spec.ts +449 -1
- package/src/components/SyTextArea/useDefaultValidationRules.ts +2 -7
- package/src/components/SyTextArea/validation/Validation.stories.ts +856 -0
- package/src/components/TableToolbar/TableToolbar.vue +6 -6
- package/src/components/TableToolbar/accessibilite/Accessibility.mdx +81 -7
- package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +163 -0
- package/src/components/Tables/SyServerTable/SyServerTable.vue +2 -1
- package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +67 -0
- package/src/components/Tables/SyTable/SyTable.stories.ts +94 -0
- package/src/components/Tables/SyTable/SyTable.vue +2 -1
- package/src/components/Tables/SyTable/tests/SyTable.spec.ts +64 -0
- package/src/components/Tables/common/TableHeader.vue +2 -2
- package/src/components/Tables/common/filters/logics/tests/NumberFilterLogic.spec.ts +176 -0
- package/src/components/Tables/common/filters/logics/tests/SelectFilterLogic.spec.ts +111 -0
- package/src/components/Tables/common/tableStyles.scss +6 -6
- package/src/components/Tables/common/types.ts +2 -0
- package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +2 -0
- package/src/components/index.ts +1 -0
- package/src/composables/date/tests/useDateFormatDayjs.spec.ts +31 -0
- package/src/composables/date/tests/useHolidayDay.spec.ts +109 -0
- package/src/composables/rules/tests/useFieldValidation.spec.ts +374 -0
- package/src/composables/tests/useError.spec.ts +30 -0
- package/src/composables/tests/useFormFieldErrorHandling.spec.ts +234 -0
- package/src/composables/unifyValidation/documentationValidationProps.ts +5 -5
- package/src/composables/unifyValidation/tests/documentationValidationProps.spec.ts +177 -0
- package/src/composables/unifyValidation/tests/useCustomValidation.spec.ts +30 -0
- package/src/composables/unifyValidation/tests/useValidation.spec.ts +6 -2
- package/src/composables/unifyValidation/useCustomValidation.ts +19 -9
- package/src/composables/unifyValidation/useValidation.ts +18 -21
- package/src/composables/useFilterable/useFilterable.spec.ts +42 -0
- package/src/composables/useFilterable/useFilterable.ts +11 -7
- package/src/composables/useFormFieldErrorHandling.ts +2 -2
- package/src/composantsVuetify/VBtn/VBtn.mdx +9 -39
- package/src/composantsVuetify/VBtn/v-btn.stories.ts +26 -86
- package/src/designTokens/tokens/amelipro/apContextual.ts +6 -0
- package/src/designTokens/tokens/amelipro/apDarkTheme.ts +2 -2
- package/src/designTokens/tokens/amelipro/apLightTheme.ts +72 -103
- package/src/designTokens/tokens/amelipro/apSemantic.ts +1 -1
- package/src/designTokens/tokens/baseContextualTokens.ts +1 -6
- package/src/designTokens/tokens/baseTokens.ts +232 -0
- package/src/designTokens/tokens/cnam/cnamContextual.ts +6 -0
- package/src/designTokens/tokens/cnam/cnamDarkTheme.ts +2 -2
- package/src/designTokens/tokens/cnam/cnamLightTheme.ts +76 -104
- package/src/designTokens/tokens/pa/paDarkTheme.ts +2 -2
- package/src/designTokens/tokens/pa/paLightTheme.ts +73 -99
- package/src/designTokens/tokens/pa/paSemantic.ts +2 -0
- package/src/designTokens/tokens/semanticTokens.ts +114 -0
- package/src/stories/Components/Components.stories.ts +7 -3
- package/src/stories/DesignTokens/ColorIntegrationExample.vue +2 -3
- package/src/stories/DesignTokens/Colors.mdx +6 -8
- package/src/stories/DesignTokens/colors.stories.ts +244 -1081
- package/src/utils/amelipro/toKebabCase/tests/toKebabCase.spec.ts +52 -0
- package/src/utils/formatNir/tests/formatNir.spec.ts +34 -0
- package/src/utils/tests/insertAt.spec.ts +44 -0
- package/dist/apLightTheme-DS0Uy44H.js +0 -954
- package/dist/components/RatingPicker/tests/RatingPicker.a11y.spect.d.ts +0 -1
- package/dist/main-BsJ9ec3i.js +0 -38954
- 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/DatePicker/CalendarMode/tests/DatePicker.events.spec.ts +0 -178
- 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/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/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/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/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/RatingPicker/tests/{RatingPicker.a11y.spect.ts → RatingPicker.a11y.spec.ts} +0 -0
|
@@ -538,7 +538,7 @@ export const CustomColors: Story = {
|
|
|
538
538
|
/>
|
|
539
539
|
<SyCheckBoxGroup
|
|
540
540
|
v-model="value3"
|
|
541
|
-
color="
|
|
541
|
+
color="onSuccessVariant"
|
|
542
542
|
label="Couleur succès"
|
|
543
543
|
:options="options"
|
|
544
544
|
:show-success-messages="false"
|
|
@@ -552,7 +552,7 @@ export const CustomColors: Story = {
|
|
|
552
552
|
/>
|
|
553
553
|
<SyCheckBoxGroup
|
|
554
554
|
v-model="value5"
|
|
555
|
-
color="
|
|
555
|
+
color="onWarningVariant"
|
|
556
556
|
label="Couleur avertissement"
|
|
557
557
|
:options="options"
|
|
558
558
|
:show-success-messages="false"
|
|
@@ -604,11 +604,22 @@ Le composant SyCheckBoxGroup peut être personnalisé avec différentes couleurs
|
|
|
604
604
|
},
|
|
605
605
|
template: `
|
|
606
606
|
<div>
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
607
|
+
<SyCheckBoxGroup v-model="value1" color="primary" label="Couleur primaire (par défaut)"
|
|
608
|
+
:options="options" :show-success-messages="false"
|
|
609
|
+
/>
|
|
610
|
+
<SyCheckBoxGroup v-model="value2" color="secondary" label="Couleur secondaire" :options="options"
|
|
611
|
+
:show-success-messages="false"
|
|
612
|
+
/>
|
|
613
|
+
<SyCheckBoxGroup v-model="value3" color="onSuccessVariant" label="Couleur succès" :options="options"
|
|
614
|
+
:show-success-messages="false"
|
|
615
|
+
/>
|
|
616
|
+
<SyCheckBoxGroup v-model="value4" color="error" label="Couleur erreur" :options="options"
|
|
617
|
+
:show-success-messages="false"
|
|
618
|
+
/>
|
|
619
|
+
<SyCheckBoxGroup v-model="value5" color="onWarningVariant" label="Couleur avertissement"
|
|
620
|
+
:options="options"
|
|
621
|
+
:show-success-messages="false"
|
|
622
|
+
/>
|
|
612
623
|
</div>
|
|
613
624
|
`,
|
|
614
625
|
}),
|
|
@@ -298,7 +298,7 @@
|
|
|
298
298
|
}
|
|
299
299
|
|
|
300
300
|
.warning-field :deep(.v-messages__message) {
|
|
301
|
-
color: rgb(var(--v-theme-
|
|
301
|
+
color: rgb(var(--v-theme-onWarningVariant)) !important;
|
|
302
302
|
}
|
|
303
303
|
|
|
304
304
|
.error-field :deep(.v-messages__message) {
|
|
@@ -310,7 +310,7 @@
|
|
|
310
310
|
}
|
|
311
311
|
|
|
312
312
|
.success-field :deep(.v-messages__message) {
|
|
313
|
-
color: rgb(var(--v-theme-
|
|
313
|
+
color: rgb(var(--v-theme-onSuccessVariant)) !important;
|
|
314
314
|
}
|
|
315
315
|
|
|
316
316
|
:deep(.v-messages__message) {
|
|
@@ -605,9 +605,9 @@ export const CustomColors: Story = {
|
|
|
605
605
|
code: `
|
|
606
606
|
<div>
|
|
607
607
|
<SyCheckbox v-model="checked1" label="Couleur primaire (par défaut)" />
|
|
608
|
-
<SyCheckbox v-model="checked3" label="Couleur succès" color="
|
|
608
|
+
<SyCheckbox v-model="checked3" label="Couleur succès" color="onSuccessVariant" />
|
|
609
609
|
<SyCheckbox v-model="checked4" label="Couleur erreur" color="error" />
|
|
610
|
-
<SyCheckbox v-model="checked5" label="Couleur avertissement" color="
|
|
610
|
+
<SyCheckbox v-model="checked5" label="Couleur avertissement" color="onWarningVariant" />
|
|
611
611
|
</div>`,
|
|
612
612
|
},
|
|
613
613
|
],
|
|
@@ -633,9 +633,9 @@ Le composant SyCheckbox peut être personnalisé avec différentes couleurs pour
|
|
|
633
633
|
template: `
|
|
634
634
|
<div>
|
|
635
635
|
<SyCheckbox v-model="checked1" label="Couleur primaire (par défaut)" />
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
636
|
+
<SyCheckbox v-model="checked3" label="Couleur succès" color="onSuccessVariant"/>
|
|
637
|
+
<SyCheckbox v-model="checked4" label="Couleur erreur" color="error"/>
|
|
638
|
+
<SyCheckbox v-model="checked5" label="Couleur avertissement" color="onWarningVariant"/>
|
|
639
639
|
</div>
|
|
640
640
|
`,
|
|
641
641
|
}),
|
|
@@ -784,9 +784,9 @@ Cette case à cocher utilise des règles de validation personnalisées et valide
|
|
|
784
784
|
required
|
|
785
785
|
display-asterisk
|
|
786
786
|
/>
|
|
787
|
-
<VBtn
|
|
788
|
-
|
|
789
|
-
|
|
787
|
+
<VBtn
|
|
788
|
+
type="submit"
|
|
789
|
+
color="primary"
|
|
790
790
|
class="mt-4"
|
|
791
791
|
>
|
|
792
792
|
Soumettre
|
|
@@ -216,10 +216,10 @@
|
|
|
216
216
|
switch (props.color) {
|
|
217
217
|
case 'error':
|
|
218
218
|
return 'rgb(var(--v-theme-error))'
|
|
219
|
-
case '
|
|
220
|
-
return 'rgb(var(--v-theme-
|
|
221
|
-
case '
|
|
222
|
-
return 'rgb(var(--v-theme-
|
|
219
|
+
case 'onSuccessVariant':
|
|
220
|
+
return 'rgb(var(--v-theme-onSuccessVariant))'
|
|
221
|
+
case 'onWarningVariant':
|
|
222
|
+
return 'rgb(var(--v-theme-onWarningVariant))'
|
|
223
223
|
case 'primary':
|
|
224
224
|
return cnamSemanticTokens.colors.text.base
|
|
225
225
|
default:
|
|
@@ -393,19 +393,19 @@
|
|
|
393
393
|
|
|
394
394
|
<style scoped>
|
|
395
395
|
.success-field :deep(.v-messages__message) {
|
|
396
|
-
color: rgb(var(--v-theme-
|
|
396
|
+
color: rgb(var(--v-theme-onSuccessVariant)) !important;
|
|
397
397
|
}
|
|
398
398
|
|
|
399
399
|
.success-field :deep(.v-selection-control__input) {
|
|
400
|
-
color: rgb(var(--v-theme-
|
|
400
|
+
color: rgb(var(--v-theme-onSuccessVariant));
|
|
401
401
|
}
|
|
402
402
|
|
|
403
403
|
.warning-field :deep(.v-messages__message) {
|
|
404
|
-
color: rgb(var(--v-theme-
|
|
404
|
+
color: rgb(var(--v-theme-onWarningVariant)) !important;
|
|
405
405
|
}
|
|
406
406
|
|
|
407
407
|
.warning-field :deep(.v-selection-control__input) {
|
|
408
|
-
color: rgb(var(--v-theme-
|
|
408
|
+
color: rgb(var(--v-theme-onWarningVariant));
|
|
409
409
|
}
|
|
410
410
|
|
|
411
411
|
:deep(.v-input--dirty .v-selection-control__input) {
|
|
@@ -122,8 +122,8 @@ describe('SyCheckbox', () => {
|
|
|
122
122
|
// Créer une règle de validation au format attendu par le composant
|
|
123
123
|
const customRule = {
|
|
124
124
|
type: 'custom',
|
|
125
|
-
validator: (value: boolean) => value === true,
|
|
126
125
|
options: {
|
|
126
|
+
validate: (value: boolean) => value === true,
|
|
127
127
|
message: 'This checkbox must be checked',
|
|
128
128
|
fieldIdentifier: 'Custom checkbox',
|
|
129
129
|
},
|
|
@@ -65,12 +65,6 @@ Le composant `SyIcon` implémente automatiquement les bonnes pratiques d'accessi
|
|
|
65
65
|
</div>
|
|
66
66
|
</div>
|
|
67
67
|
|
|
68
|
-
## 🧪 Démonstration interactive
|
|
69
|
-
|
|
70
|
-
La démonstration ci-dessous vous permet de voir comment les attributs d'accessibilité sont générés en fonction des propriétés du composant :
|
|
71
|
-
|
|
72
|
-
<Canvas of={SyIconStoriesAccessibility.AccessibilityDemo} />
|
|
73
|
-
|
|
74
68
|
## ✅ Bonnes pratiques
|
|
75
69
|
|
|
76
70
|
<div style={{ background: '#edf7ed', padding: '15px', borderRadius: '5px', borderLeft: '4px solid #4caf50', marginBottom: '20px' }}>
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest'
|
|
2
|
+
import { createAccessibleIconAttributes, fixSvgAttributes } from '../iconUtils'
|
|
3
|
+
|
|
4
|
+
describe('createAccessibleIconAttributes', () => {
|
|
5
|
+
describe('icône décorative', () => {
|
|
6
|
+
it('retourne role="presentation" et aria-hidden="true"', () => {
|
|
7
|
+
const attrs = createAccessibleIconAttributes(true)
|
|
8
|
+
expect(attrs.role).toBe('presentation')
|
|
9
|
+
expect(attrs['aria-hidden']).toBe('true')
|
|
10
|
+
})
|
|
11
|
+
|
|
12
|
+
it('ignore le label quand décorative', () => {
|
|
13
|
+
const attrs = createAccessibleIconAttributes(true, 'Mon label')
|
|
14
|
+
expect(attrs.role).toBe('presentation')
|
|
15
|
+
expect(attrs['aria-hidden']).toBe('true')
|
|
16
|
+
})
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
describe('icône fonctionnelle', () => {
|
|
20
|
+
it('retourne role="img" et aria-hidden undefined', () => {
|
|
21
|
+
const attrs = createAccessibleIconAttributes(false)
|
|
22
|
+
expect(attrs.role).toBe('img')
|
|
23
|
+
expect(attrs['aria-hidden']).toBeUndefined()
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
it('retourne aria-label avec le label fourni', () => {
|
|
27
|
+
const attrs = createAccessibleIconAttributes(false, 'Fermer la modale')
|
|
28
|
+
expect(attrs['aria-label']).toBe('Fermer la modale')
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
it('retourne aria-label undefined si aucun label fourni', () => {
|
|
32
|
+
const attrs = createAccessibleIconAttributes(false)
|
|
33
|
+
expect(attrs['aria-label']).toBeUndefined()
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
it('retourne aria-label undefined si label est une chaîne vide', () => {
|
|
37
|
+
const attrs = createAccessibleIconAttributes(false, '')
|
|
38
|
+
expect(attrs['aria-label']).toBeUndefined()
|
|
39
|
+
})
|
|
40
|
+
})
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
describe('fixSvgAttributes', () => {
|
|
44
|
+
beforeEach(() => {
|
|
45
|
+
vi.useFakeTimers()
|
|
46
|
+
})
|
|
47
|
+
|
|
48
|
+
afterEach(() => {
|
|
49
|
+
vi.useRealTimers()
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
it('ne fait rien si element est null', () => {
|
|
53
|
+
expect(() => fixSvgAttributes(null, true)).not.toThrow()
|
|
54
|
+
vi.runAllTimers()
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
it('supprime l\'attribut role sur le SVG quand décorative', () => {
|
|
58
|
+
const container = document.createElement('div')
|
|
59
|
+
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg')
|
|
60
|
+
svg.setAttribute('role', 'img')
|
|
61
|
+
container.appendChild(svg)
|
|
62
|
+
|
|
63
|
+
fixSvgAttributes(container, true)
|
|
64
|
+
vi.runAllTimers()
|
|
65
|
+
|
|
66
|
+
expect(svg.hasAttribute('role')).toBe(false)
|
|
67
|
+
})
|
|
68
|
+
|
|
69
|
+
it('supprime aria-hidden sur le SVG quand fonctionnelle', () => {
|
|
70
|
+
const container = document.createElement('div')
|
|
71
|
+
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg')
|
|
72
|
+
svg.setAttribute('aria-hidden', 'true')
|
|
73
|
+
container.appendChild(svg)
|
|
74
|
+
|
|
75
|
+
fixSvgAttributes(container, false)
|
|
76
|
+
vi.runAllTimers()
|
|
77
|
+
|
|
78
|
+
expect(svg.hasAttribute('aria-hidden')).toBe(false)
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
it('ne fait rien si aucun SVG dans l\'élément', () => {
|
|
82
|
+
const container = document.createElement('div')
|
|
83
|
+
container.appendChild(document.createElement('span'))
|
|
84
|
+
|
|
85
|
+
expect(() => {
|
|
86
|
+
fixSvgAttributes(container, true)
|
|
87
|
+
vi.runAllTimers()
|
|
88
|
+
}).not.toThrow()
|
|
89
|
+
})
|
|
90
|
+
|
|
91
|
+
it('agit de manière asynchrone (setTimeout)', () => {
|
|
92
|
+
const container = document.createElement('div')
|
|
93
|
+
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg')
|
|
94
|
+
svg.setAttribute('role', 'img')
|
|
95
|
+
container.appendChild(svg)
|
|
96
|
+
|
|
97
|
+
fixSvgAttributes(container, true)
|
|
98
|
+
|
|
99
|
+
// Avant le tick : l'attribut est encore présent
|
|
100
|
+
expect(svg.hasAttribute('role')).toBe(true)
|
|
101
|
+
|
|
102
|
+
vi.runAllTimers()
|
|
103
|
+
|
|
104
|
+
// Après le tick : supprimé
|
|
105
|
+
expect(svg.hasAttribute('role')).toBe(false)
|
|
106
|
+
})
|
|
107
|
+
})
|
|
@@ -5,7 +5,7 @@ import * as SyRadioGroupStories from "./SyRadioGroup.stories";
|
|
|
5
5
|
|
|
6
6
|
<div className="header">
|
|
7
7
|
<h1>SyRadioGroup</h1>
|
|
8
|
-
<p>Le composant `SyRadioGroup` est
|
|
8
|
+
<p>Le composant `SyRadioGroup` est un groupe de boutons radio qui étend le composant `VRadio` de Vuetify, conforme au style du Design System et qui respecte les règles d'accessibilité <abbr title="Référentiel Général d'Amélioration de l'Accessibilité">RGAA</abbr>.</p>
|
|
9
9
|
</div>
|
|
10
10
|
|
|
11
11
|
Il étend les fonctionnalités de base de Vuetify avec :
|
|
@@ -28,7 +28,7 @@ Le composant supporte trois types de validation :
|
|
|
28
28
|
|
|
29
29
|
### États visuels :
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
Le groupe de boutons radio adapte automatiquement son apparence selon son état :
|
|
32
32
|
- Rouge pour les erreurs
|
|
33
33
|
- Orange pour les avertissements
|
|
34
34
|
- Vert pour les succès
|