@cnamts/synapse 0.0.5-alpha → 0.0.7-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 (229) hide show
  1. package/dist/design-system-v3.d.ts +487 -415
  2. package/dist/design-system-v3.js +2954 -2203
  3. package/dist/design-system-v3.umd.cjs +6 -6
  4. package/dist/style.css +1 -1
  5. package/package.json +17 -17
  6. package/src/assets/settings.scss +3 -0
  7. package/src/assets/tokens.scss +16 -16
  8. package/src/components/BackBtn/AccessibiliteItems.ts +0 -30
  9. package/src/components/BackBtn/BackBtn.mdx +1 -1
  10. package/src/components/BackBtn/BackBtn.stories.ts +12 -9
  11. package/src/components/BackBtn/BackBtn.vue +0 -1
  12. package/src/components/BackToTopBtn/AccessibiliteItems.ts +0 -30
  13. package/src/components/BackToTopBtn/BackToTopBtn.mdx +1 -1
  14. package/src/components/BackToTopBtn/BackToTopBtn.stories.ts +3 -3
  15. package/src/components/CollapsibleList/Accessibilite.stories.ts +4 -0
  16. package/src/components/CollapsibleList/AccessibiliteItems.ts +55 -62
  17. package/src/components/CollapsibleList/CollapsibleList.stories.ts +1 -1
  18. package/src/components/CookieBanner/Accessibilite.stories.ts +219 -0
  19. package/src/components/CookieBanner/AccessibiliteItems.ts +356 -0
  20. package/src/components/CookieBanner/CookieBanner.mdx +219 -0
  21. package/src/components/CookieBanner/CookieBanner.stories.ts +680 -0
  22. package/src/components/CookieBanner/CookieBanner.vue +225 -0
  23. package/src/components/CookieBanner/config.ts +38 -0
  24. package/src/components/CookieBanner/locales.ts +12 -0
  25. package/src/components/CookieBanner/tests/CookieBanner.spec.ts +129 -0
  26. package/src/components/CookieBanner/tests/__snapshots__/CookieBanner.spec.ts.snap +197 -0
  27. package/src/components/CookiesSelection/CookiesInformation/CookiesInformation.vue +123 -0
  28. package/src/components/CookiesSelection/CookiesInformation/locales.ts +21 -0
  29. package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.spec.ts +121 -0
  30. package/src/components/CookiesSelection/CookiesSelection.vue +127 -0
  31. package/src/components/CookiesSelection/CookiesTable/CookiesTable.vue +47 -0
  32. package/src/components/CookiesSelection/CookiesTable/headers.ts +14 -0
  33. package/src/components/CookiesSelection/CookiesTable/tests/CookiesTable.spec.ts +30 -0
  34. package/src/components/CookiesSelection/CookiesTable/tests/__snapshots__/CookiesTable.spec.ts.snap +3 -0
  35. package/src/components/CookiesSelection/locales.ts +10 -0
  36. package/src/components/CookiesSelection/tests/CookiesSelection.spec.ts +184 -0
  37. package/src/components/CookiesSelection/tests/__snapshots__/CookiesSelection.spec.ts.snap +192 -0
  38. package/src/components/CookiesSelection/types.ts +15 -0
  39. package/src/components/CopyBtn/AccessibiliteItems.ts +0 -30
  40. package/src/components/CopyBtn/CopyBtn.mdx +1 -1
  41. package/src/components/CopyBtn/CopyBtn.stories.ts +9 -6
  42. package/src/components/CopyBtn/CopyBtn.vue +0 -1
  43. package/src/components/Customs/SyBtnSelect/Accessibilite.mdx +14 -0
  44. package/src/components/Customs/SyBtnSelect/Accessibilite.stories.ts +193 -0
  45. package/src/components/Customs/SyBtnSelect/AccessibiliteItems.ts +139 -0
  46. package/src/components/Customs/SyBtnSelect/SyBtnSelect.mdx +3 -2
  47. package/src/components/Customs/SyBtnSelect/SyBtnSelect.stories.ts +30 -14
  48. package/src/components/Customs/SyBtnSelect/SyBtnSelect.vue +21 -13
  49. package/src/components/Customs/SyBtnSelect/constants/ExpertiseLevelEnum.ts +4 -0
  50. package/src/components/Customs/SyInputSelect/Accessibilite.mdx +14 -0
  51. package/src/components/Customs/SyInputSelect/Accessibilite.stories.ts +166 -0
  52. package/src/components/Customs/SyInputSelect/AccessibiliteItems.ts +96 -0
  53. package/src/components/Customs/SyInputSelect/SyInputSelect.mdx +7 -3
  54. package/src/components/Customs/SyInputSelect/SyInputSelect.stories.ts +24 -65
  55. package/src/components/Customs/SyInputSelect/SyInputSelect.vue +36 -4
  56. package/src/components/Customs/SyInputSelect/constants/ExpertiseLevelEnum.ts +4 -0
  57. package/src/components/Customs/SySelect/Accessibilite.mdx +14 -0
  58. package/src/components/Customs/SySelect/Accessibilite.stories.ts +217 -0
  59. package/src/components/Customs/SySelect/AccessibiliteItems.ts +173 -0
  60. package/src/components/Customs/SySelect/SySelect.mdx +4 -4
  61. package/src/components/Customs/SySelect/SySelect.stories.ts +4 -60
  62. package/src/components/Customs/SySelect/SySelect.vue +35 -8
  63. package/src/components/Customs/SySelect/constants/ExpertiseLevelEnum.ts +4 -0
  64. package/src/components/Customs/SyTextField/Accessibilite.mdx +14 -0
  65. package/src/components/Customs/SyTextField/Accessibilite.stories.ts +224 -0
  66. package/src/components/Customs/SyTextField/AccessibiliteItems.ts +198 -0
  67. package/src/components/Customs/SyTextField/SyTextField.mdx +1 -1
  68. package/src/components/Customs/SyTextField/SyTextField.stories.ts +118 -7
  69. package/src/components/Customs/SyTextField/SyTextField.vue +27 -7
  70. package/src/components/Customs/SyTextField/constants/ExpertiseLevelEnum.ts +4 -0
  71. package/src/components/Customs/SyTextField/tests/__snapshots__/SyTextField.spec.ts.snap +2 -1
  72. package/src/components/DataList/Accessibilite.mdx +14 -0
  73. package/src/components/DataList/Accessibilite.stories.ts +166 -0
  74. package/src/components/DataList/AccessibiliteItems.ts +47 -0
  75. package/src/components/DataList/DataList.mdx +1 -1
  76. package/src/components/DataList/DataList.stories.ts +10 -10
  77. package/src/components/DataList/constants/ExpertiseLevelEnum.ts +4 -0
  78. package/src/components/DataListGroup/Accessibilite.mdx +14 -0
  79. package/src/components/DataListGroup/Accessibilite.stories.ts +225 -0
  80. package/src/components/DataListGroup/AccessibiliteItems.ts +79 -0
  81. package/src/components/DataListGroup/DataListGroup.mdx +1 -1
  82. package/src/components/DataListGroup/DataListGroup.stories.ts +7 -7
  83. package/src/components/DataListGroup/constants/ExpertiseLevelEnum.ts +4 -0
  84. package/src/components/DialogBox/Accessibilite.mdx +14 -0
  85. package/src/components/DialogBox/Accessibilite.stories.ts +189 -0
  86. package/src/components/DialogBox/AccessibiliteItems.ts +167 -0
  87. package/src/components/DialogBox/constants/ExpertiseLevelEnum.ts +4 -0
  88. package/src/components/DownloadBtn/AccessibiliteItems.ts +1 -31
  89. package/src/components/DownloadBtn/DownloadBtn.mdx +5 -6
  90. package/src/components/DownloadBtn/DownloadBtn.stories.ts +25 -26
  91. package/src/components/ErrorPage/Accessibilite.mdx +14 -0
  92. package/src/components/ErrorPage/Accessibilite.stories.ts +189 -0
  93. package/src/components/ErrorPage/AccessibiliteItems.ts +205 -0
  94. package/src/components/ErrorPage/ErrorPage.vue +1 -1
  95. package/src/components/ErrorPage/constants/ExpertiseLevelEnum.ts +4 -0
  96. package/src/components/ErrorPage/tests/__snapshots__/ErrorPage.spec.ts.snap +4 -4
  97. package/src/components/FooterBar/Accessibilite.mdx +14 -0
  98. package/src/components/FooterBar/Accessibilite.stories.ts +223 -0
  99. package/src/components/FooterBar/AccessibiliteItems.ts +257 -0
  100. package/src/components/FooterBar/FooterBar.mdx +2 -2
  101. package/src/components/FooterBar/FooterBar.stories.ts +14 -14
  102. package/src/components/FooterBar/FooterBar.vue +86 -75
  103. package/src/components/FooterBar/constants/ExpertiseLevelEnum.ts +4 -0
  104. package/src/components/FooterBar/tests/__snapshots__/FooterBar.spec.ts.snap +22 -20
  105. package/src/components/FranceConnectBtn/AccessibiliteItems.ts +0 -30
  106. package/src/components/FranceConnectBtn/FranceConnectBtn.mdx +1 -1
  107. package/src/components/FranceConnectBtn/FranceConnectBtn.stories.ts +5 -4
  108. package/src/components/HeaderBar/Accessibilite.mdx +14 -0
  109. package/src/components/HeaderBar/Accessibilite.stories.ts +223 -0
  110. package/src/components/HeaderBar/AccessibiliteItems.ts +194 -0
  111. package/src/components/HeaderBar/HeaderBar.stories.ts +19 -12
  112. package/src/components/HeaderBar/HeaderBar.vue +9 -12
  113. package/src/components/HeaderBar/HeaderBurgerMenu/Accessibilite.mdx +14 -0
  114. package/src/components/HeaderBar/HeaderBurgerMenu/Accessibilite.stories.ts +223 -0
  115. package/src/components/HeaderBar/HeaderBurgerMenu/AccessibiliteItems.ts +174 -0
  116. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderBurgerMenu.vue +1 -0
  117. package/src/components/HeaderBar/HeaderBurgerMenu/constants/ExpertiseLevelEnum.ts +4 -0
  118. package/src/components/HeaderBar/constants/ExpertiseLevelEnum.ts +4 -0
  119. package/src/components/HeaderBar/tests/__snapshots__/HeaderBar.spec.ts.snap +1 -1
  120. package/src/components/HeaderLoading/Accessibilite.mdx +14 -0
  121. package/src/components/HeaderLoading/Accessibilite.stories.ts +167 -0
  122. package/src/components/HeaderLoading/AccessibiliteItems.ts +29 -0
  123. package/src/components/HeaderLoading/HeaderLoading.mdx +1 -1
  124. package/src/components/HeaderLoading/HeaderLoading.stories.ts +1 -1
  125. package/src/components/HeaderLoading/constants/ExpertiseLevelEnum.ts +4 -0
  126. package/src/components/HeaderNavigationBar/HeaderNavigationBar.stories.ts +104 -32
  127. package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +35 -33
  128. package/src/components/HeaderToolbar/Accessibilite.mdx +14 -0
  129. package/src/components/HeaderToolbar/Accessibilite.stories.ts +203 -0
  130. package/src/components/HeaderToolbar/AccessibiliteItems.ts +200 -0
  131. package/src/components/HeaderToolbar/HeaderToolbar.mdx +1 -1
  132. package/src/components/HeaderToolbar/HeaderToolbar.stories.ts +2 -2
  133. package/src/components/HeaderToolbar/HeaderToolbar.vue +24 -1
  134. package/src/components/HeaderToolbar/constants/ExpertiseLevelEnum.ts +4 -0
  135. package/src/components/LangBtn/Accessibilite.stories.ts +3 -1
  136. package/src/components/LangBtn/AccessibiliteItems.ts +0 -31
  137. package/src/components/LangBtn/LangBtn.mdx +1 -1
  138. package/src/components/LangBtn/LangBtn.stories.ts +4 -4
  139. package/src/components/LangBtn/LangBtn.vue +3 -2
  140. package/src/components/Logo/Accessibilite.mdx +14 -0
  141. package/src/components/Logo/Accessibilite.stories.ts +223 -0
  142. package/src/components/Logo/AccessibiliteItems.ts +155 -0
  143. package/src/components/Logo/Logo.mdx +1 -1
  144. package/src/components/Logo/Logo.stories.ts +8 -8
  145. package/src/components/Logo/constants/ExpertiseLevelEnum.ts +4 -0
  146. package/src/components/LogoBrandSection/Accessibilite.mdx +14 -0
  147. package/src/components/LogoBrandSection/Accessibilite.stories.ts +223 -0
  148. package/src/components/LogoBrandSection/AccessibiliteItems.ts +194 -0
  149. package/src/components/LogoBrandSection/constants/ExpertiseLevelEnum.ts +4 -0
  150. package/src/components/MaintenancePage/Accessibilite.mdx +14 -0
  151. package/src/components/MaintenancePage/Accessibilite.stories.ts +189 -0
  152. package/src/components/MaintenancePage/AccessibiliteItems.ts +173 -0
  153. package/src/components/MaintenancePage/constants/ExpertiseLevelEnum.ts +4 -0
  154. package/src/components/NirField/Accessibilite.mdx +14 -0
  155. package/src/components/NirField/Accessibilite.stories.ts +214 -0
  156. package/src/components/NirField/AccessibiliteItems.ts +243 -0
  157. package/src/components/NirField/NirField.mdx +213 -0
  158. package/src/components/NirField/NirField.stories.ts +412 -0
  159. package/src/components/NirField/NirField.vue +453 -0
  160. package/src/components/NirField/config.ts +16 -0
  161. package/src/components/NirField/constants/ExpertiseLevelEnum.ts +4 -0
  162. package/src/components/NirField/locales.ts +12 -0
  163. package/src/components/NirField/nirValidation.ts +42 -0
  164. package/src/components/NirField/tests/NirField.spec.ts +120 -0
  165. package/src/components/NotFoundPage/Accessibilite.mdx +14 -0
  166. package/src/components/NotFoundPage/Accessibilite.stories.ts +190 -0
  167. package/src/components/NotFoundPage/AccessibiliteItems.ts +205 -0
  168. package/src/components/NotFoundPage/constants/ExpertiseLevelEnum.ts +4 -0
  169. package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +4 -4
  170. package/src/components/NotificationBar/AccessibiliteItems.ts +0 -30
  171. package/src/components/NotificationBar/NotificationBar.mdx +1 -1
  172. package/src/components/PageContainer/PageContainer.mdx +1 -1
  173. package/src/components/PageContainer/PageContainer.stories.ts +9 -9
  174. package/src/components/PageContainer/PageContainer.vue +24 -18
  175. package/src/components/PageContainer/tests/PageContainer.spec.ts +2 -2
  176. package/src/components/PageContainer/tests/__snapshots__/PageContainer.spec.ts.snap +2 -2
  177. package/src/components/PhoneField/Accessibilite.mdx +14 -0
  178. package/src/components/PhoneField/Accessibilite.stories.ts +216 -0
  179. package/src/components/PhoneField/AccessibiliteItems.ts +238 -0
  180. package/src/components/PhoneField/PhoneField.mdx +1 -1
  181. package/src/components/PhoneField/PhoneField.stories.ts +2 -2
  182. package/src/components/PhoneField/PhoneField.vue +0 -1
  183. package/src/components/PhoneField/constants/ExpertiseLevelEnum.ts +4 -0
  184. package/src/components/SkipLink/Accessibilite.stories.ts +1 -1
  185. package/src/components/SkipLink/SkipLink.stories.ts +2 -2
  186. package/src/components/SocialMediaLinks/Accessibilite.mdx +14 -0
  187. package/src/components/SocialMediaLinks/Accessibilite.stories.ts +170 -0
  188. package/src/components/SocialMediaLinks/AccessibiliteItems.ts +160 -0
  189. package/src/components/SocialMediaLinks/SocialMediaLinks.mdx +1 -1
  190. package/src/components/SocialMediaLinks/SocialMediaLinks.stories.ts +1 -1
  191. package/src/components/SocialMediaLinks/SocialMediaLinks.vue +7 -1
  192. package/src/components/SocialMediaLinks/constants/ExpertiseLevelEnum.ts +4 -0
  193. package/src/components/SocialMediaLinks/tests/__snapshots__/SocialMediaLinks.spec.ts.snap +2 -2
  194. package/src/components/SubHeader/Accessibilite.mdx +14 -0
  195. package/src/components/SubHeader/Accessibilite.stories.ts +166 -0
  196. package/src/components/SubHeader/AccessibiliteItems.ts +146 -0
  197. package/src/components/SubHeader/SubHeader.mdx +1 -1
  198. package/src/components/SubHeader/SubHeader.stories.ts +17 -14
  199. package/src/components/SubHeader/constants/ExpertiseLevelEnum.ts +4 -0
  200. package/src/components/SyAlert/Accessibilite.mdx +14 -0
  201. package/src/components/{Alert → SyAlert}/Accessibilite.stories.ts +1 -1
  202. package/src/components/{Alert → SyAlert}/AccessibiliteItems.ts +2 -32
  203. package/src/components/{Alert/Alert.mdx → SyAlert/SyAlert.mdx} +9 -9
  204. package/src/components/{Alert/Alert.stories.ts → SyAlert/SyAlert.stories.ts} +22 -22
  205. package/src/components/{Alert/Alert.vue → SyAlert/SyAlert.vue} +7 -0
  206. package/src/components/SyAlert/constants/ExpertiseLevelEnum.ts +4 -0
  207. package/src/components/{Alert/tests/Alert.spec.ts → SyAlert/tests/SyAlert.spec.ts} +5 -5
  208. package/src/components/{Alert/tests/__snapshots__/Alert.spec.ts.snap → SyAlert/tests/__snapshots__/SyAlert.spec.ts.snap} +2 -2
  209. package/src/components/UserMenuBtn/Accessibilite.mdx +14 -0
  210. package/src/components/UserMenuBtn/Accessibilite.stories.ts +189 -0
  211. package/src/components/UserMenuBtn/AccessibiliteItems.ts +155 -0
  212. package/src/components/UserMenuBtn/UserMenuBtn.mdx +17 -17
  213. package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +121 -19
  214. package/src/components/UserMenuBtn/UserMenuBtn.vue +25 -29
  215. package/src/components/UserMenuBtn/config.ts +1 -1
  216. package/src/components/UserMenuBtn/constants/ExpertiseLevelEnum.ts +4 -0
  217. package/src/components/index.ts +11 -4
  218. package/src/composables/rules/tests/useFieldValidation.spec.ts +60 -58
  219. package/src/composables/rules/useFieldValidation.ts +65 -28
  220. package/src/main.ts +1 -0
  221. package/src/stories/GuideDuDev/CommentUtiliserLesRules.mdx +67 -79
  222. package/src/stories/GuideDuDev/components.stories.ts +5 -5
  223. package/src/stories/GuideDuDev/moduleDeNotification.mdx +1 -1
  224. package/src/stories/Guidelines/Vuetify/Vuetify.mdx +11 -0
  225. package/src/stories/Guidelines/Vuetify/Vuetify.stories.ts +138 -0
  226. package/src/stories/Guidelines/Vuetify/VuetifyItems.ts +350 -0
  227. /package/src/components/{Alert → CookieBanner}/Accessibilite.mdx +0 -0
  228. /package/src/components/{Alert → CookieBanner}/constants/ExpertiseLevelEnum.ts +0 -0
  229. /package/src/components/{Alert → SyAlert}/locales.ts +0 -0
@@ -79,8 +79,12 @@
79
79
  return typeof complianceLabel === 'string' ? locales.a11yLabel(complianceLabel) : ''
80
80
  })
81
81
 
82
- const extendedMode = computed(() => {
83
- return Boolean(slots.default)
82
+ const extendedMode = computed<boolean>(() => {
83
+ if (slots.default) {
84
+ return true
85
+ }
86
+
87
+ return false
84
88
  })
85
89
 
86
90
  const logoSize = computed(() => {
@@ -145,91 +149,93 @@
145
149
  }"
146
150
  role="contentinfo"
147
151
  >
148
- <div
149
- v-if="extendedMode"
150
- class="d-flex align-start align-sm-center mb-6"
151
- >
152
- <div class="d-flex flex-grow-1 flex-column flex-sm-row">
153
- <slot name="logo">
154
- <Logo
155
- v-if="!props.hideLogo"
156
- :size="logoSize"
157
- :class="{ 'mb-2 mb-sm-0': !props.hideSocialMediaLinks }"
158
- class="logo"
159
- />
160
- </slot>
152
+ <div class="container">
153
+ <div
154
+ v-if="extendedMode"
155
+ class="d-flex align-start align-sm-center mb-6"
156
+ >
157
+ <div class="d-flex flex-grow-1 flex-column flex-sm-row">
158
+ <slot name="logo">
159
+ <Logo
160
+ v-if="!props.hideLogo"
161
+ :size="logoSize"
162
+ :class="{ 'mb-2 mb-sm-0': !props.hideSocialMediaLinks }"
163
+ class="logo"
164
+ />
165
+ </slot>
161
166
 
162
- <VSpacer v-bind="options.spacer" />
167
+ <VSpacer v-bind="options.spacer" />
163
168
 
164
- <SocialMediaLinks
165
- v-if="!props.hideSocialMediaLinks"
166
- :links="props.socialMediaLinks"
167
- class="mr-8 social"
168
- />
169
- </div>
169
+ <SocialMediaLinks
170
+ v-if="!props.hideSocialMediaLinks"
171
+ :links="props.socialMediaLinks"
172
+ class="mr-8 social"
173
+ />
174
+ </div>
170
175
 
171
- <VBtn
172
- id="scroll-btn"
173
- v-bind="options.goTopBtn"
174
- :aria-label="locales.goTopBtnLabel"
175
- @click="scrollToTop"
176
- >
177
- <VIcon
178
- v-bind="options.goTopBtnIcon"
179
- class="scroll"
176
+ <VBtn
177
+ id="scroll-btn"
178
+ v-bind="options.goTopBtn"
179
+ :aria-label="locales.goTopBtnLabel"
180
+ @click="scrollToTop"
180
181
  >
181
- {{ arrowTopIcon }}
182
- </VIcon>
183
- </VBtn>
184
- </div>
185
-
186
- <VDivider
187
- v-if="extendedMode"
188
- v-bind="options.divider"
189
- class="mb-3"
190
- />
182
+ <VIcon
183
+ v-bind="options.goTopBtnIcon"
184
+ class="scroll"
185
+ >
186
+ {{ arrowTopIcon }}
187
+ </VIcon>
188
+ </VBtn>
189
+ </div>
191
190
 
192
- <slot />
191
+ <VDivider
192
+ v-if="extendedMode"
193
+ v-bind="options.divider"
194
+ class="mb-3"
195
+ />
193
196
 
194
- <VDivider
195
- v-if="extendedMode"
196
- v-bind="options.divider"
197
- class="mt-3 mb-6"
198
- />
197
+ <slot />
199
198
 
200
- <ul
201
- :class="{ 'py-2 py-sm-0': !extendedMode }"
202
- class="vd-footer-bar-links text-sm-center d-flex flex-column flex-sm-row flex-wrap align-start justify-center max-width-none mx-n3 my-n3"
203
- >
204
- <slot name="prepend" />
199
+ <VDivider
200
+ v-if="extendedMode"
201
+ v-bind="options.divider"
202
+ class="mt-3 mb-6"
203
+ />
205
204
 
206
- <li
207
- v-for="(item, index) in footerLinksMapping"
208
- :key="index"
205
+ <ul
206
+ :class="{ 'py-2 py-sm-0': !extendedMode }"
207
+ class="vd-footer-bar-links text-sm-center d-flex flex-column flex-sm-row flex-wrap align-start justify-center max-width-none mx-n3 my-n3"
209
208
  >
210
- <component
211
- :is="getLinkComponent(item)"
212
- :href="item.href"
213
- :to="item.to"
214
- :aria-label="item.ariaLabel"
215
- :target="item.openInNewTab ? '_blank' : undefined"
216
- :tabindex="index"
217
- :rel="item.openInNewTab ? 'noopener noreferrer' : undefined"
218
- class="my-3 mx-4"
209
+ <slot name="prepend" />
210
+
211
+ <li
212
+ v-for="(item, index) in footerLinksMapping"
213
+ :key="index"
219
214
  >
220
- {{ item.text }}
221
- </component>
222
- </li>
215
+ <component
216
+ :is="getLinkComponent(item)"
217
+ :href="item.href"
218
+ :to="item.to"
219
+ :aria-label="item.ariaLabel"
220
+ :target="item.openInNewTab ? '_blank' : undefined"
221
+ :tabindex="index"
222
+ :rel="item.openInNewTab ? 'noopener noreferrer' : undefined"
223
+ class="my-3 mx-4"
224
+ >
225
+ {{ item.text }}
226
+ </component>
227
+ </li>
223
228
 
224
- <li
225
- v-if="props.version"
226
- class="text-primary my-3 mx-4"
227
- >
228
- {{ locales.versionLabel }} {{ props.version }}
229
- </li>
229
+ <li
230
+ v-if="props.version"
231
+ class="text-primary my-3 mx-4"
232
+ >
233
+ {{ locales.versionLabel }} {{ props.version }}
234
+ </li>
230
235
 
231
- <slot name="append" />
232
- </ul>
236
+ <slot name="append" />
237
+ </ul>
238
+ </div>
233
239
  </VFooter>
234
240
  </template>
235
241
 
@@ -247,6 +253,11 @@ a {
247
253
  .v-footer {
248
254
  flex-grow: 0 !important;
249
255
  justify-content: center;
256
+ .container {
257
+ width: 100%;
258
+ max-width: 1712px;
259
+ margin: 0 auto;
260
+ }
250
261
  }
251
262
  .vd-footer-bar :deep() {
252
263
  .vd-footer-bar-links a {
@@ -0,0 +1,4 @@
1
+ export enum ExpertiseLevelEnum {
2
+ DEV = 'dev',
3
+ DESIGN = 'design',
4
+ }
@@ -2,26 +2,28 @@
2
2
 
3
3
  exports[`FooterBar > renders correctly 1`] = `
4
4
  "<footer data-v-a13c4e60="" class="v-footer v-theme--light bg-backgroundSurface elevation-3 vd-footer-bar flex-column align-stretch pa-3 w-100 v-theme--dark" style="height: auto;" role="contentinfo">
5
- <!--v-if-->
6
- <!--v-if-->
7
- <!--v-if-->
8
- <ul data-v-a13c4e60="" class="py-2 py-sm-0 vd-footer-bar-links text-sm-center d-flex flex-column flex-sm-row flex-wrap align-start justify-center max-width-none mx-n3 my-n3">
9
- <li data-v-a13c4e60="">
10
- <routerlink data-v-a13c4e60="" to="[object Object]" tabindex="0" class="my-3 mx-4">Plan du site</routerlink>
11
- </li>
12
- <li data-v-a13c4e60="">
13
- <routerlink data-v-a13c4e60="" to="[object Object]" tabindex="1" class="my-3 mx-4">Conditions générales d’utilisation</routerlink>
14
- </li>
15
- <li data-v-a13c4e60="">
16
- <routerlink data-v-a13c4e60="" to="[object Object]" tabindex="2" class="my-3 mx-4">Gestion des cookies</routerlink>
17
- </li>
18
- <li data-v-a13c4e60="">
19
- <routerlink data-v-a13c4e60="" to="[object Object]" tabindex="3" class="my-3 mx-4">Mentions légales</routerlink>
20
- </li>
21
- <li data-v-a13c4e60="">
22
- <routerlink data-v-a13c4e60="" to="[object Object]" tabindex="4" class="my-3 mx-4">Accessibilité&nbsp;: non conforme</routerlink>
23
- </li>
5
+ <div data-v-a13c4e60="" class="container">
24
6
  <!--v-if-->
25
- </ul>
7
+ <!--v-if-->
8
+ <!--v-if-->
9
+ <ul data-v-a13c4e60="" class="py-2 py-sm-0 vd-footer-bar-links text-sm-center d-flex flex-column flex-sm-row flex-wrap align-start justify-center max-width-none mx-n3 my-n3">
10
+ <li data-v-a13c4e60="">
11
+ <routerlink data-v-a13c4e60="" to="[object Object]" tabindex="0" class="my-3 mx-4">Plan du site</routerlink>
12
+ </li>
13
+ <li data-v-a13c4e60="">
14
+ <routerlink data-v-a13c4e60="" to="[object Object]" tabindex="1" class="my-3 mx-4">Conditions générales d’utilisation</routerlink>
15
+ </li>
16
+ <li data-v-a13c4e60="">
17
+ <routerlink data-v-a13c4e60="" to="[object Object]" tabindex="2" class="my-3 mx-4">Gestion des cookies</routerlink>
18
+ </li>
19
+ <li data-v-a13c4e60="">
20
+ <routerlink data-v-a13c4e60="" to="[object Object]" tabindex="3" class="my-3 mx-4">Mentions légales</routerlink>
21
+ </li>
22
+ <li data-v-a13c4e60="">
23
+ <routerlink data-v-a13c4e60="" to="[object Object]" tabindex="4" class="my-3 mx-4">Accessibilité&nbsp;: non conforme</routerlink>
24
+ </li>
25
+ <!--v-if-->
26
+ </ul>
27
+ </div>
26
28
  </footer>"
27
29
  `;
@@ -1,37 +1,7 @@
1
1
  import { ExpertiseLevelEnum } from './constants/ExpertiseLevelEnum'
2
2
 
3
3
  export const AccessibiliteItemsIndeterminate = [
4
- {
5
- title: 'Catégorie 1 : Images',
6
- subtitle: '1.4 Pour chaque image utilisée comme CAPTCHA ou comme image-test, ayant une alternative textuelle, cette alternative permet-elle d’identifier la nature et la fonction de l’image ?',
7
- items: [
8
- {
9
-
10
- precision: '1.4.1 Pour chaque image (balise <img>) utilisée comme CAPTCHA ou comme image-test, ayant une alternative textuelle, cette alternative est-elle pertinente ?',
11
- link: 'https://accessibilite.numerique.gouv.fr/methode/criteres-et-tests/#1.4.1',
12
- solution: [{
13
- info1: '1. Retrouver dans le document les images structurées au moyen d’un élément <img> pourvues d’une alternative textuelle et utilisées comme CAPTCHA ou comme image-test',
14
- info2: '2. Pour chaque image, vérifier que l’alternative textuelle est pertinente',
15
- info3: '3. Si c’est le cas pour chaque image, le test est validé',
16
- }],
17
- expertise: ExpertiseLevelEnum.DEV,
18
4
 
19
- },
20
- {
21
-
22
- precision: ' 1.4.6 Pour chaque image vectorielle (balise <svg>) utilisée comme CAPTCHA ou comme image-test, ayant une alternative textuelle, cette alternative est-elle pertinente ?',
23
- link: 'https://accessibilite.numerique.gouv.fr/methode/criteres-et-tests/#1.4.6',
24
- solution: [{
25
- info1: '1. Retrouver dans le document les éléments <svg> pourvus d’une alternative textuelle et utilisés comme CAPTCHA ou comme image-test;',
26
- info2: '2. Pour chaque élément <svg>, vérifier que l’alternative textuelle est pertinente',
27
- info3: '3. Si c’est le cas pour chaque image, le test est validé',
28
- }],
29
- expertise: ExpertiseLevelEnum.DEV,
30
-
31
- },
32
-
33
- ],
34
- },
35
5
  {
36
6
  title: 'Catégorie 3 : Couleurs',
37
7
  items: [
@@ -18,7 +18,7 @@ Le composant `FranceConnectBtn` est utilisé pour afficher un bouton permettant
18
18
 
19
19
  <Source dark code={`
20
20
  <script setup lang="ts">
21
- import FranceConnectBtn from '@cnamts/synapse'
21
+ import { FranceConnectBtn } from '@cnamts/synapse'
22
22
  </script>
23
23
 
24
24
  <template>
@@ -26,7 +26,7 @@ export const Default: Story = {
26
26
  {
27
27
  name: 'Script',
28
28
  code: `<script setup lang="ts">
29
- import FranceConnectBtn from '@cnamts/synapse'
29
+ import { FranceConnectBtn } from '@cnamts/synapse'
30
30
  </script>
31
31
  `,
32
32
  },
@@ -69,7 +69,7 @@ export const FranceConnectPlus: Story = {
69
69
  {
70
70
  name: 'Script',
71
71
  code: `<script setup lang="ts">
72
- import FranceConnectBtn from '@cnamts/synapse'
72
+ import { FranceConnectBtn } from '@cnamts/synapse'
73
73
  </script>
74
74
  `,
75
75
  },
@@ -105,7 +105,8 @@ export const DarkTheme: Story = {
105
105
  {
106
106
  name: 'Template',
107
107
  code: `<template>
108
- <FranceConnectBtn
108
+ <FranceConnectBtn
109
+ href="https://app.franceconnect.gouv.fr/"
109
110
  is-connect-plus
110
111
  dark
111
112
  />
@@ -115,7 +116,7 @@ export const DarkTheme: Story = {
115
116
  {
116
117
  name: 'Script',
117
118
  code: `<script setup lang="ts">
118
- import FranceConnectBtn from '@cnamts/synapse'
119
+ import { FranceConnectBtn } from '@cnamts/synapse'
119
120
  </script>
120
121
  `,
121
122
  },
@@ -0,0 +1,14 @@
1
+ import { Meta, Story } from '@storybook/addon-docs';
2
+ import * as AccessStories from './Accessibilite.stories.ts';
3
+
4
+ <Meta of={AccessStories} />
5
+
6
+ Accessibilité
7
+ =============
8
+ <Story of={AccessStories.Legende} />
9
+ <br />
10
+
11
+ --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
12
+
13
+ <Story of={AccessStories.AccessibilitePanel} />
14
+ <br />
@@ -0,0 +1,223 @@
1
+ import { VExpansionPanels, VExpansionPanel, VExpansionPanelTitle, VExpansionPanelText, VDataTable, VIcon } from 'vuetify/components'
2
+ import type { StoryObj } from '@storybook/vue3'
3
+ import { AccessibiliteItemsIndeterminate, AccessibiliteItemsValidated } from './AccessibiliteItems'
4
+ import { mdiCheckboxMarkedCircle, mdiLink, mdiEye } from '@mdi/js'
5
+
6
+ const checkIcon = mdiCheckboxMarkedCircle
7
+ const iconEye = mdiEye
8
+ const linkICon = mdiLink
9
+
10
+ export default {
11
+ title: 'Composants/Structure/HeaderBar/Accessibilité',
12
+ }
13
+
14
+ export const AccessibilitePanel: StoryObj = {
15
+
16
+ render: () => {
17
+ return {
18
+ components: { VExpansionPanels, VExpansionPanel, VExpansionPanelTitle, VExpansionPanelText, VDataTable, VIcon },
19
+
20
+ setup() {
21
+ const icon = checkIcon
22
+
23
+ return { AccessibiliteItemsIndeterminate, AccessibiliteItemsValidated, icon, linkICon, iconEye }
24
+ },
25
+ template: `
26
+ <div class="accessibiliteItems" style="display:flex; max-width: none !important;">
27
+ <v-col cols="6">
28
+ <div style="display:flex; margin-bottom: 10px; justify-content: space-between; align-items: center;">
29
+ <h5>{{ AccessibiliteItemsIndeterminate.length }} critères à prendre en charge par le projet</h5>
30
+ <div style="display: flex; align-items: center;">
31
+ <v-btn variant="tonal" color="red" size="x-small" style="margin: 4px;font-size: 8px;"
32
+ rounded>Tanaguru
33
+ </v-btn>
34
+ </div>
35
+ </div>
36
+
37
+ <v-expansion-panels value="opened" multiple>
38
+ <v-expansion-panel v-for="(item, index) in AccessibiliteItemsIndeterminate" :key="index" style="background-color: rgba(42, 96, 158, 0.1); margin-bottom: 10px;">
39
+ <v-expansion-panel-title>
40
+ <VIcon :icon="iconEye" style="margin-right: 5px; color:#5778b7;"/>
41
+ {{ item.title }}
42
+ </v-expansion-panel-title>
43
+ <v-expansion-panel-text>
44
+ <v-expansion-panels>
45
+ <v-expansion-panel v-for="(i, index) in item.items2" :key="i" style="margin-bottom: 10px;">
46
+ <v-expansion-panel-title
47
+ style="font-weight: bold; font-size: 13px; line-height: 16px;">
48
+ {{ i.subtitle}}
49
+ </v-expansion-panel-title>
50
+ <v-expansion-panel-text>
51
+ <div>
52
+ <p style="font-size: 13px;line-height: 16px;">
53
+ {{ i.precision }}
54
+ </p>
55
+ <div v-for="(value, index) in i.solution"
56
+ style="margin-top:15px; font-size: 13px;line-height: 16px;">
57
+ <p style="font-weight: bold;">Méthodologie du test : <a
58
+ href="{{i.link}}" target="blank">
59
+ <VIcon :icon="linkICon"/>
60
+ </a></p>
61
+
62
+ <p>{{ value.info1 }}</p>
63
+ <p>{{ value.info2 }}</p>
64
+ <p>{{ value.info3 }}</p>
65
+
66
+ </div>
67
+ <span style="display:flex; justify-content:center; margin-bottom:5px;">______</span>
68
+ </div>
69
+ </v-expansion-panel-text>
70
+ </v-expansion-panel>
71
+ <v-expansion-panel >
72
+ <v-expansion-panel-title
73
+ style="font-weight: bold; font-size: 13px; line-height: 16px;">
74
+ {{ item.subtitle }}
75
+ </v-expansion-panel-title>
76
+ <v-expansion-panel-text>
77
+ <div v-for="(value, i) in item.items" :key="i">
78
+ <p style="font-size: 13px;line-height: 16px;">
79
+ {{ value.precision }}
80
+ </p>
81
+ <div v-for="element in value.solution"
82
+ style="margin-top:15px; font-size: 13px;line-height: 16px;">
83
+ <p style="font-weight: bold;">Méthodologie du test : <a
84
+ href="value.link" target="blank">
85
+ <VIcon :icon="linkICon"/>
86
+ </a></p>
87
+
88
+ <p>{{ element.info1 }}</p>
89
+ <p>{{ element.info2 }}</p>
90
+ <p>{{ element.info3 }}</p>
91
+
92
+ </div>
93
+ <span style="display:flex; justify-content:center; margin-bottom:5px;">______</span>
94
+ </div>
95
+ </v-expansion-panel-text>
96
+ </v-expansion-panel>
97
+ </v-expansion-panels>
98
+ </v-expansion-panel-text>
99
+ </v-expansion-panel>
100
+ </v-expansion-panels>
101
+ </v-col>
102
+ <v-col cols="6">
103
+ <div style="display:flex; margin-bottom: 10px; justify-content: space-between; align-items: center;">
104
+ <h5>{{ AccessibiliteItemsValidated.length }} critères pris en charge par l'équipe Design System</h5>
105
+ <div style="display: flex; align-items: center;">
106
+ <v-btn variant="tonal" color="red" size="x-small" style="margin: 4px;font-size: 8px;"
107
+ rounded>Tanaguru
108
+ </v-btn>
109
+ </div>
110
+ </div>
111
+ <v-expansion-panels value="opened" multiple>
112
+ <v-expansion-panel
113
+ v-for="(item, index) in AccessibiliteItemsValidated"
114
+ :key="index" style="background-color: rgba(53,135,0,0.1); margin-bottom: 10px;">
115
+ <v-expansion-panel-title>
116
+ <VIcon color="green" :icon="icon" style="margin-right: 5px;"/>
117
+ {{ item.title }}
118
+ </v-expansion-panel-title>
119
+ <v-expansion-panel-text>
120
+ <v-expansion-panels>
121
+
122
+ <v-expansion-panel v-for="(i, index) in item.items2" :key="i" style="margin-bottom: 10px;">
123
+ <v-expansion-panel-title
124
+ style="font-weight: bold; font-size: 13px; line-height: 16px;">
125
+ {{ i.subtitle}}
126
+ </v-expansion-panel-title>
127
+ <v-expansion-panel-text>
128
+ <div>
129
+ <p style="font-size: 13px;line-height: 16px;">
130
+ {{ i.precision }}
131
+ </p>
132
+ <div v-for="(value, index) in i.solution"
133
+ style="margin-top:15px; font-size: 13px;line-height: 16px;">
134
+ <p style="font-weight: bold;">Méthodologie du test : <a
135
+ href="{{i.link}}" target="blank">
136
+ <VIcon :icon="linkICon"/>
137
+ </a></p>
138
+
139
+ <p>{{ value.info1 }}</p>
140
+ <p>{{ value.info2 }}</p>
141
+ <p>{{ value.info3 }}</p>
142
+
143
+ </div>
144
+ <span style="display:flex; justify-content:center; margin-bottom:5px;">______</span>
145
+ </div>
146
+ </v-expansion-panel-text>
147
+ </v-expansion-panel>
148
+
149
+ <v-expansion-panel >
150
+ <v-expansion-panel-title
151
+ style="font-weight: bold; font-size: 13px; line-height: 16px;">
152
+ {{ item.subtitle }}
153
+ </v-expansion-panel-title>
154
+ <v-expansion-panel-text>
155
+ <div v-for="(value, i) in item.items" :key="i">
156
+ <p style="font-size: 13px;line-height: 16px;">
157
+ {{ value.precision }}
158
+ </p>
159
+ <div v-for="element in value.solution"
160
+ style="margin-top:15px; font-size: 13px;line-height: 16px;">
161
+ <p style="font-weight: bold;">Méthodologie du test : <a
162
+ href="value.link" target="blank">
163
+ <VIcon :icon="linkICon"/>
164
+ </a></p>
165
+
166
+ <p>{{ element.info1 }}</p>
167
+ <p>{{ element.info2 }}</p>
168
+ <p>{{ element.info3 }}</p>
169
+
170
+ </div>
171
+ <span style="display:flex; justify-content:center; margin-bottom:5px;">______</span>
172
+ </div>
173
+ </v-expansion-panel-text>
174
+ </v-expansion-panel>
175
+ </v-expansion-panels>
176
+ </v-expansion-panel-text>
177
+ </v-expansion-panel>
178
+ </v-expansion-panels>
179
+ </v-col>
180
+ </div>
181
+ `,
182
+ }
183
+ },
184
+ tags: ['!dev'],
185
+ }
186
+
187
+ export const Legende: StoryObj = {
188
+ args: {
189
+ icon: checkIcon,
190
+ },
191
+ render: (args) => {
192
+ return {
193
+ components: { VIcon },
194
+ setup() {
195
+ return { args }
196
+ },
197
+ template: `
198
+ <p style="color: grey;font-size: 11px; margin-bottom: 12px;">Date de conception: 20/11/2024</p>
199
+ <div>
200
+ <p>Le tableau ci-dessous liste nos recommandations suivant les <a target="blank" style="color:#0C41BD;" href="https://www.numerique.gouv.fr/publications/rgaa-accessibilite/#contenu">catégories du RGAA</a>.</p>
201
+ <p style="margin-bottom: 12px;font-weight:bold;">Pour rappel le composant seul ne garantie pas
202
+ l'accessibilité du site.</p>
203
+ <div style="font-size: 14px">
204
+ <p>Nous avons deux façons de relever les problèmes d'accessibilité des composants :</p>
205
+ <div>
206
+ <v-btn variant="tonal" color="grey" size="x-small" style="margin: 2px;font-size: 8px;" rounded>
207
+ Audit
208
+ </v-btn>
209
+ Problèmes relevés par le projet
210
+ </div>
211
+ <div>
212
+ <v-btn variant="tonal" color="red" size="x-small" style="margin: 2px;font-size: 8px;" rounded>
213
+ Tanaguru
214
+ </v-btn>
215
+ Problèmes relevés par Tanaguru
216
+ </div>
217
+ </div>
218
+ </div>
219
+ `,
220
+ }
221
+ },
222
+ tags: ['!dev'],
223
+ }