@cnamts/synapse 1.0.24 → 1.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -5
- package/dist/{AutocompleteFilter-BWLR3U7W.js → AutocompleteFilter-BPR-a55G.js} +1 -1
- package/dist/{DateFilter-BpwFexzi.js → DateFilter-CknrJWs2.js} +2 -2
- package/dist/{NumberFilter-Bz_NTdX9.js → NumberFilter-DJ-yNlzv.js} +1 -1
- package/dist/{PeriodFilter-DX_wy9g-.js → PeriodFilter-CiB5Oa9Z.js} +1 -1
- package/dist/{SelectFilter-xqiPtPgX.js → SelectFilter-EiafX97M.js} +2 -2
- package/dist/{TextFilter-BBl3JFqK.js → TextFilter-BzOmpdxj.js} +1 -1
- package/dist/{apLightTheme-D1P4jcD0.js → apLightTheme-DS0Uy44H.js} +446 -723
- package/dist/components/Customs/Selects/SyAutocomplete/SyAutocomplete.d.ts +14 -8
- package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +60 -289
- package/dist/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.d.ts +1 -0
- package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +4 -0
- package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +1 -0
- package/dist/components/Customs/SyTabs/SyTabs.d.ts +13 -11
- package/dist/components/Customs/SyTextField/SyTextField.d.ts +0 -2
- package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +54 -73
- package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +31 -40
- package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +9 -14
- package/dist/components/DatePicker/composables/useDatePickerState.d.ts +4 -3
- package/dist/components/DatePicker/composables/useDateTextField.d.ts +2 -2
- package/dist/components/DatePicker/composables/useInputBlurHandler.d.ts +2 -2
- package/dist/components/DatePicker/types.d.ts +1 -2
- package/dist/components/FileList/FileList.d.ts +6 -0
- package/dist/components/FilterSideBar/FilterSideBar.d.ts +2 -0
- package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +13 -13
- package/dist/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.d.ts +3 -3
- package/dist/components/LunarCalendar/useLunarCalendarValidation.d.ts +1 -0
- package/dist/components/MonthPicker/MonthPicker.d.ts +2 -7
- package/dist/components/MonthPicker/MonthPickerText/MonthPickerInput.d.ts +2 -7
- package/dist/components/NirField/NirField.d.ts +12 -20
- package/dist/components/NirField/useNirValidation.d.ts +6 -2
- package/dist/components/PeriodField/PeriodField.d.ts +110 -150
- package/dist/components/PhoneField/PhoneField.d.ts +12 -7
- package/dist/components/RangeField/RangeSlider/RangeSlider.d.ts +0 -3
- package/dist/components/RatingPicker/EmotionPicker/EmotionPicker.d.ts +3 -1
- package/dist/components/RatingPicker/NumberPicker/NumberPicker.d.ts +4 -3
- package/dist/components/RatingPicker/RatingPicker.d.ts +18 -5
- package/dist/components/RatingPicker/StarsPicker/StarsPicker.d.ts +3 -1
- package/dist/components/RatingPicker/tests/RatingPicker.a11y.spect.d.ts +1 -0
- package/dist/components/RatingPicker/useRatingFocus.d.ts +18 -0
- package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +5 -4
- package/dist/components/Tables/SyTable/SyTable.d.ts +5 -4
- package/dist/components/Tables/common/SyTablePagination.d.ts +154 -364
- package/dist/components/Tables/common/TableHeader.d.ts +6 -1
- package/dist/components/Tables/common/filters/DateFilter.d.ts +4 -4
- package/dist/components/Tables/common/locales.d.ts +3 -0
- package/dist/components/Tables/common/types.d.ts +2 -0
- package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +1 -0
- package/dist/composables/date/useDateInitializationDayjs.d.ts +3 -1
- package/dist/composables/unifyValidation/documentationValidationProps.d.ts +230 -0
- package/dist/composables/unifyValidation/useCustomValidation.d.ts +3 -1
- package/dist/composables/unifyValidation/useValidation.d.ts +12 -6
- package/dist/composables/unifyValidation/useVuetifyValidation.d.ts +1 -1
- package/dist/composables/validation/useValidation.d.ts +6 -1
- package/dist/design-system-v3.js +2 -2
- package/dist/designTokens/tokens/amelipro/apColors.d.ts +10 -10
- package/dist/designTokens/tokens/amelipro/apColors2026.d.ts +1 -2
- package/dist/designTokens/tokens/amelipro/apContextual.d.ts +44 -0
- package/dist/designTokens/tokens/amelipro/apLightTheme.d.ts +2 -0
- package/dist/designTokens/tokens/amelipro/apSemantic.d.ts +1 -1
- package/dist/designTokens/tokens/baseColors.d.ts +127 -0
- package/dist/designTokens/tokens/baseContextualTokens.d.ts +50 -0
- package/dist/designTokens/tokens/cnam/cnamColors.d.ts +10 -10
- package/dist/designTokens/tokens/cnam/cnamLightTheme.d.ts +2 -0
- package/dist/designTokens/tokens/cnam/cnamSemantic.d.ts +1 -1
- package/dist/designTokens/tokens/pa/paColors.d.ts +1 -166
- package/dist/designTokens/tokens/pa/paSemantic.d.ts +1 -1
- package/dist/designTokens/utils/buildColorClassMap.d.ts +12 -0
- package/dist/designTokens/utils/createFlattenTheme.d.ts +1 -3
- package/dist/designTokens/utils/index.d.ts +2 -2
- package/dist/{main-BtTqyn4z.js → main-BsJ9ec3i.js} +16021 -15715
- package/dist/synapse.css +1 -1
- package/dist/utils/functions/classToHex.d.ts +1 -1
- package/dist/utils/functions/createHexResolver.d.ts +16 -0
- package/dist/vuetifyConfig.js +113 -152
- package/package.json +35 -23
- package/src/assets/amelipro/apTokens2026.scss +5 -5
- package/src/assets/overrides/_breakpoints.scss +25 -0
- package/src/assets/overrides/_btns.scss +0 -2
- package/src/assets/overrides/_forms.scss +1 -3
- package/src/assets/overrides/_icons.scss +5 -22
- package/src/assets/overrides/_otp.scss +40 -0
- package/src/assets/overrides/_tables.scss +11 -20
- package/src/assets/overrides/_tooltips.scss +17 -7
- package/src/assets/overrides/_typography.scss +35 -37
- package/src/assets/overrides/_utilities.scss +43 -47
- package/src/assets/themes.scss +1 -0
- package/src/components/Accordion/Accordion.vue +2 -0
- package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/AmeliproAccordionTemplate.vue +20 -20
- package/src/components/Amelipro/AmeliproAccordionFrieze/AmeliproAccordionFrieze.vue +12 -14
- package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.vue +4 -6
- package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/AmeliproAccordionResultTemplate.vue +5 -5
- package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.vue +4 -6
- package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.vue +4 -6
- package/src/components/Amelipro/AmeliproBadge/AmeliproBadge.vue +4 -6
- package/src/components/Amelipro/AmeliproBreadcrumb/AmeliproBreadcrumb.vue +1 -3
- package/src/components/Amelipro/AmeliproBtn/AmeliproBtn.vue +4 -6
- package/src/components/Amelipro/AmeliproCallback/AmeliproCallback.vue +2 -2
- package/src/components/Amelipro/AmeliproCard/AmeliproCard.vue +31 -31
- package/src/components/Amelipro/AmeliproCarousel/AmeliproCarousel.vue +5 -7
- package/src/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.vue +13 -15
- package/src/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.vue +23 -23
- package/src/components/Amelipro/AmeliproChips/AmeliproChips.vue +1 -3
- package/src/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.vue +17 -12
- package/src/components/Amelipro/AmeliproClickableTile/tests/__snapshots__/AmeliproClickableTile.spec.ts.snap +2 -2
- package/src/components/Amelipro/AmeliproCopyBtn/AmeliproCopyBtn.vue +4 -6
- package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.vue +13 -13
- package/src/components/Amelipro/AmeliproDentalChart/AmeliproDentalChart.vue +4 -2
- package/src/components/Amelipro/AmeliproDentalChart/AmeliproTooth/AmeliproTooth.vue +4 -4
- package/src/components/Amelipro/AmeliproDialog/AmeliproDialog.vue +5 -7
- package/src/components/Amelipro/AmeliproDisclosure/AmeliproDisclosure.vue +1 -3
- package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.vue +2 -4
- package/src/components/Amelipro/AmeliproFilePreview/AmeliproFilePreview.vue +4 -6
- package/src/components/Amelipro/AmeliproFilters/AmeliproFilters.vue +13 -13
- package/src/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.vue +3 -5
- package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.vue +1 -3
- package/src/components/Amelipro/AmeliproHeader/AmeliproHeader.vue +2 -4
- package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBar.vue +1 -3
- package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/AmeliproHeaderBrandSection.vue +20 -16
- package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/__tests__/__snapshots__/AmeliproHeaderBrandSection.spec.ts.snap +1 -1
- package/src/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.vue +2 -4
- package/src/components/Amelipro/AmeliproIllustratedDataTile/AmeliproIllustratedDataTile.vue +5 -7
- package/src/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.vue +6 -8
- package/src/components/Amelipro/AmeliproMailTile/AmeliproMailTile.vue +14 -14
- package/src/components/Amelipro/AmeliproMenu/AmeliproMenu.vue +11 -13
- package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproDropdownMenu/AmeliproDropdownMenu.vue +2 -4
- package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproMessagingLayout.vue +8 -8
- package/src/components/Amelipro/AmeliproMultipleFoldingCard/AmeliproMultipleFoldingCard.vue +40 -40
- package/src/components/Amelipro/AmeliproNumberedCard/AmeliproNumberedCard.vue +27 -27
- package/src/components/Amelipro/AmeliproOnboarding/AmeliproOnboarding.vue +3 -5
- package/src/components/Amelipro/AmeliproPageLayout/AmeliproPageLayout.vue +2 -4
- package/src/components/Amelipro/AmeliproPagination/AmeliproPagination.vue +2 -4
- package/src/components/Amelipro/AmeliproPagination/AmeliproPaginationBtn/AmeliproPaginationBtn.vue +3 -5
- package/src/components/Amelipro/AmeliproPatientBanner/AmeliproPatientBanner.vue +1 -3
- package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.vue +2 -4
- package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLogin.vue +4 -4
- package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLoginForm/AmeliproPatientLoginForm.vue +1 -3
- package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.vue +3 -5
- package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.vue +3 -5
- package/src/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.vue +23 -23
- package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.vue +4 -6
- package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.vue +12 -22
- package/src/components/Amelipro/AmeliproStateTile/AmeliproStateTile.vue +10 -12
- package/src/components/Amelipro/AmeliproStepper/AmeliproStepper.vue +17 -17
- package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +8 -10
- package/src/components/Amelipro/AmeliproTabs/AmeliproTabBtn/AmeliproTabBtn.vue +6 -8
- package/src/components/Amelipro/AmeliproTabs/AmeliproTabs.vue +4 -4
- package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.vue +4 -6
- package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.vue +7 -9
- package/src/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.vue +3 -5
- package/src/components/Amelipro/AmeliproTooltips/AmeliproTooltips.vue +0 -2
- package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.vue +6 -6
- package/src/components/Amelipro/ServiceMenu/ServiceMenu.vue +2 -2
- package/src/components/Amelipro/StructureMenu/StructureBtn/StructureBtn.vue +4 -4
- package/src/components/Amelipro/StructureMenu/StructureItem/StructureItem.vue +4 -6
- package/src/components/Amelipro/StructureMenu/StructureMenu.vue +2 -2
- package/src/components/Amelipro/StructureMenu/StructureTabs/StructureTabs.vue +2 -2
- package/src/components/Amelipro/UserMenu/UserMenu.vue +1 -3
- package/src/components/BackBtn/tests/BackBtn.visual.cy.ts +43 -0
- package/src/components/BackBtn/tests/__snapshots__/back-btn-custom-bg.snap.png +0 -0
- package/src/components/BackBtn/tests/__snapshots__/back-btn-dark-mode.snap.png +0 -0
- package/src/components/BackBtn/tests/__snapshots__/back-btn-default.snap.png +0 -0
- package/src/components/BackBtn/tests/__snapshots__/back-btn-no-icon.snap.png +0 -0
- package/src/components/Captcha/Captcha.vue +1 -3
- package/src/components/ChipList/ChipList.vue +14 -16
- package/src/components/CookiesSelection/CookiesInformation/CookiesInformation.vue +2 -3
- package/src/components/CookiesSelection/CookiesSelection.vue +2 -1
- package/src/components/CopyBtn/CopyBtn.vue +10 -3
- package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.vue +17 -17
- package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.spec.ts +31 -0
- package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.stories.ts +66 -0
- package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.vue +8 -4
- package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.a11y.spec.ts +18 -0
- package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.spec.ts +66 -0
- package/src/components/Customs/Selects/SyInputSelect/SyInputSelect.vue +4 -6
- package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +414 -135
- package/src/components/Customs/Selects/SySelect/SySelect.vue +502 -257
- package/src/components/Customs/Selects/SySelect/accessibilite/Accessibility.mdx +199 -269
- package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +278 -4
- package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.vue +3 -3
- package/src/components/Customs/SyCheckbox/SyCheckbox.mdx +5 -0
- package/src/components/Customs/SyCheckbox/SyCheckbox.vue +52 -2
- package/src/components/Customs/SyCheckbox/accessibilite/Accessibility.mdx +18 -3
- package/src/components/Customs/SyPagination/SyPagination.vue +0 -2
- package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +23 -5
- package/src/components/Customs/SyTabs/SyTabs.mdx +0 -58
- package/src/components/Customs/SyTabs/SyTabs.stories.ts +34 -35
- package/src/components/Customs/SyTabs/SyTabs.vue +87 -67
- package/src/components/Customs/SyTabs/accessibilite/Accessibility.mdx +83 -23
- package/src/components/Customs/SyTabs/config.ts +3 -3
- package/src/components/Customs/SyTabs/tests/SyTabs.a11y.spec.ts +88 -0
- package/src/components/Customs/SyTabs/tests/SyTabs.spec.ts +46 -1
- package/src/components/Customs/SyTextField/SyTextField.stories.ts +21 -41
- package/src/components/Customs/SyTextField/SyTextField.vue +34 -9
- package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +1 -1
- package/src/components/DatePicker/CalendarMode/DatePicker.vue +29 -28
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +1 -1
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +28 -23
- package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +24 -1
- package/src/components/DatePicker/DatePickerValidationExample/DatePickerValidation.stories.ts +1 -1
- package/src/components/DatePicker/DateTextInput/DateTextInput.vue +65 -33
- package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +1 -1
- package/src/components/DatePicker/composables/tests/useDatePickerState.spec.ts +53 -0
- package/src/components/DatePicker/composables/useDatePickerState.ts +56 -13
- package/src/components/DatePicker/composables/useDateRangeInput.ts +2 -1
- package/src/components/DatePicker/composables/useDateSelection.ts +2 -1
- package/src/components/DatePicker/composables/useDateTextField.ts +2 -3
- package/src/components/DatePicker/composables/useInputBlurHandler.ts +2 -2
- package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +9 -8
- package/src/components/DatePicker/playground/DatePickerHolidayRule.vue +1 -1
- package/src/components/DatePicker/types.ts +1 -2
- package/src/components/DialogBox/DialogBox.stories.ts +8 -8
- package/src/components/DialogBox/DialogBox.vue +3 -5
- package/src/components/DialogBox/accessibilite/Accessibility.mdx +86 -22
- package/src/components/DialogBox/tests/DialogBox.visual.cy.ts +76 -0
- package/src/components/DialogBox/tests/__snapshots__/dialog-box-custom-texts.snap.png +0 -0
- package/src/components/DialogBox/tests/__snapshots__/dialog-box-default.snap.png +0 -0
- package/src/components/DialogBox/tests/__snapshots__/dialog-box-no-actions.snap.png +0 -0
- package/src/components/FileList/FileList.vue +9 -2
- package/src/components/FileList/UploadItem/UploadItem.vue +11 -13
- package/src/components/FileList/tests/FileList.spec.ts +47 -0
- package/src/components/FileUpload/FileUpload.vue +3 -5
- package/src/components/FileUpload/FileUploadContent.vue +3 -5
- package/src/components/FilterInline/FilterInline.vue +1 -3
- package/src/components/FilterSideBar/FilterSideBar.mdx +44 -1
- package/src/components/FilterSideBar/FilterSideBar.stories.ts +105 -1
- package/src/components/FilterSideBar/FilterSideBar.vue +9 -1
- package/src/components/FilterSideBar/tests/FilterSideBar.a11y.spec.ts +54 -1
- package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +42 -0
- package/src/components/FooterBar/FooterBar.vue +9 -13
- package/src/components/FranceConnectBtn/FranceConnectBtn.vue +1 -1
- package/src/components/HeaderBar/HeaderBar.vue +2 -3
- package/src/components/HeaderBar/HeaderBurgerMenu/HeaderBurgerMenu.vue +2 -3
- package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/HeaderMenuItem.vue +2 -3
- package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuSection/HeaderMenuSection.vue +0 -1
- package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.vue +8 -9
- package/src/components/HeaderBar/HeaderBurgerMenu/menu.scss +0 -8
- package/src/components/HeaderBar/HeaderBurgerMenu/tests/HeaderBurgerMenu.visual.cy.ts +196 -0
- package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/header-burger-menu-generated-submenu-open.snap.png +0 -0
- package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/header-burger-menu-generated.snap.png +0 -0
- package/src/components/HeaderBar/HeaderLogo/HeaderLogo.vue +0 -1
- package/src/components/HeaderBar/HeaderMenuBtn/HeaderMenuBtn.vue +6 -7
- package/src/components/HeaderBar/tests/HeaderBar.visual.cy.ts +81 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-custom-width.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-default.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-no-sticky.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-prepend.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-side.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-subtitle.snap.png +0 -0
- package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +12 -3
- package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +15 -8
- package/src/components/HeaderToolbar/HeaderToolbar.vue +6 -7
- package/src/components/LangBtn/LangBtn.vue +4 -5
- package/src/components/Logo/tests/Logo.visual.cy.ts +57 -0
- package/src/components/Logo/tests/__snapshots__/logo-avatar.snap.png +0 -0
- package/src/components/Logo/tests/__snapshots__/logo-dark.snap.png +0 -0
- package/src/components/Logo/tests/__snapshots__/logo-default.snap.png +0 -0
- package/src/components/Logo/tests/__snapshots__/logo-no-organism.snap.png +0 -0
- package/src/components/Logo/tests/__snapshots__/logo-no-signature.snap.png +0 -0
- package/src/components/Logo/tests/__snapshots__/logo-risque-pro.snap.png +0 -0
- package/src/components/LogoBrandSection/LogoBrandSection.vue +2 -2
- package/src/components/MonthPicker/MonthPickerVisual/VisualPickerHeader.vue +1 -1
- package/src/components/NirField/NirField.stories.ts +2 -2
- package/src/components/NirField/NirField.vue +3 -5
- package/src/components/NirField/accessibilite/Accessibility.mdx +100 -5
- package/src/components/NirField/tests/NirField.spec.ts +118 -0
- package/src/components/NirField/tests/useNirValidation.spec.ts +449 -0
- package/src/components/NirField/useNirValidation.ts +38 -32
- package/src/components/NotificationBar/Notification/Notification.vue +7 -9
- package/src/components/NotificationBar/NotificationBar.vue +1 -3
- package/src/components/PaginatedTable/PaginatedTable.vue +3 -4
- package/src/components/PaginatedTable/Pagination.vue +4 -6
- package/src/components/PasswordField/PasswordField.vue +15 -13
- package/src/components/PhoneField/PhoneField.vue +7 -5
- package/src/components/RangeField/RangeSlider/RangeSlider.vue +11 -20
- package/src/components/RangeField/RangeSlider/Tooltip/Tooltip.vue +1 -1
- package/src/components/RangeField/tests/RangeField.visual.cy.ts +65 -0
- package/src/components/RangeField/tests/__snapshots__/range-field-custom-bg.snap.png +0 -0
- package/src/components/RangeField/tests/__snapshots__/range-field-custom-range.snap.png +0 -0
- package/src/components/RangeField/tests/__snapshots__/range-field-default.snap.png +0 -0
- package/src/components/RangeField/tests/__snapshots__/range-field-step.snap.png +0 -0
- package/src/components/RangeField/tests/__snapshots__/range-field-with-label.snap.png +0 -0
- package/src/components/RatingPicker/EmotionPicker/EmotionPicker.vue +38 -56
- package/src/components/RatingPicker/EmotionPicker/tests/__snapshots__/EmotionPicker.spec.ts.snap +5 -0
- package/src/components/RatingPicker/NumberPicker/NumberPicker.vue +48 -53
- package/src/components/RatingPicker/NumberPicker/tests/NumberPicker.spec.ts +2 -1
- package/src/components/RatingPicker/NumberPicker/tests/__snapshots__/NumberPicker.spec.ts.snap +40 -13
- package/src/components/RatingPicker/RatingPicker.stories.ts +65 -88
- package/src/components/RatingPicker/RatingPicker.vue +71 -15
- package/src/components/RatingPicker/StarsPicker/StarsPicker.vue +31 -42
- package/src/components/RatingPicker/StarsPicker/tests/StarsPicker.spec.ts +1 -1
- package/src/components/RatingPicker/StarsPicker/tests/__snapshots__/StarsPicker.spec.ts.snap +5 -0
- package/src/components/RatingPicker/accessibilite/Accessibility.mdx +137 -9
- package/src/components/RatingPicker/tests/RatingPicker.a11y.spect.ts +123 -0
- package/src/components/RatingPicker/tests/RatingPicker.spec.ts +3 -2
- package/src/components/RatingPicker/tests/__snapshots__/RatingPicker.spec.ts.snap +40 -11
- package/src/components/RatingPicker/useRatingFocus.ts +97 -0
- package/src/components/SearchListField/SearchListField.vue +0 -2
- package/src/components/SkipLink/SkipLink.vue +2 -4
- package/src/components/SocialMediaLinks/SocialMediaLinks.vue +6 -6
- package/src/components/SubHeader/SubHeader.vue +1 -1
- package/src/components/SyAlert/SyAlert.vue +7 -9
- package/src/components/SyAlert/tests/SyAlert.visual.cy.ts +46 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-closable.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-error.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-info.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-success.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-outlined.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-tonal.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-warning.snap.png +0 -0
- package/src/components/SyBtnMenu/SyBtnMenu.vue +2 -4
- package/src/components/SyTextArea/SyTextArea.vue +32 -1
- package/src/components/TableToolbar/TableToolbar.vue +6 -8
- package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +166 -0
- package/src/components/Tables/SyServerTable/SyServerTable.vue +10 -8
- package/src/components/Tables/SyServerTable/tests/SyServerTable.a11y.spec.ts +23 -0
- package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +268 -0
- package/src/components/Tables/SyTable/SyTable.stories.ts +104 -0
- package/src/components/Tables/SyTable/SyTable.vue +10 -8
- package/src/components/Tables/SyTable/tests/SyTable.a11y.spec.ts +22 -0
- package/src/components/Tables/SyTable/tests/SyTable.spec.ts +274 -0
- package/src/components/Tables/common/SyTableFilter.vue +31 -6
- package/src/components/Tables/common/SyTablePagination.vue +143 -19
- package/src/components/Tables/common/TableHeader.vue +41 -4
- package/src/components/Tables/common/filters/DateFilter.vue +2 -2
- package/src/components/Tables/common/filters/SelectFilter.vue +1 -1
- package/src/components/Tables/common/locales.ts +3 -0
- package/src/components/Tables/common/tableStyles.scss +16 -19
- package/src/components/Tables/common/tests/SyTablePagination.spec.ts +18 -0
- package/src/components/Tables/common/tests/TableHeader.spec.ts +39 -0
- package/src/components/Tables/common/types.ts +2 -0
- package/src/components/Tables/common/useTableHeaders.ts +49 -27
- package/src/components/UploadWorkflow/UploadWorkflow.vue +1 -0
- package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +23 -0
- package/src/components/UploadWorkflow/tests/__snapshots__/UploadWorkflow.spec.ts.snap +66 -0
- package/src/components/UploadWorkflow/useFileList.ts +3 -0
- package/src/components/UserMenuBtn/UserMenuBtn.vue +1 -3
- package/src/composables/date/tests/useDateFormatDayjs.spec.ts +81 -0
- package/src/composables/date/tests/{useDateInitialization.spec.ts → useDateInitializationDayjs.spec.ts} +39 -3
- package/src/composables/date/useDateInitializationDayjs.ts +4 -1
- package/src/composables/unifyValidation/documentationValidationProps.ts +235 -0
- package/src/composables/unifyValidation/tests/useCustomValidation.spec.ts +2 -1
- package/src/composables/unifyValidation/tests/useValidation.spec.ts +22 -0
- package/src/composables/unifyValidation/useCustomValidation.ts +16 -4
- package/src/composables/unifyValidation/useValidation.ts +46 -15
- package/src/composables/unifyValidation/useVuetifyValidation.ts +2 -2
- package/src/composables/useFormFieldErrorHandling.ts +4 -1
- package/src/composables/validation/tests/useValidation.spec.ts +2 -2
- package/src/composables/validation/useValidation.ts +32 -4
- package/src/composantsVuetify/VBreadcrumbs/VBreadcrumbs.mdx +28 -0
- package/src/composantsVuetify/VBreadcrumbs/v-breadcrumbs.stories.ts +108 -0
- package/src/composantsVuetify/VCard/VCard.mdx +59 -0
- package/src/composantsVuetify/VCard/v-card.stories.ts +279 -0
- package/src/composantsVuetify/VOtpInput/VOtpInput.mdx +39 -0
- package/src/composantsVuetify/VOtpInput/v-otp-input.stories.ts +56 -0
- package/src/composantsVuetify/VSkeletonLoader/VSkeletonLoader.mdx +42 -0
- package/src/composantsVuetify/VSkeletonLoader/v-skeleton-loader.stories.ts +77 -0
- package/src/composantsVuetify/VSwitch/VSwitch.mdx +47 -0
- package/src/composantsVuetify/VSwitch/v-switch.stories.ts +166 -0
- package/src/designTokens/tests/buildColorClassMap.spec.ts +31 -0
- package/src/designTokens/tests/generateScssTokens.spec.ts +12 -0
- package/src/designTokens/tests/themeUtils.spec.ts +53 -0
- package/src/designTokens/tokens/amelipro/apColors.ts +8 -130
- package/src/designTokens/tokens/amelipro/apColors2026.ts +3 -15
- package/src/designTokens/tokens/amelipro/apContextual.ts +55 -47
- package/src/designTokens/tokens/amelipro/apLightTheme.ts +4 -1
- package/src/designTokens/tokens/amelipro/apSemantic.ts +1 -1
- package/src/designTokens/tokens/baseColors.ts +129 -0
- package/src/designTokens/tokens/baseContextualTokens.ts +52 -0
- package/src/designTokens/tokens/cnam/cnamColors.ts +3 -125
- package/src/designTokens/tokens/cnam/cnamContextual.ts +4 -48
- package/src/designTokens/tokens/cnam/cnamLightTheme.ts +4 -1
- package/src/designTokens/tokens/cnam/cnamSemantic.ts +1 -1
- package/src/designTokens/tokens/pa/paColors.ts +2 -166
- package/src/designTokens/tokens/pa/paContextual.ts +3 -48
- package/src/designTokens/tokens/pa/paLightTheme.ts +1 -1
- package/src/designTokens/tokens/pa/paSemantic.ts +2 -2
- package/src/designTokens/utils/buildColorClassMap.ts +34 -0
- package/src/designTokens/utils/convertSemanticsToken.ts +8 -11
- package/src/designTokens/utils/createFlattenTheme.ts +15 -7
- package/src/designTokens/utils/index.ts +2 -2
- package/src/stories/Accessibilite/Aculturation/SensibilisationAccessibilite.mdx +61 -91
- package/src/stories/Accessibilite/AuditDesignSystem.mdx +5 -19
- package/src/stories/Accessibilite/AuditEtContreAudit/Exemptions-derogations.mdx +1 -1
- package/src/stories/Accessibilite/AuditEtContreAudit/Introduction.mdx +11 -8
- package/src/stories/Accessibilite/AuditEtContreAudit/RGAA.mdx +6 -7
- package/src/stories/Accessibilite/DesignSystem/Avancement.mdx +433 -0
- package/src/stories/Accessibilite/DesignSystem/a11y-status.json +692 -0
- package/src/stories/Accessibilite/Introduction.mdx +30 -30
- package/src/stories/Accessibilite/KitDePreAudit/Echantillonnage.mdx +176 -79
- package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +67 -19
- package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +78 -50
- package/src/stories/Accessibilite/KitDePreAudit/Outils/LecteursDEcran.mdx +23 -49
- package/src/stories/Accessibilite/KitDePreAudit/Outils/Tanaguru/FauxPositifs.stories.ts +6 -0
- package/src/stories/Accessibilite/KitDePreAudit/Outils/Tanaguru/Utilisation.mdx +7 -19
- package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +55 -67
- package/src/stories/Components/Components.stories.ts +92 -4
- package/src/stories/Demarrer/EnrichirLeDesignSystem.mdx +4 -9
- package/src/stories/Demarrer/EnrichirLeDesignSystem.stories.ts +28 -0
- package/src/stories/Demarrer/Releases.stories.ts +48 -5
- package/src/stories/DesignTokens/ColorDisplay.vue +6 -5
- package/src/stories/DesignTokens/ColorIntegrationExample.vue +2 -4
- package/src/stories/DesignTokens/colors.stories.ts +5 -6
- package/src/stories/GuideDuDev/CreateVuetifyInstance.mdx +95 -0
- package/src/stories/GuideDuDev/Theme.mdx +36 -26
- package/src/stories/GuideDuDev/moduleDeNotification.mdx +3 -2
- package/src/stories/styles/accessibility-guide.css +3 -3
- package/src/utils/functions/classToHex.ts +6 -34
- package/src/utils/functions/createHexResolver.ts +45 -0
- package/src/utils/functions/tests/classToHex.spec.ts +36 -0
- package/src/utils/functions/tests/convertToHex.spec.ts +31 -0
- package/src/utils/functions/tests/createHexResolver.spec.ts +66 -0
- package/src/utils/functions/tests/isCssColor.spec.ts +48 -0
- package/dist/AutocompleteFilter-D9jzRzAL.cjs +0 -1
- package/dist/DateFilter-DTUl8hb1.cjs +0 -1
- package/dist/NumberFilter-MAEojdk0.cjs +0 -1
- package/dist/PeriodFilter-CC4WgIhl.cjs +0 -1
- package/dist/SelectFilter-BR3fvl-a.cjs +0 -1
- package/dist/TextFilter-CCfYFl5F.cjs +0 -1
- package/dist/apLightTheme-CFSRrjv2.cjs +0 -1
- package/dist/composables/date/useDateFormat.d.ts +0 -26
- package/dist/composables/date/useDateInitialization.d.ts +0 -18
- package/dist/design-system-v3.umd.cjs +0 -1
- package/dist/designTokens/utils/convertGaps.d.ts +0 -5
- package/dist/main-C1e3eoxd.cjs +0 -1067
- package/dist/tooth-11-D3sLWv2n.cjs +0 -1
- package/dist/tooth-12-CXrLuH03.cjs +0 -1
- package/dist/tooth-13-BSfo5fpT.cjs +0 -1
- package/dist/tooth-14-DMzulx0h.cjs +0 -1
- package/dist/tooth-15-BKRFVi-9.cjs +0 -1
- package/dist/tooth-16-CpuxAbuM.cjs +0 -1
- package/dist/tooth-17-BPoahUdg.cjs +0 -1
- package/dist/tooth-18-DhHJz8sy.cjs +0 -1
- package/dist/tooth-21-Dgd5hn_X.cjs +0 -1
- package/dist/tooth-22-C2Tn19sB.cjs +0 -1
- package/dist/tooth-23-C9uaaSGb.cjs +0 -1
- package/dist/tooth-24-BrK9UGpf.cjs +0 -1
- package/dist/tooth-25-CE_EfGNp.cjs +0 -1
- package/dist/tooth-26-Ctv4i9Fy.cjs +0 -1
- package/dist/tooth-27-C5J7JkWM.cjs +0 -1
- package/dist/tooth-28-Z9oWqjo0.cjs +0 -1
- package/dist/tooth-31-BrYqmkTi.cjs +0 -1
- package/dist/tooth-32-BNNR0oCZ.cjs +0 -1
- package/dist/tooth-33-DuxvqO2J.cjs +0 -1
- package/dist/tooth-34-BCSCXMB6.cjs +0 -1
- package/dist/tooth-35-BLUXkX88.cjs +0 -1
- package/dist/tooth-36-IrKHYqlA.cjs +0 -1
- package/dist/tooth-37-BYqpdMwo.cjs +0 -1
- package/dist/tooth-38-B_eNXXdu.cjs +0 -1
- package/dist/tooth-41-Ddva4Ot8.cjs +0 -1
- package/dist/tooth-42-szcDqlM0.cjs +0 -1
- package/dist/tooth-43-B3ka6rQm.cjs +0 -1
- package/dist/tooth-44-CazyQucj.cjs +0 -1
- package/dist/tooth-45-B4HQtc8n.cjs +0 -1
- package/dist/tooth-46-BPM40gbG.cjs +0 -1
- package/dist/tooth-47-Dvr20dlh.cjs +0 -1
- package/dist/tooth-48-Bd8ljGsF.cjs +0 -1
- package/dist/tooth-51-OBpwCOF3.cjs +0 -1
- package/dist/tooth-52-aKxyHcmq.cjs +0 -1
- package/dist/tooth-53-vCwJjTOc.cjs +0 -1
- package/dist/tooth-54-DsWu2iFy.cjs +0 -1
- package/dist/tooth-55-BxC1X2Dn.cjs +0 -1
- package/dist/tooth-61-BbLvxMQi.cjs +0 -1
- package/dist/tooth-62-CmTkWczP.cjs +0 -1
- package/dist/tooth-63-DI7l_2qI.cjs +0 -1
- package/dist/tooth-64-B21sOsJh.cjs +0 -1
- package/dist/tooth-65-D2ZC2VEr.cjs +0 -1
- package/dist/tooth-71-D473PPO5.cjs +0 -1
- package/dist/tooth-72-Drh1wnNu.cjs +0 -1
- package/dist/tooth-73-DzlwYI23.cjs +0 -1
- package/dist/tooth-74-8aGvcZPg.cjs +0 -1
- package/dist/tooth-75-BFK7At_r.cjs +0 -1
- package/dist/tooth-81-BZmR-I0M.cjs +0 -1
- package/dist/tooth-82-euVfUUZV.cjs +0 -1
- package/dist/tooth-83-KV010j64.cjs +0 -1
- package/dist/tooth-84-BBg1RjhZ.cjs +0 -1
- package/dist/tooth-85-Cr-kc1wM.cjs +0 -1
- package/dist/vuetifyConfig.umd.cjs +0 -1
- package/src/assets/apTokens.scss +0 -343
- package/src/assets/overrides/_container.scss +0 -36
- package/src/assets/tokens.scss +0 -388
- package/src/composables/date/tests/useDateFormat.spec.ts +0 -67
- package/src/composables/date/useDateFormat.ts +0 -110
- package/src/composables/date/useDateInitialization.ts +0 -92
- package/src/designTokens/apColors.md +0 -66
- package/src/designTokens/cnamColors.md +0 -193
- package/src/designTokens/paColors.md +0 -66
- package/src/designTokens/tokens/json/contextual-tokens.json +0 -156
- package/src/designTokens/tokens/json/primitives.json +0 -209
- package/src/designTokens/tokens/json/semantic.json +0 -120
- package/src/designTokens/utils/convertGaps.ts +0 -11
- package/src/stories/Accessibilite/Avancement/Avancement.mdx +0 -533
- package/src/stories/Accessibilite/Avancement/Avancement.stories.ts +0 -306
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ref } from 'vue'
|
|
2
2
|
import type { Ref } from 'vue'
|
|
3
|
+
import { DATE_PICKER_MESSAGES } from '../constants/messages'
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* Composable pour gérer la sélection de dates dans les composants CalendarMode
|
|
@@ -101,7 +102,7 @@ export function useDateSelection(
|
|
|
101
102
|
}
|
|
102
103
|
else if (typeof input === 'string') {
|
|
103
104
|
// Mode plage de dates
|
|
104
|
-
const dates = input.split(
|
|
105
|
+
const dates = input.split(DATE_PICKER_MESSAGES.RANGE_SEPARATOR)
|
|
105
106
|
if (dates.length === 2) {
|
|
106
107
|
const startDate = parseDate(dates[0]!, format)
|
|
107
108
|
const endDate = parseDate(dates[1]!, format)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Ref } from 'vue'
|
|
2
2
|
import type { ValidationResult } from '@/composables/validation/useValidation'
|
|
3
|
-
import type {
|
|
3
|
+
import type { DateModelValue } from '@/composables/date/useDateInitializationDayjs'
|
|
4
4
|
import { useManualDateValidation } from './useManualDateValidation'
|
|
5
5
|
|
|
6
6
|
export interface UseDateTextFieldManualValidationOptions {
|
|
@@ -37,7 +37,7 @@ export interface UseDateTextFieldResetOptions {
|
|
|
37
37
|
inputValue: Ref<string>
|
|
38
38
|
selectedDates: Ref<unknown>
|
|
39
39
|
resetState: () => void
|
|
40
|
-
emitModel: (value:
|
|
40
|
+
emitModel: (value: DateModelValue) => void
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
export interface UseDateTextFieldOptions {
|
|
@@ -80,7 +80,6 @@ export const useDateTextField = (options: UseDateTextFieldOptions) => {
|
|
|
80
80
|
isValidating.value = true
|
|
81
81
|
hasInteracted.value = true
|
|
82
82
|
const ok = await runRules(inputValue.value)
|
|
83
|
-
console.log('ok from validateOnSubmit:', ok)
|
|
84
83
|
isValidating.value = false
|
|
85
84
|
return ok
|
|
86
85
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Ref, ref } from 'vue'
|
|
2
|
-
import { type
|
|
2
|
+
import { type DateModelValue } from '@/composables/date/useDateInitializationDayjs'
|
|
3
3
|
import { type DateObjectValue } from '../types'
|
|
4
4
|
import { DATE_PICKER_MESSAGES } from '../constants/messages'
|
|
5
5
|
|
|
@@ -27,7 +27,7 @@ export const useInputBlurHandler = (options: {
|
|
|
27
27
|
validateDateFormat: (dateStr: string) => { isValid: boolean, message: string }
|
|
28
28
|
parseDate: (dateStr: string, format: string) => Date | null
|
|
29
29
|
formatDate: (date: Date, format: string) => string
|
|
30
|
-
updateModel: (value:
|
|
30
|
+
updateModel: (value: DateModelValue) => void
|
|
31
31
|
validateManualInput: (value: string) => boolean | Promise<boolean>
|
|
32
32
|
|
|
33
33
|
// Émetteurs d'événements
|
|
@@ -14,6 +14,7 @@ export function useMonthButtonCustomization(
|
|
|
14
14
|
const monthButtonText = ref('')
|
|
15
15
|
const yearText = ref('')
|
|
16
16
|
const monthButtonObservers: MutationObserver[] = []
|
|
17
|
+
const primaryThemeColor = 'rgb(var(--v-theme-primary, 12, 65, 154))'
|
|
17
18
|
|
|
18
19
|
onBeforeUnmount(() => {
|
|
19
20
|
monthButtonObservers.forEach(observer => observer.disconnect())
|
|
@@ -111,12 +112,12 @@ export function useMonthButtonCustomization(
|
|
|
111
112
|
)
|
|
112
113
|
monthBtnElement.setAttribute('data-ripple', 'false')
|
|
113
114
|
monthBtnElement.setAttribute('aria-label', monthText)
|
|
114
|
-
monthBtnElement.style.color =
|
|
115
|
+
monthBtnElement.style.color = primaryThemeColor
|
|
115
116
|
|
|
116
117
|
const buttonContentHTML = `
|
|
117
|
-
<div class="v-btn__content" data-no-activator="" style="color:
|
|
118
|
-
<span style="color:
|
|
119
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" class="ms-1" style="fill:
|
|
118
|
+
<div class="v-btn__content" data-no-activator="" style="color: ${primaryThemeColor};">
|
|
119
|
+
<span style="color: ${primaryThemeColor};">${monthText}</span>
|
|
120
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" class="ms-1" style="fill: ${primaryThemeColor};" aria-hidden="true"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z" /></svg>
|
|
120
121
|
</div>
|
|
121
122
|
`
|
|
122
123
|
|
|
@@ -167,12 +168,12 @@ export function useMonthButtonCustomization(
|
|
|
167
168
|
)
|
|
168
169
|
yearBtnElement.setAttribute('data-ripple', 'false')
|
|
169
170
|
yearBtnElement.setAttribute('aria-label', displayedYear)
|
|
170
|
-
yearBtnElement.style.color =
|
|
171
|
+
yearBtnElement.style.color = primaryThemeColor
|
|
171
172
|
|
|
172
173
|
const yearButtonContentHTML = `
|
|
173
|
-
<div class="v-btn__content" data-no-activator="" style="color:
|
|
174
|
-
<span style="color:
|
|
175
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" class="ms-1" style="fill:
|
|
174
|
+
<div class="v-btn__content" data-no-activator="" style="color: ${primaryThemeColor};">
|
|
175
|
+
<span style="color: ${primaryThemeColor};">${displayedYear}</span>
|
|
176
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" class="ms-1" style="fill: ${primaryThemeColor};" aria-hidden="true"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z" /></svg>
|
|
176
177
|
</div>
|
|
177
178
|
`
|
|
178
179
|
|
|
@@ -9,7 +9,6 @@
|
|
|
9
9
|
export type DateObjectValue = Date | (Date | null)[] | null
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
13
|
-
* @deprecated Utilisez DateObjectValue pour les objets Date ou importez DateValue depuis useDateInitializationDayjs pour les chaînes
|
|
12
|
+
* @deprecated Utilisez DateObjectValue pour les objets Date ou importez DateModelValue depuis useDateInitializationDayjs pour les chaînes
|
|
14
13
|
*/
|
|
15
14
|
export type DateValue = DateObjectValue
|
|
@@ -730,7 +730,7 @@ export const VuetifyOptions: Story = {
|
|
|
730
730
|
rounded: 'xl',
|
|
731
731
|
},
|
|
732
732
|
cardTitle: {
|
|
733
|
-
class: 'pa-5 mb-4
|
|
733
|
+
class: 'pa-5 mb-4 secondary--text',
|
|
734
734
|
},
|
|
735
735
|
closeBtn: {
|
|
736
736
|
class: {
|
|
@@ -738,14 +738,14 @@ export const VuetifyOptions: Story = {
|
|
|
738
738
|
},
|
|
739
739
|
},
|
|
740
740
|
icon: {
|
|
741
|
-
color: '
|
|
741
|
+
color: 'secondary',
|
|
742
742
|
},
|
|
743
743
|
cancelBtn: {
|
|
744
|
-
color: '
|
|
744
|
+
color: 'secondary',
|
|
745
745
|
text: false,
|
|
746
746
|
},
|
|
747
747
|
confirmBtn: {
|
|
748
|
-
color: '
|
|
748
|
+
color: 'secondary',
|
|
749
749
|
text: true,
|
|
750
750
|
},
|
|
751
751
|
},
|
|
@@ -813,7 +813,7 @@ export const VuetifyOptions: Story = {
|
|
|
813
813
|
rounded: 'xl',
|
|
814
814
|
},
|
|
815
815
|
cardTitle: {
|
|
816
|
-
class: 'pa-5 mb-4
|
|
816
|
+
class: 'pa-5 mb-4 secondary--text',
|
|
817
817
|
},
|
|
818
818
|
closeBtn: {
|
|
819
819
|
class: {
|
|
@@ -821,14 +821,14 @@ export const VuetifyOptions: Story = {
|
|
|
821
821
|
},
|
|
822
822
|
},
|
|
823
823
|
icon: {
|
|
824
|
-
color: '
|
|
824
|
+
color: 'secondary',
|
|
825
825
|
},
|
|
826
826
|
cancelBtn: {
|
|
827
|
-
color: '
|
|
827
|
+
color: 'secondary',
|
|
828
828
|
text: false,
|
|
829
829
|
},
|
|
830
830
|
confirmBtn: {
|
|
831
|
-
color: '
|
|
831
|
+
color: 'secondary',
|
|
832
832
|
text: true,
|
|
833
833
|
},
|
|
834
834
|
}
|
|
@@ -244,8 +244,6 @@
|
|
|
244
244
|
</template>
|
|
245
245
|
|
|
246
246
|
<style lang="scss" scoped>
|
|
247
|
-
@use '@/assets/tokens' as *;
|
|
248
|
-
|
|
249
247
|
.sy-dialog-box-actions :deep(.v-btn) {
|
|
250
248
|
box-shadow: none;
|
|
251
249
|
}
|
|
@@ -255,7 +253,7 @@
|
|
|
255
253
|
}
|
|
256
254
|
|
|
257
255
|
.v-btn--icon {
|
|
258
|
-
color:
|
|
256
|
+
color: rgb(var(--v-theme-iconBase));
|
|
259
257
|
position: absolute;
|
|
260
258
|
right: 24px;
|
|
261
259
|
}
|
|
@@ -285,7 +283,7 @@ h2 {
|
|
|
285
283
|
display: flex;
|
|
286
284
|
flex-direction: column;
|
|
287
285
|
justify-content: stretch;
|
|
288
|
-
gap:
|
|
286
|
+
gap: 16px;
|
|
289
287
|
}
|
|
290
288
|
|
|
291
289
|
.sy-dialog-box-draggable .sy-dialog-box-title {
|
|
@@ -303,7 +301,7 @@ h2 {
|
|
|
303
301
|
user-select: none;
|
|
304
302
|
}
|
|
305
303
|
|
|
306
|
-
@media screen and (
|
|
304
|
+
@media screen and (width >= 600px) {
|
|
307
305
|
.sy-dialog-box-actions-ctn {
|
|
308
306
|
flex-direction: row;
|
|
309
307
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { Meta
|
|
1
|
+
import { Meta } from '@storybook/addon-docs';
|
|
2
2
|
import * as DialogBoxStories from '../DialogBox.stories.ts';
|
|
3
3
|
import '@/stories/styles/shared.css';
|
|
4
4
|
import AccessibilityIcon from '@/common/imgs/accessibility-svgrepo-com.svg';
|
|
5
|
+
|
|
5
6
|
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
BestPracticesSection,
|
|
11
|
-
ResourcesSection,
|
|
7
|
+
AccessibilityGuideLayout,
|
|
8
|
+
CriteriaSection,
|
|
9
|
+
CriteriaCard,
|
|
10
|
+
AuditSection
|
|
12
11
|
} from '@/stories/accessibility/AccessibilityGuideLayout.mdx';
|
|
13
12
|
|
|
14
13
|
<Meta of={DialogBoxStories} />
|
|
@@ -16,20 +15,85 @@ import {
|
|
|
16
15
|
componentName="DialogBox"
|
|
17
16
|
iconSrc={AccessibilityIcon}
|
|
18
17
|
>
|
|
19
|
-
<
|
|
20
|
-
<
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
</
|
|
33
|
-
|
|
18
|
+
<AuditSection>
|
|
19
|
+
<div>Rapport d’audit manuel : <a href="/audits/DialogBox.xlsx" style={{color: '#0C41BD'}}>Voir le rapport</a></div>
|
|
20
|
+
<div style={{color: 'grey', fontSize: '14px', marginTop: '0px'}}>
|
|
21
|
+
Correctifs associés (<a href="https://github.com/assurance-maladie-digital/design-system-v3/issues/798" target="_blank" style={{color: '#0C41BD'}}>issue #798</a>)
|
|
22
|
+
</div>
|
|
23
|
+
</AuditSection>
|
|
24
|
+
<CriteriaSection>
|
|
25
|
+
<CriteriaCard icon="🧩" title="Niveau de titre configurable via la prop headingLevel">
|
|
26
|
+
<ul>
|
|
27
|
+
<li>Le niveau du titre (h1 à h6) est défini grâce à la propriété <strong>headingLevel</strong> déclarée dans le composant. Si aucune valeur n’est fournie, le composant applique par défaut un titre de niveau h2, défini dans l’implémentation du composant.</li>
|
|
28
|
+
<code><DialogBox
|
|
29
|
+
:heading-level="2" /> </code>
|
|
30
|
+
|
|
31
|
+
<li><strong>Accessibilité</strong> : Permet que la hiérarchie entre les titres soit pertinente (critère 9.1.1 RGAA) </li>
|
|
32
|
+
|
|
33
|
+
<li>Si aucune valeur n’est fournie, le composant applique par défaut un titre de niveau<strong> h2</strong>.</li>
|
|
34
|
+
|
|
35
|
+
<li>Ce titre est rendu via le composant<strong> SyHeading</strong>, ce qui garantit une structure sémantique correcte dans le DOM.</li>
|
|
36
|
+
|
|
37
|
+
<li><strong>Accessibilité :</strong> permet de respecter une hiérarchie de titres cohérente et pertinente pour les technologies d’assistance (critère 9.1.1 RGAA).</li>
|
|
38
|
+
</ul>
|
|
39
|
+
</CriteriaCard>
|
|
40
|
+
|
|
41
|
+
<CriteriaCard icon="🎯" title="Gestion automatique du focus à l’ouverture et à la fermeture">
|
|
42
|
+
<ul>
|
|
43
|
+
<li>À l’ouverture de la modale, le focus est déplacé soit sur le bouton de validation (<strong>autofocusValidateBtn</strong>), soit sur la zone de titre si la modale est draggable.</li>
|
|
44
|
+
|
|
45
|
+
<li>À la fermeture, le focus est automatiquement restauré sur l’élément qui avait le focus avant l’ouverture.</li>
|
|
46
|
+
|
|
47
|
+
<li><strong>Accessibilité :</strong> évite la perte de contexte pour les utilisateurs clavier et lecteurs d’écran (critère 7.3 RGAA).</li>
|
|
48
|
+
</ul>
|
|
49
|
+
</CriteriaCard>
|
|
50
|
+
|
|
51
|
+
<CriteriaCard icon="⌨️" title="Piégeage du focus dans la boîte de dialogue">
|
|
52
|
+
<ul>
|
|
53
|
+
<li>La navigation clavier avec la touche<strong> Tab </strong>est maintenue à l’intérieur de la modale.</li>
|
|
54
|
+
|
|
55
|
+
<li>Le focus boucle automatiquement entre le premier et le dernier élément interactif.</li>
|
|
56
|
+
|
|
57
|
+
<li>La combinaison<strong> Shift + Tab </strong>est également gérée.</li>
|
|
58
|
+
|
|
59
|
+
<li><strong>Accessibilité :</strong> empêche la sortie involontaire du focus hors de la fenêtre modale (critère 7.1 RGAA).</li>
|
|
60
|
+
</ul>
|
|
61
|
+
</CriteriaCard>
|
|
62
|
+
|
|
63
|
+
<CriteriaCard icon="🏷️" title="Association correcte du titre avec aria-labelledby">
|
|
64
|
+
<ul>
|
|
65
|
+
<li>Le composant utilise un identifiant unique généré avec <strong>useId() </strong>.</li>
|
|
66
|
+
|
|
67
|
+
<li>Cet identifiant est appliqué au titre et référencé via <strong> aria-labelledby </strong>sur le composant dialog.</li>
|
|
68
|
+
|
|
69
|
+
<li>Le composant déclare également<strong> aria-modal="true" </strong>.</li>
|
|
70
|
+
|
|
71
|
+
<li><strong>Accessibilité :</strong> permet aux lecteurs d’écran d’annoncer correctement le contexte de la fenêtre modale (critère 7.1 RGAA).</li>
|
|
72
|
+
</ul>
|
|
73
|
+
</CriteriaCard>
|
|
74
|
+
|
|
75
|
+
<CriteriaCard icon="✋" title="Support clavier du mode draggable">
|
|
76
|
+
<ul>
|
|
77
|
+
<li>Lorsque la prop<strong> draggable </strong>est activée, le titre devient focusable avec <strong>tabindex="0"</strong>.</li>
|
|
78
|
+
|
|
79
|
+
<li>Le déplacement peut être réalisé avec les flèches clavier (gauche, droite, haut, bas).</li>
|
|
80
|
+
|
|
81
|
+
<li>Des attributs<strong> title </strong>et <strong> aria-label </strong>expliquent l’usage aux utilisateurs.</li>
|
|
82
|
+
|
|
83
|
+
<li><strong>Accessibilité :</strong> rend le déplacement utilisable sans souris et améliore l’accessibilité fonctionnelle.</li>
|
|
84
|
+
</ul>
|
|
85
|
+
</CriteriaCard>
|
|
86
|
+
|
|
87
|
+
<CriteriaCard icon="❌" title="Bouton de fermeture explicite et accessible">
|
|
88
|
+
<ul>
|
|
89
|
+
<li>Le bouton de fermeture possède un<strong> aria-label </strong>explicite.</li>
|
|
90
|
+
|
|
91
|
+
<li>L’icône est décorative (<strong>decorative=true</strong>) pour éviter une lecture redondante.</li>
|
|
92
|
+
|
|
93
|
+
<li>Le style de focus visible est renforcé pour garantir une navigation clavier claire.</li>
|
|
34
94
|
|
|
95
|
+
<li><strong>Accessibilité :</strong> assure une identification immédiate de l’action de fermeture (critère 11.10 RGAA).</li>
|
|
96
|
+
</ul>
|
|
97
|
+
</CriteriaCard>
|
|
98
|
+
</CriteriaSection>
|
|
35
99
|
</AccessibilityGuideLayout>
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { h } from 'vue'
|
|
2
|
+
import DialogBox from '../DialogBox.vue'
|
|
3
|
+
|
|
4
|
+
const dialogTransitionOptions = {
|
|
5
|
+
global: {
|
|
6
|
+
stubs: {
|
|
7
|
+
'transition': false,
|
|
8
|
+
'transition-group': false,
|
|
9
|
+
},
|
|
10
|
+
},
|
|
11
|
+
} as const
|
|
12
|
+
|
|
13
|
+
function waitForDialogTransitionEnd() {
|
|
14
|
+
cy.get('.v-overlay__content')
|
|
15
|
+
.should('be.visible')
|
|
16
|
+
.and('not.have.class', 'dialog-transition-enter-active')
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
describe('DialogBox - Visual regression tests', () => {
|
|
20
|
+
it('displays the opened dialog box', () => {
|
|
21
|
+
cy.mountWithVuetify(DialogBox, {
|
|
22
|
+
...dialogTransitionOptions,
|
|
23
|
+
props: {
|
|
24
|
+
'modelValue': true,
|
|
25
|
+
'title': 'Confirmer la suppression',
|
|
26
|
+
'onUpdate:modelValue': () => {},
|
|
27
|
+
},
|
|
28
|
+
slots: {
|
|
29
|
+
default: () => h('p', 'Êtes-vous sûr de vouloir supprimer cet élément ?'),
|
|
30
|
+
},
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
cy.get('.v-dialog').should('be.visible')
|
|
34
|
+
waitForDialogTransitionEnd()
|
|
35
|
+
cy.matchImageSnapshot('dialog-box-default')
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
it('displays the dialog box without actions', () => {
|
|
39
|
+
cy.mountWithVuetify(DialogBox, {
|
|
40
|
+
...dialogTransitionOptions,
|
|
41
|
+
props: {
|
|
42
|
+
'modelValue': true,
|
|
43
|
+
'title': 'Information',
|
|
44
|
+
'hideActions': true,
|
|
45
|
+
'onUpdate:modelValue': () => {},
|
|
46
|
+
},
|
|
47
|
+
slots: {
|
|
48
|
+
default: () => h('p', 'Ceci est un message informatif.'),
|
|
49
|
+
},
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
cy.get('.v-dialog').should('be.visible')
|
|
53
|
+
waitForDialogTransitionEnd()
|
|
54
|
+
cy.matchImageSnapshot('dialog-box-no-actions')
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
it('displays the dialog box with custom texts', () => {
|
|
58
|
+
cy.mountWithVuetify(DialogBox, {
|
|
59
|
+
...dialogTransitionOptions,
|
|
60
|
+
props: {
|
|
61
|
+
'modelValue': true,
|
|
62
|
+
'title': 'Valider le formulaire',
|
|
63
|
+
'cancelBtnText': 'Annuler',
|
|
64
|
+
'confirmBtnText': 'Valider',
|
|
65
|
+
'onUpdate:modelValue': () => {},
|
|
66
|
+
},
|
|
67
|
+
slots: {
|
|
68
|
+
default: () => h('p', 'Souhaitez-vous valider ce formulaire ?'),
|
|
69
|
+
},
|
|
70
|
+
})
|
|
71
|
+
|
|
72
|
+
cy.get('.v-dialog').should('be.visible')
|
|
73
|
+
waitForDialogTransitionEnd()
|
|
74
|
+
cy.matchImageSnapshot('dialog-box-custom-texts')
|
|
75
|
+
})
|
|
76
|
+
})
|
|
Binary file
|
|
Binary file
|
|
@@ -19,8 +19,14 @@
|
|
|
19
19
|
const props = withDefaults(defineProps<{
|
|
20
20
|
uploadList: Item[]
|
|
21
21
|
locales?: typeof defaultLocales
|
|
22
|
+
seeLabel?: string
|
|
23
|
+
importLabel?: string
|
|
24
|
+
deleteLabel?: string
|
|
22
25
|
} & Widthable>(), {
|
|
23
26
|
locales: () => defaultLocales,
|
|
27
|
+
seeLabel: undefined,
|
|
28
|
+
importLabel: undefined,
|
|
29
|
+
deleteLabel: undefined,
|
|
24
30
|
})
|
|
25
31
|
|
|
26
32
|
const { widthStyles } = useWidthable(props)
|
|
@@ -51,6 +57,9 @@
|
|
|
51
57
|
:show-delete-btn="item.showDeleteBtn"
|
|
52
58
|
tag="li"
|
|
53
59
|
:locales="locales"
|
|
60
|
+
:see-label="seeLabel"
|
|
61
|
+
:import-label="importLabel"
|
|
62
|
+
:delete-label="deleteLabel"
|
|
54
63
|
@upload="() => $emit('upload', uploadList.find((i) => i.id === item.id) as Item)"
|
|
55
64
|
@preview="() => $emit('preview', uploadList.find((i) => i.id === item.id) as Item)"
|
|
56
65
|
@delete="() => $emit('delete', uploadList.find((i) => i.id === item.id) as Item)"
|
|
@@ -66,8 +75,6 @@
|
|
|
66
75
|
</template>
|
|
67
76
|
|
|
68
77
|
<style lang="scss" scoped>
|
|
69
|
-
@use '@/assets/tokens';
|
|
70
|
-
|
|
71
78
|
.upload-list {
|
|
72
79
|
display: flex;
|
|
73
80
|
flex-direction: column;
|
|
@@ -206,14 +206,12 @@
|
|
|
206
206
|
</template>
|
|
207
207
|
|
|
208
208
|
<style lang="scss" scoped>
|
|
209
|
-
@use '@/assets/tokens';
|
|
210
|
-
|
|
211
209
|
.file-item {
|
|
212
210
|
display: flex;
|
|
213
211
|
flex-direction: column;
|
|
214
|
-
gap:
|
|
215
|
-
padding-block:
|
|
216
|
-
border-bottom: 1px solid
|
|
212
|
+
gap: var(--v-gap-3);
|
|
213
|
+
padding-block: var(--v-padding-4);
|
|
214
|
+
border-bottom: 1px solid rgb(var(--v-theme-borderSubdued));
|
|
217
215
|
|
|
218
216
|
&:first-child:last-child {
|
|
219
217
|
border-bottom: none;
|
|
@@ -221,12 +219,12 @@
|
|
|
221
219
|
}
|
|
222
220
|
|
|
223
221
|
.file-item__title {
|
|
224
|
-
font-size:
|
|
222
|
+
font-size: var(--v-fontSize-corpsDeTexte);
|
|
225
223
|
}
|
|
226
224
|
|
|
227
225
|
.file-item__name {
|
|
228
226
|
font-size: 0.875rem;
|
|
229
|
-
color:
|
|
227
|
+
color: rgb(var(--v-theme-textBase));
|
|
230
228
|
}
|
|
231
229
|
|
|
232
230
|
.file-item__description {
|
|
@@ -252,7 +250,7 @@
|
|
|
252
250
|
|
|
253
251
|
.file-item__content {
|
|
254
252
|
display: flex;
|
|
255
|
-
gap:
|
|
253
|
+
gap: var(--v-gap-4);
|
|
256
254
|
align-items: center;
|
|
257
255
|
}
|
|
258
256
|
|
|
@@ -263,9 +261,9 @@
|
|
|
263
261
|
justify-content: center;
|
|
264
262
|
margin-left: auto;
|
|
265
263
|
height: 100%;
|
|
266
|
-
gap:
|
|
264
|
+
gap: var(--v-gap-1);
|
|
267
265
|
|
|
268
|
-
@media screen and (
|
|
266
|
+
@media screen and (width >= 960px) {
|
|
269
267
|
flex-direction: row;
|
|
270
268
|
}
|
|
271
269
|
}
|
|
@@ -280,18 +278,18 @@
|
|
|
280
278
|
|
|
281
279
|
.file-item__message {
|
|
282
280
|
font-size: 0.875rem;
|
|
283
|
-
color:
|
|
281
|
+
color: rgb(var(--v-theme-textSubdued));
|
|
284
282
|
}
|
|
285
283
|
|
|
286
284
|
.file-item__message-success,
|
|
287
285
|
.file-item__message-error {
|
|
288
|
-
margin-top:
|
|
286
|
+
margin-top: var(--v-gap-3);
|
|
289
287
|
}
|
|
290
288
|
|
|
291
289
|
.file-item__message-error {
|
|
292
290
|
display: flex;
|
|
293
291
|
align-items: center;
|
|
294
|
-
gap:
|
|
292
|
+
gap: var(--v-gap-4);
|
|
295
293
|
}
|
|
296
294
|
|
|
297
295
|
</style>
|
|
@@ -135,6 +135,53 @@ describe('FileList', () => {
|
|
|
135
135
|
expect(wrapper.emitted('preview')?.[0]?.[0]).toEqual(fileItem2)
|
|
136
136
|
})
|
|
137
137
|
|
|
138
|
+
it('forwards seeLabel, importLabel, deleteLabel to all items', () => {
|
|
139
|
+
const wrapper = mount(FileList, {
|
|
140
|
+
props: {
|
|
141
|
+
uploadList: [
|
|
142
|
+
{ id: 'file1', title: 'file1', state: 'initial' },
|
|
143
|
+
{ id: 'file2', title: 'file2', state: 'success', showDeleteBtn: true, showPreviewBtn: true },
|
|
144
|
+
],
|
|
145
|
+
importLabel: 'Ajouter',
|
|
146
|
+
seeLabel: 'Consulter',
|
|
147
|
+
deleteLabel: 'Retirer',
|
|
148
|
+
},
|
|
149
|
+
})
|
|
150
|
+
|
|
151
|
+
const item1 = wrapper.findAll('.file-item').at(0)
|
|
152
|
+
expect(item1!.find('.file-item__action-upload').text()).toContain('Ajouter')
|
|
153
|
+
|
|
154
|
+
const item2 = wrapper.findAll('.file-item').at(1)
|
|
155
|
+
expect(item2!.find('.file-item__action-preview').text()).toContain('Consulter')
|
|
156
|
+
expect(item2!.find('.file-item__action-delete').text()).toContain('Retirer')
|
|
157
|
+
})
|
|
158
|
+
|
|
159
|
+
it('uses locales for button labels when individual label props are not passed', () => {
|
|
160
|
+
const customLocales = {
|
|
161
|
+
...locales,
|
|
162
|
+
import: 'Déposer',
|
|
163
|
+
see: 'Afficher',
|
|
164
|
+
delete: 'Effacer',
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
const wrapper = mount(FileList, {
|
|
168
|
+
props: {
|
|
169
|
+
uploadList: [
|
|
170
|
+
{ id: 'file1', title: 'file1', state: 'initial' },
|
|
171
|
+
{ id: 'file2', title: 'file2', state: 'success', showDeleteBtn: true, showPreviewBtn: true },
|
|
172
|
+
],
|
|
173
|
+
locales: customLocales,
|
|
174
|
+
},
|
|
175
|
+
})
|
|
176
|
+
|
|
177
|
+
const item1 = wrapper.findAll('.file-item').at(0)
|
|
178
|
+
expect(item1!.find('.file-item__action-upload').text()).toContain('Importer le fichier')
|
|
179
|
+
|
|
180
|
+
const item2 = wrapper.findAll('.file-item').at(1)
|
|
181
|
+
expect(item2!.find('.file-item__action-preview').text()).toContain('Voir le fichier')
|
|
182
|
+
expect(item2!.find('.file-item__action-delete').text()).toContain('Supprimer le fichier')
|
|
183
|
+
})
|
|
184
|
+
|
|
138
185
|
it('shows when a file is optional', () => {
|
|
139
186
|
const wrapper = mount(FileList, {
|
|
140
187
|
props: {
|
|
@@ -167,8 +167,6 @@
|
|
|
167
167
|
</template>
|
|
168
168
|
|
|
169
169
|
<style lang="scss" scoped>
|
|
170
|
-
@use '@/assets/tokens';
|
|
171
|
-
|
|
172
170
|
.sy-file-upload-wrapper {
|
|
173
171
|
display: contents;
|
|
174
172
|
}
|
|
@@ -176,14 +174,14 @@
|
|
|
176
174
|
.sy-file-upload {
|
|
177
175
|
cursor: pointer;
|
|
178
176
|
position: relative;
|
|
179
|
-
border: 1px dashed
|
|
180
|
-
border-radius:
|
|
177
|
+
border: 1px dashed rgb(var(--v-theme-borderAccentPrimary));
|
|
178
|
+
border-radius: var(--v-radius-roundedLg);
|
|
181
179
|
transition: background 0.25s;
|
|
182
180
|
|
|
183
181
|
&:hover,
|
|
184
182
|
&:focus-within,
|
|
185
183
|
&.dragover {
|
|
186
|
-
background:
|
|
184
|
+
background: rgb(var(--v-theme-backgroundSurfaceAlt));
|
|
187
185
|
}
|
|
188
186
|
|
|
189
187
|
&.dark-mode {
|
|
@@ -88,8 +88,6 @@
|
|
|
88
88
|
</template>
|
|
89
89
|
|
|
90
90
|
<style lang="scss" scoped>
|
|
91
|
-
@use '@/assets/tokens';
|
|
92
|
-
|
|
93
91
|
.sy-file-upload-placeholder {
|
|
94
92
|
display: flex;
|
|
95
93
|
align-items: center;
|
|
@@ -98,14 +96,14 @@
|
|
|
98
96
|
|
|
99
97
|
.sy-file-upload-caption {
|
|
100
98
|
font-size: 0.875rem;
|
|
101
|
-
color:
|
|
99
|
+
color: rgb(var(--v-theme-textSubdued));
|
|
102
100
|
}
|
|
103
101
|
|
|
104
102
|
.sy-file-upload-btn {
|
|
105
|
-
border-radius:
|
|
103
|
+
border-radius: var(--v-radius-rounded);
|
|
106
104
|
transition: background 0.25s;
|
|
107
105
|
font-weight: 700 !important;
|
|
108
|
-
font-size:
|
|
106
|
+
font-size: var(--v-fontSize-corpsDeTexte);
|
|
109
107
|
padding: 10px 16px;
|
|
110
108
|
}
|
|
111
109
|
</style>
|
|
@@ -100,10 +100,8 @@
|
|
|
100
100
|
</template>
|
|
101
101
|
|
|
102
102
|
<style lang="scss" scoped>
|
|
103
|
-
@use '@/assets/tokens';
|
|
104
|
-
|
|
105
103
|
.v-badge :deep(.v-badge__badge) {
|
|
106
|
-
color:
|
|
104
|
+
color: rgb(var(--v-theme-cyan-darken40)) !important;
|
|
107
105
|
background-color: white;
|
|
108
106
|
}
|
|
109
107
|
|