@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
@@ -1,7 +1,7 @@
1
1
  import type { StoryObj, Meta } from '@storybook/vue3'
2
2
  import { ref } from 'vue'
3
- import { VBtn } from 'vuetify/components'
4
3
  import NirField from './NirField.vue'
4
+ import { getValidationDocumentation } from '@/composables/unifyValidation/documentationValidationProps'
5
5
 
6
6
  const meta: Meta<typeof NirField> = {
7
7
  title: 'Composants/Formulaires/NirField',
@@ -15,6 +15,7 @@ const meta: Meta<typeof NirField> = {
15
15
  layout: 'fullscreen',
16
16
  },
17
17
  argTypes: {
18
+ ...getValidationDocumentation('string'),
18
19
  modelValue: {
19
20
  description: 'La valeur du modèle pour le champ.',
20
21
  control: 'text',
@@ -349,6 +350,21 @@ const meta: Meta<typeof NirField> = {
349
350
  },
350
351
  },
351
352
  },
353
+ helpText: {
354
+ description: 'Texte d\'aide affiché sous le champ. Remplace la zone de messages quand il n\'y a pas d\'erreur, sinon s\'affiche en dessous des messages.',
355
+ control: 'text',
356
+ table: {
357
+ type: { summary: 'string' },
358
+ defaultValue: { summary: '\'\'' },
359
+ },
360
+ },
361
+ successMessages: {
362
+ description: 'Permet d\'injecter des messages de succès depuis le parent pour le champ numéro. Aucun calcul de validation n\'est exécuté.',
363
+ control: 'object',
364
+ table: {
365
+ type: { summary: 'array<string>' },
366
+ },
367
+ },
352
368
  customLocale: {
353
369
  description: 'Objet permettant de surcharger les messages du composant. Clés supportées : `errorRequiredNumber`, `errorInvalidNumber`, `errorRequiredKey`, `errorInvalidKey`, `successNumberValid`, `successKeyValid`.',
354
370
  control: 'object',
@@ -520,262 +536,43 @@ export const WithoutKey: Story = {
520
536
  },
521
537
  }
522
538
 
523
- export const WithSuccessMessages: Story = {
524
- args: {
525
- ...Default.args,
526
- showSuccessMessages: true,
527
- },
528
- parameters: {
529
- ...Default.parameters,
530
- sourceCode: [
531
- {
532
- name: 'Template',
533
- code: `
534
- <template>
535
- <NirField
536
- v-model="value"
537
- :required="false"
538
- numberLabel="Numéro de sécurité sociale"
539
- keyLabel="Clé"
540
- :showSuccessMessages="true"
541
- />
542
- </template>
543
- `,
544
- },
545
- {
546
- name: 'Script',
547
- code: `
548
- <script setup lang="ts">
549
- import { NirField } from '@cnamts/synapse'
550
- import { ref } from 'vue'
551
-
552
- const value = ref('')
553
- </script>
554
- `,
555
- },
556
- ],
557
- },
558
- }
559
-
560
- export const WithoutSuccessMessages: Story = {
539
+ export const WithHelpText: Story = {
561
540
  parameters: {
562
541
  docs: {
563
542
  description: {
564
- story: `
565
- ### Messages de succès
566
-
567
- Cette story illustre l'utilisation de la propriété \`showSuccessMessages\` qui permet de contrôler
568
- l'affichage des messages de succès lors de la validation. Par défaut, cette propriété est à \`true\`.
569
-
570
- Cela peut être utile pour réduire la verbosité de l'interface lorsque les messages de succès
571
- ne sont pas nécessaires dans certains contextes.
572
- `,
543
+ story: 'Un texte d\'aide s\'affiche sous le champ quand il n\'y a pas de message de validation. Il se déplace sous les messages quand une erreur est présente.',
573
544
  },
574
545
  },
575
546
  sourceCode: [
576
547
  {
577
548
  name: 'Template',
578
- code: `<template>
579
- <!-- Champ avec messages de succès (par défaut) -->
580
- <NirField
581
- v-model="value"
582
- label="NIR avec messages de succès"
583
- required
584
- />
585
-
586
- <!-- Champ sans messages de succès -->
549
+ code: `
550
+ <template>
587
551
  <NirField
588
552
  v-model="value"
589
- label="NIR sans messages de succès"
553
+ label="Identifiant assuré"
590
554
  required
591
- :showSuccessMessages="false"
555
+ help-text="Saisissez les 13 chiffres du numéro de sécurité sociale, puis la clé à 2 chiffres."
592
556
  />
593
557
  </template>`,
594
558
  },
595
- ],
596
- },
597
- render: () => ({
598
- components: { NirField },
599
- setup() {
600
- const value1 = ref('184027512345674')
601
- const value2 = ref('184027512345674')
602
-
603
- return { value1, value2 }
604
- },
605
- template: `
606
- <div>
607
- <div>
608
- <div>
609
- <p class="text-subtitle-2 mb-2">Avec messages de succès</p>
610
- <NirField
611
- v-model="value1"
612
- label="NIR avec messages de succès"
613
- required
614
- showSuccessMessages
615
- />
616
- </div>
617
-
618
- <div>
619
- <p class="text-subtitle-2 mb-2">Sans messages de succès</p>
620
- <NirField
621
- v-model="value2"
622
- label="NIR sans messages de succès"
623
- required
624
- :showSuccessMessages="false"
625
- />
626
- </div>
627
- </div>
628
-
629
- <div class="mt-4 text-body-2">
630
- <p>Observations :</p>
631
- <ul>
632
- <li>Les deux champs ont la même valeur valide</li>
633
- <li>Le premier champ affiche un message de succès et un indicateur visuel vert au blur</li>
634
- <li>Le second champ n'affiche pas de message de succès, au blur</li>
635
- <li>Essayez de modifier les valeurs pour voir le comportement avec des données invalides puis valides</li>
636
- </ul>
637
- </div>
638
- </div>
639
- `,
640
- }),
641
- }
642
-
643
- export const CustomPatternRules: Story = {
644
- args: {
645
- ...Default.args,
646
- customRulesPrecedence: true,
647
- customNumberRules: [
648
559
  {
649
- type: 'custom',
650
- options: {
651
- validate: (value: string) => {
652
- if (!value) return true
653
-
654
- // Supprimer les espaces pour la validation
655
- const valueWithoutSpaces = value.replace(/\s/g, '')
656
-
657
- // Vérifier la longueur
658
- if (valueWithoutSpaces.length !== 13) {
659
- return 'Le numéro de sécurité sociale doit contenir 13 caractères.'
660
- }
661
-
662
- // Vérifier le pattern selon les règles spécifiques du NIR français
663
- // Rang 1: sexe (1 pour homme, 2 pour femme)
664
- if (!/^[12]/.test(valueWithoutSpaces)) {
665
- return 'Le premier chiffre doit être 1 (homme) ou 2 (femme).'
666
- }
667
-
668
- // Rangs 2-3: deux derniers chiffres de l'année de naissance
669
- const anneeNaissance = valueWithoutSpaces.substring(1, 3)
670
- if (!/^[0-9]{2}$/.test(anneeNaissance)) {
671
- return 'Les chiffres 2 et 3 doivent représenter l\'année de naissance.'
672
- }
673
-
674
- // Rangs 4-5: mois de naissance (01-12)
675
- const moisNaissance = valueWithoutSpaces.substring(3, 5)
676
- if (!/^(0[1-9]|1[0-2])$/.test(moisNaissance)) {
677
- return 'Les chiffres 4 et 5 doivent représenter un mois valide (01-12).'
678
- }
679
-
680
- // Rangs 6-7: département de naissance
681
- const departement = valueWithoutSpaces.substring(5, 7)
682
- if (!((/^[0-9]{2}$/.test(departement) && departement !== '00')
683
- || departement === '2A' || departement === '2B' || departement === '99')) {
684
- return 'Les chiffres 6 et 7 doivent représenter un département valide.'
685
- }
686
-
687
- // Rangs 8-10: code commune ou pays
688
- const codeCommune = valueWithoutSpaces.substring(7, 10)
689
- if (!/^[0-9]{3}$/.test(codeCommune)) {
690
- return 'Les chiffres 8 à 10 doivent représenter un code commune ou pays valide.'
691
- }
692
-
693
- // Rangs 11-13: numéro d'ordre
694
- const numeroOrdre = valueWithoutSpaces.substring(10, 13)
695
- if (!/^[0-9]{3}$/.test(numeroOrdre)) {
696
- return 'Les chiffres 11 à 13 doivent représenter un numéro d\'ordre valide.'
697
- }
698
-
699
- return true
700
- },
701
- message: 'Le numéro de sécurité sociale est invalide.',
702
- successMessage: 'Le numéro de sécurité sociale est valide.',
703
- fieldIdentifier: 'Numéro de sécurité sociale',
704
- },
705
- },
706
- ],
707
- },
708
- parameters: {
709
- ...Default.parameters,
710
- docs: {
711
- description: {
712
- story: 'Exemple d\'utilisation avec une règle personnalisée qui prend la prévalence sur la validation standard. Cette règle valide le format du NIR selon les règles officielles françaises : 1er chiffre pour le sexe, 2 chiffres pour l\'année de naissance, 2 chiffres pour le mois, 5 chiffres pour le lieu de naissance et 3 chiffres pour le numéro d\'ordre.',
713
- },
714
- },
715
- sourceCode: [
716
- {
717
- name: 'Template',
560
+ name: 'Script',
718
561
  code: `
719
- <template>
720
- <NirField
721
- v-model="value"
722
- :required="false"
723
- numberLabel="Numéro de sécurité sociale"
724
- keyLabel="Clé"
725
- :displayKey="true"
726
- :customRulesPrecedence="true"
727
- :customNumberRules="[
728
- {
729
- type: 'custom',
730
- options: {
731
- validate: (value) => {
732
- if (!value) return true;
733
-
734
- // Supprimer les espaces pour la validation
735
- const valueWithoutSpaces = value.replace(/\\s/g, '');
736
-
737
- // Vérifier la longueur
738
- if (valueWithoutSpaces.length !== 13) {
739
- return 'Le numéro de sécurité sociale doit contenir 13 caractères.';
740
- }
741
-
742
- // Vérification selon les règles spécifiques du NIR français
743
- // Rang 1: sexe (1 pour homme, 2 pour femme)
744
- if (!/^[12]/.test(valueWithoutSpaces)) {
745
- return 'Le premier chiffre doit être 1 (homme) ou 2 (femme).';
746
- }
747
-
748
- // Rangs 2-3: deux derniers chiffres de l'année de naissance
749
- if (!/^[12][0-9]{2}/.test(valueWithoutSpaces)) {
750
- return 'Les chiffres 2 et 3 doivent représenter l'année de naissance.';
751
- }
752
-
753
- // Rangs 4-5: mois de naissance (01-12)
754
- const moisNaissance = valueWithoutSpaces.substring(3, 5);
755
- if (!/^(0[1-9]|1[0-2])$/.test(moisNaissance)) {
756
- return 'Les chiffres 4 et 5 doivent représenter un mois valide (01-12).';
757
- }
562
+ <script setup lang="ts">
563
+ import { ref } from 'vue'
564
+ import { NirField } from '@cnamts/synapse'
758
565
 
759
- // Vérification complète du format
760
- const formatComplet = /^[12][0-9]{2}(0[1-9]|1[0-2])[0-9]{8}$/;
761
- if (!formatComplet.test(valueWithoutSpaces)) {
762
- return 'Le format du numéro de sécurité sociale est invalide.';
763
- }
764
-
765
- return true;
766
- },
767
- message: 'Le numéro de sécurité sociale est invalide.',
768
- successMessage: 'Le numéro de sécurité sociale est valide.',
769
- fieldIdentifier: 'Numéro de sécurité sociale',
770
- }
771
- }
772
- ]"
773
- />
774
- </template>
775
- `,
566
+ const value = ref('')
567
+ </script>`,
776
568
  },
777
569
  ],
778
570
  },
571
+ args: {
572
+ label: 'Identifiant assuré',
573
+ required: true,
574
+ helpText: 'Saisissez les 13 chiffres du numéro de sécurité sociale, puis la clé à 2 chiffres.',
575
+ },
779
576
  render: args => ({
780
577
  components: { NirField },
781
578
  setup() {
@@ -783,94 +580,14 @@ export const CustomPatternRules: Story = {
783
580
  return { args, value }
784
581
  },
785
582
  template: `
786
- <div>
787
- <h3>Validation avec pattern personnalisé et prévalence</h3>
788
- <p>Cette démonstration utilise une règle personnalisée qui valide le format du NIR selon le pattern suivant :</p>
789
- <pre>X XX XX XXX XXX XXX</pre>
790
- <p>Où :</p>
791
- <ul>
792
- <li><strong>X</strong> (rang 1) : sexe (1 pour les hommes, 2 pour les femmes)</li>
793
- <li><strong>XX</strong> (rangs 2-3) : deux derniers chiffres de l'année de naissance</li>
794
- <li><strong>XX</strong> (rangs 4-5) : mois de naissance (01-12)</li>
795
- <li><strong>XXX</strong> (rangs 6-10) : lieu de naissance
796
- <ul>
797
- <li>Rangs 6-7 : département (99 si étranger, 2A/2B pour la Corse)</li>
798
- <li>Rangs 8-10 : code commune ou pays</li>
799
- </ul>
800
- </li>
801
- <li><strong>XXX</strong> (rangs 11-13) : numéro d’ordre</li>
802
- </ul>
803
- <p>La propriété <code>customRulesPrecedence</code> est définie à <code>true</code> pour que cette règle soit appliquée avant la validation standard.</p>
804
- <NirField
805
- v-model="value"
806
- v-bind="args"
807
- class="mt-4"
808
- />
809
- <div class="mt-4">Valeur actuelle : {{ value }}</div>
810
- </div>
811
- `,
583
+ <NirField
584
+ v-model="value"
585
+ v-bind="args"
586
+ />
587
+ `,
812
588
  }),
813
589
  }
814
590
 
815
- export const CustomRules: Story = {
816
- args: {
817
- ...Default.args,
818
- customNumberRules: [
819
- {
820
- type: 'minLength',
821
- options: {
822
- length: 10,
823
- message: 'Le numéro de sécurité sociale doit avoir au moins 10 caractères.',
824
- successMessage: 'Le numéro de sécurité sociale a une longueur valide.',
825
- ignoreSpace: true,
826
- },
827
- },
828
- ],
829
- customKeyRules: [
830
- {
831
- type: 'minLength',
832
- options: {
833
- length: 1,
834
- message: 'La clé doit avoir au moins 1 caractère.',
835
- successMessage: 'La clé a une longueur valide.',
836
- },
837
- },
838
- ],
839
- },
840
- parameters: {
841
- ...Default.parameters,
842
- sourceCode: [
843
- {
844
- name: 'Template',
845
- code: `
846
- <template>
847
- <NirField
848
- v-model="value"
849
- :required="false"
850
- numberLabel="Numéro de sécurité sociale"
851
- keyLabel="Clé"
852
- :displayKey="true"
853
- :customNumberRules="[{ type: 'minLength', options: { length: 10, ignoreSpace: true, message: 'Le numéro de sécurité sociale doit avoir au moins 10 caractères.', successMessage: 'Le numéro de sécurité sociale a une longueur valide.' } }]"
854
- :customKeyRules="[{ type: 'minLength', options: { length: 1, message: 'La clé doit avoir au moins 1 caractère.', successMessage: 'La clé a une longueur valide.' } }]"
855
- />
856
- </template>
857
- `,
858
- },
859
- {
860
- name: 'Script',
861
- code: `
862
- <script setup lang="ts">
863
- import { NirField } from '@cnamts/synapse'
864
- import { ref } from 'vue'
865
-
866
- const value = ref('')
867
- </script>
868
- `,
869
- },
870
- ],
871
- },
872
- }
873
-
874
591
  export const WithNirTooltip: Story = {
875
592
  args: {
876
593
  ...Default.args,
@@ -910,7 +627,7 @@ L'infobulle est positionnée avant le champ et s'affiche au survol de l'icône d
910
627
  <script setup lang="ts">
911
628
  import { NirField } from '@cnamts/synapse'
912
629
  import { ref } from 'vue'
913
-
630
+
914
631
  const value = ref('')
915
632
  </script>
916
633
  `,
@@ -958,184 +675,7 @@ L'infobulle est positionnée après le champ et s'affiche au survol de l'icône
958
675
  <script setup lang="ts">
959
676
  import { NirField } from '@cnamts/synapse'
960
677
  import { ref } from 'vue'
961
-
962
- const value = ref('')
963
- </script>
964
- `,
965
- },
966
- ],
967
- },
968
- }
969
-
970
- export const WithWarnings: Story = {
971
- args: {
972
- ...Default.args,
973
- showSuccessMessages: false,
974
- customNumberWarningRules: [
975
- {
976
- type: 'custom',
977
- options: {
978
- message: 'Attention : ce NIR commence par 1 (homme)',
979
- warningMessage: 'Attention : ce NIR commence par 1 (homme)',
980
- validate: (value: string) => {
981
- if (!value) return false
982
- // On retourne true si la règle n'est PAS respectée (= warning)
983
- return !value.startsWith('1')
984
- },
985
- isWarning: true,
986
- },
987
- },
988
- {
989
- type: 'custom',
990
- options: {
991
- message: 'Attention : ce NIR commence par 2 (femme)',
992
- warningMessage: 'Attention : ce NIR commence par 2 (femme)',
993
- validate: (value: string) => {
994
- if (!value) return false
995
- // On retourne true si la règle n'est PAS respectée (= warning)
996
- return !value.startsWith('2')
997
- },
998
- isWarning: true,
999
- },
1000
- },
1001
- ],
1002
- customKeyRules: [
1003
- {
1004
- type: 'custom',
1005
- options: {
1006
- message: 'La clé doit être comprise entre 01 et 97',
1007
- validate: (value: string) => {
1008
- if (!value) return true
1009
- const numValue = parseInt(value)
1010
- return numValue >= 1 && numValue <= 97
1011
- },
1012
- },
1013
- },
1014
- ],
1015
- customKeyWarningRules: [
1016
- {
1017
- type: 'custom',
1018
- options: {
1019
- message: 'Attention : la clé est supérieure à 50',
1020
- warningMessage: 'Attention : la clé est supérieure à 50',
1021
- validate: (value: string) => {
1022
- if (!value) return false
1023
- const numValue = parseInt(value)
1024
- // On retourne true si la règle n'est PAS respectée (= warning)
1025
- return !(numValue > 50)
1026
- },
1027
- isWarning: true,
1028
- },
1029
- },
1030
- ],
1031
- },
1032
- parameters: {
1033
- ...Default.parameters,
1034
- docs: {
1035
- description: {
1036
- story: `
1037
- ## Exemple d'utilisation des warnings
1038
-
1039
- Le NirField peut afficher des warnings pour guider l'utilisateur sans bloquer la validation.
1040
-
1041
- ### Warnings sur le NIR
1042
- - Un warning s'affiche si le NIR commence par 1 (homme)
1043
- - Un warning s'affiche si le NIR commence par 2 (femme)
1044
-
1045
- ### Warnings sur la clé
1046
- - Un warning s'affiche si la clé est supérieure à 50
1047
- - Une erreur s'affiche si la clé n'est pas entre 01 et 97
1048
-
1049
- ### Exemples de NIR valides avec warnings :
1050
- - \`1234567891011\` (warning : homme)
1051
- - \`2234567891011\` (warning : femme)
1052
- - Clé \`51\` (warning : clé > 50)
1053
678
 
1054
- Les warnings sont affichés en jaune avec une icône d'avertissement mais ne bloquent pas la validation.
1055
- Les erreurs sont affichées en rouge et bloquent la validation.
1056
- `,
1057
- },
1058
- },
1059
- sourceCode: [
1060
- {
1061
- name: 'Template',
1062
- code: `
1063
- <template>
1064
- <NirField
1065
- v-model="value"
1066
- :required="false"
1067
- :show-success-messages="true"
1068
- numberLabel="Numéro de sécurité sociale"
1069
- keyLabel="Clé"
1070
- :display-key="true"
1071
- :customNumberWarningRules="[
1072
- {
1073
- type: 'custom',
1074
- options: {
1075
- message: 'Attention : ce NIR commence par 1 (homme)',
1076
- warningMessage: 'Attention : ce NIR commence par 1 (homme)',
1077
- validate: (value) => {
1078
- if (!value) return false
1079
- // On retourne true si la règle n'est PAS respectée (= warning)
1080
- return !value.startsWith('1')
1081
- },
1082
- isWarning: true,
1083
- },
1084
- },
1085
- {
1086
- type: 'custom',
1087
- options: {
1088
- message: 'Attention : ce NIR commence par 2 (femme)',
1089
- warningMessage: 'Attention : ce NIR commence par 2 (femme)',
1090
- validate: (value) => {
1091
- if (!value) return false
1092
- // On retourne true si la règle n'est PAS respectée (= warning)
1093
- return !value.startsWith('2')
1094
- },
1095
- isWarning: true,
1096
- },
1097
- },
1098
- ]"
1099
- :customKeyRules="[
1100
- {
1101
- type: 'custom',
1102
- options: {
1103
- message: 'La clé doit être comprise entre 01 et 97',
1104
- validate: (value) => {
1105
- if (!value) return true
1106
- const numValue = parseInt(value)
1107
- return numValue >= 1 && numValue <= 97
1108
- },
1109
- },
1110
- },
1111
- ]"
1112
- :customKeyWarningRules="[
1113
- {
1114
- type: 'custom',
1115
- options: {
1116
- message: 'Attention : la clé est supérieure à 50',
1117
- warningMessage: 'Attention : la clé est supérieure à 50',
1118
- validate: (value) => {
1119
- if (!value) return false
1120
- const numValue = parseInt(value)
1121
- // On retourne true si la règle n'est PAS respectée (= warning)
1122
- return !(numValue > 50)
1123
- },
1124
- isWarning: true,
1125
- },
1126
- },
1127
- ]"
1128
- />
1129
- </template>
1130
- `,
1131
- },
1132
- {
1133
- name: 'Script',
1134
- code: `
1135
- <script setup lang="ts">
1136
- import { NirField } from '@cnamts/synapse'
1137
- import { ref } from 'vue'
1138
-
1139
679
  const value = ref('')
1140
680
  </script>
1141
681
  `,
@@ -1144,188 +684,6 @@ Les erreurs sont affichées en rouge et bloquent la validation.
1144
684
  },
1145
685
  }
1146
686
 
1147
- export const FormValidation: Story = {
1148
- parameters: {
1149
- docs: {
1150
- description: {
1151
- story: `
1152
- ### Validation de formulaire
1153
-
1154
- Cette story montre l'utilisation du NirField dans un formulaire avec validation. Le formulaire :
1155
- - Requiert un NIR valide (13 chiffres)
1156
- - Requiert une clé valide (2 chiffres)
1157
- - Affiche des messages de succès quand les champs sont valides
1158
- - Affiche des messages d'erreur quand les champs sont invalides
1159
- `,
1160
- },
1161
- },
1162
- sourceCode: [
1163
- {
1164
- name: 'Template',
1165
- code: `<form @submit.prevent="onSubmit">
1166
- <NirField
1167
- v-model="value"
1168
- label="NirField"
1169
- required
1170
- :displayKey="false"
1171
- showSuccessMessages
1172
- ref="nirField"
1173
- />
1174
- <v-btn
1175
- type="submit"
1176
- color="primary"
1177
- class="mt-4"
1178
- >
1179
- Valider
1180
- </v-btn>
1181
- </form>`,
1182
- },
1183
- {
1184
- name: 'Script',
1185
- code: `<script setup lang="ts">
1186
- import { ref } from 'vue'
1187
- import { NirField } from '@cnamts/synapse'
1188
-
1189
- const value = ref('')
1190
- const nirField = ref()
1191
-
1192
- const onSubmit = async () => {
1193
- const isValid = await nirField.value?.validateOnSubmit()
1194
-
1195
- if (isValid) {
1196
- alert('Formulaire soumis avec succès !')
1197
- }
1198
- else {
1199
- alert('Formulaire non soumis !')
1200
- }
1201
- }
1202
- </script>`,
1203
- },
1204
- ],
1205
- },
1206
- render: args => ({
1207
- components: { NirField, VBtn },
1208
- setup() {
1209
- const value = ref('')
1210
- const nirField = ref()
1211
-
1212
- const onSubmit = async () => {
1213
- const isValid = await nirField.value?.validateOnSubmit()
1214
-
1215
- if (isValid) {
1216
- alert('Formulaire soumis avec succès !')
1217
- }
1218
- else {
1219
- alert('Formulaire non soumis !')
1220
- }
1221
- }
1222
-
1223
- return { args, value, nirField, onSubmit }
1224
- },
1225
- template: `
1226
- <form @submit.prevent="onSubmit">
1227
- <NirField
1228
- v-model="value"
1229
- v-bind="args"
1230
- label="NirField"
1231
- required
1232
- showSuccessMessages
1233
- :displayKey="false"
1234
- ref="nirField"
1235
- />
1236
- <v-btn
1237
- type="submit"
1238
- color="primary"
1239
- class="mt-4"
1240
- >
1241
- Valider
1242
- </v-btn>
1243
- </form>
1244
- `,
1245
- }),
1246
- }
1247
-
1248
- export const DisableErrorHandling: Story = {
1249
- parameters: {
1250
- docs: {
1251
- description: {
1252
- story: `
1253
- ### Désactivation de la gestion des erreurs
1254
-
1255
- Cette story illustre l'utilisation de la propriété \`disableErrorHandling\` qui permet de désactiver complètement
1256
- la gestion et l'affichage des erreurs dans un champ, même si des règles de validation sont définies.
1257
-
1258
- Cela peut être utile dans des cas particuliers où vous souhaitez définir des règles de validation
1259
- mais gérer leur affichage différemment, ou utiliser la validation uniquement au niveau du formulaire parent.
1260
- `,
1261
- },
1262
- },
1263
- sourceCode: [
1264
- {
1265
- name: 'Template',
1266
- code: `<template>
1267
- <!-- Champ avec validation normale -->
1268
- <NirField
1269
- v-model="value"
1270
- label="NIR avec validation"
1271
- required
1272
- />
1273
-
1274
- <!-- Champ avec gestion d'erreurs désactivée -->
1275
- <NirField
1276
- v-model="value"
1277
- label="NIR sans gestion d'erreurs"
1278
- required
1279
- disableErrorHandling
1280
- />
1281
- </template>`,
1282
- },
1283
- ],
1284
- },
1285
- render: () => ({
1286
- components: { NirField },
1287
- setup() {
1288
- const value1 = ref('')
1289
- const value2 = ref('')
1290
-
1291
- return { value1, value2 }
1292
- },
1293
- template: `
1294
- <div>
1295
- <div>
1296
- <div>
1297
- <p class="text-subtitle-2 mb-2">Validation normale</p>
1298
- <NirField
1299
- v-model="value1"
1300
- label="NIR avec validation"
1301
- required
1302
- />
1303
- </div>
1304
-
1305
- <div>
1306
- <p class="text-subtitle-2 mb-2">Sans gestion d'erreurs</p>
1307
- <NirField
1308
- v-model="value2"
1309
- label="NIR sans gestion d'erreurs"
1310
- required
1311
- disableErrorHandling
1312
- />
1313
- </div>
1314
- </div>
1315
-
1316
- <div class="mt-4 text-body-2">
1317
- <p>Instructions :</p>
1318
- <ol>
1319
- <li class="ml-4">Cliquez dans un champ puis en dehors pour déclencher la validation</li>
1320
- <li class="ml-4">Essayez de saisir des valeurs invalides (moins de 13 chiffres)</li>
1321
- <li class="ml-4">Notez que le premier champ affiche des erreurs, mais pas le second</li>
1322
- </ol>
1323
- </div>
1324
- </div>
1325
- `,
1326
- }),
1327
- }
1328
-
1329
687
  export const WithCustomLocale: Story = {
1330
688
  args: {
1331
689
  ...Default.args,