@cnamts/synapse 0.0.4-alpha → 0.0.6-alpha

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 (322) hide show
  1. package/dist/design-system-v3.d.ts +1277 -499
  2. package/dist/design-system-v3.js +4193 -1573
  3. package/dist/design-system-v3.umd.cjs +8 -8
  4. package/dist/style.css +1 -1
  5. package/package.json +18 -17
  6. package/src/assets/settings.scss +3 -0
  7. package/src/assets/tokens.scss +16 -17
  8. package/src/components/BackBtn/Accessibilite.mdx +14 -0
  9. package/src/components/BackBtn/Accessibilite.stories.ts +166 -0
  10. package/src/components/BackBtn/AccessibiliteItems.ts +102 -0
  11. package/src/components/BackBtn/BackBtn.mdx +1 -1
  12. package/src/components/BackBtn/BackBtn.stories.ts +8 -8
  13. package/src/components/BackBtn/BackBtn.vue +0 -1
  14. package/src/components/BackBtn/constants/ExpertiseLevelEnum.ts +4 -0
  15. package/src/components/BackToTopBtn/Accessibilite.mdx +14 -0
  16. package/src/components/BackToTopBtn/Accessibilite.stories.ts +166 -0
  17. package/src/components/BackToTopBtn/AccessibiliteItems.ts +52 -0
  18. package/src/components/BackToTopBtn/BackToTopBtn.mdx +1 -1
  19. package/src/components/BackToTopBtn/constants/ExpertiseLevelEnum.ts +4 -0
  20. package/src/components/CollapsibleList/Accessibilite.mdx +14 -0
  21. package/src/components/CollapsibleList/Accessibilite.stories.ts +170 -0
  22. package/src/components/CollapsibleList/AccessibiliteItems.ts +122 -0
  23. package/src/components/CollapsibleList/CollapsibleList.stories.ts +1 -1
  24. package/src/components/CollapsibleList/constants/ExpertiseLevelEnum.ts +4 -0
  25. package/src/components/CookieBanner/Accessibilite.mdx +14 -0
  26. package/src/components/CookieBanner/Accessibilite.stories.ts +219 -0
  27. package/src/components/CookieBanner/AccessibiliteItems.ts +356 -0
  28. package/src/components/CookieBanner/CookieBanner.mdx +219 -0
  29. package/src/components/CookieBanner/CookieBanner.stories.ts +678 -0
  30. package/src/components/CookieBanner/CookieBanner.vue +225 -0
  31. package/src/components/CookieBanner/config.ts +38 -0
  32. package/src/components/CookieBanner/constants/ExpertiseLevelEnum.ts +4 -0
  33. package/src/components/CookieBanner/locales.ts +12 -0
  34. package/src/components/CookieBanner/tests/CookieBanner.spec.ts +129 -0
  35. package/src/components/CookieBanner/tests/__snapshots__/CookieBanner.spec.ts.snap +197 -0
  36. package/src/components/CookiesSelection/CookiesInformation/CookiesInformation.vue +123 -0
  37. package/src/components/CookiesSelection/CookiesInformation/locales.ts +21 -0
  38. package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.spec.ts +121 -0
  39. package/src/components/CookiesSelection/CookiesSelection.vue +127 -0
  40. package/src/components/CookiesSelection/CookiesTable/CookiesTable.vue +47 -0
  41. package/src/components/CookiesSelection/CookiesTable/headers.ts +14 -0
  42. package/src/components/CookiesSelection/CookiesTable/tests/CookiesTable.spec.ts +30 -0
  43. package/src/components/CookiesSelection/CookiesTable/tests/__snapshots__/CookiesTable.spec.ts.snap +3 -0
  44. package/src/components/CookiesSelection/locales.ts +10 -0
  45. package/src/components/CookiesSelection/tests/CookiesSelection.spec.ts +184 -0
  46. package/src/components/CookiesSelection/tests/__snapshots__/CookiesSelection.spec.ts.snap +192 -0
  47. package/src/components/CookiesSelection/types.ts +15 -0
  48. package/src/components/CopyBtn/Accessibilite.mdx +14 -0
  49. package/src/components/CopyBtn/Accessibilite.stories.ts +166 -0
  50. package/src/components/CopyBtn/AccessibiliteItems.ts +105 -0
  51. package/src/components/CopyBtn/CopyBtn.mdx +1 -1
  52. package/src/components/CopyBtn/CopyBtn.stories.ts +4 -4
  53. package/src/components/CopyBtn/CopyBtn.vue +0 -1
  54. package/src/components/CopyBtn/config.ts +2 -0
  55. package/src/components/CopyBtn/constants/ExpertiseLevelEnum.ts +4 -0
  56. package/src/components/Customs/SyBtnSelect/Accessibilite.mdx +14 -0
  57. package/src/components/Customs/SyBtnSelect/Accessibilite.stories.ts +193 -0
  58. package/src/components/Customs/SyBtnSelect/AccessibiliteItems.ts +139 -0
  59. package/src/components/Customs/SyBtnSelect/SyBtnSelect.mdx +45 -0
  60. package/src/components/Customs/SyBtnSelect/SyBtnSelect.stories.ts +662 -0
  61. package/src/components/Customs/SyBtnSelect/SyBtnSelect.vue +254 -0
  62. package/src/components/Customs/SyBtnSelect/constants/ExpertiseLevelEnum.ts +4 -0
  63. package/src/components/Customs/SyBtnSelect/tests/SyBtnSelect.spec.ts +168 -0
  64. package/src/components/Customs/SyInputSelect/Accessibilite.mdx +14 -0
  65. package/src/components/Customs/SyInputSelect/Accessibilite.stories.ts +166 -0
  66. package/src/components/Customs/SyInputSelect/AccessibiliteItems.ts +96 -0
  67. package/src/components/Customs/SyInputSelect/SyInputSelect.mdx +41 -0
  68. package/src/components/Customs/{CustomInputSelect/CustomInputSelect.stories.ts → SyInputSelect/SyInputSelect.stories.ts} +30 -83
  69. package/src/components/Customs/{CustomInputSelect/CustomInputSelect.vue → SyInputSelect/SyInputSelect.vue} +46 -6
  70. package/src/components/Customs/SyInputSelect/constants/ExpertiseLevelEnum.ts +4 -0
  71. package/src/components/Customs/SyInputSelect/tests/SyInputSelect.spec.ts +140 -0
  72. package/src/components/Customs/SySelect/Accessibilite.mdx +14 -0
  73. package/src/components/Customs/SySelect/Accessibilite.stories.ts +217 -0
  74. package/src/components/Customs/SySelect/AccessibiliteItems.ts +173 -0
  75. package/src/components/Customs/{CustomSelect/CustomSelect.mdx → SySelect/SySelect.mdx} +9 -8
  76. package/src/components/Customs/{CustomSelect/CustomSelect.stories.ts → SySelect/SySelect.stories.ts} +25 -79
  77. package/src/components/Customs/{CustomSelect/CustomSelect.vue → SySelect/SySelect.vue} +44 -13
  78. package/src/components/Customs/SySelect/constants/ExpertiseLevelEnum.ts +4 -0
  79. package/src/components/Customs/{CustomInputSelect/tests/CustomInputSelect.spec.ts → SySelect/tests/SySelect.spec.ts} +48 -71
  80. package/src/components/Customs/SyTextField/Accessibilite.mdx +14 -0
  81. package/src/components/Customs/SyTextField/Accessibilite.stories.ts +224 -0
  82. package/src/components/Customs/SyTextField/AccessibiliteItems.ts +198 -0
  83. package/src/components/Customs/SyTextField/SyTextField.mdx +44 -0
  84. package/src/components/Customs/{CustomTextField/CustomTextField.stories.ts → SyTextField/SyTextField.stories.ts} +145 -34
  85. package/src/components/Customs/{CustomTextField/CustomTextField.vue → SyTextField/SyTextField.vue} +27 -7
  86. package/src/components/Customs/SyTextField/constants/ExpertiseLevelEnum.ts +4 -0
  87. package/src/components/Customs/{CustomTextField/tests/CustomTextField.spec.ts → SyTextField/tests/SyTextField.spec.ts} +3 -3
  88. package/src/components/Customs/{CustomTextField/tests/__snapshots__/CustomTextField.spec.ts.snap → SyTextField/tests/__snapshots__/SyTextField.spec.ts.snap} +5 -6
  89. package/src/components/DataList/Accessibilite.mdx +14 -0
  90. package/src/components/DataList/Accessibilite.stories.ts +166 -0
  91. package/src/components/DataList/AccessibiliteItems.ts +47 -0
  92. package/src/components/DataList/DataList.mdx +1 -1
  93. package/src/components/DataList/DataList.stories.ts +10 -10
  94. package/src/components/DataList/constants/ExpertiseLevelEnum.ts +4 -0
  95. package/src/components/DataListGroup/Accessibilite.mdx +14 -0
  96. package/src/components/DataListGroup/Accessibilite.stories.ts +225 -0
  97. package/src/components/DataListGroup/AccessibiliteItems.ts +79 -0
  98. package/src/components/DataListGroup/DataListGroup.mdx +1 -1
  99. package/src/components/DataListGroup/DataListGroup.stories.ts +7 -7
  100. package/src/components/DataListGroup/constants/ExpertiseLevelEnum.ts +4 -0
  101. package/src/components/DialogBox/Accessibilite.mdx +14 -0
  102. package/src/components/DialogBox/Accessibilite.stories.ts +189 -0
  103. package/src/components/DialogBox/AccessibiliteItems.ts +167 -0
  104. package/src/components/DialogBox/DialogBox.mdx +14 -0
  105. package/src/components/DialogBox/DialogBox.stories.ts +798 -0
  106. package/src/components/DialogBox/DialogBox.vue +181 -0
  107. package/src/components/DialogBox/config.ts +25 -0
  108. package/src/components/DialogBox/constants/ExpertiseLevelEnum.ts +4 -0
  109. package/src/components/DialogBox/locales.ts +5 -0
  110. package/src/components/DialogBox/tests/DialogBox.spec.ts +329 -0
  111. package/src/components/DialogBox/tests/__snapshots__/DialogBox.spec.ts.snap +46 -0
  112. package/src/components/DownloadBtn/AccessibiliteItems.ts +1 -31
  113. package/src/components/DownloadBtn/DownloadBtn.mdx +3 -3
  114. package/src/components/DownloadBtn/DownloadBtn.stories.ts +6 -6
  115. package/src/components/ErrorPage/Accessibilite.mdx +14 -0
  116. package/src/components/ErrorPage/Accessibilite.stories.ts +189 -0
  117. package/src/components/ErrorPage/AccessibiliteItems.ts +205 -0
  118. package/src/components/ErrorPage/ErrorPage.mdx +21 -0
  119. package/src/components/ErrorPage/ErrorPage.stories.ts +133 -0
  120. package/src/components/ErrorPage/ErrorPage.vue +93 -0
  121. package/src/components/ErrorPage/constants/ExpertiseLevelEnum.ts +4 -0
  122. package/src/components/ErrorPage/locales.ts +5 -0
  123. package/src/components/ErrorPage/tests/ErrorPage.spec.ts +40 -0
  124. package/src/components/ErrorPage/tests/__snapshots__/ErrorPage.spec.ts.snap +78 -0
  125. package/src/components/FooterBar/Accessibilite.mdx +14 -0
  126. package/src/components/FooterBar/Accessibilite.stories.ts +223 -0
  127. package/src/components/FooterBar/AccessibiliteItems.ts +257 -0
  128. package/src/components/FooterBar/FooterBar.mdx +2 -2
  129. package/src/components/FooterBar/FooterBar.stories.ts +556 -8
  130. package/src/components/FooterBar/FooterBar.vue +80 -73
  131. package/src/components/FooterBar/config.ts +2 -3
  132. package/src/components/FooterBar/constants/ExpertiseLevelEnum.ts +4 -0
  133. package/src/components/FooterBar/tests/FooterBar.spec.ts +1 -1
  134. package/src/components/FooterBar/tests/FooterBarConfig.spec.ts +1 -1
  135. package/src/components/FooterBar/tests/__snapshots__/FooterBar.spec.ts.snap +24 -22
  136. package/src/components/FranceConnectBtn/Accessibilite.mdx +14 -0
  137. package/src/components/FranceConnectBtn/Accessibilite.stories.ts +194 -0
  138. package/src/components/FranceConnectBtn/AccessibiliteItems.ts +169 -0
  139. package/src/components/FranceConnectBtn/FranceConnectBtn.mdx +1 -1
  140. package/src/components/FranceConnectBtn/FranceConnectBtn.stories.ts +3 -3
  141. package/src/components/FranceConnectBtn/constants/ExpertiseLevelEnum.ts +4 -0
  142. package/src/components/HeaderBar/Accessibilite.mdx +14 -0
  143. package/src/components/HeaderBar/Accessibilite.stories.ts +223 -0
  144. package/src/components/HeaderBar/AccessibiliteItems.ts +194 -0
  145. package/src/components/HeaderBar/HeaderBar.stories.ts +60 -2
  146. package/src/components/HeaderBar/HeaderBar.vue +1 -9
  147. package/src/components/HeaderBar/HeaderBurgerMenu/Accessibilite.mdx +14 -0
  148. package/src/components/HeaderBar/HeaderBurgerMenu/Accessibilite.stories.ts +223 -0
  149. package/src/components/HeaderBar/HeaderBurgerMenu/AccessibiliteItems.ts +174 -0
  150. package/src/components/HeaderBar/HeaderBurgerMenu/constants/ExpertiseLevelEnum.ts +4 -0
  151. package/src/components/HeaderBar/constants/ExpertiseLevelEnum.ts +4 -0
  152. package/src/components/HeaderBar/tests/__snapshots__/HeaderBar.spec.ts.snap +1 -1
  153. package/src/components/HeaderLoading/Accessibilite.mdx +14 -0
  154. package/src/components/HeaderLoading/Accessibilite.stories.ts +167 -0
  155. package/src/components/HeaderLoading/AccessibiliteItems.ts +29 -0
  156. package/src/components/HeaderLoading/HeaderLoading.mdx +1 -1
  157. package/src/components/HeaderLoading/HeaderLoading.stories.ts +1 -1
  158. package/src/components/HeaderLoading/constants/ExpertiseLevelEnum.ts +4 -0
  159. package/src/components/HeaderNavigationBar/HeaderNavigationBar.mdx +6 -6
  160. package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +35 -33
  161. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.spec.ts +1 -1
  162. package/src/components/HeaderToolbar/Accessibilite.mdx +14 -0
  163. package/src/components/HeaderToolbar/Accessibilite.stories.ts +203 -0
  164. package/src/components/HeaderToolbar/AccessibiliteItems.ts +200 -0
  165. package/src/components/HeaderToolbar/HeaderToolbar.mdx +1 -1
  166. package/src/components/HeaderToolbar/HeaderToolbar.stories.ts +2 -2
  167. package/src/components/HeaderToolbar/HeaderToolbar.vue +3 -2
  168. package/src/components/HeaderToolbar/constants/ExpertiseLevelEnum.ts +4 -0
  169. package/src/components/HeaderToolbar/tests/HeaderToolbar.spec.ts +36 -2
  170. package/src/components/LangBtn/Accessibilite.mdx +14 -0
  171. package/src/components/LangBtn/Accessibilite.stories.ts +168 -0
  172. package/src/components/LangBtn/AccessibiliteItems.ts +101 -0
  173. package/src/components/LangBtn/LangBtn.mdx +1 -1
  174. package/src/components/LangBtn/LangBtn.stories.ts +4 -4
  175. package/src/components/LangBtn/LangBtn.vue +3 -2
  176. package/src/components/LangBtn/constants/ExpertiseLevelEnum.ts +4 -0
  177. package/src/components/LangBtn/tests/LangBtn.spec.ts +1 -1
  178. package/src/components/LangBtn/tests/__snapshots__/LangBtn.spec.ts.snap +1 -1
  179. package/src/components/Logo/Accessibilite.mdx +14 -0
  180. package/src/components/Logo/Accessibilite.stories.ts +223 -0
  181. package/src/components/Logo/AccessibiliteItems.ts +155 -0
  182. package/src/components/Logo/Logo.mdx +1 -1
  183. package/src/components/Logo/Logo.stories.ts +8 -8
  184. package/src/components/Logo/constants/ExpertiseLevelEnum.ts +4 -0
  185. package/src/components/LogoBrandSection/Accessibilite.mdx +14 -0
  186. package/src/components/LogoBrandSection/Accessibilite.stories.ts +223 -0
  187. package/src/components/LogoBrandSection/AccessibiliteItems.ts +194 -0
  188. package/src/components/LogoBrandSection/constants/ExpertiseLevelEnum.ts +4 -0
  189. package/src/components/MaintenancePage/Accessibilite.mdx +14 -0
  190. package/src/components/MaintenancePage/Accessibilite.stories.ts +189 -0
  191. package/src/components/MaintenancePage/AccessibiliteItems.ts +173 -0
  192. package/src/components/MaintenancePage/MaintenancePage.mdx +11 -0
  193. package/src/components/MaintenancePage/MaintenancePage.stories.ts +41 -0
  194. package/src/components/MaintenancePage/MaintenancePage.vue +25 -0
  195. package/src/components/MaintenancePage/assets/maintenance.svg +1 -0
  196. package/src/components/MaintenancePage/constants/ExpertiseLevelEnum.ts +4 -0
  197. package/src/components/MaintenancePage/index.ts +3 -0
  198. package/src/components/MaintenancePage/locales.ts +5 -0
  199. package/src/components/MaintenancePage/tests/MaintenancePage.spec.ts +12 -0
  200. package/src/components/MaintenancePage/tests/__snapshots__/MaintenancePage.spec.ts.snap +3 -0
  201. package/src/components/NirField/Accessibilite.mdx +14 -0
  202. package/src/components/NirField/Accessibilite.stories.ts +214 -0
  203. package/src/components/NirField/AccessibiliteItems.ts +243 -0
  204. package/src/components/NirField/NirField.mdx +216 -0
  205. package/src/components/NirField/NirField.stories.ts +359 -0
  206. package/src/components/NirField/NirField.vue +450 -0
  207. package/src/components/NirField/config.ts +16 -0
  208. package/src/components/NirField/constants/ExpertiseLevelEnum.ts +4 -0
  209. package/src/components/NirField/locales.ts +12 -0
  210. package/src/components/NirField/nirValidation.ts +42 -0
  211. package/src/components/NirField/tests/NirField.spec.ts +119 -0
  212. package/src/components/NotFoundPage/Accessibilite.mdx +14 -0
  213. package/src/components/NotFoundPage/Accessibilite.stories.ts +190 -0
  214. package/src/components/NotFoundPage/AccessibiliteItems.ts +205 -0
  215. package/src/components/NotFoundPage/NotFoundPage.mdx +19 -0
  216. package/src/components/NotFoundPage/NotFoundPage.stories.ts +76 -0
  217. package/src/components/NotFoundPage/NotFoundPage.vue +52 -0
  218. package/src/components/NotFoundPage/assets/not-found.svg +1 -0
  219. package/src/components/NotFoundPage/constants/ExpertiseLevelEnum.ts +4 -0
  220. package/src/components/NotFoundPage/locales.ts +6 -0
  221. package/src/components/NotFoundPage/tests/NotFoundPage.spec.ts +38 -0
  222. package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +76 -0
  223. package/src/components/NotificationBar/Accessibilite.mdx +14 -0
  224. package/src/components/NotificationBar/Accessibilite.stories.ts +166 -0
  225. package/src/components/NotificationBar/AccessibiliteItems.ts +144 -0
  226. package/src/components/NotificationBar/NotificationBar.mdx +1 -1
  227. package/src/components/NotificationBar/constants/ExpertiseLevelEnum.ts +4 -0
  228. package/src/components/NotificationBar/options.ts +1 -0
  229. package/src/components/PageContainer/Accessibilite.mdx +14 -0
  230. package/src/components/PageContainer/Accessibilite.stories.ts +166 -0
  231. package/src/components/PageContainer/AccessibiliteItems.ts +52 -0
  232. package/src/components/PageContainer/PageContainer.mdx +1 -1
  233. package/src/components/PageContainer/PageContainer.stories.ts +4 -4
  234. package/src/components/PageContainer/PageContainer.vue +16 -15
  235. package/src/components/PageContainer/constants/ExpertiseLevelEnum.ts +4 -0
  236. package/src/components/PageContainer/tests/PageContainer.spec.ts +1 -1
  237. package/src/components/PageContainer/tests/__snapshots__/PageContainer.spec.ts.snap +2 -2
  238. package/src/components/PhoneField/Accessibilite.mdx +14 -0
  239. package/src/components/PhoneField/Accessibilite.stories.ts +216 -0
  240. package/src/components/PhoneField/AccessibiliteItems.ts +238 -0
  241. package/src/components/PhoneField/PhoneField.mdx +1 -1
  242. package/src/components/PhoneField/PhoneField.stories.ts +2 -2
  243. package/src/components/PhoneField/PhoneField.vue +5 -6
  244. package/src/components/PhoneField/constants/ExpertiseLevelEnum.ts +4 -0
  245. package/src/components/PhoneField/tests/PhoneField.spec.ts +3 -3
  246. package/src/components/SkipLink/Accessibilite.mdx +14 -0
  247. package/src/components/SkipLink/Accessibilite.stories.ts +167 -0
  248. package/src/components/SkipLink/AccessibiliteItems.ts +77 -0
  249. package/src/components/SkipLink/SkipLink.stories.ts +2 -2
  250. package/src/components/SkipLink/constants/ExpertiseLevelEnum.ts +4 -0
  251. package/src/components/SocialMediaLinks/Accessibilite.mdx +14 -0
  252. package/src/components/SocialMediaLinks/Accessibilite.stories.ts +170 -0
  253. package/src/components/SocialMediaLinks/AccessibiliteItems.ts +160 -0
  254. package/src/components/SocialMediaLinks/SocialMediaLinks.mdx +18 -14
  255. package/src/components/SocialMediaLinks/SocialMediaLinks.stories.ts +3 -2
  256. package/src/components/SocialMediaLinks/constants/ExpertiseLevelEnum.ts +4 -0
  257. package/src/components/SocialMediaLinks/tests/SocialMediaLinks.spec.ts +1 -1
  258. package/src/components/SocialMediaLinks/tests/__snapshots__/SocialMediaLinks.spec.ts.snap +2 -2
  259. package/src/components/SubHeader/Accessibilite.mdx +14 -0
  260. package/src/components/SubHeader/Accessibilite.stories.ts +166 -0
  261. package/src/components/SubHeader/AccessibiliteItems.ts +146 -0
  262. package/src/components/SubHeader/SubHeader.mdx +1 -1
  263. package/src/components/SubHeader/SubHeader.stories.ts +11 -11
  264. package/src/components/SubHeader/SubHeader.vue +1 -1
  265. package/src/components/SubHeader/constants/ExpertiseLevelEnum.ts +4 -0
  266. package/src/components/SyAlert/Accessibilite.mdx +14 -0
  267. package/src/components/SyAlert/Accessibilite.stories.ts +166 -0
  268. package/src/components/SyAlert/AccessibiliteItems.ts +122 -0
  269. package/src/components/{Alert/Alert.mdx → SyAlert/SyAlert.mdx} +9 -9
  270. package/src/components/{Alert/Alert.stories.ts → SyAlert/SyAlert.stories.ts} +22 -22
  271. package/src/components/SyAlert/constants/ExpertiseLevelEnum.ts +4 -0
  272. package/src/components/{Alert/tests/Alert.spec.ts → SyAlert/tests/SyAlert.spec.ts} +5 -5
  273. package/src/components/{Alert/tests/__snapshots__/Alert.spec.ts.snap → SyAlert/tests/__snapshots__/SyAlert.spec.ts.snap} +2 -2
  274. package/src/components/UserMenuBtn/Accessibilite.mdx +14 -0
  275. package/src/components/UserMenuBtn/Accessibilite.stories.ts +189 -0
  276. package/src/components/UserMenuBtn/AccessibiliteItems.ts +155 -0
  277. package/src/components/UserMenuBtn/UserMenuBtn.mdx +35 -0
  278. package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +540 -0
  279. package/src/components/UserMenuBtn/UserMenuBtn.vue +101 -0
  280. package/src/components/UserMenuBtn/config.ts +24 -0
  281. package/src/components/UserMenuBtn/constants/ExpertiseLevelEnum.ts +4 -0
  282. package/src/components/UserMenuBtn/tests/UserMenuBtn.spec.ts +125 -0
  283. package/src/components/index.ts +19 -4
  284. package/src/composables/index.ts +8 -0
  285. package/src/composables/rules/tests/useFieldValidation.spec.ts +84 -0
  286. package/src/composables/rules/useFieldValidation.ts +90 -0
  287. package/src/designTokens/index.ts +2 -0
  288. package/src/designTokens/tokens/cnam/cnamDarkTheme.ts +5 -0
  289. package/src/designTokens/tokens/cnam/cnamLightTheme.ts +1 -0
  290. package/src/main.ts +3 -0
  291. package/src/stories/Fondamentaux/Arrondis.mdx +24 -0
  292. package/src/stories/{Guidelines → Fondamentaux}/Colors.mdx +1 -1
  293. package/src/stories/Fondamentaux/Conteneurs.mdx +7 -0
  294. package/src/stories/Fondamentaux/CustomisationEtThemes.mdx +7 -0
  295. package/src/stories/Fondamentaux/Elevations.mdx +14 -0
  296. package/src/stories/Fondamentaux/Espacements.mdx +29 -0
  297. package/src/stories/{Guidelines → Fondamentaux}/Introduction.mdx +1 -1
  298. package/src/stories/Fondamentaux/StylesTypographiques.mdx +33 -0
  299. package/src/stories/Fondamentaux/Typographie.mdx +58 -0
  300. package/src/stories/GuideDuDev/CommentUtiliserLesRules.mdx +120 -0
  301. package/src/stories/GuideDuDev/components.stories.ts +5 -5
  302. package/src/stories/GuideDuDev/moduleDeNotification.mdx +1 -1
  303. package/src/stories/{Fondamentaux → Guidelines}/Accessibilite/Accessibilite.stories.ts +1 -1
  304. package/src/stories/{Fondamentaux → Guidelines}/EcoConception/Econception.stories.ts +2 -2
  305. package/src/stories/Guidelines/Vuetify/Vuetify.mdx +11 -0
  306. package/src/stories/Guidelines/Vuetify/Vuetify.stories.ts +138 -0
  307. package/src/stories/Guidelines/Vuetify/VuetifyItems.ts +350 -0
  308. package/src/components/Customs/CustomInputSelect/CustomInputSelect.mdx +0 -40
  309. package/src/components/Customs/CustomSelect/tests/CustomSelect.spec.ts +0 -236
  310. package/src/components/Customs/CustomTextField/CustomTextField.mdx +0 -44
  311. package/src/stories/Guidelines/CustomisationEtThemes.mdx +0 -3
  312. package/src/stories/Guidelines/Typo.mdx +0 -53
  313. /package/src/components/Customs/{CustomInputSelect → SyInputSelect}/config.ts +0 -0
  314. /package/src/components/Customs/{CustomTextField → SyTextField}/types.d.ts +0 -0
  315. /package/src/components/{Alert/Alert.vue → SyAlert/SyAlert.vue} +0 -0
  316. /package/src/components/{Alert → SyAlert}/locales.ts +0 -0
  317. /package/src/stories/{Fondamentaux → Guidelines}/Accessibilite/Accessibilite.mdx +0 -0
  318. /package/src/stories/{Fondamentaux → Guidelines}/Accessibilite/AccessibiliteItems.ts +0 -0
  319. /package/src/stories/{Fondamentaux → Guidelines}/Accessibilite/constants/ExpertiseLevelEnum.ts +0 -0
  320. /package/src/stories/{Fondamentaux → Guidelines}/Accessibilite/constants/RGAALevelEnum.ts +0 -0
  321. /package/src/stories/{Fondamentaux → Guidelines}/EcoConception/EcoConception.mdx +0 -0
  322. /package/src/stories/{Fondamentaux → Guidelines}/EcoConception/ecoDesignItems.ts +0 -0
@@ -0,0 +1,120 @@
1
+ import {Meta, Source} from '@storybook/addon-docs/blocks';
2
+
3
+ <Meta title="Guide Du Dev/Comment utiliser les rules"/>
4
+
5
+ # Comment utiliser les règles de validation
6
+
7
+ Ce guide décrit comment utiliser le composable `useFieldValidation` pour créer des règles de validation flexibles et personnalisées dans votre projet Vue.js.
8
+
9
+ ---
10
+
11
+ ## Introduction
12
+
13
+ Le composable `useFieldValidation` vous permet de définir des règles de validation dynamiques pour différents champs dans vos formulaires. Ce composable est conçu pour être flexible, réutilisable et facilement intégrable avec des bibliothèques comme Vuetify.
14
+
15
+ ---
16
+
17
+ ## Structure du composable
18
+
19
+ ### Type `RuleOptions`
20
+
21
+ <Source dark code={`
22
+ type RuleOptions = {
23
+ fieldName?: string; // Nom du champ utilisé dans les messages d'erreur
24
+ message?: string; // Message personnalisé pour la règle
25
+ successMessage?: string; // Message personnalisé de validation réussie
26
+ length?: number; // Longueur minimale ou maximale
27
+ value?: number; // Valeur minimale ou maximale
28
+ pattern?: RegExp; // Motif à valider
29
+ ignoreSpace?: boolean; // Ignorer les espaces lors de la validation de longueur
30
+ validate?: (value: any) => boolean | string; // Validation personnalisée
31
+ };
32
+ `}
33
+ />
34
+
35
+ ### Type `ValidationResult`
36
+
37
+ <Source dark code={`
38
+ type ValidationResult = {
39
+ success?: string; // Message de validation réussie
40
+ error?: string; // Message d'erreur
41
+ };
42
+ `}
43
+ />
44
+
45
+ ---
46
+
47
+ ## Exemple d'intégration
48
+
49
+ ### Script Vue.js
50
+
51
+ <Source dark code={`
52
+ <script lang="ts" setup>
53
+ import { ref } from 'vue';
54
+ import { useFieldValidation } from '@cnamts/synapse';
55
+
56
+ const { generateRules } = useFieldValidation();
57
+
58
+ const firstName = ref('');
59
+ const email = ref('');
60
+ const age = ref('');
61
+
62
+ const rules = {
63
+ firstName: generateRules([
64
+ { type: 'required', options: { message: 'Ce champ est requis.' } },
65
+ { type: 'minLength', options: { length: 3, ignoreSpace: true } },
66
+ { type: 'maxLength', options: { length: 20 } },
67
+ ]),
68
+ email: generateRules([
69
+ { type: 'required', options: { fieldName: 'Email' } },
70
+ { type: 'email' },
71
+ ]),
72
+ age: generateRules([
73
+ { type: 'min', options: { value: 18 } },
74
+ { type: 'max', options: { value: 99 } },
75
+ ]),
76
+ };
77
+
78
+ const validateField = (field: string) => {
79
+ return rules[field].every((rule) => rule(field));
80
+ };
81
+
82
+ const handleSubmit = () => {
83
+ if (validateField('firstName') && validateField('email') && validateField('age')) {
84
+ alert('Formulaire valide.');
85
+ } else {
86
+ alert('Merci de vérifier les champs.');
87
+ }
88
+ };
89
+ </script>
90
+ `}
91
+ />
92
+
93
+ Vous pouvez retrouver un exemple complet sur le [NirField](/docs/composants-formulaires-nirfield--docs).
94
+
95
+ ---
96
+
97
+ ## Fonctionnalités supportées
98
+
99
+ - **Validation requise** (`required`) : Assurez-vous qu'un champ est rempli.
100
+ - **Longueur minimale** (`minLength`) : Validez un champ avec un nombre minimal de caractères.
101
+ - **Longueur maximale** (`maxLength`) : Limitez un champ à un nombre maximal de caractères.
102
+ - **Valeur minimale** (`min`) : Assurez-vous que la valeur est au moins égale à une valeur définie.
103
+ - **Valeur maximale** (`max`) : Assurez-vous que la valeur ne dépasse pas une valeur définie.
104
+ - **Validation par motif** (`matchPattern`) : Validez un champ à l'aide d'une expression régulière.
105
+ - **Validation d'email** (`email`) : Assurez-vous que la valeur est une adresse email valide.
106
+ - **Validation personnalisée** (`custom`) : Implémentez des règles spécifiques via une fonction.
107
+
108
+ ---
109
+
110
+ ## Bonnes pratiques
111
+
112
+ - **Centralisation** : Centralisez la logique de validation pour garantir une maintenance facile.
113
+ - **Accessibilité** : Vérifiez que les messages d'erreur sont clairs et concis pour tous les utilisateurs.
114
+
115
+ ---
116
+
117
+ ## Conclusion
118
+
119
+ Avec `useFieldValidation`, vous disposez d'un outil pour gérer les validations de vos formulaires dans Vue.js. Ce composable est idéal pour créer des validations personnalisées et intégrer des champs avec des bibliothèques comme Vuetify.
120
+
@@ -1,21 +1,21 @@
1
- import Alert from '../../components/Alert/Alert.vue'
1
+ import SyAlert from '@/components/SyAlert/SyAlert.vue'
2
2
 
3
3
  export default {
4
4
  title: 'Guide Du Dev/Rapport de bug',
5
- component: Alert,
5
+ component: SyAlert,
6
6
  }
7
7
  export const Info = {
8
8
  render: () => {
9
9
  return {
10
- components: { Alert },
10
+ components: { SyAlert },
11
11
  setup() {
12
12
  return { }
13
13
  },
14
14
  template: `
15
- <Alert type="info" variant="tonal" :closable="false">
15
+ <SyAlert type="info" variant="tonal" :closable="false">
16
16
  <template #default>Lorsque vous créez une reproduction minimale, supprimez tous les éléments, propriétés, variables, données et autres qui ne sont pas nécessaires pour reproduire le bug. Cela facilitera le traitement du rapport et le temps qu’il faudra pour identifier puis résoudre le bug.
17
17
  </template>
18
- </Alert>
18
+ </SyAlert>
19
19
  `,
20
20
  }
21
21
  },
@@ -122,7 +122,7 @@ Utilisation dans un composant Vue
122
122
  <Source dark code={`
123
123
  <script setup lang="ts">
124
124
  import { VBtn } from 'vuetify/components'
125
- import NotificationBar from '@cnamts/synapse'
125
+ import { NotificationBar } from '@cnamts/synapse'
126
126
  import { useNotificationService } from '@cnamts/synapse/src/services/NotificationService'
127
127
  import type { Notification } from '@cnamts/synapse/src/components/NotificationBar/types'
128
128
 
@@ -3,7 +3,7 @@ import type { StoryObj } from '@storybook/vue3'
3
3
  import { AccessibiliteItems } from './AccessibiliteItems'
4
4
 
5
5
  export default {
6
- title: 'Fondamentaux/Accessibilité',
6
+ title: 'Guidelines/Accessibilité',
7
7
  }
8
8
 
9
9
  export const AccessibilitePanel: StoryObj = {
@@ -1,9 +1,9 @@
1
1
  import { VExpansionPanels, VExpansionPanel } from 'vuetify/components'
2
2
  import type { StoryObj } from '@storybook/vue3'
3
- import { ecoDesignItems } from '@/stories/Fondamentaux/EcoConception/ecoDesignItems'
3
+ import { ecoDesignItems } from '@/stories/Guidelines/EcoConception/ecoDesignItems'
4
4
 
5
5
  export default {
6
- title: 'Fondamentaux/Éco-conception',
6
+ title: 'Guidelines/Éco-conception',
7
7
  }
8
8
 
9
9
  export const EcoPanel: StoryObj = {
@@ -0,0 +1,11 @@
1
+ import { Meta, Story } from '@storybook/addon-docs';
2
+ import * as AccessStories from './Vuetify.stories.ts';
3
+
4
+ <Meta of={AccessStories} />
5
+
6
+ Vuetify & Accessibilité
7
+ =============
8
+
9
+ <Story of={AccessStories.Legende} />
10
+
11
+ <Story of={AccessStories.VuetifyPanel} />
@@ -0,0 +1,138 @@
1
+ import { VExpansionPanels, VExpansionPanel, VExpansionPanelTitle, VExpansionPanelText, VDataTable, VIcon, VRow, VCol } from 'vuetify/components'
2
+ import type { StoryObj } from '@storybook/vue3'
3
+ import { VuetifyItems } from './VuetifyItems'
4
+ import { mdiCheckboxMarkedCircleOutline, mdiLinkVariant, mdiAlertCircleOutline } from '@mdi/js'
5
+
6
+ const checkIcon = mdiCheckboxMarkedCircleOutline
7
+ const linkICon = mdiLinkVariant
8
+ const iconAlert = mdiAlertCircleOutline
9
+ export default {
10
+ title: 'Guidelines/Vuetify',
11
+ }
12
+
13
+ export const VuetifyPanel: StoryObj = {
14
+ render: () => {
15
+ return {
16
+ components: { VExpansionPanels, VExpansionPanel, VExpansionPanelTitle, VExpansionPanelText, VDataTable, VIcon },
17
+ setup() {
18
+ return { VuetifyItems, checkIcon, iconAlert, linkICon }
19
+ },
20
+ template: `
21
+ <div v-for="(item, index) in VuetifyItems" :key="index">
22
+ <v-data-table
23
+ :items="item.items"
24
+ :items-per-page="23"
25
+ hide-default-footer>
26
+ <template v-slot:header.name="{ header }">
27
+ Composant Vuetify
28
+ </template>
29
+
30
+ <template v-slot:header.errorImportants="{ header }">
31
+ Erreurs bloquantes (Tanaguru)
32
+ </template>
33
+ <template v-slot:item.name="{ item }">
34
+ <v-chip v-if="item.errorImportants == 0 && item.errorIndeterminated == 0"
35
+ style="font-size: 12px; line-height: 15px;">
36
+ <VIcon style="margin-right: 2px;" :icon="checkIcon"/>
37
+ {{ item.name }}
38
+ </v-chip>
39
+ <v-chip v-else style="font-size: 12px; line-height: 15px;">
40
+ <VIcon style="margin-right: 2px;" :icon="iconAlert"/>
41
+ {{ item.name }}
42
+ </v-chip>
43
+ </template>
44
+
45
+ <template v-slot:item.solution="{ item }">
46
+ <div v-if="item.solution.length > 0">
47
+ <span v-for="(item, index) in item.solution"
48
+ style="display:flex; align-items: center; font-size: 12px; line-height: 15px; font-weight: bold">
49
+ {{ item.name }} <a :href="item.href" v-if="item.href">
50
+ <VBtn color="primary" style="margin-left: 5px;" :icon="linkICon" size="small"
51
+ variant="text"/></a>
52
+ </span>
53
+ </div>
54
+ </template>
55
+
56
+ <template v-slot:item.errorImportants="{ item }">
57
+ <div v-if="item.errorImportants.length === 0">
58
+ <p style="margin-top: 5px; margin-bottom: 5px; font-size: 12px;">Pas d'erreur
59
+ d'accessibilité relevée à ce jour</p>
60
+ </div>
61
+ <div v-else v-for="item in item.errorImportants" :key="index"
62
+ style="width: 100% !important; font-size: 12px; line-height: 15px;">
63
+ <p style="margin-top: 5px; margin-bottom: 5px;">
64
+ <span style="font-weight: bold;">{{ item.match('[0-9.]+')?.join('') || '' }} </span>
65
+ {{ item.replace(/[0-9.]/g, '') }}
66
+ </p>
67
+ </div>
68
+ </template>
69
+
70
+ <template v-slot:item.errorIndeterminated="{ item }">
71
+ <div v-if="item.errorIndeterminated.length === 0">
72
+ <p style="margin-top: 5px; margin-bottom: 5px; font-size: 12px;">Pas d'erreur
73
+ d'accessibilité relevée à ce jour</p>
74
+ </div>
75
+ <div v-else v-for="item in item.errorIndeterminated" :key="index"
76
+ style="width: 100% !important; font-size: 12px; line-height: 15px;">
77
+ <p style="margin-top: 5px; margin-bottom: 5px;">
78
+ <span style="font-weight: bold;">{{ item.match('[0-9.]+')?.join('') || '' }} </span>
79
+ {{ item.replace(/[0-9.]/g, '') }}
80
+ </p>
81
+ </div>
82
+ </template>
83
+
84
+ <template v-slot:header.errorIndeterminated="{ header }">
85
+ Erreurs indéterminées (Tanaguru)
86
+ </template>
87
+ <template v-slot:header.solution="{ header }">
88
+ Solution
89
+ </template>
90
+
91
+ <template v-slot:header.href="{ header }" style="display:none">
92
+ <th v-if="false" style="display:none"></th>
93
+ </template>
94
+
95
+ <template v-slot:item.href="{ item }" style="display:none">
96
+ <td v-if="false">{{ item.someColumn }}</td>
97
+ </template>
98
+ </v-data-table>
99
+ </div>
100
+ `,
101
+ }
102
+ },
103
+ tags: ['!dev'],
104
+ }
105
+
106
+ export const Legende: StoryObj = {
107
+ args: {
108
+ },
109
+ render: (args) => {
110
+ return {
111
+ components: { VIcon, VRow, VCol },
112
+ setup() {
113
+ return { args, checkIcon, iconAlert }
114
+ },
115
+ template: `
116
+ <p style="color: grey;font-size: 11px; margin-bottom: 12px;">Date de conception: 13/12/2024</p>
117
+
118
+ <VRow class="mt-2 mb-5">
119
+ <VCol cols="12" sm="12" class="m-2 p-2 v-col-auto">
120
+ <div style="font-size: 13px;">
121
+ <p>L'étude relève que la majorité des composants garantissent l'accessibilité numérique par défaut tel que défini par le RGAA. <br />Nous identifions néanmoins pour certains composants qu'un travail d'ajustement est nécessaire. Ce travail peut être réalisé directement par les produits.<br />Dans une démarche d'accélération de la fabrication, nous proposons pour chaque composant relevant d'un manque sur le sujet des solutions afin d'en faciliter la mise en conformité. Ces solutions peuvent être de nature : composant ou recommandation.</p>
122
+ <br />
123
+ <p>Pour chaque composant, nous indiquons les erreurs remontées par l'outil Tanaguru : Erreurs bloquantes et indéterminées.<br />Ces erreurs doivent être analysées contextuellement. Pour rappel, l'accessibilité numérique ne se mesure par sur des composants seuls dénués de contexte.<br />Une appréciation de la part du développeur est nécessaire pour en évaluer la pertinence.</p>
124
+ </div>
125
+ </VCol>
126
+
127
+ <VCol cols="12" sm="4" class="m-2 p-2 v-col-auto">
128
+ <p style="font-size: 13px;"><VIcon style="margin-right: 2px;" :icon="iconAlert" /> Composant non conforme par défaut.</p>
129
+ <p style="font-size: 13px;"><VIcon style="margin-right: 2px;" :icon="checkIcon" /> Composant conforme.</p>
130
+ </VCol>
131
+
132
+ </VRow>
133
+
134
+ `,
135
+ }
136
+ },
137
+ tags: ['!dev'],
138
+ }
@@ -0,0 +1,350 @@
1
+ export const VuetifyItems = [
2
+ {
3
+ items: [
4
+ {
5
+ name: 'VTextField',
6
+ errorImportants: ['11.1.1 Un bouton adjacent au champ de formulaire lui fournit une étiquette visible et un élément <label> visuellement caché ou un attribut WAI-ARIA aria-label, aria-labelledby ou title lui fournit un nom accessible.'],
7
+ errorIndeterminated: [
8
+ '3.2.1 Dans chaque page web, le texte et le texte en image sans effet de graisse d’une taille restituée inférieure à 24px vérifient-ils une de ces conditions',
9
+ '11.13.1 La finalité d\'un champs de saisie peut-elle être déduite pour faciliter le remplissage automatique des champs avec les données de l\'utilisateur',
10
+ '12.9 Dans chaque page web, la navigation ne doit pas contenir de piège au clavier.',
11
+
12
+ ],
13
+ solution: [
14
+ {
15
+ name: 'SyTextField',
16
+ href: '/?path=/docs/composants-formulaires-sytextfield--docs',
17
+ },
18
+
19
+ ],
20
+ },
21
+ {
22
+ name: 'Select',
23
+ errorImportants: [
24
+
25
+ '8.2 Pour chaque page web, le code source généré est-il valide selon le type de document spécifié',
26
+ '11.1.1 Un bouton adjacent au champ de formulaire lui fournit une étiquette visible et un élément <label> visuellement caché ou un attribut WAI-ARIA aria-label, aria-labelledby ou title lui fournit un nom accessible.',
27
+ '12.11 Dans chaque page web, les contenus additionnels apparaissant au survol, à la prise de focus ou à l’activation d’un composant d’interface sont-ils si nécessaire atteignables au clavier',
28
+
29
+ ],
30
+ errorIndeterminated: [
31
+ '3.2.1 Dans chaque page web, le texte et le texte en image sans effet de graisse d’une taille restituée inférieure à 24px vérifient-ils une de ces conditions',
32
+ '10.8 Pour chaque page web, les contenus cachés ont-ils vocation à être ignorés par les technologies d’assistance',
33
+ '11.13 La finalité d’un champ de saisie peut-elle être déduite pour faciliter le remplissage automatique des champs avec les données de l’utilisateur',
34
+ '11.2.2 Chaque attribut title permet-il de connaître la fonction exacte du champ de formulaire auquel il est associé',
35
+ '11.2.3 Chaque étiquette implémentée via l’attribut WAI-ARIA aria-label permet-elle de connaître la fonction exacte du champ de formulaire auquel elle est associée',
36
+ '12.9 Dans chaque page web, la navigation ne doit pas contenir de piège au clavier.',
37
+
38
+ ],
39
+ solution: [
40
+ {
41
+ name: 'SySelect',
42
+ href: '/?path=/docs/composants-formulaires-syselect--docs',
43
+ },
44
+ {
45
+ name: 'SyInputSelect',
46
+ href: '/?path=/docs/composants-formulaires-syinputselect--docs',
47
+ },
48
+ {
49
+ name: 'SyBtnSelect',
50
+ href: '/?path=/docs/composants-formulaires-sybtnselect--docs',
51
+ },
52
+ ],
53
+ },
54
+ {
55
+ name: 'Divider',
56
+ errorImportants: [
57
+
58
+ ],
59
+ errorIndeterminated: [
60
+
61
+ ],
62
+ solution: [],
63
+ },
64
+ {
65
+ name: 'Buttons',
66
+ errorImportants: [
67
+
68
+ ],
69
+ errorIndeterminated: [
70
+
71
+ ],
72
+ solution: [],
73
+ },
74
+ {
75
+ name: 'Chips',
76
+ errorImportants: [
77
+
78
+ ],
79
+ errorIndeterminated: [
80
+
81
+ ],
82
+ solution: [],
83
+ },
84
+ {
85
+ name: 'Tooltip',
86
+ errorImportants: [
87
+
88
+ ],
89
+ errorIndeterminated: [
90
+
91
+ ],
92
+ solution: [],
93
+ },
94
+ {
95
+ name: 'Cards',
96
+ errorImportants: [
97
+ '3.2.1 Dans chaque page web, le texte et le texte en image sans effet de graisse d’une taille restituée inférieure à 24px vérifient-ils une de ces conditions',
98
+ '8.2 Pour chaque page web, le code source généré est-il valide selon le type de document spécifié',
99
+ '11.1.1 Un bouton adjacent au champ de formulaire lui fournit une étiquette visible et un élément <label> visuellement caché ou un attribut WAI-ARIA aria-label, aria-labelledby ou title lui fournit un nom accessible.',
100
+ ],
101
+ errorIndeterminated: [
102
+
103
+ ],
104
+ solution: [{
105
+ name: 'En étude',
106
+ }],
107
+ },
108
+ {
109
+ name: 'Tabs',
110
+ errorImportants: [
111
+ '12.11 Dans chaque page web, les contenus additionnels apparaissant au survol, à la prise de focus ou à l’activation d’un composant d’interface sont-ils si nécessaire atteignables au clavier',
112
+ ],
113
+ errorIndeterminated: [
114
+
115
+ ],
116
+ solution: [{
117
+ name: 'En étude',
118
+ }],
119
+ },
120
+
121
+ {
122
+ name: 'Textarea',
123
+ errorImportants: [
124
+ '11.1.1 Un bouton adjacent au champ de formulaire lui fournit une étiquette visible et un élément <label> visuellement caché ou un attribut WAI-ARIA aria-label, aria-labelledby ou title lui fournit un nom accessible.',
125
+ ],
126
+ errorIndeterminated: [
127
+
128
+ '3.2.1 Dans chaque page web, le texte et le texte en image sans effet de graisse d’une taille restituée inférieure à 24px vérifient-ils une de ces conditions',
129
+ '10.8 Pour chaque page web, les contenus cachés ont-ils vocation à être ignorés par les technologies d’assistance',
130
+ '11.13 La finalité d’un champ de saisie peut-elle être déduite pour faciliter le remplissage automatique des champs avec les données de l’utilisateur',
131
+ '12.9 Dans chaque page web, la navigation ne doit pas contenir de piège au clavier.',
132
+
133
+ ],
134
+ solution: [{
135
+ name: 'En étude',
136
+ }],
137
+ },
138
+
139
+ {
140
+ name: 'Sliders',
141
+ errorImportants: [
142
+ '11.1.1 Un bouton adjacent au champ de formulaire lui fournit une étiquette visible et un élément <label> visuellement caché ou un attribut WAI-ARIA aria-label, aria-labelledby ou title lui fournit un nom accessible.',
143
+ ],
144
+ errorIndeterminated: [
145
+
146
+ ],
147
+ solution: [{
148
+ name: 'En étude',
149
+ }],
150
+ },
151
+ {
152
+ name: 'Table',
153
+ errorImportants: [
154
+ '5.4 Pour chaque tableau de données ayant un titre, le titre est-il correctement associé au tableau de données',
155
+ ],
156
+ errorIndeterminated: [
157
+
158
+ ],
159
+ solution: [{
160
+ name: 'En étude',
161
+ }],
162
+ },
163
+ {
164
+ name: 'Expansion panels',
165
+ errorImportants: [
166
+
167
+ ],
168
+ errorIndeterminated: [
169
+
170
+ '10.8 Pour chaque page web, les contenus cachés ont-ils vocation à être ignorés par les technologies d’assistance',
171
+
172
+ ],
173
+ solution: [{
174
+ name: 'En étude',
175
+ }],
176
+ },
177
+ {
178
+ name: 'Breadcrumbs',
179
+ errorImportants: [
180
+ '3.2.1 Dans chaque page web, le texte et le texte en image sans effet de graisse d’une taille restituée inférieure à 24px vérifient-ils une de ces conditions',
181
+ ],
182
+ errorIndeterminated: [
183
+
184
+ ],
185
+ solution: [{
186
+ name: 'En étude',
187
+ }],
188
+ },
189
+
190
+ {
191
+ name: 'Progress Linear',
192
+ errorImportants: [
193
+ '8.2 Pour chaque page web, le code source généré est-il valide selon le type de document spécifié',
194
+ '11.1.1 Un bouton adjacent au champ de formulaire lui fournit une étiquette visible et un élément <label> visuellement caché ou un attribut WAI-ARIA aria-label, aria-labelledby ou title lui fournit un nom accessible.',
195
+ ],
196
+ errorIndeterminated: [
197
+
198
+ ],
199
+ solution: [{
200
+ name: 'En étude',
201
+ }],
202
+ },
203
+ {
204
+ name: 'Progress circular',
205
+ errorImportants: [
206
+ '1.1.5 Chaque image vectorielle (balise <svg>) porteuse d’information, vérifie-t-elle ces conditions -La balise <svg> possède un attribut WAI-ARIA role="img" ;',
207
+ '1.2 Chaque image de décoration est-elle correctement ignorée par les technologies d’assistance',
208
+ '8.2 Pour chaque page web, le code source généré est-il valide selon le type de document spécifié',
209
+ '11.1.1 Un bouton adjacent au champ de formulaire lui fournit une étiquette visible et un élément <label> visuellement caché ou un attribut WAI-ARIA aria-label, aria-labelledby ou title lui fournit un nom accessible.',
210
+ ],
211
+ errorIndeterminated: [
212
+
213
+ ],
214
+ solution: [{
215
+ name: 'En étude',
216
+ }],
217
+ },
218
+
219
+ {
220
+ name: 'Lists',
221
+ errorImportants: [
222
+ '3.2.1 Dans chaque page web, le texte et le texte en image sans effet de graisse d’une taille restituée inférieure à 24px vérifient-ils une de ces conditions',
223
+ '7.4 Pour chaque script qui initie un changement de contexte, l’utilisateur est-il averti ou en a-t-il le contrôle',
224
+ '8.2 Pour chaque page web, le code source généré est-il valide selon le type de document spécifié',
225
+ '11.1.1 Un bouton adjacent au champ de formulaire lui fournit une étiquette visible et un élément <label> visuellement caché ou un attribut WAI-ARIA aria-label, aria-labelledby ou title lui fournit un nom accessible.',
226
+ ],
227
+ errorIndeterminated: [
228
+
229
+ ],
230
+ solution: [{
231
+ name: 'En étude',
232
+ }],
233
+ },
234
+ {
235
+ name: 'Steppers',
236
+ errorImportants: [
237
+ '3.2.1 Dans chaque page web, le texte et le texte en image sans effet de graisse d’une taille restituée inférieure à 24px vérifient-ils une de ces conditions',
238
+
239
+ ],
240
+ errorIndeterminated: [
241
+ '3.1.2 Pour chaque indication de couleur donnée par un texte, l’information ne doit pas être donnée uniquement par la couleur. Cette règle est-elle respectée ?',
242
+ ],
243
+ solution: [{
244
+ name: 'En étude',
245
+ }],
246
+ },
247
+ {
248
+ name: 'Combobox',
249
+ errorImportants: [
250
+ '8.2 Pour chaque page web, le code source généré est-il valide selon le type de document spécifié',
251
+ '11.1.1 Un bouton adjacent au champ de formulaire lui fournit une étiquette visible et un élément <label> visuellement caché ou un attribut WAI-ARIA aria-label, aria-labelledby ou title lui fournit un nom accessible.',
252
+ '12.11 Dans chaque page web, les contenus additionnels apparaissant au survol, à la prise de focus ou à l’activation d’un composant d’interface sont-ils si nécessaire atteignables au clavier',
253
+ ],
254
+ errorIndeterminated: [
255
+ '3.2.1 Dans chaque page web, le texte et le texte en image sans effet de graisse d’une taille restituée inférieure à 24px vérifient-ils une de ces conditions',
256
+ '10.8 Pour chaque page web, les contenus cachés ont-ils vocation à être ignorés par les technologies d’assistance',
257
+ '11.13.1 La finalité d\'un champs de saisie peut-elle être déduite pour faciliter le remplissage automatique des champs avec les données de l\'utilisateur',
258
+
259
+ ],
260
+ solution: [{
261
+ name: 'En étude',
262
+ }],
263
+ },
264
+ {
265
+ name: 'Autocomplete',
266
+ errorImportants: [
267
+ '3.2.1 Dans chaque page web, le texte et le texte en image sans effet de graisse d’une taille restituée inférieure à 24px vérifient-ils une de ces conditions',
268
+ '8.2 Pour chaque page web, le code source généré est-il valide selon le type de document spécifié',
269
+ '11.1.1 Un bouton adjacent au champ de formulaire lui fournit une étiquette visible et un élément <label> visuellement caché ou un attribut WAI-ARIA aria-label, aria-labelledby ou title lui fournit un nom accessible.',
270
+ '12.11 Dans chaque page web, les contenus additionnels apparaissant au survol, à la prise de focus ou à l’activation d’un composant d’interface sont-ils si nécessaire atteignables au clavier',
271
+ ],
272
+ errorIndeterminated: [
273
+ '3.2.1 Dans chaque page web, le texte et le texte en image sans effet de graisse d’une taille restituée inférieure à 24px vérifient-ils une de ces conditions',
274
+ '10.8 Pour chaque page web, les contenus cachés ont-ils vocation à être ignorés par les technologies d’assistance',
275
+ '11.13.1 La finalité d\'un champs de saisie peut-elle être déduite pour faciliter le remplissage automatique des champs avec les données de l\'utilisateur',
276
+
277
+ ],
278
+ solution: [{
279
+ name: 'En étude',
280
+ }],
281
+ },
282
+ {
283
+ name: 'Switches',
284
+ errorImportants: [
285
+ '8.2 Pour chaque page web, le code source généré est-il valide selon le type de document spécifié',
286
+
287
+ ],
288
+ errorIndeterminated: [
289
+ '10.8 Pour chaque page web, les contenus cachés ont-ils vocation à être ignorés par les technologies d’assistance',
290
+ '11.2.3 Chaque étiquette implémentée via l’attribut WAI-ARIA aria-label permet-elle de connaître la fonction exacte du champ de formulaire auquel elle est associée',
291
+ '12.9 Dans chaque page web, la navigation ne doit pas contenir de piège au clavier.',
292
+
293
+ ],
294
+ solution: [{
295
+ name: 'En étude',
296
+ }],
297
+ },
298
+ {
299
+ name: 'Checkboxes',
300
+ errorImportants: [
301
+ '8.2 Pour chaque page web, le code source généré est-il valide selon le type de document spécifié',
302
+
303
+ ],
304
+ errorIndeterminated: [
305
+ '10.8 Pour chaque page web, les contenus cachés ont-ils vocation à être ignorés par les technologies d’assistance',
306
+ '11.2.3 Chaque étiquette implémentée via l’attribut WAI-ARIA aria-label permet-elle de connaître la fonction exacte du champ de formulaire auquel elle est associée',
307
+ '12.9 Dans chaque page web, la navigation ne doit pas contenir de piège au clavier.',
308
+
309
+ ],
310
+ solution: [{
311
+ name: 'En étude',
312
+ }],
313
+ },
314
+ {
315
+ name: 'RadioButtons',
316
+ errorImportants: [
317
+ '8.2 Pour chaque page web, le code source généré est-il valide selon le type de document spécifié',
318
+
319
+ ],
320
+ errorIndeterminated: [
321
+ '10.8 Pour chaque page web, les contenus cachés ont-ils vocation à être ignorés par les technologies d’assistance',
322
+ '11.2.3 Chaque étiquette implémentée via l’attribut WAI-ARIA aria-label permet-elle de connaître la fonction exacte du champ de formulaire auquel elle est associée',
323
+ '12.9 Dans chaque page web, la navigation ne doit pas contenir de piège au clavier.',
324
+
325
+ ],
326
+ solution: [{
327
+ name: 'En étude',
328
+ }],
329
+ },
330
+ {
331
+ name: 'OTP Input',
332
+ errorImportants: [
333
+ '11.1 Chaque champ de formulaire a-t-il une étiquette',
334
+ '11.4 Dans chaque formulaire, chaque étiquette de champ et son champ associé sont-ils accolés',
335
+
336
+ ],
337
+ errorIndeterminated: [
338
+ '10.8 Pour chaque page web, les contenus cachés ont-ils vocation à être ignorés par les technologies d’assistance',
339
+ '11.2.3 Chaque étiquette implémentée via l’attribut WAI-ARIA aria-label permet-elle de connaître la fonction exacte du champ de formulaire auquel elle est associée',
340
+ '11.13.1 La finalité d\'un champs de saisie peut-elle être déduite pour faciliter le remplissage automatique des champs avec les données de l\'utilisateur',
341
+
342
+ ],
343
+ solution: [{
344
+ name: 'En étude',
345
+ }],
346
+ },
347
+ ],
348
+ },
349
+
350
+ ]