@cnamts/synapse 0.0.16-alpha → 1.0.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 (482) hide show
  1. package/dist/DateFilter-BmRuzQ9Z.js +98 -0
  2. package/dist/NumberFilter-CnIPDHqx.js +121 -0
  3. package/dist/PeriodFilter-CZwZ8CnQ.js +112 -0
  4. package/dist/SelectFilter-Cj-GW2Cc.js +97 -0
  5. package/dist/TextFilter-DTxZHJwX.js +114 -0
  6. package/dist/{components/BackBtn → common}/constants/ExpertiseLevelEnum.d.ts +3 -0
  7. package/dist/components/Accordion/Accordion.d.ts +39 -0
  8. package/dist/components/Accordion/config.d.ts +9 -0
  9. package/dist/components/BackBtn/AccessibiliteItems.d.ts +1 -1
  10. package/dist/components/BackToTopBtn/AccessibiliteItems.d.ts +1 -1
  11. package/dist/components/ChipList/AccessibiliteItems.d.ts +1 -1
  12. package/dist/components/ChipList/ChipList.d.ts +1 -1
  13. package/dist/components/CollapsibleList/AccessibiliteItems.d.ts +1 -1
  14. package/dist/components/ContextualMenu/AccessibiliteItems.d.ts +1 -1
  15. package/dist/components/CookieBanner/AccessibiliteItems.d.ts +1 -1
  16. package/dist/components/CopyBtn/AccessibiliteItems.d.ts +1 -1
  17. package/dist/components/CopyBtn/CopyBtn.d.ts +2 -0
  18. package/dist/components/Customs/SyBtnSelect/AccessibiliteItems.d.ts +1 -1
  19. package/dist/components/Customs/SyInputSelect/AccessibiliteItems.d.ts +1 -1
  20. package/dist/components/Customs/SyInputSelect/SyInputSelect.d.ts +12 -0
  21. package/dist/components/Customs/SySelect/AccessibiliteItems.d.ts +1 -1
  22. package/dist/components/Customs/SySelect/SySelect.d.ts +43 -16
  23. package/dist/components/Customs/SyTextField/AccessibiliteItems.d.ts +1 -1
  24. package/dist/components/Customs/SyTextField/SyTextField.d.ts +17 -17
  25. package/dist/components/DataList/AccessibiliteItems.d.ts +1 -1
  26. package/dist/components/DataListGroup/AccessibiliteItems.d.ts +1 -1
  27. package/dist/components/DatePicker/AccessibiliteItems.d.ts +1 -1
  28. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +4162 -0
  29. package/dist/components/DatePicker/{DatePicker.d.ts → DatePicker/DatePicker.d.ts} +176 -136
  30. package/dist/components/DatePicker/{DateTextInput.d.ts → DateTextInput/DateTextInput.d.ts} +48 -42
  31. package/dist/components/DatePicker/composables/index.d.ts +15 -0
  32. package/dist/components/DatePicker/composables/useDateFormatValidation.d.ts +25 -0
  33. package/dist/components/DatePicker/composables/useDateInputEditing.d.ts +33 -0
  34. package/dist/components/DatePicker/composables/useDatePickerViewMode.d.ts +16 -0
  35. package/dist/components/DatePicker/composables/useDatePickerVisibility.d.ts +27 -0
  36. package/dist/components/DatePicker/composables/useDateRangeInput.d.ts +29 -0
  37. package/dist/components/DatePicker/composables/useDateRangeValidation.d.ts +11 -0
  38. package/dist/components/DatePicker/composables/useDateSelection.d.ts +10 -0
  39. package/dist/components/DatePicker/composables/useDateValidation.d.ts +35 -0
  40. package/dist/components/DatePicker/composables/useDisplayedDateString.d.ts +16 -0
  41. package/dist/components/DatePicker/composables/useIconState.d.ts +17 -0
  42. package/dist/components/DatePicker/composables/useInputBlurHandler.d.ts +30 -0
  43. package/dist/components/DatePicker/composables/useInputHandler.d.ts +32 -0
  44. package/dist/components/DatePicker/composables/useManualDateValidation.d.ts +33 -0
  45. package/dist/components/DatePicker/composables/useMonthButtonCustomization.d.ts +9 -0
  46. package/dist/components/DatePicker/composables/useTodayButton.d.ts +16 -0
  47. package/dist/components/DatePicker/composables/useWeekendDays.d.ts +11 -0
  48. package/dist/components/DatePicker/constants/messages.d.ts +29 -0
  49. package/dist/components/DatePicker/types.d.ts +13 -0
  50. package/dist/components/DiacriticPicker/DiacriticPicker.d.ts +27 -0
  51. package/dist/components/DiacriticPicker/config.d.ts +14 -0
  52. package/dist/components/DiacriticPicker/locales.d.ts +6 -0
  53. package/dist/components/DialogBox/AccessibiliteItems.d.ts +1 -1
  54. package/dist/components/DownloadBtn/AccessibiliteItems.d.ts +1 -1
  55. package/dist/components/DownloadBtn/DownloadBtn.d.ts +1 -1
  56. package/dist/components/ErrorPage/AccessibiliteItems.d.ts +1 -1
  57. package/dist/components/ExternalLinks/AccessibiliteItems.d.ts +1 -1
  58. package/dist/components/FileList/AccessibiliteItems.d.ts +1 -1
  59. package/dist/components/FilePreview/AccessibiliteItems.d.ts +1 -1
  60. package/dist/components/FileUpload/AccessibiliteItems.d.ts +1 -1
  61. package/dist/components/FilterInline/AccessibiliteItems.d.ts +1 -1
  62. package/dist/components/FilterSideBar/AccessibiliteItems.d.ts +1 -1
  63. package/dist/components/FilterSideBar/FilterSideBar.d.ts +395 -1
  64. package/dist/components/FooterBar/AccessibiliteItems.d.ts +1 -1
  65. package/dist/components/FooterBar/FooterBar.d.ts +1 -1
  66. package/dist/components/FranceConnectBtn/AccessibiliteItems.d.ts +1 -1
  67. package/dist/components/HeaderBar/AccessibiliteItems.d.ts +1 -1
  68. package/dist/components/HeaderBar/HeaderBurgerMenu/AccessibiliteItems.d.ts +1 -1
  69. package/dist/components/HeaderLoading/AccessibiliteItems.d.ts +1 -1
  70. package/dist/components/HeaderToolbar/AccessibiliteItems.d.ts +1 -1
  71. package/dist/components/LangBtn/AccessibiliteItems.d.ts +1 -1
  72. package/dist/components/Logo/AccessibiliteItems.d.ts +1 -1
  73. package/dist/components/LogoBrandSection/AccessibiliteItems.d.ts +1 -1
  74. package/dist/components/MaintenancePage/AccessibiliteItems.d.ts +1 -1
  75. package/dist/components/NirField/AccessibiliteItems.d.ts +1 -1
  76. package/dist/components/NirField/NirField.d.ts +34 -32
  77. package/dist/components/NotFoundPage/AccessibiliteItems.d.ts +1 -1
  78. package/dist/components/NotificationBar/AccessibiliteItems.d.ts +1 -1
  79. package/dist/components/NotificationBar/NotificationBar.d.ts +1 -1
  80. package/dist/components/PageContainer/AccessibiliteItems.d.ts +1 -1
  81. package/dist/components/PaginatedTable/AccessibiliteItems.d.ts +1 -1
  82. package/dist/components/PasswordField/AccessibiliteItems.d.ts +1 -1
  83. package/dist/components/PasswordField/PasswordField.d.ts +1 -1
  84. package/dist/components/PeriodField/AccessibiliteItems.d.ts +1 -1
  85. package/dist/components/PeriodField/PeriodField.d.ts +235 -101
  86. package/dist/components/PhoneField/AccessibiliteItems.d.ts +1 -1
  87. package/dist/components/PhoneField/PhoneField.d.ts +1 -0
  88. package/dist/components/PhoneField/tests/types.d.ts +18 -0
  89. package/dist/components/RangeField/AccessibiliteItems.d.ts +1 -1
  90. package/dist/components/RatingPicker/AccessibiliteItems.d.ts +1 -1
  91. package/dist/components/SearchListField/AccessibiliteItems.d.ts +1 -1
  92. package/dist/components/SelectBtnField/AccessibiliteItems.d.ts +1 -1
  93. package/dist/components/SkipLink/AccessibiliteItems.d.ts +1 -1
  94. package/dist/components/SocialMediaLinks/AccessibiliteItems.d.ts +1 -1
  95. package/dist/components/SubHeader/AccessibiliteItems.d.ts +1 -1
  96. package/dist/components/SyAlert/AccessibiliteItems.d.ts +1 -1
  97. package/dist/components/SyTextArea/SyTextArea.d.ts +900 -0
  98. package/dist/components/SyTextArea/locales.d.ts +3 -0
  99. package/dist/components/SyTextArea/trimStartOnUpdate.d.ts +1 -0
  100. package/dist/components/SyTextArea/useTextActions.d.ts +13 -0
  101. package/dist/components/SyTextArea/wrapText.d.ts +1 -0
  102. package/dist/components/TableToolbar/AccessibiliteItems.d.ts +1 -1
  103. package/dist/components/TableToolbar/TableToolbar.d.ts +10 -4
  104. package/dist/components/TableToolbar/config.d.ts +3 -2
  105. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +647 -0
  106. package/dist/components/Tables/SyTable/SyTable.d.ts +666 -0
  107. package/dist/components/Tables/common/SyTableFilter.d.ts +126 -0
  108. package/dist/components/Tables/common/TableHeader.d.ts +33 -0
  109. package/dist/components/Tables/common/constants/StateEnum.d.ts +6 -0
  110. package/dist/components/Tables/common/filters/DateFilter.d.ts +121 -0
  111. package/dist/components/Tables/common/filters/NumberFilter.d.ts +132 -0
  112. package/dist/components/Tables/common/filters/PeriodFilter.d.ts +135 -0
  113. package/dist/components/Tables/common/filters/SelectFilter.d.ts +120 -0
  114. package/dist/components/Tables/common/filters/TextFilter.d.ts +132 -0
  115. package/dist/components/Tables/common/formatters.d.ts +17 -0
  116. package/dist/components/Tables/common/locales.d.ts +7 -0
  117. package/dist/components/Tables/common/tableAccessibilityUtils.d.ts +8 -0
  118. package/dist/components/Tables/common/tableFilterUtils.d.ts +2 -0
  119. package/dist/components/Tables/common/tableStorageUtils.d.ts +29 -0
  120. package/dist/components/Tables/common/tableUtils.d.ts +42 -0
  121. package/dist/components/Tables/common/types.d.ts +80 -0
  122. package/dist/components/Tables/common/useTableFilter.d.ts +9 -0
  123. package/dist/components/Tables/index.d.ts +2 -0
  124. package/dist/components/UploadWorkflow/AccessibiliteItems.d.ts +1 -1
  125. package/dist/components/UserMenuBtn/AccessibiliteItems.d.ts +1 -1
  126. package/dist/components/index.d.ts +6 -1
  127. package/dist/composables/date/useHolidayDay.d.ts +36 -0
  128. package/dist/design-system-v3.js +100 -11271
  129. package/dist/design-system-v3.umd.cjs +22 -1
  130. package/dist/designTokens/index.d.ts +3 -1
  131. package/dist/designTokens/tokens/cnam/cnamFonts.d.ts +140 -0
  132. package/dist/designTokens/tokens/pa/paFonts.d.ts +140 -0
  133. package/dist/designTokens/tokens/pa/paLightTheme.d.ts +1 -32
  134. package/dist/designTokens/utils/createFontVariables.d.ts +39 -0
  135. package/dist/designTokens/utils/index.d.ts +2 -1
  136. package/dist/main-WDqeoGM-.js +14788 -0
  137. package/dist/style.css +1 -1
  138. package/dist/utils/rules/index.d.ts +1 -0
  139. package/dist/utils/rules/isHolidayDay/index.d.ts +11 -0
  140. package/dist/utils/rules/isHolidayDay/locales.d.ts +2 -0
  141. package/dist/utils/rules/isRequired/index.d.ts +1 -1
  142. package/dist/vite-env.d.ts +12 -0
  143. package/package.json +2 -1
  144. package/src/assets/_spacers.scss +37 -1
  145. package/src/assets/_typography.scss +158 -0
  146. package/src/assets/settings.scss +19 -0
  147. package/src/common/constants/ExpertiseLevelEnum.ts +7 -0
  148. package/src/components/Accordion/Accordion.mdx +69 -0
  149. package/src/components/Accordion/Accordion.stories.ts +262 -0
  150. package/src/components/Accordion/Accordion.vue +319 -0
  151. package/src/components/Accordion/config.ts +9 -0
  152. package/src/components/Accordion/tests/__snapshots__/accordion.spec.ts.snap +155 -0
  153. package/src/components/Accordion/tests/accordion.spec.ts +492 -0
  154. package/src/components/BackBtn/AccessibiliteItems.ts +1 -1
  155. package/src/components/BackToTopBtn/AccessibiliteItems.ts +1 -1
  156. package/src/components/ChipList/AccessibiliteItems.ts +1 -1
  157. package/src/components/CollapsibleList/AccessibiliteItems.ts +1 -1
  158. package/src/components/ContextualMenu/AccessibiliteItems.ts +1 -1
  159. package/src/components/CookieBanner/AccessibiliteItems.ts +1 -1
  160. package/src/components/CopyBtn/AccessibiliteItems.ts +1 -1
  161. package/src/components/CopyBtn/CopyBtn.stories.ts +189 -0
  162. package/src/components/CopyBtn/CopyBtn.vue +29 -1
  163. package/src/components/CopyBtn/tests/CopyBtn.spec.ts +102 -0
  164. package/src/components/Customs/SyBtnSelect/AccessibiliteItems.ts +1 -1
  165. package/src/components/Customs/SyInputSelect/AccessibiliteItems.ts +1 -1
  166. package/src/components/Customs/SyInputSelect/SyInputSelect.stories.ts +155 -1
  167. package/src/components/Customs/SyInputSelect/SyInputSelect.vue +97 -14
  168. package/src/components/Customs/SyInputSelect/tests/SyInputSelect.spec.ts +386 -106
  169. package/src/components/Customs/SySelect/AccessibiliteItems.ts +1 -1
  170. package/src/components/Customs/SySelect/SySelect.stories.ts +121 -2
  171. package/src/components/Customs/SySelect/SySelect.vue +25 -6
  172. package/src/components/Customs/SySelect/tests/SySelect.spec.ts +294 -3
  173. package/src/components/Customs/SyTextField/AccessibiliteItems.ts +1 -1
  174. package/src/components/Customs/SyTextField/SyTextField.vue +5 -3
  175. package/src/components/DataList/AccessibiliteItems.ts +1 -1
  176. package/src/components/DataListGroup/AccessibiliteItems.ts +1 -1
  177. package/src/components/DatePicker/AccessibiliteItems.ts +1 -1
  178. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.mdx +212 -0
  179. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +1097 -0
  180. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +497 -180
  181. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +941 -0
  182. package/src/components/DatePicker/DatePicker/DatePicker.mdx +176 -0
  183. package/src/components/DatePicker/{tests → DatePicker}/DatePicker.spec.ts +1 -1
  184. package/src/components/DatePicker/{DatePicker.stories.ts → DatePicker/DatePicker.stories.ts} +115 -400
  185. package/src/components/DatePicker/{DatePicker.vue → DatePicker/DatePicker.vue} +314 -83
  186. package/src/components/DatePicker/DatePickerOverview.mdx +227 -0
  187. package/src/components/DatePicker/{DatePickerValidation.mdx → DatePickerValidationExample/DatePickerValidation.mdx} +3 -3
  188. package/src/components/DatePicker/{DatePickerValidation.stories.ts → DatePickerValidationExample/DatePickerValidation.stories.ts} +2 -2
  189. package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +310 -0
  190. package/src/components/DatePicker/DateTextInput/DateTextInput.range.spec.ts +278 -0
  191. package/src/components/DatePicker/{tests → DateTextInput}/DateTextInput.spec.ts +8 -7
  192. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +916 -0
  193. package/src/components/DatePicker/DateTextInput/NoCalendar.mdx +64 -0
  194. package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +572 -0
  195. package/src/components/DatePicker/composables/index.ts +22 -0
  196. package/src/components/DatePicker/composables/tests/useDateFormatValidation.spec.ts +165 -0
  197. package/src/components/DatePicker/composables/tests/useDateInputEditing.spec.ts +359 -0
  198. package/src/components/DatePicker/composables/tests/useDatePickerViewMode.spec.ts +160 -0
  199. package/src/components/DatePicker/composables/tests/useDatePickerVisibility.spec.ts +339 -0
  200. package/src/components/DatePicker/composables/tests/useDateRangeInput.spec.ts +277 -0
  201. package/src/components/DatePicker/composables/tests/useDateRangeValidation.spec.ts +107 -0
  202. package/src/components/DatePicker/composables/tests/useDateSelection.spec.ts +171 -0
  203. package/src/components/DatePicker/composables/tests/useDateValidation.spec.ts +245 -0
  204. package/src/components/DatePicker/composables/tests/useDisplayedDateString.spec.ts +98 -0
  205. package/src/components/DatePicker/composables/tests/useIconState.spec.ts +130 -0
  206. package/src/components/DatePicker/composables/tests/useInputBlurHandler.spec.ts +278 -0
  207. package/src/components/DatePicker/composables/tests/useManualDateValidation.spec.ts +233 -0
  208. package/src/components/DatePicker/composables/tests/useMonthButtonCustomization.spec.ts +100 -0
  209. package/src/components/DatePicker/composables/tests/useTodayButton.spec.ts +97 -0
  210. package/src/components/DatePicker/composables/tests/useWeekendDays.spec.ts +28 -0
  211. package/src/components/DatePicker/composables/useDateFormatValidation.ts +95 -0
  212. package/src/components/DatePicker/composables/useDateInputEditing.ts +326 -0
  213. package/src/components/DatePicker/composables/useDatePickerViewMode.ts +61 -0
  214. package/src/components/DatePicker/composables/useDatePickerVisibility.ts +146 -0
  215. package/src/components/DatePicker/composables/useDateRangeInput.ts +375 -0
  216. package/src/components/DatePicker/composables/useDateRangeValidation.ts +48 -0
  217. package/src/components/DatePicker/composables/useDateSelection.ts +121 -0
  218. package/src/components/DatePicker/composables/useDateValidation.ts +225 -0
  219. package/src/components/DatePicker/composables/useDisplayedDateString.ts +58 -0
  220. package/src/components/DatePicker/composables/useIconState.ts +53 -0
  221. package/src/components/DatePicker/composables/useInputBlurHandler.ts +101 -0
  222. package/src/components/DatePicker/composables/useInputHandler.ts +436 -0
  223. package/src/components/DatePicker/composables/useManualDateValidation.ts +161 -0
  224. package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +89 -0
  225. package/src/components/DatePicker/composables/useTodayButton.ts +43 -0
  226. package/src/components/DatePicker/composables/useWeekendDays.ts +21 -0
  227. package/src/components/DatePicker/constants/messages.ts +50 -0
  228. package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +4 -4
  229. package/src/components/DatePicker/docExamples/DatePickerValidationExamples.vue +1 -1
  230. package/src/components/DatePicker/playground/ComplexDatePickerPlayground.vue +172 -0
  231. package/src/components/DatePicker/playground/DatePickerHolidayRule.vue +130 -0
  232. package/src/components/DatePicker/types.ts +15 -0
  233. package/src/components/DiacriticPicker/DiacriticPicker.mdx +104 -0
  234. package/src/components/DiacriticPicker/DiacriticPicker.stories.ts +447 -0
  235. package/src/components/DiacriticPicker/DiacriticPicker.vue +262 -0
  236. package/src/components/DiacriticPicker/config.ts +15 -0
  237. package/src/components/DiacriticPicker/locales.ts +6 -0
  238. package/src/components/DiacriticPicker/tests/DiatriticPicker.spec.ts +132 -0
  239. package/src/components/DialogBox/AccessibiliteItems.ts +1 -1
  240. package/src/components/DialogBox/DialogBox.vue +1 -3
  241. package/src/components/DownloadBtn/AccessibiliteItems.ts +1 -1
  242. package/src/components/ErrorPage/AccessibiliteItems.ts +1 -1
  243. package/src/components/ExternalLinks/AccessibiliteItems.ts +1 -1
  244. package/src/components/FileList/AccessibiliteItems.ts +1 -1
  245. package/src/components/FilePreview/AccessibiliteItems.ts +1 -1
  246. package/src/components/FileUpload/AccessibiliteItems.ts +1 -1
  247. package/src/components/FilterInline/AccessibiliteItems.ts +1 -1
  248. package/src/components/FilterSideBar/AccessibiliteItems.ts +1 -1
  249. package/src/components/FilterSideBar/FilterSideBar.vue +108 -90
  250. package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +27 -0
  251. package/src/components/FilterSideBar/tests/__snapshots__/FilterSideBar.spec.ts.snap +114 -109
  252. package/src/components/FooterBar/AccessibiliteItems.ts +1 -1
  253. package/src/components/FooterBar/FooterBar.vue +2 -1
  254. package/src/components/FranceConnectBtn/AccessibiliteItems.ts +1 -1
  255. package/src/components/HeaderBar/AccessibiliteItems.ts +1 -1
  256. package/src/components/HeaderBar/HeaderBurgerMenu/AccessibiliteItems.ts +1 -1
  257. package/src/components/HeaderLoading/AccessibiliteItems.ts +1 -1
  258. package/src/components/HeaderToolbar/AccessibiliteItems.ts +1 -1
  259. package/src/components/LangBtn/AccessibiliteItems.ts +1 -1
  260. package/src/components/Logo/Accessibilite.stories.ts +4 -0
  261. package/src/components/Logo/AccessibiliteItems.ts +1 -1
  262. package/src/components/LogoBrandSection/AccessibiliteItems.ts +1 -1
  263. package/src/components/MaintenancePage/AccessibiliteItems.ts +1 -1
  264. package/src/components/NirField/AccessibiliteItems.ts +1 -1
  265. package/src/components/NirField/NirField.stories.ts +172 -0
  266. package/src/components/NirField/NirField.vue +15 -7
  267. package/src/components/NotFoundPage/AccessibiliteItems.ts +1 -1
  268. package/src/components/NotificationBar/Accessibilite.stories.ts +1 -1
  269. package/src/components/NotificationBar/AccessibiliteItems.ts +1 -1
  270. package/src/components/NotificationBar/NotificationBar.stories.ts +14 -0
  271. package/src/components/NotificationBar/NotificationBar.vue +26 -3
  272. package/src/components/NotificationBar/{options.ts → config.ts} +0 -1
  273. package/src/components/PageContainer/AccessibiliteItems.ts +1 -1
  274. package/src/components/PaginatedTable/AccessibiliteItems.ts +1 -1
  275. package/src/components/PaginatedTable/PaginatedTable.stories.ts +19 -0
  276. package/src/components/PaginatedTable/PaginatedTable.vue +51 -24
  277. package/src/components/PaginatedTable/tests/PaginatedTable.spec.ts +0 -2
  278. package/src/components/PasswordField/AccessibiliteItems.ts +1 -1
  279. package/src/components/PasswordField/PasswordField.stories.ts +4 -3
  280. package/src/components/PasswordField/PasswordField.vue +26 -18
  281. package/src/components/PasswordField/tests/PasswordField.spec.ts +1 -10
  282. package/src/components/PeriodField/AccessibiliteItems.ts +1 -1
  283. package/src/components/PeriodField/PeriodField.vue +13 -1
  284. package/src/components/PhoneField/AccessibiliteItems.ts +1 -1
  285. package/src/components/PhoneField/PhoneField.stories.ts +143 -0
  286. package/src/components/PhoneField/PhoneField.vue +88 -30
  287. package/src/components/PhoneField/tests/PhoneField.additional.spec.ts +266 -0
  288. package/src/components/PhoneField/tests/PhoneField.spec.ts +248 -28
  289. package/src/components/PhoneField/tests/types.d.ts +19 -0
  290. package/src/components/RangeField/AccessibiliteItems.ts +1 -1
  291. package/src/components/RatingPicker/AccessibiliteItems.ts +1 -1
  292. package/src/components/SearchListField/AccessibiliteItems.ts +1 -1
  293. package/src/components/SelectBtnField/AccessibiliteItems.ts +1 -1
  294. package/src/components/SkipLink/AccessibiliteItems.ts +1 -1
  295. package/src/components/SocialMediaLinks/AccessibiliteItems.ts +1 -1
  296. package/src/components/SubHeader/AccessibiliteItems.ts +1 -1
  297. package/src/components/SyAlert/AccessibiliteItems.ts +1 -1
  298. package/src/components/SyTextArea/SyTextArea.mdx +17 -0
  299. package/src/components/SyTextArea/SyTextArea.stories.ts +322 -0
  300. package/src/components/SyTextArea/SyTextArea.vue +113 -0
  301. package/src/components/SyTextArea/locales.ts +3 -0
  302. package/src/components/SyTextArea/tests/SyTextArea.spec.ts +194 -0
  303. package/src/components/SyTextArea/trimStartOnUpdate.ts +12 -0
  304. package/src/components/SyTextArea/useTextActions.ts +52 -0
  305. package/src/components/SyTextArea/wrapText.ts +42 -0
  306. package/src/components/TableToolbar/AccessibiliteItems.ts +1 -1
  307. package/src/components/TableToolbar/TableToolbar.mdx +86 -1
  308. package/src/components/TableToolbar/TableToolbar.stories.ts +509 -107
  309. package/src/components/TableToolbar/TableToolbar.vue +25 -8
  310. package/src/components/TableToolbar/config.ts +3 -2
  311. package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +35 -12
  312. package/src/components/Tables/SyServerTable/FilterRules.stories.ts +83 -0
  313. package/src/components/Tables/SyServerTable/SyServerTable.mdx +160 -0
  314. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +2887 -0
  315. package/src/components/Tables/SyServerTable/SyServerTable.vue +302 -0
  316. package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +450 -0
  317. package/src/components/Tables/SyServerTable/tests/__snapshots__/SyServerTable.spec.ts.snap +521 -0
  318. package/src/components/Tables/SyTable/FilterRules.stories.ts +235 -0
  319. package/src/components/Tables/SyTable/SyTable.mdx +129 -0
  320. package/src/components/Tables/SyTable/SyTable.stories.ts +1966 -0
  321. package/src/components/Tables/SyTable/SyTable.vue +317 -0
  322. package/src/components/Tables/SyTable/tests/SyTable.spec.ts +345 -0
  323. package/src/components/Tables/SyTable/tests/__snapshots__/SyTable.spec.ts.snap +521 -0
  324. package/src/components/Tables/common/SyTableFilter.vue +342 -0
  325. package/src/components/Tables/common/TableHeader.vue +221 -0
  326. package/src/components/Tables/common/constants/StateEnum.ts +6 -0
  327. package/src/components/Tables/common/filters/DateFilter.vue +140 -0
  328. package/src/components/Tables/common/filters/NumberFilter.vue +234 -0
  329. package/src/components/Tables/common/filters/PeriodFilter.vue +147 -0
  330. package/src/components/Tables/common/filters/SelectFilter.vue +126 -0
  331. package/src/components/Tables/common/filters/TextFilter.vue +191 -0
  332. package/src/components/Tables/common/filters/tests/DateFilter.spec.ts +187 -0
  333. package/src/components/Tables/common/filters/tests/NumberFilter.spec.ts +280 -0
  334. package/src/components/Tables/common/filters/tests/PeriodFilter.spec.ts +192 -0
  335. package/src/components/Tables/common/filters/tests/SelectFilter.spec.ts +219 -0
  336. package/src/components/Tables/common/filters/tests/TextFilter.spec.ts +260 -0
  337. package/src/components/Tables/common/formatters.ts +72 -0
  338. package/src/components/Tables/common/locales.ts +7 -0
  339. package/src/components/Tables/common/tableAccessibilityUtils.ts +61 -0
  340. package/src/components/Tables/common/tableFilterUtils.ts +327 -0
  341. package/src/components/Tables/common/tableStorageUtils.ts +102 -0
  342. package/src/components/Tables/common/tableStyles.scss +54 -0
  343. package/src/components/Tables/common/tableUtils.ts +115 -0
  344. package/src/components/Tables/common/tests/SyTableFilter.spec.ts +312 -0
  345. package/src/components/Tables/common/tests/resize.spec.ts +161 -0
  346. package/src/components/Tables/common/tests/tableFilterUtils.spec.ts +106 -0
  347. package/src/components/Tables/common/tests/tableUtils.spec.ts +272 -0
  348. package/src/components/Tables/common/types.ts +81 -0
  349. package/src/components/Tables/common/useTableFilter.ts +19 -0
  350. package/src/components/Tables/index.ts +3 -0
  351. package/src/components/UploadWorkflow/AccessibiliteItems.ts +1 -1
  352. package/src/components/UserMenuBtn/AccessibiliteItems.ts +1 -1
  353. package/src/components/index.ts +6 -1
  354. package/src/composables/date/useDateFormatDayjs.ts +8 -3
  355. package/src/composables/date/useDateInitializationDayjs.ts +28 -36
  356. package/src/composables/date/useHolidayDay.ts +98 -0
  357. package/src/composables/rules/useFieldValidation.ts +16 -4
  358. package/src/composables/validation/useValidation.ts +2 -1
  359. package/src/designTokens/index.ts +4 -0
  360. package/src/designTokens/tokens/cnam/cnamFonts.ts +140 -0
  361. package/src/designTokens/tokens/pa/paFonts.ts +140 -0
  362. package/src/designTokens/tokens/pa/paLightTheme.ts +10 -41
  363. package/src/designTokens/utils/createFontVariables.ts +143 -0
  364. package/src/designTokens/utils/index.ts +2 -1
  365. package/src/stories/Accessibilite/Introduction.mdx +5 -2
  366. package/src/stories/Demarrer/Accueil.stories.ts +12 -3
  367. package/src/stories/DesignTokens/colors.stories.ts +100 -41
  368. package/src/utils/rules/index.ts +1 -0
  369. package/src/utils/rules/isHolidayDay/IsHolidayDay.mdx +52 -0
  370. package/src/utils/rules/isHolidayDay/IsHolidayDay.stories.ts +129 -0
  371. package/src/utils/rules/isHolidayDay/index.ts +36 -0
  372. package/src/utils/rules/isHolidayDay/locales.ts +5 -0
  373. package/src/utils/rules/isHolidayDay/tests/isHolidayDay.spec.ts +35 -0
  374. package/src/utils/rules/isRequired/index.ts +2 -1
  375. package/src/vite-env.d.ts +12 -0
  376. package/src/vuetifyConfig.ts +10 -3
  377. package/dist/components/BackToTopBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  378. package/dist/components/ChipList/constants/ExpertiseLevelEnum.d.ts +0 -4
  379. package/dist/components/CollapsibleList/constants/ExpertiseLevelEnum.d.ts +0 -4
  380. package/dist/components/ContextualMenu/constants/ExpertiseLevelEnum.d.ts +0 -4
  381. package/dist/components/CookieBanner/constants/ExpertiseLevelEnum.d.ts +0 -4
  382. package/dist/components/CopyBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  383. package/dist/components/Customs/SyBtnSelect/constants/ExpertiseLevelEnum.d.ts +0 -4
  384. package/dist/components/Customs/SyInputSelect/constants/ExpertiseLevelEnum.d.ts +0 -4
  385. package/dist/components/Customs/SySelect/constants/ExpertiseLevelEnum.d.ts +0 -4
  386. package/dist/components/Customs/SyTextField/constants/ExpertiseLevelEnum.d.ts +0 -4
  387. package/dist/components/DataList/constants/ExpertiseLevelEnum.d.ts +0 -4
  388. package/dist/components/DataListGroup/constants/ExpertiseLevelEnum.d.ts +0 -4
  389. package/dist/components/DatePicker/constants/ExpertiseLevelEnum.d.ts +0 -4
  390. package/dist/components/DialogBox/constants/ExpertiseLevelEnum.d.ts +0 -4
  391. package/dist/components/DownloadBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  392. package/dist/components/ErrorPage/constants/ExpertiseLevelEnum.d.ts +0 -4
  393. package/dist/components/ExternalLinks/constants/ExpertiseLevelEnum.d.ts +0 -4
  394. package/dist/components/FileList/constants/ExpertiseLevelEnum.d.ts +0 -4
  395. package/dist/components/FilePreview/constants/ExpertiseLevelEnum.d.ts +0 -4
  396. package/dist/components/FileUpload/constants/ExpertiseLevelEnum.d.ts +0 -4
  397. package/dist/components/FilterInline/constants/ExpertiseLevelEnum.d.ts +0 -4
  398. package/dist/components/FilterSideBar/constants/ExpertiseLevelEnum.d.ts +0 -4
  399. package/dist/components/FooterBar/constants/ExpertiseLevelEnum.d.ts +0 -4
  400. package/dist/components/FranceConnectBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  401. package/dist/components/HeaderBar/HeaderBurgerMenu/constants/ExpertiseLevelEnum.d.ts +0 -4
  402. package/dist/components/HeaderBar/constants/ExpertiseLevelEnum.d.ts +0 -4
  403. package/dist/components/HeaderLoading/constants/ExpertiseLevelEnum.d.ts +0 -4
  404. package/dist/components/HeaderToolbar/constants/ExpertiseLevelEnum.d.ts +0 -4
  405. package/dist/components/LangBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  406. package/dist/components/Logo/constants/ExpertiseLevelEnum.d.ts +0 -4
  407. package/dist/components/LogoBrandSection/constants/ExpertiseLevelEnum.d.ts +0 -4
  408. package/dist/components/MaintenancePage/constants/ExpertiseLevelEnum.d.ts +0 -4
  409. package/dist/components/NirField/constants/ExpertiseLevelEnum.d.ts +0 -4
  410. package/dist/components/NotFoundPage/constants/ExpertiseLevelEnum.d.ts +0 -4
  411. package/dist/components/NotificationBar/constants/ExpertiseLevelEnum.d.ts +0 -4
  412. package/dist/components/PageContainer/constants/ExpertiseLevelEnum.d.ts +0 -4
  413. package/dist/components/PaginatedTable/constants/ExpertiseLevelEnum.d.ts +0 -4
  414. package/dist/components/PasswordField/constants/ExpertiseLevelEnum.d.ts +0 -4
  415. package/dist/components/PeriodField/constants/ExpertiseLevelEnum.d.ts +0 -4
  416. package/dist/components/PhoneField/constants/ExpertiseLevelEnum.d.ts +0 -4
  417. package/dist/components/RangeField/constants/ExpertiseLevelEnum.d.ts +0 -4
  418. package/dist/components/RatingPicker/constants/ExpertiseLevelEnum.d.ts +0 -4
  419. package/dist/components/SearchListField/constants/ExpertiseLevelEnum.d.ts +0 -4
  420. package/dist/components/SelectBtnField/constants/ExpertiseLevelEnum.d.ts +0 -4
  421. package/dist/components/SkipLink/constants/ExpertiseLevelEnum.d.ts +0 -4
  422. package/dist/components/SocialMediaLinks/constants/ExpertiseLevelEnum.d.ts +0 -4
  423. package/dist/components/SubHeader/constants/ExpertiseLevelEnum.d.ts +0 -4
  424. package/dist/components/SyAlert/constants/ExpertiseLevelEnum.d.ts +0 -4
  425. package/dist/components/TableToolbar/constants/ExpertiseLevelEnum.d.ts +0 -4
  426. package/dist/components/UploadWorkflow/constants/ExpertiseLevelEnum.d.ts +0 -4
  427. package/dist/components/UserMenuBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  428. package/src/components/BackBtn/constants/ExpertiseLevelEnum.ts +0 -4
  429. package/src/components/BackToTopBtn/constants/ExpertiseLevelEnum.ts +0 -4
  430. package/src/components/ChipList/constants/ExpertiseLevelEnum.ts +0 -4
  431. package/src/components/CollapsibleList/constants/ExpertiseLevelEnum.ts +0 -4
  432. package/src/components/ContextualMenu/constants/ExpertiseLevelEnum.ts +0 -4
  433. package/src/components/CookieBanner/constants/ExpertiseLevelEnum.ts +0 -4
  434. package/src/components/CopyBtn/constants/ExpertiseLevelEnum.ts +0 -4
  435. package/src/components/Customs/SyBtnSelect/constants/ExpertiseLevelEnum.ts +0 -4
  436. package/src/components/Customs/SyInputSelect/constants/ExpertiseLevelEnum.ts +0 -4
  437. package/src/components/Customs/SySelect/constants/ExpertiseLevelEnum.ts +0 -4
  438. package/src/components/Customs/SyTextField/constants/ExpertiseLevelEnum.ts +0 -4
  439. package/src/components/DataList/constants/ExpertiseLevelEnum.ts +0 -4
  440. package/src/components/DataListGroup/constants/ExpertiseLevelEnum.ts +0 -4
  441. package/src/components/DatePicker/DatePicker.mdx +0 -222
  442. package/src/components/DatePicker/DateTextInput.vue +0 -493
  443. package/src/components/DatePicker/constants/ExpertiseLevelEnum.ts +0 -4
  444. package/src/components/DialogBox/constants/ExpertiseLevelEnum.ts +0 -4
  445. package/src/components/DownloadBtn/constants/ExpertiseLevelEnum.ts +0 -4
  446. package/src/components/ErrorPage/constants/ExpertiseLevelEnum.ts +0 -4
  447. package/src/components/ExternalLinks/constants/ExpertiseLevelEnum.ts +0 -4
  448. package/src/components/FileList/constants/ExpertiseLevelEnum.ts +0 -4
  449. package/src/components/FilePreview/constants/ExpertiseLevelEnum.ts +0 -4
  450. package/src/components/FileUpload/constants/ExpertiseLevelEnum.ts +0 -4
  451. package/src/components/FilterInline/constants/ExpertiseLevelEnum.ts +0 -4
  452. package/src/components/FilterSideBar/constants/ExpertiseLevelEnum.ts +0 -4
  453. package/src/components/FooterBar/constants/ExpertiseLevelEnum.ts +0 -4
  454. package/src/components/FranceConnectBtn/constants/ExpertiseLevelEnum.ts +0 -4
  455. package/src/components/HeaderBar/HeaderBurgerMenu/constants/ExpertiseLevelEnum.ts +0 -4
  456. package/src/components/HeaderBar/constants/ExpertiseLevelEnum.ts +0 -4
  457. package/src/components/HeaderLoading/constants/ExpertiseLevelEnum.ts +0 -4
  458. package/src/components/HeaderToolbar/constants/ExpertiseLevelEnum.ts +0 -4
  459. package/src/components/LangBtn/constants/ExpertiseLevelEnum.ts +0 -4
  460. package/src/components/Logo/constants/ExpertiseLevelEnum.ts +0 -4
  461. package/src/components/LogoBrandSection/constants/ExpertiseLevelEnum.ts +0 -4
  462. package/src/components/MaintenancePage/constants/ExpertiseLevelEnum.ts +0 -4
  463. package/src/components/NirField/constants/ExpertiseLevelEnum.ts +0 -4
  464. package/src/components/NotFoundPage/constants/ExpertiseLevelEnum.ts +0 -4
  465. package/src/components/NotificationBar/constants/ExpertiseLevelEnum.ts +0 -4
  466. package/src/components/PageContainer/constants/ExpertiseLevelEnum.ts +0 -4
  467. package/src/components/PaginatedTable/constants/ExpertiseLevelEnum.ts +0 -4
  468. package/src/components/PasswordField/constants/ExpertiseLevelEnum.ts +0 -4
  469. package/src/components/PeriodField/constants/ExpertiseLevelEnum.ts +0 -4
  470. package/src/components/PhoneField/constants/ExpertiseLevelEnum.ts +0 -4
  471. package/src/components/RangeField/constants/ExpertiseLevelEnum.ts +0 -4
  472. package/src/components/RatingPicker/constants/ExpertiseLevelEnum.ts +0 -4
  473. package/src/components/SearchListField/constants/ExpertiseLevelEnum.ts +0 -4
  474. package/src/components/SelectBtnField/constants/ExpertiseLevelEnum.ts +0 -4
  475. package/src/components/SkipLink/constants/ExpertiseLevelEnum.ts +0 -4
  476. package/src/components/SocialMediaLinks/constants/ExpertiseLevelEnum.ts +0 -4
  477. package/src/components/SubHeader/constants/ExpertiseLevelEnum.ts +0 -4
  478. package/src/components/SyAlert/constants/ExpertiseLevelEnum.ts +0 -4
  479. package/src/components/TableToolbar/constants/ExpertiseLevelEnum.ts +0 -4
  480. package/src/components/UploadWorkflow/constants/ExpertiseLevelEnum.ts +0 -4
  481. package/src/components/UserMenuBtn/constants/ExpertiseLevelEnum.ts +0 -4
  482. /package/dist/components/NotificationBar/{options.d.ts → config.d.ts} +0 -0
@@ -0,0 +1,43 @@
1
+ import { computed, type ComputedRef } from 'vue'
2
+ import dayjs from 'dayjs'
3
+ import { type DateObjectValue } from '../types'
4
+
5
+ export interface TodayButtonProps {
6
+ displayTodayButton?: boolean
7
+ displayRange?: boolean
8
+ }
9
+
10
+ export interface TodayButtonReturn {
11
+ todayInString: ComputedRef<string>
12
+ selectToday: (selectedDates: { value: DateObjectValue }) => void
13
+ }
14
+
15
+ /**
16
+ * Composable pour gérer le bouton "Aujourd'hui" dans le DatePicker
17
+ */
18
+ export function useTodayButton(props: TodayButtonProps): TodayButtonReturn {
19
+ // Computed pour le format de la date du jour
20
+ const todayInString = computed(() => {
21
+ return dayjs().locale('fr').format('dddd D MMMM').replace(/\b\w/g, l => l.toUpperCase())
22
+ })
23
+
24
+ // Fonction pour sélectionner la date du jour
25
+ const selectToday = (selectedDates: { value: DateObjectValue }) => {
26
+ const today = new Date()
27
+ if (props.displayRange) {
28
+ // Si c'est une plage de dates, on définit le même jour pour début et fin
29
+ selectedDates.value = [today, today]
30
+ }
31
+ else {
32
+ // Sinon, on sélectionne simplement aujourd'hui
33
+ selectedDates.value = today
34
+ }
35
+ // Le watcher sur selectedDates dans le composant parent se chargera de mettre à jour l'affichage
36
+ // et d'émettre l'événement update:modelValue
37
+ }
38
+
39
+ return {
40
+ todayInString,
41
+ selectToday,
42
+ }
43
+ }
@@ -0,0 +1,21 @@
1
+ import { computed, type ComputedRef } from 'vue'
2
+
3
+ export interface WeekendDaysProps {
4
+ displayWeekendDays?: boolean
5
+ }
6
+
7
+ export interface WeekendDaysReturn {
8
+ displayWeekendDays: ComputedRef<boolean>
9
+ }
10
+
11
+ /**
12
+ * Composable pour gérer l'affichage des jours de weekend dans le DatePicker
13
+ */
14
+ export function useWeekendDays(props: WeekendDaysProps): WeekendDaysReturn {
15
+ // Computed pour l'affichage des jours de weekend
16
+ const displayWeekendDays = computed(() => props.displayWeekendDays ?? true)
17
+
18
+ return {
19
+ displayWeekendDays,
20
+ }
21
+ }
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Fichier contenant toutes les constantes de textes utilisées dans les composants/composables DatePicker
3
+ */
4
+
5
+ export const DATE_PICKER_MESSAGES = {
6
+ // Labels et placeholders
7
+ LABEL_DEFAULT: 'Date',
8
+ PLACEHOLDER_DEFAULT: 'Sélectionner une date',
9
+
10
+ // Messages d'erreur
11
+ ERROR_REQUIRED: 'La date est requise.',
12
+ ERROR_INVALID_FORMAT: 'Le format de la date est invalide.',
13
+ ERROR_INVALID_DATE: 'La date saisie est invalide.',
14
+ ERROR_INCOMPLETE_DATE: 'La date est incomplète.',
15
+ ERROR_INVALID_RANGE: 'La plage de dates est invalide.',
16
+ ERROR_START_DATE_MISSING: 'La date de début est manquante.',
17
+ ERROR_END_DATE_MISSING: 'La date de fin est manquante.',
18
+ ERROR_END_BEFORE_START: 'La date de fin doit être postérieure à la date de début.',
19
+ ERROR_INVALID_FORMAT_START: 'Format de date invalide pour la date de début',
20
+ ERROR_INVALID_FORMAT_END: 'Format de date invalide pour la date de fin',
21
+
22
+ // Messages de succès
23
+ SUCCESS_VALID_DATE: 'La date est valide.',
24
+
25
+ // Messages d'accessibilité
26
+ ARIA_DATE_INPUT: 'Date en cours de saisie',
27
+ ARIA_CALENDAR_BUTTON: 'Ouvrir le calendrier',
28
+ ARIA_TODAY_BUTTON: 'Sélectionner aujourd\'hui',
29
+
30
+ // Boutons et actions
31
+ BUTTON_TODAY: 'Aujourd\'hui',
32
+ BUTTON_CLEAR: 'Effacer',
33
+ BUTTON_CLOSE: 'Fermer',
34
+
35
+ // Formats de date
36
+ FORMAT_DEFAULT: 'DD/MM/YYYY',
37
+
38
+ // Descriptions des mois pour l'accessibilité
39
+ MONTH_NAMES: [
40
+ 'janvier', 'février', 'mars', 'avril', 'mai', 'juin',
41
+ 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre',
42
+ ],
43
+
44
+ // Descriptions des jours pour l'accessibilité
45
+ DAY_NAMES: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'],
46
+
47
+ // Autres messages
48
+ DATE_SEPARATOR: '/',
49
+ RANGE_SEPARATOR: ' - ',
50
+ }
@@ -1,6 +1,6 @@
1
1
  <script lang="ts" setup>
2
2
  import { ref, computed, watch } from 'vue'
3
- import DatePicker from '@/components/DatePicker/DatePicker.vue'
3
+ import DatePicker from '@/components/DatePicker/DatePicker/DatePicker.vue'
4
4
  import { useDateFormat } from '@/composables/date/useDateFormat'
5
5
 
6
6
  const { parseDate } = useDateFormat()
@@ -157,15 +157,15 @@
157
157
  Validation bidirectionnelle entre deux DatePickers
158
158
  </h1>
159
159
 
160
- <p class="text-body-2 mb-4">
160
+ <div class="text-body-2 mb-4">
161
161
  Ce composant démontre la validation bidirectionnelle entre deux DatePickers. Les règles de validation sont appliquées dans les deux sens :
162
- <ul>
162
+ <ul class="ml-4">
163
163
  <li>La date de fin doit être postérieure ou égale à la date de début</li>
164
164
  <li>La date de début doit être antérieure ou égale à la date de fin</li>
165
165
  <li>Lorsque la date de début change, la validation de la date de fin est mise à jour</li>
166
166
  <li>Lorsque la date de fin change, la validation de la date de début est mise à jour</li>
167
167
  </ul>
168
- </p>
168
+ </div>
169
169
 
170
170
  <div class="date-range-container mb-6">
171
171
  <div class="date-picker-wrapper">
@@ -1,6 +1,6 @@
1
1
  <script setup>
2
2
  import { ref } from 'vue'
3
- import DatePicker from '@/components/DatePicker/DatePicker.vue'
3
+ import DatePicker from '@/components/DatePicker/DatePicker/DatePicker.vue'
4
4
 
5
5
  // Exemple 1: Validation de base (required)
6
6
  const date1 = ref('')
@@ -0,0 +1,172 @@
1
+ <script lang="ts" setup>
2
+ import { ref } from 'vue'
3
+ import ComplexDatePicker from '../ComplexDatePicker/ComplexDatePicker.vue'
4
+
5
+ // Valeurs pour les différents exemples
6
+ const standardDate = ref<string | null>(null)
7
+ const americanDate = ref<string | null>(null)
8
+ const isoDate = ref<string | null>(null)
9
+ const dotDate = ref<string | null>(null)
10
+ const requiredDate = ref<string | null>(null)
11
+ const dateRange = ref<[string, string] | null>(null)
12
+ const birthDate = ref<string | null>(null)
13
+ const formattedDate = ref<string | null>(null)
14
+ </script>
15
+
16
+ <template>
17
+ <div class="playground-container">
18
+ <h1>ComplexDatePicker Playground</h1>
19
+
20
+ <div class="demo-section">
21
+ <h2>Format standard (DD/MM/YYYY)</h2>
22
+ <ComplexDatePicker
23
+ v-model="standardDate"
24
+ placeholder="Date standard"
25
+ format="DD/MM/YYYY"
26
+ class="date-picker"
27
+ />
28
+ <div class="value-display">
29
+ Valeur: {{ standardDate || 'Non définie' }}
30
+ </div>
31
+ </div>
32
+
33
+ <div class="demo-section">
34
+ <h2>Format américain (MM/DD/YYYY)</h2>
35
+ <ComplexDatePicker
36
+ v-model="americanDate"
37
+ placeholder="Date américaine"
38
+ format="MM/DD/YYYY"
39
+ class="date-picker"
40
+ />
41
+ <div class="value-display">
42
+ Valeur: {{ americanDate || 'Non définie' }}
43
+ </div>
44
+ </div>
45
+
46
+ <div class="demo-section">
47
+ <h2>Format ISO (YYYY-MM-DD)</h2>
48
+ <ComplexDatePicker
49
+ v-model="isoDate"
50
+ placeholder="Date ISO"
51
+ format="YYYY-MM-DD"
52
+ class="date-picker"
53
+ />
54
+ <div class="value-display">
55
+ Valeur: {{ isoDate || 'Non définie' }}
56
+ </div>
57
+ </div>
58
+
59
+ <div class="demo-section">
60
+ <h2>Format avec séparateur point (DD.MM.YYYY)</h2>
61
+ <ComplexDatePicker
62
+ v-model="dotDate"
63
+ placeholder="Date avec points"
64
+ format="DD.MM.YYYY"
65
+ class="date-picker"
66
+ />
67
+ <div class="value-display">
68
+ Valeur: {{ dotDate || 'Non définie' }}
69
+ </div>
70
+ </div>
71
+
72
+ <div class="demo-section">
73
+ <h2>Champ requis</h2>
74
+ <ComplexDatePicker
75
+ v-model="requiredDate"
76
+ placeholder="Date requise"
77
+ format="DD/MM/YYYY"
78
+ required
79
+ class="date-picker"
80
+ />
81
+ <div class="value-display">
82
+ Valeur: {{ requiredDate || 'Non définie' }}
83
+ </div>
84
+ </div>
85
+
86
+ <div class="demo-section">
87
+ <h2>Plage de dates</h2>
88
+ <ComplexDatePicker
89
+ v-model="dateRange"
90
+ placeholder="Plage de dates"
91
+ format="DD/MM/YYYY"
92
+ display-range
93
+ class="date-picker"
94
+ />
95
+ <div class="value-display">
96
+ Valeur: {{ dateRange ? JSON.stringify(dateRange) : 'Non définie' }}
97
+ </div>
98
+ </div>
99
+
100
+ <div class="demo-section">
101
+ <h2>Date de naissance (année d'abord)</h2>
102
+ <ComplexDatePicker
103
+ v-model="birthDate"
104
+ placeholder="Date de naissance"
105
+ format="DD/MM/YYYY"
106
+ is-birth-date
107
+ class="date-picker"
108
+ />
109
+ <div class="value-display">
110
+ Valeur: {{ birthDate || 'Non définie' }}
111
+ </div>
112
+ </div>
113
+
114
+ <div class="demo-section">
115
+ <h2>Format d'affichage vs format de retour</h2>
116
+ <ComplexDatePicker
117
+ v-model="formattedDate"
118
+ placeholder="Date avec format de retour"
119
+ format="DD/MM/YYYY"
120
+ date-format-return="YYYY-MM-DD"
121
+ class="date-picker"
122
+ />
123
+ <div class="value-display">
124
+ Valeur: {{ formattedDate || 'Non définie' }}
125
+ </div>
126
+ </div>
127
+ </div>
128
+ </template>
129
+
130
+ <style lang="scss" scoped>
131
+ .playground-container {
132
+ max-width: 800px;
133
+ margin: 0 auto;
134
+ padding: 20px;
135
+ font-family: Roboto, sans-serif;
136
+ }
137
+
138
+ h1 {
139
+ text-align: center;
140
+ margin-bottom: 30px;
141
+ color: #2c3e50;
142
+ }
143
+
144
+ h2 {
145
+ color: #2c3e50;
146
+ font-size: 1.2rem;
147
+ margin-bottom: 10px;
148
+ }
149
+
150
+ .demo-section {
151
+ margin-bottom: 30px;
152
+ padding: 20px;
153
+ border-radius: 8px;
154
+ background-color: #f8f9fa;
155
+ box-shadow: 0 2px 4px rgb(0 0 0 / 10%);
156
+ }
157
+
158
+ .date-picker {
159
+ margin-bottom: 10px;
160
+ width: 100%;
161
+ }
162
+
163
+ .value-display {
164
+ margin-top: 10px;
165
+ padding: 10px;
166
+ background-color: #e9ecef;
167
+ border-radius: 4px;
168
+ font-family: monospace;
169
+ white-space: pre-wrap;
170
+ word-break: break-all;
171
+ }
172
+ </style>
@@ -0,0 +1,130 @@
1
+ <script lang="ts" setup>
2
+ import { ref, computed } from 'vue'
3
+ import { useFieldValidation } from '@/composables/rules/useFieldValidation'
4
+ import { useHolidayDay } from '@/composables/date/useHolidayDay'
5
+
6
+ const selectedDate = ref('')
7
+ const { generateRules } = useFieldValidation()
8
+ const { isHolidayDay, getJoursFeries } = useHolidayDay()
9
+
10
+ // Année courante pour afficher les jours fériés
11
+ const currentYear = new Date().getFullYear()
12
+
13
+ // Création de la règle qui vérifie qu'une date n'est pas un jour férié
14
+ const holidayRules = generateRules([
15
+ {
16
+ type: 'isHolidayDay',
17
+ options: {
18
+ fieldName: 'La date',
19
+ message: 'Vous ne pouvez pas sélectionner un jour férié.',
20
+ },
21
+ },
22
+ ])
23
+
24
+ // Vérification si la date sélectionnée est un jour férié (pour l'affichage)
25
+ const isDateHoliday = computed(() => {
26
+ if (!selectedDate.value) return false
27
+ return isHolidayDay(selectedDate.value)
28
+ })
29
+
30
+ // Liste des jours fériés de l'année courante
31
+ const currentYearHolidays = computed(() => {
32
+ const holidays = getJoursFeries(currentYear)
33
+ return Array.from(holidays).sort()
34
+ })
35
+ </script>
36
+
37
+ <template>
38
+ <div class="date-picker-holiday-example">
39
+ <h2>DatePicker avec règle de validation pour jours fériés</h2>
40
+ <p>
41
+ Cet exemple montre comment utiliser la règle <code>isHolidayDay</code> pour empêcher
42
+ la sélection de jours fériés dans un DatePicker.
43
+ </p>
44
+
45
+ <div class="date-picker-container">
46
+ <DatePicker
47
+ v-model="selectedDate"
48
+ label="Date (pas de jour férié)"
49
+ :rules="holidayRules"
50
+ error-messages
51
+ placeholder="Sélectionnez une date non fériée"
52
+ />
53
+ </div>
54
+
55
+ <div class="info-container mt-4">
56
+ <h3>Informations</h3>
57
+ <p>Date sélectionnée : <strong>{{ selectedDate || 'Aucune' }}</strong></p>
58
+
59
+ <div
60
+ v-if="selectedDate"
61
+ class="mt-2"
62
+ >
63
+ <p
64
+ v-if="isDateHoliday"
65
+ class="error-text"
66
+ >
67
+ ⚠️ Le {{ selectedDate }} est un jour férié.
68
+ </p>
69
+ <p
70
+ v-else
71
+ class="success-text"
72
+ >
73
+ ✅ Le {{ selectedDate }} n'est pas un jour férié.
74
+ </p>
75
+ </div>
76
+
77
+ <div
78
+ v-if="currentYearHolidays.length"
79
+ class="holiday-list mt-4"
80
+ >
81
+ <h4>Jours fériés {{ currentYear }} :</h4>
82
+ <ul>
83
+ <li
84
+ v-for="(date, index) in currentYearHolidays"
85
+ :key="index"
86
+ >
87
+ {{ date }}
88
+ </li>
89
+ </ul>
90
+ </div>
91
+ </div>
92
+ </div>
93
+ </template>
94
+
95
+ <style scoped>
96
+ .date-picker-holiday-example {
97
+ max-width: 800px;
98
+ margin: 0 auto;
99
+ padding: 20px;
100
+ }
101
+
102
+ .date-picker-container {
103
+ max-width: 400px;
104
+ }
105
+
106
+ .info-container {
107
+ background-color: #f5f5f5;
108
+ padding: 15px;
109
+ border-radius: 4px;
110
+ }
111
+
112
+ .error-text {
113
+ color: #d32f2f;
114
+ font-weight: bold;
115
+ }
116
+
117
+ .success-text {
118
+ color: #2e7d32;
119
+ font-weight: bold;
120
+ }
121
+
122
+ .holiday-list {
123
+ max-height: 200px;
124
+ overflow-y: auto;
125
+ background-color: #fff;
126
+ padding: 10px;
127
+ border-radius: 4px;
128
+ border: 1px solid #e0e0e0;
129
+ }
130
+ </style>
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Types pour les composants DatePicker
3
+ */
4
+
5
+ /**
6
+ * Type représentant une valeur de date qui peut être une Date, un tableau de Dates ou null
7
+ * Utilisé pour les opérations internes du DatePicker avec des objets Date
8
+ */
9
+ export type DateObjectValue = Date | (Date | null)[] | null
10
+
11
+ /**
12
+ * Alias pour maintenir la compatibilité avec le code existant
13
+ * @deprecated Utilisez DateObjectValue pour les objets Date ou importez DateValue depuis useDateInitializationDayjs pour les chaînes
14
+ */
15
+ export type DateValue = DateObjectValue
@@ -0,0 +1,104 @@
1
+ import {Controls, Canvas, Meta, Source} from '@storybook/blocks';
2
+
3
+ import * as DiacriticPickerStories from './DiacriticPicker.stories';
4
+
5
+ <Meta of={DiacriticPickerStories} />
6
+
7
+ # DiacriticPicker
8
+
9
+ Le composant `DiacriticPicker` permet d'ajouter facilement des caractères diacritiques (accents, cédilles, etc.) à un champ de texte ou un textarea. Il ajoute un bouton à côté du champ qui ouvre une boîte de dialogue avec des caractères diacritiques à insérer.
10
+
11
+ <Canvas of={DiacriticPickerStories.Default} />
12
+
13
+ # API
14
+
15
+ <Controls of={DiacriticPickerStories.Default} />
16
+
17
+ ## Fonctionnalités
18
+
19
+ ### Insertion de caractères
20
+ Cliquer sur un caractère dans la boîte de dialogue l'insère à la position actuelle du curseur dans le champ de texte.
21
+
22
+ ### Raccourci clavier
23
+ Le composant offre un raccourci clavier pour changer rapidement entre les variantes d'un même caractère :
24
+ - Tapez un caractère (par exemple "e")
25
+ - Appuyez sur la touche `=` pour parcourir ses variantes diacritiques (é, è, ê, ë)
26
+
27
+ ## Personnalisation
28
+
29
+ Le composant utilise le système de personnalisation Vuetify pour les éléments suivants :
30
+ - `btn` : Style du bouton d'ouverture
31
+ - `dialog` : Style de la boîte de dialogue
32
+
33
+ # Exemple d'utilisation
34
+
35
+ <Source dark code={`
36
+ <script setup>
37
+ import { DiacriticPicker } from '@cnamts/synapse'
38
+ import { ref } from 'vue'
39
+
40
+ const nom = ref('')
41
+ </script>
42
+
43
+ <template>
44
+ <DiacriticPicker v-model="nom">
45
+ <v-text-field
46
+ id="diacritic-input"
47
+ v-model="nom"
48
+ label="Nom avec accents"
49
+ color="primary"
50
+ variant="outlined"
51
+ />
52
+ </DiacriticPicker>
53
+ </template>
54
+ `} />
55
+
56
+ ## Utilisation avec un textarea
57
+
58
+ Le composant fonctionne également avec un textarea pour les textes plus longs.
59
+
60
+ <Source dark code={`
61
+ <script setup>
62
+ import { DiacriticPicker } from '@cnamts/synapse'
63
+ import { ref } from 'vue'
64
+
65
+ const adresse = ref('')
66
+ </script>
67
+
68
+ <template>
69
+ <DiacriticPicker v-model="adresse">
70
+ <v-textarea
71
+ id="diacritic-input"
72
+ v-model="adresse"
73
+ label="Adresse"
74
+ color="primary"
75
+ variant="outlined"
76
+ auto-grow
77
+ />
78
+ </DiacriticPicker>
79
+ </template>
80
+ `} />
81
+
82
+ ## Personnalisation des caractères diacritiques
83
+
84
+ Vous pouvez personnaliser la liste des caractères diacritiques affichés dans la boîte de dialogue.
85
+
86
+ <Source dark code={`
87
+ <script setup>
88
+ import { DiacriticPicker } from '@cnamts/synapse'
89
+ import { ref } from 'vue'
90
+
91
+ const text = ref('')
92
+ const caracteres = ['é', 'è', 'ê', 'à', 'ç', 'ù']
93
+ </script>
94
+
95
+ <template>
96
+ <DiacriticPicker v-model="text" :diacritics="caracteres">
97
+ <v-text-field
98
+ v-model="text"
99
+ label="Texte avec accents personnalisés"
100
+ variant="outlined"
101
+ />
102
+ </DiacriticPicker>
103
+ </template>
104
+ `} />