@cnamts/synapse 1.0.26 → 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 (612) hide show
  1. package/README.md +1 -1
  2. package/dist/{AutocompleteFilter-BPR-a55G.js → AutocompleteFilter-DXd4szWO.js} +1 -1
  3. package/dist/{DateFilter-CknrJWs2.js → DateFilter-BD59Kgwf.js} +1 -1
  4. package/dist/{NumberFilter-DJ-yNlzv.js → NumberFilter-BSMZE7uw.js} +1 -1
  5. package/dist/{PeriodFilter-CiB5Oa9Z.js → PeriodFilter-keUdSSk0.js} +1 -1
  6. package/dist/{SelectFilter-EiafX97M.js → SelectFilter-Dhvvwazl.js} +1 -1
  7. package/dist/{TextFilter-BzOmpdxj.js → TextFilter-CU8FpXz0.js} +1 -1
  8. package/dist/apLightTheme2026-DbS7BPUf.js +612 -0
  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 +2275 -487
  18. package/dist/components/Customs/Selects/SyAutocomplete/composables/useSyAutocompleteValidation.d.ts +18 -0
  19. package/dist/components/Customs/Selects/SyAutocomplete/utils/ariaManager.d.ts +1 -1
  20. package/dist/components/Customs/Selects/SyAutocomplete/utils/useKeyboardHandler.d.ts +3 -1
  21. package/dist/components/Customs/Selects/SyInputSelect/SyInputSelect.d.ts +1 -1
  22. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +12 -15
  23. package/dist/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.d.ts +1 -0
  24. package/dist/components/Customs/Selects/SySelect/composables/useSySelectValidation.d.ts +15 -0
  25. package/dist/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.d.ts +4 -4
  26. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +6 -6
  27. package/dist/components/Customs/SyIcon/SyIcon.d.ts +77 -1
  28. package/dist/components/Customs/SyIconButton/SyIconButton.d.ts +18 -0
  29. package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +23 -41
  30. package/dist/components/Customs/SyRadioGroup/composables/useSyRadioGroupValidation.d.ts +50 -0
  31. package/dist/components/Customs/SyTextField/SyTextField.d.ts +20 -80
  32. package/dist/components/Customs/SyTextField/locales.d.ts +7 -0
  33. package/dist/components/Customs/SyTextField/types.d.ts +67 -4
  34. package/dist/components/Customs/SyTextField/useNumberField.d.ts +23 -0
  35. package/dist/components/Customs/SyTextField/useSyTextFieldValidation.d.ts +38 -0
  36. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +253 -694
  37. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +121 -339
  38. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +54 -164
  39. package/dist/components/DatePicker/composables/index.d.ts +1 -0
  40. package/dist/components/DatePicker/composables/useDatePickerValidationBridge.d.ts +51 -0
  41. package/dist/components/FilterInline/FilterInline.d.ts +3 -3
  42. package/dist/components/FilterSideBar/FilterSideBar.d.ts +4 -4
  43. package/dist/components/MonthPicker/MonthPicker.d.ts +49 -162
  44. package/dist/components/MonthPicker/MonthPickerText/MonthPickerInput.d.ts +49 -162
  45. package/dist/components/NirField/NirField.d.ts +120 -351
  46. package/dist/components/NirField/useNirValidation.d.ts +10 -20
  47. package/dist/components/PasswordField/PasswordField.d.ts +21 -40
  48. package/dist/components/PasswordField/locales.d.ts +2 -0
  49. package/dist/components/PasswordField/types.d.ts +16 -0
  50. package/dist/components/PasswordField/usePasswordFieldValidation.d.ts +38 -0
  51. package/dist/components/PeriodField/PeriodField.d.ts +485 -1365
  52. package/dist/components/PhoneField/PhoneField.d.ts +49 -162
  53. package/dist/components/SearchListField/SearchListField.d.ts +3 -3
  54. package/dist/components/SyTextArea/SyTextArea.d.ts +30 -17
  55. package/dist/components/SyTextArea/composables/useSyTextAreaValidation.d.ts +20 -0
  56. package/dist/components/SyTextArea/locales.d.ts +1 -0
  57. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +1 -0
  58. package/dist/components/Tables/SyTable/SyTable.d.ts +1 -0
  59. package/dist/components/Tables/common/SyTablePagination.d.ts +33 -34
  60. package/dist/components/Tables/common/types.d.ts +2 -0
  61. package/dist/components/index.d.ts +1 -0
  62. package/dist/composables/unifyValidation/documentationValidationProps.d.ts +160 -160
  63. package/dist/composables/unifyValidation/useValidation.d.ts +17 -23
  64. package/dist/composables/useFilterable/useFilterable.d.ts +1 -2
  65. package/dist/design-system-v3.js +81 -80
  66. package/dist/designTokens/tokens/amelipro/apContextual.d.ts +6 -6
  67. package/dist/designTokens/tokens/amelipro/apDarkTheme.d.ts +3 -1
  68. package/dist/designTokens/tokens/amelipro/apLightTheme.d.ts +54 -100
  69. package/dist/designTokens/tokens/baseContextualTokens.d.ts +0 -6
  70. package/dist/designTokens/tokens/baseTokens.d.ts +232 -0
  71. package/dist/designTokens/tokens/cnam/cnamContextual.d.ts +6 -6
  72. package/dist/designTokens/tokens/cnam/cnamDarkTheme.d.ts +1 -1
  73. package/dist/designTokens/tokens/cnam/cnamLightTheme.d.ts +57 -101
  74. package/dist/designTokens/tokens/pa/paContextual.d.ts +0 -6
  75. package/dist/designTokens/tokens/pa/paDarkTheme.d.ts +1 -1
  76. package/dist/designTokens/tokens/pa/paLightTheme.d.ts +54 -97
  77. package/dist/designTokens/tokens/pa/paSemantic.d.ts +1 -0
  78. package/dist/designTokens/tokens/semanticTokens.d.ts +112 -0
  79. package/dist/main-D8ryUoS5.js +39481 -0
  80. package/dist/synapse.css +1 -1
  81. package/dist/vuetifyConfig.js +212 -74
  82. package/package.json +8 -5
  83. package/src/assets/overrides/_icons.scss +5 -4
  84. package/src/assets/overrides/_otp.scss +4 -4
  85. package/src/assets/overrides/_typography.scss +2 -1
  86. package/src/assets/overrides/_utilities.scss +1 -42
  87. package/src/components/Accordion/tests/Accordion.visual.cy.ts +44 -0
  88. package/src/components/Accordion/tests/__snapshots__/accordion-default.snap.png +0 -0
  89. package/src/components/Accordion/tests/__snapshots__/accordion-disabled-item.snap.png +0 -0
  90. package/src/components/Accordion/tests/__snapshots__/accordion-open-first.snap.png +0 -0
  91. package/src/components/BackBtn/tests/__snapshots__/back-btn-custom-bg.snap.png +0 -0
  92. package/src/components/BackBtn/tests/__snapshots__/back-btn-default.snap.png +0 -0
  93. package/src/components/BackBtn/tests/__snapshots__/back-btn-no-icon.snap.png +0 -0
  94. package/src/components/BackToTopBtn/tests/BackToTopBtn.visual.cy.ts +34 -0
  95. package/src/components/BackToTopBtn/tests/__snapshots__/back-to-top-btn-custom-nudge.snap.png +0 -0
  96. package/src/components/BackToTopBtn/tests/__snapshots__/back-to-top-btn-default.snap.png +0 -0
  97. package/src/components/Captcha/tests/Captcha.visual.cy.ts +45 -0
  98. package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +4 -0
  99. package/src/components/Captcha/tests/__snapshots__/captcha-audio-type.snap.png +0 -0
  100. package/src/components/Captcha/tests/__snapshots__/captcha-image-type.snap.png +0 -0
  101. package/src/components/Captcha/tests/__snapshots__/captcha-no-helpdesk.snap.png +0 -0
  102. package/src/components/ChipList/ChipList.vue +30 -18
  103. package/src/components/ChipList/tests/ChipList.visual.cy.ts +46 -0
  104. package/src/components/ChipList/tests/__snapshots__/chip-list-default.snap.png +0 -0
  105. package/src/components/ChipList/tests/__snapshots__/chip-list-readonly.snap.png +0 -0
  106. package/src/components/ChipList/tests/__snapshots__/chip-list-state-icons.snap.png +0 -0
  107. package/src/components/ChipList/tests/chipList.spec.ts +4 -4
  108. package/src/components/CollapsibleList/tests/CollapsibleList.visual.cy.ts +33 -0
  109. package/src/components/CollapsibleList/tests/__snapshots__/collapsible-list-default.snap.png +0 -0
  110. package/src/components/CollapsibleList/tests/__snapshots__/collapsible-list-no-title.snap.png +0 -0
  111. package/src/components/ContextualMenu/tests/ContextualMenu.visual.cy.ts +35 -0
  112. package/src/components/ContextualMenu/tests/__snapshots__/contextual-menu-default.snap.png +0 -0
  113. package/src/components/ContextualMenu/tests/__snapshots__/contextual-menu-selected.snap.png +0 -0
  114. package/src/components/CookieBanner/tests/CookieBanner.visual.cy.ts +29 -0
  115. package/src/components/CookieBanner/tests/__snapshots__/cookie-banner-default.snap.png +0 -0
  116. package/src/components/CookieBanner/tests/__snapshots__/cookie-banner-with-items.snap.png +0 -0
  117. package/src/components/CookiesSelection/tests/CookiesSelection.visual.cy.ts +21 -0
  118. package/src/components/CookiesSelection/tests/__snapshots__/cookies-selection-default.snap.png +0 -0
  119. package/src/components/CopyBtn/CopyBtn.vue +2 -2
  120. package/src/components/CopyBtn/tests/CopyBtn.visual.cy.ts +24 -0
  121. package/src/components/CopyBtn/tests/__snapshots__/copy-btn-default.snap.png +0 -0
  122. package/src/components/CopyBtn/tests/__snapshots__/copy-btn-no-tooltip.snap.png +0 -0
  123. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.stories.ts +4 -0
  124. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.vue +7 -6
  125. package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.spec.ts +223 -0
  126. package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.visual.cy.ts +60 -0
  127. package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/select-btn-field-default.snap.png +0 -0
  128. package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/select-btn-field-inline.snap.png +0 -0
  129. package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/select-btn-field-readonly.snap.png +0 -0
  130. package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/select-btn-field-selected.snap.png +0 -0
  131. package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.stories.ts +283 -351
  132. package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.vue +183 -219
  133. package/src/components/Customs/Selects/SyAutocomplete/composables/useSyAutocompleteValidation.ts +101 -0
  134. package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.spec.ts +763 -1
  135. package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.visual.cy.ts +63 -0
  136. package/src/components/Customs/Selects/SyAutocomplete/tests/__snapshots__/sy-autocomplete-default.snap.png +0 -0
  137. package/src/components/Customs/Selects/SyAutocomplete/tests/__snapshots__/sy-autocomplete-loading.snap.png +0 -0
  138. package/src/components/Customs/Selects/SyAutocomplete/tests/__snapshots__/sy-autocomplete-multiple.snap.png +0 -0
  139. package/src/components/Customs/Selects/SyAutocomplete/tests/__snapshots__/sy-autocomplete-with-value.snap.png +0 -0
  140. package/src/components/Customs/Selects/SyAutocomplete/utils/ariaManager.ts +3 -1
  141. package/src/components/Customs/Selects/SyAutocomplete/utils/useKeyboardHandler.ts +79 -5
  142. package/src/components/Customs/Selects/SyAutocomplete/validation/Validation.stories.ts +936 -0
  143. package/src/components/Customs/Selects/SyInputSelect/tests/SyInputSelect.visual.cy.ts +48 -0
  144. package/src/components/Customs/Selects/SyInputSelect/tests/__snapshots__/sy-input-select-default.snap.png +0 -0
  145. package/src/components/Customs/Selects/SyInputSelect/tests/__snapshots__/sy-input-select-required.snap.png +0 -0
  146. package/src/components/Customs/Selects/SyInputSelect/tests/__snapshots__/sy-input-select-with-value.snap.png +0 -0
  147. package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +9 -491
  148. package/src/components/Customs/Selects/SySelect/SySelect.vue +68 -126
  149. package/src/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.ts +3 -0
  150. package/src/components/Customs/Selects/SySelect/composables/useSySelectValidation.ts +64 -0
  151. package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +199 -3
  152. package/src/components/Customs/Selects/SySelect/tests/SySelect.visual.cy.ts +77 -0
  153. package/src/components/Customs/Selects/SySelect/tests/__snapshots__/sy-select-clearable.snap.png +0 -0
  154. package/src/components/Customs/Selects/SySelect/tests/__snapshots__/sy-select-default.snap.png +0 -0
  155. package/src/components/Customs/Selects/SySelect/tests/__snapshots__/sy-select-multiple-chips.snap.png +0 -0
  156. package/src/components/Customs/Selects/SySelect/tests/__snapshots__/sy-select-required.snap.png +0 -0
  157. package/src/components/Customs/Selects/SySelect/tests/__snapshots__/sy-select-with-value.snap.png +0 -0
  158. package/src/components/Customs/Selects/SySelect/validation/Validation.stories.ts +935 -0
  159. package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.stories.ts +18 -7
  160. package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.vue +3 -3
  161. package/src/components/Customs/SyCheckBoxGroup/tests/SyCheckBoxGroup.visual.cy.ts +55 -0
  162. package/src/components/Customs/SyCheckBoxGroup/tests/__snapshots__/sy-checkbox-group-default.snap.png +0 -0
  163. package/src/components/Customs/SyCheckBoxGroup/tests/__snapshots__/sy-checkbox-group-disabled.snap.png +0 -0
  164. package/src/components/Customs/SyCheckBoxGroup/tests/__snapshots__/sy-checkbox-group-selected.snap.png +0 -0
  165. package/src/components/Customs/SyCheckBoxGroup/tests/__snapshots__/sy-checkbox-group-with-label.snap.png +0 -0
  166. package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +8 -8
  167. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +9 -17
  168. package/src/components/Customs/SyCheckbox/tests/SyCheckbox.spec.ts +1 -1
  169. package/src/components/Customs/SyCheckbox/tests/SyCheckbox.visual.cy.ts +61 -0
  170. package/src/components/Customs/SyCheckbox/tests/__snapshots__/sy-checkbox-checked.snap.png +0 -0
  171. package/src/components/Customs/SyCheckbox/tests/__snapshots__/sy-checkbox-disabled.snap.png +0 -0
  172. package/src/components/Customs/SyCheckbox/tests/__snapshots__/sy-checkbox-indeterminate.snap.png +0 -0
  173. package/src/components/Customs/SyCheckbox/tests/__snapshots__/sy-checkbox-required.snap.png +0 -0
  174. package/src/components/Customs/SyCheckbox/tests/__snapshots__/sy-checkbox-unchecked.snap.png +0 -0
  175. package/src/components/Customs/SyIcon/SyIcon.vue +19 -1
  176. package/src/components/Customs/SyIcon/accessibilite/Accessibility.mdx +0 -6
  177. package/src/components/Customs/SyIcon/tests/SyIcon.visual.cy.ts +83 -0
  178. package/src/components/Customs/SyIcon/tests/__snapshots__/sy-icon-color-error.snap.png +0 -0
  179. package/src/components/Customs/SyIcon/tests/__snapshots__/sy-icon-decorative.snap.png +0 -0
  180. package/src/components/Customs/SyIcon/tests/__snapshots__/sy-icon-informative.snap.png +0 -0
  181. package/src/components/Customs/SyIcon/tests/__snapshots__/sy-icon-role-button.snap.png +0 -0
  182. package/src/components/Customs/SyIcon/tests/__snapshots__/sy-icon-size-large.snap.png +0 -0
  183. package/src/components/Customs/SyIcon/utils/tests/iconUtils.spec.ts +107 -0
  184. package/src/components/Customs/SyIconButton/tests/SyIconButton.visual.cy.ts +55 -0
  185. package/src/components/Customs/SyIconButton/tests/__snapshots__/sy-icon-button-default.snap.png +0 -0
  186. package/src/components/Customs/SyIconButton/tests/__snapshots__/sy-icon-button-disabled.snap.png +0 -0
  187. package/src/components/Customs/SyIconButton/tests/__snapshots__/sy-icon-button-error.snap.png +0 -0
  188. package/src/components/Customs/SyIconButton/tests/__snapshots__/sy-icon-button-large.snap.png +0 -0
  189. package/src/components/Customs/SyPagination/tests/SyPagination.visual.cy.ts +40 -0
  190. package/src/components/Customs/SyPagination/tests/__snapshots__/sy-pagination-first-page.snap.png +0 -0
  191. package/src/components/Customs/SyPagination/tests/__snapshots__/sy-pagination-middle-page.snap.png +0 -0
  192. package/src/components/Customs/SyPagination/tests/__snapshots__/sy-pagination-with-label.snap.png +0 -0
  193. package/src/components/Customs/SyRadioGroup/SyRadioGroup.mdx +2 -2
  194. package/src/components/Customs/SyRadioGroup/SyRadioGroup.stories.ts +395 -201
  195. package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +83 -127
  196. package/src/components/Customs/SyRadioGroup/composables/useSyRadioGroupValidation.ts +127 -0
  197. package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.a11y.spec.ts +93 -1
  198. package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.spec.ts +146 -9
  199. package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.visual.cy.ts +165 -0
  200. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-asterisk.snap.png +0 -0
  201. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-comfortable.snap.png +0 -0
  202. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-compact.snap.png +0 -0
  203. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-default.snap.png +0 -0
  204. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-disabled.snap.png +0 -0
  205. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-error.snap.png +0 -0
  206. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-no-details.snap.png +0 -0
  207. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-readonly.snap.png +0 -0
  208. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-selected.snap.png +0 -0
  209. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-success.snap.png +0 -0
  210. package/src/components/Customs/SyRadioGroup/tests/__snapshots__/sy-radio-group-warning.snap.png +0 -0
  211. package/src/components/Customs/SyRadioGroup/validation/Validation.stories.ts +809 -0
  212. package/src/components/Customs/SyTabs/config.ts +3 -3
  213. package/src/components/Customs/SyTabs/tests/SyTabs.spec.ts +265 -0
  214. package/src/components/Customs/SyTabs/tests/SyTabs.visual.cy.ts +30 -0
  215. package/src/components/Customs/SyTabs/tests/__snapshots__/sy-tabs-default.snap.png +0 -0
  216. package/src/components/Customs/SyTabs/tests/__snapshots__/sy-tabs-second-active.snap.png +0 -0
  217. package/src/components/Customs/SyTabs/tests/useTabTransition.spec.ts +188 -0
  218. package/src/components/Customs/SyTextField/SyTextField.stories.ts +166 -803
  219. package/src/components/Customs/SyTextField/SyTextField.vue +191 -168
  220. package/src/components/Customs/SyTextField/Validation/Validation.stories.ts +1164 -0
  221. package/src/components/Customs/SyTextField/locales.ts +12 -0
  222. package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +174 -8
  223. package/src/components/Customs/SyTextField/tests/SyTextField.visual.cy.ts +116 -0
  224. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-clearable.snap.png +0 -0
  225. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-default.snap.png +0 -0
  226. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-number-disabled.snap.png +0 -0
  227. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-number-no-spinner.snap.png +0 -0
  228. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-number.snap.png +0 -0
  229. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-prepend-icon.snap.png +0 -0
  230. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-readonly.snap.png +0 -0
  231. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-required.snap.png +0 -0
  232. package/src/components/Customs/SyTextField/tests/__snapshots__/sy-text-field-with-value.snap.png +0 -0
  233. package/src/components/Customs/SyTextField/types.ts +70 -0
  234. package/src/components/Customs/SyTextField/useNumberField.ts +93 -0
  235. package/src/components/Customs/SyTextField/useSyTextFieldValidation.ts +104 -0
  236. package/src/components/DataList/DataList.stories.ts +1 -1
  237. package/src/components/DataList/tests/DataList.visual.cy.ts +85 -0
  238. package/src/components/DataList/tests/__snapshots__/data-list-default.snap.png +0 -0
  239. package/src/components/DataList/tests/__snapshots__/data-list-loading.snap.png +0 -0
  240. package/src/components/DataList/tests/__snapshots__/data-list-row.snap.png +0 -0
  241. package/src/components/DataList/tests/__snapshots__/data-list-with-icons.snap.png +0 -0
  242. package/src/components/DataList/tests/__snapshots__/data-list-with-title.snap.png +0 -0
  243. package/src/components/DataListGroup/tests/DataListGroup.visual.cy.ts +51 -0
  244. package/src/components/DataListGroup/tests/__snapshots__/data-list-group-default.snap.png +0 -0
  245. package/src/components/DataListGroup/tests/__snapshots__/data-list-group-loading.snap.png +0 -0
  246. package/src/components/DataListItem/tests/DataListItem.spec.ts +3 -1
  247. package/src/components/DataListItem/tests/DataListItem.visual.cy.ts +53 -0
  248. package/src/components/DataListItem/tests/__snapshots__/data-list-item-chip.snap.png +0 -0
  249. package/src/components/DataListItem/tests/__snapshots__/data-list-item-default.snap.png +0 -0
  250. package/src/components/DataListItem/tests/__snapshots__/data-list-item-placeholder.snap.png +0 -0
  251. package/src/components/DataListItem/tests/__snapshots__/data-list-item-row.snap.png +0 -0
  252. package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +1 -1
  253. package/src/components/DatePicker/CalendarMode/DatePicker.vue +43 -148
  254. package/src/components/DatePicker/CalendarMode/tests/DatePicker.coverage.spec.ts +156 -0
  255. package/src/components/DatePicker/CalendarMode/tests/DatePicker.spec.ts +495 -4
  256. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +1 -1
  257. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +51 -71
  258. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +206 -0
  259. package/src/components/DatePicker/ComplexDatePicker/tests/bridge-integration.regression.spec.ts +210 -0
  260. package/src/components/DatePicker/ComplexDatePicker/tests/calendar-navigation.regression.spec.ts +214 -0
  261. package/src/components/DatePicker/ComplexDatePicker/tests/validation-cross.regression.spec.ts +194 -0
  262. package/src/components/DatePicker/ComplexDatePicker/tests/validation-success-messages.regression.spec.ts +83 -0
  263. package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +1 -1
  264. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +131 -56
  265. package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +1 -1
  266. package/src/components/DatePicker/DateTextInput/tests/DateTextInput.spec.ts +320 -0
  267. package/src/components/DatePicker/composables/index.ts +1 -0
  268. package/src/components/DatePicker/composables/tests/useCalendarKeyboardNavigation.spec.ts +360 -0
  269. package/src/components/DatePicker/composables/tests/useDatePickerValidationBridge.spec.ts +129 -0
  270. package/src/components/DatePicker/composables/tests/useTodayButton.spec.ts +10 -10
  271. package/src/components/DatePicker/composables/useCalendarKeyboardNavigation.ts +11 -2
  272. package/src/components/DatePicker/composables/useDatePickerValidationBridge.ts +205 -0
  273. package/src/components/DatePicker/docExamples/BidirectionalComplexValidation.vue +1 -1
  274. package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +1 -1
  275. package/src/components/DatePicker/tests/exposed-methods.coverage.spec.ts +75 -0
  276. package/src/components/DeclarationAccessibilityPage/tests/DeclarationAccessibilityPage.visual.cy.ts +35 -0
  277. package/src/components/DeclarationAccessibilityPage/tests/__snapshots__/declaration-a11y-page-default.snap.png +0 -0
  278. package/src/components/DeclarationAccessibilityPage/tests/__snapshots__/declaration-a11y-page-full.snap.png +0 -0
  279. package/src/components/DiacriticPicker/tests/DiacriticPicker.visual.cy.ts +24 -0
  280. package/src/components/DiacriticPicker/tests/__snapshots__/diacritic-picker-custom-title.snap.png +0 -0
  281. package/src/components/DiacriticPicker/tests/__snapshots__/diacritic-picker-default.snap.png +0 -0
  282. package/src/components/DialogBox/DialogBox.vue +1 -1
  283. package/src/components/DialogBox/tests/__snapshots__/dialog-box-custom-texts.snap.png +0 -0
  284. package/src/components/DialogBox/tests/__snapshots__/dialog-box-default.snap.png +0 -0
  285. package/src/components/DialogBox/tests/__snapshots__/dialog-box-no-actions.snap.png +0 -0
  286. package/src/components/DownloadBtn/tests/DownloadBtn.spec.ts +2 -2
  287. package/src/components/DownloadBtn/tests/DownloadBtn.visual.cy.ts +38 -0
  288. package/src/components/DownloadBtn/tests/__snapshots__/download-btn-dark.snap.png +0 -0
  289. package/src/components/DownloadBtn/tests/__snapshots__/download-btn-idle.snap.png +0 -0
  290. package/src/components/ErrorPage/tests/ErrorPage.visual.cy.ts +32 -0
  291. package/src/components/ErrorPage/tests/__snapshots__/error-page-custom.snap.png +0 -0
  292. package/src/components/ErrorPage/tests/__snapshots__/error-page-default.snap.png +0 -0
  293. package/src/components/ErrorPage/tests/__snapshots__/error-page-no-btn.snap.png +0 -0
  294. package/src/components/ExternalLinks/tests/ExternalLinks.visual.cy.ts +30 -0
  295. package/src/components/ExternalLinks/tests/__snapshots__/external-links-default.snap.png +0 -0
  296. package/src/components/ExternalLinks/tests/__snapshots__/external-links-fixed.snap.png +0 -0
  297. package/src/components/FileList/UploadItem/UploadItem.vue +4 -4
  298. package/src/components/FileList/tests/FileList.visual.cy.ts +31 -0
  299. package/src/components/FileList/tests/__snapshots__/file-list-default.snap.png +0 -0
  300. package/src/components/FileList/tests/__snapshots__/file-list-with-delete.snap.png +0 -0
  301. package/src/components/FilePreview/accessibilite/Accessibility.mdx +86 -8
  302. package/src/components/FileUpload/FileUpload.vue +2 -2
  303. package/src/components/FileUpload/FileUploadContent.vue +1 -1
  304. package/src/components/FileUpload/tests/FileUpload.visual.cy.ts +36 -0
  305. package/src/components/FileUpload/tests/__snapshots__/file-upload-default.snap.png +0 -0
  306. package/src/components/FileUpload/tests/__snapshots__/file-upload-disabled.snap.png +0 -0
  307. package/src/components/FileUpload/tests/__snapshots__/file-upload-multiple.snap.png +0 -0
  308. package/src/components/FilterInline/FilterInline.mdx +2 -2
  309. package/src/components/FilterInline/FilterInline.stories.ts +2 -0
  310. package/src/components/FilterInline/FilterInline.vue +10 -5
  311. package/src/components/FilterInline/tests/FilterInline.visual.cy.ts +25 -0
  312. package/src/components/FilterInline/tests/__snapshots__/filter-inline-default.snap.png +0 -0
  313. package/src/components/FilterSideBar/FilterSideBar.stories.ts +5 -2
  314. package/src/components/FilterSideBar/FilterSideBar.vue +13 -8
  315. package/src/components/FilterSideBar/tests/FilterSideBar.visual.cy.ts +37 -0
  316. package/src/components/FilterSideBar/tests/__snapshots__/filter-sidebar-default.snap.png +0 -0
  317. package/src/components/FilterSideBar/tests/__snapshots__/filter-sidebar-modale.snap.png +0 -0
  318. package/src/components/FooterBar/FooterBar.vue +7 -7
  319. package/src/components/FooterBar/tests/FooterBar.visual.cy.ts +37 -0
  320. package/src/components/FooterBar/tests/__snapshots__/footer-bar-default.snap.png +0 -0
  321. package/src/components/FooterBar/tests/__snapshots__/footer-bar-no-logo.snap.png +0 -0
  322. package/src/components/FooterBar/tests/__snapshots__/footer-bar-no-social.snap.png +0 -0
  323. package/src/components/FooterBar/tests/__snapshots__/footer-bar-version.snap.png +0 -0
  324. package/src/components/FranceConnectBtn/FranceConnectBtn.vue +1 -1
  325. package/src/components/FranceConnectBtn/tests/FranceConnectBtn.visual.cy.ts +38 -0
  326. package/src/components/FranceConnectBtn/tests/__snapshots__/france-connect-btn-dark.snap.png +0 -0
  327. package/src/components/FranceConnectBtn/tests/__snapshots__/france-connect-btn-default.snap.png +0 -0
  328. package/src/components/FranceConnectBtn/tests/__snapshots__/france-connect-btn-plus.snap.png +0 -0
  329. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/HeaderMenuItem.vue +2 -2
  330. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.vue +7 -7
  331. package/src/components/HeaderBar/HeaderBurgerMenu/tests/HeaderBurgerMenu.spec.ts +4 -4
  332. package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/header-burger-menu-generated-submenu-open.snap.png +0 -0
  333. package/src/components/HeaderBar/HeaderMenuBtn/HeaderMenuBtn.vue +2 -2
  334. package/src/components/HeaderBar/tests/__snapshots__/header-bar-custom-width.snap.png +0 -0
  335. package/src/components/HeaderBar/tests/__snapshots__/header-bar-default.snap.png +0 -0
  336. package/src/components/HeaderBar/tests/__snapshots__/header-bar-no-sticky.snap.png +0 -0
  337. package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-prepend.snap.png +0 -0
  338. package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-side.snap.png +0 -0
  339. package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-subtitle.snap.png +0 -0
  340. package/src/components/HeaderLoading/tests/HeaderLoading.spec.ts +87 -8
  341. package/src/components/HeaderLoading/tests/HeaderLoading.visual.cy.ts +34 -0
  342. package/src/components/HeaderLoading/tests/__snapshots__/header-loading-custom-size.snap.png +0 -0
  343. package/src/components/HeaderLoading/tests/__snapshots__/header-loading-default.snap.png +0 -0
  344. package/src/components/HeaderLoading/tests/__snapshots__/header-loading-standalone.snap.png +0 -0
  345. package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +3 -3
  346. package/src/components/HeaderNavigationBar/HorizontalNavbar/tests/HorizontalNavbar.spec.ts +589 -0
  347. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.spec.ts +4 -4
  348. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.visual.cy.ts +34 -0
  349. package/src/components/HeaderNavigationBar/tests/__snapshots__/header-navigation-bar-default.snap.png +0 -0
  350. package/src/components/HeaderNavigationBar/tests/__snapshots__/header-navigation-bar-subtitle.snap.png +0 -0
  351. package/src/components/HeaderToolbar/tests/HeaderToolBar.spec.ts +153 -1
  352. package/src/components/HeaderToolbar/tests/HeaderToolbar.visual.cy.ts +25 -0
  353. package/src/components/HeaderToolbar/tests/__snapshots__/header-toolbar-custom.snap.png +0 -0
  354. package/src/components/HeaderToolbar/tests/__snapshots__/header-toolbar-default.snap.png +0 -0
  355. package/src/components/HeaderToolbar/tests/useMobileRightMenu.spec.ts +258 -0
  356. package/src/components/LangBtn/tests/LangBtn.visual.cy.ts +33 -0
  357. package/src/components/LangBtn/tests/__snapshots__/lang-btn-default.snap.png +0 -0
  358. package/src/components/LangBtn/tests/__snapshots__/lang-btn-english.snap.png +0 -0
  359. package/src/components/LangBtn/tests/__snapshots__/lang-btn-no-arrow.snap.png +0 -0
  360. package/src/components/Logo/tests/__snapshots__/logo-avatar.snap.png +0 -0
  361. package/src/components/Logo/tests/__snapshots__/logo-default.snap.png +0 -0
  362. package/src/components/Logo/tests/__snapshots__/logo-no-organism.snap.png +0 -0
  363. package/src/components/Logo/tests/__snapshots__/logo-no-signature.snap.png +0 -0
  364. package/src/components/Logo/tests/__snapshots__/logo-risque-pro.snap.png +0 -0
  365. package/src/components/LogoBrandSection/tests/LogoBrandSection.spec.ts +2 -2
  366. package/src/components/LogoBrandSection/tests/LogoBrandSection.visual.cy.ts +43 -0
  367. package/src/components/LogoBrandSection/tests/__snapshots__/LogoBrandSection.spec.ts.snap +1 -1
  368. package/src/components/LogoBrandSection/tests/__snapshots__/logo-brand-section-default.snap.png +0 -0
  369. package/src/components/LogoBrandSection/tests/__snapshots__/logo-brand-section-mobile.snap.png +0 -0
  370. package/src/components/LogoBrandSection/tests/__snapshots__/logo-brand-section-reduced.snap.png +0 -0
  371. package/src/components/LogoBrandSection/tests/__snapshots__/logo-brand-section-with-title.snap.png +0 -0
  372. package/src/components/LunarCalendar/tests/LunarCalendar.visual.cy.ts +36 -0
  373. package/src/components/LunarCalendar/tests/__snapshots__/lunar-calendar-default.snap.png +0 -0
  374. package/src/components/LunarCalendar/tests/__snapshots__/lunar-calendar-required.snap.png +0 -0
  375. package/src/components/LunarCalendar/tests/__snapshots__/lunar-calendar-with-value.snap.png +0 -0
  376. package/src/components/LunarCalendar/tests/useLunarCalendarRules.spec.ts +184 -0
  377. package/src/components/MaintenancePage/tests/MaintenancePage.visual.cy.ts +22 -0
  378. package/src/components/MaintenancePage/tests/__snapshots__/maintenance-page-custom.snap.png +0 -0
  379. package/src/components/MaintenancePage/tests/__snapshots__/maintenance-page-default.snap.png +0 -0
  380. package/src/components/MonthPicker/MonthPickerVisual/MonthSelector.vue +3 -3
  381. package/src/components/MonthPicker/MonthPickerVisual/VisualPickerFooter.vue +1 -1
  382. package/src/components/MonthPicker/MonthPickerVisual/VisualPickerHeader.vue +2 -2
  383. package/src/components/MonthPicker/MonthPickerVisual/YearSelector.vue +1 -1
  384. package/src/components/MonthPicker/tests/MonthPicker.visual.cy.ts +37 -0
  385. package/src/components/MonthPicker/tests/__snapshots__/MonthPicker.spec.ts.snap +2 -0
  386. package/src/components/MonthPicker/tests/__snapshots__/month-picker-default.snap.png +0 -0
  387. package/src/components/MonthPicker/tests/__snapshots__/month-picker-disabled.snap.png +0 -0
  388. package/src/components/MonthPicker/tests/__snapshots__/month-picker-readonly.snap.png +0 -0
  389. package/src/components/MonthPicker/tests/__snapshots__/month-picker-with-value.snap.png +0 -0
  390. package/src/components/NirField/NirField.stories.ts +40 -682
  391. package/src/components/NirField/NirField.vue +101 -35
  392. package/src/components/NirField/tests/NirField.spec.ts +135 -14
  393. package/src/components/NirField/tests/NirField.visual.cy.ts +28 -0
  394. package/src/components/NirField/tests/__snapshots__/nir-field-complex.snap.png +0 -0
  395. package/src/components/NirField/tests/__snapshots__/nir-field-default.snap.png +0 -0
  396. package/src/components/NirField/tests/__snapshots__/nir-field-with-key.snap.png +0 -0
  397. package/src/components/NirField/tests/useNirValidation.spec.ts +168 -0
  398. package/src/components/NirField/useNirValidation.ts +28 -2
  399. package/src/components/NirField/validation/Validation.stories.ts +866 -0
  400. package/src/components/NotFoundPage/tests/NotFoundPage.visual.cy.ts +28 -0
  401. package/src/components/NotFoundPage/tests/__snapshots__/not-found-page-custom-btn.snap.png +0 -0
  402. package/src/components/NotFoundPage/tests/__snapshots__/not-found-page-default.snap.png +0 -0
  403. package/src/components/NotFoundPage/tests/__snapshots__/not-found-page-no-btn.snap.png +0 -0
  404. package/src/components/NotificationBar/Notification/Notification.vue +12 -12
  405. package/src/components/NotificationBar/NotificationBar.stories.ts +8 -8
  406. package/src/components/NotificationBar/tests/NotificationBar.visual.cy.ts +54 -0
  407. package/src/components/NotificationBar/tests/__snapshots__/notification-bar-bottom.snap.png +0 -0
  408. package/src/components/NotificationBar/tests/__snapshots__/notification-bar-info.snap.png +0 -0
  409. package/src/components/NotificationBar/tests/__snapshots__/notification-bar-multiple.snap.png +0 -0
  410. package/src/components/PageContainer/tests/PageContainer.visual.cy.ts +33 -0
  411. package/src/components/PageContainer/tests/__snapshots__/page-container-color.snap.png +0 -0
  412. package/src/components/PageContainer/tests/__snapshots__/page-container-default.snap.png +0 -0
  413. package/src/components/PageContainer/tests/__snapshots__/page-container-md.snap.png +0 -0
  414. package/src/components/PaginatedTable/Pagination.vue +2 -2
  415. package/src/components/PaginatedTable/accessibilite/Accessibility.mdx +99 -7
  416. package/src/components/PaginatedTable/tests/PaginatedTable.visual.cy.ts +41 -0
  417. package/src/components/PaginatedTable/tests/__snapshots__/paginated-table-default.snap.png +0 -0
  418. package/src/components/PaginatedTable/tests/__snapshots__/paginated-table-server.snap.png +0 -0
  419. package/src/components/PasswordField/PasswordField.mdx +5 -52
  420. package/src/components/PasswordField/PasswordField.stories.ts +74 -931
  421. package/src/components/PasswordField/PasswordField.vue +128 -199
  422. package/src/components/PasswordField/Validation/Validation.stories.ts +1295 -0
  423. package/src/components/PasswordField/locales.ts +2 -0
  424. package/src/components/PasswordField/tests/PasswordField.spec.ts +147 -109
  425. package/src/components/PasswordField/tests/PasswordField.visual.cy.ts +49 -0
  426. package/src/components/PasswordField/tests/__snapshots__/password-field-default.snap.png +0 -0
  427. package/src/components/PasswordField/tests/__snapshots__/password-field-disabled.snap.png +0 -0
  428. package/src/components/PasswordField/tests/__snapshots__/password-field-required.snap.png +0 -0
  429. package/src/components/PasswordField/tests/__snapshots__/password-field-underlined.snap.png +0 -0
  430. package/src/components/PasswordField/types.ts +17 -0
  431. package/src/components/PasswordField/usePasswordFieldValidation.ts +100 -0
  432. package/src/components/PeriodField/PeriodField.stories.ts +3 -1
  433. package/src/components/PeriodField/PeriodField.vue +1 -1
  434. package/src/components/PeriodField/tests/PeriodField.visual.cy.ts +39 -0
  435. package/src/components/PeriodField/tests/__snapshots__/period-field-default.snap.png +0 -0
  436. package/src/components/PeriodField/tests/__snapshots__/period-field-no-calendar.snap.png +0 -0
  437. package/src/components/PeriodField/tests/__snapshots__/period-field-required.snap.png +0 -0
  438. package/src/components/PeriodField/tests/__snapshots__/period-field-with-value.snap.png +0 -0
  439. package/src/components/PhoneField/PhoneField.vue +2 -2
  440. package/src/components/PhoneField/tests/PhoneField.spec.ts +1 -0
  441. package/src/components/PhoneField/tests/PhoneField.visual.cy.ts +28 -0
  442. package/src/components/PhoneField/tests/__snapshots__/phone-field-default.snap.png +0 -0
  443. package/src/components/PhoneField/tests/__snapshots__/phone-field-with-country-code.snap.png +0 -0
  444. package/src/components/PhoneField/tests/__snapshots__/phone-field-with-value.snap.png +0 -0
  445. package/src/components/RangeField/RangeSlider/RangeSlider.vue +2 -2
  446. package/src/components/RangeField/RangeSlider/Tooltip/Tooltip.vue +1 -1
  447. package/src/components/RangeField/tests/__snapshots__/range-field-custom-bg.snap.png +0 -0
  448. package/src/components/RangeField/tests/__snapshots__/range-field-custom-range.snap.png +0 -0
  449. package/src/components/RangeField/tests/__snapshots__/range-field-default.snap.png +0 -0
  450. package/src/components/RangeField/tests/__snapshots__/range-field-step.snap.png +0 -0
  451. package/src/components/RangeField/tests/__snapshots__/range-field-with-label.snap.png +0 -0
  452. package/src/components/RatingPicker/tests/RatingPicker.visual.cy.ts +52 -0
  453. package/src/components/RatingPicker/tests/__snapshots__/rating-picker-emotion.snap.png +0 -0
  454. package/src/components/RatingPicker/tests/__snapshots__/rating-picker-number.snap.png +0 -0
  455. package/src/components/RatingPicker/tests/__snapshots__/rating-picker-readonly.snap.png +0 -0
  456. package/src/components/RatingPicker/tests/__snapshots__/rating-picker-stars.snap.png +0 -0
  457. package/src/components/SearchListField/SearchListField.mdx +1 -1
  458. package/src/components/SearchListField/SearchListField.stories.ts +1 -1
  459. package/src/components/SearchListField/SearchListField.vue +9 -4
  460. package/src/components/SearchListField/tests/SearchListField.spec.ts +127 -0
  461. package/src/components/SearchListField/tests/SearchListField.visual.cy.ts +35 -0
  462. package/src/components/SearchListField/tests/__snapshots__/search-list-field-default.snap.png +0 -0
  463. package/src/components/SearchListField/tests/__snapshots__/search-list-field-with-selection.snap.png +0 -0
  464. package/src/components/SkipLink/tests/SkipLink.visual.cy.ts +16 -0
  465. package/src/components/SkipLink/tests/__snapshots__/skip-link-focused.snap.png +0 -0
  466. package/src/components/SocialMediaLinks/tests/SocialMediaLinks.visual.cy.ts +33 -0
  467. package/src/components/SocialMediaLinks/tests/__snapshots__/social-media-links-default.snap.png +0 -0
  468. package/src/components/SocialMediaLinks/tests/__snapshots__/social-media-links-no-native-heading.snap.png +0 -0
  469. package/src/components/StatusPage/tests/StatusPage.spec.ts +149 -0
  470. package/src/components/StatusPage/tests/StatusPage.visual.cy.ts +47 -0
  471. package/src/components/StatusPage/tests/__snapshots__/status-page-default.snap.png +0 -0
  472. package/src/components/StatusPage/tests/__snapshots__/status-page-full.snap.png +0 -0
  473. package/src/components/StatusPage/tests/__snapshots__/status-page-no-btn.snap.png +0 -0
  474. package/src/components/SubHeader/SubHeader.vue +1 -1
  475. package/src/components/SubHeader/tests/SubHeader.visual.cy.ts +48 -0
  476. package/src/components/SubHeader/tests/__snapshots__/sub-header-default.snap.png +0 -0
  477. package/src/components/SubHeader/tests/__snapshots__/sub-header-loading.snap.png +0 -0
  478. package/src/components/SubHeader/tests/__snapshots__/sub-header-no-back-btn.snap.png +0 -0
  479. package/src/components/SubHeader/tests/__snapshots__/sub-header-with-subtitle.snap.png +0 -0
  480. package/src/components/SyAlert/SyAlert.vue +23 -23
  481. package/src/components/SyAlert/tests/__snapshots__/sy-alert-closable.snap.png +0 -0
  482. package/src/components/SyAlert/tests/__snapshots__/sy-alert-error.snap.png +0 -0
  483. package/src/components/SyAlert/tests/__snapshots__/sy-alert-info.snap.png +0 -0
  484. package/src/components/SyAlert/tests/__snapshots__/sy-alert-success.snap.png +0 -0
  485. package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-outlined.snap.png +0 -0
  486. package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-tonal.snap.png +0 -0
  487. package/src/components/SyAlert/tests/__snapshots__/sy-alert-warning.snap.png +0 -0
  488. package/src/components/SyHeading/tests/SyHeading.visual.cy.ts +33 -0
  489. package/src/components/SyHeading/tests/__snapshots__/sy-heading-level-1.snap.png +0 -0
  490. package/src/components/SyHeading/tests/__snapshots__/sy-heading-level-2.snap.png +0 -0
  491. package/src/components/SyHeading/tests/__snapshots__/sy-heading-level-3.snap.png +0 -0
  492. package/src/components/SyTextArea/SyTextArea.stories.ts +202 -131
  493. package/src/components/SyTextArea/SyTextArea.vue +242 -83
  494. package/src/components/SyTextArea/composables/useSyTextAreaValidation.ts +81 -0
  495. package/src/components/SyTextArea/locales.ts +1 -0
  496. package/src/components/SyTextArea/tests/SyTextArea.a11y.spec.ts +18 -0
  497. package/src/components/SyTextArea/tests/SyTextArea.spec.ts +583 -1
  498. package/src/components/SyTextArea/tests/SyTextArea.visual.cy.ts +48 -0
  499. package/src/components/SyTextArea/tests/__snapshots__/sy-textarea-default.snap.png +0 -0
  500. package/src/components/SyTextArea/tests/__snapshots__/sy-textarea-filled.snap.png +0 -0
  501. package/src/components/SyTextArea/tests/__snapshots__/sy-textarea-required.snap.png +0 -0
  502. package/src/components/SyTextArea/tests/__snapshots__/sy-textarea-with-value.snap.png +0 -0
  503. package/src/components/SyTextArea/useDefaultValidationRules.ts +2 -7
  504. package/src/components/SyTextArea/validation/Validation.stories.ts +776 -0
  505. package/src/components/TableToolbar/TableToolbar.vue +6 -6
  506. package/src/components/TableToolbar/accessibilite/Accessibility.mdx +81 -7
  507. package/src/components/TableToolbar/tests/TableToolbar.visual.cy.ts +49 -0
  508. package/src/components/TableToolbar/tests/__snapshots__/table-toolbar-default.snap.png +0 -0
  509. package/src/components/TableToolbar/tests/__snapshots__/table-toolbar-filtered.snap.png +0 -0
  510. package/src/components/TableToolbar/tests/__snapshots__/table-toolbar-loading.snap.png +0 -0
  511. package/src/components/TableToolbar/tests/__snapshots__/table-toolbar-with-add-btn.snap.png +0 -0
  512. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +163 -0
  513. package/src/components/Tables/SyServerTable/SyServerTable.vue +5 -4
  514. package/src/components/Tables/SyServerTable/accessibilite/Accessibility.mdx +114 -7
  515. package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +67 -0
  516. package/src/components/Tables/SyServerTable/tests/SyServerTable.visual.cy.ts +58 -0
  517. package/src/components/Tables/SyServerTable/tests/__snapshots__/sy-server-table-default.snap.png +0 -0
  518. package/src/components/Tables/SyServerTable/tests/__snapshots__/sy-server-table-loading.snap.png +0 -0
  519. package/src/components/Tables/SyServerTable/tests/__snapshots__/sy-server-table-with-select.snap.png +0 -0
  520. package/src/components/Tables/SyTable/SyTable.stories.ts +94 -0
  521. package/src/components/Tables/SyTable/SyTable.vue +2 -1
  522. package/src/components/Tables/SyTable/accessibilite/Accessibility.mdx +116 -7
  523. package/src/components/Tables/SyTable/tests/SyTable.spec.ts +64 -0
  524. package/src/components/Tables/SyTable/tests/SyTable.visual.cy.ts +70 -0
  525. package/src/components/Tables/SyTable/tests/__snapshots__/sy-table-compact.snap.png +0 -0
  526. package/src/components/Tables/SyTable/tests/__snapshots__/sy-table-default.snap.png +0 -0
  527. package/src/components/Tables/SyTable/tests/__snapshots__/sy-table-striped.snap.png +0 -0
  528. package/src/components/Tables/SyTable/tests/__snapshots__/sy-table-with-select.snap.png +0 -0
  529. package/src/components/Tables/common/TableHeader.vue +2 -2
  530. package/src/components/Tables/common/filters/logics/tests/NumberFilterLogic.spec.ts +176 -0
  531. package/src/components/Tables/common/filters/logics/tests/SelectFilterLogic.spec.ts +111 -0
  532. package/src/components/Tables/common/tableStyles.scss +10 -10
  533. package/src/components/Tables/common/tests/SyTableFilter.spec.ts +8 -1
  534. package/src/components/Tables/common/tests/filterByRange.spec.ts +23 -22
  535. package/src/components/Tables/common/types.ts +2 -0
  536. package/src/components/ToolbarContainer/tests/ToolbarContainer.visual.cy.ts +34 -0
  537. package/src/components/ToolbarContainer/tests/__snapshots__/toolbar-container-default.snap.png +0 -0
  538. package/src/components/ToolbarContainer/tests/__snapshots__/toolbar-container-links.snap.png +0 -0
  539. package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +3 -2
  540. package/src/components/UploadWorkflow/tests/UploadWorkflow.visual.cy.ts +39 -0
  541. package/src/components/UploadWorkflow/tests/__snapshots__/upload-workflow-default.snap.png +0 -0
  542. package/src/components/UploadWorkflow/tests/__snapshots__/upload-workflow-with-title.snap.png +0 -0
  543. package/src/components/UserMenuBtn/tests/UserMenuBtn.visual.cy.ts +42 -0
  544. package/src/components/UserMenuBtn/tests/__snapshots__/user-menu-btn-default.snap.png +0 -0
  545. package/src/components/UserMenuBtn/tests/__snapshots__/user-menu-btn-no-logout.snap.png +0 -0
  546. package/src/components/UserMenuBtn/tests/__snapshots__/user-menu-btn-with-name.snap.png +0 -0
  547. package/src/components/index.ts +1 -0
  548. package/src/composables/date/tests/useDateFormatDayjs.spec.ts +31 -0
  549. package/src/composables/date/tests/useHolidayDay.spec.ts +109 -0
  550. package/src/composables/rules/tests/useFieldValidation.spec.ts +374 -0
  551. package/src/composables/tests/useError.spec.ts +30 -0
  552. package/src/composables/tests/useFormFieldErrorHandling.spec.ts +234 -0
  553. package/src/composables/unifyValidation/documentationValidationProps.ts +6 -6
  554. package/src/composables/unifyValidation/tests/documentationValidationProps.spec.ts +177 -0
  555. package/src/composables/unifyValidation/tests/useCustomValidation.spec.ts +30 -0
  556. package/src/composables/unifyValidation/tests/useValidation.spec.ts +6 -2
  557. package/src/composables/unifyValidation/useCustomValidation.ts +19 -9
  558. package/src/composables/unifyValidation/useValidation.ts +35 -32
  559. package/src/composables/useFilterable/useFilterable.spec.ts +139 -134
  560. package/src/composables/useFilterable/useFilterable.ts +17 -24
  561. package/src/composables/useFormFieldErrorHandling.ts +3 -3
  562. package/src/composables/validation/tests/useFormValidation.spec.ts +11 -2
  563. package/src/composables/validation/tests/useValidatable.spec.ts +16 -6
  564. package/src/composables/validation/tests/useValidation.spec.ts +2 -2
  565. package/src/composables/validation/useValidation.ts +1 -1
  566. package/src/composantsVuetify/VBtn/VBtn.mdx +9 -39
  567. package/src/composantsVuetify/VBtn/v-btn.stories.ts +26 -86
  568. package/src/composantsVuetify/VCard/VCard.mdx +8 -0
  569. package/src/composantsVuetify/VCard/v-card.stories.ts +191 -1
  570. package/src/composantsVuetify/VStepper/VStepper.mdx +56 -0
  571. package/src/composantsVuetify/VStepper/v-stepper.stories.ts +563 -0
  572. package/src/designTokens/tokens/amelipro/apContextual.ts +6 -0
  573. package/src/designTokens/tokens/amelipro/apDarkTheme.ts +2 -2
  574. package/src/designTokens/tokens/amelipro/apLightTheme.ts +73 -103
  575. package/src/designTokens/tokens/amelipro/apSemantic.ts +2 -2
  576. package/src/designTokens/tokens/baseContextualTokens.ts +1 -6
  577. package/src/designTokens/tokens/baseTokens.ts +232 -0
  578. package/src/designTokens/tokens/cnam/cnamContextual.ts +6 -0
  579. package/src/designTokens/tokens/cnam/cnamDarkTheme.ts +2 -2
  580. package/src/designTokens/tokens/cnam/cnamLightTheme.ts +76 -104
  581. package/src/designTokens/tokens/pa/paDarkTheme.ts +2 -2
  582. package/src/designTokens/tokens/pa/paLightTheme.ts +74 -99
  583. package/src/designTokens/tokens/pa/paSemantic.ts +2 -0
  584. package/src/designTokens/tokens/semanticTokens.ts +114 -0
  585. package/src/stories/Accessibilite/DesignSystem/a11y-status.json +1 -1
  586. package/src/stories/Components/Components.stories.ts +68 -13
  587. package/src/stories/Demarrer/Releases.stories.ts +45 -2
  588. package/src/stories/DesignTokens/ColorIntegrationExample.vue +2 -3
  589. package/src/stories/DesignTokens/Colors.mdx +8 -8
  590. package/src/stories/DesignTokens/colors.stories.ts +257 -1081
  591. package/src/stories/EcoConception/EcoBestPracticesDoc.vue +930 -0
  592. package/src/stories/EcoConception/EcoBestPratices.mdx +38 -0
  593. package/src/stories/EcoConception/Introduction.mdx +8 -1
  594. package/src/stories/EcoConception/datas/bonnes_pratiques_essentielles.json +1018 -0
  595. package/src/stories/EcoConception/ecoconception-best-practices.stories.ts +20 -0
  596. package/src/stories/GuideDuDev/Amelipro.mdx +9 -1
  597. package/src/stories/GuideDuDev/Amelipro.stories.ts +955 -168
  598. package/src/stories/GuideDuDev/PortailAgent.stories.ts +0 -1
  599. package/src/utils/amelipro/toKebabCase/tests/toKebabCase.spec.ts +52 -0
  600. package/src/utils/formatNir/tests/formatNir.spec.ts +34 -0
  601. package/src/utils/functions/deepCopy/index.ts +2 -3
  602. package/src/utils/tests/insertAt.spec.ts +44 -0
  603. package/dist/apLightTheme-DS0Uy44H.js +0 -954
  604. package/dist/components/Customs/SyCheckbox/locales.d.ts +0 -3
  605. package/dist/components/RatingPicker/tests/RatingPicker.a11y.spect.d.ts +0 -1
  606. package/dist/components/SyHeading/SyHeading.a11y.test.d.ts +0 -1
  607. package/dist/components/SyHeading/SyHeading.test.d.ts +0 -1
  608. package/dist/main-BsJ9ec3i.js +0 -38954
  609. package/src/components/Customs/SyCheckbox/locales.ts +0 -3
  610. package/src/components/Customs/SyTextField/types.d.ts +0 -4
  611. package/src/components/DatePicker/CalendarMode/tests/DatePicker.events.spec.ts +0 -178
  612. /package/src/components/RatingPicker/tests/{RatingPicker.a11y.spect.ts → RatingPicker.a11y.spec.ts} +0 -0
@@ -3,9 +3,9 @@ import SyTextField from '@/components/Customs/SyTextField/SyTextField.vue'
3
3
  import { VIcon } from 'vuetify/components'
4
4
  import { ref, watch } from 'vue'
5
5
  import { mdiAccountBox } from '@mdi/js'
6
- import { VBtn } from 'vuetify/components'
7
6
  import { getValidationDocumentation } from '@/composables/unifyValidation/documentationValidationProps'
8
7
  import { fn } from '@storybook/test'
8
+ import type { SyTextFieldProps } from './types'
9
9
 
10
10
  const meta = {
11
11
  title: 'Composants/Formulaires/SyTextField',
@@ -22,6 +22,9 @@ const meta = {
22
22
  component: `SyTextField`,
23
23
  },
24
24
  },
25
+ controls: {
26
+ exclude: /^on*/,
27
+ },
25
28
  },
26
29
  argTypes: {
27
30
  ...getValidationDocumentation('string'),
@@ -29,221 +32,373 @@ const meta = {
29
32
  'label': {
30
33
  description: 'Texte affiché comme label du champ',
31
34
  control: 'text',
35
+ table: {
36
+ type: { summary: 'string' },
37
+ },
32
38
  },
33
39
  'autocomplete': {
34
40
  description: 'Valeur de l\'attribut autocomplete',
35
41
  control: 'text',
42
+ table: {
43
+ type: { summary: 'on|off' },
44
+ },
36
45
  },
37
46
  'prependIcon': {
38
47
  control: 'select',
39
48
  options: ['info', 'success', 'warning', 'error', 'close'],
49
+ table: {
50
+ type: { summary: 'string' },
51
+ },
40
52
  },
41
53
  'appendIcon': {
42
54
  control: 'select',
43
55
  options: ['info', 'success', 'warning', 'error', 'close'],
56
+ table: {
57
+ type: { summary: 'string' },
58
+ },
44
59
  },
45
60
  'prependInnerIcon': {
46
61
  control: 'select',
47
62
  options: ['info', 'success', 'warning', 'error', 'close'],
63
+ table: {
64
+ type: { summary: 'string' },
65
+ },
48
66
  },
49
67
  'appendInnerIcon': {
50
68
  control: 'select',
51
69
  options: ['info', 'success', 'warning', 'error', 'close'],
70
+ table: {
71
+ type: { summary: 'string' },
72
+ },
52
73
  },
53
74
  'variantStyle': {
54
75
  control: 'select',
55
76
  options: ['outlined', 'plain', 'underlined', 'filled', 'solo', 'solo-inverted', 'solo-filled'],
77
+ table: {
78
+ type: { summary: 'string' },
79
+ },
56
80
  },
57
81
  'color': {
58
82
  control: 'select',
59
83
  options: ['primary', 'secondary', 'success', 'error', 'warning'],
60
84
  description: 'Couleur du champ',
85
+ table: {
86
+ type: { summary: 'string' },
87
+ },
61
88
  },
62
89
  'density': {
63
90
  control: 'select',
64
91
  options: ['default', 'comfortable', 'compact'],
65
92
  description: 'Densité du champ',
93
+ table: {
94
+ type: { summary: 'string' },
95
+ },
66
96
  },
67
97
  'isActive': {
68
98
  description: 'Force l\'état actif du champ (label flottant et styles visuels)',
69
99
  control: 'boolean',
70
100
  default: false,
101
+ table: {
102
+ type: { summary: 'boolean' },
103
+ },
71
104
  },
72
105
  'isClearable': {
73
106
  description: 'Affiche un bouton pour effacer le contenu du champ',
74
107
  control: 'boolean',
75
108
  default: false,
109
+ table: {
110
+ type: { summary: 'boolean' },
111
+ },
76
112
  },
77
113
  'prependTooltip': {
78
114
  description: 'Si le texte du prepend tooltip est renseigné alors l\'icône du tooltip s\'affiche',
79
115
  control: 'text',
116
+ table: {
117
+ type: { summary: 'string' },
118
+ },
80
119
  },
81
120
  'appendTooltip': {
82
121
  description: 'Si le texte du append tooltip est renseigné alors l\'icône du tooltip s\'affiche',
83
122
  control: 'text',
123
+ table: {
124
+ type: { summary: 'string' },
125
+ },
84
126
  },
85
127
  'tooltipLocation': {
86
128
  description: 'Position des tooltips',
87
129
  control: 'select',
88
130
  options: ['top', 'bottom', 'start', 'end'],
89
131
  default: 'top',
132
+ table: {
133
+ type: { summary: 'string' },
134
+ },
90
135
  },
91
136
  'displayAsterisk': {
92
137
  description: 'Affiche un astérisque à côté du label',
93
138
  control: 'boolean',
94
139
  default: false,
140
+ table: {
141
+ type: { summary: 'boolean' },
142
+ },
95
143
  },
96
144
  'disableClickButton': {
97
145
  description: 'Désactive le click sur les icônes append et prepend',
98
146
  control: 'boolean',
99
147
  default: true,
148
+ table: {
149
+ type: { summary: 'boolean' },
150
+ },
100
151
  },
101
152
  'baseColor': {
102
153
  description: 'Couleur de base du champ (par défaut hérite de color)',
103
154
  control: 'text',
155
+ table: {
156
+ type: { summary: 'string' },
157
+ },
104
158
  },
105
159
  'bgColor': {
106
160
  description: 'Couleur de fond du champ',
107
161
  control: 'color',
162
+ table: {
163
+ type: { summary: 'string' },
164
+ },
108
165
  },
109
166
  'centerAffix': {
110
167
  description: 'Centre verticalement les éléments ajoutés avant/après le champ',
111
168
  control: 'boolean',
169
+ table: {
170
+ type: { summary: 'boolean' },
171
+ },
112
172
  },
113
173
  'counter': {
114
174
  description: 'Affiche un compteur de caractères',
115
175
  control: 'boolean',
176
+ table: {
177
+ type: { summary: 'boolean' },
178
+ },
116
179
  },
117
180
  'counterValue': {
118
181
  description: 'Fonction personnalisée pour calculer la valeur du compteur',
119
182
  control: 'object',
183
+ table: {
184
+ type: { summary: '(value: unknown) => number' },
185
+ },
120
186
  },
121
187
  'direction': {
122
188
  description: 'Direction du champ (horizontal ou vertical)',
123
189
  control: 'select',
124
190
  options: ['horizontal', 'vertical'],
191
+ table: {
192
+ type: { summary: 'horizontal | vertical' },
193
+ },
125
194
  },
126
195
  'isDirty': {
127
196
  description: 'Indique si le champ a été modifié',
128
197
  control: 'boolean',
198
+ table: {
199
+ type: { summary: 'boolean' },
200
+ },
129
201
  },
130
202
  'isFlat': {
131
203
  description: 'Supprime l\'élévation du champ',
132
204
  control: 'boolean',
205
+ table: {
206
+ type: { summary: 'boolean' },
207
+ },
133
208
  },
134
209
  'isFocused': {
135
210
  description: 'Force l\'état focus du champ',
136
211
  control: 'boolean',
212
+ table: {
213
+ type: { summary: 'boolean' },
214
+ },
137
215
  },
138
- 'areDetailsHidden': {
216
+ 'hideDetails': {
139
217
  description: 'Masque la section des détails (messages d\'erreur, compteur)',
140
218
  control: 'boolean',
219
+ table: {
220
+ type: { summary: 'boolean' },
221
+ },
141
222
  },
142
223
  'areSpinButtonsHidden': {
143
224
  description: 'Masque les boutons d\'incrémentation pour les champs numériques',
144
225
  control: 'boolean',
226
+ table: {
227
+ type: { summary: 'boolean' },
228
+ },
145
229
  },
146
230
  'hint': {
147
231
  description: 'Texte d\'aide affiché sous le champ',
148
232
  control: 'text',
233
+ table: {
234
+ type: { summary: 'string' },
235
+ },
149
236
  },
150
237
  'helpText': {
151
238
  description: 'Texte d\'aide affiché sous le champ',
152
239
  control: 'text',
240
+ table: {
241
+ type: { summary: 'string' },
242
+ },
153
243
  },
154
244
  'maxlength': {
155
245
  description: 'Nombre maximal de caractères autorisés dans le champ',
156
246
  control: { type: 'text' },
247
+ table: {
248
+ type: { summary: 'number' },
249
+ },
157
250
  },
158
251
  'loading': {
159
252
  description: 'Affiche un indicateur de chargement',
160
253
  control: 'boolean',
254
+ table: {
255
+ type: { summary: 'boolean' },
256
+ },
161
257
  },
162
258
  'maxWidth': {
163
259
  description: 'Largeur maximale du champ',
164
260
  control: { type: 'text' },
261
+ table: {
262
+ type: { summary: 'string' },
263
+ },
165
264
  },
166
265
  'minWidth': {
167
266
  description: 'Largeur minimale du champ',
168
267
  control: { type: 'text' },
268
+ table: {
269
+ type: { summary: 'string' },
270
+ },
169
271
  },
170
272
  'name': {
171
273
  description: 'Nom du champ pour les formulaires',
172
274
  control: 'text',
275
+ table: {
276
+ type: { summary: 'string' },
277
+ },
173
278
  },
174
279
  'displayPersistentClear': {
175
280
  description: 'Affiche toujours le bouton de réinitialisation',
176
281
  control: 'boolean',
177
282
  default: false,
283
+ table: {
284
+ type: { summary: 'boolean' },
285
+ },
178
286
  },
179
287
  'displayPersistentCounter': {
180
288
  description: 'Affiche toujours le compteur',
181
289
  control: 'boolean',
182
290
  default: false,
291
+ table: {
292
+ type: { summary: 'boolean' },
293
+ },
183
294
  },
184
295
  'displayPersistentHint': {
185
296
  description: 'Affiche toujours le texte d\'aide',
186
297
  control: 'boolean',
187
298
  default: false,
299
+ table: {
300
+ type: { summary: 'boolean' },
301
+ },
188
302
  },
189
303
  'displayPersistentPlaceholder': {
190
304
  description: 'Garde le placeholder visible. Si le champ est vide, le placeholder reste affiché',
191
305
  control: 'boolean',
192
306
  default: false,
307
+ table: {
308
+ type: { summary: 'boolean' },
309
+ },
193
310
  },
194
311
  'placeholder': {
195
312
  description: 'Texte affiché quand le champ est vide',
196
313
  control: 'text',
197
314
  default: 'Placeholder',
315
+ table: {
316
+ type: { summary: 'string' },
317
+ },
198
318
  },
199
319
  'prefix': {
200
320
  description: 'Texte affiché avant la valeur: prefix="€" : affichera "€" avant la valeur saisie',
201
321
  control: 'text',
322
+ table: {
323
+ type: { summary: 'string' },
324
+ },
202
325
  },
203
326
  'isReversed': {
204
327
  description: 'Inverse l\'ordre des éléments',
205
328
  control: 'boolean',
206
329
  default: false,
330
+ table: {
331
+ type: { summary: 'boolean' },
332
+ },
207
333
  },
208
334
  'role': {
209
335
  description: 'Rôle ARIA du champ',
210
336
  control: 'text',
337
+ table: {
338
+ type: { summary: 'string' },
339
+ },
211
340
  },
212
341
  'rounded': {
213
342
  description: 'Arrondit les coins du champ',
214
343
  control: { type: 'text' },
344
+ table: {
345
+ type: { summary: 'string' },
346
+ },
215
347
  },
216
348
  'isOnSingleLine': {
217
349
  description: 'Force l\'affichage sur une seule ligne',
218
350
  control: 'boolean',
219
351
  default: false,
352
+ table: {
353
+ type: { summary: 'boolean' },
354
+ },
220
355
  },
221
356
  'suffix': {
222
357
  description: 'Texte affiché après la valeur',
223
358
  control: 'text',
359
+ table: {
360
+ type: { summary: 'string' },
361
+ },
224
362
  },
225
363
  'theme': {
226
364
  description: 'Thème à appliquer au champ',
227
365
  control: 'text',
366
+ table: {
367
+ type: { summary: 'string' },
368
+ },
228
369
  },
229
370
  'isTiled': {
230
371
  description: 'Applique un style tuile',
231
372
  control: 'boolean',
232
373
  default: false,
374
+ table: {
375
+ type: { summary: 'boolean' },
376
+ },
233
377
  },
234
378
  'type': {
235
379
  description: 'Type du champ de saisie',
236
380
  control: 'select',
237
381
  options: ['text', 'number', 'password', 'email', 'tel', 'url', 'search'],
238
382
  default: 'text',
383
+ table: {
384
+ type: {
385
+ summary: 'string',
386
+ detail: 'text | number | password | email | tel | url | search',
387
+ },
388
+ },
239
389
  },
240
390
  'width': {
241
391
  description: 'Largeur du champ',
242
392
  control: { type: 'text' },
393
+ table: {
394
+ type: { summary: 'string' },
395
+ },
243
396
  },
244
397
  'validateOnSubmit': {
245
398
  description: 'Valide le champ avec la valeur donnée',
246
- type: '(value: string | number | null) => Promise<void>',
399
+ table: {
400
+ type: { summary: '(value: string | number | null) => Promise<void>' },
401
+ },
247
402
  },
248
403
  'append': {
249
404
  description: 'Slot pour ajouter du contenu à droite du champ',
@@ -308,7 +463,7 @@ const meta = {
308
463
 
309
464
  export default meta
310
465
 
311
- type Story = StoryObj<typeof meta>
466
+ type Story = StoryObj<SyTextFieldProps>
312
467
  export const Default: Story = {
313
468
  parameters: {
314
469
  sourceCode: [
@@ -340,7 +495,7 @@ export const Default: Story = {
340
495
  },
341
496
  render: (args) => {
342
497
  return {
343
- components: { SyTextField, VIcon },
498
+ components: { SyTextField },
344
499
  setup() {
345
500
  const value = ref(args.modelValue)
346
501
  watch(() => args.modelValue, (newValue) => {
@@ -851,196 +1006,6 @@ export const SlotCustomIcon: Story = {
851
1006
  },
852
1007
  }
853
1008
 
854
- export const ValidationRules: Story = {
855
- parameters: {
856
- docs: {
857
- description: {
858
- story: `
859
- ### Validation avec règles standard
860
-
861
- Cette story montre l'utilisation des règles de validation standard. Le champ :
862
- - Est requis
863
- - Doit contenir au moins 3 caractères
864
- - Affiche un message de succès quand valide
865
- `,
866
- },
867
- },
868
- sourceCode: [
869
- {
870
- name: 'Template',
871
- code: `<SyTextField
872
- v-model="value"
873
- label="Champ avec validation"
874
- helpText="Le champ doit contenir à minima 3 caractères"
875
- :customRules="[
876
- {
877
- type: 'minLength',
878
- options: {
879
- length: 3,
880
- message: 'Le champ doit contenir au moins 3 caractères'
881
- }
882
- }
883
- ]"
884
- showSuccessMessages
885
- />`,
886
- },
887
- ],
888
- },
889
- render: args => ({
890
- components: { SyTextField },
891
- setup() {
892
- const value = ref('')
893
- return { args, value }
894
- },
895
- template: `
896
- <SyTextField
897
- v-model="value"
898
- v-bind="args"
899
- label="Champ avec validation"
900
- helpText="Le champ doit contenir à minima 3 caractères"
901
- :customRules="[
902
- {
903
- type: 'minLength',
904
- options: {
905
- length: 3,
906
- message: 'Le champ doit contenir au moins 3 caractères'
907
- }
908
- }
909
- ]"
910
- showSuccessMessages
911
- />
912
- `,
913
- }),
914
- }
915
-
916
- export const ValidationWithWarnings: Story = {
917
- parameters: {
918
- docs: {
919
- description: {
920
- story: `
921
- ### Validation avec avertissements
922
-
923
- Cette story montre l'utilisation combinée des règles standard et d'avertissement. Le champ :
924
- - Est requis (règle standard)
925
- - Affiche un avertissement si le texte dépasse 10 caractères
926
- - Les avertissements sont affichés en orange et n'empêchent pas la validation
927
- `,
928
- },
929
- },
930
- sourceCode: [
931
- {
932
- name: 'Template',
933
- code: `<SyTextField
934
- v-model="value"
935
- label="Champ avec avertissements"
936
- required
937
- :customWarningRules="[
938
- {
939
- type: 'minLength',
940
- options: {
941
- length: 10,
942
- message: 'Le texte doit comporter plus de 10 caracteres'
943
- }
944
- }
945
- ]"
946
- showSuccessMessages
947
- />`,
948
- },
949
- ],
950
- },
951
- render: args => ({
952
- components: { SyTextField },
953
- setup() {
954
- const value = ref('')
955
- return { args, value }
956
- },
957
- template: `
958
- <SyTextField
959
- v-model="value"
960
- v-bind="args"
961
- label="avec avertissements"
962
- required
963
- :customWarningRules="[
964
- {
965
- type: 'minLength',
966
- options: {
967
- length: 10,
968
- message: 'Le texte doit comporter plus de 10 caracteres'
969
- }
970
- }
971
- ]"
972
- showSuccessMessages
973
- />
974
- `,
975
- }),
976
- }
977
-
978
- export const EmailValidation: Story = {
979
- parameters: {
980
- docs: {
981
- description: {
982
- story: `
983
- ### Validation d'email
984
-
985
- Cette story montre un cas d'usage courant : la validation d'une adresse email. Le champ :
986
- - Est requis
987
- - Vérifie le format de l'email
988
- - Affiche un message de succès quand l'email est valide
989
- `,
990
- },
991
- },
992
- sourceCode: [
993
- {
994
- name: 'Template',
995
- code: `<SyTextField
996
- v-model="value"
997
- autocomplete="email"
998
- label="Email"
999
- helpText="Format attendu : nom@domaine.fr"
1000
- required
1001
- :customRules="[
1002
- {
1003
- type: 'email',
1004
- options: {
1005
- message: 'L'email n'est pas valide'
1006
- successMessage: 'L'email est valide'
1007
- }
1008
- }
1009
- ]"
1010
- showSuccessMessages
1011
- />`,
1012
- },
1013
- ],
1014
- },
1015
- render: args => ({
1016
- components: { SyTextField },
1017
- setup() {
1018
- const value = ref('')
1019
- return { args, value }
1020
- },
1021
- template: `
1022
- <SyTextField
1023
- v-model="value"
1024
- v-bind="args"
1025
- label="Email"
1026
- helpText="Format attendu : nom@domaine.fr"
1027
- autocomplete="email"
1028
- required
1029
- :customRules="[
1030
- {
1031
- type: 'email',
1032
- options: {
1033
- message: 'L\\'email n\\'est pas valide',
1034
- successMessage: 'L\\'email est valide'
1035
- }
1036
- }
1037
- ]"
1038
- showSuccessMessages
1039
- />
1040
- `,
1041
- }),
1042
- }
1043
-
1044
1009
  export const PatternValidation: Story = {
1045
1010
  parameters: {
1046
1011
  docs: {
@@ -1109,19 +1074,22 @@ Cette story montre l'utilisation de la règle \`matchPattern\` pour valider un f
1109
1074
  }),
1110
1075
  }
1111
1076
 
1077
+ // Persistent value for WithTooltips
1078
+ const withTooltipsValueMain = ref('')
1079
+
1112
1080
  export const WithTooltips: Story = {
1113
1081
  args: {
1114
- modelValue: '',
1115
1082
  label: 'Champ avec tooltips',
1116
1083
  prependTooltip: 'Information à gauche du champ',
1117
1084
  appendTooltip: 'Information à droite du champ',
1118
1085
  tooltipLocation: 'top',
1086
+ isClearable: true,
1087
+ disableClickButton: true,
1119
1088
  },
1120
1089
  render: args => ({
1121
1090
  components: { SyTextField },
1122
1091
  setup() {
1123
- const value = ref(args.modelValue)
1124
- return { args, value }
1092
+ return { args, value: withTooltipsValueMain }
1125
1093
  },
1126
1094
  template: `
1127
1095
  <div>
@@ -1161,406 +1129,6 @@ export const WithTooltips: Story = {
1161
1129
  },
1162
1130
  }
1163
1131
 
1164
- /**
1165
- * Story avec validation désactivée au blur
1166
- */
1167
- export const ValidateOnBlur: Story = {
1168
- args: {
1169
- modelValue: '',
1170
- label: 'Champ texte',
1171
- required: true,
1172
- isValidateOnBlur: true,
1173
- customRules: [
1174
- {
1175
- type: 'custom',
1176
- options: {
1177
- message: 'Le champ doit contenir au moins 3 caractères',
1178
- validate: (value: string) => value.length >= 3,
1179
- },
1180
- },
1181
- ],
1182
- },
1183
- render: args => ({
1184
- components: { SyTextField, VBtn },
1185
- setup() {
1186
- const value = ref(args.modelValue)
1187
- const fieldRef = ref()
1188
-
1189
- watch(() => args.modelValue, (newValue) => {
1190
- if (value.value !== newValue) {
1191
- value.value = newValue
1192
- }
1193
- })
1194
-
1195
- async function handleSubmit() {
1196
- const isValid = await fieldRef.value?.validateOnSubmit()
1197
- alert(isValid ? 'Formulaire valide !' : 'Formulaire invalide, veuillez corriger les erreurs.')
1198
- }
1199
-
1200
- return { args, value, fieldRef, handleSubmit }
1201
- },
1202
- template: `
1203
- <form @submit.prevent="handleSubmit">
1204
- <p class="mb-4">
1205
- La validation ne se déclenche qu'à la perte de focus ou à la soumission du formulaire.
1206
- </p>
1207
- <SyTextField
1208
- ref="fieldRef"
1209
- v-bind="args"
1210
- v-model="value"
1211
- />
1212
- <div class="mt-4">
1213
- <VBtn type="submit" color="primary">
1214
- Valider
1215
- </VBtn>
1216
- </div>
1217
- </form>
1218
- `,
1219
- }),
1220
- parameters: {
1221
- docs: {
1222
- description: {
1223
- story: 'Exemple de champ avec validation désactivée au blur. La validation ne se déclenche que lors de la soumission du formulaire.',
1224
- },
1225
- },
1226
- sourceCode: [
1227
- {
1228
- name: 'Template',
1229
- code: `
1230
- <template>
1231
- <form @submit.prevent="handleSubmit">
1232
- <SyTextField
1233
- ref="fieldRef"
1234
- v-model="value"
1235
- label="Champ texte"
1236
- required
1237
- :is-validate-on-blur="true"
1238
- :custom-rules="[
1239
- {
1240
- type: 'custom',
1241
- options: {
1242
- message: 'Le champ doit contenir au moins 3 caractères',
1243
- validate: value => value.length >= 3
1244
- }
1245
- }
1246
- ]"
1247
- />
1248
- <button type="submit">
1249
- Valider
1250
- </button>
1251
- </form>
1252
- </template>
1253
- `,
1254
- },
1255
- {
1256
- name: 'Script',
1257
- code: `
1258
- <script setup lang="ts">
1259
- import { ref } from 'vue'
1260
- import { SyTextField } from '@cnamts/synapse'
1261
-
1262
- const value = ref('')
1263
- const fieldRef = ref()
1264
-
1265
- async function handleSubmit() {
1266
- const isValid = await fieldRef.value?.validateOnSubmit()
1267
- if (!isValid) {
1268
- // Gérer l'erreur
1269
- return
1270
- }
1271
- // Continuer avec la soumission
1272
- }
1273
- </script>
1274
- `,
1275
- },
1276
- ],
1277
- },
1278
- }
1279
-
1280
- export const FormValidation: Story = {
1281
- render: args => ({
1282
- components: { SyTextField },
1283
- setup() {
1284
- const nomField = ref()
1285
- const prenomField = ref()
1286
- const ageField = ref()
1287
- const nomValue = ref('')
1288
- const prenomValue = ref('')
1289
- const ageValue = ref('')
1290
-
1291
- // Règle minLength pour le prénom
1292
- const prenomRules = [{
1293
- type: 'minLength',
1294
- options: {
1295
- length: 3,
1296
- message: 'Le prénom doit contenir au moins 3 caractères',
1297
- successMessage: 'Le prénom est valide',
1298
- fieldIdentifier: 'prénom',
1299
- },
1300
- }]
1301
-
1302
- // Règle pattern pour l'âge (uniquement des chiffres)
1303
- const ageRules = [{
1304
- type: 'matchPattern',
1305
- options: {
1306
- pattern: /^\d+$/,
1307
- message: 'L\'âge doit contenir uniquement des chiffres',
1308
- successMessage: 'L\'âge est valide',
1309
- fieldIdentifier: 'âge',
1310
- },
1311
- }]
1312
-
1313
- const handleSubmit = async () => {
1314
- const fields = [
1315
- { ref: nomField, name: 'Nom' },
1316
- { ref: prenomField, name: 'Prénom' },
1317
- { ref: ageField, name: 'Âge' },
1318
- ]
1319
-
1320
- const invalidFields: string[] = []
1321
- for (const { ref, name } of fields) {
1322
- const isValid = await ref.value?.validateOnSubmit()
1323
- if (!isValid) {
1324
- invalidFields.push(name)
1325
- }
1326
- }
1327
-
1328
- if (invalidFields.length > 0) {
1329
- alert(`Les champs suivants sont invalides: ${invalidFields.join(', ')}`)
1330
- }
1331
- else {
1332
- alert('Formulaire soumis avec succès !')
1333
- }
1334
- }
1335
-
1336
- return {
1337
- args,
1338
- nomField,
1339
- prenomField,
1340
- ageField,
1341
- nomValue,
1342
- prenomValue,
1343
- ageValue,
1344
- prenomRules,
1345
- ageRules,
1346
- handleSubmit,
1347
- }
1348
- },
1349
- template: `
1350
- <div style="max-width: 500px;">
1351
- <h3>Validation de formulaire</h3>
1352
- <form @submit.prevent="handleSubmit">
1353
- <div class="mb-4">
1354
- <SyTextField
1355
- ref="nomField"
1356
- v-model="nomValue"
1357
- label="Nom"
1358
- placeholder="Votre nom"
1359
- autocomplete="family-name"
1360
- required
1361
- show-success-messages
1362
- class="mb-4"
1363
- aria-describedby="nom-rule"
1364
- />
1365
-
1366
- <SyTextField
1367
- ref="prenomField"
1368
- v-model="prenomValue"
1369
- label="Prénom"
1370
- placeholder="Votre prénom"
1371
- autocomplete="given-name"
1372
- required
1373
- :custom-rules="prenomRules"
1374
- show-success-messages
1375
- class="mb-4"
1376
- aria-describedby="prenom-rule"
1377
- />
1378
-
1379
- <SyTextField
1380
- ref="ageField"
1381
- v-model="ageValue"
1382
- label="Âge"
1383
- required
1384
- placeholder="Votre âge"
1385
- :custom-rules="ageRules"
1386
- show-success-messages
1387
- class="mb-4"
1388
- aria-describedby="age-rule"
1389
- />
1390
- </div>
1391
-
1392
- <div class="text-caption mb-4">
1393
- <strong>Règles de validation :</strong>
1394
- <ul>
1395
- <li id="nom-rule">Nom : Champ requis</li>
1396
- <li id="prenom-rule">Prénom : Minimum 3 caractères</li>
1397
- <li id="age-rule">Âge : Uniquement des chiffres</li>
1398
- </ul>
1399
- </div>
1400
-
1401
- <button
1402
- type="submit"
1403
- style="
1404
- background-color: #1976d2;
1405
- color: white;
1406
- padding: 8px 16px;
1407
- border: none;
1408
- border-radius: 4px;
1409
- cursor: pointer;
1410
- font-size: 1rem;
1411
- "
1412
- >
1413
- Soumettre
1414
- </button>
1415
- </form>
1416
- </div>
1417
- `,
1418
- }),
1419
- parameters: {
1420
- docs: {
1421
- description: {
1422
- story: 'Exemple de champ avec validation désactivée au blur. La validation ne se déclenche que lors de la soumission du formulaire.',
1423
- },
1424
- },
1425
- sourceCode: [
1426
- {
1427
- name: 'Template',
1428
- code: `
1429
- <template>
1430
- <div>
1431
- <div style="max-width: 500px;">
1432
- <h3>Validation de formulaire</h3>
1433
- <form @submit.prevent="handleSubmit">
1434
- <div class="mb-4">
1435
- <SyTextField
1436
- ref="nomField"
1437
- v-model="nomValue"
1438
- label="Nom"
1439
- placeholder="Votre nom"
1440
- autocomplete="family-name"
1441
- required
1442
- show-success-messages
1443
- class="mb-4"
1444
- aria-describedby="nom-rule"
1445
- />
1446
-
1447
- <SyTextField
1448
- ref="prenomField"
1449
- v-model="prenomValue"
1450
- label="Prénom"
1451
- placeholder="Votre prénom"
1452
- autocomplete="given-name"
1453
- required
1454
- :custom-rules="prenomRules"
1455
- show-success-messages
1456
- class="mb-4"
1457
- aria-describedby="prenom-rule"
1458
- />
1459
-
1460
- <SyTextField
1461
- ref="ageField"
1462
- v-model="ageValue"
1463
- label="Âge"
1464
- required
1465
- placeholder="Votre âge"
1466
- :custom-rules="ageRules"
1467
- show-success-messages
1468
- class="mb-4"
1469
- aria-describedby="age-rule"
1470
- />
1471
- </div>
1472
-
1473
- <div class="text-caption mb-4">
1474
- <strong>Règles de validation :</strong>
1475
- <ul>
1476
- <li id="nom-rule">Nom : Champ requis</li>
1477
- <li id="prenom-rule">Prénom : Minimum 3 caractères</li>
1478
- <li id="age-rule">Âge : Uniquement des chiffres</li>
1479
- </ul>
1480
- </div>
1481
-
1482
- <button
1483
- type="submit"
1484
- style="
1485
- background-color: #1976d2;
1486
- color: white;
1487
- padding: 8px 16px;
1488
- border: none;
1489
- border-radius: 4px;
1490
- cursor: pointer;
1491
- font-size: 1rem;
1492
- "
1493
- >
1494
- Soumettre
1495
- </button>
1496
- </form>
1497
- </div>
1498
- </div>
1499
- </template>
1500
- `,
1501
- },
1502
- {
1503
- name: 'Script',
1504
- code: `
1505
- <script setup lang="ts">
1506
- const nomField = ref()
1507
- const prenomField = ref()
1508
- const ageField = ref()
1509
- const nomValue = ref('')
1510
- const prenomValue = ref('')
1511
- const ageValue = ref('')
1512
-
1513
- // Règle minLength pour le prénom
1514
- const prenomRules = [{
1515
- type: 'minLength',
1516
- options: {
1517
- length: 3,
1518
- message: 'Le prénom doit contenir au moins 3 caractères',
1519
- successMessage: 'Le prénom est valide',
1520
- fieldIdentifier: 'prénom',
1521
- },
1522
- }]
1523
-
1524
- // Règle pattern pour l'âge (uniquement des chiffres)
1525
- const ageRules = [{
1526
- type: 'matchPattern',
1527
- options: {
1528
- pattern: /^d+$/,
1529
- message: 'L'âge doit contenir uniquement des chiffres',
1530
- successMessage: 'L'âge est valide',
1531
- fieldIdentifier: 'âge',
1532
- },
1533
- }]
1534
-
1535
- const handleSubmit = () => {
1536
- const fields = [
1537
- { ref: nomField, name: 'Nom' },
1538
- { ref: prenomField, name: 'Prénom' },
1539
- { ref: ageField, name: 'Âge' },
1540
- ]
1541
-
1542
- const invalidFields: string[] = []
1543
- for (const { ref, name } of fields) {
1544
- const isValid = await ref.value?.validateOnSubmit()
1545
- if (!isValid) {
1546
- invalidFields.push(name)
1547
- }
1548
- }
1549
-
1550
- if (invalidFields.length > 0) {
1551
- alert('Les champs suivants sont invalides: ' + invalidFields.join('\\n'))
1552
- }
1553
- else {
1554
- alert('Formulaire soumis avec succès !')
1555
- }
1556
- }
1557
- </script>
1558
- `,
1559
- },
1560
- ],
1561
- },
1562
- }
1563
-
1564
1132
  export const WithPrefixAndSuffix: Story = {
1565
1133
  args: {
1566
1134
  modelValue: '42',
@@ -1610,208 +1178,3 @@ export const WithPrefixAndSuffix: Story = {
1610
1178
  ],
1611
1179
  },
1612
1180
  }
1613
-
1614
- export const DisabledErrorHandling: Story = {
1615
- args: {
1616
- label: 'Champ requis',
1617
- required: true,
1618
- customRules: [
1619
- {
1620
- type: 'required',
1621
- options: {
1622
- message: 'Ce champ est obligatoire.',
1623
- },
1624
- },
1625
- ],
1626
- },
1627
- render: (args) => {
1628
- return {
1629
- components: { SyTextField },
1630
- setup() {
1631
- const value1 = ref('')
1632
- const value2 = ref('')
1633
-
1634
- return { args, value1, value2 }
1635
- },
1636
- template: `
1637
- <div>
1638
- <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 16px;">
1639
- <div>
1640
- <p class="text-subtitle-2 mb-2">Validation normale</p>
1641
- <SyTextField
1642
- v-model="value1"
1643
- v-bind="args"
1644
- is-validate-on-blur
1645
- />
1646
- </div>
1647
-
1648
- <div>
1649
- <p class="text-subtitle-2 mb-2">Sans gestion d'erreurs</p>
1650
- <SyTextField
1651
- v-model="value2"
1652
- v-bind="args"
1653
- disableErrorHandling
1654
- is-validate-on-blur
1655
- />
1656
- </div>
1657
- </div>
1658
-
1659
- <div class="mt-4 text-body-2">
1660
- <p>Instructions :</p>
1661
- <ol>
1662
- <li class="ml-4">Cliquez dans un champ puis en dehors pour déclencher la validation</li>
1663
- <li class="ml-4">Observez que le champ de gauche affiche un message d'erreur</li>
1664
- <li class="ml-4">Le champ de droite n'affiche aucune erreur malgré les mêmes règles</li>
1665
- </ol>
1666
- </div>
1667
- </div>
1668
- `,
1669
- }
1670
- },
1671
- parameters: {
1672
- docs: {
1673
- description: {
1674
- story: 'La prop `disableErrorHandling` permet de désactiver complètement la gestion des erreurs de validation, même si des règles sont définies.',
1675
- },
1676
- },
1677
- sourceCode: [
1678
- {
1679
- name: 'Template',
1680
- code: `
1681
- <template>
1682
- <!-- Champ avec validation normale -->
1683
- <SyTextField
1684
- v-model="value"
1685
- label="Champ obligatoire"
1686
- required
1687
- :custom-rules="[{
1688
- type: 'required',
1689
- options: { message: 'Ce champ est obligatoire.' }
1690
- }]"
1691
- is-validate-on-blur
1692
- />
1693
-
1694
- <!-- Champ avec gestion d'erreur désactivée -->
1695
- <SyTextField
1696
- v-model="value"
1697
- label="Champ obligatoire"
1698
- required
1699
- :custom-rules="[{
1700
- type: 'required',
1701
- options: { message: 'Ce champ est obligatoire.' }
1702
- }]"
1703
- disableErrorHandling
1704
- is-validate-on-blur
1705
- />
1706
- </template>`,
1707
- },
1708
- ],
1709
- },
1710
- }
1711
-
1712
- export const WithoutSuccessMessages: Story = {
1713
- args: {
1714
- label: 'Email',
1715
- customRules: [
1716
- {
1717
- type: 'matchPattern',
1718
- options: {
1719
- pattern: /^[^\s@]+@[^\s@]+\.[^\s@]+$/,
1720
- message: 'Veuillez entrer une adresse email valide',
1721
- successMessage: 'Le format de l\'email est correct',
1722
- fieldIdentifier: 'Email',
1723
- },
1724
- },
1725
- ],
1726
- },
1727
- render: (args) => {
1728
- return {
1729
- components: { SyTextField },
1730
- setup() {
1731
- const value1 = ref('user@example.com')
1732
- const value2 = ref('user@example.com')
1733
-
1734
- return { args, value1, value2 }
1735
- },
1736
- template: `
1737
- <div>
1738
- <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 16px;">
1739
- <div>
1740
- <p class="text-subtitle-2 mb-2">Avec messages de succès (défaut)</p>
1741
- <SyTextField
1742
- v-model="value1"
1743
- v-bind="args"
1744
- autocomplete="email"
1745
- showSuccessMessages
1746
- />
1747
- </div>
1748
-
1749
- <div>
1750
- <p class="text-subtitle-2 mb-2">Sans messages de succès</p>
1751
- <SyTextField
1752
- v-model="value2"
1753
- v-bind="args"
1754
- autocomplete="email"
1755
- :showSuccessMessages="false"
1756
- />
1757
- </div>
1758
- </div>
1759
-
1760
- <div class="mt-4 text-body-2">
1761
- <p>Les deux champs ont la même valeur et passent la validation :</p>
1762
- <ul >
1763
- <li class="ml-4">Le champ de gauche affiche le message de succès</li>
1764
- <li class="ml-4">Le champ de droite n'affiche aucun message</li>
1765
- </ul>
1766
- <p class="mt-2">Essayez de modifier les valeurs pour voir le comportement.</p>
1767
- </div>
1768
- </div>
1769
- `,
1770
- }
1771
- },
1772
- parameters: {
1773
- docs: {
1774
- description: {
1775
- story: 'La prop `showSuccessMessages` (par défaut: `true`) permet de contrôler l\'affichage des messages de succès lors de la validation.',
1776
- },
1777
- },
1778
- sourceCode: [
1779
- {
1780
- name: 'Template',
1781
- code: `
1782
- <template>
1783
- <!-- Champ avec messages de succès (défaut) -->
1784
- <SyTextField
1785
- v-model="email"
1786
- label="Email"
1787
- autocomplete="email"
1788
- :custom-rules="[{
1789
- type: 'matchPattern',
1790
- options: {
1791
- pattern: /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/,
1792
- message: 'Veuillez entrer une adresse email valide',
1793
- successMessage: 'Le format de l\\'email est correct',
1794
- }
1795
- }]"
1796
- />
1797
-
1798
- <!-- Champ sans messages de succès -->
1799
- <SyTextField
1800
- v-model="email"
1801
- label="Email"
1802
- autocomplete="email"
1803
- :custom-rules="[{
1804
- type: 'matchPattern',
1805
- options: {
1806
- pattern: /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/,
1807
- message: 'Veuillez entrer une adresse email valide',
1808
- successMessage: 'Le format de l\\'email est correct',
1809
- }
1810
- }]"
1811
- :showSuccessMessages="false"
1812
- />
1813
- </template>`,
1814
- },
1815
- ],
1816
- },
1817
- }