@cnamts/synapse 1.0.24 → 1.0.25

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 (367) hide show
  1. package/README.md +27 -5
  2. package/dist/{AutocompleteFilter-BWLR3U7W.js → AutocompleteFilter-D7qBuCAP.js} +1 -1
  3. package/dist/{AutocompleteFilter-D9jzRzAL.cjs → AutocompleteFilter-Df9i5mAl.cjs} +1 -1
  4. package/dist/{DateFilter-DTUl8hb1.cjs → DateFilter-BJD6FMev.cjs} +1 -1
  5. package/dist/{DateFilter-BpwFexzi.js → DateFilter-BitMWrMU.js} +1 -1
  6. package/dist/{NumberFilter-Bz_NTdX9.js → NumberFilter-BTLUxw0a.js} +1 -1
  7. package/dist/{NumberFilter-MAEojdk0.cjs → NumberFilter-DGCzCXzI.cjs} +1 -1
  8. package/dist/{PeriodFilter-DX_wy9g-.js → PeriodFilter-B5rUIPAC.js} +1 -1
  9. package/dist/{PeriodFilter-CC4WgIhl.cjs → PeriodFilter-DO_ecTZW.cjs} +1 -1
  10. package/dist/{SelectFilter-BR3fvl-a.cjs → SelectFilter-CGwcKWLm.cjs} +1 -1
  11. package/dist/{SelectFilter-xqiPtPgX.js → SelectFilter-l4QnRcuk.js} +2 -2
  12. package/dist/{TextFilter-CCfYFl5F.cjs → TextFilter-B8nf7xoK.cjs} +1 -1
  13. package/dist/{TextFilter-BBl3JFqK.js → TextFilter-C9hj6Qrp.js} +1 -1
  14. package/dist/apLightTheme-CEK4iY3f.cjs +1 -0
  15. package/dist/{apLightTheme-D1P4jcD0.js → apLightTheme-DnIM24Lv.js} +441 -722
  16. package/dist/components/Customs/Selects/SyAutocomplete/SyAutocomplete.d.ts +10 -6
  17. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +3 -0
  18. package/dist/components/Customs/SyTabs/SyTabs.d.ts +13 -11
  19. package/dist/components/Customs/SyTextField/SyTextField.d.ts +4 -4
  20. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +4 -24
  21. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +2 -12
  22. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +1 -6
  23. package/dist/components/DatePicker/composables/useDatePickerState.d.ts +1 -0
  24. package/dist/components/FileList/FileList.d.ts +6 -0
  25. package/dist/components/FilterSideBar/FilterSideBar.d.ts +2 -0
  26. package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +13 -13
  27. package/dist/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.d.ts +3 -3
  28. package/dist/components/MonthPicker/MonthPicker.d.ts +1 -6
  29. package/dist/components/MonthPicker/MonthPickerText/MonthPickerInput.d.ts +1 -6
  30. package/dist/components/NirField/NirField.d.ts +4 -16
  31. package/dist/components/PeriodField/PeriodField.d.ts +8 -48
  32. package/dist/components/PhoneField/PhoneField.d.ts +1 -6
  33. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +1 -0
  34. package/dist/components/Tables/SyTable/SyTable.d.ts +1 -0
  35. package/dist/components/Tables/common/SyTablePagination.d.ts +2 -0
  36. package/dist/components/Tables/common/TableHeader.d.ts +5 -0
  37. package/dist/components/Tables/common/locales.d.ts +3 -0
  38. package/dist/components/Tables/common/types.d.ts +2 -0
  39. package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +1 -0
  40. package/dist/composables/unifyValidation/documentationValidationProps.d.ts +230 -0
  41. package/dist/composables/validation/useValidation.d.ts +5 -1
  42. package/dist/design-system-v3.js +2 -2
  43. package/dist/design-system-v3.umd.cjs +1 -1
  44. package/dist/designTokens/tokens/amelipro/apColors.d.ts +10 -10
  45. package/dist/designTokens/tokens/amelipro/apColors2026.d.ts +1 -2
  46. package/dist/designTokens/tokens/amelipro/apContextual.d.ts +44 -0
  47. package/dist/designTokens/tokens/amelipro/apSemantic.d.ts +1 -1
  48. package/dist/designTokens/tokens/baseColors.d.ts +127 -0
  49. package/dist/designTokens/tokens/baseContextualTokens.d.ts +50 -0
  50. package/dist/designTokens/tokens/cnam/cnamColors.d.ts +10 -10
  51. package/dist/designTokens/tokens/cnam/cnamSemantic.d.ts +1 -1
  52. package/dist/designTokens/tokens/pa/paColors.d.ts +1 -166
  53. package/dist/designTokens/tokens/pa/paSemantic.d.ts +1 -1
  54. package/dist/designTokens/utils/buildColorClassMap.d.ts +12 -0
  55. package/dist/designTokens/utils/createFlattenTheme.d.ts +1 -3
  56. package/dist/designTokens/utils/index.d.ts +2 -2
  57. package/dist/main-ByDPHpae.cjs +1067 -0
  58. package/dist/main-Cpx8Co6H.js +38869 -0
  59. package/dist/synapse.css +1 -1
  60. package/dist/utils/functions/classToHex.d.ts +1 -1
  61. package/dist/utils/functions/createHexResolver.d.ts +16 -0
  62. package/dist/vuetifyConfig.js +113 -152
  63. package/dist/vuetifyConfig.umd.cjs +1 -1
  64. package/package.json +29 -18
  65. package/src/assets/amelipro/apTokens2026.scss +5 -5
  66. package/src/assets/overrides/_breakpoints.scss +25 -0
  67. package/src/assets/overrides/_btns.scss +0 -2
  68. package/src/assets/overrides/_forms.scss +1 -3
  69. package/src/assets/overrides/_icons.scss +7 -11
  70. package/src/assets/overrides/_otp.scss +41 -0
  71. package/src/assets/overrides/_tables.scss +11 -20
  72. package/src/assets/overrides/_tooltips.scss +17 -7
  73. package/src/assets/overrides/_typography.scss +35 -37
  74. package/src/assets/overrides/_utilities.scss +43 -47
  75. package/src/assets/themes.scss +1 -0
  76. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/AmeliproAccordionTemplate.vue +20 -20
  77. package/src/components/Amelipro/AmeliproAccordionFrieze/AmeliproAccordionFrieze.vue +12 -14
  78. package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.vue +4 -6
  79. package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/AmeliproAccordionResultTemplate.vue +5 -5
  80. package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.vue +4 -6
  81. package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.vue +4 -6
  82. package/src/components/Amelipro/AmeliproBadge/AmeliproBadge.vue +4 -6
  83. package/src/components/Amelipro/AmeliproBreadcrumb/AmeliproBreadcrumb.vue +1 -3
  84. package/src/components/Amelipro/AmeliproBtn/AmeliproBtn.vue +4 -6
  85. package/src/components/Amelipro/AmeliproCallback/AmeliproCallback.vue +2 -2
  86. package/src/components/Amelipro/AmeliproCard/AmeliproCard.vue +31 -31
  87. package/src/components/Amelipro/AmeliproCarousel/AmeliproCarousel.vue +5 -7
  88. package/src/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.vue +13 -15
  89. package/src/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.vue +23 -23
  90. package/src/components/Amelipro/AmeliproChips/AmeliproChips.vue +1 -3
  91. package/src/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.vue +17 -12
  92. package/src/components/Amelipro/AmeliproClickableTile/tests/__snapshots__/AmeliproClickableTile.spec.ts.snap +2 -2
  93. package/src/components/Amelipro/AmeliproCopyBtn/AmeliproCopyBtn.vue +4 -6
  94. package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.vue +13 -13
  95. package/src/components/Amelipro/AmeliproDentalChart/AmeliproDentalChart.vue +4 -2
  96. package/src/components/Amelipro/AmeliproDentalChart/AmeliproTooth/AmeliproTooth.vue +4 -4
  97. package/src/components/Amelipro/AmeliproDialog/AmeliproDialog.vue +5 -7
  98. package/src/components/Amelipro/AmeliproDisclosure/AmeliproDisclosure.vue +1 -3
  99. package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.vue +2 -4
  100. package/src/components/Amelipro/AmeliproFilePreview/AmeliproFilePreview.vue +4 -6
  101. package/src/components/Amelipro/AmeliproFilters/AmeliproFilters.vue +13 -13
  102. package/src/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.vue +3 -5
  103. package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.vue +1 -3
  104. package/src/components/Amelipro/AmeliproHeader/AmeliproHeader.vue +2 -4
  105. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBar.vue +1 -3
  106. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/AmeliproHeaderBrandSection.vue +20 -16
  107. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/__tests__/__snapshots__/AmeliproHeaderBrandSection.spec.ts.snap +1 -1
  108. package/src/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.vue +2 -4
  109. package/src/components/Amelipro/AmeliproIllustratedDataTile/AmeliproIllustratedDataTile.vue +5 -7
  110. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.vue +6 -8
  111. package/src/components/Amelipro/AmeliproMailTile/AmeliproMailTile.vue +14 -14
  112. package/src/components/Amelipro/AmeliproMenu/AmeliproMenu.vue +11 -13
  113. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproDropdownMenu/AmeliproDropdownMenu.vue +2 -4
  114. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproMessagingLayout.vue +8 -8
  115. package/src/components/Amelipro/AmeliproMultipleFoldingCard/AmeliproMultipleFoldingCard.vue +40 -40
  116. package/src/components/Amelipro/AmeliproNumberedCard/AmeliproNumberedCard.vue +27 -27
  117. package/src/components/Amelipro/AmeliproOnboarding/AmeliproOnboarding.vue +3 -5
  118. package/src/components/Amelipro/AmeliproPageLayout/AmeliproPageLayout.vue +2 -4
  119. package/src/components/Amelipro/AmeliproPagination/AmeliproPagination.vue +2 -4
  120. package/src/components/Amelipro/AmeliproPagination/AmeliproPaginationBtn/AmeliproPaginationBtn.vue +3 -5
  121. package/src/components/Amelipro/AmeliproPatientBanner/AmeliproPatientBanner.vue +1 -3
  122. package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.vue +2 -4
  123. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLogin.vue +4 -4
  124. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLoginForm/AmeliproPatientLoginForm.vue +1 -3
  125. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.vue +3 -5
  126. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.vue +3 -5
  127. package/src/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.vue +23 -23
  128. package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.vue +4 -6
  129. package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.vue +12 -22
  130. package/src/components/Amelipro/AmeliproStateTile/AmeliproStateTile.vue +10 -12
  131. package/src/components/Amelipro/AmeliproStepper/AmeliproStepper.vue +17 -17
  132. package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +8 -10
  133. package/src/components/Amelipro/AmeliproTabs/AmeliproTabBtn/AmeliproTabBtn.vue +6 -8
  134. package/src/components/Amelipro/AmeliproTabs/AmeliproTabs.vue +4 -4
  135. package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.vue +4 -6
  136. package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.vue +7 -9
  137. package/src/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.vue +3 -5
  138. package/src/components/Amelipro/AmeliproTooltips/AmeliproTooltips.vue +0 -2
  139. package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.vue +6 -6
  140. package/src/components/Amelipro/ServiceMenu/ServiceMenu.vue +2 -2
  141. package/src/components/Amelipro/StructureMenu/StructureBtn/StructureBtn.vue +4 -4
  142. package/src/components/Amelipro/StructureMenu/StructureItem/StructureItem.vue +4 -6
  143. package/src/components/Amelipro/StructureMenu/StructureMenu.vue +2 -2
  144. package/src/components/Amelipro/StructureMenu/StructureTabs/StructureTabs.vue +2 -2
  145. package/src/components/Amelipro/UserMenu/UserMenu.vue +1 -3
  146. package/src/components/BackBtn/tests/BackBtn.visual.cy.ts +43 -0
  147. package/src/components/BackBtn/tests/__snapshots__/back-btn-custom-bg.snap.png +0 -0
  148. package/src/components/BackBtn/tests/__snapshots__/back-btn-dark-mode.snap.png +0 -0
  149. package/src/components/BackBtn/tests/__snapshots__/back-btn-default.snap.png +0 -0
  150. package/src/components/BackBtn/tests/__snapshots__/back-btn-no-icon.snap.png +0 -0
  151. package/src/components/Captcha/Captcha.vue +1 -3
  152. package/src/components/ChipList/ChipList.vue +14 -16
  153. package/src/components/CookiesSelection/CookiesInformation/CookiesInformation.vue +0 -2
  154. package/src/components/CopyBtn/CopyBtn.vue +1 -3
  155. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.vue +17 -17
  156. package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.spec.ts +31 -0
  157. package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.stories.ts +66 -0
  158. package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.vue +7 -3
  159. package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.a11y.spec.ts +18 -0
  160. package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.spec.ts +66 -0
  161. package/src/components/Customs/Selects/SyInputSelect/SyInputSelect.vue +4 -6
  162. package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +1 -39
  163. package/src/components/Customs/Selects/SySelect/SySelect.vue +263 -63
  164. package/src/components/Customs/Selects/SySelect/accessibilite/Accessibility.mdx +199 -269
  165. package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +35 -0
  166. package/src/components/Customs/SyCheckbox/SyCheckbox.mdx +5 -0
  167. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +29 -0
  168. package/src/components/Customs/SyCheckbox/accessibilite/Accessibility.mdx +18 -3
  169. package/src/components/Customs/SyPagination/SyPagination.vue +0 -2
  170. package/src/components/Customs/SyTabs/SyTabs.mdx +0 -58
  171. package/src/components/Customs/SyTabs/SyTabs.stories.ts +32 -33
  172. package/src/components/Customs/SyTabs/SyTabs.vue +87 -67
  173. package/src/components/Customs/SyTabs/accessibilite/Accessibility.mdx +83 -23
  174. package/src/components/Customs/SyTabs/tests/SyTabs.a11y.spec.ts +88 -0
  175. package/src/components/Customs/SyTabs/tests/SyTabs.spec.ts +46 -1
  176. package/src/components/Customs/SyTextField/SyTextField.stories.ts +21 -41
  177. package/src/components/Customs/SyTextField/SyTextField.vue +4 -6
  178. package/src/components/DatePicker/CalendarMode/DatePicker.vue +12 -14
  179. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +20 -16
  180. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +23 -0
  181. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +8 -10
  182. package/src/components/DatePicker/composables/tests/useDatePickerState.spec.ts +53 -0
  183. package/src/components/DatePicker/composables/useDatePickerState.ts +24 -0
  184. package/src/components/DatePicker/composables/useDateTextField.ts +0 -1
  185. package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +9 -8
  186. package/src/components/DatePicker/playground/DatePickerHolidayRule.vue +1 -1
  187. package/src/components/DialogBox/DialogBox.vue +3 -5
  188. package/src/components/DialogBox/tests/DialogBox.visual.cy.ts +76 -0
  189. package/src/components/DialogBox/tests/__snapshots__/dialog-box-custom-texts.snap.png +0 -0
  190. package/src/components/DialogBox/tests/__snapshots__/dialog-box-default.snap.png +0 -0
  191. package/src/components/DialogBox/tests/__snapshots__/dialog-box-no-actions.snap.png +0 -0
  192. package/src/components/FileList/FileList.vue +9 -2
  193. package/src/components/FileList/UploadItem/UploadItem.vue +11 -13
  194. package/src/components/FileList/tests/FileList.spec.ts +47 -0
  195. package/src/components/FileUpload/FileUpload.vue +3 -5
  196. package/src/components/FileUpload/FileUploadContent.vue +3 -5
  197. package/src/components/FilterInline/FilterInline.vue +1 -3
  198. package/src/components/FilterSideBar/FilterSideBar.mdx +44 -1
  199. package/src/components/FilterSideBar/FilterSideBar.stories.ts +105 -1
  200. package/src/components/FilterSideBar/FilterSideBar.vue +7 -0
  201. package/src/components/FilterSideBar/tests/FilterSideBar.a11y.spec.ts +54 -1
  202. package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +42 -0
  203. package/src/components/FooterBar/FooterBar.vue +9 -13
  204. package/src/components/FranceConnectBtn/FranceConnectBtn.vue +1 -1
  205. package/src/components/HeaderBar/HeaderBar.vue +2 -3
  206. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderBurgerMenu.vue +2 -3
  207. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/HeaderMenuItem.vue +2 -3
  208. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuSection/HeaderMenuSection.vue +0 -1
  209. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.vue +8 -9
  210. package/src/components/HeaderBar/HeaderBurgerMenu/menu.scss +0 -8
  211. package/src/components/HeaderBar/HeaderBurgerMenu/tests/HeaderBurgerMenu.visual.cy.ts +196 -0
  212. package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/header-burger-menu-generated-submenu-open.snap.png +0 -0
  213. package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/header-burger-menu-generated.snap.png +0 -0
  214. package/src/components/HeaderBar/HeaderLogo/HeaderLogo.vue +0 -1
  215. package/src/components/HeaderBar/HeaderMenuBtn/HeaderMenuBtn.vue +6 -7
  216. package/src/components/HeaderBar/tests/HeaderBar.visual.cy.ts +81 -0
  217. package/src/components/HeaderBar/tests/__snapshots__/header-bar-custom-width.snap.png +0 -0
  218. package/src/components/HeaderBar/tests/__snapshots__/header-bar-default.snap.png +0 -0
  219. package/src/components/HeaderBar/tests/__snapshots__/header-bar-no-sticky.snap.png +0 -0
  220. package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-prepend.snap.png +0 -0
  221. package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-side.snap.png +0 -0
  222. package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-subtitle.snap.png +0 -0
  223. package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +12 -3
  224. package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +15 -8
  225. package/src/components/HeaderToolbar/HeaderToolbar.vue +6 -7
  226. package/src/components/LangBtn/LangBtn.vue +2 -4
  227. package/src/components/Logo/tests/Logo.visual.cy.ts +57 -0
  228. package/src/components/Logo/tests/__snapshots__/logo-avatar.snap.png +0 -0
  229. package/src/components/Logo/tests/__snapshots__/logo-dark.snap.png +0 -0
  230. package/src/components/Logo/tests/__snapshots__/logo-default.snap.png +0 -0
  231. package/src/components/Logo/tests/__snapshots__/logo-no-organism.snap.png +0 -0
  232. package/src/components/Logo/tests/__snapshots__/logo-no-signature.snap.png +0 -0
  233. package/src/components/Logo/tests/__snapshots__/logo-risque-pro.snap.png +0 -0
  234. package/src/components/LogoBrandSection/LogoBrandSection.vue +2 -2
  235. package/src/components/MonthPicker/MonthPickerVisual/VisualPickerHeader.vue +1 -1
  236. package/src/components/NirField/NirField.stories.ts +2 -2
  237. package/src/components/NirField/NirField.vue +3 -5
  238. package/src/components/NirField/accessibilite/Accessibility.mdx +100 -5
  239. package/src/components/NirField/tests/NirField.spec.ts +118 -0
  240. package/src/components/NirField/tests/useNirValidation.spec.ts +449 -0
  241. package/src/components/NirField/useNirValidation.ts +38 -32
  242. package/src/components/NotificationBar/Notification/Notification.vue +5 -7
  243. package/src/components/NotificationBar/NotificationBar.vue +1 -3
  244. package/src/components/PaginatedTable/PaginatedTable.vue +2 -3
  245. package/src/components/PaginatedTable/Pagination.vue +3 -5
  246. package/src/components/PasswordField/PasswordField.vue +8 -10
  247. package/src/components/PhoneField/PhoneField.vue +3 -3
  248. package/src/components/RangeField/RangeSlider/RangeSlider.vue +0 -2
  249. package/src/components/RangeField/RangeSlider/Tooltip/Tooltip.vue +1 -1
  250. package/src/components/RangeField/tests/RangeField.visual.cy.ts +65 -0
  251. package/src/components/RangeField/tests/__snapshots__/range-field-custom-bg.snap.png +0 -0
  252. package/src/components/RangeField/tests/__snapshots__/range-field-custom-range.snap.png +0 -0
  253. package/src/components/RangeField/tests/__snapshots__/range-field-default.snap.png +0 -0
  254. package/src/components/RangeField/tests/__snapshots__/range-field-step.snap.png +0 -0
  255. package/src/components/RangeField/tests/__snapshots__/range-field-with-label.snap.png +0 -0
  256. package/src/components/RatingPicker/EmotionPicker/EmotionPicker.vue +6 -8
  257. package/src/components/RatingPicker/StarsPicker/StarsPicker.vue +3 -5
  258. package/src/components/SearchListField/SearchListField.vue +0 -2
  259. package/src/components/SkipLink/SkipLink.vue +2 -4
  260. package/src/components/SocialMediaLinks/SocialMediaLinks.vue +6 -6
  261. package/src/components/SubHeader/SubHeader.vue +1 -1
  262. package/src/components/SyAlert/SyAlert.vue +7 -9
  263. package/src/components/SyAlert/tests/SyAlert.visual.cy.ts +46 -0
  264. package/src/components/SyAlert/tests/__snapshots__/sy-alert-closable.snap.png +0 -0
  265. package/src/components/SyAlert/tests/__snapshots__/sy-alert-error.snap.png +0 -0
  266. package/src/components/SyAlert/tests/__snapshots__/sy-alert-info.snap.png +0 -0
  267. package/src/components/SyAlert/tests/__snapshots__/sy-alert-success.snap.png +0 -0
  268. package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-outlined.snap.png +0 -0
  269. package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-tonal.snap.png +0 -0
  270. package/src/components/SyAlert/tests/__snapshots__/sy-alert-warning.snap.png +0 -0
  271. package/src/components/SyBtnMenu/SyBtnMenu.vue +2 -4
  272. package/src/components/TableToolbar/TableToolbar.vue +6 -8
  273. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +166 -0
  274. package/src/components/Tables/SyServerTable/SyServerTable.vue +9 -7
  275. package/src/components/Tables/SyServerTable/tests/SyServerTable.a11y.spec.ts +23 -0
  276. package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +268 -0
  277. package/src/components/Tables/SyTable/SyTable.stories.ts +104 -0
  278. package/src/components/Tables/SyTable/SyTable.vue +9 -7
  279. package/src/components/Tables/SyTable/tests/SyTable.a11y.spec.ts +22 -0
  280. package/src/components/Tables/SyTable/tests/SyTable.spec.ts +274 -0
  281. package/src/components/Tables/common/SyTableFilter.vue +27 -2
  282. package/src/components/Tables/common/SyTablePagination.vue +142 -19
  283. package/src/components/Tables/common/TableHeader.vue +40 -3
  284. package/src/components/Tables/common/filters/SelectFilter.vue +1 -1
  285. package/src/components/Tables/common/locales.ts +3 -0
  286. package/src/components/Tables/common/tableStyles.scss +16 -19
  287. package/src/components/Tables/common/tests/SyTablePagination.spec.ts +18 -0
  288. package/src/components/Tables/common/tests/TableHeader.spec.ts +39 -0
  289. package/src/components/Tables/common/types.ts +2 -0
  290. package/src/components/Tables/common/useTableHeaders.ts +49 -27
  291. package/src/components/UploadWorkflow/UploadWorkflow.vue +1 -0
  292. package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +23 -0
  293. package/src/components/UploadWorkflow/tests/__snapshots__/UploadWorkflow.spec.ts.snap +66 -0
  294. package/src/components/UploadWorkflow/useFileList.ts +3 -0
  295. package/src/components/UserMenuBtn/UserMenuBtn.vue +1 -3
  296. package/src/composables/unifyValidation/documentationValidationProps.ts +235 -0
  297. package/src/composables/validation/useValidation.ts +17 -1
  298. package/src/composantsVuetify/VBreadcrumbs/VBreadcrumbs.mdx +28 -0
  299. package/src/composantsVuetify/VBreadcrumbs/v-breadcrumbs.stories.ts +108 -0
  300. package/src/composantsVuetify/VOtpInput/VOtpInput.mdx +39 -0
  301. package/src/composantsVuetify/VOtpInput/v-otp-input.stories.ts +56 -0
  302. package/src/composantsVuetify/VSkeletonLoader/VSkeletonLoader.mdx +42 -0
  303. package/src/composantsVuetify/VSkeletonLoader/v-skeleton-loader.stories.ts +77 -0
  304. package/src/composantsVuetify/VSwitch/VSwitch.mdx +47 -0
  305. package/src/composantsVuetify/VSwitch/v-switch.stories.ts +166 -0
  306. package/src/designTokens/tests/buildColorClassMap.spec.ts +31 -0
  307. package/src/designTokens/tests/generateScssTokens.spec.ts +12 -0
  308. package/src/designTokens/tests/themeUtils.spec.ts +53 -0
  309. package/src/designTokens/tokens/amelipro/apColors.ts +8 -130
  310. package/src/designTokens/tokens/amelipro/apColors2026.ts +3 -15
  311. package/src/designTokens/tokens/amelipro/apContextual.ts +55 -47
  312. package/src/designTokens/tokens/amelipro/apLightTheme.ts +1 -1
  313. package/src/designTokens/tokens/amelipro/apSemantic.ts +1 -1
  314. package/src/designTokens/tokens/baseColors.ts +129 -0
  315. package/src/designTokens/tokens/baseContextualTokens.ts +52 -0
  316. package/src/designTokens/tokens/cnam/cnamColors.ts +3 -125
  317. package/src/designTokens/tokens/cnam/cnamContextual.ts +4 -48
  318. package/src/designTokens/tokens/cnam/cnamLightTheme.ts +1 -1
  319. package/src/designTokens/tokens/cnam/cnamSemantic.ts +1 -1
  320. package/src/designTokens/tokens/pa/paColors.ts +2 -166
  321. package/src/designTokens/tokens/pa/paContextual.ts +3 -48
  322. package/src/designTokens/tokens/pa/paLightTheme.ts +1 -1
  323. package/src/designTokens/tokens/pa/paSemantic.ts +2 -2
  324. package/src/designTokens/utils/buildColorClassMap.ts +34 -0
  325. package/src/designTokens/utils/convertSemanticsToken.ts +8 -11
  326. package/src/designTokens/utils/createFlattenTheme.ts +15 -7
  327. package/src/designTokens/utils/index.ts +2 -2
  328. package/src/stories/Accessibilite/AuditDesignSystem.mdx +0 -11
  329. package/src/stories/Accessibilite/DesignSystem/Avancement.mdx +433 -0
  330. package/src/stories/Accessibilite/DesignSystem/a11y-status.json +692 -0
  331. package/src/stories/Accessibilite/KitDePreAudit/Echantillonnage.mdx +8 -1
  332. package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +51 -10
  333. package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +16 -9
  334. package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +48 -58
  335. package/src/stories/Components/Components.stories.ts +40 -1
  336. package/src/stories/Demarrer/EnrichirLeDesignSystem.mdx +4 -9
  337. package/src/stories/Demarrer/EnrichirLeDesignSystem.stories.ts +28 -0
  338. package/src/stories/Demarrer/Releases.stories.ts +48 -5
  339. package/src/stories/DesignTokens/ColorDisplay.vue +6 -5
  340. package/src/stories/DesignTokens/ColorIntegrationExample.vue +2 -4
  341. package/src/stories/DesignTokens/colors.stories.ts +5 -6
  342. package/src/stories/GuideDuDev/CreateVuetifyInstance.mdx +95 -0
  343. package/src/stories/GuideDuDev/Theme.mdx +36 -26
  344. package/src/stories/GuideDuDev/moduleDeNotification.mdx +3 -2
  345. package/src/stories/styles/accessibility-guide.css +3 -3
  346. package/src/utils/functions/classToHex.ts +6 -34
  347. package/src/utils/functions/createHexResolver.ts +45 -0
  348. package/src/utils/functions/tests/classToHex.spec.ts +36 -0
  349. package/src/utils/functions/tests/convertToHex.spec.ts +31 -0
  350. package/src/utils/functions/tests/createHexResolver.spec.ts +66 -0
  351. package/src/utils/functions/tests/isCssColor.spec.ts +48 -0
  352. package/dist/apLightTheme-CFSRrjv2.cjs +0 -1
  353. package/dist/designTokens/utils/convertGaps.d.ts +0 -5
  354. package/dist/main-BtTqyn4z.js +0 -38648
  355. package/dist/main-C1e3eoxd.cjs +0 -1067
  356. package/src/assets/apTokens.scss +0 -343
  357. package/src/assets/overrides/_container.scss +0 -36
  358. package/src/assets/tokens.scss +0 -388
  359. package/src/designTokens/apColors.md +0 -66
  360. package/src/designTokens/cnamColors.md +0 -193
  361. package/src/designTokens/paColors.md +0 -66
  362. package/src/designTokens/tokens/json/contextual-tokens.json +0 -156
  363. package/src/designTokens/tokens/json/primitives.json +0 -209
  364. package/src/designTokens/tokens/json/semantic.json +0 -120
  365. package/src/designTokens/utils/convertGaps.ts +0 -11
  366. package/src/stories/Accessibilite/Avancement/Avancement.mdx +0 -533
  367. package/src/stories/Accessibilite/Avancement/Avancement.stories.ts +0 -306
@@ -121,13 +121,20 @@ import '../../styles/shared.css';
121
121
  padding: 1.5rem;
122
122
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
123
123
  }
124
+
125
+ h2 {
126
+ font-weight: bold !important;
127
+ color: #0c419a !important;
128
+ font-size: 1.6rem !important;
129
+ }
124
130
  `
125
131
  }
126
132
  </style>
127
133
 
128
134
  <div className="header">
129
135
  <h1>Échantillonnage</h1>
130
- <p>Définir un périmètre représentatif pour votre audit d'accessibilité</p>
136
+ <p>Définir un périmètre représentatif pour votre audit d'accessibilité.
137
+ Si vous êtes au démarrage de votre projet, il est difficile d'établir l'échantillonnage. Utilisez donc le kit de pré-audit de manière systématique sur chaque nouveau développement afin d'éviter une dette d'accessibilité lors de l'échantillonnage. </p>
131
138
  </div>
132
139
 
133
140
  <div className="info-card">
@@ -26,7 +26,6 @@ import '../../styles/shared.css';
26
26
  margin: 2rem 0;
27
27
  padding: 1.5rem;
28
28
  border-radius: 8px;
29
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
30
29
  }
31
30
 
32
31
  .info-section h2 {
@@ -107,7 +106,6 @@ import '../../styles/shared.css';
107
106
  left: 0;
108
107
  width: 80px;
109
108
  height: 4px;
110
-
111
109
  border-radius: 3px;
112
110
  }
113
111
 
@@ -121,32 +119,75 @@ import '../../styles/shared.css';
121
119
 
122
120
  border-radius: 3px;
123
121
  }
122
+
123
+ .info-section h2 {
124
+ position: relative;
125
+ padding-bottom: 0.75rem;
126
+ margin-top: 0;
127
+ color: #0c419a;
128
+ font-weight: 700;
129
+ font-size: 1.6rem;
130
+ display: flex;
131
+ align-items: center;
132
+ gap: 0.5rem;
133
+ }
134
+
135
+ .info-section h2::after {
136
+ content: '';
137
+ position: absolute;
138
+ bottom: 0;
139
+ left: 0;
140
+ width: 60px;
141
+ height: 3px;
142
+ border-radius: 3px;
143
+ }
124
144
  `
125
145
  }
126
146
  </style>
127
147
 
128
148
  <div className="header">
129
- <h1>Pré-audit à l'accessibilité</h1>
130
- <p>Vérifiez la conformité de votre service web avant l'audit officiel</p>
149
+ <h1>Pré-audit à l'accessibilité.</h1>
150
+ <p>Vérifiez la conformité de votre service web avant l'audit officiel ou pendant les phases de développement.</p>
131
151
  </div>
132
152
 
133
153
  <div className="info-section">
134
154
  <h2>🌟 Objectif</h2>
135
- <p>L'objectif du pré-audit est d'<b>obtenir un premier avis sur le taux de conformité de votre service web, avant de convenir d'un réel audit <abbr title="Référentiel Général d'Amélioration de l'Accessibilité">RGAA</abbr></b>, sans viser l'exhaustivité ni un score parfait. La procédure se fait <b>en autonomie par l'équipe de développement du produit</b>. Le relevé des non-conformités relève de la responsabilité de l’équipe de développement, ce kit étant conçu pour guider l’auto-évaluation.</p>
136
155
 
137
- <p>La restitution consiste à s'assurer que toutes les exigences du pré-audit sont remplies et que vous ayez un minimum d'erreur en lançant les tests automatisés avec Tanaguru.</p>
156
+ <p>Le kit de pré-audit peut être utilisé de deux façons :</p>
157
+
158
+ <ul>
159
+ <li>
160
+ <strong>Préparer un audit :</strong> en identifiant en amont un maximum de non-conformités. Il permet d’obtenir un premier niveau d’évaluation de l’accessibilité de votre service web avant la réalisation d’un audit <abbr title="Référentiel Général d'Amélioration de l'Accessibilité">RGAA</abbr>, sans viser l’exhaustivité ni un score final de conformité.
161
+ </li>
162
+ <li>
163
+ <strong>Vérifier en continu :</strong> s'assurer tout au long du développement, qu’un niveau intermédiaire d’accessibilité est bien respecté, réduisant ainsi le risque de non-conformité lors de l'audit officiel.
164
+ </li>
165
+ </ul>
166
+
167
+ <p>
168
+ La démarche est réalisée <b>en autonomie par l’équipe de développement</b>. Le kit guide l’auto-évaluation et permet d'identifier les anomalies. La correction doit être effectuée par l'équipe.
169
+ </p>
138
170
 
139
- <p>Les résultats observés par le pré-audit sont souvent partiels et doivent être considérés comme un point de départ et non comme une évaluation finale. Lors d'un audit suivi du pré-audit, nous observons un taux minimum compris entre 30% et 50%. Un contre-audit pourra être proposé après application des correctifs relevés par l'audit.</p>
171
+ <p>
172
+ Une fois les corrections apportées, l'équipe doit restituer la bonne conformité dans le rapport de pré-audit. Le rapport de pré-audit ne détermine pas de score puisque seul l'audit peut le faire. Néanmoins, par hypothèse, nous estimons qu'un projet peut atteindre le seuil de conformité partielle du RGAA {'>'}50%.
173
+ </p>
140
174
 
141
- <p>L'enjeu est d'identifier un maximum de non conformités en phase pré-audit afin de réduire le nombre de correctifs en phase audit. Ce kit met aussi à disposition <b>des outils et des tutoriels pour vous accompagner dans cette démarche</b>.</p>
175
+ <p>
176
+ Dans le cadre d'un objectif de conformité totale (100%) du RGAA, un processus d'audit peut être engagé. Le Kit de pré-audit ne permet pas seul d'atteindre le 100%.
177
+ </p>
178
+ <p>
179
+ L’enjeu est d’identifier le plus tôt possible un maximum de non-conformités afin de réduire le volume de correctifs à traiter lors de l’audit. Le kit met également à disposition <b>des outils et des tutoriels pour vous accompagner dans cette démarche</b>.
180
+ </p>
142
181
 
143
182
  <div className="alert">
144
- <p><strong>Note :</strong> Vous pouvez nous solliciter pour un accompagnement si vous rencontrez des difficultés techniques à résoudre les non-conformités, relevées par Tanaguru en phase automatique ou par l'équipe en phase manuelle.</p>
183
+ <p>
184
+ <strong>Note :</strong> Vous pouvez nous solliciter pour un accompagnement si vous rencontrez des difficultés techniques dans la résolution des non-conformités relevées, que ce soit par Tanaguru lors des tests automatiques ou par l’équipe lors des vérifications manuelles.
185
+ </p>
145
186
  </div>
146
187
  </div>
147
188
 
148
189
  <div className="section-container">
149
- <h2>Environnement de test</h2>
190
+ <h2>Environnement de test (pré-audit, audit, contre-audit)</h2>
150
191
  <p>Il est important de tester votre service dans un environnement similaire à celui utilisé par les utilisateurs finaux. <b>L'environnement de test sera le même pour chacune des phases (pré-audit, audit, contre-audit) et devra être stable. Aucune nouvelle fonctionnalité ne doit être développée entre chaque phase.</b> Seules les corrections liées aux écarts d’accessibilité identifiés doivent être réalisées, afin de garantir la cohérence et la comparabilité des résultats.</p>
151
192
 
152
193
  <p>Le produit devra mettre à disposition un environnement adéquat pour l'audit qui, selon le public ciblé par le produit, pourra être un environnement de bureau ou mobile.</p>
@@ -45,6 +45,12 @@ import '../../../styles/shared.css';
45
45
  background: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"%3E%3Cpath d="M0,0 L100,0 L100,100 L0,100 Z" fill="none" stroke="rgba(255,255,255,0.1)" stroke-width="2"/%3E%3C/svg%3E') repeat;
46
46
  opacity: 0.3;
47
47
  }
48
+
49
+ h2 {
50
+ font-weight: bold !important;
51
+ color: #0c419a !important;
52
+ font-size: 1.6rem !important;
53
+ }
48
54
 
49
55
 
50
56
 
@@ -93,6 +99,7 @@ import '../../../styles/shared.css';
93
99
  gap: 0.75rem;
94
100
  position: relative;
95
101
  padding-bottom: 0.75rem;
102
+ font-weight: bold !important;
96
103
  }
97
104
 
98
105
  .tool-card-title::after {
@@ -105,6 +112,11 @@ import '../../../styles/shared.css';
105
112
 
106
113
  border-radius: 3px;
107
114
  }
115
+
116
+ .tool-card-title-tanaguru p {
117
+ font-size: 1.2rem !important;
118
+ font-weight: bold !important;
119
+ }
108
120
 
109
121
  .tool-card-icon {
110
122
  width: 36px;
@@ -115,6 +127,7 @@ import '../../../styles/shared.css';
115
127
  background-color: rgba(0, 120, 212, 0.1);
116
128
  border-radius: 50%;
117
129
  font-size: 1.2rem;
130
+ margin-bottom: 0.5rem;
118
131
  }
119
132
 
120
133
  .tool-card-description {
@@ -131,6 +144,7 @@ import '../../../styles/shared.css';
131
144
  text-decoration: none;
132
145
  font-weight: 500;
133
146
  position: relative;
147
+ font-weight: bold;
134
148
  }
135
149
 
136
150
  .tool-card-link::after {
@@ -269,23 +283,16 @@ import '../../../styles/shared.css';
269
283
  <div className="header">
270
284
  <h1>Outils d'accessibilité</h1>
271
285
  <p>
272
- Découvrez les outils essentiels pour vérifier la conformité de vos interfaces aux normes d'accessibilité dans le cadre du pré-audit et de l'audit.
286
+ Découvrez les outils essentiels pour vérifier la conformité de vos interfaces aux normes d'accessibilité dans le cadre du pré-audit, de l'audit ou de la vérification continue. <br/> Ces outils vous aideront à identifier et corriger les problèmes d'accessibilité avant même de soumettre votre produit à un audit complet.
273
287
  </p>
274
288
  </div>
275
289
 
276
- <section className="section">
277
- <h2 className="section-title">Présentation</h2>
278
- <p className="section-description">
279
- Dans le cadre du pré-audit et de l'audit, il existe des outils automatisés pour vérifier certains critères de conformité en matière d'accessibilité. Ces outils vous aideront à identifier et corriger les problèmes d'accessibilité avant même de soumettre votre produit à un audit complet.
280
- </p>
281
- </section>
282
290
  <section className="section">
283
291
  <h2 className="section-title">Outil principal</h2>
284
292
 
285
293
  <div className="tool-card">
286
294
  <div className="tool-card-content">
287
- <h3 className="tool-card-title">
288
- <span className="tool-card-icon" role="img" aria-hidden="true">🔍</span>
295
+ <h3 className="tool-card-title-tanaguru">
289
296
  Tanaguru webext RGAA
290
297
  </h3>
291
298
 
@@ -34,12 +34,9 @@ import '../../styles/shared.css';
34
34
 
35
35
  .info-section {
36
36
  margin: 2.5rem 0;
37
- padding: 2rem;
38
37
  background-color: var(--neutral-100);
39
38
  border-radius: var(--radius-md);
40
- box-shadow: var(--shadow-sm);
41
39
  transition: var(--transition);
42
- border: 1px solid var(--neutral-300);
43
40
  }
44
41
 
45
42
  .info-section h2 {
@@ -48,6 +45,7 @@ import '../../styles/shared.css';
48
45
  margin-top: 0;
49
46
  color: var(--primary);
50
47
  font-weight: 700;
48
+ font-size: 1.6rem;
51
49
  display: flex;
52
50
  align-items: center;
53
51
  gap: 0.5rem;
@@ -60,7 +58,6 @@ import '../../styles/shared.css';
60
58
  left: 0;
61
59
  width: 60px;
62
60
  height: 3px;
63
-
64
61
  border-radius: 3px;
65
62
  }
66
63
 
@@ -78,28 +75,15 @@ import '../../styles/shared.css';
78
75
  }
79
76
 
80
77
  .verification-card {
81
- background-color: var(--neutral-200);
82
- border: 1px solid var(--neutral-300);
83
78
  padding: 1.75rem;
84
79
  margin-bottom: 2rem;
85
80
  border-radius: var(--radius-md);
86
- box-shadow: var(--shadow-sm);
87
81
  transition: var(--transition);
88
82
  position: relative;
89
83
  }
90
84
 
91
- .verification-card::before {
92
- content: '';
93
- position: absolute;
94
- left: 0;
95
- top: 0;
96
- height: 100%;
97
- width: 4px;
98
- background: linear-gradient(to bottom, var(--primary), var(--primary-light));
99
- border-radius: var(--radius-sm) 0 0 var(--radius-sm);
100
- }
101
85
 
102
- .verification-card h3 {
86
+ .verification-card h2 {
103
87
  color: var(--primary);
104
88
  margin-top: 0;
105
89
  display: flex;
@@ -146,12 +130,12 @@ import '../../styles/shared.css';
146
130
  background: linear-gradient(135deg, #f0f7ff 0%, #e6f0ff 100%);
147
131
  border-radius: var(--radius-md);
148
132
  padding: 1.75rem;
149
- margin: 1.75rem 0;
133
+ margin: 1rem 0;
150
134
  border: 1px solid #d9e8ff;
151
135
  position: relative;
152
136
  }
153
137
 
154
- .contact-info h3 {
138
+ .contact-info h2 {
155
139
  color: var(--primary-dark);
156
140
  margin-top: 0;
157
141
  display: flex;
@@ -168,6 +152,10 @@ import '../../styles/shared.css';
168
152
  color: var(--primary-dark);
169
153
  border: 1px solid var(--neutral-300);
170
154
  }
155
+
156
+ h4 {
157
+ font-weight: bold !important;
158
+ }
171
159
 
172
160
  a {
173
161
  color: var(--primary);
@@ -187,18 +175,20 @@ import '../../styles/shared.css';
187
175
 
188
176
  <div className="header">
189
177
  <h1>Pré-audit d'accessibilité</h1>
190
- <p>Vérifiez la conformité de votre service web avant l'audit officiel</p>
178
+ <p>Vérifiez la conformité de votre service web avant l'audit officiel ou pendant les phases de développement.</p>
191
179
  </div>
192
180
 
193
181
  <div className="info-section">
194
- <h2>🌟 Objectif</h2>
195
- <p>L'objectif du pré-audit est d'atteindre en semi-autonomie un premier palier de conformité de votre service web avant de convenir d'un réel audit <abbr title="Référentiel Général d'Amélioration de l'Accessibilité">RGAA</abbr>. La procédure se fait en autonomie par l'équipe de développement du produit. Le relevé des non-conformités relève de la responsabilité de l’équipe de développement, ce kit étant conçu pour guider l’auto-évaluation.</p>
182
+ <h2>🌟 Objectif:</h2>
183
+ <p>L'Objectif du pré-audit est d'atteindre en semi-autonomie un premier palier de conformité de votre service web avant de convenir d'un réel audit <abbr title="Référentiel Général d'Amélioration de l'Accessibilité">RGAA</abbr>. La procédure se fait en autonomie par l'équipe de développement du produit. Le relevé des non-conformités relève de la responsabilité de l’équipe de développement, ce kit étant conçu pour guider l’auto-évaluation.</p>
196
184
 
197
185
  <p>Pour prouver ce palier et être éligible à la demande d'audit complet vous devez compléter <a href="/documents/Checklist_pre-audit_CNAM_NOM_DU_PRODUIT.xlsx" target="_blank">ce fichier</a> qui mentionne les exigences requises par la vérification assistée des outils automatisés et la vérification manuelle.</p>
186
+
187
+ <p>Les tests ci dessous permettent aussi de vérifier tout au long des phases de développement, qu’un niveau intermédiaire d’accessibilité est bien respecté.</p>
198
188
  </div>
199
189
 
200
190
  <div className="contact-info">
201
- <h3>📬 Contact et assistance</h3>
191
+ <h2>📬 Contact et assistance</h2>
202
192
  <p>Dans le cas où vous rencontrez une difficulté avec un test, un critère ou un outil n'hésitez pas à nous contacter via l'adresse <a href="mailto:valentin.becquet@assurance-maladie.fr">valentin.becquet@assurance-maladie.fr</a> (cette adresse évoluera prochainement).</p>
203
193
 
204
194
  <p>Pour demander un audit, contactez également cette adresse. L'acceptance de la demande est soumise à la démonstration de l'effort engagé par l'équipe-produit. Cette appréciation fera l'objet d'une discussion.</p>
@@ -212,7 +202,7 @@ import '../../styles/shared.css';
212
202
  <h2>🔍 Vérification assistée des outils automatisés</h2>
213
203
 
214
204
  <div className="verification-card">
215
- <h3>📦 Utilisation de Tanaguru</h3>
205
+ <h2>📦 Utilisation de Tanaguru</h2>
216
206
  <p>Lancez Tanaguru sur chaque page de l'échantillon de test. Vous pouvez retrouver une documentation d'utilisation de Tanaguru <a href="/?path=/docs/accessibilité-kit-de-pré-audit-outils-tanaguru-utilisation--docs">ici</a>.</p>
217
207
 
218
208
  <div className="alert">
@@ -228,7 +218,7 @@ import '../../styles/shared.css';
228
218
  <div className="info-section">
229
219
  <h2>👤 Vérification manuelle</h2>
230
220
 
231
- <p>L'objectif est de vérifier chacun des 8 points suivants pour chaque page de l'échantillon de test. Nous recommandons vivement, au préalable, de naviguer sur la totalité de la page via le lecteur d'écran car il s'agit d'un moyen concret de vérifier si le code sémantique et la navigation au clavier sont réellement conformes. Vous pouvez consulter notre <a href="/?path=/docs/accessibilité-kit-de-pré-audit-outils-lecteurs-d-écran--docs">mode d'emploi sur les lecteurs d'écran</a>.</p>
221
+ <p>L'Objectif est de vérifier chacun des 8 points suivants pour chaque page de l'échantillon de test. Nous recommandons vivement, au préalable, de naviguer sur la totalité de la page via le lecteur d'écran car il s'agit d'un moyen concret de vérifier si le code sémantique et la navigation au clavier sont réellement conformes. Vous pouvez consulter notre <a href="/?path=/docs/accessibilité-kit-de-pré-audit-outils-lecteurs-d-écran--docs">mode d'emploi sur les lecteurs d'écran</a>.</p>
232
222
 
233
223
  <div className="alert">
234
224
  <p><strong>Notation :</strong> Au sein de la check-list, il faudra choisir entre <span className="highlight">"Conforme"</span>, <span className="highlight">"Non conforme"</span>, <span className="highlight">"Non applicable"</span>, <span className="highlight">"Dérogé"</span> ou <span className="highlight">"Non testé"</span> pour chacun des critères.</p>
@@ -237,11 +227,11 @@ import '../../styles/shared.css';
237
227
  </div>
238
228
 
239
229
  <div className="verification-card">
240
- <h3>⌨️ 1. Navigation au clavier</h3>
230
+ <h2>⌨️ 1. Navigation au clavier</h2>
241
231
 
242
- <h4>Objectif</h4>
232
+ <h4>Objectif:</h4>
243
233
  <p>S'assurer que toutes les parties sont entièrement navigables au clavier</p>
244
- <h4>Méthode de test</h4>
234
+ <h4>Méthode de test:</h4>
245
235
  <ol>
246
236
  <li>Naviguer via la touche Tab pour se déplacer, Shift+Tab pour revenir en arrière, Entrée/Espace/Flèches/etc. en fonction des composants.</li>
247
237
  <li>Tester tous les éléments interactifs : menus, menus déroulants, formulaires, liens, boutons, carrousels, fenêtres modales, etc. Concernant le comportement clavier pour les composants d'interface, se renseigner via les <a href="https://www.w3.org/WAI/ARIA/apg/patterns/">patterns du W3C</a>.</li>
@@ -249,7 +239,7 @@ import '../../styles/shared.css';
249
239
  <li>S'assurer que le focus du clavier reste visible et possède un contraste minimum de 3:1.</li>
250
240
  <li>Vérifier qu'aucun piège au clavier n'existe (boucle, etc.).</li>
251
241
  </ol>
252
- <h4>Outil éventuel</h4>
242
+ <h4>Outil éventuel:</h4>
253
243
  <p>Aucun</p>
254
244
 
255
245
  <div className="alert">
@@ -262,17 +252,17 @@ import '../../styles/shared.css';
262
252
  </div>
263
253
 
264
254
  <div className="verification-card">
265
- <h3>📺 2. Éléments visuels et déclenchements automatiques</h3>
255
+ <h2>📺 2. Éléments visuels et déclenchements automatiques</h2>
266
256
 
267
- <h4>Objectif</h4>
257
+ <h4>Objectif:</h4>
268
258
  <p>Vérifier que les animations, transitions et autres éléments visuels peuvent être arrêtés, mis en pause ou désactivés par l'utilisateur.</p>
269
- <h4>Méthode de test</h4>
259
+ <h4>Méthode de test:</h4>
270
260
  <ol>
271
261
  <li>Identifier tous les éléments animés, qui clignotent ou se mettent à jour automatiquement sur votre site.</li>
272
262
  <li>Vérifier que ces éléments peuvent être arrêtés ou mis en pause par l'utilisateur.</li>
273
263
  <li>S'assurer que la durée du mouvement est inférieure ou égale à 5 secondes s'il n'existe aucun moyen d'arrêter ou de masquer le contenu.</li>
274
264
  </ol>
275
- <h4>Outil éventuel</h4>
265
+ <h4>Outil éventuel:</h4>
276
266
  <p>Aucun</p>
277
267
 
278
268
  <div className="alert">
@@ -281,17 +271,17 @@ import '../../styles/shared.css';
281
271
  </div>
282
272
 
283
273
  <div className="verification-card">
284
- <h3>🔗 3. Pertinence des libellés et textes alternatifs</h3>
274
+ <h2>🔗 3. Pertinence des libellés et textes alternatifs</h2>
285
275
 
286
- <h4>Objectif</h4>
276
+ <h4>Objectif:</h4>
287
277
  <p>Les libellés et textes alternatifs des images, liens, boutons doivent être explicite, clair et contextuel, en évitant les termes génériques comme "Logo", "Cliquez ici" ou "En savoir plus".</p>
288
- <h4>Méthode de test</h4>
278
+ <h4>Méthode de test:</h4>
289
279
  <ol>
290
280
  <li>Inspecter les images porteuses d'information et s'assurer qu'elles contiennent un alt pertinent (ou legend pour les balises picture)</li>
291
281
  <li>À l'inverse, s'assurer que seules les images de décoration sont ignorées par les technologies d'assistance (ex: aria-hidden="true")</li>
292
282
  <li>Vérifier que chaque lien ou bouton a un intitulé qui décrit clairement sa fonction ou sa destination.</li>
293
283
  </ol>
294
- <h4>Outil éventuel</h4>
284
+ <h4>Outil éventuel:</h4>
295
285
  <p>Pour les images, le plugin Assistant RGAA permet de mettre en évidence les images considérées avec ou sans alternative textuelle (catégorie 1). La catégorie 6 du même plugin permet de mettre en évidence les liens et liens images.</p>
296
286
 
297
287
  <div className="alert">
@@ -305,12 +295,12 @@ import '../../styles/shared.css';
305
295
  </div>
306
296
 
307
297
  <div className="verification-card">
308
- <h3>📝 4. Formulaires</h3>
298
+ <h2>📝 4. Formulaires</h2>
309
299
 
310
- <h4>Objectif</h4>
300
+ <h4>Objectif:</h4>
311
301
  <p>Assurez-vous que tous les éléments d'un formulaire sont accessibles et compréhensibles pour les utilisateurs, y compris ceux qui utilisent des technologies d'assistance (lecteurs d'écran, commandes vocales, etc.).</p>
312
302
 
313
- <h4>Méthode de test :</h4>
303
+ <h4>Méthode de test: :</h4>
314
304
 
315
305
  <div className="verification-steps">
316
306
  <h5>1. Labels associés aux champs</h5>
@@ -349,7 +339,7 @@ import '../../styles/shared.css';
349
339
  </ol>
350
340
  </div>
351
341
 
352
- <h4>Outil éventuel</h4>
342
+ <h4>Outil éventuel:</h4>
353
343
  <p>Utilisation du lecteur d'écran pour vérifier la navigation et l'accessibilité des formulaires, tel que l'indication du caractère obligatoire du champ, la liaison du champ aux aides à la saisie ainsi qu'aux messages d'erreurs, le comportement à la soumission du formulaire, etc.</p>
354
344
 
355
345
  <h4>Ressources</h4>
@@ -357,18 +347,18 @@ import '../../styles/shared.css';
357
347
  </div>
358
348
 
359
349
  <div className="verification-card">
360
- <h3>📃 5. Tableaux</h3>
350
+ <h2>📃 5. Tableaux</h2>
361
351
 
362
- <h4>Objectif</h4>
352
+ <h4>Objectif:</h4>
363
353
  <p>Vérifier que les tableaux de données sont bien structurés</p>
364
- <h4>Méthode de test</h4>
354
+ <h4>Méthode de test:</h4>
365
355
  <ol>
366
356
  <li>S'assurer que les titres des tableaux de données sont sémantiquement rattachés au tableau et sont pertinents.</li>
367
357
  <li>S'assurer que tableaux de données complexes (en-têtes n'étant pas qu'en une seule ligne ou une seule colonne) possèdent un résumé pertinent.</li>
368
358
  <li>Vérifiez que les cellules d'en-tête sont correctement déclarées avec des balises <code>&lt;th&gt;</code> et non des balises <code>&lt;td&gt;</code> stylisées.</li>
369
359
  <li>Assurez-vous que les tableaux complexes ont des attributs <code>scope</code> ou des associations entre cellules d'en-tête et cellules de données.</li>
370
360
  </ol>
371
- <h4>Outil éventuel</h4>
361
+ <h4>Outil éventuel:</h4>
372
362
  <p>Inspecteur de code</p>
373
363
 
374
364
  <div className="alert">
@@ -383,15 +373,15 @@ import '../../styles/shared.css';
383
373
  </div>
384
374
 
385
375
  <div className="verification-card">
386
- <h3>📬 6. Langue</h3>
387
- <h4>Objectif</h4>
376
+ <h2>📬 6. Langue</h2>
377
+ <h4>Objectif:</h4>
388
378
  <p>Permettre aux lecteurs d’écran d’utiliser la bonne prononciation.</p>
389
- <h4>Méthode de test</h4>
379
+ <h4>Méthode de test:</h4>
390
380
  <ol>
391
381
  <li>Inspectez le code source de la page (clic droit > "Inspecter" dans le navigateur) et vérifiez que l’attribut `lang="fr"` (ou la langue correspondante) est bien présent dans l’élément `<html>`. S’il s’agit d’une autre langue, elle doit être pertinente ([voir documentation MDN sur l’attribut lang](https://developer.mozilla.org/fr/docs/Web/HTML/Global_attributes/lang))</li>
392
382
  <li>Repérer les mots/phrases dans une autre langue au sein de la page et vérifier l'existence et la valeur de l’attribut <code>lang</code>.</li>
393
383
  </ol>
394
- <h4>Outil éventuel</h4>
384
+ <h4>Outil éventuel:</h4>
395
385
  <p>Inspecteur de code</p>
396
386
 
397
387
  <div className="alert">
@@ -400,18 +390,18 @@ import '../../styles/shared.css';
400
390
  </div>
401
391
 
402
392
  <div className="verification-card">
403
- <h3>📄 7. Titre de la page et hiérarchie des titres</h3>
393
+ <h2>📄 7. Titre de la page et hiérarchie des titres</h2>
404
394
 
405
- <h4>Objectif</h4>
395
+ <h4>Objectif:</h4>
406
396
  <p>Vérifier que la page possède un titre descriptif, unique et pertinent. De plus, s'assurer que la structure des titres au sein de la page est cohérente.</p>
407
- <h4>Méthode de test</h4>
397
+ <h4>Méthode de test:</h4>
408
398
  <ol>
409
399
  <li>Identifier si le titre affiché dans l'onglet du navigateur est pertinent.</li>
410
400
  <li>Le contenu de la page devra avoir au moins un titre.</li>
411
401
  <li>Analyser les balises de <code>h1</code> à <code>h6</code> en vérifiant la pertinence et la structure (aucun saut de niveau).</li>
412
402
  <li>S'assurer que les titres sont sémantiquement correctes (présence d'une balise <code>hx</code> ou balises <code>role="heading" aria-level="x"</code></li>
413
403
  </ol>
414
- <h4>Outil éventuel</h4>
404
+ <h4>Outil éventuel:</h4>
415
405
  <p>Extension HeadingsMap (<a href="/?path=/docs/accessibilité-kit-de-pré-audit-outils-introduction--docs">voir la page des outils</a>)</p>
416
406
 
417
407
  <div className="alert">
@@ -424,18 +414,18 @@ import '../../styles/shared.css';
424
414
  </div>
425
415
 
426
416
  <div className="verification-card">
427
- <h3>📹 8. Contenus multimédia</h3>
417
+ <h2>📹 8. Contenus multimédia</h2>
428
418
 
429
- <h4>Objectif</h4>
419
+ <h4>Objectif:</h4>
430
420
  <p>Vérifier que les vidéos et autres contenus multimédia temporels possèdent, si nécessaire, une transcription textuelle, une audiodescription synchronisée et/ou des sous-titres synchronisés. Concernant les médias non temporels, s'assurer qu'ils possèdent une alternative ou sont accessibles par le clavier et tout dispositif de pointage.</p>
431
- <h4>Méthode de test</h4>
421
+ <h4>Méthode de test:</h4>
432
422
  <ol>
433
423
  <li>Écouter les vidéos sans regarder l’écran et statuer sur la pertinence de l'audiodescription.</li>
434
424
  <li>Lire une vidéo avec sous-titres activés et statuer sur leur pertinence.</li>
435
425
  <li>Vérifier que toute transcription textuelle exprime tout ce qui est retranscrit oralement et suivent la chronologie du média.</li>
436
426
  <li>S'assurer que tout son déclenché automatiquement peut, soit être stoppé, soit contrôlé indépendemment du volume, soit possède une durée inféreure ou égale à 3 secondes.</li>
437
427
  </ol>
438
- <h4>Outil éventuel</h4>
428
+ <h4>Outil éventuel:</h4>
439
429
  <p>Aucun</p>
440
430
  <h4>Ressources</h4>
441
431
  <p><a href="https://bati-itao.github.io/learning/esdc-self-paced-web-accessibility-course/module9/introduction-fr.html">Concepts des contenus multimédia</a></p>
@@ -56,6 +56,13 @@ export const ComponentsList: StoryObj = {
56
56
  img: '/components/sub-header.svg',
57
57
  category: 'Structure',
58
58
  },
59
+ {
60
+ title: 'SkeletonLoader',
61
+ description: 'Utilisé pour améliorer l’expérience utilisateur pendant le chargement des données, affiche une structure visuelle temporaire qui ressemble au contenu final.',
62
+ link: '/?path=/docs/composants-composants-vuetify-vskeletonloader--docs',
63
+ img: '/components/v-skeleton-loader.svg',
64
+ category: 'Structure',
65
+ },
59
66
  {
60
67
  title: 'FooterBar',
61
68
  description: 'Utilisé pour afficher une barre de pied de page avec des liens et des informations supplémentaires.',
@@ -77,6 +84,13 @@ export const ComponentsList: StoryObj = {
77
84
  img: '/components/contextual-menu.svg',
78
85
  category: 'Navigation',
79
86
  },
87
+ {
88
+ title: 'Breadcrumbs',
89
+ description: 'Utilisé comme un outil d’aide à la navigation et comme une structure hiérarchique pour les pages.',
90
+ link: '/?path=/docs/composants-composants-vuetify-vbreadcrumbs--docs',
91
+ img: '/components/breadcrumbs.svg',
92
+ category: 'Navigation',
93
+ },
80
94
  {
81
95
  title: 'ExternalLinks',
82
96
  description: 'Utilisé pour afficher un menu avec une liste vers des liens externes.',
@@ -112,6 +126,13 @@ export const ComponentsList: StoryObj = {
112
126
  img: '/components/back-btn.svg',
113
127
  category: 'Boutons',
114
128
  },
129
+ {
130
+ title: 'SyIconBtn',
131
+ description: 'Utilisé lorsque on a besoin d’un bouton qui sert principalement à afficher une icône.',
132
+ link: '/?path=/docs/composants-boutons-syiconbutton--docs',
133
+ img: `/components/sy-icon-button${isAp ? '-ap' : ''}.svg`,
134
+ category: 'Boutons',
135
+ },
115
136
  {
116
137
  title: 'BackToTopBtn',
117
138
  description: 'Utilisé pour afficher un bouton permettant à l’utilisateur de remonter en haut de la page.',
@@ -168,6 +189,13 @@ export const ComponentsList: StoryObj = {
168
189
  img: `/components/sy-select${isAp ? '-ap' : ''}.svg`,
169
190
  category: 'Formulaires',
170
191
  },
192
+ {
193
+ title: 'Switch',
194
+ description: 'Utilisé pour permettre à l’utilisateur de choisir entre deux valeurs distinctes. Il est très similaire à un bouton bascule (toggle) ou à un interrupteur marche/arrêt.',
195
+ link: '/?path=/docs/composants-composants-vuetify-vswitch--docs',
196
+ img: `/components/switch${isAp ? '-ap' : ''}.svg`,
197
+ category: 'Boutons',
198
+ },
171
199
  {
172
200
  title: 'SySelect',
173
201
  description: 'Utilisé pour proposer une alternative au v-select de Vuetify qui ne respecte pas les règles d\'accessibilité RGAA. Il est basé sur un v-textfield.',
@@ -189,6 +217,13 @@ export const ComponentsList: StoryObj = {
189
217
  img: '/components/sy-btn-select.svg',
190
218
  category: 'Formulaires',
191
219
  },
220
+ {
221
+ title: 'OTPInput',
222
+ description: 'Utilisé pour une procédure MFA d’authentification des utilisateurs via un mot de passe à usage unique.',
223
+ link: '/?path=/docs/composants-composants-vuetify-votpinput--docs',
224
+ img: `/components/otp${isAp ? '-ap' : ''}.svg`,
225
+ category: 'Formulaires',
226
+ },
192
227
  {
193
228
  title: 'DatePicker',
194
229
  description: 'Utilisé pour permettre à l’utilisateur de sélectionner ou de saisir une date.',
@@ -405,6 +440,8 @@ export const ComponentsList: StoryObj = {
405
440
  'SyAutocomplete',
406
441
  'SySelect',
407
442
  'SyRadioGroup',
443
+ 'SyIconBtn',
444
+ 'NirField',
408
445
  ]
409
446
 
410
447
  const shouldDisplayComponent = (component: { category: string, title: string }, category: string) => {
@@ -420,7 +457,9 @@ export const ComponentsList: StoryObj = {
420
457
 
421
458
  const groupedComponents = categoryOrder.map(category => ({
422
459
  category,
423
- components: components.filter(component => shouldDisplayComponent(component, category)),
460
+ components: components
461
+ .filter(component => shouldDisplayComponent(component, category))
462
+ .sort((a, b) => a.title.localeCompare(b.title)),
424
463
  })).filter(group => group.components.length > 0)
425
464
 
426
465
  return {
@@ -14,7 +14,8 @@ Le Design System de l'Assurance Maladie est un projet vivant qui évolue constam
14
14
  Votre contribution est essentielle pour garantir que le Design System reste pertinent, accessible et efficace.<br/>
15
15
  Toute demande ne sera pas nécessairement intégrée, mais chaque suggestion est examinée avec attention par l'équipe du Studio Design.
16
16
 
17
- <Story of={ComponentStories.InfoIntro}/>
17
+ #
18
+ <Story of={ComponentStories.WarningIntro}/>
18
19
 
19
20
  <a id="exigences" />
20
21
  ## Exigences requises pour acceptation d'un nouveau composant ou d'une nouvelle fonctionnalité
@@ -31,13 +32,7 @@ Toute demande ne sera pas nécessairement intégrée, mais chaque suggestion est
31
32
  10. Doit se conformer aux **exigences techniques** du Design System et à son bon fonctionnement sur le Starter Kit (VueJS 3, version des plugins...).
32
33
 
33
34
  ## Créer une nouvelle demande
34
-
35
- <Story of={ComponentStories.Optimisation}/>
36
-
35
+ #
37
36
  <Story of={ComponentStories.AjoutFonctionnalite}/>
38
37
 
39
- <Story of={ComponentStories.DeclinaisonFonctionnalite}/>
40
-
41
- <Story of={ComponentStories.CreationComposant}/>
42
-
43
- <Story of={ComponentStories.IntegrationComposant}/>
38
+ <Story of={ComponentStories.CreationComposant}/>
@@ -26,6 +26,34 @@ export const InfoIntro = {
26
26
  tags: ['!dev'],
27
27
  }
28
28
 
29
+ export const WarningIntro = {
30
+ render: () => {
31
+ return {
32
+ components: { SyAlert },
33
+ setup() {
34
+ return {}
35
+ },
36
+ template: `
37
+ <SyAlert type="error" variant="tonal" :closable="false">
38
+ <template #default>
39
+ <b>Pour limiter les risques de régression et d'anomalie nous mettons temporairement en pause les demandes de nouvelles fonctionnalités. Nous invitons les projets à mettre en place des solutions de contournement.</b>
40
+ <br/><br/>
41
+ Une fois les chantiers ci-après complétés au 1er juillet 2026 nous pourrons reprendre l'analyse et l'intégration de vos features au fil de l'eau selon la disponibilité de l'équipe.
42
+ <br/><br/>
43
+ Chantiers en cours :
44
+ <ul><li>- Disponibilité des composants Amelipro</li>
45
+ <li>- Optimisation de la validation des composants de formulaire</li>
46
+ <li>- Optimisation des tokens pour la convergence des 3 thèmes (Amelipro, Cnam, Portail Agent)</li>
47
+ <li>- Optimisation de l'accessibilité numérique</li>
48
+ </ul>
49
+ </template>
50
+ </SyAlert>
51
+ `,
52
+ }
53
+ },
54
+ tags: ['!dev'],
55
+ }
56
+
29
57
  export const Optimisation = {
30
58
  render: () => {
31
59
  return {