@cnamts/synapse 1.0.19 → 1.0.21

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 (378) hide show
  1. package/dist/{DateFilter-CeVuSfJ9.js → DateFilter-uN8OURoP.js} +1 -1
  2. package/dist/{NumberFilter-C8PAu_sw.js → NumberFilter-sm1dQNQi.js} +1 -1
  3. package/dist/{PeriodFilter-UMUaxx3d.js → PeriodFilter-Cklsxnh9.js} +1 -1
  4. package/dist/{SelectFilter-CqZl8CYt.js → SelectFilter-CWefj27Z.js} +1 -1
  5. package/dist/{TextFilter-D_RhhNOh.js → TextFilter-Ddyj885L.js} +1 -1
  6. package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +4 -4
  7. package/dist/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.d.ts +17 -7
  8. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +4 -4
  9. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +4 -4
  10. package/dist/components/Customs/Selects/SyAutocomplete/SyAutocomplete.d.ts +2416 -0
  11. package/dist/components/Customs/Selects/SyAutocomplete/types.d.ts +5 -0
  12. package/dist/components/Customs/Selects/SyAutocomplete/utils/ariaManager.d.ts +14 -0
  13. package/dist/components/Customs/Selects/SyAutocomplete/utils/useItemUtils.d.ts +16 -0
  14. package/dist/components/Customs/Selects/SyAutocomplete/utils/useKeyboardHandler.d.ts +28 -0
  15. package/dist/components/Customs/Selects/SyAutocomplete/utils/useSelectionLogic.d.ts +12 -0
  16. package/dist/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.d.ts +2 -0
  17. package/dist/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.d.ts +160 -0
  18. package/dist/components/Customs/SyCheckBoxGroup/locales.d.ts +3 -0
  19. package/dist/components/Customs/SyCheckBoxGroup/types.d.ts +10 -0
  20. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +1545 -2
  21. package/dist/components/Customs/SyIcon/SyIcon.d.ts +2 -1
  22. package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +1495 -2
  23. package/dist/components/DatePicker/composables/useDateSelection.d.ts +1 -0
  24. package/dist/components/DeclarationAccessibilityPage/DeclarationAccessibilityPage.d.ts +60 -0
  25. package/dist/components/ErrorPage/ErrorPage.d.ts +1 -12
  26. package/dist/components/ErrorPage/locales.d.ts +18 -3
  27. package/dist/components/FileUpload/FileUpload.d.ts +2 -0
  28. package/dist/components/MaintenancePage/locales.d.ts +18 -2
  29. package/dist/components/NotFoundPage/locales.d.ts +20 -4
  30. package/dist/components/PaginatedTable/PaginatedTable.d.ts +1 -1
  31. package/dist/components/PaginatedTable/Pagination.d.ts +17 -0
  32. package/dist/components/StatusPage/StatusPage.d.ts +39 -0
  33. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +5 -5
  34. package/dist/components/Tables/SyTable/SyTable.d.ts +5 -5
  35. package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +13 -3
  36. package/dist/components/index.d.ts +4 -0
  37. package/dist/components/types.d.ts +15 -0
  38. package/dist/composables/useFormFieldErrorHandling.d.ts +31 -0
  39. package/dist/design-system-v3.js +126 -122
  40. package/dist/design-system-v3.umd.cjs +325 -314
  41. package/dist/{main-B39UVv5p.js → main-CWniLr0s.js} +15837 -14587
  42. package/dist/modules.d.ts +6 -0
  43. package/dist/style.css +1 -1
  44. package/dist/utils/theme/index.d.ts +6 -0
  45. package/package.json +12 -10
  46. package/src/assets/amelipro/icons.ts +166 -153
  47. package/src/components/Accordion/Accordion.mdx +4 -1
  48. package/src/components/Accordion/{Accessibilite/AccessibilityGuide.mdx → accessibilite/Accessibility.mdx} +2 -2
  49. package/src/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.stories.ts +73 -14
  50. package/src/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.vue +119 -27
  51. package/src/components/Amelipro/AmeliproClickableTile/tests/AmeliproClickableTile.a11y.spec.ts +304 -0
  52. package/src/components/Amelipro/AmeliproClickableTile/tests/AmeliproClickableTile.spec.ts +435 -9
  53. package/src/components/Amelipro/AmeliproClickableTile/tests/__snapshots__/AmeliproClickableTile.spec.ts.snap +60 -0
  54. package/src/components/Amelipro/AmeliproIcon/__tests__/AmeliproIcon.spec.ts +1 -1
  55. package/src/components/Amelipro/AmeliproIcon/iconList.ts +2 -0
  56. package/src/components/BackBtn/BackBtn.vue +5 -4
  57. package/src/components/BackBtn/accessibilite/Accessibility.mdx +15 -0
  58. package/src/components/BackToTopBtn/BackToTopBtn.vue +6 -3
  59. package/src/components/BackToTopBtn/accessibilite/Accessibility.mdx +15 -0
  60. package/src/components/Captcha/Captcha.vue +5 -1
  61. package/src/components/Captcha/CaptchaAlert.vue +9 -7
  62. package/src/components/Captcha/accessibilite/Accessibility.mdx +10 -0
  63. package/src/components/ChipList/accessibilite/Accessibility.mdx +15 -0
  64. package/src/components/CollapsibleList/{Accessibilite.mdx → accessibilite/Accessibility.mdx} +8 -6
  65. package/src/components/Common/IconSlot/IconSlot.vue +1 -1
  66. package/src/components/ContextualMenu/ContextualMenu.stories.ts +0 -3
  67. package/src/components/ContextualMenu/accessibilite/Accessibility.mdx +71 -0
  68. package/src/components/CookieBanner/CookieBanner.stories.ts +11 -20
  69. package/src/components/CookieBanner/CookieBanner.vue +20 -5
  70. package/src/components/CookieBanner/accessibilite/Accessibility.mdx +71 -0
  71. package/src/components/CookieBanner/tests/CookieBanner.spec.ts +48 -4
  72. package/src/components/CookiesSelection/CookiesInformation/CookiesInformation.vue +5 -4
  73. package/src/components/CopyBtn/CopyBtn.vue +6 -3
  74. package/src/components/CopyBtn/accessibilite/Accessibility.mdx +15 -0
  75. package/src/components/Customs/Selects/SelectBtnField/accessibilite/Accessibility.mdx +15 -0
  76. package/src/components/Customs/Selects/SelectOverview.mdx +112 -1
  77. package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.mdx +52 -0
  78. package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.stories.ts +979 -0
  79. package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.vue +653 -0
  80. package/src/components/Customs/Selects/{SySelect → SyAutocomplete/accessibilite}/Accessibilite.stories.ts +7 -38
  81. package/src/components/Customs/Selects/{SySelect/Accessibilite.mdx → SyAutocomplete/accessibilite/Accessibility.mdx} +15 -20
  82. package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.a11y.spec.ts +72 -0
  83. package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.spec.ts +345 -0
  84. package/src/components/Customs/Selects/SyAutocomplete/types.ts +7 -0
  85. package/src/components/Customs/Selects/SyAutocomplete/utils/ariaManager.ts +180 -0
  86. package/src/components/Customs/Selects/SyAutocomplete/utils/useItemUtils.ts +46 -0
  87. package/src/components/Customs/Selects/SyAutocomplete/utils/useKeyboardHandler.ts +107 -0
  88. package/src/components/Customs/Selects/SyAutocomplete/utils/useSelectionLogic.ts +74 -0
  89. package/src/components/Customs/Selects/SyInputSelect/SyInputSelect.vue +13 -9
  90. package/src/components/Customs/Selects/SyInputSelect/accessibilite/Accessibility.mdx +12 -0
  91. package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +43 -34
  92. package/src/components/Customs/Selects/SySelect/SySelect.vue +19 -2
  93. package/src/components/Customs/Selects/SySelect/accessibilite/Accessibility.mdx +274 -0
  94. package/src/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.ts +21 -16
  95. package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.mdx +32 -0
  96. package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.stories.ts +856 -0
  97. package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.vue +334 -0
  98. package/src/components/Customs/SyCheckBoxGroup/accessibilite/Accessibility.mdx +243 -0
  99. package/src/components/Customs/SyCheckBoxGroup/locales.ts +3 -0
  100. package/src/components/Customs/SyCheckBoxGroup/tests/SyCheckBoxGroup.a11y.spec.ts +30 -0
  101. package/src/components/Customs/SyCheckBoxGroup/tests/SyCheckBoxGroup.spec.ts +152 -0
  102. package/src/components/Customs/SyCheckBoxGroup/types.ts +10 -0
  103. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +16 -27
  104. package/src/components/Customs/SyCheckbox/{Accessibilite.mdx → accessibilite/Accessibility.mdx} +3 -3
  105. package/src/components/Customs/SyForm/SyForm.a11y.spec.ts +1 -1
  106. package/src/components/Customs/SyForm/accessibilite/Accessibility.mdx +10 -0
  107. package/src/components/Customs/SyIcon/SyIcon.mdx +4 -1
  108. package/src/components/Customs/SyIcon/SyIcon.vue +4 -3
  109. package/src/components/Customs/SyIcon/{Accessibilite.stories.ts → accessibilite/Accessibilite.stories.ts} +3 -3
  110. package/src/components/Customs/SyIcon/{Accessibilite.mdx → accessibilite/Accessibility.mdx} +2 -2
  111. package/src/components/Customs/SyPagination/SyPagination.mdx +4 -2
  112. package/src/components/Customs/SyPagination/accessibilite/Accessibility.mdx +10 -0
  113. package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +16 -43
  114. package/src/components/Customs/SyRadioGroup/{Accessibilite.mdx → accessibilite/Accessibility.mdx} +2 -2
  115. package/src/components/Customs/SyTabs/SyTabs.mdx +4 -2
  116. package/src/components/Customs/SyTabs/{Accessibilite.mdx → accessibilite/Accessibility.mdx} +2 -2
  117. package/src/components/Customs/SyTextField/SyTextField.mdx +1 -2
  118. package/src/components/Customs/SyTextField/SyTextField.vue +13 -0
  119. package/src/components/Customs/SyTextField/accessibilite/Accessibility.mdx +15 -0
  120. package/src/components/DataList/accessibilite/Accessibility.mdx +15 -0
  121. package/src/components/DataListGroup/accessibilite/Accessibility.mdx +14 -0
  122. package/src/components/DatePicker/Accessibilite.mdx +1 -1
  123. package/src/components/DatePicker/Accessibilite.stories.ts +1 -1
  124. package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +7 -4
  125. package/src/components/DatePicker/CalendarMode/DatePicker.vue +49 -13
  126. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +43 -2
  127. package/src/components/DatePicker/DatePickerValidationExample/DatePickerValidation.stories.ts +297 -0
  128. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +48 -21
  129. package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +98 -0
  130. package/src/components/DatePicker/composables/useDateSelection.ts +5 -0
  131. package/src/components/DatePicker/docExamples/BidirectionalComplexValidation.vue +273 -0
  132. package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +4 -4
  133. package/src/components/DatePicker/docExamples/DatePickerValidationExamples.vue +10 -0
  134. package/src/components/DeclarationAccessibilityPage/DeclarationAccessibilityPage.mdx +83 -0
  135. package/src/components/DeclarationAccessibilityPage/DeclarationAccessibilityPage.stories.ts +502 -0
  136. package/src/components/DeclarationAccessibilityPage/DeclarationAccessibilityPage.vue +428 -0
  137. package/src/components/DeclarationAccessibilityPage/accessibilite/Accessibility.mdx +75 -0
  138. package/src/components/DeclarationAccessibilityPage/tests/DeclarationAccessibilityPage.a11y.spec.ts +53 -0
  139. package/src/components/DeclarationAccessibilityPage/tests/DeclarationAccessibilityPage.spec.ts +59 -0
  140. package/src/components/DiacriticPicker/DiacriticPicker.vue +20 -1
  141. package/src/components/DiacriticPicker/accessibilite/Accessibility.mdx +10 -0
  142. package/src/components/DialogBox/accessibilite/Accessibility.mdx +15 -0
  143. package/src/components/DownloadBtn/DownloadBtn.vue +5 -4
  144. package/src/components/DownloadBtn/accessibilite/Accessibility.mdx +15 -0
  145. package/src/components/ErrorPage/ErrorPage.mdx +6 -16
  146. package/src/components/ErrorPage/ErrorPage.stories.ts +16 -87
  147. package/src/components/ErrorPage/ErrorPage.vue +38 -125
  148. package/src/components/ErrorPage/accessibilite/Accessibility.mdx +77 -0
  149. package/src/components/ErrorPage/assets/error-ap.svg +1774 -0
  150. package/src/components/ErrorPage/locales.ts +21 -3
  151. package/src/components/ErrorPage/tests/ErrorPage.a11y.spec.ts +5 -13
  152. package/src/components/ErrorPage/tests/ErrorPage.spec.ts +2 -41
  153. package/src/components/ErrorPage/tests/__snapshots__/ErrorPage.spec.ts.snap +8 -266
  154. package/src/components/ExternalLinks/accessibilite/Accessibility.mdx +15 -0
  155. package/src/components/FileList/UploadItem/UploadItem.vue +25 -20
  156. package/src/components/FileList/accessibilite/Accessibility.mdx +12 -0
  157. package/src/components/FilePreview/accessibilite/Accessibility.mdx +12 -0
  158. package/src/components/FileUpload/FileUpload.vue +5 -0
  159. package/src/components/FileUpload/FileUploadContent.vue +5 -4
  160. package/src/components/FileUpload/accessibilite/Accessibility.mdx +12 -0
  161. package/src/components/FilterInline/FilterInline.vue +5 -4
  162. package/src/components/FilterInline/accessibilite/Accessibility.mdx +12 -0
  163. package/src/components/FilterSideBar/accessibilite/Accessibility.mdx +15 -0
  164. package/src/components/FooterBar/FooterBar.stories.ts +18 -14
  165. package/src/components/FooterBar/{Accessibilite.mdx → accessibilite/Accessibility.mdx} +3 -4
  166. package/src/components/FooterBar/defaultSocialMediaLinks.ts +6 -4
  167. package/src/components/FranceConnectBtn/FranceConnectBtn.vue +6 -5
  168. package/src/components/FranceConnectBtn/accessibilite/Accessibility.mdx +15 -0
  169. package/src/components/FranceConnectBtn/tests/__snapshots__/FranceConnectBtn.spec.ts.snap +3 -0
  170. package/src/components/HeaderBar/HeaderBurgerMenu/accessibilite/Accessibility.mdx +15 -0
  171. package/src/components/HeaderBar/accessibilite/Accessibility.mdx +15 -0
  172. package/src/components/HeaderBar/{Usages.mdx → usages/Usages.mdx} +2 -2
  173. package/src/components/HeaderLoading/{Accessibilite.mdx → accessibilite/Accessibility.mdx} +9 -5
  174. package/src/components/HeaderToolbar/accessibilite/Accessibility.mdx +15 -0
  175. package/src/components/LangBtn/LangBtn.vue +5 -4
  176. package/src/components/LangBtn/accessibilite/Accessibility.mdx +15 -0
  177. package/src/components/Logo/accessibilite/Accessibility.mdx +17 -0
  178. package/src/components/LogoBrandSection/accessibilite/Accessibility.mdx +12 -0
  179. package/src/components/LunarCalendar/accessibilite/Accessibility.mdx +10 -0
  180. package/src/components/MaintenancePage/MaintenancePage.mdx +1 -1
  181. package/src/components/MaintenancePage/MaintenancePage.vue +15 -7
  182. package/src/components/MaintenancePage/accessibilite/Accessibility.mdx +70 -0
  183. package/src/components/MaintenancePage/assets/maintenance-ap.svg +1718 -0
  184. package/src/components/MaintenancePage/locales.ts +24 -3
  185. package/src/components/MaintenancePage/tests/MaintenancePage.a11y.spec.ts +75 -3
  186. package/src/components/MaintenancePage/tests/MaintenancePage.spec.ts +42 -2
  187. package/src/components/MaintenancePage/tests/__snapshots__/MaintenancePage.spec.ts.snap +3 -2
  188. package/src/components/NirField/accessibilite/Accessibility.mdx +15 -0
  189. package/src/components/NotFoundPage/NotFoundPage.mdx +1 -1
  190. package/src/components/NotFoundPage/NotFoundPage.stories.ts +3 -3
  191. package/src/components/NotFoundPage/NotFoundPage.vue +16 -11
  192. package/src/components/NotFoundPage/accessibilite/Accessibility.mdx +87 -0
  193. package/src/components/NotFoundPage/assets/not-found-ap.svg +2061 -0
  194. package/src/components/NotFoundPage/locales.ts +24 -4
  195. package/src/components/NotFoundPage/tests/NotFoundPage.a11y.spec.ts +168 -4
  196. package/src/components/NotFoundPage/tests/NotFoundPage.spec.ts +100 -12
  197. package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +2 -2
  198. package/src/components/NotificationBar/Notification/Notification.vue +1 -1
  199. package/src/components/NotificationBar/NotificationBar.mdx +2 -2
  200. package/src/components/NotificationBar/accessibilite/Accessibility.mdx +75 -0
  201. package/src/components/PageContainer/{AccessibilityGuide.mdx → accessibilite/Accessibility.mdx} +7 -4
  202. package/src/components/PageContainer/tests/PageContainer.a11y.spec.ts +14 -7
  203. package/src/components/PaginatedTable/PaginatedTable.vue +27 -47
  204. package/src/components/PaginatedTable/Pagination.vue +93 -0
  205. package/src/components/PaginatedTable/accessibilite/Accessibility.mdx +12 -0
  206. package/src/components/PasswordField/PasswordField.vue +2 -1
  207. package/src/components/PasswordField/accessibilite/Accessibility.mdx +108 -0
  208. package/src/components/PeriodField/accessibilite/Accessibility.mdx +12 -0
  209. package/src/components/PhoneField/PhoneField.stories.ts +46 -38
  210. package/src/components/PhoneField/accessibilite/Accessibility.mdx +15 -0
  211. package/src/components/RangeField/accessibilite/Accessibility.mdx +15 -0
  212. package/src/components/RatingPicker/accessibilite/Accessibility.mdx +15 -0
  213. package/src/components/SearchListField/SearchListField.vue +6 -3
  214. package/src/components/SearchListField/accessibilite/Accessibility.mdx +15 -0
  215. package/src/components/SkipLink/{Accessibilite.mdx → accessibilite/Accessibility.mdx} +7 -4
  216. package/src/components/SocialMediaLinks/DefaultSocialMediaLinks.ts +6 -4
  217. package/src/components/SocialMediaLinks/SocialMediaLinks.mdx +7 -5
  218. package/src/components/SocialMediaLinks/SocialMediaLinks.stories.ts +17 -13
  219. package/src/components/SocialMediaLinks/SocialMediaLinks.vue +9 -1
  220. package/src/components/SocialMediaLinks/accessibilite/Accessibility.mdx +67 -0
  221. package/src/components/SocialMediaLinks/tests/DefaultSocialMediaLinks.spec.ts +5 -5
  222. package/src/components/SocialMediaLinks/tests/SocialMediaLinks.a11y.spec.ts +59 -0
  223. package/src/components/SocialMediaLinks/tests/SocialMediaLinks.spec.ts +9 -7
  224. package/src/components/StatusPage/StatusPage.mdx +22 -0
  225. package/src/components/StatusPage/StatusPage.stories.ts +193 -0
  226. package/src/components/StatusPage/StatusPage.vue +145 -0
  227. package/src/components/StatusPage/accessibilite/Accessibility.mdx +81 -0
  228. package/src/components/StatusPage/tests/StatusPage.a11y.spec.ts +29 -0
  229. package/src/components/StatusPage/tests/StatusPage.spec.ts +50 -0
  230. package/src/components/StatusPage/tests/__snapshots__/StatusPage.spec.ts.snap +270 -0
  231. package/src/components/SubHeader/accessibilite/Accessibility.mdx +15 -0
  232. package/src/components/SyAlert/SyAlert.vue +6 -6
  233. package/src/components/SyAlert/accessibilite/Accessibility.mdx +12 -0
  234. package/src/components/SyTextArea/accessibilite/Accessibility.mdx +10 -0
  235. package/src/components/TableToolbar/TableToolbar.stories.ts +6 -6
  236. package/src/components/TableToolbar/TableToolbar.vue +7 -4
  237. package/src/components/TableToolbar/accessibilite/Accessibility.mdx +12 -0
  238. package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +0 -5
  239. package/src/components/Tables/SyServerTable/SyServerTable.mdx +4 -1
  240. package/src/components/Tables/SyServerTable/accessibilite/Accessibility.mdx +10 -0
  241. package/src/components/Tables/SyTable/SyTable.mdx +4 -1
  242. package/src/components/Tables/SyTable/accessibilite/Accessibility.mdx +10 -0
  243. package/src/components/Tables/common/TableHeader.vue +3 -1
  244. package/src/components/Tables/common/organizeColumns/OrganizeColumns.vue +18 -14
  245. package/src/components/ToolbarContainer/ToolbarContainer.mdx +2 -1
  246. package/src/components/ToolbarContainer/ToolbarContainer.stories.ts +563 -420
  247. package/src/components/ToolbarContainer/accessibilite/Accessibility.mdx +69 -0
  248. package/src/components/UploadWorkflow/UploadWorkflow.mdx +11 -1
  249. package/src/components/UploadWorkflow/UploadWorkflow.stories.ts +107 -3
  250. package/src/components/UploadWorkflow/UploadWorkflow.vue +35 -24
  251. package/src/components/UploadWorkflow/accessibilite/Accessibility.mdx +12 -0
  252. package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +48 -0
  253. package/src/components/UploadWorkflow/tests/__snapshots__/UploadWorkflow.spec.ts.snap +9 -5
  254. package/src/components/UploadWorkflow/useFileList.ts +7 -0
  255. package/src/components/Usages/Usages.vue +3 -2
  256. package/src/components/UserMenuBtn/UserMenuBtn.vue +7 -5
  257. package/src/components/UserMenuBtn/accessibilite/Accessibility.mdx +12 -0
  258. package/src/components/index.ts +5 -0
  259. package/src/components/types.ts +10 -0
  260. package/src/composables/rules/tests/useFieldValidation.spec.ts +39 -3
  261. package/src/composables/rules/useFieldValidation.ts +31 -9
  262. package/src/composables/useFormFieldErrorHandling.ts +141 -0
  263. package/src/modules.d.ts +6 -0
  264. package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +7 -0
  265. package/src/utils/theme/index.ts +19 -0
  266. package/src/utils/theme/tests/useThemeLocales.spec.ts +245 -0
  267. package/dist/components/MaintenancePage/index.d.ts +0 -2
  268. package/src/components/BackBtn/Accessibilite.mdx +0 -14
  269. package/src/components/BackBtn/Accessibilite.stories.ts +0 -30
  270. package/src/components/BackToTopBtn/Accessibilite.mdx +0 -14
  271. package/src/components/BackToTopBtn/Accessibilite.stories.ts +0 -31
  272. package/src/components/ChipList/Accessibilite.mdx +0 -14
  273. package/src/components/ChipList/Accessibilite.stories.ts +0 -31
  274. package/src/components/CollapsibleList/Accessibilite.stories.ts +0 -29
  275. package/src/components/ContextualMenu/Accessibilite.mdx +0 -13
  276. package/src/components/ContextualMenu/Accessibilite.stories.ts +0 -29
  277. package/src/components/CookieBanner/Accessibilite.mdx +0 -13
  278. package/src/components/CookieBanner/Accessibilite.stories.ts +0 -30
  279. package/src/components/CopyBtn/Accessibilite.mdx +0 -13
  280. package/src/components/CopyBtn/Accessibilite.stories.ts +0 -29
  281. package/src/components/Customs/Selects/SelectBtnField/Accessibilite.mdx +0 -14
  282. package/src/components/Customs/Selects/SelectBtnField/Accessibilite.stories.ts +0 -29
  283. package/src/components/Customs/Selects/SyInputSelect/Accessibilite.mdx +0 -13
  284. package/src/components/Customs/Selects/SyInputSelect/Accessibilite.stories.ts +0 -25
  285. package/src/components/Customs/SyPagination/tests/SyPagination.a11y.spec.ts +0 -27
  286. package/src/components/Customs/SyTabs/tests/SyTabs.a11y.spec.ts +0 -51
  287. package/src/components/Customs/SyTextField/Accessibilite.mdx +0 -14
  288. package/src/components/Customs/SyTextField/Accessibilite.stories.ts +0 -34
  289. package/src/components/DataList/Accessibilite.mdx +0 -13
  290. package/src/components/DataList/Accessibilite.stories.ts +0 -29
  291. package/src/components/DataListGroup/Accessibilite.mdx +0 -13
  292. package/src/components/DataListGroup/Accessibilite.stories.ts +0 -29
  293. package/src/components/DataListItem/tests/DataListItem.a11y.spec.ts +0 -31
  294. package/src/components/DatePicker/CalendarMode/tests/DatePicker.a11y.spec.ts +0 -27
  295. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.a11y.spec.ts +0 -26
  296. package/src/components/DatePicker/DateTextInput/tests/DateTextInput.a11y.spec.ts +0 -27
  297. package/src/components/DialogBox/Accessibilite.mdx +0 -14
  298. package/src/components/DialogBox/Accessibilite.stories.ts +0 -29
  299. package/src/components/DownloadBtn/Accessibilite.mdx +0 -14
  300. package/src/components/DownloadBtn/Accessibilite.stories.ts +0 -29
  301. package/src/components/DownloadBtn/tests/DownloadBtn.a11y.spec.ts +0 -26
  302. package/src/components/ErrorPage/Accessibilite.mdx +0 -13
  303. package/src/components/ErrorPage/Accessibilite.stories.ts +0 -36
  304. package/src/components/ExternalLinks/Accessibilite.mdx +0 -18
  305. package/src/components/ExternalLinks/Accessibilite.stories.ts +0 -62
  306. package/src/components/ExternalLinks/tests/ExternalLinks.a11y.spec.ts +0 -39
  307. package/src/components/FileList/Accessibilite.mdx +0 -13
  308. package/src/components/FileList/Accessibilite.stories.ts +0 -26
  309. package/src/components/FilePreview/Accessibilite.mdx +0 -14
  310. package/src/components/FilePreview/Accessibilite.stories.ts +0 -26
  311. package/src/components/FileUpload/Accessibilite.mdx +0 -13
  312. package/src/components/FileUpload/Accessibilite.stories.ts +0 -26
  313. package/src/components/FilterInline/Accessibilite.mdx +0 -15
  314. package/src/components/FilterInline/Accessibilite.stories.ts +0 -26
  315. package/src/components/FilterSideBar/Accessibilite.mdx +0 -13
  316. package/src/components/FilterSideBar/Accessibilite.stories.ts +0 -30
  317. package/src/components/FooterBar/Accessibilite.stories.ts +0 -26
  318. package/src/components/FranceConnectBtn/Accessibilite.mdx +0 -13
  319. package/src/components/FranceConnectBtn/Accessibilite.stories.ts +0 -30
  320. package/src/components/HeaderBar/Accessibilite.mdx +0 -13
  321. package/src/components/HeaderBar/Accessibilite.stories.ts +0 -31
  322. package/src/components/HeaderBar/HeaderBurgerMenu/Accessibilite.mdx +0 -13
  323. package/src/components/HeaderBar/HeaderBurgerMenu/Accessibilite.stories.ts +0 -30
  324. package/src/components/HeaderLoading/Accessibilite.stories.ts +0 -31
  325. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.a11y.spec.ts +0 -45
  326. package/src/components/HeaderToolbar/Accessibilite.mdx +0 -13
  327. package/src/components/HeaderToolbar/Accessibilite.stories.ts +0 -36
  328. package/src/components/HeaderToolbar/tests/HeaderToolbar.a11y.spec.ts +0 -25
  329. package/src/components/LangBtn/Accessibilite.mdx +0 -13
  330. package/src/components/LangBtn/Accessibilite.stories.ts +0 -32
  331. package/src/components/Logo/Accessibilite.mdx +0 -13
  332. package/src/components/Logo/Accessibilite.stories.ts +0 -30
  333. package/src/components/LogoBrandSection/Accessibilite.mdx +0 -13
  334. package/src/components/LogoBrandSection/Accessibilite.stories.ts +0 -26
  335. package/src/components/LunarCalendar/tests/LunarCalendar.a11y.spec.ts +0 -31
  336. package/src/components/MaintenancePage/Accessibilite.mdx +0 -13
  337. package/src/components/MaintenancePage/Accessibilite.stories.ts +0 -36
  338. package/src/components/MaintenancePage/index.ts +0 -3
  339. package/src/components/NirField/Accessibilite.mdx +0 -13
  340. package/src/components/NirField/Accessibilite.stories.ts +0 -31
  341. package/src/components/NotFoundPage/Accessibilite.mdx +0 -13
  342. package/src/components/NotFoundPage/Accessibilite.stories.ts +0 -36
  343. package/src/components/NotificationBar/Accessibilite.mdx +0 -13
  344. package/src/components/NotificationBar/Accessibilite.stories.ts +0 -30
  345. package/src/components/PageContainer/Accessibilite.mdx +0 -13
  346. package/src/components/PageContainer/Accessibilite.stories.ts +0 -30
  347. package/src/components/PaginatedTable/Accessibilite.mdx +0 -13
  348. package/src/components/PaginatedTable/Accessibilite.stories.ts +0 -26
  349. package/src/components/PaginatedTable/tests/PaginatedTable.a11y.spec.ts +0 -43
  350. package/src/components/PasswordField/Accessibilite.mdx +0 -13
  351. package/src/components/PasswordField/Accessibilite.stories.ts +0 -121
  352. package/src/components/PeriodField/Accessibilite.mdx +0 -13
  353. package/src/components/PeriodField/Accessibilite.stories.ts +0 -27
  354. package/src/components/PhoneField/Accessibilite.mdx +0 -13
  355. package/src/components/PhoneField/Accessibilite.stories.ts +0 -32
  356. package/src/components/PhoneField/tests/PhoneField.a11y.spec.ts +0 -34
  357. package/src/components/RangeField/Accessibilite.mdx +0 -13
  358. package/src/components/RangeField/Accessibilite.stories.ts +0 -32
  359. package/src/components/RatingPicker/Accessibilite.mdx +0 -13
  360. package/src/components/RatingPicker/Accessibilite.stories.ts +0 -30
  361. package/src/components/SearchListField/Accessibilite.mdx +0 -13
  362. package/src/components/SearchListField/Accessibilite.stories.ts +0 -30
  363. package/src/components/SkipLink/Accessibilite.stories.ts +0 -36
  364. package/src/components/SocialMediaLinks/Accessibilite.mdx +0 -13
  365. package/src/components/SocialMediaLinks/Accessibilite.stories.ts +0 -36
  366. package/src/components/SubHeader/Accessibilite.mdx +0 -13
  367. package/src/components/SubHeader/Accessibilite.stories.ts +0 -36
  368. package/src/components/SyAlert/Accessibilite.mdx +0 -13
  369. package/src/components/SyAlert/Accessibilite.stories.ts +0 -30
  370. package/src/components/TableToolbar/Accessibilite.mdx +0 -13
  371. package/src/components/TableToolbar/Accessibilite.stories.ts +0 -26
  372. package/src/components/UploadWorkflow/Accessibilite.mdx +0 -13
  373. package/src/components/UploadWorkflow/Accessibilite.stories.ts +0 -26
  374. package/src/components/UserMenuBtn/Accessibilite.mdx +0 -13
  375. package/src/components/UserMenuBtn/Accessibilite.stories.ts +0 -25
  376. /package/src/components/HeaderBar/{Usages.stories.ts → usages/Usages.stories.ts} +0 -0
  377. /package/src/components/NotFoundPage/assets/{not-found.svg → not-found-cnam.svg} +0 -0
  378. /package/src/components/SyBtnMenu/accessibilite/{AccessibilityGuide.mdx → Accessibility.mdx} +0 -0
@@ -1,6 +1,7 @@
1
1
  import type { Meta, StoryFn } from '@storybook/vue3'
2
2
  import DatePickerValidationExamples from '../docExamples/DatePickerValidationExamples.vue'
3
3
  import DatePickerBidirectionalValidation from '../docExamples/DatePickerBidirectionalValidation.vue'
4
+ import BidirectionalComplexValidation from '../docExamples/BidirectionalComplexValidation.vue'
4
5
 
5
6
  export default {
6
7
  title: 'Composants/Formulaires/DatePicker/Validation',
@@ -421,3 +422,299 @@ BidirectionalValidation.parameters = {
421
422
  },
422
423
  ],
423
424
  }
425
+
426
+ export const BidirectionalComplexDatePickerValidation: StoryFn = () => ({
427
+ components: {
428
+ BidirectionalComplexValidation,
429
+ },
430
+ template: '<BidirectionalComplexValidation />',
431
+ })
432
+
433
+ BidirectionalComplexDatePickerValidation.parameters = {
434
+ sourceCode: [
435
+ {
436
+ name: 'Template',
437
+ code: `
438
+ <template>
439
+ <div class="date-picker-bidirectional-validation">
440
+ <h1 class="text-h5 mb-6">
441
+ Validation bidirectionnelle entre deux DatePickers
442
+ </h1>
443
+
444
+ <div class="text-body-2 mb-4">
445
+ Ce composant démontre la validation bidirectionnelle entre deux DatePickers. Les règles de validation sont appliquées dans les deux sens :
446
+ <ul class="ml-4">
447
+ <li>La date de fin doit être postérieure ou égale à la date de début</li>
448
+ <li>La date de début doit être antérieure ou égale à la date de fin</li>
449
+ <li>Lorsque la date de début change, la validation de la date de fin est mise à jour</li>
450
+ <li>Lorsque la date de fin change, la validation de la date de début est mise à jour</li>
451
+ </ul>
452
+ </div>
453
+
454
+ <div class="date-range-container mb-6">
455
+ <div class="date-picker-wrapper">
456
+ <h3 class="text-subtitle-1 mb-2">
457
+ Date de début
458
+ </h3>
459
+ <DatePicker
460
+ ref="startDatePickerRef"
461
+ v-model="startDate"
462
+ placeholder="Date de début"
463
+ :custom-rules="startDateRules"
464
+ use-combined-mode
465
+ required
466
+ @update:model-value="validateEndDate"
467
+ />
468
+ </div>
469
+ <div class="date-picker-wrapper">
470
+ <h3 class="text-subtitle-1 mb-2">
471
+ Date de fin
472
+ </h3>
473
+ <DatePicker
474
+ ref="endDatePickerRef"
475
+ v-model="endDate"
476
+ placeholder="Date de fin"
477
+ :custom-rules="endDateRules"
478
+ use-combined-mode
479
+ required
480
+ @update:model-value="validateStartDate"
481
+ />
482
+ </div>
483
+ </div>
484
+
485
+ <div class="actions mb-4">
486
+ <v-btn
487
+ size="small"
488
+ color="primary"
489
+ class="mr-2"
490
+ @click="resetDates"
491
+ >
492
+ Réinitialiser
493
+ </v-btn>
494
+
495
+ <v-btn
496
+ size="small"
497
+ color="success"
498
+ class="mr-2"
499
+ @click="setTestDates"
500
+ >
501
+ Dates valides
502
+ </v-btn>
503
+
504
+ <v-btn
505
+ size="small"
506
+ color="error"
507
+ @click="setInvalidDates"
508
+ >
509
+ Dates invalides
510
+ </v-btn>
511
+ </div>
512
+
513
+ <div class="current-values mt-4">
514
+ <p><strong>Date de début :</strong> {{ startDate || 'Non sélectionnée' }}</p>
515
+ <p><strong>Date de fin :</strong> {{ endDate || 'Non sélectionnée' }}</p>
516
+ </div>
517
+
518
+ <div class="mt-6 pa-4 bg-grey-lighten-4 rounded">
519
+ <h3 class="text-subtitle-1 mb-2">
520
+ Comment fonctionne la validation bidirectionnelle
521
+ </h3>
522
+ <p class="text-body-2">
523
+ La validation bidirectionnelle entre les DatePickers est implémentée grâce à des règles de validation personnalisées
524
+ qui vérifient la relation entre les deux dates. Chaque DatePicker a sa propre règle qui vérifie sa valeur par rapport à l'autre.
525
+ </p>
526
+ <p class="text-body-2 mt-2">
527
+ Lorsqu'une date change, un watcher déclenche la validation de l'autre DatePicker. Cela garantit que les messages d'erreur
528
+ sont toujours à jour, même lorsque les dates sont modifiées dans n'importe quel ordre.
529
+ </p>
530
+ <p class="text-body-2 mt-2">
531
+ Les messages d'erreur apparaissent directement dans les composants DatePicker, ce qui améliore l'expérience utilisateur
532
+ en fournissant un retour immédiat sur la validité des dates sélectionnées.
533
+ </p>
534
+ <p class="text-body-2 mt-2">
535
+ Vous trouverez le code source dans la story Bidirectional Validation.
536
+ </p>
537
+ </div>
538
+ </div>
539
+ </template>
540
+ `,
541
+ },
542
+ {
543
+ name: 'Script',
544
+ code: `
545
+ <script lang="ts" setup>
546
+ // useDateFormat n'est plus nécessaire avec les règles prédéfinies
547
+
548
+ // État des dates
549
+ const startDate = ref<string | null>(null)
550
+ const endDate = ref<string | null>(null)
551
+
552
+ // Références aux composants CalendarMode pour accéder à leurs méthodes
553
+ const startDatePickerRef = ref<InstanceType<typeof DatePicker> | null>(null)
554
+ const endDatePickerRef = ref<InstanceType<typeof DatePicker> | null>(null)
555
+
556
+ // Les règles de validation sont définies directement dans les computed startDateRules et endDateRules
557
+
558
+ // Règles de validation pour la date de début
559
+ const startDateRules = computed(() => {
560
+ const rules = [
561
+ {
562
+ type: 'required',
563
+ options: {
564
+ message: 'La date de début est requise.',
565
+ },
566
+ },
567
+ ]
568
+
569
+ // Ajouter la règle notAfterDate seulement si endDate.value existe
570
+ if (endDate.value) {
571
+ rules.push({
572
+ type: 'notAfterDate',
573
+
574
+ options: {
575
+ message: 'La date de début ne peut pas être postérieure à la date de fin',
576
+ date: endDate.value, // Déjà une chaîne au format DD/MM/YYYY
577
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- mock Axios headers
578
+ } as any,
579
+ })
580
+ }
581
+
582
+ return rules
583
+ })
584
+
585
+ // Règles de validation pour la date de fin
586
+ const endDateRules = computed(() => {
587
+ const rules = [
588
+ {
589
+ type: 'required',
590
+ options: {
591
+ message: 'La date de fin est requise.',
592
+ },
593
+ },
594
+ ]
595
+ // Ajouter la règle notBeforeDate seulement si startDate.value existe
596
+ if (startDate.value) {
597
+ rules.push({
598
+ type: 'notBeforeDate',
599
+
600
+ options: {
601
+ message: 'La date de fin ne peut pas être antérieure à la date de début',
602
+ date: startDate.value, // Déjà une chaîne au format DD/MM/YYYY
603
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- mock Axios headers
604
+ } as any,
605
+ })
606
+ }
607
+ return rules
608
+ })
609
+
610
+ // Fonction pour forcer la validation de la date de fin quand la date de début change
611
+ const validateEndDate = () => {
612
+ if (endDatePickerRef.value && endDate.value) {
613
+ // On utilise validateOnSubmit pour forcer la validation complète
614
+ endDatePickerRef.value.validateOnSubmit()
615
+ }
616
+ }
617
+
618
+ // Fonction pour forcer la validation de la date de début quand la date de fin change
619
+ const validateStartDate = () => {
620
+ if (startDatePickerRef.value && startDate.value) {
621
+ // On utilise validateOnSubmit pour forcer la validation complète
622
+ startDatePickerRef.value.validateOnSubmit()
623
+ }
624
+ }
625
+
626
+ // Watcher pour la date de début qui force la revalidation de la date de fin
627
+ watch(startDate, () => {
628
+ // Laisser le temps au système de mettre à jour les valeurs
629
+ setTimeout(() => {
630
+ validateEndDate()
631
+ }, 0)
632
+ })
633
+
634
+ // Watcher pour la date de fin qui force la revalidation de la date de début
635
+ watch(endDate, () => {
636
+ // Laisser le temps au système de mettre à jour les valeurs
637
+ setTimeout(() => {
638
+ validateStartDate()
639
+ }, 0)
640
+ })
641
+
642
+ // Fonction pour définir des dates de test
643
+ const setTestDates = () => {
644
+ // Définir une date de début (aujourd'hui)
645
+ const today = new Date()
646
+ const day = String(today.getDate()).padStart(2, '0')
647
+ const month = String(today.getMonth() + 1).padStart(2, '0')
648
+ const year = today.getFullYear()
649
+ startDate.value = day + '/' + month + '/' + year
650
+
651
+ // Définir une date de fin (demain) - pour démontrer une validation valide
652
+ const tomorrow = new Date(today)
653
+ tomorrow.setDate(today.getDate() + 1)
654
+ const tomorrowDay = String(tomorrow.getDate()).padStart(2, '0')
655
+ const tomorrowMonth = String(tomorrow.getMonth() + 1).padStart(2, '0')
656
+ const tomorrowYear = tomorrow.getFullYear()
657
+ endDate.value = tomorrowDay + '/' + tomorrowMonth + '/' + tomorrowYear
658
+ }
659
+
660
+ // Fonction pour définir des dates invalides (date de fin avant date de début)
661
+ const setInvalidDates = () => {
662
+ // Définir une date de début (aujourd'hui)
663
+ const today = new Date()
664
+ const day = String(today.getDate()).padStart(2, '0')
665
+ const month = String(today.getMonth() + 1).padStart(2, '0')
666
+ const year = today.getFullYear()
667
+ startDate.value = day + '/' + month + '/' + year
668
+
669
+ // Définir une date de fin (hier) - pour démontrer une validation invalide
670
+ const yesterday = new Date(today)
671
+ yesterday.setDate(today.getDate() - 1)
672
+ const yesterdayDay = String(yesterday.getDate()).padStart(2, '0')
673
+ const yesterdayMonth = String(yesterday.getMonth() + 1).padStart(2, '0')
674
+ const yesterdayYear = yesterday.getFullYear()
675
+ endDate.value = yesterdayDay + '/' + yesterdayMonth + '/' + yesterdayYear
676
+ }
677
+
678
+ // Fonction pour réinitialiser les dates
679
+ const resetDates = () => {
680
+ startDate.value = null
681
+ endDate.value = null
682
+ }
683
+ </script>
684
+ `,
685
+ },
686
+ {
687
+ name: 'Style',
688
+ code: `
689
+ <style scoped>
690
+ .date-picker-bidirectional-validation {
691
+ padding: 20px;
692
+ max-width: 800px;
693
+ margin: 0 auto;
694
+ }
695
+
696
+ .date-range-container {
697
+ display: flex;
698
+ gap: 20px;
699
+ }
700
+
701
+ .date-picker-wrapper {
702
+ flex: 1;
703
+ }
704
+
705
+ .actions {
706
+ display: flex;
707
+ flex-wrap: wrap;
708
+ gap: 8px;
709
+ }
710
+
711
+ .current-values {
712
+ padding: 15px;
713
+ background-color: #f5f5f5;
714
+ border-radius: 4px;
715
+ }
716
+ </style>
717
+ `,
718
+ },
719
+ ],
720
+ }
@@ -103,30 +103,57 @@
103
103
 
104
104
  /**
105
105
  * =====================
106
- * Validation setup (safe wrapper for readonly)
106
+ * Validation setup (safe wrapper for readonly, reactive to toggles)
107
107
  * =====================
108
108
  */
109
- const validationApi = !readonly.value
110
- ? useValidation({
111
- showSuccessMessages: props.showSuccessMessages,
112
- fieldIdentifier: props.label || props.placeholder,
113
- disableErrorHandling: props.disableErrorHandling,
114
- })
115
- : {
116
- errors: ref<string[]>([]),
117
- warnings: ref<string[]>([]),
118
- successes: ref<string[]>([]),
119
- hasError: ref(false),
120
- clearValidation: () => {},
121
- validateField: () => ({
122
- hasError: false,
123
- hasWarning: false,
124
- hasSuccess: false,
125
- state: { errors: [], warnings: [], successes: [] },
126
- } as ValidationResult),
127
- }
109
+ const baseValidation = useValidation({
110
+ showSuccessMessages: props.showSuccessMessages,
111
+ fieldIdentifier: props.label || props.placeholder,
112
+ disableErrorHandling: props.disableErrorHandling,
113
+ })
128
114
 
129
- const { errors, warnings, successes, hasError, clearValidation, validateField } = validationApi
115
+ const readonlyValidation = {
116
+ errors: ref<string[]>([]),
117
+ warnings: ref<string[]>([]),
118
+ successes: ref<string[]>([]),
119
+ hasError: ref(false),
120
+ clearValidation: () => {},
121
+ validateField: () => ({
122
+ hasError: false,
123
+ hasWarning: false,
124
+ hasSuccess: false,
125
+ state: { errors: [], warnings: [], successes: [] },
126
+ } as ValidationResult),
127
+ }
128
+
129
+ const validationApi = computed(() => (readonly.value ? readonlyValidation : baseValidation))
130
+
131
+ const errors = computed({
132
+ get: () => validationApi.value.errors.value,
133
+ set: (value) => { validationApi.value.errors.value = value },
134
+ })
135
+ const warnings = computed({
136
+ get: () => validationApi.value.warnings.value,
137
+ set: (value) => { validationApi.value.warnings.value = value },
138
+ })
139
+ const successes = computed({
140
+ get: () => validationApi.value.successes.value,
141
+ set: (value) => { validationApi.value.successes.value = value },
142
+ })
143
+ const hasError = computed(() => {
144
+ const api = validationApi.value
145
+ // baseValidation exposes a computed hasError, readonly stub exposes a ref
146
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- computed/ref dual shape
147
+ return (api as any).hasError?.value ?? api.errors.value.length > 0
148
+ })
149
+
150
+ const clearValidation = () => validationApi.value.clearValidation()
151
+
152
+ const validateField = (
153
+ value: unknown,
154
+ rules?: ValidationRule[],
155
+ warningRules?: ValidationRule[],
156
+ ): ValidationResult => validationApi.value.validateField(value, rules, warningRules)
130
157
 
131
158
  // Agrégation des erreurs internes et externes
132
159
  const errorMessages = computed(() => [...errors.value, ...props.externalErrorMessages])
@@ -231,6 +231,45 @@ export default meta
231
231
  type Story = StoryObj<typeof meta>
232
232
 
233
233
  export const Default: Story = {
234
+ parameters: {
235
+ sourceCode: [
236
+ {
237
+ name: 'Script',
238
+ code: `
239
+ <script setup lang="ts">
240
+ import { ref } from 'vue'
241
+ import { DatePicker } from '@cnamts/synapse'
242
+
243
+ const date = ref<string | null>(null)
244
+ </script>
245
+ `,
246
+ },
247
+ {
248
+ name: 'Template',
249
+ code: `
250
+ <template>
251
+ <div>
252
+ <DatePicker
253
+ v-model="date"
254
+ format="DD/MM/YYYY"
255
+ date-format-return=""
256
+ placeholder="JJ/MM/AAAA"
257
+ label="Date avec règles de validation"
258
+ required
259
+ is-outlined
260
+ display-icon
261
+ :no-icon="false"
262
+ :no-calendar="true"
263
+ />
264
+ <div style="margin-top: 10px; font-family: monospace; color: #666;">
265
+ Valeur : {{ date }}
266
+ </div>
267
+ </div>
268
+ </template>
269
+ `,
270
+ },
271
+ ],
272
+ },
234
273
  args: {
235
274
  'noCalendar': true,
236
275
  'format': 'DD/MM/YYYY',
@@ -275,6 +314,51 @@ export const Default: Story = {
275
314
  }
276
315
 
277
316
  export const Required: Story = {
317
+ parameters: {
318
+ sourceCode: [
319
+ {
320
+ name: 'Script',
321
+ code: `
322
+ <script setup lang="ts">
323
+ import { ref } from 'vue'
324
+ import { DatePicker } from '@cnamts/synapse'
325
+
326
+ const date = ref<string | null>(null)
327
+ </script>
328
+ `,
329
+ },
330
+ {
331
+ name: 'Template',
332
+ code: `
333
+ <template>
334
+ <div>
335
+ <h4 class="mb-4">Sans astérisque :</h4>
336
+ <DatePicker
337
+ v-model="date"
338
+ format="DD/MM/YYYY"
339
+ placeholder="JJ/MM/AAAA"
340
+ label="Date avec règles de validation"
341
+ required
342
+ is-outlined
343
+ :no-calendar="true"
344
+ />
345
+ <h4 class="mb-4">Avec astérisque :</h4>
346
+ <DatePicker
347
+ v-model="date"
348
+ format="DD/MM/YYYY"
349
+ placeholder="JJ/MM/AAAA"
350
+ label="Date avec règles de validation"
351
+ required
352
+ is-outlined
353
+ :no-calendar="true"
354
+ display-asterisk
355
+ />
356
+ </div>
357
+ </template>
358
+ `,
359
+ },
360
+ ],
361
+ },
278
362
  args: {
279
363
  'noCalendar': true,
280
364
  'format': 'DD/MM/YYYY',
@@ -359,6 +443,7 @@ export const EuropeanFormat: Story = {
359
443
  'format': 'DD/MM/YYYY',
360
444
  'dateFormatReturn': 'YYYY/MM/DD',
361
445
  'placeholder': 'JJ/MM/AAAA',
446
+ 'label': 'Date avec règles de validation',
362
447
  'required': true,
363
448
  'noIcon': true,
364
449
  'onUpdate:modelValue': fn(),
@@ -421,6 +506,7 @@ export const CustomRules: Story = {
421
506
  'noCalendar': true,
422
507
  'format': 'DD/MM/YYYY',
423
508
  'dateFormatReturn': 'DD/MM/YYYY',
509
+ 'label': 'Date avec règles personnalisées',
424
510
  'placeholder': 'DD/MM/YYYY',
425
511
  'required': true,
426
512
  'customRules': [{
@@ -492,6 +578,7 @@ export const WarningRules: Story = {
492
578
  'noCalendar': true,
493
579
  'format': 'DD/MM/YYYY',
494
580
  'placeholder': 'JJ/MM/AAAA',
581
+ 'label': 'Date avec règles d\'avertissement',
495
582
  'customWarningRules': [{
496
583
  type: 'custom',
497
584
  options: {
@@ -553,6 +640,7 @@ export const WithAppendIcon: Story = {
553
640
  'noCalendar': true,
554
641
  'format': 'DD/MM/YYYY',
555
642
  'placeholder': 'JJ/MM/AAAA',
643
+ 'label': 'Date avec icône en suffixe',
556
644
  'displayAppendIcon': true,
557
645
  'onUpdate:modelValue': fn(),
558
646
  'onFocus': fn(),
@@ -623,6 +711,7 @@ export const WithErrorDisabled: Story = {
623
711
  format: 'DD/MM/YYYY',
624
712
  dateFormatReturn: 'YYYY/MM/DD',
625
713
  placeholder: 'Date requise sans erreur',
714
+ label: 'Date requise sans erreur',
626
715
  required: true,
627
716
  noIcon: true,
628
717
  disableErrorHandling: true,
@@ -757,6 +846,7 @@ export const AutoClampFeature: Story = {
757
846
  <DatePicker
758
847
  v-model="dateSlash"
759
848
  placeholder="Saisie avec auto clamp - séparateur /"
849
+ label="Date"
760
850
  format="DD/MM/YYYY"
761
851
  noCalendar
762
852
  autoClamp
@@ -767,6 +857,7 @@ export const AutoClampFeature: Story = {
767
857
  <DatePicker
768
858
  v-model="dateDash"
769
859
  placeholder="Saisie avec auto clamp - séparateur -"
860
+ label="Date"
770
861
  format="DD-MM-YYYY"
771
862
  noCalendar
772
863
  autoClamp
@@ -777,6 +868,7 @@ export const AutoClampFeature: Story = {
777
868
  <DatePicker
778
869
  v-model="dateDot"
779
870
  placeholder="Saisie avec auto clamp - séparateur ."
871
+ label="Date"
780
872
  format="YYYY.MM.DD"
781
873
  noCalendar
782
874
  autoClamp
@@ -787,6 +879,7 @@ export const AutoClampFeature: Story = {
787
879
  <DatePicker
788
880
  v-model="dateRange"
789
881
  placeholder="Saisie plage avec auto clamp"
882
+ label="Date"
790
883
  format="DD/MM/YYYY"
791
884
  displayRange
792
885
  noCalendar
@@ -874,6 +967,7 @@ export const DifferentFormats: Story = {
874
967
  <DatePicker
875
968
  v-model="value1"
876
969
  placeholder="Format JJ/MM/AAAA"
970
+ label="Date"
877
971
  format="DD/MM/YYYY"
878
972
  no-calendar
879
973
  class="py-4"
@@ -881,6 +975,7 @@ export const DifferentFormats: Story = {
881
975
  <DatePicker
882
976
  v-model="value2"
883
977
  placeholder="Format MM/JJ/AAAA"
978
+ label="Date"
884
979
  format="MM/DD/YYYY"
885
980
  no-calendar
886
981
  class="py-4"
@@ -888,6 +983,7 @@ export const DifferentFormats: Story = {
888
983
  <DatePicker
889
984
  v-model="value3"
890
985
  placeholder="Format AAAA-MM-JJ"
986
+ label="Date"
891
987
  format="YYYY-MM-DD"
892
988
  no-calendar
893
989
  class="py-4"
@@ -895,6 +991,7 @@ export const DifferentFormats: Story = {
895
991
  <DatePicker
896
992
  v-model="value4"
897
993
  placeholder="Format JJ-MM-AA"
994
+ label="Date"
898
995
  format="DD-MM-YY"
899
996
  no-calendar
900
997
  class="py-4"
@@ -902,6 +999,7 @@ export const DifferentFormats: Story = {
902
999
  <DatePicker
903
1000
  v-model="value5"
904
1001
  placeholder="Format JJ.MM.AAAA"
1002
+ label="Date"
905
1003
  format="DD.MM.YYYY"
906
1004
  no-calendar
907
1005
  class="py-4"
@@ -14,6 +14,10 @@ export function useDateSelection(
14
14
  // Stockage des dates de début et de fin pour les plages
15
15
  const rangeBoundaryDates = ref<[Date | null, Date | null] | null>(null)
16
16
 
17
+ const resetRange = () => {
18
+ rangeBoundaryDates.value = null
19
+ }
20
+
17
21
  /**
18
22
  * Génère toutes les dates entre deux dates (incluses)
19
23
  */
@@ -117,5 +121,6 @@ export function useDateSelection(
117
121
  updateSelectedDates,
118
122
  rangeBoundaryDates,
119
123
  generateDateRange,
124
+ resetRange,
120
125
  }
121
126
  }