@cnamts/synapse 1.0.24 → 1.0.26

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 (493) hide show
  1. package/README.md +27 -5
  2. package/dist/{AutocompleteFilter-BWLR3U7W.js → AutocompleteFilter-BPR-a55G.js} +1 -1
  3. package/dist/{DateFilter-BpwFexzi.js → DateFilter-CknrJWs2.js} +2 -2
  4. package/dist/{NumberFilter-Bz_NTdX9.js → NumberFilter-DJ-yNlzv.js} +1 -1
  5. package/dist/{PeriodFilter-DX_wy9g-.js → PeriodFilter-CiB5Oa9Z.js} +1 -1
  6. package/dist/{SelectFilter-xqiPtPgX.js → SelectFilter-EiafX97M.js} +2 -2
  7. package/dist/{TextFilter-BBl3JFqK.js → TextFilter-BzOmpdxj.js} +1 -1
  8. package/dist/{apLightTheme-D1P4jcD0.js → apLightTheme-DS0Uy44H.js} +446 -723
  9. package/dist/components/Customs/Selects/SyAutocomplete/SyAutocomplete.d.ts +14 -8
  10. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +60 -289
  11. package/dist/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.d.ts +1 -0
  12. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +4 -0
  13. package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +1 -0
  14. package/dist/components/Customs/SyTabs/SyTabs.d.ts +13 -11
  15. package/dist/components/Customs/SyTextField/SyTextField.d.ts +0 -2
  16. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +54 -73
  17. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +31 -40
  18. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +9 -14
  19. package/dist/components/DatePicker/composables/useDatePickerState.d.ts +4 -3
  20. package/dist/components/DatePicker/composables/useDateTextField.d.ts +2 -2
  21. package/dist/components/DatePicker/composables/useInputBlurHandler.d.ts +2 -2
  22. package/dist/components/DatePicker/types.d.ts +1 -2
  23. package/dist/components/FileList/FileList.d.ts +6 -0
  24. package/dist/components/FilterSideBar/FilterSideBar.d.ts +2 -0
  25. package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +13 -13
  26. package/dist/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.d.ts +3 -3
  27. package/dist/components/LunarCalendar/useLunarCalendarValidation.d.ts +1 -0
  28. package/dist/components/MonthPicker/MonthPicker.d.ts +2 -7
  29. package/dist/components/MonthPicker/MonthPickerText/MonthPickerInput.d.ts +2 -7
  30. package/dist/components/NirField/NirField.d.ts +12 -20
  31. package/dist/components/NirField/useNirValidation.d.ts +6 -2
  32. package/dist/components/PeriodField/PeriodField.d.ts +110 -150
  33. package/dist/components/PhoneField/PhoneField.d.ts +12 -7
  34. package/dist/components/RangeField/RangeSlider/RangeSlider.d.ts +0 -3
  35. package/dist/components/RatingPicker/EmotionPicker/EmotionPicker.d.ts +3 -1
  36. package/dist/components/RatingPicker/NumberPicker/NumberPicker.d.ts +4 -3
  37. package/dist/components/RatingPicker/RatingPicker.d.ts +18 -5
  38. package/dist/components/RatingPicker/StarsPicker/StarsPicker.d.ts +3 -1
  39. package/dist/components/RatingPicker/tests/RatingPicker.a11y.spect.d.ts +1 -0
  40. package/dist/components/RatingPicker/useRatingFocus.d.ts +18 -0
  41. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +5 -4
  42. package/dist/components/Tables/SyTable/SyTable.d.ts +5 -4
  43. package/dist/components/Tables/common/SyTablePagination.d.ts +154 -364
  44. package/dist/components/Tables/common/TableHeader.d.ts +6 -1
  45. package/dist/components/Tables/common/filters/DateFilter.d.ts +4 -4
  46. package/dist/components/Tables/common/locales.d.ts +3 -0
  47. package/dist/components/Tables/common/types.d.ts +2 -0
  48. package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +1 -0
  49. package/dist/composables/date/useDateInitializationDayjs.d.ts +3 -1
  50. package/dist/composables/unifyValidation/documentationValidationProps.d.ts +230 -0
  51. package/dist/composables/unifyValidation/useCustomValidation.d.ts +3 -1
  52. package/dist/composables/unifyValidation/useValidation.d.ts +12 -6
  53. package/dist/composables/unifyValidation/useVuetifyValidation.d.ts +1 -1
  54. package/dist/composables/validation/useValidation.d.ts +6 -1
  55. package/dist/design-system-v3.js +2 -2
  56. package/dist/designTokens/tokens/amelipro/apColors.d.ts +10 -10
  57. package/dist/designTokens/tokens/amelipro/apColors2026.d.ts +1 -2
  58. package/dist/designTokens/tokens/amelipro/apContextual.d.ts +44 -0
  59. package/dist/designTokens/tokens/amelipro/apLightTheme.d.ts +2 -0
  60. package/dist/designTokens/tokens/amelipro/apSemantic.d.ts +1 -1
  61. package/dist/designTokens/tokens/baseColors.d.ts +127 -0
  62. package/dist/designTokens/tokens/baseContextualTokens.d.ts +50 -0
  63. package/dist/designTokens/tokens/cnam/cnamColors.d.ts +10 -10
  64. package/dist/designTokens/tokens/cnam/cnamLightTheme.d.ts +2 -0
  65. package/dist/designTokens/tokens/cnam/cnamSemantic.d.ts +1 -1
  66. package/dist/designTokens/tokens/pa/paColors.d.ts +1 -166
  67. package/dist/designTokens/tokens/pa/paSemantic.d.ts +1 -1
  68. package/dist/designTokens/utils/buildColorClassMap.d.ts +12 -0
  69. package/dist/designTokens/utils/createFlattenTheme.d.ts +1 -3
  70. package/dist/designTokens/utils/index.d.ts +2 -2
  71. package/dist/{main-BtTqyn4z.js → main-BsJ9ec3i.js} +16021 -15715
  72. package/dist/synapse.css +1 -1
  73. package/dist/utils/functions/classToHex.d.ts +1 -1
  74. package/dist/utils/functions/createHexResolver.d.ts +16 -0
  75. package/dist/vuetifyConfig.js +113 -152
  76. package/package.json +35 -23
  77. package/src/assets/amelipro/apTokens2026.scss +5 -5
  78. package/src/assets/overrides/_breakpoints.scss +25 -0
  79. package/src/assets/overrides/_btns.scss +0 -2
  80. package/src/assets/overrides/_forms.scss +1 -3
  81. package/src/assets/overrides/_icons.scss +5 -22
  82. package/src/assets/overrides/_otp.scss +40 -0
  83. package/src/assets/overrides/_tables.scss +11 -20
  84. package/src/assets/overrides/_tooltips.scss +17 -7
  85. package/src/assets/overrides/_typography.scss +35 -37
  86. package/src/assets/overrides/_utilities.scss +43 -47
  87. package/src/assets/themes.scss +1 -0
  88. package/src/components/Accordion/Accordion.vue +2 -0
  89. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/AmeliproAccordionTemplate.vue +20 -20
  90. package/src/components/Amelipro/AmeliproAccordionFrieze/AmeliproAccordionFrieze.vue +12 -14
  91. package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.vue +4 -6
  92. package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/AmeliproAccordionResultTemplate.vue +5 -5
  93. package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.vue +4 -6
  94. package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.vue +4 -6
  95. package/src/components/Amelipro/AmeliproBadge/AmeliproBadge.vue +4 -6
  96. package/src/components/Amelipro/AmeliproBreadcrumb/AmeliproBreadcrumb.vue +1 -3
  97. package/src/components/Amelipro/AmeliproBtn/AmeliproBtn.vue +4 -6
  98. package/src/components/Amelipro/AmeliproCallback/AmeliproCallback.vue +2 -2
  99. package/src/components/Amelipro/AmeliproCard/AmeliproCard.vue +31 -31
  100. package/src/components/Amelipro/AmeliproCarousel/AmeliproCarousel.vue +5 -7
  101. package/src/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.vue +13 -15
  102. package/src/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.vue +23 -23
  103. package/src/components/Amelipro/AmeliproChips/AmeliproChips.vue +1 -3
  104. package/src/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.vue +17 -12
  105. package/src/components/Amelipro/AmeliproClickableTile/tests/__snapshots__/AmeliproClickableTile.spec.ts.snap +2 -2
  106. package/src/components/Amelipro/AmeliproCopyBtn/AmeliproCopyBtn.vue +4 -6
  107. package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.vue +13 -13
  108. package/src/components/Amelipro/AmeliproDentalChart/AmeliproDentalChart.vue +4 -2
  109. package/src/components/Amelipro/AmeliproDentalChart/AmeliproTooth/AmeliproTooth.vue +4 -4
  110. package/src/components/Amelipro/AmeliproDialog/AmeliproDialog.vue +5 -7
  111. package/src/components/Amelipro/AmeliproDisclosure/AmeliproDisclosure.vue +1 -3
  112. package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.vue +2 -4
  113. package/src/components/Amelipro/AmeliproFilePreview/AmeliproFilePreview.vue +4 -6
  114. package/src/components/Amelipro/AmeliproFilters/AmeliproFilters.vue +13 -13
  115. package/src/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.vue +3 -5
  116. package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.vue +1 -3
  117. package/src/components/Amelipro/AmeliproHeader/AmeliproHeader.vue +2 -4
  118. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBar.vue +1 -3
  119. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/AmeliproHeaderBrandSection.vue +20 -16
  120. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/__tests__/__snapshots__/AmeliproHeaderBrandSection.spec.ts.snap +1 -1
  121. package/src/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.vue +2 -4
  122. package/src/components/Amelipro/AmeliproIllustratedDataTile/AmeliproIllustratedDataTile.vue +5 -7
  123. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.vue +6 -8
  124. package/src/components/Amelipro/AmeliproMailTile/AmeliproMailTile.vue +14 -14
  125. package/src/components/Amelipro/AmeliproMenu/AmeliproMenu.vue +11 -13
  126. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproDropdownMenu/AmeliproDropdownMenu.vue +2 -4
  127. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproMessagingLayout.vue +8 -8
  128. package/src/components/Amelipro/AmeliproMultipleFoldingCard/AmeliproMultipleFoldingCard.vue +40 -40
  129. package/src/components/Amelipro/AmeliproNumberedCard/AmeliproNumberedCard.vue +27 -27
  130. package/src/components/Amelipro/AmeliproOnboarding/AmeliproOnboarding.vue +3 -5
  131. package/src/components/Amelipro/AmeliproPageLayout/AmeliproPageLayout.vue +2 -4
  132. package/src/components/Amelipro/AmeliproPagination/AmeliproPagination.vue +2 -4
  133. package/src/components/Amelipro/AmeliproPagination/AmeliproPaginationBtn/AmeliproPaginationBtn.vue +3 -5
  134. package/src/components/Amelipro/AmeliproPatientBanner/AmeliproPatientBanner.vue +1 -3
  135. package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.vue +2 -4
  136. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLogin.vue +4 -4
  137. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLoginForm/AmeliproPatientLoginForm.vue +1 -3
  138. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.vue +3 -5
  139. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.vue +3 -5
  140. package/src/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.vue +23 -23
  141. package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.vue +4 -6
  142. package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.vue +12 -22
  143. package/src/components/Amelipro/AmeliproStateTile/AmeliproStateTile.vue +10 -12
  144. package/src/components/Amelipro/AmeliproStepper/AmeliproStepper.vue +17 -17
  145. package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +8 -10
  146. package/src/components/Amelipro/AmeliproTabs/AmeliproTabBtn/AmeliproTabBtn.vue +6 -8
  147. package/src/components/Amelipro/AmeliproTabs/AmeliproTabs.vue +4 -4
  148. package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.vue +4 -6
  149. package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.vue +7 -9
  150. package/src/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.vue +3 -5
  151. package/src/components/Amelipro/AmeliproTooltips/AmeliproTooltips.vue +0 -2
  152. package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.vue +6 -6
  153. package/src/components/Amelipro/ServiceMenu/ServiceMenu.vue +2 -2
  154. package/src/components/Amelipro/StructureMenu/StructureBtn/StructureBtn.vue +4 -4
  155. package/src/components/Amelipro/StructureMenu/StructureItem/StructureItem.vue +4 -6
  156. package/src/components/Amelipro/StructureMenu/StructureMenu.vue +2 -2
  157. package/src/components/Amelipro/StructureMenu/StructureTabs/StructureTabs.vue +2 -2
  158. package/src/components/Amelipro/UserMenu/UserMenu.vue +1 -3
  159. package/src/components/BackBtn/tests/BackBtn.visual.cy.ts +43 -0
  160. package/src/components/BackBtn/tests/__snapshots__/back-btn-custom-bg.snap.png +0 -0
  161. package/src/components/BackBtn/tests/__snapshots__/back-btn-dark-mode.snap.png +0 -0
  162. package/src/components/BackBtn/tests/__snapshots__/back-btn-default.snap.png +0 -0
  163. package/src/components/BackBtn/tests/__snapshots__/back-btn-no-icon.snap.png +0 -0
  164. package/src/components/Captcha/Captcha.vue +1 -3
  165. package/src/components/ChipList/ChipList.vue +14 -16
  166. package/src/components/CookiesSelection/CookiesInformation/CookiesInformation.vue +2 -3
  167. package/src/components/CookiesSelection/CookiesSelection.vue +2 -1
  168. package/src/components/CopyBtn/CopyBtn.vue +10 -3
  169. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.vue +17 -17
  170. package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.spec.ts +31 -0
  171. package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.stories.ts +66 -0
  172. package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.vue +8 -4
  173. package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.a11y.spec.ts +18 -0
  174. package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.spec.ts +66 -0
  175. package/src/components/Customs/Selects/SyInputSelect/SyInputSelect.vue +4 -6
  176. package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +414 -135
  177. package/src/components/Customs/Selects/SySelect/SySelect.vue +502 -257
  178. package/src/components/Customs/Selects/SySelect/accessibilite/Accessibility.mdx +199 -269
  179. package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +278 -4
  180. package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.vue +3 -3
  181. package/src/components/Customs/SyCheckbox/SyCheckbox.mdx +5 -0
  182. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +52 -2
  183. package/src/components/Customs/SyCheckbox/accessibilite/Accessibility.mdx +18 -3
  184. package/src/components/Customs/SyPagination/SyPagination.vue +0 -2
  185. package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +23 -5
  186. package/src/components/Customs/SyTabs/SyTabs.mdx +0 -58
  187. package/src/components/Customs/SyTabs/SyTabs.stories.ts +34 -35
  188. package/src/components/Customs/SyTabs/SyTabs.vue +87 -67
  189. package/src/components/Customs/SyTabs/accessibilite/Accessibility.mdx +83 -23
  190. package/src/components/Customs/SyTabs/config.ts +3 -3
  191. package/src/components/Customs/SyTabs/tests/SyTabs.a11y.spec.ts +88 -0
  192. package/src/components/Customs/SyTabs/tests/SyTabs.spec.ts +46 -1
  193. package/src/components/Customs/SyTextField/SyTextField.stories.ts +21 -41
  194. package/src/components/Customs/SyTextField/SyTextField.vue +34 -9
  195. package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +1 -1
  196. package/src/components/DatePicker/CalendarMode/DatePicker.vue +29 -28
  197. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +1 -1
  198. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +28 -23
  199. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +24 -1
  200. package/src/components/DatePicker/DatePickerValidationExample/DatePickerValidation.stories.ts +1 -1
  201. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +65 -33
  202. package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +1 -1
  203. package/src/components/DatePicker/composables/tests/useDatePickerState.spec.ts +53 -0
  204. package/src/components/DatePicker/composables/useDatePickerState.ts +56 -13
  205. package/src/components/DatePicker/composables/useDateRangeInput.ts +2 -1
  206. package/src/components/DatePicker/composables/useDateSelection.ts +2 -1
  207. package/src/components/DatePicker/composables/useDateTextField.ts +2 -3
  208. package/src/components/DatePicker/composables/useInputBlurHandler.ts +2 -2
  209. package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +9 -8
  210. package/src/components/DatePicker/playground/DatePickerHolidayRule.vue +1 -1
  211. package/src/components/DatePicker/types.ts +1 -2
  212. package/src/components/DialogBox/DialogBox.stories.ts +8 -8
  213. package/src/components/DialogBox/DialogBox.vue +3 -5
  214. package/src/components/DialogBox/accessibilite/Accessibility.mdx +86 -22
  215. package/src/components/DialogBox/tests/DialogBox.visual.cy.ts +76 -0
  216. package/src/components/DialogBox/tests/__snapshots__/dialog-box-custom-texts.snap.png +0 -0
  217. package/src/components/DialogBox/tests/__snapshots__/dialog-box-default.snap.png +0 -0
  218. package/src/components/DialogBox/tests/__snapshots__/dialog-box-no-actions.snap.png +0 -0
  219. package/src/components/FileList/FileList.vue +9 -2
  220. package/src/components/FileList/UploadItem/UploadItem.vue +11 -13
  221. package/src/components/FileList/tests/FileList.spec.ts +47 -0
  222. package/src/components/FileUpload/FileUpload.vue +3 -5
  223. package/src/components/FileUpload/FileUploadContent.vue +3 -5
  224. package/src/components/FilterInline/FilterInline.vue +1 -3
  225. package/src/components/FilterSideBar/FilterSideBar.mdx +44 -1
  226. package/src/components/FilterSideBar/FilterSideBar.stories.ts +105 -1
  227. package/src/components/FilterSideBar/FilterSideBar.vue +9 -1
  228. package/src/components/FilterSideBar/tests/FilterSideBar.a11y.spec.ts +54 -1
  229. package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +42 -0
  230. package/src/components/FooterBar/FooterBar.vue +9 -13
  231. package/src/components/FranceConnectBtn/FranceConnectBtn.vue +1 -1
  232. package/src/components/HeaderBar/HeaderBar.vue +2 -3
  233. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderBurgerMenu.vue +2 -3
  234. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/HeaderMenuItem.vue +2 -3
  235. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuSection/HeaderMenuSection.vue +0 -1
  236. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.vue +8 -9
  237. package/src/components/HeaderBar/HeaderBurgerMenu/menu.scss +0 -8
  238. package/src/components/HeaderBar/HeaderBurgerMenu/tests/HeaderBurgerMenu.visual.cy.ts +196 -0
  239. package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/header-burger-menu-generated-submenu-open.snap.png +0 -0
  240. package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/header-burger-menu-generated.snap.png +0 -0
  241. package/src/components/HeaderBar/HeaderLogo/HeaderLogo.vue +0 -1
  242. package/src/components/HeaderBar/HeaderMenuBtn/HeaderMenuBtn.vue +6 -7
  243. package/src/components/HeaderBar/tests/HeaderBar.visual.cy.ts +81 -0
  244. package/src/components/HeaderBar/tests/__snapshots__/header-bar-custom-width.snap.png +0 -0
  245. package/src/components/HeaderBar/tests/__snapshots__/header-bar-default.snap.png +0 -0
  246. package/src/components/HeaderBar/tests/__snapshots__/header-bar-no-sticky.snap.png +0 -0
  247. package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-prepend.snap.png +0 -0
  248. package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-side.snap.png +0 -0
  249. package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-subtitle.snap.png +0 -0
  250. package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +12 -3
  251. package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +15 -8
  252. package/src/components/HeaderToolbar/HeaderToolbar.vue +6 -7
  253. package/src/components/LangBtn/LangBtn.vue +4 -5
  254. package/src/components/Logo/tests/Logo.visual.cy.ts +57 -0
  255. package/src/components/Logo/tests/__snapshots__/logo-avatar.snap.png +0 -0
  256. package/src/components/Logo/tests/__snapshots__/logo-dark.snap.png +0 -0
  257. package/src/components/Logo/tests/__snapshots__/logo-default.snap.png +0 -0
  258. package/src/components/Logo/tests/__snapshots__/logo-no-organism.snap.png +0 -0
  259. package/src/components/Logo/tests/__snapshots__/logo-no-signature.snap.png +0 -0
  260. package/src/components/Logo/tests/__snapshots__/logo-risque-pro.snap.png +0 -0
  261. package/src/components/LogoBrandSection/LogoBrandSection.vue +2 -2
  262. package/src/components/MonthPicker/MonthPickerVisual/VisualPickerHeader.vue +1 -1
  263. package/src/components/NirField/NirField.stories.ts +2 -2
  264. package/src/components/NirField/NirField.vue +3 -5
  265. package/src/components/NirField/accessibilite/Accessibility.mdx +100 -5
  266. package/src/components/NirField/tests/NirField.spec.ts +118 -0
  267. package/src/components/NirField/tests/useNirValidation.spec.ts +449 -0
  268. package/src/components/NirField/useNirValidation.ts +38 -32
  269. package/src/components/NotificationBar/Notification/Notification.vue +7 -9
  270. package/src/components/NotificationBar/NotificationBar.vue +1 -3
  271. package/src/components/PaginatedTable/PaginatedTable.vue +3 -4
  272. package/src/components/PaginatedTable/Pagination.vue +4 -6
  273. package/src/components/PasswordField/PasswordField.vue +15 -13
  274. package/src/components/PhoneField/PhoneField.vue +7 -5
  275. package/src/components/RangeField/RangeSlider/RangeSlider.vue +11 -20
  276. package/src/components/RangeField/RangeSlider/Tooltip/Tooltip.vue +1 -1
  277. package/src/components/RangeField/tests/RangeField.visual.cy.ts +65 -0
  278. package/src/components/RangeField/tests/__snapshots__/range-field-custom-bg.snap.png +0 -0
  279. package/src/components/RangeField/tests/__snapshots__/range-field-custom-range.snap.png +0 -0
  280. package/src/components/RangeField/tests/__snapshots__/range-field-default.snap.png +0 -0
  281. package/src/components/RangeField/tests/__snapshots__/range-field-step.snap.png +0 -0
  282. package/src/components/RangeField/tests/__snapshots__/range-field-with-label.snap.png +0 -0
  283. package/src/components/RatingPicker/EmotionPicker/EmotionPicker.vue +38 -56
  284. package/src/components/RatingPicker/EmotionPicker/tests/__snapshots__/EmotionPicker.spec.ts.snap +5 -0
  285. package/src/components/RatingPicker/NumberPicker/NumberPicker.vue +48 -53
  286. package/src/components/RatingPicker/NumberPicker/tests/NumberPicker.spec.ts +2 -1
  287. package/src/components/RatingPicker/NumberPicker/tests/__snapshots__/NumberPicker.spec.ts.snap +40 -13
  288. package/src/components/RatingPicker/RatingPicker.stories.ts +65 -88
  289. package/src/components/RatingPicker/RatingPicker.vue +71 -15
  290. package/src/components/RatingPicker/StarsPicker/StarsPicker.vue +31 -42
  291. package/src/components/RatingPicker/StarsPicker/tests/StarsPicker.spec.ts +1 -1
  292. package/src/components/RatingPicker/StarsPicker/tests/__snapshots__/StarsPicker.spec.ts.snap +5 -0
  293. package/src/components/RatingPicker/accessibilite/Accessibility.mdx +137 -9
  294. package/src/components/RatingPicker/tests/RatingPicker.a11y.spect.ts +123 -0
  295. package/src/components/RatingPicker/tests/RatingPicker.spec.ts +3 -2
  296. package/src/components/RatingPicker/tests/__snapshots__/RatingPicker.spec.ts.snap +40 -11
  297. package/src/components/RatingPicker/useRatingFocus.ts +97 -0
  298. package/src/components/SearchListField/SearchListField.vue +0 -2
  299. package/src/components/SkipLink/SkipLink.vue +2 -4
  300. package/src/components/SocialMediaLinks/SocialMediaLinks.vue +6 -6
  301. package/src/components/SubHeader/SubHeader.vue +1 -1
  302. package/src/components/SyAlert/SyAlert.vue +7 -9
  303. package/src/components/SyAlert/tests/SyAlert.visual.cy.ts +46 -0
  304. package/src/components/SyAlert/tests/__snapshots__/sy-alert-closable.snap.png +0 -0
  305. package/src/components/SyAlert/tests/__snapshots__/sy-alert-error.snap.png +0 -0
  306. package/src/components/SyAlert/tests/__snapshots__/sy-alert-info.snap.png +0 -0
  307. package/src/components/SyAlert/tests/__snapshots__/sy-alert-success.snap.png +0 -0
  308. package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-outlined.snap.png +0 -0
  309. package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-tonal.snap.png +0 -0
  310. package/src/components/SyAlert/tests/__snapshots__/sy-alert-warning.snap.png +0 -0
  311. package/src/components/SyBtnMenu/SyBtnMenu.vue +2 -4
  312. package/src/components/SyTextArea/SyTextArea.vue +32 -1
  313. package/src/components/TableToolbar/TableToolbar.vue +6 -8
  314. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +166 -0
  315. package/src/components/Tables/SyServerTable/SyServerTable.vue +10 -8
  316. package/src/components/Tables/SyServerTable/tests/SyServerTable.a11y.spec.ts +23 -0
  317. package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +268 -0
  318. package/src/components/Tables/SyTable/SyTable.stories.ts +104 -0
  319. package/src/components/Tables/SyTable/SyTable.vue +10 -8
  320. package/src/components/Tables/SyTable/tests/SyTable.a11y.spec.ts +22 -0
  321. package/src/components/Tables/SyTable/tests/SyTable.spec.ts +274 -0
  322. package/src/components/Tables/common/SyTableFilter.vue +31 -6
  323. package/src/components/Tables/common/SyTablePagination.vue +143 -19
  324. package/src/components/Tables/common/TableHeader.vue +41 -4
  325. package/src/components/Tables/common/filters/DateFilter.vue +2 -2
  326. package/src/components/Tables/common/filters/SelectFilter.vue +1 -1
  327. package/src/components/Tables/common/locales.ts +3 -0
  328. package/src/components/Tables/common/tableStyles.scss +16 -19
  329. package/src/components/Tables/common/tests/SyTablePagination.spec.ts +18 -0
  330. package/src/components/Tables/common/tests/TableHeader.spec.ts +39 -0
  331. package/src/components/Tables/common/types.ts +2 -0
  332. package/src/components/Tables/common/useTableHeaders.ts +49 -27
  333. package/src/components/UploadWorkflow/UploadWorkflow.vue +1 -0
  334. package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +23 -0
  335. package/src/components/UploadWorkflow/tests/__snapshots__/UploadWorkflow.spec.ts.snap +66 -0
  336. package/src/components/UploadWorkflow/useFileList.ts +3 -0
  337. package/src/components/UserMenuBtn/UserMenuBtn.vue +1 -3
  338. package/src/composables/date/tests/useDateFormatDayjs.spec.ts +81 -0
  339. package/src/composables/date/tests/{useDateInitialization.spec.ts → useDateInitializationDayjs.spec.ts} +39 -3
  340. package/src/composables/date/useDateInitializationDayjs.ts +4 -1
  341. package/src/composables/unifyValidation/documentationValidationProps.ts +235 -0
  342. package/src/composables/unifyValidation/tests/useCustomValidation.spec.ts +2 -1
  343. package/src/composables/unifyValidation/tests/useValidation.spec.ts +22 -0
  344. package/src/composables/unifyValidation/useCustomValidation.ts +16 -4
  345. package/src/composables/unifyValidation/useValidation.ts +46 -15
  346. package/src/composables/unifyValidation/useVuetifyValidation.ts +2 -2
  347. package/src/composables/useFormFieldErrorHandling.ts +4 -1
  348. package/src/composables/validation/tests/useValidation.spec.ts +2 -2
  349. package/src/composables/validation/useValidation.ts +32 -4
  350. package/src/composantsVuetify/VBreadcrumbs/VBreadcrumbs.mdx +28 -0
  351. package/src/composantsVuetify/VBreadcrumbs/v-breadcrumbs.stories.ts +108 -0
  352. package/src/composantsVuetify/VCard/VCard.mdx +59 -0
  353. package/src/composantsVuetify/VCard/v-card.stories.ts +279 -0
  354. package/src/composantsVuetify/VOtpInput/VOtpInput.mdx +39 -0
  355. package/src/composantsVuetify/VOtpInput/v-otp-input.stories.ts +56 -0
  356. package/src/composantsVuetify/VSkeletonLoader/VSkeletonLoader.mdx +42 -0
  357. package/src/composantsVuetify/VSkeletonLoader/v-skeleton-loader.stories.ts +77 -0
  358. package/src/composantsVuetify/VSwitch/VSwitch.mdx +47 -0
  359. package/src/composantsVuetify/VSwitch/v-switch.stories.ts +166 -0
  360. package/src/designTokens/tests/buildColorClassMap.spec.ts +31 -0
  361. package/src/designTokens/tests/generateScssTokens.spec.ts +12 -0
  362. package/src/designTokens/tests/themeUtils.spec.ts +53 -0
  363. package/src/designTokens/tokens/amelipro/apColors.ts +8 -130
  364. package/src/designTokens/tokens/amelipro/apColors2026.ts +3 -15
  365. package/src/designTokens/tokens/amelipro/apContextual.ts +55 -47
  366. package/src/designTokens/tokens/amelipro/apLightTheme.ts +4 -1
  367. package/src/designTokens/tokens/amelipro/apSemantic.ts +1 -1
  368. package/src/designTokens/tokens/baseColors.ts +129 -0
  369. package/src/designTokens/tokens/baseContextualTokens.ts +52 -0
  370. package/src/designTokens/tokens/cnam/cnamColors.ts +3 -125
  371. package/src/designTokens/tokens/cnam/cnamContextual.ts +4 -48
  372. package/src/designTokens/tokens/cnam/cnamLightTheme.ts +4 -1
  373. package/src/designTokens/tokens/cnam/cnamSemantic.ts +1 -1
  374. package/src/designTokens/tokens/pa/paColors.ts +2 -166
  375. package/src/designTokens/tokens/pa/paContextual.ts +3 -48
  376. package/src/designTokens/tokens/pa/paLightTheme.ts +1 -1
  377. package/src/designTokens/tokens/pa/paSemantic.ts +2 -2
  378. package/src/designTokens/utils/buildColorClassMap.ts +34 -0
  379. package/src/designTokens/utils/convertSemanticsToken.ts +8 -11
  380. package/src/designTokens/utils/createFlattenTheme.ts +15 -7
  381. package/src/designTokens/utils/index.ts +2 -2
  382. package/src/stories/Accessibilite/Aculturation/SensibilisationAccessibilite.mdx +61 -91
  383. package/src/stories/Accessibilite/AuditDesignSystem.mdx +5 -19
  384. package/src/stories/Accessibilite/AuditEtContreAudit/Exemptions-derogations.mdx +1 -1
  385. package/src/stories/Accessibilite/AuditEtContreAudit/Introduction.mdx +11 -8
  386. package/src/stories/Accessibilite/AuditEtContreAudit/RGAA.mdx +6 -7
  387. package/src/stories/Accessibilite/DesignSystem/Avancement.mdx +433 -0
  388. package/src/stories/Accessibilite/DesignSystem/a11y-status.json +692 -0
  389. package/src/stories/Accessibilite/Introduction.mdx +30 -30
  390. package/src/stories/Accessibilite/KitDePreAudit/Echantillonnage.mdx +176 -79
  391. package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +67 -19
  392. package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +78 -50
  393. package/src/stories/Accessibilite/KitDePreAudit/Outils/LecteursDEcran.mdx +23 -49
  394. package/src/stories/Accessibilite/KitDePreAudit/Outils/Tanaguru/FauxPositifs.stories.ts +6 -0
  395. package/src/stories/Accessibilite/KitDePreAudit/Outils/Tanaguru/Utilisation.mdx +7 -19
  396. package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +55 -67
  397. package/src/stories/Components/Components.stories.ts +92 -4
  398. package/src/stories/Demarrer/EnrichirLeDesignSystem.mdx +4 -9
  399. package/src/stories/Demarrer/EnrichirLeDesignSystem.stories.ts +28 -0
  400. package/src/stories/Demarrer/Releases.stories.ts +48 -5
  401. package/src/stories/DesignTokens/ColorDisplay.vue +6 -5
  402. package/src/stories/DesignTokens/ColorIntegrationExample.vue +2 -4
  403. package/src/stories/DesignTokens/colors.stories.ts +5 -6
  404. package/src/stories/GuideDuDev/CreateVuetifyInstance.mdx +95 -0
  405. package/src/stories/GuideDuDev/Theme.mdx +36 -26
  406. package/src/stories/GuideDuDev/moduleDeNotification.mdx +3 -2
  407. package/src/stories/styles/accessibility-guide.css +3 -3
  408. package/src/utils/functions/classToHex.ts +6 -34
  409. package/src/utils/functions/createHexResolver.ts +45 -0
  410. package/src/utils/functions/tests/classToHex.spec.ts +36 -0
  411. package/src/utils/functions/tests/convertToHex.spec.ts +31 -0
  412. package/src/utils/functions/tests/createHexResolver.spec.ts +66 -0
  413. package/src/utils/functions/tests/isCssColor.spec.ts +48 -0
  414. package/dist/AutocompleteFilter-D9jzRzAL.cjs +0 -1
  415. package/dist/DateFilter-DTUl8hb1.cjs +0 -1
  416. package/dist/NumberFilter-MAEojdk0.cjs +0 -1
  417. package/dist/PeriodFilter-CC4WgIhl.cjs +0 -1
  418. package/dist/SelectFilter-BR3fvl-a.cjs +0 -1
  419. package/dist/TextFilter-CCfYFl5F.cjs +0 -1
  420. package/dist/apLightTheme-CFSRrjv2.cjs +0 -1
  421. package/dist/composables/date/useDateFormat.d.ts +0 -26
  422. package/dist/composables/date/useDateInitialization.d.ts +0 -18
  423. package/dist/design-system-v3.umd.cjs +0 -1
  424. package/dist/designTokens/utils/convertGaps.d.ts +0 -5
  425. package/dist/main-C1e3eoxd.cjs +0 -1067
  426. package/dist/tooth-11-D3sLWv2n.cjs +0 -1
  427. package/dist/tooth-12-CXrLuH03.cjs +0 -1
  428. package/dist/tooth-13-BSfo5fpT.cjs +0 -1
  429. package/dist/tooth-14-DMzulx0h.cjs +0 -1
  430. package/dist/tooth-15-BKRFVi-9.cjs +0 -1
  431. package/dist/tooth-16-CpuxAbuM.cjs +0 -1
  432. package/dist/tooth-17-BPoahUdg.cjs +0 -1
  433. package/dist/tooth-18-DhHJz8sy.cjs +0 -1
  434. package/dist/tooth-21-Dgd5hn_X.cjs +0 -1
  435. package/dist/tooth-22-C2Tn19sB.cjs +0 -1
  436. package/dist/tooth-23-C9uaaSGb.cjs +0 -1
  437. package/dist/tooth-24-BrK9UGpf.cjs +0 -1
  438. package/dist/tooth-25-CE_EfGNp.cjs +0 -1
  439. package/dist/tooth-26-Ctv4i9Fy.cjs +0 -1
  440. package/dist/tooth-27-C5J7JkWM.cjs +0 -1
  441. package/dist/tooth-28-Z9oWqjo0.cjs +0 -1
  442. package/dist/tooth-31-BrYqmkTi.cjs +0 -1
  443. package/dist/tooth-32-BNNR0oCZ.cjs +0 -1
  444. package/dist/tooth-33-DuxvqO2J.cjs +0 -1
  445. package/dist/tooth-34-BCSCXMB6.cjs +0 -1
  446. package/dist/tooth-35-BLUXkX88.cjs +0 -1
  447. package/dist/tooth-36-IrKHYqlA.cjs +0 -1
  448. package/dist/tooth-37-BYqpdMwo.cjs +0 -1
  449. package/dist/tooth-38-B_eNXXdu.cjs +0 -1
  450. package/dist/tooth-41-Ddva4Ot8.cjs +0 -1
  451. package/dist/tooth-42-szcDqlM0.cjs +0 -1
  452. package/dist/tooth-43-B3ka6rQm.cjs +0 -1
  453. package/dist/tooth-44-CazyQucj.cjs +0 -1
  454. package/dist/tooth-45-B4HQtc8n.cjs +0 -1
  455. package/dist/tooth-46-BPM40gbG.cjs +0 -1
  456. package/dist/tooth-47-Dvr20dlh.cjs +0 -1
  457. package/dist/tooth-48-Bd8ljGsF.cjs +0 -1
  458. package/dist/tooth-51-OBpwCOF3.cjs +0 -1
  459. package/dist/tooth-52-aKxyHcmq.cjs +0 -1
  460. package/dist/tooth-53-vCwJjTOc.cjs +0 -1
  461. package/dist/tooth-54-DsWu2iFy.cjs +0 -1
  462. package/dist/tooth-55-BxC1X2Dn.cjs +0 -1
  463. package/dist/tooth-61-BbLvxMQi.cjs +0 -1
  464. package/dist/tooth-62-CmTkWczP.cjs +0 -1
  465. package/dist/tooth-63-DI7l_2qI.cjs +0 -1
  466. package/dist/tooth-64-B21sOsJh.cjs +0 -1
  467. package/dist/tooth-65-D2ZC2VEr.cjs +0 -1
  468. package/dist/tooth-71-D473PPO5.cjs +0 -1
  469. package/dist/tooth-72-Drh1wnNu.cjs +0 -1
  470. package/dist/tooth-73-DzlwYI23.cjs +0 -1
  471. package/dist/tooth-74-8aGvcZPg.cjs +0 -1
  472. package/dist/tooth-75-BFK7At_r.cjs +0 -1
  473. package/dist/tooth-81-BZmR-I0M.cjs +0 -1
  474. package/dist/tooth-82-euVfUUZV.cjs +0 -1
  475. package/dist/tooth-83-KV010j64.cjs +0 -1
  476. package/dist/tooth-84-BBg1RjhZ.cjs +0 -1
  477. package/dist/tooth-85-Cr-kc1wM.cjs +0 -1
  478. package/dist/vuetifyConfig.umd.cjs +0 -1
  479. package/src/assets/apTokens.scss +0 -343
  480. package/src/assets/overrides/_container.scss +0 -36
  481. package/src/assets/tokens.scss +0 -388
  482. package/src/composables/date/tests/useDateFormat.spec.ts +0 -67
  483. package/src/composables/date/useDateFormat.ts +0 -110
  484. package/src/composables/date/useDateInitialization.ts +0 -92
  485. package/src/designTokens/apColors.md +0 -66
  486. package/src/designTokens/cnamColors.md +0 -193
  487. package/src/designTokens/paColors.md +0 -66
  488. package/src/designTokens/tokens/json/contextual-tokens.json +0 -156
  489. package/src/designTokens/tokens/json/primitives.json +0 -209
  490. package/src/designTokens/tokens/json/semantic.json +0 -120
  491. package/src/designTokens/utils/convertGaps.ts +0 -11
  492. package/src/stories/Accessibilite/Avancement/Avancement.mdx +0 -533
  493. package/src/stories/Accessibilite/Avancement/Avancement.stories.ts +0 -306
@@ -14,7 +14,7 @@ export const paSemanticTokens = {
14
14
  info: paColorsTokens.blue.lighten80,
15
15
  infoSubdued: paColorsTokens.blue.lighten90,
16
16
  infoContrasted: paColorsTokens.blue.base,
17
- success: paColorsTokens.orange.darken40,
17
+ success: paColorsTokens.turquoise.lighten80,
18
18
  successSubdued: paColorsTokens.turquoise.lighten90,
19
19
  successContrasted: paColorsTokens.green.base,
20
20
  warning: paColorsTokens.yellow.lighten80,
@@ -87,7 +87,7 @@ export const paSemanticTokens = {
87
87
  selectionPressed: paColorsTokens.blue.lighten80,
88
88
  selectionSelected: paColorsTokens.blue.lighten90,
89
89
  selectionHoverOnSelected: paColorsTokens.blue.lighten80,
90
- selectionselectedAccent: paColorsTokens.blue.base,
90
+ selectionSelectedAccent: paColorsTokens.blue.base,
91
91
  selectionHoverOnSelectedAccent: paColorsTokens.blue.lighten20,
92
92
  selectionDisabled: paColorsTokens.white.base,
93
93
  },
@@ -0,0 +1,34 @@
1
+ function toKebabCase(value: string): string {
2
+ return value
3
+ .replace(/([a-z0-9])([A-Z])/g, '$1-$2')
4
+ .replace(/([a-zA-Z])(\d)/g, '$1-$2')
5
+ .replace(/_/g, '-')
6
+ .toLowerCase()
7
+ }
8
+
9
+ /**
10
+ * Generates a flat class-name → hex value map from a color token object.
11
+ *
12
+ * Example:
13
+ * { apBlue: { base: '#0C419A', darken1: '#00749C' } }
14
+ * →
15
+ * { 'ap-blue': '#0c419a', 'ap-blue-darken-1': '#00749c' }
16
+ *
17
+ * The 'base' variation is dropped from the class name (e.g. apBlue.base → ap-blue).
18
+ * Numeric suffixes in variation names are separated with a dash (darken1 → darken-1).
19
+ */
20
+ export function buildColorClassMap<T extends Record<string, Record<string, string>>>(tokens: T): Record<string, string> {
21
+ const map: Record<string, string> = {}
22
+
23
+ for (const [colorName, colorValues] of Object.entries(tokens)) {
24
+ for (const [variationName, colorValue] of Object.entries(colorValues)) {
25
+ const rawClass = `${colorName}-${variationName}`
26
+ .replace(/(\d+)/, '-$1')
27
+ .replace('-base', '')
28
+
29
+ map[toKebabCase(rawClass)] = colorValue.toLowerCase()
30
+ }
31
+ }
32
+
33
+ return map
34
+ }
@@ -14,19 +14,16 @@ type ThemeVariables = {
14
14
  export const generateThemeVariables = (tokens: Tokens): ThemeVariables => {
15
15
  const themeVariables: ThemeVariables = {}
16
16
 
17
- // Parcourir les catégories de couleurs
18
- for (const category in tokens.colors) {
19
- if (Object.prototype.hasOwnProperty.call(tokens.colors, category)) {
20
- const categoryTokens = tokens.colors[category]
21
-
22
- // Parcourir les tokens de chaque catégorie
23
- for (const token in categoryTokens) {
24
- if (Object.prototype.hasOwnProperty.call(categoryTokens, token)) {
25
- const variableName = `on${category.charAt(0).toUpperCase() + category.slice(1)}${token.charAt(0).toUpperCase() + token.slice(1)}`
26
- themeVariables[variableName] = categoryTokens[token]!
27
- }
17
+ for (const [category, categoryTokens] of Object.entries(tokens.colors)) {
18
+ for (const [token, tokenValue] of Object.entries(categoryTokens)) {
19
+ if (tokenValue === undefined) {
20
+ throw new Error(`Missing semantic token "${token}" in category "${category}"`)
28
21
  }
22
+
23
+ const variableName = `on${category.charAt(0).toUpperCase() + category.slice(1)}${token.charAt(0).toUpperCase() + token.slice(1)}`
24
+ themeVariables[variableName] = tokenValue
29
25
  }
30
26
  }
27
+
31
28
  return themeVariables
32
29
  }
@@ -1,19 +1,27 @@
1
1
  type Theme = { [key: string]: string | number | Theme }
2
2
 
3
- export const createFlattenTheme = (theme: Theme) => {
4
- const result: { [key: string]: string | number } = {}
3
+ const isThemeBranch = (value: string | number | Theme): value is Theme =>
4
+ typeof value === 'object' && value !== null
5
+
6
+ export const createFlattenTheme = (theme: Theme): Record<string, string | number> => {
7
+ const result: Record<string, string | number> = {}
5
8
  const flatten = (obj: Theme, prefix = '') => {
6
- for (const key in obj) {
7
- const value = obj[key]
9
+ for (const [key, value] of Object.entries(obj)) {
8
10
  const newKey: string = prefix ? `${prefix}-${key}` : key
9
- if (typeof value === 'object' && value !== null) {
10
- flatten(value as Theme, newKey)
11
+
12
+ if (value === undefined) {
13
+ throw new Error(`Missing theme value for key "${newKey}"`)
14
+ }
15
+
16
+ if (isThemeBranch(value)) {
17
+ flatten(value, newKey)
11
18
  }
12
19
  else {
13
- result[newKey] = value!
20
+ result[newKey] = value
14
21
  }
15
22
  }
16
23
  }
24
+
17
25
  flatten(theme)
18
26
  return result
19
27
  }
@@ -1,5 +1,5 @@
1
1
  import { createFlattenTheme } from './createFlattenTheme'
2
- import { convertGaps } from './convertGaps'
3
2
  import { createFontVariables } from './createFontVariables'
3
+ import { buildColorClassMap } from './buildColorClassMap'
4
4
 
5
- export { createFlattenTheme, convertGaps, createFontVariables }
5
+ export { createFlattenTheme, createFontVariables, buildColorClassMap }
@@ -21,9 +21,6 @@ import '../../styles/shared.css';
21
21
  --neutral-600: #6e6e6e;
22
22
  --neutral-700: #3d3d3d;
23
23
  --neutral-800: #1f1f1f;
24
- --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.05);
25
- --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08);
26
- --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.12);
27
24
  --radius-sm: 6px;
28
25
  --radius-md: 8px;
29
26
  --radius-lg: 12px;
@@ -33,13 +30,9 @@ import '../../styles/shared.css';
33
30
 
34
31
 
35
32
  .section {
36
- margin: 2.5rem 0;
37
- padding: 2rem;
33
+ padding: 1rem;
38
34
  background-color: var(--neutral-100);
39
- border-radius: var(--radius-md);
40
- box-shadow: var(--shadow-sm);
41
35
  transition: var(--transition);
42
- border: 1px solid var(--neutral-300);
43
36
  }
44
37
 
45
38
  .section h2 {
@@ -48,6 +41,7 @@ import '../../styles/shared.css';
48
41
  margin-top: 0;
49
42
  color: var(--primary);
50
43
  font-weight: 700;
44
+ font-size: 1.5rem;
51
45
  display: flex;
52
46
  align-items: center;
53
47
  gap: 0.5rem;
@@ -60,9 +54,16 @@ import '../../styles/shared.css';
60
54
  left: 0;
61
55
  width: 60px;
62
56
  height: 3px;
63
-
64
57
  border-radius: 3px;
65
58
  }
59
+
60
+ h3 {
61
+ font-size: 1.25rem;
62
+ font-weight: 700;
63
+ color: var(--primary);
64
+ margin-top: 1.5rem;
65
+ margin-bottom: 1rem;
66
+ }
66
67
 
67
68
  .alert {
68
69
  background-color: var(--secondary-light);
@@ -87,7 +88,7 @@ import '../../styles/shared.css';
87
88
 
88
89
  .highlight {
89
90
  background-color: var(--primary-light);
90
- padding: 0.2rem 0.5rem;
91
+ padding: 2rem 0.7rem;
91
92
  border-radius: 4px;
92
93
  font-weight: 500;
93
94
  color: var(--primary-dark);
@@ -141,6 +142,7 @@ import '../../styles/shared.css';
141
142
  color: var(--primary);
142
143
  margin-top: 0;
143
144
  font-size: 1.2rem;
145
+ font-weight: bold;
144
146
  display: flex;
145
147
  align-items: center;
146
148
  gap: 0.5rem;
@@ -210,38 +212,66 @@ import '../../styles/shared.css';
210
212
  }
211
213
 
212
214
  .cta-box {
213
- background: linear-gradient(135deg, var(--primary-light) 0%, rgba(0, 99, 134, 0.1) 100%);
214
215
  border-radius: var(--radius-md);
215
- padding: 1.75rem;
216
+ padding: 2rem 2.5rem;
216
217
  margin: 2rem 0;
217
- border: 1px solid var(--primary-light);
218
- text-align: center;
218
+ text-align: left;
219
219
  }
220
220
 
221
221
  .cta-box h3 {
222
222
  margin-top: 0;
223
+ margin-bottom: 1rem;
223
224
  color: var(--primary);
225
+ font-size: 1.2rem;
226
+ }
227
+
228
+ .cta-box > p {
229
+ margin-bottom: 1.5rem;
230
+ color: #3d3d3d;
224
231
  }
225
232
 
226
233
  .cta-box .button {
227
234
  display: inline-block;
228
235
  background-color: var(--primary);
229
- color: white;
230
- padding: 0.75rem 1.5rem;
236
+ color: white !important;
237
+ padding: 0.75rem 2rem;
231
238
  border-radius: var(--radius-sm);
232
- font-weight: 500;
233
- margin-top: 1rem;
239
+ font-weight: 600;
240
+ margin-top: 1.5rem;
241
+ text-decoration: none;
234
242
  transition: var(--transition);
235
243
  }
236
244
 
245
+ .cta-box .button:hover {
246
+ background-color: #093080;
247
+ text-decoration: none;
248
+ }
249
+
237
250
  .cta-list {
238
- text-align: center;
251
+ list-style: none;
252
+ padding: 0;
253
+ margin: 0;
254
+ counter-reset: step-counter;
239
255
  }
240
256
 
241
257
  .cta-list li {
242
- text-align: center;
243
- display: block;
258
+ display: flex;
259
+ align-items: flex-start;
260
+ gap: 0.75rem;
244
261
  margin-bottom: 0.75rem;
262
+ font-size: 0.95rem;
263
+ color: #3d3d3d;
264
+ padding: 0.6rem 1rem;
265
+ background-color: #fff;
266
+ border-radius: 6px;
267
+ }
268
+
269
+ h3 {
270
+ font-size: 1.25rem;
271
+ font-weight: bold !important;
272
+ color: var(--primary) !important;
273
+ margin-top: 1.5rem;
274
+ margin-bottom: 1rem;
245
275
  }
246
276
  `
247
277
  }
@@ -253,7 +283,7 @@ import '../../styles/shared.css';
253
283
  </div>
254
284
 
255
285
  <div className="section">
256
- <h2>👥 L'accessibilité concerne tout le monde</h2>
286
+ <h2>L'accessibilité concerne tout le monde</h2>
257
287
 
258
288
  <div className="info-box">
259
289
  <p><strong>La CNAM doit respecter le <abbr title="Référentiel Général d'Amélioration de l'Accessibilité">RGAA</abbr></strong></p>
@@ -266,22 +296,22 @@ import '../../styles/shared.css';
266
296
 
267
297
  <div className="disability-types">
268
298
  <div className="feature-card">
269
- <strong>👁️ Handicaps visuels</strong>
299
+ <strong>Handicaps visuels</strong>
270
300
  <p>Personnes aveugles ou malvoyantes qui utilisent des lecteurs d'écran ou des paramètres d'affichage spécifiques.</p>
271
301
  </div>
272
302
 
273
303
  <div className="feature-card">
274
- <strong>👂 Handicaps auditifs</strong>
304
+ <strong>Handicaps auditifs</strong>
275
305
  <p>Personnes sourdes ou malentendantes qui ont besoin de sous-titres ou d'alternatives textuelles pour les contenus audio.</p>
276
306
  </div>
277
307
 
278
308
  <div className="feature-card">
279
- <strong>🦶 Handicaps moteurs</strong>
309
+ <strong>Handicaps moteurs</strong>
280
310
  <p>Personnes ayant des difficultés à se mouvoir qui utilisent des dispositifs d'assistance ou la navigation au clavier.</p>
281
311
  </div>
282
312
 
283
313
  <div className="feature-card">
284
- <strong>🧠 Handicaps cognitifs</strong>
314
+ <strong>Handicaps cognitifs</strong>
285
315
  <p>Personnes avec des troubles de l'apprentissage ou des troubles psychiques qui bénéficient d'interfaces simplifiées.</p>
286
316
  </div>
287
317
  </div>
@@ -290,7 +320,7 @@ import '../../styles/shared.css';
290
320
  </div>
291
321
 
292
322
  <div className="section">
293
- <h2>👨‍👩‍👧‍👦 Nos utilisateurs sont concernés</h2>
323
+ <h2>Nos utilisateurs sont concernés</h2>
294
324
 
295
325
  <p>Nos outils s'adressent à tous (assurés, agents, professionnels de santé), une partie significative de nos utilisateurs sont donc concernés par les enjeux d'accessibilité.</p>
296
326
 
@@ -302,86 +332,26 @@ import '../../styles/shared.css';
302
332
 
303
333
  <div className="feature-list">
304
334
  <div className="feature-card">
305
- <h3>♿ Situation contextuelle</h3>
335
+ <h3>Situation contextuelle</h3>
306
336
  <p>Une personne en fauteuil roulant n'est pas en situation de handicap dans un environnement pleinement accessible.</p>
307
337
  </div>
308
338
 
309
339
  <div className="feature-card">
310
- <h3>👨‍👩‍👧 Handicap invisible</h3>
340
+ <h3>Handicap invisible</h3>
311
341
  <p>Certaines personnes peuvent ne pas se considérer comme handicapées même si elles rencontrent des difficultés.</p>
312
342
  </div>
313
343
 
314
344
  <div className="feature-card">
315
- <h3>🕐 Handicap temporaire</h3>
345
+ <h3>Handicap temporaire</h3>
316
346
  <p>Tous nos utilisateurs peuvent être concernés par des situations de handicap temporaires (bras cassé, fatigue visuelle...).</p>
317
347
  </div>
318
348
  </div>
319
349
 
320
350
  <div className="resource-links">
321
- <h3>👀 Tester la navigation du point de vue des utilisateurs en situation de handicap</h3>
351
+ <h3>Tester la navigation du point de vue des utilisateurs en situation de handicap</h3>
322
352
  <ul>
323
353
  <li><a href="https://www.atalan.fr/agissons/fr/daltonisme.html" target="_blank">Atalan Simulateur</a> - Simulateur de daltonisme</li>
324
354
  <li><a href="https://simulation-accessibilite.inria.fr/public/fr/daltonisme.html" target="_blank">Inria Simulateur de vision sur une interface</a> - Outil de simulation visuelle</li>
325
355
  </ul>
326
356
  </div>
327
357
  </div>
328
-
329
- <div className="section">
330
- <h2>💪 Comment mettre en place l'accessibilité ?</h2>
331
-
332
- <p>On dit souvent que l'accessibilité n'est pas adaptée pour tel ou tel service car cela serait trop long, coûteux ou encore qu'on n'a pas l'expertise. Pourtant de nombreuses actions sont faciles et à portée de main pour initier une démarche d'accessibilité.</p>
333
-
334
- <div className="image-container">
335
- <img className="process-image" alt="Processus d'accessibilité" src={"/processusAccessibilite.jpg"} />
336
- <div className="image-caption">
337
- Processus d'intégration de l'accessibilité dans le cycle de développement
338
- </div>
339
- </div>
340
-
341
- <h3>💼 L'accessibilité s'intègre tout au long de votre processus de conception</h3>
342
-
343
- <p>Etre accessible est un travail en continu qui s'intègre à plusieurs niveaux de votre processus de conception. C'est un travail de collaboration qui mêle plusieurs expertises :</p>
344
-
345
- <div className="feature-list">
346
- <div className="feature-card">
347
- <h3>💼 Chef de projet</h3>
348
- <p>Intègre l'accessibilité dans la planification et les exigences du projet dès le départ.</p>
349
- </div>
350
-
351
- <div className="feature-card">
352
- <h3>🎨 Designer</h3>
353
- <p>Conçoit des interfaces accessibles en tenant compte des contrastes, de la typographie et de l'expérience utilisateur.</p>
354
- </div>
355
-
356
- <div className="feature-card">
357
- <h3>💻 Développeur</h3>
358
- <p>Implémente le code en respectant les standards d'accessibilité et en testant avec des outils spécialisés.</p>
359
- </div>
360
- </div>
361
-
362
- <div className="info-box">
363
- <h3>🔍 Vous pouvez pré-auditer un service</h3>
364
-
365
- <p>Un pré-audit est une évaluation préparatoire réalisée par les équipes-produits pour vérifier la conformité d'un produit aux critères du <abbr title="Référentiel Général d'Amélioration de l'Accessibilité">RGAA</abbr>.</p>
366
-
367
- <p>À l'aide d'outils et de méthodologies, ces équipes peuvent identifier la moitié des critères requis avant un audit complet. L'objectif premier du pré-audit est de réduire la quantité de correctifs relevés par l'audit complet en donnant un meilleur contrôle aux produits sur leur gestion de projet.</p>
368
-
369
- <p><a href="/docs/accessibilité-kit-de-pré-audit-pré-audit--docs" className="button">Consulter le guide du pré-audit</a></p>
370
- </div>
371
-
372
- <div className="cta-box">
373
- <h3>📝 Prêt pour soumettre une demande d'audit ?</h3>
374
-
375
- <p>Une fois le pré-audit effectué, un audit complet est réalisé par une équipe dédiée à la Filière Digital sur la totalité des critères évalués sur les pages retenues.</p>
376
-
377
- <ol className="cta-list">
378
- <li>1. Complétez <a href="/documents/Checklist_pre-audit_CNAM_NOM_DU_PRODUIT.xlsx" target="_blank">ce fichier</a> de pré-audit</li>
379
- <li>2. Soumettez-le à <a href="mailto:valentin.becquet@assurance-maladie.fr">valentin.becquet@assurance-maladie.fr</a></li>
380
- <li>3. Attendez la validation de votre demande basée sur l'effort engagé</li>
381
- <li>4. Recevez les résultats de l'audit avec les correctifs à apporter</li>
382
- <li>5. Implémentez les correctifs et publiez votre déclaration d'accessibilité</li>
383
- </ol>
384
-
385
- <a href="/documents/Checklist_pre-audit_CNAM_NOM_DU_PRODUIT.xlsx" target="_blank" className="button">Télécharger le fichier de pré-audit</a>
386
- </div>
387
- </div>
@@ -42,13 +42,10 @@ import '../styles/shared.css';
42
42
  }
43
43
 
44
44
  .section {
45
- margin: 2.5rem 0;
46
45
  padding: 2rem;
47
46
  background-color: var(--neutral-100);
48
47
  border-radius: var(--radius-md);
49
- box-shadow: var(--shadow-sm);
50
48
  transition: var(--transition);
51
- border: 1px solid var(--neutral-300);
52
49
  }
53
50
 
54
51
  .section h2 {
@@ -177,7 +174,7 @@ import '../styles/shared.css';
177
174
  </div>
178
175
 
179
176
  <div className="section">
180
- <h2>🌟 Objectifs</h2>
177
+ <h2>Objectifs</h2>
181
178
 
182
179
  <p>Le Design System Synapse offre de nombreux avantages en matière d'accessibilité pour les services qui l'adoptent. En veillant à ce que les composants respectent les normes d'accessibilité, il assure une conformité optimale avec les critères du <abbr title="Référentiel Général d’Amélioration de l’Accessibilité">RGAA</abbr> pour les produits.</p>
183
180
 
@@ -188,12 +185,12 @@ import '../styles/shared.css';
188
185
  </div>
189
186
 
190
187
  <div className="feature-card">
191
- <h3>🚫 Réduction des erreurs</h3>
188
+ <h3>Réduction des erreurs</h3>
192
189
  <p>Diminue les risques d'erreurs humaines lors de l'implémentation des bonnes pratiques d'accessibilité.</p>
193
190
  </div>
194
191
 
195
192
  <div className="feature-card">
196
- <h3>😍 Expérience améliorée</h3>
193
+ <h3>Expérience améliorée</h3>
197
194
  <p>Améliore l'expérience utilisateur pour tous, et pas seulement pour les personnes en situation de handicap.</p>
198
195
  </div>
199
196
  </div>
@@ -204,7 +201,7 @@ import '../styles/shared.css';
204
201
  </div>
205
202
 
206
203
  <div className="section">
207
- <h2>📊 Couverture des critères</h2>
204
+ <h2>Couverture des critères</h2>
208
205
 
209
206
  <p>Le Design System ne garantit pas à lui seul l'accessibilité des services qui l'implémentent, car il ne couvre pas l'ensemble des critères du <abbr title="Référentiel Général d'Amélioration de l'Accessibilité">RGAA</abbr>.</p>
210
207
 
@@ -233,7 +230,7 @@ import '../styles/shared.css';
233
230
  </div>
234
231
 
235
232
  <div className="section">
236
- <h2>📑 Documentation et rapports</h2>
233
+ <h2>Documentation et rapports</h2>
237
234
 
238
235
  <p>Chaque composant possède une page "Accessibilité" qui vous renseignera sur les critères du <abbr title="Référentiel Général d'Amélioration de l'Accessibilité">RGAA</abbr> remontées par l'audit Tanaguru ainsi qu'un rapport complet d'un audit manuel.</p>
239
236
 
@@ -244,15 +241,4 @@ import '../styles/shared.css';
244
241
  <li>Comprendre les bonnes pratiques à suivre</li>
245
242
  <li>Appliquer les recommandations dans vos projets</li>
246
243
  </ul>
247
-
248
- <div className="image-container">
249
- <img
250
- src={"/capture-page-accessibilite-composant.png"}
251
- aria-labelledby="capture-page-accessibilite-alt"
252
- />
253
- <div className="image-caption" id="capture-page-accessibilite-alt">
254
- Capture d'écran de la page Accessibilité du composant NotificationBar.<br/>
255
- Celle-ci donne des éléments sur les audits Tanaguru et manuels.
256
- </div>
257
- </div>
258
244
  </div>
@@ -89,7 +89,7 @@ import '../../styles/shared.css';
89
89
  </div>
90
90
 
91
91
  <div className="info-box">
92
- <h3>🔍 Contexte</h3>
92
+ <h3>Contexte</h3>
93
93
  <p>
94
94
  Le <abbr title="Référentiel Général d'Amélioration de l'Accessibilité">RGAA</abbr> fixe les
95
95
  obligations d'accessibilité des sites et services en ligne des organismes publics et de
@@ -26,12 +26,12 @@ 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 {
33
32
  padding-bottom: 0.5rem;
34
33
  margin-top: 0;
34
+ color: #0c419a !important;
35
35
  }
36
36
 
37
37
  .contact-card {
@@ -118,9 +118,12 @@ import '../../styles/shared.css';
118
118
  left: 0;
119
119
  width: 80px;
120
120
  height: 4px;
121
-
122
121
  border-radius: 3px;
123
122
  }
123
+
124
+ h2 {
125
+ color: #0c419a !important;
126
+ }
124
127
  `
125
128
  }
126
129
  </style>
@@ -131,8 +134,8 @@ import '../../styles/shared.css';
131
134
  </div>
132
135
 
133
136
  <div className="info-section">
134
- <h2>🌟 Objectif</h2>
135
- <p>Une fois la phase pré-audit réalisée et que le niveau de conformité est jugé suffisant, <b>l'équipe produit peut solliciter la Filière Digital pour un audit de conformité <abbr title="Référentiel Général d'Amélioration de l'Accessibilité">RGAA</abbr> sur le même échantillon de pages</b>.</p>
137
+ <h2>Objectif</h2>
138
+ <p>Une fois la phase pré-audit réalisée et que le niveau de conformité est jugé suffisant, <b>l'équipe produit peut solliciter le Studio Design pour un audit de conformité <abbr title="Référentiel Général d'Amélioration de l'Accessibilité">RGAA</abbr> sur le même échantillon de pages</b>.</p>
136
139
 
137
140
  <p>L'objectif de l'audit est d'évaluer la conformité d'un produit aux critères d'accessibilités définis par le <abbr title="Référentiel Général d'Amélioration de l'Accessibilité">RGAA</abbr>. L'expert identifie les non-conformités et fournit des recommandations pour améliorer l'accessibilité du produit.</p>
138
141
 
@@ -147,7 +150,7 @@ import '../../styles/shared.css';
147
150
 
148
151
  <div className="environment-grid">
149
152
  <div className="resource-card">
150
- <h3>💻 Environnement principal</h3>
153
+ <h3>Environnement principal</h3>
151
154
  <p>Si l'outil cible un public utilisant des terminaux de bureau :</p>
152
155
  <ul>
153
156
  <li>Système d'exploitation : Windows</li>
@@ -157,7 +160,7 @@ import '../../styles/shared.css';
157
160
  </div>
158
161
 
159
162
  <div className="resource-card">
160
- <h3>📱 Environnement mobile</h3>
163
+ <h3>Environnement mobile</h3>
161
164
  <p>Si l'outil cible un public utilisant des terminaux mobile :</p>
162
165
  <ul>
163
166
  <li>Système d'exploitation : Android</li>
@@ -176,12 +179,12 @@ import '../../styles/shared.css';
176
179
  <div className="environment-grid">
177
180
  <div className="resource-card">
178
181
  <h3>Grille d'évaluation RGAA</h3>
179
- <p>La Filière Digital remet la grille officielle RGAA avec les non-conformités et les recommandations techniques.</p>
182
+ <p>le Studio Design remet la grille officielle RGAA avec les non-conformités et les recommandations techniques.</p>
180
183
  </div>
181
184
 
182
185
  <div className="resource-card">
183
186
  <h3>Déclaration d'accessibilité</h3>
184
- <p>L'équipe produit devra réaliser <a href="https://accessibilite.numerique.gouv.fr/ressources/modele-de-declaration/" target="_blank">la déclaration d'accessibilité en suivant le modèle officiel</a>. La Filière Digital pourra accompagner l'équipe pour sa réalisation.</p>
187
+ <p>L'équipe produit devra réaliser <a href="https://accessibilite.numerique.gouv.fr/ressources/modele-de-declaration/" target="_blank">la déclaration d'accessibilité en suivant le modèle officiel</a>. le Studio Design pourra accompagner l'équipe pour sa réalisation.</p>
185
188
  </div>
186
189
  </div>
187
190
 
@@ -45,7 +45,6 @@ import '../../styles/shared.css';
45
45
  border-radius: var(--border-radius);
46
46
  padding: 1.5rem;
47
47
  margin: 1.5rem 0;
48
- box-shadow: var(--card-shadow);
49
48
  }
50
49
 
51
50
  .info-box h3 {
@@ -127,6 +126,10 @@ import '../../styles/shared.css';
127
126
  .link-buttons {
128
127
  margin-bottom: 1rem;
129
128
  }
129
+
130
+ h2 {
131
+ margin-top: 2rem !important;
132
+ }
130
133
  `
131
134
  }
132
135
  </style>
@@ -138,32 +141,28 @@ import '../../styles/shared.css';
138
141
  </div>
139
142
 
140
143
  <div className="info-box">
141
- <h3>📋 Présentation</h3>
144
+ <h3>Présentation</h3>
142
145
  <p>Le <abbr title="Référentiel Général d'Amélioration de l'Accessibilité">RGAA</abbr> est un outil méthodologique de certification permettant d'assurer par le respect de ses critères une manipulation des produits numériques dans le domaine du Web de manière égale entre chaque citoyen, qu'il soit ou non en situation de handicap (visuel, auditif, moteur, trouble dys...).</p>
143
146
  <p>Basé sur les travaux du W3C Web Accessibility Initiative (WAI), il vise à garantir quatre indices de performance :</p>
144
147
  </div>
145
148
 
146
149
  <div className="principles-container">
147
150
  <div className="principle-card">
148
- <div className="principle-icon">👁️</div>
149
151
  <h4>Perceptibilité</h4>
150
152
  <p>La bonne perceptibilité de l'information et des composants de l'interface utilisateur</p>
151
153
  </div>
152
154
 
153
155
  <div className="principle-card">
154
- <div className="principle-icon">🖱️</div>
155
156
  <h4>Utilisabilité</h4>
156
157
  <p>Une manipulation efficiente dans la navigation et les interactions</p>
157
158
  </div>
158
159
 
159
160
  <div className="principle-card">
160
- <div className="principle-icon">🧠</div>
161
161
  <h4>Compréhension</h4>
162
162
  <p>Une bonne compréhension des informations et du fonctionnement de l'interface</p>
163
163
  </div>
164
164
 
165
165
  <div className="principle-card">
166
- <div className="principle-icon">🛡️</div>
167
166
  <h4>Robustesse</h4>
168
167
  <p>Une robustesse efficace dans l'usage des produits numériques</p>
169
168
  </div>
@@ -200,7 +199,7 @@ import '../../styles/shared.css';
200
199
  <h2 className="section-title">Avantages du Design System CNAM</h2>
201
200
 
202
201
  <div className="info-box">
203
- <h3>💡 Conformité intégrée</h3>
202
+ <h3>Conformité intégrée</h3>
204
203
  <p>L'usage sans modification de notre Design System vous assure :</p>
205
204
  <ul>
206
205
  <li>Un gain de temps significatif dans le développement</li>