@cnamts/synapse 1.0.21 → 1.0.23

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.
Files changed (449) hide show
  1. package/dist/{DateFilter-uN8OURoP.js → DateFilter-Dc-gSGwk.js} +29 -24
  2. package/dist/{NumberFilter-sm1dQNQi.js → NumberFilter-vP38Wp6j.js} +1 -1
  3. package/dist/{PeriodFilter-Cklsxnh9.js → PeriodFilter-Ba1uYUnT.js} +1 -1
  4. package/dist/{SelectFilter-CWefj27Z.js → SelectFilter-BioGT6Nn.js} +1 -1
  5. package/dist/{TextFilter-Ddyj885L.js → TextFilter-B84dpnoq.js} +1 -1
  6. package/dist/components/Accordion/Accordion.d.ts +13 -2
  7. package/dist/components/Accordion/composables/useAccordionState.d.ts +2 -1
  8. package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +7405 -5973
  9. package/dist/components/Amelipro/AmeliproBtn/AmeliproBtn.d.ts +1 -1
  10. package/dist/components/Amelipro/AmeliproCallback/AmeliproCallback.d.ts +1 -1
  11. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarousel.d.ts +10 -14
  12. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarouselItem/AmeliproCarouselItem.d.ts +1 -1
  13. package/dist/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.d.ts +1 -1
  14. package/dist/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.d.ts +1 -1
  15. package/dist/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.d.ts +1 -1
  16. package/dist/components/Amelipro/AmeliproFooter/AmeliproFooter.d.ts +8 -8
  17. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeader.d.ts +3 -3
  18. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBar.d.ts +1 -1
  19. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/AmeliproHeaderBrandSection.d.ts +1 -1
  20. package/dist/components/Amelipro/AmeliproIcon/AmeliproIcon.d.ts +1 -1
  21. package/dist/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.d.ts +16 -20
  22. package/dist/components/Amelipro/AmeliproMenu/AmeliproMenu.d.ts +1 -1
  23. package/dist/components/Amelipro/AmeliproPagination/AmeliproPaginationBtn/AmeliproPaginationBtn.d.ts +1 -1
  24. package/dist/components/Amelipro/AmeliproPatientBanner/AmeliproPatientBanner.d.ts +1 -1
  25. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.d.ts +1610 -1354
  26. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.d.ts +2413 -2029
  27. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +8885 -7323
  28. package/dist/components/Amelipro/AmeliproStateTile/AmeliproStateTile.d.ts +1 -1
  29. package/dist/components/Amelipro/AmeliproStepper/AmeliproStepper.d.ts +2 -6
  30. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +8884 -7330
  31. package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +950 -838
  32. package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +1614 -1358
  33. package/dist/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.d.ts +223 -203
  34. package/dist/components/Amelipro/AmeliproTransmission/AmeliproTransmission.d.ts +3 -3
  35. package/dist/components/Amelipro/StructureMenu/StructureTabs/StructureTabs.d.ts +3 -7
  36. package/dist/components/CollapsibleList/CollapsibleList.d.ts +4 -1
  37. package/dist/components/CookieBanner/CookieBanner.d.ts +303 -273
  38. package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +1297 -1156
  39. package/dist/components/CookiesSelection/CookiesSelection.d.ts +404 -377
  40. package/dist/components/Customs/Selects/SelectBtnField/SelectBtnField.d.ts +1 -1
  41. package/dist/components/Customs/Selects/SyAutocomplete/SyAutocomplete.d.ts +1108 -846
  42. package/dist/components/Customs/Selects/SyAutocomplete/locales.d.ts +5 -0
  43. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +514 -320
  44. package/dist/components/Customs/Selects/SySelect/locales.d.ts +1 -0
  45. package/dist/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.d.ts +40 -38
  46. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +920 -800
  47. package/dist/components/Customs/SyForm/SyForm.d.ts +356 -348
  48. package/dist/components/Customs/SyPagination/SyPagination.d.ts +11 -1
  49. package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +906 -794
  50. package/dist/components/Customs/SyTextField/SyTextField.d.ts +1634 -1367
  51. package/dist/components/DataList/DataList.d.ts +1 -1
  52. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +3869 -3120
  53. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +1947 -1561
  54. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +831 -684
  55. package/dist/components/DialogBox/DialogBox.d.ts +482 -416
  56. package/dist/components/DownloadBtn/config.d.ts +1 -1
  57. package/dist/components/ErrorPage/ErrorPage.d.ts +6 -0
  58. package/dist/components/FileList/UploadItem/UploadItem.d.ts +6 -0
  59. package/dist/components/FileList/UploadItem/locales.d.ts +1 -0
  60. package/dist/components/FileUpload/FileUpload.d.ts +4 -4
  61. package/dist/components/FileUpload/FileUploadContent.d.ts +2 -0
  62. package/dist/components/FileUpload/locales.d.ts +1 -0
  63. package/dist/components/FileUpload/validateFiles.d.ts +2 -1
  64. package/dist/components/FilterSideBar/FilterSideBar.d.ts +418 -366
  65. package/dist/components/FooterBar/FooterBar.d.ts +13 -1
  66. package/dist/components/FooterBar/locales.d.ts +1 -0
  67. package/dist/components/FooterBar/types.d.ts +1 -0
  68. package/dist/components/HeaderBar/HeaderBar.d.ts +2 -0
  69. package/dist/components/HeaderBar/HeaderLogo/HeaderLogo.d.ts +2 -0
  70. package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +4 -6
  71. package/dist/components/HeaderToolbar/HeaderToolbar.d.ts +1031 -643
  72. package/dist/components/LangBtn/LangBtn.d.ts +277 -239
  73. package/dist/components/LogoBrandSection/LogoBrandSection.d.ts +4 -0
  74. package/dist/components/MaintenancePage/MaintenancePage.d.ts +16 -1
  75. package/dist/components/MonthPicker/MonthPicker.d.ts +1939 -0
  76. package/dist/components/MonthPicker/MonthPickerText/MonthPickerInput.d.ts +1899 -0
  77. package/dist/components/MonthPicker/MonthPickerText/useTextField.d.ts +21 -0
  78. package/dist/components/MonthPicker/MonthPickerVisual/MonthPickerVisual.d.ts +21 -0
  79. package/dist/components/MonthPicker/MonthPickerVisual/MonthPickerVisualProps.d.ts +12 -0
  80. package/dist/components/MonthPicker/MonthPickerVisual/MonthSelector.d.ts +11 -0
  81. package/dist/components/MonthPicker/MonthPickerVisual/VisualPickerFooter.d.ts +6 -0
  82. package/dist/components/MonthPicker/MonthPickerVisual/VisualPickerHeader.d.ts +14 -0
  83. package/dist/components/MonthPicker/MonthPickerVisual/YearSelector.d.ts +14 -0
  84. package/dist/components/MonthPicker/MonthPickerVisual/useMonthGrid.d.ts +9 -0
  85. package/dist/components/MonthPicker/MonthPickerVisual/useYearGrid.d.ts +8 -0
  86. package/dist/components/MonthPicker/MonthPickerVisual/utils.d.ts +8 -0
  87. package/dist/components/MonthPicker/locales.d.ts +12 -0
  88. package/dist/components/MonthPicker/useMonthPickerValidation.d.ts +25 -0
  89. package/dist/components/NirField/NirField.d.ts +1669 -1379
  90. package/dist/components/NotFoundPage/NotFoundPage.d.ts +9 -3
  91. package/dist/components/NotificationBar/Notification/Notification.d.ts +3 -0
  92. package/dist/components/PageContainer/PageContainer.d.ts +3 -1
  93. package/dist/components/PeriodField/PeriodField.d.ts +7696 -6192
  94. package/dist/components/PhoneField/PhoneField.d.ts +829 -684
  95. package/dist/components/RangeField/RangeSlider/RangeSlider.d.ts +4 -12
  96. package/dist/components/StatusPage/StatusPage.d.ts +12 -1
  97. package/dist/components/SubHeader/SubHeader.d.ts +2 -0
  98. package/dist/components/SyAlert/SyAlert.d.ts +74 -70
  99. package/dist/components/SyBtnMenu/SyBtnMenu.d.ts +9 -0
  100. package/dist/components/SyHeading/SyHeading.a11y.test.d.ts +1 -0
  101. package/dist/components/SyHeading/SyHeading.d.ts +22 -0
  102. package/dist/components/SyHeading/SyHeading.test.d.ts +1 -0
  103. package/dist/components/SyTextArea/SyTextArea.d.ts +475 -419
  104. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +759 -468
  105. package/dist/components/Tables/SyTable/SyTable.d.ts +761 -470
  106. package/dist/components/Tables/common/SyTableFilter.d.ts +1 -1
  107. package/dist/components/Tables/common/SyTablePagination.d.ts +263 -164
  108. package/dist/components/Tables/common/filters/DateFilter.d.ts +10 -1
  109. package/dist/components/Tables/common/filters/NumberFilter.d.ts +1 -1
  110. package/dist/components/Tables/common/filters/PeriodFilter.d.ts +1 -1
  111. package/dist/components/Tables/common/filters/SelectFilter.d.ts +1 -1
  112. package/dist/components/Tables/common/filters/TextFilter.d.ts +1 -1
  113. package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +166 -138
  114. package/dist/components/Tables/common/types.d.ts +2 -0
  115. package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +24 -1211
  116. package/dist/components/UserMenuBtn/UserMenuBtn.d.ts +1 -0
  117. package/dist/components/index.d.ts +2 -0
  118. package/dist/components/types.d.ts +2 -0
  119. package/dist/design-system-v3.js +111 -107
  120. package/dist/design-system-v3.umd.cjs +158 -158
  121. package/dist/designTokens/tokens/amelipro/apLightTheme.d.ts +26 -14
  122. package/dist/designTokens/tokens/amelipro/apSemantic.d.ts +19 -13
  123. package/dist/designTokens/tokens/cnam/cnamContextual.d.ts +5 -0
  124. package/dist/designTokens/tokens/cnam/cnamLightTheme.d.ts +28 -15
  125. package/dist/designTokens/tokens/cnam/cnamSemantic.d.ts +20 -13
  126. package/dist/designTokens/tokens/pa/paLightTheme.d.ts +26 -15
  127. package/dist/designTokens/tokens/pa/paSemantic.d.ts +19 -13
  128. package/dist/main-aLKwdMi1.js +37886 -0
  129. package/dist/main.d.ts +1 -0
  130. package/dist/style.css +1 -1
  131. package/dist/vuetifyConfig.d.ts +14 -14
  132. package/package.json +21 -9
  133. package/src/assets/amelipro/img/logo-amelipro.svg +9 -0
  134. package/src/assets/apTokens.scss +53 -17
  135. package/src/assets/overrides/_btns.scss +8 -0
  136. package/src/assets/overrides/_forms.scss +9 -0
  137. package/src/assets/overrides/_icons.scss +43 -4
  138. package/src/assets/overrides/_tables.scss +19 -0
  139. package/src/assets/overrides/_tooltips.scss +5 -6
  140. package/src/assets/overrides/_typography.scss +17 -2
  141. package/src/assets/overrides/_utilities.scss +49 -3
  142. package/src/assets/tokens.scss +53 -17
  143. package/src/components/Accordion/Accordion.mdx +23 -9
  144. package/src/components/Accordion/Accordion.stories.ts +153 -3
  145. package/src/components/Accordion/Accordion.vue +7 -6
  146. package/src/components/Accordion/accessibilite/Accessibility.mdx +5 -4
  147. package/src/components/Accordion/composables/__tests__/useAccordionState.spec.ts +40 -12
  148. package/src/components/Accordion/composables/useAccordionState.ts +3 -4
  149. package/src/components/Accordion/tests/accordion.spec.ts +131 -19
  150. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/AmeliproAccordionTemplate.vue +2 -2
  151. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/__tests__/__snapshots__/AmeliproAccordionTemplate.spec.ts.snap +0 -2
  152. package/src/components/Amelipro/AmeliproAccordionFrieze/AmeliproAccordionFrieze.vue +2 -2
  153. package/src/components/Amelipro/AmeliproAccordionFrieze/__tests__/__snapshots__/AmeliproAccordionFrieze.spec.ts.snap +14 -56
  154. package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.vue +1 -1
  155. package/src/components/Amelipro/AmeliproAccordionList/__tests__/__snapshots__/AmeliproAccordionList.spec.ts.snap +15 -23
  156. package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.vue +1 -1
  157. package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/__snapshots__/AmeliproAccordionResultList.spec.ts.snap +15 -3
  158. package/src/components/Amelipro/AmeliproCarousel/__tests__/__snapshots__/AmeliproCarousel.spec.ts.snap +0 -2
  159. package/src/components/Amelipro/AmeliproClickableTile/tests/__snapshots__/AmeliproClickableTile.spec.ts.snap +0 -98
  160. package/src/components/Amelipro/AmeliproContentLayout/AmeliproContentLayout.mdx +1 -1
  161. package/src/components/Amelipro/AmeliproContentLayout/AmeliproContentLayout.stories.ts +5 -16
  162. package/src/components/Amelipro/AmeliproCopyBtn/AmeliproCopyBtn.mdx +3 -1
  163. package/src/components/Amelipro/AmeliproCopyBtn/AmeliproCopyBtn.stories.ts +7 -0
  164. package/src/components/Amelipro/AmeliproDentalChart/AmeliproTooth/AmeliproTooth.vue +0 -1
  165. package/src/components/Amelipro/AmeliproDentalChart/AmeliproTooth/tests/__snapshots__/AmeliproTooth.spec.ts.snap +0 -1
  166. package/src/components/Amelipro/AmeliproDentalChart/tests/__snapshots__/AmeliproDentalChart.spec.ts.snap +0 -52
  167. package/src/components/Amelipro/AmeliproDialog/__tests__/__snapshots__/AmeliproDialog.spec.ts.snap +6 -0
  168. package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.mdx +3 -1
  169. package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.stories.ts +19 -0
  170. package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.vue +2 -2
  171. package/src/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.vue +3 -4
  172. package/src/components/Amelipro/AmeliproFirstLogin/__tests__/__snapshots__/AmeliproFirstLogin.spec.ts.snap +2 -13
  173. package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.mdx +3 -1
  174. package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.stories.ts +7 -0
  175. package/src/components/Amelipro/AmeliproMenu/__tests__/__snapshots__/AmeliproMenu.spec.ts.snap +8 -0
  176. package/src/components/Amelipro/AmeliproPagination/AmeliproPagination.mdx +3 -1
  177. package/src/components/Amelipro/AmeliproPagination/AmeliproPagination.stories.ts +8 -0
  178. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/__snapshots__/AmeliproPatientLogged.spec.ts.snap +9 -2
  179. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/__snapshots__/AmeliproPostalAddressCityRow.spec.ts.snap +28 -10
  180. package/src/components/Amelipro/AmeliproPostalAddressField/__tests__/__snapshots__/AmeliproPostalAddressField.spec.ts.snap +44 -8
  181. package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.vue +1 -1
  182. package/src/components/Amelipro/AmeliproResultList/__tests__/__snapshots__/AmeliproResultList.spec.ts.snap +15 -3
  183. package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +1 -1
  184. package/src/components/Amelipro/AmeliproTable/__tests__/__snapshots__/AmeliproTable.spec.ts.snap +0 -1
  185. package/src/components/Amelipro/AmeliproTooltips/__tests__/__snapshots__/AmeliproTooltips.spec.ts.snap +6 -0
  186. package/src/components/Amelipro/AmeliproUpload/__tests__/__snapshots__/AmeliproUpload.spec.ts.snap +2 -4
  187. package/src/components/Amelipro/StructureMenu/StructureList/__tests__/__snapshots__/StructureList.spec.ts.snap +0 -2
  188. package/src/components/Amelipro/UserMenu/__tests__/__snapshots__/UserMenu.spec.ts.snap +8 -0
  189. package/src/components/BackBtn/BackBtn.vue +1 -1
  190. package/src/components/BackBtn/accessibilite/Accessibility.mdx +62 -10
  191. package/src/components/BackToTopBtn/BackToTopBtn.stories.ts +9 -3
  192. package/src/components/BackToTopBtn/accessibilite/Accessibility.mdx +86 -6
  193. package/src/components/Captcha/tests/Captcha.spec.ts +0 -29
  194. package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +18 -108
  195. package/src/components/ChipList/ChipList.vue +4 -2
  196. package/src/components/CollapsibleList/CollapsibleList.stories.ts +8 -3
  197. package/src/components/CollapsibleList/CollapsibleList.vue +14 -6
  198. package/src/components/CollapsibleList/accessibilite/Accessibility.mdx +19 -6
  199. package/src/components/CollapsibleList/tests/CollapsibleList.a11y.spec.ts +1 -0
  200. package/src/components/CollapsibleList/tests/CollapsibleList.spec.ts +2 -0
  201. package/src/components/CookieBanner/CookieBanner.stories.ts +10 -0
  202. package/src/components/CookieBanner/CookieBanner.vue +15 -5
  203. package/src/components/CookieBanner/accessibilite/Accessibility.mdx +9 -0
  204. package/src/components/CookieBanner/tests/CookieBanner.spec.ts +10 -2
  205. package/src/components/CookieBanner/tests/__snapshots__/CookieBanner.spec.ts.snap +21 -15
  206. package/src/components/CookiesSelection/CookiesInformation/CookiesInformation.vue +17 -8
  207. package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.a11y.spec.ts +1 -0
  208. package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.spec.ts +5 -0
  209. package/src/components/CookiesSelection/CookiesSelection.vue +7 -2
  210. package/src/components/CookiesSelection/tests/CookiesSelection.a11y.spec.ts +1 -0
  211. package/src/components/CookiesSelection/tests/CookiesSelection.spec.ts +5 -0
  212. package/src/components/CookiesSelection/tests/__snapshots__/CookiesSelection.spec.ts.snap +21 -15
  213. package/src/components/CopyBtn/CopyBtn.vue +6 -4
  214. package/src/components/CopyBtn/accessibilite/Accessibility.mdx +82 -11
  215. package/src/components/CopyBtn/tests/__snapshots__/CopyBtn.spec.ts.snap +5 -1
  216. package/src/components/Customs/Selects/SelectBtnField/accessibilite/Accessibility.mdx +133 -10
  217. package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.stories.ts +379 -93
  218. package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.vue +144 -83
  219. package/src/components/Customs/Selects/SyAutocomplete/accessibilite/Accessibilite.stories.ts +40 -1
  220. package/src/components/Customs/Selects/SyAutocomplete/accessibilite/Accessibility.mdx +7 -1
  221. package/src/components/Customs/Selects/SyAutocomplete/locales.ts +5 -0
  222. package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.a11y.spec.ts +96 -0
  223. package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.spec.ts +234 -9
  224. package/src/components/Customs/Selects/SyAutocomplete/utils/ariaManager.ts +13 -3
  225. package/src/components/Customs/Selects/SyAutocomplete/utils/useSelectionLogic.ts +9 -10
  226. package/src/components/Customs/Selects/SyInputSelect/SyInputSelect.stories.ts +4 -10
  227. package/src/components/Customs/Selects/SySelect/SySelect.mdx +0 -1
  228. package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +10 -10
  229. package/src/components/Customs/Selects/SySelect/SySelect.vue +63 -3
  230. package/src/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.ts +1 -1
  231. package/src/components/Customs/Selects/SySelect/locales.ts +1 -0
  232. package/src/components/Customs/Selects/SySelect/tests/SySelect.a11y.spec.ts +1 -3
  233. package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +72 -0
  234. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +1 -1
  235. package/src/components/Customs/SyIcon/SyIcon.a11y.spec.ts +31 -2
  236. package/src/components/Customs/SyIcon/SyIcon.vue +9 -5
  237. package/src/components/Customs/SyIcon/tests/SyIcon.a11y.spec.ts +20 -0
  238. package/src/components/Customs/SyIconButton/SyIconButton.mdx +46 -0
  239. package/src/components/Customs/SyIconButton/SyIconButton.stories.ts +184 -0
  240. package/src/components/Customs/SyIconButton/SyIconButton.vue +38 -0
  241. package/src/components/Customs/SyIconButton/accessibilite/Accessibility.mdx +64 -0
  242. package/src/components/Customs/SyIconButton/tests/SyIconButton.a11y.spec.ts +87 -0
  243. package/src/components/Customs/SyIconButton/tests/SyIconButton.spec.ts +152 -0
  244. package/src/components/Customs/SyIconButton/tests/__snapshots__/SyIconButton.spec.ts.snap +61 -0
  245. package/src/components/Customs/SyPagination/SyPagination.stories.ts +14 -2
  246. package/src/components/Customs/SyPagination/SyPagination.vue +25 -10
  247. package/src/components/Customs/SyPagination/accessibilite/Accessibility.mdx +79 -8
  248. package/src/components/Customs/SyPagination/tests/SyPagination.a11y.spec.ts +53 -0
  249. package/src/components/Customs/SyPagination/tests/SyPagination.spec.ts +12 -0
  250. package/src/components/Customs/SyTextField/SyTextField.stories.ts +4 -0
  251. package/src/components/Customs/SyTextField/SyTextField.vue +59 -7
  252. package/src/components/Customs/SyTextField/accessibilite/Accessibility.mdx +67 -9
  253. package/src/components/Customs/SyTextField/tests/SyTextField.a11y.spec.ts +15 -0
  254. package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +36 -0
  255. package/src/components/DataList/accessibilite/Accessibility.mdx +79 -11
  256. package/src/components/DataListGroup/accessibilite/Accessibility.mdx +80 -11
  257. package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +28 -3
  258. package/src/components/DatePicker/CalendarMode/DatePicker.vue +20 -8
  259. package/src/components/DatePicker/CalendarMode/tests/DatePicker.spec.ts +9 -3
  260. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +1 -1
  261. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +70 -47
  262. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.a11y.spec.ts +34 -0
  263. package/src/components/DatePicker/DateTextInput/tests/DateTextInput.a11y.spec.ts +27 -0
  264. package/src/components/DatePicker/docExamples/BidirectionalComplexValidation.vue +23 -9
  265. package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +21 -8
  266. package/src/components/DatePicker/docExamples/DatePickerValidationExamples.vue +50 -22
  267. package/src/components/DatePicker/playground/ComplexDatePickerPlayground.vue +48 -10
  268. package/src/components/DatePicker/playground/DatePickerHolidayRule.vue +16 -3
  269. package/src/components/DialogBox/DialogBox.stories.ts +13 -0
  270. package/src/components/DialogBox/DialogBox.vue +12 -5
  271. package/src/components/DialogBox/accessibilite/Accessibility.mdx +27 -7
  272. package/src/components/DialogBox/tests/DialogBox.a11y.spec.ts +1 -0
  273. package/src/components/DialogBox/tests/DialogBox.spec.ts +40 -6
  274. package/src/components/DownloadBtn/accessibilite/Accessibility.mdx +73 -11
  275. package/src/components/DownloadBtn/config.ts +1 -1
  276. package/src/components/DownloadBtn/tests/DownloadBtn.a11y.spec.ts +25 -0
  277. package/src/components/ErrorPage/ErrorPage.stories.ts +176 -47
  278. package/src/components/ErrorPage/ErrorPage.vue +21 -0
  279. package/src/components/ErrorPage/accessibilite/Accessibility.mdx +15 -0
  280. package/src/components/ErrorPage/tests/ErrorPage.a11y.spec.ts +17 -0
  281. package/src/components/ErrorPage/tests/ErrorPage.spec.ts +21 -1
  282. package/src/components/ErrorPage/tests/__snapshots__/ErrorPage.spec.ts.snap +1 -0
  283. package/src/components/ExternalLinks/tests/ExternalLinks.a11y.spec.ts +23 -0
  284. package/src/components/ExternalLinks/tests/__snapshots__/ExternalLinks.spec.ts.snap +13 -2
  285. package/src/components/FileList/FileList.stories.ts +55 -1
  286. package/src/components/FileList/UploadItem/UploadItem.vue +17 -5
  287. package/src/components/FileList/UploadItem/locales.ts +3 -2
  288. package/src/components/FileList/accessibilite/Accessibility.mdx +58 -7
  289. package/src/components/FileUpload/FileUpload.vue +62 -38
  290. package/src/components/FileUpload/FileUploadContent.vue +3 -2
  291. package/src/components/FileUpload/accessibilite/Accessibility.mdx +48 -5
  292. package/src/components/FileUpload/locales.ts +1 -0
  293. package/src/components/FileUpload/tests/FileUpload.spec.ts +61 -14
  294. package/src/components/FileUpload/validateFiles.ts +5 -2
  295. package/src/components/FilterInline/FilterInline.stories.ts +0 -15
  296. package/src/components/FilterInline/FilterInline.vue +1 -0
  297. package/src/components/FilterInline/accessibilite/Accessibility.mdx +70 -7
  298. package/src/components/FilterInline/tests/__snapshots__/FilterInline.spec.ts.snap +3 -3
  299. package/src/components/FilterSideBar/FilterSideBar.stories.ts +0 -3
  300. package/src/components/FilterSideBar/FilterSideBar.vue +2 -1
  301. package/src/components/FilterSideBar/accessibilite/Accessibility.mdx +70 -9
  302. package/src/components/FooterBar/FooterBar.stories.ts +298 -34
  303. package/src/components/FooterBar/FooterBar.vue +67 -9
  304. package/src/components/FooterBar/config.ts +2 -2
  305. package/src/components/FooterBar/locales.ts +1 -0
  306. package/src/components/FooterBar/tests/FooterBarConfig.spec.ts +1 -1
  307. package/src/components/FooterBar/tests/__snapshots__/FooterBar.spec.ts.snap +6 -25
  308. package/src/components/FooterBar/types.d.ts +1 -0
  309. package/src/components/FranceConnectBtn/accessibilite/Accessibility.mdx +62 -9
  310. package/src/components/HeaderBar/HeaderBar.stories.ts +23 -1
  311. package/src/components/HeaderBar/HeaderBar.vue +5 -0
  312. package/src/components/HeaderBar/HeaderLogo/HeaderLogo.vue +8 -2
  313. package/src/components/HeaderBar/HeaderLogo/tests/HeaderLogo.spec.ts +5 -0
  314. package/src/components/HeaderBar/accessibilite/Accessibility.mdx +24 -5
  315. package/src/components/HeaderBar/tests/HeaderBar.a11y.spec.ts +1 -0
  316. package/src/components/HeaderBar/tests/HeaderBar.spec.ts +3 -0
  317. package/src/components/HeaderNavigationBar/HeaderNavigationBar.stories.ts +4 -0
  318. package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +3 -0
  319. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.spec.ts +3 -0
  320. package/src/components/LogoBrandSection/LogoBrandSection.stories.ts +22 -0
  321. package/src/components/LogoBrandSection/LogoBrandSection.vue +13 -5
  322. package/src/components/LogoBrandSection/tests/LogoBrandSection.a11y.spec.ts +2 -0
  323. package/src/components/LogoBrandSection/tests/LogoBrandSection.spec.ts +44 -0
  324. package/src/components/LogoBrandSection/tests/__snapshots__/LogoBrandSection.spec.ts.snap +2 -0
  325. package/src/components/LunarCalendar/accessibilite/Accessibility.mdx +74 -8
  326. package/src/components/LunarCalendar/tests/LunarCalendar.a11y.spec.ts +163 -0
  327. package/src/components/MaintenancePage/MaintenancePage.vue +33 -6
  328. package/src/components/MaintenancePage/accessibilite/Accessibility.mdx +3 -1
  329. package/src/components/MaintenancePage/tests/MaintenancePage.a11y.spec.ts +3 -2
  330. package/src/components/MaintenancePage/tests/MaintenancePage.spec.ts +18 -1
  331. package/src/components/MaintenancePage/tests/__snapshots__/MaintenancePage.spec.ts.snap +1 -0
  332. package/src/components/MonthPicker/MonthPicker.mdx +35 -0
  333. package/src/components/MonthPicker/MonthPicker.stories.ts +527 -0
  334. package/src/components/MonthPicker/MonthPicker.vue +79 -0
  335. package/src/components/MonthPicker/MonthPickerText/MonthPickerInput.vue +89 -0
  336. package/src/components/MonthPicker/MonthPickerText/useTextField.ts +27 -0
  337. package/src/components/MonthPicker/MonthPickerVisual/MonthPickerVisual.vue +154 -0
  338. package/src/components/MonthPicker/MonthPickerVisual/MonthPickerVisualProps.ts +13 -0
  339. package/src/components/MonthPicker/MonthPickerVisual/MonthSelector.vue +137 -0
  340. package/src/components/MonthPicker/MonthPickerVisual/VisualPickerFooter.vue +60 -0
  341. package/src/components/MonthPicker/MonthPickerVisual/VisualPickerHeader.vue +149 -0
  342. package/src/components/MonthPicker/MonthPickerVisual/YearSelector.vue +143 -0
  343. package/src/components/MonthPicker/MonthPickerVisual/useMonthGrid.ts +45 -0
  344. package/src/components/MonthPicker/MonthPickerVisual/useYearGrid.ts +45 -0
  345. package/src/components/MonthPicker/MonthPickerVisual/utils.ts +17 -0
  346. package/src/components/MonthPicker/accessibilite/Accessibility.mdx +59 -0
  347. package/src/components/MonthPicker/locales.ts +12 -0
  348. package/src/components/MonthPicker/tests/MonthPicker.a11y.spec.ts +71 -0
  349. package/src/components/MonthPicker/tests/MonthPicker.spec.ts +1248 -0
  350. package/src/components/MonthPicker/tests/__snapshots__/MonthPicker.spec.ts.snap +2545 -0
  351. package/src/components/MonthPicker/useMonthPickerValidation.ts +30 -0
  352. package/src/components/NirField/NirField.mdx +1 -2
  353. package/src/components/NirField/NirField.stories.ts +66 -6
  354. package/src/components/NotFoundPage/NotFoundPage.stories.ts +1 -1
  355. package/src/components/NotFoundPage/NotFoundPage.vue +16 -5
  356. package/src/components/NotFoundPage/accessibilite/Accessibility.mdx +2 -0
  357. package/src/components/NotFoundPage/tests/NotFoundPage.a11y.spec.ts +49 -0
  358. package/src/components/NotFoundPage/tests/NotFoundPage.spec.ts +24 -2
  359. package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +24 -14
  360. package/src/components/NotificationBar/Notification/Notification.vue +3 -1
  361. package/src/components/NotificationBar/NotificationBar.stories.ts +154 -0
  362. package/src/components/NotificationBar/tests/NotificationBar.a11y.spec.ts +26 -0
  363. package/src/components/NotificationBar/tests/NotificationBar.spec.ts +60 -0
  364. package/src/components/PageContainer/PageContainer.stories.ts +47 -0
  365. package/src/components/PageContainer/PageContainer.vue +4 -2
  366. package/src/components/PageContainer/accessibilite/Accessibility.mdx +31 -17
  367. package/src/components/PaginatedTable/PaginatedTable.mdx +3 -3
  368. package/src/components/PaginatedTable/PaginatedTable.stories.ts +9 -1
  369. package/src/components/PeriodField/PeriodField.vue +4 -0
  370. package/src/components/PeriodField/tests/PeriodField.a11y.spec.ts +10 -1
  371. package/src/components/PhoneField/PhoneField.stories.ts +73 -35
  372. package/src/components/PhoneField/PhoneField.vue +152 -83
  373. package/src/components/PhoneField/accessibilite/Accessibility.mdx +306 -9
  374. package/src/components/PhoneField/indicatifs.ts +2 -2
  375. package/src/components/PhoneField/tests/PhoneField.a11y.spec.ts +47 -0
  376. package/src/components/PhoneField/tests/PhoneField.spec.ts +82 -5
  377. package/src/components/RangeField/accessibilite/Accessibility.mdx +79 -11
  378. package/src/components/SearchListField/SearchListField.vue +1 -1
  379. package/src/components/SearchListField/accessibilite/Accessibility.mdx +69 -9
  380. package/src/components/SearchListField/tests/SearchListField.a11y.spec.ts +37 -0
  381. package/src/components/SkipLink/tests/SkipLink.a11y.spec.ts +23 -0
  382. package/src/components/SocialMediaLinks/SocialMediaLinks.vue +1 -1
  383. package/src/components/StatusPage/StatusPage.mdx +10 -1
  384. package/src/components/StatusPage/StatusPage.stories.ts +161 -0
  385. package/src/components/StatusPage/StatusPage.vue +29 -5
  386. package/src/components/StatusPage/accessibilite/Accessibility.mdx +24 -5
  387. package/src/components/StatusPage/tests/StatusPage.a11y.spec.ts +23 -0
  388. package/src/components/StatusPage/tests/StatusPage.spec.ts +25 -0
  389. package/src/components/StatusPage/tests/__snapshots__/StatusPage.spec.ts.snap +24 -14
  390. package/src/components/SubHeader/SubHeader.stories.ts +16 -0
  391. package/src/components/SubHeader/SubHeader.vue +6 -3
  392. package/src/components/SubHeader/accessibilite/Accessibility.mdx +27 -6
  393. package/src/components/SubHeader/tests/SubHeader.a11y.spec.ts +20 -0
  394. package/src/components/SyAlert/SyAlert.vue +22 -20
  395. package/src/components/SyAlert/accessibilite/Accessibility.mdx +79 -9
  396. package/src/components/SyAlert/tests/SyAlert.a11y.spec.ts +23 -0
  397. package/src/components/SyBtnMenu/SyBtnMenu.vue +33 -17
  398. package/src/components/SyBtnMenu/tests/SyBtnMenu.a11y.spec.ts +38 -0
  399. package/src/components/SyBtnMenu/tests/SyBtnMenu.spec.ts +41 -0
  400. package/src/components/SyHeading/SyHeading.a11y.test.ts +149 -0
  401. package/src/components/SyHeading/SyHeading.test.ts +115 -0
  402. package/src/components/SyHeading/SyHeading.vue +20 -0
  403. package/src/components/SyTextArea/accessibilite/Accessibility.mdx +80 -8
  404. package/src/components/SyTextArea/tests/SyTextArea.a11y.spec.ts +151 -0
  405. package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +96 -30
  406. package/src/components/Tables/SyServerTable/SyServerTable.vue +2 -0
  407. package/src/components/Tables/SyTable/SyTable.vue +2 -0
  408. package/src/components/Tables/common/SyTablePagination.vue +16 -10
  409. package/src/components/Tables/common/filters/DateFilter.vue +5 -0
  410. package/src/components/Tables/common/tests/SyTablePagination.spec.ts +40 -24
  411. package/src/components/Tables/common/types.ts +3 -0
  412. package/src/components/ToolbarContainer/tests/ToolbarContainer.a11y.spec.ts +126 -0
  413. package/src/components/UploadWorkflow/UploadWorkflow.stories.ts +11 -11
  414. package/src/components/UploadWorkflow/UploadWorkflow.vue +30 -13
  415. package/src/components/UploadWorkflow/accessibilite/Accessibility.mdx +56 -5
  416. package/src/components/UploadWorkflow/accessibilite/UploadWorkflow.a11y.spec.ts +110 -0
  417. package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +7 -25
  418. package/src/components/UploadWorkflow/tests/__snapshots__/UploadWorkflow.spec.ts.snap +146 -123
  419. package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +53 -31
  420. package/src/components/UserMenuBtn/UserMenuBtn.vue +4 -1
  421. package/src/components/UserMenuBtn/accessibilite/Accessibility.mdx +72 -8
  422. package/src/components/index.ts +2 -0
  423. package/src/components/types.ts +4 -0
  424. package/src/composables/date/tests/useDateInitialization.spec.ts +22 -1
  425. package/src/composables/date/useDateInitializationDayjs.ts +4 -7
  426. package/src/composables/date/useDatePickerAccessibility.ts +2 -3
  427. package/src/composables/useFilterable/useFilterable.spec.ts +52 -2
  428. package/src/composables/useFilterable/useFilterable.ts +7 -1
  429. package/src/composables/useFormFieldErrorHandling.ts +11 -2
  430. package/src/designTokens/tokens/amelipro/apLightTheme.ts +27 -15
  431. package/src/designTokens/tokens/amelipro/apSemantic.ts +21 -15
  432. package/src/designTokens/tokens/cnam/cnamContextual.ts +6 -1
  433. package/src/designTokens/tokens/cnam/cnamLightTheme.ts +28 -15
  434. package/src/designTokens/tokens/cnam/cnamSemantic.ts +21 -14
  435. package/src/designTokens/tokens/pa/paLightTheme.ts +27 -16
  436. package/src/designTokens/tokens/pa/paSemantic.ts +19 -13
  437. package/src/directives/rgaaSvgFix.ts +2 -7
  438. package/src/main.ts +2 -0
  439. package/src/stories/Accessibilite/{Audit → AuditEtContreAudit}/Exemptions-derogations.mdx +1 -1
  440. package/src/stories/Accessibilite/AuditEtContreAudit/Introduction.mdx +188 -0
  441. package/src/stories/Accessibilite/{Audit → AuditEtContreAudit}/RGAA.mdx +1 -1
  442. package/src/stories/Accessibilite/Introduction.mdx +22 -3
  443. package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +21 -22
  444. package/src/stories/DeprecationNotice/DeprecationNotice.ts +41 -0
  445. package/src/stories/DesignTokens/ColorDisplay.vue +12 -5
  446. package/src/stories/DesignTokens/Colors.mdx +8 -59
  447. package/src/stories/DesignTokens/colors.stories.ts +1862 -1071
  448. package/src/stories/EcoConception/EcoGuideComponent.vue +10 -4
  449. package/dist/main-CWniLr0s.js +0 -36919
@@ -16,6 +16,7 @@
16
16
  import { mdiCalendarMonthOutline } from '@mdi/js'
17
17
  import type { DateObjectValue } from '../types'
18
18
  import SyIcon from '@/components/Customs/SyIcon/SyIcon.vue'
19
+ import SyHeading from '@/components/SyHeading/SyHeading.vue'
19
20
 
20
21
  // Initialiser les plugins dayjs
21
22
  dayjs.extend(customParseFormat)
@@ -74,6 +75,8 @@
74
75
  isValidateOnBlur?: boolean
75
76
  hint?: string
76
77
  persistentHint?: boolean
78
+ headingLevel?: 1 | 2 | 3 | 4 | 5 | 6
79
+
77
80
  }>(), {
78
81
  modelValue: undefined,
79
82
  placeholder: undefined,
@@ -112,6 +115,7 @@
112
115
  isValidateOnBlur: true,
113
116
  hint: undefined,
114
117
  persistentHint: false,
118
+ headingLevel: 3,
115
119
  })
116
120
 
117
121
  // La compatibilité entre isBirthDate et birthDate est gérée directement dans l'appel au composable
@@ -780,8 +784,8 @@
780
784
  textInputValue.value = ''
781
785
  }
782
786
  else if (Array.isArray(newValue) && props.displayRange) {
783
- // Pour les plages de dates, on ne modifie pas directement textInputValue
784
- // car le DateTextInput gère son propre formatage
787
+ // Pour les plages de dates, on ne modifie pas directement textInputValue
788
+ // car le DateTextInput gère son propre formatage
785
789
  }
786
790
  else if (typeof newValue === 'string') {
787
791
  // Pour une date unique
@@ -880,9 +884,7 @@
880
884
  </script>
881
885
 
882
886
  <template>
883
- <div
884
- class="date-picker-container"
885
- >
887
+ <div class="date-picker-container">
886
888
  <template v-if="props.noCalendar">
887
889
  <DateTextInput
888
890
  ref="dateTextInputRef"
@@ -925,6 +927,7 @@
925
927
  <template v-else-if="props.useCombinedMode">
926
928
  <ComplexDatePicker
927
929
  ref="complexDatePickerRef"
930
+ :heading-level="headingLevel"
928
931
  :model-value="props.modelValue"
929
932
  :format="props.format"
930
933
  :date-format-return="props.dateFormatReturn"
@@ -1022,6 +1025,7 @@
1022
1025
  ref="datePickerRef"
1023
1026
  v-model="selectedDates"
1024
1027
  color="primary"
1028
+ control-variant="modal"
1025
1029
  :first-day-of-week="1"
1026
1030
  :multiple="props.displayRange ? 'range' : false"
1027
1031
  :show-adjacent-months="true"
@@ -1043,9 +1047,12 @@
1043
1047
  Sélectionnez une date
1044
1048
  </template>
1045
1049
  <template #header>
1046
- <h3 class="mx-auto my-auto ml-5 mb-4">
1050
+ <SyHeading
1051
+ class="mx-auto my-auto ml-5 mb-4"
1052
+ :level="headingLevel"
1053
+ >
1047
1054
  {{ selectedDates ? displayedDateString : headerDate }}
1048
- </h3>
1055
+ </SyHeading>
1049
1056
  </template>
1050
1057
  <template
1051
1058
  v-if="props.displayTodayButton"
@@ -1210,7 +1217,7 @@
1210
1217
  }
1211
1218
 
1212
1219
  :deep(.v-date-picker-month__day--selected .v-btn:hover) {
1213
- background-color: tokens.$colors-background-accent-contrasted !important;
1220
+ background-color: tokens.$colors-background-accent-primary-contrasted !important;
1214
1221
  }
1215
1222
 
1216
1223
  .fade-enter-active,
@@ -1275,6 +1282,10 @@
1275
1282
  }
1276
1283
  }
1277
1284
 
1285
+ :deep(.v-date-picker-months) {
1286
+ flex: 1;
1287
+ }
1288
+
1278
1289
  :deep(.v-date-picker-months .v-btn__content) {
1279
1290
  font-size: 1rem;
1280
1291
  }
@@ -1303,4 +1314,5 @@
1303
1314
  :deep(.v-picker__body .v-btn--active .v-btn__overlay) {
1304
1315
  opacity: 0;
1305
1316
  }
1317
+
1306
1318
  </style>
@@ -77,8 +77,12 @@ describe('DatePicker', () => {
77
77
  expect(result.length).toBe(2)
78
78
  expect(result[0]).toBeInstanceOf(Date)
79
79
  expect(result[1]).toBeInstanceOf(Date)
80
- expect(result[0]?.toISOString().split('T')[0]).toBe('2023-01-01')
81
- expect(result[1]?.toISOString().split('T')[0]).toBe('2023-01-05')
80
+ expect(result[0]?.getFullYear()).toBe(2023)
81
+ expect(result[0]?.getMonth()).toBe(0)
82
+ expect(result[0]?.getDate()).toBe(1)
83
+ expect(result[1]?.getFullYear()).toBe(2023)
84
+ expect(result[1]?.getMonth()).toBe(0)
85
+ expect(result[1]?.getDate()).toBe(5)
82
86
  })
83
87
 
84
88
  it('initializeSelectedDates returns an empty array for invalid range inputs', () => {
@@ -106,7 +110,9 @@ describe('DatePicker', () => {
106
110
  if (!(result instanceof Date)) {
107
111
  throw new Error('Expected initializeSelectedDates to return a Date for a single valid date')
108
112
  }
109
- expect(result.toISOString().split('T')[0]).toBe('2023-01-01')
113
+ expect(result.getFullYear()).toBe(2023)
114
+ expect(result.getMonth()).toBe(0)
115
+ expect(result.getDate()).toBe(1)
110
116
  })
111
117
 
112
118
  it('initializeSelectedDates returns an empty array when start date is after end date', () => {
@@ -336,7 +336,7 @@ type Story = StoryObj<typeof meta>
336
336
  export const Default: Story = {
337
337
  parameters: {
338
338
  a11y: {
339
- disable: true,
339
+ disable: false,
340
340
  },
341
341
  sourceCode: [
342
342
  {
@@ -46,6 +46,7 @@
46
46
  import { getDateDescription as getDateDescriptionUtil } from '../utils/dateFormattingUtils'
47
47
  import customParseFormat from 'dayjs/plugin/customParseFormat'
48
48
  import SyIcon from '@/components/Customs/SyIcon/SyIcon.vue'
49
+ import SyHeading from '@/components/SyHeading/SyHeading.vue'
49
50
 
50
51
  dayjs.extend(customParseFormat)
51
52
 
@@ -170,6 +171,8 @@
170
171
  density?: 'default' | 'comfortable' | 'compact'
171
172
  hint?: string
172
173
  persistentHint?: boolean
174
+ headingLevel?: 1 | 2 | 3 | 4 | 5 | 6
175
+
173
176
  }>(),
174
177
  {
175
178
  modelValue: undefined,
@@ -207,6 +210,7 @@
207
210
  density: 'default',
208
211
  hint: undefined,
209
212
  persistentHint: false,
213
+ headingLevel: 3,
210
214
  },
211
215
  )
212
216
 
@@ -591,7 +595,9 @@
591
595
  */
592
596
  const dateTextInputRef = ref<null | ComponentPublicInstance<typeof DateTextInput>>()
593
597
  const dateCalendarTextInputRef = ref<null | ComponentPublicInstance<typeof SyTextField>>()
598
+ const menuActivatorRef = ref<HTMLElement | undefined>(undefined)
594
599
  const datePickerRef = ref<null | ComponentPublicInstance<typeof VDatePicker>>()
600
+ const datePickerContentId = `date-picker-${Math.random().toString(36).slice(2)}`
595
601
 
596
602
  /**
597
603
  * Holiday marking (partagé via useHolidayHighlighting)
@@ -1050,7 +1056,7 @@
1050
1056
  <template v-else>
1051
1057
  <VMenu
1052
1058
  v-model="isDatePickerVisible"
1053
- activator="parent"
1059
+ :activator="menuActivatorRef"
1054
1060
  :min-width="0"
1055
1061
  location="bottom"
1056
1062
  :close-on-content-click="false"
@@ -1059,55 +1065,65 @@
1059
1065
  transition="fade-transition"
1060
1066
  :offset="[0, 10]"
1061
1067
  >
1062
- <template #activator="{ props: menuProps }">
1063
- <DateTextInput
1064
- v-bind="menuProps"
1065
- ref="dateCalendarTextInputRef"
1066
- :key="fieldKey"
1067
- :model-value="textInputValue"
1068
- :label="labelWithAsterisk"
1069
- :placeholder="props.placeholder"
1070
- :format="props.format"
1071
- :date-format-return="props.dateFormatReturn"
1072
- :required="props.required"
1073
- :disabled="props.disabled"
1074
- :readonly="props.readonly"
1075
- :title="props.title"
1076
- :is-outlined="props.isOutlined"
1077
- :display-icon="props.displayIcon"
1078
- :display-append-icon="props.displayAppendIcon"
1079
- :display-prepend-icon="props.displayPrependIcon"
1080
- :no-icon="props.noIcon"
1081
- :custom-rules="props.customRules"
1082
- :custom-warning-rules="props.customWarningRules"
1083
- :display-asterisk="props.displayAsterisk"
1084
- :disable-error-handling="props.disableErrorHandling"
1085
- :show-success-messages="props.showSuccessMessages"
1086
- :bg-color="props.bgColor"
1087
- :display-range="props.displayRange"
1088
- :is-validate-on-blur="props.isValidateOnBlur"
1089
- :external-error-messages="errorMessages"
1090
- :class="[getMessageClasses(), 'label-hidden-on-focus']"
1091
- :auto-clamp="props.autoClamp"
1092
- :density="props.density"
1093
- :hint="props.hint"
1094
- :persistent-hint="props.persistentHint"
1095
- @update:model-value="handleDateTextInputUpdate"
1096
- @click="openDatePickerOnClick"
1097
- @focus="openDatePickerOnFocus"
1098
- @blur="handleInputBlur"
1099
- @input="handleInput"
1100
- @keydown="handleKeydown"
1101
- @date-selected="handleDateSelected"
1102
- @prepend-icon-click="openDatePickerOnIconClick"
1103
- @append-icon-click="openDatePickerOnIconClick"
1104
- />
1068
+ <template #activator>
1069
+ <div
1070
+ ref="menuActivatorRef"
1071
+ class="date-text-input-activator"
1072
+ role="combobox"
1073
+ aria-haspopup="dialog"
1074
+ :aria-expanded="isDatePickerVisible"
1075
+ :aria-controls="datePickerContentId"
1076
+ >
1077
+ <DateTextInput
1078
+ ref="dateCalendarTextInputRef"
1079
+ :key="fieldKey"
1080
+ :model-value="textInputValue"
1081
+ :label="labelWithAsterisk"
1082
+ :placeholder="props.placeholder"
1083
+ :format="props.format"
1084
+ :date-format-return="props.dateFormatReturn"
1085
+ :required="props.required"
1086
+ :disabled="props.disabled"
1087
+ :readonly="props.readonly"
1088
+ :title="props.title"
1089
+ :is-outlined="props.isOutlined"
1090
+ :display-icon="props.displayIcon"
1091
+ :display-append-icon="props.displayAppendIcon"
1092
+ :display-prepend-icon="props.displayPrependIcon"
1093
+ :no-icon="props.noIcon"
1094
+ :custom-rules="props.customRules"
1095
+ :custom-warning-rules="props.customWarningRules"
1096
+ :display-asterisk="props.displayAsterisk"
1097
+ :disable-error-handling="props.disableErrorHandling"
1098
+ :show-success-messages="props.showSuccessMessages"
1099
+ :bg-color="props.bgColor"
1100
+ :display-range="props.displayRange"
1101
+ :is-validate-on-blur="props.isValidateOnBlur"
1102
+ :external-error-messages="errorMessages"
1103
+ :class="[getMessageClasses(), 'label-hidden-on-focus']"
1104
+ :auto-clamp="props.autoClamp"
1105
+ :density="props.density"
1106
+ :hint="props.hint"
1107
+ :persistent-hint="props.persistentHint"
1108
+ @update:model-value="handleDateTextInputUpdate"
1109
+ @click="openDatePickerOnClick"
1110
+ @focus="openDatePickerOnFocus"
1111
+ @blur="handleInputBlur"
1112
+ @input="handleInput"
1113
+ @keydown="handleKeydown"
1114
+ @date-selected="handleDateSelected"
1115
+ @prepend-icon-click="openDatePickerOnIconClick"
1116
+ @append-icon-click="openDatePickerOnIconClick"
1117
+ />
1118
+ </div>
1105
1119
  </template>
1106
1120
 
1107
1121
  <VDatePicker
1108
1122
  v-if="isDatePickerVisible"
1123
+ :id="datePickerContentId"
1109
1124
  ref="datePickerRef"
1110
1125
  v-model="selectedDates"
1126
+ control-variant="modal"
1111
1127
  color="primary"
1112
1128
  :class="props.displayWeekendDays ? 'weekend' : ''"
1113
1129
  :first-day-of-week="1"
@@ -1142,9 +1158,12 @@
1142
1158
  </span>
1143
1159
  </template>
1144
1160
  <template #header>
1145
- <h3 class="mx-auto my-auto ml-5 mb-4">
1161
+ <SyHeading
1162
+ class="mx-auto my-auto ml-5 mb-4"
1163
+ :level="headingLevel"
1164
+ >
1146
1165
  {{ selectedDates ? displayedDateString : headerDate }}
1147
- </h3>
1166
+ </SyHeading>
1148
1167
  </template>
1149
1168
  <template
1150
1169
  v-if="props.displayTodayButton"
@@ -1299,7 +1318,7 @@
1299
1318
  }
1300
1319
 
1301
1320
  :deep(.v-date-picker-month__day--selected .v-btn:hover) {
1302
- background-color: tokens.$colors-background-accent-contrasted !important;
1321
+ background-color: tokens.$colors-background-accent-primary-contrasted !important;
1303
1322
  }
1304
1323
 
1305
1324
  :deep(.weekend .v-date-picker-month__day--week-end .v-btn) {
@@ -1355,6 +1374,10 @@
1355
1374
  }
1356
1375
  }
1357
1376
 
1377
+ :deep(.v-date-picker-months) {
1378
+ flex: 1;
1379
+ }
1380
+
1358
1381
  :deep(.v-date-picker-months .v-btn__content) {
1359
1382
  font-size: 1rem;
1360
1383
  }
@@ -0,0 +1,34 @@
1
+ // @vitest-environment jsdom
2
+
3
+ import { describe, it } from 'vitest'
4
+ import { mount } from '@vue/test-utils'
5
+ import { axe } from 'vitest-axe'
6
+ import { assertNoA11yViolations } from '@tests/unit/accessibility/axeUtils'
7
+ import ComplexDatePicker from '../ComplexDatePicker.vue'
8
+
9
+ // Scénario d’accessibilité : sélecteur de date combiné (champ + calendrier),
10
+ // en mode simple, avec label et format jour/mois/année.
11
+
12
+ describe('ComplexDatePicker – accessibility (axe)', () => {
13
+ it('has no obvious axe violations in default calendar mode', async () => {
14
+ const wrapper = mount(ComplexDatePicker, {
15
+ props: {
16
+ label: 'Date',
17
+ format: 'DD/MM/YYYY',
18
+ },
19
+ })
20
+
21
+ const ignoredRules = ['region'] // Ignoring 'region' rule as per test configuration
22
+
23
+ const results = await axe(wrapper.element as HTMLElement)
24
+ // Debug aid: log violations details when present
25
+ if (results.violations.filter(
26
+ v => !ignoredRules.includes(v.id), // Ignoring specified rules as per test configuration
27
+ ).length > 0) {
28
+ console.log(JSON.stringify(results.violations, null, 2))
29
+ }
30
+ assertNoA11yViolations(results, 'ComplexDatePicker – default calendar mode', {
31
+ ignoreRules: ignoredRules,
32
+ })
33
+ })
34
+ })
@@ -0,0 +1,27 @@
1
+ // @vitest-environment jsdom
2
+
3
+ import { describe, it } from 'vitest'
4
+ import { mount } from '@vue/test-utils'
5
+ import { axe } from 'vitest-axe'
6
+ import { assertNoA11yViolations } from '@tests/unit/accessibility/axeUtils'
7
+ import DateTextInput from '../DateTextInput.vue'
8
+
9
+ // Scénario d’accessibilité : champ texte de date seul, requis,
10
+ // avec format jour/mois/année.
11
+
12
+ describe('DateTextInput – accessibility (axe)', () => {
13
+ it('has no obvious axe violations for a required single date field', async () => {
14
+ const wrapper = mount(DateTextInput, {
15
+ props: {
16
+ label: 'Date',
17
+ format: 'DD/MM/YYYY',
18
+ required: true,
19
+ },
20
+ })
21
+
22
+ const results = await axe(wrapper.element as HTMLElement)
23
+ assertNoA11yViolations(results, 'DateTextInput – required single date', {
24
+ ignoreRules: ['region'],
25
+ })
26
+ })
27
+ })
@@ -142,10 +142,12 @@
142
142
 
143
143
  <template>
144
144
  <div class="date-picker-bidirectional-validation">
145
- <h1 class="text-h5 mb-6">
145
+ <SyHeading
146
+ class="text-h5 mb-6"
147
+ :level="1"
148
+ >
146
149
  Validation bidirectionnelle entre deux DatePickers
147
- </h1>
148
-
150
+ </SyHeading>
149
151
  <div class="text-body-2 mb-4">
150
152
  Ce composant démontre la validation bidirectionnelle entre deux DatePickers. Les règles de validation sont appliquées dans les deux sens :
151
153
  <ul class="ml-4">
@@ -158,12 +160,16 @@
158
160
 
159
161
  <div class="date-range-container mb-6">
160
162
  <div class="date-picker-wrapper">
161
- <h2 class="text-subtitle-1 mb-2">
163
+ <SyHeading
164
+ class="text-subtitle-1 mb-2"
165
+ :level="2"
166
+ >
162
167
  Date de début
163
- </h2>
168
+ </SyHeading>
164
169
  <DatePicker
165
170
  ref="startDatePickerRef"
166
171
  v-model="startDate"
172
+ :heading-level="2"
167
173
  label="Date de début"
168
174
  :custom-rules="startDateRules"
169
175
  use-combined-mode
@@ -172,12 +178,17 @@
172
178
  />
173
179
  </div>
174
180
  <div class="date-picker-wrapper">
175
- <h2 class="text-subtitle-1 mb-2">
181
+ <SyHeading
182
+ class="text-subtitle-1 mb-2"
183
+ :level="2"
184
+ >
176
185
  Date de fin
177
- </h2>
186
+ </SyHeading>
178
187
  <DatePicker
179
188
  ref="endDatePickerRef"
180
189
  v-model="endDate"
190
+ :heading-level="2"
191
+ :heading-level-complex-date-picker="2"
181
192
  label="Date de fin"
182
193
  :custom-rules="endDateRules"
183
194
  use-combined-mode
@@ -221,9 +232,12 @@
221
232
  </div>
222
233
 
223
234
  <div class="mt-6 pa-4 bg-grey-lighten-4 rounded">
224
- <h3 class="text-subtitle-1 mb-2">
235
+ <SyHeading
236
+ class="text-subtitle-1 mb-2"
237
+ :level="3"
238
+ >
225
239
  Comment fonctionne la validation bidirectionnelle
226
- </h3>
240
+ </SyHeading>
227
241
  <p class="text-body-2">
228
242
  La validation bidirectionnelle entre les DatePickers est implémentée grâce à des règles de validation personnalisées
229
243
  qui vérifient la relation entre les deux dates. Chaque DatePicker a sa propre règle qui vérifie sa valeur par rapport à l'autre.
@@ -1,6 +1,7 @@
1
1
  <script lang="ts" setup>
2
2
  import { ref, computed, watch } from 'vue'
3
3
  import DatePicker from '@/components/DatePicker/CalendarMode/DatePicker.vue'
4
+ import SyHeading from '@/components/SyHeading/SyHeading.vue'
4
5
  // useDateFormat n'est plus nécessaire avec les règles prédéfinies
5
6
 
6
7
  // État des dates
@@ -142,9 +143,9 @@
142
143
 
143
144
  <template>
144
145
  <div class="date-picker-bidirectional-validation">
145
- <h1 class="text-h5 mb-6">
146
+ <SyHeading :level="1">
146
147
  Validation bidirectionnelle entre deux DatePickers
147
- </h1>
148
+ </SyHeading>
148
149
 
149
150
  <div class="text-body-2 mb-4">
150
151
  Ce composant démontre la validation bidirectionnelle entre deux DatePickers. Les règles de validation sont appliquées dans les deux sens :
@@ -158,12 +159,16 @@
158
159
 
159
160
  <div class="date-range-container mb-6">
160
161
  <div class="date-picker-wrapper">
161
- <h2 class="text-subtitle-1 mb-2">
162
+ <SyHeading
163
+ class="text-subtitle-1 mb-2"
164
+ :level="2"
165
+ >
162
166
  Date de début
163
- </h2>
167
+ </SyHeading>
164
168
  <DatePicker
165
169
  ref="startDatePickerRef"
166
170
  v-model="startDate"
171
+ :heading-level="2"
167
172
  label="Date de début"
168
173
  :custom-rules="startDateRules"
169
174
  required
@@ -171,13 +176,18 @@
171
176
  />
172
177
  </div>
173
178
  <div class="date-picker-wrapper">
174
- <h2 class="text-subtitle-1 mb-2">
179
+ <SyHeading
180
+ class="text-subtitle-1 mb-2"
181
+ :level="2"
182
+ >
175
183
  Date de fin
176
- </h2>
184
+ </SyHeading>
177
185
  <DatePicker
178
186
  ref="endDatePickerRef"
179
187
  v-model="endDate"
180
188
  label="Date de fin"
189
+ :heading-level="2"
190
+ :heading-level-complex-date-picker="2"
181
191
  :custom-rules="endDateRules"
182
192
  required
183
193
  @update:model-value="validateStartDate"
@@ -219,9 +229,12 @@
219
229
  </div>
220
230
 
221
231
  <div class="mt-6 pa-4 bg-grey-lighten-4 rounded">
222
- <h3 class="text-subtitle-1 mb-2">
232
+ <SyHeading
233
+ class="text-subtitle-1 mb-2"
234
+ :level="3"
235
+ >
223
236
  Comment fonctionne la validation bidirectionnelle
224
- </h3>
237
+ </SyHeading>
225
238
  <p class="text-body-2">
226
239
  La validation bidirectionnelle entre les DatePickers est implémentée grâce à des règles de validation personnalisées
227
240
  qui vérifient la relation entre les deux dates. Chaque DatePicker a sa propre règle qui vérifie sa valeur par rapport à l'autre.