@cnamts/synapse 1.0.18 → 1.0.20

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 (294) hide show
  1. package/dist/{DateFilter-C0qj2Xp4.js → DateFilter-XURUmpMl.js} +1 -1
  2. package/dist/{NumberFilter-DLlqjkwg.js → NumberFilter-BZc0O8wV.js} +1 -1
  3. package/dist/{PeriodFilter-BQCGbydv.js → PeriodFilter-ZNdXcl3p.js} +1 -1
  4. package/dist/{SelectFilter-CPnShk0h.js → SelectFilter-DshYU5OK.js} +1 -1
  5. package/dist/{TextFilter-6N05mkcs.js → TextFilter-D_c5dRPl.js} +1 -1
  6. package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +4 -4
  7. package/dist/components/Amelipro/AmeliproCaptcha/AmeliproCaptcha.d.ts +1 -1
  8. package/dist/components/Amelipro/AmeliproCard/AmeliproCard.d.ts +1 -1
  9. package/dist/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.d.ts +18 -8
  10. package/dist/components/Amelipro/AmeliproFilters/types.d.ts +6 -0
  11. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +4 -4
  12. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +4 -4
  13. package/dist/components/Captcha/Captcha.d.ts +1 -1
  14. package/dist/components/Customs/Selects/SyAutocomplete/SyAutocomplete.d.ts +2416 -0
  15. package/dist/components/Customs/Selects/SyAutocomplete/types.d.ts +5 -0
  16. package/dist/components/Customs/Selects/SyAutocomplete/utils/ariaManager.d.ts +14 -0
  17. package/dist/components/Customs/Selects/SyAutocomplete/utils/useItemUtils.d.ts +16 -0
  18. package/dist/components/Customs/Selects/SyAutocomplete/utils/useKeyboardHandler.d.ts +28 -0
  19. package/dist/components/Customs/Selects/SyAutocomplete/utils/useSelectionLogic.d.ts +12 -0
  20. package/dist/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.d.ts +2 -0
  21. package/dist/components/Customs/SyIcon/SyIcon.d.ts +2 -1
  22. package/dist/components/DatePicker/composables/useDateSelection.d.ts +1 -0
  23. package/dist/components/PaginatedTable/PaginatedTable.d.ts +1 -1
  24. package/dist/components/PaginatedTable/Pagination.d.ts +17 -0
  25. package/dist/components/{Customs/Selects/SyBtnSelect/SyBtnSelect.d.ts → SyBtnMenu/SyBtnMenu.d.ts} +2 -17
  26. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +5 -5
  27. package/dist/components/Tables/SyTable/SyTable.d.ts +5 -5
  28. package/dist/components/UserMenuBtn/UserMenuBtn.d.ts +2 -2
  29. package/dist/components/index.d.ts +22 -21
  30. package/dist/components/types.d.ts +15 -0
  31. package/dist/composables/useFormFieldErrorHandling.d.ts +31 -0
  32. package/dist/design-system-v3.js +70 -69
  33. package/dist/design-system-v3.umd.cjs +321 -310
  34. package/dist/{main-CY1bof-3.js → main-CuI6xaPq.js} +14328 -13576
  35. package/dist/modules.d.ts +6 -0
  36. package/dist/style.css +1 -1
  37. package/package.json +9 -10
  38. package/src/assets/amelipro/icons.ts +166 -153
  39. package/src/components/Accordion/Accordion.mdx +4 -1
  40. package/src/components/Accordion/{Accessibilite/AccessibilityGuide.mdx → accessibilite/Accessibility.mdx} +3 -3
  41. package/src/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.stories.ts +73 -14
  42. package/src/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.vue +119 -27
  43. package/src/components/Amelipro/AmeliproClickableTile/tests/AmeliproClickableTile.a11y.spec.ts +304 -0
  44. package/src/components/Amelipro/AmeliproClickableTile/tests/AmeliproClickableTile.spec.ts +435 -9
  45. package/src/components/Amelipro/AmeliproClickableTile/tests/__snapshots__/AmeliproClickableTile.spec.ts.snap +60 -0
  46. package/src/components/Amelipro/AmeliproFilters/AmeliproFilters.mdx +14 -0
  47. package/src/components/Amelipro/AmeliproFilters/AmeliproFilters.stories.ts +106 -0
  48. package/src/components/Amelipro/AmeliproFilters/AmeliproFilters.vue +218 -0
  49. package/src/components/Amelipro/AmeliproFilters/__tests__/AmeliproFilters.spec.ts +180 -0
  50. package/src/components/Amelipro/AmeliproFilters/types.d.ts +6 -0
  51. package/src/components/Amelipro/AmeliproIcon/__tests__/AmeliproIcon.spec.ts +1 -1
  52. package/src/components/Amelipro/AmeliproIcon/iconList.ts +2 -0
  53. package/src/components/BackBtn/BackBtn.vue +5 -4
  54. package/src/components/BackBtn/accessibilite/Accessibility.mdx +15 -0
  55. package/src/components/BackToTopBtn/BackToTopBtn.vue +6 -3
  56. package/src/components/BackToTopBtn/accessibilite/Accessibility.mdx +15 -0
  57. package/src/components/Captcha/Captcha.vue +5 -1
  58. package/src/components/Captcha/CaptchaAlert.vue +9 -7
  59. package/src/components/Captcha/accessibilite/Accessibility.mdx +10 -0
  60. package/src/components/ChipList/accessibilite/Accessibility.mdx +15 -0
  61. package/src/components/CollapsibleList/{Accessibilite.mdx → accessibilite/Accessibility.mdx} +8 -6
  62. package/src/components/Common/IconSlot/IconSlot.vue +1 -1
  63. package/src/components/ContextualMenu/accessibilite/Accessibility.mdx +15 -0
  64. package/src/components/CookieBanner/accessibilite/Accessibility.mdx +15 -0
  65. package/src/components/CookiesSelection/CookiesInformation/CookiesInformation.vue +5 -4
  66. package/src/components/CopyBtn/CopyBtn.vue +6 -3
  67. package/src/components/CopyBtn/accessibilite/Accessibility.mdx +15 -0
  68. package/src/components/Customs/Selects/SelectBtnField/accessibilite/Accessibility.mdx +15 -0
  69. package/src/components/Customs/Selects/SelectOverview.mdx +61 -18
  70. package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.mdx +52 -0
  71. package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.stories.ts +979 -0
  72. package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.vue +653 -0
  73. package/src/components/Customs/Selects/{SySelect → SyAutocomplete/accessibilite}/Accessibilite.stories.ts +7 -38
  74. package/src/components/Customs/Selects/{SySelect/Accessibilite.mdx → SyAutocomplete/accessibilite/Accessibility.mdx} +15 -20
  75. package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.a11y.spec.ts +72 -0
  76. package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.spec.ts +345 -0
  77. package/src/components/Customs/Selects/SyAutocomplete/types.ts +7 -0
  78. package/src/components/Customs/Selects/SyAutocomplete/utils/ariaManager.ts +180 -0
  79. package/src/components/Customs/Selects/SyAutocomplete/utils/useItemUtils.ts +46 -0
  80. package/src/components/Customs/Selects/SyAutocomplete/utils/useKeyboardHandler.ts +107 -0
  81. package/src/components/Customs/Selects/SyAutocomplete/utils/useSelectionLogic.ts +74 -0
  82. package/src/components/Customs/Selects/SyInputSelect/SyInputSelect.vue +13 -9
  83. package/src/components/Customs/Selects/SyInputSelect/accessibilite/Accessibility.mdx +12 -0
  84. package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +43 -34
  85. package/src/components/Customs/Selects/SySelect/SySelect.vue +19 -2
  86. package/src/components/Customs/Selects/SySelect/accessibilite/Accessibility.mdx +274 -0
  87. package/src/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.ts +21 -16
  88. package/src/components/Customs/SyCheckbox/{Accessibilite.mdx → accessibilite/Accessibility.mdx} +2 -2
  89. package/src/components/Customs/SyForm/accessibilite/Accessibility.mdx +10 -0
  90. package/src/components/Customs/SyIcon/SyIcon.mdx +4 -1
  91. package/src/components/Customs/SyIcon/SyIcon.vue +4 -3
  92. package/src/components/Customs/SyIcon/{Accessibilite.stories.ts → accessibilite/Accessibilite.stories.ts} +3 -3
  93. package/src/components/Customs/SyIcon/{Accessibilite.mdx → accessibilite/Accessibility.mdx} +2 -2
  94. package/src/components/Customs/SyPagination/SyPagination.mdx +4 -2
  95. package/src/components/Customs/SyPagination/accessibilite/Accessibility.mdx +10 -0
  96. package/src/components/Customs/SyRadioGroup/{Accessibilite.mdx → accessibilite/Accessibility.mdx} +2 -2
  97. package/src/components/Customs/SyTabs/SyTabs.mdx +4 -2
  98. package/src/components/Customs/SyTabs/{Accessibilite.mdx → accessibilite/Accessibility.mdx} +2 -2
  99. package/src/components/Customs/SyTextField/SyTextField.mdx +1 -2
  100. package/src/components/Customs/SyTextField/SyTextField.vue +13 -0
  101. package/src/components/Customs/SyTextField/accessibilite/Accessibility.mdx +15 -0
  102. package/src/components/DataList/accessibilite/Accessibility.mdx +15 -0
  103. package/src/components/DataListGroup/accessibilite/Accessibility.mdx +14 -0
  104. package/src/components/DatePicker/Accessibilite.mdx +1 -1
  105. package/src/components/DatePicker/Accessibilite.stories.ts +1 -1
  106. package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +7 -4
  107. package/src/components/DatePicker/CalendarMode/DatePicker.vue +14 -2
  108. package/src/components/DatePicker/CalendarMode/tests/DatePicker.spec.ts +19 -6
  109. package/src/components/DatePicker/DatePickerValidationExample/DatePickerValidation.stories.ts +297 -0
  110. package/src/components/DatePicker/composables/useDateSelection.ts +5 -0
  111. package/src/components/DatePicker/docExamples/BidirectionalComplexValidation.vue +273 -0
  112. package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +4 -4
  113. package/src/components/DatePicker/docExamples/DatePickerValidationExamples.vue +10 -0
  114. package/src/components/DiacriticPicker/accessibilite/Accessibility.mdx +10 -0
  115. package/src/components/DialogBox/accessibilite/Accessibility.mdx +15 -0
  116. package/src/components/DownloadBtn/DownloadBtn.vue +5 -4
  117. package/src/components/DownloadBtn/accessibilite/Accessibility.mdx +15 -0
  118. package/src/components/ErrorPage/accessibilite/Accessibility.mdx +15 -0
  119. package/src/components/ExternalLinks/accessibilite/Accessibility.mdx +15 -0
  120. package/src/components/FileList/UploadItem/UploadItem.vue +25 -20
  121. package/src/components/FileList/accessibilite/Accessibility.mdx +12 -0
  122. package/src/components/FilePreview/accessibilite/Accessibility.mdx +12 -0
  123. package/src/components/FileUpload/FileUploadContent.vue +5 -4
  124. package/src/components/FileUpload/accessibilite/Accessibility.mdx +12 -0
  125. package/src/components/FilterInline/FilterInline.vue +5 -4
  126. package/src/components/FilterInline/accessibilite/Accessibility.mdx +12 -0
  127. package/src/components/FilterSideBar/accessibilite/Accessibility.mdx +15 -0
  128. package/src/components/FooterBar/{Accessibilite.mdx → accessibilite/Accessibility.mdx} +3 -4
  129. package/src/components/FranceConnectBtn/FranceConnectBtn.vue +6 -5
  130. package/src/components/FranceConnectBtn/accessibilite/Accessibility.mdx +15 -0
  131. package/src/components/FranceConnectBtn/tests/__snapshots__/FranceConnectBtn.spec.ts.snap +3 -0
  132. package/src/components/HeaderBar/HeaderBurgerMenu/accessibilite/Accessibility.mdx +15 -0
  133. package/src/components/HeaderBar/accessibilite/Accessibility.mdx +15 -0
  134. package/src/components/HeaderBar/{Usages.mdx → usages/Usages.mdx} +2 -2
  135. package/src/components/HeaderLoading/{Accessibilite.mdx → accessibilite/Accessibility.mdx} +9 -5
  136. package/src/components/HeaderToolbar/accessibilite/Accessibility.mdx +15 -0
  137. package/src/components/LangBtn/LangBtn.vue +5 -4
  138. package/src/components/LangBtn/accessibilite/Accessibility.mdx +15 -0
  139. package/src/components/Logo/accessibilite/Accessibility.mdx +17 -0
  140. package/src/components/LogoBrandSection/accessibilite/Accessibility.mdx +12 -0
  141. package/src/components/LunarCalendar/accessibilite/Accessibility.mdx +10 -0
  142. package/src/components/MaintenancePage/accessibilite/Accessibility.mdx +15 -0
  143. package/src/components/NirField/accessibilite/Accessibility.mdx +15 -0
  144. package/src/components/NotFoundPage/accessibilite/Accessibility.mdx +15 -0
  145. package/src/components/NotificationBar/Notification/Notification.vue +1 -1
  146. package/src/components/NotificationBar/accessibilite/Accessibility.mdx +15 -0
  147. package/src/components/PageContainer/{AccessibilityGuide.mdx → Accessibilite/Accessibility.mdx} +7 -4
  148. package/src/components/PageContainer/Accessibilite/AccessibilityGuide.mdx +0 -0
  149. package/src/components/PaginatedTable/PaginatedTable.vue +27 -47
  150. package/src/components/PaginatedTable/Pagination.vue +93 -0
  151. package/src/components/PaginatedTable/accessibilite/Accessibility.mdx +12 -0
  152. package/src/components/PasswordField/PasswordField.vue +2 -1
  153. package/src/components/PasswordField/accessibilite/Accessibility.mdx +108 -0
  154. package/src/components/PeriodField/accessibilite/Accessibility.mdx +12 -0
  155. package/src/components/PhoneField/accessibilite/Accessibility.mdx +15 -0
  156. package/src/components/RangeField/accessibilite/Accessibility.mdx +15 -0
  157. package/src/components/RatingPicker/accessibilite/Accessibility.mdx +15 -0
  158. package/src/components/SearchListField/SearchListField.vue +6 -3
  159. package/src/components/SearchListField/accessibilite/Accessibility.mdx +15 -0
  160. package/src/components/SkipLink/{Accessibilite.mdx → accessibilite/Accessibility.mdx} +7 -4
  161. package/src/components/SocialMediaLinks/accessibilite/Accessibility.mdx +15 -0
  162. package/src/components/SubHeader/accessibilite/Accessibility.mdx +15 -0
  163. package/src/components/SyAlert/SyAlert.vue +6 -6
  164. package/src/components/SyAlert/accessibilite/Accessibility.mdx +12 -0
  165. package/src/components/{Customs/Selects/SyBtnSelect/SyBtnSelect.mdx → SyBtnMenu/SyBtnMenu.mdx} +8 -9
  166. package/src/components/{Customs/Selects/SyBtnSelect/SyBtnSelect.stories.ts → SyBtnMenu/SyBtnMenu.stories.ts} +80 -78
  167. package/src/components/{Customs/Selects/SyBtnSelect/SyBtnSelect.vue → SyBtnMenu/SyBtnMenu.vue} +84 -24
  168. package/src/components/SyBtnMenu/accessibilite/Accessibility.mdx +77 -0
  169. package/src/components/{Customs/Selects/SyBtnSelect/tests/SyBtnSelect.spec.ts → SyBtnMenu/tests/SyBtnMenu.spec.ts} +38 -11
  170. package/src/components/SyTextArea/accessibilite/Accessibility.mdx +10 -0
  171. package/src/components/TableToolbar/TableToolbar.vue +6 -3
  172. package/src/components/TableToolbar/accessibilite/Accessibility.mdx +12 -0
  173. package/src/components/Tables/SyServerTable/SyServerTable.mdx +4 -1
  174. package/src/components/Tables/SyServerTable/accessibilite/Accessibility.mdx +10 -0
  175. package/src/components/Tables/SyTable/SyTable.mdx +4 -1
  176. package/src/components/Tables/SyTable/accessibilite/Accessibility.mdx +10 -0
  177. package/src/components/Tables/common/TableHeader.vue +3 -1
  178. package/src/components/Tables/common/organizeColumns/OrganizeColumns.vue +18 -14
  179. package/src/components/ToolbarContainer/ToolbarContainer.mdx +2 -1
  180. package/src/components/ToolbarContainer/ToolbarContainer.stories.ts +563 -420
  181. package/src/components/ToolbarContainer/accessibilite/Accessibility.mdx +69 -0
  182. package/src/components/UploadWorkflow/accessibilite/Accessibility.mdx +12 -0
  183. package/src/components/Usages/Usages.vue +3 -2
  184. package/src/components/UserMenuBtn/UserMenuBtn.vue +10 -8
  185. package/src/components/UserMenuBtn/accessibilite/Accessibility.mdx +12 -0
  186. package/src/components/UserMenuBtn/tests/UserMenuBtn.spec.ts +3 -3
  187. package/src/components/index.ts +23 -21
  188. package/src/components/types.ts +10 -0
  189. package/src/composables/date/tests/useDateFormatDayjs.spec.ts +19 -0
  190. package/src/composables/date/useDateFormatDayjs.ts +4 -4
  191. package/src/composables/rules/useFieldValidation.ts +7 -0
  192. package/src/composables/useFormFieldErrorHandling.ts +141 -0
  193. package/src/modules.d.ts +6 -0
  194. package/src/stories/Accessibilite/Avancement/Avancement.stories.ts +1 -1
  195. package/src/stories/Accessibilite/Vuetify/VuetifyItems.ts +0 -4
  196. package/src/stories/Components/Components.stories.ts +2 -2
  197. package/src/stories/GuideDuDev/PortailAgent.stories.ts +0 -1
  198. package/src/components/BackBtn/Accessibilite.mdx +0 -14
  199. package/src/components/BackBtn/Accessibilite.stories.ts +0 -30
  200. package/src/components/BackToTopBtn/Accessibilite.mdx +0 -14
  201. package/src/components/BackToTopBtn/Accessibilite.stories.ts +0 -31
  202. package/src/components/ChipList/Accessibilite.mdx +0 -14
  203. package/src/components/ChipList/Accessibilite.stories.ts +0 -31
  204. package/src/components/CollapsibleList/Accessibilite.stories.ts +0 -29
  205. package/src/components/ContextualMenu/Accessibilite.mdx +0 -13
  206. package/src/components/ContextualMenu/Accessibilite.stories.ts +0 -29
  207. package/src/components/CookieBanner/Accessibilite.mdx +0 -13
  208. package/src/components/CookieBanner/Accessibilite.stories.ts +0 -30
  209. package/src/components/CopyBtn/Accessibilite.mdx +0 -13
  210. package/src/components/CopyBtn/Accessibilite.stories.ts +0 -29
  211. package/src/components/Customs/Selects/SelectBtnField/Accessibilite.mdx +0 -14
  212. package/src/components/Customs/Selects/SelectBtnField/Accessibilite.stories.ts +0 -29
  213. package/src/components/Customs/Selects/SyBtnSelect/Accessibilite.mdx +0 -13
  214. package/src/components/Customs/Selects/SyBtnSelect/Accessibilite.stories.ts +0 -25
  215. package/src/components/Customs/Selects/SyInputSelect/Accessibilite.mdx +0 -13
  216. package/src/components/Customs/Selects/SyInputSelect/Accessibilite.stories.ts +0 -25
  217. package/src/components/Customs/SyTextField/Accessibilite.mdx +0 -14
  218. package/src/components/Customs/SyTextField/Accessibilite.stories.ts +0 -34
  219. package/src/components/DataList/Accessibilite.mdx +0 -13
  220. package/src/components/DataList/Accessibilite.stories.ts +0 -29
  221. package/src/components/DataListGroup/Accessibilite.mdx +0 -13
  222. package/src/components/DataListGroup/Accessibilite.stories.ts +0 -29
  223. package/src/components/DialogBox/Accessibilite.mdx +0 -14
  224. package/src/components/DialogBox/Accessibilite.stories.ts +0 -29
  225. package/src/components/DownloadBtn/Accessibilite.mdx +0 -14
  226. package/src/components/DownloadBtn/Accessibilite.stories.ts +0 -29
  227. package/src/components/ErrorPage/Accessibilite.mdx +0 -13
  228. package/src/components/ErrorPage/Accessibilite.stories.ts +0 -36
  229. package/src/components/ExternalLinks/Accessibilite.mdx +0 -18
  230. package/src/components/ExternalLinks/Accessibilite.stories.ts +0 -62
  231. package/src/components/FileList/Accessibilite.mdx +0 -13
  232. package/src/components/FileList/Accessibilite.stories.ts +0 -26
  233. package/src/components/FilePreview/Accessibilite.mdx +0 -14
  234. package/src/components/FilePreview/Accessibilite.stories.ts +0 -26
  235. package/src/components/FileUpload/Accessibilite.mdx +0 -13
  236. package/src/components/FileUpload/Accessibilite.stories.ts +0 -26
  237. package/src/components/FilterInline/Accessibilite.mdx +0 -15
  238. package/src/components/FilterInline/Accessibilite.stories.ts +0 -26
  239. package/src/components/FilterSideBar/Accessibilite.mdx +0 -13
  240. package/src/components/FilterSideBar/Accessibilite.stories.ts +0 -30
  241. package/src/components/FooterBar/Accessibilite.stories.ts +0 -26
  242. package/src/components/FranceConnectBtn/Accessibilite.mdx +0 -13
  243. package/src/components/FranceConnectBtn/Accessibilite.stories.ts +0 -30
  244. package/src/components/HeaderBar/Accessibilite.mdx +0 -13
  245. package/src/components/HeaderBar/Accessibilite.stories.ts +0 -31
  246. package/src/components/HeaderBar/HeaderBurgerMenu/Accessibilite.mdx +0 -13
  247. package/src/components/HeaderBar/HeaderBurgerMenu/Accessibilite.stories.ts +0 -30
  248. package/src/components/HeaderLoading/Accessibilite.stories.ts +0 -31
  249. package/src/components/HeaderToolbar/Accessibilite.mdx +0 -13
  250. package/src/components/HeaderToolbar/Accessibilite.stories.ts +0 -36
  251. package/src/components/LangBtn/Accessibilite.mdx +0 -13
  252. package/src/components/LangBtn/Accessibilite.stories.ts +0 -32
  253. package/src/components/Logo/Accessibilite.mdx +0 -13
  254. package/src/components/Logo/Accessibilite.stories.ts +0 -30
  255. package/src/components/LogoBrandSection/Accessibilite.mdx +0 -13
  256. package/src/components/LogoBrandSection/Accessibilite.stories.ts +0 -26
  257. package/src/components/MaintenancePage/Accessibilite.mdx +0 -13
  258. package/src/components/MaintenancePage/Accessibilite.stories.ts +0 -36
  259. package/src/components/NirField/Accessibilite.mdx +0 -13
  260. package/src/components/NirField/Accessibilite.stories.ts +0 -31
  261. package/src/components/NotFoundPage/Accessibilite.mdx +0 -13
  262. package/src/components/NotFoundPage/Accessibilite.stories.ts +0 -36
  263. package/src/components/NotificationBar/Accessibilite.mdx +0 -13
  264. package/src/components/NotificationBar/Accessibilite.stories.ts +0 -30
  265. package/src/components/PageContainer/Accessibilite.mdx +0 -13
  266. package/src/components/PageContainer/Accessibilite.stories.ts +0 -30
  267. package/src/components/PaginatedTable/Accessibilite.mdx +0 -13
  268. package/src/components/PaginatedTable/Accessibilite.stories.ts +0 -26
  269. package/src/components/PasswordField/Accessibilite.mdx +0 -13
  270. package/src/components/PasswordField/Accessibilite.stories.ts +0 -121
  271. package/src/components/PeriodField/Accessibilite.mdx +0 -13
  272. package/src/components/PeriodField/Accessibilite.stories.ts +0 -27
  273. package/src/components/PhoneField/Accessibilite.mdx +0 -13
  274. package/src/components/PhoneField/Accessibilite.stories.ts +0 -32
  275. package/src/components/RangeField/Accessibilite.mdx +0 -13
  276. package/src/components/RangeField/Accessibilite.stories.ts +0 -32
  277. package/src/components/RatingPicker/Accessibilite.mdx +0 -13
  278. package/src/components/RatingPicker/Accessibilite.stories.ts +0 -30
  279. package/src/components/SearchListField/Accessibilite.mdx +0 -13
  280. package/src/components/SearchListField/Accessibilite.stories.ts +0 -30
  281. package/src/components/SkipLink/Accessibilite.stories.ts +0 -36
  282. package/src/components/SocialMediaLinks/Accessibilite.mdx +0 -13
  283. package/src/components/SocialMediaLinks/Accessibilite.stories.ts +0 -36
  284. package/src/components/SubHeader/Accessibilite.mdx +0 -13
  285. package/src/components/SubHeader/Accessibilite.stories.ts +0 -36
  286. package/src/components/SyAlert/Accessibilite.mdx +0 -13
  287. package/src/components/SyAlert/Accessibilite.stories.ts +0 -30
  288. package/src/components/TableToolbar/Accessibilite.mdx +0 -13
  289. package/src/components/TableToolbar/Accessibilite.stories.ts +0 -26
  290. package/src/components/UploadWorkflow/Accessibilite.mdx +0 -13
  291. package/src/components/UploadWorkflow/Accessibilite.stories.ts +0 -26
  292. package/src/components/UserMenuBtn/Accessibilite.mdx +0 -13
  293. package/src/components/UserMenuBtn/Accessibilite.stories.ts +0 -25
  294. /package/src/components/HeaderBar/{Usages.stories.ts → usages/Usages.stories.ts} +0 -0
@@ -0,0 +1,274 @@
1
+ import { Meta, Story } from '@storybook/addon-docs';
2
+ import * as Stories from '../SySelect.stories.ts';
3
+ import AccessibilityIcon from '@/common/imgs/accessibility-svgrepo-com.svg';
4
+ import '@/stories/styles/shared.css';
5
+
6
+ <Meta of={Stories} />
7
+
8
+
9
+ <div className="accessibility-guide">
10
+ <h1>Guide d'Accessibilité du Composant SySelect</h1>
11
+
12
+
13
+ <div className="intro-section">
14
+ <img
15
+ src={AccessibilityIcon}
16
+ alt="Icône d'accessibilité"
17
+ className="accessibility-icon"
18
+ />
19
+ <p className="intro-text">
20
+ Le composant SySelect a été conçu en suivant rigoureusement les recommandations d'accessibilité du W3C,
21
+ notamment le modèle <a href="https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-select-only/" target="_blank" rel="noopener noreferrer">WAI-ARIA pour les combobox select-only</a>.
22
+ Ce guide détaille comment notre implémentation respecte ces standards et garantit une expérience utilisateur inclusive.
23
+ </p>
24
+ </div>
25
+
26
+ <div className="criteria-section">
27
+ <h2>Critères d'accessibilité respectés</h2>
28
+
29
+ <div className="criteria-card">
30
+ <div className="criteria-header">
31
+ <span className="criteria-icon">🔍</span>
32
+ <h3>Structure sémantique</h3>
33
+ </div>
34
+ <ul>
35
+ <li><strong>Rôles ARIA appropriés</strong> : <code>role="combobox"</code> sur l'input, <code>role="listbox"</code> sur le menu déroulant</li>
36
+ <li><strong>Relations entre éléments</strong> : <code>aria-controls</code> pour lier le combobox au listbox</li>
37
+ <li><strong>Type d'interaction</strong> : <code>aria-haspopup="listbox"</code> et <code>aria-autocomplete="list"</code></li>
38
+ <li><strong>État du menu</strong> : <code>aria-expanded</code> indique si le menu est ouvert ou fermé</li>
39
+ </ul>
40
+ </div>
41
+
42
+ <div className="criteria-card">
43
+ <div className="criteria-header">
44
+ <span className="criteria-icon">⌨️</span>
45
+ <h3>Navigation clavier complète</h3>
46
+ </div>
47
+ <ul>
48
+ <li><strong>Flèches haut/bas</strong> : Navigation entre les options sans modifier la sélection</li>
49
+ <li><strong>Entrée</strong> : Sélection de l'option active et fermeture du menu</li>
50
+ <li><strong>Échap</strong> : Fermeture du menu sans modifier la sélection</li>
51
+ <li><strong>Caractères imprimables</strong> : Navigation vers l'option commençant par le(s) caractère(s) saisi(s)</li>
52
+ </ul>
53
+ </div>
54
+
55
+ <div className="criteria-card">
56
+ <div className="criteria-header">
57
+ <span className="criteria-icon">📱</span>
58
+ <h3>États et retours d'information</h3>
59
+ </div>
60
+ <ul>
61
+ <li><strong>Sélection active</strong> : <code>aria-activedescendant</code> indique l'option active pendant la navigation</li>
62
+ <li><strong>Option sélectionnée</strong> : <code>aria-selected="true"</code> sur l'option sélectionnée</li>
63
+ <li><strong>État de validation</strong> : <code>aria-required="true"</code> et <code>aria-invalid="true"</code> pour les champs obligatoires et en erreur</li>
64
+ <li><strong>Scroll automatique</strong> : Les options sont automatiquement scrollées dans la vue lors de la navigation</li>
65
+ </ul>
66
+ </div>
67
+ </div>
68
+
69
+ <div className="keyboard-section">
70
+ <h2>Détail de la navigation clavier</h2>
71
+ Le composant **SySelect** implémente le pattern de navigation au clavier recommandé par le W3C pour les *combobox select-only*.
72
+ <table
73
+ style={{
74
+ width: '100%',
75
+ borderCollapse: 'collapse',
76
+ marginTop: '1em',
77
+ }}
78
+ >
79
+ <thead>
80
+ <tr style={{ borderBottom: '1px solid #ddd', textAlign: 'left' }}>
81
+ <th style={{ padding: '8px' }}>Touche</th>
82
+ <th style={{ padding: '8px' }}>Action</th>
83
+ </tr>
84
+ </thead>
85
+ <tbody>
86
+ <tr>
87
+ <td style={{ padding: '8px' }}><code>Flèche bas</code></td>
88
+ <td style={{ padding: '8px' }}>
89
+ Ouvre le menu et déplace le focus sur la première option (ou la suivante si une option est déjà sélectionnée)
90
+ </td>
91
+ </tr>
92
+ <tr>
93
+ <td style={{ padding: '8px' }}><code>Flèche haut</code></td>
94
+ <td style={{ padding: '8px' }}>
95
+ Ouvre le menu et déplace le focus sur la dernière option
96
+ </td>
97
+ </tr>
98
+ <tr>
99
+ <td style={{ padding: '8px' }}><code>Flèches haut/bas</code></td>
100
+ <td style={{ padding: '8px' }}>
101
+ Déplace le focus dans la liste des options (sans modifier la sélection)
102
+ </td>
103
+ </tr>
104
+ <tr>
105
+ <td style={{ padding: '8px' }}><code>Entrée</code></td>
106
+ <td style={{ padding: '8px' }}>
107
+ Sélectionne l'option active et ferme le menu
108
+ </td>
109
+ </tr>
110
+ <tr>
111
+ <td style={{ padding: '8px' }}><code>Échap</code></td>
112
+ <td style={{ padding: '8px' }}>
113
+ Ferme le menu sans modifier la sélection
114
+ </td>
115
+ </tr>
116
+ <tr>
117
+ <td style={{ padding: '8px' }}><code>Caractères imprimables</code></td>
118
+ <td style={{ padding: '8px' }}>
119
+ Déplace le focus sur l'option commençant par le(s) caractère(s) saisi(s)
120
+ </td>
121
+ </tr>
122
+ </tbody>
123
+ </table>
124
+ <p style={{ marginTop: '1em' }}>
125
+ <strong>Note :</strong> Le focus DOM reste toujours sur l'élément <em>combobox</em>, tandis que le focus visuel est géré via <code>aria-activedescendant</code>.
126
+ </p>
127
+ </div>
128
+
129
+ <div className="implementation-section">
130
+ <h2>Spécificités d'implémentation</h2>
131
+ <p>
132
+ Conformément aux recommandations WAI-ARIA pour les combobox avec auto-complétion, notre implémentation :
133
+ </p>
134
+ <ul>
135
+ <li>Maintient le focus DOM sur l'input combobox pendant toute l'interaction</li>
136
+ <li>Utilise <code>aria-activedescendant</code> pour indiquer l'option active aux technologies d'assistance</li>
137
+ <li>Sépare clairement la navigation (flèches) de la sélection (Entrée)</li>
138
+ <li>Gère correctement les états visuels et programmatiques des options</li>
139
+ <li>Implémente un filtrage en temps réel des options basé sur la saisie utilisateur</li>
140
+ <li>Désactive l'auto-complétion du navigateur pour éviter les conflits</li>
141
+ </ul>
142
+ </div>
143
+ </div>
144
+
145
+ <div className="accessibility-guide">
146
+ <div className="header">
147
+ <h1>Accessibilité</h1>
148
+ </div>
149
+
150
+ <div class="mt-2">
151
+ <p>Rapport d’audit manuel : <a href="/audits/SySelect.xlsx" style={{ color:'#0C41BD' }}>Voir le rapport</a></p>
152
+ <p style={{ color: 'grey', fontSize: '14px', marginTop: '0px' }}>Correctifs associés (<a href="https://github.com/assurance-maladie-digital/design-system-v3/issues/787" target="_blank" style={{color:'#0C41BD'}}>issue #787</a>), (<a href="https://github.com/assurance-maladie-digital/design-system-v3/issues/931" target="_blank" style={{color:'#0C41BD'}}>issue #931</a>)</p>
153
+ </div>
154
+
155
+ <br />
156
+
157
+ </div>
158
+
159
+ <style>
160
+ {
161
+ `
162
+ .accessibility-guide {
163
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
164
+ max-width: 1200px;
165
+ margin: 0 auto;
166
+ padding: 20px;
167
+ color: #333;
168
+ }
169
+
170
+ .intro-section {
171
+ display: flex;
172
+ align-items: center;
173
+ margin-bottom: 30px;
174
+ background-color: #f8f9fa;
175
+ padding: 20px;
176
+ border-radius: 8px;
177
+ border-left: 5px solid #0077cc;
178
+ }
179
+
180
+ .accessibility-icon {
181
+ width: 60px;
182
+ height: 60px;
183
+ margin-right: 20px;
184
+ flex-shrink: 0;
185
+ }
186
+
187
+ .intro-text {
188
+ font-size: 1.1em;
189
+ line-height: 1.6;
190
+ margin: 0;
191
+ }
192
+
193
+ .criteria-section {
194
+ margin-bottom: 40px;
195
+ }
196
+
197
+ .criteria-section h2,
198
+ .keyboard-section h2,
199
+ .implementation-section h2 {
200
+ border-bottom: 2px solid #eaecef;
201
+ padding-bottom: 10px;
202
+ margin-top: 30px;
203
+ margin-bottom: 20px;
204
+ color: #0077cc;
205
+ }
206
+
207
+ .criteria-card {
208
+ background-color: #fff;
209
+ border-radius: 8px;
210
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
211
+ padding: 20px;
212
+ margin-bottom: 20px;
213
+ }
214
+
215
+ .criteria-header {
216
+ display: flex;
217
+ align-items: center;
218
+ margin-bottom: 15px;
219
+ }
220
+
221
+ .criteria-icon {
222
+ font-size: 1.8em;
223
+ margin-right: 15px;
224
+ }
225
+
226
+ .criteria-header h3 {
227
+ margin: 0;
228
+ font-size: 1.3em;
229
+ color: #0077cc;
230
+ }
231
+
232
+ .criteria-card ul {
233
+ margin: 0;
234
+ padding-left: 20px;
235
+ }
236
+
237
+ .criteria-card li {
238
+ margin-bottom: 8px;
239
+ line-height: 1.5;
240
+ }
241
+
242
+ .keyboard-section {
243
+ background-color: #f0f7ff;
244
+ padding: 20px;
245
+ border-radius: 8px;
246
+ margin-bottom: 30px;
247
+ }
248
+
249
+ .implementation-section {
250
+ background-color: #f5f5f5;
251
+ padding: 20px;
252
+ border-radius: 8px;
253
+ margin-bottom: 30px;
254
+ }
255
+
256
+ .implementation-section ul {
257
+ padding-left: 20px;
258
+ }
259
+
260
+ .implementation-section li {
261
+ margin-bottom: 10px;
262
+ line-height: 1.5;
263
+ }
264
+
265
+ code {
266
+ background-color: #f0f0f0;
267
+ padding: 2px 5px;
268
+ border-radius: 3px;
269
+ font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
270
+ font-size: 0.9em;
271
+ }
272
+ `
273
+ }
274
+ </style>
@@ -10,6 +10,8 @@ export interface UseSySelectKeyboardOptions {
10
10
  toggleMenu: (skipInitialFocus?: boolean) => void
11
11
  selectItem: (item: ItemType | null | undefined, event?: Event) => void
12
12
  getItemText: (item: unknown) => unknown
13
+ optionIdPrefix?: string
14
+ focusListItem?: boolean
13
15
  }
14
16
 
15
17
  export function useSySelectKeyboard(options: UseSySelectKeyboardOptions) {
@@ -19,8 +21,19 @@ export function useSySelectKeyboard(options: UseSySelectKeyboardOptions) {
19
21
  toggleMenu,
20
22
  selectItem,
21
23
  getItemText,
24
+ optionIdPrefix = 'option',
25
+ focusListItem = true,
22
26
  } = options
23
27
 
28
+ const getOptionId = (index: number) => `${optionIdPrefix}-${index}`
29
+ const parseIndexFromId = (id: string | null | undefined) => {
30
+ if (!id) return NaN
31
+ const parts = id.split('-')
32
+ const maybeIndex = parts[parts.length - 1] as string
33
+ const parsed = parseInt(maybeIndex)
34
+ return Number.isNaN(parsed) ? NaN : parsed
35
+ }
36
+
24
37
  // État central pour le focus et la navigation
25
38
  const activeDescendantId = ref('')
26
39
  const lastFocusedIndex = ref(-1)
@@ -35,13 +48,13 @@ export function useSySelectKeyboard(options: UseSySelectKeyboardOptions) {
35
48
  // Vérifier si l'index est valide
36
49
  if (index >= 0 && index < formattedItems.value.length) {
37
50
  // Mettre à jour l'ID pour ARIA
38
- activeDescendantId.value = `option-${index}`
51
+ activeDescendantId.value = getOptionId(index)
39
52
  // Stocker l'index pour référence future
40
53
  lastFocusedIndex.value = index
41
54
 
42
55
  // Appliquer les changements visuels au prochain cycle de rendu
43
56
  nextTick(() => {
44
- const element = document.getElementById(`option-${index}`)
57
+ const element = document.getElementById(getOptionId(index))
45
58
  if (element) {
46
59
  // Supprimer le focus visuel des autres éléments
47
60
  const allItems = document.querySelectorAll('.v-list-item')
@@ -52,6 +65,10 @@ export function useSySelectKeyboard(options: UseSySelectKeyboardOptions) {
52
65
  })
53
66
 
54
67
  element.setAttribute('tabindex', '0')
68
+ element.setAttribute('tabindex', focusListItem ? '0' : '-1')
69
+ if (focusListItem) {
70
+ element.focus()
71
+ }
55
72
  element.classList.add('keyboard-focused')
56
73
  element.scrollIntoView({ block: 'nearest' })
57
74
  }
@@ -108,8 +125,7 @@ export function useSySelectKeyboard(options: UseSySelectKeyboardOptions) {
108
125
 
109
126
  // Sinon, essayer de récupérer l'index à partir de l'ID ARIA
110
127
  if (activeDescendantId.value) {
111
- const activeIndexString = activeDescendantId.value.split('-')?.[1]
112
- const activeIndex = activeIndexString ? parseInt(activeIndexString) : NaN
128
+ const activeIndex = parseIndexFromId(activeDescendantId.value)
113
129
  if (!isNaN(activeIndex) && activeIndex >= 0 && activeIndex < formattedItems.value.length) {
114
130
  // Synchroniser lastFocusedIndex avec l'index trouvé
115
131
  lastFocusedIndex.value = activeIndex
@@ -300,16 +316,6 @@ export function useSySelectKeyboard(options: UseSySelectKeyboardOptions) {
300
316
  }
301
317
 
302
318
  const handleTabKey = () => {
303
- if (isOpen.value && activeDescendantId.value) {
304
- // Trouver l'item actuellement focusé
305
- const currentIndexString = activeDescendantId.value.split('-')?.[1]
306
- const currentIndex = currentIndexString ? parseInt(currentIndexString) : NaN
307
- if (!isNaN(currentIndex) && currentIndex >= 0 && currentIndex < formattedItems.value.length) {
308
- const currentItem = formattedItems.value[currentIndex]
309
- // Sélectionner l'item qui a le focus
310
- selectItem(currentItem)
311
- }
312
- }
313
319
  // Fermer le menu (la navigation Tab normale continuera après)
314
320
  if (isOpen.value) {
315
321
  isOpen.value = false
@@ -322,8 +328,7 @@ export function useSySelectKeyboard(options: UseSySelectKeyboardOptions) {
322
328
  // Watch activeDescendantId pour synchroniser lastFocusedIndex
323
329
  watch(activeDescendantId, (newId) => {
324
330
  if (newId) {
325
- const indexString = newId.split('-')?.[1]
326
- const index = indexString ? parseInt(indexString) : NaN
331
+ const index = parseIndexFromId(newId)
327
332
  if (!isNaN(index) && index >= 0 && index < formattedItems.value.length) {
328
333
  // Synchroniser lastFocusedIndex avec l'ID ARIA
329
334
  lastFocusedIndex.value = index
@@ -1,7 +1,7 @@
1
1
  import { Meta, Title, Subtitle, Description, Primary, Controls, Stories } from '@storybook/blocks';
2
- import * as SyCheckboxStories from './SyCheckbox.stories';
2
+ import * as SyCheckboxStories from '../SyCheckbox.stories';
3
3
  import AccessibilityIcon from '@/common/imgs/accessibility-svgrepo-com.svg';
4
- import '../../../stories/styles/shared.css';
4
+ import '@/stories/styles/shared.css';
5
5
 
6
6
  <Meta of={SyCheckboxStories} />
7
7
 
@@ -0,0 +1,10 @@
1
+ import { Meta, Story } from '@storybook/addon-docs';
2
+ import * as SyForm from '../SyForm.stories';
3
+ import '@/stories/styles/shared.css';
4
+
5
+ <Meta of={SyForm}/>
6
+
7
+ <div className="header">
8
+ <h1>Accessibilité</h1>
9
+ <p>Cette page sera bientôt disponible</p>
10
+ </div>
@@ -1,5 +1,6 @@
1
1
  import { Meta, Title, Subtitle, Description, Primary, Controls, Stories, Canvas } from '@storybook/blocks'
2
2
  import * as SyIconStories from './SyIcon.stories'
3
+ import '@/stories/styles/shared.css';
3
4
 
4
5
  <Meta of={SyIconStories} />
5
6
 
@@ -15,7 +16,9 @@ Le composant `SyIcon` est un wrapper autour du composant `v-icon` de Vuetify qui
15
16
  <Primary />
16
17
  <Controls />
17
18
 
18
- ## Accessibilité
19
+ <div className="header">
20
+ <h1>Accessibilité</h1>
21
+ </div>
19
22
 
20
23
  Le composant `SyIcon` gère automatiquement les attributs ARIA en fonction de la nature de l'icône :
21
24
 
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
- import { vRgaaSvgFix } from '../../../directives/rgaaSvgFix'
2
+ import type { IconValue } from 'vuetify/lib/composables/icons.mjs'
3
+ import { vRgaaSvgFix } from '@/directives/rgaaSvgFix'
3
4
  import { computed, onMounted, watch } from 'vue'
4
5
 
5
6
  /**
@@ -17,14 +18,14 @@
17
18
  /**
18
19
  * Vérifie si une icône non décorative a un label
19
20
  */
20
- const checkAccessibility = (icon: string, decorative: boolean | undefined, label: string | undefined) => {
21
+ const checkAccessibility = (icon: IconValue, decorative: boolean | undefined, label: string | undefined) => {
21
22
  if (decorative === false && !label) {
22
23
  console.error(`L'icône "${icon}" n'est pas décorative, mais aucun texte alternatif (label) n'a été fourni.`)
23
24
  }
24
25
  }
25
26
 
26
27
  const props = defineProps<{
27
- icon: string
28
+ icon: IconValue
28
29
  label?: string
29
30
  decorative?: boolean
30
31
  role?: 'img' | 'button' | 'presentation'
@@ -1,9 +1,9 @@
1
- import SyIconAccessibility from './SyIconAccessibility.vue'
1
+ import SyIconAccessibility from '../SyIconAccessibility.vue'
2
2
  import { mdiStar } from '@mdi/js'
3
3
 
4
4
  const meta = {
5
- title: 'Composants/Données/SyIcon/Accessibilité',
6
- component: () => import('./SyIcon.vue'),
5
+ title: 'Composants/Données/SyIcon/Accessibility',
6
+ component: () => import('../SyIcon.vue'),
7
7
  parameters: {
8
8
  docs: {
9
9
  description: {
@@ -1,9 +1,9 @@
1
1
  import { Meta, Title, Subtitle, Description, Primary, Controls, Stories, Canvas } from '@storybook/blocks'
2
2
  import * as SyIconStoriesAccessibility from './Accessibilite.stories'
3
- import SyIconAccessibility from './SyIconAccessibility.vue'
3
+ import SyIconAccessibility from '../SyIconAccessibility.vue'
4
4
 
5
5
  <Meta of={SyIconStoriesAccessibility} />
6
- import '../../../stories/styles/shared.css';
6
+ import '@/stories/styles/shared.css';
7
7
 
8
8
  <div className="header">
9
9
  <h1>Accessibilité du composant SyIcon</h1>
@@ -1,5 +1,5 @@
1
1
  import { Canvas, Meta, Controls, Story, Source } from '@storybook/blocks';
2
- import '../../../stories/styles/shared.css';
2
+ import '@/stories/styles/shared.css';
3
3
  import * as SyPaginationStories from "./SyPagination.stories";
4
4
 
5
5
  <Meta of={SyPaginationStories} />
@@ -142,7 +142,9 @@ Voici un exemple d'implémentation du composant SyPagination :
142
142
  </style>
143
143
  `} />
144
144
 
145
- ## Accessibilité
145
+ <div className="header">
146
+ <h1>Accessibilité</h1>
147
+ </div>
146
148
 
147
149
  Le composant SyPagination respecte les règles d'accessibilité RGAA :
148
150
 
@@ -0,0 +1,10 @@
1
+ import { Meta, Story } from '@storybook/addon-docs';
2
+ import * as SyPagination from '../SyPagination.stories';
3
+ import '@/stories/styles/shared.css';
4
+
5
+ <Meta of={SyPagination} />
6
+
7
+ <div className="header">
8
+ <h1>Accessibilité</h1>
9
+ <p>Cette page sera bientôt disponible</p>
10
+ </div>
@@ -1,7 +1,7 @@
1
1
  import { Meta, Title, Subtitle, Description, Primary, Controls, Stories } from '@storybook/blocks';
2
- import * as SyRadioGroupStories from './SyRadioGroup.stories';
2
+ import * as SyRadioGroupStories from '../SyRadioGroup.stories';
3
3
  import AccessibilityIcon from '@/common/imgs/accessibility-svgrepo-com.svg';
4
- import '../../../stories/styles/shared.css';
4
+ import '@/stories/styles/shared.css';
5
5
 
6
6
  <Meta of={SyRadioGroupStories} />
7
7
 
@@ -1,5 +1,5 @@
1
1
  import { Meta, Canvas, Controls, Source, Story } from '@storybook/blocks';
2
- import '../../../stories/styles/shared.css';
2
+ import '@/stories/styles/shared.css';
3
3
  import * as SyTabsStories from "./SyTabs.stories";
4
4
 
5
5
  <Meta of={SyTabsStories} />
@@ -36,7 +36,9 @@ export interface TabItem {
36
36
  }
37
37
  ```
38
38
 
39
- ## Accessibilité
39
+ <div className="header">
40
+ <h1>Accessibilité</h1>
41
+ </div>
40
42
 
41
43
  Le composant `SyTabs` respecte les critères d'accessibilité RGAA suivants :
42
44
 
@@ -1,7 +1,7 @@
1
1
  import { Meta, Title, Subtitle, Description, Primary, Controls, Stories } from '@storybook/blocks';
2
- import * as SyTabsStories from './SyTabs.stories';
2
+ import * as SyTabsStories from '../SyTabs.stories';
3
3
  import AccessibilityIcon from '@/common/imgs/accessibility-svgrepo-com.svg';
4
- import '../../../stories/styles/shared.css';
4
+ import '@/stories/styles/shared.css';
5
5
 
6
6
  <Meta of={SyTabsStories} />
7
7
 
@@ -43,7 +43,6 @@ Le champ adapte automatiquement son apparence selon son état :
43
43
  import { SyTextField } from '@cnamts/synapse'
44
44
 
45
45
  const model = ref('')
46
- import '../../../stories/styles/shared.css';
47
46
 
48
47
  </script>
49
48
 
@@ -51,7 +50,7 @@ import '../../../stories/styles/shared.css';
51
50
  <main class="ma-12">
52
51
  Text saisie: {{ model }}
53
52
  <div class="d-flex flex-wrap align-center">
54
- <SyTextField
53
+ <SyTextField
55
54
  v-model="model"
56
55
  label="Label"
57
56
  color="primary"
@@ -550,6 +550,10 @@
550
550
 
551
551
  if (describedbyIds) {
552
552
  inputElement.setAttribute('aria-describedby', describedbyIds)
553
+ // si erreur ajouter erreur dans aria-describedby
554
+ if (hasError.value) {
555
+ inputElement.setAttribute('aria-describedby', `${describedbyIds} ${messagesId}`)
556
+ }
553
557
  }
554
558
  else {
555
559
  inputElement.removeAttribute('aria-describedby')
@@ -791,6 +795,10 @@
791
795
  opacity: 1 !important;
792
796
  }
793
797
 
798
+ :deep(.v-icon__svg) {
799
+ fill: tokens.$colors-text-warning !important;
800
+ }
801
+
794
802
  :deep(.v-field) {
795
803
  color: tokens.$colors-border-warning !important;
796
804
 
@@ -867,6 +875,11 @@
867
875
  fill: rgb(0 0 0 / 70%);
868
876
  }
869
877
 
878
+ :deep(.v-field--focused .v-field__outline) {
879
+ color: tokens.$primary-base !important;
880
+ opacity: 1 !important;
881
+ }
882
+
870
883
  :deep(.v-input__prepend .v-icon:focus-visible),
871
884
  :deep(.v-input__append .v-icon:focus-visible) {
872
885
  outline: 2px solid tokens.$primary-base;
@@ -0,0 +1,15 @@
1
+ import { Meta, Story } from '@storybook/addon-docs';
2
+ import * as Stories from '../SyTextField.stories.ts';
3
+ import '@/stories/styles/shared.css';
4
+
5
+ <Meta of={Stories} />
6
+
7
+ <div className="header">
8
+ <h1>Accessibilité</h1>
9
+ </div>
10
+
11
+
12
+ <div class="mt-2">
13
+ <p>Rapport d’audit manuel : <a href="/audits/SyTextField.xlsx" style={{ color:'#0C41BD' }}>Voir le rapport</a></p>
14
+ <p style={{ color: 'grey', fontSize: '14px', marginTop: '0px' }}>Correctifs associés (<a href="https://github.com/assurance-maladie-digital/design-system-v3/issues/935" target="_blank" style={{color:'#0C41BD'}}>issue #935</a>), (<a href="https://github.com/assurance-maladie-digital/design-system/issues/4028" target="_blank" style={{color:'#0C41BD'}}>issue #4028</a>)</p>
15
+ </div>
@@ -0,0 +1,15 @@
1
+ import { Meta, Story } from '@storybook/addon-docs';
2
+ import * as Stories from '../DataList.stories.ts';
3
+ import '@/stories/styles/shared.css';
4
+
5
+ <Meta of={Stories} />
6
+
7
+ <div className="header">
8
+ <h1>Accessibilité</h1>
9
+ </div>
10
+
11
+
12
+ <div class="mt-2">
13
+ <p>Rapport d’audit manuel : <a href="/audits/DataList.xlsx" style={{ color:'#0C41BD' }}>Voir le rapport</a></p>
14
+ <p style={{ color: 'grey', fontSize: '14px', marginTop: '0px' }}>Correctifs associés (<a href="https://github.com/assurance-maladie-digital/design-system-v3/issues/4030" target="_blank" style={{color:'#0C41BD'}}>issue #4030</a>)</p>
15
+ </div>
@@ -0,0 +1,14 @@
1
+ import { Meta, Story } from '@storybook/addon-docs';
2
+ import * as Stories from '../DataListGroup.stories.ts';
3
+ import '@/stories/styles/shared.css';
4
+
5
+ <Meta of={Stories} />
6
+
7
+ <div className="header">
8
+ <h1>Accessibilité</h1>
9
+ </div>
10
+
11
+ <div class="mt-2">
12
+ <p>Rapport d’audit manuel : <a href="/audits/DataListGroup.xlsx" style={{ color:'#0C41BD' }}>Voir le rapport</a></p>
13
+ <p style={{ color: 'grey', fontSize: '14px', marginTop: '0px' }}>Correctifs associés (<a href="https://github.com/assurance-maladie-digital/design-system-v3/issues/651" target="_blank" style={{color:'#0C41BD'}}>issue #651</a>)</p>
14
+ </div>
@@ -1,6 +1,6 @@
1
1
  import { Meta, Story } from '@storybook/addon-docs';
2
2
  import * as AccessStories from './Accessibilite.stories.ts';
3
- import '../../stories/styles/shared.css';
3
+ import '@/stories/styles/shared.css';
4
4
 
5
5
  <Meta of={AccessStories} />
6
6
 
@@ -4,7 +4,7 @@ import { mdiCheckboxMarkedCircle } from '@mdi/js'
4
4
  const checkIcon = mdiCheckboxMarkedCircle
5
5
 
6
6
  export default {
7
- title: 'Composants/Formulaires/DatePicker/Accessibilité',
7
+ title: 'Composants/Formulaires/DatePicker/Accessibility',
8
8
  }
9
9
 
10
10
  export const Legende: StoryObj = {