@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
@@ -10,6 +10,7 @@ exports[`UploadWorkflow > render the upload list 1`] = `
10
10
  >
11
11
  <h4 class="
12
12
  mb-2
13
+ sy-heading
13
14
  text-h6
14
15
  ">
15
16
  Documents à nous transmettre
@@ -57,11 +58,20 @@ exports[`UploadWorkflow > render the upload list 1`] = `
57
58
  text-base
58
59
  "></div>
59
60
  <!-- v-if -->
60
- <!-- v-if -->
61
+ <div
62
+ class="
63
+ file-item__error-message
64
+ text-error
65
+ "
66
+ role="status"
67
+ >
68
+ <!-- v-if -->
69
+ </div>
61
70
  </div>
62
71
  </div>
63
72
  <div class="file-item__actions">
64
73
  <button
74
+ aria-label="Importer le fichier Carte d'identité"
65
75
  class="
66
76
  file-item__action
67
77
  file-item__action-upload
@@ -164,11 +174,20 @@ exports[`UploadWorkflow > render the upload list 1`] = `
164
174
  text-base
165
175
  "></div>
166
176
  <!-- v-if -->
167
- <!-- v-if -->
177
+ <div
178
+ class="
179
+ file-item__error-message
180
+ text-error
181
+ "
182
+ role="status"
183
+ >
184
+ <!-- v-if -->
185
+ </div>
168
186
  </div>
169
187
  </div>
170
188
  <div class="file-item__actions">
171
189
  <button
190
+ aria-label="Importer le fichier Facture de soin"
172
191
  class="
173
192
  file-item__action
174
193
  file-item__action-upload
@@ -238,124 +257,132 @@ exports[`UploadWorkflow > render the upload list 1`] = `
238
257
  css="true"
239
258
  persisted="false"
240
259
  >
241
- <label
242
- class="
243
- d-block
244
- mt-6
245
- pa-4
246
- sy-file-upload
247
- "
248
- for="file-upload-v-2"
249
- style="width: 100%;"
250
- >
260
+ <div class="
261
+ mt-6
262
+ sy-file-upload-wrapper
263
+ ">
251
264
  <input
252
265
  accept=".pdf, .jpg, .jpeg, .png"
266
+ aria-hidden="true"
253
267
  class="sy-file-upload-input"
254
268
  id="file-upload-v-2"
269
+ tabindex="-1"
255
270
  type="file"
256
271
  />
257
- <span class="sy-file-upload-placeholder">
258
- <i
259
- aria-hidden="true"
260
- class="
261
- 1
262
- 1
263
- 1
264
- 11
265
- 11.1
266
- 11.2
267
- 12
268
- 12.5
269
- 12.63
270
- 12.85Z
271
- 13.78
272
- 13L12
273
- 13L9.4
274
- 14.4L11
275
- 14.4L16
276
- 14.58
277
- 14.93
278
- 15.5
279
- 16.85
280
- 16.96
281
- 17.38
282
- 18.43
283
- 18.5
284
- 18.69
285
- 19
286
- 19
287
- 2.17
288
- 2.61
289
- 20
290
- 20
291
- 20.38
292
- 20.73
293
- 20H13V12.85L14.6
294
- 20H6.5Q4.22
295
- 21.69
296
- 21.86
297
- 23
298
- 23
299
- 23
300
- 3.35
301
- 4
302
- 4
303
- 4
304
- 5.25
305
- 5.43
306
- 5.88
307
- 6.04
308
- 6.85
309
- 7.75
310
- 8.07
311
- 9.15
312
- 9.57
313
- 9.63
314
- 9L8
315
- M11
316
- mdi
317
- notranslate
318
- text-primary
319
- v-icon
320
- v-theme--light
321
- "
322
- style="
323
- font-size: 40px;
324
- height: 40px;
325
- width: 40px;
326
- "
327
- ></i>
328
- <span class="
329
- font-weight-medium
330
- mt-1
331
- text-black
332
- ">
333
- <span>
334
- Déposer votre fichier ici
272
+ <div
273
+ class="
274
+ d-block
275
+ mt-6
276
+ pa-4
277
+ sy-file-upload
278
+ "
279
+ role="button"
280
+ style="width: 100%;"
281
+ tabindex="0"
282
+ title="Téléverser un fichier"
283
+ >
284
+ <span class="sy-file-upload-placeholder">
285
+ <i
286
+ aria-hidden="true"
287
+ class="
288
+ 1
289
+ 1
290
+ 1
291
+ 11
292
+ 11.1
293
+ 11.2
294
+ 12
295
+ 12.5
296
+ 12.63
297
+ 12.85Z
298
+ 13.78
299
+ 13L12
300
+ 13L9.4
301
+ 14.4L11
302
+ 14.4L16
303
+ 14.58
304
+ 14.93
305
+ 15.5
306
+ 16.85
307
+ 16.96
308
+ 17.38
309
+ 18.43
310
+ 18.5
311
+ 18.69
312
+ 19
313
+ 19
314
+ 2.17
315
+ 2.61
316
+ 20
317
+ 20
318
+ 20.38
319
+ 20.73
320
+ 20H13V12.85L14.6
321
+ 20H6.5Q4.22
322
+ 21.69
323
+ 21.86
324
+ 23
325
+ 23
326
+ 23
327
+ 3.35
328
+ 4
329
+ 4
330
+ 4
331
+ 5.25
332
+ 5.43
333
+ 5.88
334
+ 6.04
335
+ 6.85
336
+ 7.75
337
+ 8.07
338
+ 9.15
339
+ 9.57
340
+ 9.63
341
+ 9L8
342
+ M11
343
+ mdi
344
+ notranslate
345
+ text-primary
346
+ v-icon
347
+ v-theme--light
348
+ "
349
+ style="
350
+ font-size: 40px;
351
+ height: 40px;
352
+ width: 40px;
353
+ "
354
+ ></i>
355
+ <span class="
356
+ font-weight-medium
357
+ mt-1
358
+ text-black
359
+ ">
360
+ <span>
361
+ Déposer votre fichier ici
362
+ </span>
363
+ </span>
364
+ <span class="
365
+ mb-2
366
+ sy-file-upload-caption
367
+ ">
368
+ Ou
369
+ </span>
370
+ <span class="
371
+ bg-primary
372
+ sy-file-upload-btn
373
+ text-white
374
+ ">
375
+ Choisir un fichier
376
+ </span>
377
+ <span class="
378
+ mt-4
379
+ sy-file-upload-caption
380
+ ">
381
+ Taille max. : 10 Mo. Formats acceptés : pdf, jpg, jpeg, png
335
382
  </span>
336
383
  </span>
337
- <span class="
338
- mb-2
339
- sy-file-upload-caption
340
- ">
341
- Ou
342
- </span>
343
- <span class="
344
- bg-primary
345
- elevation-2
346
- sy-file-upload-btn
347
- text-white
348
- ">
349
- Choisir un fichier
350
- </span>
351
- <span class="
352
- mt-4
353
- sy-file-upload-caption
354
- ">
355
- Taille max. : 10 Mo. Formats acceptés : pdf, jpg, jpeg, png
356
- </span>
357
- </span>
358
- </label>
384
+ </div>
385
+ </div>
359
386
  </transition-stub>
360
387
  <!---->
361
388
  <!---->
@@ -8,6 +8,10 @@ export default function useFileList(
8
8
  ) {
9
9
  const errorSelectedFiles = ref<string[]>([])
10
10
 
11
+ function notifySelectedFilesChanged() {
12
+ selectedFiles.value = selectedFiles.value.slice()
13
+ }
14
+
11
15
  function removeFromErrorList(fileId: string) {
12
16
  const errorIndex = errorSelectedFiles.value.findIndex(item => item === fileId)
13
17
  if (errorIndex !== -1) {
@@ -22,12 +26,14 @@ export default function useFileList(
22
26
  function resetFile(fileItem: FileListItem | SelectedFile) {
23
27
  const itemIndex = selectedFiles.value.findIndex(item => item.id === fileItem.id)
24
28
  selectedFiles.value.splice(itemIndex, 1)
29
+ notifySelectedFilesChanged()
25
30
  }
26
31
 
27
32
  function replaceFile(file: File, item: SelectedFile, state: FileState = 'success') {
28
33
  item.file = file
29
34
  item.fileName = file.name
30
35
  item.state = state
36
+ notifySelectedFilesChanged()
31
37
  }
32
38
 
33
39
  function addOrReplaceFile(file: File, fileId: string, state: FileState = 'success') {
@@ -52,6 +58,7 @@ export default function useFileList(
52
58
  fileName: file.name,
53
59
  file,
54
60
  })
61
+ notifySelectedFilesChanged()
55
62
  removeFromErrorList(fileId)
56
63
  }
57
64
  }
@@ -1,4 +1,5 @@
1
1
  import type { Meta, StoryObj } from '@storybook/vue3'
2
+ import { mdiAccount, mdiCog, mdiShieldAccount } from '@mdi/js'
2
3
  import UserMenuBtn from './UserMenuBtn.vue'
3
4
 
4
5
  const meta = {
@@ -63,7 +64,7 @@ const meta = {
63
64
  description: 'Liste des éléments du menu utilisateur',
64
65
  table: {
65
66
  type: {
66
- summary: '{ text: string, value: string, link?: string, to?: RouteLocationRaw }[]',
67
+ summary: '{ text: string, value: string, link?: string, to?: RouteLocationRaw, icon?: string }[]',
67
68
  },
68
69
  },
69
70
  },
@@ -143,9 +144,6 @@ type Story = StoryObj<typeof meta>
143
144
 
144
145
  export const Default: Story = {
145
146
  parameters: {
146
- a11y: {
147
- disable: true,
148
- },
149
147
  sourceCode: [
150
148
  {
151
149
  name: 'Template',
@@ -197,11 +195,59 @@ export const Default: Story = {
197
195
  }
198
196
  },
199
197
  }
198
+
199
+ export const WithIcons: Story = {
200
+ parameters: {
201
+ sourceCode: [
202
+ {
203
+ name: 'Template',
204
+ code: `<template>
205
+ <UserMenuBtn
206
+ v-model="selected"
207
+ :menu-items="menuItems"
208
+ />
209
+ </template>`,
210
+ },
211
+ {
212
+ name: 'Script',
213
+ code: `<script setup lang="ts">
214
+ import { ref } from 'vue'
215
+ import { mdiAccount, mdiCog, mdiShieldAccount } from '@mdi/js'
216
+ import { UserMenuBtn } from '@cnamts/synapse'
217
+
218
+ const selected = ref(null)
219
+ const menuItems = ref([
220
+ { text: 'Administration', value: 'Administration', icon: mdiShieldAccount },
221
+ { text: 'Profil', value: 'Profil', icon: mdiAccount },
222
+ { text: 'Paramètres', value: 'Paramètres', icon: mdiCog },
223
+ ])
224
+ </script>`,
225
+ },
226
+ ],
227
+ },
228
+ args: {
229
+ ...Default.args,
230
+ menuItems: [
231
+ { text: 'Administration', value: 'Administration', icon: mdiShieldAccount },
232
+ { text: 'Profil', value: 'Profil', icon: mdiAccount },
233
+ { text: 'Paramètres', value: 'Paramètres', icon: mdiCog },
234
+ ],
235
+ },
236
+ render: (args) => {
237
+ return {
238
+ components: { UserMenuBtn },
239
+ setup() {
240
+ return { args }
241
+ },
242
+ template: `
243
+ <div class="pa-4">
244
+ <UserMenuBtn v-bind="args"/>
245
+ </div>`,
246
+ }
247
+ },
248
+ }
200
249
  export const HideLogoutButton: Story = {
201
250
  parameters: {
202
- a11y: {
203
- disable: true,
204
- },
205
251
  sourceCode: [
206
252
  {
207
253
  name: 'Template',
@@ -251,9 +297,6 @@ export const HideLogoutButton: Story = {
251
297
 
252
298
  export const HideUserIcon: Story = {
253
299
  parameters: {
254
- a11y: {
255
- disable: true,
256
- },
257
300
  sourceCode: [
258
301
  {
259
302
  name: 'Template',
@@ -303,9 +346,6 @@ export const HideUserIcon: Story = {
303
346
 
304
347
  export const MobileVersion: Story = {
305
348
  parameters: {
306
- a11y: {
307
- disable: true,
308
- },
309
349
  sourceCode: [
310
350
  {
311
351
  name: 'Template',
@@ -355,9 +395,6 @@ export const MobileVersion: Story = {
355
395
 
356
396
  export const CustomFullName: Story = {
357
397
  parameters: {
358
- a11y: {
359
- disable: true,
360
- },
361
398
  sourceCode: [
362
399
  {
363
400
  name: 'Template',
@@ -407,9 +444,6 @@ export const CustomFullName: Story = {
407
444
 
408
445
  export const CustomLogoutText: Story = {
409
446
  parameters: {
410
- a11y: {
411
- disable: true,
412
- },
413
447
  sourceCode: [
414
448
  {
415
449
  name: 'Template',
@@ -459,9 +493,6 @@ export const CustomLogoutText: Story = {
459
493
 
460
494
  export const CustomAdditionalInformation: Story = {
461
495
  parameters: {
462
- a11y: {
463
- disable: true,
464
- },
465
496
  sourceCode: [
466
497
  {
467
498
  name: 'Template',
@@ -511,9 +542,6 @@ export const CustomAdditionalInformation: Story = {
511
542
 
512
543
  export const WithVuetifyOptions: Story = {
513
544
  parameters: {
514
- a11y: {
515
- disable: true,
516
- },
517
545
  sourceCode: [
518
546
  {
519
547
  name: 'Template',
@@ -575,9 +603,6 @@ export const WithVuetifyOptions: Story = {
575
603
 
576
604
  export const LogoutEvent: Story = {
577
605
  parameters: {
578
- a11y: {
579
- disable: true,
580
- },
581
606
  sourceCode: [
582
607
  {
583
608
  name: 'Template',
@@ -631,9 +656,6 @@ export const LogoutEvent: Story = {
631
656
 
632
657
  export const Slot: Story = {
633
658
  parameters: {
634
- a11y: {
635
- disable: true,
636
- },
637
659
  sourceCode: [
638
660
  {
639
661
  name: 'Template',
@@ -8,7 +8,7 @@
8
8
  import { defaultOptions } from './config'
9
9
  import SyIcon from '@/components/Customs/SyIcon/SyIcon.vue'
10
10
 
11
- type MenuItem = { text: string, value: string, link?: string, to?: RouteLocationRaw }
11
+ type MenuItem = { text: string, value: string, link?: string, to?: RouteLocationRaw, icon?: string }
12
12
 
13
13
  const props = withDefaults(defineProps<CustomizableOptions & {
14
14
  menuItems?: MenuItem[]
@@ -70,6 +70,9 @@
70
70
  <VListItem
71
71
  v-if="!hideLogoutBtn"
72
72
  class="logout"
73
+ tag="li"
74
+ role="menuitem"
75
+ tabindex="0"
73
76
  v-bind="options['logoutListItem']"
74
77
  @click="$emit('logout')"
75
78
  >
@@ -1,12 +1,76 @@
1
- import { Meta, Story } from '@storybook/addon-docs';
2
- import * as Stories from '../UserMenuBtn.stories.ts';
1
+ import { Meta, Primary } from '@storybook/blocks';
2
+ import * as UserMenuBtnStories from '../UserMenuBtn.stories.ts';
3
+ import AccessibilityIcon from '@/common/imgs/accessibility-svgrepo-com.svg';
3
4
  import '@/stories/styles/shared.css';
5
+ import {
6
+ AccessibilityGuideLayout,
7
+ CriteriaSection,
8
+ CriteriaCard,
9
+ DemoSection,
10
+ BestPracticesSection,
11
+ ResourcesSection,
12
+ } from '@/stories/accessibility/AccessibilityGuideLayout.mdx';
4
13
 
5
- <Meta of={Stories} />
14
+ <Meta of={UserMenuBtnStories} />
6
15
 
7
- <div className="header">
8
- <h1>Accessibilité</h1>
9
- <p>Cette page sera bientôt disponible</p>
10
- </div>
16
+ <AccessibilityGuideLayout
17
+ componentName="UserMenuBtn"
18
+ iconSrc={AccessibilityIcon}
19
+ apgHref="https://www.w3.org/WAI/ARIA/apg/patterns/menu-button/"
20
+ >
21
+ <CriteriaSection>
22
+ <CriteriaCard icon="🔍" title="Structure sémantique">
23
+ <ul>
24
+ <li><strong>Rôles ARIA</strong> : <code>role="menu"</code> pour la liste et <code>role="menuitem"</code> pour chaque option (y compris le bouton de déconnexion).</li>
25
+ <li><strong>Attributs d'association</strong> : <code>aria-labelledby</code> relie le menu au bouton généré, <code>aria-haspopup</code>/<code>aria-expanded</code>/<code>aria-controls</code> sont gérés par <code>VMenu</code>.</li>
26
+ <li><strong>Étiquette accessible</strong> : un texte masqué (<code>label</code>, par défaut « Menu utilisateur ») assure le nom du bouton, même en mode icône seule.</li>
27
+ <li><strong>Suivi de l'item actif</strong> : <code>aria-activedescendant</code> pointe vers l'option active via un identifiant slugifié.</li>
28
+ </ul>
29
+ </CriteriaCard>
11
30
 
12
- <br />
31
+ <CriteriaCard icon="⌨️" title="Navigation clavier complète">
32
+ <ul>
33
+ <li><strong>Tabulation</strong> : accès au bouton puis parcours des options.</li>
34
+ <li><strong>Entrée/Espace</strong> : ouverture du menu et activation d'une option.</li>
35
+ <li><strong>Flèches</strong> : navigation verticale entre les éléments du menu.</li>
36
+ <li><strong>Échap</strong> : fermeture du menu et restitution du focus sur le bouton.</li>
37
+ </ul>
38
+ </CriteriaCard>
39
+
40
+ <CriteriaCard icon="🎯" title="Gestion du focus & retours">
41
+ <ul>
42
+ <li>Focus placé sur la première option à l'ouverture, puis renvoyé vers le bouton à la fermeture.</li>
43
+ <li><code>aria-expanded</code> reflète l'état d'ouverture ; <code>aria-current="page"</code> sur l'élément sélectionné.</li>
44
+ <li>Styles <code>:focus-visible</code> renforcés sur le bouton et les éléments du menu pour une indication claire.</li>
45
+ </ul>
46
+ </CriteriaCard>
47
+
48
+ <CriteriaCard icon="📱" title="Compatibilité mobile & personnalisation">
49
+ <ul>
50
+ <li>Modes <code>isMobileView</code> et <code>iconOnly</code> compactent l'affichage tout en conservant un libellé pour les lecteurs d'écran.</li>
51
+ <li>Options <code>menu</code> / <code>btn</code> / <code>list</code> personnalisables sans dégrader les attributs ARIA.</li>
52
+ <li>Le bouton de déconnexion optionnel (<code>hideLogoutBtn</code>) reste exposé comme élément de menu clavier/navigateur.</li>
53
+ </ul>
54
+ </CriteriaCard>
55
+ </CriteriaSection>
56
+
57
+ <DemoSection componentName="UserMenuBtn">
58
+ <Primary />
59
+ </DemoSection>
60
+
61
+ <BestPracticesSection>
62
+ <ul>
63
+ <li>Fournir un libellé clair pour <code>label</code> (ex. « Menu utilisateur », « Compte de Marie »), surtout en mode icône seule.</li>
64
+ <li>Limiter le nombre d'options et placer les actions destructives ou sensibles (ex. déconnexion) en fin de liste.</li>
65
+ <li>Utiliser des intitulés explicites pour les éléments du menu ; éviter les abréviations ou les seules icônes.</li>
66
+ <li>Vérifier le focus visible et le contraste des états actifs/sélectionnés, notamment sur fond personnalisé.</li>
67
+ </ul>
68
+ </BestPracticesSection>
69
+
70
+ <ResourcesSection>
71
+ <ul>
72
+ <li><a href="https://www.w3.org/WAI/ARIA/apg/patterns/menu-button/" target="_blank" rel="noopener noreferrer">WAI-ARIA Authoring Practices : Menu button</a></li>
73
+ <li><a href="https://inclusive-components.design/menus-menu-buttons/" target="_blank" rel="noopener noreferrer">Inclusive Components : Menus &amp; Menu Buttons</a></li>
74
+ </ul>
75
+ </ResourcesSection>
76
+ </AccessibilityGuideLayout>
@@ -12,6 +12,7 @@ export { default as HeaderMenuBtn } from './HeaderBar/HeaderMenuBtn/HeaderMenuBt
12
12
  export { default as HeaderLoading } from './HeaderLoading/HeaderLoading.vue'
13
13
  export { default as HeaderToolbar } from './HeaderToolbar/HeaderToolbar.vue'
14
14
  export { default as SubHeader } from './SubHeader/SubHeader.vue'
15
+ export { default as SyHeading } from './SyHeading/SyHeading.vue'
15
16
 
16
17
  // ===========================
17
18
  // Layout
@@ -53,6 +54,7 @@ export { default as SySelect } from './Customs/Selects/SySelect/SySelect.vue'
53
54
  export { default as SyAutocomplete } from './Customs/Selects/SyAutocomplete/SyAutocomplete.vue'
54
55
  // export { default as SyBtnSelect } from './Customs/Selects/SyBtnSelect/SyBtnSelect.vue'
55
56
  export { default as SyCheckbox } from './Customs/SyCheckbox/SyCheckbox.vue'
57
+ export { default as SyCheckBoxGroup } from './Customs/SyCheckBoxGroup/SyCheckBoxGroup.vue'
56
58
  export { default as SyForm } from './Customs/SyForm/SyForm.vue'
57
59
  export { default as SyRadioGroup } from './Customs/SyRadioGroup/SyRadioGroup.vue'
58
60
  export { default as SyTextField } from './Customs/SyTextField/SyTextField.vue'
@@ -119,6 +121,8 @@ export { default as SyAlert } from './SyAlert/SyAlert.vue'
119
121
  export { default as ErrorPage } from './ErrorPage/ErrorPage.vue'
120
122
  export { default as MaintenancePage } from './MaintenancePage/MaintenancePage.vue'
121
123
  export { default as NotFoundPage } from './NotFoundPage/NotFoundPage.vue'
124
+ export { default as StatusPage } from './StatusPage/StatusPage.vue'
125
+ export { default as DeclarationAccessibilityPage } from './DeclarationAccessibilityPage/DeclarationAccessibilityPage.vue'
122
126
 
123
127
  // ===========================
124
128
  // Amelipro
@@ -8,3 +8,7 @@ export type NavigationProps =
8
8
  | { href: string, to?: never }
9
9
  | { to: RouteLocationRaw, href?: never }
10
10
  | { href?: never, to?: never }
11
+
12
+ // Type pour les rôles ARIA utilisés dans les composants
13
+ export type AriaRole = 'main' | 'region' | 'navigation' | 'contentinfo' | 'banner'
14
+ export type PageAriaRole = 'main' | 'region'
@@ -1,4 +1,4 @@
1
- import { describe, it, expect } from 'vitest'
1
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest'
2
2
  import { initializeSelectedDates, type DateInput } from '../useDateInitialization'
3
3
 
4
4
  describe('useDateInitialization', () => {
@@ -76,6 +76,27 @@ describe('useDateInitialization', () => {
76
76
  expect((result2 as Date).getDate()).toBe(15)
77
77
  })
78
78
 
79
+ describe('timezone regression', () => {
80
+ let tzOffsetSpy: ReturnType<typeof vi.spyOn> | null = null
81
+
82
+ beforeEach(() => {
83
+ tzOffsetSpy = vi.spyOn(Date.prototype, 'getTimezoneOffset').mockReturnValue(240)
84
+ })
85
+
86
+ afterEach(() => {
87
+ tzOffsetSpy?.mockRestore()
88
+ tzOffsetSpy = null
89
+ })
90
+
91
+ it('does not shift day when parsing YYYY-MM-DD in a negative timezone (regression)', () => {
92
+ const result = initializeSelectedDates('2022-10-18', 'DD/MM/YYYY', 'YYYY-MM-DD')
93
+ expect(result).toBeInstanceOf(Date)
94
+ expect((result as Date).getFullYear()).toBe(2022)
95
+ expect((result as Date).getMonth()).toBe(9)
96
+ expect((result as Date).getDate()).toBe(18)
97
+ })
98
+ })
99
+
79
100
  it('returns null for object input', () => {
80
101
  const result = initializeSelectedDates({}, 'DD/MM/YYYY')
81
102
  expect(result).toBeNull()