@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
@@ -0,0 +1,77 @@
1
+ import type { Meta, StoryObj } from '@storybook/vue3'
2
+ import { VSkeletonLoader } from 'vuetify/components'
3
+
4
+ const meta: Meta<typeof VSkeletonLoader> = {
5
+ title: 'Composants/Composants Vuetify/VSkeletonLoader',
6
+ tags: ['!dev'],
7
+ component: VSkeletonLoader,
8
+ parameters: {
9
+ docs: {
10
+ source: {
11
+ transform: (src: string) =>
12
+ src.replace(/VSkeletonLoader/g, 'v-skeleton-loader'),
13
+ },
14
+ },
15
+ },
16
+ argTypes: {
17
+ type: {
18
+ control: { type: 'select' },
19
+ options: ['article', 'avatar', 'card', 'list-item-avatar'],
20
+ description: 'Type de skeleton loader',
21
+ },
22
+ loading: {
23
+ control: { type: 'boolean' },
24
+ description: 'Affiche le skeleton loader',
25
+ },
26
+ boilerplate: {
27
+ control: { type: 'boolean' },
28
+ description: 'Affiche une version simplifiée du skeleton loader',
29
+ },
30
+ },
31
+ }
32
+
33
+ export default meta
34
+
35
+ type Story = StoryObj<typeof VSkeletonLoader>
36
+
37
+ export const Default: Story = {
38
+ args: {
39
+ type: 'card',
40
+ loading: true,
41
+ },
42
+ }
43
+
44
+ export const Article: Story = {
45
+ args: {
46
+ type: 'article',
47
+ loading: true,
48
+ },
49
+ }
50
+
51
+ export const Avatar: Story = {
52
+ args: {
53
+ type: 'avatar',
54
+ loading: true,
55
+ },
56
+ }
57
+
58
+ export const Card: Story = {
59
+ args: {
60
+ type: 'card',
61
+ loading: true,
62
+ },
63
+ }
64
+
65
+ export const ListItem: Story = {
66
+ args: {
67
+ type: 'list-item-avatar',
68
+ loading: true,
69
+ },
70
+ }
71
+
72
+ export const Boilerplate: Story = {
73
+ args: {
74
+ type: 'card',
75
+ boilerplate: true,
76
+ },
77
+ }
@@ -0,0 +1,47 @@
1
+ import { Meta, Canvas } from '@storybook/blocks'
2
+ import * as VSwitchStories from './v-switch.stories'
3
+
4
+ <Meta title="Composants/Composants Vuetify/VSwitch" />
5
+
6
+ <div className="header">
7
+ <h1>VSwitch</h1>
8
+ Ce composant utilise directement le composant natif `v-switch` de Vuetify avec les couleurs du thème actif du design system.
9
+ Pour l'API complète du composant, consulter la [documentation Vuetify](https://vuetifyjs.com/en/api/v-switch/#props).
10
+ </div>
11
+
12
+ ## Primary
13
+
14
+ <div style={{ display: 'flex', flexWrap: 'wrap', gap: '12px', alignItems: 'center', padding: '24px' }}>
15
+ <Canvas of={VSwitchStories.PrimaryOn} />
16
+ <Canvas of={VSwitchStories.PrimaryOff} />
17
+ <Canvas of={VSwitchStories.PrimaryInsetOn} />
18
+ <Canvas of={VSwitchStories.PrimaryInsetOff} />
19
+ </div>
20
+
21
+ ## Primary – Désactivé
22
+
23
+ <div style={{ display: 'flex', flexWrap: 'wrap', gap: '12px', alignItems: 'center', padding: '24px' }}>
24
+ <Canvas of={VSwitchStories.PrimaryOnDisabled} />
25
+ <Canvas of={VSwitchStories.PrimaryOffDisabled} />
26
+ </div>
27
+
28
+ ## Secondary
29
+
30
+ <div style={{ display: 'flex', flexWrap: 'wrap', gap: '12px', alignItems: 'center', padding: '24px' }}>
31
+ <Canvas of={VSwitchStories.SecondaryOn} />
32
+ <Canvas of={VSwitchStories.SecondaryOff} />
33
+ <Canvas of={VSwitchStories.SecondaryInsetOn} />
34
+ <Canvas of={VSwitchStories.SecondaryInsetOff} />
35
+ </div>
36
+
37
+ ## Secondary – Désactivé
38
+
39
+ <div style={{ display: 'flex', flexWrap: 'wrap', gap: '12px', alignItems: 'center', padding: '24px' }}>
40
+ <Canvas of={VSwitchStories.SecondaryOnDisabled} />
41
+ <Canvas of={VSwitchStories.SecondaryOffDisabled} />
42
+ </div>
43
+
44
+ ## Variants disponibles
45
+
46
+ - `default` – Switch standard
47
+ - `inset` – Switch avec style inset (plus large)
@@ -0,0 +1,166 @@
1
+ import type { Meta, StoryObj } from '@storybook/vue3'
2
+ import { VSwitch } from 'vuetify/components'
3
+
4
+ const meta: Meta<typeof VSwitch> = {
5
+ title: 'Composants/Composants Vuetify/VSwitch',
6
+ tags: ['!dev'],
7
+ component: VSwitch,
8
+ parameters: {
9
+ docs: {
10
+ source: {
11
+ transform: (src: string) =>
12
+ src.replace(/VSwitch/g, 'v-switch'),
13
+ },
14
+ },
15
+ },
16
+ argTypes: {
17
+ color: {
18
+ control: { type: 'text' },
19
+ description: 'Couleur du switch',
20
+ },
21
+ disabled: {
22
+ control: { type: 'boolean' },
23
+ description: 'Désactive le switch',
24
+ },
25
+ label: {
26
+ control: { type: 'text' },
27
+ description: 'Label du switch',
28
+ },
29
+ inset: {
30
+ control: { type: 'boolean' },
31
+ description: 'Style inset du switch',
32
+ },
33
+ hideDetails: {
34
+ control: { type: 'boolean' },
35
+ description: 'Masque les détails (messages d\'erreur, etc.)',
36
+ },
37
+ },
38
+ }
39
+
40
+ export default meta
41
+
42
+ type Story = StoryObj<typeof VSwitch>
43
+
44
+ // Primary
45
+
46
+ export const PrimaryOn: Story = {
47
+ args: {
48
+ modelValue: true,
49
+ label: 'ON',
50
+ color: 'primary',
51
+ hideDetails: true,
52
+ },
53
+ }
54
+
55
+ export const PrimaryOff: Story = {
56
+ args: {
57
+ modelValue: false,
58
+ label: 'OFF',
59
+ color: 'primary',
60
+ hideDetails: true,
61
+ },
62
+ }
63
+
64
+ export const PrimaryInsetOn: Story = {
65
+ args: {
66
+ modelValue: true,
67
+ label: 'ON (inset)',
68
+ color: 'primary',
69
+ inset: true,
70
+ hideDetails: true,
71
+ },
72
+ }
73
+
74
+ export const PrimaryInsetOff: Story = {
75
+ args: {
76
+ modelValue: false,
77
+ label: 'OFF (inset)',
78
+ color: 'primary',
79
+ inset: true,
80
+ hideDetails: true,
81
+ },
82
+ }
83
+
84
+ // Primary – Désactivé
85
+
86
+ export const PrimaryOnDisabled: Story = {
87
+ args: {
88
+ modelValue: true,
89
+ label: 'ON – désactivé',
90
+ color: 'primary',
91
+ disabled: true,
92
+ hideDetails: true,
93
+ },
94
+ }
95
+
96
+ export const PrimaryOffDisabled: Story = {
97
+ args: {
98
+ modelValue: false,
99
+ label: 'OFF – désactivé',
100
+ color: 'primary',
101
+ disabled: true,
102
+ hideDetails: true,
103
+ },
104
+ }
105
+
106
+ // Secondary
107
+
108
+ export const SecondaryOn: Story = {
109
+ args: {
110
+ modelValue: true,
111
+ label: 'ON',
112
+ color: 'secondary',
113
+ hideDetails: true,
114
+ },
115
+ }
116
+
117
+ export const SecondaryOff: Story = {
118
+ args: {
119
+ modelValue: false,
120
+ label: 'OFF',
121
+ color: 'secondary',
122
+ hideDetails: true,
123
+ },
124
+ }
125
+
126
+ export const SecondaryInsetOn: Story = {
127
+ args: {
128
+ modelValue: true,
129
+ label: 'ON (inset)',
130
+ color: 'secondary',
131
+ inset: true,
132
+ hideDetails: true,
133
+ },
134
+ }
135
+
136
+ export const SecondaryInsetOff: Story = {
137
+ args: {
138
+ modelValue: false,
139
+ label: 'OFF (inset)',
140
+ color: 'secondary',
141
+ inset: true,
142
+ hideDetails: true,
143
+ },
144
+ }
145
+
146
+ // Secondary – Désactivé
147
+
148
+ export const SecondaryOnDisabled: Story = {
149
+ args: {
150
+ modelValue: true,
151
+ label: 'ON – désactivé',
152
+ color: 'secondary',
153
+ disabled: true,
154
+ hideDetails: true,
155
+ },
156
+ }
157
+
158
+ export const SecondaryOffDisabled: Story = {
159
+ args: {
160
+ modelValue: false,
161
+ label: 'OFF – désactivé',
162
+ color: 'secondary',
163
+ disabled: true,
164
+ hideDetails: true,
165
+ },
166
+ }
@@ -0,0 +1,31 @@
1
+ import { describe, expect, it } from 'vitest'
2
+ import { buildColorClassMap } from '../utils/buildColorClassMap'
3
+ import { apColorClasses, apColorsTokens2026 } from '../tokens/amelipro/apColors2026'
4
+
5
+ describe('buildColorClassMap', () => {
6
+ it('maps base color to kebab-case class without -base suffix', () => {
7
+ const tokens = { apBlue: { base: '#0c419a' } }
8
+ const map = buildColorClassMap(tokens)
9
+ expect(map['ap-blue']).toBe('#0c419a')
10
+ expect(map['ap-blue-base']).toBeUndefined()
11
+ })
12
+
13
+ it('maps color with numeric variant to dash-separated class', () => {
14
+ const tokens = { apBlue: { darken1: '#00749c', lighten2: '#ccedf9' } }
15
+ const map = buildColorClassMap(tokens)
16
+ expect(map['ap-blue-darken-1']).toBe('#00749c')
17
+ expect(map['ap-blue-lighten-2']).toBe('#ccedf9')
18
+ })
19
+
20
+ it('apColorClasses matches buildColorClassMap output for apColorsTokens2026', () => {
21
+ const generated = buildColorClassMap(apColorsTokens2026)
22
+ expect(apColorClasses).toEqual(generated)
23
+ })
24
+
25
+ it('includes all colors from apColorsTokens2026', () => {
26
+ expect(apColorClasses['ap-blue']).toBe('#0c419a')
27
+ expect(apColorClasses['ap-blue-darken-1']).toBe('#00749c')
28
+ expect(apColorClasses['ap-grey-lighten-6']).toBe('#f4f8f9')
29
+ expect(apColorClasses['ap-turquoise-darken-3']).toBe('#005647')
30
+ })
31
+ })
@@ -0,0 +1,12 @@
1
+ import { describe, expect, it } from 'vitest'
2
+ import { cnamContextualTokens } from '../tokens/cnam/cnamContextual'
3
+ import { paContextualTokens } from '../tokens/pa/paContextual'
4
+ import { apContextualTokens } from '../tokens/amelipro/apContextual'
5
+
6
+ describe('contextual tokens alignment', () => {
7
+ it('keeps canonical contextual gap values aligned across themes', () => {
8
+ expect(cnamContextualTokens.gap[3]).toBe('12px')
9
+ expect(paContextualTokens.gap[3]).toBe('12px')
10
+ expect(apContextualTokens.gap[3]).toBe('12px')
11
+ })
12
+ })
@@ -0,0 +1,53 @@
1
+ import { describe, expect, it } from 'vitest'
2
+ import { generateThemeVariables } from '../utils/convertSemanticsToken'
3
+ import { createFlattenTheme } from '@/designTokens/utils'
4
+
5
+ describe('design token utils', () => {
6
+ it('flattens nested theme objects without non-null assertions', () => {
7
+ expect(createFlattenTheme({
8
+ primary: {
9
+ base: '#0c419a',
10
+ },
11
+ spacing: {
12
+ md: 16,
13
+ },
14
+ })).toEqual({
15
+ 'primary-base': '#0c419a',
16
+ 'spacing-md': 16,
17
+ })
18
+ })
19
+
20
+ it('throws when a flattened theme value is undefined', () => {
21
+ expect(() => createFlattenTheme({
22
+ primary: {
23
+ base: undefined,
24
+ },
25
+ } as unknown as Parameters<typeof createFlattenTheme>[0])).toThrowError('Missing theme value for key "primary-base"')
26
+ })
27
+
28
+ it('generates semantic theme variables from token categories', () => {
29
+ expect(generateThemeVariables({
30
+ colors: {
31
+ background: {
32
+ main: '#ffffff',
33
+ },
34
+ text: {
35
+ base: '#222324',
36
+ },
37
+ },
38
+ })).toEqual({
39
+ onBackgroundMain: '#ffffff',
40
+ onTextBase: '#222324',
41
+ })
42
+ })
43
+
44
+ it('throws when a semantic token value is undefined', () => {
45
+ expect(() => generateThemeVariables({
46
+ colors: {
47
+ background: {
48
+ main: undefined,
49
+ },
50
+ },
51
+ } as unknown as Parameters<typeof generateThemeVariables>[0])).toThrowError('Missing semantic token "main" in category "background"')
52
+ })
53
+ })
@@ -1,4 +1,7 @@
1
+ import { baseColors } from '../baseColors'
2
+
1
3
  export const apColorsTokens = {
4
+ ...baseColors,
2
5
  amber: {
3
6
  darken80: '#502C01',
4
7
  darken60: '#784201',
@@ -10,72 +13,7 @@ export const apColorsTokens = {
10
13
  lighten60: '#f7c281',
11
14
  lighten80: '#fad6ab',
12
15
  lighten90: '#fce6cc',
13
- lighten97: '#FFFAF5',
14
- },
15
- yellow: {
16
- darken80: '#302407',
17
- darken60: '#60480e',
18
- darken40: '#906b15',
19
- darken20: '#c08f1c',
20
- base: '#f0b323',
21
- lighten20: '#f3c24f',
22
- lighten40: '#f6d17b',
23
- lighten60: '#f9e1a7',
24
- lighten80: '#fcf0d3',
25
- lighten90: '#fdf7e9',
26
- lighten97: '#fffdf8',
27
- },
28
- green: {
29
- darken80: '#112717',
30
- darken60: '#224e2d',
31
- darken40: '#347444',
32
- darken20: '#459b5a',
33
- base: '#56c271',
34
- lighten20: '#78ce8d',
35
- lighten40: '#9adaaa',
36
- lighten60: '#bbe7c6',
37
- lighten80: '#ddf3e3',
38
- lighten90: '#eef9f1',
39
- lighten97: '#fafdfb',
40
- },
41
- turquoise: {
42
- darken80: '#00221c',
43
- darken60: '#004439',
44
- darken40: '#006755',
45
- darken20: '#008972',
46
- base: '#00ab8e',
47
- lighten20: '#33bca5',
48
- lighten40: '#66cdbb',
49
- lighten60: '#99ddd2',
50
- lighten80: '#cceee8',
51
- lighten90: '#e5f7f4',
52
- lighten97: '#f7fcfc',
53
- },
54
- blue: {
55
- darken80: '#020d1f',
56
- darken60: '#051a3e',
57
- darken40: '#07275c',
58
- darken20: '#0a347b',
59
- base: '#0c419a',
60
- lighten20: '#3d67ae',
61
- lighten40: '#6d8dc2',
62
- lighten60: '#9eb3d7',
63
- lighten80: '#ced9eb',
64
- lighten90: '#e7ecf5',
65
- lighten97: '#f8f9fc',
66
- },
67
- cyan: {
68
- darken80: '#00212d',
69
- darken60: '#004259',
70
- darken40: '#006386',
71
- darken20: '#0084b2',
72
- base: '#00a5df',
73
- lighten20: '#33b7e5',
74
- lighten40: '#66c9ec',
75
- lighten60: '#99dbf2',
76
- lighten80: '#ccedf9',
77
- lighten90: '#e5f6fc',
78
- lighten97: '#f7fcfe',
16
+ lighten97: '#fffaf5',
79
17
  },
80
18
  forestGreen: {
81
19
  darken80: '#002821',
@@ -88,79 +26,19 @@ export const apColorsTokens = {
88
26
  lighten60: '#80bcb1',
89
27
  lighten80: '#aad2cb',
90
28
  lighten90: '#cce4e0',
91
- lighten97: '#EEFFFC',
92
- },
93
- parma: {
94
- darken80: '#171c26',
95
- darken60: '#2f384d',
96
- darken40: '#465473',
97
- darken20: '#5e709a',
98
- base: '#758cc0',
99
- lighten20: '#91a3cd',
100
- lighten40: '#acbad9',
101
- lighten60: '#c8d1e6',
102
- lighten80: '#e3e8f2',
103
- lighten90: '#f1f3f9',
104
- lighten97: '#fbfcfd',
105
- },
106
- mauve: {
107
- darken80: '#201224',
108
- darken60: '#402449',
109
- darken40: '#60376d',
110
- darken20: '#804992',
111
- base: '#a05bb6',
112
- lighten20: '#b37cc5',
113
- lighten40: '#c69dd3',
114
- lighten60: '#d9bde2',
115
- lighten80: '#ecdef0',
116
- lighten90: '#f5eff8',
117
- lighten97: '#fcfafd',
118
- },
119
- pink: {
120
- darken80: '#2D051A',
121
- darken60: '#5a0a34',
122
- darken40: '#87104d',
123
- darken20: '#b41567',
124
- base: '#e11a81',
125
- lighten20: '#e7489a',
126
- lighten40: '#ed76b3',
127
- lighten60: '#f3a3cd',
128
- lighten80: '#f9d1e6',
129
- lighten90: '#fce8f2',
130
- lighten97: '#fef8fb',
29
+ lighten97: '#eefffc',
131
30
  },
132
31
  red: {
133
32
  darken80: '#4d0000',
134
33
  darken60: '#740000',
135
34
  darken40: '#9b0000',
136
- darken20: '#B30E0E',
35
+ darken20: '#b30e0e',
137
36
  base: '#e80000',
138
37
  lighten20: '#ec2a2a',
139
- lighten40: '#FF5E5E',
38
+ lighten40: '#ff5e5e',
140
39
  lighten60: '#f48080',
141
40
  lighten80: '#f7aaaa',
142
41
  lighten90: '#facccc',
143
- lighten97: '#FFF4F4',
144
- },
145
- grey: {
146
- darken80: '#111212',
147
- darken60: '#222324',
148
- darken40: '#323535',
149
- darken20: '#434647',
150
- base: '#545859',
151
- lighten20: '#76797a',
152
- lighten40: '#989b9b',
153
- lighten60: '#bbbcbd',
154
- lighten80: '#dddede',
155
- lighten90: '#eeeeee',
156
- lighten97: '#fafafa',
157
- },
158
- white: {
159
- lighten20: 'rgba(255, 255, 255, 0.20)',
160
- lighten38: 'rgba(255, 255, 255, 0.38)',
161
- lighten40: 'rgba(255, 255, 255, 0.40)',
162
- lighten70: 'rgba(255, 255, 255, 0.70)',
163
- lighten8: 'rgba(255, 255, 255, 0.080)',
164
- base: '#ffffff',
42
+ lighten97: '#fff4f4',
165
43
  },
166
44
  }
@@ -1,4 +1,5 @@
1
- import type { IndexedObject } from '../../../components/Amelipro/types'
1
+ import type { IndexedObject } from '../../../components/Amelipro/types.ts'
2
+ import { buildColorClassMap } from '../../utils/buildColorClassMap'
2
3
 
3
4
  export const apColorsTokens2026 = {
4
5
  apBlack: { base: '#000000' },
@@ -65,17 +66,4 @@ export const apColorsTokens2026 = {
65
66
  },
66
67
  }
67
68
 
68
- export const apColorClasses: IndexedObject = {}
69
-
70
- export function toKebabCase(value: string): string {
71
- return value.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, '$1-$2').toLowerCase()
72
- }
73
-
74
- Object.entries(apColorsTokens2026).forEach(([colorName, colorValues]) => {
75
- Object.entries(colorValues).forEach(([variationName, colorValue]) => {
76
- const colorClass = toKebabCase(`${colorName}-${variationName}`
77
- .replace(/\d+/, '-$&')
78
- .replace('-base', ''))
79
- apColorClasses[colorClass] = colorValue as string
80
- })
81
- })
69
+ export const apColorClasses: IndexedObject = buildColorClassMap(apColorsTokens2026)
@@ -1,4 +1,7 @@
1
+ import { baseContextualTokens } from '../baseContextualTokens'
2
+
1
3
  export const apContextualTokens = {
4
+ ...baseContextualTokens,
2
5
  colors: {
3
6
  background: '#ffffff',
4
7
  border: '#dddddd',
@@ -7,52 +10,57 @@ export const apContextualTokens = {
7
10
  overlay: 'rgba(0, 0, 0, 0.5)',
8
11
  interactive: '#007bff',
9
12
  },
10
- gap: {
11
- 0: '0',
12
- 1: '4px',
13
- 2: '8px',
14
- 3: '122px',
15
- 4: '16px',
16
- 5: '20px',
17
- 6: '24px',
18
- 7: '28px',
19
- 8: '32px',
20
- 9: '36px',
21
- 10: '40px',
22
- 11: '44px',
23
- 12: '48px',
24
- 13: '52px',
25
- 14: '56px',
26
- 15: '60px',
27
- 16: '64px',
28
- },
29
- iconSize: {
30
- xsmall: '8px',
31
- small: '16px',
32
- default: '24px',
33
- large: '32px',
34
- },
35
- radius: {
36
- rounded0: '0',
37
- rounded: '4px',
38
- roundedLg: '8px',
39
- roundedPill: '64px',
40
- },
41
- padding: {
42
- 0: '0',
43
- 2: '8px',
44
- 3: '12px',
45
- 4: '16px',
46
- 6: '24px',
47
- 8: '32px',
48
- 10: '40px',
49
- 14: '56px',
50
- 16: '64px',
51
- },
52
- fontSize: {
53
- titres: '24px',
54
- titresAlternatifs: '20px',
55
- corpsDeTexte: '16px',
56
- liensEtLibelles: '14px',
13
+ ap: {
14
+ // Typography
15
+ fontWeightRegular: '400',
16
+ fontWeightBold: '700',
17
+ fontSizeXxs: '0.75rem',
18
+ fontSizeXs: '0.875rem',
19
+ fontSizeSm: '1rem',
20
+ fontSizeMd: '1.125rem',
21
+ fontSizeLg: '1.25rem',
22
+ fontSizeXl: '1.375rem',
23
+ fontSizeXxl: '1.5rem',
24
+ // Button
25
+ btnRadius: '0.75rem',
26
+ btnPaddingX: '1rem',
27
+ btnPaddingY: '0.5rem',
28
+ btnMinHeight: '2.5rem',
29
+ // Card
30
+ cardRadius: '0.75rem',
31
+ cardPaddingDesktop: '1rem',
32
+ cardPaddingTablet: '1rem',
33
+ cardPaddingMobile: '0.75rem',
34
+ // Dialog
35
+ dialogPadding: '1.5rem',
36
+ // Input / Form
37
+ inputRadius: '0.5rem',
38
+ inputMinHeight: '2.625rem',
39
+ labelFontWeight: '700',
40
+ // Filter pills
41
+ filterRadius: '0.75rem',
42
+ filterPaddingX: '2rem',
43
+ filterPaddingY: '0.75rem',
44
+ filterFontWeight: '700',
45
+ // Tabs pills
46
+ tabsPillRadius: '0.75rem',
47
+ tabsPillPaddingX: '2rem',
48
+ tabsPillPaddingY: '0.5rem',
49
+ tabsPillFontWeight: '700',
50
+ // Multiple folding card button
51
+ multiFoldingBtnRadius: '0.75rem',
52
+ multiFoldingBtnPaddingX: '2rem',
53
+ multiFoldingBtnPaddingY: '0.5rem',
54
+ multiFoldingBtnFontWeight: '700',
55
+ // Switch
56
+ switchTrackHeight: '2rem',
57
+ switchTrackWidth: '3.5rem',
58
+ switchTrackTop: '0',
59
+ switchThumbHeight: '1.5rem',
60
+ switchThumbWidth: '1.5rem',
61
+ switchThumbTop: '0.25rem',
62
+ switchThumbElevation: '0',
63
+ switchWidth: '3.5rem',
64
+ switchTrackOpacity: '1',
57
65
  },
58
66
  }