@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,7 +1,9 @@
1
- import { mdiTwitter, mdiFacebook, mdiLinkedin } from '@mdi/js'
1
+ import { mdiFacebook, mdiLinkedin } from '@mdi/js'
2
2
 
3
3
  import type { SocialMediaLink } from './types'
4
4
 
5
+ const xIcon = 'M14.234 10.162 22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299-.929-1.329L3.076 1.56h3.182l5.965 8.532.929 1.329 7.754 11.09h-3.182z'
6
+
5
7
  export const defaultSocialMediaLinks: SocialMediaLink[] = [
6
8
  {
7
9
  icon: mdiLinkedin,
@@ -14,8 +16,8 @@ export const defaultSocialMediaLinks: SocialMediaLink[] = [
14
16
  href: 'https://www.facebook.com/AssurMaladie/',
15
17
  },
16
18
  {
17
- icon: mdiTwitter,
18
- name: 'Twitter',
19
- href: 'https://twitter.com/Assur_Maladie',
19
+ icon: xIcon,
20
+ name: 'X',
21
+ href: 'https://x.com/Assur_Maladie',
20
22
  },
21
23
  ]
@@ -20,7 +20,9 @@ import * as SocialMediaLinksStories from './SocialMediaLinks.stories.ts';
20
20
  <Source dark code={`
21
21
  <script setup lang="ts">
22
22
  import { SocialMediaLinks } from '@cnamts/synapse'
23
- import { mdiFacebook, mdiLinkedin, mdiTwitter } from '@mdi/js'
23
+ import { mdiFacebook, mdiLinkedin } from '@mdi/js'
24
+
25
+ const xIcon = 'M14.234 10.162 22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299-.929-1.329L3.076 1.56h3.182l5.965 8.532.929 1.329 7.754 11.09h-3.182z'
24
26
 
25
27
  const links = [
26
28
  {
@@ -31,12 +33,12 @@ const links = [
31
33
  {
32
34
  icon: mdiFacebook,
33
35
  name: 'Facebook',
34
- href: 'https://twitter.com/Assur_Maladie',
36
+ href: 'https://www.facebook.com/AssurMaladie/',
35
37
  },
36
38
  {
37
- icon: mdiTwitter,
38
- name: 'Twitter',
39
- href: 'https://twitter.com/Assur_Maladie',
39
+ icon: xIcon,
40
+ name: 'X',
41
+ href: 'https://x.com/Assur_Maladie',
40
42
  },
41
43
  ]
42
44
  </script>
@@ -1,6 +1,8 @@
1
1
  import SocialMediaLinks from './SocialMediaLinks.vue'
2
2
  import type { Meta, StoryObj } from '@storybook/vue3'
3
- import { mdiFacebook, mdiLinkedin, mdiTwitter } from '@mdi/js'
3
+ import { mdiFacebook, mdiLinkedin } from '@mdi/js'
4
+
5
+ const xIcon = 'M14.234 10.162 22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299-.929-1.329L3.076 1.56h3.182l5.965 8.532.929 1.329 7.754 11.09h-3.182z'
4
6
 
5
7
  const meta = {
6
8
  title: 'Composants/Navigation/SocialMediaLinks',
@@ -22,11 +24,11 @@ const meta = {
22
24
  },
23
25
  {
24
26
  icon: mdiFacebook,
25
- href: 'https://twitter.com/Assur_Maladie',
27
+ href: 'https://www.facebook.com/AssurMaladie/',
26
28
  },
27
29
  {
28
- icon: mdiTwitter,
29
- href: 'https://twitter.com/Assur_Maladie',
30
+ icon: xIcon,
31
+ href: 'https://x.com/Assur_Maladie',
30
32
  },
31
33
  ],
32
34
  headingLevel: 6,
@@ -78,7 +80,9 @@ export const Default: Story = {
78
80
  name: 'Script',
79
81
  code: `<script setup lang="ts">
80
82
  import { SocialMediaLinks } from '@cnamts/synapse'
81
- import { mdiFacebook, mdiLinkedin, mdiTwitter } from '@mdi/js'
83
+ import { mdiFacebook, mdiLinkedin } from '@mdi/js'
84
+
85
+ const xIcon = 'M14.234 10.162 22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299-.929-1.329L3.076 1.56h3.182l5.965 8.532.929 1.329 7.754 11.09h-3.182z'
82
86
 
83
87
  const links = [
84
88
  {
@@ -89,12 +93,12 @@ export const Default: Story = {
89
93
  {
90
94
  icon: mdiFacebook,
91
95
  name: 'Facebook',
92
- href: 'https://twitter.com/Assur_Maladie',
96
+ href: 'https://www.facebook.com/AssurMaladie/',
93
97
  },
94
98
  {
95
- icon: mdiTwitter,
96
- name: 'Twitter',
97
- href: 'https://twitter.com/Assur_Maladie',
99
+ icon: xIcon,
100
+ name: 'X',
101
+ href: 'https://x.com/Assur_Maladie',
98
102
  },
99
103
  ]
100
104
  </script>
@@ -112,12 +116,12 @@ export const Default: Story = {
112
116
  {
113
117
  icon: mdiFacebook,
114
118
  name: 'Facebook',
115
- href: 'https://twitter.com/Assur_Maladie',
119
+ href: 'https://www.facebook.com/AssurMaladie/',
116
120
  },
117
121
  {
118
- icon: mdiTwitter,
119
- name: 'Twitter',
120
- href: 'https://twitter.com/Assur_Maladie',
122
+ icon: xIcon,
123
+ name: 'X',
124
+ href: 'https://x.com/Assur_Maladie',
121
125
  },
122
126
  ],
123
127
  },
@@ -49,7 +49,10 @@
49
49
  <SyIcon
50
50
  :icon="social.icon"
51
51
  size="30px"
52
- class="vd-social-media-links-icon"
52
+ :class="{
53
+ 'vd-social-media-links-icon': true,
54
+ 'vd-social-media-links-icon--x': social.name === 'X',
55
+ }"
53
56
  decorative
54
57
  />
55
58
  </VBtn>
@@ -88,7 +91,12 @@ li {
88
91
  }
89
92
 
90
93
  .vd-social-media-links-icon {
91
- color: tokens.$grey-base;
94
+ color: tokens.$grey-base !important;
95
+ }
96
+
97
+ .vd-social-media-links-icon--x {
98
+ transform: scale(0.75);
99
+ transform-origin: center;
92
100
  }
93
101
 
94
102
  .v-btn--icon {
@@ -1,15 +1,67 @@
1
- import { Meta, Story } from '@storybook/addon-docs';
2
- import * as Stories from '../SocialMediaLinks.stories.ts';
3
- import '@/stories/styles/shared.css';
1
+ import { Meta, Story } from '@storybook/blocks';
2
+ import * as SocialMediaLinksStories from '../SocialMediaLinks.stories';
3
+ import AccessibilityIcon from '@/common/imgs/accessibility-svgrepo-com.svg';
4
+ import {
5
+ AccessibilityGuideLayout,
6
+ CriteriaSection,
7
+ CriteriaCard,
8
+ DemoSection,
9
+ BestPracticesSection,
10
+ ResourcesSection,
11
+ AuditSection,
12
+ } from '@/stories/accessibility/AccessibilityGuideLayout.mdx';
4
13
 
5
- <Meta of={Stories} />
14
+ <Meta of={SocialMediaLinksStories} />
6
15
 
7
- <div className="header">
8
- <h1>Accessibilité</h1>
9
- </div>
16
+ <AccessibilityGuideLayout
17
+ componentName="SocialMediaLinks"
18
+ iconSrc={AccessibilityIcon}
19
+ >
20
+ <AuditSection>
21
+ <div>Rapport d’audit manuel : <a href="/audits/SocialMediaLinks.xlsx" style={{ color: '#0C41BD' }}>Voir le rapport</a></div>
22
+ <div style={{ color: 'grey', fontSize: '14px', marginTop: '0px' }}>
23
+ Correctifs associés (<a href="https://github.com/assurance-maladie-digital/design-system-v3/issues/790" target="_blank" style={{ color: '#0C41BD' }}>issue #790</a>)
24
+ </div>
25
+ </AuditSection>
26
+
27
+ <CriteriaSection>
28
+ <CriteriaCard icon="🏷️" title="Structure et rôles">
29
+ <ul>
30
+ <li><strong>Titre accessible</strong> : utilise un heading natif (<code>h1–h6</code>) ou un <code>role="heading"</code> + <code>aria-level</code> via <code>use-native-heading</code>.</li>
31
+ <li><strong>Liens</strong> : chaque bouton est un lien <code>&lt;a&gt;</code> avec <code>aria-label</code> explicite « Lien vers &lt;nom&gt; ».</li>
32
+ <li><strong>Icônes décoratives</strong> : <code>SyIcon</code> marqué décoratif pour ne pas polluer le lecteur d’écran.</li>
33
+ <li><strong>Ouverture externe</strong> : <code>target="_blank"</code> avec <code>rel="noopener noreferrer"</code> pour la sécurité.</li>
34
+ </ul>
35
+ </CriteriaCard>
10
36
 
37
+ <CriteriaCard icon="⌨️" title="Navigation clavier">
38
+ <ul>
39
+ <li><strong>Focus visible</strong> : halo visible sur <code>.v-btn--icon:focus-visible</code>, contrasté en clair/sombre.</li>
40
+ <li><strong>Ordre logique</strong> : tabulation suit l’ordre des liens fournis.</li>
41
+ <li><strong>Taille des cibles</strong> : boutons icon-text élargis (<code>height/width</code> ajustée) pour une cible confortable.</li>
42
+ </ul>
43
+ </CriteriaCard>
11
44
 
12
- <div class="mt-2">
13
- <p>Rapport d’audit manuel : <a href="/audits/SocialMediaLinks.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/790" target="_blank" style={{color:'#0C41BD'}}>issue #790</a>)</p>
15
- </div>
45
+ <CriteriaCard icon="🎨" title="Contraste et lisibilité">
46
+ <ul>
47
+ <li><strong>Texte du label</strong> : couleur primaire (<code>tokens.$blue-base</code>) ou blanc en thème sombre.</li>
48
+ <li><strong>Icônes</strong> : couleur neutre (<code>tokens.$grey-base</code>) et outline blanc en sombre.</li>
49
+ <li><strong>Responsive</strong> : alignement adapté (gauche/droite) selon la largeur.</li>
50
+ </ul>
51
+ </CriteriaCard>
52
+ </CriteriaSection>
53
+
54
+ <DemoSection componentName="SocialMediaLinks">
55
+ <Story of={SocialMediaLinksStories.Default} />
56
+ </DemoSection>
57
+
58
+ <BestPracticesSection>
59
+ <ul>
60
+ <li>Fournissez toujours un <code>aria-label</code> descriptif pour chaque lien d’icône.</li>
61
+ <li>Choisissez un niveau de titre cohérent avec la hiérarchie de la page (<code>heading-level</code> 1–6) ou activez <code>use-native-heading</code> pour un titre sémantique.</li>
62
+ <li>Vérifiez le focus visible sur tous les liens, notamment en thème sombre.</li>
63
+ <li>Utilisez des icônes SVG accessibles et marquées décoratives quand le libellé est déjà donné.</li>
64
+ <li>Si vous changez l’ordre ou la liste des réseaux, assurez-vous que l’ordre de tabulation reste logique.</li>
65
+ </ul>
66
+ </BestPracticesSection>
67
+ </AccessibilityGuideLayout>
@@ -1,6 +1,6 @@
1
1
  import { defaultSocialMediaLinks } from '../DefaultSocialMediaLinks'
2
2
  import { describe, it, expect } from 'vitest'
3
- import { mdiLinkedin, mdiTwitter } from '@mdi/js'
3
+ import { mdiLinkedin } from '@mdi/js'
4
4
 
5
5
  describe('defaultSocialMediaLinks', () => {
6
6
  it('contains the correct number of links', () => {
@@ -13,9 +13,9 @@ describe('defaultSocialMediaLinks', () => {
13
13
  expect(linkedinLink?.icon).toBe(mdiLinkedin)
14
14
  })
15
15
 
16
- it('contains the correct Twitter link', () => {
17
- const twitterLink = defaultSocialMediaLinks.find(link => link.href === 'https://twitter.com/Assur_Maladie')
18
- expect(twitterLink).toBeDefined()
19
- expect(twitterLink?.icon).toBe(mdiTwitter)
16
+ it('contains the correct X link', () => {
17
+ const xLink = defaultSocialMediaLinks.find(link => link.href === 'https://x.com/Assur_Maladie')
18
+ expect(xLink).toBeDefined()
19
+ expect(typeof xLink?.icon).toBe('string')
20
20
  })
21
21
  })
@@ -0,0 +1,59 @@
1
+ // @vitest-environment jsdom
2
+
3
+ import { describe, it } from 'vitest'
4
+ import { mount } from '@vue/test-utils'
5
+ import { axe } from 'vitest-axe'
6
+ import { assertNoA11yViolations } from '@tests/unit/accessibility/axeUtils'
7
+ import SocialMediaLinks from '../SocialMediaLinks.vue'
8
+
9
+ const xIcon = 'M14.234 10.162 22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299-.929-1.329L3.076 1.56h3.182l5.965 8.532.929 1.329 7.754 11.09h-3.182z'
10
+
11
+ const sampleLinks = [
12
+ {
13
+ href: 'https://www.linkedin.com/company/assurance-maladie/',
14
+ name: 'LinkedIn',
15
+ icon: 'mdi-linkedin',
16
+ },
17
+ {
18
+ href: 'https://x.com/Assur_Maladie',
19
+ name: 'X',
20
+ icon: xIcon,
21
+ },
22
+ {
23
+ href: 'https://www.facebook.com/assurancemaladie',
24
+ name: 'Facebook',
25
+ icon: 'mdi-facebook',
26
+ },
27
+ ]
28
+
29
+ describe('SocialMediaLinks – accessibility (axe)', () => {
30
+ it('has no obvious axe violations with native heading', async () => {
31
+ const wrapper = mount(SocialMediaLinks, {
32
+ props: {
33
+ links: sampleLinks,
34
+ headingLevel: 6,
35
+ useNativeHeading: true,
36
+ },
37
+ })
38
+
39
+ const results = await axe(wrapper.element as HTMLElement)
40
+ assertNoA11yViolations(results, 'SocialMediaLinks – native heading', {
41
+ ignoreRules: ['region'],
42
+ })
43
+ })
44
+
45
+ it('has no obvious axe violations with ARIA heading', async () => {
46
+ const wrapper = mount(SocialMediaLinks, {
47
+ props: {
48
+ links: sampleLinks,
49
+ headingLevel: 3,
50
+ useNativeHeading: false,
51
+ },
52
+ })
53
+
54
+ const results = await axe(wrapper.element as HTMLElement)
55
+ assertNoA11yViolations(results, 'SocialMediaLinks – aria heading', {
56
+ ignoreRules: ['region'],
57
+ })
58
+ })
59
+ })
@@ -2,6 +2,8 @@ import { mount, VueWrapper } from '@vue/test-utils'
2
2
  import SocialMediaLinks from '../SocialMediaLinks.vue'
3
3
  import { describe, it, expect, afterEach } from 'vitest'
4
4
 
5
+ const xIcon = 'M14.234 10.162 22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299-.929-1.329L3.076 1.56h3.182l5.965 8.532.929 1.329 7.754 11.09h-3.182z'
6
+
5
7
  describe('SocialMediaLinks', () => {
6
8
  let wrapper: VueWrapper
7
9
 
@@ -30,7 +32,7 @@ describe('SocialMediaLinks', () => {
30
32
 
31
33
  it('renders correctly with provided links', () => {
32
34
  const links = [
33
- { href: 'https://twitter.com', name: 'Twitter', icon: 'mdi-twitter' },
35
+ { href: 'https://x.com', name: 'X', icon: xIcon },
34
36
  { href: 'https://facebook.com', name: 'Facebook', icon: 'mdi-facebook' },
35
37
  ]
36
38
  wrapper = mount(SocialMediaLinks, {
@@ -51,8 +53,8 @@ describe('SocialMediaLinks', () => {
51
53
 
52
54
  // Check first link
53
55
  const firstLink = listItems[0]?.find('a')
54
- expect(firstLink?.attributes('href')).toBe('https://twitter.com')
55
- expect(firstLink?.attributes('aria-label')).toBe('Lien vers Twitter')
56
+ expect(firstLink?.attributes('href')).toBe('https://x.com')
57
+ expect(firstLink?.attributes('aria-label')).toBe('Lien vers X')
56
58
 
57
59
  // Check second link
58
60
  const secondLink = listItems[1]?.find('a')
@@ -62,7 +64,7 @@ describe('SocialMediaLinks', () => {
62
64
 
63
65
  it('renders the correct number of social media links', () => {
64
66
  const links = [
65
- { href: 'https://twitter.com', name: 'Twitter', icon: 'mdi-twitter' },
67
+ { href: 'https://x.com', name: 'X', icon: xIcon },
66
68
  { href: 'https://facebook.com', name: 'Facebook', icon: 'mdi-facebook' },
67
69
  ]
68
70
  wrapper = mount(SocialMediaLinks, {
@@ -126,7 +128,7 @@ describe('SocialMediaLinks', () => {
126
128
 
127
129
  it('has proper focus styles for accessibility', () => {
128
130
  const links = [
129
- { href: 'https://twitter.com', name: 'Twitter', icon: 'mdi-twitter' },
131
+ { href: 'https://x.com', name: 'X', icon: xIcon },
130
132
  ]
131
133
  wrapper = mount(SocialMediaLinks, {
132
134
  props: {
@@ -142,8 +144,8 @@ describe('SocialMediaLinks', () => {
142
144
 
143
145
  // Verify the button has proper accessibility attributes
144
146
  const link = wrapper.find('a')
145
- expect(link.attributes('href')).toBe('https://twitter.com')
146
- expect(link.attributes('aria-label')).toBe('Lien vers Twitter')
147
+ expect(link.attributes('href')).toBe('https://x.com')
148
+ expect(link.attributes('aria-label')).toBe('Lien vers X')
147
149
 
148
150
  // Check that the component has the necessary CSS classes for focus styles
149
151
  // We can't test the actual CSS properties, but we can verify the structure is there
@@ -0,0 +1,31 @@
1
+ import {Controls, Canvas, Meta, Source} from '@storybook/blocks';
2
+ import '../../stories/styles/shared.css';
3
+ import * as StatusPageStories from './StatusPage.stories'
4
+
5
+ <Meta of={StatusPageStories} />
6
+
7
+ <div className="header">
8
+ <h1>StatusPage</h1>
9
+ <p>Le composant `StatusPage` sert à afficher une page de statut.</p>
10
+ </div>
11
+
12
+ <Canvas of={StatusPageStories.Default} />
13
+
14
+ # API
15
+
16
+ <Controls of={StatusPageStories.Default} />
17
+
18
+ ## Rôle et identifiant ARIA
19
+
20
+ Les props `role` et `unique-id` permettent de préciser le rôle sémantique du composant et de lier le titre au conteneur via `aria-labelledby`.
21
+
22
+ Lorsque `role` est défini, l'attribut `aria-labelledby` est automatiquement appliqué sur le `PageContainer` en pointant vers le `h1`.
23
+
24
+ <Canvas of={StatusPageStories.WithRole} />
25
+
26
+ ## Lien de retour
27
+
28
+ Vous pouvez mettre un lien vers une autre page avec les props `btn-text` et `btn-link` ou `btn-href`.<br/>
29
+ L'événement `btn-click` est émis lorsque l'utilisateur clique sur le bouton.
30
+
31
+ <Canvas of={StatusPageStories.WithLink} />
@@ -0,0 +1,236 @@
1
+ import type { Meta, StoryObj } from '@storybook/vue3'
2
+ import StatusPage from './StatusPage.vue'
3
+
4
+ const meta = {
5
+ title: 'Templates/StatusPage',
6
+ component: StatusPage,
7
+ parameters: {
8
+ layout: 'fullscreen',
9
+ },
10
+ argTypes: {
11
+ 'headingLevel': {
12
+ control: { type: 'select' },
13
+ options: [1, 2, 3, 4, 5, 6],
14
+ },
15
+ 'code': {
16
+ description: 'Code d\'erreur affiché en premier plan',
17
+ },
18
+ 'codeErrorText': {
19
+ description: 'Text affiché avant le code d\'erreur pour les outils d\'accessibilité',
20
+ table: {
21
+ defaultValue: {
22
+ summary: 'Code d\'erreur\xa0: ',
23
+ },
24
+ },
25
+ },
26
+ 'additional-content': {
27
+ control: {
28
+ type: 'text',
29
+ },
30
+ table: {
31
+ type: {
32
+ summary: '{}',
33
+ },
34
+ },
35
+ },
36
+ 'action': {
37
+ control: {
38
+ type: 'text',
39
+ },
40
+ table: {
41
+ type: {
42
+ summary: '{}',
43
+ },
44
+ },
45
+ },
46
+ 'illustration': {
47
+ control: {
48
+ type: 'text',
49
+ },
50
+ table: {
51
+ type: {
52
+ summary: '{}',
53
+ },
54
+ },
55
+ },
56
+ },
57
+ } satisfies Meta<typeof StatusPage>
58
+
59
+ export default meta
60
+
61
+ type Story = StoryObj<typeof StatusPage>
62
+
63
+ export const Default: Story = {
64
+ args: {
65
+ headingLevel: 1,
66
+ pageTitle: 'une erreur est survenue',
67
+ code: '500',
68
+ message: 'Une erreur est survenue de notre côté, veuillez réessayer plus tard. Si le problème persiste veuillez nous contacter par téléphone au 3646',
69
+ },
70
+ parameters: {
71
+ sourceCode: [
72
+ {
73
+ name: 'Template',
74
+ code: `
75
+ <template>
76
+ <div style="padding: 20px; background: rgb(231, 236, 245)">
77
+ <StatusPage
78
+ page-title="une erreur est survenue"
79
+ code="500"
80
+ message="Une erreur est survenue de notre côté, veuillez réessayer plus tard. Si le problème persiste veuillez nous contacter par téléphone au 3646"
81
+ >
82
+ </div>
83
+ </template>
84
+ `,
85
+ }, {
86
+ name: 'Script',
87
+ code: `
88
+ <script setup lang="ts">
89
+ import { StatusPage } from '@cnamts/synapse'
90
+ </script>
91
+
92
+ `,
93
+ },
94
+ ],
95
+ },
96
+ decorators: [
97
+ () => ({ template: '<div style="padding: 20px; background: rgb(231, 236, 245)"><story /></div>' }),
98
+ ],
99
+ }
100
+
101
+ export const WithLink: Story = {
102
+ args: {
103
+ ...Default.args,
104
+ headingLevel: 1,
105
+ btnHref: '/',
106
+ btnText: 'Retour à l\'accueil',
107
+ },
108
+ parameters: {
109
+ sourceCode: [
110
+ {
111
+ name: 'Template',
112
+ code: `
113
+ <template>
114
+ <div style="padding: 20px; background: rgb(231, 236, 245)">
115
+ <StatusPage
116
+ page-title="une erreur est survenue"
117
+ code="500"
118
+ message="Une erreur est survenue de notre côté, veuillez réessayer plus tard. Si le problème persiste veuillez nous contacter par téléphone au 3646"
119
+ btn-href=""
120
+ btn-text="Retour à l'accueil"
121
+ >
122
+ </div>
123
+ </template>
124
+ `,
125
+ }, {
126
+ name: 'Script',
127
+ code: `
128
+ <script setup lang="ts">
129
+ import { StatusPage } from '@cnamts/synapse'
130
+ </script>
131
+
132
+ `,
133
+ },
134
+ ],
135
+ },
136
+ decorators: [
137
+ () => ({ template: '<div style="padding: 20px; background: rgb(231, 236, 245)"><story /></div>' }),
138
+ ],
139
+ }
140
+
141
+ export const CustomIllustration: Story = {
142
+ args: {
143
+ ...Default.args,
144
+ btnHref: '/',
145
+ btnText: 'Retour à l\'accueil',
146
+ headingLevel: 1,
147
+ },
148
+ parameters: {
149
+ sourceCode: [
150
+ {
151
+ name: 'Template',
152
+ code: `
153
+ <template>
154
+ <div style="padding: 20px; background: rgb(231, 236, 245)">
155
+ <StatusPage
156
+ page-title="une erreur est survenue"
157
+ code="500"
158
+ message="Une erreur est survenue de notre côté, veuillez réessayer plus tard."
159
+ btn-href="/"
160
+ btn-text="Retour à l'accueil"
161
+ >
162
+ <template #illustration>
163
+ <div style="width: 260px; height: 200px; display: grid; place-items: center; border-radius: 12px; background: white; border: 2px dashed #0D419A;">
164
+ <span style="font-weight: 700; color: #0D419A;">Illustration</span>
165
+ </div>
166
+ </template>
167
+ </StatusPage>
168
+ </div>
169
+ </template>
170
+ `,
171
+ },
172
+ {
173
+ name: 'Script',
174
+ code: `
175
+ <script setup lang="ts">
176
+ import { StatusPage } from '@cnamts/synapse'
177
+ </script>
178
+ `,
179
+ },
180
+ ],
181
+ },
182
+ decorators: [
183
+ () => ({ template: '<div style="padding: 20px; background: rgb(231, 236, 245)"><story /></div>' }),
184
+ ],
185
+ render: args => ({
186
+ components: { StatusPage },
187
+ setup() {
188
+ return { args }
189
+ },
190
+ template: `
191
+ <StatusPage v-bind="args">
192
+ <template #illustration>
193
+ <div style="width: 260px; height: 200px; display: grid; place-items: center; border-radius: 12px; background: white; border: 2px dashed #0D419A;">
194
+ <span style="font-weight: 700; color: #0D419A;">Illustration</span>
195
+ </div>
196
+ </template>
197
+ </StatusPage>
198
+ `,
199
+ }),
200
+ }
201
+
202
+ export const WithRole: Story = {
203
+ args: {
204
+ pageTitle: 'Une erreur est survenue',
205
+ message: 'Veuillez réessayer ultérieurement.',
206
+ code: '500',
207
+ role: 'main',
208
+ uniqueId: 'status-page-main',
209
+ },
210
+ parameters: {
211
+ sourceCode: [
212
+ {
213
+ name: 'Template',
214
+ code: `
215
+ <template>
216
+ <StatusPage
217
+ page-title="Une erreur est survenue"
218
+ message="Veuillez réessayer ultérieurement."
219
+ code="500"
220
+ role="main"
221
+ unique-id="status-page-main"
222
+ />
223
+ </template>
224
+ `,
225
+ },
226
+ {
227
+ name: 'Script',
228
+ code: `
229
+ <script setup lang="ts">
230
+ import { StatusPage } from '@cnamts/synapse'
231
+ </script>
232
+ `,
233
+ },
234
+ ],
235
+ },
236
+ }