@cnamts/synapse 1.0.27 → 1.1.0

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 (473) hide show
  1. package/README.md +1 -1
  2. package/dist/{AutocompleteFilter-C9eLKyW8.js → AutocompleteFilter-DXd4szWO.js} +3 -3
  3. package/dist/{DateFilter-y-GLkAkn.js → DateFilter-BD59Kgwf.js} +8 -8
  4. package/dist/{NumberFilter-DN6hIBS7.js → NumberFilter-BSMZE7uw.js} +1 -1
  5. package/dist/{PeriodFilter-MoUUp9qS.js → PeriodFilter-keUdSSk0.js} +1 -1
  6. package/dist/{SelectFilter-bCbrdLmu.js → SelectFilter-Dhvvwazl.js} +1 -1
  7. package/dist/{TextFilter-CvjgEaoM.js → TextFilter-CU8FpXz0.js} +4 -4
  8. package/dist/{apLightTheme2026-ug4Y23ns.js → apLightTheme2026-DbS7BPUf.js} +12 -11
  9. package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +4 -4
  10. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.d.ts +4 -4
  11. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.d.ts +6 -6
  12. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +4 -4
  13. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +4 -4
  14. package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +4 -4
  15. package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +4 -4
  16. package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +2 -2
  17. package/dist/components/Customs/Selects/SyAutocomplete/SyAutocomplete.d.ts +85 -313
  18. package/dist/components/Customs/Selects/SyAutocomplete/composables/useSyAutocompleteValidation.d.ts +2 -2
  19. package/dist/components/Customs/Selects/SyInputSelect/SyInputSelect.d.ts +1 -1
  20. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +9 -11
  21. package/dist/components/Customs/Selects/SySelect/composables/useSySelectValidation.d.ts +7 -7
  22. package/dist/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.d.ts +3 -3
  23. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +5 -5
  24. package/dist/components/Customs/SyIcon/SyIcon.d.ts +77 -1
  25. package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +10 -10
  26. package/dist/components/Customs/SyTextField/SyTextField.d.ts +19 -79
  27. package/dist/components/Customs/SyTextField/locales.d.ts +7 -0
  28. package/dist/components/Customs/SyTextField/types.d.ts +67 -4
  29. package/dist/components/Customs/SyTextField/useNumberField.d.ts +23 -0
  30. package/dist/components/Customs/SyTextField/useSyTextFieldValidation.d.ts +38 -0
  31. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +170 -622
  32. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +85 -311
  33. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +39 -152
  34. package/dist/components/FilterInline/FilterInline.d.ts +3 -3
  35. package/dist/components/FilterSideBar/FilterSideBar.d.ts +4 -4
  36. package/dist/components/MonthPicker/MonthPicker.d.ts +37 -150
  37. package/dist/components/MonthPicker/MonthPickerText/MonthPickerInput.d.ts +37 -150
  38. package/dist/components/NirField/NirField.d.ts +90 -321
  39. package/dist/components/NirField/useNirValidation.d.ts +10 -20
  40. package/dist/components/PasswordField/PasswordField.d.ts +20 -39
  41. package/dist/components/PasswordField/locales.d.ts +2 -0
  42. package/dist/components/PasswordField/types.d.ts +16 -0
  43. package/dist/components/PasswordField/usePasswordFieldValidation.d.ts +38 -0
  44. package/dist/components/PeriodField/PeriodField.d.ts +349 -1253
  45. package/dist/components/PhoneField/PhoneField.d.ts +37 -150
  46. package/dist/components/SearchListField/SearchListField.d.ts +3 -3
  47. package/dist/components/SyTextArea/SyTextArea.d.ts +14 -11
  48. package/dist/components/SyTextArea/composables/useSyTextAreaValidation.d.ts +7 -7
  49. package/dist/components/Tables/common/SyTablePagination.d.ts +19 -20
  50. package/dist/composables/unifyValidation/documentationValidationProps.d.ts +1 -1
  51. package/dist/composables/unifyValidation/useValidation.d.ts +1 -9
  52. package/dist/composables/useFilterable/useFilterable.d.ts +1 -2
  53. package/dist/design-system-v3.js +19 -19
  54. package/dist/designTokens/tokens/amelipro/apLightTheme.d.ts +1 -0
  55. package/dist/designTokens/tokens/pa/paLightTheme.d.ts +1 -0
  56. package/dist/{main-CI6Q9nmO.js → main-D8ryUoS5.js} +13605 -13358
  57. package/dist/synapse.css +1 -1
  58. package/dist/vuetifyConfig.js +27 -25
  59. package/package.json +6 -5
  60. package/src/components/Accordion/tests/Accordion.visual.cy.ts +44 -0
  61. package/src/components/Accordion/tests/__snapshots__/accordion-default.snap.png +0 -0
  62. package/src/components/Accordion/tests/__snapshots__/accordion-disabled-item.snap.png +0 -0
  63. package/src/components/Accordion/tests/__snapshots__/accordion-open-first.snap.png +0 -0
  64. package/src/components/BackBtn/tests/__snapshots__/back-btn-custom-bg.snap.png +0 -0
  65. package/src/components/BackBtn/tests/__snapshots__/back-btn-dark-mode.snap.png +0 -0
  66. package/src/components/BackBtn/tests/__snapshots__/back-btn-default.snap.png +0 -0
  67. package/src/components/BackBtn/tests/__snapshots__/back-btn-no-icon.snap.png +0 -0
  68. package/src/components/BackToTopBtn/tests/BackToTopBtn.visual.cy.ts +34 -0
  69. package/src/components/BackToTopBtn/tests/__snapshots__/back-to-top-btn-custom-nudge.snap.png +0 -0
  70. package/src/components/BackToTopBtn/tests/__snapshots__/back-to-top-btn-default.snap.png +0 -0
  71. package/src/components/Captcha/tests/Captcha.visual.cy.ts +45 -0
  72. package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +4 -0
  73. package/src/components/Captcha/tests/__snapshots__/captcha-audio-type.snap.png +0 -0
  74. package/src/components/Captcha/tests/__snapshots__/captcha-image-type.snap.png +0 -0
  75. package/src/components/Captcha/tests/__snapshots__/captcha-no-helpdesk.snap.png +0 -0
  76. package/src/components/ChipList/tests/ChipList.visual.cy.ts +46 -0
  77. package/src/components/ChipList/tests/__snapshots__/chip-list-default.snap.png +0 -0
  78. package/src/components/ChipList/tests/__snapshots__/chip-list-readonly.snap.png +0 -0
  79. package/src/components/ChipList/tests/__snapshots__/chip-list-state-icons.snap.png +0 -0
  80. package/src/components/CollapsibleList/tests/CollapsibleList.visual.cy.ts +33 -0
  81. package/src/components/CollapsibleList/tests/__snapshots__/collapsible-list-default.snap.png +0 -0
  82. package/src/components/CollapsibleList/tests/__snapshots__/collapsible-list-no-title.snap.png +0 -0
  83. package/src/components/ContextualMenu/tests/ContextualMenu.visual.cy.ts +35 -0
  84. package/src/components/ContextualMenu/tests/__snapshots__/contextual-menu-default.snap.png +0 -0
  85. package/src/components/ContextualMenu/tests/__snapshots__/contextual-menu-selected.snap.png +0 -0
  86. package/src/components/CookieBanner/tests/CookieBanner.visual.cy.ts +29 -0
  87. package/src/components/CookieBanner/tests/__snapshots__/cookie-banner-default.snap.png +0 -0
  88. package/src/components/CookieBanner/tests/__snapshots__/cookie-banner-with-items.snap.png +0 -0
  89. package/src/components/CookiesSelection/tests/CookiesSelection.visual.cy.ts +21 -0
  90. package/src/components/CookiesSelection/tests/__snapshots__/cookies-selection-default.snap.png +0 -0
  91. package/src/components/CopyBtn/tests/CopyBtn.visual.cy.ts +24 -0
  92. package/src/components/CopyBtn/tests/__snapshots__/copy-btn-default.snap.png +0 -0
  93. package/src/components/CopyBtn/tests/__snapshots__/copy-btn-no-tooltip.snap.png +0 -0
  94. package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.visual.cy.ts +60 -0
  95. package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/select-btn-field-default.snap.png +0 -0
  96. package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/select-btn-field-inline.snap.png +0 -0
  97. package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/select-btn-field-readonly.snap.png +0 -0
  98. package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/select-btn-field-selected.snap.png +0 -0
  99. package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.vue +1 -1
  100. package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.spec.ts +2 -0
  101. package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.visual.cy.ts +63 -0
  102. package/src/components/Customs/Selects/SyAutocomplete/tests/__snapshots__/sy-autocomplete-default.snap.png +0 -0
  103. package/src/components/Customs/Selects/SyAutocomplete/tests/__snapshots__/sy-autocomplete-loading.snap.png +0 -0
  104. package/src/components/Customs/Selects/SyAutocomplete/tests/__snapshots__/sy-autocomplete-multiple.snap.png +0 -0
  105. package/src/components/Customs/Selects/SyAutocomplete/tests/__snapshots__/sy-autocomplete-with-value.snap.png +0 -0
  106. package/src/components/Customs/Selects/SyAutocomplete/validation/Validation.stories.ts +0 -93
  107. package/src/components/Customs/Selects/SyInputSelect/tests/SyInputSelect.visual.cy.ts +48 -0
  108. package/src/components/Customs/Selects/SyInputSelect/tests/__snapshots__/sy-input-select-default.snap.png +0 -0
  109. package/src/components/Customs/Selects/SyInputSelect/tests/__snapshots__/sy-input-select-required.snap.png +0 -0
  110. package/src/components/Customs/Selects/SyInputSelect/tests/__snapshots__/sy-input-select-with-value.snap.png +0 -0
  111. package/src/components/Customs/Selects/SySelect/SySelect.vue +22 -47
  112. package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +3 -3
  113. package/src/components/Customs/Selects/SySelect/tests/SySelect.visual.cy.ts +77 -0
  114. package/src/components/Customs/Selects/SySelect/tests/__snapshots__/sy-select-clearable.snap.png +0 -0
  115. package/src/components/Customs/Selects/SySelect/tests/__snapshots__/sy-select-default.snap.png +0 -0
  116. package/src/components/Customs/Selects/SySelect/tests/__snapshots__/sy-select-multiple-chips.snap.png +0 -0
  117. package/src/components/Customs/Selects/SySelect/tests/__snapshots__/sy-select-required.snap.png +0 -0
  118. package/src/components/Customs/Selects/SySelect/tests/__snapshots__/sy-select-with-value.snap.png +0 -0
  119. package/src/components/Customs/Selects/SySelect/validation/Validation.stories.ts +1 -92
  120. package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.vue +1 -1
  121. package/src/components/Customs/SyCheckBoxGroup/tests/SyCheckBoxGroup.visual.cy.ts +55 -0
  122. package/src/components/Customs/SyCheckBoxGroup/tests/__snapshots__/sy-checkbox-group-default.snap.png +0 -0
  123. package/src/components/Customs/SyCheckBoxGroup/tests/__snapshots__/sy-checkbox-group-disabled.snap.png +0 -0
  124. package/src/components/Customs/SyCheckBoxGroup/tests/__snapshots__/sy-checkbox-group-selected.snap.png +0 -0
  125. package/src/components/Customs/SyCheckBoxGroup/tests/__snapshots__/sy-checkbox-group-with-label.snap.png +0 -0
  126. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +1 -9
  127. package/src/components/Customs/SyCheckbox/tests/SyCheckbox.visual.cy.ts +61 -0
  128. package/src/components/Customs/SyCheckbox/tests/__snapshots__/sy-checkbox-checked.snap.png +0 -0
  129. package/src/components/Customs/SyCheckbox/tests/__snapshots__/sy-checkbox-disabled.snap.png +0 -0
  130. package/src/components/Customs/SyCheckbox/tests/__snapshots__/sy-checkbox-indeterminate.snap.png +0 -0
  131. package/src/components/Customs/SyCheckbox/tests/__snapshots__/sy-checkbox-required.snap.png +0 -0
  132. package/src/components/Customs/SyCheckbox/tests/__snapshots__/sy-checkbox-unchecked.snap.png +0 -0
  133. package/src/components/Customs/SyIcon/SyIcon.vue +19 -1
  134. package/src/components/Customs/SyIcon/tests/SyIcon.visual.cy.ts +83 -0
  135. package/src/components/Customs/SyIcon/tests/__snapshots__/sy-icon-color-error.snap.png +0 -0
  136. package/src/components/Customs/SyIcon/tests/__snapshots__/sy-icon-decorative.snap.png +0 -0
  137. package/src/components/Customs/SyIcon/tests/__snapshots__/sy-icon-informative.snap.png +0 -0
  138. package/src/components/Customs/SyIcon/tests/__snapshots__/sy-icon-role-button.snap.png +0 -0
  139. package/src/components/Customs/SyIcon/tests/__snapshots__/sy-icon-size-large.snap.png +0 -0
  140. package/src/components/Customs/SyIconButton/tests/SyIconButton.visual.cy.ts +55 -0
  141. package/src/components/Customs/SyIconButton/tests/__snapshots__/sy-icon-button-default.snap.png +0 -0
  142. package/src/components/Customs/SyIconButton/tests/__snapshots__/sy-icon-button-disabled.snap.png +0 -0
  143. package/src/components/Customs/SyIconButton/tests/__snapshots__/sy-icon-button-error.snap.png +0 -0
  144. package/src/components/Customs/SyIconButton/tests/__snapshots__/sy-icon-button-large.snap.png +0 -0
  145. package/src/components/Customs/SyPagination/tests/SyPagination.visual.cy.ts +40 -0
  146. package/src/components/Customs/SyPagination/tests/__snapshots__/sy-pagination-first-page.snap.png +0 -0
  147. package/src/components/Customs/SyPagination/tests/__snapshots__/sy-pagination-middle-page.snap.png +0 -0
  148. package/src/components/Customs/SyPagination/tests/__snapshots__/sy-pagination-with-label.snap.png +0 -0
  149. package/src/components/Customs/SyRadioGroup/SyRadioGroup.stories.ts +0 -1
  150. package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +4 -3
  151. package/src/components/Customs/SyRadioGroup/composables/useSyRadioGroupValidation.ts +1 -1
  152. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-asterisk.snap.png +0 -0
  153. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-comfortable.snap.png +0 -0
  154. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-compact.snap.png +0 -0
  155. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-default.snap.png +0 -0
  156. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-disabled.snap.png +0 -0
  157. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-error.snap.png +0 -0
  158. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-no-details.snap.png +0 -0
  159. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-readonly.snap.png +0 -0
  160. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-selected.snap.png +0 -0
  161. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-success.snap.png +0 -0
  162. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-warning.snap.png +0 -0
  163. package/src/components/Customs/SyRadioGroup/validation/Validation.stories.ts +63 -27
  164. package/src/components/Customs/SyTabs/tests/SyTabs.visual.cy.ts +30 -0
  165. package/src/components/Customs/SyTabs/tests/__snapshots__/sy-tabs-default.snap.png +0 -0
  166. package/src/components/Customs/SyTabs/tests/__snapshots__/sy-tabs-second-active.snap.png +0 -0
  167. package/src/components/Customs/SyTextField/SyTextField.stories.ts +160 -778
  168. package/src/components/Customs/SyTextField/SyTextField.vue +168 -153
  169. package/src/components/Customs/SyTextField/Validation/Validation.stories.ts +1164 -0
  170. package/src/components/Customs/SyTextField/locales.ts +12 -0
  171. package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +174 -8
  172. package/src/components/Customs/SyTextField/tests/SyTextField.visual.cy.ts +116 -0
  173. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-clearable.snap.png +0 -0
  174. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-default.snap.png +0 -0
  175. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-number-disabled.snap.png +0 -0
  176. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-number-no-spinner.snap.png +0 -0
  177. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-number.snap.png +0 -0
  178. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-prepend-icon.snap.png +0 -0
  179. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-readonly.snap.png +0 -0
  180. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-required.snap.png +0 -0
  181. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-with-value.snap.png +0 -0
  182. package/src/components/Customs/SyTextField/types.ts +70 -0
  183. package/src/components/Customs/SyTextField/useNumberField.ts +93 -0
  184. package/src/components/Customs/SyTextField/useSyTextFieldValidation.ts +104 -0
  185. package/src/components/DataList/tests/DataList.visual.cy.ts +85 -0
  186. package/src/components/DataList/tests/__snapshots__/data-list-default.snap.png +0 -0
  187. package/src/components/DataList/tests/__snapshots__/data-list-loading.snap.png +0 -0
  188. package/src/components/DataList/tests/__snapshots__/data-list-row.snap.png +0 -0
  189. package/src/components/DataList/tests/__snapshots__/data-list-with-icons.snap.png +0 -0
  190. package/src/components/DataList/tests/__snapshots__/data-list-with-title.snap.png +0 -0
  191. package/src/components/DataListGroup/tests/DataListGroup.visual.cy.ts +51 -0
  192. package/src/components/DataListGroup/tests/__snapshots__/data-list-group-default.snap.png +0 -0
  193. package/src/components/DataListGroup/tests/__snapshots__/data-list-group-loading.snap.png +0 -0
  194. package/src/components/DataListItem/tests/DataListItem.visual.cy.ts +53 -0
  195. package/src/components/DataListItem/tests/__snapshots__/data-list-item-chip.snap.png +0 -0
  196. package/src/components/DataListItem/tests/__snapshots__/data-list-item-default.snap.png +0 -0
  197. package/src/components/DataListItem/tests/__snapshots__/data-list-item-placeholder.snap.png +0 -0
  198. package/src/components/DataListItem/tests/__snapshots__/data-list-item-row.snap.png +0 -0
  199. package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +1 -1
  200. package/src/components/DatePicker/CalendarMode/DatePicker.vue +7 -7
  201. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +1 -1
  202. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +7 -8
  203. package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +1 -1
  204. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +2 -2
  205. package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +1 -1
  206. package/src/components/DatePicker/composables/tests/useTodayButton.spec.ts +10 -10
  207. package/src/components/DatePicker/composables/useCalendarKeyboardNavigation.ts +11 -2
  208. package/src/components/DeclarationAccessibilityPage/tests/DeclarationAccessibilityPage.visual.cy.ts +35 -0
  209. package/src/components/DeclarationAccessibilityPage/tests/__snapshots__/declaration-a11y-page-default.snap.png +0 -0
  210. package/src/components/DeclarationAccessibilityPage/tests/__snapshots__/declaration-a11y-page-full.snap.png +0 -0
  211. package/src/components/DiacriticPicker/tests/DiacriticPicker.visual.cy.ts +24 -0
  212. package/src/components/DiacriticPicker/tests/__snapshots__/diacritic-picker-custom-title.snap.png +0 -0
  213. package/src/components/DiacriticPicker/tests/__snapshots__/diacritic-picker-default.snap.png +0 -0
  214. package/src/components/DialogBox/tests/__snapshots__/dialog-box-custom-texts.snap.png +0 -0
  215. package/src/components/DialogBox/tests/__snapshots__/dialog-box-default.snap.png +0 -0
  216. package/src/components/DialogBox/tests/__snapshots__/dialog-box-no-actions.snap.png +0 -0
  217. package/src/components/DownloadBtn/tests/DownloadBtn.spec.ts +2 -2
  218. package/src/components/DownloadBtn/tests/DownloadBtn.visual.cy.ts +38 -0
  219. package/src/components/DownloadBtn/tests/__snapshots__/download-btn-dark.snap.png +0 -0
  220. package/src/components/DownloadBtn/tests/__snapshots__/download-btn-idle.snap.png +0 -0
  221. package/src/components/ErrorPage/tests/ErrorPage.visual.cy.ts +32 -0
  222. package/src/components/ErrorPage/tests/__snapshots__/error-page-custom.snap.png +0 -0
  223. package/src/components/ErrorPage/tests/__snapshots__/error-page-default.snap.png +0 -0
  224. package/src/components/ErrorPage/tests/__snapshots__/error-page-no-btn.snap.png +0 -0
  225. package/src/components/ExternalLinks/tests/ExternalLinks.visual.cy.ts +30 -0
  226. package/src/components/ExternalLinks/tests/__snapshots__/external-links-default.snap.png +0 -0
  227. package/src/components/ExternalLinks/tests/__snapshots__/external-links-fixed.snap.png +0 -0
  228. package/src/components/FileList/tests/FileList.visual.cy.ts +31 -0
  229. package/src/components/FileList/tests/__snapshots__/file-list-default.snap.png +0 -0
  230. package/src/components/FileList/tests/__snapshots__/file-list-with-delete.snap.png +0 -0
  231. package/src/components/FilePreview/accessibilite/Accessibility.mdx +86 -8
  232. package/src/components/FileUpload/tests/FileUpload.visual.cy.ts +36 -0
  233. package/src/components/FileUpload/tests/__snapshots__/file-upload-default.snap.png +0 -0
  234. package/src/components/FileUpload/tests/__snapshots__/file-upload-disabled.snap.png +0 -0
  235. package/src/components/FileUpload/tests/__snapshots__/file-upload-multiple.snap.png +0 -0
  236. package/src/components/FilterInline/FilterInline.stories.ts +2 -0
  237. package/src/components/FilterInline/FilterInline.vue +10 -5
  238. package/src/components/FilterInline/tests/FilterInline.visual.cy.ts +25 -0
  239. package/src/components/FilterInline/tests/__snapshots__/filter-inline-default.snap.png +0 -0
  240. package/src/components/FilterSideBar/FilterSideBar.stories.ts +4 -1
  241. package/src/components/FilterSideBar/FilterSideBar.vue +11 -6
  242. package/src/components/FilterSideBar/tests/FilterSideBar.visual.cy.ts +37 -0
  243. package/src/components/FilterSideBar/tests/__snapshots__/filter-sidebar-default.snap.png +0 -0
  244. package/src/components/FilterSideBar/tests/__snapshots__/filter-sidebar-modale.snap.png +0 -0
  245. package/src/components/FooterBar/tests/FooterBar.visual.cy.ts +37 -0
  246. package/src/components/FooterBar/tests/__snapshots__/footer-bar-default.snap.png +0 -0
  247. package/src/components/FooterBar/tests/__snapshots__/footer-bar-no-logo.snap.png +0 -0
  248. package/src/components/FooterBar/tests/__snapshots__/footer-bar-no-social.snap.png +0 -0
  249. package/src/components/FooterBar/tests/__snapshots__/footer-bar-version.snap.png +0 -0
  250. package/src/components/FranceConnectBtn/tests/FranceConnectBtn.visual.cy.ts +38 -0
  251. package/src/components/FranceConnectBtn/tests/__snapshots__/france-connect-btn-dark.snap.png +0 -0
  252. package/src/components/FranceConnectBtn/tests/__snapshots__/france-connect-btn-default.snap.png +0 -0
  253. package/src/components/FranceConnectBtn/tests/__snapshots__/france-connect-btn-plus.snap.png +0 -0
  254. package/src/components/HeaderBar/HeaderBurgerMenu/tests/HeaderBurgerMenu.spec.ts +4 -4
  255. package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/header-burger-menu-generated-submenu-open.snap.png +0 -0
  256. package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/header-burger-menu-generated.snap.png +0 -0
  257. package/src/components/HeaderBar/tests/__snapshots__/header-bar-custom-width.snap.png +0 -0
  258. package/src/components/HeaderBar/tests/__snapshots__/header-bar-default.snap.png +0 -0
  259. package/src/components/HeaderBar/tests/__snapshots__/header-bar-no-sticky.snap.png +0 -0
  260. package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-prepend.snap.png +0 -0
  261. package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-side.snap.png +0 -0
  262. package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-subtitle.snap.png +0 -0
  263. package/src/components/HeaderLoading/tests/HeaderLoading.visual.cy.ts +34 -0
  264. package/src/components/HeaderLoading/tests/__snapshots__/header-loading-custom-size.snap.png +0 -0
  265. package/src/components/HeaderLoading/tests/__snapshots__/header-loading-default.snap.png +0 -0
  266. package/src/components/HeaderLoading/tests/__snapshots__/header-loading-standalone.snap.png +0 -0
  267. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.spec.ts +4 -4
  268. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.visual.cy.ts +34 -0
  269. package/src/components/HeaderNavigationBar/tests/__snapshots__/header-navigation-bar-default.snap.png +0 -0
  270. package/src/components/HeaderNavigationBar/tests/__snapshots__/header-navigation-bar-subtitle.snap.png +0 -0
  271. package/src/components/HeaderToolbar/tests/HeaderToolbar.visual.cy.ts +25 -0
  272. package/src/components/HeaderToolbar/tests/__snapshots__/header-toolbar-custom.snap.png +0 -0
  273. package/src/components/HeaderToolbar/tests/__snapshots__/header-toolbar-default.snap.png +0 -0
  274. package/src/components/LangBtn/tests/LangBtn.visual.cy.ts +33 -0
  275. package/src/components/LangBtn/tests/__snapshots__/lang-btn-default.snap.png +0 -0
  276. package/src/components/LangBtn/tests/__snapshots__/lang-btn-english.snap.png +0 -0
  277. package/src/components/LangBtn/tests/__snapshots__/lang-btn-no-arrow.snap.png +0 -0
  278. package/src/components/Logo/tests/__snapshots__/logo-avatar.snap.png +0 -0
  279. package/src/components/Logo/tests/__snapshots__/logo-dark.snap.png +0 -0
  280. package/src/components/Logo/tests/__snapshots__/logo-default.snap.png +0 -0
  281. package/src/components/Logo/tests/__snapshots__/logo-no-organism.snap.png +0 -0
  282. package/src/components/Logo/tests/__snapshots__/logo-no-signature.snap.png +0 -0
  283. package/src/components/Logo/tests/__snapshots__/logo-risque-pro.snap.png +0 -0
  284. package/src/components/LogoBrandSection/tests/LogoBrandSection.visual.cy.ts +43 -0
  285. package/src/components/LogoBrandSection/tests/__snapshots__/logo-brand-section-default.snap.png +0 -0
  286. package/src/components/LogoBrandSection/tests/__snapshots__/logo-brand-section-mobile.snap.png +0 -0
  287. package/src/components/LogoBrandSection/tests/__snapshots__/logo-brand-section-reduced.snap.png +0 -0
  288. package/src/components/LogoBrandSection/tests/__snapshots__/logo-brand-section-with-title.snap.png +0 -0
  289. package/src/components/LunarCalendar/tests/LunarCalendar.visual.cy.ts +36 -0
  290. package/src/components/LunarCalendar/tests/__snapshots__/lunar-calendar-default.snap.png +0 -0
  291. package/src/components/LunarCalendar/tests/__snapshots__/lunar-calendar-required.snap.png +0 -0
  292. package/src/components/LunarCalendar/tests/__snapshots__/lunar-calendar-with-value.snap.png +0 -0
  293. package/src/components/MaintenancePage/tests/MaintenancePage.visual.cy.ts +22 -0
  294. package/src/components/MaintenancePage/tests/__snapshots__/maintenance-page-custom.snap.png +0 -0
  295. package/src/components/MaintenancePage/tests/__snapshots__/maintenance-page-default.snap.png +0 -0
  296. package/src/components/MonthPicker/tests/MonthPicker.visual.cy.ts +37 -0
  297. package/src/components/MonthPicker/tests/__snapshots__/MonthPicker.spec.ts.snap +2 -0
  298. package/src/components/MonthPicker/tests/__snapshots__/month-picker-default.snap.png +0 -0
  299. package/src/components/MonthPicker/tests/__snapshots__/month-picker-disabled.snap.png +0 -0
  300. package/src/components/MonthPicker/tests/__snapshots__/month-picker-readonly.snap.png +0 -0
  301. package/src/components/MonthPicker/tests/__snapshots__/month-picker-with-value.snap.png +0 -0
  302. package/src/components/NirField/NirField.stories.ts +40 -682
  303. package/src/components/NirField/NirField.vue +98 -32
  304. package/src/components/NirField/tests/NirField.spec.ts +135 -14
  305. package/src/components/NirField/tests/NirField.visual.cy.ts +28 -0
  306. package/src/components/NirField/tests/__snapshots__/nir-field-complex.snap.png +0 -0
  307. package/src/components/NirField/tests/__snapshots__/nir-field-default.snap.png +0 -0
  308. package/src/components/NirField/tests/__snapshots__/nir-field-with-key.snap.png +0 -0
  309. package/src/components/NirField/tests/useNirValidation.spec.ts +168 -0
  310. package/src/components/NirField/useNirValidation.ts +28 -2
  311. package/src/components/NirField/validation/Validation.stories.ts +866 -0
  312. package/src/components/NotFoundPage/tests/NotFoundPage.visual.cy.ts +28 -0
  313. package/src/components/NotFoundPage/tests/__snapshots__/not-found-page-custom-btn.snap.png +0 -0
  314. package/src/components/NotFoundPage/tests/__snapshots__/not-found-page-default.snap.png +0 -0
  315. package/src/components/NotFoundPage/tests/__snapshots__/not-found-page-no-btn.snap.png +0 -0
  316. package/src/components/NotificationBar/tests/NotificationBar.visual.cy.ts +54 -0
  317. package/src/components/NotificationBar/tests/__snapshots__/notification-bar-bottom.snap.png +0 -0
  318. package/src/components/NotificationBar/tests/__snapshots__/notification-bar-info.snap.png +0 -0
  319. package/src/components/NotificationBar/tests/__snapshots__/notification-bar-multiple.snap.png +0 -0
  320. package/src/components/PageContainer/tests/PageContainer.visual.cy.ts +33 -0
  321. package/src/components/PageContainer/tests/__snapshots__/page-container-color.snap.png +0 -0
  322. package/src/components/PageContainer/tests/__snapshots__/page-container-default.snap.png +0 -0
  323. package/src/components/PageContainer/tests/__snapshots__/page-container-md.snap.png +0 -0
  324. package/src/components/PaginatedTable/accessibilite/Accessibility.mdx +99 -7
  325. package/src/components/PaginatedTable/tests/PaginatedTable.visual.cy.ts +41 -0
  326. package/src/components/PaginatedTable/tests/__snapshots__/paginated-table-default.snap.png +0 -0
  327. package/src/components/PaginatedTable/tests/__snapshots__/paginated-table-server.snap.png +0 -0
  328. package/src/components/PasswordField/PasswordField.mdx +5 -52
  329. package/src/components/PasswordField/PasswordField.stories.ts +74 -931
  330. package/src/components/PasswordField/PasswordField.vue +120 -191
  331. package/src/components/PasswordField/Validation/Validation.stories.ts +1295 -0
  332. package/src/components/PasswordField/locales.ts +2 -0
  333. package/src/components/PasswordField/tests/PasswordField.spec.ts +144 -106
  334. package/src/components/PasswordField/tests/PasswordField.visual.cy.ts +49 -0
  335. package/src/components/PasswordField/tests/__snapshots__/password-field-default.snap.png +0 -0
  336. package/src/components/PasswordField/tests/__snapshots__/password-field-disabled.snap.png +0 -0
  337. package/src/components/PasswordField/tests/__snapshots__/password-field-required.snap.png +0 -0
  338. package/src/components/PasswordField/tests/__snapshots__/password-field-underlined.snap.png +0 -0
  339. package/src/components/PasswordField/types.ts +17 -0
  340. package/src/components/PasswordField/usePasswordFieldValidation.ts +100 -0
  341. package/src/components/PeriodField/PeriodField.stories.ts +3 -1
  342. package/src/components/PeriodField/PeriodField.vue +1 -1
  343. package/src/components/PeriodField/tests/PeriodField.visual.cy.ts +39 -0
  344. package/src/components/PeriodField/tests/__snapshots__/period-field-default.snap.png +0 -0
  345. package/src/components/PeriodField/tests/__snapshots__/period-field-no-calendar.snap.png +0 -0
  346. package/src/components/PeriodField/tests/__snapshots__/period-field-required.snap.png +0 -0
  347. package/src/components/PeriodField/tests/__snapshots__/period-field-with-value.snap.png +0 -0
  348. package/src/components/PhoneField/PhoneField.vue +2 -2
  349. package/src/components/PhoneField/tests/PhoneField.spec.ts +1 -0
  350. package/src/components/PhoneField/tests/PhoneField.visual.cy.ts +28 -0
  351. package/src/components/PhoneField/tests/__snapshots__/phone-field-default.snap.png +0 -0
  352. package/src/components/PhoneField/tests/__snapshots__/phone-field-with-country-code.snap.png +0 -0
  353. package/src/components/PhoneField/tests/__snapshots__/phone-field-with-value.snap.png +0 -0
  354. package/src/components/RangeField/tests/__snapshots__/range-field-custom-bg.snap.png +0 -0
  355. package/src/components/RangeField/tests/__snapshots__/range-field-custom-range.snap.png +0 -0
  356. package/src/components/RangeField/tests/__snapshots__/range-field-default.snap.png +0 -0
  357. package/src/components/RangeField/tests/__snapshots__/range-field-step.snap.png +0 -0
  358. package/src/components/RangeField/tests/__snapshots__/range-field-with-label.snap.png +0 -0
  359. package/src/components/RatingPicker/tests/RatingPicker.visual.cy.ts +52 -0
  360. package/src/components/RatingPicker/tests/__snapshots__/rating-picker-emotion.snap.png +0 -0
  361. package/src/components/RatingPicker/tests/__snapshots__/rating-picker-number.snap.png +0 -0
  362. package/src/components/RatingPicker/tests/__snapshots__/rating-picker-readonly.snap.png +0 -0
  363. package/src/components/RatingPicker/tests/__snapshots__/rating-picker-stars.snap.png +0 -0
  364. package/src/components/SearchListField/SearchListField.mdx +1 -1
  365. package/src/components/SearchListField/SearchListField.stories.ts +1 -1
  366. package/src/components/SearchListField/SearchListField.vue +9 -4
  367. package/src/components/SearchListField/tests/SearchListField.spec.ts +127 -0
  368. package/src/components/SearchListField/tests/SearchListField.visual.cy.ts +35 -0
  369. package/src/components/SearchListField/tests/__snapshots__/search-list-field-default.snap.png +0 -0
  370. package/src/components/SearchListField/tests/__snapshots__/search-list-field-with-selection.snap.png +0 -0
  371. package/src/components/SkipLink/tests/SkipLink.visual.cy.ts +16 -0
  372. package/src/components/SkipLink/tests/__snapshots__/skip-link-focused.snap.png +0 -0
  373. package/src/components/SocialMediaLinks/tests/SocialMediaLinks.visual.cy.ts +33 -0
  374. package/src/components/SocialMediaLinks/tests/__snapshots__/social-media-links-default.snap.png +0 -0
  375. package/src/components/SocialMediaLinks/tests/__snapshots__/social-media-links-no-native-heading.snap.png +0 -0
  376. package/src/components/StatusPage/tests/StatusPage.visual.cy.ts +47 -0
  377. package/src/components/StatusPage/tests/__snapshots__/status-page-default.snap.png +0 -0
  378. package/src/components/StatusPage/tests/__snapshots__/status-page-full.snap.png +0 -0
  379. package/src/components/StatusPage/tests/__snapshots__/status-page-no-btn.snap.png +0 -0
  380. package/src/components/SubHeader/tests/SubHeader.visual.cy.ts +48 -0
  381. package/src/components/SubHeader/tests/__snapshots__/sub-header-default.snap.png +0 -0
  382. package/src/components/SubHeader/tests/__snapshots__/sub-header-loading.snap.png +0 -0
  383. package/src/components/SubHeader/tests/__snapshots__/sub-header-no-back-btn.snap.png +0 -0
  384. package/src/components/SubHeader/tests/__snapshots__/sub-header-with-subtitle.snap.png +0 -0
  385. package/src/components/SyAlert/tests/__snapshots__/sy-alert-closable.snap.png +0 -0
  386. package/src/components/SyAlert/tests/__snapshots__/sy-alert-error.snap.png +0 -0
  387. package/src/components/SyAlert/tests/__snapshots__/sy-alert-info.snap.png +0 -0
  388. package/src/components/SyAlert/tests/__snapshots__/sy-alert-success.snap.png +0 -0
  389. package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-outlined.snap.png +0 -0
  390. package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-tonal.snap.png +0 -0
  391. package/src/components/SyAlert/tests/__snapshots__/sy-alert-warning.snap.png +0 -0
  392. package/src/components/SyHeading/tests/SyHeading.visual.cy.ts +33 -0
  393. package/src/components/SyHeading/tests/__snapshots__/sy-heading-level-1.snap.png +0 -0
  394. package/src/components/SyHeading/tests/__snapshots__/sy-heading-level-2.snap.png +0 -0
  395. package/src/components/SyHeading/tests/__snapshots__/sy-heading-level-3.snap.png +0 -0
  396. package/src/components/SyTextArea/SyTextArea.stories.ts +25 -0
  397. package/src/components/SyTextArea/SyTextArea.vue +7 -0
  398. package/src/components/SyTextArea/composables/useSyTextAreaValidation.ts +1 -1
  399. package/src/components/SyTextArea/tests/SyTextArea.a11y.spec.ts +18 -0
  400. package/src/components/SyTextArea/tests/SyTextArea.spec.ts +135 -1
  401. package/src/components/SyTextArea/tests/SyTextArea.visual.cy.ts +48 -0
  402. package/src/components/SyTextArea/tests/__snapshots__/sy-textarea-default.snap.png +0 -0
  403. package/src/components/SyTextArea/tests/__snapshots__/sy-textarea-filled.snap.png +0 -0
  404. package/src/components/SyTextArea/tests/__snapshots__/sy-textarea-required.snap.png +0 -0
  405. package/src/components/SyTextArea/tests/__snapshots__/sy-textarea-with-value.snap.png +0 -0
  406. package/src/components/SyTextArea/validation/Validation.stories.ts +6 -86
  407. package/src/components/TableToolbar/tests/TableToolbar.visual.cy.ts +49 -0
  408. package/src/components/TableToolbar/tests/__snapshots__/table-toolbar-default.snap.png +0 -0
  409. package/src/components/TableToolbar/tests/__snapshots__/table-toolbar-filtered.snap.png +0 -0
  410. package/src/components/TableToolbar/tests/__snapshots__/table-toolbar-loading.snap.png +0 -0
  411. package/src/components/TableToolbar/tests/__snapshots__/table-toolbar-with-add-btn.snap.png +0 -0
  412. package/src/components/Tables/SyServerTable/SyServerTable.vue +3 -3
  413. package/src/components/Tables/SyServerTable/accessibilite/Accessibility.mdx +114 -7
  414. package/src/components/Tables/SyServerTable/tests/SyServerTable.visual.cy.ts +58 -0
  415. package/src/components/Tables/SyServerTable/tests/__snapshots__/sy-server-table-default.snap.png +0 -0
  416. package/src/components/Tables/SyServerTable/tests/__snapshots__/sy-server-table-loading.snap.png +0 -0
  417. package/src/components/Tables/SyServerTable/tests/__snapshots__/sy-server-table-with-select.snap.png +0 -0
  418. package/src/components/Tables/SyTable/accessibilite/Accessibility.mdx +116 -7
  419. package/src/components/Tables/SyTable/tests/SyTable.visual.cy.ts +70 -0
  420. package/src/components/Tables/SyTable/tests/__snapshots__/sy-table-compact.snap.png +0 -0
  421. package/src/components/Tables/SyTable/tests/__snapshots__/sy-table-default.snap.png +0 -0
  422. package/src/components/Tables/SyTable/tests/__snapshots__/sy-table-striped.snap.png +0 -0
  423. package/src/components/Tables/SyTable/tests/__snapshots__/sy-table-with-select.snap.png +0 -0
  424. package/src/components/Tables/common/tableStyles.scss +4 -4
  425. package/src/components/Tables/common/tests/SyTableFilter.spec.ts +8 -1
  426. package/src/components/Tables/common/tests/filterByRange.spec.ts +23 -22
  427. package/src/components/ToolbarContainer/tests/ToolbarContainer.visual.cy.ts +34 -0
  428. package/src/components/ToolbarContainer/tests/__snapshots__/toolbar-container-default.snap.png +0 -0
  429. package/src/components/ToolbarContainer/tests/__snapshots__/toolbar-container-links.snap.png +0 -0
  430. package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +1 -2
  431. package/src/components/UploadWorkflow/tests/UploadWorkflow.visual.cy.ts +39 -0
  432. package/src/components/UploadWorkflow/tests/__snapshots__/upload-workflow-default.snap.png +0 -0
  433. package/src/components/UploadWorkflow/tests/__snapshots__/upload-workflow-with-title.snap.png +0 -0
  434. package/src/components/UserMenuBtn/tests/UserMenuBtn.visual.cy.ts +42 -0
  435. package/src/components/UserMenuBtn/tests/__snapshots__/user-menu-btn-default.snap.png +0 -0
  436. package/src/components/UserMenuBtn/tests/__snapshots__/user-menu-btn-no-logout.snap.png +0 -0
  437. package/src/components/UserMenuBtn/tests/__snapshots__/user-menu-btn-with-name.snap.png +0 -0
  438. package/src/composables/unifyValidation/documentationValidationProps.ts +1 -1
  439. package/src/composables/unifyValidation/tests/documentationValidationProps.spec.ts +2 -2
  440. package/src/composables/unifyValidation/useValidation.ts +17 -11
  441. package/src/composables/useFilterable/useFilterable.spec.ts +105 -142
  442. package/src/composables/useFilterable/useFilterable.ts +6 -17
  443. package/src/composables/useFormFieldErrorHandling.ts +1 -1
  444. package/src/composables/validation/tests/useFormValidation.spec.ts +11 -2
  445. package/src/composables/validation/tests/useValidatable.spec.ts +16 -6
  446. package/src/composables/validation/tests/useValidation.spec.ts +2 -2
  447. package/src/composables/validation/useValidation.ts +1 -1
  448. package/src/composantsVuetify/VCard/VCard.mdx +8 -0
  449. package/src/composantsVuetify/VCard/v-card.stories.ts +191 -1
  450. package/src/composantsVuetify/VStepper/VStepper.mdx +56 -0
  451. package/src/composantsVuetify/VStepper/v-stepper.stories.ts +563 -0
  452. package/src/designTokens/tokens/amelipro/apLightTheme.ts +1 -0
  453. package/src/designTokens/tokens/amelipro/apSemantic.ts +1 -1
  454. package/src/designTokens/tokens/pa/paLightTheme.ts +1 -0
  455. package/src/stories/Accessibilite/DesignSystem/a11y-status.json +1 -1
  456. package/src/stories/Components/Components.stories.ts +61 -10
  457. package/src/stories/Demarrer/Releases.stories.ts +45 -2
  458. package/src/stories/DesignTokens/Colors.mdx +2 -0
  459. package/src/stories/DesignTokens/colors.stories.ts +13 -0
  460. package/src/stories/EcoConception/EcoBestPracticesDoc.vue +930 -0
  461. package/src/stories/EcoConception/EcoBestPratices.mdx +38 -0
  462. package/src/stories/EcoConception/Introduction.mdx +8 -1
  463. package/src/stories/EcoConception/datas/bonnes_pratiques_essentielles.json +1018 -0
  464. package/src/stories/EcoConception/ecoconception-best-practices.stories.ts +20 -0
  465. package/src/stories/GuideDuDev/Amelipro.mdx +9 -1
  466. package/src/stories/GuideDuDev/Amelipro.stories.ts +955 -168
  467. package/src/stories/GuideDuDev/PortailAgent.stories.ts +0 -1
  468. package/src/utils/functions/deepCopy/index.ts +2 -3
  469. package/dist/components/Customs/SyCheckbox/locales.d.ts +0 -3
  470. package/dist/components/SyHeading/SyHeading.a11y.test.d.ts +0 -1
  471. package/dist/components/SyHeading/SyHeading.test.d.ts +0 -1
  472. package/src/components/Customs/SyCheckbox/locales.ts +0 -3
  473. package/src/components/Customs/SyTextField/types.d.ts +0 -4
@@ -39,7 +39,7 @@ export function useSyTextAreaValidation(
39
39
  disabled: computed(() => props.disabled ?? false),
40
40
  required: computed(() => props.required ?? false),
41
41
  isValidateOnBlur: computed(() => props.isValidateOnBlur ?? true),
42
- showSuccessMessages: computed(() => props.showSuccessMessages ?? true),
42
+ showSuccessMessages: computed(() => props.showSuccessMessages ?? false),
43
43
  disableErrorHandling: computed(() => props.disableErrorHandling ?? false),
44
44
  useVuetifyValidation: computed(() => props.useVuetifyValidation ?? false),
45
45
  label: computed(() => props.label ?? ''),
@@ -10,6 +10,8 @@ describe('SyTextArea – accessibility (axe)', () => {
10
10
  it('has no obvious axe violations with default props', async () => {
11
11
  const wrapper = mount(SyTextArea, {
12
12
  props: {
13
+ uniqueId: 'textarea-1',
14
+ counter: 255,
13
15
  label: 'Description',
14
16
  },
15
17
  modelValue: '',
@@ -24,6 +26,8 @@ describe('SyTextArea – accessibility (axe)', () => {
24
26
  it('has no obvious axe violations with value', async () => {
25
27
  const wrapper = mount(SyTextArea, {
26
28
  props: {
29
+ uniqueId: 'textarea-1',
30
+ counter: 255,
27
31
  label: 'Description',
28
32
  },
29
33
  modelValue: 'Ceci est une description',
@@ -38,6 +42,8 @@ describe('SyTextArea – accessibility (axe)', () => {
38
42
  it('has no obvious axe violations with required field', async () => {
39
43
  const wrapper = mount(SyTextArea, {
40
44
  props: {
45
+ uniqueId: 'textarea-1',
46
+ counter: 255,
41
47
  label: 'Description',
42
48
  required: true,
43
49
  },
@@ -53,6 +59,8 @@ describe('SyTextArea – accessibility (axe)', () => {
53
59
  it('has no obvious axe violations with error messages', async () => {
54
60
  const wrapper = mount(SyTextArea, {
55
61
  props: {
62
+ uniqueId: 'textarea-1',
63
+ counter: 255,
56
64
  label: 'Description',
57
65
  required: true,
58
66
  },
@@ -71,6 +79,8 @@ describe('SyTextArea – accessibility (axe)', () => {
71
79
  it('has no obvious axe violations with max lines constraint', async () => {
72
80
  const wrapper = mount(SyTextArea, {
73
81
  props: {
82
+ uniqueId: 'textarea-1',
83
+ counter: 255,
74
84
  label: 'Description',
75
85
  maxLines: 3,
76
86
  },
@@ -89,6 +99,8 @@ describe('SyTextArea – accessibility (axe)', () => {
89
99
  it('has no obvious axe violations with custom rules', async () => {
90
100
  const wrapper = mount(SyTextArea, {
91
101
  props: {
102
+ uniqueId: 'textarea-1',
103
+ counter: 255,
92
104
  label: 'Description',
93
105
  rules: [(value: string) => value.length >= 10 || 'Minimum 10 caractères'],
94
106
  },
@@ -107,6 +119,8 @@ describe('SyTextArea – accessibility (axe)', () => {
107
119
  it('has no obvious axe violations with different variant', async () => {
108
120
  const wrapper = mount(SyTextArea, {
109
121
  props: {
122
+ uniqueId: 'textarea-1',
123
+ counter: 255,
110
124
  label: 'Description',
111
125
  variant: 'filled',
112
126
  },
@@ -122,6 +136,8 @@ describe('SyTextArea – accessibility (axe)', () => {
122
136
  it('has no obvious axe violations with custom color', async () => {
123
137
  const wrapper = mount(SyTextArea, {
124
138
  props: {
139
+ uniqueId: 'textarea-1',
140
+ counter: 255,
125
141
  label: 'Description',
126
142
  color: 'secondary',
127
143
  },
@@ -137,6 +153,8 @@ describe('SyTextArea – accessibility (axe)', () => {
137
153
  it('has no obvious axe violations with background color', async () => {
138
154
  const wrapper = mount(SyTextArea, {
139
155
  props: {
156
+ uniqueId: 'textarea-1',
157
+ counter: 255,
140
158
  label: 'Description',
141
159
  bgColor: 'grey-lighten-2',
142
160
  },
@@ -9,6 +9,8 @@ describe('SyTextArea', () => {
9
9
  it('renders correctly', () => {
10
10
  const wrapper = mount(SyTextArea, {
11
11
  props: {
12
+ uniqueId: 'textarea-1',
13
+ counter: 255,
12
14
  modelValue: '',
13
15
  label: 'Description des symptomes',
14
16
  },
@@ -17,9 +19,23 @@ describe('SyTextArea', () => {
17
19
  expect(wrapper.text()).toContain('Description des symptomes')
18
20
  })
19
21
 
22
+ it('applique l\'attribut id depuis uniqueId', () => {
23
+ const wrapper = mount(SyTextArea, {
24
+ props: {
25
+ uniqueId: 'my-textarea-id',
26
+ modelValue: '',
27
+ label: 'Description',
28
+ },
29
+ })
30
+
31
+ expect(wrapper.find('textarea').attributes('id')).toBe('my-textarea-id')
32
+ })
33
+
20
34
  it('sets aria-required when required is true', () => {
21
35
  const wrapper = mount(SyTextArea, {
22
36
  props: {
37
+ uniqueId: 'textarea-1',
38
+ counter: 255,
23
39
  modelValue: '',
24
40
  required: true,
25
41
  label: 'Description des symptomes',
@@ -33,6 +49,8 @@ describe('SyTextArea', () => {
33
49
  it('does not show required error message by default', async () => {
34
50
  const wrapper = mount(SyTextArea, {
35
51
  props: {
52
+ uniqueId: 'textarea-1',
53
+ counter: 255,
36
54
  modelValue: '',
37
55
  required: true,
38
56
  label: 'Description des symptomes',
@@ -45,6 +63,8 @@ describe('SyTextArea', () => {
45
63
  it('shows required error message when empty after interaction', async () => {
46
64
  const wrapper = mount(SyTextArea, {
47
65
  props: {
66
+ uniqueId: 'textarea-1',
67
+ counter: 255,
48
68
  modelValue: '',
49
69
  required: true,
50
70
  label: 'Description des symptomes',
@@ -60,6 +80,8 @@ describe('SyTextArea', () => {
60
80
  it('remove the white spaces at the beginning of the text as we try to add them', async () => {
61
81
  const wrapper = mount(SyTextArea, {
62
82
  props: {
83
+ uniqueId: 'textarea-1',
84
+ counter: 255,
63
85
  modelValue: '',
64
86
  trim: true,
65
87
  label: 'Description des symptomes',
@@ -75,6 +97,8 @@ describe('SyTextArea', () => {
75
97
  it('does not remove the white spaces at the middle of the text', async () => {
76
98
  const wrapper = mount(SyTextArea, {
77
99
  props: {
100
+ uniqueId: 'textarea-1',
101
+ counter: 255,
78
102
  modelValue: '',
79
103
  trim: true,
80
104
  label: 'Description des symptomes',
@@ -90,6 +114,8 @@ describe('SyTextArea', () => {
90
114
  it('removes the white spaces at the end of the text at blur', async () => {
91
115
  const wrapper = mount(SyTextArea, {
92
116
  props: {
117
+ uniqueId: 'textarea-1',
118
+ counter: 255,
93
119
  modelValue: '',
94
120
  trim: true,
95
121
  label: 'Description des symptomes',
@@ -107,6 +133,8 @@ describe('SyTextArea', () => {
107
133
  it('removes the tabs with the number of spaces defined in the prop', async () => {
108
134
  const wrapper = mount(SyTextArea, {
109
135
  props: {
136
+ uniqueId: 'textarea-1',
137
+ counter: 255,
110
138
  modelValue: '',
111
139
  replaceTabs: 2,
112
140
  label: 'Description des symptomes',
@@ -122,6 +150,8 @@ describe('SyTextArea', () => {
122
150
  it('show an error message when the text is too long', async () => {
123
151
  const wrapper = mount(SyTextArea, {
124
152
  props: {
153
+ uniqueId: 'textarea-1',
154
+ counter: 255,
125
155
  modelValue: '',
126
156
  maxLines: 5,
127
157
  label: 'Description des symptomes',
@@ -144,6 +174,8 @@ describe('SyTextArea', () => {
144
174
  it('adds a line break when a line is too long', async () => {
145
175
  const wrapper = mount(SyTextArea, {
146
176
  props: {
177
+ uniqueId: 'textarea-1',
178
+ counter: 255,
147
179
  modelValue: '',
148
180
  autoWrap: 50,
149
181
  label: 'Description des symptomes',
@@ -163,6 +195,8 @@ describe('SyTextArea', () => {
163
195
  it('adds a line break when a line is too long 2', async () => {
164
196
  const wrapper = mount(SyTextArea, {
165
197
  props: {
198
+ uniqueId: 'textarea-1',
199
+ counter: 255,
166
200
  modelValue: '',
167
201
  autoWrap: 50,
168
202
  label: 'Description des symptomes',
@@ -182,6 +216,8 @@ describe('SyTextArea', () => {
182
216
  it('normalizes the text to NFC', async () => {
183
217
  const wrapper = mount(SyTextArea, {
184
218
  props: {
219
+ uniqueId: 'textarea-1',
220
+ counter: 255,
185
221
  modelValue: '',
186
222
  normalize: true,
187
223
  label: 'Description des symptomes',
@@ -197,6 +233,8 @@ describe('SyTextArea', () => {
197
233
  it('updates the text when the modelValue prop changes', async () => {
198
234
  const wrapper = mount(SyTextArea, {
199
235
  props: {
236
+ uniqueId: 'textarea-1',
237
+ counter: 255,
200
238
  modelValue: '',
201
239
  replaceTabs: 2,
202
240
  trim: true,
@@ -212,6 +250,8 @@ describe('SyTextArea', () => {
212
250
  it('shows custom error from customRules in custom validation mode', async () => {
213
251
  const wrapper = mount(SyTextArea, {
214
252
  props: {
253
+ uniqueId: 'textarea-1',
254
+ counter: 255,
215
255
  modelValue: '',
216
256
  label: 'Description des symptomes',
217
257
  isValidateOnBlur: false,
@@ -240,6 +280,8 @@ describe('SyTextArea', () => {
240
280
  it('shows vuetify rule error when useVuetifyValidation is true', async () => {
241
281
  const wrapper = mount(SyTextArea, {
242
282
  props: {
283
+ uniqueId: 'textarea-1',
284
+ counter: 255,
243
285
  modelValue: '',
244
286
  label: 'Description des symptomes',
245
287
  useVuetifyValidation: true,
@@ -261,6 +303,8 @@ describe('SyTextArea', () => {
261
303
  it('shows custom warning from customWarningRules in custom validation mode', async () => {
262
304
  const wrapper = mount(SyTextArea, {
263
305
  props: {
306
+ uniqueId: 'textarea-1',
307
+ counter: 255,
264
308
  modelValue: '',
265
309
  label: 'Description des symptomes',
266
310
  isValidateOnBlur: false,
@@ -296,9 +340,12 @@ describe('SyTextArea', () => {
296
340
  it('shows custom success from customSuccessRules in custom validation mode', async () => {
297
341
  const wrapper = mount(SyTextArea, {
298
342
  props: {
343
+ uniqueId: 'textarea-1',
344
+ counter: 255,
299
345
  modelValue: '',
300
346
  label: 'Description des symptomes',
301
347
  isValidateOnBlur: false,
348
+ showSuccessMessages: true,
302
349
  customRules: [
303
350
  {
304
351
  type: 'custom',
@@ -331,6 +378,8 @@ describe('SyTextArea', () => {
331
378
  it('validates only on blur when isValidateOnBlur is true', async () => {
332
379
  const wrapper = mount(SyTextArea, {
333
380
  props: {
381
+ uniqueId: 'textarea-1',
382
+ counter: 255,
334
383
  modelValue: '',
335
384
  label: 'Description des symptomes',
336
385
  isValidateOnBlur: true,
@@ -362,6 +411,8 @@ describe('SyTextArea', () => {
362
411
  it('keeps success visual state but hides success text when showSuccessMessages is false', async () => {
363
412
  const wrapper = mount(SyTextArea, {
364
413
  props: {
414
+ uniqueId: 'textarea-1',
415
+ counter: 255,
365
416
  modelValue: '',
366
417
  label: 'Description des symptomes',
367
418
  isValidateOnBlur: false,
@@ -388,13 +439,14 @@ describe('SyTextArea', () => {
388
439
  expect((wrapper.vm as any).hasSuccess).toBe(true)
389
440
  expect(wrapper.find('.success-field').exists()).toBe(true)
390
441
  expect(wrapper.find('.sy-textarea__state-icon').exists()).toBe(true)
391
- expect(wrapper.findComponent(SyIcon).props('color')).toBe('onSuccessVariant')
392
442
  expect(wrapper.text()).not.toContain('Succès masqué')
393
443
  })
394
444
 
395
445
  it('applies warning visual state and warning icon when warning rules fail', async () => {
396
446
  const wrapper = mount(SyTextArea, {
397
447
  props: {
448
+ uniqueId: 'textarea-1',
449
+ counter: 255,
398
450
  modelValue: '',
399
451
  label: 'Description des symptomes',
400
452
  isValidateOnBlur: false,
@@ -424,6 +476,8 @@ describe('SyTextArea', () => {
424
476
  it('applies error visual state and error icon when validation fails', async () => {
425
477
  const wrapper = mount(SyTextArea, {
426
478
  props: {
479
+ uniqueId: 'textarea-1',
480
+ counter: 255,
427
481
  modelValue: '',
428
482
  label: 'Description des symptomes',
429
483
  required: true,
@@ -444,6 +498,8 @@ describe('SyTextArea', () => {
444
498
  it('affiche l\'astérisque quand displayAsterisk et required sont true', () => {
445
499
  const wrapper = mount(SyTextArea, {
446
500
  props: {
501
+ uniqueId: 'textarea-1',
502
+ counter: 255,
447
503
  modelValue: '',
448
504
  label: 'Test Label',
449
505
  displayAsterisk: true,
@@ -457,6 +513,8 @@ describe('SyTextArea', () => {
457
513
  it('n\'affiche pas l\'astérisque quand displayAsterisk est false', () => {
458
514
  const wrapper = mount(SyTextArea, {
459
515
  props: {
516
+ uniqueId: 'textarea-1',
517
+ counter: 255,
460
518
  modelValue: '',
461
519
  label: 'Test Label',
462
520
  displayAsterisk: false,
@@ -471,6 +529,8 @@ describe('SyTextArea', () => {
471
529
  it('n\'affiche pas l\'astérisque quand required est false', () => {
472
530
  const wrapper = mount(SyTextArea, {
473
531
  props: {
532
+ uniqueId: 'textarea-1',
533
+ counter: 255,
474
534
  modelValue: '',
475
535
  label: 'Test Label',
476
536
  displayAsterisk: true,
@@ -486,6 +546,8 @@ describe('SyTextArea', () => {
486
546
  it('affiche le helpText quand aucun message de validation n\'est présent', () => {
487
547
  const wrapper = mount(SyTextArea, {
488
548
  props: {
549
+ uniqueId: 'textarea-1',
550
+ counter: 255,
489
551
  modelValue: '',
490
552
  label: 'Description',
491
553
  helpText: 'Texte d\'aide',
@@ -498,6 +560,8 @@ describe('SyTextArea', () => {
498
560
  it('masque le helpText quand des erreurs sont présentes', async () => {
499
561
  const wrapper = mount(SyTextArea, {
500
562
  props: {
563
+ uniqueId: 'textarea-1',
564
+ counter: 255,
501
565
  modelValue: '',
502
566
  label: 'Description',
503
567
  helpText: 'Texte d\'aide',
@@ -518,6 +582,8 @@ describe('SyTextArea', () => {
518
582
  it('masque la zone des messages quand hideDetails est true et qu\'il n\'y a pas de messages', () => {
519
583
  const wrapper = mount(SyTextArea, {
520
584
  props: {
585
+ uniqueId: 'textarea-1',
586
+ counter: 255,
521
587
  modelValue: '',
522
588
  label: 'Description',
523
589
  hideDetails: true,
@@ -530,6 +596,8 @@ describe('SyTextArea', () => {
530
596
  it('affiche la zone des messages quand hideDetails est true mais qu\'il y a des erreurs', async () => {
531
597
  const wrapper = mount(SyTextArea, {
532
598
  props: {
599
+ uniqueId: 'textarea-1',
600
+ counter: 255,
533
601
  modelValue: '',
534
602
  label: 'Description',
535
603
  hideDetails: true,
@@ -548,6 +616,8 @@ describe('SyTextArea', () => {
548
616
  it('affiche la zone des messages par défaut (hideDetails vaut false)', () => {
549
617
  const wrapper = mount(SyTextArea, {
550
618
  props: {
619
+ uniqueId: 'textarea-1',
620
+ counter: 255,
551
621
  modelValue: '',
552
622
  label: 'Description',
553
623
  },
@@ -561,6 +631,8 @@ describe('SyTextArea', () => {
561
631
  it('affiche le bouton de suppression quand clearable est true et qu\'une valeur est saisie', () => {
562
632
  const wrapper = mount(SyTextArea, {
563
633
  props: {
634
+ uniqueId: 'textarea-1',
635
+ counter: 255,
564
636
  modelValue: 'contenu',
565
637
  label: 'Description',
566
638
  clearable: true,
@@ -576,6 +648,8 @@ describe('SyTextArea', () => {
576
648
  it('n\'affiche pas le bouton de suppression quand clearable est false', () => {
577
649
  const wrapper = mount(SyTextArea, {
578
650
  props: {
651
+ uniqueId: 'textarea-1',
652
+ counter: 255,
579
653
  modelValue: 'contenu',
580
654
  label: 'Description',
581
655
  clearable: false,
@@ -591,6 +665,8 @@ describe('SyTextArea', () => {
591
665
  it('vide le champ au clic sur le bouton de suppression', async () => {
592
666
  const wrapper = mount(SyTextArea, {
593
667
  props: {
668
+ uniqueId: 'textarea-1',
669
+ counter: 255,
594
670
  modelValue: 'contenu',
595
671
  label: 'Description',
596
672
  clearable: true,
@@ -614,6 +690,8 @@ describe('SyTextArea', () => {
614
690
  it('n\'affiche pas d\'erreur pour un champ requis sans valeur quand disableErrorHandling est true', async () => {
615
691
  const wrapper = mount(SyTextArea, {
616
692
  props: {
693
+ uniqueId: 'textarea-1',
694
+ counter: 255,
617
695
  modelValue: '',
618
696
  label: 'Description',
619
697
  required: true,
@@ -633,6 +711,8 @@ describe('SyTextArea', () => {
633
711
  it('affiche les erreurs normalement quand disableErrorHandling est false', async () => {
634
712
  const wrapper = mount(SyTextArea, {
635
713
  props: {
714
+ uniqueId: 'textarea-1',
715
+ counter: 255,
636
716
  modelValue: '',
637
717
  label: 'Description',
638
718
  required: true,
@@ -652,6 +732,8 @@ describe('SyTextArea', () => {
652
732
  it('validateOnSubmit retourne true quand le champ est valide', async () => {
653
733
  const wrapper = mount(SyTextArea, {
654
734
  props: {
735
+ uniqueId: 'textarea-1',
736
+ counter: 255,
655
737
  modelValue: 'valeur',
656
738
  label: 'Description',
657
739
  required: true,
@@ -668,6 +750,8 @@ describe('SyTextArea', () => {
668
750
  it('validateOnSubmit retourne false quand le champ est invalide', async () => {
669
751
  const wrapper = mount(SyTextArea, {
670
752
  props: {
753
+ uniqueId: 'textarea-1',
754
+ counter: 255,
671
755
  modelValue: '',
672
756
  label: 'Description',
673
757
  isValidateOnBlur: false,
@@ -698,6 +782,8 @@ describe('SyTextArea', () => {
698
782
  it('validateOnSubmit retourne false quand un champ requis est vide', async () => {
699
783
  const wrapper = mount(SyTextArea, {
700
784
  props: {
785
+ uniqueId: 'textarea-1',
786
+ counter: 255,
701
787
  modelValue: '',
702
788
  label: 'Description',
703
789
  required: true,
@@ -715,6 +801,8 @@ describe('SyTextArea', () => {
715
801
  it('clearValidation remet l\'état d\'erreur à zéro', async () => {
716
802
  const wrapper = mount(SyTextArea, {
717
803
  props: {
804
+ uniqueId: 'textarea-1',
805
+ counter: 255,
718
806
  modelValue: '',
719
807
  label: 'Description',
720
808
  isValidateOnBlur: false,
@@ -744,6 +832,52 @@ describe('SyTextArea', () => {
744
832
  })
745
833
  })
746
834
 
835
+ describe('counter', () => {
836
+ it('n\'affiche pas le compteur par défaut', () => {
837
+ const wrapper = mount(SyTextArea, {
838
+ props: {
839
+ uniqueId: 'textarea-1',
840
+ modelValue: 'hello',
841
+ label: 'Description',
842
+ },
843
+ })
844
+
845
+ expect(wrapper.find('.v-counter').exists()).toBe(false)
846
+ })
847
+
848
+ it('affiche uniquement le nombre de caractères quand counter est true', async () => {
849
+ const wrapper = mount(SyTextArea, {
850
+ props: {
851
+ uniqueId: 'textarea-1',
852
+ modelValue: '',
853
+ label: 'Description',
854
+ counter: true,
855
+ },
856
+ })
857
+
858
+ const textarea = wrapper.find('textarea')
859
+ await textarea.setValue('hello')
860
+
861
+ expect(wrapper.find('.v-counter').text()).toBe('5')
862
+ })
863
+
864
+ it('affiche le format X / N quand counter est un nombre', async () => {
865
+ const wrapper = mount(SyTextArea, {
866
+ props: {
867
+ uniqueId: 'textarea-1',
868
+ modelValue: '',
869
+ label: 'Description',
870
+ counter: 255,
871
+ },
872
+ })
873
+
874
+ const textarea = wrapper.find('textarea')
875
+ await textarea.setValue('hello')
876
+
877
+ expect(wrapper.find('.v-counter').text()).toBe('5 / 255')
878
+ })
879
+ })
880
+
747
881
  describe('SyForm integration', () => {
748
882
  it('valide un champ requis vide lors de la soumission sans interaction préalable', async () => {
749
883
  const onSubmit = vi.fn()
@@ -0,0 +1,48 @@
1
+ import SyTextArea from '../SyTextArea.vue'
2
+
3
+ describe('SyTextArea - Visual regression tests', () => {
4
+ it('displays the textarea by default', () => {
5
+ cy.mountWithVuetify(SyTextArea, {
6
+ props: { label: 'Description' },
7
+ })
8
+
9
+ cy.get('.v-textarea').should('be.visible')
10
+ cy.matchImageSnapshot('sy-textarea-default', cy.get('.v-textarea'))
11
+ })
12
+
13
+ it('displays the textarea as required', () => {
14
+ cy.mountWithVuetify(SyTextArea, {
15
+ props: {
16
+ label: 'Description',
17
+ required: true,
18
+ },
19
+ })
20
+
21
+ cy.get('.v-textarea').should('be.visible')
22
+ cy.matchImageSnapshot('sy-textarea-required', cy.get('.v-textarea'))
23
+ })
24
+
25
+ it('displays the textarea with a value', () => {
26
+ cy.mountWithVuetify(SyTextArea, {
27
+ props: {
28
+ label: 'Description',
29
+ modelValue: 'Ceci est un texte de description.',
30
+ },
31
+ })
32
+
33
+ cy.get('.v-textarea').should('be.visible')
34
+ cy.matchImageSnapshot('sy-textarea-with-value', cy.get('.v-textarea'))
35
+ })
36
+
37
+ it('displays the textarea with a custom variant', () => {
38
+ cy.mountWithVuetify(SyTextArea, {
39
+ props: {
40
+ label: 'Description',
41
+ variant: 'filled',
42
+ },
43
+ })
44
+
45
+ cy.get('.v-textarea').should('be.visible')
46
+ cy.matchImageSnapshot('sy-textarea-filled', cy.get('.v-textarea'))
47
+ })
48
+ })
@@ -238,90 +238,6 @@ export const WithSuccess: Story = {
238
238
  }),
239
239
  }
240
240
 
241
- export const NoSuccessMessage: Story = {
242
- parameters: {
243
- docs: {
244
- description: {
245
- story: 'Avec `showSuccessMessages: false`, l\'état visuel de succès reste actif (bordure verte, icône) mais le message texte n\'est pas affiché. Utile quand un retour positif silencieux est suffisant.',
246
- },
247
- },
248
- sourceCode: [
249
- {
250
- name: 'Template',
251
- code: `
252
- <template>
253
- <SyTextArea
254
- ref="textAreaRef"
255
- v-model="value"
256
- label="Commentaire"
257
- :show-success-messages="false"
258
- :custom-success-rules="[
259
- {
260
- type: 'custom',
261
- options: {
262
- validate: (v) => v.length >= 20,
263
- successMessage: 'Description suffisamment détaillée.'
264
- }
265
- }
266
- ]"
267
- />
268
- </template>`,
269
- },
270
- {
271
- name: 'Script',
272
- code: `
273
- <script setup lang="ts">
274
- import { onMounted, ref } from 'vue'
275
- import { SyTextArea } from '@cnamts/synapse'
276
-
277
- const value = ref('Voici une description bien détaillée du problème rencontré.')
278
- const textAreaRef = ref(null)
279
-
280
- onMounted(() => {
281
- textAreaRef.value?.validateOnSubmit()
282
- })
283
- </script>`,
284
- },
285
- ],
286
- },
287
- args: {
288
- 'label': 'Commentaire',
289
- 'showSuccessMessages': false,
290
- 'onUpdate:modelValue': fn(),
291
- },
292
- render: args => ({
293
- components: { SyTextArea },
294
- setup() {
295
- const value = ref('Voici une description bien détaillée du problème rencontré.')
296
- const textAreaRef = ref<{ validateOnSubmit: () => Promise<boolean> } | null>(null)
297
-
298
- onMounted(() => {
299
- textAreaRef.value?.validateOnSubmit()
300
- })
301
-
302
- return { args, value, textAreaRef }
303
- },
304
- template: `
305
- <div class="pa-4">
306
- <SyTextArea
307
- ref="textAreaRef"
308
- v-model="value"
309
- v-bind="args"
310
- :custom-success-rules="[
311
- {
312
- type: 'custom',
313
- options: {
314
- validate: (v) => v.length >= 20,
315
- successMessage: 'Description suffisamment détaillée.'
316
- }
317
- }
318
- ]"
319
- />
320
- </div>
321
- `,
322
- }),
323
- }
324
-
325
241
  export const NoValidateOnBlur: Story = {
326
242
  parameters: {
327
243
  docs: {
@@ -340,11 +256,13 @@ export const NoValidateOnBlur: Story = {
340
256
  :model-value="value"
341
257
  label="Description"
342
258
  :is-validate-on-blur="false"
259
+ :show-success-messages="true"
343
260
  :custom-rules="[{
344
261
  type: 'custom',
345
262
  options: {
346
263
  validate: (v) => v !== 'Contenu interdit',
347
- message: 'Le contenu « Contenu interdit » n\\'est pas autorisé.'
264
+ message: 'Le contenu « Contenu interdit » n\\'est pas autorisé.',
265
+ successMessage: 'Le contenu est valide.'
348
266
  }
349
267
  }]"
350
268
  @update:model-value="handleManualChange"
@@ -390,6 +308,7 @@ const applyButtonValue = (newValue) => {
390
308
  args: {
391
309
  'label': 'Description',
392
310
  'isValidateOnBlur': false,
311
+ 'showSuccessMessages': true,
393
312
  'onUpdate:modelValue': fn(),
394
313
  },
395
314
  render: args => ({
@@ -426,7 +345,8 @@ const applyButtonValue = (newValue) => {
426
345
  type: 'custom',
427
346
  options: {
428
347
  validate: (v) => v !== 'Contenu interdit',
429
- message: 'Le contenu « Contenu interdit » n\\'est pas autorisé.'
348
+ message: 'Le contenu « Contenu interdit » n\\'est pas autorisé.',
349
+ successMessage: 'Le contenu est valide.'
430
350
  }
431
351
  }]"
432
352
  @update:model-value="handleManualChange"