@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
@@ -0,0 +1,196 @@
1
+ import { mdiMapMarker } from '@mdi/js'
2
+ import { defineComponent, h } from 'vue'
3
+ import { VBtn, VIcon } from 'vuetify/components'
4
+ import HeaderBurgerMenu from '../HeaderBurgerMenu.vue'
5
+ import HeaderMenuItem from '../HeaderMenuItem/HeaderMenuItem.vue'
6
+ import HeaderMenuSection from '../HeaderMenuSection/HeaderMenuSection.vue'
7
+ import HeaderSubMenu from '../HeaderSubMenu/HeaderSubMenu.vue'
8
+ import { registerHeaderMenuKey } from '../../consts'
9
+
10
+ type LinkItem = {
11
+ title: string
12
+ href: string
13
+ subtitle?: string
14
+ }
15
+
16
+ type SubMenuSection = {
17
+ title: string
18
+ items: LinkItem[]
19
+ }
20
+
21
+ type MenuItem = LinkItem | {
22
+ subMenuTitle: string
23
+ subMenuSubtitle?: string
24
+ sections: SubMenuSection[]
25
+ }
26
+
27
+ type MenuSection = {
28
+ title: string
29
+ items: MenuItem[]
30
+ }
31
+
32
+ const menu: MenuSection[] = [
33
+ {
34
+ title: 'Vous informer',
35
+ items: [
36
+ {
37
+ title: 'Actualites',
38
+ href: 'https://www.ameli.fr/assure/actualites',
39
+ },
40
+ {
41
+ subMenuTitle: 'Droits et demarches',
42
+ subMenuSubtitle: 'selon votre situation',
43
+ sections: [
44
+ {
45
+ title: 'Droits et demarches',
46
+ items: [
47
+ {
48
+ title: 'Les essentiels de l\'assure',
49
+ href: 'https://www.ameli.fr/assure/droits-demarches/principes',
50
+ },
51
+ {
52
+ title: 'Parentalite, couple',
53
+ href: 'https://www.ameli.fr/assure/droits-demarches/famille',
54
+ },
55
+ ],
56
+ },
57
+ {
58
+ title: 'Vie professionnelle',
59
+ items: [
60
+ {
61
+ title: 'Arret de travail pour maladie',
62
+ href: 'https://www.ameli.fr/assure/droits-demarches/maladie-accident-hospitalisation/arret-travail-maladie',
63
+ },
64
+ {
65
+ title: 'Accident du travail ou de trajet',
66
+ href: 'https://www.ameli.fr/assure/droits-demarches/maladie-accident-hospitalisation/accident-travail-trajet',
67
+ },
68
+ ],
69
+ },
70
+ ],
71
+ },
72
+ ],
73
+ },
74
+ {
75
+ title: 'Besoin d\'aide',
76
+ items: [
77
+ {
78
+ title: 'Contacter l\'Assurance Maladie',
79
+ subtitle: 'obtenir une attestation, envoyer une feuille de soins, contacter sa caisse, etc.',
80
+ href: 'https://www.ameli.fr/assure/adresses-contacts',
81
+ },
82
+ {
83
+ title: 'Trouver un professionnel de sante',
84
+ subtitle: 'medecins, infirmiers...',
85
+ href: 'https://www.ameli.fr/assure/adresses-contacts',
86
+ },
87
+ ],
88
+ },
89
+ ]
90
+
91
+ function renderLink(item: LinkItem) {
92
+ return h('a', { href: item.href }, [
93
+ item.title,
94
+ item.subtitle
95
+ ? h('em', { style: 'font-style: normal; color: #757777;' }, item.subtitle)
96
+ : null,
97
+ ])
98
+ }
99
+
100
+ function renderMenuItem(item: MenuItem) {
101
+ if ('subMenuTitle' in item) {
102
+ return h(HeaderMenuItem, { key: item.subMenuTitle }, {
103
+ default: () => h(HeaderSubMenu, { innerTag: 'div' }, {
104
+ title: () => [
105
+ item.subMenuTitle,
106
+ item.subMenuSubtitle
107
+ ? h('em', { style: 'font-style: normal; color: #757777;' }, item.subMenuSubtitle)
108
+ : null,
109
+ ],
110
+ default: () => item.sections.map(subSection => h(HeaderMenuSection, {
111
+ key: subSection.title,
112
+ tag: 'div',
113
+ showTitle: false,
114
+ }, {
115
+ title: () => subSection.title,
116
+ default: () => subSection.items.map(subItem => h(HeaderMenuItem, { key: subItem.title }, {
117
+ default: () => renderLink(subItem),
118
+ })),
119
+ })),
120
+ }),
121
+ })
122
+ }
123
+
124
+ return h(HeaderMenuItem, { key: item.title }, {
125
+ default: () => renderLink(item),
126
+ })
127
+ }
128
+
129
+ const GeneratedMenuContent = defineComponent({
130
+ name: 'GeneratedMenuContent',
131
+ setup() {
132
+ return () => [
133
+ ...menu.map(section => h(HeaderMenuSection, { key: section.title }, {
134
+ title: () => section.title,
135
+ default: () => section.items.map(item => renderMenuItem(item)),
136
+ })),
137
+ h(HeaderMenuSection, { innerTag: 'div' }, {
138
+ title: () => 'Votre caisse',
139
+ default: () => h('div', { style: 'padding: 16px 50px 16px 20px;' }, [
140
+ h('div', { class: 'd-flex align-center ga-2 font-weight-bold' }, [
141
+ h(VIcon, {
142
+ ariaLabel: 'Localisation',
143
+ role: 'img',
144
+ ariaHidden: 'false',
145
+ color: 'primary',
146
+ }, () => mdiMapMarker),
147
+ h('p', 'Vous n\'avez pas selectionne votre caisse'),
148
+ ]),
149
+ h(VBtn, {
150
+ class: 'mt-3 mb-4 font-weight-bold text-capitalize',
151
+ baseColor: 'primary',
152
+ density: 'comfortable',
153
+ flat: true,
154
+ height: '37',
155
+ }, () => 'Selectionner'),
156
+ h('p', { class: 'mb-8' }, 'Les pages d\'ameli seront alors enrichies des informations locales de votre caisse.'),
157
+ ]),
158
+ }),
159
+ ]
160
+ },
161
+ })
162
+
163
+ function mountGeneratedMenu(width = 375, height = 900) {
164
+ cy.viewport(width, height)
165
+
166
+ cy.mountWithVuetify(HeaderBurgerMenu, {
167
+ global: {
168
+ provide: {
169
+ [registerHeaderMenuKey]: () => {},
170
+ },
171
+ },
172
+ slots: {
173
+ default: () => h(GeneratedMenuContent),
174
+ },
175
+ })
176
+
177
+ cy.get('.header-menu-btn').first().click()
178
+ cy.get('.overlay').should('be.visible')
179
+ cy.get('.header-menu-wrapper').should('be.visible')
180
+ }
181
+
182
+ describe('HeaderBurgerMenu - Visual regression tests', () => {
183
+ it('displays the generated menu opened', () => {
184
+ mountGeneratedMenu()
185
+ cy.matchImageSnapshot('header-burger-menu-generated')
186
+ })
187
+
188
+ it('displays the generated menu with the first submenu opened', () => {
189
+ mountGeneratedMenu(1200, 900)
190
+
191
+ cy.contains('.sub-menu-btn', 'Droits et demarches').click()
192
+ cy.get('.sub-menu--open').should('exist')
193
+ cy.get('.sub-menu-content-wrapper').should('be.visible')
194
+ cy.matchImageSnapshot('header-burger-menu-generated-submenu-open')
195
+ })
196
+ })
@@ -109,7 +109,6 @@
109
109
 
110
110
  <style scoped lang="scss">
111
111
  @use '../consts' as *;
112
- @use '@/assets/tokens.scss' as *;
113
112
 
114
113
  .logo {
115
114
  display: flex;
@@ -37,7 +37,6 @@
37
37
 
38
38
  <style lang="scss" scoped>
39
39
  @use '../consts' as *;
40
- @use '@/assets/tokens';
41
40
 
42
41
  .header-menu-btn {
43
42
  text-transform: capitalize;
@@ -50,20 +49,20 @@
50
49
  justify-content: center;
51
50
  font-weight: 700;
52
51
  background-color: rgb(var(--v-theme-primary));
53
- color: tokens.$neutral-white;
52
+ color: rgb(var(--v-theme-textOnDark));
54
53
  border: 2px solid transparent;
55
54
  border-bottom:
56
55
  solid 2px linear-gradient(
57
56
  180deg,
58
57
  transparent 0%,
59
58
  transparent 50%,
60
- tokens.$blue-lighten-80 50%,
61
- tokens.$blue-lighten-80 100%
59
+ rgb(var(--v-theme-blue-lighten80)) 50%,
60
+ rgb(var(--v-theme-blue-lighten80)) 100%
62
61
  );
63
62
  transition: color 0.15s 0.1s, background-color 0.15s 0.1s, border 0.15s 0.1s;
64
63
 
65
64
  &:focus-visible {
66
- background-color: tokens.$neutral-white;
65
+ background-color: rgb(var(--v-theme-surface));
67
66
  color: rgb(var(--v-theme-primary));
68
67
  outline: none;
69
68
  border: 2px solid rgb(var(--v-theme-primary));
@@ -71,9 +70,9 @@
71
70
  }
72
71
 
73
72
  .header-menu-btn__open {
74
- background-color: tokens.$neutral-white;
73
+ background-color: rgb(var(--v-theme-surface));
75
74
  color: rgb(var(--v-theme-primary));
76
- border-color: tokens.$neutral-white;
75
+ border-color: rgb(var(--v-theme-textOnDark));
77
76
  }
78
77
 
79
78
  @media screen and (max-width: ($header-breakpoint + 1)) {
@@ -0,0 +1,81 @@
1
+ import { h } from 'vue'
2
+ import HeaderBar from '../HeaderBar.vue'
3
+
4
+ describe('HeaderBar - Visual regression tests', () => {
5
+ it('displays the header by default', () => {
6
+ cy.mountWithVuetify(HeaderBar, {
7
+ props: {
8
+ serviceTitle: 'Mon Service',
9
+ },
10
+ })
11
+
12
+ cy.get('.header').should('be.visible')
13
+ cy.matchImageSnapshot('header-bar-default')
14
+ })
15
+
16
+ it('displays the header with title and subtitle', () => {
17
+ cy.mountWithVuetify(HeaderBar, {
18
+ props: {
19
+ serviceTitle: 'Mon Service',
20
+ serviceSubtitle: 'Description du service',
21
+ },
22
+ })
23
+
24
+ cy.get('.header').should('be.visible')
25
+ cy.matchImageSnapshot('header-bar-with-subtitle')
26
+ })
27
+
28
+ it('displays the header with custom width', () => {
29
+ cy.mountWithVuetify(HeaderBar, {
30
+ props: {
31
+ serviceTitle: 'Mon Service',
32
+ width: '900px',
33
+ },
34
+ })
35
+
36
+ cy.get('.header').should('be.visible')
37
+ cy.matchImageSnapshot('header-bar-custom-width')
38
+ })
39
+
40
+ it('displays the header with header-side slot', () => {
41
+ cy.mountWithVuetify(HeaderBar, {
42
+ props: {
43
+ serviceTitle: 'Mon Service',
44
+ },
45
+ slots: {
46
+ 'header-side': () => h('button', 'Connexion'),
47
+ },
48
+ })
49
+
50
+ cy.get('.header').should('be.visible')
51
+ cy.get('.header-side').should('be.visible')
52
+ cy.matchImageSnapshot('header-bar-with-side')
53
+ })
54
+
55
+ it('displays the header with prepend slot', () => {
56
+ cy.mountWithVuetify(HeaderBar, {
57
+ props: {
58
+ serviceTitle: 'Mon Service',
59
+ },
60
+ slots: {
61
+ prepend: () => h('div', { style: 'background:#005AA1;color:#fff;padding:4px 16px;font-size:14px;' }, 'Bandeau info'),
62
+ },
63
+ })
64
+
65
+ cy.get('.header').should('be.visible')
66
+ cy.get('.header-prepend').should('be.visible')
67
+ cy.matchImageSnapshot('header-bar-with-prepend')
68
+ })
69
+
70
+ it('displays the non-sticky header', () => {
71
+ cy.mountWithVuetify(HeaderBar, {
72
+ props: {
73
+ serviceTitle: 'Mon Service',
74
+ sticky: false,
75
+ },
76
+ })
77
+
78
+ cy.get('.header').should('be.visible')
79
+ cy.matchImageSnapshot('header-bar-no-sticky')
80
+ })
81
+ })
@@ -37,8 +37,8 @@
37
37
  items?: NavigationItem[]
38
38
  /** Si activé, une confirmation sera demandée avant de changer d'onglet */
39
39
  confirmTabChange?: boolean
40
- /** Message affiché dans la boîte de dialogue de confirmation */
41
- confirmationMessage?: boolean
40
+ /** Message affiché dans la boîte de dialogue de confirmation (accepte un booléen pour rétrocompatibilité) */
41
+ confirmationMessage?: string | boolean
42
42
  /** Largeur interne */
43
43
  width?: string
44
44
  headingLevelTitle?: 1 | 2 | 3 | 4 | 5 | 6
@@ -46,7 +46,7 @@
46
46
  {
47
47
  // Confirmation related defaults
48
48
  confirmTabChange: false,
49
- confirmationMessage: false,
49
+ confirmationMessage: undefined,
50
50
  // Navigation related defaults
51
51
  homeAriaLabel: undefined,
52
52
  serviceTitle: undefined,
@@ -114,6 +114,14 @@
114
114
  )
115
115
  })
116
116
 
117
+ // Filtrer le message de confirmation pour éviter les erreurs TypeScript dans le template
118
+ // Même si HorizontalNavbar accepte un booléen, cette propriété calculée garantit la propreté du typage
119
+ const formattedConfirmationMessage = computed<string | undefined>(() => {
120
+ return typeof props.confirmationMessage === 'string'
121
+ ? props.confirmationMessage
122
+ : undefined
123
+ })
124
+
117
125
  // Fonction qui gère la confirmation de changement d'onglet
118
126
  // Cette fonction est appelée quand un utilisateur essaie de changer d'onglet
119
127
  // et que la confirmation est activée
@@ -221,6 +229,7 @@
221
229
  :items="items"
222
230
  :vuetify-options
223
231
  :confirm-tab-change="confirmTabChange"
232
+ :confirmation-message="formattedConfirmationMessage"
224
233
  @confirm-tab-change="handleConfirmTabChange"
225
234
  >
226
235
  <template #navigation-bar-prepend>
@@ -19,17 +19,25 @@
19
19
  items?: NavigationItem[]
20
20
  /** Si activé, une confirmation sera demandée avant de changer d'onglet */
21
21
  confirmTabChange?: boolean
22
- /** Message affiché dans la boîte de dialogue de confirmation */
23
- confirmationMessage?: boolean
22
+ /** Message affiché dans la boîte de dialogue de confirmation (accepte un booléen pour rétrocompatibilité) */
23
+ confirmationMessage?: string | boolean
24
24
  /** Largeur interne */
25
25
  width?: string
26
26
  }>(), {
27
27
  items: () => [],
28
28
  confirmTabChange: false,
29
- confirmationMessage: false,
29
+ confirmationMessage: undefined,
30
30
  width: '1712px',
31
31
  })
32
32
 
33
+ // Format confirmation message to ensure backward compatibility
34
+ // If a boolean was provided (old API), we return undefined to let SyTabs use its default string
35
+ const formattedConfirmationMessage = computed<string | undefined>(() => {
36
+ return typeof props.confirmationMessage === 'string'
37
+ ? props.confirmationMessage
38
+ : undefined
39
+ })
40
+
33
41
  // Définition des événements émis
34
42
  const emit = defineEmits(['cancel-navigation', 'confirm-tab-change'])
35
43
 
@@ -235,7 +243,7 @@
235
243
  :items="tabItems"
236
244
  :model-value="Number(activeTab)"
237
245
  :confirm-tab-change="props.confirmTabChange"
238
- :confirmation-message="props.confirmationMessage"
246
+ :confirmation-message="formattedConfirmationMessage"
239
247
  :vuetify-options="{
240
248
  sheet: { theme: 'dark', color: '#07275C' },
241
249
  tab: { 'base-color': '#B5BECE', 'active-color': '#ffffff', 'slider-color': '#fff' },
@@ -274,7 +282,6 @@
274
282
  </template>
275
283
 
276
284
  <style lang="scss" scoped>
277
- @use '@/assets/tokens.scss' as *;
278
285
  @use '@/components/HeaderBar/consts' as *;
279
286
 
280
287
  .horizontal-menu {
@@ -316,7 +323,7 @@
316
323
  transition: color 0.2s ease;
317
324
 
318
325
  &:hover {
319
- color: #fff;
326
+ color: rgb(var(--v-theme-textOnDark));
320
327
  }
321
328
 
322
329
  &:focus-visible {
@@ -327,7 +334,7 @@
327
334
 
328
335
  &--active,
329
336
  &[aria-current='page'] {
330
- color: #fff;
337
+ color: rgb(var(--v-theme-textOnDark));
331
338
  border-bottom: 3px solid #fff; /* Bordure solide et plus visible pour les éléments actifs */
332
339
  box-shadow: 0 3px 0 0 #fff; /* Double effet pour être sûr que la bordure est bien visible */
333
340
 
@@ -343,7 +350,7 @@
343
350
  padding: 8px 16px;
344
351
  margin-top: 8px;
345
352
  background-color: v-bind('options.sheet.color');
346
- color: #fff;
353
+ color: rgb(var(--v-theme-textOnDark));
347
354
  text-decoration: none;
348
355
  border-radius: 4px;
349
356
  transition: background-color 0.2s ease;
@@ -738,7 +738,6 @@
738
738
  </template>
739
739
 
740
740
  <style lang="scss" scoped>
741
- @use '@/assets/tokens';
742
741
  @use '../HeaderBar/consts' as *;
743
742
 
744
743
  $header-max-width: 1200px;
@@ -748,12 +747,12 @@ $font-sm: 12px;
748
747
  $menu-padding: 10px 16px;
749
748
  $menu-padding-mobile: 10px 12px;
750
749
  $std-radius: 0;
751
- $blue-lighten-90: tokens.$blue-lighten-90;
752
- $blue-darken-40: tokens.$blue-darken-40;
753
- $blue-darken-60: tokens.$blue-darken-60;
754
- $user-assure: tokens.$user-assure;
755
- $user-professionnel: tokens.$user-professionnel;
756
- $user-entreprise: tokens.$user-entreprise;
750
+ $blue-lighten-90: rgb(var(--v-theme-blue-lighten90));
751
+ $blue-darken-40: rgb(var(--v-theme-blue-darken40));
752
+ $blue-darken-60: rgb(var(--v-theme-blue-darken60));
753
+ $user-assure: rgb(var(--v-theme-pink-lighten40));
754
+ $user-professionnel: rgb(var(--v-theme-cyan-lighten40));
755
+ $user-entreprise: rgb(var(--v-theme-yellow-base));
757
756
  $first-item-width: 95px;
758
757
  $first-item-max-width: 320px;
759
758
  $first-item-width-mobile: 32px;
@@ -188,10 +188,8 @@
188
188
  </div>
189
189
  </template>
190
190
  <style lang="scss" scoped>
191
- @use '@/assets/tokens';
192
-
193
191
  .v-list-item:hover {
194
- background-color: rgba(tokens.$colors-overlay, 0.005);
192
+ background-color: rgba(var(--v-theme-colors-overlay), 0.005);
195
193
  }
196
194
 
197
195
  .v-list-item:focus-visible {
@@ -206,7 +204,7 @@
206
204
  }
207
205
 
208
206
  .vd-lang-btn {
209
- font-size: 16px;
207
+ font-size: var(--v-fontSize-corpsDeTexte);
210
208
  text-transform: none;
211
209
  letter-spacing: inherit;
212
210
 
@@ -0,0 +1,57 @@
1
+ import Logo from '../Logo.vue'
2
+
3
+ describe('Logo - Visual regression tests', () => {
4
+ it('displays the logo by default', () => {
5
+ cy.mountWithVuetify(Logo)
6
+
7
+ cy.get('svg').should('be.visible')
8
+ cy.matchImageSnapshot('logo-default', cy.get('svg'))
9
+ })
10
+
11
+ it('displays the logo without signature', () => {
12
+ cy.mountWithVuetify(Logo, {
13
+ props: { hideSignature: true },
14
+ })
15
+
16
+ cy.get('svg').should('be.visible')
17
+ cy.matchImageSnapshot('logo-no-signature', cy.get('svg'))
18
+ })
19
+
20
+ it('displays the logo without organism', () => {
21
+ cy.mountWithVuetify(Logo, {
22
+ props: { hideOrganism: true },
23
+ })
24
+
25
+ cy.get('svg').should('be.visible')
26
+ cy.matchImageSnapshot('logo-no-organism', cy.get('svg'))
27
+ })
28
+
29
+ it('displays the logo with occupational risk variant', () => {
30
+ cy.mountWithVuetify(Logo, {
31
+ props: { risquePro: true },
32
+ })
33
+
34
+ cy.get('svg').should('be.visible')
35
+ cy.matchImageSnapshot('logo-risque-pro', cy.get('svg'))
36
+ })
37
+
38
+ it('displays the logo in dark mode', () => {
39
+ cy.mountWithVuetify(Logo, {
40
+ props: { dark: true },
41
+ })
42
+ cy.get('.v-application').invoke('css', 'background-color', '#121212')
43
+
44
+ cy.get('svg').should('be.visible')
45
+ cy.matchImageSnapshot('logo-dark', cy.get('svg'))
46
+ cy.get('.v-application').invoke('css', 'background-color', '')
47
+ })
48
+
49
+ it('displays the logo as avatar', () => {
50
+ cy.mountWithVuetify(Logo, {
51
+ props: { avatar: true },
52
+ })
53
+
54
+ cy.get('svg').should('be.visible')
55
+ cy.matchImageSnapshot('logo-avatar', cy.get('svg'))
56
+ })
57
+ })
@@ -170,7 +170,7 @@
170
170
  case 'ameli-pro':
171
171
  return cnamLightTheme.secondary
172
172
  case 'compte-entreprise':
173
- return '#cd545b'
173
+ return cnamLightTheme.risquePro
174
174
  default:
175
175
  return cnamLightTheme.primary
176
176
  }
@@ -303,7 +303,7 @@
303
303
  font-weight: 700 !important;
304
304
 
305
305
  span {
306
- color: #cd545b;
306
+ color: rgb(var(--v-theme-risquePro));
307
307
  }
308
308
  }
309
309
 
@@ -103,7 +103,7 @@
103
103
  .visual-picker-header {
104
104
  padding-block: 16px;
105
105
  background-color: rgb(var(--v-theme-primary, '12, 65, 154'));
106
- color: #fff;
106
+ color: rgb(var(--v-theme-textOnDark));
107
107
  }
108
108
 
109
109
  .visual-picker-header__title {
@@ -1415,7 +1415,7 @@ export const ComplexNirType: Story = {
1415
1415
  :required="false"
1416
1416
  numberLabel="Numéro de sécurité sociale"
1417
1417
  keyLabel="Clé"
1418
- :nirType="complexe"
1418
+ nirType="complexe"
1419
1419
  :displayKey="true"
1420
1420
  />
1421
1421
  </template>
@@ -1428,7 +1428,7 @@ export const ComplexNirType: Story = {
1428
1428
  import { NirField } from '@cnamts/synapse'
1429
1429
  import { ref } from 'vue'
1430
1430
 
1431
- const value = ref('184027512345674')
1431
+ const value = ref('712125233333340')
1432
1432
 
1433
1433
  return { value }
1434
1434
  </script>
@@ -517,8 +517,6 @@
517
517
  </template>
518
518
 
519
519
  <style lang="scss" scoped>
520
- @use '@/assets/tokens';
521
-
522
520
  .nir-field {
523
521
  display: flex;
524
522
  flex-wrap: wrap;
@@ -596,16 +594,16 @@
596
594
 
597
595
  .sy-number-errors,
598
596
  .sy-key-errors {
599
- color: tokens.$colors-text-error;
597
+ color: rgb(var(--v-theme-textError));
600
598
  }
601
599
 
602
600
  .sy-number-warnings,
603
601
  .sy-key-warnings {
604
- color: tokens.$colors-text-warning;
602
+ color: rgb(var(--v-theme-textWarning));
605
603
  }
606
604
 
607
605
  .sy-number-success,
608
606
  .sy-key-success {
609
- color: tokens.$colors-text-success;
607
+ color: rgb(var(--v-theme-textSuccess));
610
608
  }
611
609
  </style>