@cnamts/synapse 1.0.26 → 1.0.27

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 (253) hide show
  1. package/dist/{AutocompleteFilter-BPR-a55G.js → AutocompleteFilter-C9eLKyW8.js} +3 -3
  2. package/dist/{DateFilter-CknrJWs2.js → DateFilter-y-GLkAkn.js} +8 -8
  3. package/dist/{NumberFilter-DJ-yNlzv.js → NumberFilter-DN6hIBS7.js} +1 -1
  4. package/dist/{PeriodFilter-CiB5Oa9Z.js → PeriodFilter-MoUUp9qS.js} +1 -1
  5. package/dist/{SelectFilter-EiafX97M.js → SelectFilter-bCbrdLmu.js} +1 -1
  6. package/dist/{TextFilter-BzOmpdxj.js → TextFilter-CvjgEaoM.js} +4 -4
  7. package/dist/apLightTheme2026-ug4Y23ns.js +611 -0
  8. package/dist/components/Customs/Selects/SyAutocomplete/SyAutocomplete.d.ts +2369 -353
  9. package/dist/components/Customs/Selects/SyAutocomplete/composables/useSyAutocompleteValidation.d.ts +18 -0
  10. package/dist/components/Customs/Selects/SyAutocomplete/utils/ariaManager.d.ts +1 -1
  11. package/dist/components/Customs/Selects/SyAutocomplete/utils/useKeyboardHandler.d.ts +3 -1
  12. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +9 -10
  13. package/dist/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.d.ts +1 -0
  14. package/dist/components/Customs/Selects/SySelect/composables/useSySelectValidation.d.ts +15 -0
  15. package/dist/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.d.ts +3 -3
  16. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +3 -3
  17. package/dist/components/Customs/SyIconButton/SyIconButton.d.ts +18 -0
  18. package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +20 -38
  19. package/dist/components/Customs/SyRadioGroup/composables/useSyRadioGroupValidation.d.ts +50 -0
  20. package/dist/components/Customs/SyTextField/SyTextField.d.ts +6 -6
  21. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +147 -136
  22. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +62 -54
  23. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +27 -24
  24. package/dist/components/DatePicker/composables/index.d.ts +1 -0
  25. package/dist/components/DatePicker/composables/useDatePickerValidationBridge.d.ts +51 -0
  26. package/dist/components/MonthPicker/MonthPicker.d.ts +23 -23
  27. package/dist/components/MonthPicker/MonthPickerText/MonthPickerInput.d.ts +23 -23
  28. package/dist/components/NirField/NirField.d.ts +56 -56
  29. package/dist/components/PasswordField/PasswordField.d.ts +3 -3
  30. package/dist/components/PeriodField/PeriodField.d.ts +236 -212
  31. package/dist/components/PhoneField/PhoneField.d.ts +23 -23
  32. package/dist/components/SyTextArea/SyTextArea.d.ts +25 -15
  33. package/dist/components/SyTextArea/composables/useSyTextAreaValidation.d.ts +20 -0
  34. package/dist/components/SyTextArea/locales.d.ts +1 -0
  35. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +1 -0
  36. package/dist/components/Tables/SyTable/SyTable.d.ts +1 -0
  37. package/dist/components/Tables/common/SyTablePagination.d.ts +25 -25
  38. package/dist/components/Tables/common/types.d.ts +2 -0
  39. package/dist/components/index.d.ts +1 -0
  40. package/dist/composables/unifyValidation/documentationValidationProps.d.ts +160 -160
  41. package/dist/composables/unifyValidation/useValidation.d.ts +16 -14
  42. package/dist/design-system-v3.js +81 -80
  43. package/dist/designTokens/tokens/amelipro/apContextual.d.ts +6 -6
  44. package/dist/designTokens/tokens/amelipro/apDarkTheme.d.ts +3 -1
  45. package/dist/designTokens/tokens/amelipro/apLightTheme.d.ts +53 -100
  46. package/dist/designTokens/tokens/baseContextualTokens.d.ts +0 -6
  47. package/dist/designTokens/tokens/baseTokens.d.ts +232 -0
  48. package/dist/designTokens/tokens/cnam/cnamContextual.d.ts +6 -6
  49. package/dist/designTokens/tokens/cnam/cnamDarkTheme.d.ts +1 -1
  50. package/dist/designTokens/tokens/cnam/cnamLightTheme.d.ts +57 -101
  51. package/dist/designTokens/tokens/pa/paContextual.d.ts +0 -6
  52. package/dist/designTokens/tokens/pa/paDarkTheme.d.ts +1 -1
  53. package/dist/designTokens/tokens/pa/paLightTheme.d.ts +53 -97
  54. package/dist/designTokens/tokens/pa/paSemantic.d.ts +1 -0
  55. package/dist/designTokens/tokens/semanticTokens.d.ts +112 -0
  56. package/dist/main-CI6Q9nmO.js +39234 -0
  57. package/dist/synapse.css +1 -1
  58. package/dist/vuetifyConfig.js +208 -72
  59. package/package.json +4 -2
  60. package/src/assets/overrides/_icons.scss +5 -4
  61. package/src/assets/overrides/_otp.scss +4 -4
  62. package/src/assets/overrides/_typography.scss +2 -1
  63. package/src/assets/overrides/_utilities.scss +1 -42
  64. package/src/components/ChipList/ChipList.vue +30 -18
  65. package/src/components/ChipList/tests/chipList.spec.ts +4 -4
  66. package/src/components/CopyBtn/CopyBtn.vue +2 -2
  67. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.stories.ts +4 -0
  68. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.vue +7 -6
  69. package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.spec.ts +223 -0
  70. package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.stories.ts +283 -351
  71. package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.vue +182 -218
  72. package/src/components/Customs/Selects/SyAutocomplete/composables/useSyAutocompleteValidation.ts +101 -0
  73. package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.spec.ts +761 -1
  74. package/src/components/Customs/Selects/SyAutocomplete/utils/ariaManager.ts +3 -1
  75. package/src/components/Customs/Selects/SyAutocomplete/utils/useKeyboardHandler.ts +79 -5
  76. package/src/components/Customs/Selects/SyAutocomplete/validation/Validation.stories.ts +1029 -0
  77. package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +9 -491
  78. package/src/components/Customs/Selects/SySelect/SySelect.vue +46 -79
  79. package/src/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.ts +3 -0
  80. package/src/components/Customs/Selects/SySelect/composables/useSySelectValidation.ts +64 -0
  81. package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +196 -0
  82. package/src/components/Customs/Selects/SySelect/validation/Validation.stories.ts +1026 -0
  83. package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.stories.ts +18 -7
  84. package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.vue +2 -2
  85. package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +8 -8
  86. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +8 -8
  87. package/src/components/Customs/SyCheckbox/tests/SyCheckbox.spec.ts +1 -1
  88. package/src/components/Customs/SyIcon/accessibilite/Accessibility.mdx +0 -6
  89. package/src/components/Customs/SyIcon/utils/tests/iconUtils.spec.ts +107 -0
  90. package/src/components/Customs/SyRadioGroup/SyRadioGroup.mdx +2 -2
  91. package/src/components/Customs/SyRadioGroup/SyRadioGroup.stories.ts +395 -200
  92. package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +82 -127
  93. package/src/components/Customs/SyRadioGroup/composables/useSyRadioGroupValidation.ts +127 -0
  94. package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.a11y.spec.ts +93 -1
  95. package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.spec.ts +146 -9
  96. package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.visual.cy.ts +165 -0
  97. package/src/components/Customs/SyRadioGroup/validation/Validation.stories.ts +773 -0
  98. package/src/components/Customs/SyTabs/config.ts +3 -3
  99. package/src/components/Customs/SyTabs/tests/SyTabs.spec.ts +265 -0
  100. package/src/components/Customs/SyTabs/tests/useTabTransition.spec.ts +188 -0
  101. package/src/components/Customs/SyTextField/SyTextField.stories.ts +10 -29
  102. package/src/components/Customs/SyTextField/SyTextField.vue +23 -15
  103. package/src/components/DataList/DataList.stories.ts +1 -1
  104. package/src/components/DataListItem/tests/DataListItem.spec.ts +3 -1
  105. package/src/components/DatePicker/CalendarMode/DatePicker.vue +37 -142
  106. package/src/components/DatePicker/CalendarMode/tests/DatePicker.coverage.spec.ts +156 -0
  107. package/src/components/DatePicker/CalendarMode/tests/DatePicker.spec.ts +495 -4
  108. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +47 -66
  109. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +206 -0
  110. package/src/components/DatePicker/ComplexDatePicker/tests/bridge-integration.regression.spec.ts +210 -0
  111. package/src/components/DatePicker/ComplexDatePicker/tests/calendar-navigation.regression.spec.ts +214 -0
  112. package/src/components/DatePicker/ComplexDatePicker/tests/validation-cross.regression.spec.ts +194 -0
  113. package/src/components/DatePicker/ComplexDatePicker/tests/validation-success-messages.regression.spec.ts +83 -0
  114. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +129 -54
  115. package/src/components/DatePicker/DateTextInput/tests/DateTextInput.spec.ts +320 -0
  116. package/src/components/DatePicker/composables/index.ts +1 -0
  117. package/src/components/DatePicker/composables/tests/useCalendarKeyboardNavigation.spec.ts +360 -0
  118. package/src/components/DatePicker/composables/tests/useDatePickerValidationBridge.spec.ts +129 -0
  119. package/src/components/DatePicker/composables/useDatePickerValidationBridge.ts +205 -0
  120. package/src/components/DatePicker/docExamples/BidirectionalComplexValidation.vue +1 -1
  121. package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +1 -1
  122. package/src/components/DatePicker/tests/exposed-methods.coverage.spec.ts +75 -0
  123. package/src/components/DialogBox/DialogBox.vue +1 -1
  124. package/src/components/FileList/UploadItem/UploadItem.vue +4 -4
  125. package/src/components/FileUpload/FileUpload.vue +2 -2
  126. package/src/components/FileUpload/FileUploadContent.vue +1 -1
  127. package/src/components/FilterInline/FilterInline.mdx +2 -2
  128. package/src/components/FilterSideBar/FilterSideBar.stories.ts +1 -1
  129. package/src/components/FilterSideBar/FilterSideBar.vue +2 -2
  130. package/src/components/FooterBar/FooterBar.vue +7 -7
  131. package/src/components/FranceConnectBtn/FranceConnectBtn.vue +1 -1
  132. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/HeaderMenuItem.vue +2 -2
  133. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.vue +7 -7
  134. package/src/components/HeaderBar/HeaderMenuBtn/HeaderMenuBtn.vue +2 -2
  135. package/src/components/HeaderLoading/tests/HeaderLoading.spec.ts +87 -8
  136. package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +3 -3
  137. package/src/components/HeaderNavigationBar/HorizontalNavbar/tests/HorizontalNavbar.spec.ts +589 -0
  138. package/src/components/HeaderToolbar/tests/HeaderToolBar.spec.ts +153 -1
  139. package/src/components/HeaderToolbar/tests/useMobileRightMenu.spec.ts +258 -0
  140. package/src/components/LogoBrandSection/tests/LogoBrandSection.spec.ts +2 -2
  141. package/src/components/LogoBrandSection/tests/__snapshots__/LogoBrandSection.spec.ts.snap +1 -1
  142. package/src/components/LunarCalendar/tests/useLunarCalendarRules.spec.ts +184 -0
  143. package/src/components/MonthPicker/MonthPickerVisual/MonthSelector.vue +3 -3
  144. package/src/components/MonthPicker/MonthPickerVisual/VisualPickerFooter.vue +1 -1
  145. package/src/components/MonthPicker/MonthPickerVisual/VisualPickerHeader.vue +2 -2
  146. package/src/components/MonthPicker/MonthPickerVisual/YearSelector.vue +1 -1
  147. package/src/components/NirField/NirField.vue +3 -3
  148. package/src/components/NotificationBar/Notification/Notification.vue +12 -12
  149. package/src/components/NotificationBar/NotificationBar.stories.ts +8 -8
  150. package/src/components/PaginatedTable/Pagination.vue +2 -2
  151. package/src/components/PasswordField/PasswordField.vue +8 -8
  152. package/src/components/PasswordField/tests/PasswordField.spec.ts +3 -3
  153. package/src/components/RangeField/RangeSlider/RangeSlider.vue +2 -2
  154. package/src/components/RangeField/RangeSlider/Tooltip/Tooltip.vue +1 -1
  155. package/src/components/StatusPage/tests/StatusPage.spec.ts +149 -0
  156. package/src/components/SubHeader/SubHeader.vue +1 -1
  157. package/src/components/SyAlert/SyAlert.vue +23 -23
  158. package/src/components/SyTextArea/SyTextArea.stories.ts +177 -131
  159. package/src/components/SyTextArea/SyTextArea.vue +235 -83
  160. package/src/components/SyTextArea/composables/useSyTextAreaValidation.ts +81 -0
  161. package/src/components/SyTextArea/locales.ts +1 -0
  162. package/src/components/SyTextArea/tests/SyTextArea.spec.ts +449 -1
  163. package/src/components/SyTextArea/useDefaultValidationRules.ts +2 -7
  164. package/src/components/SyTextArea/validation/Validation.stories.ts +856 -0
  165. package/src/components/TableToolbar/TableToolbar.vue +6 -6
  166. package/src/components/TableToolbar/accessibilite/Accessibility.mdx +81 -7
  167. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +163 -0
  168. package/src/components/Tables/SyServerTable/SyServerTable.vue +2 -1
  169. package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +67 -0
  170. package/src/components/Tables/SyTable/SyTable.stories.ts +94 -0
  171. package/src/components/Tables/SyTable/SyTable.vue +2 -1
  172. package/src/components/Tables/SyTable/tests/SyTable.spec.ts +64 -0
  173. package/src/components/Tables/common/TableHeader.vue +2 -2
  174. package/src/components/Tables/common/filters/logics/tests/NumberFilterLogic.spec.ts +176 -0
  175. package/src/components/Tables/common/filters/logics/tests/SelectFilterLogic.spec.ts +111 -0
  176. package/src/components/Tables/common/tableStyles.scss +6 -6
  177. package/src/components/Tables/common/types.ts +2 -0
  178. package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +2 -0
  179. package/src/components/index.ts +1 -0
  180. package/src/composables/date/tests/useDateFormatDayjs.spec.ts +31 -0
  181. package/src/composables/date/tests/useHolidayDay.spec.ts +109 -0
  182. package/src/composables/rules/tests/useFieldValidation.spec.ts +374 -0
  183. package/src/composables/tests/useError.spec.ts +30 -0
  184. package/src/composables/tests/useFormFieldErrorHandling.spec.ts +234 -0
  185. package/src/composables/unifyValidation/documentationValidationProps.ts +5 -5
  186. package/src/composables/unifyValidation/tests/documentationValidationProps.spec.ts +177 -0
  187. package/src/composables/unifyValidation/tests/useCustomValidation.spec.ts +30 -0
  188. package/src/composables/unifyValidation/tests/useValidation.spec.ts +6 -2
  189. package/src/composables/unifyValidation/useCustomValidation.ts +19 -9
  190. package/src/composables/unifyValidation/useValidation.ts +18 -21
  191. package/src/composables/useFilterable/useFilterable.spec.ts +42 -0
  192. package/src/composables/useFilterable/useFilterable.ts +11 -7
  193. package/src/composables/useFormFieldErrorHandling.ts +2 -2
  194. package/src/composantsVuetify/VBtn/VBtn.mdx +9 -39
  195. package/src/composantsVuetify/VBtn/v-btn.stories.ts +26 -86
  196. package/src/designTokens/tokens/amelipro/apContextual.ts +6 -0
  197. package/src/designTokens/tokens/amelipro/apDarkTheme.ts +2 -2
  198. package/src/designTokens/tokens/amelipro/apLightTheme.ts +72 -103
  199. package/src/designTokens/tokens/amelipro/apSemantic.ts +1 -1
  200. package/src/designTokens/tokens/baseContextualTokens.ts +1 -6
  201. package/src/designTokens/tokens/baseTokens.ts +232 -0
  202. package/src/designTokens/tokens/cnam/cnamContextual.ts +6 -0
  203. package/src/designTokens/tokens/cnam/cnamDarkTheme.ts +2 -2
  204. package/src/designTokens/tokens/cnam/cnamLightTheme.ts +76 -104
  205. package/src/designTokens/tokens/pa/paDarkTheme.ts +2 -2
  206. package/src/designTokens/tokens/pa/paLightTheme.ts +73 -99
  207. package/src/designTokens/tokens/pa/paSemantic.ts +2 -0
  208. package/src/designTokens/tokens/semanticTokens.ts +114 -0
  209. package/src/stories/Components/Components.stories.ts +7 -3
  210. package/src/stories/DesignTokens/ColorIntegrationExample.vue +2 -3
  211. package/src/stories/DesignTokens/Colors.mdx +6 -8
  212. package/src/stories/DesignTokens/colors.stories.ts +244 -1081
  213. package/src/utils/amelipro/toKebabCase/tests/toKebabCase.spec.ts +52 -0
  214. package/src/utils/formatNir/tests/formatNir.spec.ts +34 -0
  215. package/src/utils/tests/insertAt.spec.ts +44 -0
  216. package/dist/apLightTheme-DS0Uy44H.js +0 -954
  217. package/dist/components/RatingPicker/tests/RatingPicker.a11y.spect.d.ts +0 -1
  218. package/dist/main-BsJ9ec3i.js +0 -38954
  219. package/src/components/BackBtn/tests/__snapshots__/back-btn-custom-bg.snap.png +0 -0
  220. package/src/components/BackBtn/tests/__snapshots__/back-btn-dark-mode.snap.png +0 -0
  221. package/src/components/BackBtn/tests/__snapshots__/back-btn-default.snap.png +0 -0
  222. package/src/components/BackBtn/tests/__snapshots__/back-btn-no-icon.snap.png +0 -0
  223. package/src/components/DatePicker/CalendarMode/tests/DatePicker.events.spec.ts +0 -178
  224. package/src/components/DialogBox/tests/__snapshots__/dialog-box-custom-texts.snap.png +0 -0
  225. package/src/components/DialogBox/tests/__snapshots__/dialog-box-default.snap.png +0 -0
  226. package/src/components/DialogBox/tests/__snapshots__/dialog-box-no-actions.snap.png +0 -0
  227. package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/header-burger-menu-generated-submenu-open.snap.png +0 -0
  228. package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/header-burger-menu-generated.snap.png +0 -0
  229. package/src/components/HeaderBar/tests/__snapshots__/header-bar-custom-width.snap.png +0 -0
  230. package/src/components/HeaderBar/tests/__snapshots__/header-bar-default.snap.png +0 -0
  231. package/src/components/HeaderBar/tests/__snapshots__/header-bar-no-sticky.snap.png +0 -0
  232. package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-prepend.snap.png +0 -0
  233. package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-side.snap.png +0 -0
  234. package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-subtitle.snap.png +0 -0
  235. package/src/components/Logo/tests/__snapshots__/logo-avatar.snap.png +0 -0
  236. package/src/components/Logo/tests/__snapshots__/logo-dark.snap.png +0 -0
  237. package/src/components/Logo/tests/__snapshots__/logo-default.snap.png +0 -0
  238. package/src/components/Logo/tests/__snapshots__/logo-no-organism.snap.png +0 -0
  239. package/src/components/Logo/tests/__snapshots__/logo-no-signature.snap.png +0 -0
  240. package/src/components/Logo/tests/__snapshots__/logo-risque-pro.snap.png +0 -0
  241. package/src/components/RangeField/tests/__snapshots__/range-field-custom-bg.snap.png +0 -0
  242. package/src/components/RangeField/tests/__snapshots__/range-field-custom-range.snap.png +0 -0
  243. package/src/components/RangeField/tests/__snapshots__/range-field-default.snap.png +0 -0
  244. package/src/components/RangeField/tests/__snapshots__/range-field-step.snap.png +0 -0
  245. package/src/components/RangeField/tests/__snapshots__/range-field-with-label.snap.png +0 -0
  246. package/src/components/SyAlert/tests/__snapshots__/sy-alert-closable.snap.png +0 -0
  247. package/src/components/SyAlert/tests/__snapshots__/sy-alert-error.snap.png +0 -0
  248. package/src/components/SyAlert/tests/__snapshots__/sy-alert-info.snap.png +0 -0
  249. package/src/components/SyAlert/tests/__snapshots__/sy-alert-success.snap.png +0 -0
  250. package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-outlined.snap.png +0 -0
  251. package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-tonal.snap.png +0 -0
  252. package/src/components/SyAlert/tests/__snapshots__/sy-alert-warning.snap.png +0 -0
  253. /package/src/components/RatingPicker/tests/{RatingPicker.a11y.spect.ts → RatingPicker.a11y.spec.ts} +0 -0
@@ -1,9 +1,8 @@
1
1
  import type { Meta, StoryObj } from '@storybook/vue3'
2
2
  import SySelect from '@/components/Customs/Selects/SySelect/SySelect.vue'
3
3
  import SyAlert from '../../../SyAlert/SyAlert.vue'
4
- import SyForm from '../../SyForm/SyForm.vue'
5
4
  import { VBtn, VMenu, VList, VListItem, VListItemTitle } from 'vuetify/components'
6
- import { ref, onMounted } from 'vue'
5
+ import { ref } from 'vue'
7
6
  import { fn } from '@storybook/test'
8
7
  import { getValidationDocumentation } from '@/composables/unifyValidation/documentationValidationProps'
9
8
 
@@ -29,7 +28,7 @@ const meta: Meta<typeof SySelect> = {
29
28
  },
30
29
  allowHtml: {
31
30
  control: 'boolean',
32
- description: 'Permet d\'afficher du texte en HTML',
31
+ description: 'Permet d\'afficher le texte des options en HTML. À utiliser avec plainTextKey pour le filtrage en texte brut.',
33
32
  },
34
33
  valueKey: {
35
34
  control: 'text',
@@ -37,7 +36,7 @@ const meta: Meta<typeof SySelect> = {
37
36
  },
38
37
  returnObject: {
39
38
  control: 'boolean',
40
- description: 'Retourne l\'objet complet sélectionné',
39
+ description: 'Retourne l\'objet complet sélectionné au lieu de la seule valeur de valueKey.',
41
40
  },
42
41
  clearable: {
43
42
  control: 'boolean',
@@ -54,11 +53,12 @@ const meta: Meta<typeof SySelect> = {
54
53
  variantStyle: {
55
54
  control: 'select',
56
55
  options: ['outlined', 'plain', 'underlined', 'filled', 'solo', 'solo-inverted', 'solo-filled'],
56
+ description: 'Style visuel du champ. Par défaut le composant utilise le style outlined.',
57
57
  },
58
58
  color: {
59
59
  control: 'select',
60
60
  options: ['primary', 'secondary', 'success', 'error', 'warning'],
61
- description: 'Couleur du champ',
61
+ description: 'Couleur principale du champ (bordure et label au focus).',
62
62
  },
63
63
  density: {
64
64
  control: 'select',
@@ -71,18 +71,18 @@ const meta: Meta<typeof SySelect> = {
71
71
  },
72
72
  helpText: {
73
73
  control: 'text',
74
- description: 'Texte d\'aide à la saisie',
74
+ description: 'Texte d\'aide affiché sous le champ. Remplace les messages de validation si aucun n\'est présent, sinon s\'affiche en dessous.',
75
75
  },
76
76
  prependTooltip: {
77
- description: 'Si le texte du prepend tooltip est renseigné alors l\'icône du tooltip s\'affiche',
77
+ description: 'Texte du tooltip affiché au survol de l\'icône prepend. Si renseigné, l\'icône tooltip est automatiquement affichée.',
78
78
  control: 'text',
79
79
  },
80
80
  appendTooltip: {
81
- description: 'Si le texte du append tooltip est renseigné alors l\'icône du tooltip s\'affiche',
81
+ description: 'Texte du tooltip affiché au survol de l\'icône append. Si renseigné, l\'icône tooltip est automatiquement affichée.',
82
82
  control: 'text',
83
83
  },
84
84
  tooltipLocation: {
85
- description: 'Position des tooltips',
85
+ description: 'Position des tooltips des icônes prepend et append.',
86
86
  control: 'select',
87
87
  options: ['top', 'bottom', 'start', 'end'],
88
88
  default: 'top',
@@ -393,273 +393,6 @@ const items = [
393
393
  },
394
394
  }
395
395
 
396
- export const WithError: Story = {
397
- parameters: {
398
- docs: {
399
- description: {
400
- story: '« Option 1 » est présélectionnée et déclenche une erreur bloquante au chargement.',
401
- },
402
- },
403
- sourceCode: [
404
- {
405
- name: 'Template',
406
- code: `
407
- <template>
408
- <SySelect
409
- ref="selectRef"
410
- v-model="value"
411
- :items="items"
412
- label="Option"
413
- :customRules="[
414
- {
415
- type: 'custom',
416
- options: {
417
- validate: (v) => v !== '1',
418
- message: 'Option 1 n\\'est pas autorisée, choisissez Option 2 ou 3.'
419
- }
420
- }
421
- ]"
422
- />
423
- </template>`,
424
- },
425
- {
426
- name: 'Script',
427
- code: `
428
- <script setup lang="ts">
429
- import { onMounted, ref } from 'vue'
430
- import { SySelect } from '@cnamts/synapse'
431
- const value = ref('1')
432
- const items = [
433
- { text: 'Option 1', value: '1' },
434
- { text: 'Option 2', value: '2' },
435
- { text: 'Option 3', value: '3' },
436
- ]
437
-
438
- const selectRef = ref(null)
439
-
440
- onMounted(() => {
441
- selectRef.value?.validateOnSubmit()
442
- })
443
- </script>`,
444
- },
445
- ],
446
- },
447
- args: {
448
- 'items': [
449
- { text: 'Option 1', value: '1' },
450
- { text: 'Option 2', value: '2' },
451
- { text: 'Option 3', value: '3' },
452
- ],
453
- 'label': 'Option',
454
- 'onUpdate:modelValue': fn(),
455
- },
456
- render: args => ({
457
- components: { SySelect },
458
- setup() {
459
- const value = ref('1')
460
- const selectRef = ref<{ validateOnSubmit: () => Promise<boolean> } | null>(null)
461
-
462
- onMounted(() => {
463
- selectRef.value?.validateOnSubmit()
464
- })
465
-
466
- return { args, value, selectRef }
467
- },
468
- template: `
469
- <div class="pa-4">
470
- <SySelect
471
- ref="selectRef"
472
- v-model="value"
473
- v-bind="args"
474
- :customRules="[
475
- {
476
- type: 'custom',
477
- options: {
478
- validate: (v) => v !== '1',
479
- message: 'Option 1 n\\'est pas autorisée, choisissez Option 2 ou 3.'
480
- }
481
- }
482
- ]"
483
- />
484
- </div>
485
- `,
486
- }),
487
- }
488
-
489
- export const WithWarning: Story = {
490
- parameters: {
491
- docs: {
492
- description: {
493
- story: '« Option 1 » est présélectionnée et déclenche un avertissement (non bloquant) au chargement.',
494
- },
495
- },
496
- sourceCode: [
497
- {
498
- name: 'Template',
499
- code: `
500
- <template>
501
- <SySelect
502
- v-model="value"
503
- :items="items"
504
- label="Option"
505
- :customWarningRules="[
506
- {
507
- type: 'custom',
508
- options: {
509
- validate: (v) => v !== '1',
510
- message: 'Option 1 est dépréciée, préférez Option 2 ou 3.'
511
- }
512
- }
513
- ]"
514
- />
515
- </template>`,
516
- },
517
- {
518
- name: 'Script',
519
- code: `
520
- <script setup lang="ts">
521
- import { ref } from 'vue'
522
- import { SySelect } from '@cnamts/synapse'
523
- const value = ref(null)
524
- const items = [
525
- { text: 'Option 1', value: '1' },
526
- { text: 'Option 2', value: '2' },
527
- { text: 'Option 3', value: '3' },
528
- ]
529
- </script>`,
530
- },
531
- ],
532
- },
533
- args: {
534
- 'items': [
535
- { text: 'Option 1', value: '1' },
536
- { text: 'Option 2', value: '2' },
537
- { text: 'Option 3', value: '3' },
538
- ],
539
- 'label': 'Option',
540
- 'onUpdate:modelValue': fn(),
541
- },
542
- render: args => ({
543
- components: { SySelect },
544
- setup() {
545
- const value = ref('1')
546
- const selectRef = ref<{ validateOnSubmit: () => Promise<boolean> } | null>(null)
547
-
548
- onMounted(() => {
549
- selectRef.value?.validateOnSubmit()
550
- })
551
-
552
- return { args, value, selectRef }
553
- },
554
- template: `
555
- <div class="pa-4">
556
- <SySelect
557
- ref="selectRef"
558
- v-model="value"
559
- v-bind="args"
560
- :customWarningRules="[
561
- {
562
- type: 'custom',
563
- options: {
564
- validate: (v) => v !== '1',
565
- message: 'Option 1 est dépréciée, préférez Option 2 ou 3.'
566
- }
567
- }
568
- ]"
569
- />
570
- </div>
571
- `,
572
- }),
573
- }
574
-
575
- export const WithSuccess: Story = {
576
- parameters: {
577
- docs: {
578
- description: {
579
- story: 'Une option est présélectionnée et déclenche la confirmation de succès au chargement.',
580
- },
581
- },
582
- sourceCode: [
583
- {
584
- name: 'Template',
585
- code: `
586
- <template>
587
- <SySelect
588
- v-model="value"
589
- :items="items"
590
- label="Option"
591
- show-success-messages
592
- :customSuccessRules="[
593
- {
594
- type: 'custom',
595
- options: {
596
- validate: (v) => v !== null && v !== undefined,
597
- message: 'Option sélectionnée avec succès.'
598
- }
599
- }
600
- ]"
601
- />
602
- </template>`,
603
- },
604
- {
605
- name: 'Script',
606
- code: `
607
- <script setup lang="ts">
608
- import { ref } from 'vue'
609
- import { SySelect } from '@cnamts/synapse'
610
- const value = ref(null)
611
- const items = [
612
- { text: 'Option 1', value: '1' },
613
- { text: 'Option 2', value: '2' },
614
- { text: 'Option 3', value: '3' },
615
- ]
616
- </script>`,
617
- },
618
- ],
619
- },
620
- args: {
621
- 'items': [
622
- { text: 'Option 1', value: '1' },
623
- { text: 'Option 2', value: '2' },
624
- { text: 'Option 3', value: '3' },
625
- ],
626
- 'label': 'Option',
627
- 'showSuccessMessages': true,
628
- 'onUpdate:modelValue': fn(),
629
- },
630
- render: args => ({
631
- components: { SySelect },
632
- setup() {
633
- const value = ref('1')
634
- const selectRef = ref<{ validateOnSubmit: () => Promise<boolean> } | null>(null)
635
-
636
- onMounted(() => {
637
- selectRef.value?.validateOnSubmit()
638
- })
639
-
640
- return { args, value, selectRef }
641
- },
642
- template: `
643
- <div class="pa-4">
644
- <SySelect
645
- ref="selectRef"
646
- v-model="value"
647
- v-bind="args"
648
- :customSuccessRules="[
649
- {
650
- type: 'custom',
651
- options: {
652
- validate: (v) => v !== null && v !== undefined,
653
- message: 'Option sélectionnée avec succès.'
654
- }
655
- }
656
- ]"
657
- />
658
- </div>
659
- `,
660
- }),
661
- }
662
-
663
396
  export const SlotPrepend: Story = {
664
397
  parameters: {
665
398
  sourceCode: [
@@ -1113,218 +846,3 @@ export const Info: Story = {
1113
846
  },
1114
847
  tags: ['!dev'],
1115
848
  }
1116
-
1117
- export const FormValidation: Story = {
1118
- parameters: {
1119
- docs: {
1120
- description: {
1121
- story: 'Exemple d\'utilisation du SySelect dans un formulaire.',
1122
- },
1123
- },
1124
- sourceCode: [
1125
- {
1126
- name: 'Template',
1127
- code: `
1128
- <template>
1129
- <SyForm @submit="onSubmit">
1130
- <SySelect
1131
- v-model="formData.option"
1132
- :items="options"
1133
- label="Option"
1134
- required
1135
- display-asterisk
1136
- class="mb-4"
1137
- />
1138
- <VBtn
1139
- type="submit"
1140
- color="primary"
1141
- class="mt-4"
1142
- >
1143
- Soumettre
1144
- </VBtn>
1145
- </SyForm>
1146
- </template>
1147
- `,
1148
- },
1149
- {
1150
- name: 'Script',
1151
- code: `
1152
- <script setup lang="ts">
1153
- import { ref } from 'vue'
1154
- import { SySelect, SyForm } from '@cnamts/synapse'
1155
- import { VBtn } from 'vuetify/components'
1156
-
1157
- const formData = ref({
1158
- option: ''
1159
- })
1160
-
1161
- const options = [
1162
- { text: 'Option 1', value: '1' },
1163
- { text: 'Option 2', value: '2' },
1164
- { text: 'Option 3', value: '3' },
1165
- ]
1166
-
1167
- const onSubmit = (event) => {
1168
- if (event.isValid) {
1169
- alert('Formulaire valide : ' + JSON.stringify(formData.value))
1170
- } else {
1171
- alert('Formulaire invalide : veuillez choisir une option.')
1172
- }
1173
- }
1174
- </script>
1175
- `,
1176
- },
1177
- ],
1178
- },
1179
- args: {
1180
- 'items': [
1181
- { text: 'Option 1', value: '1' },
1182
- { text: 'Option 2', value: '2' },
1183
- { text: 'Option 3', value: '3' },
1184
- ],
1185
- 'label': 'Option',
1186
- 'required': true,
1187
- 'displayAsterisk': true,
1188
- 'onUpdate:modelValue': fn(),
1189
- },
1190
- render: (args) => {
1191
- return {
1192
- components: { SySelect, SyForm, VBtn },
1193
- setup() {
1194
- const formData = ref({
1195
- option: '',
1196
- })
1197
-
1198
- const onSubmit = (event: { isValid: boolean }) => {
1199
- if (event.isValid) {
1200
- alert(`Formulaire valide : ${JSON.stringify(formData.value)}`)
1201
- }
1202
- else {
1203
- alert('Formulaire invalide : veuillez choisir une option.')
1204
- }
1205
- }
1206
-
1207
- return { args, formData, onSubmit }
1208
- },
1209
- template: `
1210
- <div class="pa-4">
1211
- <SyForm @submit="onSubmit">
1212
- <SySelect
1213
- v-model="formData.option"
1214
- v-bind="args"
1215
- class="mb-4"
1216
- />
1217
- <VBtn
1218
- type="submit"
1219
- color="primary"
1220
- class="mt-4"
1221
- >
1222
- Soumettre
1223
- </VBtn>
1224
- </SyForm>
1225
- </div>
1226
- `,
1227
- }
1228
- },
1229
- }
1230
-
1231
- export const VuetifyValidation: Story = {
1232
- parameters: {
1233
- docs: {
1234
- description: {
1235
- story: 'Exemple d\'utilisation de la validation native Vuetify via la prop `useVuetifyValidation`. Les règles sont définies au format Vuetify : des fonctions retournant `true` ou un message d\'erreur. Soumettez le formulaire pour déclencher la validation.',
1236
- },
1237
- },
1238
- sourceCode: [
1239
- {
1240
- name: 'Template',
1241
- code: `
1242
- <template>
1243
- <SyForm @submit="onSubmit">
1244
- <SySelect
1245
- v-model="value"
1246
- :items="items"
1247
- label="Option"
1248
- use-vuetify-validation
1249
- :show-success-messages="false"
1250
- :rules="[v => !!v || 'Ce champ est requis']"
1251
- />
1252
- <VBtn type="submit" color="primary" class="mt-4">
1253
- Soumettre
1254
- </VBtn>
1255
- </SyForm>
1256
- </template>`,
1257
- },
1258
- {
1259
- name: 'Script',
1260
- code: `
1261
- <script setup lang="ts">
1262
- import { ref } from 'vue'
1263
- import { SySelect, SyForm } from '@cnamts/synapse'
1264
- import { VBtn } from 'vuetify/components'
1265
-
1266
- const value = ref(null)
1267
- const items = [
1268
- { text: 'Option 1', value: '1' },
1269
- { text: 'Option 2', value: '2' },
1270
- { text: 'Option 3', value: '3' },
1271
- ]
1272
-
1273
- function onSubmit(event: { isValid: boolean }) {
1274
- if (event.isValid) {
1275
- alert('Formulaire valide : ' + value.value)
1276
- } else {
1277
- alert('Formulaire invalide : veuillez choisir une option.')
1278
- }
1279
- }
1280
- </script>`,
1281
- },
1282
- ],
1283
- },
1284
- args: {
1285
- 'items': [
1286
- { text: 'Option 1', value: '1' },
1287
- { text: 'Option 2', value: '2' },
1288
- { text: 'Option 3', value: '3' },
1289
- ],
1290
- 'label': 'Option',
1291
- 'useVuetifyValidation': true,
1292
- 'showSuccessMessages': false,
1293
- 'onUpdate:modelValue': fn(),
1294
- },
1295
- render: args => ({
1296
- components: { SySelect, SyForm, VBtn },
1297
- setup() {
1298
- const value = ref(null)
1299
-
1300
- function onSubmit(event: { isValid: boolean }) {
1301
- if (event.isValid) {
1302
- alert(`Formulaire valide : ${value.value}`)
1303
- }
1304
- else {
1305
- alert('Formulaire invalide : veuillez choisir une option.')
1306
- }
1307
- }
1308
-
1309
- return { args, value, onSubmit }
1310
- },
1311
- template: `
1312
- <div class="pa-4">
1313
- <SyForm @submit="onSubmit">
1314
- <SySelect
1315
- v-model="value"
1316
- v-bind="args"
1317
- :rules="[v => !!v || 'Ce champ est requis']"
1318
- />
1319
- <VBtn
1320
- type="submit"
1321
- color="primary"
1322
- class="mt-4"
1323
- >
1324
- Soumettre
1325
- </VBtn>
1326
- </SyForm>
1327
- </div>
1328
- `,
1329
- }),
1330
- }