@cnamts/synapse 1.0.20 → 1.0.22

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 (414) hide show
  1. package/dist/{DateFilter-XURUmpMl.js → DateFilter-B5n-ZkLi.js} +29 -24
  2. package/dist/{NumberFilter-BZc0O8wV.js → NumberFilter-CtiZ9uj8.js} +1 -1
  3. package/dist/{PeriodFilter-ZNdXcl3p.js → PeriodFilter-DzqiMb-b.js} +1 -1
  4. package/dist/{SelectFilter-DshYU5OK.js → SelectFilter-BOYlF7rX.js} +1 -1
  5. package/dist/{TextFilter-D_c5dRPl.js → TextFilter-BOFRNfcX.js} +1 -1
  6. package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +7399 -5967
  7. package/dist/components/Amelipro/AmeliproBtn/AmeliproBtn.d.ts +1 -1
  8. package/dist/components/Amelipro/AmeliproCallback/AmeliproCallback.d.ts +1 -1
  9. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarousel.d.ts +10 -14
  10. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarouselItem/AmeliproCarouselItem.d.ts +1 -1
  11. package/dist/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.d.ts +1 -1
  12. package/dist/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.d.ts +1 -1
  13. package/dist/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.d.ts +1 -1
  14. package/dist/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.d.ts +1 -1
  15. package/dist/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.d.ts +1 -1
  16. package/dist/components/Amelipro/AmeliproFooter/AmeliproFooter.d.ts +8 -8
  17. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeader.d.ts +3 -3
  18. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBar.d.ts +1 -1
  19. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/AmeliproHeaderBrandSection.d.ts +1 -1
  20. package/dist/components/Amelipro/AmeliproIcon/AmeliproIcon.d.ts +1 -1
  21. package/dist/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.d.ts +16 -20
  22. package/dist/components/Amelipro/AmeliproMenu/AmeliproMenu.d.ts +1 -1
  23. package/dist/components/Amelipro/AmeliproPagination/AmeliproPaginationBtn/AmeliproPaginationBtn.d.ts +1 -1
  24. package/dist/components/Amelipro/AmeliproPatientBanner/AmeliproPatientBanner.d.ts +1 -1
  25. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.d.ts +1610 -1354
  26. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.d.ts +2411 -2027
  27. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +8889 -7327
  28. package/dist/components/Amelipro/AmeliproStateTile/AmeliproStateTile.d.ts +1 -1
  29. package/dist/components/Amelipro/AmeliproStepper/AmeliproStepper.d.ts +2 -6
  30. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +8888 -7334
  31. package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +951 -839
  32. package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +1613 -1357
  33. package/dist/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.d.ts +223 -203
  34. package/dist/components/Amelipro/AmeliproTransmission/AmeliproTransmission.d.ts +3 -3
  35. package/dist/components/Amelipro/StructureMenu/StructureTabs/StructureTabs.d.ts +3 -7
  36. package/dist/components/CollapsibleList/CollapsibleList.d.ts +4 -1
  37. package/dist/components/CookieBanner/CookieBanner.d.ts +303 -273
  38. package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +1297 -1156
  39. package/dist/components/CookiesSelection/CookiesSelection.d.ts +404 -377
  40. package/dist/components/Customs/Selects/SelectBtnField/SelectBtnField.d.ts +1 -1
  41. package/dist/components/Customs/Selects/SyAutocomplete/SyAutocomplete.d.ts +1088 -847
  42. package/dist/components/Customs/Selects/SyInputSelect/SyInputSelect.d.ts +1 -1
  43. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +515 -321
  44. package/dist/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.d.ts +162 -0
  45. package/dist/components/Customs/SyCheckBoxGroup/locales.d.ts +3 -0
  46. package/dist/components/Customs/SyCheckBoxGroup/types.d.ts +10 -0
  47. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +1668 -5
  48. package/dist/components/Customs/SyForm/SyForm.d.ts +356 -348
  49. package/dist/components/Customs/SyPagination/SyPagination.d.ts +11 -1
  50. package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +1609 -4
  51. package/dist/components/Customs/SyTextField/SyTextField.d.ts +1629 -1365
  52. package/dist/components/DataList/DataList.d.ts +1 -1
  53. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +3868 -3123
  54. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +1946 -1562
  55. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +833 -687
  56. package/dist/components/DeclarationAccessibilityPage/DeclarationAccessibilityPage.d.ts +60 -0
  57. package/dist/components/DialogBox/DialogBox.d.ts +482 -416
  58. package/dist/components/DownloadBtn/config.d.ts +1 -1
  59. package/dist/components/ErrorPage/ErrorPage.d.ts +5 -12
  60. package/dist/components/ErrorPage/locales.d.ts +18 -3
  61. package/dist/components/FileList/UploadItem/locales.d.ts +4 -0
  62. package/dist/components/FileUpload/FileUpload.d.ts +6 -4
  63. package/dist/components/FileUpload/locales.d.ts +1 -0
  64. package/dist/components/FilterSideBar/FilterSideBar.d.ts +418 -366
  65. package/dist/components/FooterBar/FooterBar.d.ts +13 -1
  66. package/dist/components/FooterBar/locales.d.ts +1 -0
  67. package/dist/components/FooterBar/types.d.ts +1 -0
  68. package/dist/components/HeaderBar/HeaderBar.d.ts +1 -0
  69. package/dist/components/HeaderBar/HeaderLogo/HeaderLogo.d.ts +1 -0
  70. package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +3 -6
  71. package/dist/components/HeaderToolbar/HeaderToolbar.d.ts +1031 -643
  72. package/dist/components/LangBtn/LangBtn.d.ts +277 -239
  73. package/dist/components/LogoBrandSection/LogoBrandSection.d.ts +4 -0
  74. package/dist/components/MaintenancePage/MaintenancePage.d.ts +16 -1
  75. package/dist/components/MaintenancePage/locales.d.ts +18 -2
  76. package/dist/components/NirField/NirField.d.ts +1659 -1371
  77. package/dist/components/NotFoundPage/NotFoundPage.d.ts +9 -3
  78. package/dist/components/NotFoundPage/locales.d.ts +20 -4
  79. package/dist/components/PageContainer/PageContainer.d.ts +3 -1
  80. package/dist/components/PasswordField/PasswordField.d.ts +1 -1
  81. package/dist/components/PeriodField/PeriodField.d.ts +7712 -6216
  82. package/dist/components/PhoneField/PhoneField.d.ts +831 -687
  83. package/dist/components/RangeField/RangeSlider/RangeSlider.d.ts +4 -12
  84. package/dist/components/StatusPage/StatusPage.d.ts +50 -0
  85. package/dist/components/SubHeader/SubHeader.d.ts +2 -0
  86. package/dist/components/SyAlert/SyAlert.d.ts +74 -70
  87. package/dist/components/SyBtnMenu/SyBtnMenu.d.ts +10 -1
  88. package/dist/components/SyHeading/SyHeading.d.ts +20 -0
  89. package/dist/components/SyTextArea/SyTextArea.d.ts +476 -420
  90. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +759 -468
  91. package/dist/components/Tables/SyTable/SyTable.d.ts +761 -470
  92. package/dist/components/Tables/common/SyTableFilter.d.ts +1 -1
  93. package/dist/components/Tables/common/SyTablePagination.d.ts +269 -170
  94. package/dist/components/Tables/common/filters/DateFilter.d.ts +10 -1
  95. package/dist/components/Tables/common/filters/NumberFilter.d.ts +1 -1
  96. package/dist/components/Tables/common/filters/PeriodFilter.d.ts +1 -1
  97. package/dist/components/Tables/common/filters/SelectFilter.d.ts +1 -1
  98. package/dist/components/Tables/common/filters/TextFilter.d.ts +1 -1
  99. package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +166 -138
  100. package/dist/components/Tables/common/types.d.ts +2 -0
  101. package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +35 -1212
  102. package/dist/components/UserMenuBtn/UserMenuBtn.d.ts +1 -0
  103. package/dist/components/index.d.ts +4 -0
  104. package/dist/components/types.d.ts +2 -0
  105. package/dist/design-system-v3.js +131 -127
  106. package/dist/design-system-v3.umd.cjs +274 -274
  107. package/dist/designTokens/tokens/amelipro/apLightTheme.d.ts +26 -14
  108. package/dist/designTokens/tokens/amelipro/apSemantic.d.ts +19 -13
  109. package/dist/designTokens/tokens/cnam/cnamLightTheme.d.ts +28 -15
  110. package/dist/designTokens/tokens/cnam/cnamSemantic.d.ts +20 -13
  111. package/dist/designTokens/tokens/pa/paLightTheme.d.ts +26 -15
  112. package/dist/designTokens/tokens/pa/paSemantic.d.ts +19 -13
  113. package/dist/main-CEl4J8_T.js +37241 -0
  114. package/dist/style.css +1 -1
  115. package/dist/utils/theme/index.d.ts +6 -0
  116. package/dist/vuetifyConfig.d.ts +14 -14
  117. package/package.json +16 -7
  118. package/src/assets/amelipro/img/logo-amelipro.svg +9 -0
  119. package/src/assets/apTokens.scss +53 -17
  120. package/src/assets/overrides/_icons.scss +12 -2
  121. package/src/assets/overrides/_tooltips.scss +5 -6
  122. package/src/assets/overrides/_typography.scss +17 -2
  123. package/src/assets/overrides/_utilities.scss +49 -3
  124. package/src/assets/tokens.scss +53 -17
  125. package/src/components/Accordion/accessibilite/Accessibility.mdx +5 -4
  126. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/AmeliproAccordionTemplate.vue +2 -2
  127. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/__tests__/__snapshots__/AmeliproAccordionTemplate.spec.ts.snap +0 -2
  128. package/src/components/Amelipro/AmeliproAccordionFrieze/AmeliproAccordionFrieze.vue +2 -2
  129. package/src/components/Amelipro/AmeliproAccordionFrieze/__tests__/__snapshots__/AmeliproAccordionFrieze.spec.ts.snap +14 -56
  130. package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.vue +1 -1
  131. package/src/components/Amelipro/AmeliproAccordionList/__tests__/__snapshots__/AmeliproAccordionList.spec.ts.snap +15 -23
  132. package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.vue +1 -1
  133. package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/__snapshots__/AmeliproAccordionResultList.spec.ts.snap +15 -3
  134. package/src/components/Amelipro/AmeliproCarousel/__tests__/__snapshots__/AmeliproCarousel.spec.ts.snap +0 -2
  135. package/src/components/Amelipro/AmeliproClickableTile/tests/__snapshots__/AmeliproClickableTile.spec.ts.snap +0 -98
  136. package/src/components/Amelipro/AmeliproContentLayout/AmeliproContentLayout.mdx +1 -1
  137. package/src/components/Amelipro/AmeliproContentLayout/AmeliproContentLayout.stories.ts +5 -16
  138. package/src/components/Amelipro/AmeliproCopyBtn/AmeliproCopyBtn.mdx +3 -1
  139. package/src/components/Amelipro/AmeliproCopyBtn/AmeliproCopyBtn.stories.ts +7 -0
  140. package/src/components/Amelipro/AmeliproDentalChart/AmeliproTooth/AmeliproTooth.vue +0 -1
  141. package/src/components/Amelipro/AmeliproDentalChart/AmeliproTooth/tests/__snapshots__/AmeliproTooth.spec.ts.snap +0 -1
  142. package/src/components/Amelipro/AmeliproDentalChart/tests/__snapshots__/AmeliproDentalChart.spec.ts.snap +0 -52
  143. package/src/components/Amelipro/AmeliproDialog/__tests__/__snapshots__/AmeliproDialog.spec.ts.snap +6 -0
  144. package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.mdx +3 -1
  145. package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.stories.ts +19 -0
  146. package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.vue +2 -2
  147. package/src/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.vue +3 -4
  148. package/src/components/Amelipro/AmeliproFirstLogin/__tests__/__snapshots__/AmeliproFirstLogin.spec.ts.snap +2 -13
  149. package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.mdx +3 -1
  150. package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.stories.ts +7 -0
  151. package/src/components/Amelipro/AmeliproMenu/__tests__/__snapshots__/AmeliproMenu.spec.ts.snap +8 -0
  152. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/__snapshots__/AmeliproPatientLogged.spec.ts.snap +9 -2
  153. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/__snapshots__/AmeliproPostalAddressCityRow.spec.ts.snap +28 -10
  154. package/src/components/Amelipro/AmeliproPostalAddressField/__tests__/__snapshots__/AmeliproPostalAddressField.spec.ts.snap +44 -8
  155. package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.vue +1 -1
  156. package/src/components/Amelipro/AmeliproResultList/__tests__/__snapshots__/AmeliproResultList.spec.ts.snap +15 -3
  157. package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +1 -1
  158. package/src/components/Amelipro/AmeliproTable/__tests__/__snapshots__/AmeliproTable.spec.ts.snap +0 -1
  159. package/src/components/Amelipro/AmeliproTooltips/__tests__/__snapshots__/AmeliproTooltips.spec.ts.snap +6 -0
  160. package/src/components/Amelipro/AmeliproUpload/__tests__/__snapshots__/AmeliproUpload.spec.ts.snap +2 -4
  161. package/src/components/Amelipro/StructureMenu/StructureList/__tests__/__snapshots__/StructureList.spec.ts.snap +0 -2
  162. package/src/components/Amelipro/UserMenu/__tests__/__snapshots__/UserMenu.spec.ts.snap +8 -0
  163. package/src/components/BackBtn/BackBtn.vue +1 -1
  164. package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +36 -18
  165. package/src/components/ChipList/ChipList.vue +4 -2
  166. package/src/components/CollapsibleList/CollapsibleList.stories.ts +8 -3
  167. package/src/components/CollapsibleList/CollapsibleList.vue +14 -6
  168. package/src/components/CollapsibleList/accessibilite/Accessibility.mdx +19 -6
  169. package/src/components/CollapsibleList/tests/CollapsibleList.a11y.spec.ts +1 -0
  170. package/src/components/CollapsibleList/tests/CollapsibleList.spec.ts +2 -0
  171. package/src/components/ContextualMenu/ContextualMenu.stories.ts +0 -3
  172. package/src/components/ContextualMenu/accessibilite/Accessibility.mdx +67 -11
  173. package/src/components/CookieBanner/CookieBanner.stories.ts +21 -20
  174. package/src/components/CookieBanner/CookieBanner.vue +35 -10
  175. package/src/components/CookieBanner/accessibilite/Accessibility.mdx +76 -11
  176. package/src/components/CookieBanner/tests/CookieBanner.spec.ts +56 -4
  177. package/src/components/CookieBanner/tests/__snapshots__/CookieBanner.spec.ts.snap +21 -15
  178. package/src/components/CookiesSelection/CookiesInformation/CookiesInformation.vue +17 -8
  179. package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.a11y.spec.ts +1 -0
  180. package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.spec.ts +5 -0
  181. package/src/components/CookiesSelection/CookiesSelection.vue +7 -2
  182. package/src/components/CookiesSelection/tests/CookiesSelection.a11y.spec.ts +1 -0
  183. package/src/components/CookiesSelection/tests/CookiesSelection.spec.ts +5 -0
  184. package/src/components/CookiesSelection/tests/__snapshots__/CookiesSelection.spec.ts.snap +21 -15
  185. package/src/components/CopyBtn/CopyBtn.vue +6 -4
  186. package/src/components/CopyBtn/accessibilite/Accessibility.mdx +82 -11
  187. package/src/components/CopyBtn/tests/__snapshots__/CopyBtn.spec.ts.snap +5 -1
  188. package/src/components/Customs/Selects/SyInputSelect/SyInputSelect.stories.ts +4 -10
  189. package/src/components/Customs/Selects/SySelect/SySelect.mdx +0 -1
  190. package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +10 -10
  191. package/src/components/Customs/Selects/SySelect/SySelect.vue +17 -0
  192. package/src/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.ts +1 -1
  193. package/src/components/Customs/Selects/SySelect/tests/SySelect.a11y.spec.ts +1 -3
  194. package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +72 -0
  195. package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.mdx +32 -0
  196. package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.stories.ts +856 -0
  197. package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.vue +334 -0
  198. package/src/components/Customs/SyCheckBoxGroup/accessibilite/Accessibility.mdx +243 -0
  199. package/src/components/Customs/SyCheckBoxGroup/locales.ts +3 -0
  200. package/src/components/Customs/SyCheckBoxGroup/tests/SyCheckBoxGroup.a11y.spec.ts +30 -0
  201. package/src/components/Customs/SyCheckBoxGroup/tests/SyCheckBoxGroup.spec.ts +152 -0
  202. package/src/components/Customs/SyCheckBoxGroup/types.ts +10 -0
  203. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +17 -28
  204. package/src/components/Customs/SyCheckbox/accessibilite/Accessibility.mdx +1 -1
  205. package/src/components/Customs/SyForm/SyForm.a11y.spec.ts +1 -1
  206. package/src/components/Customs/SyIcon/SyIcon.a11y.spec.ts +31 -2
  207. package/src/components/Customs/SyIcon/SyIcon.vue +9 -5
  208. package/src/components/Customs/SyPagination/SyPagination.stories.ts +14 -2
  209. package/src/components/Customs/SyPagination/SyPagination.vue +20 -5
  210. package/src/components/Customs/SyPagination/accessibilite/Accessibility.mdx +79 -8
  211. package/src/components/Customs/SyPagination/tests/SyPagination.a11y.spec.ts +38 -12
  212. package/src/components/Customs/SyPagination/tests/SyPagination.spec.ts +12 -0
  213. package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +16 -43
  214. package/src/components/Customs/SyTextField/SyTextField.stories.ts +4 -0
  215. package/src/components/Customs/SyTextField/SyTextField.vue +39 -5
  216. package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +28 -3
  217. package/src/components/DatePicker/CalendarMode/DatePicker.vue +55 -19
  218. package/src/components/DatePicker/CalendarMode/tests/DatePicker.spec.ts +9 -3
  219. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +44 -3
  220. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +70 -47
  221. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.a11y.spec.ts +9 -1
  222. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +48 -21
  223. package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +98 -0
  224. package/src/components/DatePicker/docExamples/BidirectionalComplexValidation.vue +23 -9
  225. package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +21 -8
  226. package/src/components/DatePicker/docExamples/DatePickerValidationExamples.vue +50 -22
  227. package/src/components/DatePicker/playground/ComplexDatePickerPlayground.vue +48 -10
  228. package/src/components/DatePicker/playground/DatePickerHolidayRule.vue +16 -3
  229. package/src/components/DeclarationAccessibilityPage/DeclarationAccessibilityPage.mdx +83 -0
  230. package/src/components/DeclarationAccessibilityPage/DeclarationAccessibilityPage.stories.ts +502 -0
  231. package/src/components/DeclarationAccessibilityPage/DeclarationAccessibilityPage.vue +428 -0
  232. package/src/components/DeclarationAccessibilityPage/accessibilite/Accessibility.mdx +75 -0
  233. package/src/components/DeclarationAccessibilityPage/tests/DeclarationAccessibilityPage.a11y.spec.ts +53 -0
  234. package/src/components/DeclarationAccessibilityPage/tests/DeclarationAccessibilityPage.spec.ts +59 -0
  235. package/src/components/DiacriticPicker/DiacriticPicker.vue +20 -1
  236. package/src/components/DialogBox/DialogBox.stories.ts +13 -0
  237. package/src/components/DialogBox/DialogBox.vue +12 -5
  238. package/src/components/DialogBox/accessibilite/Accessibility.mdx +27 -7
  239. package/src/components/DialogBox/tests/DialogBox.a11y.spec.ts +1 -0
  240. package/src/components/DialogBox/tests/DialogBox.spec.ts +40 -6
  241. package/src/components/DownloadBtn/accessibilite/Accessibility.mdx +73 -11
  242. package/src/components/DownloadBtn/config.ts +1 -1
  243. package/src/components/ErrorPage/ErrorPage.mdx +6 -16
  244. package/src/components/ErrorPage/ErrorPage.stories.ts +90 -126
  245. package/src/components/ErrorPage/ErrorPage.vue +44 -125
  246. package/src/components/ErrorPage/accessibilite/Accessibility.mdx +83 -6
  247. package/src/components/ErrorPage/assets/error-ap.svg +1774 -0
  248. package/src/components/ErrorPage/locales.ts +21 -3
  249. package/src/components/ErrorPage/tests/ErrorPage.a11y.spec.ts +5 -13
  250. package/src/components/ErrorPage/tests/ErrorPage.spec.ts +2 -41
  251. package/src/components/ErrorPage/tests/__snapshots__/ErrorPage.spec.ts.snap +10 -266
  252. package/src/components/ExternalLinks/tests/__snapshots__/ExternalLinks.spec.ts.snap +13 -2
  253. package/src/components/FileList/FileList.stories.ts +4 -0
  254. package/src/components/FileList/UploadItem/UploadItem.vue +8 -3
  255. package/src/components/FileList/UploadItem/locales.ts +10 -0
  256. package/src/components/FileList/accessibilite/Accessibility.mdx +55 -7
  257. package/src/components/FileUpload/FileUpload.vue +65 -37
  258. package/src/components/FileUpload/FileUploadContent.vue +1 -1
  259. package/src/components/FileUpload/accessibilite/Accessibility.mdx +48 -5
  260. package/src/components/FileUpload/locales.ts +1 -0
  261. package/src/components/FileUpload/tests/FileUpload.spec.ts +14 -14
  262. package/src/components/FilterInline/FilterInline.stories.ts +0 -15
  263. package/src/components/FilterInline/FilterInline.vue +1 -0
  264. package/src/components/FilterInline/accessibilite/Accessibility.mdx +70 -7
  265. package/src/components/FilterInline/tests/__snapshots__/FilterInline.spec.ts.snap +3 -3
  266. package/src/components/FilterSideBar/FilterSideBar.stories.ts +0 -3
  267. package/src/components/FilterSideBar/FilterSideBar.vue +2 -1
  268. package/src/components/FilterSideBar/accessibilite/Accessibility.mdx +70 -9
  269. package/src/components/FooterBar/FooterBar.stories.ts +316 -48
  270. package/src/components/FooterBar/FooterBar.vue +67 -9
  271. package/src/components/FooterBar/config.ts +2 -2
  272. package/src/components/FooterBar/defaultSocialMediaLinks.ts +6 -4
  273. package/src/components/FooterBar/locales.ts +1 -0
  274. package/src/components/FooterBar/tests/FooterBarConfig.spec.ts +1 -1
  275. package/src/components/FooterBar/tests/__snapshots__/FooterBar.spec.ts.snap +6 -25
  276. package/src/components/FooterBar/types.d.ts +1 -0
  277. package/src/components/HeaderBar/HeaderBar.stories.ts +23 -1
  278. package/src/components/HeaderBar/HeaderBar.vue +4 -0
  279. package/src/components/HeaderBar/HeaderLogo/HeaderLogo.vue +7 -2
  280. package/src/components/HeaderBar/HeaderLogo/tests/HeaderLogo.spec.ts +5 -0
  281. package/src/components/HeaderBar/accessibilite/Accessibility.mdx +24 -5
  282. package/src/components/HeaderBar/tests/HeaderBar.a11y.spec.ts +1 -0
  283. package/src/components/HeaderBar/tests/HeaderBar.spec.ts +3 -0
  284. package/src/components/HeaderNavigationBar/HeaderNavigationBar.stories.ts +4 -0
  285. package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +2 -0
  286. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.spec.ts +3 -0
  287. package/src/components/LogoBrandSection/LogoBrandSection.stories.ts +22 -0
  288. package/src/components/LogoBrandSection/LogoBrandSection.vue +13 -5
  289. package/src/components/LogoBrandSection/tests/LogoBrandSection.a11y.spec.ts +2 -0
  290. package/src/components/LogoBrandSection/tests/LogoBrandSection.spec.ts +44 -0
  291. package/src/components/LogoBrandSection/tests/__snapshots__/LogoBrandSection.spec.ts.snap +2 -0
  292. package/src/components/MaintenancePage/MaintenancePage.mdx +1 -1
  293. package/src/components/MaintenancePage/MaintenancePage.vue +42 -7
  294. package/src/components/MaintenancePage/accessibilite/Accessibility.mdx +63 -6
  295. package/src/components/MaintenancePage/assets/maintenance-ap.svg +1718 -0
  296. package/src/components/MaintenancePage/locales.ts +24 -3
  297. package/src/components/MaintenancePage/tests/MaintenancePage.a11y.spec.ts +76 -3
  298. package/src/components/MaintenancePage/tests/MaintenancePage.spec.ts +60 -2
  299. package/src/components/MaintenancePage/tests/__snapshots__/MaintenancePage.spec.ts.snap +5 -2
  300. package/src/components/NotFoundPage/NotFoundPage.mdx +1 -1
  301. package/src/components/NotFoundPage/NotFoundPage.stories.ts +4 -4
  302. package/src/components/NotFoundPage/NotFoundPage.vue +30 -14
  303. package/src/components/NotFoundPage/accessibilite/Accessibility.mdx +80 -6
  304. package/src/components/NotFoundPage/assets/not-found-ap.svg +2061 -0
  305. package/src/components/NotFoundPage/locales.ts +24 -4
  306. package/src/components/NotFoundPage/tests/NotFoundPage.a11y.spec.ts +217 -4
  307. package/src/components/NotFoundPage/tests/NotFoundPage.spec.ts +123 -12
  308. package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +4 -2
  309. package/src/components/NotificationBar/NotificationBar.mdx +2 -2
  310. package/src/components/NotificationBar/accessibilite/Accessibility.mdx +68 -8
  311. package/src/components/PageContainer/PageContainer.stories.ts +47 -0
  312. package/src/components/PageContainer/PageContainer.vue +4 -2
  313. package/src/components/PageContainer/accessibilite/Accessibility.mdx +67 -0
  314. package/src/components/PageContainer/tests/PageContainer.a11y.spec.ts +14 -7
  315. package/src/components/PaginatedTable/PaginatedTable.mdx +3 -3
  316. package/src/components/PaginatedTable/PaginatedTable.stories.ts +9 -1
  317. package/src/components/PeriodField/PeriodField.vue +4 -0
  318. package/src/components/PeriodField/tests/PeriodField.a11y.spec.ts +10 -1
  319. package/src/components/PhoneField/PhoneField.stories.ts +115 -69
  320. package/src/components/PhoneField/PhoneField.vue +152 -83
  321. package/src/components/PhoneField/accessibilite/Accessibility.mdx +306 -9
  322. package/src/components/PhoneField/indicatifs.ts +2 -2
  323. package/src/components/PhoneField/tests/PhoneField.a11y.spec.ts +22 -9
  324. package/src/components/PhoneField/tests/PhoneField.spec.ts +82 -5
  325. package/src/components/SearchListField/SearchListField.vue +1 -1
  326. package/src/components/SearchListField/accessibilite/Accessibility.mdx +69 -9
  327. package/src/components/SearchListField/tests/SearchListField.a11y.spec.ts +37 -0
  328. package/src/components/SocialMediaLinks/DefaultSocialMediaLinks.ts +6 -4
  329. package/src/components/SocialMediaLinks/SocialMediaLinks.mdx +7 -5
  330. package/src/components/SocialMediaLinks/SocialMediaLinks.stories.ts +17 -13
  331. package/src/components/SocialMediaLinks/SocialMediaLinks.vue +10 -2
  332. package/src/components/SocialMediaLinks/accessibilite/Accessibility.mdx +63 -11
  333. package/src/components/SocialMediaLinks/tests/DefaultSocialMediaLinks.spec.ts +5 -5
  334. package/src/components/SocialMediaLinks/tests/SocialMediaLinks.a11y.spec.ts +59 -0
  335. package/src/components/SocialMediaLinks/tests/SocialMediaLinks.spec.ts +9 -7
  336. package/src/components/StatusPage/StatusPage.mdx +31 -0
  337. package/src/components/StatusPage/StatusPage.stories.ts +236 -0
  338. package/src/components/StatusPage/StatusPage.vue +167 -0
  339. package/src/components/StatusPage/accessibilite/Accessibility.mdx +100 -0
  340. package/src/components/StatusPage/tests/StatusPage.a11y.spec.ts +30 -0
  341. package/src/components/StatusPage/tests/StatusPage.spec.ts +53 -0
  342. package/src/components/StatusPage/tests/__snapshots__/StatusPage.spec.ts.snap +272 -0
  343. package/src/components/SubHeader/SubHeader.stories.ts +16 -0
  344. package/src/components/SubHeader/SubHeader.vue +6 -3
  345. package/src/components/SubHeader/accessibilite/Accessibility.mdx +27 -6
  346. package/src/components/SyAlert/SyAlert.vue +21 -20
  347. package/src/components/SyBtnMenu/SyBtnMenu.vue +33 -17
  348. package/src/components/SyBtnMenu/tests/SyBtnMenu.a11y.spec.ts +38 -0
  349. package/src/components/SyBtnMenu/tests/SyBtnMenu.spec.ts +41 -0
  350. package/src/components/SyHeading/SyHeading.vue +18 -0
  351. package/src/components/TableToolbar/TableToolbar.stories.ts +6 -6
  352. package/src/components/TableToolbar/TableToolbar.vue +1 -1
  353. package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +96 -35
  354. package/src/components/Tables/SyServerTable/SyServerTable.vue +2 -0
  355. package/src/components/Tables/SyTable/SyTable.vue +2 -0
  356. package/src/components/Tables/common/SyTablePagination.vue +16 -10
  357. package/src/components/Tables/common/filters/DateFilter.vue +5 -0
  358. package/src/components/Tables/common/tests/SyTablePagination.spec.ts +40 -24
  359. package/src/components/Tables/common/types.ts +3 -0
  360. package/src/components/UploadWorkflow/UploadWorkflow.mdx +11 -1
  361. package/src/components/UploadWorkflow/UploadWorkflow.stories.ts +118 -14
  362. package/src/components/UploadWorkflow/UploadWorkflow.vue +59 -31
  363. package/src/components/UploadWorkflow/accessibilite/Accessibility.mdx +56 -5
  364. package/src/components/UploadWorkflow/accessibilite/UploadWorkflow.a11y.spec.ts +110 -0
  365. package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +37 -7
  366. package/src/components/UploadWorkflow/tests/__snapshots__/UploadWorkflow.spec.ts.snap +139 -112
  367. package/src/components/UploadWorkflow/useFileList.ts +7 -0
  368. package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +53 -31
  369. package/src/components/UserMenuBtn/UserMenuBtn.vue +4 -1
  370. package/src/components/UserMenuBtn/accessibilite/Accessibility.mdx +72 -8
  371. package/src/components/index.ts +4 -0
  372. package/src/components/types.ts +4 -0
  373. package/src/composables/date/tests/useDateInitialization.spec.ts +22 -1
  374. package/src/composables/date/useDateInitializationDayjs.ts +4 -7
  375. package/src/composables/date/useDatePickerAccessibility.ts +2 -3
  376. package/src/composables/rules/tests/useFieldValidation.spec.ts +39 -3
  377. package/src/composables/rules/useFieldValidation.ts +24 -9
  378. package/src/composables/useFilterable/useFilterable.spec.ts +52 -2
  379. package/src/composables/useFilterable/useFilterable.ts +7 -1
  380. package/src/designTokens/tokens/amelipro/apLightTheme.ts +27 -15
  381. package/src/designTokens/tokens/amelipro/apSemantic.ts +21 -15
  382. package/src/designTokens/tokens/cnam/cnamLightTheme.ts +28 -15
  383. package/src/designTokens/tokens/cnam/cnamSemantic.ts +21 -14
  384. package/src/designTokens/tokens/pa/paLightTheme.ts +27 -16
  385. package/src/designTokens/tokens/pa/paSemantic.ts +19 -13
  386. package/src/directives/rgaaSvgFix.ts +2 -7
  387. package/src/stories/Accessibilite/{Audit → AuditEtContreAudit}/Exemptions-derogations.mdx +1 -1
  388. package/src/stories/Accessibilite/AuditEtContreAudit/Introduction.mdx +188 -0
  389. package/src/stories/Accessibilite/{Audit → AuditEtContreAudit}/RGAA.mdx +1 -1
  390. package/src/stories/Accessibilite/Introduction.mdx +22 -3
  391. package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +21 -22
  392. package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +7 -0
  393. package/src/stories/DeprecationNotice/DeprecationNotice.ts +41 -0
  394. package/src/stories/DesignTokens/ColorDisplay.vue +12 -5
  395. package/src/stories/DesignTokens/Colors.mdx +8 -59
  396. package/src/stories/DesignTokens/colors.stories.ts +1862 -1071
  397. package/src/stories/EcoConception/EcoGuideComponent.vue +10 -4
  398. package/src/utils/theme/index.ts +19 -0
  399. package/src/utils/theme/tests/useThemeLocales.spec.ts +245 -0
  400. package/dist/components/MaintenancePage/index.d.ts +0 -2
  401. package/dist/main-CuI6xaPq.js +0 -36396
  402. package/src/components/Customs/SyTabs/tests/SyTabs.a11y.spec.ts +0 -51
  403. package/src/components/DataListItem/tests/DataListItem.a11y.spec.ts +0 -31
  404. package/src/components/DatePicker/CalendarMode/tests/DatePicker.a11y.spec.ts +0 -27
  405. package/src/components/DownloadBtn/tests/DownloadBtn.a11y.spec.ts +0 -26
  406. package/src/components/ExternalLinks/tests/ExternalLinks.a11y.spec.ts +0 -39
  407. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.a11y.spec.ts +0 -45
  408. package/src/components/HeaderToolbar/tests/HeaderToolbar.a11y.spec.ts +0 -25
  409. package/src/components/LunarCalendar/tests/LunarCalendar.a11y.spec.ts +0 -31
  410. package/src/components/MaintenancePage/index.ts +0 -3
  411. package/src/components/PageContainer/Accessibilite/Accessibility.mdx +0 -53
  412. package/src/components/PageContainer/Accessibilite/AccessibilityGuide.mdx +0 -0
  413. package/src/components/PaginatedTable/tests/PaginatedTable.a11y.spec.ts +0 -43
  414. /package/src/components/NotFoundPage/assets/{not-found.svg → not-found-cnam.svg} +0 -0
@@ -0,0 +1,856 @@
1
+ import type { Meta, StoryObj } from '@storybook/vue3'
2
+ import { ref } from 'vue'
3
+ import SyCheckBoxGroup from '@/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.vue'
4
+ import SyForm from '@/components/Customs/SyForm/SyForm.vue'
5
+ import { VBtn } from 'vuetify/components'
6
+
7
+ const meta: Meta<typeof SyCheckBoxGroup> = {
8
+ title: 'Composants/Formulaires/SyCheckBoxGroup',
9
+ component: SyCheckBoxGroup,
10
+ decorators: [
11
+ () => ({
12
+ template: '<div style="padding: 20px;"><story/></div>',
13
+ }),
14
+ ],
15
+ parameters: {
16
+ layout: 'fullscreen',
17
+ docs: {
18
+ description: {
19
+ component: 'SyCheckBoxGroup est un composant de groupe de cases à cocher basé sur SyCheckbox.',
20
+ },
21
+ },
22
+ },
23
+ argTypes: {
24
+ 'modelValue': { control: false },
25
+ 'onUpdate:modelValue': { action: 'update:modelValue' },
26
+ 'onChange': { action: 'change' },
27
+ 'label': { control: 'text' },
28
+ 'displayAsterisk': { control: 'boolean' },
29
+ 'disabled': { control: 'boolean' },
30
+ 'readonly': { control: 'boolean' },
31
+ 'required': { control: 'boolean' },
32
+ 'multiple': { control: 'boolean' },
33
+ 'hideDetails': { control: 'boolean' },
34
+ 'density': {
35
+ control: 'select',
36
+ options: ['default', 'comfortable', 'compact'],
37
+ },
38
+ 'options': { control: 'object' },
39
+ },
40
+ }
41
+
42
+ export default meta
43
+
44
+ type Story = StoryObj<typeof meta>
45
+
46
+ const baseOptions = [
47
+ { label: 'Option A', value: 'a' },
48
+ { label: 'Option B', value: 'b' },
49
+ { label: 'Option C', value: 'c' },
50
+ ]
51
+
52
+ export const Default: Story = {
53
+ parameters: {
54
+ sourceCode: [
55
+ {
56
+ name: 'Template',
57
+ code: `
58
+ <SyCheckBoxGroup
59
+ v-model="value"
60
+ label="Choisissez une option"
61
+ :options="options"
62
+ />
63
+ <div class="mt-2">Sélection : {{ value }}</div>
64
+ `,
65
+ },
66
+ {
67
+ name: 'Script',
68
+ code: `
69
+ <script setup lang="ts">
70
+ import { ref } from 'vue'
71
+ import { SyCheckBoxGroup } from '@cnamts/synapse'
72
+
73
+ const value = ref<string | null>(null)
74
+ const options = [
75
+ { label: 'Option A', value: 'a' },
76
+ { label: 'Option B', value: 'b' },
77
+ { label: 'Option C', value: 'c' },
78
+ ]
79
+ </script>
80
+ `,
81
+ },
82
+ ],
83
+ },
84
+ args: {
85
+ label: 'Choisissez une option',
86
+ options: baseOptions,
87
+ multiple: false,
88
+ required: false,
89
+ },
90
+ render: args => ({
91
+ components: { SyCheckBoxGroup },
92
+ setup() {
93
+ const value = ref<string | null>(null)
94
+ return { args, value }
95
+ },
96
+ template: `
97
+ <div>
98
+ <SyCheckBoxGroup v-model="value" v-bind="args" />
99
+ <div class="mt-2">Sélection : {{ value }}</div>
100
+ </div>
101
+ `,
102
+ }),
103
+ }
104
+
105
+ export const Disabled: Story = {
106
+ parameters: {
107
+ sourceCode: [
108
+ {
109
+ name: 'Template',
110
+ code: `
111
+ <SyCheckBoxGroup
112
+ v-model="value"
113
+ label="CheckBoxGroup désactivé"
114
+ :options="options"
115
+ disabled
116
+ hide-details
117
+ />
118
+ <div class="mt-2">Sélection : {{ value }}</div>
119
+ `,
120
+ },
121
+ {
122
+ name: 'Script',
123
+ code: `
124
+ <script setup lang="ts">
125
+ import { ref } from 'vue'
126
+ import { SyCheckBoxGroup } from '@cnamts/synapse'
127
+
128
+ const value = ref<string | null>('a')
129
+ const options = [
130
+ { label: 'Option A', value: 'a' },
131
+ { label: 'Option B', value: 'b' },
132
+ { label: 'Option C', value: 'c' },
133
+ ]
134
+ </script>
135
+ `,
136
+ },
137
+ ],
138
+ },
139
+ args: {
140
+ label: 'CheckBoxGroup désactivé',
141
+ disabled: true,
142
+ options: baseOptions,
143
+ multiple: false,
144
+ hideDetails: true,
145
+ },
146
+ render: args => ({
147
+ components: { SyCheckBoxGroup },
148
+ setup() {
149
+ const value = ref<string | null>('a')
150
+ return { args, value }
151
+ },
152
+ template: `
153
+ <div>
154
+ <SyCheckBoxGroup v-model="value" v-bind="args" />
155
+ <div class="mt-2">Sélection : {{ value }}</div>
156
+ </div>
157
+ `,
158
+ }),
159
+ }
160
+
161
+ export const Required: Story = {
162
+ parameters: {
163
+ sourceCode: [
164
+ {
165
+ name: 'Template',
166
+ code: `
167
+ <SyForm ref="form" @submit="onSubmit">
168
+ <SyCheckBoxGroup
169
+ v-model="value"
170
+ label="Choisissez une option (obligatoire)"
171
+ :options="options"
172
+ required
173
+ :is-validate-on-blur="false"
174
+ id="sy-checkbox-group-required"
175
+ />
176
+ <div class="mt-2">Sélection : {{ value }}</div>
177
+ <VBtn type="submit" class="mt-4" color="primary">Valider</VBtn>
178
+ </SyForm>
179
+ `,
180
+ },
181
+ {
182
+ name: 'Script',
183
+ code: `
184
+ <script setup lang="ts">
185
+ import { ref } from 'vue'
186
+ import { VBtn } from 'vuetify/components'
187
+ import { SyForm, SyCheckBoxGroup } from '@cnamts/synapse'
188
+
189
+ const value = ref<string | null>(null)
190
+ const options = [
191
+ { label: 'Option A', value: 'a' },
192
+ { label: 'Option B', value: 'b' },
193
+ ]
194
+
195
+ const onSubmit = (event: { isValid: boolean }) => {
196
+ if (event.isValid) {
197
+ alert('Formulaire valide !')
198
+ }
199
+ }
200
+ </script>
201
+ `,
202
+ },
203
+ ],
204
+ },
205
+ args: {
206
+ label: 'Choisissez une option (obligatoire)',
207
+ required: true,
208
+ options: [
209
+ { label: 'Option A', value: 'a' },
210
+ { label: 'Option B', value: 'b' },
211
+ ],
212
+ multiple: false,
213
+ id: 'sy-checkbox-group-required',
214
+ isValidateOnBlur: false,
215
+ },
216
+ render: args => ({
217
+ components: { SyCheckBoxGroup, SyForm, VBtn },
218
+ setup() {
219
+ const value = ref<string | null>(null)
220
+ const onSubmit = (event: { isValid: boolean }) => {
221
+ if (event.isValid) {
222
+ alert('Formulaire valide !')
223
+ }
224
+ }
225
+ return { args, value, onSubmit }
226
+ },
227
+ template: `
228
+ <SyForm ref="form" @submit="onSubmit">
229
+ <SyCheckBoxGroup v-model="value" required v-bind="args" />
230
+ <div class="mt-2">Sélection : {{ value }}</div>
231
+ <VBtn type="submit" class="mt-4" color="primary">Valider</VBtn>
232
+ </SyForm>
233
+ `,
234
+ }),
235
+ }
236
+
237
+ export const Multiple: Story = {
238
+ parameters: {
239
+ sourceCode: [
240
+ {
241
+ name: 'Template',
242
+ code: `
243
+ <SyCheckBoxGroup
244
+ v-model="values"
245
+ label="Choisissez plusieurs options"
246
+ :options="options"
247
+ multiple
248
+ />
249
+ <div class="mt-2">Sélection : {{ values }}</div>
250
+ `,
251
+ },
252
+ {
253
+ name: 'Script',
254
+ code: `
255
+ <script setup lang="ts">
256
+ import { ref } from 'vue'
257
+ import { SyCheckBoxGroup } from '@cnamts/synapse'
258
+
259
+ const values = ref<Array<string>>([])
260
+ const options = [
261
+ { label: 'Option A', value: 'a' },
262
+ { label: 'Option B', value: 'b' },
263
+ { label: 'Option C', value: 'c' },
264
+ ]
265
+ </script>
266
+ `,
267
+ },
268
+ ],
269
+ },
270
+ args: {
271
+ label: 'Choisissez plusieurs options',
272
+ options: baseOptions,
273
+ multiple: true,
274
+ required: false,
275
+ },
276
+ render: args => ({
277
+ components: { SyCheckBoxGroup },
278
+ setup() {
279
+ const value = ref<Array<string>>(['a'])
280
+ return { args, value }
281
+ },
282
+ template: `
283
+ <div>
284
+ <SyCheckBoxGroup v-model="value" v-bind="args" />
285
+ <div class="mt-2">Sélection : {{ value }}</div>
286
+ </div>
287
+ `,
288
+ }),
289
+ }
290
+
291
+ export const MultipleRequired: Story = {
292
+ parameters: {
293
+ sourceCode: [
294
+ {
295
+ name: 'Template',
296
+ code: `
297
+ <SyForm ref="form" @submit="onSubmit">
298
+ <SyCheckBoxGroup
299
+ v-model="values"
300
+ label="Choisissez au moins une option"
301
+ :options="options"
302
+ multiple
303
+ required
304
+ :custom-rules="customRules"
305
+ :is-validate-on-blur="false"
306
+ id="sy-checkbox-group-multiple-required"
307
+ />
308
+ <div class="mt-2">Sélection : {{ values }}</div>
309
+ <VBtn type="submit" class="mt-2" color="primary">Valider</VBtn>
310
+ </SyForm>
311
+ `,
312
+ },
313
+ {
314
+ name: 'Script',
315
+ code: `
316
+ <script setup lang="ts">
317
+ import { ref } from 'vue'
318
+ import { VBtn } from 'vuetify/components'
319
+ import { SyForm, SyCheckBoxGroup } from '@cnamts/synapse'
320
+
321
+ const values = ref<Array<string>>([])
322
+ const options = [
323
+ { label: 'Option A', value: 'a' },
324
+ { label: 'Option B', value: 'b' },
325
+ { label: 'Option C', value: 'c' },
326
+ ]
327
+
328
+ const customRules = [
329
+ {
330
+ type: 'custom',
331
+ options: {
332
+ message: 'Veuillez sélectionner au moins 2 options.',
333
+ validate: (value: Array<string>) => Array.isArray(value) && value.length >= 2,
334
+ },
335
+ },
336
+ ]
337
+
338
+ const onSubmit = (event: { isValid: boolean }) => {
339
+ if (event.isValid) {
340
+ alert('Formulaire valide !')
341
+ }
342
+ }
343
+ </script>
344
+ `,
345
+ },
346
+ ],
347
+ },
348
+ args: {
349
+ label: 'Choisissez au moins une option (multiple requis)',
350
+ options: baseOptions,
351
+ multiple: true,
352
+ required: true,
353
+ customRules: [
354
+ {
355
+ type: 'custom',
356
+ options: {
357
+ message: 'Veuillez sélectionner au moins 2 options.',
358
+ validate: (value: Array<string>) => Array.isArray(value) && value.length >= 2,
359
+ },
360
+ },
361
+ ],
362
+ id: 'sy-checkbox-group-multiple-required',
363
+ isValidateOnBlur: false,
364
+ },
365
+ render: args => ({
366
+ components: { SyCheckBoxGroup, SyForm, VBtn },
367
+ setup() {
368
+ const value = ref<Array<string>>([])
369
+ const onSubmit = (event: { isValid: boolean }) => {
370
+ if (event.isValid) {
371
+ alert('Formulaire valide !')
372
+ }
373
+ }
374
+ return { args, value, onSubmit }
375
+ },
376
+ template: `
377
+ <SyForm ref="form" @submit="onSubmit">
378
+ <SyCheckBoxGroup v-model="value" required v-bind="args" />
379
+ <div class="mt-2">Sélection : {{ value }}</div>
380
+ <VBtn type="submit" class="mt-2" color="primary">Valider</VBtn>
381
+ </SyForm>
382
+ `,
383
+ }),
384
+ }
385
+
386
+ export const ListModel: Story = {
387
+ parameters: {
388
+ sourceCode: [
389
+ {
390
+ name: 'Template',
391
+ code: `
392
+ <SyCheckBoxGroup
393
+ v-model="selected"
394
+ label="v-model comme une liste (tableau)"
395
+ :options="options"
396
+ multiple
397
+ hide-details
398
+ />
399
+ <div class="mt-2">Sélection : {{ selected }}</div>
400
+ `,
401
+ },
402
+ {
403
+ name: 'Script',
404
+ code: `
405
+ <script setup lang="ts">
406
+ import { ref } from 'vue'
407
+ import { SyCheckBoxGroup } from '@cnamts/synapse'
408
+
409
+ const selected = ref<Array<string>>(['a'])
410
+ const options = [
411
+ { label: 'Option A', value: 'a' },
412
+ { label: 'Option B', value: 'b' },
413
+ { label: 'Option C', value: 'c' },
414
+ ]
415
+ </script>
416
+ `,
417
+ },
418
+ ],
419
+ },
420
+ args: {
421
+ label: 'v-model comme une liste (tableau)',
422
+ options: baseOptions,
423
+ multiple: true,
424
+ required: false,
425
+ hideDetails: true,
426
+ },
427
+ render: args => ({
428
+ components: { SyCheckBoxGroup },
429
+ setup() {
430
+ const selected = ref<Array<string>>(['a'])
431
+ return { args, selected }
432
+ },
433
+ template: `
434
+ <div>
435
+ <SyCheckBoxGroup v-model="selected" v-bind="args" />
436
+ <div class="mt-2">Sélection : {{ selected }}</div>
437
+ </div>
438
+ `,
439
+ }),
440
+ }
441
+
442
+ export const FormValidation: Story = {
443
+ args: {
444
+ label: 'Choisissez une option (obligatoire)',
445
+ required: true,
446
+ options: [
447
+ { label: 'Option A', value: 'a' },
448
+ { label: 'Option B', value: 'b' },
449
+ ],
450
+ multiple: false,
451
+ id: 'sy-checkbox-group-form-validation',
452
+ isValidateOnBlur: false,
453
+ },
454
+ render: args => ({
455
+ components: { SyCheckBoxGroup, SyForm, VBtn },
456
+ setup() {
457
+ const value = ref<string | null>(null)
458
+ const onSubmit = (event: { isValid: boolean }) => {
459
+ if (event.isValid) {
460
+ alert('Formulaire valide !')
461
+ }
462
+ }
463
+ return { args, value, onSubmit }
464
+ },
465
+ template: `
466
+ <SyForm ref="form" @submit="onSubmit">
467
+ <SyCheckBoxGroup v-model="value" required v-bind="args" />
468
+ <div class="mt-2">Sélection : {{ value }}</div>
469
+ <VBtn type="submit" class="mt-4" color="primary">Valider</VBtn>
470
+ </SyForm>
471
+ `,
472
+ }),
473
+ parameters: {
474
+ sourceCode: [
475
+ {
476
+ name: 'Template',
477
+ code: `
478
+ <SyForm ref="form" @submit="onSubmit">
479
+ <SyCheckBoxGroup
480
+ v-model="value"
481
+ label="Choisissez une option (obligatoire)"
482
+ :options="options"
483
+ required
484
+ :is-validate-on-blur="false"
485
+ id="sy-checkbox-group-form-validation"
486
+ />
487
+ <div class="mt-2">Sélection : {{ value }}</div>
488
+ <VBtn type="submit" class="mt-4" color="primary">Valider</VBtn>
489
+ </SyForm>
490
+ `,
491
+ },
492
+ {
493
+ name: 'Script',
494
+ code: `
495
+ <script setup lang="ts">
496
+ import { ref } from 'vue'
497
+ import { VBtn } from 'vuetify/components'
498
+ import { SyForm, SyCheckBoxGroup } from '@cnamts/synapse'
499
+
500
+ const value = ref<string | null>(null)
501
+ const options = [
502
+ { label: 'Option A', value: 'a' },
503
+ { label: 'Option B', value: 'b' },
504
+ ]
505
+
506
+ const onSubmit = (event: { isValid: boolean }) => {
507
+ if (event.isValid) {
508
+ alert('Formulaire valide !')
509
+ }
510
+ }
511
+ </script>
512
+ `,
513
+ },
514
+ ],
515
+ },
516
+ }
517
+
518
+ export const CustomColors: Story = {
519
+ parameters: {
520
+ sourceCode: [
521
+ {
522
+ name: 'Template',
523
+ code: `
524
+ <div>
525
+ <SyCheckBoxGroup
526
+ v-model="value1"
527
+ color="primary"
528
+ label="Couleur primaire (par défaut)"
529
+ :options="options"
530
+ :show-success-messages="false"
531
+ />
532
+ <SyCheckBoxGroup
533
+ v-model="value2"
534
+ color="secondary"
535
+ label="Couleur secondaire"
536
+ :options="options"
537
+ :show-success-messages="false"
538
+ />
539
+ <SyCheckBoxGroup
540
+ v-model="value3"
541
+ color="success"
542
+ label="Couleur succès"
543
+ :options="options"
544
+ :show-success-messages="false"
545
+ />
546
+ <SyCheckBoxGroup
547
+ v-model="value4"
548
+ color="error"
549
+ label="Couleur erreur"
550
+ :options="options"
551
+ :show-success-messages="false"
552
+ />
553
+ <SyCheckBoxGroup
554
+ v-model="value5"
555
+ color="warning"
556
+ label="Couleur avertissement"
557
+ :options="options"
558
+ :show-success-messages="false"
559
+ />
560
+ </div>
561
+ `,
562
+ },
563
+ {
564
+ name: 'Script',
565
+ code: `<script setup lang="ts">
566
+ import { ref } from 'vue'
567
+ import { SyCheckBoxGroup } from '@cnamts/synapse'
568
+
569
+ const value1 = ref<string | null>('a')
570
+ const value2 = ref<string | null>('a')
571
+ const value3 = ref<string | null>('a')
572
+ const value4 = ref<string | null>('a')
573
+ const value5 = ref<string | null>('a')
574
+
575
+ const options = [
576
+ { label: 'Value 1', value: 'a' },
577
+ { label: 'Value 2', value: 'b' },
578
+ ]
579
+ </script>`,
580
+ },
581
+ ],
582
+ docs: {
583
+ description: {
584
+ story: `
585
+ ### Couleurs personnalisées
586
+ Le composant SyCheckBoxGroup peut être personnalisé avec différentes couleurs pour s'adapter à votre thème.
587
+ `,
588
+ },
589
+ },
590
+ },
591
+ render: args => ({
592
+ components: { SyCheckBoxGroup },
593
+ setup() {
594
+ const options = [
595
+ { label: 'Value 1', value: 'a' },
596
+ { label: 'Value 2', value: 'b' },
597
+ ]
598
+ const value1 = ref<string | null>('a')
599
+ const value2 = ref<string | null>('a')
600
+ const value3 = ref<string | null>('a')
601
+ const value4 = ref<string | null>('a')
602
+ const value5 = ref<string | null>('a')
603
+ return { args, options, value1, value2, value3, value4, value5 }
604
+ },
605
+ template: `
606
+ <div>
607
+ <SyCheckBoxGroup v-model="value1" color="primary" label="Couleur primaire (par défaut)" :options="options" :show-success-messages="false" />
608
+ <SyCheckBoxGroup v-model="value2" color="secondary" label="Couleur secondaire" :options="options" :show-success-messages="false" />
609
+ <SyCheckBoxGroup v-model="value3" color="success" label="Couleur succès" :options="options" :show-success-messages="false" />
610
+ <SyCheckBoxGroup v-model="value4" color="error" label="Couleur erreur" :options="options" :show-success-messages="false" />
611
+ <SyCheckBoxGroup v-model="value5" color="warning" label="Couleur avertissement" :options="options" :show-success-messages="false" />
612
+ </div>
613
+ `,
614
+ }),
615
+ }
616
+
617
+ export const DifferentDensities: Story = {
618
+ parameters: {
619
+ sourceCode: [
620
+ {
621
+ name: 'Template',
622
+ code: `
623
+ <div>
624
+ <SyCheckBoxGroup
625
+ v-model="val1"
626
+ density="default"
627
+ label="Default density"
628
+ :options="options"
629
+ :show-success-messages="false"
630
+ />
631
+ <SyCheckBoxGroup
632
+ v-model="val2"
633
+ density="comfortable"
634
+ label="Comfortable"
635
+ :options="options"
636
+ :show-success-messages="false"
637
+ />
638
+ <SyCheckBoxGroup
639
+ v-model="val3"
640
+ density="compact"
641
+ label="Compact"
642
+ :options="options"
643
+ :show-success-messages="false"
644
+ />
645
+ </div>
646
+ `,
647
+ },
648
+ {
649
+ name: 'Script',
650
+ code: `<script setup lang="ts">
651
+ import { ref } from 'vue'
652
+ import { SyCheckBoxGroup } from '@cnamts/synapse'
653
+
654
+ const val1 = ref<string | null>(null)
655
+ const val2 = ref<string | null>(null)
656
+ const val3 = ref<string | null>(null)
657
+
658
+ const options = [
659
+ { label: 'Value 1', value: 'a' },
660
+ { label: 'Value 2', value: 'b' },
661
+ ]
662
+ </script>`,
663
+ },
664
+ ],
665
+ docs: {
666
+ description: {
667
+ story: `
668
+ ### Différentes densités
669
+ Le composant SyCheckBoxGroup prend en charge différentes densités pour s'adapter à différents contextes d'interface utilisateur.
670
+ `,
671
+ },
672
+ },
673
+ },
674
+ render: () => ({
675
+ components: { SyCheckBoxGroup },
676
+ setup() {
677
+ const val1 = ref<string | null>(null)
678
+ const val2 = ref<string | null>(null)
679
+ const val3 = ref<string | null>(null)
680
+ const options = [
681
+ { label: 'Value 1', value: 'a' },
682
+ { label: 'Value 2', value: 'b' },
683
+ ]
684
+ return { val1, val2, val3, options }
685
+ },
686
+ template: `
687
+ <div>
688
+ <SyCheckBoxGroup v-model="val1" density="default" label="Default density" :options="options" :show-success-messages="false" />
689
+ <SyCheckBoxGroup v-model="val2" density="comfortable" label="Comfortable" :options="options" :show-success-messages="false" />
690
+ <SyCheckBoxGroup v-model="val3" density="compact" label="Compact" :options="options" :show-success-messages="false" />
691
+ </div>
692
+ `,
693
+ }),
694
+ }
695
+
696
+ export const Readonly: Story = {
697
+ args: {
698
+ readonly: true,
699
+ options: [
700
+ { label: 'Option A', value: 'a' },
701
+ { label: 'Option B', value: 'b' },
702
+ { label: 'Option C', value: 'c' },
703
+ ],
704
+ },
705
+ render: args => ({
706
+ components: { SyCheckBoxGroup },
707
+ setup() {
708
+ const value = ref<string | null>('a')
709
+ return { args, value }
710
+ },
711
+ template: `
712
+ <div>
713
+ <SyCheckBoxGroup v-model="value" v-bind="args" label="CheckBoxGroup en lecture seule" />
714
+ <div class="mt-2">Sélection : {{ value }}</div>
715
+ </div>
716
+ `,
717
+ }),
718
+ parameters: {
719
+ sourceCode: [
720
+ {
721
+ name: 'Template',
722
+ code: `
723
+ <SyCheckBoxGroup
724
+ v-model="value"
725
+ label="CheckBoxGroup en lecture seule"
726
+ :options="options"
727
+ readonly
728
+ />
729
+ <div class="mt-2">Sélection : {{ value }}</div>
730
+ `,
731
+ },
732
+ {
733
+ name: 'Script',
734
+ code: `
735
+ <script setup lang="ts">
736
+ import { ref } from 'vue'
737
+ import { SyCheckBoxGroup } from '@cnamts/synapse'
738
+
739
+ const value = ref<string | null>('a')
740
+ const options = [
741
+ { label: 'Option A', value: 'a' },
742
+ { label: 'Option B', value: 'b' },
743
+ { label: 'Option C', value: 'c' },
744
+ ]
745
+ </script>
746
+ `,
747
+ },
748
+ ],
749
+ },
750
+ }
751
+
752
+ export const CustomRules: Story = {
753
+ parameters: {
754
+ sourceCode: [
755
+ {
756
+ name: 'Template',
757
+ code: `
758
+ <template>
759
+ <SyCheckBoxGroup
760
+ v-model="selected"
761
+ :options="options"
762
+ label="Options"
763
+ :custom-warning-rules="warningRules"
764
+ :custom-success-rules="successRules"
765
+ :is-validate-on-blur="false"
766
+ />
767
+ </template>
768
+ `,
769
+ },
770
+ {
771
+ name: 'Script',
772
+ code: `<script setup lang="ts">
773
+ import { ref } from 'vue'
774
+ import { SyCheckBoxGroup } from '@cnamts/synapse'
775
+
776
+ const selected = ref<string | null>('A')
777
+
778
+ const options = [
779
+ { label: 'Option A', value: 'A' },
780
+ { label: 'Option B', value: 'B' },
781
+ ]
782
+
783
+ const warningRules = [
784
+ {
785
+ type: 'custom',
786
+ options: {
787
+ validate: (value: string | null) => {
788
+ if (value !== 'A') {
789
+ return 'Vous devez sélectionner l’option A'
790
+ }
791
+ return true
792
+ },
793
+ fieldIdentifier: 'option',
794
+ },
795
+ },
796
+ ]
797
+
798
+ const successRules = [
799
+ {
800
+ type: 'custom',
801
+ options: {
802
+ validate: (value: string | null) => value === 'A',
803
+ successMessage: 'Option A sélectionnée',
804
+ fieldIdentifier: 'option',
805
+ },
806
+ },
807
+ ]
808
+ </script>`,
809
+ },
810
+ ],
811
+ },
812
+
813
+ render: args => ({
814
+ components: { SyCheckBoxGroup },
815
+ setup() {
816
+ const selected = ref<string | null>('A')
817
+ const options = [
818
+ { label: 'Option A', value: 'A' },
819
+ { label: 'Option B', value: 'B' },
820
+ ]
821
+ const warningRules = [
822
+ {
823
+ type: 'custom',
824
+ options: {
825
+ validate: (value: string | null) => {
826
+ if (value !== 'A') {
827
+ return 'Vous devez sélectionner l’option A'
828
+ }
829
+ return true
830
+ },
831
+ },
832
+ },
833
+ ]
834
+ const successRules = [
835
+ {
836
+ type: 'custom',
837
+ options: {
838
+ validate: (value: string | null) => value === 'A',
839
+ successMessage: 'Option A sélectionnée',
840
+ },
841
+ },
842
+ ]
843
+ return { args, selected, options, warningRules, successRules }
844
+ },
845
+ template: `
846
+ <SyCheckBoxGroup
847
+ v-model="selected"
848
+ label="Options"
849
+ :options="options"
850
+ :custom-warning-rules="warningRules"
851
+ :custom-success-rules="successRules"
852
+ :is-validate-on-blur="false"
853
+ />
854
+ `,
855
+ }),
856
+ }