@cnamts/synapse 1.0.14 → 1.0.16

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 (395) hide show
  1. package/README.md +0 -0
  2. package/dist/{DateFilter-isr8mXVb.js → DateFilter-DSwJUvBu.js} +12 -12
  3. package/dist/{NumberFilter-BOe7DqWX.js → NumberFilter-CwsbYyz4.js} +1 -1
  4. package/dist/{PeriodFilter-WTprpO40.js → PeriodFilter-csnEZU30.js} +1 -1
  5. package/dist/{SelectFilter-CqlG5dmI.js → SelectFilter-Bd5fndzR.js} +1 -1
  6. package/dist/{TextFilter-fVW5bsRw.js → TextFilter-B6gxzq2a.js} +1 -1
  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 +9 -0
  29. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.d.ts +1288 -1284
  30. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.d.ts +1936 -1930
  31. package/dist/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.d.ts +3 -3
  32. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +2838 -2865
  33. package/dist/components/Amelipro/AmeliproStateTile/AmeliproStateTile.d.ts +3 -3
  34. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +2843 -2870
  35. package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +397 -397
  36. package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +642 -640
  37. package/dist/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.d.ts +233 -5
  38. package/dist/components/Amelipro/AmeliproTransmission/AmeliproTransmission.d.ts +9 -9
  39. package/dist/components/Captcha/CaptchaHelpdesk.d.ts +6 -0
  40. package/dist/components/CookieBanner/CookieBanner.d.ts +117 -119
  41. package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +484 -484
  42. package/dist/components/CookiesSelection/CookiesSelection.d.ts +104 -106
  43. package/dist/components/Customs/Selects/SelectBtnField/SelectBtnField.d.ts +14 -10
  44. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +118 -129
  45. package/dist/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.d.ts +1 -3
  46. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +1 -1
  47. package/dist/components/Customs/SyForm/SyForm.d.ts +60 -53
  48. package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +88 -0
  49. package/dist/components/Customs/SyRadioGroup/locales.d.ts +3 -0
  50. package/dist/components/Customs/SyTextField/SyTextField.d.ts +644 -642
  51. package/dist/components/DataList/DataList.d.ts +6 -1
  52. package/dist/components/DataListGroup/DataListGroup.d.ts +14 -2
  53. package/dist/components/DataListItem/DataListItem.d.ts +3 -0
  54. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +2988 -3100
  55. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +1458 -1558
  56. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +655 -651
  57. package/dist/components/DatePicker/composables/index.d.ts +4 -0
  58. package/dist/components/DatePicker/composables/useAsteriskDisplay.d.ts +1 -1
  59. package/dist/components/DatePicker/composables/useCalendarKeyboardNavigation.d.ts +11 -0
  60. package/dist/components/DatePicker/composables/useDatePickerState.d.ts +25 -0
  61. package/dist/components/DatePicker/composables/useDateTextField.d.ts +61 -0
  62. package/dist/components/DatePicker/composables/useHolidayHighlighting.d.ts +15 -0
  63. package/dist/components/DatePicker/constants/messages.d.ts +0 -1
  64. package/dist/components/DialogBox/DialogBox.d.ts +175 -177
  65. package/dist/components/FilterSideBar/FilterSideBar.d.ts +161 -171
  66. package/dist/components/FooterBar/FooterBar.d.ts +5 -5
  67. package/dist/components/HeaderBar/HeaderBar.d.ts +2 -2
  68. package/dist/components/HeaderBar/HeaderLogo/HeaderLogo.d.ts +1 -1
  69. package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +1 -1
  70. package/dist/components/HeaderToolbar/HeaderToolbar.d.ts +234 -258
  71. package/dist/components/LangBtn/LangBtn.d.ts +173 -179
  72. package/dist/components/LogoBrandSection/LogoBrandSection.d.ts +1 -1
  73. package/dist/components/LunarCalendar/LunarCalendar.d.ts +29 -0
  74. package/dist/components/LunarCalendar/useLunarCalendarRules.d.ts +5 -0
  75. package/dist/components/LunarCalendar/useLunarCalendarValidation.d.ts +13 -0
  76. package/dist/components/NirField/NirField.d.ts +1296 -1292
  77. package/dist/components/PaginatedTable/PaginatedTable.d.ts +1 -1
  78. package/dist/components/PeriodField/PeriodField.d.ts +5844 -6068
  79. package/dist/components/PhoneField/PhoneField.d.ts +645 -643
  80. package/dist/components/SyAlert/SyAlert.d.ts +31 -31
  81. package/dist/components/SyTextArea/SyTextArea.d.ts +395 -395
  82. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +193 -227
  83. package/dist/components/Tables/SyTable/SyTable.d.ts +192 -226
  84. package/dist/components/Tables/common/SyTableFilter.d.ts +1 -1
  85. package/dist/components/Tables/common/SyTablePagination.d.ts +118 -129
  86. package/dist/components/Tables/common/TableHeader.d.ts +52 -2
  87. package/dist/components/Tables/common/filters/DateFilter.d.ts +1 -1
  88. package/dist/components/Tables/common/filters/NumberFilter.d.ts +1 -1
  89. package/dist/components/Tables/common/filters/PeriodFilter.d.ts +1 -1
  90. package/dist/components/Tables/common/filters/SelectFilter.d.ts +1 -1
  91. package/dist/components/Tables/common/filters/TextFilter.d.ts +1 -1
  92. package/dist/components/Tables/common/locales.d.ts +1 -0
  93. package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +86 -90
  94. package/dist/components/Tables/common/tableFilterUtils.d.ts +2 -2
  95. package/dist/components/Tables/common/types.d.ts +3 -2
  96. package/dist/components/Tables/common/useTableCheckbox.d.ts +3 -2
  97. package/dist/components/Tables/common/useTableFilter.d.ts +1 -1
  98. package/dist/components/Tables/common/useTableItems.d.ts +6 -8
  99. package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +18 -18
  100. package/dist/components/index.d.ts +2 -0
  101. package/dist/design-system-v3.js +101 -98
  102. package/dist/design-system-v3.umd.cjs +25 -33
  103. package/dist/main-DkZZpa3S.js +35197 -0
  104. package/dist/style.css +1 -1
  105. package/dist/utils/formatNir/formatNir.d.ts +2 -0
  106. package/dist/utils/index.d.ts +1 -0
  107. package/dist/utils/insertAt.d.ts +1 -0
  108. package/dist/utils/rules/validateDateValue.d.ts +14 -0
  109. package/dist/vuetifyConfig.d.ts +6 -6
  110. package/package.json +4 -4
  111. package/src/assets/tokens.scss +2 -0
  112. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/__tests__/__snapshots__/AmeliproAccordionTemplate.spec.ts.snap +1 -18
  113. package/src/components/Amelipro/AmeliproAccordion/__tests__/AmeliproAccordion.spec.ts +178 -9
  114. package/src/components/Amelipro/AmeliproAccordion/__tests__/__snapshots__/AmeliproAccordion.spec.ts.snap +28 -121
  115. package/src/components/Amelipro/AmeliproAccordionFrieze/__tests__/__snapshots__/AmeliproAccordionFrieze.spec.ts.snap +15 -270
  116. package/src/components/Amelipro/AmeliproAccordionList/__tests__/__snapshots__/AmeliproAccordionList.spec.ts.snap +12 -194
  117. package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/__tests__/__snapshots__/AmeliproAccordionResultTemplate.spec.ts.snap +1 -18
  118. package/src/components/Amelipro/AmeliproAccordionResult/__tests__/__snapshots__/AmeliproAccordionResult.spec.ts.snap +1 -18
  119. package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/__snapshots__/AmeliproAccordionResultList.spec.ts.snap +12 -194
  120. package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.stories.ts +9 -9
  121. package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.vue +5 -4
  122. package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/AmeliproAutoCompleteField.spec.ts +6 -6
  123. package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/__snapshots__/AmeliproAutoCompleteField.spec.ts.snap +2 -0
  124. package/src/components/Amelipro/AmeliproBadge/__tests__/AmeliproBadge.spec.ts +135 -9
  125. package/src/components/Amelipro/AmeliproBadge/__tests__/__snapshots__/AmeliproBadge.spec.ts.snap +20 -5
  126. package/src/components/Amelipro/AmeliproBreadcrumb/__tests__/AmeliproBreadcrumb.spec.ts +195 -28
  127. package/src/components/Amelipro/AmeliproBreadcrumb/__tests__/__snapshots__/AmeliproBreadcrumb.spec.ts.snap +193 -124
  128. package/src/components/Amelipro/AmeliproCaptcha/AmeliproCaptcha.vue +1 -1
  129. package/src/components/Amelipro/AmeliproCaptcha/__tests__/AmeliproCaptcha.spec.ts +364 -12
  130. package/src/components/Amelipro/AmeliproCaptcha/__tests__/__snapshots__/AmeliproCaptcha.spec.ts.snap +30 -390
  131. package/src/components/Amelipro/AmeliproCarousel/__tests__/__snapshots__/AmeliproCarousel.spec.ts.snap +4 -36
  132. package/src/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.stories.ts +10 -10
  133. package/src/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.vue +7 -7
  134. package/src/components/Amelipro/AmeliproCheckbox/__tests__/AmeliproCheckbox.spec.ts +5 -5
  135. package/src/components/Amelipro/AmeliproCheckbox/__tests__/__snapshots__/AmeliproCheckbox.spec.ts.snap +1 -1
  136. package/src/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.stories.ts +7 -6
  137. package/src/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.vue +6 -6
  138. package/src/components/Amelipro/AmeliproCheckboxGroup/__tests__/AmeliproCheckboxGroup.spec.ts +6 -6
  139. package/src/components/Amelipro/AmeliproCheckboxGroup/__tests__/__snapshots__/AmeliproCheckboxGroup.spec.ts.snap +2 -2
  140. package/src/components/Amelipro/AmeliproClickableTile/tests/__snapshots__/AmeliproClickableTile.spec.ts.snap +2 -43
  141. package/src/components/Amelipro/AmeliproContentLayout/__tests__/AmeliproContentLayout.spec.ts +80 -9
  142. package/src/components/Amelipro/AmeliproContentLayout/__tests__/__snapshots__/AmeliproContentLayout.spec.ts.snap +25 -4
  143. package/src/components/Amelipro/AmeliproCopyBtn/__tests__/__snapshots__/AmeliproCopyBtn.spec.ts.snap +1 -13
  144. package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.stories.ts +7 -6
  145. package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.vue +5 -5
  146. package/src/components/Amelipro/AmeliproCustomSelector/__tests__/AmeliproCustomSelector.spec.ts +187 -39
  147. package/src/components/Amelipro/AmeliproCustomSelector/__tests__/__snapshots__/AmeliproCustomSelector.spec.ts.snap +147 -147
  148. package/src/components/Amelipro/AmeliproDentalChart/tests/__snapshots__/AmeliproDentalChart.spec.ts.snap +1 -1
  149. package/src/components/Amelipro/AmeliproDialog/__tests__/__snapshots__/AmeliproDialog.spec.ts.snap +0 -2
  150. package/src/components/Amelipro/AmeliproErrorTemplate/__tests__/AmeliproErrorTemplate.spec.ts +160 -20
  151. package/src/components/Amelipro/AmeliproErrorTemplate/__tests__/__snapshots__/AmeliproErrorTemplate.spec.ts.snap +34 -177
  152. package/src/components/Amelipro/AmeliproFilePreview/AmeliproFilePreview.vue +1 -0
  153. package/src/components/Amelipro/AmeliproFilePreview/__tests__/AmeliproFilePreview.spec.ts +248 -19
  154. package/src/components/Amelipro/AmeliproFilePreview/__tests__/__snapshots__/AmeliproFilePreview.spec.ts.snap +34 -203
  155. package/src/components/Amelipro/AmeliproFirstLogin/__tests__/__snapshots__/AmeliproFirstLogin.spec.ts.snap +6 -144
  156. package/src/components/Amelipro/AmeliproIcon/AmeliproIcon.vue +20 -2
  157. package/src/components/Amelipro/AmeliproIcon/__tests__/__snapshots__/AmeliproIcon.spec.ts.snap +1 -25
  158. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.stories.ts +5 -5
  159. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.vue +6 -6
  160. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/__tests__/AmeliproIllustratedRadioGroup.spec.ts +22 -22
  161. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/__tests__/__snapshots__/AmeliproIllustratedRadioGroup.spec.ts.snap +2 -2
  162. package/src/components/Amelipro/AmeliproMultipleFoldingCard/__tests__/AmeliproMultipleFoldingCard.spec.ts +304 -0
  163. package/src/components/Amelipro/AmeliproMultipleFoldingCard/__tests__/__snapshots__/AmeliproMultipleFoldingCard.spec.ts.snap +373 -0
  164. package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.stories.ts +2 -0
  165. package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.vue +28 -2
  166. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/__snapshots__/AmeliproPatientLogged.spec.ts.snap +9 -173
  167. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLoginForm/AmeliproPatientLoginForm.vue +1 -1
  168. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.vue +162 -72
  169. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/AmeliproPostalAddressCityRow.spec.ts +2 -2
  170. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/__snapshots__/AmeliproPostalAddressCityRow.spec.ts.snap +6 -39
  171. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.stories.ts +3 -3
  172. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.vue +8 -8
  173. package/src/components/Amelipro/AmeliproPostalAddressField/{tests → __tests__}/AmeliproPostalAddressField.spec.ts +2 -2
  174. package/src/components/Amelipro/AmeliproPostalAddressField/{tests → __tests__}/__snapshots__/AmeliproPostalAddressField.spec.ts.snap +11 -52
  175. package/src/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.stories.ts +7 -7
  176. package/src/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.vue +8 -8
  177. package/src/components/Amelipro/AmeliproRadioGroup/__tests__/AmeliproRadioGroup.spec.ts +6 -6
  178. package/src/components/Amelipro/AmeliproRadioGroup/__tests__/__snapshots__/AmeliproRadioGroup.spec.ts.snap +2 -2
  179. package/src/components/Amelipro/AmeliproResultList/__tests__/__snapshots__/AmeliproResultList.spec.ts.snap +2 -14
  180. package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.stories.ts +7 -7
  181. package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.vue +4 -4
  182. package/src/components/Amelipro/AmeliproSelect/__tests__/AmeliproSelect.spec.ts +12 -12
  183. package/src/components/Amelipro/AmeliproStepper/AmeliproStepper.vue +2 -2
  184. package/src/components/Amelipro/AmeliproStepper/__tests__/__snapshots__/AmeliproStepper.spec.ts.snap +2 -2
  185. package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +2 -2
  186. package/src/components/Amelipro/AmeliproTable/__tests__/AmeliproTable.spec.ts +463 -68
  187. package/src/components/Amelipro/AmeliproTable/__tests__/__snapshots__/AmeliproTable.spec.ts.snap +176 -511
  188. package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.stories.ts +6 -6
  189. package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.vue +4 -4
  190. package/src/components/Amelipro/AmeliproTextArea/__tests__/AmeliproTextArea.spec.ts +3 -3
  191. package/src/components/Amelipro/AmeliproTextArea/__tests__/__snapshots__/AmeliproTextArea.spec.ts.snap +1 -2
  192. package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.stories.ts +10 -10
  193. package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.vue +4 -4
  194. package/src/components/Amelipro/AmeliproTextField/__tests__/AmeliproTextField.spec.ts +5 -5
  195. package/src/components/Amelipro/AmeliproTextField/tests/__snapshots__/AmeliproTextField.spec.ts.snap +162 -0
  196. package/src/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.stories.ts +44 -0
  197. package/src/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.vue +79 -1
  198. package/src/components/Amelipro/AmeliproTooltips/__tests__/__snapshots__/AmeliproTooltips.spec.ts.snap +0 -2
  199. package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.stories.ts +2 -2
  200. package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.vue +21 -7
  201. package/src/components/Amelipro/AmeliproUpload/__tests__/AmeliproUpload.spec.ts +252 -44
  202. package/src/components/Amelipro/AmeliproUpload/__tests__/__snapshots__/AmeliproUpload.spec.ts.snap +166 -0
  203. package/src/components/Amelipro/ServiceMenu/ServiceBtn/__tests__/ServiceBtn.spec.ts +137 -0
  204. package/src/components/Amelipro/ServiceMenu/ServiceBtn/__tests__/__snapshots__/ServiceBtn.spec.ts.snap +56 -0
  205. package/src/components/Amelipro/ServiceMenu/ServiceList/__tests__/ServiceList.spec.ts +116 -0
  206. package/src/components/Amelipro/ServiceMenu/ServiceList/__tests__/__snapshots__/ServiceList.spec.ts.snap +58 -0
  207. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/__tests__/ServiceMenuContent.spec.ts +118 -0
  208. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/__tests__/__snapshots__/ServiceMenuContent.spec.ts.snap +151 -0
  209. package/src/components/Amelipro/ServiceMenu/__tests__/ServiceMenu.spec.ts +259 -0
  210. package/src/components/Amelipro/ServiceMenu/__tests__/__snapshots__/ServiceMenu.spec.ts.snap +102 -0
  211. package/src/components/Amelipro/StructureMenu/StructureBtn/__tests__/StructureBtn.spec.ts +90 -0
  212. package/src/components/Amelipro/StructureMenu/StructureBtn/__tests__/__snapshots__/StructureBtn.spec.ts.snap +63 -0
  213. package/src/components/Amelipro/StructureMenu/StructureItem/__tests__/StructureItem.spec.ts +133 -0
  214. package/src/components/Amelipro/StructureMenu/StructureItem/__tests__/__snapshots__/StructureItem.spec.ts.snap +143 -0
  215. package/src/components/Amelipro/StructureMenu/StructureList/__tests__/StructureList.spec.ts +190 -0
  216. package/src/components/Amelipro/StructureMenu/StructureList/__tests__/__snapshots__/StructureList.spec.ts.snap +109 -0
  217. package/src/components/Amelipro/StructureMenu/StructureTabs/__tests__/StructureTabs.spec.ts +159 -0
  218. package/src/components/Amelipro/StructureMenu/StructureTabs/__tests__/__snapshots__/StructureTabs.spec.ts.snap +103 -0
  219. package/src/components/Amelipro/StructureMenu/__tests__/StructureMenu.spec.ts +165 -0
  220. package/src/components/Amelipro/StructureMenu/__tests__/__snapshots__/StructureMenu.spec.ts.snap +39 -0
  221. package/src/components/Amelipro/UserInformationSummary/__tests__/UserInformationSummary.spec.ts +140 -0
  222. package/src/components/Amelipro/UserInformationSummary/{tests → __tests__}/__snapshots__/UserInformationSummary.spec.ts.snap +17 -24
  223. package/src/components/Amelipro/UserMenu/UserMenu.stories.ts +3 -3
  224. package/src/components/Amelipro/UserMenu/UserMenu.vue +2 -2
  225. package/src/components/Amelipro/UserMenu/UserMenuDetails/__tests__/UserMenuDetails.spec.ts +150 -0
  226. package/src/components/Amelipro/UserMenu/UserMenuDetails/__tests__/__snapshots__/UserMenuDetails.spec.ts.snap +117 -0
  227. package/src/components/Amelipro/UserMenu/__tests__/UserMenu.spec.ts +141 -0
  228. package/src/components/Amelipro/UserMenu/__tests__/__snapshots__/UserMenu.spec.ts.snap +103 -0
  229. package/src/components/Captcha/Captcha.vue +9 -24
  230. package/src/components/Captcha/CaptchaHelpdesk.vue +42 -0
  231. package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +256 -268
  232. package/src/components/CopyBtn/tests/__snapshots__/CopyBtn.spec.ts.snap +0 -1
  233. package/src/components/Customs/Selects/SelectBtnField/Accessibilite.stories.ts +4 -0
  234. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.stories.ts +154 -82
  235. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.vue +229 -125
  236. package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.spec.ts +12 -12
  237. package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/SelectBtnField.spec.ts.snap +344 -826
  238. package/src/components/Customs/Selects/SySelect/SySelect.vue +215 -169
  239. package/src/components/Customs/Selects/SySelect/composables/tests/useSySelectKeyboard.spec.ts +4 -2
  240. package/src/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.ts +7 -9
  241. package/src/components/Customs/SyForm/SyForm.mdx +47 -7
  242. package/src/components/Customs/SyForm/SyForm.stories.ts +38 -34
  243. package/src/components/Customs/SyForm/SyForm.vue +27 -6
  244. package/src/components/Customs/SyRadioGroup/Accessibilite.mdx +263 -0
  245. package/src/components/Customs/SyRadioGroup/SyRadioGroup.mdx +37 -0
  246. package/src/components/Customs/SyRadioGroup/SyRadioGroup.stories.ts +665 -0
  247. package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +324 -0
  248. package/src/components/Customs/SyRadioGroup/locales.ts +3 -0
  249. package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.spec.ts +135 -0
  250. package/src/components/Customs/SyTabs/SyTabs.vue +1 -1
  251. package/src/components/Customs/SyTextField/SyTextField.vue +225 -194
  252. package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +32 -2
  253. package/src/components/DataList/DataList.mdx +3 -1
  254. package/src/components/DataList/DataList.stories.ts +67 -17
  255. package/src/components/DataList/DataList.vue +13 -1
  256. package/src/components/DataListGroup/DataListGroup.stories.ts +42 -12
  257. package/src/components/DataListGroup/DataListGroup.vue +14 -1
  258. package/src/components/DataListItem/DataListItem.vue +10 -2
  259. package/src/components/DataListItem/tests/DataListItem.spec.ts +1 -1
  260. package/src/components/DatePicker/CalendarMode/DatePicker.vue +157 -178
  261. package/src/components/DatePicker/CalendarMode/tests/DatePicker.events.spec.ts +5 -0
  262. package/src/components/DatePicker/CalendarMode/tests/DatePicker.spec.ts +179 -179
  263. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +261 -258
  264. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +234 -827
  265. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +46 -73
  266. package/src/components/DatePicker/DateTextInput/tests/DateTextInput.spec.ts +350 -0
  267. package/src/components/DatePicker/composables/index.ts +4 -0
  268. package/src/components/DatePicker/composables/tests/useCalendarKeyboardNavigation.spec.ts +270 -0
  269. package/src/components/DatePicker/composables/tests/useDatePickerViewMode.spec.ts +61 -3
  270. package/src/components/DatePicker/composables/tests/useDateRangeInput.spec.ts +198 -0
  271. package/src/components/DatePicker/composables/tests/useDisplayedDateString.spec.ts +36 -2
  272. package/src/components/DatePicker/composables/tests/useInputHandler.spec.ts +755 -0
  273. package/src/components/DatePicker/composables/tests/useKeyboardEvents.spec.ts +168 -0
  274. package/src/components/DatePicker/composables/tests/useMonthButtonCustomization.spec.ts +40 -34
  275. package/src/components/DatePicker/composables/useAsteriskDisplay.ts +1 -2
  276. package/src/components/DatePicker/composables/useCalendarKeyboardNavigation.ts +155 -0
  277. package/src/components/DatePicker/composables/useDatePickerState.ts +163 -0
  278. package/src/components/DatePicker/composables/useDateRangeInput.ts +4 -8
  279. package/src/components/DatePicker/composables/useDateTextField.ts +156 -0
  280. package/src/components/DatePicker/composables/useHolidayHighlighting.ts +64 -0
  281. package/src/components/DatePicker/composables/useInputHandler.ts +25 -19
  282. package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +52 -26
  283. package/src/components/DatePicker/constants/messages.ts +0 -1
  284. package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +2 -2
  285. package/src/components/DatePicker/playground/ComplexDatePickerPlayground.vue +16 -8
  286. package/src/components/ErrorPage/ErrorPage.vue +1 -1
  287. package/src/components/ErrorPage/tests/ErrorPage.spec.ts +17 -0
  288. package/src/components/ExternalLinks/tests/__snapshots__/ExternalLinks.spec.ts.snap +0 -1
  289. package/src/components/LunarCalendar/LunarCalendar.mdx +33 -0
  290. package/src/components/LunarCalendar/LunarCalendar.stories.ts +232 -0
  291. package/src/components/LunarCalendar/LunarCalendar.vue +57 -0
  292. package/src/components/LunarCalendar/tests/LunarCalendar.spec.ts +79 -0
  293. package/src/components/LunarCalendar/useLunarCalendarRules.ts +96 -0
  294. package/src/components/LunarCalendar/useLunarCalendarValidation.ts +47 -0
  295. package/src/components/NotificationBar/NotificationBar.vue +2 -2
  296. package/src/components/PaginatedTable/PaginatedTable.stories.ts +15 -10
  297. package/src/components/PaginatedTable/PaginatedTable.vue +24 -35
  298. package/src/components/PhoneField/PhoneField.vue +102 -83
  299. package/src/components/SearchListField/tests/SearchListField.spec.ts +7 -53
  300. package/src/components/SyAlert/SyAlert.vue +5 -2
  301. package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +24 -72
  302. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +521 -23
  303. package/src/components/Tables/SyServerTable/SyServerTable.vue +19 -13
  304. package/src/components/Tables/SyTable/SyTable.stories.ts +391 -18
  305. package/src/components/Tables/SyTable/SyTable.vue +16 -11
  306. package/src/components/Tables/common/TableHeader.vue +16 -7
  307. package/src/components/Tables/common/filters/DateFilter.vue +1 -1
  308. package/src/components/Tables/common/locales.ts +1 -0
  309. package/src/components/Tables/common/tableFilterUtils.ts +3 -3
  310. package/src/components/Tables/common/types.ts +4 -2
  311. package/src/components/Tables/common/useTableCheckbox.ts +4 -3
  312. package/src/components/Tables/common/useTableFilter.ts +2 -2
  313. package/src/components/Tables/common/useTableItems.ts +4 -19
  314. package/src/components/index.ts +2 -0
  315. package/src/composables/validation/tests/useFormValidation.spec.ts +251 -0
  316. package/src/composables/validation/tests/useValidatable.spec.ts +90 -0
  317. package/src/stories/Accessibilite/Audit/Exemptions-derogations.mdx +241 -0
  318. package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +17 -10
  319. package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +16 -0
  320. package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +160 -106
  321. package/src/stories/Accessibilite/Vuetify/VuetifyItems.ts +2 -1
  322. package/src/stories/GuideDuDev/ClassesUtilitaires/FormattingUtilities.mdx +20 -0
  323. package/src/stories/GuideDuDev/ClassesUtilitaires/index.mdx +10 -0
  324. package/src/utils/formatNir/formatNir.ts +15 -0
  325. package/src/utils/index.ts +1 -0
  326. package/src/utils/insertAt.ts +11 -0
  327. package/src/utils/rules/isDateValid/IsDateValid.mdx +2 -2
  328. package/src/utils/rules/isDateValid/IsDateValid.stories.ts +6 -4
  329. package/src/utils/rules/isDateValid/index.ts +23 -8
  330. package/src/utils/rules/isDateValid/tests/isDateValid.spec.ts +9 -0
  331. package/src/utils/rules/isExactLength/IsExactLenght.mdx +1 -1
  332. package/src/utils/rules/isHolidayDay/IsHolidayDay.mdx +19 -7
  333. package/src/utils/rules/isHolidayDay/index.ts +6 -8
  334. package/src/utils/rules/isHolidayDay/tests/isHolidayDay.spec.ts +13 -1
  335. package/src/utils/rules/isNotAfterDate/IsNotAfterDate.mdx +2 -2
  336. package/src/utils/rules/isNotAfterDate/IsNotAfterDate.stories.ts +9 -2
  337. package/src/utils/rules/isNotAfterDate/index.ts +5 -12
  338. package/src/utils/rules/isNotAfterDate/tests/isNotAfterDate.spec.ts +20 -0
  339. package/src/utils/rules/isNotAfterToday/IsNotAfterToday.mdx +2 -2
  340. package/src/utils/rules/isNotAfterToday/IsNotAfterToday.stories.ts +8 -2
  341. package/src/utils/rules/isNotAfterToday/index.ts +6 -6
  342. package/src/utils/rules/isNotAfterToday/tests/isNotAfterToday.spec.ts +20 -0
  343. package/src/utils/rules/isNotBeforeDate/IsNotBeforeDate.mdx +2 -2
  344. package/src/utils/rules/isNotBeforeDate/index.ts +5 -12
  345. package/src/utils/rules/isNotBeforeDate/tests/IsNotBeforeDate.spec.ts +20 -0
  346. package/src/utils/rules/isNotBeforeToday/IsNotBeforeToday.mdx +2 -2
  347. package/src/utils/rules/isNotBeforeToday/IsNotBeforeToday.stories.ts +8 -2
  348. package/src/utils/rules/isNotBeforeToday/index.ts +6 -6
  349. package/src/utils/rules/isNotBeforeToday/tests/notBeforeToday.spec.ts +19 -0
  350. package/src/utils/rules/validateDateValue.ts +37 -0
  351. package/src/vuetifyConfig.ts +6 -2
  352. package/dist/components/Customs/Selects/SelectBtnField/config.d.ts +0 -11
  353. package/dist/components/DatePicker/tests/setup.d.ts +0 -75370
  354. package/dist/components/Tables/common/formatters.d.ts +0 -17
  355. package/dist/main-CbBVJ_le.js +0 -34377
  356. package/dist/stories/Accessibilite/Vuetify/VuetifyItems.d.ts +0 -70
  357. package/dist/stories/DesignTokens/StylesTypographiques.stories.new.d.ts +0 -8
  358. package/dist/stories/DesignTokens/TypographyDisplay.d.ts +0 -28
  359. package/dist/stories/DesignTokens/vue-shims.d.ts +0 -6
  360. package/src/components/Amelipro/AmeliproMultipleFoldingCard/tests/AmeliproMultipleFoldingCard.spec.ts +0 -40
  361. package/src/components/Amelipro/AmeliproMultipleFoldingCard/tests/__snapshots__/AmeliproMultipleFoldingCard.spec.ts.snap +0 -369
  362. package/src/components/Amelipro/ServiceMenu/ServiceBtn/tests/ServiceBtn.spec.ts +0 -21
  363. package/src/components/Amelipro/ServiceMenu/ServiceBtn/tests/__snapshots__/ServiceBtn.spec.ts.snap +0 -100
  364. package/src/components/Amelipro/ServiceMenu/ServiceList/tests/ServiceList.spec.ts +0 -25
  365. package/src/components/Amelipro/ServiceMenu/ServiceList/tests/__snapshots__/ServiceList.spec.ts.snap +0 -245
  366. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/tests/ServiceMenuContent.spec.ts +0 -45
  367. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/tests/__snapshots__/ServiceMenuContent.spec.ts.snap +0 -787
  368. package/src/components/Amelipro/ServiceMenu/tests/ServiceMenu.spec.ts +0 -46
  369. package/src/components/Amelipro/ServiceMenu/tests/__snapshots__/ServiceMenu.spec.ts.snap +0 -111
  370. package/src/components/Amelipro/StructureMenu/StructureBtn/tests/StructureBtn.spec.ts +0 -17
  371. package/src/components/Amelipro/StructureMenu/StructureBtn/tests/__snapshots__/StructureBtn.spec.ts.snap +0 -34
  372. package/src/components/Amelipro/StructureMenu/StructureItem/tests/StructureItem.spec.ts +0 -21
  373. package/src/components/Amelipro/StructureMenu/StructureItem/tests/__snapshots__/StructureItem.spec.ts.snap +0 -106
  374. package/src/components/Amelipro/StructureMenu/StructureList/tests/StructureList.spec.ts +0 -33
  375. package/src/components/Amelipro/StructureMenu/StructureList/tests/__snapshots__/StructureList.spec.ts.snap +0 -353
  376. package/src/components/Amelipro/StructureMenu/StructureTabs/tests/StructureTabs.spec.ts +0 -60
  377. package/src/components/Amelipro/StructureMenu/StructureTabs/tests/__snapshots__/StructureTabs.spec.ts.snap +0 -824
  378. package/src/components/Amelipro/StructureMenu/tests/StructureMenu.spec.ts +0 -69
  379. package/src/components/Amelipro/StructureMenu/tests/__snapshots__/StructureMenu.spec.ts.snap +0 -1383
  380. package/src/components/Amelipro/UserInformationSummary/tests/UserInformationSummary.spec.ts +0 -24
  381. package/src/components/Amelipro/UserMenu/UserMenuDetails/tests/UserMenuDetails.spec.ts +0 -33
  382. package/src/components/Amelipro/UserMenu/UserMenuDetails/tests/__snapshots__/UserMenuDetails.spec.ts.snap +0 -3
  383. package/src/components/Amelipro/UserMenu/tests/UserMenu.spec.ts +0 -34
  384. package/src/components/Amelipro/UserMenu/tests/__snapshots__/UserMenu.spec.ts.snap +0 -101
  385. package/src/components/Customs/Selects/SelectBtnField/config.ts +0 -11
  386. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.events.spec.ts +0 -151
  387. package/src/components/DatePicker/DateTextInput/DateTextInput.events.spec.ts +0 -148
  388. package/src/components/DatePicker/DateTextInput/DateTextInput.range.spec.ts +0 -361
  389. package/src/components/DatePicker/DateTextInput/DateTextInput.spec.ts +0 -709
  390. package/src/components/DatePicker/tests/DatePicker.validation.spec.ts +0 -4111
  391. package/src/components/DatePicker/tests/archiTest.md +0 -33
  392. package/src/components/DatePicker/tests/navigation.regression.spec.ts +0 -74
  393. package/src/components/DatePicker/tests/navigation.simple.spec.ts +0 -137
  394. package/src/components/DatePicker/tests/setup.ts +0 -243
  395. package/src/components/Tables/common/formatters.ts +0 -72
@@ -15,6 +15,20 @@ export default {
15
15
  description: 'Active ou désactive la validation automatique lors de la soumission',
16
16
  defaultValue: true,
17
17
  },
18
+ default: {
19
+ description: 'Contenu du formulaire, généralement des champs de formulaire comme SyTextField, SySelect, etc.',
20
+ table: {
21
+ type: {
22
+ summary: `
23
+ {
24
+ 'isValid': boolean,
25
+ 'validate': () => Promise<boolean>,
26
+ 'reset': () => void,
27
+ 'clear': () => void
28
+ }`,
29
+ },
30
+ },
31
+ },
18
32
  },
19
33
  parameters: {
20
34
  docs: {
@@ -41,9 +55,8 @@ export const Basic: Story = {
41
55
  { type: 'required', options: { message: 'L\'email est obligatoire' } },
42
56
  ]
43
57
 
44
- const submitForm = async () => {
45
- const isValid = await form.value?.validate()
46
- if (isValid) {
58
+ const submitForm = async (e: { isValid: boolean }) => {
59
+ if (e.isValid) {
47
60
  alert('Formulaire valide !')
48
61
  }
49
62
  else {
@@ -65,16 +78,13 @@ export const Basic: Story = {
65
78
  </SyForm>
66
79
  `,
67
80
  }),
68
- args: {
69
- validateOnSubmit: true,
70
- },
71
81
  parameters: {
72
82
  sourceCode: [
73
83
  {
74
84
  name: 'Template',
75
85
  code: `
76
86
  <template>
77
- <SyForm ref="form" v-bind="args" @submit="submitForm">
87
+ <SyForm ref="form" @submit="onSubmit">
78
88
  <div class="d-flex flex-column gap-4">
79
89
  <SyTextField v-model="name" label="Nom" required class="mb-2" />
80
90
  <SyTextField v-model="email" label="Email" :custom-rules="emailRules" class="mb-2" />
@@ -138,9 +148,8 @@ export const CustomValidation: Story = {
138
148
  { type: 'required', options: { message: 'Veuillez confirmer le mot de passe' } },
139
149
  ])
140
150
 
141
- const submitForm = async () => {
142
- const isValid = await form.value?.validate()
143
- if (isValid) {
151
+ const submitForm = async (e: { isValid: boolean }) => {
152
+ if (e.isValid) {
144
153
  alert('Inscription réussie !')
145
154
  }
146
155
  else {
@@ -162,7 +171,7 @@ export const CustomValidation: Story = {
162
171
  },
163
172
  template: `
164
173
  <div>
165
- <SyForm ref="form" v-bind="args" @submit="submitForm">
174
+ <SyForm ref="form" v-bind="args" @submit="submitForm" :validate-on-submit="false">
166
175
  <div class="d-flex flex-column gap-4">
167
176
  <SyTextField v-model="username" label="Nom d'utilisateur" required class="mb-2" />
168
177
  <SyTextField v-model="password" label="Mot de passe" type="password" :custom-rules="passwordRules" class="mb-2" />
@@ -190,7 +199,7 @@ export const CustomValidation: Story = {
190
199
  code: `
191
200
  <template>
192
201
  <div>
193
- <SyForm ref="form" @submit="onSubmit">
202
+ <SyForm ref="form" @submit="onSubmit" :validate-on-submit="false">
194
203
  <div class="d-flex flex-column gap-4">
195
204
  <SyTextField v-model="username" label="Nom d'utilisateur" required class="mb-2" />
196
205
  <SyTextField v-model="password" label="Mot de passe" type="password" :custom-rules="passwordRules" class="mb-2" />
@@ -287,9 +296,8 @@ export const MixedFields: Story = {
287
296
  { text: 'Italie', value: 'it' },
288
297
  ]
289
298
 
290
- const submitForm = async () => {
291
- const isValid = await form.value?.validate()
292
- if (isValid) {
299
+ const submitForm = async (e: { isValid: boolean }) => {
300
+ if (e.isValid) {
293
301
  alert(`Formulaire valide ! Données: ${JSON.stringify(formData.value)}`)
294
302
  }
295
303
  else {
@@ -318,7 +326,7 @@ export const MixedFields: Story = {
318
326
  name: 'Template',
319
327
  code: `
320
328
  <template>
321
- <SyForm ref="form" v-bind="args" @submit="submitForm">
329
+ <SyForm ref="form" @submit="submitForm">
322
330
  <div class="d-flex flex-column gap-4">
323
331
  <SyTextField v-model="formData.name" label="Nom complet" required class="mb-2" />
324
332
  <SyTextField v-model="formData.email" label="Email" :customRules="emailCustomRules" class="mb-2" />
@@ -337,16 +345,16 @@ export const MixedFields: Story = {
337
345
  <script setup lang="ts">
338
346
 
339
347
  const formData = ref({
340
- name: '',
341
- email: '',
342
- country: '',
348
+ name: '',
349
+ email: '',
350
+ country: '',
343
351
  })
344
352
 
345
353
  const countries = [
346
- { text: 'France', value: 'fr' },
347
- { text: 'Allemagne', value: 'de' },
348
- { text: 'Espagne', value: 'es' },
349
- { text: 'Italie', value: 'it' },
354
+ { text: 'France', value: 'fr' },
355
+ { text: 'Allemagne', value: 'de' },
356
+ { text: 'Espagne', value: 'es' },
357
+ { text: 'Italie', value: 'it' },
350
358
  ]
351
359
 
352
360
  const emailCustomRules = [
@@ -360,10 +368,10 @@ export const MixedFields: Story = {
360
368
  { type: 'required', options: { message: "L'email est obligatoire" } },
361
369
  ]
362
370
 
363
- const onSubmit = (event: { isValid: boolean }) => {
364
- if (event.isValid) {
365
- alert('Formulaire valide ! Données: ' + JSON.stringify(formData.value))
366
- }
371
+ const submitForm = (event: { isValid: boolean }) => {
372
+ if (event.isValid) {
373
+ alert('Formulaire valide ! Données: ' + JSON.stringify(formData.value))
374
+ }
367
375
  }
368
376
  </script>
369
377
  `,
@@ -386,9 +394,8 @@ export const Reset: Story = {
386
394
  { type: 'required', options: { message: 'L\'email est obligatoire' } },
387
395
  ]
388
396
 
389
- const submitForm = async () => {
390
- const isValid = await form.value?.validate()
391
- if (isValid) {
397
+ const submitForm = async (e: { isValid: boolean }) => {
398
+ if (e.isValid) {
392
399
  alert('Formulaire valide !')
393
400
  }
394
401
  else {
@@ -416,16 +423,13 @@ export const Reset: Story = {
416
423
  </SyForm>
417
424
  `,
418
425
  }),
419
- args: {
420
- validateOnSubmit: true,
421
- },
422
426
  parameters: {
423
427
  sourceCode: [
424
428
  {
425
429
  name: 'Template',
426
430
  code: `
427
431
  <template>
428
- <SyForm ref="form" v-bind="args" @submit="submitForm" @reset="onFormReset">
432
+ <SyForm ref="form" @submit="submitForm" @reset="onFormReset">
429
433
  <div class="d-flex flex-column gap-4">
430
434
  <SyTextField v-model="name" label="Nom" required class="mb-2" />
431
435
  <SyTextField v-model="email" label="Email" :custom-rules="emailRules" class="mb-2" />
@@ -2,9 +2,11 @@
2
2
  import { ref } from 'vue'
3
3
  import { useFormValidation } from '@/composables/validation/useFormValidation'
4
4
 
5
- const props = defineProps<{
5
+ const props = withDefaults(defineProps<{
6
6
  validateOnSubmit?: boolean
7
- }>()
7
+ }>(), {
8
+ validateOnSubmit: true,
9
+ })
8
10
 
9
11
  const emit = defineEmits<{
10
12
  (e: 'submit', value: { isValid: boolean }): void
@@ -15,6 +17,7 @@
15
17
  const form = ref<InstanceType<typeof import('vuetify/components').VForm> | null>(null)
16
18
 
17
19
  const { validateAll, clearAll, resetAll } = useFormValidation()
20
+ const isValid = ref<boolean>(true)
18
21
 
19
22
  // Methode de validation globale qui combine Vuetify et nos composants personnalises
20
23
  const validate = async () => {
@@ -45,15 +48,19 @@
45
48
  const customComponentsValid = await validateAll()
46
49
 
47
50
  // Le formulaire est valide si les deux sont valides
48
- return vuetifyValid && customComponentsValid
51
+ isValid.value = vuetifyValid && customComponentsValid
52
+
53
+ return isValid.value
49
54
  }
50
55
 
51
56
  const reset = () => {
52
57
  // Reset custom components values
58
+ clearAll()
53
59
  resetAll()
54
60
  // Reset field values and validations for Vuetify form
55
61
  form.value?.reset()
56
62
  form.value?.resetValidation()
63
+ isValid.value = true
57
64
  // Notify consumers so they can clear external models (e.g., v-model refs)
58
65
  emit('reset')
59
66
  }
@@ -63,7 +70,16 @@
63
70
  // Clear Vuetify internal validation state
64
71
  form.value?.resetValidation()
65
72
  // Clear custom components validation states registered in the form
73
+ isValid.value = true
74
+ clearAll()
75
+ }
76
+
77
+ const handleReset = () => {
66
78
  clearAll()
79
+ resetAll()
80
+ form.value?.resetValidation()
81
+ isValid.value = true
82
+ emit('reset')
67
83
  }
68
84
 
69
85
  // Gestion de la soumission du formulaire
@@ -88,9 +104,14 @@
88
104
  <template>
89
105
  <v-form
90
106
  ref="form"
91
- @submit.prevent
92
- @submit="handleSubmit"
107
+ @submit.prevent="handleSubmit"
108
+ @reset="handleReset"
93
109
  >
94
- <slot />
110
+ <slot
111
+ :is-valid="isValid"
112
+ :validate="validate"
113
+ :reset="reset"
114
+ :clear="clearValidation"
115
+ />
95
116
  </v-form>
96
117
  </template>
@@ -0,0 +1,263 @@
1
+ import { Meta, Title, Subtitle, Description, Primary, Controls, Stories } from '@storybook/blocks';
2
+ import * as SyRadioGroupStories from './SyRadioGroup.stories';
3
+ import AccessibilityIcon from '@/common/imgs/accessibility-svgrepo-com.svg';
4
+ import '../../../stories/styles/shared.css';
5
+
6
+ <Meta of={SyRadioGroupStories} />
7
+
8
+ <div className="accessibility-guide">
9
+ <div className="header">
10
+ <h1>Guide d'Accessibilité du Composant SyRadioGroup</h1>
11
+ </div>
12
+
13
+ <div className="intro-section">
14
+ <img
15
+ src={AccessibilityIcon}
16
+ alt="Icône d'accessibilité"
17
+ className="accessibility-icon"
18
+ />
19
+ <p className="intro-text">
20
+ Le composant SyRadioGroup a été conçu en suivant rigoureusement les recommandations d'accessibilité du W3C,
21
+ <a href="https://www.w3.org/WAI/ARIA/apg/patterns/radio/examples/radio/#support-notice-header/" target="_blank" rel="noopener noreferrer"></a>.
22
+ Ce guide détaille comment notre implémentation respecte ces standards et garantit une expérience utilisateur inclusive.
23
+ </p>
24
+ </div>
25
+
26
+ <div className="criteria-section">
27
+ <h2>Critères d'accessibilité respectés</h2>
28
+
29
+ <div className="criteria-card">
30
+ <div className="criteria-header">
31
+ <span className="criteria-icon">🔍</span>
32
+ <h3>Structure sémantique</h3>
33
+ </div>
34
+ <ul>
35
+ <li><strong>Rôles ARIA appropriés</strong> : <code>role="radio"</code> pour le bouton radio</li>
36
+ <li><strong>État du bouton</strong> : <code>aria-checked</code> avec les valeurs <code>true</code>, <code>false</code></li>
37
+ <li><strong>Étiquetage explicite</strong> : Association claire entre le radio bouton et son label</li>
38
+ </ul>
39
+ </div>
40
+
41
+ <div className="criteria-card">
42
+ <div className="criteria-header">
43
+ <span className="criteria-icon">⌨️</span>
44
+ <h3>Navigation clavier complète</h3>
45
+ </div>
46
+ <ul>
47
+ <li><strong>Fleche haut/ fleche bas </strong> : Pour naviguer entre les boutons radio</li>
48
+ <li><strong>Touche Tab</strong> : Navigation séquentielle entre les boutons radio</li>
49
+ <li><strong>Focus visible</strong> : Indication claire de l'élément actuellement focalisé</li>
50
+ <li><strong>Gestion des états multiples</strong> : Cycle entre les états non selectionné, selectionné</li>
51
+ </ul>
52
+ </div>
53
+
54
+ <div className="criteria-card">
55
+ <div className="criteria-header">
56
+ <span className="criteria-icon">📱</span>
57
+ <h3>États et retours d'information</h3>
58
+ </div>
59
+ <ul>
60
+ <li><strong>État de sélection</strong> : <code>aria-checked</code> indique si le bouton est selectionné, non selectionné</li>
61
+ <li><strong>État de désactivation</strong> : <code>aria-disabled</code> signale les éléments non disponibles</li>
62
+ <li><strong>Validation visuelle</strong> : Couleurs et icônes spécifiques pour les états d'erreur, d'avertissement et de succès</li>
63
+ </ul>
64
+ </div>
65
+
66
+ <div className="criteria-card">
67
+ <div className="criteria-header">
68
+ <span className="criteria-icon">🎨</span>
69
+ <h3>Personnalisation accessible</h3>
70
+ </div>
71
+ <ul>
72
+ <li><strong>Contraste configurable</strong> : Options de couleurs pour garantir un contraste suffisant</li>
73
+ <li><strong>Taille et espacement</strong> : Dimensions adaptées pour faciliter l'interaction tactile</li>
74
+ <li><strong>Compatibilité avec le mode contraste élevé</strong> : Utilisation de <code>currentColor</code> pour s'adapter aux paramètres système</li>
75
+ <li><strong>Densité ajustable</strong> : Options de densité pour s'adapter aux besoins des utilisateurs</li>
76
+ </ul>
77
+ </div>
78
+ </div>
79
+
80
+ <div className="demo-section">
81
+ <h2>Démonstration interactive</h2>
82
+ <p>
83
+ Explorez ci-dessous un exemple de SyRadioGroup entièrement accessible avec état indéterminé.
84
+ Essayez de naviguer en utilisant uniquement votre clavier (fleche haut/bas pour naviguer, Espace pour activer) pour tester l'accessibilité.
85
+ </p>
86
+ <Primary />
87
+ </div>
88
+
89
+ <div className="best-practices">
90
+ <h2>Bonnes pratiques d'utilisation</h2>
91
+ <ul>
92
+ <li>Utilisez des libellés clairs et concis pour décrire l'action</li>
93
+ <li>Regroupez les boutons radio dans un radiogroup une légende explicative</li>
94
+ <li>Évitez de modifier l'état d'un bouton automatiquement sans action utilisateur explicite</li>
95
+ <li>Assurez-vous que la taille de la zone cliquable est suffisante (au moins 44×44 pixels pour les interfaces tactiles)</li>
96
+ <li>Fournissez un retour visuel et textuel clair pour les erreurs de validation</li>
97
+ </ul>
98
+ </div>
99
+
100
+ <div className="resources-section">
101
+ <h2>Ressources supplémentaires</h2>
102
+ <ul>
103
+ <li><a href="https://www.w3.org/WAI/ARIA/apg/patterns/radio/" target="_blank" rel="noopener noreferrer">Guide des pratiques d'auteur WAI-ARIA</a></li>
104
+ <li><a href="https://www.w3.org/WAI/ARIA/apg/patterns/radio/examples/radio/#support-notice-header/" target="_blank" rel="noopener noreferrer">Exempler radiogroup WAI-ARIA</a></li>
105
+ <li><a href="https://www.w3.org/WAI/WCAG21/quickref/" target="_blank" rel="noopener noreferrer">Référence rapide WCAG 2.1</a></li>
106
+ <li><a href="https://www.w3.org/TR/wai-aria-1.2/#radio" target="_blank" rel="noopener noreferrer">Spécification WAI-ARIA 1.2 pour le rôle radio</a></li>
107
+ </ul>
108
+ </div>
109
+ </div>
110
+
111
+ <style>
112
+ {`
113
+ .accessibility-guide {
114
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
115
+ max-width: 1200px;
116
+ margin: 0 auto;
117
+ padding: 20px;
118
+ color: #333;
119
+ }
120
+
121
+ .intro-section {
122
+ display: flex;
123
+ align-items: center;
124
+ margin-bottom: 30px;
125
+ background-color: #f8f9fa;
126
+ padding: 20px;
127
+ border-radius: 8px;
128
+ border-left: 5px solid #0077cc;
129
+ }
130
+
131
+ .accessibility-icon {
132
+ width: 60px;
133
+ height: 60px;
134
+ margin-right: 20px;
135
+ flex-shrink: 0;
136
+ }
137
+
138
+ .intro-text {
139
+ font-size: 1.1em;
140
+ line-height: 1.6;
141
+ margin: 0;
142
+ }
143
+
144
+ .criteria-section {
145
+ margin-bottom: 40px;
146
+ }
147
+
148
+ .criteria-section h2,
149
+ .demo-section h2,
150
+ .tri-state-section h2,
151
+ .parent-child-section h2,
152
+ .best-practices h2,
153
+ .resources-section h2 {
154
+ border-bottom: 2px solid #eaecef;
155
+ padding-bottom: 10px;
156
+ margin-top: 30px;
157
+ margin-bottom: 20px;
158
+ color: #0077cc;
159
+ }
160
+
161
+ .criteria-card {
162
+ background-color: #fff;
163
+ border-radius: 8px;
164
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
165
+ padding: 20px;
166
+ margin-bottom: 20px;
167
+ }
168
+
169
+ .criteria-header {
170
+ display: flex;
171
+ align-items: center;
172
+ margin-bottom: 15px;
173
+ }
174
+
175
+ .criteria-icon {
176
+ font-size: 1.8em;
177
+ margin-right: 15px;
178
+ }
179
+
180
+ .criteria-header h3 {
181
+ margin: 0;
182
+ font-size: 1.3em;
183
+ color: #0077cc;
184
+ }
185
+
186
+ .criteria-card ul {
187
+ margin: 0;
188
+ padding-left: 20px;
189
+ }
190
+
191
+ .criteria-card li {
192
+ margin-bottom: 8px;
193
+ line-height: 1.5;
194
+ }
195
+
196
+ .demo-section {
197
+ background-color: #f8f9fa;
198
+ padding: 20px;
199
+ border-radius: 8px;
200
+ margin-bottom: 40px;
201
+ }
202
+
203
+ .tri-state-section,
204
+ .parent-child-section {
205
+ background-color: #f0f7ff;
206
+ padding: 20px;
207
+ border-radius: 8px;
208
+ margin-bottom: 30px;
209
+ }
210
+
211
+ .tri-state-section p,
212
+ .parent-child-section p {
213
+ line-height: 1.6;
214
+ }
215
+
216
+ .best-practices {
217
+ background-color: #f5f5f5;
218
+ padding: 20px;
219
+ border-radius: 8px;
220
+ margin-bottom: 30px;
221
+ }
222
+
223
+ .best-practices ul {
224
+ padding-left: 20px;
225
+ }
226
+
227
+ .best-practices li {
228
+ margin-bottom: 10px;
229
+ line-height: 1.5;
230
+ }
231
+
232
+ .resources-section {
233
+ background-color: #f8f9fa;
234
+ padding: 20px;
235
+ border-radius: 8px;
236
+ }
237
+
238
+ .resources-section ul {
239
+ padding-left: 20px;
240
+ }
241
+
242
+ .resources-section li {
243
+ margin-bottom: 10px;
244
+ }
245
+
246
+ .resources-section a {
247
+ color: #0077cc;
248
+ text-decoration: none;
249
+ }
250
+
251
+ .resources-section a:hover {
252
+ text-decoration: underline;
253
+ }
254
+
255
+ code {
256
+ background-color: #f0f0f0;
257
+ padding: 2px 5px;
258
+ border-radius: 3px;
259
+ font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
260
+ font-size: 0.9em;
261
+ }
262
+ `}
263
+ </style>
@@ -0,0 +1,37 @@
1
+ import { Meta, Canvas, Controls, Source } from '@storybook/blocks';
2
+ import * as SyRadioGroupStories from "./SyRadioGroup.stories";
3
+
4
+ <Meta of={SyRadioGroupStories} />
5
+
6
+ <div className="header">
7
+ <h1>SyRadioGroup</h1>
8
+ <p>Le composant `SyRadioGroup` est une case à cocher qui étend le composant `VRadio` de Vuetify, conforme au style du Design System et qui respecte les règles d'accessibilité <abbr title="Référentiel Général d'Amélioration de l'Accessibilité">RGAA</abbr>.</p>
9
+ </div>
10
+
11
+ Il étend les fonctionnalités de base de Vuetify avec :
12
+
13
+ - Un système de validation avancé
14
+ - Des états visuels (erreur, avertissement, succès)
15
+
16
+ <Canvas of={SyRadioGroupStories.Default} />
17
+
18
+ # API
19
+
20
+ <Controls of={SyRadioGroupStories.Default} />
21
+
22
+ ## Validation
23
+
24
+ Le composant supporte trois types de validation :
25
+ - Règles d'erreur standard (`customRules`)
26
+ - Règles d'avertissement (`customWarningRules`)
27
+ - Règles de succès (`customSuccessRules`)
28
+
29
+ ### États visuels :
30
+
31
+ La case à cocher adapte automatiquement son apparence selon son état :
32
+ - Rouge pour les erreurs
33
+ - Orange pour les avertissements
34
+ - Vert pour les succès
35
+
36
+
37
+ <a href="/?path=/docs/guide-du-dev-guide-de-validation-des-formulaires--docs" className="action-link">Pour plus d'informations sur la validation, consultez le guide de validation des formulaires.</a>