@cnamts/synapse 1.0.27 → 1.1.1

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 (621) hide show
  1. package/README.md +1 -1
  2. package/dist/{AutocompleteFilter-C9eLKyW8.js → AutocompleteFilter-CGF33skz.js} +3 -3
  3. package/dist/{DateFilter-y-GLkAkn.js → DateFilter-D7-MsKtx.js} +8 -8
  4. package/dist/{NumberFilter-DN6hIBS7.js → NumberFilter-bjQPPfsj.js} +1 -1
  5. package/dist/{PeriodFilter-MoUUp9qS.js → PeriodFilter-B3wJpK8-.js} +1 -1
  6. package/dist/{SelectFilter-bCbrdLmu.js → SelectFilter-BN6DbKAV.js} +1 -1
  7. package/dist/{TextFilter-CvjgEaoM.js → TextFilter-BffP0J2f.js} +4 -4
  8. package/dist/{apLightTheme2026-ug4Y23ns.js → apLightTheme2026-C4ygwMHC.js} +23 -22
  9. package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +10 -10
  10. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.d.ts +4 -4
  11. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.d.ts +6 -6
  12. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +10 -10
  13. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +10 -10
  14. package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +4 -4
  15. package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +4 -4
  16. package/dist/components/Captcha/Captcha.d.ts +27 -16
  17. package/dist/components/Captcha/CaptchaForm.d.ts +29 -3
  18. package/dist/components/Captcha/types.d.ts +14 -0
  19. package/dist/components/Captcha/useCaptchaValidation.d.ts +37 -0
  20. package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +2 -2
  21. package/dist/components/Customs/Selects/SelectBtnField/SelectBtnField.d.ts +33 -13
  22. package/dist/components/Customs/Selects/SelectBtnField/composables/useSelectBtnFieldValidation.d.ts +23 -0
  23. package/dist/components/Customs/Selects/SyAutocomplete/SyAutocomplete.d.ts +85 -313
  24. package/dist/components/Customs/Selects/SyAutocomplete/composables/useSyAutocompleteValidation.d.ts +4 -4
  25. package/dist/components/Customs/Selects/SyInputSelect/SyInputSelect.d.ts +1 -1
  26. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +9 -11
  27. package/dist/components/Customs/Selects/SySelect/composables/useSySelectValidation.d.ts +7 -7
  28. package/dist/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.d.ts +18 -49
  29. package/dist/components/Customs/SyCheckBoxGroup/composables/useSyCheckBoxGroupValidation.d.ts +29 -0
  30. package/dist/components/Customs/SyCheckBoxGroup/types.d.ts +46 -0
  31. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +19 -54
  32. package/dist/components/Customs/SyCheckbox/composables/useSyCheckboxValidation.d.ts +27 -0
  33. package/dist/components/Customs/SyCheckbox/types.d.ts +49 -0
  34. package/dist/components/Customs/SyIcon/SyIcon.d.ts +77 -1
  35. package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +10 -10
  36. package/dist/components/Customs/SyTextField/FieldState.d.ts +5 -0
  37. package/dist/components/Customs/SyTextField/SyTextField.d.ts +19 -79
  38. package/dist/components/Customs/SyTextField/locales.d.ts +7 -0
  39. package/dist/components/Customs/SyTextField/types.d.ts +67 -4
  40. package/dist/components/Customs/SyTextField/useNumberField.d.ts +23 -0
  41. package/dist/components/Customs/SyTextField/useSyTextFieldValidation.d.ts +38 -0
  42. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +170 -622
  43. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +85 -311
  44. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +39 -152
  45. package/dist/components/DialogBox/DialogBox.d.ts +2 -0
  46. package/dist/components/DialogBox/locales.d.ts +1 -0
  47. package/dist/components/FilterInline/FilterInline.d.ts +3 -3
  48. package/dist/components/FilterSideBar/FilterSideBar.d.ts +8 -4
  49. package/dist/components/LunarCalendar/LunarCalendar.d.ts +43 -14
  50. package/dist/components/LunarCalendar/types.d.ts +35 -0
  51. package/dist/components/LunarCalendar/useLunarCalendarValidation.d.ts +11 -12
  52. package/dist/components/MonthPicker/MonthPicker.d.ts +72 -1860
  53. package/dist/components/MonthPicker/MonthPickerText/MonthPickerInput.d.ts +21 -1846
  54. package/dist/components/MonthPicker/MonthPickerText/useTextField.d.ts +5 -0
  55. package/dist/components/MonthPicker/locales.d.ts +1 -0
  56. package/dist/components/MonthPicker/types.d.ts +11 -0
  57. package/dist/components/MonthPicker/useMonthPickerValidation.d.ts +37 -24
  58. package/dist/components/NirField/NirField.d.ts +96 -325
  59. package/dist/components/NirField/useNirValidation.d.ts +17 -25
  60. package/dist/components/PageContainer/PageContainer.d.ts +8 -0
  61. package/dist/components/PasswordField/PasswordField.d.ts +18 -37
  62. package/dist/components/PasswordField/locales.d.ts +2 -0
  63. package/dist/components/PasswordField/types.d.ts +16 -0
  64. package/dist/components/PasswordField/usePasswordFieldValidation.d.ts +38 -0
  65. package/dist/components/PeriodField/PeriodField.d.ts +349 -1253
  66. package/dist/components/PhoneField/PhoneField.d.ts +960 -2051
  67. package/dist/components/PhoneField/indicatifs.d.ts +715 -8
  68. package/dist/components/PhoneField/locales.d.ts +7 -0
  69. package/dist/components/PhoneField/types.d.ts +29 -0
  70. package/dist/components/PhoneField/usePhoneFieldValidation.d.ts +45 -0
  71. package/dist/components/PhoneField/usePhoneIndicatifs.d.ts +947 -0
  72. package/dist/components/SearchListField/SearchListField.d.ts +3 -3
  73. package/dist/components/SyTextArea/SyTextArea.d.ts +14 -11
  74. package/dist/components/SyTextArea/composables/useSyTextAreaValidation.d.ts +7 -7
  75. package/dist/components/Tables/common/SyTablePagination.d.ts +19 -20
  76. package/dist/composables/unifyValidation/documentationValidationProps.d.ts +2 -2
  77. package/dist/composables/unifyValidation/useValidation.d.ts +4 -13
  78. package/dist/composables/useFilterable/useFilterable.d.ts +1 -2
  79. package/dist/design-system-v3.js +19 -19
  80. package/dist/designTokens/tokens/amelipro/apLightTheme.d.ts +11 -10
  81. package/dist/designTokens/tokens/baseTokens.d.ts +18 -18
  82. package/dist/designTokens/tokens/cnam/cnamLightTheme.d.ts +10 -10
  83. package/dist/designTokens/tokens/pa/paLightTheme.d.ts +11 -10
  84. package/dist/designTokens/tokens/semanticTokens.d.ts +14 -14
  85. package/dist/{main-CI6Q9nmO.js → main-C4wAktOs.js} +14999 -14025
  86. package/dist/synapse.css +1 -1
  87. package/dist/vuetifyConfig.js +27 -25
  88. package/package.json +12 -11
  89. package/src/assets/compat/_legacy-tokens.scss +91 -0
  90. package/src/assets/overrides/_utilities.scss +23 -0
  91. package/src/components/Accordion/Accordion.stories.ts +121 -1
  92. package/src/components/Accordion/tests/Accordion.visual.cy.ts +44 -0
  93. package/src/components/Accordion/tests/__snapshots__/accordion-default.snap.png +0 -0
  94. package/src/components/Accordion/tests/__snapshots__/accordion-disabled-item.snap.png +0 -0
  95. package/src/components/Accordion/tests/__snapshots__/accordion-open-first.snap.png +0 -0
  96. package/src/components/BackBtn/BackBtn.mdx +1 -1
  97. package/src/components/BackBtn/tests/__snapshots__/back-btn-custom-bg.snap.png +0 -0
  98. package/src/components/BackBtn/tests/__snapshots__/back-btn-dark-mode.snap.png +0 -0
  99. package/src/components/BackBtn/tests/__snapshots__/back-btn-default.snap.png +0 -0
  100. package/src/components/BackBtn/tests/__snapshots__/back-btn-no-icon.snap.png +0 -0
  101. package/src/components/BackToTopBtn/BackToTopBtn.mdx +0 -1
  102. package/src/components/BackToTopBtn/tests/BackToTopBtn.visual.cy.ts +34 -0
  103. package/src/components/BackToTopBtn/tests/__snapshots__/back-to-top-btn-custom-nudge.snap.png +0 -0
  104. package/src/components/BackToTopBtn/tests/__snapshots__/back-to-top-btn-default.snap.png +0 -0
  105. package/src/components/Captcha/Captcha.stories.ts +134 -31
  106. package/src/components/Captcha/Captcha.vue +95 -28
  107. package/src/components/Captcha/CaptchaForm.vue +51 -22
  108. package/src/components/Captcha/tests/Captcha.focus.spec.ts +214 -0
  109. package/src/components/Captcha/tests/Captcha.spec.ts +233 -24
  110. package/src/components/Captcha/tests/Captcha.visual.cy.ts +45 -0
  111. package/src/components/Captcha/tests/CaptchaForm.spec.ts +82 -0
  112. package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +20 -42
  113. package/src/components/Captcha/tests/__snapshots__/captcha-audio-type.snap.png +0 -0
  114. package/src/components/Captcha/tests/__snapshots__/captcha-image-type.snap.png +0 -0
  115. package/src/components/Captcha/tests/__snapshots__/captcha-no-helpdesk.snap.png +0 -0
  116. package/src/components/Captcha/types.ts +15 -0
  117. package/src/components/Captcha/useCaptchaValidation.ts +87 -0
  118. package/src/components/Captcha/validation/validation.stories.ts +1194 -0
  119. package/src/components/ChipList/ChipList.mdx +0 -1
  120. package/src/components/ChipList/tests/ChipList.visual.cy.ts +46 -0
  121. package/src/components/ChipList/tests/__snapshots__/chip-list-default.snap.png +0 -0
  122. package/src/components/ChipList/tests/__snapshots__/chip-list-readonly.snap.png +0 -0
  123. package/src/components/ChipList/tests/__snapshots__/chip-list-state-icons.snap.png +0 -0
  124. package/src/components/CollapsibleList/CollapsibleList.mdx +0 -1
  125. package/src/components/CollapsibleList/tests/CollapsibleList.visual.cy.ts +33 -0
  126. package/src/components/CollapsibleList/tests/__snapshots__/collapsible-list-default.snap.png +0 -0
  127. package/src/components/CollapsibleList/tests/__snapshots__/collapsible-list-no-title.snap.png +0 -0
  128. package/src/components/ContextualMenu/tests/ContextualMenu.visual.cy.ts +35 -0
  129. package/src/components/ContextualMenu/tests/__snapshots__/contextual-menu-default.snap.png +0 -0
  130. package/src/components/ContextualMenu/tests/__snapshots__/contextual-menu-selected.snap.png +0 -0
  131. package/src/components/CookieBanner/CookieBanner.mdx +0 -1
  132. package/src/components/CookieBanner/tests/CookieBanner.visual.cy.ts +29 -0
  133. package/src/components/CookieBanner/tests/__snapshots__/cookie-banner-default.snap.png +0 -0
  134. package/src/components/CookieBanner/tests/__snapshots__/cookie-banner-with-items.snap.png +0 -0
  135. package/src/components/CookiesSelection/tests/CookiesSelection.visual.cy.ts +21 -0
  136. package/src/components/CookiesSelection/tests/__snapshots__/cookies-selection-default.snap.png +0 -0
  137. package/src/components/CopyBtn/CopyBtn.mdx +0 -1
  138. package/src/components/CopyBtn/tests/CopyBtn.visual.cy.ts +24 -0
  139. package/src/components/CopyBtn/tests/__snapshots__/copy-btn-default.snap.png +0 -0
  140. package/src/components/CopyBtn/tests/__snapshots__/copy-btn-no-tooltip.snap.png +0 -0
  141. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.stories.ts +123 -439
  142. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.vue +147 -41
  143. package/src/components/Customs/Selects/SelectBtnField/Validation/Validation.stories.ts +600 -0
  144. package/src/components/Customs/Selects/SelectBtnField/composables/useSelectBtnFieldValidation.ts +87 -0
  145. package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.spec.ts +402 -33
  146. package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.visual.cy.ts +60 -0
  147. package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/SelectBtnField.spec.ts.snap +52 -38
  148. package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/select-btn-field-default.snap.png +0 -0
  149. package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/select-btn-field-inline.snap.png +0 -0
  150. package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/select-btn-field-readonly.snap.png +0 -0
  151. package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/select-btn-field-selected.snap.png +0 -0
  152. package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.vue +1 -1
  153. package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.spec.ts +2 -0
  154. package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.visual.cy.ts +63 -0
  155. package/src/components/Customs/Selects/SyAutocomplete/tests/__snapshots__/sy-autocomplete-default.snap.png +0 -0
  156. package/src/components/Customs/Selects/SyAutocomplete/tests/__snapshots__/sy-autocomplete-loading.snap.png +0 -0
  157. package/src/components/Customs/Selects/SyAutocomplete/tests/__snapshots__/sy-autocomplete-multiple.snap.png +0 -0
  158. package/src/components/Customs/Selects/SyAutocomplete/tests/__snapshots__/sy-autocomplete-with-value.snap.png +0 -0
  159. package/src/components/Customs/Selects/SyAutocomplete/validation/Validation.stories.ts +0 -93
  160. package/src/components/Customs/Selects/SyInputSelect/tests/SyInputSelect.visual.cy.ts +48 -0
  161. package/src/components/Customs/Selects/SyInputSelect/tests/__snapshots__/sy-input-select-default.snap.png +0 -0
  162. package/src/components/Customs/Selects/SyInputSelect/tests/__snapshots__/sy-input-select-required.snap.png +0 -0
  163. package/src/components/Customs/Selects/SyInputSelect/tests/__snapshots__/sy-input-select-with-value.snap.png +0 -0
  164. package/src/components/Customs/Selects/SySelect/SySelect.vue +22 -47
  165. package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +3 -3
  166. package/src/components/Customs/Selects/SySelect/tests/SySelect.visual.cy.ts +77 -0
  167. package/src/components/Customs/Selects/SySelect/tests/__snapshots__/sy-select-clearable.snap.png +0 -0
  168. package/src/components/Customs/Selects/SySelect/tests/__snapshots__/sy-select-default.snap.png +0 -0
  169. package/src/components/Customs/Selects/SySelect/tests/__snapshots__/sy-select-multiple-chips.snap.png +0 -0
  170. package/src/components/Customs/Selects/SySelect/tests/__snapshots__/sy-select-required.snap.png +0 -0
  171. package/src/components/Customs/Selects/SySelect/tests/__snapshots__/sy-select-with-value.snap.png +0 -0
  172. package/src/components/Customs/Selects/SySelect/validation/Validation.stories.ts +1 -92
  173. package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.stories.ts +342 -162
  174. package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.vue +77 -129
  175. package/src/components/Customs/SyCheckBoxGroup/Validation/Validation.stories.ts +1008 -0
  176. package/src/components/Customs/SyCheckBoxGroup/composables/useSyCheckBoxGroupValidation.ts +107 -0
  177. package/src/components/Customs/SyCheckBoxGroup/tests/SyCheckBoxGroup.spec.ts +180 -7
  178. package/src/components/Customs/SyCheckBoxGroup/tests/SyCheckBoxGroup.visual.cy.ts +55 -0
  179. package/src/components/Customs/SyCheckBoxGroup/tests/__snapshots__/sy-checkbox-group-default.snap.png +0 -0
  180. package/src/components/Customs/SyCheckBoxGroup/tests/__snapshots__/sy-checkbox-group-disabled.snap.png +0 -0
  181. package/src/components/Customs/SyCheckBoxGroup/tests/__snapshots__/sy-checkbox-group-selected.snap.png +0 -0
  182. package/src/components/Customs/SyCheckBoxGroup/tests/__snapshots__/sy-checkbox-group-with-label.snap.png +0 -0
  183. package/src/components/Customs/SyCheckBoxGroup/types.ts +49 -0
  184. package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +41 -161
  185. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +71 -156
  186. package/src/components/Customs/SyCheckbox/Validation/Validation.stories.ts +654 -0
  187. package/src/components/Customs/SyCheckbox/composables/useSyCheckboxValidation.ts +105 -0
  188. package/src/components/Customs/SyCheckbox/tests/SyCheckbox.spec.ts +106 -0
  189. package/src/components/Customs/SyCheckbox/tests/SyCheckbox.visual.cy.ts +61 -0
  190. package/src/components/Customs/SyCheckbox/tests/__snapshots__/sy-checkbox-checked.snap.png +0 -0
  191. package/src/components/Customs/SyCheckbox/tests/__snapshots__/sy-checkbox-disabled.snap.png +0 -0
  192. package/src/components/Customs/SyCheckbox/tests/__snapshots__/sy-checkbox-indeterminate.snap.png +0 -0
  193. package/src/components/Customs/SyCheckbox/tests/__snapshots__/sy-checkbox-required.snap.png +0 -0
  194. package/src/components/Customs/SyCheckbox/tests/__snapshots__/sy-checkbox-unchecked.snap.png +0 -0
  195. package/src/components/Customs/SyCheckbox/tests/useSyCheckboxValidation.spec.ts +98 -0
  196. package/src/components/Customs/SyCheckbox/types.ts +51 -0
  197. package/src/components/Customs/SyIcon/SyIcon.vue +19 -1
  198. package/src/components/Customs/SyIcon/tests/SyIcon.visual.cy.ts +83 -0
  199. package/src/components/Customs/SyIcon/tests/__snapshots__/sy-icon-color-error.snap.png +0 -0
  200. package/src/components/Customs/SyIcon/tests/__snapshots__/sy-icon-decorative.snap.png +0 -0
  201. package/src/components/Customs/SyIcon/tests/__snapshots__/sy-icon-informative.snap.png +0 -0
  202. package/src/components/Customs/SyIcon/tests/__snapshots__/sy-icon-role-button.snap.png +0 -0
  203. package/src/components/Customs/SyIcon/tests/__snapshots__/sy-icon-size-large.snap.png +0 -0
  204. package/src/components/Customs/SyIconButton/tests/SyIconButton.visual.cy.ts +55 -0
  205. package/src/components/Customs/SyIconButton/tests/__snapshots__/sy-icon-button-default.snap.png +0 -0
  206. package/src/components/Customs/SyIconButton/tests/__snapshots__/sy-icon-button-disabled.snap.png +0 -0
  207. package/src/components/Customs/SyIconButton/tests/__snapshots__/sy-icon-button-error.snap.png +0 -0
  208. package/src/components/Customs/SyIconButton/tests/__snapshots__/sy-icon-button-large.snap.png +0 -0
  209. package/src/components/Customs/SyPagination/tests/SyPagination.visual.cy.ts +40 -0
  210. package/src/components/Customs/SyPagination/tests/__snapshots__/sy-pagination-first-page.snap.png +0 -0
  211. package/src/components/Customs/SyPagination/tests/__snapshots__/sy-pagination-middle-page.snap.png +0 -0
  212. package/src/components/Customs/SyPagination/tests/__snapshots__/sy-pagination-with-label.snap.png +0 -0
  213. package/src/components/Customs/SyRadioGroup/SyRadioGroup.stories.ts +0 -1
  214. package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +4 -3
  215. package/src/components/Customs/SyRadioGroup/composables/useSyRadioGroupValidation.ts +1 -1
  216. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-asterisk.snap.png +0 -0
  217. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-comfortable.snap.png +0 -0
  218. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-compact.snap.png +0 -0
  219. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-default.snap.png +0 -0
  220. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-disabled.snap.png +0 -0
  221. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-error.snap.png +0 -0
  222. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-no-details.snap.png +0 -0
  223. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-readonly.snap.png +0 -0
  224. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-selected.snap.png +0 -0
  225. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-success.snap.png +0 -0
  226. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-warning.snap.png +0 -0
  227. package/src/components/Customs/SyRadioGroup/validation/Validation.stories.ts +63 -27
  228. package/src/components/Customs/SyTabs/tests/SyTabs.visual.cy.ts +30 -0
  229. package/src/components/Customs/SyTabs/tests/__snapshots__/sy-tabs-default.snap.png +0 -0
  230. package/src/components/Customs/SyTabs/tests/__snapshots__/sy-tabs-second-active.snap.png +0 -0
  231. package/src/components/Customs/SyTextField/FieldState.vue +50 -0
  232. package/src/components/Customs/SyTextField/SyTextField.stories.ts +160 -778
  233. package/src/components/Customs/SyTextField/SyTextField.vue +178 -160
  234. package/src/components/Customs/SyTextField/Validation/Validation.stories.ts +1164 -0
  235. package/src/components/Customs/SyTextField/locales.ts +12 -0
  236. package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +174 -8
  237. package/src/components/Customs/SyTextField/tests/SyTextField.visual.cy.ts +116 -0
  238. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-clearable.snap.png +0 -0
  239. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-default.snap.png +0 -0
  240. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-number-disabled.snap.png +0 -0
  241. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-number-no-spinner.snap.png +0 -0
  242. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-number.snap.png +0 -0
  243. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-prepend-icon.snap.png +0 -0
  244. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-readonly.snap.png +0 -0
  245. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-required.snap.png +0 -0
  246. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-with-value.snap.png +0 -0
  247. package/src/components/Customs/SyTextField/types.ts +70 -0
  248. package/src/components/Customs/SyTextField/useNumberField.ts +93 -0
  249. package/src/components/Customs/SyTextField/useSyTextFieldValidation.ts +95 -0
  250. package/src/components/DataList/DataList.mdx +0 -1
  251. package/src/components/DataList/tests/DataList.visual.cy.ts +85 -0
  252. package/src/components/DataList/tests/__snapshots__/data-list-default.snap.png +0 -0
  253. package/src/components/DataList/tests/__snapshots__/data-list-loading.snap.png +0 -0
  254. package/src/components/DataList/tests/__snapshots__/data-list-row.snap.png +0 -0
  255. package/src/components/DataList/tests/__snapshots__/data-list-with-icons.snap.png +0 -0
  256. package/src/components/DataList/tests/__snapshots__/data-list-with-title.snap.png +0 -0
  257. package/src/components/DataListGroup/DataListGroup.mdx +0 -1
  258. package/src/components/DataListGroup/tests/DataListGroup.visual.cy.ts +51 -0
  259. package/src/components/DataListGroup/tests/__snapshots__/data-list-group-default.snap.png +0 -0
  260. package/src/components/DataListGroup/tests/__snapshots__/data-list-group-loading.snap.png +0 -0
  261. package/src/components/DataListItem/tests/DataListItem.visual.cy.ts +53 -0
  262. package/src/components/DataListItem/tests/__snapshots__/data-list-item-chip.snap.png +0 -0
  263. package/src/components/DataListItem/tests/__snapshots__/data-list-item-default.snap.png +0 -0
  264. package/src/components/DataListItem/tests/__snapshots__/data-list-item-placeholder.snap.png +0 -0
  265. package/src/components/DataListItem/tests/__snapshots__/data-list-item-row.snap.png +0 -0
  266. package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +1 -1
  267. package/src/components/DatePicker/CalendarMode/DatePicker.vue +7 -7
  268. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +1 -1
  269. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +7 -8
  270. package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +1 -1
  271. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +2 -2
  272. package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +1 -1
  273. package/src/components/DatePicker/composables/tests/useTodayButton.spec.ts +10 -10
  274. package/src/components/DatePicker/composables/useCalendarKeyboardNavigation.ts +11 -2
  275. package/src/components/DeclarationAccessibilityPage/tests/DeclarationAccessibilityPage.visual.cy.ts +35 -0
  276. package/src/components/DeclarationAccessibilityPage/tests/__snapshots__/declaration-a11y-page-default.snap.png +0 -0
  277. package/src/components/DeclarationAccessibilityPage/tests/__snapshots__/declaration-a11y-page-full.snap.png +0 -0
  278. package/src/components/DiacriticPicker/DiacriticPicker.mdx +0 -1
  279. package/src/components/DiacriticPicker/tests/DiacriticPicker.visual.cy.ts +24 -0
  280. package/src/components/DiacriticPicker/tests/__snapshots__/diacritic-picker-custom-title.snap.png +0 -0
  281. package/src/components/DiacriticPicker/tests/__snapshots__/diacritic-picker-default.snap.png +0 -0
  282. package/src/components/DialogBox/DialogBox.mdx +0 -1
  283. package/src/components/DialogBox/DialogBox.stories.ts +399 -4
  284. package/src/components/DialogBox/DialogBox.vue +20 -0
  285. package/src/components/DialogBox/locales.ts +1 -0
  286. package/src/components/DialogBox/tests/DialogBox.spec.ts +73 -0
  287. package/src/components/DialogBox/tests/DialogBox.visual.cy.ts +24 -0
  288. package/src/components/DialogBox/tests/__snapshots__/dialog-box-custom-texts.snap.png +0 -0
  289. package/src/components/DialogBox/tests/__snapshots__/dialog-box-default.snap.png +0 -0
  290. package/src/components/DialogBox/tests/__snapshots__/dialog-box-no-actions.snap.png +0 -0
  291. package/src/components/DownloadBtn/tests/DownloadBtn.spec.ts +2 -2
  292. package/src/components/DownloadBtn/tests/DownloadBtn.visual.cy.ts +38 -0
  293. package/src/components/DownloadBtn/tests/__snapshots__/download-btn-dark.snap.png +0 -0
  294. package/src/components/DownloadBtn/tests/__snapshots__/download-btn-idle.snap.png +0 -0
  295. package/src/components/ErrorPage/ErrorPage.mdx +1 -1
  296. package/src/components/ErrorPage/tests/ErrorPage.visual.cy.ts +32 -0
  297. package/src/components/ErrorPage/tests/__snapshots__/error-page-custom.snap.png +0 -0
  298. package/src/components/ErrorPage/tests/__snapshots__/error-page-default.snap.png +0 -0
  299. package/src/components/ErrorPage/tests/__snapshots__/error-page-no-btn.snap.png +0 -0
  300. package/src/components/ExternalLinks/ExternalLinks.mdx +0 -1
  301. package/src/components/ExternalLinks/tests/ExternalLinks.visual.cy.ts +30 -0
  302. package/src/components/ExternalLinks/tests/__snapshots__/external-links-default.snap.png +0 -0
  303. package/src/components/ExternalLinks/tests/__snapshots__/external-links-fixed.snap.png +0 -0
  304. package/src/components/FileList/FileList.mdx +0 -1
  305. package/src/components/FileList/tests/FileList.visual.cy.ts +31 -0
  306. package/src/components/FileList/tests/__snapshots__/file-list-default.snap.png +0 -0
  307. package/src/components/FileList/tests/__snapshots__/file-list-with-delete.snap.png +0 -0
  308. package/src/components/FilePreview/accessibilite/Accessibility.mdx +86 -8
  309. package/src/components/FileUpload/tests/FileUpload.visual.cy.ts +36 -0
  310. package/src/components/FileUpload/tests/__snapshots__/file-upload-default.snap.png +0 -0
  311. package/src/components/FileUpload/tests/__snapshots__/file-upload-disabled.snap.png +0 -0
  312. package/src/components/FileUpload/tests/__snapshots__/file-upload-multiple.snap.png +0 -0
  313. package/src/components/FilterInline/FilterInline.mdx +0 -1
  314. package/src/components/FilterInline/FilterInline.stories.ts +2 -0
  315. package/src/components/FilterInline/FilterInline.vue +10 -5
  316. package/src/components/FilterInline/tests/FilterInline.visual.cy.ts +25 -0
  317. package/src/components/FilterInline/tests/__snapshots__/filter-inline-default.snap.png +0 -0
  318. package/src/components/FilterSideBar/FilterSideBar.mdx +8 -1
  319. package/src/components/FilterSideBar/FilterSideBar.stories.ts +136 -1
  320. package/src/components/FilterSideBar/FilterSideBar.vue +30 -8
  321. package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +55 -0
  322. package/src/components/FilterSideBar/tests/FilterSideBar.visual.cy.ts +37 -0
  323. package/src/components/FilterSideBar/tests/__snapshots__/filter-sidebar-default.snap.png +0 -0
  324. package/src/components/FilterSideBar/tests/__snapshots__/filter-sidebar-modale.snap.png +0 -0
  325. package/src/components/FooterBar/FooterBar.mdx +0 -1
  326. package/src/components/FooterBar/tests/FooterBar.visual.cy.ts +37 -0
  327. package/src/components/FooterBar/tests/__snapshots__/footer-bar-default.snap.png +0 -0
  328. package/src/components/FooterBar/tests/__snapshots__/footer-bar-no-logo.snap.png +0 -0
  329. package/src/components/FooterBar/tests/__snapshots__/footer-bar-no-social.snap.png +0 -0
  330. package/src/components/FooterBar/tests/__snapshots__/footer-bar-version.snap.png +0 -0
  331. package/src/components/FranceConnectBtn/FranceConnectBtn.mdx +0 -1
  332. package/src/components/FranceConnectBtn/tests/FranceConnectBtn.visual.cy.ts +38 -0
  333. package/src/components/FranceConnectBtn/tests/__snapshots__/france-connect-btn-dark.snap.png +0 -0
  334. package/src/components/FranceConnectBtn/tests/__snapshots__/france-connect-btn-default.snap.png +0 -0
  335. package/src/components/FranceConnectBtn/tests/__snapshots__/france-connect-btn-plus.snap.png +0 -0
  336. package/src/components/HeaderBar/HeaderBar.mdx +0 -1
  337. package/src/components/HeaderBar/HeaderBurgerMenu/tests/HeaderBurgerMenu.spec.ts +4 -4
  338. package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/header-burger-menu-generated-submenu-open.snap.png +0 -0
  339. package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/header-burger-menu-generated.snap.png +0 -0
  340. package/src/components/HeaderBar/tests/__snapshots__/header-bar-custom-width.snap.png +0 -0
  341. package/src/components/HeaderBar/tests/__snapshots__/header-bar-default.snap.png +0 -0
  342. package/src/components/HeaderBar/tests/__snapshots__/header-bar-no-sticky.snap.png +0 -0
  343. package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-prepend.snap.png +0 -0
  344. package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-side.snap.png +0 -0
  345. package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-subtitle.snap.png +0 -0
  346. package/src/components/HeaderLoading/HeaderLoading.mdx +0 -1
  347. package/src/components/HeaderLoading/tests/HeaderLoading.visual.cy.ts +34 -0
  348. package/src/components/HeaderLoading/tests/__snapshots__/header-loading-custom-size.snap.png +0 -0
  349. package/src/components/HeaderLoading/tests/__snapshots__/header-loading-default.snap.png +0 -0
  350. package/src/components/HeaderLoading/tests/__snapshots__/header-loading-standalone.snap.png +0 -0
  351. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.spec.ts +4 -4
  352. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.visual.cy.ts +34 -0
  353. package/src/components/HeaderNavigationBar/tests/__snapshots__/header-navigation-bar-default.snap.png +0 -0
  354. package/src/components/HeaderNavigationBar/tests/__snapshots__/header-navigation-bar-subtitle.snap.png +0 -0
  355. package/src/components/HeaderToolbar/tests/HeaderToolbar.visual.cy.ts +25 -0
  356. package/src/components/HeaderToolbar/tests/__snapshots__/header-toolbar-custom.snap.png +0 -0
  357. package/src/components/HeaderToolbar/tests/__snapshots__/header-toolbar-default.snap.png +0 -0
  358. package/src/components/LangBtn/LangBtn.mdx +0 -1
  359. package/src/components/LangBtn/tests/LangBtn.visual.cy.ts +33 -0
  360. package/src/components/LangBtn/tests/__snapshots__/lang-btn-default.snap.png +0 -0
  361. package/src/components/LangBtn/tests/__snapshots__/lang-btn-english.snap.png +0 -0
  362. package/src/components/LangBtn/tests/__snapshots__/lang-btn-no-arrow.snap.png +0 -0
  363. package/src/components/Logo/Logo.mdx +1 -1
  364. package/src/components/Logo/tests/__snapshots__/logo-avatar.snap.png +0 -0
  365. package/src/components/Logo/tests/__snapshots__/logo-dark.snap.png +0 -0
  366. package/src/components/Logo/tests/__snapshots__/logo-default.snap.png +0 -0
  367. package/src/components/Logo/tests/__snapshots__/logo-no-organism.snap.png +0 -0
  368. package/src/components/Logo/tests/__snapshots__/logo-no-signature.snap.png +0 -0
  369. package/src/components/Logo/tests/__snapshots__/logo-risque-pro.snap.png +0 -0
  370. package/src/components/LogoBrandSection/tests/LogoBrandSection.visual.cy.ts +43 -0
  371. package/src/components/LogoBrandSection/tests/__snapshots__/logo-brand-section-default.snap.png +0 -0
  372. package/src/components/LogoBrandSection/tests/__snapshots__/logo-brand-section-mobile.snap.png +0 -0
  373. package/src/components/LogoBrandSection/tests/__snapshots__/logo-brand-section-reduced.snap.png +0 -0
  374. package/src/components/LogoBrandSection/tests/__snapshots__/logo-brand-section-with-title.snap.png +0 -0
  375. package/src/components/LunarCalendar/LunarCalendar.mdx +6 -9
  376. package/src/components/LunarCalendar/LunarCalendar.stories.ts +243 -46
  377. package/src/components/LunarCalendar/LunarCalendar.vue +61 -26
  378. package/src/components/LunarCalendar/Validation/Validation.stories.ts +717 -0
  379. package/src/components/LunarCalendar/tests/LunarCalendar.a11y.spec.ts +1 -1
  380. package/src/components/LunarCalendar/tests/LunarCalendar.spec.ts +197 -6
  381. package/src/components/LunarCalendar/tests/LunarCalendar.visual.cy.ts +36 -0
  382. package/src/components/LunarCalendar/tests/__snapshots__/lunar-calendar-default.snap.png +0 -0
  383. package/src/components/LunarCalendar/tests/__snapshots__/lunar-calendar-required.snap.png +0 -0
  384. package/src/components/LunarCalendar/tests/__snapshots__/lunar-calendar-with-value.snap.png +0 -0
  385. package/src/components/LunarCalendar/tests/useLunarCalendarValidation.spec.ts +287 -0
  386. package/src/components/LunarCalendar/types.ts +39 -0
  387. package/src/components/LunarCalendar/useLunarCalendarValidation.ts +115 -39
  388. package/src/components/MaintenancePage/tests/MaintenancePage.visual.cy.ts +22 -0
  389. package/src/components/MaintenancePage/tests/__snapshots__/maintenance-page-custom.snap.png +0 -0
  390. package/src/components/MaintenancePage/tests/__snapshots__/maintenance-page-default.snap.png +0 -0
  391. package/src/components/MonthPicker/MonthPicker.stories.ts +38 -281
  392. package/src/components/MonthPicker/MonthPicker.vue +66 -17
  393. package/src/components/MonthPicker/MonthPickerText/MonthPickerInput.vue +44 -20
  394. package/src/components/MonthPicker/MonthPickerText/useTextField.ts +5 -0
  395. package/src/components/MonthPicker/Validation/Validation.stories.ts +1117 -0
  396. package/src/components/MonthPicker/locales.ts +1 -0
  397. package/src/components/MonthPicker/tests/MonthPicker.spec.ts +353 -2
  398. package/src/components/MonthPicker/tests/MonthPicker.visual.cy.ts +37 -0
  399. package/src/components/MonthPicker/tests/__snapshots__/MonthPicker.spec.ts.snap +14 -8
  400. package/src/components/MonthPicker/tests/__snapshots__/month-picker-default.snap.png +0 -0
  401. package/src/components/MonthPicker/tests/__snapshots__/month-picker-disabled.snap.png +0 -0
  402. package/src/components/MonthPicker/tests/__snapshots__/month-picker-readonly.snap.png +0 -0
  403. package/src/components/MonthPicker/tests/__snapshots__/month-picker-with-value.snap.png +0 -0
  404. package/src/components/MonthPicker/types.ts +16 -0
  405. package/src/components/MonthPicker/useMonthPickerValidation.ts +64 -27
  406. package/src/components/NirField/NirField.mdx +120 -66
  407. package/src/components/NirField/NirField.stories.ts +256 -682
  408. package/src/components/NirField/NirField.vue +98 -32
  409. package/src/components/NirField/tests/NirField.spec.ts +135 -14
  410. package/src/components/NirField/tests/NirField.visual.cy.ts +28 -0
  411. package/src/components/NirField/tests/__snapshots__/nir-field-complex.snap.png +0 -0
  412. package/src/components/NirField/tests/__snapshots__/nir-field-default.snap.png +0 -0
  413. package/src/components/NirField/tests/__snapshots__/nir-field-with-key.snap.png +0 -0
  414. package/src/components/NirField/tests/useNirValidation.spec.ts +168 -0
  415. package/src/components/NirField/useNirValidation.ts +44 -19
  416. package/src/components/NirField/validation/Validation.stories.ts +866 -0
  417. package/src/components/NotFoundPage/tests/NotFoundPage.visual.cy.ts +28 -0
  418. package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +263 -245
  419. package/src/components/NotFoundPage/tests/__snapshots__/not-found-page-custom-btn.snap.png +0 -0
  420. package/src/components/NotFoundPage/tests/__snapshots__/not-found-page-default.snap.png +0 -0
  421. package/src/components/NotFoundPage/tests/__snapshots__/not-found-page-no-btn.snap.png +0 -0
  422. package/src/components/NotificationBar/NotificationBar.mdx +0 -1
  423. package/src/components/NotificationBar/tests/NotificationBar.visual.cy.ts +54 -0
  424. package/src/components/NotificationBar/tests/__snapshots__/notification-bar-bottom.snap.png +0 -0
  425. package/src/components/NotificationBar/tests/__snapshots__/notification-bar-info.snap.png +0 -0
  426. package/src/components/NotificationBar/tests/__snapshots__/notification-bar-multiple.snap.png +0 -0
  427. package/src/components/PageContainer/PageContainer.mdx +0 -1
  428. package/src/components/PageContainer/PageContainer.stories.ts +170 -2
  429. package/src/components/PageContainer/PageContainer.vue +63 -8
  430. package/src/components/PageContainer/tests/PageContainer.visual.cy.ts +33 -0
  431. package/src/components/PageContainer/tests/__snapshots__/PageContainer.spec.ts.snap +19 -11
  432. package/src/components/PageContainer/tests/__snapshots__/page-container-color.snap.png +0 -0
  433. package/src/components/PageContainer/tests/__snapshots__/page-container-default.snap.png +0 -0
  434. package/src/components/PageContainer/tests/__snapshots__/page-container-md.snap.png +0 -0
  435. package/src/components/PaginatedTable/PaginatedTable.mdx +0 -1
  436. package/src/components/PaginatedTable/accessibilite/Accessibility.mdx +99 -7
  437. package/src/components/PaginatedTable/tests/PaginatedTable.visual.cy.ts +41 -0
  438. package/src/components/PaginatedTable/tests/__snapshots__/paginated-table-default.snap.png +0 -0
  439. package/src/components/PaginatedTable/tests/__snapshots__/paginated-table-server.snap.png +0 -0
  440. package/src/components/PasswordField/PasswordField.mdx +5 -52
  441. package/src/components/PasswordField/PasswordField.stories.ts +74 -931
  442. package/src/components/PasswordField/PasswordField.vue +120 -191
  443. package/src/components/PasswordField/Validation/Validation.stories.ts +1295 -0
  444. package/src/components/PasswordField/locales.ts +2 -0
  445. package/src/components/PasswordField/tests/PasswordField.spec.ts +144 -106
  446. package/src/components/PasswordField/tests/PasswordField.visual.cy.ts +49 -0
  447. package/src/components/PasswordField/tests/__snapshots__/password-field-default.snap.png +0 -0
  448. package/src/components/PasswordField/tests/__snapshots__/password-field-disabled.snap.png +0 -0
  449. package/src/components/PasswordField/tests/__snapshots__/password-field-required.snap.png +0 -0
  450. package/src/components/PasswordField/tests/__snapshots__/password-field-underlined.snap.png +0 -0
  451. package/src/components/PasswordField/types.ts +17 -0
  452. package/src/components/PasswordField/usePasswordFieldValidation.ts +100 -0
  453. package/src/components/PeriodField/PeriodField.mdx +0 -1
  454. package/src/components/PeriodField/PeriodField.stories.ts +3 -1
  455. package/src/components/PeriodField/PeriodField.vue +1 -1
  456. package/src/components/PeriodField/tests/PeriodField.visual.cy.ts +39 -0
  457. package/src/components/PeriodField/tests/__snapshots__/period-field-default.snap.png +0 -0
  458. package/src/components/PeriodField/tests/__snapshots__/period-field-no-calendar.snap.png +0 -0
  459. package/src/components/PeriodField/tests/__snapshots__/period-field-required.snap.png +0 -0
  460. package/src/components/PeriodField/tests/__snapshots__/period-field-with-value.snap.png +0 -0
  461. package/src/components/PhoneField/PhoneField.mdx +2 -3
  462. package/src/components/PhoneField/PhoneField.stories.ts +227 -410
  463. package/src/components/PhoneField/PhoneField.vue +205 -439
  464. package/src/components/PhoneField/indicatifs.ts +1 -1
  465. package/src/components/PhoneField/locales.ts +7 -0
  466. package/src/components/PhoneField/tests/PhoneField.a11y.spec.ts +0 -1
  467. package/src/components/PhoneField/tests/PhoneField.spec.ts +518 -220
  468. package/src/components/PhoneField/tests/PhoneField.visual.cy.ts +28 -0
  469. package/src/components/PhoneField/tests/__snapshots__/phone-field-default.snap.png +0 -0
  470. package/src/components/PhoneField/tests/__snapshots__/phone-field-with-country-code.snap.png +0 -0
  471. package/src/components/PhoneField/tests/__snapshots__/phone-field-with-value.snap.png +0 -0
  472. package/src/components/PhoneField/types.ts +30 -0
  473. package/src/components/PhoneField/usePhoneFieldValidation.ts +119 -0
  474. package/src/components/PhoneField/usePhoneIndicatifs.ts +89 -0
  475. package/src/components/PhoneField/validation/validation.stories.ts +717 -0
  476. package/src/components/RangeField/RangeField.mdx +0 -1
  477. package/src/components/RangeField/tests/__snapshots__/range-field-custom-bg.snap.png +0 -0
  478. package/src/components/RangeField/tests/__snapshots__/range-field-custom-range.snap.png +0 -0
  479. package/src/components/RangeField/tests/__snapshots__/range-field-default.snap.png +0 -0
  480. package/src/components/RangeField/tests/__snapshots__/range-field-step.snap.png +0 -0
  481. package/src/components/RangeField/tests/__snapshots__/range-field-with-label.snap.png +0 -0
  482. package/src/components/RatingPicker/RatingPicker.mdx +0 -1
  483. package/src/components/RatingPicker/tests/RatingPicker.visual.cy.ts +52 -0
  484. package/src/components/RatingPicker/tests/__snapshots__/rating-picker-emotion.snap.png +0 -0
  485. package/src/components/RatingPicker/tests/__snapshots__/rating-picker-number.snap.png +0 -0
  486. package/src/components/RatingPicker/tests/__snapshots__/rating-picker-readonly.snap.png +0 -0
  487. package/src/components/RatingPicker/tests/__snapshots__/rating-picker-stars.snap.png +0 -0
  488. package/src/components/SearchListField/SearchListField.mdx +1 -1
  489. package/src/components/SearchListField/SearchListField.stories.ts +1 -1
  490. package/src/components/SearchListField/SearchListField.vue +9 -4
  491. package/src/components/SearchListField/tests/SearchListField.spec.ts +127 -0
  492. package/src/components/SearchListField/tests/SearchListField.visual.cy.ts +35 -0
  493. package/src/components/SearchListField/tests/__snapshots__/search-list-field-default.snap.png +0 -0
  494. package/src/components/SearchListField/tests/__snapshots__/search-list-field-with-selection.snap.png +0 -0
  495. package/src/components/SkipLink/tests/SkipLink.visual.cy.ts +16 -0
  496. package/src/components/SkipLink/tests/__snapshots__/skip-link-focused.snap.png +0 -0
  497. package/src/components/SocialMediaLinks/SocialMediaLinks.mdx +0 -1
  498. package/src/components/SocialMediaLinks/tests/SocialMediaLinks.visual.cy.ts +33 -0
  499. package/src/components/SocialMediaLinks/tests/__snapshots__/social-media-links-default.snap.png +0 -0
  500. package/src/components/SocialMediaLinks/tests/__snapshots__/social-media-links-no-native-heading.snap.png +0 -0
  501. package/src/components/StatusPage/StatusPage.vue +1 -0
  502. package/src/components/StatusPage/tests/StatusPage.visual.cy.ts +47 -0
  503. package/src/components/StatusPage/tests/__snapshots__/StatusPage.spec.ts.snap +248 -230
  504. package/src/components/StatusPage/tests/__snapshots__/status-page-default.snap.png +0 -0
  505. package/src/components/StatusPage/tests/__snapshots__/status-page-full.snap.png +0 -0
  506. package/src/components/StatusPage/tests/__snapshots__/status-page-no-btn.snap.png +0 -0
  507. package/src/components/SubHeader/SubHeader.mdx +5 -6
  508. package/src/components/SubHeader/tests/SubHeader.visual.cy.ts +48 -0
  509. package/src/components/SubHeader/tests/__snapshots__/sub-header-default.snap.png +0 -0
  510. package/src/components/SubHeader/tests/__snapshots__/sub-header-loading.snap.png +0 -0
  511. package/src/components/SubHeader/tests/__snapshots__/sub-header-no-back-btn.snap.png +0 -0
  512. package/src/components/SubHeader/tests/__snapshots__/sub-header-with-subtitle.snap.png +0 -0
  513. package/src/components/SyAlert/tests/__snapshots__/sy-alert-closable.snap.png +0 -0
  514. package/src/components/SyAlert/tests/__snapshots__/sy-alert-error.snap.png +0 -0
  515. package/src/components/SyAlert/tests/__snapshots__/sy-alert-info.snap.png +0 -0
  516. package/src/components/SyAlert/tests/__snapshots__/sy-alert-success.snap.png +0 -0
  517. package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-outlined.snap.png +0 -0
  518. package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-tonal.snap.png +0 -0
  519. package/src/components/SyAlert/tests/__snapshots__/sy-alert-warning.snap.png +0 -0
  520. package/src/components/SyHeading/tests/SyHeading.visual.cy.ts +33 -0
  521. package/src/components/SyHeading/tests/__snapshots__/sy-heading-level-1.snap.png +0 -0
  522. package/src/components/SyHeading/tests/__snapshots__/sy-heading-level-2.snap.png +0 -0
  523. package/src/components/SyHeading/tests/__snapshots__/sy-heading-level-3.snap.png +0 -0
  524. package/src/components/SyTextArea/SyTextArea.stories.ts +25 -0
  525. package/src/components/SyTextArea/SyTextArea.vue +7 -0
  526. package/src/components/SyTextArea/composables/useSyTextAreaValidation.ts +1 -1
  527. package/src/components/SyTextArea/tests/SyTextArea.a11y.spec.ts +18 -0
  528. package/src/components/SyTextArea/tests/SyTextArea.spec.ts +135 -1
  529. package/src/components/SyTextArea/tests/SyTextArea.visual.cy.ts +48 -0
  530. package/src/components/SyTextArea/tests/__snapshots__/sy-textarea-default.snap.png +0 -0
  531. package/src/components/SyTextArea/tests/__snapshots__/sy-textarea-filled.snap.png +0 -0
  532. package/src/components/SyTextArea/tests/__snapshots__/sy-textarea-required.snap.png +0 -0
  533. package/src/components/SyTextArea/tests/__snapshots__/sy-textarea-with-value.snap.png +0 -0
  534. package/src/components/SyTextArea/validation/Validation.stories.ts +6 -86
  535. package/src/components/TableToolbar/tests/TableToolbar.visual.cy.ts +49 -0
  536. package/src/components/TableToolbar/tests/__snapshots__/table-toolbar-default.snap.png +0 -0
  537. package/src/components/TableToolbar/tests/__snapshots__/table-toolbar-filtered.snap.png +0 -0
  538. package/src/components/TableToolbar/tests/__snapshots__/table-toolbar-loading.snap.png +0 -0
  539. package/src/components/TableToolbar/tests/__snapshots__/table-toolbar-with-add-btn.snap.png +0 -0
  540. package/src/components/Tables/SyServerTable/SyServerTable.vue +3 -3
  541. package/src/components/Tables/SyServerTable/accessibilite/Accessibility.mdx +114 -7
  542. package/src/components/Tables/SyServerTable/tests/SyServerTable.visual.cy.ts +58 -0
  543. package/src/components/Tables/SyServerTable/tests/__snapshots__/sy-server-table-default.snap.png +0 -0
  544. package/src/components/Tables/SyServerTable/tests/__snapshots__/sy-server-table-loading.snap.png +0 -0
  545. package/src/components/Tables/SyServerTable/tests/__snapshots__/sy-server-table-with-select.snap.png +0 -0
  546. package/src/components/Tables/SyTable/accessibilite/Accessibility.mdx +116 -7
  547. package/src/components/Tables/SyTable/tests/SyTable.visual.cy.ts +70 -0
  548. package/src/components/Tables/SyTable/tests/__snapshots__/sy-table-compact.snap.png +0 -0
  549. package/src/components/Tables/SyTable/tests/__snapshots__/sy-table-default.snap.png +0 -0
  550. package/src/components/Tables/SyTable/tests/__snapshots__/sy-table-striped.snap.png +0 -0
  551. package/src/components/Tables/SyTable/tests/__snapshots__/sy-table-with-select.snap.png +0 -0
  552. package/src/components/Tables/common/tableStyles.scss +4 -4
  553. package/src/components/Tables/common/tests/SyTableFilter.spec.ts +19 -13
  554. package/src/components/Tables/common/tests/filterByRange.spec.ts +23 -22
  555. package/src/components/ToolbarContainer/tests/ToolbarContainer.visual.cy.ts +34 -0
  556. package/src/components/ToolbarContainer/tests/__snapshots__/toolbar-container-default.snap.png +0 -0
  557. package/src/components/ToolbarContainer/tests/__snapshots__/toolbar-container-links.snap.png +0 -0
  558. package/src/components/UploadWorkflow/UploadWorkflow.mdx +0 -1
  559. package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +1 -2
  560. package/src/components/UploadWorkflow/tests/UploadWorkflow.visual.cy.ts +39 -0
  561. package/src/components/UploadWorkflow/tests/__snapshots__/upload-workflow-default.snap.png +0 -0
  562. package/src/components/UploadWorkflow/tests/__snapshots__/upload-workflow-with-title.snap.png +0 -0
  563. package/src/components/UserMenuBtn/UserMenuBtn.mdx +0 -1
  564. package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +177 -0
  565. package/src/components/UserMenuBtn/tests/UserMenuBtn.visual.cy.ts +42 -0
  566. package/src/components/UserMenuBtn/tests/__snapshots__/user-menu-btn-default.snap.png +0 -0
  567. package/src/components/UserMenuBtn/tests/__snapshots__/user-menu-btn-no-logout.snap.png +0 -0
  568. package/src/components/UserMenuBtn/tests/__snapshots__/user-menu-btn-with-name.snap.png +0 -0
  569. package/src/composables/unifyValidation/documentationValidationProps.ts +2 -2
  570. package/src/composables/unifyValidation/tests/documentationValidationProps.spec.ts +2 -2
  571. package/src/composables/unifyValidation/tests/useValidation.spec.ts +13 -1
  572. package/src/composables/unifyValidation/useValidation.ts +41 -31
  573. package/src/composables/useFilterable/useFilterable.spec.ts +105 -142
  574. package/src/composables/useFilterable/useFilterable.ts +6 -17
  575. package/src/composables/useFormFieldErrorHandling.ts +1 -1
  576. package/src/composables/validation/tests/useFormValidation.spec.ts +11 -2
  577. package/src/composables/validation/tests/useValidatable.spec.ts +16 -6
  578. package/src/composables/validation/tests/useValidation.spec.ts +2 -2
  579. package/src/composables/validation/useValidation.ts +1 -1
  580. package/src/composantsVuetify/VCard/VCard.mdx +12 -0
  581. package/src/composantsVuetify/VCard/v-card.stories.ts +283 -1
  582. package/src/composantsVuetify/VCarousel/VCarousel.mdx +74 -0
  583. package/src/composantsVuetify/VCarousel/v-carousel.stories.ts +531 -0
  584. package/src/composantsVuetify/VNavigationDrawer/VNavgationDrawer.mdx +53 -0
  585. package/src/composantsVuetify/VNavigationDrawer/v-navigation-drawer.stories.ts +310 -0
  586. package/src/composantsVuetify/VSlideGroup/VSlideGroup.mdx +105 -0
  587. package/src/composantsVuetify/VSlideGroup/v-slide-group.stories.ts +463 -0
  588. package/src/composantsVuetify/VStepper/VStepper.mdx +56 -0
  589. package/src/composantsVuetify/VStepper/v-stepper.stories.ts +563 -0
  590. package/src/designTokens/tokens/amelipro/apLightTheme.ts +1 -0
  591. package/src/designTokens/tokens/amelipro/apSemantic.ts +1 -1
  592. package/src/designTokens/tokens/baseColors.ts +1 -1
  593. package/src/designTokens/tokens/baseTokens.ts +18 -18
  594. package/src/designTokens/tokens/pa/paLightTheme.ts +1 -0
  595. package/src/stories/Accessibilite/DesignSystem/a11y-status.json +1 -1
  596. package/src/stories/Components/Components.stories.ts +95 -11
  597. package/src/stories/Demarrer/Releases.stories.ts +59 -2
  598. package/src/stories/DesignTokens/Arrondis.mdx +1 -1
  599. package/src/stories/DesignTokens/Colors.mdx +2 -0
  600. package/src/stories/DesignTokens/Correspondances.mdx +219 -0
  601. package/src/stories/DesignTokens/UtiliserLesTokens.mdx +235 -0
  602. package/src/stories/DesignTokens/colors.stories.ts +582 -569
  603. package/src/stories/EcoConception/EcoBestPracticesDoc.vue +930 -0
  604. package/src/stories/EcoConception/EcoBestPratices.mdx +38 -0
  605. package/src/stories/EcoConception/Introduction.mdx +8 -1
  606. package/src/stories/EcoConception/datas/bonnes_pratiques_essentielles.json +1018 -0
  607. package/src/stories/EcoConception/ecoconception-best-practices.stories.ts +20 -0
  608. package/src/stories/GuideDuDev/Amelipro.mdx +9 -1
  609. package/src/stories/GuideDuDev/Amelipro.stories.ts +1023 -168
  610. package/src/stories/GuideDuDev/PortailAgent.stories.ts +0 -1
  611. package/src/utils/functions/deepCopy/index.ts +2 -3
  612. package/dist/components/Customs/SyCheckbox/locales.d.ts +0 -3
  613. package/dist/components/LunarCalendar/useLunarCalendarRules.d.ts +0 -5
  614. package/dist/components/PhoneField/tests/types.d.ts +0 -18
  615. package/dist/components/SyHeading/SyHeading.a11y.test.d.ts +0 -1
  616. package/dist/components/SyHeading/SyHeading.test.d.ts +0 -1
  617. package/src/components/Customs/SyCheckbox/locales.ts +0 -3
  618. package/src/components/Customs/SyTextField/types.d.ts +0 -4
  619. package/src/components/LunarCalendar/tests/useLunarCalendarRules.spec.ts +0 -184
  620. package/src/components/LunarCalendar/useLunarCalendarRules.ts +0 -96
  621. package/src/components/PhoneField/tests/types.d.ts +0 -19
@@ -238,90 +238,6 @@ export const WithSuccess: Story = {
238
238
  }),
239
239
  }
240
240
 
241
- export const NoSuccessMessage: Story = {
242
- parameters: {
243
- docs: {
244
- description: {
245
- story: 'Avec `showSuccessMessages: false`, l\'état visuel de succès reste actif (bordure verte, icône) mais le message texte n\'est pas affiché. Utile quand un retour positif silencieux est suffisant.',
246
- },
247
- },
248
- sourceCode: [
249
- {
250
- name: 'Template',
251
- code: `
252
- <template>
253
- <SyTextArea
254
- ref="textAreaRef"
255
- v-model="value"
256
- label="Commentaire"
257
- :show-success-messages="false"
258
- :custom-success-rules="[
259
- {
260
- type: 'custom',
261
- options: {
262
- validate: (v) => v.length >= 20,
263
- successMessage: 'Description suffisamment détaillée.'
264
- }
265
- }
266
- ]"
267
- />
268
- </template>`,
269
- },
270
- {
271
- name: 'Script',
272
- code: `
273
- <script setup lang="ts">
274
- import { onMounted, ref } from 'vue'
275
- import { SyTextArea } from '@cnamts/synapse'
276
-
277
- const value = ref('Voici une description bien détaillée du problème rencontré.')
278
- const textAreaRef = ref(null)
279
-
280
- onMounted(() => {
281
- textAreaRef.value?.validateOnSubmit()
282
- })
283
- </script>`,
284
- },
285
- ],
286
- },
287
- args: {
288
- 'label': 'Commentaire',
289
- 'showSuccessMessages': false,
290
- 'onUpdate:modelValue': fn(),
291
- },
292
- render: args => ({
293
- components: { SyTextArea },
294
- setup() {
295
- const value = ref('Voici une description bien détaillée du problème rencontré.')
296
- const textAreaRef = ref<{ validateOnSubmit: () => Promise<boolean> } | null>(null)
297
-
298
- onMounted(() => {
299
- textAreaRef.value?.validateOnSubmit()
300
- })
301
-
302
- return { args, value, textAreaRef }
303
- },
304
- template: `
305
- <div class="pa-4">
306
- <SyTextArea
307
- ref="textAreaRef"
308
- v-model="value"
309
- v-bind="args"
310
- :custom-success-rules="[
311
- {
312
- type: 'custom',
313
- options: {
314
- validate: (v) => v.length >= 20,
315
- successMessage: 'Description suffisamment détaillée.'
316
- }
317
- }
318
- ]"
319
- />
320
- </div>
321
- `,
322
- }),
323
- }
324
-
325
241
  export const NoValidateOnBlur: Story = {
326
242
  parameters: {
327
243
  docs: {
@@ -340,11 +256,13 @@ export const NoValidateOnBlur: Story = {
340
256
  :model-value="value"
341
257
  label="Description"
342
258
  :is-validate-on-blur="false"
259
+ :show-success-messages="true"
343
260
  :custom-rules="[{
344
261
  type: 'custom',
345
262
  options: {
346
263
  validate: (v) => v !== 'Contenu interdit',
347
- message: 'Le contenu « Contenu interdit » n\\'est pas autorisé.'
264
+ message: 'Le contenu « Contenu interdit » n\\'est pas autorisé.',
265
+ successMessage: 'Le contenu est valide.'
348
266
  }
349
267
  }]"
350
268
  @update:model-value="handleManualChange"
@@ -390,6 +308,7 @@ const applyButtonValue = (newValue) => {
390
308
  args: {
391
309
  'label': 'Description',
392
310
  'isValidateOnBlur': false,
311
+ 'showSuccessMessages': true,
393
312
  'onUpdate:modelValue': fn(),
394
313
  },
395
314
  render: args => ({
@@ -426,7 +345,8 @@ const applyButtonValue = (newValue) => {
426
345
  type: 'custom',
427
346
  options: {
428
347
  validate: (v) => v !== 'Contenu interdit',
429
- message: 'Le contenu « Contenu interdit » n\\'est pas autorisé.'
348
+ message: 'Le contenu « Contenu interdit » n\\'est pas autorisé.',
349
+ successMessage: 'Le contenu est valide.'
430
350
  }
431
351
  }]"
432
352
  @update:model-value="handleManualChange"
@@ -0,0 +1,49 @@
1
+ import TableToolbar from '../TableToolbar.vue'
2
+
3
+ describe('TableToolbar - Visual regression tests', () => {
4
+ it('displays the table toolbar by default', () => {
5
+ cy.mountWithVuetify(TableToolbar, {
6
+ props: { nbTotal: 42 },
7
+ })
8
+
9
+ cy.get('.sy-table-toolbar').should('be.visible')
10
+ cy.matchImageSnapshot('table-toolbar-default', cy.get('.sy-table-toolbar'))
11
+ })
12
+
13
+ it('displays the table toolbar with filtered count', () => {
14
+ cy.mountWithVuetify(TableToolbar, {
15
+ props: {
16
+ nbTotal: 42,
17
+ nbFiltered: 10,
18
+ },
19
+ })
20
+
21
+ cy.get('.sy-table-toolbar').should('be.visible')
22
+ cy.matchImageSnapshot('table-toolbar-filtered', cy.get('.sy-table-toolbar'))
23
+ })
24
+
25
+ it('displays the table toolbar with add button', () => {
26
+ cy.mountWithVuetify(TableToolbar, {
27
+ props: {
28
+ nbTotal: 42,
29
+ showAddButton: true,
30
+ addButtonLabel: 'Ajouter',
31
+ },
32
+ })
33
+
34
+ cy.get('.sy-table-toolbar').should('be.visible')
35
+ cy.matchImageSnapshot('table-toolbar-with-add-btn', cy.get('.sy-table-toolbar'))
36
+ })
37
+
38
+ it('displays the table toolbar in loading state', () => {
39
+ cy.mountWithVuetify(TableToolbar, {
40
+ props: {
41
+ nbTotal: 42,
42
+ loading: true,
43
+ },
44
+ })
45
+
46
+ cy.get('.sy-table-toolbar').should('be.visible')
47
+ cy.matchImageSnapshot('table-toolbar-loading', cy.get('.sy-table-toolbar'))
48
+ })
49
+ })
@@ -513,11 +513,11 @@
513
513
  }
514
514
 
515
515
  .sy-server-table--pinned-left-shadow :deep(.sy-table__pinned--left) {
516
- box-shadow: 2px 0 6px -4px rgba(var(--v-theme-grey-base), 0.6);
516
+ box-shadow: 2px 0 6px -4px rgba(var(--v-theme-onSurfaceVariant), 0.6);
517
517
  }
518
518
 
519
519
  .sy-server-table--pinned-right-shadow :deep(.sy-table__pinned--right) {
520
- box-shadow: -2px 0 6px -4px rgba(var(--v-theme-grey-base), 0.6);
520
+ box-shadow: -2px 0 6px -4px rgba(var(--v-theme-onSurfaceVariant), 0.6);
521
521
  }
522
522
 
523
523
  .sy-server-table--pinned-select-left :deep(.v-data-table__th--select),
@@ -558,7 +558,7 @@
558
558
  .sy-server-table--pinned-left-shadow.sy-server-table--pinned-select-left :deep(.v-table__wrapper > table > tbody > tr:not(.v-data-table-rows-loading) > .v-data-table__td:first-child),
559
559
  .sy-server-table--pinned-left-shadow.sy-server-table--pinned-select-left :deep(.v-data-table__tbody .v-data-table__tr:not(.v-data-table-rows-loading) > .v-data-table__td:first-child),
560
560
  .sy-server-table--pinned-left-shadow.sy-server-table--pinned-select-left :deep(.v-data-table__tbody tr:not(.v-data-table-rows-loading) > td:first-child) {
561
- box-shadow: 2px 0 6px -4px rgba(var(--v-theme-grey-base), 0.6);
561
+ box-shadow: 2px 0 6px -4px rgba(var(--v-theme-onSurfaceVariant), 0.6);
562
562
  }
563
563
  /* stylelint-enable @stylistic/max-line-length */
564
564
 
@@ -1,10 +1,117 @@
1
- import { Meta, Story } from '@storybook/addon-docs';
2
- import * as SyServerTable from '../SyServerTable.stories';
1
+ import { Meta, Story } from '@storybook/blocks';
2
+ import * as Stories from '../SyServerTable.stories';
3
+ import AccessibilityIcon from '@/common/imgs/accessibility-svgrepo-com.svg';
3
4
  import '@/stories/styles/shared.css';
5
+ import {
6
+ AccessibilityGuideLayout,
7
+ CriteriaSection,
8
+ CriteriaCard,
9
+ DemoSection,
10
+ BestPracticesSection,
11
+ ResourcesSection,
12
+ AuditSection,
13
+ } from '@/stories/accessibility/AccessibilityGuideLayout.mdx';
4
14
 
5
- <Meta of={SyServerTable} />
15
+ <Meta of={Stories}/>
6
16
 
7
- <div className="header">
8
- <h1>Accessibilité</h1>
9
- <p>Cette page sera bientôt disponible</p>
10
- </div>
17
+ <AccessibilityGuideLayout
18
+ componentName="SyServerTable"
19
+ iconSrc={AccessibilityIcon}
20
+ >
21
+
22
+ [//]: # (<AuditSection>)
23
+
24
+ [//]: # ( <div>)
25
+
26
+ [//]: # ( Rapport d’audit manuel :{' '})
27
+
28
+ [//]: # ( <a href="/audits/SyServerTable.xlsx" style={{color: '#0C41BD'}}>Voir le rapport</a>)
29
+
30
+ [//]: # ( </div>)
31
+
32
+ [//]: # ( <div style={{color: 'grey', fontSize: '14px', marginTop: '0px'}}>)
33
+
34
+ [//]: # ( Correctifs associés &#40;<a href="https://github.com/assurance-maladie-digital/design-system-v3/issues/XXX" target="_blank" style={{color: '#0C41BD'}}>issue #XXX</a>&#41;)
35
+
36
+ [//]: # ( </div>)
37
+
38
+ [//]: # (</AuditSection>)
39
+
40
+ <CriteriaSection>
41
+ <CriteriaCard icon="🏷️" title="Structure et rôles">
42
+ <ul>
43
+ <li>Le composant repose sur <code>VDataTableServer</code> et conserve la structure sémantique native d’un tableau HTML (<code>table</code>, <code>caption</code>, <code>thead</code>, <code>tbody</code>, <code>th</code>, <code>td</code>).</li>
44
+ <li>Une légende (<code>caption</code>) décrit le contenu du tableau et reste disponible aux technologies d’assistance même lorsqu’elle est visuellement masquée.</li>
45
+ <li>Les en-têtes de colonnes sont rendus dans des cellules <code>th</code> et exposent les informations de tri, de redimensionnement et de filtrage.</li>
46
+ <li>La zone de statut utilise <code>role="status"</code> et <code>aria-live="polite"</code> pour annoncer les changements du nombre de résultats.</li>
47
+ <li>Les cases à cocher de sélection utilisent des libellés explicites pour la sélection globale et individuelle.</li>
48
+ <li>La pagination, les filtres et l’organisation des colonnes conservent les rôles natifs des contrôles HTML.</li>
49
+ </ul>
50
+ </CriteriaCard>
51
+
52
+ <CriteriaCard icon="⌨️" title="Navigation clavier">
53
+ <ul>
54
+ <li>Les en-têtes triables sont activables au clavier via Entrée ou Espace.</li>
55
+ <li>Les filtres intégrés sont accessibles par Tabulation dans l’ordre naturel du tableau.</li>
56
+ <li>Les cases à cocher de sélection de ligne et de sélection globale sont entièrement utilisables au clavier.</li>
57
+ <li>Les lignes cliquables restent focalisables et déclenchables au clavier lorsqu’elles sont activées.</li>
58
+ <li>La pagination est navigable au clavier et permet de modifier la page et le nombre d’éléments par page.</li>
59
+ <li>Le bouton de réinitialisation des filtres est accessible par Tabulation et activable via Entrée ou Espace.</li>
60
+ </ul>
61
+ </CriteriaCard>
62
+
63
+ <CriteriaCard icon="📢" title="Annonces aux technologies d’assistance">
64
+ <ul>
65
+ <li>Le changement du nombre de résultats est annoncé automatiquement dans une région <code>aria-live</code>.</li>
66
+ <li>Les actions de sélection de lignes sont vocalisées grâce à des libellés explicites.</li>
67
+ <li>Le <code>caption</code> fournit un contexte global pour la lecture du tableau.</li>
68
+ <li>Les états de tri sont exposés par les attributs ARIA appliqués aux en-têtes.</li>
69
+ </ul>
70
+ </CriteriaCard>
71
+
72
+ <CriteriaCard icon="🎨" title="Contraste et lisibilité">
73
+ <ul>
74
+ <li>Les styles du design system assurent un contraste suffisant pour les textes, les bordures et les états de focus.</li>
75
+ <li>Les lignes alternées (<code>striped</code>) utilisent une variation de fond discrète sans compromettre la lisibilité.</li>
76
+ <li>Les colonnes figées conservent un fond opaque et des ombres pour maintenir la séparation visuelle.</li>
77
+ <li>Les états sélectionnés, triés ou filtrés restent perceptibles visuellement et programmatiquement.</li>
78
+ </ul>
79
+ </CriteriaCard>
80
+
81
+ <CriteriaCard icon="📌" title="Fonctionnalités avancées accessibles">
82
+ <ul>
83
+ <li>Le tri multi-colonnes et obligatoire conserve les attributs ARIA appropriés.</li>
84
+ <li>Les filtres par colonne utilisent des champs correctement libellés.</li>
85
+ <li>La sélection simple ou multiple annonce clairement l’état des cases à cocher.</li>
86
+ <li>Les colonnes épinglées restent accessibles sans altérer l’ordre de lecture du tableau.</li>
87
+ <li>L’organisation des colonnes conserve la structure et la cohérence des en-têtes.</li>
88
+ <li>L’état du tableau peut être mémorisé localement sans impact sur l’accessibilité.</li>
89
+ </ul>
90
+ </CriteriaCard>
91
+ </CriteriaSection>
92
+
93
+ <DemoSection componentName="SyServerTable">
94
+ <Story of={Stories.Default}/>
95
+ </DemoSection>
96
+
97
+ <BestPracticesSection>
98
+ <ul>
99
+ <li>Renseignez toujours la propriété <code>caption</code> pour décrire clairement l’objet du tableau.</li>
100
+ <li>Utilisez des intitulés de colonnes explicites, uniques et concis.</li>
101
+ <li>Activez <code>showFilters</code> uniquement lorsque chaque filtre dispose d’un libellé pertinent.</li>
102
+ <li>Assurez-vous que les lignes cliquables disposent d’une action compréhensible.</li>
103
+ <li>Testez la navigation clavier après activation du tri, des filtres, de la sélection et de la pagination.</li>
104
+ <li>Vérifiez que les annonces <code>aria-live</code> restent pertinentes lors des chargements serveur.</li>
105
+ <li>Conservez un contraste suffisant pour les colonnes figées et les états sélectionnés.</li>
106
+ </ul>
107
+ </BestPracticesSection>
108
+
109
+ <ResourcesSection>
110
+ <ul>
111
+ <li><a href="https://www.w3.org/WAI/tutorials/tables/" target="_blank" rel="noopener noreferrer">W3C WAI – Tables Tutorial</a></li>
112
+ <li><a href="https://www.w3.org/WAI/ARIA/apg/patterns/table/" target="_blank" rel="noopener noreferrer">WAI-ARIA Authoring Practices – Table Pattern</a></li>
113
+ <li><a href="https://www.w3.org/WAI/WCAG21/Understanding/status-messages.html" target="_blank" rel="noopener noreferrer">WCAG – Status Messages (4.1.3)</a></li>
114
+ <li><a href="https://www.numerique.gouv.fr/publications/rgaa-accessibilite/" target="_blank" rel="noopener noreferrer">RGAA – critères 5 (tableaux), 7 (ARIA), 10 (présentation)</a></li>
115
+ </ul>
116
+ </ResourcesSection>
117
+ </AccessibilityGuideLayout>
@@ -0,0 +1,58 @@
1
+ import SyServerTable from '../SyServerTable.vue'
2
+
3
+ const defaultHeaders = [
4
+ { title: 'Nom', key: 'nom', sortable: true },
5
+ { title: 'Prénom', key: 'prenom', sortable: true },
6
+ { title: 'Ville', key: 'ville' },
7
+ ]
8
+
9
+ const defaultItems = [
10
+ { nom: 'Dupont', prenom: 'Jean', ville: 'Paris' },
11
+ { nom: 'Martin', prenom: 'Marie', ville: 'Lyon' },
12
+ ]
13
+
14
+ describe('SyServerTable - Visual regression tests', () => {
15
+ it('displays the server table by default', () => {
16
+ cy.mountWithVuetify(SyServerTable, {
17
+ props: {
18
+ headers: defaultHeaders,
19
+ items: defaultItems,
20
+ serverItemsLength: 50,
21
+ caption: 'Tableau serveur',
22
+ },
23
+ })
24
+
25
+ cy.get('.v-table').should('be.visible')
26
+ cy.matchImageSnapshot('sy-server-table-default', cy.get('.v-application'))
27
+ })
28
+
29
+ it('displays the server table in loading state', () => {
30
+ cy.mountWithVuetify(SyServerTable, {
31
+ props: {
32
+ headers: defaultHeaders,
33
+ items: undefined,
34
+ serverItemsLength: 0,
35
+ caption: 'Tableau chargement',
36
+ loading: true,
37
+ },
38
+ })
39
+
40
+ cy.get('.v-application').should('be.visible')
41
+ cy.matchImageSnapshot('sy-server-table-loading', cy.get('.v-application'))
42
+ })
43
+
44
+ it('displays the server table with selection', () => {
45
+ cy.mountWithVuetify(SyServerTable, {
46
+ props: {
47
+ headers: defaultHeaders,
48
+ items: defaultItems,
49
+ serverItemsLength: 2,
50
+ caption: 'Tableau avec sélection',
51
+ showSelect: true,
52
+ },
53
+ })
54
+
55
+ cy.get('.v-table').should('be.visible')
56
+ cy.matchImageSnapshot('sy-server-table-with-select', cy.get('.v-application'))
57
+ })
58
+ })
@@ -1,10 +1,119 @@
1
- import { Meta, Story } from '@storybook/addon-docs';
2
- import * as SyTable from '../SyTable.stories';
1
+ import { Meta, Story } from '@storybook/blocks';
2
+ import * as Stories from '../SyTable.stories';
3
+ import AccessibilityIcon from '@/common/imgs/accessibility-svgrepo-com.svg';
3
4
  import '@/stories/styles/shared.css';
5
+ import {
6
+ AccessibilityGuideLayout,
7
+ CriteriaSection,
8
+ CriteriaCard,
9
+ DemoSection,
10
+ BestPracticesSection,
11
+ ResourcesSection,
12
+ AuditSection,
13
+ } from '@/stories/accessibility/AccessibilityGuideLayout.mdx';
4
14
 
5
- <Meta of={SyTable} />
15
+ <Meta of={Stories}/>
6
16
 
7
- <div className="header">
8
- <h1>Accessibilité</h1>
9
- <p>Cette page sera bientôt disponible</p>
10
- </div>
17
+ <AccessibilityGuideLayout
18
+ componentName="SyTable"
19
+ iconSrc={AccessibilityIcon}
20
+ >
21
+
22
+ [//]: # (<AuditSection>)
23
+
24
+ [//]: # ( <div>)
25
+
26
+ [//]: # ( Rapport d’audit manuel :{' '})
27
+
28
+ [//]: # ( <a href="/audits/SyTable.xlsx" style={{color: '#0C41BD'}}>Voir le rapport</a>)
29
+
30
+ [//]: # ( </div>)
31
+
32
+ [//]: # ( <div style={{color: 'grey', fontSize: '14px', marginTop: '0px'}}>)
33
+
34
+ [//]: # ( Correctifs associés &#40;)
35
+
36
+ [//]: # ( <a href="https://github.com/assurance-maladie-digital/design-system-v3/issues/XXX" target="_blank" rel="noopener noreferrer" style={{color: '#0C41BD'}}>issue #XXX</a>&#41;)
37
+
38
+ [//]: # ( </div>)
39
+
40
+ [//]: # (</AuditSection>)
41
+
42
+ <CriteriaSection>
43
+ <CriteriaCard icon="🏷️" title="Structure et rôles">
44
+ <ul>
45
+ <li>Le composant repose sur <code>VDataTable</code> et conserve la structure sémantique native d’un tableau HTML (<code>table</code>, <code>caption</code>, <code>thead</code>, <code>tbody</code>, <code>th</code>, <code>td</code>).</li>
46
+ <li>Une légende (<code>caption</code>) est injectée dynamiquement au montage et reste accessible via la classe <code>d-sr-only</code> lorsqu’elle est masquée visuellement.</li>
47
+ <li>Les en-têtes utilisent des cellules <code>th</code> avec <code>scope="col"</code> et exposent les états de tri via <code>aria-sort</code>.</li>
48
+ <li>Les filtres et la pagination conservent les rôles natifs des composants de formulaire.</li>
49
+ <li>Les slots permettent d’étendre le tableau sans altérer sa structure sémantique.</li>
50
+ <li>L’état de tri, pagination et sélection peut être persisté sans impacter l’accessibilité.</li>
51
+ </ul>
52
+ </CriteriaCard>
53
+
54
+ <CriteriaCard icon="⌨️" title="Navigation clavier">
55
+ <ul>
56
+ <li>Les en-têtes de colonnes sont focalisables via <code>tabindex="0"</code> et activables au clavier.</li>
57
+ <li>Les actions de tri sont accessibles via Entrée ou Espace.</li>
58
+ <li>Les filtres sont navigables dans l’ordre naturel de tabulation.</li>
59
+ <li>Les cases à cocher de sélection (ligne et globale) sont entièrement accessibles au clavier.</li>
60
+ <li>La pagination est utilisable au clavier (page, items par page, navigation).</li>
61
+ <li>Les lignes cliquables restent accessibles via clavier lorsqu’activées.</li>
62
+ </ul>
63
+ </CriteriaCard>
64
+
65
+ <CriteriaCard icon="📢" title="Annonces aux technologies d’assistance">
66
+ <ul>
67
+ <li>Le <code>caption</code> fournit un contexte global de lecture du tableau.</li>
68
+ <li>Un region <code>role="status"</code> avec <code>aria-live="polite"</code> annonce les changements de résultats.</li>
69
+ <li>Les états de tri sont exposés via <code>aria-sort</code> sur les en-têtes.</li>
70
+ <li>Les contrôles de pagination et filtres utilisent des libellés explicites.</li>
71
+ <li>Les attributs ARIA inutiles (ex: <code>aria-describedby</code>) sont supprimés pour éviter les doublons de lecture.</li>
72
+ </ul>
73
+ </CriteriaCard>
74
+
75
+ <CriteriaCard icon="🎨" title="Contraste et lisibilité">
76
+ <ul>
77
+ <li>Les styles du design system assurent un contraste suffisant pour texte, bordures et focus.</li>
78
+ <li>Les lignes alternées (<code>striped</code>) améliorent la lisibilité sans nuire au contraste.</li>
79
+ <li>Les colonnes figées conservent un fond opaque et des ombres pour la lisibilité.</li>
80
+ <li>Les états actifs (focus, tri, sélection) restent perceptibles visuellement et via ARIA.</li>
81
+ </ul>
82
+ </CriteriaCard>
83
+
84
+ <CriteriaCard icon="📌" title="Fonctionnalités avancées accessibles">
85
+ <ul>
86
+ <li>Le tri multi-colonnes et obligatoire reste accessible via attributs ARIA.</li>
87
+ <li>Les filtres par colonne utilisent des champs correctement libellés.</li>
88
+ <li>La sélection simple ou multiple est annoncée clairement aux lecteurs d’écran.</li>
89
+ <li>Les colonnes épinglées restent accessibles sans modifier l’ordre de lecture.</li>
90
+ <li>L’organisation des colonnes est configurable sans perte de sémantique.</li>
91
+ <li>La persistance locale de l’état n’impacte pas l’accessibilité du tableau.</li>
92
+ </ul>
93
+ </CriteriaCard>
94
+ </CriteriaSection>
95
+
96
+ <DemoSection componentName="SyTable">
97
+ <Story of={Stories.Default}/>
98
+ </DemoSection>
99
+
100
+ <BestPracticesSection>
101
+ <ul>
102
+ <li>Fournir toujours un <code>caption</code> clair et descriptif pour le tableau.</li>
103
+ <li>Limiter les actions dans les headers pour éviter la surcharge cognitive.</li>
104
+ <li>Tester systématiquement tri, filtres et pagination au clavier.</li>
105
+ <li>Vérifier les annonces lecteur d’écran lors des changements de données.</li>
106
+ <li>Éviter les libellés ambigus sur les colonnes et filtres.</li>
107
+ <li>Contrôler la cohérence visuelle entre états ARIA et styles CSS.</li>
108
+ </ul>
109
+ </BestPracticesSection>
110
+
111
+ <ResourcesSection>
112
+ <ul>
113
+ <li><a href="https://www.w3.org/WAI/tutorials/tables/" target="_blank" rel="noopener noreferrer">W3C WAI – Tables Tutorial</a></li>
114
+ <li><a href="https://www.w3.org/WAI/ARIA/apg/patterns/table/" target="_blank" rel="noopener noreferrer">WAI-ARIA Authoring Practices – Table Pattern</a></li>
115
+ <li><a href="https://www.w3.org/WAI/WCAG21/Understanding/status-messages.html" target="_blank" rel="noopener noreferrer">WCAG – Status Messages (4.1.3)</a></li>
116
+ <li><a href="https://www.numerique.gouv.fr/publications/rgaa-accessibilite/" target="_blank" rel="noopener noreferrer">RGAA – critères 5, 7 et 10</a></li>
117
+ </ul>
118
+ </ResourcesSection>
119
+ </AccessibilityGuideLayout>
@@ -0,0 +1,70 @@
1
+ import SyTable from '../SyTable.vue'
2
+
3
+ const defaultHeaders = [
4
+ { title: 'Nom', key: 'nom', sortable: true },
5
+ { title: 'Prénom', key: 'prenom', sortable: true },
6
+ { title: 'Ville', key: 'ville' },
7
+ ]
8
+
9
+ const defaultItems = [
10
+ { nom: 'Dupont', prenom: 'Jean', ville: 'Paris' },
11
+ { nom: 'Martin', prenom: 'Marie', ville: 'Lyon' },
12
+ { nom: 'Bernard', prenom: 'Pierre', ville: 'Marseille' },
13
+ ]
14
+
15
+ describe('SyTable - Visual regression tests', () => {
16
+ it('displays the table by default', () => {
17
+ cy.mountWithVuetify(SyTable, {
18
+ props: {
19
+ headers: defaultHeaders,
20
+ items: defaultItems,
21
+ caption: 'Tableau de données',
22
+ },
23
+ })
24
+
25
+ cy.get('.v-table').should('be.visible')
26
+ cy.matchImageSnapshot('sy-table-default', cy.get('.v-application'))
27
+ })
28
+
29
+ it('displays the table with striped rows', () => {
30
+ cy.mountWithVuetify(SyTable, {
31
+ props: {
32
+ headers: defaultHeaders,
33
+ items: defaultItems,
34
+ caption: 'Tableau rayé',
35
+ striped: true,
36
+ },
37
+ })
38
+
39
+ cy.get('.v-table').should('be.visible')
40
+ cy.matchImageSnapshot('sy-table-striped', cy.get('.v-application'))
41
+ })
42
+
43
+ it('displays the table with selection checkboxes', () => {
44
+ cy.mountWithVuetify(SyTable, {
45
+ props: {
46
+ headers: defaultHeaders,
47
+ items: defaultItems,
48
+ caption: 'Tableau avec sélection',
49
+ showSelect: true,
50
+ },
51
+ })
52
+
53
+ cy.get('.v-table').should('be.visible')
54
+ cy.matchImageSnapshot('sy-table-with-select', cy.get('.v-application'))
55
+ })
56
+
57
+ it('displays the table with compact density', () => {
58
+ cy.mountWithVuetify(SyTable, {
59
+ props: {
60
+ headers: defaultHeaders,
61
+ items: defaultItems,
62
+ caption: 'Tableau compact',
63
+ density: 'compact',
64
+ },
65
+ })
66
+
67
+ cy.get('.v-table').should('be.visible')
68
+ cy.matchImageSnapshot('sy-table-compact', cy.get('.v-application'))
69
+ })
70
+ })
@@ -1,8 +1,8 @@
1
1
  @mixin tablestyles {
2
2
  .v-table {
3
- border: 1px solid rgb(var(--v-theme-grey-lighten80));
3
+ border: 1px solid rgb(var(--v-theme-disabled));
4
4
 
5
- --sy-table-header-bg-pinned: color-mix(in srgb, rgb(var(--v-theme-blue-lighten80)) 20%, white);
5
+ --sy-table-header-bg-pinned: color-mix(in srgb, rgb(var(--v-theme-infoVariant)) 20%, white);
6
6
 
7
7
  // Standardisation des z-index pour les tableaux
8
8
  --sy-table-z-base: 1;
@@ -17,13 +17,13 @@
17
17
 
18
18
  table thead tr.filters,
19
19
  table thead tr.reset {
20
- background-color: rgb(var(--v-theme-blue-lighten90));
20
+ background-color: rgb(var(--v-theme-infoVariant90));
21
21
  }
22
22
 
23
23
  caption,
24
24
  table thead tr.headers,
25
25
  table thead tr.reset {
26
- background-color: rgba(var(--v-theme-blue-lighten80), 0.2);
26
+ background-color: rgba(var(--v-theme-infoVariant), 0.2);
27
27
  }
28
28
 
29
29
  &.fixed-min-height {