@cnamts/synapse 1.0.20 → 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 (414) hide show
  1. package/dist/{DateFilter-XURUmpMl.js → DateFilter-B5n-ZkLi.js} +29 -24
  2. package/dist/{NumberFilter-BZc0O8wV.js → NumberFilter-CtiZ9uj8.js} +1 -1
  3. package/dist/{PeriodFilter-ZNdXcl3p.js → PeriodFilter-DzqiMb-b.js} +1 -1
  4. package/dist/{SelectFilter-DshYU5OK.js → SelectFilter-BOYlF7rX.js} +1 -1
  5. package/dist/{TextFilter-D_c5dRPl.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 +162 -0
  45. package/dist/components/Customs/SyCheckBoxGroup/locales.d.ts +3 -0
  46. package/dist/components/Customs/SyCheckBoxGroup/types.d.ts +10 -0
  47. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +1668 -5
  48. package/dist/components/Customs/SyForm/SyForm.d.ts +356 -348
  49. package/dist/components/Customs/SyPagination/SyPagination.d.ts +11 -1
  50. package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +1609 -4
  51. package/dist/components/Customs/SyTextField/SyTextField.d.ts +1629 -1365
  52. package/dist/components/DataList/DataList.d.ts +1 -1
  53. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +3868 -3123
  54. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +1946 -1562
  55. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +833 -687
  56. package/dist/components/DeclarationAccessibilityPage/DeclarationAccessibilityPage.d.ts +60 -0
  57. package/dist/components/DialogBox/DialogBox.d.ts +482 -416
  58. package/dist/components/DownloadBtn/config.d.ts +1 -1
  59. package/dist/components/ErrorPage/ErrorPage.d.ts +5 -12
  60. package/dist/components/ErrorPage/locales.d.ts +18 -3
  61. package/dist/components/FileList/UploadItem/locales.d.ts +4 -0
  62. package/dist/components/FileUpload/FileUpload.d.ts +6 -4
  63. package/dist/components/FileUpload/locales.d.ts +1 -0
  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 +1 -0
  69. package/dist/components/HeaderBar/HeaderLogo/HeaderLogo.d.ts +1 -0
  70. package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +3 -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/MaintenancePage/locales.d.ts +18 -2
  76. package/dist/components/NirField/NirField.d.ts +1659 -1371
  77. package/dist/components/NotFoundPage/NotFoundPage.d.ts +9 -3
  78. package/dist/components/NotFoundPage/locales.d.ts +20 -4
  79. package/dist/components/PageContainer/PageContainer.d.ts +3 -1
  80. package/dist/components/PasswordField/PasswordField.d.ts +1 -1
  81. package/dist/components/PeriodField/PeriodField.d.ts +7712 -6216
  82. package/dist/components/PhoneField/PhoneField.d.ts +831 -687
  83. package/dist/components/RangeField/RangeSlider/RangeSlider.d.ts +4 -12
  84. package/dist/components/StatusPage/StatusPage.d.ts +50 -0
  85. package/dist/components/SubHeader/SubHeader.d.ts +2 -0
  86. package/dist/components/SyAlert/SyAlert.d.ts +74 -70
  87. package/dist/components/SyBtnMenu/SyBtnMenu.d.ts +10 -1
  88. package/dist/components/SyHeading/SyHeading.d.ts +20 -0
  89. package/dist/components/SyTextArea/SyTextArea.d.ts +476 -420
  90. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +759 -468
  91. package/dist/components/Tables/SyTable/SyTable.d.ts +761 -470
  92. package/dist/components/Tables/common/SyTableFilter.d.ts +1 -1
  93. package/dist/components/Tables/common/SyTablePagination.d.ts +269 -170
  94. package/dist/components/Tables/common/filters/DateFilter.d.ts +10 -1
  95. package/dist/components/Tables/common/filters/NumberFilter.d.ts +1 -1
  96. package/dist/components/Tables/common/filters/PeriodFilter.d.ts +1 -1
  97. package/dist/components/Tables/common/filters/SelectFilter.d.ts +1 -1
  98. package/dist/components/Tables/common/filters/TextFilter.d.ts +1 -1
  99. package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +166 -138
  100. package/dist/components/Tables/common/types.d.ts +2 -0
  101. package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +35 -1212
  102. package/dist/components/UserMenuBtn/UserMenuBtn.d.ts +1 -0
  103. package/dist/components/index.d.ts +4 -0
  104. package/dist/components/types.d.ts +2 -0
  105. package/dist/design-system-v3.js +131 -127
  106. package/dist/design-system-v3.umd.cjs +274 -274
  107. package/dist/designTokens/tokens/amelipro/apLightTheme.d.ts +26 -14
  108. package/dist/designTokens/tokens/amelipro/apSemantic.d.ts +19 -13
  109. package/dist/designTokens/tokens/cnam/cnamLightTheme.d.ts +28 -15
  110. package/dist/designTokens/tokens/cnam/cnamSemantic.d.ts +20 -13
  111. package/dist/designTokens/tokens/pa/paLightTheme.d.ts +26 -15
  112. package/dist/designTokens/tokens/pa/paSemantic.d.ts +19 -13
  113. package/dist/main-CEl4J8_T.js +37241 -0
  114. package/dist/style.css +1 -1
  115. package/dist/utils/theme/index.d.ts +6 -0
  116. package/dist/vuetifyConfig.d.ts +14 -14
  117. package/package.json +16 -7
  118. package/src/assets/amelipro/img/logo-amelipro.svg +9 -0
  119. package/src/assets/apTokens.scss +53 -17
  120. package/src/assets/overrides/_icons.scss +12 -2
  121. package/src/assets/overrides/_tooltips.scss +5 -6
  122. package/src/assets/overrides/_typography.scss +17 -2
  123. package/src/assets/overrides/_utilities.scss +49 -3
  124. package/src/assets/tokens.scss +53 -17
  125. package/src/components/Accordion/accessibilite/Accessibility.mdx +5 -4
  126. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/AmeliproAccordionTemplate.vue +2 -2
  127. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/__tests__/__snapshots__/AmeliproAccordionTemplate.spec.ts.snap +0 -2
  128. package/src/components/Amelipro/AmeliproAccordionFrieze/AmeliproAccordionFrieze.vue +2 -2
  129. package/src/components/Amelipro/AmeliproAccordionFrieze/__tests__/__snapshots__/AmeliproAccordionFrieze.spec.ts.snap +14 -56
  130. package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.vue +1 -1
  131. package/src/components/Amelipro/AmeliproAccordionList/__tests__/__snapshots__/AmeliproAccordionList.spec.ts.snap +15 -23
  132. package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.vue +1 -1
  133. package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/__snapshots__/AmeliproAccordionResultList.spec.ts.snap +15 -3
  134. package/src/components/Amelipro/AmeliproCarousel/__tests__/__snapshots__/AmeliproCarousel.spec.ts.snap +0 -2
  135. package/src/components/Amelipro/AmeliproClickableTile/tests/__snapshots__/AmeliproClickableTile.spec.ts.snap +0 -98
  136. package/src/components/Amelipro/AmeliproContentLayout/AmeliproContentLayout.mdx +1 -1
  137. package/src/components/Amelipro/AmeliproContentLayout/AmeliproContentLayout.stories.ts +5 -16
  138. package/src/components/Amelipro/AmeliproCopyBtn/AmeliproCopyBtn.mdx +3 -1
  139. package/src/components/Amelipro/AmeliproCopyBtn/AmeliproCopyBtn.stories.ts +7 -0
  140. package/src/components/Amelipro/AmeliproDentalChart/AmeliproTooth/AmeliproTooth.vue +0 -1
  141. package/src/components/Amelipro/AmeliproDentalChart/AmeliproTooth/tests/__snapshots__/AmeliproTooth.spec.ts.snap +0 -1
  142. package/src/components/Amelipro/AmeliproDentalChart/tests/__snapshots__/AmeliproDentalChart.spec.ts.snap +0 -52
  143. package/src/components/Amelipro/AmeliproDialog/__tests__/__snapshots__/AmeliproDialog.spec.ts.snap +6 -0
  144. package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.mdx +3 -1
  145. package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.stories.ts +19 -0
  146. package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.vue +2 -2
  147. package/src/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.vue +3 -4
  148. package/src/components/Amelipro/AmeliproFirstLogin/__tests__/__snapshots__/AmeliproFirstLogin.spec.ts.snap +2 -13
  149. package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.mdx +3 -1
  150. package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.stories.ts +7 -0
  151. package/src/components/Amelipro/AmeliproMenu/__tests__/__snapshots__/AmeliproMenu.spec.ts.snap +8 -0
  152. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/__snapshots__/AmeliproPatientLogged.spec.ts.snap +9 -2
  153. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/__snapshots__/AmeliproPostalAddressCityRow.spec.ts.snap +28 -10
  154. package/src/components/Amelipro/AmeliproPostalAddressField/__tests__/__snapshots__/AmeliproPostalAddressField.spec.ts.snap +44 -8
  155. package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.vue +1 -1
  156. package/src/components/Amelipro/AmeliproResultList/__tests__/__snapshots__/AmeliproResultList.spec.ts.snap +15 -3
  157. package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +1 -1
  158. package/src/components/Amelipro/AmeliproTable/__tests__/__snapshots__/AmeliproTable.spec.ts.snap +0 -1
  159. package/src/components/Amelipro/AmeliproTooltips/__tests__/__snapshots__/AmeliproTooltips.spec.ts.snap +6 -0
  160. package/src/components/Amelipro/AmeliproUpload/__tests__/__snapshots__/AmeliproUpload.spec.ts.snap +2 -4
  161. package/src/components/Amelipro/StructureMenu/StructureList/__tests__/__snapshots__/StructureList.spec.ts.snap +0 -2
  162. package/src/components/Amelipro/UserMenu/__tests__/__snapshots__/UserMenu.spec.ts.snap +8 -0
  163. package/src/components/BackBtn/BackBtn.vue +1 -1
  164. package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +36 -18
  165. package/src/components/ChipList/ChipList.vue +4 -2
  166. package/src/components/CollapsibleList/CollapsibleList.stories.ts +8 -3
  167. package/src/components/CollapsibleList/CollapsibleList.vue +14 -6
  168. package/src/components/CollapsibleList/accessibilite/Accessibility.mdx +19 -6
  169. package/src/components/CollapsibleList/tests/CollapsibleList.a11y.spec.ts +1 -0
  170. package/src/components/CollapsibleList/tests/CollapsibleList.spec.ts +2 -0
  171. package/src/components/ContextualMenu/ContextualMenu.stories.ts +0 -3
  172. package/src/components/ContextualMenu/accessibilite/Accessibility.mdx +67 -11
  173. package/src/components/CookieBanner/CookieBanner.stories.ts +21 -20
  174. package/src/components/CookieBanner/CookieBanner.vue +35 -10
  175. package/src/components/CookieBanner/accessibilite/Accessibility.mdx +76 -11
  176. package/src/components/CookieBanner/tests/CookieBanner.spec.ts +56 -4
  177. package/src/components/CookieBanner/tests/__snapshots__/CookieBanner.spec.ts.snap +21 -15
  178. package/src/components/CookiesSelection/CookiesInformation/CookiesInformation.vue +17 -8
  179. package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.a11y.spec.ts +1 -0
  180. package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.spec.ts +5 -0
  181. package/src/components/CookiesSelection/CookiesSelection.vue +7 -2
  182. package/src/components/CookiesSelection/tests/CookiesSelection.a11y.spec.ts +1 -0
  183. package/src/components/CookiesSelection/tests/CookiesSelection.spec.ts +5 -0
  184. package/src/components/CookiesSelection/tests/__snapshots__/CookiesSelection.spec.ts.snap +21 -15
  185. package/src/components/CopyBtn/CopyBtn.vue +6 -4
  186. package/src/components/CopyBtn/accessibilite/Accessibility.mdx +82 -11
  187. package/src/components/CopyBtn/tests/__snapshots__/CopyBtn.spec.ts.snap +5 -1
  188. package/src/components/Customs/Selects/SyInputSelect/SyInputSelect.stories.ts +4 -10
  189. package/src/components/Customs/Selects/SySelect/SySelect.mdx +0 -1
  190. package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +10 -10
  191. package/src/components/Customs/Selects/SySelect/SySelect.vue +17 -0
  192. package/src/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.ts +1 -1
  193. package/src/components/Customs/Selects/SySelect/tests/SySelect.a11y.spec.ts +1 -3
  194. package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +72 -0
  195. package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.mdx +32 -0
  196. package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.stories.ts +856 -0
  197. package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.vue +334 -0
  198. package/src/components/Customs/SyCheckBoxGroup/accessibilite/Accessibility.mdx +243 -0
  199. package/src/components/Customs/SyCheckBoxGroup/locales.ts +3 -0
  200. package/src/components/Customs/SyCheckBoxGroup/tests/SyCheckBoxGroup.a11y.spec.ts +30 -0
  201. package/src/components/Customs/SyCheckBoxGroup/tests/SyCheckBoxGroup.spec.ts +152 -0
  202. package/src/components/Customs/SyCheckBoxGroup/types.ts +10 -0
  203. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +17 -28
  204. package/src/components/Customs/SyCheckbox/accessibilite/Accessibility.mdx +1 -1
  205. package/src/components/Customs/SyForm/SyForm.a11y.spec.ts +1 -1
  206. package/src/components/Customs/SyIcon/SyIcon.a11y.spec.ts +31 -2
  207. package/src/components/Customs/SyIcon/SyIcon.vue +9 -5
  208. package/src/components/Customs/SyPagination/SyPagination.stories.ts +14 -2
  209. package/src/components/Customs/SyPagination/SyPagination.vue +20 -5
  210. package/src/components/Customs/SyPagination/accessibilite/Accessibility.mdx +79 -8
  211. package/src/components/Customs/SyPagination/tests/SyPagination.a11y.spec.ts +38 -12
  212. package/src/components/Customs/SyPagination/tests/SyPagination.spec.ts +12 -0
  213. package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +16 -43
  214. package/src/components/Customs/SyTextField/SyTextField.stories.ts +4 -0
  215. package/src/components/Customs/SyTextField/SyTextField.vue +39 -5
  216. package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +28 -3
  217. package/src/components/DatePicker/CalendarMode/DatePicker.vue +55 -19
  218. package/src/components/DatePicker/CalendarMode/tests/DatePicker.spec.ts +9 -3
  219. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +44 -3
  220. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +70 -47
  221. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.a11y.spec.ts +9 -1
  222. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +48 -21
  223. package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +98 -0
  224. package/src/components/DatePicker/docExamples/BidirectionalComplexValidation.vue +23 -9
  225. package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +21 -8
  226. package/src/components/DatePicker/docExamples/DatePickerValidationExamples.vue +50 -22
  227. package/src/components/DatePicker/playground/ComplexDatePickerPlayground.vue +48 -10
  228. package/src/components/DatePicker/playground/DatePickerHolidayRule.vue +16 -3
  229. package/src/components/DeclarationAccessibilityPage/DeclarationAccessibilityPage.mdx +83 -0
  230. package/src/components/DeclarationAccessibilityPage/DeclarationAccessibilityPage.stories.ts +502 -0
  231. package/src/components/DeclarationAccessibilityPage/DeclarationAccessibilityPage.vue +428 -0
  232. package/src/components/DeclarationAccessibilityPage/accessibilite/Accessibility.mdx +75 -0
  233. package/src/components/DeclarationAccessibilityPage/tests/DeclarationAccessibilityPage.a11y.spec.ts +53 -0
  234. package/src/components/DeclarationAccessibilityPage/tests/DeclarationAccessibilityPage.spec.ts +59 -0
  235. package/src/components/DiacriticPicker/DiacriticPicker.vue +20 -1
  236. package/src/components/DialogBox/DialogBox.stories.ts +13 -0
  237. package/src/components/DialogBox/DialogBox.vue +12 -5
  238. package/src/components/DialogBox/accessibilite/Accessibility.mdx +27 -7
  239. package/src/components/DialogBox/tests/DialogBox.a11y.spec.ts +1 -0
  240. package/src/components/DialogBox/tests/DialogBox.spec.ts +40 -6
  241. package/src/components/DownloadBtn/accessibilite/Accessibility.mdx +73 -11
  242. package/src/components/DownloadBtn/config.ts +1 -1
  243. package/src/components/ErrorPage/ErrorPage.mdx +6 -16
  244. package/src/components/ErrorPage/ErrorPage.stories.ts +90 -126
  245. package/src/components/ErrorPage/ErrorPage.vue +44 -125
  246. package/src/components/ErrorPage/accessibilite/Accessibility.mdx +83 -6
  247. package/src/components/ErrorPage/assets/error-ap.svg +1774 -0
  248. package/src/components/ErrorPage/locales.ts +21 -3
  249. package/src/components/ErrorPage/tests/ErrorPage.a11y.spec.ts +5 -13
  250. package/src/components/ErrorPage/tests/ErrorPage.spec.ts +2 -41
  251. package/src/components/ErrorPage/tests/__snapshots__/ErrorPage.spec.ts.snap +10 -266
  252. package/src/components/ExternalLinks/tests/__snapshots__/ExternalLinks.spec.ts.snap +13 -2
  253. package/src/components/FileList/FileList.stories.ts +4 -0
  254. package/src/components/FileList/UploadItem/UploadItem.vue +8 -3
  255. package/src/components/FileList/UploadItem/locales.ts +10 -0
  256. package/src/components/FileList/accessibilite/Accessibility.mdx +55 -7
  257. package/src/components/FileUpload/FileUpload.vue +65 -37
  258. package/src/components/FileUpload/FileUploadContent.vue +1 -1
  259. package/src/components/FileUpload/accessibilite/Accessibility.mdx +48 -5
  260. package/src/components/FileUpload/locales.ts +1 -0
  261. package/src/components/FileUpload/tests/FileUpload.spec.ts +14 -14
  262. package/src/components/FilterInline/FilterInline.stories.ts +0 -15
  263. package/src/components/FilterInline/FilterInline.vue +1 -0
  264. package/src/components/FilterInline/accessibilite/Accessibility.mdx +70 -7
  265. package/src/components/FilterInline/tests/__snapshots__/FilterInline.spec.ts.snap +3 -3
  266. package/src/components/FilterSideBar/FilterSideBar.stories.ts +0 -3
  267. package/src/components/FilterSideBar/FilterSideBar.vue +2 -1
  268. package/src/components/FilterSideBar/accessibilite/Accessibility.mdx +70 -9
  269. package/src/components/FooterBar/FooterBar.stories.ts +316 -48
  270. package/src/components/FooterBar/FooterBar.vue +67 -9
  271. package/src/components/FooterBar/config.ts +2 -2
  272. package/src/components/FooterBar/defaultSocialMediaLinks.ts +6 -4
  273. package/src/components/FooterBar/locales.ts +1 -0
  274. package/src/components/FooterBar/tests/FooterBarConfig.spec.ts +1 -1
  275. package/src/components/FooterBar/tests/__snapshots__/FooterBar.spec.ts.snap +6 -25
  276. package/src/components/FooterBar/types.d.ts +1 -0
  277. package/src/components/HeaderBar/HeaderBar.stories.ts +23 -1
  278. package/src/components/HeaderBar/HeaderBar.vue +4 -0
  279. package/src/components/HeaderBar/HeaderLogo/HeaderLogo.vue +7 -2
  280. package/src/components/HeaderBar/HeaderLogo/tests/HeaderLogo.spec.ts +5 -0
  281. package/src/components/HeaderBar/accessibilite/Accessibility.mdx +24 -5
  282. package/src/components/HeaderBar/tests/HeaderBar.a11y.spec.ts +1 -0
  283. package/src/components/HeaderBar/tests/HeaderBar.spec.ts +3 -0
  284. package/src/components/HeaderNavigationBar/HeaderNavigationBar.stories.ts +4 -0
  285. package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +2 -0
  286. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.spec.ts +3 -0
  287. package/src/components/LogoBrandSection/LogoBrandSection.stories.ts +22 -0
  288. package/src/components/LogoBrandSection/LogoBrandSection.vue +13 -5
  289. package/src/components/LogoBrandSection/tests/LogoBrandSection.a11y.spec.ts +2 -0
  290. package/src/components/LogoBrandSection/tests/LogoBrandSection.spec.ts +44 -0
  291. package/src/components/LogoBrandSection/tests/__snapshots__/LogoBrandSection.spec.ts.snap +2 -0
  292. package/src/components/MaintenancePage/MaintenancePage.mdx +1 -1
  293. package/src/components/MaintenancePage/MaintenancePage.vue +42 -7
  294. package/src/components/MaintenancePage/accessibilite/Accessibility.mdx +63 -6
  295. package/src/components/MaintenancePage/assets/maintenance-ap.svg +1718 -0
  296. package/src/components/MaintenancePage/locales.ts +24 -3
  297. package/src/components/MaintenancePage/tests/MaintenancePage.a11y.spec.ts +76 -3
  298. package/src/components/MaintenancePage/tests/MaintenancePage.spec.ts +60 -2
  299. package/src/components/MaintenancePage/tests/__snapshots__/MaintenancePage.spec.ts.snap +5 -2
  300. package/src/components/NotFoundPage/NotFoundPage.mdx +1 -1
  301. package/src/components/NotFoundPage/NotFoundPage.stories.ts +4 -4
  302. package/src/components/NotFoundPage/NotFoundPage.vue +30 -14
  303. package/src/components/NotFoundPage/accessibilite/Accessibility.mdx +80 -6
  304. package/src/components/NotFoundPage/assets/not-found-ap.svg +2061 -0
  305. package/src/components/NotFoundPage/locales.ts +24 -4
  306. package/src/components/NotFoundPage/tests/NotFoundPage.a11y.spec.ts +217 -4
  307. package/src/components/NotFoundPage/tests/NotFoundPage.spec.ts +123 -12
  308. package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +4 -2
  309. package/src/components/NotificationBar/NotificationBar.mdx +2 -2
  310. package/src/components/NotificationBar/accessibilite/Accessibility.mdx +68 -8
  311. package/src/components/PageContainer/PageContainer.stories.ts +47 -0
  312. package/src/components/PageContainer/PageContainer.vue +4 -2
  313. package/src/components/PageContainer/accessibilite/Accessibility.mdx +67 -0
  314. package/src/components/PageContainer/tests/PageContainer.a11y.spec.ts +14 -7
  315. package/src/components/PaginatedTable/PaginatedTable.mdx +3 -3
  316. package/src/components/PaginatedTable/PaginatedTable.stories.ts +9 -1
  317. package/src/components/PeriodField/PeriodField.vue +4 -0
  318. package/src/components/PeriodField/tests/PeriodField.a11y.spec.ts +10 -1
  319. package/src/components/PhoneField/PhoneField.stories.ts +115 -69
  320. package/src/components/PhoneField/PhoneField.vue +152 -83
  321. package/src/components/PhoneField/accessibilite/Accessibility.mdx +306 -9
  322. package/src/components/PhoneField/indicatifs.ts +2 -2
  323. package/src/components/PhoneField/tests/PhoneField.a11y.spec.ts +22 -9
  324. package/src/components/PhoneField/tests/PhoneField.spec.ts +82 -5
  325. package/src/components/SearchListField/SearchListField.vue +1 -1
  326. package/src/components/SearchListField/accessibilite/Accessibility.mdx +69 -9
  327. package/src/components/SearchListField/tests/SearchListField.a11y.spec.ts +37 -0
  328. package/src/components/SocialMediaLinks/DefaultSocialMediaLinks.ts +6 -4
  329. package/src/components/SocialMediaLinks/SocialMediaLinks.mdx +7 -5
  330. package/src/components/SocialMediaLinks/SocialMediaLinks.stories.ts +17 -13
  331. package/src/components/SocialMediaLinks/SocialMediaLinks.vue +10 -2
  332. package/src/components/SocialMediaLinks/accessibilite/Accessibility.mdx +63 -11
  333. package/src/components/SocialMediaLinks/tests/DefaultSocialMediaLinks.spec.ts +5 -5
  334. package/src/components/SocialMediaLinks/tests/SocialMediaLinks.a11y.spec.ts +59 -0
  335. package/src/components/SocialMediaLinks/tests/SocialMediaLinks.spec.ts +9 -7
  336. package/src/components/StatusPage/StatusPage.mdx +31 -0
  337. package/src/components/StatusPage/StatusPage.stories.ts +236 -0
  338. package/src/components/StatusPage/StatusPage.vue +167 -0
  339. package/src/components/StatusPage/accessibilite/Accessibility.mdx +100 -0
  340. package/src/components/StatusPage/tests/StatusPage.a11y.spec.ts +30 -0
  341. package/src/components/StatusPage/tests/StatusPage.spec.ts +53 -0
  342. package/src/components/StatusPage/tests/__snapshots__/StatusPage.spec.ts.snap +272 -0
  343. package/src/components/SubHeader/SubHeader.stories.ts +16 -0
  344. package/src/components/SubHeader/SubHeader.vue +6 -3
  345. package/src/components/SubHeader/accessibilite/Accessibility.mdx +27 -6
  346. package/src/components/SyAlert/SyAlert.vue +21 -20
  347. package/src/components/SyBtnMenu/SyBtnMenu.vue +33 -17
  348. package/src/components/SyBtnMenu/tests/SyBtnMenu.a11y.spec.ts +38 -0
  349. package/src/components/SyBtnMenu/tests/SyBtnMenu.spec.ts +41 -0
  350. package/src/components/SyHeading/SyHeading.vue +18 -0
  351. package/src/components/TableToolbar/TableToolbar.stories.ts +6 -6
  352. package/src/components/TableToolbar/TableToolbar.vue +1 -1
  353. package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +96 -35
  354. package/src/components/Tables/SyServerTable/SyServerTable.vue +2 -0
  355. package/src/components/Tables/SyTable/SyTable.vue +2 -0
  356. package/src/components/Tables/common/SyTablePagination.vue +16 -10
  357. package/src/components/Tables/common/filters/DateFilter.vue +5 -0
  358. package/src/components/Tables/common/tests/SyTablePagination.spec.ts +40 -24
  359. package/src/components/Tables/common/types.ts +3 -0
  360. package/src/components/UploadWorkflow/UploadWorkflow.mdx +11 -1
  361. package/src/components/UploadWorkflow/UploadWorkflow.stories.ts +118 -14
  362. package/src/components/UploadWorkflow/UploadWorkflow.vue +59 -31
  363. package/src/components/UploadWorkflow/accessibilite/Accessibility.mdx +56 -5
  364. package/src/components/UploadWorkflow/accessibilite/UploadWorkflow.a11y.spec.ts +110 -0
  365. package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +37 -7
  366. package/src/components/UploadWorkflow/tests/__snapshots__/UploadWorkflow.spec.ts.snap +139 -112
  367. package/src/components/UploadWorkflow/useFileList.ts +7 -0
  368. package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +53 -31
  369. package/src/components/UserMenuBtn/UserMenuBtn.vue +4 -1
  370. package/src/components/UserMenuBtn/accessibilite/Accessibility.mdx +72 -8
  371. package/src/components/index.ts +4 -0
  372. package/src/components/types.ts +4 -0
  373. package/src/composables/date/tests/useDateInitialization.spec.ts +22 -1
  374. package/src/composables/date/useDateInitializationDayjs.ts +4 -7
  375. package/src/composables/date/useDatePickerAccessibility.ts +2 -3
  376. package/src/composables/rules/tests/useFieldValidation.spec.ts +39 -3
  377. package/src/composables/rules/useFieldValidation.ts +24 -9
  378. package/src/composables/useFilterable/useFilterable.spec.ts +52 -2
  379. package/src/composables/useFilterable/useFilterable.ts +7 -1
  380. package/src/designTokens/tokens/amelipro/apLightTheme.ts +27 -15
  381. package/src/designTokens/tokens/amelipro/apSemantic.ts +21 -15
  382. package/src/designTokens/tokens/cnam/cnamLightTheme.ts +28 -15
  383. package/src/designTokens/tokens/cnam/cnamSemantic.ts +21 -14
  384. package/src/designTokens/tokens/pa/paLightTheme.ts +27 -16
  385. package/src/designTokens/tokens/pa/paSemantic.ts +19 -13
  386. package/src/directives/rgaaSvgFix.ts +2 -7
  387. package/src/stories/Accessibilite/{Audit → AuditEtContreAudit}/Exemptions-derogations.mdx +1 -1
  388. package/src/stories/Accessibilite/AuditEtContreAudit/Introduction.mdx +188 -0
  389. package/src/stories/Accessibilite/{Audit → AuditEtContreAudit}/RGAA.mdx +1 -1
  390. package/src/stories/Accessibilite/Introduction.mdx +22 -3
  391. package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +21 -22
  392. package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +7 -0
  393. package/src/stories/DeprecationNotice/DeprecationNotice.ts +41 -0
  394. package/src/stories/DesignTokens/ColorDisplay.vue +12 -5
  395. package/src/stories/DesignTokens/Colors.mdx +8 -59
  396. package/src/stories/DesignTokens/colors.stories.ts +1862 -1071
  397. package/src/stories/EcoConception/EcoGuideComponent.vue +10 -4
  398. package/src/utils/theme/index.ts +19 -0
  399. package/src/utils/theme/tests/useThemeLocales.spec.ts +245 -0
  400. package/dist/components/MaintenancePage/index.d.ts +0 -2
  401. package/dist/main-CuI6xaPq.js +0 -36396
  402. package/src/components/Customs/SyTabs/tests/SyTabs.a11y.spec.ts +0 -51
  403. package/src/components/DataListItem/tests/DataListItem.a11y.spec.ts +0 -31
  404. package/src/components/DatePicker/CalendarMode/tests/DatePicker.a11y.spec.ts +0 -27
  405. package/src/components/DownloadBtn/tests/DownloadBtn.a11y.spec.ts +0 -26
  406. package/src/components/ExternalLinks/tests/ExternalLinks.a11y.spec.ts +0 -39
  407. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.a11y.spec.ts +0 -45
  408. package/src/components/HeaderToolbar/tests/HeaderToolbar.a11y.spec.ts +0 -25
  409. package/src/components/LunarCalendar/tests/LunarCalendar.a11y.spec.ts +0 -31
  410. package/src/components/MaintenancePage/index.ts +0 -3
  411. package/src/components/PageContainer/Accessibilite/Accessibility.mdx +0 -53
  412. package/src/components/PageContainer/Accessibilite/AccessibilityGuide.mdx +0 -0
  413. package/src/components/PaginatedTable/tests/PaginatedTable.a11y.spec.ts +0 -43
  414. /package/src/components/NotFoundPage/assets/{not-found.svg → not-found-cnam.svg} +0 -0
@@ -1,15 +1,80 @@
1
- import { Meta, Story } from '@storybook/addon-docs';
2
- import * as CookiesStories from '../CookieBanner.stories.ts';
3
- import '@/stories/styles/shared.css';
1
+ import { Meta, Primary } from '@storybook/blocks';
2
+ import * as CookieBannerStories from '../CookieBanner.stories.ts';
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={CookiesStories} />
13
+ <Meta of={CookieBannerStories}/>
6
14
 
7
- <div className="header">
8
- <h1>Accessibilité</h1>
9
- </div>
15
+ <AccessibilityGuideLayout
16
+ componentName="CookieBanner"
17
+ iconSrc={AccessibilityIcon}
18
+ apgHref="https://www.w3.org/WAI/ARIA/apg/patterns/alertdialog/"
19
+ >
20
+ <div class="mt-6">
21
+ <p>Rapport d’audit manuel : <a href="/audits/Cookies.xlsx" style={{ color:'#0C41BD' }}>Voir le rapport</a></p>
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
+ </div>
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>
34
+ <CriteriaCard icon="🧭" title="Structure et nom accessible">
35
+ <ul>
36
+ <li><strong>Rôle</strong> : <code>role="dialog"</code> sur le conteneur principal de la bannière.</li>
37
+ <li><strong>Nom accessible</strong> : <code>aria-label="Gestion des cookies"</code> (ou <code>aria-labelledby</code> pointant vers le titre).</li>
38
+ <li><strong>Hiérarchie</strong> : le titre est exposé (<code>h2</code>) et peut être référencé par <code>aria-labelledby</code> si besoin.</li>
39
+ </ul>
40
+ </CriteriaCard>
10
41
 
42
+ <CriteriaCard icon="⌨️" title="Navigation clavier">
43
+ <ul>
44
+ <li>Gestion de la touche <kbd>Tab</kbd> pour boucler le focus dans la bannière.</li>
45
+ <li>Échappe (<kbd>Esc</kbd>) ferme la bannière ou revient depuis la personnalisation.</li>
46
+ <li>Focus initial sur le bouton de fermeture à l’ouverture.</li>
47
+ </ul>
48
+ </CriteriaCard>
11
49
 
12
- <div class="mt-2">
13
- <p>Rapport d’audit manuel : <a href="/audits/Cookies.xlsx" style={{ color:'#0C41BD' }}>Voir le rapport</a></p>
14
- <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>
15
- </div>
50
+ <CriteriaCard icon="🦻" title="Événements et consentement">
51
+ <ul>
52
+ <li><strong>accept/reject</strong> : émettent les catégories configurables (via les items) et toujours <code>essentials: true</code> si fournis.</li>
53
+ <li><strong>submit</strong> : renvoie les préférences personnalisées + <code>essentials: true</code> le cas échéant.</li>
54
+ <li>Pas de chargement de cookies non essentiels avant l’<code>accept</code> ou <code>submit</code>.</li>
55
+ </ul>
56
+ </CriteriaCard>
57
+ </CriteriaSection>
58
+
59
+ <DemoSection componentName="CookieBanner">
60
+ <Primary />
61
+ </DemoSection>
62
+
63
+ <BestPracticesSection>
64
+ <ul>
65
+ <li>Ne surchargez pas la description : un paragraphe clair et concis.</li>
66
+ <li>Assurez un contraste suffisant des boutons et du fond de bannière.</li>
67
+ <li>Proposez un lien « En savoir plus » vers votre politique cookies.</li>
68
+ <li>Chargez les cookies non essentiels uniquement après <code>accept</code> ou <code>submit</code>.</li>
69
+ <li>Conservez la possibilité de rouvrir la bannière ou de modifier le choix ailleurs dans l’interface.</li>
70
+ </ul>
71
+ </BestPracticesSection>
72
+
73
+ <ResourcesSection>
74
+ <ul>
75
+ <li><a href="https://www.w3.org/WAI/ARIA/apg/patterns/alertdialog/" target="_blank" rel="noopener noreferrer">APG : Alert dialog</a></li>
76
+ <li><a href="https://www.cnil.fr/fr/cookies-traceurs-que-dit-la-loi" target="_blank" rel="noopener noreferrer">CNIL : Cookies et traceurs</a></li>
77
+ <li><a href="https://www.w3.org/WAI/WCAG21/quickref/" target="_blank" rel="noopener noreferrer">Référence rapide WCAG 2.1</a></li>
78
+ </ul>
79
+ </ResourcesSection>
80
+ </AccessibilityGuideLayout>
@@ -24,8 +24,16 @@ describe('CookieBanner', () => {
24
24
  expect(wrapper.find('[data-test-id="customize"]').attributes('style')).toContain('100%')
25
25
  })
26
26
 
27
- it('emit a reject event when the reject btn is clicked', async () => {
27
+ it('emit a reject event with payload built from provided items', async () => {
28
28
  const wrapper = mount(CookieBanner, {
29
+ props: {
30
+ headingLevel: 2,
31
+ headingLevelInformation: 2,
32
+ items: {
33
+ essentials: [],
34
+ functional: [],
35
+ },
36
+ },
29
37
  global: {
30
38
  stubs: {
31
39
  Teleport: true,
@@ -35,11 +43,22 @@ describe('CookieBanner', () => {
35
43
 
36
44
  await wrapper.find('[data-test-id="reject"]').trigger('click')
37
45
 
38
- expect(wrapper.emitted()).toHaveProperty('reject')
46
+ expect(wrapper.emitted('reject')?.[0]?.[0]).toEqual({
47
+ essentials: false,
48
+ functional: false,
49
+ })
39
50
  })
40
51
 
41
- it('emit a accept event when the accept btn is clicked', async () => {
52
+ it('emit an accept event with payload built from provided items', async () => {
42
53
  const wrapper = mount(CookieBanner, {
54
+ props: {
55
+ headingLevel: 2,
56
+ headingLevelInformation: 2,
57
+ items: {
58
+ functional: [],
59
+ analytics: [],
60
+ },
61
+ },
43
62
  global: {
44
63
  stubs: {
45
64
  Teleport: true,
@@ -49,7 +68,10 @@ describe('CookieBanner', () => {
49
68
 
50
69
  await wrapper.find('[data-test-id="accept"]').trigger('click')
51
70
 
52
- expect(wrapper.emitted()).toHaveProperty('accept')
71
+ expect(wrapper.emitted('accept')?.[0]?.[0]).toEqual({
72
+ functional: true,
73
+ analytics: true,
74
+ })
53
75
  })
54
76
 
55
77
  it('does not close the dialog when the customize button is clicked and do not show the cookie form', async () => {
@@ -72,6 +94,8 @@ describe('CookieBanner', () => {
72
94
  it('does not close the dialog when the customize button is clicked and show the cookie form', async () => {
73
95
  const wrapper = mount(CookieBanner, {
74
96
  props: {
97
+ headingLevel: 2,
98
+ headingLevelInformation: 2,
75
99
  items: {
76
100
  essentials: [
77
101
  {
@@ -116,4 +140,32 @@ describe('CookieBanner', () => {
116
140
  expect(wrapper.find('.vd-cookies-card').html()).toMatchSnapshot()
117
141
  expect(wrapper.emitted()).toHaveProperty('customize')
118
142
  })
143
+
144
+ it('emits submit payload coming from CookiesSelection without altering categories', async () => {
145
+ const wrapper = mount(CookieBanner, {
146
+ props: {
147
+ headingLevel: 2,
148
+ headingLevelInformation: 2,
149
+ items: {
150
+ functional: [],
151
+ analytics: [],
152
+ },
153
+ },
154
+ global: {
155
+ stubs: {
156
+ Teleport: true,
157
+ },
158
+ },
159
+ })
160
+
161
+ await wrapper.find('[data-test-id="customize"]').trigger('click')
162
+ await wrapper.vm.$nextTick()
163
+
164
+ const selection = wrapper.findComponent({ name: 'CookiesSelection' })
165
+ selection.vm.$emit('submit', { functional: true })
166
+
167
+ expect(wrapper.emitted('submit')?.[0]?.[0]).toEqual({
168
+ functional: true,
169
+ })
170
+ })
119
171
  })
@@ -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,
@@ -5,9 +5,13 @@
5
5
  import { locales } from './locales'
6
6
  import type { CookieTypes, CookiesItems, Preferences } from './types'
7
7
 
8
- const props = defineProps<{
8
+ const props = withDefaults(defineProps<{
9
9
  items: CookiesItems
10
- }>()
10
+ headingLevel?: 1 | 2 | 3 | 4 | 5 | 6
11
+
12
+ }>(), {
13
+ headingLevel: 2,
14
+ })
11
15
 
12
16
  const emits = defineEmits<{
13
17
  submit: [preferences: Partial<Preferences>]
@@ -109,6 +113,7 @@
109
113
  :type="cookieType"
110
114
  :table-items="cookies"
111
115
  class="mb-6"
116
+ :heading-level="headingLevel"
112
117
  >
113
118
  <template
114
119
  v-for="(_, slotName) in $slots"
@@ -42,6 +42,7 @@ describe('CookiesSelection – accessibility (axe)', () => {
42
42
  it('has no obvious axe violations for full cookie preferences form', async () => {
43
43
  const wrapper = mount(CookiesSelection, {
44
44
  props: {
45
+ headingLevel: 2,
45
46
  items: cookiesList,
46
47
  },
47
48
  })
@@ -35,6 +35,7 @@ describe('CookiesSelection', () => {
35
35
  it('renders correctly', () => {
36
36
  const wrapper = mount(CookiesSelection, {
37
37
  propsData: {
38
+ headingLevel: 2,
38
39
  items: cookiesList,
39
40
  },
40
41
  })
@@ -49,6 +50,7 @@ describe('CookiesSelection', () => {
49
50
  it('sets global preferences', async () => {
50
51
  const wrapper = mount(CookiesSelection, {
51
52
  props: {
53
+ headingLevel: 2,
52
54
  items: cookiesList,
53
55
  },
54
56
  })
@@ -78,6 +80,7 @@ describe('CookiesSelection', () => {
78
80
  it('sets preferences for each category', async () => {
79
81
  const wrapper = mount(CookiesSelection, {
80
82
  props: {
83
+ headingLevel: 2,
81
84
  items: cookiesList,
82
85
  },
83
86
  })
@@ -118,6 +121,7 @@ describe('CookiesSelection', () => {
118
121
  it('requires all categories to be set', async () => {
119
122
  const wrapper = mount(CookiesSelection, {
120
123
  props: {
124
+ headingLevel: 2,
121
125
  items: cookiesList,
122
126
  modelValue: undefined,
123
127
  },
@@ -151,6 +155,7 @@ describe('CookiesSelection', () => {
151
155
  it('displays the cookie description as a scoped slot', () => {
152
156
  const wrapper = mount(CookiesSelection, {
153
157
  props: {
158
+ headingLevel: 2,
154
159
  items: cookiesList,
155
160
  },
156
161
  slots: {
@@ -136,6 +136,7 @@ exports[`CookiesSelection > renders correctly 1`] = `
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[`CookiesSelection > renders correctly 1`] = `
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[`CookiesSelection > renders correctly 1`] = `
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[`CookiesSelection > renders correctly 1`] = `
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
@@ -444,6 +448,7 @@ exports[`CookiesSelection > renders correctly 1`] = `
444
448
  <h2 class="
445
449
  font-weight-bold
446
450
  mb-2
451
+ sy-heading
447
452
  text-subtitle-1
448
453
  ">
449
454
  Cookies d’analyse
@@ -521,14 +526,15 @@ exports[`CookiesSelection > renders correctly 1`] = `
521
526
  <!---->
522
527
  </div>
523
528
  </details>
524
- <div
525
- aria-level="3"
526
- class="vd-cookies-information__heading"
529
+ <h3
530
+ class="
531
+ sy-heading
532
+ vd-cookies-information__heading
533
+ "
527
534
  id="radio-group-analytics"
528
- role="heading"
529
535
  >
530
536
  Accepter les cookies de type Cookies d’analyse, ce champ est requis.
531
- </div>
537
+ </h3>
532
538
  <div class="
533
539
  v-input
534
540
  v-input--center-affix
@@ -1,5 +1,5 @@
1
1
  <script setup lang="ts">
2
- import { ref, onUnmounted } from 'vue'
2
+ import { ref, onUnmounted, useId } from 'vue'
3
3
  import { mdiContentCopy } from '@mdi/js'
4
4
 
5
5
  import useCustomizableOptions, { type CustomizableOptions } from '@/composables/useCustomizableOptions'
@@ -27,6 +27,7 @@
27
27
 
28
28
  const options = useCustomizableOptions(config, props)
29
29
 
30
+ const id = useId()
30
31
  const tooltip = ref(false)
31
32
  const copyIcon = mdiContentCopy
32
33
  let tooltipTimeoutId: ReturnType<typeof setTimeout> | undefined
@@ -87,7 +88,7 @@
87
88
 
88
89
  <template>
89
90
  <div
90
- :id="props.ariaOwns"
91
+ :id="`${props.ariaOwns}-${id}`"
91
92
  class="sy-copy-btn"
92
93
  >
93
94
  <VTooltip
@@ -96,14 +97,15 @@
96
97
  :open-on-click="true"
97
98
  :open-on-hover="false"
98
99
  :disabled="hideTooltip"
100
+ content-class="tooltip"
99
101
  >
100
102
  <template #activator="{ props: tooltipProps }">
101
103
  <VBtn
102
104
  v-bind="{...tooltipProps,...options.btn}"
103
105
  :aria-label="props.ariaLabel"
104
- :aria-owns="props.ariaOwns"
106
+ :aria-owns="`${props.ariaOwns}-${id}`"
105
107
  :data-test-id="props.ariaOwns"
106
- aria-controls="copy-btn"
108
+ :aria-controls="`copy-btn-${id}`"
107
109
  @click="copy"
108
110
  >
109
111
  <slot name="icon">