@cnamts/synapse 1.0.0 → 1.0.2

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 (533) hide show
  1. package/README.md +1 -1
  2. package/dist/DateFilter-YWOTbfeL.js +98 -0
  3. package/dist/NumberFilter-DMmMgALM.js +121 -0
  4. package/dist/PeriodFilter-Bok5BHcn.js +112 -0
  5. package/dist/SelectFilter-BKud2WhN.js +136 -0
  6. package/dist/TextFilter-DvMf2thH.js +114 -0
  7. package/dist/{components/BackBtn → common}/constants/ExpertiseLevelEnum.d.ts +3 -0
  8. package/dist/components/Accordion/Accordion.d.ts +2 -1
  9. package/dist/components/Accordion/composables/useAccordionGroupCommunication.d.ts +5 -0
  10. package/dist/components/Accordion/composables/useAccordionKeyboardNavigation.d.ts +12 -0
  11. package/dist/components/Accordion/composables/useAccordionState.d.ts +13 -0
  12. package/dist/components/BackBtn/AccessibiliteItems.d.ts +1 -1
  13. package/dist/components/BackToTopBtn/AccessibiliteItems.d.ts +1 -1
  14. package/dist/components/ChipList/AccessibiliteItems.d.ts +1 -1
  15. package/dist/components/CollapsibleList/AccessibiliteItems.d.ts +1 -1
  16. package/dist/components/ContextualMenu/AccessibiliteItems.d.ts +1 -1
  17. package/dist/components/CookieBanner/AccessibiliteItems.d.ts +1 -1
  18. package/dist/components/CopyBtn/AccessibiliteItems.d.ts +1 -1
  19. package/dist/components/Customs/SyBtnSelect/AccessibiliteItems.d.ts +1 -1
  20. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +85 -0
  21. package/dist/components/Customs/SyInputSelect/AccessibiliteItems.d.ts +1 -1
  22. package/dist/components/Customs/SyInputSelect/SyInputSelect.d.ts +2 -0
  23. package/dist/components/Customs/SySelect/AccessibiliteItems.d.ts +1 -1
  24. package/dist/components/Customs/SySelect/SySelect.d.ts +33 -13
  25. package/dist/components/Customs/SyTextField/AccessibiliteItems.d.ts +1 -1
  26. package/dist/components/Customs/SyTextField/SyTextField.d.ts +2 -2
  27. package/dist/components/DataList/AccessibiliteItems.d.ts +1 -1
  28. package/dist/components/DataListGroup/AccessibiliteItems.d.ts +1 -1
  29. package/dist/components/DatePicker/AccessibiliteItems.d.ts +1 -1
  30. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +4295 -0
  31. package/dist/components/DatePicker/{DatePicker.d.ts → DatePicker/DatePicker.d.ts} +158 -104
  32. package/dist/components/DatePicker/{DateTextInput.d.ts → DateTextInput/DateTextInput.d.ts} +35 -27
  33. package/dist/components/DatePicker/composables/index.d.ts +17 -0
  34. package/dist/components/DatePicker/composables/useAsteriskDisplay.d.ts +14 -0
  35. package/dist/components/DatePicker/composables/useDateAutoClamp.d.ts +16 -0
  36. package/dist/components/DatePicker/composables/useDateFormatValidation.d.ts +25 -0
  37. package/dist/components/DatePicker/composables/useDateInputEditing.d.ts +33 -0
  38. package/dist/components/DatePicker/composables/useDatePickerViewMode.d.ts +16 -0
  39. package/dist/components/DatePicker/composables/useDatePickerVisibility.d.ts +27 -0
  40. package/dist/components/DatePicker/composables/useDateRangeInput.d.ts +29 -0
  41. package/dist/components/DatePicker/composables/useDateRangeValidation.d.ts +11 -0
  42. package/dist/components/DatePicker/composables/useDateSelection.d.ts +10 -0
  43. package/dist/components/DatePicker/composables/useDateValidation.d.ts +35 -0
  44. package/dist/components/DatePicker/composables/useDisplayedDateString.d.ts +19 -0
  45. package/dist/components/DatePicker/composables/useIconState.d.ts +17 -0
  46. package/dist/components/DatePicker/composables/useInputBlurHandler.d.ts +31 -0
  47. package/dist/components/DatePicker/composables/useInputHandler.d.ts +32 -0
  48. package/dist/components/DatePicker/composables/useManualDateValidation.d.ts +33 -0
  49. package/dist/components/DatePicker/composables/useMonthButtonCustomization.d.ts +12 -0
  50. package/dist/components/DatePicker/composables/useTodayButton.d.ts +16 -0
  51. package/dist/components/DatePicker/composables/useWeekendDays.d.ts +11 -0
  52. package/dist/components/DatePicker/constants/messages.d.ts +29 -0
  53. package/dist/components/DatePicker/types.d.ts +13 -0
  54. package/dist/components/DialogBox/AccessibiliteItems.d.ts +1 -1
  55. package/dist/components/DownloadBtn/AccessibiliteItems.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/FranceConnectBtn/AccessibiliteItems.d.ts +1 -1
  66. package/dist/components/HeaderBar/AccessibiliteItems.d.ts +1 -1
  67. package/dist/components/HeaderBar/HeaderBurgerMenu/AccessibiliteItems.d.ts +1 -1
  68. package/dist/components/HeaderLoading/AccessibiliteItems.d.ts +1 -1
  69. package/dist/components/HeaderToolbar/AccessibiliteItems.d.ts +1 -1
  70. package/dist/components/LangBtn/AccessibiliteItems.d.ts +1 -1
  71. package/dist/components/Logo/AccessibiliteItems.d.ts +1 -1
  72. package/dist/components/LogoBrandSection/AccessibiliteItems.d.ts +1 -1
  73. package/dist/components/MaintenancePage/AccessibiliteItems.d.ts +1 -1
  74. package/dist/components/NirField/AccessibiliteItems.d.ts +1 -1
  75. package/dist/components/NirField/NirField.d.ts +7 -3
  76. package/dist/components/NirField/nirValidation.d.ts +1 -1
  77. package/dist/components/NotFoundPage/AccessibiliteItems.d.ts +1 -1
  78. package/dist/components/NotificationBar/AccessibiliteItems.d.ts +1 -1
  79. package/dist/components/PageContainer/AccessibiliteItems.d.ts +1 -1
  80. package/dist/components/PaginatedTable/AccessibiliteItems.d.ts +1 -1
  81. package/dist/components/PasswordField/AccessibiliteItems.d.ts +1 -1
  82. package/dist/components/PasswordField/PasswordField.d.ts +2 -0
  83. package/dist/components/PeriodField/AccessibiliteItems.d.ts +1 -1
  84. package/dist/components/PeriodField/PeriodField.d.ts +219 -41
  85. package/dist/components/PhoneField/AccessibiliteItems.d.ts +1 -1
  86. package/dist/components/PhoneField/PhoneField.d.ts +2 -2
  87. package/dist/components/RangeField/AccessibiliteItems.d.ts +1 -1
  88. package/dist/components/RangeField/RangeField.d.ts +2 -0
  89. package/dist/components/RatingPicker/AccessibiliteItems.d.ts +1 -1
  90. package/dist/components/SearchListField/AccessibiliteItems.d.ts +1 -1
  91. package/dist/components/SearchListField/SearchListField.d.ts +9 -0
  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 +2 -0
  98. package/dist/components/TableToolbar/AccessibiliteItems.d.ts +1 -1
  99. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +652 -0
  100. package/dist/components/Tables/SyTable/SyTable.d.ts +671 -0
  101. package/dist/components/Tables/common/SyTableFilter.d.ts +126 -0
  102. package/dist/components/Tables/common/SyTablePagination.d.ts +1636 -0
  103. package/dist/components/Tables/common/TableHeader.d.ts +15 -0
  104. package/dist/components/Tables/common/constants/StateEnum.d.ts +6 -0
  105. package/dist/components/Tables/common/filters/DateFilter.d.ts +121 -0
  106. package/dist/components/Tables/common/filters/NumberFilter.d.ts +132 -0
  107. package/dist/components/Tables/common/filters/PeriodFilter.d.ts +135 -0
  108. package/dist/components/Tables/common/filters/SelectFilter.d.ts +120 -0
  109. package/dist/components/Tables/common/filters/TextFilter.d.ts +132 -0
  110. package/dist/components/Tables/common/filters/getFilterComponent.d.ts +1 -0
  111. package/dist/components/Tables/common/filters/locales.d.ts +4 -0
  112. package/dist/components/Tables/common/filters/logics/date.d.ts +1 -0
  113. package/dist/components/Tables/common/filters/logics/number.d.ts +1 -0
  114. package/dist/components/Tables/common/filters/logics/period.d.ts +1 -0
  115. package/dist/components/Tables/common/filters/logics/select.d.ts +1 -0
  116. package/dist/components/Tables/common/filters/logics/text.d.ts +1 -0
  117. package/dist/components/Tables/common/formatters.d.ts +17 -0
  118. package/dist/components/Tables/common/locales.d.ts +28 -0
  119. package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +267 -0
  120. package/dist/components/Tables/common/organizeColumns/sortHeaders.d.ts +2 -0
  121. package/dist/components/Tables/common/tableAccessibilityUtils.d.ts +8 -0
  122. package/dist/components/Tables/common/tableFilterUtils.d.ts +3 -0
  123. package/dist/components/Tables/common/tableStorageUtils.d.ts +69 -0
  124. package/dist/components/Tables/common/tableUtils.d.ts +79 -0
  125. package/dist/components/Tables/common/types.d.ts +91 -0
  126. package/dist/components/Tables/common/usePagination.d.ts +22 -0
  127. package/dist/components/Tables/common/useTableCheckbox.d.ts +20 -0
  128. package/dist/components/Tables/common/useTableFilter.d.ts +9 -0
  129. package/dist/components/Tables/common/useTableHeaders.d.ts +76 -0
  130. package/dist/components/Tables/common/useTableItems.d.ts +24 -0
  131. package/dist/components/Tables/common/useTableOptions.d.ts +18 -0
  132. package/dist/components/Tables/index.d.ts +2 -0
  133. package/dist/components/ToolbarContainer/ToolbarContainer.d.ts +11 -0
  134. package/dist/components/UploadWorkflow/AccessibiliteItems.d.ts +1 -1
  135. package/dist/components/UserMenuBtn/AccessibiliteItems.d.ts +1 -1
  136. package/dist/components/UserMenuBtn/UserMenuBtn.d.ts +9 -2
  137. package/dist/components/index.d.ts +9 -5
  138. package/dist/design-system-v3.js +102 -11944
  139. package/dist/design-system-v3.umd.cjs +22 -4
  140. package/dist/designTokens/index.d.ts +3 -1
  141. package/dist/designTokens/tokens/cnam/cnamFonts.d.ts +140 -0
  142. package/dist/designTokens/tokens/pa/paFonts.d.ts +140 -0
  143. package/dist/designTokens/utils/createFontVariables.d.ts +39 -0
  144. package/dist/designTokens/utils/index.d.ts +2 -1
  145. package/dist/main-Cx8qG7YR.js +16344 -0
  146. package/dist/stories/Accessibilite/Vuetify/VuetifyItems.d.ts +14 -2
  147. package/dist/stories/DesignTokens/StylesTypographiques.stories.new.d.ts +8 -0
  148. package/dist/stories/DesignTokens/TypographyDisplay.d.ts +28 -0
  149. package/dist/stories/DesignTokens/vue-shims.d.ts +6 -0
  150. package/dist/style.css +1 -1
  151. package/dist/utils/rules/isRequired/index.d.ts +1 -1
  152. package/dist/vite-env.d.ts +12 -0
  153. package/package.json +3 -3
  154. package/src/assets/_spacers.scss +37 -1
  155. package/src/assets/_typography.scss +158 -0
  156. package/src/assets/settings.scss +7 -0
  157. package/src/common/constants/ExpertiseLevelEnum.ts +7 -0
  158. package/src/common/imgs/accessibility-svgrepo-com.svg +4 -0
  159. package/src/components/Accordion/Accessibilite/AccessibilityGuide.mdx +249 -0
  160. package/src/components/Accordion/Accordion.vue +48 -76
  161. package/src/components/Accordion/composables/__tests__/useAccordionGroupCommunication.spec.ts +146 -0
  162. package/src/components/Accordion/composables/__tests__/useAccordionKeyboardNavigation.spec.ts +209 -0
  163. package/src/components/Accordion/composables/__tests__/useAccordionState.spec.ts +144 -0
  164. package/src/components/Accordion/composables/useAccordionGroupCommunication.ts +52 -0
  165. package/src/components/Accordion/composables/useAccordionKeyboardNavigation.ts +111 -0
  166. package/src/components/Accordion/composables/useAccordionState.ts +59 -0
  167. package/src/components/Accordion/tests/__snapshots__/accordion.spec.ts.snap +3 -0
  168. package/src/components/BackBtn/AccessibiliteItems.ts +1 -1
  169. package/src/components/BackToTopBtn/AccessibiliteItems.ts +1 -1
  170. package/src/components/ChipList/AccessibiliteItems.ts +1 -1
  171. package/src/components/CollapsibleList/AccessibiliteItems.ts +1 -1
  172. package/src/components/ContextualMenu/AccessibiliteItems.ts +1 -1
  173. package/src/components/CookieBanner/AccessibiliteItems.ts +1 -1
  174. package/src/components/CopyBtn/AccessibiliteItems.ts +1 -1
  175. package/src/components/Customs/SyBtnSelect/AccessibiliteItems.ts +1 -1
  176. package/src/components/Customs/SyCheckbox/Accessibilite.mdx +303 -0
  177. package/src/components/Customs/SyCheckbox/SyCheckbox.mdx +50 -0
  178. package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +630 -0
  179. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +326 -0
  180. package/src/components/Customs/SyCheckbox/tests/SyCheckbox.spec.ts +201 -0
  181. package/src/components/Customs/SyInputSelect/AccessibiliteItems.ts +1 -1
  182. package/src/components/Customs/SyInputSelect/SyInputSelect.stories.ts +1 -0
  183. package/src/components/Customs/SyInputSelect/SyInputSelect.vue +8 -1
  184. package/src/components/Customs/SySelect/AccessibiliteItems.ts +1 -1
  185. package/src/components/Customs/SySelect/SySelect.stories.ts +160 -0
  186. package/src/components/Customs/SySelect/SySelect.vue +292 -39
  187. package/src/components/Customs/SySelect/tests/SySelect.spec.ts +234 -2
  188. package/src/components/Customs/SyTextField/AccessibiliteItems.ts +1 -1
  189. package/src/components/Customs/SyTextField/SyTextField.stories.ts +3 -2
  190. package/src/components/Customs/SyTextField/SyTextField.vue +19 -8
  191. package/src/components/DataList/AccessibiliteItems.ts +1 -1
  192. package/src/components/DataListGroup/AccessibiliteItems.ts +1 -1
  193. package/src/components/DatePicker/AccessibiliteItems.ts +1 -1
  194. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.mdx +212 -0
  195. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +1307 -0
  196. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +769 -204
  197. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.events.spec.ts +161 -0
  198. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +943 -0
  199. package/src/components/DatePicker/DatePicker/DatePicker.mdx +176 -0
  200. package/src/components/DatePicker/{DatePicker.stories.ts → DatePicker/DatePicker.stories.ts} +356 -519
  201. package/src/components/DatePicker/{DatePicker.vue → DatePicker/DatePicker.vue} +435 -89
  202. package/src/components/DatePicker/DatePicker/tests/DatePicker.events.spec.ts +189 -0
  203. package/src/components/DatePicker/{tests → DatePicker/tests}/DatePicker.spec.ts +0 -14
  204. package/src/components/DatePicker/DatePickerOverview.mdx +227 -0
  205. package/src/components/DatePicker/{DatePickerValidation.mdx → DatePickerValidationExample/DatePickerValidation.mdx} +3 -3
  206. package/src/components/DatePicker/{DatePickerValidation.stories.ts → DatePickerValidationExample/DatePickerValidation.stories.ts} +2 -2
  207. package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +320 -0
  208. package/src/components/DatePicker/DateTextInput/DateTextInput.events.spec.ts +148 -0
  209. package/src/components/DatePicker/DateTextInput/DateTextInput.range.spec.ts +278 -0
  210. package/src/components/DatePicker/{tests → DateTextInput}/DateTextInput.spec.ts +10 -7
  211. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +1111 -0
  212. package/src/components/DatePicker/DateTextInput/NoCalendar.mdx +64 -0
  213. package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +782 -0
  214. package/src/components/DatePicker/composables/index.ts +24 -0
  215. package/src/components/DatePicker/composables/tests/useDateAutoClamp.spec.ts +190 -0
  216. package/src/components/DatePicker/composables/tests/useDateFormatValidation.spec.ts +165 -0
  217. package/src/components/DatePicker/composables/tests/useDateInputEditing.spec.ts +359 -0
  218. package/src/components/DatePicker/composables/tests/useDatePickerViewMode.spec.ts +160 -0
  219. package/src/components/DatePicker/composables/tests/useDatePickerVisibility.spec.ts +339 -0
  220. package/src/components/DatePicker/composables/tests/useDateRangeInput.spec.ts +277 -0
  221. package/src/components/DatePicker/composables/tests/useDateRangeValidation.spec.ts +107 -0
  222. package/src/components/DatePicker/composables/tests/useDateSelection.spec.ts +171 -0
  223. package/src/components/DatePicker/composables/tests/useDateValidation.spec.ts +245 -0
  224. package/src/components/DatePicker/composables/tests/useDisplayedDateString.spec.ts +98 -0
  225. package/src/components/DatePicker/composables/tests/useIconState.spec.ts +130 -0
  226. package/src/components/DatePicker/composables/tests/useInputBlurHandler.spec.ts +456 -0
  227. package/src/components/DatePicker/composables/tests/useManualDateValidation.spec.ts +233 -0
  228. package/src/components/DatePicker/composables/tests/useMonthButtonCustomization.spec.ts +125 -0
  229. package/src/components/DatePicker/composables/tests/useTodayButton.spec.ts +97 -0
  230. package/src/components/DatePicker/composables/tests/useWeekendDays.spec.ts +28 -0
  231. package/src/components/DatePicker/composables/useAsteriskDisplay.ts +31 -0
  232. package/src/components/DatePicker/composables/useDateAutoClamp.ts +136 -0
  233. package/src/components/DatePicker/composables/useDateFormatValidation.ts +95 -0
  234. package/src/components/DatePicker/composables/useDateInputEditing.ts +326 -0
  235. package/src/components/DatePicker/composables/useDatePickerViewMode.ts +61 -0
  236. package/src/components/DatePicker/composables/useDatePickerVisibility.ts +146 -0
  237. package/src/components/DatePicker/composables/useDateRangeInput.ts +378 -0
  238. package/src/components/DatePicker/composables/useDateRangeValidation.ts +48 -0
  239. package/src/components/DatePicker/composables/useDateSelection.ts +121 -0
  240. package/src/components/DatePicker/composables/useDateValidation.ts +225 -0
  241. package/src/components/DatePicker/composables/useDisplayedDateString.ts +70 -0
  242. package/src/components/DatePicker/composables/useIconState.ts +53 -0
  243. package/src/components/DatePicker/composables/useInputBlurHandler.ts +165 -0
  244. package/src/components/DatePicker/composables/useInputHandler.ts +436 -0
  245. package/src/components/DatePicker/composables/useManualDateValidation.ts +161 -0
  246. package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +187 -0
  247. package/src/components/DatePicker/composables/useTodayButton.ts +43 -0
  248. package/src/components/DatePicker/composables/useWeekendDays.ts +21 -0
  249. package/src/components/DatePicker/constants/messages.ts +50 -0
  250. package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +4 -4
  251. package/src/components/DatePicker/docExamples/DatePickerValidationExamples.vue +1 -1
  252. package/src/components/DatePicker/playground/ComplexDatePickerPlayground.vue +172 -0
  253. package/src/components/DatePicker/types.ts +15 -0
  254. package/src/components/DiacriticPicker/DiacriticPicker.stories.ts +10 -0
  255. package/src/components/DialogBox/AccessibiliteItems.ts +1 -1
  256. package/src/components/DownloadBtn/AccessibiliteItems.ts +1 -1
  257. package/src/components/ErrorPage/Accessibilite.stories.ts +8 -0
  258. package/src/components/ErrorPage/AccessibiliteItems.ts +1 -1
  259. package/src/components/ErrorPage/ErrorPage.vue +12 -6
  260. package/src/components/ErrorPage/tests/__snapshots__/ErrorPage.spec.ts.snap +4 -4
  261. package/src/components/ExternalLinks/AccessibiliteItems.ts +1 -1
  262. package/src/components/FileList/AccessibiliteItems.ts +1 -1
  263. package/src/components/FilePreview/AccessibiliteItems.ts +1 -1
  264. package/src/components/FileUpload/AccessibiliteItems.ts +1 -1
  265. package/src/components/FilterInline/AccessibiliteItems.ts +1 -1
  266. package/src/components/FilterSideBar/AccessibiliteItems.ts +1 -1
  267. package/src/components/FilterSideBar/FilterSideBar.vue +108 -90
  268. package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +27 -0
  269. package/src/components/FilterSideBar/tests/__snapshots__/FilterSideBar.spec.ts.snap +114 -109
  270. package/src/components/FooterBar/AccessibiliteItems.ts +1 -1
  271. package/src/components/FooterBar/FooterBar.vue +2 -1
  272. package/src/components/FranceConnectBtn/AccessibiliteItems.ts +1 -1
  273. package/src/components/HeaderBar/AccessibiliteItems.ts +1 -1
  274. package/src/components/HeaderBar/HeaderBurgerMenu/AccessibiliteItems.ts +1 -1
  275. package/src/components/HeaderLoading/AccessibiliteItems.ts +1 -1
  276. package/src/components/HeaderToolbar/AccessibiliteItems.ts +1 -1
  277. package/src/components/LangBtn/AccessibiliteItems.ts +1 -1
  278. package/src/components/Logo/Accessibilite.stories.ts +4 -0
  279. package/src/components/Logo/AccessibiliteItems.ts +1 -1
  280. package/src/components/LogoBrandSection/AccessibiliteItems.ts +1 -1
  281. package/src/components/MaintenancePage/AccessibiliteItems.ts +1 -1
  282. package/src/components/NirField/AccessibiliteItems.ts +1 -1
  283. package/src/components/NirField/NirField.mdx +22 -9
  284. package/src/components/NirField/NirField.stories.ts +26 -2
  285. package/src/components/NirField/NirField.vue +209 -22
  286. package/src/components/NirField/nirValidation.ts +17 -3
  287. package/src/components/NirField/tests/NirField.spec.ts +2 -2
  288. package/src/components/NotFoundPage/Accessibilite.stories.ts +8 -0
  289. package/src/components/NotFoundPage/AccessibiliteItems.ts +1 -1
  290. package/src/components/NotFoundPage/NotFoundPage.vue +2 -1
  291. package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +8 -6
  292. package/src/components/NotificationBar/AccessibiliteItems.ts +1 -1
  293. package/src/components/PageContainer/AccessibiliteItems.ts +1 -1
  294. package/src/components/PaginatedTable/AccessibiliteItems.ts +1 -1
  295. package/src/components/PaginatedTable/PaginatedTable.mdx +2 -0
  296. package/src/components/PaginatedTable/PaginatedTable.stories.ts +19 -0
  297. package/src/components/PaginatedTable/PaginatedTable.vue +51 -13
  298. package/src/components/PaginatedTable/tests/PaginatedTable.spec.ts +0 -2
  299. package/src/components/PasswordField/AccessibiliteItems.ts +1 -1
  300. package/src/components/PasswordField/PasswordField.stories.ts +4 -0
  301. package/src/components/PasswordField/PasswordField.vue +3 -0
  302. package/src/components/PeriodField/AccessibiliteItems.ts +1 -1
  303. package/src/components/PeriodField/PeriodField.vue +15 -1
  304. package/src/components/PhoneField/AccessibiliteItems.ts +1 -1
  305. package/src/components/PhoneField/PhoneField.stories.ts +15 -15
  306. package/src/components/PhoneField/PhoneField.vue +1 -1
  307. package/src/components/RangeField/AccessibiliteItems.ts +1 -1
  308. package/src/components/RangeField/RangeField.stories.ts +9 -0
  309. package/src/components/RangeField/RangeField.vue +4 -0
  310. package/src/components/RangeField/tests/__snapshots__/RangeField.spec.ts.snap +12 -0
  311. package/src/components/RatingPicker/AccessibiliteItems.ts +1 -1
  312. package/src/components/SearchListField/AccessibiliteItems.ts +1 -1
  313. package/src/components/SearchListField/SearchListField.vue +5 -0
  314. package/src/components/SelectBtnField/AccessibiliteItems.ts +1 -1
  315. package/src/components/SkipLink/AccessibiliteItems.ts +1 -1
  316. package/src/components/SocialMediaLinks/AccessibiliteItems.ts +1 -1
  317. package/src/components/SubHeader/AccessibiliteItems.ts +1 -1
  318. package/src/components/SyAlert/AccessibiliteItems.ts +1 -1
  319. package/src/components/SyTextArea/SyTextArea.vue +3 -0
  320. package/src/components/SyTextArea/tests/SyTextArea.spec.ts +0 -1
  321. package/src/components/TableToolbar/AccessibiliteItems.ts +1 -1
  322. package/src/components/TableToolbar/TableToolbar.stories.ts +110 -56
  323. package/src/components/Tables/SyServerTable/FilterRules.stories.ts +700 -0
  324. package/src/components/Tables/SyServerTable/SyServerTable.mdx +170 -0
  325. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +4354 -0
  326. package/src/components/Tables/SyServerTable/SyServerTable.vue +391 -0
  327. package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +702 -0
  328. package/src/components/Tables/SyTable/FilterRules.stories.ts +418 -0
  329. package/src/components/Tables/SyTable/SyTable.mdx +139 -0
  330. package/src/components/Tables/SyTable/SyTable.stories.ts +2754 -0
  331. package/src/components/Tables/SyTable/SyTable.vue +397 -0
  332. package/src/components/Tables/SyTable/tests/SyTable.spec.ts +707 -0
  333. package/src/components/Tables/common/SyTableFilter.vue +289 -0
  334. package/src/components/Tables/common/SyTablePagination.vue +375 -0
  335. package/src/components/Tables/common/TableHeader.vue +205 -0
  336. package/src/components/Tables/common/constants/StateEnum.ts +6 -0
  337. package/src/components/Tables/common/filters/DateFilter.vue +140 -0
  338. package/src/components/Tables/common/filters/NumberFilter.vue +234 -0
  339. package/src/components/Tables/common/filters/PeriodFilter.vue +147 -0
  340. package/src/components/Tables/common/filters/SelectFilter.vue +235 -0
  341. package/src/components/Tables/common/filters/TextFilter.vue +191 -0
  342. package/src/components/Tables/common/filters/getFilterComponent.ts +54 -0
  343. package/src/components/Tables/common/filters/locales.ts +4 -0
  344. package/src/components/Tables/common/filters/logics/date.ts +12 -0
  345. package/src/components/Tables/common/filters/logics/number.ts +48 -0
  346. package/src/components/Tables/common/filters/logics/period.ts +25 -0
  347. package/src/components/Tables/common/filters/logics/select.ts +27 -0
  348. package/src/components/Tables/common/filters/logics/tests/TextFilterLogic.spec.ts +177 -0
  349. package/src/components/Tables/common/filters/logics/text.ts +62 -0
  350. package/src/components/Tables/common/filters/tests/DateFilter.spec.ts +187 -0
  351. package/src/components/Tables/common/filters/tests/NumberFilter.spec.ts +280 -0
  352. package/src/components/Tables/common/filters/tests/PeriodFilter.spec.ts +192 -0
  353. package/src/components/Tables/common/filters/tests/SelectFilter.spec.ts +219 -0
  354. package/src/components/Tables/common/filters/tests/TextFilter.spec.ts +260 -0
  355. package/src/components/Tables/common/formatters.ts +72 -0
  356. package/src/components/Tables/common/locales.ts +31 -0
  357. package/src/components/Tables/common/organizeColumns/OrganizeColumns.vue +269 -0
  358. package/src/components/Tables/common/organizeColumns/sortHeaders.ts +9 -0
  359. package/src/components/Tables/common/tableAccessibilityUtils.ts +61 -0
  360. package/src/components/Tables/common/tableFilterUtils.ts +75 -0
  361. package/src/components/Tables/common/tableStorageUtils.ts +127 -0
  362. package/src/components/Tables/common/tableStyles.scss +80 -0
  363. package/src/components/Tables/common/tableUtils.ts +102 -0
  364. package/src/components/Tables/common/tests/SyTableFilter.spec.ts +312 -0
  365. package/src/components/Tables/common/tests/SyTablePagination.spec.ts +170 -0
  366. package/src/components/Tables/common/tests/filterByRange.spec.ts +215 -0
  367. package/src/components/Tables/common/tests/resize.spec.ts +161 -0
  368. package/src/components/Tables/common/tests/tableFilterUtils.spec.ts +92 -0
  369. package/src/components/Tables/common/tests/tableUtils.spec.ts +228 -0
  370. package/src/components/Tables/common/types.ts +92 -0
  371. package/src/components/Tables/common/usePagination.ts +83 -0
  372. package/src/components/Tables/common/useTableCheckbox.ts +58 -0
  373. package/src/components/Tables/common/useTableFilter.ts +19 -0
  374. package/src/components/Tables/common/useTableHeaders.ts +88 -0
  375. package/src/components/Tables/common/useTableItems.ts +87 -0
  376. package/src/components/Tables/common/useTableOptions.ts +93 -0
  377. package/src/components/Tables/index.ts +3 -0
  378. package/src/components/ToolbarContainer/ToolbarContainer.mdx +16 -0
  379. package/src/components/ToolbarContainer/ToolbarContainer.stories.ts +675 -0
  380. package/src/components/ToolbarContainer/ToolbarContainer.vue +128 -0
  381. package/src/components/ToolbarContainer/tests/ToolbarContainer.spec.ts +156 -0
  382. package/src/components/UploadWorkflow/AccessibiliteItems.ts +1 -1
  383. package/src/components/UserMenuBtn/AccessibiliteItems.ts +1 -1
  384. package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +74 -0
  385. package/src/components/UserMenuBtn/UserMenuBtn.vue +19 -17
  386. package/src/components/index.ts +9 -5
  387. package/src/composables/date/useDateFormatDayjs.ts +8 -3
  388. package/src/composables/date/useDateInitializationDayjs.ts +28 -36
  389. package/src/composables/rules/useFieldValidation.ts +1 -2
  390. package/src/designTokens/index.ts +4 -0
  391. package/src/designTokens/tokens/cnam/cnamFonts.ts +140 -0
  392. package/src/designTokens/tokens/pa/paFonts.ts +140 -0
  393. package/src/designTokens/utils/createFontVariables.ts +143 -0
  394. package/src/designTokens/utils/index.ts +2 -1
  395. package/src/stories/Accessibilite/Aculturation/AuditDesignSystem.mdx +293 -20
  396. package/src/stories/Accessibilite/Aculturation/SensibilisationAccessibilite.mdx +448 -54
  397. package/src/stories/Accessibilite/Audit/RGAA.mdx +231 -23
  398. package/src/stories/Accessibilite/Avancement/Avancement.mdx +591 -7
  399. package/src/stories/Accessibilite/Avancement/Avancement.stories.ts +139 -38
  400. package/src/stories/Accessibilite/Introduction.mdx +258 -18
  401. package/src/stories/Accessibilite/KitDePreAudit/Echantillonnage.mdx +221 -31
  402. package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +204 -22
  403. package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +537 -24
  404. package/src/stories/Accessibilite/KitDePreAudit/Outils/LecteursDEcran.mdx +577 -70
  405. package/src/stories/Accessibilite/KitDePreAudit/Outils/Tanaguru.mdx +382 -31
  406. package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +419 -81
  407. package/src/stories/Accessibilite/Vuetify/Vuetify.mdx +132 -6
  408. package/src/stories/Accessibilite/Vuetify/Vuetify.stories.ts +370 -146
  409. package/src/stories/Accessibilite/Vuetify/VuetifyItems.ts +35 -57
  410. package/src/stories/Demarrer/Accueil.stories.ts +32 -8
  411. package/src/stories/DesignTokens/StylesTypographiques.mdx +10 -9
  412. package/src/stories/DesignTokens/StylesTypographiques.stories.new.ts +397 -0
  413. package/src/stories/DesignTokens/StylesTypographiques.stories.ts +397 -0
  414. package/src/stories/DesignTokens/TypographyDisplay.vue +155 -0
  415. package/src/stories/DesignTokens/vue-shims.d.ts +6 -0
  416. package/src/stories/GuideDuDev/LesBreackingChanges.mdx +0 -2
  417. package/src/stories/GuideDuDev/MigrationDepuisBridge.mdx +1 -1
  418. package/src/stories/GuideDuDev/MigrationDepuisVue2.mdx +1 -1
  419. package/src/stories/GuideDuDev/PortailAgent.mdx +10 -0
  420. package/src/stories/GuideDuDev/PortailAgent.stories.ts +506 -0
  421. package/src/stories/GuideDuDev/Theme.mdx +41 -0
  422. package/src/utils/rules/isHolidayDay/IsHolidayDay.stories.ts +1 -1
  423. package/src/utils/rules/isRequired/index.ts +2 -1
  424. package/src/vite-env.d.ts +12 -0
  425. package/src/vuetifyConfig.ts +10 -3
  426. package/dist/components/BackToTopBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  427. package/dist/components/ChipList/constants/ExpertiseLevelEnum.d.ts +0 -4
  428. package/dist/components/CollapsibleList/constants/ExpertiseLevelEnum.d.ts +0 -4
  429. package/dist/components/ContextualMenu/constants/ExpertiseLevelEnum.d.ts +0 -4
  430. package/dist/components/CookieBanner/constants/ExpertiseLevelEnum.d.ts +0 -4
  431. package/dist/components/CopyBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  432. package/dist/components/Customs/SyBtnSelect/constants/ExpertiseLevelEnum.d.ts +0 -4
  433. package/dist/components/Customs/SyInputSelect/constants/ExpertiseLevelEnum.d.ts +0 -4
  434. package/dist/components/Customs/SySelect/constants/ExpertiseLevelEnum.d.ts +0 -4
  435. package/dist/components/Customs/SyTextField/constants/ExpertiseLevelEnum.d.ts +0 -4
  436. package/dist/components/DataList/constants/ExpertiseLevelEnum.d.ts +0 -4
  437. package/dist/components/DataListGroup/constants/ExpertiseLevelEnum.d.ts +0 -4
  438. package/dist/components/DatePicker/constants/ExpertiseLevelEnum.d.ts +0 -4
  439. package/dist/components/DialogBox/constants/ExpertiseLevelEnum.d.ts +0 -4
  440. package/dist/components/DownloadBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  441. package/dist/components/ErrorPage/constants/ExpertiseLevelEnum.d.ts +0 -4
  442. package/dist/components/ExternalLinks/constants/ExpertiseLevelEnum.d.ts +0 -4
  443. package/dist/components/FileList/constants/ExpertiseLevelEnum.d.ts +0 -4
  444. package/dist/components/FilePreview/constants/ExpertiseLevelEnum.d.ts +0 -4
  445. package/dist/components/FileUpload/constants/ExpertiseLevelEnum.d.ts +0 -4
  446. package/dist/components/FilterInline/constants/ExpertiseLevelEnum.d.ts +0 -4
  447. package/dist/components/FilterSideBar/constants/ExpertiseLevelEnum.d.ts +0 -4
  448. package/dist/components/FooterBar/constants/ExpertiseLevelEnum.d.ts +0 -4
  449. package/dist/components/FranceConnectBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  450. package/dist/components/HeaderBar/HeaderBurgerMenu/constants/ExpertiseLevelEnum.d.ts +0 -4
  451. package/dist/components/HeaderBar/constants/ExpertiseLevelEnum.d.ts +0 -4
  452. package/dist/components/HeaderLoading/constants/ExpertiseLevelEnum.d.ts +0 -4
  453. package/dist/components/HeaderToolbar/constants/ExpertiseLevelEnum.d.ts +0 -4
  454. package/dist/components/LangBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  455. package/dist/components/Logo/constants/ExpertiseLevelEnum.d.ts +0 -4
  456. package/dist/components/LogoBrandSection/constants/ExpertiseLevelEnum.d.ts +0 -4
  457. package/dist/components/MaintenancePage/constants/ExpertiseLevelEnum.d.ts +0 -4
  458. package/dist/components/NirField/constants/ExpertiseLevelEnum.d.ts +0 -4
  459. package/dist/components/NotFoundPage/constants/ExpertiseLevelEnum.d.ts +0 -4
  460. package/dist/components/NotificationBar/constants/ExpertiseLevelEnum.d.ts +0 -4
  461. package/dist/components/PageContainer/constants/ExpertiseLevelEnum.d.ts +0 -4
  462. package/dist/components/PaginatedTable/constants/ExpertiseLevelEnum.d.ts +0 -4
  463. package/dist/components/PasswordField/constants/ExpertiseLevelEnum.d.ts +0 -4
  464. package/dist/components/PeriodField/constants/ExpertiseLevelEnum.d.ts +0 -4
  465. package/dist/components/PhoneField/constants/ExpertiseLevelEnum.d.ts +0 -4
  466. package/dist/components/RangeField/constants/ExpertiseLevelEnum.d.ts +0 -4
  467. package/dist/components/RatingPicker/constants/ExpertiseLevelEnum.d.ts +0 -4
  468. package/dist/components/SearchListField/constants/ExpertiseLevelEnum.d.ts +0 -4
  469. package/dist/components/SelectBtnField/constants/ExpertiseLevelEnum.d.ts +0 -4
  470. package/dist/components/SkipLink/constants/ExpertiseLevelEnum.d.ts +0 -4
  471. package/dist/components/SocialMediaLinks/constants/ExpertiseLevelEnum.d.ts +0 -4
  472. package/dist/components/SubHeader/constants/ExpertiseLevelEnum.d.ts +0 -4
  473. package/dist/components/SyAlert/constants/ExpertiseLevelEnum.d.ts +0 -4
  474. package/dist/components/TableToolbar/constants/ExpertiseLevelEnum.d.ts +0 -4
  475. package/dist/components/UploadWorkflow/constants/ExpertiseLevelEnum.d.ts +0 -4
  476. package/dist/components/UserMenuBtn/constants/ExpertiseLevelEnum.d.ts +0 -4
  477. package/src/components/BackBtn/constants/ExpertiseLevelEnum.ts +0 -4
  478. package/src/components/BackToTopBtn/constants/ExpertiseLevelEnum.ts +0 -4
  479. package/src/components/ChipList/constants/ExpertiseLevelEnum.ts +0 -4
  480. package/src/components/CollapsibleList/constants/ExpertiseLevelEnum.ts +0 -4
  481. package/src/components/ContextualMenu/constants/ExpertiseLevelEnum.ts +0 -4
  482. package/src/components/CookieBanner/constants/ExpertiseLevelEnum.ts +0 -4
  483. package/src/components/CopyBtn/constants/ExpertiseLevelEnum.ts +0 -4
  484. package/src/components/Customs/SyBtnSelect/constants/ExpertiseLevelEnum.ts +0 -4
  485. package/src/components/Customs/SyInputSelect/constants/ExpertiseLevelEnum.ts +0 -4
  486. package/src/components/Customs/SySelect/constants/ExpertiseLevelEnum.ts +0 -4
  487. package/src/components/Customs/SyTextField/constants/ExpertiseLevelEnum.ts +0 -4
  488. package/src/components/DataList/constants/ExpertiseLevelEnum.ts +0 -4
  489. package/src/components/DataListGroup/constants/ExpertiseLevelEnum.ts +0 -4
  490. package/src/components/DatePicker/DatePicker.mdx +0 -222
  491. package/src/components/DatePicker/DateTextInput.vue +0 -504
  492. package/src/components/DatePicker/constants/ExpertiseLevelEnum.ts +0 -4
  493. package/src/components/DialogBox/constants/ExpertiseLevelEnum.ts +0 -4
  494. package/src/components/DownloadBtn/constants/ExpertiseLevelEnum.ts +0 -4
  495. package/src/components/ErrorPage/constants/ExpertiseLevelEnum.ts +0 -4
  496. package/src/components/ExternalLinks/constants/ExpertiseLevelEnum.ts +0 -4
  497. package/src/components/FileList/constants/ExpertiseLevelEnum.ts +0 -4
  498. package/src/components/FilePreview/constants/ExpertiseLevelEnum.ts +0 -4
  499. package/src/components/FileUpload/constants/ExpertiseLevelEnum.ts +0 -4
  500. package/src/components/FilterInline/constants/ExpertiseLevelEnum.ts +0 -4
  501. package/src/components/FilterSideBar/constants/ExpertiseLevelEnum.ts +0 -4
  502. package/src/components/FooterBar/constants/ExpertiseLevelEnum.ts +0 -4
  503. package/src/components/FranceConnectBtn/constants/ExpertiseLevelEnum.ts +0 -4
  504. package/src/components/HeaderBar/HeaderBurgerMenu/constants/ExpertiseLevelEnum.ts +0 -4
  505. package/src/components/HeaderBar/constants/ExpertiseLevelEnum.ts +0 -4
  506. package/src/components/HeaderLoading/constants/ExpertiseLevelEnum.ts +0 -4
  507. package/src/components/HeaderToolbar/constants/ExpertiseLevelEnum.ts +0 -4
  508. package/src/components/LangBtn/constants/ExpertiseLevelEnum.ts +0 -4
  509. package/src/components/Logo/constants/ExpertiseLevelEnum.ts +0 -4
  510. package/src/components/LogoBrandSection/constants/ExpertiseLevelEnum.ts +0 -4
  511. package/src/components/MaintenancePage/constants/ExpertiseLevelEnum.ts +0 -4
  512. package/src/components/NirField/constants/ExpertiseLevelEnum.ts +0 -4
  513. package/src/components/NotFoundPage/constants/ExpertiseLevelEnum.ts +0 -4
  514. package/src/components/NotificationBar/constants/ExpertiseLevelEnum.ts +0 -4
  515. package/src/components/PageContainer/constants/ExpertiseLevelEnum.ts +0 -4
  516. package/src/components/PaginatedTable/constants/ExpertiseLevelEnum.ts +0 -4
  517. package/src/components/PaginatedTable/tests/__snapshots__/PaginatedTable.spec.ts.snap +0 -886
  518. package/src/components/PasswordField/constants/ExpertiseLevelEnum.ts +0 -4
  519. package/src/components/PeriodField/constants/ExpertiseLevelEnum.ts +0 -4
  520. package/src/components/PhoneField/constants/ExpertiseLevelEnum.ts +0 -4
  521. package/src/components/RangeField/constants/ExpertiseLevelEnum.ts +0 -4
  522. package/src/components/RatingPicker/constants/ExpertiseLevelEnum.ts +0 -4
  523. package/src/components/SearchListField/constants/ExpertiseLevelEnum.ts +0 -4
  524. package/src/components/SelectBtnField/constants/ExpertiseLevelEnum.ts +0 -4
  525. package/src/components/SkipLink/constants/ExpertiseLevelEnum.ts +0 -4
  526. package/src/components/SocialMediaLinks/constants/ExpertiseLevelEnum.ts +0 -4
  527. package/src/components/SubHeader/constants/ExpertiseLevelEnum.ts +0 -4
  528. package/src/components/SyAlert/constants/ExpertiseLevelEnum.ts +0 -4
  529. package/src/components/TableToolbar/constants/ExpertiseLevelEnum.ts +0 -4
  530. package/src/components/UploadWorkflow/constants/ExpertiseLevelEnum.ts +0 -4
  531. package/src/components/UserMenuBtn/constants/ExpertiseLevelEnum.ts +0 -4
  532. package/src/stories/DesignTokens/ThemePA.mdx +0 -35
  533. /package/src/components/DatePicker/{examples → playground}/DatePickerHolidayRule.vue +0 -0
@@ -0,0 +1,187 @@
1
+ import { ref, nextTick, type Ref } from 'vue'
2
+
3
+ /**
4
+ * Composable pour personnaliser les boutons du mois et de l'année dans les composants DatePicker
5
+ * @param isPickerVisibleGetter - Fonction qui retourne l'état de visibilité du DatePicker
6
+ * @param monthName - Référence au nom du mois à utiliser
7
+ * @param yearName - Référence au nom de l'année à utiliser
8
+ */
9
+ export function useMonthButtonCustomization(
10
+ isPickerVisibleGetter: () => boolean,
11
+ monthName?: Ref<string | null>,
12
+ yearName?: Ref<string | null>,
13
+ ) {
14
+ const monthButtonText = ref('')
15
+ const yearText = ref('')
16
+
17
+ /**
18
+ * Retourne un nom personnalisé pour le mois en fonction de sa valeur
19
+ * @param monthName - Le nom du mois à personnaliser
20
+ * @returns Le nom personnalisé du mois
21
+ */
22
+ const getCustomMonthName = (monthName: string | null | undefined): string => {
23
+ if (!monthName) return ''
24
+
25
+ // Convertir en minuscules pour faciliter la comparaison
26
+ const lowerMonth = monthName.toLowerCase()
27
+
28
+ switch (lowerMonth) {
29
+ case 'january':
30
+ case 'janvier':
31
+ return 'Janv.'
32
+ case 'february':
33
+ case 'février':
34
+ return 'Févr.'
35
+ case 'march':
36
+ case 'mars':
37
+ return 'Mars'
38
+ case 'april':
39
+ case 'avril':
40
+ return 'Avr.'
41
+ case 'may':
42
+ case 'mai':
43
+ return 'Mai'
44
+ case 'june':
45
+ case 'juin':
46
+ return 'Juin'
47
+ case 'july':
48
+ case 'juillet':
49
+ return 'Juil.'
50
+ case 'august':
51
+ case 'août':
52
+ return 'Août'
53
+ case 'september':
54
+ case 'septembre':
55
+ return 'Sept.'
56
+ case 'october':
57
+ case 'octobre':
58
+ return 'Oct.'
59
+ case 'november':
60
+ case 'novembre':
61
+ return 'Nov.'
62
+ case 'december':
63
+ case 'décembre':
64
+ return 'Déc.'
65
+ default:
66
+ // Si le mois n'est pas reconnu, retourner le mois avec la première lettre en majuscule
67
+ return monthName.charAt(0).toUpperCase() + monthName.slice(1)
68
+ }
69
+ }
70
+
71
+ /**
72
+ * Récupère et modifie les boutons du mois et de l'année avec une icône SVG chevron-down
73
+ */
74
+ const customizeMonthButton = () => {
75
+ if (isPickerVisibleGetter() || monthName?.value) {
76
+ nextTick(() => {
77
+ // Personnalisation des boutons du mois pour tous les DatePickers
78
+ const monthBtns = document.querySelectorAll('.v-date-picker-controls__month-btn')
79
+ if (monthBtns.length > 0) {
80
+ // Récupérer le texte original et le nettoyer du premier bouton pour référence
81
+ // Cela n'affectera pas la personnalisation des autres boutons
82
+ monthButtonText.value = monthBtns[0].textContent?.trim() || ''
83
+ const parts = monthButtonText.value.split(' ')
84
+ yearText.value = parts.length > 1 ? parts[1] : ''
85
+
86
+ // Appliquer la personnalisation à tous les boutons du mois
87
+ monthBtns.forEach((monthBtn) => {
88
+ // Extraire le mois et l'année pour ce bouton spécifique
89
+ const btnText = monthBtn.textContent?.trim() || ''
90
+ const btnParts = btnText.split(' ')
91
+ // Utiliser le monthName fourni s'il existe, sinon utiliser le texte extrait
92
+ const rawMonthText = monthName?.value || btnParts[0]
93
+ // Personnaliser le nom du mois avec notre fonction switch case
94
+ const monthText = getCustomMonthName(rawMonthText)
95
+
96
+ // Créer un bouton stylisé comme un VBtn avec une icône Material Design
97
+ const buttonHTML = `
98
+ <button class="v-btn v-btn--density-comfortable v-btn--variant-text v-theme--light v-btn--size-default" style="color: var(--v-theme-primary); margin-left: -12px;" data-ripple="false">
99
+ <span class="v-btn__overlay"></span>
100
+ <span class="v-btn__underlay"></span>
101
+ <div class="v-btn__content" data-no-activator="" style="color: var(--v-theme-primary);">
102
+ <span style="color: var(--v-theme-primary);">${monthText.charAt(0).toUpperCase() + monthText.slice(1)}</span>
103
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" class="ms-1" style="fill: var(--v-theme-primary);" aria-label="chevron-down"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z" /></svg>
104
+ </div>
105
+ </button>
106
+ `
107
+
108
+ // Remplacer le contenu du bouton original
109
+ monthBtn.innerHTML = buttonHTML
110
+ })
111
+
112
+ // Personnalisation des boutons d'année pour tous les DatePickers
113
+ const yearBtns = document.querySelectorAll('.v-date-picker-controls__mode-btn')
114
+ yearBtns.forEach((yearBtn) => {
115
+ // Trouver le parent DatePicker-controls pour ce bouton d'année
116
+ const parentControl = yearBtn.closest('.v-date-picker-controls')
117
+ if (!parentControl) return
118
+
119
+ // Trouver le bouton de mois correspondant dans le même contrôle
120
+ const siblingMonthBtn = parentControl.querySelector('.v-date-picker-controls__month-btn')
121
+ if (!siblingMonthBtn) return
122
+
123
+ // Extraire le texte du bouton de mois pour obtenir l'année
124
+ const monthBtnText = siblingMonthBtn.textContent?.trim() || ''
125
+ const monthBtnParts = monthBtnText.split(' ')
126
+
127
+ // Déterminer l'année à afficher selon les priorités
128
+ let displayedYear = ''
129
+ if (yearName?.value) {
130
+ displayedYear = yearName.value
131
+ }
132
+ else if (monthBtnParts.length > 1) {
133
+ displayedYear = monthBtnParts[1]
134
+ }
135
+ else if (yearText.value) {
136
+ displayedYear = yearText.value
137
+ }
138
+ else {
139
+ // Si aucune année n'est trouvée, utiliser l'année courante
140
+ displayedYear = new Date().getFullYear().toString()
141
+ }
142
+
143
+ // Créer un bouton stylisé pour l'année
144
+ const yearButtonHTML = `
145
+ <button class="v-btn v-btn--density-comfortable v-btn--variant-text v-theme--light v-btn--size-default" style="color: var(--v-theme-primary);" data-ripple="false">
146
+ <span class="v-btn__overlay"></span>
147
+ <span class="v-btn__underlay"></span>
148
+ <div class="v-btn__content" data-no-activator="" style="color: var(--v-theme-primary);">
149
+ <span style="color: var(--v-theme-primary);">${displayedYear}</span>
150
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" class="ms-1" style="fill: var(--v-theme-primary);" aria-label="chevron-down"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z" /></svg>
151
+ </div>
152
+ </button>
153
+ `
154
+
155
+ // Remplacer le contenu du bouton d'année
156
+ yearBtn.innerHTML = yearButtonHTML
157
+ })
158
+ }
159
+ })
160
+ }
161
+ }
162
+
163
+ /**
164
+ * Configure des observateurs pour détecter les changements dans le DOM
165
+ * et personnaliser les boutons du mois et de l'année automatiquement avec une icône SVG chevron-down
166
+ * pour tous les DatePickers présents sur la page
167
+ */
168
+ const setupMonthButtonObserver = () => {
169
+ nextTick(() => {
170
+ const targetNodes = document.querySelectorAll('.v-date-picker-controls')
171
+ if (targetNodes.length > 0) {
172
+ targetNodes.forEach((targetNode) => {
173
+ const observer = new MutationObserver(() => {
174
+ customizeMonthButton()
175
+ })
176
+ observer.observe(targetNode, { childList: true, subtree: true })
177
+ })
178
+ }
179
+ })
180
+ }
181
+
182
+ return {
183
+ monthButtonText,
184
+ customizeMonthButton,
185
+ setupMonthButtonObserver,
186
+ }
187
+ }
@@ -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,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
@@ -51,6 +51,7 @@ export const Default: Story = {
51
51
  label="Nom avec accents"
52
52
  color="primary"
53
53
  variant="outlined"
54
+ bg-color="white"
54
55
  />
55
56
  </DiacriticPicker>
56
57
  </template>`,
@@ -110,6 +111,7 @@ export const Default: Story = {
110
111
  label="Nom avec accents"
111
112
  color="primary"
112
113
  variant="outlined"
114
+ bg-color="white"
113
115
  />
114
116
  </DiacriticPicker>
115
117
  <div class="mt-2">Valeur actuelle: {{ value }}</div>
@@ -130,6 +132,7 @@ export const WithTextarea: Story = {
130
132
  v-model="adresse"
131
133
  label="Adresse"
132
134
  color="primary"
135
+ bg-color="white"
133
136
  variant="outlined"
134
137
  auto-grow
135
138
  />
@@ -190,6 +193,7 @@ export const WithTextarea: Story = {
190
193
  v-model="value"
191
194
  label="Adresse"
192
195
  color="primary"
196
+ bg-color="white"
193
197
  variant="outlined"
194
198
  auto-grow
195
199
  />
@@ -213,6 +217,7 @@ export const CustomDiacritics: Story = {
213
217
  label="Texte avec accents personnalisés"
214
218
  color="primary"
215
219
  variant="outlined"
220
+ bg-color="white"
216
221
  />
217
222
  </DiacriticPicker>
218
223
  </template>`,
@@ -265,6 +270,7 @@ export const CustomDiacritics: Story = {
265
270
  label="Texte avec accents personnalisés"
266
271
  color="primary"
267
272
  variant="outlined"
273
+ bg-color="white"
268
274
  />
269
275
  </DiacriticPicker>
270
276
  <div class="mt-2">Valeur actuelle: {{ value }}</div>
@@ -286,6 +292,7 @@ export const CustomButtonTitle: Story = {
286
292
  label="Texte avec bouton personnalisé"
287
293
  color="primary"
288
294
  variant="outlined"
295
+ bg-color="white"
289
296
  />
290
297
  </DiacriticPicker>
291
298
  </template>`,
@@ -345,6 +352,7 @@ export const CustomButtonTitle: Story = {
345
352
  label="Texte avec bouton personnalisé"
346
353
  color="primary"
347
354
  variant="outlined"
355
+ bg-color="white"
348
356
  />
349
357
  </DiacriticPicker>
350
358
  <div class="mt-2">Valeur actuelle: {{ value }}</div>
@@ -379,6 +387,7 @@ export const Customization: Story = {
379
387
  label="Options Vuetify personnalisées"
380
388
  color="secondary"
381
389
  variant="outlined"
390
+ bg-color="white"
382
391
  />
383
392
  </DiacriticPicker>
384
393
  </template>`,
@@ -437,6 +446,7 @@ export const Customization: Story = {
437
446
  label="Options Vuetify personnalisées"
438
447
  color="secondary"
439
448
  variant="outlined"
449
+ bg-color="white"
440
450
  />
441
451
  </DiacriticPicker>
442
452
  <div class="mt-2">Valeur actuelle: {{ value }}</div>
@@ -1,4 +1,4 @@
1
- import { ExpertiseLevelEnum } from './constants/ExpertiseLevelEnum'
1
+ import { ExpertiseLevelEnum } from '@/common/constants/ExpertiseLevelEnum'
2
2
 
3
3
  export const AccessibiliteItemsIndeterminate = [
4
4
 
@@ -1,4 +1,4 @@
1
- import { ExpertiseLevelEnum } from './constants/ExpertiseLevelEnum'
1
+ import { ExpertiseLevelEnum } from '@/common/constants/ExpertiseLevelEnum'
2
2
 
3
3
  export const AccessibiliteItemsIndeterminate = [
4
4
 
@@ -181,6 +181,14 @@ export const Legende: StoryObj = {
181
181
  Problèmes relevés par Tanaguru
182
182
  </div>
183
183
  </div>
184
+ <div class="mt-4">
185
+ <p>Rapport d’audit manuel : <a href="/audits/ErrorPage.xlsx" style="color:#0C41BD;">Voir le
186
+ rapport</a></p>
187
+ <p style="color: grey; font-size: 14px">Correctifs associés (<a
188
+ href="https://github.com/assurance-maladie-digital/design-system-v3/issues/652" target="_blank"
189
+ style="color:#0C41BD;"
190
+ >issue #652</a>)</p>
191
+ </div>
184
192
  </div>
185
193
  `,
186
194
  }
@@ -1,4 +1,4 @@
1
- import { ExpertiseLevelEnum } from './constants/ExpertiseLevelEnum'
1
+ import { ExpertiseLevelEnum } from '@/common/constants/ExpertiseLevelEnum'
2
2
 
3
3
  export const AccessibiliteItemsIndeterminate = [
4
4
 
@@ -3,6 +3,12 @@
3
3
  import { locales } from './locales'
4
4
  import PageContainer from '../PageContainer/PageContainer.vue'
5
5
 
6
+ // Fonction pour formater le message et ajouter des liens tel: aux numéros de téléphone
7
+ const formatMessage = (message: string): string => {
8
+ // Regex pour détecter les numéros de téléphone comme 3646
9
+ return message.replace(/\b(3646|\d{10})\b/g, '<a href="tel:$1">$1</a>')
10
+ }
11
+
6
12
  withDefaults(defineProps<{
7
13
  pageTitle?: string
8
14
  message?: string
@@ -44,16 +50,17 @@
44
50
  {{ code }}
45
51
  </div>
46
52
 
47
- <h2
53
+ <h1
48
54
  v-if="pageTitle"
49
55
  class="mb-2 font-weight-bold text-h5 mb-4"
50
56
  >
51
57
  {{ pageTitle }}
52
- </h2>
58
+ </h1>
53
59
 
54
- <p v-if="message">
55
- {{ message }}
56
- </p>
60
+ <p
61
+ v-if="message"
62
+ v-html="formatMessage(message)"
63
+ />
57
64
 
58
65
  <slot name="additional-content" />
59
66
 
@@ -63,7 +70,6 @@
63
70
  :to="btnLink"
64
71
  :href="btnHref"
65
72
  color="primary"
66
- exact
67
73
  class="mt-6"
68
74
  >
69
75
  {{ btnText }}