@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
@@ -207,3 +207,50 @@ export const Card: Story = {
207
207
  }
208
208
  },
209
209
  }
210
+
211
+ export const WithAriaRole: Story = {
212
+ parameters: {
213
+ sourceCode: [
214
+ {
215
+ name: 'Template',
216
+ code: `<template>
217
+ <PageContainer
218
+ role="region"
219
+ unique-id="main-content"
220
+ aria-labelledby="main-content-title"
221
+ >
222
+ <h2 id="main-content-title">Contenu principal</h2>
223
+ Contenu de la page
224
+ </PageContainer>
225
+ </template>
226
+ `,
227
+ },
228
+ {
229
+ name: 'Script',
230
+ code: `<script setup lang="ts">
231
+ import { PageContainer } from '@cnamts/synapse'
232
+ </script>
233
+ `,
234
+ },
235
+ ],
236
+ },
237
+ args: {
238
+ role: 'region',
239
+ uniqueId: 'main-content',
240
+ ariaLabelledby: 'main-content-title',
241
+ },
242
+ render: (args) => {
243
+ return {
244
+ components: { PageContainer },
245
+ setup() {
246
+ return { args }
247
+ },
248
+ template: `
249
+ <PageContainer :role="args.role" :unique-id="args.uniqueId" :aria-labelledby="args.ariaLabelledby">
250
+ <h2 id="main-content-title" class="pa-4">Contenu principal</h2>
251
+ <p class="pa-4">Contenu de la page</p>
252
+ </PageContainer>
253
+ `,
254
+ }
255
+ },
256
+ }
@@ -1,8 +1,7 @@
1
1
  <script setup lang="ts">
2
2
  import { computed } from 'vue'
3
3
  import { useDisplay } from 'vuetify'
4
-
5
- type AriaRole = 'main' | 'region' | 'navigation' | 'contentinfo' | 'banner'
4
+ import type { AriaRole } from '../types'
6
5
 
7
6
  const props = withDefaults(defineProps<{
8
7
  size?: 'xl' | 'lg' | 'md' | 'sm' | 'xs'
@@ -10,12 +9,14 @@
10
9
  color?: string
11
10
  uniqueId?: string
12
11
  role?: AriaRole
12
+ ariaLabelledby?: string
13
13
  }>(), {
14
14
  size: undefined,
15
15
  spacing: undefined,
16
16
  color: 'transparent',
17
17
  uniqueId: undefined,
18
18
  role: undefined,
19
+ ariaLabelledby: undefined,
19
20
  })
20
21
 
21
22
  const display = useDisplay()
@@ -63,6 +64,7 @@
63
64
  :id="uniqueId ? `${uniqueId}-container` : undefined"
64
65
  :class="[spacingClass, 'vd-page-container d-flex justify-center']"
65
66
  :role="role"
67
+ :aria-labelledby="ariaLabelledby"
66
68
  >
67
69
  <VSheet
68
70
  :id="uniqueId ? `${uniqueId}-content` : undefined"
@@ -25,29 +25,43 @@ import {
25
25
  <CriteriaSection>
26
26
  <CriteriaCard icon="🔍" title="Structure sémantique">
27
27
  <ul>
28
- <li><strong>Id unique</strong> : pour permettre des relations ARIA robustes</li>
29
- <li><strong>Rôles ARIA appropriés si besoin</strong> :</li>
30
- <ul style={{ listStyleType: 'none', paddingLeft: 0 }}>
31
- <li style={{ listStyleType: '"- "' }}><code>role="region"</code> contient une zone importante identifiée par un titre</li>
32
- <li style={{ listStyleType: '"- "' }}><code>role="main"</code> représente le contenu principal</li>
33
- <li style={{ listStyleType: '"- "' }}><code>role="banner" / role="contentinfo"</code> pour l'entête ou le pied de page du site</li>
34
- <li style={{ listStyleType: '"- "' }}><code>role="navigation"</code> pour un conteneur contenant une navigation</li>
35
- </ul>
28
+ <li><strong>Id unique</strong> : la prop <code>uniqueId</code> génère un identifiant sur le conteneur (suffixe <code>-container</code>) et sur le contenu interne (suffixe <code>-content</code>), permettant des relations ARIA robustes</li>
29
+ <li><strong>Rôles ARIA disponibles via la prop <code>role</code></strong> :</li>
30
+ <ul style={{ listStyleType: 'none', paddingLeft: 0 }}>
31
+ <li style={{ listStyleType: '"- "' }}><code>role="region"</code> : contient une zone importante identifiée par un titre</li>
32
+ <li style={{ listStyleType: '"- "' }}><code>role="main"</code> : représente le contenu principal</li>
33
+ <li style={{ listStyleType: '"- "' }}><code>role="banner"</code> : pour l'en-tête du site</li>
34
+ <li style={{ listStyleType: '"- "' }}><code>role="contentinfo"</code> : pour le pied de page du site</li>
35
+ <li style={{ listStyleType: '"- "' }}><code>role="navigation"</code> : pour un conteneur de navigation</li>
36
+ </ul>
37
+ </ul>
38
+ </CriteriaCard>
39
+
40
+ <CriteriaCard icon="🏷️" title="Liaison ARIA">
41
+ <ul>
42
+ <li><strong>Prop <code>ariaLabelledby</code></strong> : permet de lier le conteneur à un titre via son <code>id</code>, renforçant la compréhension par les lecteurs d'écran — particulièrement utile avec <code>role="region"</code></li>
43
+ <li><strong>Avec <code>StatusPage</code></strong> : la liaison est gérée automatiquement via les props <code>role</code> et <code>uniqueId</code> de <code>StatusPage</code></li>
36
44
  </ul>
37
45
  </CriteriaCard>
38
46
  </CriteriaSection>
39
47
 
48
+ <DemoSection title="Avec rôle et liaison ARIA" componentName="PageContainer">
49
+ <Story of={PageContainerStories.WithAriaRole} />
50
+ </DemoSection>
51
+
40
52
  <BestPracticesSection>
41
53
  <ul>
42
- <li>Toujours privilégier les balises HTML sémantiques natales avant ARIA :</li>
43
-
44
- <li><code>header</code></li>
45
- <li><code>nav</code></li>
46
- <li><code>main</code></li>
47
- <li><code>footer</code></li>
48
- <li><code>section (avec un titre)</code></li>
49
- <li><code>aside</code></li>
50
- <li><code>article</code></li>
54
+ <li>Toujours privilégier les balises HTML sémantiques natives avant ARIA :</li>
55
+ <li><code>header</code></li>
56
+ <li><code>nav</code></li>
57
+ <li><code>main</code></li>
58
+ <li><code>footer</code></li>
59
+ <li><code>section (avec un titre)</code></li>
60
+ <li><code>aside</code></li>
61
+ <li><code>article</code></li>
62
+ <li>Toujours associer <code>role="region"</code> à un <code>aria-labelledby</code> pointant vers un titre visible</li>
63
+ <li>Ne pas utiliser <code>role="main"</code> plus d'une fois par page</li>
64
+ <li>Fournir un <code>uniqueId</code> explicite et descriptif pour garantir l'unicité des identifiants générés</li>
51
65
  </ul>
52
66
  </BestPracticesSection>
53
67
  </AccessibilityGuideLayout>
@@ -1,15 +1,15 @@
1
- import {Meta, Canvas, Controls, Source} from '@storybook/blocks';
1
+ import {Meta, Canvas, Controls, Source, Story} from '@storybook/blocks';
2
2
  import * as PaginatedTableStories from "./PaginatedTable.stories.ts";
3
3
 
4
4
  <Meta of={PaginatedTableStories}/>
5
5
 
6
+ <Story of={PaginatedTableStories.DeprecationNotice} />
7
+
6
8
  <div className="header">
7
9
  <h1>PaginatedTable</h1>
8
10
  <p>Le composant `PaginatedTable` est utilisé pour afficher une `VDataTable` de Vuetify avec une pagination persistante.</p>
9
11
  </div>
10
12
 
11
- > **⚠️ Attention** : Ce composant est déprécié au profit des composants [SyTable](?path=/docs/composants-tableaux-sytable--docs) et [SyServerTable](?path=/docs/composants-tableaux-syservertable--docs).
12
-
13
13
  <Canvas story={{height: '550px'}} of={PaginatedTableStories.Default}/>
14
14
 
15
15
  # API
@@ -4,6 +4,7 @@ import { StateEnum } from './constants/StateEnum'
4
4
  import type { DataOptions } from './types'
5
5
  import { ref } from 'vue'
6
6
  import type { VDataTable } from 'vuetify/components'
7
+ import { createDeprecationNotice } from '@/stories/DeprecationNotice/DeprecationNotice'
7
8
 
8
9
  interface User {
9
10
  [key: string]: string
@@ -22,7 +23,7 @@ const meta = {
22
23
  component: PaginatedTable,
23
24
  decorators: [
24
25
  () => ({
25
- template: '<div style="padding: 20px;"><story/></div>',
26
+ template: '<div><story/></div>',
26
27
  }),
27
28
  ],
28
29
  parameters: {
@@ -767,3 +768,10 @@ export const ManyTables: Story = {
767
768
  }
768
769
  },
769
770
  }
771
+
772
+ export const DeprecationNotice = {
773
+ ...createDeprecationNotice([
774
+ { label: 'SyTable', url: '?path=/docs/composants-tableaux-sytable--docs' },
775
+ ]),
776
+ tags: ['!dev'],
777
+ }
@@ -32,6 +32,7 @@
32
32
  bgColor?: string
33
33
  density?: 'default' | 'comfortable' | 'compact'
34
34
  hideDetails?: boolean | 'auto'
35
+ headingLevel?: 1 | 2 | 3 | 4 | 5 | 6
35
36
  }>(), {
36
37
  modelValue: () => ({ from: null, to: null }),
37
38
  placeholderFrom: 'Début',
@@ -54,6 +55,7 @@
54
55
  bgColor: 'white',
55
56
  density: 'default',
56
57
  hideDetails: false,
58
+ headingLevel: 2,
57
59
  })
58
60
 
59
61
  const emit = defineEmits(['update:modelValue'])
@@ -345,6 +347,7 @@
345
347
  :error-message="fromDateValidation.hasError"
346
348
  :format="props.format"
347
349
  :disabled="props.disabled"
350
+ :heading-level="props.headingLevel"
348
351
  :is-outlined="props.isOutlined"
349
352
  :no-calendar="props.noCalendar"
350
353
  :no-icon="props.noIcon"
@@ -371,6 +374,7 @@
371
374
  :display-append-icon="props.displayAppendIcon"
372
375
  :display-icon="props.displayIcon"
373
376
  :error-message="toDateValidation.hasError"
377
+ :heading-level="props.headingLevel"
374
378
  :format="props.format"
375
379
  :disabled="props.disabled"
376
380
  :is-outlined="props.isOutlined"
@@ -21,9 +21,18 @@ describe('PeriodField – accessibility (axe)', () => {
21
21
  attachTo: document.body,
22
22
  })
23
23
 
24
+ // TODO : https://github.com/assurance-maladie-digital/design-system-v3/issues/1960
25
+ // 'aria-valid-attr-value' is ignored because Vuetify sets aria-owns on the
26
+ // DatePicker input referencing the VMenu id, but in JSDOM the menu is
27
+ // rendered via <Teleport> and not present in the scanned subtree.
28
+ const ignoreRules = ['region', 'aria-valid-attr-value']
29
+
24
30
  const results = await axe(wrapper.element as HTMLElement)
31
+ if (results.violations.filter(violation => !ignoreRules.includes(violation.id)).length > 0) {
32
+ console.log(JSON.stringify(results.violations, null, 2))
33
+ }
25
34
  assertNoA11yViolations(results, 'PeriodField – valid period', {
26
- ignoreRules: ['region'],
35
+ ignoreRules: ignoreRules,
27
36
  })
28
37
 
29
38
  wrapper.unmount()
@@ -1,6 +1,6 @@
1
1
  import type { StoryObj, Meta } from '@storybook/vue3'
2
2
  import PhoneField from './PhoneField.vue'
3
- import { ref } from 'vue'
3
+ import { ref, watch } from 'vue'
4
4
  import { indicatifs } from './indicatifs'
5
5
 
6
6
  const meta = {
@@ -44,11 +44,11 @@ const meta = {
44
44
  },
45
45
  'autocompleteCountryCode': {
46
46
  control: 'text',
47
- description: 'Valeur de l\'attribut autocomplete pour le champ indicatif pays (par défaut: "tel-country-code")',
47
+ description: 'Valeur de l\'attribut `autocomplete` pour le champ indicatif pays. Utiliser `tel-country-code` (défaut) lorsque le numéro est séparé en deux champs (indicatif + numéro national), conformément à [WHATWG](https://html.spec.whatwg.org/#autofill-field-tel-country-code) et [WCAG 1.3.5](https://www.w3.org/WAI/WCAG21/quickref/#identify-input-purpose).',
48
48
  },
49
49
  'autocompletePhone': {
50
50
  control: 'text',
51
- description: 'Valeur de l\'attribut autocomplete pour le champ numéro de téléphone (par défaut: "tel-national")',
51
+ description: 'Valeur de l\'attribut `autocomplete` pour le champ numéro de téléphone. Valeurs recommandées selon le scénario :\n\n- `tel-national` (défaut) — numéro sans indicatif, lorsque le composant est en mode deux champs (`withCountryCode`).\n- `tel` — numéro complet avec indicatif intégré, pour un champ unique sans sélecteur de pays.\n- `tel-extension` — poste ou extension téléphonique.',
52
52
  },
53
53
  'isValidatedOnBlur': { control: 'boolean' },
54
54
  'displayAsterisk': { control: 'boolean' },
@@ -65,7 +65,7 @@ type Story = StoryObj<typeof meta>
65
65
  export const Default: Story = {
66
66
  parameters: {
67
67
  a11y: {
68
- disable: true,
68
+ disable: false,
69
69
  },
70
70
  sourceCode: [
71
71
  {
@@ -106,7 +106,7 @@ export const Default: Story = {
106
106
  },
107
107
  args: {
108
108
  modelValue: '',
109
- required: true,
109
+ required: false,
110
110
  outlined: true,
111
111
  outlinedIndicatif: true,
112
112
  withCountryCode: true,
@@ -140,7 +140,7 @@ export const Default: Story = {
140
140
  export const Required: Story = {
141
141
  parameters: {
142
142
  a11y: {
143
- disable: true,
143
+ disable: false,
144
144
  },
145
145
  sourceCode: [
146
146
  {
@@ -223,7 +223,7 @@ export const RequiredWithAsterisk: Story = {
223
223
  },
224
224
  parameters: {
225
225
  a11y: {
226
- disable: true,
226
+ disable: false,
227
227
  },
228
228
  docs: {
229
229
  description: {
@@ -276,7 +276,7 @@ const phoneNumber = ref('')
276
276
  export const HelpText: Story = {
277
277
  parameters: {
278
278
  a11y: {
279
- disable: true,
279
+ disable: false,
280
280
  },
281
281
  sourceCode: [
282
282
  {
@@ -399,7 +399,21 @@ const selectedDialCode = ref('')
399
399
  export const Autocomplete: Story = {
400
400
  parameters: {
401
401
  a11y: {
402
- disable: true,
402
+ disable: false,
403
+ },
404
+ docs: {
405
+ description: {
406
+ story: `
407
+ Les attributs \`autocomplete\` permettent aux navigateurs et aux outils d'assistance de remplir automatiquement les champs avec les bonnes informations utilisateur, conformément à [WCAG 1.3.5 — Identifier la finalité de la saisie](https://www.w3.org/WAI/WCAG21/quickref/#identify-input-purpose).
408
+
409
+ | Scénario | Prop à utiliser | Valeur recommandée | Source |
410
+ |---|---|---|---|
411
+ | **Code pays** (ex : +33) — champ séparé | \`autocompleteCountryCode\` | \`tel-country-code\` | [WHATWG](https://html.spec.whatwg.org/#autofill-field-tel-country-code) |
412
+ | **Numéro sans indicatif** (ex : 06 12 34 56 78) — avec \`withCountryCode\` | \`autocompletePhone\` | \`tel-national\` | [WHATWG](https://html.spec.whatwg.org/#autofill-field-tel-national) |
413
+ | **Numéro complet** (indicatif intégré) — sans \`withCountryCode\` | \`autocompletePhone\` | \`tel\` | [WHATWG](https://html.spec.whatwg.org/#autofill-field-tel) |
414
+ | **Extension / poste** | \`autocompletePhone\` | \`tel-extension\` | [WHATWG](https://html.spec.whatwg.org/#autofill-field-tel-extension) |
415
+ `,
416
+ },
403
417
  },
404
418
  sourceCode: [
405
419
  {
@@ -472,7 +486,7 @@ const phoneValue3 = ref('')
472
486
  ],
473
487
  },
474
488
  args: {
475
- required: true,
489
+ required: false,
476
490
  withCountryCode: true,
477
491
  autocompleteCountryCode: 'tel-country-code',
478
492
  autocompletePhone: 'tel-national',
@@ -554,7 +568,7 @@ const phoneValue3 = ref('')
554
568
  export const CustomIndicatifs: Story = {
555
569
  parameters: {
556
570
  a11y: {
557
- disable: true,
571
+ disable: false,
558
572
  },
559
573
  sourceCode: [
560
574
  {
@@ -638,7 +652,7 @@ export const CustomIndicatifs: Story = {
638
652
  export const NotValidatedOnBlur: Story = {
639
653
  parameters: {
640
654
  a11y: {
641
- disable: true,
655
+ disable: false,
642
656
  },
643
657
  sourceCode: [
644
658
  {
@@ -712,7 +726,7 @@ export const NotValidatedOnBlur: Story = {
712
726
  export const DisplayFormatCode: Story = {
713
727
  parameters: {
714
728
  a11y: {
715
- disable: true,
729
+ disable: false,
716
730
  },
717
731
  sourceCode: [
718
732
  {
@@ -761,7 +775,7 @@ export const DisplayFormatCode: Story = {
761
775
  displayFormat: 'code',
762
776
  customIndicatifs: [],
763
777
  useCustomIndicatifsOnly: false,
764
- isValidatedOnBlur: false,
778
+ isValidatedOnBlur: true,
765
779
  readonly: false,
766
780
  disabled: false,
767
781
  bgColor: 'white',
@@ -786,7 +800,7 @@ export const DisplayFormatCode: Story = {
786
800
  export const DisplayFormatCodeAbbreviation: Story = {
787
801
  parameters: {
788
802
  a11y: {
789
- disable: true,
803
+ disable: false,
790
804
  },
791
805
  sourceCode: [
792
806
  {
@@ -835,7 +849,7 @@ export const DisplayFormatCodeAbbreviation: Story = {
835
849
  displayFormat: 'code-abbreviation',
836
850
  customIndicatifs: [],
837
851
  useCustomIndicatifsOnly: false,
838
- isValidatedOnBlur: false,
852
+ isValidatedOnBlur: true,
839
853
  readonly: false,
840
854
  disabled: false,
841
855
  bgColor: 'white',
@@ -860,7 +874,7 @@ export const DisplayFormatCodeAbbreviation: Story = {
860
874
  export const DisplayFormatCodeCountry: Story = {
861
875
  parameters: {
862
876
  a11y: {
863
- disable: true,
877
+ disable: false,
864
878
  },
865
879
  sourceCode: [
866
880
  {
@@ -909,7 +923,7 @@ export const DisplayFormatCodeCountry: Story = {
909
923
  displayFormat: 'code-country',
910
924
  customIndicatifs: [],
911
925
  useCustomIndicatifsOnly: false,
912
- isValidatedOnBlur: false,
926
+ isValidatedOnBlur: true,
913
927
  readonly: false,
914
928
  disabled: false,
915
929
  bgColor: 'white',
@@ -934,7 +948,7 @@ export const DisplayFormatCodeCountry: Story = {
934
948
  export const DisplayFormatCountry: Story = {
935
949
  parameters: {
936
950
  a11y: {
937
- disable: true,
951
+ disable: false,
938
952
  },
939
953
  sourceCode: [
940
954
  {
@@ -983,7 +997,7 @@ export const DisplayFormatCountry: Story = {
983
997
  displayFormat: 'country',
984
998
  customIndicatifs: [],
985
999
  useCustomIndicatifsOnly: false,
986
- isValidatedOnBlur: false,
1000
+ isValidatedOnBlur: true,
987
1001
  readonly: false,
988
1002
  disabled: false,
989
1003
  bgColor: 'white',
@@ -1008,7 +1022,7 @@ export const DisplayFormatCountry: Story = {
1008
1022
  export const DisplayFormatAbbreviation: Story = {
1009
1023
  parameters: {
1010
1024
  a11y: {
1011
- disable: true,
1025
+ disable: false,
1012
1026
  },
1013
1027
  sourceCode: [
1014
1028
  {
@@ -1057,7 +1071,7 @@ export const DisplayFormatAbbreviation: Story = {
1057
1071
  displayFormat: 'abbreviation',
1058
1072
  customIndicatifs: [],
1059
1073
  useCustomIndicatifsOnly: false,
1060
- isValidatedOnBlur: false,
1074
+ isValidatedOnBlur: true,
1061
1075
  readonly: false,
1062
1076
  disabled: false,
1063
1077
  bgColor: 'white',
@@ -1082,7 +1096,7 @@ export const DisplayFormatAbbreviation: Story = {
1082
1096
  export const DefaultDialCode: Story = {
1083
1097
  parameters: {
1084
1098
  a11y: {
1085
- disable: true,
1099
+ disable: false,
1086
1100
  },
1087
1101
  sourceCode: [
1088
1102
  {
@@ -1136,7 +1150,7 @@ export const DefaultDialCode: Story = {
1136
1150
  args: {
1137
1151
  modelValue: '',
1138
1152
  dialCodeModel: { code: '+3433', country: 'Exemple', abbreviation: 'EX', phoneLength: 10, mask: '## ## ## ## ##' },
1139
- required: true,
1153
+ required: false,
1140
1154
  outlined: true,
1141
1155
  outlinedIndicatif: true,
1142
1156
  withCountryCode: true,
@@ -1175,7 +1189,7 @@ export const DefaultDialCode: Story = {
1175
1189
  export const DefaultDialCodeStandard: Story = {
1176
1190
  parameters: {
1177
1191
  a11y: {
1178
- disable: true,
1192
+ disable: false,
1179
1193
  },
1180
1194
  sourceCode: [
1181
1195
  {
@@ -1253,7 +1267,7 @@ export const DefaultDialCodeStandard: Story = {
1253
1267
  export const DisplayModels: Story = {
1254
1268
  parameters: {
1255
1269
  a11y: {
1256
- disable: true,
1270
+ disable: false,
1257
1271
  },
1258
1272
  sourceCode: [
1259
1273
  {
@@ -1308,25 +1322,47 @@ export const DisplayModels: Story = {
1308
1322
  displayFormat: 'code-country',
1309
1323
  customIndicatifs: [],
1310
1324
  useCustomIndicatifsOnly: false,
1311
- isValidatedOnBlur: false,
1325
+ isValidatedOnBlur: true,
1312
1326
  readonly: false,
1313
1327
  bgColor: 'white',
1314
1328
  },
1315
1329
  render: args => ({
1316
1330
  components: { PhoneField },
1317
1331
  setup() {
1318
- return { args }
1332
+ const modelValue = ref(args.modelValue)
1333
+ const selectedDialCode = ref(args.dialCodeModel)
1334
+
1335
+ // Sync ref -> args (pour afficher les modèles dans la story)
1336
+ watch(modelValue, (val) => {
1337
+ args.modelValue = val
1338
+ })
1339
+ watch(selectedDialCode, (val) => {
1340
+ args.dialCodeModel = val
1341
+ })
1342
+ // Sync args -> ref (quand on change les controls Storybook)
1343
+ watch(() => args.modelValue, (val) => {
1344
+ modelValue.value = val
1345
+ })
1346
+ watch(() => args.dialCodeModel, (val) => {
1347
+ selectedDialCode.value = val
1348
+ })
1349
+
1350
+ return {
1351
+ args,
1352
+ modelValue,
1353
+ selectedDialCode,
1354
+ }
1319
1355
  },
1320
1356
  template: `
1321
1357
  <div class="pa-4">
1322
1358
  <div class="pa-4">
1323
- Indicatif: {{ args.dialCodeModel }}<br/>Numéro: {{ args.modelValue }}
1359
+ Indicatif: {{ selectedDialCode }}<br/>Numéro: {{ modelValue }}
1324
1360
  </div>
1325
1361
 
1326
1362
  <PhoneField
1327
1363
  v-bind="args"
1328
- @update:modelValue="args.modelValue = $event"
1329
- @update:selectedDialCode="args.dialCodeModel = $event"
1364
+ v-model="modelValue"
1365
+ v-model:selectedDialCode="selectedDialCode"
1330
1366
  />
1331
1367
  </div>
1332
1368
  `,
@@ -1340,7 +1376,7 @@ export const DisplayModels: Story = {
1340
1376
  export const DisabledErrorHandling: Story = {
1341
1377
  parameters: {
1342
1378
  a11y: {
1343
- disable: true,
1379
+ disable: false,
1344
1380
  },
1345
1381
  sourceCode: [
1346
1382
  {
@@ -1411,6 +1447,7 @@ export const DisabledErrorHandling: Story = {
1411
1447
  <p>Ce champ est requis et affichera une erreur s'il est vide.</p>
1412
1448
  <PhoneField
1413
1449
  v-bind="args"
1450
+ :disable-error-handling="false"
1414
1451
  />
1415
1452
  </div>
1416
1453
  </div>
@@ -1422,7 +1459,7 @@ export const DisabledErrorHandling: Story = {
1422
1459
  export const FormValidation: Story = {
1423
1460
  parameters: {
1424
1461
  a11y: {
1425
- disable: true,
1462
+ disable: false,
1426
1463
  },
1427
1464
  sourceCode: [
1428
1465
  {
@@ -1438,7 +1475,7 @@ export const FormValidation: Story = {
1438
1475
  :outlinedIndicatif="true"
1439
1476
  :withCountryCode="true"
1440
1477
  :country-code-required="true"
1441
- :isValidatedOnBlur="false"
1478
+ :isValidatedOnBlur="true"
1442
1479
  :readonly="readonly"
1443
1480
  :disabled="disabled"
1444
1481
  />
@@ -1493,7 +1530,7 @@ export const FormValidation: Story = {
1493
1530
  displayFormat: 'code',
1494
1531
  customIndicatifs: [],
1495
1532
  useCustomIndicatifsOnly: false,
1496
- isValidatedOnBlur: false,
1533
+ isValidatedOnBlur: true,
1497
1534
  bgColor: 'white',
1498
1535
  readonly: false,
1499
1536
  disabled: false,
@@ -1527,6 +1564,7 @@ export const FormValidation: Story = {
1527
1564
  <div class="pa-4">
1528
1565
  <form @submit.prevent="submitForm" class="d-flex flex-column">
1529
1566
  <PhoneField
1567
+ ref="phoneFieldRef"
1530
1568
  v-bind="args"
1531
1569
  />
1532
1570
  <v-btn type="submit" color="primary" class="mt-4" style="width: 200px;">Soumettre le formulaire</v-btn>