@cnamts/synapse 1.0.15 → 1.0.17

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 (587) hide show
  1. package/dist/{DateFilter-isr8mXVb.js → DateFilter-RHtdShO1.js} +12 -12
  2. package/dist/{NumberFilter-BOe7DqWX.js → NumberFilter-DXYz_b_w.js} +1 -1
  3. package/dist/{PeriodFilter-WTprpO40.js → PeriodFilter-CzphmrNu.js} +1 -1
  4. package/dist/{SelectFilter-CqlG5dmI.js → SelectFilter-a4fUV5Jp.js} +1 -1
  5. package/dist/{TextFilter-fVW5bsRw.js → TextFilter-CZ4LTKoq.js} +1 -1
  6. package/dist/components/Accordion/Accordion.d.ts +22 -7
  7. package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +2836 -2845
  8. package/dist/components/Amelipro/AmeliproCallback/AmeliproCallback.d.ts +3 -3
  9. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarousel.d.ts +7 -7
  10. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarouselItem/AmeliproCarouselItem.d.ts +3 -3
  11. package/dist/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.d.ts +3 -3
  12. package/dist/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.d.ts +3 -3
  13. package/dist/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.d.ts +3 -3
  14. package/dist/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.d.ts +3 -3
  15. package/dist/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.d.ts +3 -3
  16. package/dist/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.d.ts +3 -3
  17. package/dist/components/Amelipro/AmeliproFooter/AmeliproFooter.d.ts +18 -18
  18. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeader.d.ts +9 -9
  19. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBar.d.ts +3 -3
  20. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/AmeliproHeaderBrandSection.d.ts +3 -3
  21. package/dist/components/Amelipro/AmeliproIcon/AmeliproIcon.d.ts +3 -1
  22. package/dist/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.d.ts +5 -3
  23. package/dist/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.d.ts +3 -3
  24. package/dist/components/Amelipro/AmeliproMenu/AmeliproMenu.d.ts +3 -3
  25. package/dist/components/Amelipro/AmeliproMultipleFoldingCard/AmeliproMultipleFoldingCard.d.ts +1 -1
  26. package/dist/components/Amelipro/AmeliproPagination/AmeliproPaginationBtn/AmeliproPaginationBtn.d.ts +3 -3
  27. package/dist/components/Amelipro/AmeliproPatientBanner/AmeliproPatientBanner.d.ts +3 -3
  28. package/dist/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.d.ts +40 -8
  29. package/dist/components/Amelipro/AmeliproPatientLogged/types.d.ts +2 -1
  30. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.d.ts +1288 -1284
  31. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.d.ts +1936 -1930
  32. package/dist/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.d.ts +3 -3
  33. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +2838 -2865
  34. package/dist/components/Amelipro/AmeliproStateTile/AmeliproStateTile.d.ts +3 -3
  35. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabBtn/AmeliproTabBtn.d.ts +1 -1
  36. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +2849 -2867
  37. package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +397 -397
  38. package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +653 -642
  39. package/dist/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.d.ts +233 -5
  40. package/dist/components/Amelipro/AmeliproTooltips/AmeliproTooltips.d.ts +6 -2
  41. package/dist/components/Amelipro/AmeliproTransmission/AmeliproTransmission.d.ts +9 -9
  42. package/dist/components/Amelipro/StructureMenu/StructureBtn/StructureBtn.d.ts +9 -0
  43. package/dist/components/Amelipro/StructureMenu/StructureItem/types.d.ts +1 -0
  44. package/dist/components/Amelipro/StructureMenu/StructureMenu.d.ts +9 -0
  45. package/dist/components/Amelipro/StructureMenu/StructureTabs/StructureTabs.d.ts +23 -2
  46. package/dist/components/Captcha/CaptchaHelpdesk.d.ts +6 -0
  47. package/dist/components/ChipList/locales.d.ts +1 -0
  48. package/dist/components/CookieBanner/CookieBanner.d.ts +117 -119
  49. package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +484 -484
  50. package/dist/components/CookiesSelection/CookiesSelection.d.ts +104 -106
  51. package/dist/components/Customs/Selects/SelectBtnField/SelectBtnField.d.ts +14 -10
  52. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +118 -129
  53. package/dist/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.d.ts +1 -3
  54. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +1 -1
  55. package/dist/components/Customs/SyForm/SyForm.d.ts +60 -53
  56. package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +88 -0
  57. package/dist/components/Customs/SyRadioGroup/locales.d.ts +3 -0
  58. package/dist/components/Customs/SyTextField/SyTextField.d.ts +644 -642
  59. package/dist/components/DataList/DataList.d.ts +6 -1
  60. package/dist/components/DataListGroup/DataListGroup.d.ts +14 -2
  61. package/dist/components/DataListItem/DataListItem.d.ts +3 -0
  62. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +2986 -3098
  63. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +1456 -1558
  64. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +653 -652
  65. package/dist/components/DatePicker/composables/index.d.ts +4 -1
  66. package/dist/components/DatePicker/composables/useAsteriskDisplay.d.ts +1 -1
  67. package/dist/components/DatePicker/composables/useCalendarKeyboardNavigation.d.ts +11 -0
  68. package/dist/components/DatePicker/composables/useDatePickerState.d.ts +25 -0
  69. package/dist/components/DatePicker/composables/useDateTextField.d.ts +61 -0
  70. package/dist/components/DatePicker/composables/useHolidayHighlighting.d.ts +15 -0
  71. package/dist/components/DatePicker/constants/messages.d.ts +0 -1
  72. package/dist/components/DialogBox/DialogBox.d.ts +177 -179
  73. package/dist/components/DialogBox/config.d.ts +4 -0
  74. package/dist/components/FilterSideBar/FilterSideBar.d.ts +170 -173
  75. package/dist/components/FilterSideBar/locales.d.ts +5 -0
  76. package/dist/components/FooterBar/FooterBar.d.ts +5 -5
  77. package/dist/components/HeaderBar/HeaderBar.d.ts +4 -2
  78. package/dist/components/HeaderBar/HeaderLogo/HeaderLogo.d.ts +1 -1
  79. package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +15 -5
  80. package/dist/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.d.ts +5 -1
  81. package/dist/components/HeaderToolbar/HeaderToolbar.d.ts +234 -258
  82. package/dist/components/LangBtn/LangBtn.d.ts +173 -179
  83. package/dist/components/LogoBrandSection/LogoBrandSection.d.ts +1 -1
  84. package/dist/components/LunarCalendar/LunarCalendar.d.ts +29 -0
  85. package/dist/components/LunarCalendar/useLunarCalendarRules.d.ts +5 -0
  86. package/dist/components/LunarCalendar/useLunarCalendarValidation.d.ts +13 -0
  87. package/dist/components/MaintenancePage/MaintenancePage.d.ts +8 -1
  88. package/dist/components/NirField/NirField.d.ts +1296 -1292
  89. package/dist/components/NotFoundPage/NotFoundPage.d.ts +9 -2
  90. package/dist/components/NotificationBar/Notification/Notification.d.ts +30 -0
  91. package/dist/components/NotificationBar/NotificationBar.d.ts +32 -20
  92. package/dist/components/PaginatedTable/PaginatedTable.d.ts +1 -1
  93. package/dist/components/PeriodField/PeriodField.d.ts +5855 -6079
  94. package/dist/components/PhoneField/PhoneField.d.ts +645 -643
  95. package/dist/components/SubHeader/SubHeader.d.ts +11 -8
  96. package/dist/components/SyAlert/SyAlert.d.ts +31 -31
  97. package/dist/components/SyTextArea/SyTextArea.d.ts +397 -395
  98. package/dist/components/SyTextArea/locales.d.ts +1 -0
  99. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +193 -227
  100. package/dist/components/Tables/SyTable/SyTable.d.ts +192 -226
  101. package/dist/components/Tables/common/SyTableFilter.d.ts +1 -1
  102. package/dist/components/Tables/common/SyTablePagination.d.ts +118 -129
  103. package/dist/components/Tables/common/TableHeader.d.ts +52 -2
  104. package/dist/components/Tables/common/filters/DateFilter.d.ts +1 -1
  105. package/dist/components/Tables/common/filters/NumberFilter.d.ts +1 -1
  106. package/dist/components/Tables/common/filters/PeriodFilter.d.ts +1 -1
  107. package/dist/components/Tables/common/filters/SelectFilter.d.ts +1 -1
  108. package/dist/components/Tables/common/filters/TextFilter.d.ts +1 -1
  109. package/dist/components/Tables/common/locales.d.ts +1 -0
  110. package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +86 -90
  111. package/dist/components/Tables/common/tableFilterUtils.d.ts +2 -2
  112. package/dist/components/Tables/common/types.d.ts +3 -2
  113. package/dist/components/Tables/common/useTableCheckbox.d.ts +3 -2
  114. package/dist/components/Tables/common/useTableFilter.d.ts +1 -1
  115. package/dist/components/Tables/common/useTableItems.d.ts +6 -8
  116. package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +18 -18
  117. package/dist/components/UserMenuBtn/UserMenuBtn.d.ts +2 -0
  118. package/dist/components/index.d.ts +2 -0
  119. package/dist/design-system-v3.js +101 -98
  120. package/dist/design-system-v3.umd.cjs +25 -33
  121. package/dist/directives/lockFocus.d.ts +1 -1
  122. package/dist/main-BXIMMzFS.js +35408 -0
  123. package/dist/style.css +1 -1
  124. package/dist/utils/formatNir/formatNir.d.ts +2 -0
  125. package/dist/utils/index.d.ts +1 -0
  126. package/dist/utils/insertAt.d.ts +1 -0
  127. package/dist/utils/rules/validateDateValue.d.ts +14 -0
  128. package/dist/vuetifyConfig.d.ts +6 -6
  129. package/package.json +14 -7
  130. package/src/assets/tokens.scss +2 -0
  131. package/src/components/Accordion/Accessibilite/AccessibilityGuide.mdx +70 -241
  132. package/src/components/Accordion/Accordion.mdx +6 -1
  133. package/src/components/Accordion/Accordion.stories.ts +88 -9
  134. package/src/components/Accordion/Accordion.vue +56 -24
  135. package/src/components/Accordion/tests/Accordion.a11y.spec.ts +46 -0
  136. package/src/components/Accordion/tests/__snapshots__/accordion.spec.ts.snap +26 -30
  137. package/src/components/Accordion/tests/accordion.spec.ts +27 -26
  138. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/__tests__/__snapshots__/AmeliproAccordionTemplate.spec.ts.snap +1 -18
  139. package/src/components/Amelipro/AmeliproAccordion/__tests__/AmeliproAccordion.spec.ts +178 -9
  140. package/src/components/Amelipro/AmeliproAccordion/__tests__/__snapshots__/AmeliproAccordion.spec.ts.snap +28 -121
  141. package/src/components/Amelipro/AmeliproAccordionFrieze/__tests__/__snapshots__/AmeliproAccordionFrieze.spec.ts.snap +15 -270
  142. package/src/components/Amelipro/AmeliproAccordionList/__tests__/__snapshots__/AmeliproAccordionList.spec.ts.snap +12 -194
  143. package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/__tests__/__snapshots__/AmeliproAccordionResultTemplate.spec.ts.snap +1 -18
  144. package/src/components/Amelipro/AmeliproAccordionResult/__tests__/__snapshots__/AmeliproAccordionResult.spec.ts.snap +1 -18
  145. package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/__snapshots__/AmeliproAccordionResultList.spec.ts.snap +12 -194
  146. package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.stories.ts +9 -9
  147. package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.vue +5 -4
  148. package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/AmeliproAutoCompleteField.spec.ts +6 -6
  149. package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/__snapshots__/AmeliproAutoCompleteField.spec.ts.snap +2 -0
  150. package/src/components/Amelipro/AmeliproBadge/__tests__/AmeliproBadge.spec.ts +135 -9
  151. package/src/components/Amelipro/AmeliproBadge/__tests__/__snapshots__/AmeliproBadge.spec.ts.snap +20 -5
  152. package/src/components/Amelipro/AmeliproBreadcrumb/__tests__/AmeliproBreadcrumb.spec.ts +195 -28
  153. package/src/components/Amelipro/AmeliproBreadcrumb/__tests__/__snapshots__/AmeliproBreadcrumb.spec.ts.snap +193 -124
  154. package/src/components/Amelipro/AmeliproCaptcha/AmeliproCaptcha.vue +1 -1
  155. package/src/components/Amelipro/AmeliproCaptcha/__tests__/AmeliproCaptcha.spec.ts +364 -12
  156. package/src/components/Amelipro/AmeliproCaptcha/__tests__/__snapshots__/AmeliproCaptcha.spec.ts.snap +30 -390
  157. package/src/components/Amelipro/AmeliproCarousel/__tests__/__snapshots__/AmeliproCarousel.spec.ts.snap +4 -36
  158. package/src/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.stories.ts +10 -10
  159. package/src/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.vue +7 -7
  160. package/src/components/Amelipro/AmeliproCheckbox/__tests__/AmeliproCheckbox.spec.ts +5 -5
  161. package/src/components/Amelipro/AmeliproCheckbox/__tests__/__snapshots__/AmeliproCheckbox.spec.ts.snap +1 -1
  162. package/src/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.stories.ts +7 -6
  163. package/src/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.vue +6 -6
  164. package/src/components/Amelipro/AmeliproCheckboxGroup/__tests__/AmeliproCheckboxGroup.spec.ts +6 -6
  165. package/src/components/Amelipro/AmeliproCheckboxGroup/__tests__/__snapshots__/AmeliproCheckboxGroup.spec.ts.snap +2 -2
  166. package/src/components/Amelipro/AmeliproClickableTile/tests/__snapshots__/AmeliproClickableTile.spec.ts.snap +2 -43
  167. package/src/components/Amelipro/AmeliproContentLayout/__tests__/AmeliproContentLayout.spec.ts +80 -9
  168. package/src/components/Amelipro/AmeliproContentLayout/__tests__/__snapshots__/AmeliproContentLayout.spec.ts.snap +25 -4
  169. package/src/components/Amelipro/AmeliproCopyBtn/__tests__/__snapshots__/AmeliproCopyBtn.spec.ts.snap +1 -13
  170. package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.stories.ts +7 -6
  171. package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.vue +5 -5
  172. package/src/components/Amelipro/AmeliproCustomSelector/__tests__/AmeliproCustomSelector.spec.ts +187 -39
  173. package/src/components/Amelipro/AmeliproCustomSelector/__tests__/__snapshots__/AmeliproCustomSelector.spec.ts.snap +147 -147
  174. package/src/components/Amelipro/AmeliproDentalChart/tests/__snapshots__/AmeliproDentalChart.spec.ts.snap +1 -1
  175. package/src/components/Amelipro/AmeliproDialog/__tests__/__snapshots__/AmeliproDialog.spec.ts.snap +0 -2
  176. package/src/components/Amelipro/AmeliproErrorTemplate/__tests__/AmeliproErrorTemplate.spec.ts +160 -20
  177. package/src/components/Amelipro/AmeliproErrorTemplate/__tests__/__snapshots__/AmeliproErrorTemplate.spec.ts.snap +34 -177
  178. package/src/components/Amelipro/AmeliproFilePreview/AmeliproFilePreview.vue +1 -0
  179. package/src/components/Amelipro/AmeliproFilePreview/__tests__/AmeliproFilePreview.spec.ts +248 -19
  180. package/src/components/Amelipro/AmeliproFilePreview/__tests__/__snapshots__/AmeliproFilePreview.spec.ts.snap +34 -203
  181. package/src/components/Amelipro/AmeliproFirstLogin/__tests__/__snapshots__/AmeliproFirstLogin.spec.ts.snap +6 -144
  182. package/src/components/Amelipro/AmeliproIcon/AmeliproIcon.vue +20 -2
  183. package/src/components/Amelipro/AmeliproIcon/__tests__/__snapshots__/AmeliproIcon.spec.ts.snap +1 -25
  184. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.stories.ts +5 -5
  185. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.vue +6 -6
  186. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/__tests__/AmeliproIllustratedRadioGroup.spec.ts +22 -22
  187. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/__tests__/__snapshots__/AmeliproIllustratedRadioGroup.spec.ts.snap +2 -2
  188. package/src/components/Amelipro/AmeliproMultipleFoldingCard/__tests__/AmeliproMultipleFoldingCard.spec.ts +304 -0
  189. package/src/components/Amelipro/AmeliproMultipleFoldingCard/__tests__/__snapshots__/AmeliproMultipleFoldingCard.spec.ts.snap +373 -0
  190. package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.stories.ts +64 -34
  191. package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.vue +75 -16
  192. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/AmeliproPatientLogged.spec.ts +4 -2
  193. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/__snapshots__/AmeliproPatientLogged.spec.ts.snap +63 -177
  194. package/src/components/Amelipro/AmeliproPatientLogged/types.d.ts +2 -1
  195. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLogin.stories.ts +11 -5
  196. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLoginForm/AmeliproPatientLoginForm.vue +9 -1
  197. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.vue +162 -72
  198. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/AmeliproPostalAddressCityRow.spec.ts +2 -2
  199. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/__snapshots__/AmeliproPostalAddressCityRow.spec.ts.snap +6 -39
  200. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.stories.ts +3 -3
  201. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.vue +8 -8
  202. package/src/components/Amelipro/AmeliproPostalAddressField/{tests → __tests__}/AmeliproPostalAddressField.spec.ts +2 -2
  203. package/src/components/Amelipro/AmeliproPostalAddressField/{tests → __tests__}/__snapshots__/AmeliproPostalAddressField.spec.ts.snap +11 -52
  204. package/src/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.stories.ts +7 -7
  205. package/src/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.vue +8 -8
  206. package/src/components/Amelipro/AmeliproRadioGroup/__tests__/AmeliproRadioGroup.spec.ts +6 -6
  207. package/src/components/Amelipro/AmeliproRadioGroup/__tests__/__snapshots__/AmeliproRadioGroup.spec.ts.snap +2 -2
  208. package/src/components/Amelipro/AmeliproResultList/__tests__/__snapshots__/AmeliproResultList.spec.ts.snap +2 -14
  209. package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.stories.ts +7 -7
  210. package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.vue +41 -5
  211. package/src/components/Amelipro/AmeliproSelect/__tests__/AmeliproSelect.spec.ts +12 -12
  212. package/src/components/Amelipro/AmeliproSelect/__tests__/__snapshots__/AmeliproSelect.spec.ts.snap +2 -2
  213. package/src/components/Amelipro/AmeliproStepper/AmeliproStepper.vue +2 -2
  214. package/src/components/Amelipro/AmeliproStepper/__tests__/__snapshots__/AmeliproStepper.spec.ts.snap +2 -2
  215. package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +2 -2
  216. package/src/components/Amelipro/AmeliproTable/__tests__/AmeliproTable.spec.ts +463 -68
  217. package/src/components/Amelipro/AmeliproTable/__tests__/__snapshots__/AmeliproTable.spec.ts.snap +176 -511
  218. package/src/components/Amelipro/AmeliproTabs/AmeliproTabs.stories.ts +94 -0
  219. package/src/components/Amelipro/AmeliproTabs/AmeliproTabs.vue +6 -2
  220. package/src/components/Amelipro/AmeliproTabs/__tests__/AmeliproTabs.spec.ts +4 -0
  221. package/src/components/Amelipro/AmeliproTabs/__tests__/__snapshots__/AmeliproTabs.spec.ts.snap +4 -2
  222. package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.stories.ts +6 -6
  223. package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.vue +4 -4
  224. package/src/components/Amelipro/AmeliproTextArea/__tests__/AmeliproTextArea.spec.ts +3 -3
  225. package/src/components/Amelipro/AmeliproTextArea/__tests__/__snapshots__/AmeliproTextArea.spec.ts.snap +1 -2
  226. package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.stories.ts +78 -10
  227. package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.vue +114 -6
  228. package/src/components/Amelipro/AmeliproTextField/__tests__/AmeliproTextField.spec.ts +19 -7
  229. package/src/components/Amelipro/AmeliproTextField/__tests__/__snapshots__/AmeliproTextField.spec.ts.snap +2 -0
  230. package/src/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.stories.ts +44 -0
  231. package/src/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.vue +79 -1
  232. package/src/components/Amelipro/AmeliproTooltips/AmeliproTooltips.stories.ts +45 -0
  233. package/src/components/Amelipro/AmeliproTooltips/AmeliproTooltips.vue +6 -0
  234. package/src/components/Amelipro/AmeliproTooltips/__tests__/__snapshots__/AmeliproTooltips.spec.ts.snap +0 -2
  235. package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.stories.ts +2 -2
  236. package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.vue +21 -7
  237. package/src/components/Amelipro/AmeliproUpload/__tests__/AmeliproUpload.spec.ts +252 -44
  238. package/src/components/Amelipro/AmeliproUpload/__tests__/__snapshots__/AmeliproUpload.spec.ts.snap +166 -0
  239. package/src/components/Amelipro/ServiceMenu/ServiceBtn/__tests__/ServiceBtn.spec.ts +137 -0
  240. package/src/components/Amelipro/ServiceMenu/ServiceBtn/__tests__/__snapshots__/ServiceBtn.spec.ts.snap +56 -0
  241. package/src/components/Amelipro/ServiceMenu/ServiceList/__tests__/ServiceList.spec.ts +116 -0
  242. package/src/components/Amelipro/ServiceMenu/ServiceList/__tests__/__snapshots__/ServiceList.spec.ts.snap +58 -0
  243. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/__tests__/ServiceMenuContent.spec.ts +118 -0
  244. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/__tests__/__snapshots__/ServiceMenuContent.spec.ts.snap +151 -0
  245. package/src/components/Amelipro/ServiceMenu/__tests__/ServiceMenu.spec.ts +259 -0
  246. package/src/components/Amelipro/ServiceMenu/__tests__/__snapshots__/ServiceMenu.spec.ts.snap +102 -0
  247. package/src/components/Amelipro/StructureMenu/StructureBtn/StructureBtn.vue +13 -0
  248. package/src/components/Amelipro/StructureMenu/StructureBtn/__tests__/StructureBtn.spec.ts +96 -0
  249. package/src/components/Amelipro/StructureMenu/StructureBtn/__tests__/__snapshots__/StructureBtn.spec.ts.snap +63 -0
  250. package/src/components/Amelipro/StructureMenu/StructureItem/StructureItem.vue +14 -2
  251. package/src/components/Amelipro/StructureMenu/StructureItem/__tests__/StructureItem.spec.ts +133 -0
  252. package/src/components/Amelipro/StructureMenu/StructureItem/__tests__/__snapshots__/StructureItem.spec.ts.snap +159 -0
  253. package/src/components/Amelipro/StructureMenu/StructureItem/types.d.ts +1 -0
  254. package/src/components/Amelipro/StructureMenu/StructureList/__tests__/StructureList.spec.ts +190 -0
  255. package/src/components/Amelipro/StructureMenu/StructureList/__tests__/__snapshots__/StructureList.spec.ts.snap +109 -0
  256. package/src/components/Amelipro/StructureMenu/StructureMenu.stories.ts +93 -63
  257. package/src/components/Amelipro/StructureMenu/StructureMenu.vue +5 -0
  258. package/src/components/Amelipro/StructureMenu/StructureTabs/StructureTabs.vue +22 -1
  259. package/src/components/Amelipro/StructureMenu/StructureTabs/__tests__/StructureTabs.spec.ts +163 -0
  260. package/src/components/Amelipro/StructureMenu/StructureTabs/__tests__/__snapshots__/StructureTabs.spec.ts.snap +105 -0
  261. package/src/components/Amelipro/StructureMenu/__tests__/StructureMenu.spec.ts +171 -0
  262. package/src/components/Amelipro/StructureMenu/__tests__/__snapshots__/StructureMenu.spec.ts.snap +39 -0
  263. package/src/components/Amelipro/UserInformationSummary/__tests__/UserInformationSummary.spec.ts +140 -0
  264. package/src/components/Amelipro/UserInformationSummary/{tests → __tests__}/__snapshots__/UserInformationSummary.spec.ts.snap +17 -24
  265. package/src/components/Amelipro/UserMenu/UserMenu.stories.ts +3 -3
  266. package/src/components/Amelipro/UserMenu/UserMenu.vue +2 -2
  267. package/src/components/Amelipro/UserMenu/UserMenuDetails/__tests__/UserMenuDetails.spec.ts +150 -0
  268. package/src/components/Amelipro/UserMenu/UserMenuDetails/__tests__/__snapshots__/UserMenuDetails.spec.ts.snap +117 -0
  269. package/src/components/Amelipro/UserMenu/__tests__/UserMenu.spec.ts +141 -0
  270. package/src/components/Amelipro/UserMenu/__tests__/__snapshots__/UserMenu.spec.ts.snap +103 -0
  271. package/src/components/BackBtn/tests/BackBtn.a11y.spec.ts +20 -0
  272. package/src/components/BackToTopBtn/BackToTopBtn.stories.ts +9 -0
  273. package/src/components/BackToTopBtn/tests/BackToTopBtn.a11y.spec.ts +37 -0
  274. package/src/components/Captcha/Captcha.vue +9 -24
  275. package/src/components/Captcha/CaptchaHelpdesk.vue +42 -0
  276. package/src/components/Captcha/tests/Captcha.a11y.spec.ts +49 -0
  277. package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +256 -268
  278. package/src/components/ChipList/ChipList.stories.ts +15 -0
  279. package/src/components/ChipList/ChipList.vue +20 -17
  280. package/src/components/ChipList/locales.ts +1 -0
  281. package/src/components/ChipList/tests/ChipList.a11y.spec.ts +40 -0
  282. package/src/components/CollapsibleList/Accessibilite.mdx +67 -11
  283. package/src/components/CollapsibleList/tests/CollapsibleList.a11y.spec.ts +38 -0
  284. package/src/components/ContextualMenu/ContextualMenu.stories.ts +3 -0
  285. package/src/components/ContextualMenu/tests/ContextualMenu.a11y.spec.ts +30 -0
  286. package/src/components/CookieBanner/CookieBanner.stories.ts +15 -0
  287. package/src/components/CookieBanner/CookieBanner.vue +0 -1
  288. package/src/components/CookieBanner/tests/CookieBanner.a11y.spec.ts +29 -0
  289. package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.a11y.spec.ts +46 -0
  290. package/src/components/CookiesSelection/CookiesTable/tests/CookiesTable.a11y.spec.ts +37 -0
  291. package/src/components/CookiesSelection/tests/CookiesSelection.a11y.spec.ts +58 -0
  292. package/src/components/CopyBtn/CopyBtn.stories.ts +21 -0
  293. package/src/components/CopyBtn/tests/CopyBtn.a11y.spec.ts +40 -0
  294. package/src/components/CopyBtn/tests/__snapshots__/CopyBtn.spec.ts.snap +0 -1
  295. package/src/components/Customs/Selects/SelectBtnField/Accessibilite.stories.ts +4 -0
  296. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.stories.ts +154 -82
  297. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.vue +229 -125
  298. package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.spec.ts +12 -12
  299. package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/SelectBtnField.spec.ts.snap +344 -826
  300. package/src/components/Customs/Selects/SyBtnSelect/SyBtnSelect.stories.ts +30 -0
  301. package/src/components/Customs/Selects/SyBtnSelect/SyBtnSelect.vue +1 -0
  302. package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +27 -0
  303. package/src/components/Customs/Selects/SySelect/SySelect.vue +215 -169
  304. package/src/components/Customs/Selects/SySelect/composables/tests/useSySelectKeyboard.spec.ts +4 -2
  305. package/src/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.ts +7 -9
  306. package/src/components/Customs/Selects/SySelect/tests/SySelect.a11y.spec.ts +40 -0
  307. package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +7 -3
  308. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +20 -2
  309. package/src/components/Customs/SyCheckbox/tests/SyCheckbox.a11y.spec.ts +26 -0
  310. package/src/components/Customs/SyForm/SyForm.a11y.spec.ts +33 -0
  311. package/src/components/Customs/SyForm/SyForm.mdx +47 -7
  312. package/src/components/Customs/SyForm/SyForm.stories.ts +38 -34
  313. package/src/components/Customs/SyForm/SyForm.vue +27 -6
  314. package/src/components/Customs/SyIcon/SyIcon.a11y.spec.ts +37 -0
  315. package/src/components/Customs/SyIcon/SyIcon.stories.ts +5 -0
  316. package/src/components/Customs/SyPagination/tests/SyPagination.a11y.spec.ts +27 -0
  317. package/src/components/Customs/SyRadioGroup/Accessibilite.mdx +263 -0
  318. package/src/components/Customs/SyRadioGroup/SyRadioGroup.mdx +37 -0
  319. package/src/components/Customs/SyRadioGroup/SyRadioGroup.stories.ts +665 -0
  320. package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +324 -0
  321. package/src/components/Customs/SyRadioGroup/locales.ts +3 -0
  322. package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.a11y.spec.ts +30 -0
  323. package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.spec.ts +135 -0
  324. package/src/components/Customs/SyTabs/SyTabs.stories.ts +33 -0
  325. package/src/components/Customs/SyTabs/SyTabs.vue +1 -1
  326. package/src/components/Customs/SyTabs/tests/SyTabs.a11y.spec.ts +51 -0
  327. package/src/components/Customs/SyTextField/SyTextField.stories.ts +3 -0
  328. package/src/components/Customs/SyTextField/SyTextField.vue +232 -199
  329. package/src/components/Customs/SyTextField/tests/SyTextField.a11y.spec.ts +27 -0
  330. package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +32 -2
  331. package/src/components/DataList/DataList.mdx +3 -1
  332. package/src/components/DataList/DataList.stories.ts +67 -17
  333. package/src/components/DataList/DataList.vue +13 -1
  334. package/src/components/DataList/tests/DataList.a11y.spec.ts +35 -0
  335. package/src/components/DataListGroup/DataListGroup.stories.ts +42 -12
  336. package/src/components/DataListGroup/DataListGroup.vue +14 -1
  337. package/src/components/DataListGroup/tests/DataListGroup.a11y.spec.ts +24 -0
  338. package/src/components/DataListItem/DataListItem.vue +10 -2
  339. package/src/components/DataListItem/tests/DataListItem.a11y.spec.ts +31 -0
  340. package/src/components/DataListItem/tests/DataListItem.spec.ts +1 -1
  341. package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +45 -0
  342. package/src/components/DatePicker/CalendarMode/DatePicker.vue +230 -205
  343. package/src/components/DatePicker/CalendarMode/tests/DatePicker.a11y.spec.ts +27 -0
  344. package/src/components/DatePicker/CalendarMode/tests/DatePicker.events.spec.ts +5 -0
  345. package/src/components/DatePicker/CalendarMode/tests/DatePicker.spec.ts +179 -179
  346. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +54 -0
  347. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +337 -278
  348. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.a11y.spec.ts +26 -0
  349. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +234 -827
  350. package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +12 -0
  351. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +46 -81
  352. package/src/components/DatePicker/DateTextInput/tests/DateTextInput.a11y.spec.ts +27 -0
  353. package/src/components/DatePicker/DateTextInput/tests/DateTextInput.spec.ts +350 -0
  354. package/src/components/DatePicker/composables/index.ts +4 -1
  355. package/src/components/DatePicker/composables/tests/useCalendarKeyboardNavigation.spec.ts +270 -0
  356. package/src/components/DatePicker/composables/tests/useDatePickerViewMode.spec.ts +61 -3
  357. package/src/components/DatePicker/composables/tests/useDateRangeInput.spec.ts +198 -0
  358. package/src/components/DatePicker/composables/tests/useDisplayedDateString.spec.ts +36 -2
  359. package/src/components/DatePicker/composables/tests/useInputHandler.spec.ts +755 -0
  360. package/src/components/DatePicker/composables/tests/useKeyboardEvents.spec.ts +168 -0
  361. package/src/components/DatePicker/composables/tests/useMonthButtonCustomization.spec.ts +40 -34
  362. package/src/components/DatePicker/composables/useAsteriskDisplay.ts +1 -2
  363. package/src/components/DatePicker/composables/useCalendarKeyboardNavigation.ts +155 -0
  364. package/src/components/DatePicker/composables/useDatePickerState.ts +163 -0
  365. package/src/components/DatePicker/composables/useDateRangeInput.ts +4 -8
  366. package/src/components/DatePicker/composables/useDateTextField.ts +156 -0
  367. package/src/components/DatePicker/composables/useHolidayHighlighting.ts +64 -0
  368. package/src/components/DatePicker/composables/useInputHandler.ts +25 -19
  369. package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +51 -26
  370. package/src/components/DatePicker/constants/messages.ts +0 -1
  371. package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +2 -2
  372. package/src/components/DatePicker/playground/ComplexDatePickerPlayground.vue +16 -8
  373. package/src/components/DiacriticPicker/tests/DiacriticPicker.a11y.spec.ts +46 -0
  374. package/src/components/DialogBox/DialogBox.stories.ts +5 -2
  375. package/src/components/DialogBox/DialogBox.vue +5 -0
  376. package/src/components/DialogBox/config.ts +5 -0
  377. package/src/components/DialogBox/tests/DialogBox.a11y.spec.ts +43 -0
  378. package/src/components/DownloadBtn/tests/DownloadBtn.a11y.spec.ts +26 -0
  379. package/src/components/ErrorPage/ErrorPage.stories.ts +60 -0
  380. package/src/components/ErrorPage/ErrorPage.vue +1 -1
  381. package/src/components/ErrorPage/tests/ErrorPage.a11y.spec.ts +29 -0
  382. package/src/components/ErrorPage/tests/ErrorPage.spec.ts +17 -0
  383. package/src/components/ExternalLinks/ExternalLinks.stories.ts +21 -0
  384. package/src/components/ExternalLinks/tests/ExternalLinks.a11y.spec.ts +39 -0
  385. package/src/components/ExternalLinks/tests/__snapshots__/ExternalLinks.spec.ts.snap +0 -1
  386. package/src/components/FileList/FileList.stories.ts +3 -0
  387. package/src/components/FileList/tests/FileList.a11y.spec.ts +41 -0
  388. package/src/components/FilePreview/FilePreview.stories.ts +3 -0
  389. package/src/components/FilePreview/tests/FilePreview.a11y.spec.ts +47 -0
  390. package/src/components/FileUpload/tests/FileUpload.a11y.spec.ts +25 -0
  391. package/src/components/FilterInline/FilterInline.stories.ts +15 -0
  392. package/src/components/FilterInline/FilterInline.vue +8 -4
  393. package/src/components/FilterInline/tests/FilterInline.a11y.spec.ts +36 -0
  394. package/src/components/FilterInline/tests/__snapshots__/FilterInline.spec.ts.snap +0 -3
  395. package/src/components/FilterSideBar/Accessibilite.stories.ts +4 -0
  396. package/src/components/FilterSideBar/FilterSideBar.stories.ts +33 -11
  397. package/src/components/FilterSideBar/FilterSideBar.vue +146 -83
  398. package/src/components/FilterSideBar/locales.ts +6 -0
  399. package/src/components/FilterSideBar/tests/FilterSideBar.a11y.spec.ts +59 -0
  400. package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +2 -2
  401. package/src/components/FooterBar/Accessibilite.mdx +67 -11
  402. package/src/components/FooterBar/FooterBar.vue +1 -1
  403. package/src/components/FooterBar/config.ts +2 -2
  404. package/src/components/FooterBar/tests/FooterBar.a11y.spec.ts +31 -0
  405. package/src/components/FooterBar/tests/FooterBarConfig.spec.ts +1 -1
  406. package/src/components/FooterBar/tests/__snapshots__/FooterBar.spec.ts.snap +1 -1
  407. package/src/components/FranceConnectBtn/tests/FranceConnectBtn.a11y.spec.ts +25 -0
  408. package/src/components/HeaderBar/HeaderBar.stories.ts +21 -0
  409. package/src/components/HeaderBar/HeaderBar.vue +47 -40
  410. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderBurgerMenu.stories.ts +12 -0
  411. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.stories.ts +3 -0
  412. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.vue +4 -0
  413. package/src/components/HeaderBar/HeaderBurgerMenu/menu.scss +17 -7
  414. package/src/components/HeaderBar/consts.scss +0 -1
  415. package/src/components/HeaderBar/tests/HeaderBar.a11y.spec.ts +33 -0
  416. package/src/components/HeaderBar/tests/__snapshots__/HeaderBar.spec.ts.snap +58 -57
  417. package/src/components/HeaderLoading/tests/HeaderLoading.a11y.spec.ts +25 -0
  418. package/src/components/HeaderNavigationBar/HeaderNavigationBar.stories.ts +42 -0
  419. package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +4 -0
  420. package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +6 -2
  421. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.a11y.spec.ts +45 -0
  422. package/src/components/HeaderToolbar/HeaderToolbar.stories.ts +6 -0
  423. package/src/components/HeaderToolbar/HeaderToolbar.vue +0 -3
  424. package/src/components/HeaderToolbar/tests/HeaderToolbar.a11y.spec.ts +25 -0
  425. package/src/components/LangBtn/LangBtn.stories.ts +12 -0
  426. package/src/components/LangBtn/tests/LangBtn.a11y.spec.ts +25 -0
  427. package/src/components/Logo/tests/Logo.a11y.spec.ts +20 -0
  428. package/src/components/LogoBrandSection/tests/LogoBrandSection.a11y.spec.ts +38 -0
  429. package/src/components/LunarCalendar/LunarCalendar.mdx +33 -0
  430. package/src/components/LunarCalendar/LunarCalendar.stories.ts +232 -0
  431. package/src/components/LunarCalendar/LunarCalendar.vue +57 -0
  432. package/src/components/LunarCalendar/tests/LunarCalendar.a11y.spec.ts +31 -0
  433. package/src/components/LunarCalendar/tests/LunarCalendar.spec.ts +79 -0
  434. package/src/components/LunarCalendar/useLunarCalendarRules.ts +96 -0
  435. package/src/components/LunarCalendar/useLunarCalendarValidation.ts +47 -0
  436. package/src/components/MaintenancePage/MaintenancePage.stories.ts +46 -0
  437. package/src/components/MaintenancePage/MaintenancePage.vue +7 -5
  438. package/src/components/MaintenancePage/tests/MaintenancePage.a11y.spec.ts +21 -0
  439. package/src/components/NirField/NirField.stories.ts +6 -0
  440. package/src/components/NirField/tests/NirField.a11y.spec.ts +32 -0
  441. package/src/components/NotFoundPage/NotFoundPage.stories.ts +56 -0
  442. package/src/components/NotFoundPage/NotFoundPage.vue +7 -5
  443. package/src/components/NotFoundPage/tests/NotFoundPage.a11y.spec.ts +31 -0
  444. package/src/components/NotificationBar/Notification/Notification.vue +203 -0
  445. package/src/components/NotificationBar/NotificationBar.stories.ts +151 -140
  446. package/src/components/NotificationBar/NotificationBar.vue +148 -202
  447. package/src/components/NotificationBar/config.ts +1 -1
  448. package/src/components/NotificationBar/tests/NotificationBar.a11y.spec.ts +66 -0
  449. package/src/components/NotificationBar/tests/NotificationBar.spec.ts +173 -177
  450. package/src/components/NotificationBar/tests/__snapshots__/NotificationBar.spec.ts.snap +67 -29
  451. package/src/components/PageContainer/tests/PageContainer.a11y.spec.ts +27 -0
  452. package/src/components/PaginatedTable/PaginatedTable.stories.ts +21 -10
  453. package/src/components/PaginatedTable/PaginatedTable.vue +72 -36
  454. package/src/components/PaginatedTable/tests/PaginatedTable.a11y.spec.ts +43 -0
  455. package/src/components/PasswordField/PasswordField.stories.ts +39 -0
  456. package/src/components/PasswordField/tests/PasswordField.a11y.spec.ts +26 -0
  457. package/src/components/PeriodField/tests/PeriodField.a11y.spec.ts +31 -0
  458. package/src/components/PhoneField/PhoneField.stories.ts +51 -0
  459. package/src/components/PhoneField/PhoneField.vue +102 -83
  460. package/src/components/PhoneField/tests/PhoneField.a11y.spec.ts +34 -0
  461. package/src/components/RangeField/tests/RangeField.a11y.spec.ts +32 -0
  462. package/src/components/RatingPicker/RatingPicker.stories.ts +21 -0
  463. package/src/components/SearchListField/tests/SearchListField.spec.ts +7 -53
  464. package/src/components/SkipLink/Accessibilite.mdx +59 -13
  465. package/src/components/SkipLink/SkipLink.stories.ts +41 -8
  466. package/src/components/SubHeader/SubHeader.stories.ts +178 -92
  467. package/src/components/SubHeader/SubHeader.vue +84 -71
  468. package/src/components/SubHeader/config.ts +1 -1
  469. package/src/components/SyAlert/SyAlert.vue +6 -3
  470. package/src/components/SyTextArea/SyTextArea.stories.ts +40 -0
  471. package/src/components/SyTextArea/SyTextArea.vue +13 -0
  472. package/src/components/SyTextArea/locales.ts +1 -0
  473. package/src/components/SyTextArea/tests/SyTextArea.spec.ts +42 -0
  474. package/src/components/TableToolbar/TableToolbar.stories.ts +3 -0
  475. package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +24 -72
  476. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +591 -24
  477. package/src/components/Tables/SyServerTable/SyServerTable.vue +19 -13
  478. package/src/components/Tables/SyTable/FilterRules.stories.ts +12 -0
  479. package/src/components/Tables/SyTable/SyTable.stories.ts +460 -18
  480. package/src/components/Tables/SyTable/SyTable.vue +16 -11
  481. package/src/components/Tables/common/TableHeader.vue +16 -7
  482. package/src/components/Tables/common/filters/DateFilter.vue +1 -1
  483. package/src/components/Tables/common/locales.ts +1 -0
  484. package/src/components/Tables/common/tableFilterUtils.ts +3 -3
  485. package/src/components/Tables/common/types.ts +4 -2
  486. package/src/components/Tables/common/useTableCheckbox.ts +4 -3
  487. package/src/components/Tables/common/useTableFilter.ts +2 -2
  488. package/src/components/Tables/common/useTableItems.ts +4 -19
  489. package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +31 -1
  490. package/src/components/UserMenuBtn/UserMenuBtn.vue +2 -1
  491. package/src/components/UserMenuBtn/tests/UserMenuBtn.a11y.spec.ts +31 -0
  492. package/src/components/index.ts +2 -0
  493. package/src/composables/validation/tests/useFormValidation.spec.ts +251 -0
  494. package/src/composables/validation/tests/useValidatable.spec.ts +90 -0
  495. package/src/directives/lockFocus.ts +12 -2
  496. package/src/stories/Accessibilite/Audit/Exemptions-derogations.mdx +241 -0
  497. package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +17 -10
  498. package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +16 -0
  499. package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +160 -106
  500. package/src/stories/Accessibilite/Vuetify/VuetifyItems.ts +2 -1
  501. package/src/stories/GuideDuDev/ClassesUtilitaires/DataUtilities.mdx +6 -6
  502. package/src/stories/GuideDuDev/ClassesUtilitaires/DomBrowserUtilities.mdx +52 -59
  503. package/src/stories/GuideDuDev/ClassesUtilitaires/FormattingUtilities.mdx +28 -8
  504. package/src/stories/GuideDuDev/ClassesUtilitaires/StorageUtilities.mdx +2 -2
  505. package/src/stories/GuideDuDev/ClassesUtilitaires/ValidationRules.mdx +3 -3
  506. package/src/stories/GuideDuDev/ClassesUtilitaires/ValidationUtilities.mdx +11 -11
  507. package/src/stories/GuideDuDev/ClassesUtilitaires/index.mdx +24 -14
  508. package/src/stories/GuideDuDev/MigrationDepuisBridge.mdx +1 -1
  509. package/src/stories/GuideDuDev/moduleDeNotification.mdx +1 -1
  510. package/src/stories/accessibility/AccessibilityGuideLayout.mdx +87 -0
  511. package/src/stories/styles/accessibility-guide.css +153 -0
  512. package/src/utils/formatNir/formatNir.ts +15 -0
  513. package/src/utils/index.ts +1 -0
  514. package/src/utils/insertAt.ts +11 -0
  515. package/src/utils/rules/isDateValid/IsDateValid.mdx +2 -2
  516. package/src/utils/rules/isDateValid/IsDateValid.stories.ts +6 -4
  517. package/src/utils/rules/isDateValid/index.ts +23 -8
  518. package/src/utils/rules/isDateValid/tests/isDateValid.spec.ts +9 -0
  519. package/src/utils/rules/isExactLength/IsExactLenght.mdx +1 -1
  520. package/src/utils/rules/isHolidayDay/IsHolidayDay.mdx +19 -7
  521. package/src/utils/rules/isHolidayDay/index.ts +6 -8
  522. package/src/utils/rules/isHolidayDay/tests/isHolidayDay.spec.ts +13 -1
  523. package/src/utils/rules/isNotAfterDate/IsNotAfterDate.mdx +2 -2
  524. package/src/utils/rules/isNotAfterDate/IsNotAfterDate.stories.ts +9 -2
  525. package/src/utils/rules/isNotAfterDate/index.ts +5 -12
  526. package/src/utils/rules/isNotAfterDate/tests/isNotAfterDate.spec.ts +20 -0
  527. package/src/utils/rules/isNotAfterToday/IsNotAfterToday.mdx +2 -2
  528. package/src/utils/rules/isNotAfterToday/IsNotAfterToday.stories.ts +8 -2
  529. package/src/utils/rules/isNotAfterToday/index.ts +6 -6
  530. package/src/utils/rules/isNotAfterToday/tests/isNotAfterToday.spec.ts +20 -0
  531. package/src/utils/rules/isNotBeforeDate/IsNotBeforeDate.mdx +2 -2
  532. package/src/utils/rules/isNotBeforeDate/index.ts +5 -12
  533. package/src/utils/rules/isNotBeforeDate/tests/IsNotBeforeDate.spec.ts +20 -0
  534. package/src/utils/rules/isNotBeforeToday/IsNotBeforeToday.mdx +2 -2
  535. package/src/utils/rules/isNotBeforeToday/IsNotBeforeToday.stories.ts +8 -2
  536. package/src/utils/rules/isNotBeforeToday/index.ts +6 -6
  537. package/src/utils/rules/isNotBeforeToday/tests/notBeforeToday.spec.ts +19 -0
  538. package/src/utils/rules/validateDateValue.ts +37 -0
  539. package/src/vuetifyConfig.ts +6 -2
  540. package/dist/components/Customs/Selects/SelectBtnField/config.d.ts +0 -11
  541. package/dist/components/DatePicker/composables/useIconState.d.ts +0 -17
  542. package/dist/components/DatePicker/tests/setup.d.ts +0 -75370
  543. package/dist/components/Tables/common/formatters.d.ts +0 -17
  544. package/dist/main-CbBVJ_le.js +0 -34377
  545. package/dist/stories/Accessibilite/Vuetify/VuetifyItems.d.ts +0 -70
  546. package/dist/stories/DesignTokens/StylesTypographiques.stories.new.d.ts +0 -8
  547. package/dist/stories/DesignTokens/TypographyDisplay.d.ts +0 -28
  548. package/dist/stories/DesignTokens/vue-shims.d.ts +0 -6
  549. package/src/components/Amelipro/AmeliproMultipleFoldingCard/tests/AmeliproMultipleFoldingCard.spec.ts +0 -40
  550. package/src/components/Amelipro/AmeliproMultipleFoldingCard/tests/__snapshots__/AmeliproMultipleFoldingCard.spec.ts.snap +0 -369
  551. package/src/components/Amelipro/ServiceMenu/ServiceBtn/tests/ServiceBtn.spec.ts +0 -21
  552. package/src/components/Amelipro/ServiceMenu/ServiceBtn/tests/__snapshots__/ServiceBtn.spec.ts.snap +0 -100
  553. package/src/components/Amelipro/ServiceMenu/ServiceList/tests/ServiceList.spec.ts +0 -25
  554. package/src/components/Amelipro/ServiceMenu/ServiceList/tests/__snapshots__/ServiceList.spec.ts.snap +0 -245
  555. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/tests/ServiceMenuContent.spec.ts +0 -45
  556. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/tests/__snapshots__/ServiceMenuContent.spec.ts.snap +0 -787
  557. package/src/components/Amelipro/ServiceMenu/tests/ServiceMenu.spec.ts +0 -46
  558. package/src/components/Amelipro/ServiceMenu/tests/__snapshots__/ServiceMenu.spec.ts.snap +0 -111
  559. package/src/components/Amelipro/StructureMenu/StructureBtn/tests/StructureBtn.spec.ts +0 -17
  560. package/src/components/Amelipro/StructureMenu/StructureBtn/tests/__snapshots__/StructureBtn.spec.ts.snap +0 -34
  561. package/src/components/Amelipro/StructureMenu/StructureItem/tests/StructureItem.spec.ts +0 -21
  562. package/src/components/Amelipro/StructureMenu/StructureItem/tests/__snapshots__/StructureItem.spec.ts.snap +0 -106
  563. package/src/components/Amelipro/StructureMenu/StructureList/tests/StructureList.spec.ts +0 -33
  564. package/src/components/Amelipro/StructureMenu/StructureList/tests/__snapshots__/StructureList.spec.ts.snap +0 -353
  565. package/src/components/Amelipro/StructureMenu/StructureTabs/tests/StructureTabs.spec.ts +0 -60
  566. package/src/components/Amelipro/StructureMenu/StructureTabs/tests/__snapshots__/StructureTabs.spec.ts.snap +0 -824
  567. package/src/components/Amelipro/StructureMenu/tests/StructureMenu.spec.ts +0 -69
  568. package/src/components/Amelipro/StructureMenu/tests/__snapshots__/StructureMenu.spec.ts.snap +0 -1383
  569. package/src/components/Amelipro/UserInformationSummary/tests/UserInformationSummary.spec.ts +0 -24
  570. package/src/components/Amelipro/UserMenu/UserMenuDetails/tests/UserMenuDetails.spec.ts +0 -33
  571. package/src/components/Amelipro/UserMenu/UserMenuDetails/tests/__snapshots__/UserMenuDetails.spec.ts.snap +0 -3
  572. package/src/components/Amelipro/UserMenu/tests/UserMenu.spec.ts +0 -34
  573. package/src/components/Amelipro/UserMenu/tests/__snapshots__/UserMenu.spec.ts.snap +0 -101
  574. package/src/components/Customs/Selects/SelectBtnField/config.ts +0 -11
  575. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.events.spec.ts +0 -151
  576. package/src/components/DatePicker/DateTextInput/DateTextInput.events.spec.ts +0 -148
  577. package/src/components/DatePicker/DateTextInput/DateTextInput.range.spec.ts +0 -361
  578. package/src/components/DatePicker/DateTextInput/DateTextInput.spec.ts +0 -709
  579. package/src/components/DatePicker/composables/tests/useIconState.spec.ts +0 -130
  580. package/src/components/DatePicker/composables/useIconState.ts +0 -53
  581. package/src/components/DatePicker/tests/DatePicker.validation.spec.ts +0 -4111
  582. package/src/components/DatePicker/tests/archiTest.md +0 -33
  583. package/src/components/DatePicker/tests/navigation.regression.spec.ts +0 -74
  584. package/src/components/DatePicker/tests/navigation.simple.spec.ts +0 -137
  585. package/src/components/DatePicker/tests/setup.ts +0 -243
  586. package/src/components/Tables/common/formatters.ts +0 -72
  587. package/src/components/Usages/tests/Usages.spec.ts +0 -155
@@ -1,20 +1,21 @@
1
1
  <script lang="ts" setup>
2
- import { ref, computed, watch, onMounted, onBeforeUnmount, nextTick, type ComponentPublicInstance } from 'vue'
2
+ import { ref, computed, watch, onMounted, onBeforeUnmount, nextTick, type ComponentPublicInstance, type Ref } from 'vue'
3
3
  import SyTextField from '../../Customs/SyTextField/SyTextField.vue'
4
4
  import DateTextInput from '../DateTextInput/DateTextInput.vue'
5
5
  import ComplexDatePicker from '../ComplexDatePicker/ComplexDatePicker.vue'
6
6
  import { VDatePicker } from 'vuetify/components'
7
- import { useValidation } from '@/composables/validation/useValidation'
7
+ import { useValidation, type ValidationResult } from '@/composables/validation/useValidation'
8
8
  import { useValidatable } from '@/composables/validation/useValidatable'
9
9
  import { useDateFormat } from '@/composables/date/useDateFormatDayjs'
10
10
  import { useDateInitialization, type DateValue, type DateInput } from '@/composables/date/useDateInitializationDayjs'
11
11
  import { useDatePickerAccessibility } from '@/composables/date/useDatePickerAccessibility'
12
- import { useWeekendDays, useTodayButton, useDatePickerViewMode, useDateSelection, useMonthButtonCustomization, useDisplayedDateString, useAsteriskDisplay } from '../composables'
12
+ import { useWeekendDays, useTodayButton, useDatePickerViewMode, useDateSelection, useMonthButtonCustomization, useDisplayedDateString, useAsteriskDisplay, useDateValidation, useDatePickerState, useHolidayHighlighting, useCalendarKeyboardNavigation } from '../composables'
13
13
  import { DATE_PICKER_MESSAGES } from '../constants/messages'
14
14
  import dayjs from 'dayjs'
15
15
  import customParseFormat from 'dayjs/plugin/customParseFormat'
16
- import { mdiCalendar } from '@mdi/js'
17
- import { useHolidayDay } from '@/composables/date/useHolidayDay'
16
+ import { mdiCalendarMonthOutline } from '@mdi/js'
17
+ import type { DateObjectValue } from '../types'
18
+ import SyIcon from '@/components/Customs/SyIcon/SyIcon.vue'
18
19
 
19
20
  // Initialiser les plugins dayjs
20
21
  dayjs.extend(customParseFormat)
@@ -31,7 +32,7 @@
31
32
 
32
33
  const props = withDefaults(defineProps<{
33
34
  modelValue?: DateInput
34
- label?: string
35
+ label: string
35
36
  placeholder?: string
36
37
  format?: string
37
38
  dateFormatReturn?: string
@@ -43,9 +44,9 @@
43
44
  displayIcon?: boolean
44
45
  displayAppendIcon?: boolean
45
46
  displayPrependIcon?: boolean
46
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- mock Axios headers
47
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
47
48
  customRules?: { type: string, options: any }[]
48
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- mock Axios headers
49
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
49
50
  customWarningRules?: { type: string, options: any }[]
50
51
  disabled?: boolean
51
52
  noIcon?: boolean
@@ -75,8 +76,7 @@
75
76
  persistentHint?: boolean
76
77
  }>(), {
77
78
  modelValue: undefined,
78
- label: DATE_PICKER_MESSAGES.LABEL_DEFAULT,
79
- placeholder: DATE_PICKER_MESSAGES.PLACEHOLDER_DEFAULT,
79
+ placeholder: undefined,
80
80
  format: DATE_PICKER_MESSAGES.FORMAT_DEFAULT,
81
81
  dateFormatReturn: '',
82
82
  isBirthDate: false,
@@ -121,7 +121,7 @@
121
121
  const { todayInString, headerDate } = useTodayButton(props)
122
122
  const { labelWithAsterisk } = useAsteriskDisplay(props)
123
123
 
124
- const selectedDates = ref<Date | Date[] | null>(
124
+ const selectedDates = ref<Date | (Date | null)[] | null>(
125
125
  initializeSelectedDates(props.modelValue as DateInput | null, props.format, props.dateFormatReturn),
126
126
  )
127
127
 
@@ -198,16 +198,59 @@
198
198
  clearValidation: () => {},
199
199
  }
200
200
 
201
+ const validateFieldForDateValidation = (
202
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- compat signature with useDateValidation
203
+ value: any,
204
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- compat signature with useDateValidation
205
+ rules: any[] = [],
206
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- compat signature with useDateValidation
207
+ warningRules: any[] = [],
208
+ ): ValidationResult => {
209
+ if (props.readonly) {
210
+ return {
211
+ hasError: false,
212
+ hasWarning: false,
213
+ hasSuccess: false,
214
+ state: {
215
+ errors: [],
216
+ warnings: [],
217
+ successes: [],
218
+ },
219
+ }
220
+ }
221
+
222
+ return validateField(value, rules, warningRules, []) as ValidationResult
223
+ }
224
+
201
225
  const errorMessages = errors
202
226
  const warningMessages = warnings
203
227
  const successMessages = successes
204
- const displayFormattedDate = ref('')
205
-
206
- const textInputValue = ref<string>('')
207
228
 
208
229
  // Variable pour éviter les mises à jour récursives
209
230
  const isUpdatingFromInternal = ref(false)
231
+ const preventCloseOnKeyboardNavigation = ref(false)
210
232
  const isInitialValidation = ref(true)
233
+ const currentRangeIsValid = ref(true)
234
+ const getRangeValidationError = ref('')
235
+
236
+ const { validateDates: coreValidateDates } = useDateValidation({
237
+ noCalendar: props.noCalendar,
238
+ // On garde la logique "required" spécifique à CalendarMode
239
+ required: false,
240
+ displayRange: props.displayRange,
241
+ disableErrorHandling: props.disableErrorHandling,
242
+ customRules: computed(() => props.customRules),
243
+ customWarningRules: computed(() => props.customWarningRules),
244
+ selectedDates: selectedDates as Ref<DateObjectValue>,
245
+ isUpdatingFromInternal,
246
+ currentRangeIsValid,
247
+ getRangeValidationError,
248
+ clearValidation,
249
+ validateField: validateFieldForDateValidation,
250
+ errors,
251
+ warnings,
252
+ successes,
253
+ })
211
254
 
212
255
  // Fonction pour valider les dates
213
256
  const validateDates = (forceValidation = false) => {
@@ -239,28 +282,27 @@
239
282
  return
240
283
  }
241
284
  // Permettre aux custom rules de s'exécuter même sur des champs vides
242
- if (!selectedDates.value && (!props.customRules || props.customRules.length === 0)) return
285
+ if (!selectedDates.value) {
286
+ if (!props.customRules || props.customRules.length === 0) return
243
287
 
244
- // Préparer les dates à valider
245
- const datesToValidate = Array.isArray(selectedDates.value)
246
- ? selectedDates.value
247
- : [selectedDates.value]
248
-
249
- // Valider chaque date
250
- // Ne pas afficher d'erreurs de custom rules si on est dans le contexte du mounted initial
251
- if (shouldDisplayErrors && (!isInitialValidation.value || forceValidation)) {
252
- datesToValidate.forEach((date) => {
288
+ if (shouldDisplayErrors && (!isInitialValidation.value || forceValidation)) {
289
+ // Comportement historique : exécuter directement les règles personnalisées même si la valeur est vide
253
290
  validateField(
254
- date,
291
+ selectedDates.value,
255
292
  props.customRules,
256
293
  props.customWarningRules,
257
294
  )
258
- })
295
+ // Dédoublonner les messages comme auparavant
296
+ errors.value = [...new Set(errors.value)]
297
+ warnings.value = [...new Set(warnings.value)]
298
+ successes.value = [...new Set(successes.value)]
299
+ }
300
+ return
301
+ }
259
302
 
260
- // Dédoublonner les messages (au cas plusieurs dates auraient les mêmes messages)
261
- errors.value = [...new Set(errors.value)]
262
- warnings.value = [...new Set(warnings.value)]
263
- successes.value = [...new Set(successes.value)]
303
+ // Ne pas afficher d'erreurs de custom rules si on est dans le contexte du mounted initial
304
+ if (shouldDisplayErrors && (!isInitialValidation.value || forceValidation)) {
305
+ coreValidateDates(forceValidation)
264
306
  }
265
307
  }
266
308
 
@@ -272,8 +314,10 @@
272
314
  try {
273
315
  isUpdatingFromInternal.value = true
274
316
  emit('update:modelValue', value)
275
- isDatePickerVisible.value = false
276
- emit('closed')
317
+ if (!preventCloseOnKeyboardNavigation.value) {
318
+ isDatePickerVisible.value = false
319
+ emit('closed')
320
+ }
277
321
  validateDates()
278
322
  }
279
323
  finally {
@@ -298,20 +342,17 @@
298
342
  // Mettre à jour textInputValue pour le DateTextInput
299
343
  try {
300
344
  isUpdatingFromInternal.value = true
301
- if (Array.isArray(newValue)) {
302
- // Pour les plages de dates, formater correctement la plage complète
303
- if (props.displayRange && newValue.length >= 2) {
304
- // Formater la plage complète pour l'affichage
305
- textInputValue.value = `${formatDate(newValue[0], props.format)} - ${formatDate(newValue[1], props.format)}`
306
- }
307
- else if (newValue.length > 0) {
308
- // Si on n'a qu'une date ou mode non-range, utiliser la première date
309
- textInputValue.value = formatDate(newValue[0], props.format)
345
+ if (Array.isArray(newValue) && props.displayRange && newValue.length >= 2 && props.noCalendar) {
346
+ // Cas spécifique noCalendar + displayRange : conserver la chaîne de plage complète
347
+ const start = newValue[0]
348
+ const end = newValue[1]
349
+ if (start && end) {
350
+ textInputValue.value = `${formatDate(start, props.format)} - ${formatDate(end, props.format)}`
310
351
  }
311
352
  }
312
353
  else {
313
- // Pour une date unique
314
- textInputValue.value = formatDate(newValue, props.format)
354
+ // Cas générique : déléguer au composable pour synchroniser l'input
355
+ syncTextInputFromSelection()
315
356
  }
316
357
  }
317
358
  finally {
@@ -342,50 +383,26 @@
342
383
  props.displayRange,
343
384
  )
344
385
 
345
- // Date(s) formatée(s) en chaîne de caractères pour la valeur de retour
346
- const formattedDate = computed<DateValue>(() => {
347
- if (!selectedDates.value) return ''
348
-
349
- const returnFormat = props.dateFormatReturn || props.format
350
-
351
- // Pour les plages de dates, utiliser rangeBoundaryDates s'il est disponible
352
- if (props.displayRange && rangeBoundaryDates.value) {
353
- return [
354
- formatDate(rangeBoundaryDates.value[0], returnFormat),
355
- formatDate(rangeBoundaryDates.value[1], returnFormat),
356
- ] as [string, string]
357
- }
358
- else if (Array.isArray(selectedDates.value)) {
359
- if (selectedDates.value.length >= 2) {
360
- return [
361
- formatDate(selectedDates.value[0], returnFormat),
362
- formatDate(selectedDates.value[selectedDates.value.length - 1], returnFormat),
363
- ] as [string, string]
364
- }
365
- return ''
366
- }
367
-
368
- return formatDate(selectedDates.value, returnFormat)
386
+ const {
387
+ textInputValue,
388
+ displayFormattedDate,
389
+ formattedDate,
390
+ displayFormattedFromSelectedDates,
391
+ syncFromModelValue,
392
+ syncTextInputFromSelection,
393
+ } = useDatePickerState({
394
+ selectedDates,
395
+ rangeBoundaryDates,
396
+ format: props.format,
397
+ dateFormatReturn: props.dateFormatReturn,
398
+ displayRange: props.displayRange,
399
+ parseDate,
400
+ formatDate,
401
+ initializeSelectedDates,
402
+ validateDates,
403
+ updateModel,
369
404
  })
370
405
 
371
- watch(formattedDate, (newValue) => {
372
- if (!newValue || newValue === '') {
373
- textInputValue.value = ''
374
- }
375
- else if (typeof newValue === 'string') {
376
- // Si on a un format de retour différent, on doit convertir la date
377
- if (props.dateFormatReturn) {
378
- const date = parseDate(newValue, props.dateFormatReturn)
379
- if (date) {
380
- textInputValue.value = formatDate(date, props.format)
381
- }
382
- }
383
- else {
384
- textInputValue.value = newValue
385
- }
386
- }
387
- }, { immediate: true })
388
-
389
406
  // Gestionnaire pour les mises à jour du DateTextInput en mode no-calendar
390
407
  const handleDateTextInputUpdate = (value: DateValue) => {
391
408
  if (isUpdatingFromInternal.value) return
@@ -493,22 +510,8 @@
493
510
  }
494
511
  })
495
512
 
496
- // Date(s) formatée(s) en chaîne de caractères pour l'affichage
497
- const displayFormattedDateComputed = computed(() => {
498
- if (!selectedDates.value) return null
499
-
500
- if (Array.isArray(selectedDates.value)) {
501
- if (selectedDates.value.length >= 2) {
502
- return `${formatDate(selectedDates.value[0], props.format)} - ${formatDate(
503
- selectedDates.value[selectedDates.value.length - 1],
504
- props.format,
505
- )}`
506
- }
507
- return formatDate(selectedDates.value[0], props.format)
508
- }
509
-
510
- return formatDate(selectedDates.value, props.format)
511
- })
513
+ // Date(s) formatée(s) en chaîne de caractères pour l'affichage (centralisée dans useDatePickerState)
514
+ const displayFormattedDateComputed = displayFormattedFromSelectedDates
512
515
 
513
516
  watch(displayFormattedDateComputed, (newValue) => {
514
517
  if (!props.noCalendar && newValue) {
@@ -589,6 +592,28 @@
589
592
  document.removeEventListener('click', handleClickOutside)
590
593
  })
591
594
 
595
+ useCalendarKeyboardNavigation({
596
+ isDatePickerVisible,
597
+ datePickerRef: datePickerRef as unknown as Ref<ComponentPublicInstance | null>,
598
+ getCurrentDate: () => {
599
+ const value = selectedDates.value
600
+ if (!value) return null
601
+
602
+ if (Array.isArray(value)) {
603
+ return value[0] ?? null
604
+ }
605
+
606
+ return value
607
+ },
608
+ setCurrentDate: (date: Date) => {
609
+ preventCloseOnKeyboardNavigation.value = true
610
+ updateSelectedDates([date])
611
+ queueMicrotask(() => {
612
+ preventCloseOnKeyboardNavigation.value = false
613
+ })
614
+ },
615
+ })
616
+
592
617
  const validateOnSubmit = () => {
593
618
  // Si le mode noCalendar est activé, on délègue la validation au DateTextInput
594
619
  if (props.noCalendar) {
@@ -642,59 +667,16 @@
642
667
  })
643
668
  }
644
669
 
645
- // Propriété calculée pour récupérer les jours fériés de l'année courante
646
- const holidays = computed(() => {
647
- // Utiliser le composable useHolidayDay pour récupérer les jours fériés
648
- const { getJoursFeries } = useHolidayDay()
649
-
650
- // Convertir l'année en nombre, utiliser l'année courante comme valeur par défaut
651
- const year = parseInt(currentYear.value || new Date().getFullYear().toString(), 10)
652
-
653
- // Récupérer les jours fériés au format DD/MM/YYYY
654
- const joursFeries = getJoursFeries(year)
655
-
656
- // Tableau pour stocker les jours fériés
657
- const holidayDates: Date[] = []
658
-
659
- // Convertir les dates du format string en objets Date
660
- joursFeries.forEach((dateStr) => {
661
- const [day, month, yearStr] = dateStr.split('/')
662
- // Mois -1 car les mois dans Date sont indexés à partir de 0
663
- holidayDates.push(new Date(parseInt(yearStr), parseInt(month) - 1, parseInt(day)))
664
- })
665
-
666
- // Retourner le tableau des jours fériés
667
- return holidayDates
670
+ // Marquage des jours fériés partagé via le composable dédié
671
+ const { markHolidayDays } = useHolidayHighlighting({
672
+ currentMonth,
673
+ currentYear,
674
+ isDisplayHolidayDays: () => props.displayHolidayDays,
675
+ rootElement: computed(
676
+ () => datePickerRef.value?.$el as HTMLElement | null,
677
+ ),
668
678
  })
669
679
 
670
- // Fonction pour marquer les jours fériés dans le calendrier
671
- const markHolidayDays = () => {
672
- if (!props.displayHolidayDays) return
673
- // Attendre que le DOM soit mis à jour
674
- nextTick(() => {
675
- // Récupérer l'année et le mois courants
676
- const year = parseInt(currentYear.value || new Date().getFullYear().toString(), 10)
677
- // Utiliser currentMonth.value !== null pour vérifier si la valeur est définie, même si c'est 0
678
- const month = parseInt(currentMonth.value !== null ? currentMonth.value : new Date().getMonth().toString(), 10)
679
-
680
- // Récupérer les jours fériés pour ce mois
681
- const monthHolidays = holidays.value.filter((holiday) => {
682
- // La comparaison doit tenir compte du fait que getMonth() retourne 0-11
683
- return holiday.getMonth() === month
684
- })
685
-
686
- // Pour chaque jour férié, trouver l'élément DOM correspondant et ajouter la classe
687
- monthHolidays.forEach((holiday) => {
688
- const day = holiday.getDate()
689
- const dateStr = `${year}-${String(month + 1).padStart(2, '0')}-${String(day).padStart(2, '0')}`
690
- const dayElements = document.querySelectorAll(`[data-v-date="${dateStr}"]`)
691
- dayElements.forEach((element) => {
692
- element.classList.add('holiday-day')
693
- })
694
- })
695
- })
696
- }
697
-
698
680
  // Utilisation du composable pour gérer le mode d'affichage du CalendarMode
699
681
  const { currentViewMode, handleViewModeUpdate, handleYearUpdate, handleMonthUpdate, resetViewMode } = useDatePickerViewMode(
700
682
  // Fonction qui retourne la valeur actuelle de isBirthDate (combinaison de isBirthDate et birthDate)
@@ -717,6 +699,7 @@
717
699
  resetViewMode()
718
700
  // Marquer les jours fériés lorsque le calendrier devient visible
719
701
  markHolidayDays()
702
+ customizeMonthButton()
720
703
  }
721
704
  if (!isVisible && props.isBirthDate) {
722
705
  // Réinitialiser le mode d'affichage au type birthdate
@@ -738,45 +721,6 @@
738
721
  }
739
722
  })
740
723
 
741
- const getIcon = () => {
742
- if (props.noCalendar || props.disableErrorHandling) {
743
- return
744
- }
745
- switch (true) {
746
- case errorMessages.value.length > 0:
747
- return 'error'
748
- case warningMessages.value.length > 0:
749
- return 'warning'
750
- case successMessages.value.length > 0:
751
- return 'success'
752
- default:
753
- return
754
- }
755
- }
756
-
757
- const syncFromModelValue = (newValue: DateInput | undefined) => {
758
- if (!newValue || newValue === '') {
759
- selectedDates.value = null
760
- textInputValue.value = ''
761
- displayFormattedDate.value = ''
762
- validateDates()
763
- return
764
- }
765
-
766
- selectedDates.value = initializeSelectedDates(newValue, props.format, props.dateFormatReturn)
767
-
768
- if (selectedDates.value) {
769
- const firstDate = Array.isArray(selectedDates.value)
770
- ? selectedDates.value[0]
771
- : selectedDates.value
772
-
773
- textInputValue.value = formatDate(firstDate, props.format)
774
- displayFormattedDate.value = displayFormattedDateComputed.value || ''
775
- }
776
-
777
- validateDates()
778
- }
779
-
780
724
  watch(() => props.modelValue, (newValue) => {
781
725
  if (isUpdatingFromInternal.value) {
782
726
  if (props.displayRange) {
@@ -894,6 +838,8 @@
894
838
  initializeSelectedDates,
895
839
  updateAccessibility,
896
840
  openDatePicker,
841
+ updateSelectedDates,
842
+ handleSelectToday,
897
843
  })
898
844
  </script>
899
845
 
@@ -969,7 +915,7 @@
969
915
  :show-week-number="props.showWeekNumber"
970
916
  :is-birth-date="props.isBirthDate || props.birthDate"
971
917
  :text-field-activator="props.textFieldActivator"
972
- :title="props.title || props.placeholder || undefined"
918
+ :title="props.title"
973
919
  :period="period"
974
920
  :auto-clamp="props.autoClamp"
975
921
  :label="props.label"
@@ -1003,7 +949,6 @@
1003
949
  ref="dateCalendarTextInputRef"
1004
950
  v-model="displayFormattedDate"
1005
951
  :append-icon="displayIcon && displayAppendIcon ? 'calendar' : undefined"
1006
- :append-inner-icon="getIcon()"
1007
952
  :class="[getMessageClasses(), 'label-hidden-on-focus']"
1008
953
  :error-messages="errorMessages"
1009
954
  :warning-messages="warningMessages"
@@ -1011,9 +956,8 @@
1011
956
  :disabled="props.disabled"
1012
957
  :disable-click-button="false"
1013
958
  :readonly="true"
1014
- :label="labelWithAsterisk || ''"
959
+ :label="labelWithAsterisk"
1015
960
  :placeholder="props.placeholder"
1016
- :display-persistent-placeholder="true"
1017
961
  :no-icon="props.noIcon"
1018
962
  :prepend-icon="displayIcon && !displayAppendIcon ? 'calendar' : undefined"
1019
963
  :variant-style="props.isOutlined ? 'outlined' : 'underlined'"
@@ -1025,7 +969,7 @@
1025
969
  :display-asterisk="props.displayAsterisk"
1026
970
  :is-clearable="!props.readonly"
1027
971
  :auto-clamp="props.autoClamp"
1028
- :title="props.title || props.placeholder || undefined"
972
+ :title="props.title"
1029
973
  :hint="props.hint"
1030
974
  :persistent-hint="props.persistentHint"
1031
975
  @click="openDatePickerOnClick"
@@ -1077,15 +1021,15 @@
1077
1021
  size="x-small"
1078
1022
  color="primary"
1079
1023
  :title="DATE_PICKER_MESSAGES.BUTTON_TODAY"
1080
- class="my-2 pa-2 mt-2"
1024
+ class="date-picker__today-button my-2 pa-2 mt-2"
1081
1025
  :ripple="false"
1082
1026
  @click="handleSelectToday"
1083
1027
  >
1084
- <VIcon
1085
- class="mr-1"
1086
- >
1087
- {{ mdiCalendar }}
1088
- </VIcon>
1028
+ <SyIcon
1029
+ size="16px"
1030
+ decorative
1031
+ :icon="mdiCalendarMonthOutline"
1032
+ />
1089
1033
  {{ DATE_PICKER_MESSAGES.BUTTON_TODAY }}
1090
1034
  </v-btn>
1091
1035
  </div>
@@ -1099,6 +1043,16 @@
1099
1043
  <style lang="scss" scoped>
1100
1044
  @use '@/assets/tokens';
1101
1045
 
1046
+ .date-picker-title {
1047
+ display: block;
1048
+ text-transform: lowercase;
1049
+ font-size: 0.875rem;
1050
+
1051
+ &::first-letter {
1052
+ text-transform: uppercase;
1053
+ }
1054
+ }
1055
+
1102
1056
  /* Style pour les jours fériés */
1103
1057
  :deep(.holiday-day) {
1104
1058
  background-color: rgb(255 193 7 / 10%);
@@ -1127,7 +1081,7 @@
1127
1081
  }
1128
1082
 
1129
1083
  .dp-width {
1130
- width: v-bind('props.width');
1084
+ width: v-bind(width);
1131
1085
  }
1132
1086
 
1133
1087
  .v-messages__message--success {
@@ -1211,10 +1165,18 @@
1211
1165
  }
1212
1166
  }
1213
1167
 
1168
+ :deep(.v-date-picker-month__day .v-btn:hover) {
1169
+ background-color: tokens.$colors-background-main;
1170
+ }
1171
+
1214
1172
  :deep(.v-date-picker-month__day--selected, .v-date-picker-month__day--adjacent) {
1215
1173
  opacity: 1;
1216
1174
  }
1217
1175
 
1176
+ :deep(.v-date-picker-month__day--selected .v-btn:hover) {
1177
+ background-color: tokens.$colors-background-accent-contrasted !important;
1178
+ }
1179
+
1218
1180
  .fade-enter-active,
1219
1181
  .fade-leave-active {
1220
1182
  transition: opacity 0.5s ease;
@@ -1226,12 +1188,12 @@
1226
1188
  }
1227
1189
 
1228
1190
  :deep(.weekend .v-date-picker-month__day--week-end .v-btn) {
1229
- background-color: #afb1b1;
1191
+ background-color: #b0b1b1;
1230
1192
  }
1231
1193
 
1232
1194
  /* div avant la class .v-date-picker-month__day--week-end */
1233
1195
  :deep(.weekend .v-date-picker-month__day:has(+ .v-date-picker-month__day--week-end) .v-btn) {
1234
- background-color: #afb1b1;
1196
+ background-color: #b0b1b1;
1235
1197
  }
1236
1198
 
1237
1199
  :deep(.v-date-picker-controls__mode-btn) {
@@ -1242,4 +1204,67 @@
1242
1204
  padding: 13px;
1243
1205
  }
1244
1206
 
1207
+ :deep(.custom-year-btn) {
1208
+ width: auto;
1209
+ height: 28px;
1210
+ }
1211
+
1212
+ :deep(.custom-year-btn::after) {
1213
+ background-color: #b0b1b1;
1214
+ padding: 10px 40px;
1215
+ text-decoration: none;
1216
+ display: inline-block;
1217
+ margin-left: -22px !important;
1218
+ cursor: pointer;
1219
+ border-radius: 9999px;
1220
+ }
1221
+
1222
+ :deep(.custom-month-btn::after) {
1223
+ background-color: #b0b1b1;
1224
+ text-decoration: none;
1225
+ display: inline-block;
1226
+ cursor: pointer;
1227
+ border-radius: 9999px;
1228
+ }
1229
+
1230
+ :deep(.v-picker__body .v-btn:focus-visible) {
1231
+ outline: 2px solid rgb(var(--v-theme-primary, '12, 65, 154'));
1232
+
1233
+ .v-btn__overlay {
1234
+ display: none;
1235
+ }
1236
+
1237
+ &::after {
1238
+ display: none;
1239
+ }
1240
+ }
1241
+
1242
+ :deep(.v-date-picker-months .v-btn__content) {
1243
+ font-size: 1rem;
1244
+ }
1245
+
1246
+ .date-picker__today-button {
1247
+ height: auto;
1248
+
1249
+ :deep(.v-btn__content) {
1250
+ font-size: 1rem;
1251
+ gap: 8px;
1252
+ }
1253
+
1254
+ &:focus-visible {
1255
+ outline: 2px solid rgb(var(--v-theme-primary, '12, 65, 154'));
1256
+
1257
+ :deep(.v-btn__overlay) {
1258
+ display: none;
1259
+ }
1260
+
1261
+ &::after {
1262
+ display: none;
1263
+ }
1264
+ }
1265
+ }
1266
+
1267
+ :deep(.v-picker__body .v-btn--active .v-btn__overlay) {
1268
+ opacity: 0;
1269
+ }
1245
1270
  </style>
@@ -0,0 +1,27 @@
1
+ // @vitest-environment jsdom
2
+
3
+ import { describe, it } from 'vitest'
4
+ import { mount } from '@vue/test-utils'
5
+ import { axe } from 'vitest-axe'
6
+ import { assertNoA11yViolations } from '@tests/unit/accessibility/axeUtils'
7
+ import DatePicker from '../DatePicker.vue'
8
+
9
+ // Scénario d’accessibilité : champ de date en mode calendrier,
10
+ // avec label et champ requis, calendrier fermé (état par défaut).
11
+
12
+ describe('DatePicker (CalendarMode) – accessibility (axe)', () => {
13
+ it('has no obvious axe violations in default state', async () => {
14
+ const wrapper = mount(DatePicker, {
15
+ props: {
16
+ label: 'Date de naissance',
17
+ format: 'DD/MM/YYYY',
18
+ required: true,
19
+ },
20
+ })
21
+
22
+ const results = await axe(wrapper.element as HTMLElement)
23
+ assertNoA11yViolations(results, 'DatePicker (CalendarMode) – default state', {
24
+ ignoreRules: ['region'],
25
+ })
26
+ })
27
+ })