@cnamts/synapse 0.0.11-alpha → 0.0.13-alpha

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 (315) hide show
  1. package/dist/design-system-v3.js +5394 -3813
  2. package/dist/design-system-v3.umd.cjs +1 -1
  3. package/dist/src/components/Amelipro/types/types.d.ts +38 -0
  4. package/dist/src/components/CookieBanner/CookieBanner.d.ts +1 -1
  5. package/dist/src/components/Customs/SyInputSelect/SyInputSelect.d.ts +2 -0
  6. package/dist/src/components/Customs/SyTextField/SyTextField.d.ts +31 -23
  7. package/dist/src/components/Customs/SyTextField/types.d.ts +1 -0
  8. package/dist/src/components/DatePicker/DatePicker.d.ts +105 -102
  9. package/dist/src/components/DatePicker/DateTextInput.d.ts +82 -74
  10. package/dist/src/components/ErrorPage/ErrorPage.d.ts +1 -1
  11. package/dist/src/components/FileList/FileList.d.ts +1 -0
  12. package/dist/src/components/FileList/UploadItem/UploadItem.d.ts +1 -1
  13. package/dist/src/components/FilterInline/AccessibiliteItems.d.ts +30 -0
  14. package/dist/src/components/FilterInline/constants/ExpertiseLevelEnum.d.ts +4 -0
  15. package/dist/src/components/FilterSideBar/AccessibiliteItems.d.ts +29 -0
  16. package/dist/src/components/FilterSideBar/FilterSideBar.d.ts +31 -0
  17. package/dist/src/components/FilterSideBar/constants/ExpertiseLevelEnum.d.ts +4 -0
  18. package/dist/src/components/FilterSideBar/locales.d.ts +7 -0
  19. package/dist/src/components/LangBtn/LangBtn.d.ts +2 -2
  20. package/dist/src/components/NirField/NirField.d.ts +952 -0
  21. package/dist/src/components/NotificationBar/NotificationBar.d.ts +6 -6
  22. package/dist/src/components/PasswordField/PasswordField.d.ts +42 -8
  23. package/dist/src/components/PeriodField/PeriodField.d.ts +259 -235
  24. package/dist/src/components/PhoneField/PhoneField.d.ts +33 -3
  25. package/dist/src/components/RatingPicker/EmotionPicker/EmotionPicker.d.ts +1 -1
  26. package/dist/src/components/RatingPicker/NumberPicker/NumberPicker.d.ts +1 -1
  27. package/dist/src/components/RatingPicker/StarsPicker/StarsPicker.d.ts +1 -1
  28. package/dist/src/components/UploadWorkflow/AccessibiliteItems.d.ts +29 -0
  29. package/dist/src/components/UploadWorkflow/config.d.ts +29 -0
  30. package/dist/src/components/UploadWorkflow/constants/ExpertiseLevelEnum.d.ts +4 -0
  31. package/dist/src/components/UploadWorkflow/locales.d.ts +7 -0
  32. package/dist/src/components/UploadWorkflow/types.d.ts +19 -0
  33. package/dist/src/components/UploadWorkflow/useFileList.d.ts +10 -0
  34. package/dist/src/components/UploadWorkflow/useFileUploadJourney.d.ts +9 -0
  35. package/dist/src/components/Usages/Usages.d.ts +10 -0
  36. package/dist/src/components/index.d.ts +5 -0
  37. package/dist/src/composables/date/tests/useDateFormat.spec.d.ts +1 -0
  38. package/dist/src/composables/date/tests/useDateInitialization.spec.d.ts +1 -0
  39. package/dist/src/composables/date/tests/useDatePickerAccessibility.spec.d.ts +1 -0
  40. package/dist/src/composables/date/useDateFormat.d.ts +26 -0
  41. package/dist/src/composables/date/useDateInitialization.d.ts +18 -0
  42. package/dist/src/composables/date/useDatePickerAccessibility.d.ts +8 -0
  43. package/dist/src/composables/rules/useFieldValidation.d.ts +1 -0
  44. package/dist/src/composables/useFilterable/useFilterable.d.ts +1 -1
  45. package/dist/src/composables/validation/tests/useValidation.spec.d.ts +1 -0
  46. package/dist/src/composables/validation/useValidation.d.ts +40 -0
  47. package/dist/src/designTokens/index.d.ts +3 -1
  48. package/dist/src/main.d.ts +1 -0
  49. package/dist/src/utils/formatDate/index.d.ts +3 -0
  50. package/dist/src/utils/formatDate/tests/formatDate.spec.d.ts +1 -0
  51. package/dist/src/utils/functions/validation/isDateAfter/index.d.ts +2 -0
  52. package/dist/src/utils/functions/validation/isDateAfter/tests/isDateAfter.spec.d.ts +1 -0
  53. package/dist/src/utils/functions/validation/isDateBefore/index.d.ts +2 -0
  54. package/dist/src/utils/functions/validation/isDateBefore/tests/isDateBefore.spec.d.ts +1 -0
  55. package/dist/src/utils/functions/validation/isDateInRange/index.d.ts +3 -0
  56. package/dist/src/utils/functions/validation/isDateInRange/tests/isDateInRange.spec.d.ts +1 -0
  57. package/dist/src/utils/functions/validation/isDateValid/index.d.ts +9 -0
  58. package/dist/src/utils/functions/validation/isDateValid/tests/isDateValid.spec.d.ts +1 -0
  59. package/dist/src/utils/functions/validation/isEmailValid/tests/isEmailValid.spec.d.ts +1 -0
  60. package/dist/src/utils/functions/validation/isWeekend/index.d.ts +3 -0
  61. package/dist/src/utils/functions/validation/isWeekend/tests/isWeekend.spec.d.ts +1 -0
  62. package/dist/src/utils/parseDate/index.d.ts +3 -0
  63. package/dist/src/utils/parseDate/tests/parseDate.spec.d.ts +1 -0
  64. package/dist/src/utils/rules/doMatchPattern/index.d.ts +3 -0
  65. package/dist/src/utils/rules/doMatchPattern/tests/matchPattern.spec.d.ts +1 -0
  66. package/dist/src/utils/rules/index.d.ts +11 -0
  67. package/dist/src/utils/rules/isDateValid/index.d.ts +4 -0
  68. package/dist/src/utils/rules/isDateValid/tests/isDateValid.spec.d.ts +1 -0
  69. package/dist/src/utils/rules/isExactLength/index.d.ts +3 -0
  70. package/dist/src/utils/rules/isExactLength/locales.d.ts +2 -0
  71. package/dist/src/utils/rules/isExactLength/tests/exactLength.spec.d.ts +1 -0
  72. package/dist/src/utils/rules/isMaxLength/index.d.ts +3 -0
  73. package/dist/src/utils/rules/isMaxLength/locales.d.ts +2 -0
  74. package/dist/src/utils/rules/isMaxLength/tests/isMaxLength.spec.d.ts +1 -0
  75. package/dist/src/utils/rules/isMinLength/index.d.ts +3 -0
  76. package/dist/src/utils/rules/isMinLength/locales.d.ts +2 -0
  77. package/dist/src/utils/rules/isMinLength/tests/isMinLength.spec.d.ts +1 -0
  78. package/dist/src/utils/rules/isNotAfterDate/index.d.ts +3 -0
  79. package/dist/src/utils/rules/isNotAfterDate/tests/isNotAfterDate.spec.d.ts +1 -0
  80. package/dist/src/utils/rules/isNotAfterToday/index.d.ts +4 -0
  81. package/dist/src/utils/rules/isNotAfterToday/locales.d.ts +2 -0
  82. package/dist/src/utils/rules/isNotAfterToday/tests/isNotAfterToday.spec.d.ts +1 -0
  83. package/dist/src/utils/rules/isNotBeforeDate/index.d.ts +3 -0
  84. package/dist/src/utils/rules/isNotBeforeDate/locales.d.ts +2 -0
  85. package/dist/src/utils/rules/isNotBeforeDate/tests/IsNotBeforeDate.spec.d.ts +1 -0
  86. package/dist/src/utils/rules/isNotBeforeToday/index.d.ts +4 -0
  87. package/dist/src/utils/rules/isNotBeforeToday/locales.d.ts +2 -0
  88. package/dist/src/utils/rules/isNotBeforeToday/tests/notBeforeToday.spec.d.ts +1 -0
  89. package/dist/src/utils/rules/isRequired/index.d.ts +4 -0
  90. package/dist/src/utils/rules/isRequired/locales.d.ts +2 -0
  91. package/dist/src/utils/rules/isRequired/tests/isRequred.spec.d.ts +1 -0
  92. package/dist/src/utils/rules/isValidEmail/index.d.ts +4 -0
  93. package/dist/src/utils/rules/isValidEmail/locales.d.ts +2 -0
  94. package/dist/src/utils/rules/isValidEmail/tests/isValidEmail.spec.d.ts +1 -0
  95. package/dist/src/vuetifyConfig.d.ts +81 -0
  96. package/dist/style.css +1 -1
  97. package/package.json +3 -1
  98. package/src/assets/_elevations.scss +89 -0
  99. package/src/assets/_fonts.scss +6 -0
  100. package/src/assets/_radius.scss +92 -0
  101. package/src/assets/_spacers.scss +149 -0
  102. package/src/assets/settings.scss +15 -3
  103. package/src/assets/tokens.scss +32 -29
  104. package/src/components/Amelipro/types/types.ts +40 -0
  105. package/src/components/ChipList/ChipList.stories.ts +26 -27
  106. package/src/components/ChipList/ChipList.vue +5 -1
  107. package/src/components/ChipList/config.ts +1 -0
  108. package/src/components/CookiesSelection/CookiesInformation/CookiesInformation.vue +2 -2
  109. package/src/components/Customs/SyBtnSelect/SyBtnSelect.mdx +1 -1
  110. package/src/components/Customs/SyInputSelect/SyInputSelect.mdx +1 -1
  111. package/src/components/Customs/SyInputSelect/SyInputSelect.stories.ts +65 -0
  112. package/src/components/Customs/SyInputSelect/SyInputSelect.vue +13 -3
  113. package/src/components/Customs/SySelect/SySelect.mdx +1 -1
  114. package/src/components/Customs/SySelect/SySelect.stories.ts +88 -5
  115. package/src/components/Customs/SySelect/SySelect.vue +55 -14
  116. package/src/components/Customs/SySelect/tests/SySelect.spec.ts +135 -2
  117. package/src/components/Customs/SyTextField/SyTextField.mdx +2 -2
  118. package/src/components/Customs/SyTextField/SyTextField.stories.ts +809 -79
  119. package/src/components/Customs/SyTextField/SyTextField.vue +135 -104
  120. package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +190 -38
  121. package/src/components/Customs/SyTextField/types.d.ts +1 -0
  122. package/src/components/DatePicker/DatePicker.stories.ts +177 -5
  123. package/src/components/DatePicker/DatePicker.vue +302 -233
  124. package/src/components/DatePicker/DateTextInput.vue +101 -246
  125. package/src/components/DatePicker/tests/DatePicker.spec.ts +123 -60
  126. package/src/components/DatePicker/tests/DateTextInput.spec.ts +202 -6
  127. package/src/components/FileList/Accessibilite.stories.ts +1 -1
  128. package/src/components/FileList/AccessibiliteItems.ts +22 -0
  129. package/src/components/FileList/FileList.vue +2 -1
  130. package/src/components/FileList/UploadItem/UploadItem.vue +10 -0
  131. package/src/components/FileUpload/FileUpload.stories.ts +93 -7
  132. package/src/components/FileUpload/FileUpload.vue +1 -0
  133. package/src/components/FileUpload/tests/FileUpload.spec.ts +4 -4
  134. package/src/components/FilterInline/Accessibilite.mdx +14 -0
  135. package/src/components/FilterInline/Accessibilite.stories.ts +216 -0
  136. package/src/components/FilterInline/AccessibiliteItems.ts +132 -0
  137. package/src/components/FilterInline/FilterInline.mdx +180 -34
  138. package/src/components/FilterInline/FilterInline.stories.ts +363 -6
  139. package/src/components/FilterInline/constants/ExpertiseLevelEnum.ts +4 -0
  140. package/src/components/FilterSideBar/Accessibilite.mdx +14 -0
  141. package/src/components/FilterSideBar/Accessibilite.stories.ts +216 -0
  142. package/src/components/FilterSideBar/AccessibiliteItems.ts +153 -0
  143. package/src/components/FilterSideBar/FilterSideBar.mdx +237 -0
  144. package/src/components/FilterSideBar/FilterSideBar.stories.ts +798 -0
  145. package/src/components/FilterSideBar/FilterSideBar.vue +193 -0
  146. package/src/components/FilterSideBar/constants/ExpertiseLevelEnum.ts +4 -0
  147. package/src/components/FilterSideBar/locales.ts +8 -0
  148. package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +305 -0
  149. package/src/components/FilterSideBar/tests/__snapshots__/FilterSideBar.spec.ts.snap +39 -0
  150. package/src/components/HeaderBar/Usages.mdx +1 -1
  151. package/src/components/NirField/NirField.stories.ts +738 -29
  152. package/src/components/NirField/NirField.vue +401 -359
  153. package/src/components/NirField/examples//342/200/257dataset/342/200/257.md +12 -0
  154. package/src/components/NirField/tests/NirField.spec.ts +88 -52
  155. package/src/components/NirField/tests/config.spec.ts +65 -0
  156. package/src/components/NotificationBar/Accessibilite.stories.ts +4 -0
  157. package/src/components/NotificationBar/NotificationBar.mdx +2 -2
  158. package/src/components/NotificationBar/NotificationBar.stories.ts +66 -13
  159. package/src/components/NotificationBar/NotificationBar.vue +42 -114
  160. package/src/components/NotificationBar/tests/NotificationBar.spec.ts +28 -33
  161. package/src/components/NotificationBar/tests/__snapshots__/NotificationBar.spec.ts.snap +1 -1
  162. package/src/components/PaginatedTable/PaginatedTable.vue +6 -10
  163. package/src/components/PaginatedTable/tests/__snapshots__/PaginatedTable.spec.ts.snap +4 -4
  164. package/src/components/PasswordField/PasswordField.mdx +129 -47
  165. package/src/components/PasswordField/PasswordField.stories.ts +1111 -120
  166. package/src/components/PasswordField/PasswordField.vue +212 -99
  167. package/src/components/PasswordField/tests/PasswordField.spec.ts +138 -9
  168. package/src/components/PeriodField/PeriodField.stories.ts +214 -118
  169. package/src/components/PeriodField/PeriodField.vue +238 -190
  170. package/src/components/PeriodField/tests/PeriodField.spec.ts +146 -0
  171. package/src/components/PhoneField/PhoneField.stories.ts +170 -0
  172. package/src/components/PhoneField/PhoneField.vue +76 -17
  173. package/src/components/PhoneField/indicatifs.ts +1 -1
  174. package/src/components/PhoneField/tests/PhoneField.spec.ts +40 -0
  175. package/src/components/RatingPicker/RatingPicker.stories.ts +7 -7
  176. package/src/components/SearchListField/SearchListField.stories.ts +1 -1
  177. package/src/components/UploadWorkflow/Accessibilite.mdx +14 -0
  178. package/src/components/UploadWorkflow/Accessibilite.stories.ts +216 -0
  179. package/src/components/UploadWorkflow/AccessibiliteItems.ts +192 -0
  180. package/src/components/UploadWorkflow/UploadWorkflow.mdx +75 -0
  181. package/src/components/UploadWorkflow/UploadWorkflow.stories.ts +943 -0
  182. package/src/components/UploadWorkflow/UploadWorkflow.vue +230 -0
  183. package/src/components/UploadWorkflow/config.ts +29 -0
  184. package/src/components/UploadWorkflow/constants/ExpertiseLevelEnum.ts +4 -0
  185. package/src/components/UploadWorkflow/locales.ts +8 -0
  186. package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +257 -0
  187. package/src/components/UploadWorkflow/tests/__snapshots__/UploadWorkflow.spec.ts.snap +54 -0
  188. package/src/components/UploadWorkflow/types.ts +21 -0
  189. package/src/components/UploadWorkflow/useFileList.ts +84 -0
  190. package/src/components/UploadWorkflow/useFileUploadJourney.ts +18 -0
  191. package/src/components/Usages/tests/Usages.spec.ts +183 -0
  192. package/src/components/index.ts +5 -0
  193. package/src/composables/date/tests/useDateFormat.spec.ts +67 -0
  194. package/src/composables/date/tests/useDateInitialization.spec.ts +89 -0
  195. package/src/composables/date/tests/useDatePickerAccessibility.spec.ts +102 -0
  196. package/src/composables/date/useDateFormat.ts +94 -0
  197. package/src/composables/date/useDateInitialization.ts +92 -0
  198. package/src/composables/date/useDatePickerAccessibility.ts +78 -0
  199. package/src/composables/rules/tests/useFieldValidation.spec.ts +385 -4
  200. package/src/composables/rules/useFieldValidation.ts +5 -2
  201. package/src/composables/useFilterable/useFilterable.ts +5 -4
  202. package/src/composables/validation/tests/useValidation.spec.ts +154 -0
  203. package/src/composables/validation/useValidation.ts +180 -0
  204. package/src/designTokens/index.ts +4 -0
  205. package/src/main.ts +1 -0
  206. package/src/stories/Accessibilite/Aculturation/AuditDesignSystem.mdx +28 -0
  207. package/src/stories/Accessibilite/Aculturation/SensibilisationAccessibilite.mdx +2 -2
  208. package/src/stories/Accessibilite/Audit/RGAA.mdx +6 -6
  209. package/src/stories/Accessibilite/Introduction.mdx +2 -1
  210. package/src/stories/Accessibilite/KitDePreAudit/Echantillonnage.mdx +1 -1
  211. package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +1 -1
  212. package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +8 -11
  213. package/src/stories/Accessibilite/KitDePreAudit/Outils/LecteursDEcran.mdx +77 -0
  214. package/src/stories/Accessibilite/KitDePreAudit/Outils/Tanaguru.mdx +9 -3
  215. package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +2 -2
  216. package/src/stories/Demarrer/Accueil.mdx +1 -1
  217. package/src/stories/Demarrer/Introduction.stories.ts +3 -3
  218. package/src/stories/Demarrer/Releases.mdx +8 -0
  219. package/src/stories/Demarrer/Releases.stories.ts +66 -0
  220. package/src/stories/DesignTokens/Conteneurs.stories.ts +3 -3
  221. package/src/stories/DesignTokens/ThemePA.mdx +4 -30
  222. package/src/stories/GuideDuDev/LesBreackingChanges.mdx +36 -0
  223. package/src/stories/GuideDuDev/UtiliserLesRules.mdx +321 -78
  224. package/src/stories/GuideDuDev/moduleDeNotification.mdx +1 -1
  225. package/src/utils/formatDate/index.ts +6 -0
  226. package/src/utils/formatDate/tests/formatDate.spec.ts +18 -0
  227. package/src/utils/functions/validation/isDateAfter/index.ts +9 -0
  228. package/src/utils/functions/validation/isDateAfter/tests/isDateAfter.spec.ts +18 -0
  229. package/src/utils/functions/validation/isDateBefore/index.ts +9 -0
  230. package/src/utils/functions/validation/isDateBefore/tests/isDateBefore.spec.ts +23 -0
  231. package/src/utils/functions/validation/isDateInRange/index.ts +22 -0
  232. package/src/utils/functions/validation/isDateInRange/tests/isDateInRange.spec.ts +28 -0
  233. package/src/utils/functions/validation/isDateValid/index.ts +67 -0
  234. package/src/utils/functions/validation/isDateValid/tests/isDateValid.spec.ts +46 -0
  235. package/src/utils/functions/validation/isEmailValid/index.ts +9 -0
  236. package/src/utils/functions/validation/isWeekend/index.ts +10 -0
  237. package/src/utils/functions/validation/isWeekend/tests/isWeekend.spec.ts +16 -0
  238. package/src/utils/parseDate/index.ts +29 -0
  239. package/src/utils/parseDate/tests/parseDate.spec.ts +52 -0
  240. package/src/utils/rules/Rules.mdx +16 -0
  241. package/src/utils/rules/doMatchPattern/DoMachPattern.mdx +66 -0
  242. package/src/utils/rules/doMatchPattern/DoMatchPattern.stories.ts +106 -0
  243. package/src/utils/rules/doMatchPattern/index.ts +28 -0
  244. package/src/utils/rules/doMatchPattern/locales.ts +5 -0
  245. package/src/utils/rules/doMatchPattern/tests/matchPattern.spec.ts +38 -0
  246. package/src/utils/rules/index.ts +11 -0
  247. package/src/utils/rules/isDateValid/IsDateValid.mdx +87 -0
  248. package/src/utils/rules/isDateValid/IsDateValid.stories.ts +113 -0
  249. package/src/utils/rules/isDateValid/index.ts +32 -0
  250. package/src/utils/rules/isDateValid/locales.ts +10 -0
  251. package/src/utils/rules/isDateValid/tests/isDateValid.spec.ts +27 -0
  252. package/src/utils/rules/isExactLength/IsExactLenght.mdx +68 -0
  253. package/src/utils/rules/isExactLength/IsExactLength.stories.ts +151 -0
  254. package/src/utils/rules/{exactLength → isExactLength}/index.ts +2 -4
  255. package/src/utils/rules/isExactLength/tests/exactLength.spec.ts +48 -0
  256. package/src/utils/rules/isMaxLength/IsMaxLength.mdx +68 -0
  257. package/src/utils/rules/isMaxLength/IsMaxLength.stories.ts +152 -0
  258. package/src/utils/rules/isMaxLength/index.ts +30 -0
  259. package/src/utils/rules/isMaxLength/locales.ts +6 -0
  260. package/src/utils/rules/isMaxLength/tests/isMaxLength.spec.ts +42 -0
  261. package/src/utils/rules/isMinLength/IsMinLength.mdx +68 -0
  262. package/src/utils/rules/isMinLength/IsMinLength.stories.ts +152 -0
  263. package/src/utils/rules/isMinLength/index.ts +30 -0
  264. package/src/utils/rules/isMinLength/locales.ts +6 -0
  265. package/src/utils/rules/isMinLength/tests/isMinLength.spec.ts +42 -0
  266. package/src/utils/rules/isNotAfterDate/IsNotAfterDate.mdx +68 -0
  267. package/src/utils/rules/isNotAfterDate/IsNotAfterDate.stories.ts +109 -0
  268. package/src/utils/rules/isNotAfterDate/index.ts +25 -0
  269. package/src/utils/rules/isNotAfterDate/locales.ts +6 -0
  270. package/src/utils/rules/isNotAfterDate/tests/isNotAfterDate.spec.ts +25 -0
  271. package/src/utils/rules/isNotAfterToday/IsNotAfterToday.mdx +83 -0
  272. package/src/utils/rules/isNotAfterToday/IsNotAfterToday.stories.ts +110 -0
  273. package/src/utils/rules/isNotAfterToday/index.ts +28 -0
  274. package/src/utils/rules/isNotAfterToday/locales.ts +5 -0
  275. package/src/utils/rules/isNotAfterToday/tests/isNotAfterToday.spec.ts +30 -0
  276. package/src/utils/rules/isNotBeforeDate/IsNotBeforeDate.mdx +68 -0
  277. package/src/utils/rules/isNotBeforeDate/IsNotBeforeDate.stories.ts +114 -0
  278. package/src/utils/rules/isNotBeforeDate/index.ts +25 -0
  279. package/src/utils/rules/isNotBeforeDate/locales.ts +6 -0
  280. package/src/utils/rules/isNotBeforeDate/tests/IsNotBeforeDate.spec.ts +25 -0
  281. package/src/utils/rules/isNotBeforeToday/IsNotBeforeToday.mdx +83 -0
  282. package/src/utils/rules/isNotBeforeToday/IsNotBeforeToday.stories.ts +110 -0
  283. package/src/utils/rules/isNotBeforeToday/index.ts +28 -0
  284. package/src/utils/rules/isNotBeforeToday/locales.ts +5 -0
  285. package/src/utils/rules/isNotBeforeToday/tests/notBeforeToday.spec.ts +36 -0
  286. package/src/utils/rules/isRequired/IsRequired.mdx +81 -0
  287. package/src/utils/rules/isRequired/IsRequired.stories.ts +101 -0
  288. package/src/utils/rules/{required → isRequired}/index.ts +3 -3
  289. package/src/utils/rules/{required/tests/index.spec.ts → isRequired/tests/isRequred.spec.ts} +9 -9
  290. package/src/utils/rules/isValidEmail/IsValidEmail.mdx +81 -0
  291. package/src/utils/rules/isValidEmail/IsValidEmail.stories.ts +101 -0
  292. package/src/utils/rules/{email → isValidEmail}/index.ts +3 -5
  293. package/src/utils/rules/{email/tests/email.spec.ts → isValidEmail/tests/isValidEmail.spec.ts} +5 -5
  294. package/src/vuetifyConfig.ts +61 -0
  295. package/dist/src/utils/rules/email/index.d.ts +0 -4
  296. package/dist/src/utils/rules/exactLength/index.d.ts +0 -4
  297. package/dist/src/utils/rules/required/index.d.ts +0 -4
  298. package/dist/src/utils/rules/required/ruleMessageHelper.d.ts +0 -3
  299. package/src/components/Customs/SyTextField/tests/__snapshots__/SyTextField.spec.ts.snap +0 -58
  300. package/src/composables/useFilterable/__snapshots__/useFilterable.spec.ts.snap +0 -3
  301. package/src/utils/functions/isEmailValid/index.ts +0 -8
  302. package/src/utils/rules/required/ruleMessageHelper.ts +0 -14
  303. package/src/utils/rules/required/tests/rulesMessageHelper.spec.ts +0 -22
  304. /package/dist/src/{utils/functions/isEmailValid/tests/isEmailValid.spec.d.ts → components/FilterSideBar/tests/FilterSideBar.spec.d.ts} +0 -0
  305. /package/dist/src/{utils/rules/email/tests/email.spec.d.ts → components/NirField/tests/config.spec.d.ts} +0 -0
  306. /package/dist/src/{utils/rules/required/tests/index.spec.d.ts → components/UploadWorkflow/tests/UploadWorkflow.spec.d.ts} +0 -0
  307. /package/dist/src/{utils/rules/required/tests/rulesMessageHelper.spec.d.ts → components/Usages/tests/Usages.spec.d.ts} +0 -0
  308. /package/dist/src/utils/functions/{isEmailValid → validation/isEmailValid}/index.d.ts +0 -0
  309. /package/dist/src/utils/rules/{exactLength → doMatchPattern}/locales.d.ts +0 -0
  310. /package/dist/src/utils/rules/{email → isDateValid}/locales.d.ts +0 -0
  311. /package/dist/src/utils/rules/{required → isNotAfterDate}/locales.d.ts +0 -0
  312. /package/src/utils/functions/{isEmailValid → validation/isEmailValid}/tests/isEmailValid.spec.ts +0 -0
  313. /package/src/utils/rules/{exactLength → isExactLength}/locales.ts +0 -0
  314. /package/src/utils/rules/{required → isRequired}/locales.ts +0 -0
  315. /package/src/utils/rules/{email → isValidEmail}/locales.ts +0 -0
@@ -0,0 +1,193 @@
1
+ <script lang="ts" setup>
2
+ import { computed, ref, toRef } from 'vue'
3
+ import { locales as defaultLocales } from './locales'
4
+ import { mdiFilterVariant } from '@mdi/js'
5
+ import ChipList from '../ChipList/ChipList.vue'
6
+ import type { FilterProp } from '@/composables/useFilterable/useFilterable'
7
+ import useFilterable from '@/composables/useFilterable/useFilterable'
8
+
9
+ const props = withDefaults(defineProps<{
10
+ modelValue?: FilterProp
11
+ locales?: typeof defaultLocales
12
+ }>(), {
13
+ modelValue: () => [],
14
+ locales: () => defaultLocales,
15
+ })
16
+
17
+ const emits = defineEmits<{
18
+ 'update:modelValue': (value: FilterProp) => void
19
+ }>()
20
+
21
+ const {
22
+ filters,
23
+ updateValue,
24
+ removeChip,
25
+ resetFilter,
26
+ getChips,
27
+ getFilterCount,
28
+ formatFilterName,
29
+ resetAllFilters,
30
+ } = useFilterable(toRef(props, 'modelValue'), emits)
31
+
32
+ const drawer = ref(false)
33
+
34
+ const activeFiltersCount = computed(() => {
35
+ return props.modelValue.reduce((count, filter) => {
36
+ return count + getFilterCount(filter)
37
+ }, 0)
38
+ })
39
+
40
+ function toggleDrawer(): void {
41
+ drawer.value = !drawer.value
42
+ }
43
+
44
+ function applyFilters(): void {
45
+ updateValue()
46
+ drawer.value = false
47
+ }
48
+
49
+ </script>
50
+
51
+ <template>
52
+ <div class="sy-filters-side-bar">
53
+ <VBtn
54
+ class="px-8 py-3"
55
+ :class="{ 'v-btn--active': drawer }"
56
+ color="primary"
57
+ variant="text"
58
+ size="large"
59
+ @click="toggleDrawer"
60
+ >
61
+ <VBadge
62
+ v-if="activeFiltersCount"
63
+ :content="activeFiltersCount"
64
+ :label="locales.badgeLabel(activeFiltersCount)"
65
+ color="secondary"
66
+ inline
67
+ class="ml-n1 mr-1"
68
+ />
69
+
70
+ {{ locales.filterBtnLabel }}
71
+
72
+ <VIcon
73
+ class="ml-2"
74
+ size="small"
75
+ >
76
+ {{ mdiFilterVariant }}
77
+ </VIcon>
78
+ </VBtn>
79
+
80
+ <VNavigationDrawer
81
+ :model-value="drawer"
82
+ sticky
83
+ temporary
84
+ location="right"
85
+ rounded="0"
86
+ :scrim="false"
87
+ rail
88
+ rail-width="395"
89
+ disable-resize-watcher
90
+ class="elevation-6"
91
+ >
92
+ <VExpansionPanels variant="accordion">
93
+ <VExpansionPanel
94
+ v-for="filter in filters"
95
+ :key="filter.name"
96
+ :class="`vd-filter-${filter.name}`"
97
+ tile
98
+ elevation="0"
99
+ >
100
+ <VExpansionPanelTitle class="text-subtitle-2">
101
+ {{ filter.title }}
102
+
103
+ <span
104
+ v-if="getFilterCount(filter)"
105
+ class="ml-1"
106
+ >
107
+ ({{ getFilterCount(filter) }})
108
+ </span>
109
+ </VExpansionPanelTitle>
110
+
111
+ <VExpansionPanelText>
112
+ <ChipList
113
+ :items="getChips(filter)"
114
+ :overflow-limit="filter.chipOverflowLimit"
115
+ class="mb-5"
116
+ :vuetify-options="{ chip: { color: 'secondary' }, icon: { color: 'white'} }"
117
+ @remove="removeChip(filter, $event)"
118
+ @reset="resetFilter(filter)"
119
+ />
120
+
121
+ <slot
122
+ :name="`${formatFilterName(filter.name)}`"
123
+ :props="{
124
+ modelValue: filter.value,
125
+ 'onUpdate:modelValue': (value: unknown) =>
126
+ (filter.value = value),
127
+ }"
128
+ />
129
+ </VExpansionPanelText>
130
+ </VExpansionPanel>
131
+ </VExpansionPanels>
132
+
133
+ <VSpacer />
134
+
135
+ <div class="px-4 pb-4 pt-10">
136
+ <VBtn
137
+ color="primary"
138
+ block
139
+ size="large"
140
+ variant="outlined"
141
+ class="mb-4"
142
+ @click="drawer = false"
143
+ >
144
+ {{ locales.close }}
145
+ </VBtn>
146
+
147
+ <VBtn
148
+ color="primary"
149
+ block
150
+ size="large"
151
+ variant="outlined"
152
+ class="mb-4"
153
+ @click.stop="resetAllFilters"
154
+ >
155
+ {{ locales.reset }}
156
+ </VBtn>
157
+
158
+ <VBtn
159
+ block
160
+ size="large"
161
+ color="primary"
162
+ @click.stop="applyFilters"
163
+ >
164
+ {{ locales.apply }}
165
+ </VBtn>
166
+ </div>
167
+ </VNavigationDrawer>
168
+ </div>
169
+ </template>
170
+
171
+ <style lang="scss" scoped>
172
+ .sy-filters-side-bar :deep() {
173
+ .v-navigation-drawer {
174
+ &__content {
175
+ display: flex;
176
+ flex-direction: column;
177
+ }
178
+
179
+ &__border {
180
+ display: none;
181
+ }
182
+ }
183
+
184
+ .v-expansion-panel {
185
+ border-bottom: 1px solid rgb(0 0 0 / 12%);
186
+ }
187
+
188
+ .v-expansion-panel:not(:first-child)::after {
189
+ display: none;
190
+ }
191
+ }
192
+
193
+ </style>
@@ -0,0 +1,4 @@
1
+ export enum ExpertiseLevelEnum {
2
+ DEV = 'dev',
3
+ DESIGN = 'design',
4
+ }
@@ -0,0 +1,8 @@
1
+ export const locales = {
2
+ filterBtnLabel: 'Filtres',
3
+ badgeLabel: (count: number): string =>
4
+ `${count} filtre${count > 1 ? 's' : ''}`,
5
+ reset: 'Réinitialiser',
6
+ close: 'Fermer',
7
+ apply: 'Appliquer',
8
+ } as const
@@ -0,0 +1,305 @@
1
+ /* eslint-disable vue/one-component-per-file */
2
+ import { describe, it, expect } from 'vitest'
3
+ import { mount } from '@vue/test-utils'
4
+ import { vuetify } from '@tests/unit/setup'
5
+
6
+ import FilterSideBar from '../FilterSideBar.vue'
7
+ import { defineComponent } from 'vue'
8
+ import { VApp } from 'vuetify/components'
9
+
10
+ describe('FilterSideBar', () => {
11
+ const EventSenderComponent = defineComponent({
12
+ emits: ['update:modelValue'],
13
+ methods: {
14
+ sentEvent() {
15
+ this.$emit('update:modelValue', 'Jane Doe')
16
+ },
17
+ },
18
+ template: '<div>lorem</div>',
19
+ })
20
+
21
+ const TestComponent = defineComponent({
22
+ components: { VApp, FiltersSideBar: FilterSideBar, EventSenderComponent },
23
+ props: {
24
+ modelValue: {
25
+ type: Array,
26
+ required: true,
27
+ },
28
+ },
29
+ data() {
30
+ return {
31
+ localModelValue: this.modelValue,
32
+ }
33
+ },
34
+ watch: {
35
+ localModelValue(newValue) {
36
+ this.$emit('update:modelValue', newValue)
37
+ },
38
+ },
39
+ template: `
40
+ <VApp>
41
+ <FiltersSideBar v-model="localModelValue">
42
+ <template v-slot:name="{ attrs }">
43
+ <EventSenderComponent
44
+ v-bind="attrs"
45
+ />
46
+ </template>
47
+ </FiltersSideBar>
48
+ </VApp>
49
+ `,
50
+ })
51
+
52
+ it('renders correctly', () => {
53
+ const wrapper = mount(TestComponent, {
54
+ global: {
55
+ plugins: [vuetify],
56
+ },
57
+ props: {
58
+ modelValue: [],
59
+ },
60
+ })
61
+
62
+ expect(wrapper.html()).toMatchSnapshot()
63
+ })
64
+
65
+ it('renders correctly with an active filter', async () => {
66
+ const wrapper = mount(TestComponent, {
67
+ props: {
68
+ modelValue: [
69
+ {
70
+ name: 'name',
71
+ title: 'Nom',
72
+ value: 'John Doe',
73
+ },
74
+ ],
75
+ },
76
+ global: {
77
+ plugins: [vuetify],
78
+ },
79
+ })
80
+
81
+ await wrapper.find('.v-btn__content').trigger('click')
82
+
83
+ await wrapper.find('.v-expansion-panel-title').trigger('click')
84
+
85
+ expect(wrapper.find('.v-chip').text()).toBe('John Doe')
86
+ })
87
+
88
+ it('renders correctly with multiple active filters', () => {
89
+ const wrapper = mount(TestComponent, {
90
+ propsData: {
91
+ modelValue: [
92
+ {
93
+ name: 'name',
94
+ label: 'Nom',
95
+ value: 'John Doe',
96
+ },
97
+ {
98
+ name: 'age',
99
+ label: 'Âge',
100
+ value: '18',
101
+ },
102
+ ],
103
+ },
104
+ global: {
105
+ plugins: [vuetify],
106
+ },
107
+ })
108
+
109
+ expect(wrapper.findAll('.v-expansion-panel').length).toBe(2)
110
+ })
111
+
112
+ it('emits "update:modelValue" event when a filter is removed', async () => {
113
+ const wrapper = mount(TestComponent, {
114
+ props: {
115
+ modelValue: [
116
+ {
117
+ name: 'name',
118
+ label: 'Nom',
119
+ value: 'John Doe',
120
+ },
121
+ ],
122
+ },
123
+ global: {
124
+ plugins: [vuetify],
125
+ },
126
+ })
127
+
128
+ await wrapper.find('.v-btn__content').trigger('click')
129
+
130
+ await wrapper.find('.v-expansion-panel-title').trigger('click')
131
+
132
+ await wrapper.find('.remove-chip').trigger('click')
133
+
134
+ await wrapper.find('button:nth-child(3)').trigger('click')
135
+
136
+ expect(wrapper.emitted('update:modelValue')?.[0][0]).toEqual([
137
+ {
138
+ name: 'name',
139
+ label: 'Nom',
140
+ value: undefined,
141
+ },
142
+ ])
143
+ })
144
+
145
+ it('renders the template corresponding to the filter name', async () => {
146
+ const wrapper = mount(TestComponent, {
147
+ props: {
148
+ modelValue: [
149
+ {
150
+ name: 'name',
151
+ title: 'Nom',
152
+ },
153
+ ],
154
+ },
155
+ global: {
156
+ plugins: [vuetify],
157
+ },
158
+ })
159
+
160
+ expect(wrapper.find('.v-expansion-panel-title').text()).toBe('Nom')
161
+ })
162
+
163
+ it('emits "update:modelValue" event when a filter is added', async () => {
164
+ const wrapper = mount(TestComponent, {
165
+ props: {
166
+ modelValue: [
167
+ {
168
+ name: 'name',
169
+ title: 'Nom',
170
+ },
171
+ ],
172
+ },
173
+ global: {
174
+ plugins: [vuetify],
175
+ },
176
+ })
177
+
178
+ await wrapper.find('.v-btn__content').trigger('click')
179
+ await wrapper.find('.v-expansion-panel-title').trigger('click')
180
+
181
+ const EventSender = wrapper.findComponent(EventSenderComponent)
182
+ await wrapper.find('button:nth-child(3)').trigger('click')
183
+
184
+ EventSender.vm.sentEvent()
185
+
186
+ expect(wrapper.emitted('update:modelValue')).toBeTruthy()
187
+ })
188
+
189
+ it('reset one filter when the reset button of the filter is clicked', async () => {
190
+ const wrapper = mount(TestComponent, {
191
+ props: {
192
+ modelValue: [
193
+ {
194
+ name: 'name',
195
+ title: 'Nom',
196
+ value: 'John Doe',
197
+ },
198
+ {
199
+ name: 'age',
200
+ title: 'Âge',
201
+ value: '18',
202
+ },
203
+ ],
204
+ },
205
+ global: {
206
+ plugins: [vuetify],
207
+ },
208
+ })
209
+
210
+ await wrapper.find('.v-btn__content').trigger('click')
211
+
212
+ await wrapper.find('.v-expansion-panel-title').trigger('click')
213
+
214
+ await wrapper.find('[data-test-id="reset-btn"]').trigger('click')
215
+
216
+ await wrapper.find('button:nth-child(3)').trigger('click')
217
+
218
+ expect(wrapper.emitted('update:modelValue')?.[0][0]).toEqual([
219
+ {
220
+ name: 'name',
221
+ title: 'Nom',
222
+ value: undefined,
223
+ },
224
+ {
225
+ name: 'age',
226
+ title: 'Âge',
227
+ value: '18',
228
+ },
229
+ ])
230
+ })
231
+
232
+ it('resets all the filters when the reset button is clicked', async () => {
233
+ const wrapper = mount(TestComponent, {
234
+ props: {
235
+ modelValue: [
236
+ {
237
+ name: 'name',
238
+ title: 'Nom',
239
+ value: 'John Doe',
240
+ },
241
+ {
242
+ name: 'age',
243
+ title: 'Âge',
244
+ value: '18',
245
+ },
246
+ ],
247
+ },
248
+ global: {
249
+ plugins: [vuetify],
250
+ },
251
+ })
252
+
253
+ await wrapper.find('.v-btn__content').trigger('click')
254
+
255
+ await wrapper
256
+ .find(
257
+ '.v-navigation-drawer__content>div:last-child button:nth-child(2)',
258
+ )
259
+ .trigger('click')
260
+
261
+ expect(wrapper.emitted('update:modelValue')?.[0][0]).toEqual([
262
+ {
263
+ name: 'name',
264
+ title: 'Nom',
265
+ value: undefined,
266
+ },
267
+ {
268
+ name: 'age',
269
+ title: 'Âge',
270
+ value: undefined,
271
+ },
272
+ ])
273
+ })
274
+
275
+ it('open and close the drawer without changing the filters', async () => {
276
+ const wrapper = mount(TestComponent, {
277
+ props: {
278
+ modelValue: [
279
+ {
280
+ name: 'name',
281
+ title: 'Nom',
282
+ value: 'John Doe',
283
+ },
284
+ {
285
+ name: 'age',
286
+ title: 'Âge',
287
+ value: '18',
288
+ },
289
+ ],
290
+ },
291
+ global: {
292
+ plugins: [vuetify],
293
+ },
294
+ })
295
+
296
+ await wrapper.find('.v-btn__content').trigger('click')
297
+ await wrapper
298
+ .find(
299
+ '.v-navigation-drawer__content>div:last-child button:nth-child(1)',
300
+ )
301
+ .trigger('click')
302
+
303
+ expect(wrapper.emitted('update:modelValue')).toBeUndefined()
304
+ })
305
+ })
@@ -0,0 +1,39 @@
1
+ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
+
3
+ exports[`FilterSideBar > renders correctly 1`] = `
4
+ "<div class="v-application v-theme--light v-layout v-layout--full-height v-locale--is-ltr">
5
+ <div class="v-application__wrap">
6
+ <div data-v-6c7d1f34="" class="sy-filters-side-bar"><button data-v-6c7d1f34="" type="button" class="v-btn v-theme--light text-primary v-btn--density-default v-btn--size-large v-btn--variant-text px-8 py-3"><span class="v-btn__overlay"></span><span class="v-btn__underlay"></span>
7
+ <!----><span class="v-btn__content" data-no-activator=""><!--v-if--> Filtres <i data-v-6c7d1f34="" class="M6,13H18V11H6M3,6V8H21V6M10,18H14V16H10V18Z mdi v-icon notranslate v-theme--light v-icon--size-small ml-2" aria-hidden="true"></i></span>
8
+ <!---->
9
+ <!---->
10
+ </button>
11
+ <nav class="v-navigation-drawer v-navigation-drawer--right v-navigation-drawer--rail v-navigation-drawer--temporary v-theme--light v-navigation-drawer--mobile rounded-0 elevation-6" style="right: 0px; z-index: 1004; transform: translateX(395px); position: fixed; transition: none !important;" data-v-6c7d1f34="">
12
+ <!---->
13
+ <!---->
14
+ <div class="v-navigation-drawer__content">
15
+ <div data-v-6c7d1f34="" class="v-expansion-panels v-theme--light v-expansion-panels--variant-accordion"></div>
16
+ <div data-v-6c7d1f34="" class="v-spacer"></div>
17
+ <div data-v-6c7d1f34="" class="px-4 pb-4 pt-10"><button data-v-6c7d1f34="" type="button" class="v-btn v-btn--block v-theme--light text-primary v-btn--density-default v-btn--size-large v-btn--variant-outlined mb-4"><span class="v-btn__overlay"></span><span class="v-btn__underlay"></span>
18
+ <!----><span class="v-btn__content" data-no-activator="">Fermer</span>
19
+ <!---->
20
+ <!---->
21
+ </button><button data-v-6c7d1f34="" type="button" class="v-btn v-btn--block v-theme--light text-primary v-btn--density-default v-btn--size-large v-btn--variant-outlined mb-4"><span class="v-btn__overlay"></span><span class="v-btn__underlay"></span>
22
+ <!----><span class="v-btn__content" data-no-activator="">Réinitialiser</span>
23
+ <!---->
24
+ <!---->
25
+ </button><button data-v-6c7d1f34="" type="button" class="v-btn v-btn--block v-btn--elevated v-theme--light bg-primary v-btn--density-default v-btn--size-large v-btn--variant-elevated"><span class="v-btn__overlay"></span><span class="v-btn__underlay"></span>
26
+ <!----><span class="v-btn__content" data-no-activator="">Appliquer</span>
27
+ <!---->
28
+ <!---->
29
+ </button></div>
30
+ </div>
31
+ <!---->
32
+ </nav>
33
+ <transition-stub name="fade-transition" appear="false" persisted="false" css="true">
34
+ <!---->
35
+ </transition-stub>
36
+ </div>
37
+ </div>
38
+ </div>"
39
+ `;
@@ -6,7 +6,7 @@ import * as UsagesStories from "./Usages.stories.ts";
6
6
 
7
7
  # Usages
8
8
 
9
- <Story of={Usagesstories.UsagePage} />
9
+ <Story of={UsagesStories.UsagePage} />
10
10
 
11
11
  <br />
12
12