@cnamts/synapse 1.0.21 → 1.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (449) hide show
  1. package/dist/{DateFilter-uN8OURoP.js → DateFilter-Dc-gSGwk.js} +29 -24
  2. package/dist/{NumberFilter-sm1dQNQi.js → NumberFilter-vP38Wp6j.js} +1 -1
  3. package/dist/{PeriodFilter-Cklsxnh9.js → PeriodFilter-Ba1uYUnT.js} +1 -1
  4. package/dist/{SelectFilter-CWefj27Z.js → SelectFilter-BioGT6Nn.js} +1 -1
  5. package/dist/{TextFilter-Ddyj885L.js → TextFilter-B84dpnoq.js} +1 -1
  6. package/dist/components/Accordion/Accordion.d.ts +13 -2
  7. package/dist/components/Accordion/composables/useAccordionState.d.ts +2 -1
  8. package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +7405 -5973
  9. package/dist/components/Amelipro/AmeliproBtn/AmeliproBtn.d.ts +1 -1
  10. package/dist/components/Amelipro/AmeliproCallback/AmeliproCallback.d.ts +1 -1
  11. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarousel.d.ts +10 -14
  12. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarouselItem/AmeliproCarouselItem.d.ts +1 -1
  13. package/dist/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.d.ts +1 -1
  14. package/dist/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.d.ts +1 -1
  15. package/dist/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.d.ts +1 -1
  16. package/dist/components/Amelipro/AmeliproFooter/AmeliproFooter.d.ts +8 -8
  17. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeader.d.ts +3 -3
  18. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBar.d.ts +1 -1
  19. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/AmeliproHeaderBrandSection.d.ts +1 -1
  20. package/dist/components/Amelipro/AmeliproIcon/AmeliproIcon.d.ts +1 -1
  21. package/dist/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.d.ts +16 -20
  22. package/dist/components/Amelipro/AmeliproMenu/AmeliproMenu.d.ts +1 -1
  23. package/dist/components/Amelipro/AmeliproPagination/AmeliproPaginationBtn/AmeliproPaginationBtn.d.ts +1 -1
  24. package/dist/components/Amelipro/AmeliproPatientBanner/AmeliproPatientBanner.d.ts +1 -1
  25. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.d.ts +1610 -1354
  26. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.d.ts +2413 -2029
  27. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +8885 -7323
  28. package/dist/components/Amelipro/AmeliproStateTile/AmeliproStateTile.d.ts +1 -1
  29. package/dist/components/Amelipro/AmeliproStepper/AmeliproStepper.d.ts +2 -6
  30. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +8884 -7330
  31. package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +950 -838
  32. package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +1614 -1358
  33. package/dist/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.d.ts +223 -203
  34. package/dist/components/Amelipro/AmeliproTransmission/AmeliproTransmission.d.ts +3 -3
  35. package/dist/components/Amelipro/StructureMenu/StructureTabs/StructureTabs.d.ts +3 -7
  36. package/dist/components/CollapsibleList/CollapsibleList.d.ts +4 -1
  37. package/dist/components/CookieBanner/CookieBanner.d.ts +303 -273
  38. package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +1297 -1156
  39. package/dist/components/CookiesSelection/CookiesSelection.d.ts +404 -377
  40. package/dist/components/Customs/Selects/SelectBtnField/SelectBtnField.d.ts +1 -1
  41. package/dist/components/Customs/Selects/SyAutocomplete/SyAutocomplete.d.ts +1108 -846
  42. package/dist/components/Customs/Selects/SyAutocomplete/locales.d.ts +5 -0
  43. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +514 -320
  44. package/dist/components/Customs/Selects/SySelect/locales.d.ts +1 -0
  45. package/dist/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.d.ts +40 -38
  46. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +920 -800
  47. package/dist/components/Customs/SyForm/SyForm.d.ts +356 -348
  48. package/dist/components/Customs/SyPagination/SyPagination.d.ts +11 -1
  49. package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +906 -794
  50. package/dist/components/Customs/SyTextField/SyTextField.d.ts +1634 -1367
  51. package/dist/components/DataList/DataList.d.ts +1 -1
  52. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +3869 -3120
  53. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +1947 -1561
  54. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +831 -684
  55. package/dist/components/DialogBox/DialogBox.d.ts +482 -416
  56. package/dist/components/DownloadBtn/config.d.ts +1 -1
  57. package/dist/components/ErrorPage/ErrorPage.d.ts +6 -0
  58. package/dist/components/FileList/UploadItem/UploadItem.d.ts +6 -0
  59. package/dist/components/FileList/UploadItem/locales.d.ts +1 -0
  60. package/dist/components/FileUpload/FileUpload.d.ts +4 -4
  61. package/dist/components/FileUpload/FileUploadContent.d.ts +2 -0
  62. package/dist/components/FileUpload/locales.d.ts +1 -0
  63. package/dist/components/FileUpload/validateFiles.d.ts +2 -1
  64. package/dist/components/FilterSideBar/FilterSideBar.d.ts +418 -366
  65. package/dist/components/FooterBar/FooterBar.d.ts +13 -1
  66. package/dist/components/FooterBar/locales.d.ts +1 -0
  67. package/dist/components/FooterBar/types.d.ts +1 -0
  68. package/dist/components/HeaderBar/HeaderBar.d.ts +2 -0
  69. package/dist/components/HeaderBar/HeaderLogo/HeaderLogo.d.ts +2 -0
  70. package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +4 -6
  71. package/dist/components/HeaderToolbar/HeaderToolbar.d.ts +1031 -643
  72. package/dist/components/LangBtn/LangBtn.d.ts +277 -239
  73. package/dist/components/LogoBrandSection/LogoBrandSection.d.ts +4 -0
  74. package/dist/components/MaintenancePage/MaintenancePage.d.ts +16 -1
  75. package/dist/components/MonthPicker/MonthPicker.d.ts +1939 -0
  76. package/dist/components/MonthPicker/MonthPickerText/MonthPickerInput.d.ts +1899 -0
  77. package/dist/components/MonthPicker/MonthPickerText/useTextField.d.ts +21 -0
  78. package/dist/components/MonthPicker/MonthPickerVisual/MonthPickerVisual.d.ts +21 -0
  79. package/dist/components/MonthPicker/MonthPickerVisual/MonthPickerVisualProps.d.ts +12 -0
  80. package/dist/components/MonthPicker/MonthPickerVisual/MonthSelector.d.ts +11 -0
  81. package/dist/components/MonthPicker/MonthPickerVisual/VisualPickerFooter.d.ts +6 -0
  82. package/dist/components/MonthPicker/MonthPickerVisual/VisualPickerHeader.d.ts +14 -0
  83. package/dist/components/MonthPicker/MonthPickerVisual/YearSelector.d.ts +14 -0
  84. package/dist/components/MonthPicker/MonthPickerVisual/useMonthGrid.d.ts +9 -0
  85. package/dist/components/MonthPicker/MonthPickerVisual/useYearGrid.d.ts +8 -0
  86. package/dist/components/MonthPicker/MonthPickerVisual/utils.d.ts +8 -0
  87. package/dist/components/MonthPicker/locales.d.ts +12 -0
  88. package/dist/components/MonthPicker/useMonthPickerValidation.d.ts +25 -0
  89. package/dist/components/NirField/NirField.d.ts +1669 -1379
  90. package/dist/components/NotFoundPage/NotFoundPage.d.ts +9 -3
  91. package/dist/components/NotificationBar/Notification/Notification.d.ts +3 -0
  92. package/dist/components/PageContainer/PageContainer.d.ts +3 -1
  93. package/dist/components/PeriodField/PeriodField.d.ts +7696 -6192
  94. package/dist/components/PhoneField/PhoneField.d.ts +829 -684
  95. package/dist/components/RangeField/RangeSlider/RangeSlider.d.ts +4 -12
  96. package/dist/components/StatusPage/StatusPage.d.ts +12 -1
  97. package/dist/components/SubHeader/SubHeader.d.ts +2 -0
  98. package/dist/components/SyAlert/SyAlert.d.ts +74 -70
  99. package/dist/components/SyBtnMenu/SyBtnMenu.d.ts +9 -0
  100. package/dist/components/SyHeading/SyHeading.a11y.test.d.ts +1 -0
  101. package/dist/components/SyHeading/SyHeading.d.ts +22 -0
  102. package/dist/components/SyHeading/SyHeading.test.d.ts +1 -0
  103. package/dist/components/SyTextArea/SyTextArea.d.ts +475 -419
  104. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +759 -468
  105. package/dist/components/Tables/SyTable/SyTable.d.ts +761 -470
  106. package/dist/components/Tables/common/SyTableFilter.d.ts +1 -1
  107. package/dist/components/Tables/common/SyTablePagination.d.ts +263 -164
  108. package/dist/components/Tables/common/filters/DateFilter.d.ts +10 -1
  109. package/dist/components/Tables/common/filters/NumberFilter.d.ts +1 -1
  110. package/dist/components/Tables/common/filters/PeriodFilter.d.ts +1 -1
  111. package/dist/components/Tables/common/filters/SelectFilter.d.ts +1 -1
  112. package/dist/components/Tables/common/filters/TextFilter.d.ts +1 -1
  113. package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +166 -138
  114. package/dist/components/Tables/common/types.d.ts +2 -0
  115. package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +24 -1211
  116. package/dist/components/UserMenuBtn/UserMenuBtn.d.ts +1 -0
  117. package/dist/components/index.d.ts +2 -0
  118. package/dist/components/types.d.ts +2 -0
  119. package/dist/design-system-v3.js +111 -107
  120. package/dist/design-system-v3.umd.cjs +158 -158
  121. package/dist/designTokens/tokens/amelipro/apLightTheme.d.ts +26 -14
  122. package/dist/designTokens/tokens/amelipro/apSemantic.d.ts +19 -13
  123. package/dist/designTokens/tokens/cnam/cnamContextual.d.ts +5 -0
  124. package/dist/designTokens/tokens/cnam/cnamLightTheme.d.ts +28 -15
  125. package/dist/designTokens/tokens/cnam/cnamSemantic.d.ts +20 -13
  126. package/dist/designTokens/tokens/pa/paLightTheme.d.ts +26 -15
  127. package/dist/designTokens/tokens/pa/paSemantic.d.ts +19 -13
  128. package/dist/main-aLKwdMi1.js +37886 -0
  129. package/dist/main.d.ts +1 -0
  130. package/dist/style.css +1 -1
  131. package/dist/vuetifyConfig.d.ts +14 -14
  132. package/package.json +21 -9
  133. package/src/assets/amelipro/img/logo-amelipro.svg +9 -0
  134. package/src/assets/apTokens.scss +53 -17
  135. package/src/assets/overrides/_btns.scss +8 -0
  136. package/src/assets/overrides/_forms.scss +9 -0
  137. package/src/assets/overrides/_icons.scss +43 -4
  138. package/src/assets/overrides/_tables.scss +19 -0
  139. package/src/assets/overrides/_tooltips.scss +5 -6
  140. package/src/assets/overrides/_typography.scss +17 -2
  141. package/src/assets/overrides/_utilities.scss +49 -3
  142. package/src/assets/tokens.scss +53 -17
  143. package/src/components/Accordion/Accordion.mdx +23 -9
  144. package/src/components/Accordion/Accordion.stories.ts +153 -3
  145. package/src/components/Accordion/Accordion.vue +7 -6
  146. package/src/components/Accordion/accessibilite/Accessibility.mdx +5 -4
  147. package/src/components/Accordion/composables/__tests__/useAccordionState.spec.ts +40 -12
  148. package/src/components/Accordion/composables/useAccordionState.ts +3 -4
  149. package/src/components/Accordion/tests/accordion.spec.ts +131 -19
  150. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/AmeliproAccordionTemplate.vue +2 -2
  151. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/__tests__/__snapshots__/AmeliproAccordionTemplate.spec.ts.snap +0 -2
  152. package/src/components/Amelipro/AmeliproAccordionFrieze/AmeliproAccordionFrieze.vue +2 -2
  153. package/src/components/Amelipro/AmeliproAccordionFrieze/__tests__/__snapshots__/AmeliproAccordionFrieze.spec.ts.snap +14 -56
  154. package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.vue +1 -1
  155. package/src/components/Amelipro/AmeliproAccordionList/__tests__/__snapshots__/AmeliproAccordionList.spec.ts.snap +15 -23
  156. package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.vue +1 -1
  157. package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/__snapshots__/AmeliproAccordionResultList.spec.ts.snap +15 -3
  158. package/src/components/Amelipro/AmeliproCarousel/__tests__/__snapshots__/AmeliproCarousel.spec.ts.snap +0 -2
  159. package/src/components/Amelipro/AmeliproClickableTile/tests/__snapshots__/AmeliproClickableTile.spec.ts.snap +0 -98
  160. package/src/components/Amelipro/AmeliproContentLayout/AmeliproContentLayout.mdx +1 -1
  161. package/src/components/Amelipro/AmeliproContentLayout/AmeliproContentLayout.stories.ts +5 -16
  162. package/src/components/Amelipro/AmeliproCopyBtn/AmeliproCopyBtn.mdx +3 -1
  163. package/src/components/Amelipro/AmeliproCopyBtn/AmeliproCopyBtn.stories.ts +7 -0
  164. package/src/components/Amelipro/AmeliproDentalChart/AmeliproTooth/AmeliproTooth.vue +0 -1
  165. package/src/components/Amelipro/AmeliproDentalChart/AmeliproTooth/tests/__snapshots__/AmeliproTooth.spec.ts.snap +0 -1
  166. package/src/components/Amelipro/AmeliproDentalChart/tests/__snapshots__/AmeliproDentalChart.spec.ts.snap +0 -52
  167. package/src/components/Amelipro/AmeliproDialog/__tests__/__snapshots__/AmeliproDialog.spec.ts.snap +6 -0
  168. package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.mdx +3 -1
  169. package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.stories.ts +19 -0
  170. package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.vue +2 -2
  171. package/src/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.vue +3 -4
  172. package/src/components/Amelipro/AmeliproFirstLogin/__tests__/__snapshots__/AmeliproFirstLogin.spec.ts.snap +2 -13
  173. package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.mdx +3 -1
  174. package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.stories.ts +7 -0
  175. package/src/components/Amelipro/AmeliproMenu/__tests__/__snapshots__/AmeliproMenu.spec.ts.snap +8 -0
  176. package/src/components/Amelipro/AmeliproPagination/AmeliproPagination.mdx +3 -1
  177. package/src/components/Amelipro/AmeliproPagination/AmeliproPagination.stories.ts +8 -0
  178. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/__snapshots__/AmeliproPatientLogged.spec.ts.snap +9 -2
  179. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/__snapshots__/AmeliproPostalAddressCityRow.spec.ts.snap +28 -10
  180. package/src/components/Amelipro/AmeliproPostalAddressField/__tests__/__snapshots__/AmeliproPostalAddressField.spec.ts.snap +44 -8
  181. package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.vue +1 -1
  182. package/src/components/Amelipro/AmeliproResultList/__tests__/__snapshots__/AmeliproResultList.spec.ts.snap +15 -3
  183. package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +1 -1
  184. package/src/components/Amelipro/AmeliproTable/__tests__/__snapshots__/AmeliproTable.spec.ts.snap +0 -1
  185. package/src/components/Amelipro/AmeliproTooltips/__tests__/__snapshots__/AmeliproTooltips.spec.ts.snap +6 -0
  186. package/src/components/Amelipro/AmeliproUpload/__tests__/__snapshots__/AmeliproUpload.spec.ts.snap +2 -4
  187. package/src/components/Amelipro/StructureMenu/StructureList/__tests__/__snapshots__/StructureList.spec.ts.snap +0 -2
  188. package/src/components/Amelipro/UserMenu/__tests__/__snapshots__/UserMenu.spec.ts.snap +8 -0
  189. package/src/components/BackBtn/BackBtn.vue +1 -1
  190. package/src/components/BackBtn/accessibilite/Accessibility.mdx +62 -10
  191. package/src/components/BackToTopBtn/BackToTopBtn.stories.ts +9 -3
  192. package/src/components/BackToTopBtn/accessibilite/Accessibility.mdx +86 -6
  193. package/src/components/Captcha/tests/Captcha.spec.ts +0 -29
  194. package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +18 -108
  195. package/src/components/ChipList/ChipList.vue +4 -2
  196. package/src/components/CollapsibleList/CollapsibleList.stories.ts +8 -3
  197. package/src/components/CollapsibleList/CollapsibleList.vue +14 -6
  198. package/src/components/CollapsibleList/accessibilite/Accessibility.mdx +19 -6
  199. package/src/components/CollapsibleList/tests/CollapsibleList.a11y.spec.ts +1 -0
  200. package/src/components/CollapsibleList/tests/CollapsibleList.spec.ts +2 -0
  201. package/src/components/CookieBanner/CookieBanner.stories.ts +10 -0
  202. package/src/components/CookieBanner/CookieBanner.vue +15 -5
  203. package/src/components/CookieBanner/accessibilite/Accessibility.mdx +9 -0
  204. package/src/components/CookieBanner/tests/CookieBanner.spec.ts +10 -2
  205. package/src/components/CookieBanner/tests/__snapshots__/CookieBanner.spec.ts.snap +21 -15
  206. package/src/components/CookiesSelection/CookiesInformation/CookiesInformation.vue +17 -8
  207. package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.a11y.spec.ts +1 -0
  208. package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.spec.ts +5 -0
  209. package/src/components/CookiesSelection/CookiesSelection.vue +7 -2
  210. package/src/components/CookiesSelection/tests/CookiesSelection.a11y.spec.ts +1 -0
  211. package/src/components/CookiesSelection/tests/CookiesSelection.spec.ts +5 -0
  212. package/src/components/CookiesSelection/tests/__snapshots__/CookiesSelection.spec.ts.snap +21 -15
  213. package/src/components/CopyBtn/CopyBtn.vue +6 -4
  214. package/src/components/CopyBtn/accessibilite/Accessibility.mdx +82 -11
  215. package/src/components/CopyBtn/tests/__snapshots__/CopyBtn.spec.ts.snap +5 -1
  216. package/src/components/Customs/Selects/SelectBtnField/accessibilite/Accessibility.mdx +133 -10
  217. package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.stories.ts +379 -93
  218. package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.vue +144 -83
  219. package/src/components/Customs/Selects/SyAutocomplete/accessibilite/Accessibilite.stories.ts +40 -1
  220. package/src/components/Customs/Selects/SyAutocomplete/accessibilite/Accessibility.mdx +7 -1
  221. package/src/components/Customs/Selects/SyAutocomplete/locales.ts +5 -0
  222. package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.a11y.spec.ts +96 -0
  223. package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.spec.ts +234 -9
  224. package/src/components/Customs/Selects/SyAutocomplete/utils/ariaManager.ts +13 -3
  225. package/src/components/Customs/Selects/SyAutocomplete/utils/useSelectionLogic.ts +9 -10
  226. package/src/components/Customs/Selects/SyInputSelect/SyInputSelect.stories.ts +4 -10
  227. package/src/components/Customs/Selects/SySelect/SySelect.mdx +0 -1
  228. package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +10 -10
  229. package/src/components/Customs/Selects/SySelect/SySelect.vue +63 -3
  230. package/src/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.ts +1 -1
  231. package/src/components/Customs/Selects/SySelect/locales.ts +1 -0
  232. package/src/components/Customs/Selects/SySelect/tests/SySelect.a11y.spec.ts +1 -3
  233. package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +72 -0
  234. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +1 -1
  235. package/src/components/Customs/SyIcon/SyIcon.a11y.spec.ts +31 -2
  236. package/src/components/Customs/SyIcon/SyIcon.vue +9 -5
  237. package/src/components/Customs/SyIcon/tests/SyIcon.a11y.spec.ts +20 -0
  238. package/src/components/Customs/SyIconButton/SyIconButton.mdx +46 -0
  239. package/src/components/Customs/SyIconButton/SyIconButton.stories.ts +184 -0
  240. package/src/components/Customs/SyIconButton/SyIconButton.vue +38 -0
  241. package/src/components/Customs/SyIconButton/accessibilite/Accessibility.mdx +64 -0
  242. package/src/components/Customs/SyIconButton/tests/SyIconButton.a11y.spec.ts +87 -0
  243. package/src/components/Customs/SyIconButton/tests/SyIconButton.spec.ts +152 -0
  244. package/src/components/Customs/SyIconButton/tests/__snapshots__/SyIconButton.spec.ts.snap +61 -0
  245. package/src/components/Customs/SyPagination/SyPagination.stories.ts +14 -2
  246. package/src/components/Customs/SyPagination/SyPagination.vue +25 -10
  247. package/src/components/Customs/SyPagination/accessibilite/Accessibility.mdx +79 -8
  248. package/src/components/Customs/SyPagination/tests/SyPagination.a11y.spec.ts +53 -0
  249. package/src/components/Customs/SyPagination/tests/SyPagination.spec.ts +12 -0
  250. package/src/components/Customs/SyTextField/SyTextField.stories.ts +4 -0
  251. package/src/components/Customs/SyTextField/SyTextField.vue +59 -7
  252. package/src/components/Customs/SyTextField/accessibilite/Accessibility.mdx +67 -9
  253. package/src/components/Customs/SyTextField/tests/SyTextField.a11y.spec.ts +15 -0
  254. package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +36 -0
  255. package/src/components/DataList/accessibilite/Accessibility.mdx +79 -11
  256. package/src/components/DataListGroup/accessibilite/Accessibility.mdx +80 -11
  257. package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +28 -3
  258. package/src/components/DatePicker/CalendarMode/DatePicker.vue +20 -8
  259. package/src/components/DatePicker/CalendarMode/tests/DatePicker.spec.ts +9 -3
  260. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +1 -1
  261. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +70 -47
  262. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.a11y.spec.ts +34 -0
  263. package/src/components/DatePicker/DateTextInput/tests/DateTextInput.a11y.spec.ts +27 -0
  264. package/src/components/DatePicker/docExamples/BidirectionalComplexValidation.vue +23 -9
  265. package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +21 -8
  266. package/src/components/DatePicker/docExamples/DatePickerValidationExamples.vue +50 -22
  267. package/src/components/DatePicker/playground/ComplexDatePickerPlayground.vue +48 -10
  268. package/src/components/DatePicker/playground/DatePickerHolidayRule.vue +16 -3
  269. package/src/components/DialogBox/DialogBox.stories.ts +13 -0
  270. package/src/components/DialogBox/DialogBox.vue +12 -5
  271. package/src/components/DialogBox/accessibilite/Accessibility.mdx +27 -7
  272. package/src/components/DialogBox/tests/DialogBox.a11y.spec.ts +1 -0
  273. package/src/components/DialogBox/tests/DialogBox.spec.ts +40 -6
  274. package/src/components/DownloadBtn/accessibilite/Accessibility.mdx +73 -11
  275. package/src/components/DownloadBtn/config.ts +1 -1
  276. package/src/components/DownloadBtn/tests/DownloadBtn.a11y.spec.ts +25 -0
  277. package/src/components/ErrorPage/ErrorPage.stories.ts +176 -47
  278. package/src/components/ErrorPage/ErrorPage.vue +21 -0
  279. package/src/components/ErrorPage/accessibilite/Accessibility.mdx +15 -0
  280. package/src/components/ErrorPage/tests/ErrorPage.a11y.spec.ts +17 -0
  281. package/src/components/ErrorPage/tests/ErrorPage.spec.ts +21 -1
  282. package/src/components/ErrorPage/tests/__snapshots__/ErrorPage.spec.ts.snap +1 -0
  283. package/src/components/ExternalLinks/tests/ExternalLinks.a11y.spec.ts +23 -0
  284. package/src/components/ExternalLinks/tests/__snapshots__/ExternalLinks.spec.ts.snap +13 -2
  285. package/src/components/FileList/FileList.stories.ts +55 -1
  286. package/src/components/FileList/UploadItem/UploadItem.vue +17 -5
  287. package/src/components/FileList/UploadItem/locales.ts +3 -2
  288. package/src/components/FileList/accessibilite/Accessibility.mdx +58 -7
  289. package/src/components/FileUpload/FileUpload.vue +62 -38
  290. package/src/components/FileUpload/FileUploadContent.vue +3 -2
  291. package/src/components/FileUpload/accessibilite/Accessibility.mdx +48 -5
  292. package/src/components/FileUpload/locales.ts +1 -0
  293. package/src/components/FileUpload/tests/FileUpload.spec.ts +61 -14
  294. package/src/components/FileUpload/validateFiles.ts +5 -2
  295. package/src/components/FilterInline/FilterInline.stories.ts +0 -15
  296. package/src/components/FilterInline/FilterInline.vue +1 -0
  297. package/src/components/FilterInline/accessibilite/Accessibility.mdx +70 -7
  298. package/src/components/FilterInline/tests/__snapshots__/FilterInline.spec.ts.snap +3 -3
  299. package/src/components/FilterSideBar/FilterSideBar.stories.ts +0 -3
  300. package/src/components/FilterSideBar/FilterSideBar.vue +2 -1
  301. package/src/components/FilterSideBar/accessibilite/Accessibility.mdx +70 -9
  302. package/src/components/FooterBar/FooterBar.stories.ts +298 -34
  303. package/src/components/FooterBar/FooterBar.vue +67 -9
  304. package/src/components/FooterBar/config.ts +2 -2
  305. package/src/components/FooterBar/locales.ts +1 -0
  306. package/src/components/FooterBar/tests/FooterBarConfig.spec.ts +1 -1
  307. package/src/components/FooterBar/tests/__snapshots__/FooterBar.spec.ts.snap +6 -25
  308. package/src/components/FooterBar/types.d.ts +1 -0
  309. package/src/components/FranceConnectBtn/accessibilite/Accessibility.mdx +62 -9
  310. package/src/components/HeaderBar/HeaderBar.stories.ts +23 -1
  311. package/src/components/HeaderBar/HeaderBar.vue +5 -0
  312. package/src/components/HeaderBar/HeaderLogo/HeaderLogo.vue +8 -2
  313. package/src/components/HeaderBar/HeaderLogo/tests/HeaderLogo.spec.ts +5 -0
  314. package/src/components/HeaderBar/accessibilite/Accessibility.mdx +24 -5
  315. package/src/components/HeaderBar/tests/HeaderBar.a11y.spec.ts +1 -0
  316. package/src/components/HeaderBar/tests/HeaderBar.spec.ts +3 -0
  317. package/src/components/HeaderNavigationBar/HeaderNavigationBar.stories.ts +4 -0
  318. package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +3 -0
  319. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.spec.ts +3 -0
  320. package/src/components/LogoBrandSection/LogoBrandSection.stories.ts +22 -0
  321. package/src/components/LogoBrandSection/LogoBrandSection.vue +13 -5
  322. package/src/components/LogoBrandSection/tests/LogoBrandSection.a11y.spec.ts +2 -0
  323. package/src/components/LogoBrandSection/tests/LogoBrandSection.spec.ts +44 -0
  324. package/src/components/LogoBrandSection/tests/__snapshots__/LogoBrandSection.spec.ts.snap +2 -0
  325. package/src/components/LunarCalendar/accessibilite/Accessibility.mdx +74 -8
  326. package/src/components/LunarCalendar/tests/LunarCalendar.a11y.spec.ts +163 -0
  327. package/src/components/MaintenancePage/MaintenancePage.vue +33 -6
  328. package/src/components/MaintenancePage/accessibilite/Accessibility.mdx +3 -1
  329. package/src/components/MaintenancePage/tests/MaintenancePage.a11y.spec.ts +3 -2
  330. package/src/components/MaintenancePage/tests/MaintenancePage.spec.ts +18 -1
  331. package/src/components/MaintenancePage/tests/__snapshots__/MaintenancePage.spec.ts.snap +1 -0
  332. package/src/components/MonthPicker/MonthPicker.mdx +35 -0
  333. package/src/components/MonthPicker/MonthPicker.stories.ts +527 -0
  334. package/src/components/MonthPicker/MonthPicker.vue +79 -0
  335. package/src/components/MonthPicker/MonthPickerText/MonthPickerInput.vue +89 -0
  336. package/src/components/MonthPicker/MonthPickerText/useTextField.ts +27 -0
  337. package/src/components/MonthPicker/MonthPickerVisual/MonthPickerVisual.vue +154 -0
  338. package/src/components/MonthPicker/MonthPickerVisual/MonthPickerVisualProps.ts +13 -0
  339. package/src/components/MonthPicker/MonthPickerVisual/MonthSelector.vue +137 -0
  340. package/src/components/MonthPicker/MonthPickerVisual/VisualPickerFooter.vue +60 -0
  341. package/src/components/MonthPicker/MonthPickerVisual/VisualPickerHeader.vue +149 -0
  342. package/src/components/MonthPicker/MonthPickerVisual/YearSelector.vue +143 -0
  343. package/src/components/MonthPicker/MonthPickerVisual/useMonthGrid.ts +45 -0
  344. package/src/components/MonthPicker/MonthPickerVisual/useYearGrid.ts +45 -0
  345. package/src/components/MonthPicker/MonthPickerVisual/utils.ts +17 -0
  346. package/src/components/MonthPicker/accessibilite/Accessibility.mdx +59 -0
  347. package/src/components/MonthPicker/locales.ts +12 -0
  348. package/src/components/MonthPicker/tests/MonthPicker.a11y.spec.ts +71 -0
  349. package/src/components/MonthPicker/tests/MonthPicker.spec.ts +1248 -0
  350. package/src/components/MonthPicker/tests/__snapshots__/MonthPicker.spec.ts.snap +2545 -0
  351. package/src/components/MonthPicker/useMonthPickerValidation.ts +30 -0
  352. package/src/components/NirField/NirField.mdx +1 -2
  353. package/src/components/NirField/NirField.stories.ts +66 -6
  354. package/src/components/NotFoundPage/NotFoundPage.stories.ts +1 -1
  355. package/src/components/NotFoundPage/NotFoundPage.vue +16 -5
  356. package/src/components/NotFoundPage/accessibilite/Accessibility.mdx +2 -0
  357. package/src/components/NotFoundPage/tests/NotFoundPage.a11y.spec.ts +49 -0
  358. package/src/components/NotFoundPage/tests/NotFoundPage.spec.ts +24 -2
  359. package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +24 -14
  360. package/src/components/NotificationBar/Notification/Notification.vue +3 -1
  361. package/src/components/NotificationBar/NotificationBar.stories.ts +154 -0
  362. package/src/components/NotificationBar/tests/NotificationBar.a11y.spec.ts +26 -0
  363. package/src/components/NotificationBar/tests/NotificationBar.spec.ts +60 -0
  364. package/src/components/PageContainer/PageContainer.stories.ts +47 -0
  365. package/src/components/PageContainer/PageContainer.vue +4 -2
  366. package/src/components/PageContainer/accessibilite/Accessibility.mdx +31 -17
  367. package/src/components/PaginatedTable/PaginatedTable.mdx +3 -3
  368. package/src/components/PaginatedTable/PaginatedTable.stories.ts +9 -1
  369. package/src/components/PeriodField/PeriodField.vue +4 -0
  370. package/src/components/PeriodField/tests/PeriodField.a11y.spec.ts +10 -1
  371. package/src/components/PhoneField/PhoneField.stories.ts +73 -35
  372. package/src/components/PhoneField/PhoneField.vue +152 -83
  373. package/src/components/PhoneField/accessibilite/Accessibility.mdx +306 -9
  374. package/src/components/PhoneField/indicatifs.ts +2 -2
  375. package/src/components/PhoneField/tests/PhoneField.a11y.spec.ts +47 -0
  376. package/src/components/PhoneField/tests/PhoneField.spec.ts +82 -5
  377. package/src/components/RangeField/accessibilite/Accessibility.mdx +79 -11
  378. package/src/components/SearchListField/SearchListField.vue +1 -1
  379. package/src/components/SearchListField/accessibilite/Accessibility.mdx +69 -9
  380. package/src/components/SearchListField/tests/SearchListField.a11y.spec.ts +37 -0
  381. package/src/components/SkipLink/tests/SkipLink.a11y.spec.ts +23 -0
  382. package/src/components/SocialMediaLinks/SocialMediaLinks.vue +1 -1
  383. package/src/components/StatusPage/StatusPage.mdx +10 -1
  384. package/src/components/StatusPage/StatusPage.stories.ts +161 -0
  385. package/src/components/StatusPage/StatusPage.vue +29 -5
  386. package/src/components/StatusPage/accessibilite/Accessibility.mdx +24 -5
  387. package/src/components/StatusPage/tests/StatusPage.a11y.spec.ts +23 -0
  388. package/src/components/StatusPage/tests/StatusPage.spec.ts +25 -0
  389. package/src/components/StatusPage/tests/__snapshots__/StatusPage.spec.ts.snap +24 -14
  390. package/src/components/SubHeader/SubHeader.stories.ts +16 -0
  391. package/src/components/SubHeader/SubHeader.vue +6 -3
  392. package/src/components/SubHeader/accessibilite/Accessibility.mdx +27 -6
  393. package/src/components/SubHeader/tests/SubHeader.a11y.spec.ts +20 -0
  394. package/src/components/SyAlert/SyAlert.vue +22 -20
  395. package/src/components/SyAlert/accessibilite/Accessibility.mdx +79 -9
  396. package/src/components/SyAlert/tests/SyAlert.a11y.spec.ts +23 -0
  397. package/src/components/SyBtnMenu/SyBtnMenu.vue +33 -17
  398. package/src/components/SyBtnMenu/tests/SyBtnMenu.a11y.spec.ts +38 -0
  399. package/src/components/SyBtnMenu/tests/SyBtnMenu.spec.ts +41 -0
  400. package/src/components/SyHeading/SyHeading.a11y.test.ts +149 -0
  401. package/src/components/SyHeading/SyHeading.test.ts +115 -0
  402. package/src/components/SyHeading/SyHeading.vue +20 -0
  403. package/src/components/SyTextArea/accessibilite/Accessibility.mdx +80 -8
  404. package/src/components/SyTextArea/tests/SyTextArea.a11y.spec.ts +151 -0
  405. package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +96 -30
  406. package/src/components/Tables/SyServerTable/SyServerTable.vue +2 -0
  407. package/src/components/Tables/SyTable/SyTable.vue +2 -0
  408. package/src/components/Tables/common/SyTablePagination.vue +16 -10
  409. package/src/components/Tables/common/filters/DateFilter.vue +5 -0
  410. package/src/components/Tables/common/tests/SyTablePagination.spec.ts +40 -24
  411. package/src/components/Tables/common/types.ts +3 -0
  412. package/src/components/ToolbarContainer/tests/ToolbarContainer.a11y.spec.ts +126 -0
  413. package/src/components/UploadWorkflow/UploadWorkflow.stories.ts +11 -11
  414. package/src/components/UploadWorkflow/UploadWorkflow.vue +30 -13
  415. package/src/components/UploadWorkflow/accessibilite/Accessibility.mdx +56 -5
  416. package/src/components/UploadWorkflow/accessibilite/UploadWorkflow.a11y.spec.ts +110 -0
  417. package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +7 -25
  418. package/src/components/UploadWorkflow/tests/__snapshots__/UploadWorkflow.spec.ts.snap +146 -123
  419. package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +53 -31
  420. package/src/components/UserMenuBtn/UserMenuBtn.vue +4 -1
  421. package/src/components/UserMenuBtn/accessibilite/Accessibility.mdx +72 -8
  422. package/src/components/index.ts +2 -0
  423. package/src/components/types.ts +4 -0
  424. package/src/composables/date/tests/useDateInitialization.spec.ts +22 -1
  425. package/src/composables/date/useDateInitializationDayjs.ts +4 -7
  426. package/src/composables/date/useDatePickerAccessibility.ts +2 -3
  427. package/src/composables/useFilterable/useFilterable.spec.ts +52 -2
  428. package/src/composables/useFilterable/useFilterable.ts +7 -1
  429. package/src/composables/useFormFieldErrorHandling.ts +11 -2
  430. package/src/designTokens/tokens/amelipro/apLightTheme.ts +27 -15
  431. package/src/designTokens/tokens/amelipro/apSemantic.ts +21 -15
  432. package/src/designTokens/tokens/cnam/cnamContextual.ts +6 -1
  433. package/src/designTokens/tokens/cnam/cnamLightTheme.ts +28 -15
  434. package/src/designTokens/tokens/cnam/cnamSemantic.ts +21 -14
  435. package/src/designTokens/tokens/pa/paLightTheme.ts +27 -16
  436. package/src/designTokens/tokens/pa/paSemantic.ts +19 -13
  437. package/src/directives/rgaaSvgFix.ts +2 -7
  438. package/src/main.ts +2 -0
  439. package/src/stories/Accessibilite/{Audit → AuditEtContreAudit}/Exemptions-derogations.mdx +1 -1
  440. package/src/stories/Accessibilite/AuditEtContreAudit/Introduction.mdx +188 -0
  441. package/src/stories/Accessibilite/{Audit → AuditEtContreAudit}/RGAA.mdx +1 -1
  442. package/src/stories/Accessibilite/Introduction.mdx +22 -3
  443. package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +21 -22
  444. package/src/stories/DeprecationNotice/DeprecationNotice.ts +41 -0
  445. package/src/stories/DesignTokens/ColorDisplay.vue +12 -5
  446. package/src/stories/DesignTokens/Colors.mdx +8 -59
  447. package/src/stories/DesignTokens/colors.stories.ts +1862 -1071
  448. package/src/stories/EcoConception/EcoGuideComponent.vue +10 -4
  449. package/dist/main-CWniLr0s.js +0 -36919
@@ -1,6 +1,7 @@
1
1
  <script setup lang="ts">
2
2
  import { computed, useSlots } from 'vue'
3
3
  import { type RouteLocationRaw } from 'vue-router'
4
+ import { useTheme } from 'vuetify'
4
5
 
5
6
  import Logo from '@/components/Logo/Logo.vue'
6
7
  import { LogoSize } from '@/components/Logo/LogoSize'
@@ -23,11 +24,13 @@
23
24
  linkItems?: LinkItem[] | null
24
25
  items?: LinkItem[] | null
25
26
  sitemapRoute?: RouteLocationRaw
27
+ helpRoute?: RouteLocationRaw
26
28
  cguRoute?: RouteLocationRaw
27
29
  cookiesRoute?: RouteLocationRaw
28
30
  legalNoticeRoute?: RouteLocationRaw
29
31
  a11yStatementRoute?: RouteLocationRaw
30
32
  hideSitemapLink?: boolean
33
+ hideHelpLink?: boolean
31
34
  hideCguLink?: boolean
32
35
  hideCookiesLink?: boolean
33
36
  hideLegalNoticeLink?: boolean
@@ -37,16 +40,20 @@
37
40
  hideSocialMediaLinks?: boolean
38
41
  socialMediaLinks?: SocialMediaLink[]
39
42
  light?: boolean
43
+ backOffice?: boolean
44
+ backOfficeText?: string
40
45
  }>(), {
41
46
  a11yCompliance: 'non-compliant',
42
47
  linkItems: null,
43
48
  items: null,
44
49
  sitemapRoute: () => ({ name: 'sitemap' }),
50
+ helpRoute: () => ({ name: 'help' }),
45
51
  cguRoute: () => ({ name: 'cgu' }),
46
52
  cookiesRoute: () => ({ name: 'cookies' }),
47
53
  legalNoticeRoute: () => ({ name: 'legalNotice' }),
48
54
  a11yStatementRoute: () => ({ name: 'a11yStatement' }),
49
55
  hideSitemapLink: false,
56
+ hideHelpLink: false,
50
57
  hideCguLink: false,
51
58
  hideCookiesLink: false,
52
59
  hideLegalNoticeLink: false,
@@ -56,6 +63,8 @@
56
63
  hideSocialMediaLinks: false,
57
64
  socialMediaLinks: () => defaultSocialMediaLinks as SocialMediaLink[],
58
65
  light: false,
66
+ backOffice: false,
67
+ backOfficeText: undefined,
59
68
  })
60
69
 
61
70
  const arrowTopIcon = mdiArrowUp
@@ -63,6 +72,11 @@
63
72
  const slots = useSlots()
64
73
  const display = useDisplay()
65
74
  const options = useCustomizableOptions(config, props)
75
+ const vuetifyTheme = useTheme()
76
+
77
+ const emit = defineEmits<{
78
+ (e: 'event', item: string): void
79
+ }>()
66
80
 
67
81
  const getLinkComponent = (item: LinkItem): string => {
68
82
  return item.href ? 'a' : 'RouterLink'
@@ -96,7 +110,7 @@
96
110
 
97
111
  const footerLinksMapping = computed(() => {
98
112
  if (props.linkItems) {
99
- return props.linkItems as LinkItem[]
113
+ return filterByTheme(props.linkItems as LinkItem[])
100
114
  }
101
115
 
102
116
  const linksMapping: LinkItem[] = [
@@ -104,6 +118,13 @@
104
118
  text: locales.sitemapLabel,
105
119
  to: props.sitemapRoute,
106
120
  hidden: props.hideSitemapLink,
121
+ theme: 'cnam',
122
+ },
123
+ {
124
+ text: locales.HelpLabel,
125
+ to: props.helpRoute,
126
+ hidden: props.hideHelpLink,
127
+ theme: 'ap',
107
128
  },
108
129
  {
109
130
  text: locales.cguLabel,
@@ -114,6 +135,7 @@
114
135
  text: locales.cookiesLabel,
115
136
  to: props.cookiesRoute,
116
137
  hidden: props.hideCookiesLink,
138
+ theme: 'cnam',
117
139
  },
118
140
  {
119
141
  text: locales.legalNoticeLabel,
@@ -127,9 +149,25 @@
127
149
  },
128
150
  ] as LinkItem[]
129
151
 
130
- return linksMapping.filter(item => !item.hidden)
152
+ return filterByTheme(linksMapping)
131
153
  })
132
154
 
155
+ function filterByTheme(items: LinkItem[]): LinkItem[] {
156
+ return items
157
+ .filter(item => !item.hidden)
158
+ .filter(item =>
159
+ !vuetifyTheme.name.value || !item.theme || item.theme === vuetifyTheme.name.value,
160
+ )
161
+ }
162
+
163
+ const fontStyle = computed(() => ({
164
+ fontSize: vuetifyTheme.name.value === 'ap' ? '14px' : '',
165
+ }))
166
+
167
+ function emitEvent(item: LinkItem) {
168
+ emit('event', item.text)
169
+ }
170
+
133
171
  defineExpose({
134
172
  logoSize,
135
173
  })
@@ -176,6 +214,7 @@
176
214
 
177
215
  <VBtn
178
216
  id="scroll-btn"
217
+ class="back-to-top"
179
218
  v-bind="options.goTopBtn"
180
219
  :aria-label="locales.goTopBtnLabel"
181
220
  @click="scrollToTop"
@@ -205,7 +244,7 @@
205
244
 
206
245
  <ul
207
246
  :class="{ 'py-2 py-sm-0': !extendedMode }"
208
- class="vd-footer-bar-links text-sm-center d-flex flex-column flex-sm-row flex-wrap align-start justify-center max-width-none mx-n3 my-n3"
247
+ class="vd-footer-bar-links text-sm-center d-flex flex-column flex-sm-row flex-wrap align-center justify-center max-width-none mx-n3 my-n3"
209
248
  >
210
249
  <slot name="prepend" />
211
250
 
@@ -215,20 +254,31 @@
215
254
  >
216
255
  <component
217
256
  :is="getLinkComponent(item)"
257
+ v-if="!backOffice"
218
258
  :href="item.href"
219
259
  :to="item.to"
220
260
  :aria-label="item.ariaLabel"
221
261
  :target="item.openInNewTab ? '_blank' : undefined"
222
262
  :rel="item.openInNewTab ? 'noopener noreferrer' : undefined"
223
263
  class="my-3 mx-4"
264
+ :style="fontStyle"
265
+ @click="emitEvent(item)"
224
266
  >
225
267
  {{ item.text }}
226
268
  </component>
227
269
  </li>
270
+ <li
271
+ v-if="props.backOffice"
272
+ class="my-3 mx-4"
273
+ :style="fontStyle"
274
+ >
275
+ CNAM - {{ props.backOfficeText }}
276
+ </li>
228
277
 
229
278
  <li
230
279
  v-if="props.version"
231
- class="my-3 mx-4"
280
+ class="my-3 mx-4 version"
281
+ :style="fontStyle"
232
282
  >
233
283
  {{ locales.versionLabel }} {{ props.version }}
234
284
  </li>
@@ -283,11 +333,19 @@ a {
283
333
  color: rgb(var(--v-theme-primary));
284
334
  }
285
335
 
336
+ a.v-btn {
337
+ border-radius: var(tokens.$radius-rounded) !important;
338
+ }
339
+
286
340
  a.v-btn:hover {
287
341
  background: rgb(0 0 0 / 5%);
288
342
  }
289
343
  }
290
344
 
345
+ .back-to-top {
346
+ border-radius: var(tokens.$radius-rounded) !important;
347
+ }
348
+
291
349
  button.v-btn:hover {
292
350
  background: rgb(0 0 0 / 5%);
293
351
  }
@@ -297,11 +355,7 @@ a {
297
355
  }
298
356
 
299
357
  .v-divider {
300
- border-color: rgba(tokens.$parma-darken-60, 1);
301
- }
302
-
303
- svg.logo {
304
- fill: rgb(var(--v-theme-primary));
358
+ border-color: var(--footer-background);
305
359
  }
306
360
 
307
361
  .scroll {
@@ -314,6 +368,10 @@ a {
314
368
  .vd-footer-bar-links li,
315
369
  .vd-footer-bar-links a {
316
370
  color: $white;
371
+
372
+ &.version {
373
+ color: tokens.$neutral-white-alpha;
374
+ }
317
375
  }
318
376
 
319
377
  p,
@@ -3,7 +3,7 @@ import type { VariantType, DensityType } from '@/types/vuetifyTypes'
3
3
  export const config = {
4
4
  footer: {
5
5
  elevation: 3,
6
- color: 'parma-darken60',
6
+ color: 'var(--footer-background)',
7
7
  height: 'auto',
8
8
  },
9
9
  goTopBtn: {
@@ -11,7 +11,7 @@ export const config = {
11
11
  density: 'compact' as DensityType,
12
12
  icon: 'true',
13
13
  variant: 'text' as VariantType,
14
- color: 'parma-darken60',
14
+ color: 'var(--footer-background)',
15
15
  },
16
16
  goTopBtnIcon: {
17
17
  color: 'white',
@@ -3,6 +3,7 @@ import { A11yComplianceEnum } from './A11yCompliance'
3
3
  export const locales = {
4
4
  goTopBtnLabel: 'Retour en haut de la page',
5
5
  sitemapLabel: 'Plan du site',
6
+ HelpLabel: 'Aide et configuration',
6
7
  cguLabel: 'Conditions générales d’utilisation',
7
8
  cookiesLabel: 'Gestion des cookies',
8
9
  legalNoticeLabel: 'Mentions légales',
@@ -7,7 +7,7 @@ describe('FooterBar config', () => {
7
7
  })
8
8
 
9
9
  it('should have correct footer color', () => {
10
- expect(config.footer.color).toBe('parma-darken60')
10
+ expect(config.footer.color).toBe('var(--footer-background)')
11
11
  })
12
12
 
13
13
  it('should have correct footer minHeight', () => {
@@ -4,7 +4,6 @@ exports[`FooterBar > renders correctly 1`] = `
4
4
  <footer
5
5
  class="
6
6
  align-stretch
7
- bg-parma-darken60
8
7
  elevation-3
9
8
  flex-column
10
9
  pa-3
@@ -15,14 +14,17 @@ exports[`FooterBar > renders correctly 1`] = `
15
14
  w-100
16
15
  "
17
16
  role="contentinfo"
18
- style="height: auto;"
17
+ style="
18
+ background-color: var(--footer-background);
19
+ height: auto;
20
+ "
19
21
  >
20
22
  <div class="container">
21
23
  <!-- v-if -->
22
24
  <!-- v-if -->
23
25
  <!-- v-if -->
24
26
  <ul class="
25
- align-start
27
+ align-center
26
28
  d-flex
27
29
  flex-column
28
30
  flex-sm-row
@@ -36,17 +38,6 @@ exports[`FooterBar > renders correctly 1`] = `
36
38
  text-sm-center
37
39
  vd-footer-bar-links
38
40
  ">
39
- <li>
40
- <routerlink
41
- class="
42
- mx-4
43
- my-3
44
- "
45
- to="[object Object]"
46
- >
47
- Plan du site
48
- </routerlink>
49
- </li>
50
41
  <li>
51
42
  <routerlink
52
43
  class="
@@ -58,17 +49,6 @@ exports[`FooterBar > renders correctly 1`] = `
58
49
  Conditions générales d’utilisation
59
50
  </routerlink>
60
51
  </li>
61
- <li>
62
- <routerlink
63
- class="
64
- mx-4
65
- my-3
66
- "
67
- to="[object Object]"
68
- >
69
- Gestion des cookies
70
- </routerlink>
71
- </li>
72
52
  <li>
73
53
  <routerlink
74
54
  class="
@@ -92,6 +72,7 @@ exports[`FooterBar > renders correctly 1`] = `
92
72
  </routerlink>
93
73
  </li>
94
74
  <!-- v-if -->
75
+ <!-- v-if -->
95
76
  </ul>
96
77
  </div>
97
78
  </footer>
@@ -7,4 +7,5 @@ export interface LinkItem {
7
7
  href?: string
8
8
  ariaLabel?: string
9
9
  openInNewTab?: boolean
10
+ theme?: string
10
11
  }
@@ -1,15 +1,68 @@
1
- import { Meta, Story } from '@storybook/addon-docs';
1
+ import { Meta, Primary } from '@storybook/blocks';
2
2
  import * as Stories from '../FranceConnectBtn.stories.ts';
3
- import '@/stories/styles/shared.css';
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
13
  <Meta of={Stories} />
6
14
 
7
- <div className="header">
8
- <h1>Accessibilité</h1>
9
- </div>
10
-
11
-
12
- <div class="mt-2">
13
- <p>Rapport d’audit manuel : <a href="/audits/FranceConnectBtn.xlsx" style={{ color:'#0C41BD' }}>Voir le rapport</a></p>
15
+ <AccessibilityGuideLayout
16
+ componentName="FranceConnectBtn"
17
+ iconSrc={AccessibilityIcon}
18
+ apgHref="https://www.w3.org/WAI/ARIA/apg/patterns/button/"
19
+ >
20
+ <div class="mt-8">
21
+ <p>Rapport d’audit manuel : <a href="/audits/FranceConnectBtn.xlsx" style={{ color:'#0C41BD' }}>Voir le rapport</a></p>
14
22
  <p style={{ color: 'grey', fontSize: '14px', marginTop: '0px' }}>Correctifs associés (<a href="https://github.com/assurance-maladie-digital/design-system-v3/issues/4005" target="_blank" style={{color:'#0C41BD'}}>issue #4005</a>)</p>
15
23
  </div>
24
+
25
+ <CriteriaSection>
26
+ <CriteriaCard icon="🔍" title="Structure sémantique et attributs">
27
+ <ul>
28
+ <li><strong>Liens natifs</strong> : Utilisation de balises <code>&lt;a&gt;</code> pour le bouton principal et le lien d'information, garantissant une sémantique correcte.</li>
29
+ <li><strong>Labels explicites</strong> : Utilisation de l'attribut <code>aria-label</code> sur les liens pour fournir une description claire aux lecteurs d'écran (ex: "S'identifier avec FranceConnect" ou "S'identifier avec FranceConnect+").</li>
30
+ <li><strong>SVG masqué</strong> : Le logo SVG complexe est masqué aux technologies d'assistance avec <code>aria-hidden="true"</code> et <code>role="presentation"</code> car l'information est déjà portée par l'attribut <code>aria-label</code> du lien parent.</li>
31
+ <li><strong>Ouverture de fenêtre</strong> : Le lien externe informe l'utilisateur de l'ouverture d'un nouvel onglet, avec une icône explicitement masquée (<code>decorative=true</code>).</li>
32
+ </ul>
33
+ </CriteriaCard>
34
+
35
+ <CriteriaCard icon="⌨️" title="Navigation et interaction clavier">
36
+ <ul>
37
+ <li><strong>Focus natif</strong> : Les liens sont naturellement accessibles via la touche <kbd>Tab</kbd>.</li>
38
+ <li><strong>Indicateur de focus</strong> : Un style de focus clair, visible et avec un décalage (<code>outline-offset</code>) est implémenté pour garantir une bonne visibilité lors de la navigation au clavier.</li>
39
+ </ul>
40
+ </CriteriaCard>
41
+
42
+ <CriteriaCard icon="🎨" title="Styles et contrastes">
43
+ <ul>
44
+ <li><strong>Couleurs institutionnelles</strong> : Respect strict des couleurs et contrastes de la charte FranceConnect (Bleu France), garantissant un ratio de contraste suffisant.</li>
45
+ <li><strong>Adaptation au thème sombre</strong> : Ajustement des couleurs de fond (ex: <code>#8585f6</code>) et de texte en mode sombre pour maintenir la lisibilité et l'accessibilité visuelle.</li>
46
+ </ul>
47
+ </CriteriaCard>
48
+ </CriteriaSection>
49
+
50
+ <DemoSection componentName="FranceConnectBtn">
51
+ <Primary />
52
+ </DemoSection>
53
+
54
+ <BestPracticesSection>
55
+ <ul>
56
+ <li><strong>Positionnement</strong> : Placez toujours ce bouton dans un contexte de connexion ou d'authentification.</li>
57
+ <li><strong>Respect de la charte</strong> : Ne modifiez pas les proportions, les couleurs (en dehors du mode sombre) ou les libellés de ce bouton, car ils sont soumis aux règles strictes de la direction interministérielle du numérique (DINUM).</li>
58
+ <li>Assurez-vous que le lien <code>href</code> fourni pointe vers la véritable interface de redirection d'authentification.</li>
59
+ </ul>
60
+ </BestPracticesSection>
61
+
62
+ <ResourcesSection>
63
+ <ul>
64
+ <li><a href="https://franceconnect.gouv.fr/partenaires" target="_blank" rel="noopener noreferrer">Documentation et charte FranceConnect</a></li>
65
+ <li><a href="https://accessibilite.numerique.gouv.fr/methode/criteres-et-tests/#6.1" target="_blank" rel="noopener noreferrer">RGAA : Liens et navigation</a></li>
66
+ </ul>
67
+ </ResourcesSection>
68
+ </AccessibilityGuideLayout>
@@ -158,6 +158,18 @@ const meta = {
158
158
  },
159
159
  },
160
160
  },
161
+ 'headingLevelTitle': {
162
+ control: { type: 'select', options: [1, 2, 3, 4, 5, 6] },
163
+ description: 'Le niveau de titre pour le titre du service.',
164
+ table: {
165
+ type: {
166
+ summary: '1 | 2 | 3 | 4 | 5 | 6',
167
+ },
168
+ defaultValue: {
169
+ summary: '1',
170
+ },
171
+ },
172
+ },
161
173
  },
162
174
  } satisfies Meta<typeof HeaderBar>
163
175
 
@@ -167,6 +179,7 @@ type Story = StoryObj<typeof meta>
167
179
 
168
180
  export const Default: Story = {
169
181
  args: {
182
+ headingLevelTitle: 1,
170
183
  serviceTitle: 'Synapse',
171
184
  serviceSubtitle: 'Design System',
172
185
  },
@@ -184,6 +197,7 @@ export const Default: Story = {
184
197
  <HeaderBar
185
198
  service-title="Synapse"
186
199
  service-subtitle="Design System"
200
+ :heading-level-title="1"
187
201
  />
188
202
  </template>
189
203
  `,
@@ -202,6 +216,7 @@ export const Default: Story = {
202
216
 
203
217
  export const WithRightMenu: Story = {
204
218
  args: {
219
+ headingLevelTitle: 1,
205
220
  serviceTitle: 'Synapse',
206
221
  serviceSubtitle: 'Design System',
207
222
  },
@@ -309,6 +324,7 @@ export const WithRightMenu: Story = {
309
324
 
310
325
  export const CustomLogo: Story = {
311
326
  args: {
327
+ headingLevelTitle: 1,
312
328
  serviceTitle: 'Synapse',
313
329
  serviceSubtitle: 'Design System',
314
330
  sticky: false,
@@ -446,7 +462,7 @@ export const CustomLogo: Story = {
446
462
  }
447
463
 
448
464
  export const CustomBrand: Story = {
449
- args: {},
465
+ args: { headingLevelTitle: 1 },
450
466
  render: (args) => {
451
467
  return {
452
468
  components: { HeaderBar },
@@ -500,6 +516,7 @@ export const CustomBrand: Story = {
500
516
 
501
517
  export const Sticky: Story = {
502
518
  args: {
519
+ headingLevelTitle: 1,
503
520
  serviceTitle: 'Synapse',
504
521
  serviceSubtitle: 'Design System',
505
522
  },
@@ -543,6 +560,7 @@ export const Sticky: Story = {
543
560
 
544
561
  export const WithHeaderToolbar: Story = {
545
562
  args: {
563
+ headingLevelTitle: 1,
546
564
  serviceTitle: 'Synapse',
547
565
  serviceSubtitle: 'Design System',
548
566
  },
@@ -598,6 +616,7 @@ export const WithHeaderToolbar: Story = {
598
616
 
599
617
  export const WithSubHeader: Story = {
600
618
  args: {
619
+ headingLevelTitle: 1,
601
620
  serviceTitle: 'Synapse',
602
621
  serviceSubtitle: 'Design System',
603
622
  },
@@ -657,6 +676,7 @@ export const WithSubHeader: Story = {
657
676
 
658
677
  export const DefaultSlot: Story = {
659
678
  args: {
679
+ headingLevelTitle: 1,
660
680
  serviceTitle: 'Synapse',
661
681
  serviceSubtitle: 'Design System',
662
682
  },
@@ -722,6 +742,7 @@ export const DefaultSlot: Story = {
722
742
 
723
743
  export const PrependSlot: Story = {
724
744
  args: {
745
+ headingLevelTitle: 1,
725
746
  serviceTitle: 'Synapse',
726
747
  serviceSubtitle: 'Design System',
727
748
  },
@@ -776,6 +797,7 @@ export const PrependSlot: Story = {
776
797
 
777
798
  export const AppendSlot: Story = {
778
799
  args: {
800
+ headingLevelTitle: 1,
779
801
  serviceTitle: 'Synapse',
780
802
  serviceSubtitle: 'Design System',
781
803
  },
@@ -23,6 +23,7 @@
23
23
  to?: RouteLocationRaw
24
24
  href?: string
25
25
  }
26
+ headingLevelTitle?: 1 | 2 | 3 | 4 | 5 | 6
26
27
  }
27
28
 
28
29
  defineSlots<{
@@ -57,6 +58,7 @@
57
58
  serviceSubtitle: undefined,
58
59
  homeLink: undefined,
59
60
  width: '1712px',
61
+ headingLevelTitle: 1,
60
62
  })
61
63
 
62
64
  function registerHeaderMenu(childMenuStatus: DeepReadonly<Ref<boolean>>) {
@@ -188,11 +190,13 @@
188
190
  :home-aria-label
189
191
  :service-title
190
192
  :service-subtitle
193
+ :heading-level-title="headingLevelTitle"
191
194
  >
192
195
  <HeaderLogo
193
196
  :aria-label="homeAriaLabel"
194
197
  :service-title="serviceTitle"
195
198
  :service-subtitle="serviceSubtitle"
199
+ :heading-level-title="headingLevelTitle"
196
200
  :home-link
197
201
  >
198
202
  <template
@@ -205,6 +209,7 @@
205
209
  :service-title
206
210
  :service-subtitle
207
211
  :home-link
212
+ :heading-level-title="headingLevelTitle"
208
213
  />
209
214
  </template>
210
215
  </HeaderLogo>
@@ -6,6 +6,7 @@
6
6
  import { locales } from './locales'
7
7
  import LogoMobile from './logos/Logo-mobile.vue'
8
8
  import Logo from './logos/Logo.vue'
9
+ import SyHeading from '@/components/SyHeading/SyHeading.vue'
9
10
 
10
11
  const props = withDefaults(defineProps<{
11
12
  ariaLabel?: string
@@ -16,6 +17,7 @@
16
17
  to?: RouteLocationRaw
17
18
  href?: string
18
19
  }
20
+ headingLevelTitle?: 1 | 2 | 3 | 4 | 5 | 6
19
21
  }>(), {
20
22
  ariaLabel: locales.ariaLabel,
21
23
  serviceTitle: undefined,
@@ -23,6 +25,7 @@
23
25
  homeLink: () => ({
24
26
  href: '/',
25
27
  }),
28
+ headingLevelTitle: 1,
26
29
  })
27
30
 
28
31
  defineSlots<{
@@ -87,9 +90,12 @@
87
90
  </svg>
88
91
 
89
92
  <div v-if="serviceTitle">
90
- <h1 class="service-title">
93
+ <SyHeading
94
+ class="service-title"
95
+ :level="headingLevelTitle"
96
+ >
91
97
  {{ serviceTitle }}
92
- </h1>
98
+ </SyHeading>
93
99
  <div
94
100
  v-if="serviceSubtitle"
95
101
  class="service-subtitle"
@@ -52,6 +52,7 @@ describe('HeaderLogo', () => {
52
52
  it('sould display the service and the logo aria-label', async () => {
53
53
  const wrapper = mount(HeaderLogo, {
54
54
  props: {
55
+ headingLevelTitle: 2,
55
56
  ariaLabel: 'Test aria label',
56
57
  serviceTitle: 'Test service title',
57
58
  serviceSubtitle: 'Test service subtitle',
@@ -68,6 +69,7 @@ describe('HeaderLogo', () => {
68
69
  it('should render only the serviceTitle slot when set', async () => {
69
70
  const wrapper = mount(HeaderLogo, {
70
71
  props: {
72
+ headingLevelTitle: 2,
71
73
  serviceTitle: 'Test service title',
72
74
  },
73
75
  slots: {
@@ -86,6 +88,7 @@ describe('HeaderLogo', () => {
86
88
  global: {
87
89
  stubs: ['RouterLink'] },
88
90
  props: {
91
+ headingLevelTitle: 2,
89
92
  homeLink: {
90
93
  to: '/',
91
94
  },
@@ -99,6 +102,7 @@ describe('HeaderLogo', () => {
99
102
  it('render a div when there there is no `RouterLink` component registered', async () => {
100
103
  const wrapper = mount(HeaderLogo, {
101
104
  props: {
105
+ headingLevelTitle: 2,
102
106
  homeLink: {
103
107
  to: '/',
104
108
  },
@@ -111,6 +115,7 @@ describe('HeaderLogo', () => {
111
115
  it('render a div when the homeLink properties `to` and `href` are both set to `undefined`', async () => {
112
116
  const wrapper = mount(HeaderLogo, {
113
117
  props: {
118
+ headingLevelTitle: 2,
114
119
  homeLink: {
115
120
  to: undefined,
116
121
  href: undefined,
@@ -1,15 +1,34 @@
1
1
  import { Meta, Story } from '@storybook/blocks'
2
2
  import * as HeaderBarStories from '../HeaderBar.stories';
3
3
  import '@/stories/styles/shared.css';
4
+ import AccessibilityIcon from '@/common/imgs/accessibility-svgrepo-com.svg';
5
+ import {
6
+ AccessibilityGuideLayout,
7
+ CriteriaSection,
8
+ CriteriaCard,
9
+ DemoSection,
10
+ BestPracticesSection,
11
+ ResourcesSection,
12
+ } from '@/stories/accessibility/AccessibilityGuideLayout.mdx';
4
13
 
5
14
  <Meta of={HeaderBarStories}/>
6
15
 
7
- <div className="header">
8
- <h1>Accessibilité</h1>
9
- </div>
10
-
11
16
 
12
- <div class="mt-2">
17
+ <AccessibilityGuideLayout
18
+ componentName="HeaderBar"
19
+ iconSrc={AccessibilityIcon}
20
+ >
21
+ <div class="mt-6">
13
22
  <p>Rapport d’audit manuel : <a href="/audits/HeaderBar.xlsx" style={{ color:'#0C41BD' }}>Voir le rapport</a></p>
14
23
  <p style={{ color: 'grey', fontSize: '14px', marginTop: '0px' }}>Correctifs associés (<a href="https://github.com/assurance-maladie-digital/design-system-v3/issues/643" target="_blank" style={{color:'#0C41BD'}}>issue #643</a>)</p>
15
24
  </div>
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;HeaderBar
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
+ </AccessibilityGuideLayout>
@@ -16,6 +16,7 @@ describe('HeaderBar – accessibility (axe)', () => {
16
16
  it('has no obvious axe violations with sticky header and logo', async () => {
17
17
  const wrapper = mount(HeaderBar, {
18
18
  props: {
19
+ headingLevelTitle: 1,
19
20
  sticky: true,
20
21
  serviceTitle: 'Synapse',
21
22
  serviceSubtitle: 'Design System',