@cnamts/synapse 1.0.21 → 1.0.22

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 (341) hide show
  1. package/dist/{DateFilter-uN8OURoP.js → DateFilter-B5n-ZkLi.js} +29 -24
  2. package/dist/{NumberFilter-sm1dQNQi.js → NumberFilter-CtiZ9uj8.js} +1 -1
  3. package/dist/{PeriodFilter-Cklsxnh9.js → PeriodFilter-DzqiMb-b.js} +1 -1
  4. package/dist/{SelectFilter-CWefj27Z.js → SelectFilter-BOYlF7rX.js} +1 -1
  5. package/dist/{TextFilter-Ddyj885L.js → TextFilter-BOFRNfcX.js} +1 -1
  6. package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +7399 -5967
  7. package/dist/components/Amelipro/AmeliproBtn/AmeliproBtn.d.ts +1 -1
  8. package/dist/components/Amelipro/AmeliproCallback/AmeliproCallback.d.ts +1 -1
  9. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarousel.d.ts +10 -14
  10. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarouselItem/AmeliproCarouselItem.d.ts +1 -1
  11. package/dist/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.d.ts +1 -1
  12. package/dist/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.d.ts +1 -1
  13. package/dist/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.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 +2411 -2027
  27. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +8889 -7327
  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 +8888 -7334
  31. package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +951 -839
  32. package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +1613 -1357
  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 +1088 -847
  42. package/dist/components/Customs/Selects/SyInputSelect/SyInputSelect.d.ts +1 -1
  43. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +515 -321
  44. package/dist/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.d.ts +41 -39
  45. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +921 -801
  46. package/dist/components/Customs/SyForm/SyForm.d.ts +356 -348
  47. package/dist/components/Customs/SyPagination/SyPagination.d.ts +11 -1
  48. package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +907 -795
  49. package/dist/components/Customs/SyTextField/SyTextField.d.ts +1629 -1365
  50. package/dist/components/DataList/DataList.d.ts +1 -1
  51. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +3868 -3123
  52. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +1946 -1562
  53. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +833 -687
  54. package/dist/components/DialogBox/DialogBox.d.ts +482 -416
  55. package/dist/components/DownloadBtn/config.d.ts +1 -1
  56. package/dist/components/ErrorPage/ErrorPage.d.ts +4 -0
  57. package/dist/components/FileList/UploadItem/locales.d.ts +4 -0
  58. package/dist/components/FileUpload/FileUpload.d.ts +4 -4
  59. package/dist/components/FileUpload/locales.d.ts +1 -0
  60. package/dist/components/FilterSideBar/FilterSideBar.d.ts +418 -366
  61. package/dist/components/FooterBar/FooterBar.d.ts +13 -1
  62. package/dist/components/FooterBar/locales.d.ts +1 -0
  63. package/dist/components/FooterBar/types.d.ts +1 -0
  64. package/dist/components/HeaderBar/HeaderBar.d.ts +1 -0
  65. package/dist/components/HeaderBar/HeaderLogo/HeaderLogo.d.ts +1 -0
  66. package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +3 -6
  67. package/dist/components/HeaderToolbar/HeaderToolbar.d.ts +1031 -643
  68. package/dist/components/LangBtn/LangBtn.d.ts +277 -239
  69. package/dist/components/LogoBrandSection/LogoBrandSection.d.ts +4 -0
  70. package/dist/components/MaintenancePage/MaintenancePage.d.ts +16 -1
  71. package/dist/components/NirField/NirField.d.ts +1659 -1371
  72. package/dist/components/NotFoundPage/NotFoundPage.d.ts +9 -3
  73. package/dist/components/PageContainer/PageContainer.d.ts +3 -1
  74. package/dist/components/PasswordField/PasswordField.d.ts +1 -1
  75. package/dist/components/PeriodField/PeriodField.d.ts +7712 -6216
  76. package/dist/components/PhoneField/PhoneField.d.ts +831 -687
  77. package/dist/components/RangeField/RangeSlider/RangeSlider.d.ts +4 -12
  78. package/dist/components/StatusPage/StatusPage.d.ts +12 -1
  79. package/dist/components/SubHeader/SubHeader.d.ts +2 -0
  80. package/dist/components/SyAlert/SyAlert.d.ts +74 -70
  81. package/dist/components/SyBtnMenu/SyBtnMenu.d.ts +10 -1
  82. package/dist/components/SyHeading/SyHeading.d.ts +20 -0
  83. package/dist/components/SyTextArea/SyTextArea.d.ts +476 -420
  84. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +759 -468
  85. package/dist/components/Tables/SyTable/SyTable.d.ts +761 -470
  86. package/dist/components/Tables/common/SyTableFilter.d.ts +1 -1
  87. package/dist/components/Tables/common/SyTablePagination.d.ts +269 -170
  88. package/dist/components/Tables/common/filters/DateFilter.d.ts +10 -1
  89. package/dist/components/Tables/common/filters/NumberFilter.d.ts +1 -1
  90. package/dist/components/Tables/common/filters/PeriodFilter.d.ts +1 -1
  91. package/dist/components/Tables/common/filters/SelectFilter.d.ts +1 -1
  92. package/dist/components/Tables/common/filters/TextFilter.d.ts +1 -1
  93. package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +166 -138
  94. package/dist/components/Tables/common/types.d.ts +2 -0
  95. package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +24 -1211
  96. package/dist/components/UserMenuBtn/UserMenuBtn.d.ts +1 -0
  97. package/dist/components/index.d.ts +1 -0
  98. package/dist/components/types.d.ts +2 -0
  99. package/dist/design-system-v3.js +70 -69
  100. package/dist/design-system-v3.umd.cjs +265 -265
  101. package/dist/designTokens/tokens/amelipro/apLightTheme.d.ts +26 -14
  102. package/dist/designTokens/tokens/amelipro/apSemantic.d.ts +19 -13
  103. package/dist/designTokens/tokens/cnam/cnamLightTheme.d.ts +28 -15
  104. package/dist/designTokens/tokens/cnam/cnamSemantic.d.ts +20 -13
  105. package/dist/designTokens/tokens/pa/paLightTheme.d.ts +26 -15
  106. package/dist/designTokens/tokens/pa/paSemantic.d.ts +19 -13
  107. package/dist/main-CEl4J8_T.js +37241 -0
  108. package/dist/style.css +1 -1
  109. package/dist/vuetifyConfig.d.ts +14 -14
  110. package/package.json +13 -7
  111. package/src/assets/amelipro/img/logo-amelipro.svg +9 -0
  112. package/src/assets/apTokens.scss +53 -17
  113. package/src/assets/overrides/_icons.scss +12 -2
  114. package/src/assets/overrides/_tooltips.scss +5 -6
  115. package/src/assets/overrides/_typography.scss +17 -2
  116. package/src/assets/overrides/_utilities.scss +49 -3
  117. package/src/assets/tokens.scss +53 -17
  118. package/src/components/Accordion/accessibilite/Accessibility.mdx +5 -4
  119. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/AmeliproAccordionTemplate.vue +2 -2
  120. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/__tests__/__snapshots__/AmeliproAccordionTemplate.spec.ts.snap +0 -2
  121. package/src/components/Amelipro/AmeliproAccordionFrieze/AmeliproAccordionFrieze.vue +2 -2
  122. package/src/components/Amelipro/AmeliproAccordionFrieze/__tests__/__snapshots__/AmeliproAccordionFrieze.spec.ts.snap +14 -56
  123. package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.vue +1 -1
  124. package/src/components/Amelipro/AmeliproAccordionList/__tests__/__snapshots__/AmeliproAccordionList.spec.ts.snap +15 -23
  125. package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.vue +1 -1
  126. package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/__snapshots__/AmeliproAccordionResultList.spec.ts.snap +15 -3
  127. package/src/components/Amelipro/AmeliproCarousel/__tests__/__snapshots__/AmeliproCarousel.spec.ts.snap +0 -2
  128. package/src/components/Amelipro/AmeliproClickableTile/tests/__snapshots__/AmeliproClickableTile.spec.ts.snap +0 -98
  129. package/src/components/Amelipro/AmeliproContentLayout/AmeliproContentLayout.mdx +1 -1
  130. package/src/components/Amelipro/AmeliproContentLayout/AmeliproContentLayout.stories.ts +5 -16
  131. package/src/components/Amelipro/AmeliproCopyBtn/AmeliproCopyBtn.mdx +3 -1
  132. package/src/components/Amelipro/AmeliproCopyBtn/AmeliproCopyBtn.stories.ts +7 -0
  133. package/src/components/Amelipro/AmeliproDentalChart/AmeliproTooth/AmeliproTooth.vue +0 -1
  134. package/src/components/Amelipro/AmeliproDentalChart/AmeliproTooth/tests/__snapshots__/AmeliproTooth.spec.ts.snap +0 -1
  135. package/src/components/Amelipro/AmeliproDentalChart/tests/__snapshots__/AmeliproDentalChart.spec.ts.snap +0 -52
  136. package/src/components/Amelipro/AmeliproDialog/__tests__/__snapshots__/AmeliproDialog.spec.ts.snap +6 -0
  137. package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.mdx +3 -1
  138. package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.stories.ts +19 -0
  139. package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.vue +2 -2
  140. package/src/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.vue +3 -4
  141. package/src/components/Amelipro/AmeliproFirstLogin/__tests__/__snapshots__/AmeliproFirstLogin.spec.ts.snap +2 -13
  142. package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.mdx +3 -1
  143. package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.stories.ts +7 -0
  144. package/src/components/Amelipro/AmeliproMenu/__tests__/__snapshots__/AmeliproMenu.spec.ts.snap +8 -0
  145. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/__snapshots__/AmeliproPatientLogged.spec.ts.snap +9 -2
  146. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/__snapshots__/AmeliproPostalAddressCityRow.spec.ts.snap +28 -10
  147. package/src/components/Amelipro/AmeliproPostalAddressField/__tests__/__snapshots__/AmeliproPostalAddressField.spec.ts.snap +44 -8
  148. package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.vue +1 -1
  149. package/src/components/Amelipro/AmeliproResultList/__tests__/__snapshots__/AmeliproResultList.spec.ts.snap +15 -3
  150. package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +1 -1
  151. package/src/components/Amelipro/AmeliproTable/__tests__/__snapshots__/AmeliproTable.spec.ts.snap +0 -1
  152. package/src/components/Amelipro/AmeliproTooltips/__tests__/__snapshots__/AmeliproTooltips.spec.ts.snap +6 -0
  153. package/src/components/Amelipro/AmeliproUpload/__tests__/__snapshots__/AmeliproUpload.spec.ts.snap +2 -4
  154. package/src/components/Amelipro/StructureMenu/StructureList/__tests__/__snapshots__/StructureList.spec.ts.snap +0 -2
  155. package/src/components/Amelipro/UserMenu/__tests__/__snapshots__/UserMenu.spec.ts.snap +8 -0
  156. package/src/components/BackBtn/BackBtn.vue +1 -1
  157. package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +36 -18
  158. package/src/components/ChipList/ChipList.vue +4 -2
  159. package/src/components/CollapsibleList/CollapsibleList.stories.ts +8 -3
  160. package/src/components/CollapsibleList/CollapsibleList.vue +14 -6
  161. package/src/components/CollapsibleList/accessibilite/Accessibility.mdx +19 -6
  162. package/src/components/CollapsibleList/tests/CollapsibleList.a11y.spec.ts +1 -0
  163. package/src/components/CollapsibleList/tests/CollapsibleList.spec.ts +2 -0
  164. package/src/components/CookieBanner/CookieBanner.stories.ts +10 -0
  165. package/src/components/CookieBanner/CookieBanner.vue +15 -5
  166. package/src/components/CookieBanner/accessibilite/Accessibility.mdx +9 -0
  167. package/src/components/CookieBanner/tests/CookieBanner.spec.ts +10 -2
  168. package/src/components/CookieBanner/tests/__snapshots__/CookieBanner.spec.ts.snap +21 -15
  169. package/src/components/CookiesSelection/CookiesInformation/CookiesInformation.vue +17 -8
  170. package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.a11y.spec.ts +1 -0
  171. package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.spec.ts +5 -0
  172. package/src/components/CookiesSelection/CookiesSelection.vue +7 -2
  173. package/src/components/CookiesSelection/tests/CookiesSelection.a11y.spec.ts +1 -0
  174. package/src/components/CookiesSelection/tests/CookiesSelection.spec.ts +5 -0
  175. package/src/components/CookiesSelection/tests/__snapshots__/CookiesSelection.spec.ts.snap +21 -15
  176. package/src/components/CopyBtn/CopyBtn.vue +6 -4
  177. package/src/components/CopyBtn/accessibilite/Accessibility.mdx +82 -11
  178. package/src/components/CopyBtn/tests/__snapshots__/CopyBtn.spec.ts.snap +5 -1
  179. package/src/components/Customs/Selects/SyInputSelect/SyInputSelect.stories.ts +4 -10
  180. package/src/components/Customs/Selects/SySelect/SySelect.mdx +0 -1
  181. package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +10 -10
  182. package/src/components/Customs/Selects/SySelect/SySelect.vue +17 -0
  183. package/src/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.ts +1 -1
  184. package/src/components/Customs/Selects/SySelect/tests/SySelect.a11y.spec.ts +1 -3
  185. package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +72 -0
  186. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +1 -1
  187. package/src/components/Customs/SyIcon/SyIcon.a11y.spec.ts +31 -2
  188. package/src/components/Customs/SyIcon/SyIcon.vue +9 -5
  189. package/src/components/Customs/SyPagination/SyPagination.stories.ts +14 -2
  190. package/src/components/Customs/SyPagination/SyPagination.vue +20 -5
  191. package/src/components/Customs/SyPagination/accessibilite/Accessibility.mdx +79 -8
  192. package/src/components/Customs/SyPagination/tests/SyPagination.a11y.spec.ts +53 -0
  193. package/src/components/Customs/SyPagination/tests/SyPagination.spec.ts +12 -0
  194. package/src/components/Customs/SyTextField/SyTextField.stories.ts +4 -0
  195. package/src/components/Customs/SyTextField/SyTextField.vue +39 -5
  196. package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +28 -3
  197. package/src/components/DatePicker/CalendarMode/DatePicker.vue +20 -8
  198. package/src/components/DatePicker/CalendarMode/tests/DatePicker.spec.ts +9 -3
  199. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +1 -1
  200. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +70 -47
  201. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.a11y.spec.ts +34 -0
  202. package/src/components/DatePicker/DateTextInput/tests/DateTextInput.a11y.spec.ts +27 -0
  203. package/src/components/DatePicker/docExamples/BidirectionalComplexValidation.vue +23 -9
  204. package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +21 -8
  205. package/src/components/DatePicker/docExamples/DatePickerValidationExamples.vue +50 -22
  206. package/src/components/DatePicker/playground/ComplexDatePickerPlayground.vue +48 -10
  207. package/src/components/DatePicker/playground/DatePickerHolidayRule.vue +16 -3
  208. package/src/components/DialogBox/DialogBox.stories.ts +13 -0
  209. package/src/components/DialogBox/DialogBox.vue +12 -5
  210. package/src/components/DialogBox/accessibilite/Accessibility.mdx +27 -7
  211. package/src/components/DialogBox/tests/DialogBox.a11y.spec.ts +1 -0
  212. package/src/components/DialogBox/tests/DialogBox.spec.ts +40 -6
  213. package/src/components/DownloadBtn/accessibilite/Accessibility.mdx +73 -11
  214. package/src/components/DownloadBtn/config.ts +1 -1
  215. package/src/components/ErrorPage/ErrorPage.stories.ts +82 -47
  216. package/src/components/ErrorPage/ErrorPage.vue +6 -0
  217. package/src/components/ErrorPage/accessibilite/Accessibility.mdx +15 -0
  218. package/src/components/ErrorPage/tests/__snapshots__/ErrorPage.spec.ts.snap +2 -0
  219. package/src/components/ExternalLinks/tests/__snapshots__/ExternalLinks.spec.ts.snap +13 -2
  220. package/src/components/FileList/FileList.stories.ts +4 -0
  221. package/src/components/FileList/UploadItem/UploadItem.vue +8 -3
  222. package/src/components/FileList/UploadItem/locales.ts +10 -0
  223. package/src/components/FileList/accessibilite/Accessibility.mdx +55 -7
  224. package/src/components/FileUpload/FileUpload.vue +60 -37
  225. package/src/components/FileUpload/FileUploadContent.vue +1 -1
  226. package/src/components/FileUpload/accessibilite/Accessibility.mdx +48 -5
  227. package/src/components/FileUpload/locales.ts +1 -0
  228. package/src/components/FileUpload/tests/FileUpload.spec.ts +14 -14
  229. package/src/components/FilterInline/FilterInline.stories.ts +0 -15
  230. package/src/components/FilterInline/FilterInline.vue +1 -0
  231. package/src/components/FilterInline/accessibilite/Accessibility.mdx +70 -7
  232. package/src/components/FilterInline/tests/__snapshots__/FilterInline.spec.ts.snap +3 -3
  233. package/src/components/FilterSideBar/FilterSideBar.stories.ts +0 -3
  234. package/src/components/FilterSideBar/FilterSideBar.vue +2 -1
  235. package/src/components/FilterSideBar/accessibilite/Accessibility.mdx +70 -9
  236. package/src/components/FooterBar/FooterBar.stories.ts +298 -34
  237. package/src/components/FooterBar/FooterBar.vue +67 -9
  238. package/src/components/FooterBar/config.ts +2 -2
  239. package/src/components/FooterBar/locales.ts +1 -0
  240. package/src/components/FooterBar/tests/FooterBarConfig.spec.ts +1 -1
  241. package/src/components/FooterBar/tests/__snapshots__/FooterBar.spec.ts.snap +6 -25
  242. package/src/components/FooterBar/types.d.ts +1 -0
  243. package/src/components/HeaderBar/HeaderBar.stories.ts +23 -1
  244. package/src/components/HeaderBar/HeaderBar.vue +4 -0
  245. package/src/components/HeaderBar/HeaderLogo/HeaderLogo.vue +7 -2
  246. package/src/components/HeaderBar/HeaderLogo/tests/HeaderLogo.spec.ts +5 -0
  247. package/src/components/HeaderBar/accessibilite/Accessibility.mdx +24 -5
  248. package/src/components/HeaderBar/tests/HeaderBar.a11y.spec.ts +1 -0
  249. package/src/components/HeaderBar/tests/HeaderBar.spec.ts +3 -0
  250. package/src/components/HeaderNavigationBar/HeaderNavigationBar.stories.ts +4 -0
  251. package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +2 -0
  252. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.spec.ts +3 -0
  253. package/src/components/LogoBrandSection/LogoBrandSection.stories.ts +22 -0
  254. package/src/components/LogoBrandSection/LogoBrandSection.vue +13 -5
  255. package/src/components/LogoBrandSection/tests/LogoBrandSection.a11y.spec.ts +2 -0
  256. package/src/components/LogoBrandSection/tests/LogoBrandSection.spec.ts +44 -0
  257. package/src/components/LogoBrandSection/tests/__snapshots__/LogoBrandSection.spec.ts.snap +2 -0
  258. package/src/components/MaintenancePage/MaintenancePage.vue +33 -6
  259. package/src/components/MaintenancePage/accessibilite/Accessibility.mdx +3 -1
  260. package/src/components/MaintenancePage/tests/MaintenancePage.a11y.spec.ts +3 -2
  261. package/src/components/MaintenancePage/tests/MaintenancePage.spec.ts +18 -0
  262. package/src/components/MaintenancePage/tests/__snapshots__/MaintenancePage.spec.ts.snap +2 -0
  263. package/src/components/NotFoundPage/NotFoundPage.stories.ts +1 -1
  264. package/src/components/NotFoundPage/NotFoundPage.vue +16 -5
  265. package/src/components/NotFoundPage/accessibilite/Accessibility.mdx +2 -0
  266. package/src/components/NotFoundPage/tests/NotFoundPage.a11y.spec.ts +49 -0
  267. package/src/components/NotFoundPage/tests/NotFoundPage.spec.ts +25 -2
  268. package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +2 -0
  269. package/src/components/PageContainer/PageContainer.stories.ts +47 -0
  270. package/src/components/PageContainer/PageContainer.vue +4 -2
  271. package/src/components/PageContainer/accessibilite/Accessibility.mdx +31 -17
  272. package/src/components/PaginatedTable/PaginatedTable.mdx +3 -3
  273. package/src/components/PaginatedTable/PaginatedTable.stories.ts +9 -1
  274. package/src/components/PeriodField/PeriodField.vue +4 -0
  275. package/src/components/PeriodField/tests/PeriodField.a11y.spec.ts +10 -1
  276. package/src/components/PhoneField/PhoneField.stories.ts +73 -35
  277. package/src/components/PhoneField/PhoneField.vue +152 -83
  278. package/src/components/PhoneField/accessibilite/Accessibility.mdx +306 -9
  279. package/src/components/PhoneField/indicatifs.ts +2 -2
  280. package/src/components/PhoneField/tests/PhoneField.a11y.spec.ts +47 -0
  281. package/src/components/PhoneField/tests/PhoneField.spec.ts +82 -5
  282. package/src/components/SearchListField/SearchListField.vue +1 -1
  283. package/src/components/SearchListField/accessibilite/Accessibility.mdx +69 -9
  284. package/src/components/SearchListField/tests/SearchListField.a11y.spec.ts +37 -0
  285. package/src/components/SocialMediaLinks/SocialMediaLinks.vue +1 -1
  286. package/src/components/StatusPage/StatusPage.mdx +10 -1
  287. package/src/components/StatusPage/StatusPage.stories.ts +43 -0
  288. package/src/components/StatusPage/StatusPage.vue +26 -4
  289. package/src/components/StatusPage/accessibilite/Accessibility.mdx +24 -5
  290. package/src/components/StatusPage/tests/StatusPage.a11y.spec.ts +1 -0
  291. package/src/components/StatusPage/tests/StatusPage.spec.ts +3 -0
  292. package/src/components/StatusPage/tests/__snapshots__/StatusPage.spec.ts.snap +2 -0
  293. package/src/components/SubHeader/SubHeader.stories.ts +16 -0
  294. package/src/components/SubHeader/SubHeader.vue +6 -3
  295. package/src/components/SubHeader/accessibilite/Accessibility.mdx +27 -6
  296. package/src/components/SyAlert/SyAlert.vue +21 -20
  297. package/src/components/SyBtnMenu/SyBtnMenu.vue +33 -17
  298. package/src/components/SyBtnMenu/tests/SyBtnMenu.a11y.spec.ts +38 -0
  299. package/src/components/SyBtnMenu/tests/SyBtnMenu.spec.ts +41 -0
  300. package/src/components/SyHeading/SyHeading.vue +18 -0
  301. package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +96 -30
  302. package/src/components/Tables/SyServerTable/SyServerTable.vue +2 -0
  303. package/src/components/Tables/SyTable/SyTable.vue +2 -0
  304. package/src/components/Tables/common/SyTablePagination.vue +16 -10
  305. package/src/components/Tables/common/filters/DateFilter.vue +5 -0
  306. package/src/components/Tables/common/tests/SyTablePagination.spec.ts +40 -24
  307. package/src/components/Tables/common/types.ts +3 -0
  308. package/src/components/UploadWorkflow/UploadWorkflow.stories.ts +11 -11
  309. package/src/components/UploadWorkflow/UploadWorkflow.vue +30 -13
  310. package/src/components/UploadWorkflow/accessibilite/Accessibility.mdx +56 -5
  311. package/src/components/UploadWorkflow/accessibilite/UploadWorkflow.a11y.spec.ts +110 -0
  312. package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +7 -25
  313. package/src/components/UploadWorkflow/tests/__snapshots__/UploadWorkflow.spec.ts.snap +144 -121
  314. package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +53 -31
  315. package/src/components/UserMenuBtn/UserMenuBtn.vue +4 -1
  316. package/src/components/UserMenuBtn/accessibilite/Accessibility.mdx +72 -8
  317. package/src/components/index.ts +1 -0
  318. package/src/components/types.ts +4 -0
  319. package/src/composables/date/tests/useDateInitialization.spec.ts +22 -1
  320. package/src/composables/date/useDateInitializationDayjs.ts +4 -7
  321. package/src/composables/date/useDatePickerAccessibility.ts +2 -3
  322. package/src/composables/useFilterable/useFilterable.spec.ts +52 -2
  323. package/src/composables/useFilterable/useFilterable.ts +7 -1
  324. package/src/designTokens/tokens/amelipro/apLightTheme.ts +27 -15
  325. package/src/designTokens/tokens/amelipro/apSemantic.ts +21 -15
  326. package/src/designTokens/tokens/cnam/cnamLightTheme.ts +28 -15
  327. package/src/designTokens/tokens/cnam/cnamSemantic.ts +21 -14
  328. package/src/designTokens/tokens/pa/paLightTheme.ts +27 -16
  329. package/src/designTokens/tokens/pa/paSemantic.ts +19 -13
  330. package/src/directives/rgaaSvgFix.ts +2 -7
  331. package/src/stories/Accessibilite/{Audit → AuditEtContreAudit}/Exemptions-derogations.mdx +1 -1
  332. package/src/stories/Accessibilite/AuditEtContreAudit/Introduction.mdx +188 -0
  333. package/src/stories/Accessibilite/{Audit → AuditEtContreAudit}/RGAA.mdx +1 -1
  334. package/src/stories/Accessibilite/Introduction.mdx +22 -3
  335. package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +21 -22
  336. package/src/stories/DeprecationNotice/DeprecationNotice.ts +41 -0
  337. package/src/stories/DesignTokens/ColorDisplay.vue +12 -5
  338. package/src/stories/DesignTokens/Colors.mdx +8 -59
  339. package/src/stories/DesignTokens/colors.stories.ts +1862 -1071
  340. package/src/stories/EcoConception/EcoGuideComponent.vue +10 -4
  341. package/dist/main-CWniLr0s.js +0 -36919
@@ -118,11 +118,17 @@ exports[`Captcha > renders correctly in audio mode 1`] = `
118
118
  >
119
119
  <!---->
120
120
  <div
121
- class="v-progress-linear__background"
121
+ class="
122
+ bg-primary
123
+ v-progress-linear__background
124
+ "
122
125
  style="opacity: NaN;"
123
126
  ></div>
124
127
  <div
125
- class="v-progress-linear__buffer"
128
+ class="
129
+ bg-primary
130
+ v-progress-linear__buffer
131
+ "
126
132
  style="
127
133
  opacity: NaN;
128
134
  width: 0%;
@@ -136,10 +142,12 @@ exports[`Captcha > renders correctly in audio mode 1`] = `
136
142
  >
137
143
  <div class="v-progress-linear__indeterminate">
138
144
  <div class="
145
+ bg-primary
139
146
  long
140
147
  v-progress-linear__indeterminate
141
148
  "></div>
142
149
  <div class="
150
+ bg-primary
143
151
  short
144
152
  v-progress-linear__indeterminate
145
153
  "></div>
@@ -149,7 +157,6 @@ exports[`Captcha > renders correctly in audio mode 1`] = `
149
157
  </div>
150
158
  </div>
151
159
  <div class="v-field__prepend-inner">
152
- <!---->
153
160
  <!-- v-if -->
154
161
  <!-- v-if -->
155
162
  </div>
@@ -159,22 +166,26 @@ exports[`Captcha > renders correctly in audio mode 1`] = `
159
166
  >
160
167
  <!---->
161
168
  <label
169
+ aria-hidden="false"
162
170
  class="
163
171
  v-field-label
164
172
  v-label
165
173
  "
166
- for="input-v-1"
174
+ for="input-v-2"
175
+ id="input-v-2-label"
167
176
  >
168
177
  <!---->
169
178
  Caractères de l’audio
170
179
  </label>
171
180
  <!---->
172
181
  <input
173
- aria-describedby="input-v-1-messages"
182
+ aria-describedby="input-v-2-messages"
174
183
  aria-label="Caractères de l’audio"
184
+ aria-labelledby="input-v-2-label"
175
185
  autocomplete="off"
176
186
  class="v-field__input"
177
- id="input-v-1"
187
+ direction="horizontal"
188
+ id="input-v-2"
178
189
  title="Caractères de l’audio"
179
190
  type="text"
180
191
  />
@@ -186,7 +197,6 @@ exports[`Captcha > renders correctly in audio mode 1`] = `
186
197
  <!-- v-if -->
187
198
  <!-- v-if -->
188
199
  <!-- v-if -->
189
- <!---->
190
200
  </div>
191
201
  <div class="v-field__outline">
192
202
  <div class="v-field__outline__start"></div>
@@ -198,7 +208,6 @@ exports[`Captcha > renders correctly in audio mode 1`] = `
198
208
  v-field-label--floating
199
209
  v-label
200
210
  "
201
- for="input-v-1"
202
211
  >
203
212
  <!---->
204
213
  Caractères de l’audio
@@ -215,7 +224,7 @@ exports[`Captcha > renders correctly in audio mode 1`] = `
215
224
  appear="false"
216
225
  class="v-messages"
217
226
  css="true"
218
- id="input-v-1-messages"
227
+ id="input-v-2-messages"
219
228
  name="slide-y-transition"
220
229
  persisted="false"
221
230
  tag="div"
@@ -505,11 +514,17 @@ exports[`Captcha > renders correctly in image mode 1`] = `
505
514
  >
506
515
  <!---->
507
516
  <div
508
- class="v-progress-linear__background"
517
+ class="
518
+ bg-primary
519
+ v-progress-linear__background
520
+ "
509
521
  style="opacity: NaN;"
510
522
  ></div>
511
523
  <div
512
- class="v-progress-linear__buffer"
524
+ class="
525
+ bg-primary
526
+ v-progress-linear__buffer
527
+ "
513
528
  style="
514
529
  opacity: NaN;
515
530
  width: 0%;
@@ -523,10 +538,12 @@ exports[`Captcha > renders correctly in image mode 1`] = `
523
538
  >
524
539
  <div class="v-progress-linear__indeterminate">
525
540
  <div class="
541
+ bg-primary
526
542
  long
527
543
  v-progress-linear__indeterminate
528
544
  "></div>
529
545
  <div class="
546
+ bg-primary
530
547
  short
531
548
  v-progress-linear__indeterminate
532
549
  "></div>
@@ -536,7 +553,6 @@ exports[`Captcha > renders correctly in image mode 1`] = `
536
553
  </div>
537
554
  </div>
538
555
  <div class="v-field__prepend-inner">
539
- <!---->
540
556
  <!-- v-if -->
541
557
  <!-- v-if -->
542
558
  </div>
@@ -546,22 +562,26 @@ exports[`Captcha > renders correctly in image mode 1`] = `
546
562
  >
547
563
  <!---->
548
564
  <label
565
+ aria-hidden="false"
549
566
  class="
550
567
  v-field-label
551
568
  v-label
552
569
  "
553
- for="input-v-0"
570
+ for="input-v-1"
571
+ id="input-v-1-label"
554
572
  >
555
573
  <!---->
556
574
  Caractères de l’image
557
575
  </label>
558
576
  <!---->
559
577
  <input
560
- aria-describedby="input-v-0-messages"
578
+ aria-describedby="input-v-1-messages"
561
579
  aria-label="Caractères de l’image"
580
+ aria-labelledby="input-v-1-label"
562
581
  autocomplete="off"
563
582
  class="v-field__input"
564
- id="input-v-0"
583
+ direction="horizontal"
584
+ id="input-v-1"
565
585
  title="Caractères de l’image"
566
586
  type="text"
567
587
  />
@@ -573,7 +593,6 @@ exports[`Captcha > renders correctly in image mode 1`] = `
573
593
  <!-- v-if -->
574
594
  <!-- v-if -->
575
595
  <!-- v-if -->
576
- <!---->
577
596
  </div>
578
597
  <div class="v-field__outline">
579
598
  <div class="v-field__outline__start"></div>
@@ -585,7 +604,6 @@ exports[`Captcha > renders correctly in image mode 1`] = `
585
604
  v-field-label--floating
586
605
  v-label
587
606
  "
588
- for="input-v-0"
589
607
  >
590
608
  <!---->
591
609
  Caractères de l’image
@@ -602,7 +620,7 @@ exports[`Captcha > renders correctly in image mode 1`] = `
602
620
  appear="false"
603
621
  class="v-messages"
604
622
  css="true"
605
- id="input-v-0-messages"
623
+ id="input-v-1-messages"
606
624
  name="slide-y-transition"
607
625
  persisted="false"
608
626
  tag="div"
@@ -312,14 +312,16 @@
312
312
  padding: 0;
313
313
  }
314
314
 
315
- // Styles pour le bouton de suppression
316
- .remove-chip {
315
+ .sy-chip-list .remove-chip {
317
316
  padding: 0 !important;
318
317
  min-width: auto !important;
319
318
  width: auto !important;
320
319
  height: auto !important;
321
320
  flex-shrink: 0 !important;
321
+ }
322
322
 
323
+ // Styles pour le bouton de suppression
324
+ .remove-chip {
323
325
  // Assurer que l'icône reste visible en zoom texte 200%
324
326
  :deep(.v-icon) {
325
327
  font-size: 1rem !important;
@@ -15,6 +15,10 @@ const meta = {
15
15
  items: {
16
16
  control: 'object',
17
17
  },
18
+ headingLevel: {
19
+ control: { type: 'select' },
20
+ options: [1, 2, 3, 4, 5, 6],
21
+ },
18
22
  },
19
23
  } as Meta<typeof CollapsibleList>
20
24
 
@@ -32,7 +36,7 @@ export const Default: Story = {
32
36
  <CollapsibleList
33
37
  :list-title="listTitle"
34
38
  :items="items"
35
- />
39
+ :heading-level="headingLevel" />
36
40
  </div>
37
41
  </template>
38
42
  `,
@@ -43,7 +47,7 @@ export const Default: Story = {
43
47
  import { CollapsibleList } from '@cnamts/synapse'
44
48
 
45
49
  const listTitle = 'Santé'
46
-
50
+ const headingLevel = 4
47
51
  const items = [
48
52
  {
49
53
  text: 'Mon espace santé',
@@ -61,6 +65,7 @@ export const Default: Story = {
61
65
  },
62
66
  args: {
63
67
  listTitle: 'Santé',
68
+ headingLevel: 4,
64
69
  items: [
65
70
  {
66
71
  text: 'Mon espace santé',
@@ -80,7 +85,7 @@ export const Default: Story = {
80
85
  },
81
86
  template: `
82
87
  <div class="d-flex flex-wrap align-center pa-4">
83
- <CollapsibleList v-bind="args" />
88
+ <CollapsibleList v-bind="args"/>
84
89
  </div>
85
90
  `,
86
91
  }
@@ -2,11 +2,15 @@
2
2
  import { computed } from 'vue'
3
3
  import { useDisplay } from 'vuetify'
4
4
  import type { ListItem } from './types'
5
+ import SyHeading from '@/components/SyHeading/SyHeading.vue'
5
6
 
6
- const props = defineProps<{
7
+ const props = withDefaults(defineProps<{
7
8
  listTitle: string | null
8
9
  items: ListItem[]
9
- }>()
10
+ headingLevel?: 1 | 2 | 3 | 4 | 5 | 6
11
+ }>(), {
12
+ headingLevel: 4,
13
+ })
10
14
 
11
15
  const { smAndDown } = useDisplay()
12
16
 
@@ -55,13 +59,17 @@
55
59
  v-else
56
60
  class="vd-collapse-list"
57
61
  >
58
- <h4
59
- class="text-subtitle-1 font-weight-bold mb-3"
62
+ <SyHeading
63
+ :class="headingLevel === 4 ? 'text-subtitle-1 font-weight-bold mb-3' : 'font-weight-bold mb-3'"
64
+ :level="headingLevel"
60
65
  >
61
66
  {{ listTitle }}
62
- </h4>
67
+ </SyHeading>
63
68
 
64
- <ul class="pl-0">
69
+ <ul
70
+ class="
71
+ pl-0"
72
+ >
65
73
  <li
66
74
  v-for="(item, index) in items"
67
75
  :key="index"
@@ -18,7 +18,26 @@ import {
18
18
  iconSrc={AccessibilityIcon}
19
19
  apgHref="https://www.w3.org/WAI/ARIA/apg/patterns/disclosure/"
20
20
  >
21
+ <AuditSection>
22
+ <div class="mt-2">
23
+ <p>Rapport d’audit manuel : <a href="/audits/CollapsibleList.xlsx" style={{ color:'#0C41BD' }}>Voir le rapport</a></p>
24
+ <p style={{ color: 'grey', fontSize: '14px', marginTop: '0px' }}>Correctifs associés (<a href="https://github.com/assurance-maladie-digital/design-system-v3/issues/792" target="_blank" style={{color:'#0C41BD'}}>issue #792</a>)</p>
25
+ </div>
26
+
27
+ </AuditSection>
21
28
  <CriteriaSection>
29
+ <CriteriaCard icon="🧩" title="Niveau de titre configurable via la prop headingLevel">
30
+ <ul>
31
+ <li>Le niveau du titre (h1 à h6) est défini grâce à la propriété <strong>headingLevel</strong> déclarée dans le composant. Si aucune valeur n’est fournie, le composant applique par défaut un titre de niveau h4, défini dans l’implémentation du composant.</li>
32
+ <code>&lt;CollapsibleList
33
+ :list-title="listTitle"
34
+ :items="items"
35
+ :heading-level="4" /&gt; </code>
36
+
37
+ <li><strong>Accessibilité</strong> : Permet que la hiérarchie entre les titres soit pertinente (critère 9.1.1 RGAA) </li>
38
+ </ul>
39
+ </CriteriaCard>
40
+
22
41
  <CriteriaCard icon="🔍" title="Structure sémantique">
23
42
  <ul>
24
43
  <li><strong>Comportement adaptatif</strong> : Section pliable sur mobile, liste statique sur desktop</li>
@@ -66,11 +85,5 @@ import {
66
85
  </ul>
67
86
  </ResourcesSection>
68
87
 
69
- <AuditSection>
70
- <div class="mt-2">
71
- <p>Rapport d’audit manuel : <a href="/audits/CollapsibleList.xlsx" style={{ color:'#0C41BD' }}>Voir le rapport</a></p>
72
- <p style={{ color: 'grey', fontSize: '14px', marginTop: '0px' }}>Correctifs associés (<a href="https://github.com/assurance-maladie-digital/design-system-v3/issues/792" target="_blank" style={{color:'#0C41BD'}}>issue #792</a>)</p>
73
- </div>
74
88
 
75
- </AuditSection>
76
89
  </AccessibilityGuideLayout>
@@ -25,6 +25,7 @@ describe('CollapsibleList – accessibility (axe)', () => {
25
25
  it('has no obvious axe violations in desktop mode', async () => {
26
26
  const wrapper = mount(CollapsibleList, {
27
27
  props: {
28
+ headingLevel: 4,
28
29
  listTitle: 'Santé',
29
30
  items,
30
31
  },
@@ -7,6 +7,7 @@ describe('CollapsibleList', () => {
7
7
  it('renders correctly', async () => {
8
8
  const wrapper = mount(CollapsibleList, {
9
9
  propsData: {
10
+ headingLevel: 4,
10
11
  listTitle: 'Santé',
11
12
  items: [
12
13
  {
@@ -30,6 +31,7 @@ describe('CollapsibleList', () => {
30
31
  it('renders correctly with in mobile mode', () => {
31
32
  const wrapper = mount(CollapsibleList, {
32
33
  propsData: {
34
+ headingLevel: 4,
33
35
  listTitle: 'Santé',
34
36
  items: [
35
37
  {
@@ -8,6 +8,14 @@ const meta = {
8
8
  title: 'Composants/Feedback/CookieBanner',
9
9
  component: CookieBanner,
10
10
  argTypes: {
11
+ 'headingLevel': {
12
+ control: { type: 'select' },
13
+ options: [1, 2, 3, 4, 5, 6],
14
+ },
15
+ 'headingLevelInformation': {
16
+ control: { type: 'select' },
17
+ options: [1, 2, 3, 4, 5, 6],
18
+ },
11
19
  'modelValue': {
12
20
  description: 'V-model, control la visibilité de la bannière',
13
21
  control: { type: 'boolean' },
@@ -193,6 +201,8 @@ const meta = {
193
201
  },
194
202
  args: {
195
203
  modelValue: false,
204
+ headingLevel: 2,
205
+ headingLevelInformation: 2,
196
206
  },
197
207
  } satisfies Meta<typeof CookieBanner>
198
208
 
@@ -9,10 +9,18 @@
9
9
  import { config } from './config'
10
10
  import { locales } from './locales'
11
11
  import CookiesSelection from '../CookiesSelection/CookiesSelection.vue'
12
+ import SyHeading from '@/components/SyHeading/SyHeading.vue'
12
13
 
13
- const props = defineProps<CustomizableOptions & {
14
+ const props = withDefaults(defineProps<CustomizableOptions & {
14
15
  items?: CookiesItems
15
- }>()
16
+ headingLevel?: 1 | 2 | 3 | 4 | 5 | 6
17
+ headingLevelInformation?: 1 | 2 | 3 | 4 | 5 | 6
18
+
19
+ }>(), {
20
+ items: undefined,
21
+ headingLevel: 2,
22
+ headingLevelInformation: 3,
23
+ })
16
24
 
17
25
  const options = useCustomizableOptions(config, props)
18
26
 
@@ -191,11 +199,12 @@
191
199
  :aria-label="locales.label"
192
200
  >
193
201
  <div class="d-flex align-start flex-nowrap pa-0 mb-6">
194
- <h2
195
- class="text-h5 font-weight-bold"
202
+ <SyHeading
203
+ :class="headingLevel === 2 ? 'text-h5 font-weight-bold' : 'font-weight-bold'"
204
+ :level="headingLevel"
196
205
  >
197
206
  {{ locales.title }}
198
- </h2>
207
+ </SyHeading>
199
208
 
200
209
  <VSpacer v-bind="options.spacer" />
201
210
 
@@ -230,6 +239,7 @@
230
239
  <div v-if="showCookiesSelection && items">
231
240
  <CookiesSelection
232
241
  :items="items"
242
+ :heading-level="headingLevelInformation"
233
243
  @submit="personalizeCookies"
234
244
  >
235
245
  <template
@@ -22,6 +22,15 @@ import {
22
22
  <p style={{ color: 'grey', fontSize: '14px', marginTop: '0px' }}>Correctifs associés (<a href="https://github.com/assurance-maladie-digital/design-system-v3/issues/806" target="_blank" style={{color:'#0C41BD'}}>issue #806</a>)</p>
23
23
  </div>
24
24
  <CriteriaSection>
25
+ <CriteriaCard icon="🧩" title="Niveau de titre configurable via la prop headingLevel">
26
+ <ul>
27
+ <li>Le niveau du titre (h1 à h6) est défini grâce à la propriété <strong>headingLevel</strong> déclarée dans le composant. Si aucune valeur n’est fournie, le composant applique par défaut un titre de niveau h2, défini dans l’implémentation du composant.</li>
28
+ <code>&lt;CookieBanner
29
+ :heading-level="2" /&gt; </code>
30
+
31
+ <li><strong>Accessibilité</strong> : Permet que la hiérarchie entre les titres soit pertinente (critère 9.1.1 RGAA) </li>
32
+ </ul>
33
+ </CriteriaCard>
25
34
  <CriteriaCard icon="🧭" title="Structure et nom accessible">
26
35
  <ul>
27
36
  <li><strong>Rôle</strong> : <code>role="dialog"</code> sur le conteneur principal de la bannière.</li>
@@ -27,8 +27,10 @@ describe('CookieBanner', () => {
27
27
  it('emit a reject event with payload built from provided items', async () => {
28
28
  const wrapper = mount(CookieBanner, {
29
29
  props: {
30
+ headingLevel: 2,
31
+ headingLevelInformation: 2,
30
32
  items: {
31
- enessentials: [],
33
+ essentials: [],
32
34
  functional: [],
33
35
  },
34
36
  },
@@ -42,7 +44,7 @@ describe('CookieBanner', () => {
42
44
  await wrapper.find('[data-test-id="reject"]').trigger('click')
43
45
 
44
46
  expect(wrapper.emitted('reject')?.[0]?.[0]).toEqual({
45
- enessentials: false,
47
+ essentials: false,
46
48
  functional: false,
47
49
  })
48
50
  })
@@ -50,6 +52,8 @@ describe('CookieBanner', () => {
50
52
  it('emit an accept event with payload built from provided items', async () => {
51
53
  const wrapper = mount(CookieBanner, {
52
54
  props: {
55
+ headingLevel: 2,
56
+ headingLevelInformation: 2,
53
57
  items: {
54
58
  functional: [],
55
59
  analytics: [],
@@ -90,6 +94,8 @@ describe('CookieBanner', () => {
90
94
  it('does not close the dialog when the customize button is clicked and show the cookie form', async () => {
91
95
  const wrapper = mount(CookieBanner, {
92
96
  props: {
97
+ headingLevel: 2,
98
+ headingLevelInformation: 2,
93
99
  items: {
94
100
  essentials: [
95
101
  {
@@ -138,6 +144,8 @@ describe('CookieBanner', () => {
138
144
  it('emits submit payload coming from CookiesSelection without altering categories', async () => {
139
145
  const wrapper = mount(CookieBanner, {
140
146
  props: {
147
+ headingLevel: 2,
148
+ headingLevelInformation: 2,
141
149
  items: {
142
150
  functional: [],
143
151
  analytics: [],
@@ -136,6 +136,7 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
136
136
  <h2 class="
137
137
  font-weight-bold
138
138
  mb-2
139
+ sy-heading
139
140
  text-subtitle-1
140
141
  ">
141
142
  Cookies requis
@@ -224,14 +225,15 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
224
225
  <!---->
225
226
  </div>
226
227
  </details>
227
- <div
228
- aria-level="3"
229
- class="vd-cookies-information__heading"
228
+ <h3
229
+ class="
230
+ sy-heading
231
+ vd-cookies-information__heading
232
+ "
230
233
  id="radio-group-essentials"
231
- role="heading"
232
234
  >
233
235
  Accepter les cookies de type Cookies requis, ce champ est requis.
234
- </div>
236
+ </h3>
235
237
  <!-- v-if -->
236
238
  </div>
237
239
  <div class="
@@ -241,6 +243,7 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
241
243
  <h2 class="
242
244
  font-weight-bold
243
245
  mb-2
246
+ sy-heading
244
247
  text-subtitle-1
245
248
  ">
246
249
  Cookies fonctionnels
@@ -318,14 +321,15 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
318
321
  <!---->
319
322
  </div>
320
323
  </details>
321
- <div
322
- aria-level="3"
323
- class="vd-cookies-information__heading"
324
+ <h3
325
+ class="
326
+ sy-heading
327
+ vd-cookies-information__heading
328
+ "
324
329
  id="radio-group-functional"
325
- role="heading"
326
330
  >
327
331
  Accepter les cookies de type Cookies fonctionnels, ce champ est requis.
328
- </div>
332
+ </h3>
329
333
  <div class="
330
334
  v-input
331
335
  v-input--center-affix
@@ -442,6 +446,7 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
442
446
  <h2 class="
443
447
  font-weight-bold
444
448
  mb-2
449
+ sy-heading
445
450
  text-subtitle-1
446
451
  ">
447
452
  Cookies d’analyse
@@ -519,14 +524,15 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
519
524
  <!---->
520
525
  </div>
521
526
  </details>
522
- <div
523
- aria-level="3"
524
- class="vd-cookies-information__heading"
527
+ <h3
528
+ class="
529
+ sy-heading
530
+ vd-cookies-information__heading
531
+ "
525
532
  id="radio-group-analytics"
526
- role="heading"
527
533
  >
528
534
  Accepter les cookies de type Cookies d’analyse, ce champ est requis.
529
- </div>
535
+ </h3>
530
536
  <div class="
531
537
  v-input
532
538
  v-input--center-affix
@@ -7,11 +7,18 @@
7
7
  import type { CookieTypes, Cookie } from '../types'
8
8
  import { locales } from './locales'
9
9
  import SyIcon from '@/components/Customs/SyIcon/SyIcon.vue'
10
+ import SyHeading from '@/components/SyHeading/SyHeading.vue'
10
11
 
11
- defineProps<{
12
+ withDefaults(defineProps<{
12
13
  type: CookieTypes
13
14
  tableItems: Cookie[]
14
- }>()
15
+ headingLevel?: 1 | 2 | 3 | 4 | 5 | 6
16
+ headingLevelRadioGroup?: 1 | 2 | 3 | 4 | 5 | 6
17
+
18
+ }>(), {
19
+ headingLevel: 2,
20
+ headingLevelRadioGroup: 3,
21
+ })
15
22
 
16
23
  const status = defineModel<boolean | undefined>()
17
24
 
@@ -93,9 +100,12 @@
93
100
 
94
101
  <template>
95
102
  <div class="vd-cookies-information">
96
- <h2 class="text-subtitle-1 font-weight-bold mb-2">
103
+ <SyHeading
104
+ :class="headingLevel === 2 ? 'text-subtitle-1 font-weight-bold mb-2' : 'font-weight-bold mb-2'"
105
+ :level="headingLevel"
106
+ >
97
107
  {{ locales[type].title }}
98
- </h2>
108
+ </SyHeading>
99
109
 
100
110
  <p class="mb-4">
101
111
  {{ locales[type].description }}
@@ -129,14 +139,13 @@
129
139
  </CookiesTable>
130
140
  </details>
131
141
 
132
- <div
142
+ <SyHeading
133
143
  :id="`radio-group-${type}`"
134
- role="heading"
135
- aria-level="3"
144
+ :level="headingLevelRadioGroup"
136
145
  class="vd-cookies-information__heading"
137
146
  >
138
147
  {{ locales.fieldLabel(locales[type].title) }}
139
- </div>
148
+ </SyHeading>
140
149
 
141
150
  <VRadioGroup
142
151
  v-if="type !== 'essentials'"
@@ -27,6 +27,7 @@ describe('CookiesInformation – accessibility (axe)', () => {
27
27
  it('has no obvious axe violations for functional cookies section', async () => {
28
28
  const wrapper = mount(CookiesInformation, {
29
29
  props: {
30
+ headingLevel: 2,
30
31
  tableItems: cookies,
31
32
  type: 'functional',
32
33
  },
@@ -20,6 +20,7 @@ describe('CookiesInformation', () => {
20
20
  it('renders correctly', () => {
21
21
  const wrapper = mount(CookiesInformation, {
22
22
  props: {
23
+ headingLevel: 2,
23
24
  tableItems: cookies,
24
25
  type: 'functional',
25
26
  },
@@ -38,6 +39,7 @@ describe('CookiesInformation', () => {
38
39
  it('renders correctly without items', () => {
39
40
  const wrapper = mount(CookiesInformation, {
40
41
  props: {
42
+ headingLevel: 2,
41
43
  type: 'functional',
42
44
  tableItems: [],
43
45
  },
@@ -49,6 +51,7 @@ describe('CookiesInformation', () => {
49
51
  it('renders correctly when details is toggled', async () => {
50
52
  const wrapper = mount(CookiesInformation, {
51
53
  propsData: {
54
+ headingLevel: 2,
52
55
  tableItems: cookies,
53
56
  type: 'functional',
54
57
  },
@@ -97,6 +100,7 @@ describe('CookiesInformation', () => {
97
100
  it('update the radio when the modelValue change', async () => {
98
101
  const wrapper = mount(CookiesInformation, {
99
102
  props: {
103
+ headingLevel: 2,
100
104
  tableItems: cookies,
101
105
  type: 'functional',
102
106
  modelValue: true,
@@ -117,6 +121,7 @@ describe('CookiesInformation', () => {
117
121
  it('do not set the radio when the modelValue is undefined', async () => {
118
122
  const wrapper = mount(CookiesInformation, {
119
123
  props: {
124
+ headingLevel: 2,
120
125
  tableItems: cookies,
121
126
  type: 'functional',
122
127
  modelValue: undefined,