@cnamts/synapse 1.0.24 → 1.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -5
- package/dist/{AutocompleteFilter-BWLR3U7W.js → AutocompleteFilter-D7qBuCAP.js} +1 -1
- package/dist/{AutocompleteFilter-D9jzRzAL.cjs → AutocompleteFilter-Df9i5mAl.cjs} +1 -1
- package/dist/{DateFilter-DTUl8hb1.cjs → DateFilter-BJD6FMev.cjs} +1 -1
- package/dist/{DateFilter-BpwFexzi.js → DateFilter-BitMWrMU.js} +1 -1
- package/dist/{NumberFilter-Bz_NTdX9.js → NumberFilter-BTLUxw0a.js} +1 -1
- package/dist/{NumberFilter-MAEojdk0.cjs → NumberFilter-DGCzCXzI.cjs} +1 -1
- package/dist/{PeriodFilter-DX_wy9g-.js → PeriodFilter-B5rUIPAC.js} +1 -1
- package/dist/{PeriodFilter-CC4WgIhl.cjs → PeriodFilter-DO_ecTZW.cjs} +1 -1
- package/dist/{SelectFilter-BR3fvl-a.cjs → SelectFilter-CGwcKWLm.cjs} +1 -1
- package/dist/{SelectFilter-xqiPtPgX.js → SelectFilter-l4QnRcuk.js} +2 -2
- package/dist/{TextFilter-CCfYFl5F.cjs → TextFilter-B8nf7xoK.cjs} +1 -1
- package/dist/{TextFilter-BBl3JFqK.js → TextFilter-C9hj6Qrp.js} +1 -1
- package/dist/apLightTheme-CEK4iY3f.cjs +1 -0
- package/dist/{apLightTheme-D1P4jcD0.js → apLightTheme-DnIM24Lv.js} +441 -722
- package/dist/components/Customs/Selects/SyAutocomplete/SyAutocomplete.d.ts +10 -6
- package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +3 -0
- package/dist/components/Customs/SyTabs/SyTabs.d.ts +13 -11
- package/dist/components/Customs/SyTextField/SyTextField.d.ts +4 -4
- package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +4 -24
- package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +2 -12
- package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +1 -6
- package/dist/components/DatePicker/composables/useDatePickerState.d.ts +1 -0
- 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/MonthPicker/MonthPicker.d.ts +1 -6
- package/dist/components/MonthPicker/MonthPickerText/MonthPickerInput.d.ts +1 -6
- package/dist/components/NirField/NirField.d.ts +4 -16
- package/dist/components/PeriodField/PeriodField.d.ts +8 -48
- package/dist/components/PhoneField/PhoneField.d.ts +1 -6
- 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 +2 -0
- package/dist/components/Tables/common/TableHeader.d.ts +5 -0
- 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/unifyValidation/documentationValidationProps.d.ts +230 -0
- package/dist/composables/validation/useValidation.d.ts +5 -1
- package/dist/design-system-v3.js +2 -2
- package/dist/design-system-v3.umd.cjs +1 -1
- package/dist/designTokens/tokens/amelipro/apColors.d.ts +10 -10
- package/dist/designTokens/tokens/amelipro/apColors2026.d.ts +1 -2
- package/dist/designTokens/tokens/amelipro/apContextual.d.ts +44 -0
- package/dist/designTokens/tokens/amelipro/apSemantic.d.ts +1 -1
- package/dist/designTokens/tokens/baseColors.d.ts +127 -0
- package/dist/designTokens/tokens/baseContextualTokens.d.ts +50 -0
- package/dist/designTokens/tokens/cnam/cnamColors.d.ts +10 -10
- package/dist/designTokens/tokens/cnam/cnamSemantic.d.ts +1 -1
- package/dist/designTokens/tokens/pa/paColors.d.ts +1 -166
- package/dist/designTokens/tokens/pa/paSemantic.d.ts +1 -1
- package/dist/designTokens/utils/buildColorClassMap.d.ts +12 -0
- package/dist/designTokens/utils/createFlattenTheme.d.ts +1 -3
- package/dist/designTokens/utils/index.d.ts +2 -2
- package/dist/main-ByDPHpae.cjs +1067 -0
- package/dist/main-Cpx8Co6H.js +38869 -0
- package/dist/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/dist/vuetifyConfig.umd.cjs +1 -1
- package/package.json +29 -18
- 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 +7 -11
- package/src/assets/overrides/_otp.scss +41 -0
- package/src/assets/overrides/_tables.scss +11 -20
- package/src/assets/overrides/_tooltips.scss +17 -7
- package/src/assets/overrides/_typography.scss +35 -37
- package/src/assets/overrides/_utilities.scss +43 -47
- package/src/assets/themes.scss +1 -0
- package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/AmeliproAccordionTemplate.vue +20 -20
- package/src/components/Amelipro/AmeliproAccordionFrieze/AmeliproAccordionFrieze.vue +12 -14
- package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.vue +4 -6
- package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/AmeliproAccordionResultTemplate.vue +5 -5
- package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.vue +4 -6
- package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.vue +4 -6
- package/src/components/Amelipro/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 +0 -2
- package/src/components/CopyBtn/CopyBtn.vue +1 -3
- package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.vue +17 -17
- package/src/components/Customs/Selects/SelectBtnField/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 +7 -3
- 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 +1 -39
- package/src/components/Customs/Selects/SySelect/SySelect.vue +263 -63
- package/src/components/Customs/Selects/SySelect/accessibilite/Accessibility.mdx +199 -269
- package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +35 -0
- package/src/components/Customs/SyCheckbox/SyCheckbox.mdx +5 -0
- package/src/components/Customs/SyCheckbox/SyCheckbox.vue +29 -0
- package/src/components/Customs/SyCheckbox/accessibilite/Accessibility.mdx +18 -3
- package/src/components/Customs/SyPagination/SyPagination.vue +0 -2
- package/src/components/Customs/SyTabs/SyTabs.mdx +0 -58
- package/src/components/Customs/SyTabs/SyTabs.stories.ts +32 -33
- package/src/components/Customs/SyTabs/SyTabs.vue +87 -67
- package/src/components/Customs/SyTabs/accessibilite/Accessibility.mdx +83 -23
- package/src/components/Customs/SyTabs/tests/SyTabs.a11y.spec.ts +88 -0
- package/src/components/Customs/SyTabs/tests/SyTabs.spec.ts +46 -1
- package/src/components/Customs/SyTextField/SyTextField.stories.ts +21 -41
- package/src/components/Customs/SyTextField/SyTextField.vue +4 -6
- package/src/components/DatePicker/CalendarMode/DatePicker.vue +12 -14
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +20 -16
- package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +23 -0
- package/src/components/DatePicker/DateTextInput/DateTextInput.vue +8 -10
- package/src/components/DatePicker/composables/tests/useDatePickerState.spec.ts +53 -0
- package/src/components/DatePicker/composables/useDatePickerState.ts +24 -0
- package/src/components/DatePicker/composables/useDateTextField.ts +0 -1
- package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +9 -8
- package/src/components/DatePicker/playground/DatePickerHolidayRule.vue +1 -1
- package/src/components/DialogBox/DialogBox.vue +3 -5
- package/src/components/DialogBox/tests/DialogBox.visual.cy.ts +76 -0
- package/src/components/DialogBox/tests/__snapshots__/dialog-box-custom-texts.snap.png +0 -0
- package/src/components/DialogBox/tests/__snapshots__/dialog-box-default.snap.png +0 -0
- package/src/components/DialogBox/tests/__snapshots__/dialog-box-no-actions.snap.png +0 -0
- package/src/components/FileList/FileList.vue +9 -2
- package/src/components/FileList/UploadItem/UploadItem.vue +11 -13
- package/src/components/FileList/tests/FileList.spec.ts +47 -0
- package/src/components/FileUpload/FileUpload.vue +3 -5
- package/src/components/FileUpload/FileUploadContent.vue +3 -5
- package/src/components/FilterInline/FilterInline.vue +1 -3
- package/src/components/FilterSideBar/FilterSideBar.mdx +44 -1
- package/src/components/FilterSideBar/FilterSideBar.stories.ts +105 -1
- package/src/components/FilterSideBar/FilterSideBar.vue +7 -0
- package/src/components/FilterSideBar/tests/FilterSideBar.a11y.spec.ts +54 -1
- package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +42 -0
- package/src/components/FooterBar/FooterBar.vue +9 -13
- package/src/components/FranceConnectBtn/FranceConnectBtn.vue +1 -1
- package/src/components/HeaderBar/HeaderBar.vue +2 -3
- package/src/components/HeaderBar/HeaderBurgerMenu/HeaderBurgerMenu.vue +2 -3
- package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/HeaderMenuItem.vue +2 -3
- package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuSection/HeaderMenuSection.vue +0 -1
- package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.vue +8 -9
- package/src/components/HeaderBar/HeaderBurgerMenu/menu.scss +0 -8
- package/src/components/HeaderBar/HeaderBurgerMenu/tests/HeaderBurgerMenu.visual.cy.ts +196 -0
- package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/header-burger-menu-generated-submenu-open.snap.png +0 -0
- package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/header-burger-menu-generated.snap.png +0 -0
- package/src/components/HeaderBar/HeaderLogo/HeaderLogo.vue +0 -1
- package/src/components/HeaderBar/HeaderMenuBtn/HeaderMenuBtn.vue +6 -7
- package/src/components/HeaderBar/tests/HeaderBar.visual.cy.ts +81 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-custom-width.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-default.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-no-sticky.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-prepend.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-side.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-subtitle.snap.png +0 -0
- package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +12 -3
- package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +15 -8
- package/src/components/HeaderToolbar/HeaderToolbar.vue +6 -7
- package/src/components/LangBtn/LangBtn.vue +2 -4
- package/src/components/Logo/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 +5 -7
- package/src/components/NotificationBar/NotificationBar.vue +1 -3
- package/src/components/PaginatedTable/PaginatedTable.vue +2 -3
- package/src/components/PaginatedTable/Pagination.vue +3 -5
- package/src/components/PasswordField/PasswordField.vue +8 -10
- package/src/components/PhoneField/PhoneField.vue +3 -3
- package/src/components/RangeField/RangeSlider/RangeSlider.vue +0 -2
- package/src/components/RangeField/RangeSlider/Tooltip/Tooltip.vue +1 -1
- package/src/components/RangeField/tests/RangeField.visual.cy.ts +65 -0
- package/src/components/RangeField/tests/__snapshots__/range-field-custom-bg.snap.png +0 -0
- package/src/components/RangeField/tests/__snapshots__/range-field-custom-range.snap.png +0 -0
- package/src/components/RangeField/tests/__snapshots__/range-field-default.snap.png +0 -0
- package/src/components/RangeField/tests/__snapshots__/range-field-step.snap.png +0 -0
- package/src/components/RangeField/tests/__snapshots__/range-field-with-label.snap.png +0 -0
- package/src/components/RatingPicker/EmotionPicker/EmotionPicker.vue +6 -8
- package/src/components/RatingPicker/StarsPicker/StarsPicker.vue +3 -5
- package/src/components/SearchListField/SearchListField.vue +0 -2
- package/src/components/SkipLink/SkipLink.vue +2 -4
- package/src/components/SocialMediaLinks/SocialMediaLinks.vue +6 -6
- package/src/components/SubHeader/SubHeader.vue +1 -1
- package/src/components/SyAlert/SyAlert.vue +7 -9
- package/src/components/SyAlert/tests/SyAlert.visual.cy.ts +46 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-closable.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-error.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-info.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-success.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-outlined.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-tonal.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-warning.snap.png +0 -0
- package/src/components/SyBtnMenu/SyBtnMenu.vue +2 -4
- package/src/components/TableToolbar/TableToolbar.vue +6 -8
- package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +166 -0
- package/src/components/Tables/SyServerTable/SyServerTable.vue +9 -7
- 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 +9 -7
- 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 +27 -2
- package/src/components/Tables/common/SyTablePagination.vue +142 -19
- package/src/components/Tables/common/TableHeader.vue +40 -3
- 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/unifyValidation/documentationValidationProps.ts +235 -0
- package/src/composables/validation/useValidation.ts +17 -1
- package/src/composantsVuetify/VBreadcrumbs/VBreadcrumbs.mdx +28 -0
- package/src/composantsVuetify/VBreadcrumbs/v-breadcrumbs.stories.ts +108 -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 +1 -1
- package/src/designTokens/tokens/amelipro/apSemantic.ts +1 -1
- package/src/designTokens/tokens/baseColors.ts +129 -0
- package/src/designTokens/tokens/baseContextualTokens.ts +52 -0
- package/src/designTokens/tokens/cnam/cnamColors.ts +3 -125
- package/src/designTokens/tokens/cnam/cnamContextual.ts +4 -48
- package/src/designTokens/tokens/cnam/cnamLightTheme.ts +1 -1
- package/src/designTokens/tokens/cnam/cnamSemantic.ts +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/AuditDesignSystem.mdx +0 -11
- package/src/stories/Accessibilite/DesignSystem/Avancement.mdx +433 -0
- package/src/stories/Accessibilite/DesignSystem/a11y-status.json +692 -0
- package/src/stories/Accessibilite/KitDePreAudit/Echantillonnage.mdx +8 -1
- package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +51 -10
- package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +16 -9
- package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +48 -58
- package/src/stories/Components/Components.stories.ts +40 -1
- 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/apLightTheme-CFSRrjv2.cjs +0 -1
- package/dist/designTokens/utils/convertGaps.d.ts +0 -5
- package/dist/main-BtTqyn4z.js +0 -38648
- package/dist/main-C1e3eoxd.cjs +0 -1067
- package/src/assets/apTokens.scss +0 -343
- package/src/assets/overrides/_container.scss +0 -36
- package/src/assets/tokens.scss +0 -388
- 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
|
@@ -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
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Controls, Canvas, Meta, Source } from '@storybook/blocks';
|
|
1
|
+
import { Controls, Canvas, Meta, Source, Description } from '@storybook/blocks';
|
|
2
2
|
import * as FilterSideBarStories from './FilterSideBar.stories.ts';
|
|
3
3
|
|
|
4
4
|
<Meta of={FilterSideBarStories} />
|
|
@@ -236,3 +236,46 @@ const professionList = [
|
|
|
236
236
|
`
|
|
237
237
|
}}
|
|
238
238
|
/>
|
|
239
|
+
|
|
240
|
+
## Gestion du z-index
|
|
241
|
+
|
|
242
|
+
Le `FilterSideBar` utilise un `VNavigationDrawer` de Vuetify dont le z-index par défaut est **1000**.
|
|
243
|
+
|
|
244
|
+
Dans la plupart des cas cette valeur convient. Deux situations particulières nécessitent de la surcharger via la prop `zIndex` :
|
|
245
|
+
|
|
246
|
+
<table>
|
|
247
|
+
<thead>
|
|
248
|
+
<tr>
|
|
249
|
+
<th>Situation</th>
|
|
250
|
+
<th>Valeur recommandée</th>
|
|
251
|
+
<th>Exemple</th>
|
|
252
|
+
</tr>
|
|
253
|
+
</thead>
|
|
254
|
+
<tbody>
|
|
255
|
+
<tr>
|
|
256
|
+
<td>Le FilterSideBar s'affiche <strong>dans</strong> une modale ou une bottom sheet et doit rester visible</td>
|
|
257
|
+
<td>z-index de la modale + 1 (ex. <code>2401</code>)</td>
|
|
258
|
+
<td>Filtres dans un <code>VDialog</code> (z-index 2400)</td>
|
|
259
|
+
</tr>
|
|
260
|
+
<tr>
|
|
261
|
+
<td>Une modale de confirmation doit s'afficher <strong>par-dessus</strong> un FilterSideBar ouvert</td>
|
|
262
|
+
<td>Laisser le FilterSideBar à <code>1000</code> (défaut) et laisser la modale à <code>2400</code></td>
|
|
263
|
+
<td>Dialog de confirmation sur une page avec FilterSideBar</td>
|
|
264
|
+
</tr>
|
|
265
|
+
</tbody>
|
|
266
|
+
</table>
|
|
267
|
+
|
|
268
|
+
> **Préconisation** : ne surchargez `zIndex` que lorsque c'est strictement nécessaire. Une valeur arbitraire élevée (ex. `9999`) peut masquer des composants systèmes (tooltips, snackbars) et crée des effets de bord difficiles à diagnostiquer.
|
|
269
|
+
|
|
270
|
+
<Description of={FilterSideBarStories.ZIndex} />
|
|
271
|
+
|
|
272
|
+
<Canvas of={FilterSideBarStories.ZIndex} />
|
|
273
|
+
|
|
274
|
+
<Source dark code={`
|
|
275
|
+
<FilterSideBar
|
|
276
|
+
v-model="filters"
|
|
277
|
+
:z-index="2401"
|
|
278
|
+
>
|
|
279
|
+
<!-- filtres -->
|
|
280
|
+
</FilterSideBar>
|
|
281
|
+
`} />
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/vue3'
|
|
2
2
|
import FilterSideBar from './FilterSideBar.vue'
|
|
3
3
|
import { fn } from '@storybook/test'
|
|
4
|
-
import { VDivider, VSelect } from 'vuetify/components'
|
|
4
|
+
import { VBtn, VDialog, VCard, VCardText, VCardActions, VDivider, VSelect } from 'vuetify/components'
|
|
5
5
|
import PeriodField from '../PeriodField/PeriodField.vue'
|
|
6
6
|
import SearchListField from '../SearchListField/SearchListField.vue'
|
|
7
7
|
import { ref } from 'vue'
|
|
@@ -74,6 +74,21 @@ const meta = {
|
|
|
74
74
|
},
|
|
75
75
|
},
|
|
76
76
|
},
|
|
77
|
+
'zIndex': {
|
|
78
|
+
description: 'Surcharge le z-index du panneau. À utiliser uniquement lorsque le FilterSideBar doit s\'afficher par-dessus ou en-dessous d\'un composant en surimpression (modale, bottom sheet…). Voir la section <em>Gestion du z-index</em> ci-dessous pour les préconisations.',
|
|
79
|
+
control: {
|
|
80
|
+
type: 'number',
|
|
81
|
+
},
|
|
82
|
+
table: {
|
|
83
|
+
category: 'props',
|
|
84
|
+
type: {
|
|
85
|
+
summary: 'number',
|
|
86
|
+
},
|
|
87
|
+
defaultValue: {
|
|
88
|
+
summary: 'undefined',
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
},
|
|
77
92
|
'onUpdate:modelValue': {
|
|
78
93
|
description: 'Événement déclenché lors de la mise à jour des filtres',
|
|
79
94
|
control: {
|
|
@@ -817,3 +832,92 @@ const professionList = [
|
|
|
817
832
|
],
|
|
818
833
|
},
|
|
819
834
|
}
|
|
835
|
+
|
|
836
|
+
export const ZIndex: Story = {
|
|
837
|
+
args: {
|
|
838
|
+
'onUpdate:modelValue': fn(),
|
|
839
|
+
},
|
|
840
|
+
decorators: [
|
|
841
|
+
() => ({
|
|
842
|
+
template: `
|
|
843
|
+
<VApp style="height: 600px; overflow-y: hidden;">
|
|
844
|
+
<div class="pa-4">
|
|
845
|
+
<story />
|
|
846
|
+
</div>
|
|
847
|
+
</VApp>
|
|
848
|
+
`,
|
|
849
|
+
}),
|
|
850
|
+
],
|
|
851
|
+
render: args => ({
|
|
852
|
+
components: { FilterSideBar, VBtn, VDialog, VCard, VCardText, VCardActions, VSelect, VDivider },
|
|
853
|
+
setup() {
|
|
854
|
+
const filters1 = ref([{ name: 'folder', title: 'Type de dossier' }])
|
|
855
|
+
const filters2 = ref([{ name: 'folder', title: 'Type de dossier' }])
|
|
856
|
+
|
|
857
|
+
const folderTypes = [
|
|
858
|
+
{ title: 'AT', value: 'at' },
|
|
859
|
+
{ title: 'MP', value: 'mp' },
|
|
860
|
+
{ title: 'Autre', value: 'other' },
|
|
861
|
+
]
|
|
862
|
+
|
|
863
|
+
const dialog1 = ref(false)
|
|
864
|
+
const dialog2 = ref(false)
|
|
865
|
+
|
|
866
|
+
return { args, filters1, filters2, folderTypes, dialog1, dialog2 }
|
|
867
|
+
},
|
|
868
|
+
template: `
|
|
869
|
+
<div>
|
|
870
|
+
<p class="text-subtitle-2 mb-2">Sans zIndex — la modale s'affiche par-dessus le panneau (comportement par défaut)</p>
|
|
871
|
+
<div class="d-flex align-center ga-4 mb-6">
|
|
872
|
+
<FilterSideBar v-bind="args" v-model="filters1">
|
|
873
|
+
<template #folder="{ props }">
|
|
874
|
+
<VSelect v-bind="props" :items="folderTypes" label="Type de dossier" multiple variant="outlined" return-object hide-details color="primary" />
|
|
875
|
+
</template>
|
|
876
|
+
</FilterSideBar>
|
|
877
|
+
<VBtn color="primary" variant="outlined" @click="dialog1 = true">
|
|
878
|
+
Ouvrir une modale de confirmation
|
|
879
|
+
</VBtn>
|
|
880
|
+
</div>
|
|
881
|
+
<VDialog v-model="dialog1" max-width="400">
|
|
882
|
+
<VCard>
|
|
883
|
+
<VCardText>Confirmez-vous la réinitialisation des filtres ?</VCardText>
|
|
884
|
+
<VCardActions class="justify-end">
|
|
885
|
+
<VBtn variant="text" @click="dialog1 = false">Annuler</VBtn>
|
|
886
|
+
<VBtn color="primary" variant="elevated" @click="dialog1 = false">Confirmer</VBtn>
|
|
887
|
+
</VCardActions>
|
|
888
|
+
</VCard>
|
|
889
|
+
</VDialog>
|
|
890
|
+
|
|
891
|
+
<VDivider class="mb-6" />
|
|
892
|
+
|
|
893
|
+
<p class="text-subtitle-2 mb-2">Avec zIndex="2401" — le panneau s'affiche par-dessus la modale</p>
|
|
894
|
+
<div class="d-flex align-center ga-4">
|
|
895
|
+
<FilterSideBar v-bind="args" v-model="filters2" :z-index="2401">
|
|
896
|
+
<template #folder="{ props }">
|
|
897
|
+
<VSelect v-bind="props" :items="folderTypes" label="Type de dossier" multiple variant="outlined" return-object hide-details color="primary" />
|
|
898
|
+
</template>
|
|
899
|
+
</FilterSideBar>
|
|
900
|
+
<VBtn color="primary" variant="outlined" @click="dialog2 = true">
|
|
901
|
+
Ouvrir une modale de confirmation
|
|
902
|
+
</VBtn>
|
|
903
|
+
</div>
|
|
904
|
+
<VDialog v-model="dialog2" max-width="400">
|
|
905
|
+
<VCard>
|
|
906
|
+
<VCardText>Confirmez-vous la réinitialisation des filtres ?</VCardText>
|
|
907
|
+
<VCardActions class="justify-end">
|
|
908
|
+
<VBtn variant="text" @click="dialog2 = false">Annuler</VBtn>
|
|
909
|
+
<VBtn color="primary" variant="elevated" @click="dialog2 = false">Confirmer</VBtn>
|
|
910
|
+
</VCardActions>
|
|
911
|
+
</VCard>
|
|
912
|
+
</VDialog>
|
|
913
|
+
</div>
|
|
914
|
+
`,
|
|
915
|
+
}),
|
|
916
|
+
parameters: {
|
|
917
|
+
docs: {
|
|
918
|
+
description: {
|
|
919
|
+
story: 'Deux exemples côte à côte : sans <code>zIndex</code>, la modale s\'affiche par-dessus le panneau (comportement par défaut) ; avec <code>zIndex: 2401</code>, le panneau passe au premier plan.',
|
|
920
|
+
},
|
|
921
|
+
},
|
|
922
|
+
},
|
|
923
|
+
}
|
|
@@ -13,10 +13,12 @@
|
|
|
13
13
|
modelValue?: FilterProp
|
|
14
14
|
modale?: boolean
|
|
15
15
|
locales?: typeof defaultLocales
|
|
16
|
+
zIndex?: number
|
|
16
17
|
}>(), {
|
|
17
18
|
modelValue: () => [],
|
|
18
19
|
modale: false,
|
|
19
20
|
locales: () => defaultLocales,
|
|
21
|
+
zIndex: undefined,
|
|
20
22
|
})
|
|
21
23
|
|
|
22
24
|
const emits = defineEmits<{
|
|
@@ -42,6 +44,10 @@
|
|
|
42
44
|
}, 0)
|
|
43
45
|
})
|
|
44
46
|
|
|
47
|
+
const zIndexStyle = computed(() =>
|
|
48
|
+
props.zIndex != null ? { zIndex: props.zIndex } : undefined,
|
|
49
|
+
)
|
|
50
|
+
|
|
45
51
|
const drawerRef = ref<VNavigationDrawer | null>(null)
|
|
46
52
|
const drawerBtnRef = ref<VBtn | null>(null)
|
|
47
53
|
|
|
@@ -122,6 +128,7 @@
|
|
|
122
128
|
:inert="drawer ? undefined : 'true'"
|
|
123
129
|
:aria-modal="props.modale"
|
|
124
130
|
:aria-label="locales.modaleLabel"
|
|
131
|
+
:style="zIndexStyle"
|
|
125
132
|
@keydown.escape.prevent="drawer = false"
|
|
126
133
|
>
|
|
127
134
|
<form
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// @vitest-environment jsdom
|
|
2
|
+
/* eslint-disable vue/one-component-per-file */
|
|
2
3
|
|
|
3
4
|
import { describe, it } from 'vitest'
|
|
4
5
|
import { mount } from '@vue/test-utils'
|
|
@@ -42,7 +43,6 @@ describe('FilterSideBar – accessibility (axe)', () => {
|
|
|
42
43
|
attachTo: document.body,
|
|
43
44
|
})
|
|
44
45
|
|
|
45
|
-
// Ouvrir le tiroir de filtres
|
|
46
46
|
const toggleButton = wrapper.find('.sy-filters-side-bar .v-btn__content')
|
|
47
47
|
if (toggleButton.exists()) {
|
|
48
48
|
await toggleButton.trigger('click')
|
|
@@ -56,4 +56,57 @@ describe('FilterSideBar – accessibility (axe)', () => {
|
|
|
56
56
|
|
|
57
57
|
wrapper.unmount()
|
|
58
58
|
})
|
|
59
|
+
|
|
60
|
+
it('has no obvious axe violations in modal mode with drawer open', async () => {
|
|
61
|
+
const wrapper = mount(
|
|
62
|
+
defineComponent({
|
|
63
|
+
components: { VApp, FiltersSideBar: FilterSideBar },
|
|
64
|
+
data() {
|
|
65
|
+
return {
|
|
66
|
+
localModelValue: [{ name: 'name', title: 'Nom' }],
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
template: `
|
|
70
|
+
<VApp>
|
|
71
|
+
<FiltersSideBar v-model="localModelValue" :modale="true" />
|
|
72
|
+
</VApp>
|
|
73
|
+
`,
|
|
74
|
+
}),
|
|
75
|
+
{
|
|
76
|
+
global: {
|
|
77
|
+
stubs: { Teleport: true },
|
|
78
|
+
},
|
|
79
|
+
attachTo: document.body,
|
|
80
|
+
},
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
const toggleButton = wrapper.find('.sy-filters-side-bar .v-btn__content')
|
|
84
|
+
if (toggleButton.exists()) {
|
|
85
|
+
await toggleButton.trigger('click')
|
|
86
|
+
await wrapper.vm.$nextTick()
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const results = await axe(wrapper.element as HTMLElement)
|
|
90
|
+
assertNoA11yViolations(results, 'FilterSideBar – modal mode, drawer open', {
|
|
91
|
+
ignoreRules: ['region'],
|
|
92
|
+
})
|
|
93
|
+
|
|
94
|
+
wrapper.unmount()
|
|
95
|
+
})
|
|
96
|
+
|
|
97
|
+
it('has no obvious axe violations with drawer closed', async () => {
|
|
98
|
+
const wrapper = mount(TestA11yComponent, {
|
|
99
|
+
global: {
|
|
100
|
+
stubs: { Teleport: true },
|
|
101
|
+
},
|
|
102
|
+
attachTo: document.body,
|
|
103
|
+
})
|
|
104
|
+
|
|
105
|
+
const results = await axe(wrapper.element as HTMLElement)
|
|
106
|
+
assertNoA11yViolations(results, 'FilterSideBar – drawer closed', {
|
|
107
|
+
ignoreRules: ['region'],
|
|
108
|
+
})
|
|
109
|
+
|
|
110
|
+
wrapper.unmount()
|
|
111
|
+
})
|
|
59
112
|
})
|
|
@@ -328,4 +328,46 @@ describe('FilterSideBar', () => {
|
|
|
328
328
|
|
|
329
329
|
expect(wrapper.emitted('update:modelValue')).toBeUndefined()
|
|
330
330
|
})
|
|
331
|
+
|
|
332
|
+
it('applies zIndex as inline style on the navigation drawer when provided', () => {
|
|
333
|
+
const wrapper = mount(
|
|
334
|
+
defineComponent({
|
|
335
|
+
components: { VApp, FiltersSideBar: FilterSideBar },
|
|
336
|
+
template: `
|
|
337
|
+
<VApp>
|
|
338
|
+
<FiltersSideBar :model-value="[]" :z-index="2401" />
|
|
339
|
+
</VApp>
|
|
340
|
+
`,
|
|
341
|
+
}),
|
|
342
|
+
{
|
|
343
|
+
global: {
|
|
344
|
+
stubs: { Teleport: true },
|
|
345
|
+
},
|
|
346
|
+
},
|
|
347
|
+
)
|
|
348
|
+
|
|
349
|
+
const drawer = wrapper.find('.v-navigation-drawer')
|
|
350
|
+
expect(drawer.attributes('style')).toContain('z-index: 2401')
|
|
351
|
+
})
|
|
352
|
+
|
|
353
|
+
it('does not apply zIndex style on the navigation drawer when not provided', () => {
|
|
354
|
+
const wrapper = mount(
|
|
355
|
+
defineComponent({
|
|
356
|
+
components: { VApp, FiltersSideBar: FilterSideBar },
|
|
357
|
+
template: `
|
|
358
|
+
<VApp>
|
|
359
|
+
<FiltersSideBar :model-value="[]" />
|
|
360
|
+
</VApp>
|
|
361
|
+
`,
|
|
362
|
+
}),
|
|
363
|
+
{
|
|
364
|
+
global: {
|
|
365
|
+
stubs: { Teleport: true },
|
|
366
|
+
},
|
|
367
|
+
},
|
|
368
|
+
)
|
|
369
|
+
|
|
370
|
+
const drawer = wrapper.find('.v-navigation-drawer')
|
|
371
|
+
expect(drawer.attributes('style') ?? '').not.toContain('z-index: 2401')
|
|
372
|
+
})
|
|
331
373
|
})
|
|
@@ -290,10 +290,6 @@
|
|
|
290
290
|
</template>
|
|
291
291
|
|
|
292
292
|
<style lang="scss" scoped>
|
|
293
|
-
@use '@/assets/tokens';
|
|
294
|
-
|
|
295
|
-
$white: #fff;
|
|
296
|
-
|
|
297
293
|
a {
|
|
298
294
|
cursor: pointer;
|
|
299
295
|
}
|
|
@@ -334,7 +330,7 @@ a {
|
|
|
334
330
|
}
|
|
335
331
|
|
|
336
332
|
a.v-btn {
|
|
337
|
-
border-radius: var(
|
|
333
|
+
border-radius: var(--v-radius-rounded) !important;
|
|
338
334
|
}
|
|
339
335
|
|
|
340
336
|
a.v-btn:hover {
|
|
@@ -343,7 +339,7 @@ a {
|
|
|
343
339
|
}
|
|
344
340
|
|
|
345
341
|
.back-to-top {
|
|
346
|
-
border-radius: var(
|
|
342
|
+
border-radius: var(--v-radius-rounded) !important;
|
|
347
343
|
}
|
|
348
344
|
|
|
349
345
|
button.v-btn:hover {
|
|
@@ -367,32 +363,32 @@ a {
|
|
|
367
363
|
.vd-footer-bar.v-theme--dark :deep() {
|
|
368
364
|
.vd-footer-bar-links li,
|
|
369
365
|
.vd-footer-bar-links a {
|
|
370
|
-
color:
|
|
366
|
+
color: rgb(var(--v-theme-textOnDark));
|
|
371
367
|
|
|
372
368
|
&.version {
|
|
373
|
-
color:
|
|
369
|
+
color: rgb(var(--v-theme-textSubduedOnDark));
|
|
374
370
|
}
|
|
375
371
|
}
|
|
376
372
|
|
|
377
373
|
p,
|
|
378
374
|
.text--primary {
|
|
379
|
-
color: rgba(
|
|
375
|
+
color: rgba(var(--v-theme-textOnDark), 0.87);
|
|
380
376
|
}
|
|
381
377
|
|
|
382
378
|
.text--secondary {
|
|
383
|
-
color: rgba(
|
|
379
|
+
color: rgba(var(--v-theme-textOnDark), 0.6);
|
|
384
380
|
}
|
|
385
381
|
|
|
386
382
|
a.text--primary {
|
|
387
|
-
color:
|
|
383
|
+
color: rgb(var(--v-theme-textOnDark));
|
|
388
384
|
}
|
|
389
385
|
|
|
390
386
|
.v-divider {
|
|
391
|
-
border-color: rgba(
|
|
387
|
+
border-color: rgba(var(--v-theme-borderSubdued), 1);
|
|
392
388
|
}
|
|
393
389
|
|
|
394
390
|
svg {
|
|
395
|
-
fill:
|
|
391
|
+
fill: rgb(var(--v-theme-textOnDark));
|
|
396
392
|
}
|
|
397
393
|
}
|
|
398
394
|
|
|
@@ -240,11 +240,10 @@
|
|
|
240
240
|
</template>
|
|
241
241
|
|
|
242
242
|
<style lang="scss" scoped>
|
|
243
|
-
@use '@/assets/tokens.scss' as *;
|
|
244
243
|
@use './consts' as *;
|
|
245
244
|
|
|
246
245
|
.global-container {
|
|
247
|
-
background-color:
|
|
246
|
+
background-color: rgb(var(--v-theme-surface));
|
|
248
247
|
}
|
|
249
248
|
|
|
250
249
|
.header {
|
|
@@ -263,7 +262,7 @@
|
|
|
263
262
|
height: $header-height;
|
|
264
263
|
max-width: v-bind(width);
|
|
265
264
|
margin: 0 auto;
|
|
266
|
-
border-bottom: solid 1px
|
|
265
|
+
border-bottom: solid 1px rgb(var(--v-theme-blue-lighten80));
|
|
267
266
|
}
|
|
268
267
|
|
|
269
268
|
.header-side {
|
|
@@ -131,7 +131,6 @@
|
|
|
131
131
|
</template>
|
|
132
132
|
|
|
133
133
|
<style lang="scss" scoped>
|
|
134
|
-
@use '@/assets/tokens.scss' as *;
|
|
135
134
|
@use '../consts' as *;
|
|
136
135
|
|
|
137
136
|
.overlay {
|
|
@@ -144,7 +143,7 @@
|
|
|
144
143
|
|
|
145
144
|
.menu-wrapper {
|
|
146
145
|
height: 100dvh;
|
|
147
|
-
background-color:
|
|
146
|
+
background-color: rgb(var(--v-theme-surface));
|
|
148
147
|
display: flex;
|
|
149
148
|
flex-direction: column;
|
|
150
149
|
}
|
|
@@ -172,7 +171,7 @@
|
|
|
172
171
|
}
|
|
173
172
|
|
|
174
173
|
.header-menu {
|
|
175
|
-
background-color:
|
|
174
|
+
background-color: rgb(var(--v-theme-surface));
|
|
176
175
|
overflow: hidden auto;
|
|
177
176
|
height: 100%;
|
|
178
177
|
}
|
|
@@ -20,7 +20,6 @@
|
|
|
20
20
|
</template>
|
|
21
21
|
|
|
22
22
|
<style lang="scss" scoped>
|
|
23
|
-
@use '@/assets/tokens.scss' as *;
|
|
24
23
|
@use '../menu';
|
|
25
24
|
|
|
26
25
|
.header-menu-item {
|
|
@@ -56,10 +55,10 @@
|
|
|
56
55
|
|
|
57
56
|
.header-menu-item:hover {
|
|
58
57
|
background-color: rgb(var(--v-theme-primary));
|
|
59
|
-
color:
|
|
58
|
+
color: rgb(var(--v-theme-textOnDark));
|
|
60
59
|
|
|
61
60
|
> :deep(a > *) {
|
|
62
|
-
color:
|
|
61
|
+
color: rgb(var(--v-theme-textOnDark)) !important;
|
|
63
62
|
}
|
|
64
63
|
}
|
|
65
64
|
</style>
|
|
@@ -93,7 +93,6 @@
|
|
|
93
93
|
</template>
|
|
94
94
|
|
|
95
95
|
<style lang="scss" scoped>
|
|
96
|
-
@use '@/assets/tokens.scss' as *;
|
|
97
96
|
@use '../../consts' as *;
|
|
98
97
|
@use '../menu';
|
|
99
98
|
|
|
@@ -112,11 +111,11 @@
|
|
|
112
111
|
|
|
113
112
|
&:hover {
|
|
114
113
|
background-color: rgb(var(--v-theme-primary));
|
|
115
|
-
color:
|
|
114
|
+
color: rgb(var(--v-theme-textOnDark));
|
|
116
115
|
text-decoration: underline;
|
|
117
116
|
|
|
118
117
|
> :deep(*) {
|
|
119
|
-
color:
|
|
118
|
+
color: rgb(var(--v-theme-textOnDark)) !important;
|
|
120
119
|
}
|
|
121
120
|
}
|
|
122
121
|
|
|
@@ -140,7 +139,7 @@
|
|
|
140
139
|
width: 100%;
|
|
141
140
|
height: 100%;
|
|
142
141
|
overflow-y: auto;
|
|
143
|
-
background-color:
|
|
142
|
+
background-color: rgb(var(--v-theme-surface));
|
|
144
143
|
padding-top: 40px;
|
|
145
144
|
z-index: 10;
|
|
146
145
|
}
|
|
@@ -153,14 +152,14 @@
|
|
|
153
152
|
.sub-menu--open > .sub-menu-btn {
|
|
154
153
|
padding: 0 16px 8px 40px;
|
|
155
154
|
border-bottom: 1px solid $menu-border-color;
|
|
156
|
-
color:
|
|
155
|
+
color: rgb(var(--v-theme-textBase));
|
|
157
156
|
background-color: transparent;
|
|
158
157
|
|
|
159
158
|
&:hover {
|
|
160
|
-
color:
|
|
159
|
+
color: rgb(var(--v-theme-textBase));
|
|
161
160
|
|
|
162
161
|
> :deep(*) {
|
|
163
|
-
color:
|
|
162
|
+
color: rgb(var(--v-theme-textBase)) !important;
|
|
164
163
|
}
|
|
165
164
|
}
|
|
166
165
|
}
|
|
@@ -178,11 +177,11 @@
|
|
|
178
177
|
|
|
179
178
|
.sub-menu--open > .sub-menu-btn {
|
|
180
179
|
background-color: rgb(var(--v-theme-primary));
|
|
181
|
-
color:
|
|
180
|
+
color: rgb(var(--v-theme-textOnDark));
|
|
182
181
|
transition: color 0.15s linear, background-color 0.15s linear;
|
|
183
182
|
|
|
184
183
|
> :deep(*) {
|
|
185
|
-
color:
|
|
184
|
+
color: rgb(var(--v-theme-textOnDark)) !important;
|
|
186
185
|
}
|
|
187
186
|
}
|
|
188
187
|
|
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
@use 'sass:color';
|
|
2
|
-
@use '@/assets/tokens';
|
|
3
|
-
|
|
4
|
-
$red: color.channel(tokens.$primary-base, 'red');
|
|
5
|
-
$green: color.channel(tokens.$primary-base, 'green');
|
|
6
|
-
$blue: color.channel(tokens.$primary-base, 'blue');
|
|
7
|
-
$primary: $red, $green, $blue;
|
|
8
|
-
|
|
9
1
|
@mixin item-focused() {
|
|
10
2
|
position: relative;
|
|
11
3
|
|