@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
@@ -17,6 +17,7 @@ describe('HeaderBar', () => {
17
17
  it('should render the component', async () => {
18
18
  const wrapper = mount(HeaderBar, {
19
19
  props: {
20
+ headingLevelTitle: 1,
20
21
  sticky: false,
21
22
  },
22
23
  attachTo: document.body,
@@ -121,6 +122,7 @@ describe('HeaderBar', () => {
121
122
  it('should render in sticky mode', async () => {
122
123
  const wrapper = mount(HeaderBar, {
123
124
  props: {
125
+ headingLevelTitle: 1,
124
126
  sticky: true,
125
127
  },
126
128
  attachTo: document.body,
@@ -150,6 +152,7 @@ describe('HeaderBar', () => {
150
152
  window.happyDOM.setInnerWidth(600)
151
153
  const wrapper = mount(HeaderBar, {
152
154
  props: {
155
+ headingLevelTitle: 1,
153
156
  hideWhenDown: true,
154
157
  },
155
158
  attachTo: document.body,
@@ -278,6 +278,7 @@ type Story = StoryObj<typeof meta>
278
278
 
279
279
  export const Default: Story = {
280
280
  args: {
281
+ headingLevelTitle: 1,
281
282
  items: [
282
283
  {
283
284
  label: 'Home',
@@ -319,6 +320,7 @@ export const Default: Story = {
319
320
 
320
321
  export const WithScroll: Story = {
321
322
  args: {
323
+ headingLevelTitle: 1,
322
324
  items: [
323
325
  {
324
326
  label: 'Home',
@@ -375,6 +377,7 @@ export const WithScroll: Story = {
375
377
 
376
378
  export const WithManyItems: Story = {
377
379
  args: {
380
+ headingLevelTitle: 1,
378
381
  items: [
379
382
  {
380
383
  label: 'Home',
@@ -906,6 +909,7 @@ export const WithVuetifyOptions: Story = {
906
909
 
907
910
  export const WithTabConfirmation: Story = {
908
911
  args: {
912
+ headingLevelTitle: 1,
909
913
  items: [
910
914
  { label: 'Home', href: '/home' },
911
915
  { label: 'Test avec href', href: '/test-avec-href' },
@@ -41,6 +41,7 @@
41
41
  confirmationMessage?: boolean
42
42
  /** Largeur interne */
43
43
  width?: string
44
+ headingLevelTitle?: 1 | 2 | 3 | 4 | 5 | 6
44
45
  }>(),
45
46
  {
46
47
  // Confirmation related defaults
@@ -56,6 +57,7 @@
56
57
  maxHorizontalMenuItems: 6,
57
58
  items: undefined,
58
59
  width: '1712px',
60
+ headingLevelTitle: 1,
59
61
  })
60
62
 
61
63
  // Définition des événements émis
@@ -125,6 +127,7 @@
125
127
  <template>
126
128
  <HeaderBar
127
129
  :sticky="sticky"
130
+ :heading-level-title="headingLevelTitle"
128
131
  :hide-when-down="hideWhenDown"
129
132
  :home-aria-label="homeAriaLabel"
130
133
  :service-title="serviceTitle"
@@ -26,6 +26,7 @@ describe('HeaderNavigationBar', () => {
26
26
  },
27
27
  },
28
28
  props: {
29
+ headingLevelTitle: 1,
29
30
  items: [
30
31
  {
31
32
  label: 'Home',
@@ -68,6 +69,7 @@ describe('HeaderNavigationBar', () => {
68
69
  },
69
70
  },
70
71
  props: {
72
+ headingLevelTitle: 1,
71
73
  items: [
72
74
  {
73
75
  label: 'Home',
@@ -102,6 +104,7 @@ describe('HeaderNavigationBar', () => {
102
104
  },
103
105
  },
104
106
  props: {
107
+ headingLevelTitle: 1,
105
108
  items: [
106
109
  {
107
110
  label: 'Home',
@@ -5,6 +5,20 @@ const meta = {
5
5
  title: 'Composants/Données/LogoBrandSection',
6
6
  component: LogoBrandSection,
7
7
  argTypes: {
8
+ 'headingLevelTitle': {
9
+ control: {
10
+ type: 'select',
11
+ },
12
+ options: [1, 2, 3, 4, 5, 6],
13
+ description: 'Le niveau de titre pour le serviceTitle.',
14
+ },
15
+ 'headingLevelSubtitle': {
16
+ control: {
17
+ type: 'select',
18
+ },
19
+ options: [1, 2, 3, 4, 5, 6],
20
+ description: 'Le niveau de titre pour le serviceSubTitle.',
21
+ },
8
22
  'theme': {
9
23
  description: 'Applique un preset de style à la section.',
10
24
  control: {
@@ -72,6 +86,8 @@ const meta = {
72
86
  },
73
87
  args: {
74
88
  theme: 'default',
89
+ headingLevelSubtitle: 2,
90
+ headingLevelTitle: 1,
75
91
  },
76
92
  } satisfies Meta<typeof LogoBrandSection>
77
93
 
@@ -81,6 +97,8 @@ type Story = StoryObj<typeof LogoBrandSection>
81
97
 
82
98
  export const Default: Story = {
83
99
  args: {
100
+ headingLevelSubtitle: 2,
101
+ headingLevelTitle: 1,
84
102
  serviceTitle: 'Synapse',
85
103
  serviceSubTitle: 'Documentation du Design System',
86
104
  },
@@ -91,6 +109,8 @@ export const Default: Story = {
91
109
  code: `
92
110
  <template>
93
111
  <LogoBrandSection
112
+ :heading-level-title="headingLevelTitle"
113
+ :heading-level-subtitle="headingLevelSubtitle"
94
114
  service-title="Synapse"
95
115
  service-sub-title="Documentation du Design System"
96
116
  />
@@ -113,6 +133,8 @@ export const WithBrand: Story = {
113
133
  args: {
114
134
  serviceTitle: 'Synapse',
115
135
  serviceSubTitle: ' Documentation du Design System',
136
+ headingLevelTitle: 1,
137
+ headingLevelSubtitle: 2,
116
138
  },
117
139
  render: (args) => {
118
140
  return {
@@ -8,6 +8,7 @@
8
8
  import { locales } from './locales'
9
9
  import { secondaryLogoMapping } from './secondaryLogoMapping'
10
10
  import type { Theme } from './types'
11
+ import SyHeading from '@/components/SyHeading/SyHeading.vue'
11
12
 
12
13
  const props = withDefaults(
13
14
  defineProps<{
@@ -21,12 +22,16 @@
21
22
  to?: RouteLocationRaw
22
23
  href?: string
23
24
  }
25
+ headingLevelTitle?: 1 | 2 | 3 | 4 | 5 | 6
26
+ headingLevelSubtitle?: 1 | 2 | 3 | 4
24
27
  }>(), {
25
28
  theme: 'default',
26
29
  serviceTitle: undefined,
27
30
  serviceSubTitle: undefined,
28
31
  mobileVersion: false,
29
32
  reduceLogo: false,
33
+ headingLevelTitle: 1,
34
+ headingLevelSubtitle: 2,
30
35
  homeLink: () => ({
31
36
  href: '/',
32
37
  }),
@@ -246,12 +251,14 @@
246
251
  class="vd-title-container d-flex justify-center flex-column text-primary"
247
252
  >
248
253
  <slot name="brand-content">
249
- <h1
254
+ <SyHeading
250
255
  v-if="service.title"
251
256
  :class="{
252
257
  'vd-compte-entreprise-title': isCompteEntreprise,
258
+ 'vd-title text-caption text-md-subtitle-1 font-weight-medium': headingLevelTitle === 1,
259
+ 'vd-title text-caption font-weight-medium': headingLevelTitle !== 1,
253
260
  }"
254
- class="vd-title text-caption text-md-subtitle-1 font-weight-medium"
261
+ :level="headingLevelTitle"
255
262
  >
256
263
  <template v-if="typeof service.title === 'string'">
257
264
  <span>
@@ -267,14 +274,15 @@
267
274
  {{ service.title.highlight }}
268
275
  </span>
269
276
  </template>
270
- </h1>
277
+ </SyHeading>
271
278
 
272
- <h2
279
+ <SyHeading
273
280
  v-if="showServiceSubTitle"
274
281
  class="vd-title text-caption"
282
+ :level="headingLevelSubtitle"
275
283
  >
276
284
  {{ service.subTitle }}
277
- </h2>
285
+ </SyHeading>
278
286
  </slot>
279
287
  </div>
280
288
  </slot>
@@ -17,6 +17,8 @@ describe('LogoBrandSection – accessibility (axe)', () => {
17
17
  },
18
18
  },
19
19
  props: {
20
+ headingLevelTitle: 1,
21
+ headingLevelSubtitle: 2,
20
22
  theme: 'default',
21
23
  serviceTitle: 'Service Title',
22
24
  serviceSubTitle: 'Service Sub Title',
@@ -9,6 +9,8 @@ describe('LogoBrandSection', () => {
9
9
  global: {
10
10
  stubs: ['RouterLink', 'Logo'] },
11
11
  props: {
12
+ headingLevelTitle: 1,
13
+ headingLevelSubtitle: 2,
12
14
  theme: 'default',
13
15
  serviceTitle: 'Service Title',
14
16
  serviceSubTitle: 'Service Sub Title',
@@ -28,6 +30,8 @@ describe('LogoBrandSection', () => {
28
30
  global: {
29
31
  stubs: ['RouterLink', 'Logo'] },
30
32
  props: {
33
+ headingLevelTitle: 1,
34
+ headingLevelSubtitle: 2,
31
35
  theme: 'default',
32
36
  serviceTitle: 'Service Title',
33
37
  serviceSubTitle: 'Service Sub Title',
@@ -42,6 +46,8 @@ describe('LogoBrandSection', () => {
42
46
  global: {
43
47
  stubs: ['RouterLink', 'Logo'] },
44
48
  props: {
49
+ headingLevelTitle: 1,
50
+ headingLevelSubtitle: 2,
45
51
  theme: 'compte-entreprise',
46
52
  },
47
53
  })
@@ -54,6 +60,8 @@ describe('LogoBrandSection', () => {
54
60
  global: {
55
61
  stubs: ['RouterLink', 'Logo'] },
56
62
  props: {
63
+ headingLevelTitle: 1,
64
+ headingLevelSubtitle: 2,
57
65
  theme: 'default',
58
66
  serviceTitle: 'Service Title',
59
67
  serviceSubTitle: 'Service Sub Title',
@@ -74,6 +82,8 @@ describe('LogoBrandSection', () => {
74
82
  global: {
75
83
  stubs: ['RouterLink', 'Logo'] },
76
84
  props: {
85
+ headingLevelTitle: 1,
86
+ headingLevelSubtitle: 2,
77
87
  theme: 'default',
78
88
  serviceTitle: 'Service Title',
79
89
  serviceSubTitle: 'Service Sub Title',
@@ -88,6 +98,8 @@ describe('LogoBrandSection', () => {
88
98
  global: {
89
99
  stubs: ['RouterLink', 'Logo'] },
90
100
  props: {
101
+ headingLevelTitle: 1,
102
+ headingLevelSubtitle: 2,
91
103
  theme: 'default',
92
104
  serviceTitle: 'Service Title',
93
105
  serviceSubTitle: '',
@@ -102,6 +114,8 @@ describe('LogoBrandSection', () => {
102
114
  global: {
103
115
  stubs: ['RouterLink', 'Logo'] },
104
116
  props: {
117
+ headingLevelTitle: 1,
118
+ headingLevelSubtitle: 2,
105
119
  serviceTitle: 'Service Title',
106
120
  serviceSubTitle: 'Service Sub Title',
107
121
  },
@@ -116,6 +130,8 @@ describe('LogoBrandSection', () => {
116
130
  global: {
117
131
  stubs: ['RouterLink', 'Logo'] },
118
132
  props: {
133
+ headingLevelTitle: 1,
134
+ headingLevelSubtitle: 2,
119
135
  theme: 'cnam',
120
136
  serviceTitle: 'Service Title',
121
137
  serviceSubTitle: 'Service Sub Title',
@@ -131,6 +147,8 @@ describe('LogoBrandSection', () => {
131
147
  global: {
132
148
  stubs: ['RouterLink', 'Logo'] },
133
149
  props: {
150
+ headingLevelTitle: 1,
151
+ headingLevelSubtitle: 2,
134
152
  theme: 'compte-entreprise',
135
153
  serviceTitle: 'Service Title',
136
154
  serviceSubTitle: 'Service Sub Title',
@@ -146,6 +164,8 @@ describe('LogoBrandSection', () => {
146
164
  global: {
147
165
  stubs: ['RouterLink', 'Logo'] },
148
166
  props: {
167
+ headingLevelTitle: 1,
168
+ headingLevelSubtitle: 2,
149
169
  theme: 'risque-pro',
150
170
  reduceLogo: false,
151
171
  },
@@ -160,6 +180,8 @@ describe('LogoBrandSection', () => {
160
180
  global: {
161
181
  stubs: ['RouterLink', 'Logo'] },
162
182
  props: {
183
+ headingLevelTitle: 1,
184
+ headingLevelSubtitle: 2,
163
185
  theme: 'risque-pro',
164
186
  reduceLogo: true,
165
187
  },
@@ -173,6 +195,8 @@ describe('LogoBrandSection', () => {
173
195
  global: {
174
196
  stubs: ['RouterLink', 'Logo'] },
175
197
  props: {
198
+ headingLevelTitle: 1,
199
+ headingLevelSubtitle: 2,
176
200
  theme: 'compte-entreprise',
177
201
  },
178
202
  })
@@ -185,6 +209,8 @@ describe('LogoBrandSection', () => {
185
209
  global: {
186
210
  stubs: ['RouterLink', 'Logo'] },
187
211
  props: {
212
+ headingLevelTitle: 1,
213
+ headingLevelSubtitle: 2,
188
214
  theme: 'compte-ameli',
189
215
  mobileVersion: true,
190
216
  },
@@ -199,6 +225,8 @@ describe('LogoBrandSection', () => {
199
225
  global: {
200
226
  stubs: ['RouterLink', 'Logo'] },
201
227
  props: {
228
+ headingLevelTitle: 1,
229
+ headingLevelSubtitle: 2,
202
230
  theme: 'default',
203
231
  reduceLogo: true,
204
232
  },
@@ -212,6 +240,8 @@ describe('LogoBrandSection', () => {
212
240
  global: {
213
241
  stubs: ['RouterLink', 'Logo'] },
214
242
  props: {
243
+ headingLevelTitle: 1,
244
+ headingLevelSubtitle: 2,
215
245
  theme: 'default',
216
246
  reduceLogo: false,
217
247
  },
@@ -225,6 +255,8 @@ describe('LogoBrandSection', () => {
225
255
  global: {
226
256
  stubs: ['RouterLink', 'Logo'] },
227
257
  props: {
258
+ headingLevelTitle: 1,
259
+ headingLevelSubtitle: 2,
228
260
  theme: 'compte-ameli',
229
261
  },
230
262
  })
@@ -237,6 +269,8 @@ describe('LogoBrandSection', () => {
237
269
  global: {
238
270
  stubs: ['RouterLink', 'Logo'] },
239
271
  props: {
272
+ headingLevelTitle: 1,
273
+ headingLevelSubtitle: 2,
240
274
  theme: 'default',
241
275
  homeLink: {
242
276
  href: '#',
@@ -252,6 +286,8 @@ describe('LogoBrandSection', () => {
252
286
  global: {
253
287
  stubs: ['RouterLink', 'Logo'] },
254
288
  props: {
289
+ headingLevelTitle: 1,
290
+ headingLevelSubtitle: 2,
255
291
  theme: 'default',
256
292
  homeLink: {
257
293
  to: '/',
@@ -267,6 +303,8 @@ describe('LogoBrandSection', () => {
267
303
  global: {
268
304
  stubs: ['RouterLink', 'Logo'] },
269
305
  props: {
306
+ headingLevelTitle: 1,
307
+ headingLevelSubtitle: 2,
270
308
  theme: 'default',
271
309
  homeLink: {
272
310
  href: undefined,
@@ -283,6 +321,8 @@ describe('LogoBrandSection', () => {
283
321
  global: {
284
322
  stubs: ['RouterLink', 'Logo'] },
285
323
  props: {
324
+ headingLevelTitle: 1,
325
+ headingLevelSubtitle: 2,
286
326
  theme: 'default',
287
327
  },
288
328
  })
@@ -295,6 +335,8 @@ describe('LogoBrandSection', () => {
295
335
  global: {
296
336
  stubs: ['RouterLink', 'Logo'] },
297
337
  props: {
338
+ headingLevelTitle: 1,
339
+ headingLevelSubtitle: 2,
298
340
  theme: 'ameli-pro',
299
341
  },
300
342
  })
@@ -307,6 +349,8 @@ describe('LogoBrandSection', () => {
307
349
  global: {
308
350
  stubs: ['RouterLink', 'Logo'] },
309
351
  props: {
352
+ headingLevelTitle: 1,
353
+ headingLevelSubtitle: 2,
310
354
  theme: 'ameli',
311
355
  homeLink: {
312
356
  href: undefined,
@@ -44,6 +44,7 @@ exports[`LogoBrandSection > renders correctly 1`] = `
44
44
  ">
45
45
  <h1 class="
46
46
  font-weight-medium
47
+ sy-heading
47
48
  text-caption
48
49
  text-md-subtitle-1
49
50
  vd-title
@@ -53,6 +54,7 @@ exports[`LogoBrandSection > renders correctly 1`] = `
53
54
  </span>
54
55
  </h1>
55
56
  <h2 class="
57
+ sy-heading
56
58
  text-caption
57
59
  vd-title
58
60
  ">
@@ -1,10 +1,76 @@
1
- import { Meta, Story } from '@storybook/addon-docs';
2
- import * as LunarCalendar from '../LunarCalendar.stories';
3
- import '@/stories/styles/shared.css';
1
+ import { Meta, Primary } from '@storybook/blocks';
2
+ import * as Stories from '../LunarCalendar.stories';
3
+ import AccessibilityIcon from '@/common/imgs/accessibility-svgrepo-com.svg';
4
+ import {
5
+ AccessibilityGuideLayout,
6
+ CriteriaSection,
7
+ CriteriaCard,
8
+ DemoSection,
9
+ BestPracticesSection,
10
+ ResourcesSection,
11
+ } from '@/stories/accessibility/AccessibilityGuideLayout.mdx';
4
12
 
5
- <Meta of={LunarCalendar} />
13
+ <Meta of={Stories}/>
6
14
 
7
- <div className="header">
8
- <h1>Accessibilité</h1>
9
- <p>Cette page sera bientôt disponible</p>
10
- </div>
15
+ <AccessibilityGuideLayout
16
+ componentName="LunarCalendar"
17
+ iconSrc={AccessibilityIcon}
18
+ apgHref="https://www.w3.org/WAI/ARIA/apg/patterns/textfield/"
19
+ >
20
+
21
+ <CriteriaSection>
22
+
23
+ <CriteriaCard title="Structure sémantique">
24
+ - **Champ de saisie natif** : Utilise un élément `input` de type texte avec masque de formatage
25
+ - **Label associé** : Le label est correctement associé au champ via le composant SyTextField
26
+ - **Masque de saisie** : Le format `JJ/MM/AAAA` est appliqué via la directive `v-maska`
27
+ - **Icônes décoratives** : Les icônes calendrier sont marquées comme décoratives
28
+ </CriteriaCard>
29
+
30
+ <CriteriaCard title="États et feedback">
31
+ - **Messages d'erreur** : Les erreurs de validation sont annoncées via `aria-describedby`
32
+ - **Messages de succès** : Les confirmations sont également annoncées aux lecteurs d'écran
33
+ - **Champ requis** : L'attribut `required` est correctement appliqué quand nécessaire
34
+ - **Contraintes de dates** : Validation des années min/max avec feedback approprié
35
+ </CriteriaCard>
36
+
37
+ <CriteriaCard title="Navigation au clavier">
38
+ - **Tabulation** : Navigation au clavier standard via le composant SyTextField
39
+ - **Saisie guidée** : Le masque facilite la saisie en indiquant le format attendu
40
+ - **Effacement** : Support du bouton d'effacement quand `isClearable` est activé
41
+ - **Focus visible** : Indication claire du focus pour les utilisateurs clavier
42
+ </CriteriaCard>
43
+
44
+ </CriteriaSection>
45
+
46
+ <DemoSection componentName="LunarCalendar">
47
+ <Primary />
48
+ </DemoSection>
49
+
50
+ ## Bonnes pratiques
51
+
52
+ <BestPracticesSection>
53
+ <ul>
54
+ <li><strong>Label descriptif</strong> : Utiliser un label qui explique clairement qu'il s'agit d'une date lunaire et indiquer le format attendu JJ/MM/AAAA.</li>
55
+ <li><strong>Messages clairs</strong> : Fournir des messages d'erreur qui expliquent le format attendu et les contraintes de validité.</li>
56
+ <li><strong>Contraintes pertinentes</strong> : Définir des plages d'années logiques pour le contexte d'utilisation.</li>
57
+ <li><strong>Feedback immédiat</strong> : Valider dès la perte du focus pour guider l'utilisateur dans sa saisie.</li>
58
+ <li><strong>Placeholder utile</strong> : Utiliser JJ/MM/AAAA comme placeholder pour renforcer le format attendu.</li>
59
+ <li><strong>Icônes appropriées</strong> : Les icônes calendrier aident à identifier visuellement le type de saisie attendue.</li>
60
+ <li><strong>Effacement facilité</strong> : Activer isClearable pour permettre aux utilisateurs de corriger facilement leur saisie.</li>
61
+ </ul>
62
+ </BestPracticesSection>
63
+
64
+ ## Ressources
65
+
66
+ <ResourcesSection>
67
+ <ul>
68
+ <li><a href="https://www.w3.org/WAI/ARIA/apg/patterns/textfield/" target="_blank" rel="noopener noreferrer">WAI-ARIA Authoring Practices - Text Input</a></li>
69
+ <li><a href="https://developer.mozilla.org/fr/docs/Web/HTML/Element/input" target="_blank" rel="noopener noreferrer">MDN Web Docs - input element</a></li>
70
+ <li><a href="https://developer.mozilla.org/fr/docs/Web/Accessibility/ARIA/Roles/textbox_role" target="_blank" rel="noopener noreferrer">MDN Web Docs - ARIA: textbox role</a></li>
71
+ <li><a href="https://www.numerique.gouv.fr/publications/rgaa-accessibilite/#critere-118-champs-de-saisie" target="_blank" rel="noopener noreferrer">RGAA - Critère 11.8 - Champs de saisie</a></li>
72
+ <li><a href="/docs/components-customs-sytextfield--docs" target="_blank" rel="noopener noreferrer">Documentation SyTextField</a></li>
73
+ </ul>
74
+ </ResourcesSection>
75
+
76
+ </AccessibilityGuideLayout>
@@ -0,0 +1,163 @@
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 LunarCalendar from '../LunarCalendar.vue'
8
+
9
+ describe('LunarCalendar – accessibility (axe)', () => {
10
+ it('has no obvious axe violations with default props', async () => {
11
+ const wrapper = mount(LunarCalendar, {
12
+ props: {
13
+ label: 'Date de naissance lunaire',
14
+ },
15
+ modelValue: '',
16
+ })
17
+
18
+ const results = await axe(wrapper.element as HTMLElement)
19
+ assertNoA11yViolations(results, 'LunarCalendar - default props', {
20
+ ignoreRules: ['region'],
21
+ })
22
+ })
23
+
24
+ it('has no obvious axe violations with value', async () => {
25
+ const wrapper = mount(LunarCalendar, {
26
+ props: {
27
+ label: 'Date de naissance lunaire',
28
+ },
29
+ modelValue: '15/08/2023',
30
+ })
31
+
32
+ const results = await axe(wrapper.element as HTMLElement)
33
+ assertNoA11yViolations(results, 'LunarCalendar - with value', {
34
+ ignoreRules: ['region'],
35
+ })
36
+ })
37
+
38
+ it('has no obvious axe violations with required field', async () => {
39
+ const wrapper = mount(LunarCalendar, {
40
+ props: {
41
+ label: 'Date de naissance lunaire',
42
+ required: true,
43
+ },
44
+ modelValue: '',
45
+ })
46
+
47
+ const results = await axe(wrapper.element as HTMLElement)
48
+ assertNoA11yViolations(results, 'LunarCalendar - required field', {
49
+ ignoreRules: ['region'],
50
+ })
51
+ })
52
+
53
+ it('has no obvious axe violations with error messages', async () => {
54
+ const wrapper = mount(LunarCalendar, {
55
+ props: {
56
+ label: 'Date de naissance lunaire',
57
+ required: true,
58
+ },
59
+ modelValue: 'invalid',
60
+ })
61
+
62
+ // Trigger validation
63
+ await wrapper.find('input').trigger('blur')
64
+
65
+ const results = await axe(wrapper.element as HTMLElement)
66
+ assertNoA11yViolations(results, 'LunarCalendar - with errors', {
67
+ ignoreRules: ['region'],
68
+ })
69
+ })
70
+
71
+ it('has no obvious axe violations with success messages', async () => {
72
+ const wrapper = mount(LunarCalendar, {
73
+ props: {
74
+ label: 'Date de naissance lunaire',
75
+ successMessages: 'Date valide',
76
+ },
77
+ modelValue: '15/08/2023',
78
+ })
79
+
80
+ const results = await axe(wrapper.element as HTMLElement)
81
+ assertNoA11yViolations(results, 'LunarCalendar - with success messages', {
82
+ ignoreRules: ['region'],
83
+ })
84
+ })
85
+
86
+ it('has no obvious axe violations with clearable field', async () => {
87
+ const wrapper = mount(LunarCalendar, {
88
+ props: {
89
+ label: 'Date de naissance lunaire',
90
+ isClearable: true,
91
+ },
92
+ modelValue: '15/08/2023',
93
+ })
94
+
95
+ const results = await axe(wrapper.element as HTMLElement)
96
+ assertNoA11yViolations(results, 'LunarCalendar - clearable field', {
97
+ ignoreRules: ['region'],
98
+ })
99
+ })
100
+
101
+ it('has no obvious axe violations with prepend icon', async () => {
102
+ const wrapper = mount(LunarCalendar, {
103
+ props: {
104
+ label: 'Date de naissance lunaire',
105
+ displayPrependIcon: true,
106
+ displayAppendIcon: false,
107
+ },
108
+ modelValue: '',
109
+ })
110
+
111
+ const results = await axe(wrapper.element as HTMLElement)
112
+ assertNoA11yViolations(results, 'LunarCalendar - with prepend icon', {
113
+ ignoreRules: ['region'],
114
+ })
115
+ })
116
+
117
+ it('has no obvious axe violations with append icon', async () => {
118
+ const wrapper = mount(LunarCalendar, {
119
+ props: {
120
+ label: 'Date de naissance lunaire',
121
+ displayPrependIcon: false,
122
+ displayAppendIcon: true,
123
+ },
124
+ modelValue: '',
125
+ })
126
+
127
+ const results = await axe(wrapper.element as HTMLElement)
128
+ assertNoA11yViolations(results, 'LunarCalendar - with append icon', {
129
+ ignoreRules: ['region'],
130
+ })
131
+ })
132
+
133
+ it('has no obvious axe violations with year constraints', async () => {
134
+ const wrapper = mount(LunarCalendar, {
135
+ props: {
136
+ label: 'Date de naissance lunaire',
137
+ minYear: 1900,
138
+ maxYear: 2023,
139
+ },
140
+ modelValue: '15/08/2023',
141
+ })
142
+
143
+ const results = await axe(wrapper.element as HTMLElement)
144
+ assertNoA11yViolations(results, 'LunarCalendar - with year constraints', {
145
+ ignoreRules: ['region'],
146
+ })
147
+ })
148
+
149
+ it('has no obvious axe violations with placeholder', async () => {
150
+ const wrapper = mount(LunarCalendar, {
151
+ props: {
152
+ label: 'Date de naissance lunaire',
153
+ placeholder: 'JJ/MM/AAAA',
154
+ },
155
+ modelValue: '',
156
+ })
157
+
158
+ const results = await axe(wrapper.element as HTMLElement)
159
+ assertNoA11yViolations(results, 'LunarCalendar - with placeholder', {
160
+ ignoreRules: ['region'],
161
+ })
162
+ })
163
+ })