@cnamts/synapse 1.0.16 → 1.0.17

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 (248) hide show
  1. package/dist/{DateFilter-DSwJUvBu.js → DateFilter-RHtdShO1.js} +1 -1
  2. package/dist/{NumberFilter-CwsbYyz4.js → NumberFilter-DXYz_b_w.js} +1 -1
  3. package/dist/{PeriodFilter-csnEZU30.js → PeriodFilter-CzphmrNu.js} +1 -1
  4. package/dist/{SelectFilter-Bd5fndzR.js → SelectFilter-a4fUV5Jp.js} +1 -1
  5. package/dist/{TextFilter-B6gxzq2a.js → TextFilter-CZ4LTKoq.js} +1 -1
  6. package/dist/components/Accordion/Accordion.d.ts +22 -7
  7. package/dist/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.d.ts +31 -8
  8. package/dist/components/Amelipro/AmeliproPatientLogged/types.d.ts +2 -1
  9. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabBtn/AmeliproTabBtn.d.ts +1 -1
  10. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +14 -5
  11. package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +10 -1
  12. package/dist/components/Amelipro/AmeliproTooltips/AmeliproTooltips.d.ts +6 -2
  13. package/dist/components/Amelipro/StructureMenu/StructureBtn/StructureBtn.d.ts +9 -0
  14. package/dist/components/Amelipro/StructureMenu/StructureItem/types.d.ts +1 -0
  15. package/dist/components/Amelipro/StructureMenu/StructureMenu.d.ts +9 -0
  16. package/dist/components/Amelipro/StructureMenu/StructureTabs/StructureTabs.d.ts +23 -2
  17. package/dist/components/ChipList/locales.d.ts +1 -0
  18. package/dist/components/CookieBanner/CookieBanner.d.ts +2 -2
  19. package/dist/components/Customs/SyTextField/SyTextField.d.ts +1 -1
  20. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +4 -4
  21. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +9 -11
  22. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +7 -10
  23. package/dist/components/DatePicker/composables/index.d.ts +0 -1
  24. package/dist/components/DialogBox/DialogBox.d.ts +3 -3
  25. package/dist/components/DialogBox/config.d.ts +4 -0
  26. package/dist/components/FilterSideBar/FilterSideBar.d.ts +10 -3
  27. package/dist/components/FilterSideBar/locales.d.ts +5 -0
  28. package/dist/components/HeaderBar/HeaderBar.d.ts +2 -0
  29. package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +14 -4
  30. package/dist/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.d.ts +5 -1
  31. package/dist/components/MaintenancePage/MaintenancePage.d.ts +8 -1
  32. package/dist/components/NotFoundPage/NotFoundPage.d.ts +9 -2
  33. package/dist/components/NotificationBar/Notification/Notification.d.ts +30 -0
  34. package/dist/components/NotificationBar/NotificationBar.d.ts +32 -20
  35. package/dist/components/PeriodField/PeriodField.d.ts +16 -16
  36. package/dist/components/SubHeader/SubHeader.d.ts +11 -8
  37. package/dist/components/SyTextArea/SyTextArea.d.ts +2 -0
  38. package/dist/components/SyTextArea/locales.d.ts +1 -0
  39. package/dist/components/UserMenuBtn/UserMenuBtn.d.ts +2 -0
  40. package/dist/design-system-v3.js +1 -1
  41. package/dist/design-system-v3.umd.cjs +18 -18
  42. package/dist/directives/lockFocus.d.ts +1 -1
  43. package/dist/{main-DkZZpa3S.js → main-BXIMMzFS.js} +9368 -9157
  44. package/dist/style.css +1 -1
  45. package/package.json +11 -4
  46. package/src/components/Accordion/Accessibilite/AccessibilityGuide.mdx +70 -241
  47. package/src/components/Accordion/Accordion.mdx +6 -1
  48. package/src/components/Accordion/Accordion.stories.ts +88 -9
  49. package/src/components/Accordion/Accordion.vue +56 -24
  50. package/src/components/Accordion/tests/Accordion.a11y.spec.ts +46 -0
  51. package/src/components/Accordion/tests/__snapshots__/accordion.spec.ts.snap +26 -30
  52. package/src/components/Accordion/tests/accordion.spec.ts +27 -26
  53. package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.stories.ts +62 -34
  54. package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.vue +48 -15
  55. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/AmeliproPatientLogged.spec.ts +4 -2
  56. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/__snapshots__/AmeliproPatientLogged.spec.ts.snap +54 -4
  57. package/src/components/Amelipro/AmeliproPatientLogged/types.d.ts +2 -1
  58. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLogin.stories.ts +11 -5
  59. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLoginForm/AmeliproPatientLoginForm.vue +8 -0
  60. package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.vue +37 -1
  61. package/src/components/Amelipro/AmeliproSelect/__tests__/__snapshots__/AmeliproSelect.spec.ts.snap +2 -2
  62. package/src/components/Amelipro/AmeliproTabs/AmeliproTabs.stories.ts +94 -0
  63. package/src/components/Amelipro/AmeliproTabs/AmeliproTabs.vue +6 -2
  64. package/src/components/Amelipro/AmeliproTabs/__tests__/AmeliproTabs.spec.ts +4 -0
  65. package/src/components/Amelipro/AmeliproTabs/__tests__/__snapshots__/AmeliproTabs.spec.ts.snap +4 -2
  66. package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.stories.ts +68 -0
  67. package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.vue +110 -2
  68. package/src/components/Amelipro/AmeliproTextField/__tests__/AmeliproTextField.spec.ts +14 -2
  69. package/src/components/Amelipro/AmeliproTextField/__tests__/__snapshots__/AmeliproTextField.spec.ts.snap +2 -0
  70. package/src/components/Amelipro/AmeliproTooltips/AmeliproTooltips.stories.ts +45 -0
  71. package/src/components/Amelipro/AmeliproTooltips/AmeliproTooltips.vue +6 -0
  72. package/src/components/Amelipro/StructureMenu/StructureBtn/StructureBtn.vue +13 -0
  73. package/src/components/Amelipro/StructureMenu/StructureBtn/__tests__/StructureBtn.spec.ts +6 -0
  74. package/src/components/Amelipro/StructureMenu/StructureBtn/__tests__/__snapshots__/StructureBtn.spec.ts.snap +1 -1
  75. package/src/components/Amelipro/StructureMenu/StructureItem/StructureItem.vue +14 -2
  76. package/src/components/Amelipro/StructureMenu/StructureItem/__tests__/__snapshots__/StructureItem.spec.ts.snap +22 -6
  77. package/src/components/Amelipro/StructureMenu/StructureItem/types.d.ts +1 -0
  78. package/src/components/Amelipro/StructureMenu/StructureMenu.stories.ts +93 -63
  79. package/src/components/Amelipro/StructureMenu/StructureMenu.vue +5 -0
  80. package/src/components/Amelipro/StructureMenu/StructureTabs/StructureTabs.vue +22 -1
  81. package/src/components/Amelipro/StructureMenu/StructureTabs/__tests__/StructureTabs.spec.ts +4 -0
  82. package/src/components/Amelipro/StructureMenu/StructureTabs/__tests__/__snapshots__/StructureTabs.spec.ts.snap +2 -0
  83. package/src/components/Amelipro/StructureMenu/__tests__/StructureMenu.spec.ts +12 -6
  84. package/src/components/BackBtn/tests/BackBtn.a11y.spec.ts +20 -0
  85. package/src/components/BackToTopBtn/BackToTopBtn.stories.ts +9 -0
  86. package/src/components/BackToTopBtn/tests/BackToTopBtn.a11y.spec.ts +37 -0
  87. package/src/components/Captcha/tests/Captcha.a11y.spec.ts +49 -0
  88. package/src/components/ChipList/ChipList.stories.ts +15 -0
  89. package/src/components/ChipList/ChipList.vue +20 -17
  90. package/src/components/ChipList/locales.ts +1 -0
  91. package/src/components/ChipList/tests/ChipList.a11y.spec.ts +40 -0
  92. package/src/components/CollapsibleList/Accessibilite.mdx +67 -11
  93. package/src/components/CollapsibleList/tests/CollapsibleList.a11y.spec.ts +38 -0
  94. package/src/components/ContextualMenu/ContextualMenu.stories.ts +3 -0
  95. package/src/components/ContextualMenu/tests/ContextualMenu.a11y.spec.ts +30 -0
  96. package/src/components/CookieBanner/CookieBanner.stories.ts +15 -0
  97. package/src/components/CookieBanner/CookieBanner.vue +0 -1
  98. package/src/components/CookieBanner/tests/CookieBanner.a11y.spec.ts +29 -0
  99. package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.a11y.spec.ts +46 -0
  100. package/src/components/CookiesSelection/CookiesTable/tests/CookiesTable.a11y.spec.ts +37 -0
  101. package/src/components/CookiesSelection/tests/CookiesSelection.a11y.spec.ts +58 -0
  102. package/src/components/CopyBtn/CopyBtn.stories.ts +21 -0
  103. package/src/components/CopyBtn/tests/CopyBtn.a11y.spec.ts +40 -0
  104. package/src/components/Customs/Selects/SyBtnSelect/SyBtnSelect.stories.ts +30 -0
  105. package/src/components/Customs/Selects/SyBtnSelect/SyBtnSelect.vue +1 -0
  106. package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +27 -0
  107. package/src/components/Customs/Selects/SySelect/tests/SySelect.a11y.spec.ts +40 -0
  108. package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +7 -3
  109. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +20 -2
  110. package/src/components/Customs/SyCheckbox/tests/SyCheckbox.a11y.spec.ts +26 -0
  111. package/src/components/Customs/SyForm/SyForm.a11y.spec.ts +33 -0
  112. package/src/components/Customs/SyIcon/SyIcon.a11y.spec.ts +37 -0
  113. package/src/components/Customs/SyIcon/SyIcon.stories.ts +5 -0
  114. package/src/components/Customs/SyPagination/tests/SyPagination.a11y.spec.ts +27 -0
  115. package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.a11y.spec.ts +30 -0
  116. package/src/components/Customs/SyTabs/SyTabs.stories.ts +33 -0
  117. package/src/components/Customs/SyTabs/tests/SyTabs.a11y.spec.ts +51 -0
  118. package/src/components/Customs/SyTextField/SyTextField.stories.ts +3 -0
  119. package/src/components/Customs/SyTextField/SyTextField.vue +13 -11
  120. package/src/components/Customs/SyTextField/tests/SyTextField.a11y.spec.ts +27 -0
  121. package/src/components/DataList/tests/DataList.a11y.spec.ts +35 -0
  122. package/src/components/DataListGroup/tests/DataListGroup.a11y.spec.ts +24 -0
  123. package/src/components/DataListItem/tests/DataListItem.a11y.spec.ts +31 -0
  124. package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +45 -0
  125. package/src/components/DatePicker/CalendarMode/DatePicker.vue +76 -30
  126. package/src/components/DatePicker/CalendarMode/tests/DatePicker.a11y.spec.ts +27 -0
  127. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +54 -0
  128. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +79 -23
  129. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.a11y.spec.ts +26 -0
  130. package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +12 -0
  131. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +0 -8
  132. package/src/components/DatePicker/DateTextInput/tests/DateTextInput.a11y.spec.ts +27 -0
  133. package/src/components/DatePicker/composables/index.ts +0 -1
  134. package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +0 -1
  135. package/src/components/DiacriticPicker/tests/DiacriticPicker.a11y.spec.ts +46 -0
  136. package/src/components/DialogBox/DialogBox.stories.ts +5 -2
  137. package/src/components/DialogBox/DialogBox.vue +5 -0
  138. package/src/components/DialogBox/config.ts +5 -0
  139. package/src/components/DialogBox/tests/DialogBox.a11y.spec.ts +43 -0
  140. package/src/components/DownloadBtn/tests/DownloadBtn.a11y.spec.ts +26 -0
  141. package/src/components/ErrorPage/ErrorPage.stories.ts +60 -0
  142. package/src/components/ErrorPage/tests/ErrorPage.a11y.spec.ts +29 -0
  143. package/src/components/ExternalLinks/ExternalLinks.stories.ts +21 -0
  144. package/src/components/ExternalLinks/tests/ExternalLinks.a11y.spec.ts +39 -0
  145. package/src/components/FileList/FileList.stories.ts +3 -0
  146. package/src/components/FileList/tests/FileList.a11y.spec.ts +41 -0
  147. package/src/components/FilePreview/FilePreview.stories.ts +3 -0
  148. package/src/components/FilePreview/tests/FilePreview.a11y.spec.ts +47 -0
  149. package/src/components/FileUpload/tests/FileUpload.a11y.spec.ts +25 -0
  150. package/src/components/FilterInline/FilterInline.stories.ts +15 -0
  151. package/src/components/FilterInline/FilterInline.vue +8 -4
  152. package/src/components/FilterInline/tests/FilterInline.a11y.spec.ts +36 -0
  153. package/src/components/FilterInline/tests/__snapshots__/FilterInline.spec.ts.snap +0 -3
  154. package/src/components/FilterSideBar/Accessibilite.stories.ts +4 -0
  155. package/src/components/FilterSideBar/FilterSideBar.stories.ts +33 -11
  156. package/src/components/FilterSideBar/FilterSideBar.vue +146 -83
  157. package/src/components/FilterSideBar/locales.ts +6 -0
  158. package/src/components/FilterSideBar/tests/FilterSideBar.a11y.spec.ts +59 -0
  159. package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +2 -2
  160. package/src/components/FooterBar/Accessibilite.mdx +67 -11
  161. package/src/components/FooterBar/FooterBar.vue +1 -1
  162. package/src/components/FooterBar/config.ts +2 -2
  163. package/src/components/FooterBar/tests/FooterBar.a11y.spec.ts +31 -0
  164. package/src/components/FooterBar/tests/FooterBarConfig.spec.ts +1 -1
  165. package/src/components/FooterBar/tests/__snapshots__/FooterBar.spec.ts.snap +1 -1
  166. package/src/components/FranceConnectBtn/tests/FranceConnectBtn.a11y.spec.ts +25 -0
  167. package/src/components/HeaderBar/HeaderBar.stories.ts +21 -0
  168. package/src/components/HeaderBar/HeaderBar.vue +47 -40
  169. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderBurgerMenu.stories.ts +12 -0
  170. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.stories.ts +3 -0
  171. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.vue +4 -0
  172. package/src/components/HeaderBar/HeaderBurgerMenu/menu.scss +17 -7
  173. package/src/components/HeaderBar/consts.scss +0 -1
  174. package/src/components/HeaderBar/tests/HeaderBar.a11y.spec.ts +33 -0
  175. package/src/components/HeaderBar/tests/__snapshots__/HeaderBar.spec.ts.snap +58 -57
  176. package/src/components/HeaderLoading/tests/HeaderLoading.a11y.spec.ts +25 -0
  177. package/src/components/HeaderNavigationBar/HeaderNavigationBar.stories.ts +42 -0
  178. package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +4 -0
  179. package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +6 -2
  180. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.a11y.spec.ts +45 -0
  181. package/src/components/HeaderToolbar/HeaderToolbar.stories.ts +6 -0
  182. package/src/components/HeaderToolbar/HeaderToolbar.vue +0 -3
  183. package/src/components/HeaderToolbar/tests/HeaderToolbar.a11y.spec.ts +25 -0
  184. package/src/components/LangBtn/LangBtn.stories.ts +12 -0
  185. package/src/components/LangBtn/tests/LangBtn.a11y.spec.ts +25 -0
  186. package/src/components/Logo/tests/Logo.a11y.spec.ts +20 -0
  187. package/src/components/LogoBrandSection/tests/LogoBrandSection.a11y.spec.ts +38 -0
  188. package/src/components/LunarCalendar/tests/LunarCalendar.a11y.spec.ts +31 -0
  189. package/src/components/MaintenancePage/MaintenancePage.stories.ts +46 -0
  190. package/src/components/MaintenancePage/MaintenancePage.vue +7 -5
  191. package/src/components/MaintenancePage/tests/MaintenancePage.a11y.spec.ts +21 -0
  192. package/src/components/NirField/NirField.stories.ts +6 -0
  193. package/src/components/NirField/tests/NirField.a11y.spec.ts +32 -0
  194. package/src/components/NotFoundPage/NotFoundPage.stories.ts +56 -0
  195. package/src/components/NotFoundPage/NotFoundPage.vue +7 -5
  196. package/src/components/NotFoundPage/tests/NotFoundPage.a11y.spec.ts +31 -0
  197. package/src/components/NotificationBar/Notification/Notification.vue +203 -0
  198. package/src/components/NotificationBar/NotificationBar.stories.ts +151 -140
  199. package/src/components/NotificationBar/NotificationBar.vue +148 -202
  200. package/src/components/NotificationBar/config.ts +1 -1
  201. package/src/components/NotificationBar/tests/NotificationBar.a11y.spec.ts +66 -0
  202. package/src/components/NotificationBar/tests/NotificationBar.spec.ts +173 -177
  203. package/src/components/NotificationBar/tests/__snapshots__/NotificationBar.spec.ts.snap +67 -29
  204. package/src/components/PageContainer/tests/PageContainer.a11y.spec.ts +27 -0
  205. package/src/components/PaginatedTable/PaginatedTable.stories.ts +6 -0
  206. package/src/components/PaginatedTable/PaginatedTable.vue +48 -1
  207. package/src/components/PaginatedTable/tests/PaginatedTable.a11y.spec.ts +43 -0
  208. package/src/components/PasswordField/PasswordField.stories.ts +39 -0
  209. package/src/components/PasswordField/tests/PasswordField.a11y.spec.ts +26 -0
  210. package/src/components/PeriodField/tests/PeriodField.a11y.spec.ts +31 -0
  211. package/src/components/PhoneField/PhoneField.stories.ts +51 -0
  212. package/src/components/PhoneField/tests/PhoneField.a11y.spec.ts +34 -0
  213. package/src/components/RangeField/tests/RangeField.a11y.spec.ts +32 -0
  214. package/src/components/RatingPicker/RatingPicker.stories.ts +21 -0
  215. package/src/components/SkipLink/Accessibilite.mdx +59 -13
  216. package/src/components/SkipLink/SkipLink.stories.ts +41 -8
  217. package/src/components/SubHeader/SubHeader.stories.ts +178 -92
  218. package/src/components/SubHeader/SubHeader.vue +84 -71
  219. package/src/components/SubHeader/config.ts +1 -1
  220. package/src/components/SyAlert/SyAlert.vue +1 -1
  221. package/src/components/SyTextArea/SyTextArea.stories.ts +40 -0
  222. package/src/components/SyTextArea/SyTextArea.vue +13 -0
  223. package/src/components/SyTextArea/locales.ts +1 -0
  224. package/src/components/SyTextArea/tests/SyTextArea.spec.ts +42 -0
  225. package/src/components/TableToolbar/TableToolbar.stories.ts +3 -0
  226. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +70 -1
  227. package/src/components/Tables/SyTable/FilterRules.stories.ts +12 -0
  228. package/src/components/Tables/SyTable/SyTable.stories.ts +69 -0
  229. package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +31 -1
  230. package/src/components/UserMenuBtn/UserMenuBtn.vue +2 -1
  231. package/src/components/UserMenuBtn/tests/UserMenuBtn.a11y.spec.ts +31 -0
  232. package/src/directives/lockFocus.ts +12 -2
  233. package/src/stories/GuideDuDev/ClassesUtilitaires/DataUtilities.mdx +6 -6
  234. package/src/stories/GuideDuDev/ClassesUtilitaires/DomBrowserUtilities.mdx +52 -59
  235. package/src/stories/GuideDuDev/ClassesUtilitaires/FormattingUtilities.mdx +9 -9
  236. package/src/stories/GuideDuDev/ClassesUtilitaires/StorageUtilities.mdx +2 -2
  237. package/src/stories/GuideDuDev/ClassesUtilitaires/ValidationRules.mdx +3 -3
  238. package/src/stories/GuideDuDev/ClassesUtilitaires/ValidationUtilities.mdx +11 -11
  239. package/src/stories/GuideDuDev/ClassesUtilitaires/index.mdx +15 -15
  240. package/src/stories/GuideDuDev/MigrationDepuisBridge.mdx +1 -1
  241. package/src/stories/GuideDuDev/moduleDeNotification.mdx +1 -1
  242. package/src/stories/accessibility/AccessibilityGuideLayout.mdx +87 -0
  243. package/src/stories/styles/accessibility-guide.css +153 -0
  244. package/dist/components/DatePicker/composables/useIconState.d.ts +0 -17
  245. package/src/components/Amelipro/AmeliproTextField/tests/__snapshots__/AmeliproTextField.spec.ts.snap +0 -162
  246. package/src/components/DatePicker/composables/tests/useIconState.spec.ts +0 -130
  247. package/src/components/DatePicker/composables/useIconState.ts +0 -53
  248. package/src/components/Usages/tests/Usages.spec.ts +0 -155
@@ -7,7 +7,7 @@ describe('FooterBar config', () => {
7
7
  })
8
8
 
9
9
  it('should have correct footer color', () => {
10
- expect(config.footer.color).toBe('backgroundSurface')
10
+ expect(config.footer.color).toBe('parma-darken60')
11
11
  })
12
12
 
13
13
  it('should have correct footer minHeight', () => {
@@ -4,7 +4,7 @@ exports[`FooterBar > renders correctly 1`] = `
4
4
  <footer
5
5
  class="
6
6
  align-stretch
7
- bg-backgroundSurface
7
+ bg-parma-darken60
8
8
  elevation-3
9
9
  flex-column
10
10
  pa-3
@@ -0,0 +1,25 @@
1
+ // @vitest-environment jsdom
2
+
3
+ import { describe, it } from 'vitest'
4
+ import { mount } from '@vue/test-utils'
5
+ import { axe } from 'vitest-axe'
6
+ import { assertNoA11yViolations } from '@tests/unit/accessibility/axeUtils'
7
+ import FranceConnectBtn from '../FranceConnectBtn.vue'
8
+
9
+ // Scénario d’accessibilité : bouton FranceConnect simple avec lien principal
10
+ // et lien d’information secondaire.
11
+
12
+ describe('FranceConnectBtn – accessibility (axe)', () => {
13
+ it('has no obvious axe violations with default props', async () => {
14
+ const wrapper = mount(FranceConnectBtn, {
15
+ props: {
16
+ href: 'https://app.franceconnect.gouv.fr/',
17
+ },
18
+ })
19
+
20
+ const results = await axe(wrapper.element as HTMLElement)
21
+ assertNoA11yViolations(results, 'FranceConnectBtn – default', {
22
+ ignoreRules: ['region'],
23
+ })
24
+ })
25
+ })
@@ -146,6 +146,18 @@ const meta = {
146
146
  },
147
147
  },
148
148
  },
149
+ 'width': {
150
+ control: { type: 'text' },
151
+ description: 'Largeur interne du header.',
152
+ table: {
153
+ type: {
154
+ summary: 'string',
155
+ },
156
+ defaultValue: {
157
+ summary: '1712px',
158
+ },
159
+ },
160
+ },
149
161
  },
150
162
  } satisfies Meta<typeof HeaderBar>
151
163
 
@@ -237,6 +249,9 @@ export const WithRightMenu: Story = {
237
249
  }
238
250
  },
239
251
  parameters: {
252
+ a11y: {
253
+ disable: true,
254
+ },
240
255
  sourceCode: [
241
256
  {
242
257
  name: 'Template',
@@ -362,6 +377,9 @@ export const CustomLogo: Story = {
362
377
  }
363
378
  },
364
379
  parameters: {
380
+ a11y: {
381
+ disable: true,
382
+ },
365
383
  sourceCode: [
366
384
  {
367
385
  name: 'Template',
@@ -547,6 +565,9 @@ export const WithHeaderToolbar: Story = {
547
565
  }
548
566
  },
549
567
  parameters: {
568
+ a11y: {
569
+ disable: true,
570
+ },
550
571
  sourceCode: [
551
572
  {
552
573
  name: 'Template',
@@ -47,6 +47,7 @@
47
47
  to?: RouteLocationRaw
48
48
  href?: string
49
49
  }
50
+ width?: string | number
50
51
  } & LogoProps>(),
51
52
  {
52
53
  sticky: true,
@@ -55,6 +56,7 @@
55
56
  serviceTitle: undefined,
56
57
  serviceSubtitle: undefined,
57
58
  homeLink: undefined,
59
+ width: '1712px',
58
60
  })
59
61
 
60
62
  function registerHeaderMenu(childMenuStatus: DeepReadonly<Ref<boolean>>) {
@@ -173,48 +175,50 @@
173
175
  :menu-open
174
176
  />
175
177
  </div>
176
- <div class="inner-header">
177
- <slot
178
- name="menu"
179
- :menu-open
180
- />
181
- <div class="header-logo pl-xl-0 pl-md-14 pl-4">
178
+ <div class="global-container">
179
+ <div class="inner-header">
182
180
  <slot
183
- name="logo"
181
+ name="menu"
184
182
  :menu-open
185
- :home-aria-label
186
- :service-title
187
- :service-subtitle
188
- >
189
- <HeaderLogo
190
- :aria-label="homeAriaLabel"
191
- :service-title="serviceTitle"
192
- :service-subtitle="serviceSubtitle"
193
- :home-link
183
+ />
184
+ <div class="header-logo pl-md-14 pl-4">
185
+ <slot
186
+ name="logo"
187
+ :menu-open
188
+ :home-aria-label
189
+ :service-title
190
+ :service-subtitle
194
191
  >
195
- <template
196
- #brand-content
192
+ <HeaderLogo
193
+ :aria-label="homeAriaLabel"
194
+ :service-title="serviceTitle"
195
+ :service-subtitle="serviceSubtitle"
196
+ :home-link
197
197
  >
198
- <slot
199
- name="logo-brand-content"
200
- :menu-open
201
- :home-aria-label
202
- :service-title
203
- :service-subtitle
204
- :home-link
205
- />
206
- </template>
207
- </HeaderLogo>
208
- </slot>
209
- </div>
210
- <div
211
- v-if="$slots['header-side']"
212
- class="header-side"
213
- >
214
- <slot
215
- name="header-side"
216
- :menu-open
217
- />
198
+ <template
199
+ #brand-content
200
+ >
201
+ <slot
202
+ name="logo-brand-content"
203
+ :menu-open
204
+ :home-aria-label
205
+ :service-title
206
+ :service-subtitle
207
+ :home-link
208
+ />
209
+ </template>
210
+ </HeaderLogo>
211
+ </slot>
212
+ </div>
213
+ <div
214
+ v-if="$slots['header-side']"
215
+ class="header-side"
216
+ >
217
+ <slot
218
+ name="header-side"
219
+ :menu-open
220
+ />
221
+ </div>
218
222
  </div>
219
223
  </div>
220
224
  <div
@@ -234,13 +238,16 @@
234
238
  @use '@/assets/tokens.scss' as *;
235
239
  @use './consts' as *;
236
240
 
241
+ .global-container {
242
+ background-color: $neutral-white;
243
+ }
244
+
237
245
  .header {
238
246
  position: relative;
239
247
  z-index: 1;
240
248
  }
241
249
 
242
250
  .sticky-header {
243
- background-color: $neutral-white;
244
251
  width: 100%;
245
252
  z-index: 1000;
246
253
  }
@@ -249,7 +256,7 @@
249
256
  display: flex;
250
257
  align-items: center;
251
258
  height: $header-height;
252
- max-width: $header-max-width;
259
+ max-width: v-bind(width);
253
260
  margin: 0 auto;
254
261
  border-bottom: solid 1px $blue-lighten-80;
255
262
  }
@@ -83,6 +83,9 @@ export const Default: Story = {
83
83
  }
84
84
  },
85
85
  parameters: {
86
+ a11y: {
87
+ disable: true,
88
+ },
86
89
  sourceCode: [
87
90
  {
88
91
  name: 'Template',
@@ -297,6 +300,9 @@ export const Populated: Story = {
297
300
  }
298
301
  },
299
302
  parameters: {
303
+ a11y: {
304
+ disable: true,
305
+ },
300
306
  sourceCode: [
301
307
  {
302
308
  name: 'Template',
@@ -477,6 +483,9 @@ export const WithScroll: Story = {
477
483
  }
478
484
  },
479
485
  parameters: {
486
+ a11y: {
487
+ disable: true,
488
+ },
480
489
  sourceCode: [
481
490
  {
482
491
  name: 'Template',
@@ -836,6 +845,9 @@ export const Generated: Story = {
836
845
  }
837
846
  },
838
847
  parameters: {
848
+ a11y: {
849
+ disable: true,
850
+ },
839
851
  sourceCode: [
840
852
  {
841
853
  name: 'Template',
@@ -93,6 +93,9 @@ export const Default: Story = {
93
93
  }, 1000)
94
94
  },
95
95
  parameters: {
96
+ a11y: {
97
+ disable: true,
98
+ },
96
99
  sourceCode: [
97
100
  {
98
101
  name: 'Template',
@@ -97,6 +97,10 @@
97
97
  @use '../../consts' as *;
98
98
  @use '../menu';
99
99
 
100
+ .sub-menu-content-wrapper .sub-menu-content {
101
+ padding-top: 2px;
102
+ }
103
+
100
104
  .sub-menu-btn {
101
105
  display: flex;
102
106
  justify-content: center;
@@ -7,13 +7,23 @@ $blue: color.channel(tokens.$primary-base, 'blue');
7
7
  $primary: $red, $green, $blue;
8
8
 
9
9
  @mixin item-focused() {
10
- border-top: 2px solid transparent;
11
- border-bottom: 2px solid transparent;
12
- transition: border-color 0.1s ease;
10
+ position: relative;
13
11
 
14
- &:focus-visible {
15
- outline: 0;
16
- border-top: 2px solid rgb(var(--v-theme-primary, $primary));
17
- border-bottom: 2px solid rgb(var(--v-theme-primary, $primary));
12
+ &:focus-visible::before,
13
+ &:focus-visible::after {
14
+ content: '';
15
+ position: absolute;
16
+ left: 0;
17
+ right: 0;
18
+ height: 1px;
19
+ background-color: rgb(var(--v-theme-primary));
20
+ }
21
+
22
+ &:focus-visible::before {
23
+ top: 0;
24
+ }
25
+
26
+ &:focus-visible::after {
27
+ bottom: 0;
18
28
  }
19
29
  }
@@ -1,6 +1,5 @@
1
1
  $header-breakpoint: 990px;
2
2
  $header-height-desktop: 95px;
3
3
  $header-height: 77px;
4
- $header-max-width: 1712px;
5
4
  $menu-border-color: #e0e0e0;
6
5
  $menu-width: 350px;
@@ -0,0 +1,33 @@
1
+ // @vitest-environment jsdom
2
+
3
+ import { describe, it, vi } from 'vitest'
4
+ import { mount } from '@vue/test-utils'
5
+ import { axe } from 'vitest-axe'
6
+ import { assertNoA11yViolations } from '@tests/unit/accessibility/axeUtils'
7
+ import HeaderBar from '../HeaderBar.vue'
8
+
9
+ // Scénario d’accessibilité : en-tête sticky avec logo et slots principaux.
10
+
11
+ vi.mock('@/utils/functions/throttleDisplayFn/throttleDisplayFn.ts', () => ({
12
+ default: (fn: (...args: unknown[]) => void) => fn,
13
+ }))
14
+
15
+ describe('HeaderBar – accessibility (axe)', () => {
16
+ it('has no obvious axe violations with sticky header and logo', async () => {
17
+ const wrapper = mount(HeaderBar, {
18
+ props: {
19
+ sticky: true,
20
+ serviceTitle: 'Synapse',
21
+ serviceSubtitle: 'Design System',
22
+ },
23
+ attachTo: document.body,
24
+ })
25
+
26
+ const results = await axe(wrapper.element as HTMLElement)
27
+ assertNoA11yViolations(results, 'HeaderBar – sticky with logo', {
28
+ ignoreRules: ['region'],
29
+ })
30
+
31
+ wrapper.unmount()
32
+ })
33
+ })
@@ -17,65 +17,66 @@ exports[`HeaderBar > should render the component 1`] = `
17
17
  "
18
18
  >
19
19
  <!-- v-if -->
20
- <div class="inner-header">
21
- <div class="
22
- header-logo
23
- pl-4
24
- pl-md-14
25
- pl-xl-0
26
- ">
27
- <a
28
- class="logo"
29
- href="/"
30
- ><svg
31
- aria-label="Sécurité sociale, l'Assurance Maladie : Agir ensemble, protéger chacun. Retour à l'accueil."
32
- fill="#0c419a"
33
- focusable="false"
34
- height="42"
35
- role="img"
36
- viewBox="0 0 211 64"
37
- width="141"
38
- xmlns="http://www.w3.org/2000/svg"
39
- >
40
- <g>
41
- <path d="M100.1 45V30.6h3.8v14.6c0 .8.4 1 .7 1h.5l.5 2.9a5 5 0 0 1-2 .3c-2.6 0-3.5-1.7-3.5-4.4Z" />
42
- <path d="m75.7 40.4 3.8-8.5h4V49h-3.6V38.4l-3 7.8h-2.4l-3-7.8v10.7H68V32h4l3.8 8.5Z" />
43
- <path d="M107.1 45.5c0-2.8 2.3-4.3 7.4-4.9 0-1.1-.8-1.8-2.2-1.8-1 0-2.1.4-3.4 1.2l-1.3-2.6c1.6-1 3.5-1.7 5.5-1.7 3.3 0 5 1.9 5 5.9V49h-3.5v-1.3s-1.5 1.6-3.6 1.6c-2.4 0-3.9-1.7-3.9-4Zm7.4-.3V43c-2.7.3-3.7 1.2-3.7 2.2 0 .8.5 1.2 1.5 1.2.8 0 1.5-.5 2.2-1.2Z" />
44
- <path d="M86.1 45.5c0-2.8 2.3-4.3 7.4-4.9 0-1.1-.8-1.8-2.2-1.8-1 0-2.1.4-3.4 1.2l-1.3-2.6c1.6-1 3.5-1.7 5.5-1.7 3.3 0 5 1.9 5 5.9V49h-3.5v-1.3S92 49.4 90 49.4c-2.4 0-3.9-1.7-3.9-4Zm7.4-.3V43c-2.7.3-3.7 1.2-3.7 2.2 0 .8.6 1.2 1.5 1.2.8 0 1.6-.5 2.2-1.2Z" />
45
- <path d="M129 30.6v6.3a4.1 4.1 0 0 0-3.2-1.2c-2.7 0-5.3 2.6-5.3 6.8 0 4.3 2 7 5.2 7 1.8 0 3.1-1.4 3.2-1.5v1.1h3.8V30.6H129Zm-2.3 15.7c-1.5 0-2.4-1.2-2.4-3.8 0-2.5 1.1-3.6 2.4-3.6.6 0 1.4.2 2.2.8v5.4c-.7.8-1.4 1.2-2.2 1.2Z" />
46
- <path d="M135.7 32c0-1.2 1-2 2.2-2 1.2 0 2.2.8 2.2 2s-1 2-2.2 2c-1.3 0-2.2-.8-2.2-2Zm.3 4h3.8V49H136V36Z" />
47
- <path d="M142.2 42.5c0-4.2 2.6-6.8 5.9-6.8 3.6 0 5.6 2.7 5.6 6.3l-.1 1.7h-7.7c.3 2 1.6 2.8 3.3 2.8 1 0 1.8-.4 2.8-1l1.3 2.5c-1.3.9-3 1.4-4.6 1.4-3.8 0-6.5-2.5-6.5-6.9Zm8.3-1.4c0-1.4-.9-2.5-2.4-2.5-1.2 0-2 .9-2.3 2.5h4.7Z" />
48
- <path d="M68 23.3V8.8h3.7v14.7c0 .8.4 1 .7 1h.5l.4 2.9a5 5 0 0 1-1.9.3c-2.6 0-3.5-1.7-3.5-4.4Z" />
49
- <path d="m88.1 23.3 1 4.1h4l-5.3-17.3h-4.4l-5.3 17.3h4l1-4.1h5Zm-4.2-3 1.6-6.6h.2l1.6 6.5H84Z" />
50
- <path d="m93.9 25.9 1.7-2.4c1.1.9 2.2 1.3 3.3 1.3 1.1 0 1.6-.4 1.6-1 0-1-1.2-1.4-2.6-1.9-1.6-.6-3.4-1.7-3.4-3.8 0-2.5 2-4.2 5-4.2 1.9 0 3.4.8 4.5 1.7l-1.7 2.4c-1-.7-1.8-1.2-2.8-1.2-1 0-1.4.4-1.4 1 0 1 1.2 1.2 2.5 1.7 1.6.7 3.5 1.6 3.5 4s-1.9 4.2-5.3 4.2c-1.7 0-3.6-.7-5-1.8Z" />
51
- <path d="m105.3 25.9 1.7-2.4c1.1.9 2.2 1.3 3.3 1.3 1.1 0 1.6-.4 1.6-1 0-1-1.2-1.4-2.6-1.9-1.6-.6-3.4-1.7-3.4-3.8 0-2.5 2-4.2 5-4.2 1.9 0 3.4.8 4.5 1.7l-1.7 2.4c-1-.7-1.8-1.2-2.8-1.2-1 0-1.4.4-1.4 1 0 1 1.2 1.2 2.5 1.7 1.6.7 3.5 1.6 3.5 4s-1.9 4.2-5.3 4.2c-1.7 0-3.6-.7-5-1.8Z" />
52
- <path d="M132.2 14.3h3.8V16c.8-1.4 2.5-2 3.4-2 .8 0 1.2.2 1.6.3l-.4 3.6c-.5-.2-1.1-.4-1.7-.4-1.5 0-2.8 1.3-2.9 3v6.8h-3.8V14.3Z" />
53
- <path d="M155.7 14.3h3.8v1.6c1-1 2.2-2 4-2 2.7 0 4 2 4 5.3v8.2h-3.9v-7.7c0-1.9-.5-2.5-1.6-2.5-1 0-1.6.5-2.5 1.3v8.8h-3.8v-13Z" />
54
- <path d="M180.6 20.8c0-4.3 2.7-6.9 5.9-6.9 3.7 0 5.7 2.8 5.7 6.3 0 .7 0 1.4-.2 1.8h-7.7c.4 1.9 1.7 2.8 3.4 2.8 1 0 1.8-.4 2.7-1l1.3 2.4c-1.3 1-3 1.5-4.6 1.5-3.7 0-6.5-2.5-6.5-6.9Zm8.4-1.4c0-1.4-.9-2.5-2.4-2.5-1.2 0-2 .8-2.3 2.5h4.7Z" />
55
- <path d="M141.8 23.7c0-2.7 2.3-4.3 7.4-4.8 0-1.2-.8-1.9-2.2-1.9a7 7 0 0 0-3.4 1.2l-1.3-2.5c1.6-1 3.4-1.8 5.5-1.8 3.3 0 5 2 5 6v7.5h-3.6V26s-1.4 1.6-3.5 1.6c-2.4 0-4-1.7-4-4Zm7.4-.2v-2.3c-2.7.4-3.8 1.3-3.8 2.3 0 .8.6 1.2 1.5 1.2s1.7-.5 2.3-1.2Z" />
56
- <path d="M76.7 8.8c-.8 0-1.9.6-1.9 1.7 0 1 .8 1.5 1.6 1.5 0 1.2-1 1.8-1.5 2.1l1 1.4c3.3-1 4-6.7.8-6.7Z" />
57
- <path d="M125.3 14.3V23c-.8 1-1.4 1.4-2.3 1.4-1 0-1.6-.6-1.6-2.5v-7.6h-3.8v8.3c0 3 1.4 5.1 4 5.1 2.5 0 3.8-1.6 3.8-1.6v1.3h3.7V14.3h-3.8Z" />
58
- <path d="M176.3 24.6c-1.7 0-3-1.5-3-3.7 0-2.3 1.3-3.8 3-3.8.6 0 1.1.2 1.7.7l1.8-2.5c-.9-.8-2.1-1.3-3.7-1.3a6.5 6.5 0 0 0-6.6 6.9c0 4.3 2.7 6.8 6.3 6.8 1.4 0 3-.4 4.2-1.5l-1.4-2.7c-.7.6-1.5 1-2.3 1Z" />
59
- </g>
60
- <path d="M34.8 9c-.1-.2-.4-.3-.6-.3H34c-.2-.2-5.3 0-6.5.7 0-.8-.4-1.8-1.7-2-1-.3-3.1.7-2.4 2.8 0 .3.3.6.7.8.2 0 .5 0 .7.6h.3l.2.2h.5c.4.4.8-.1 1-.5l.7 2c-.2-.2-1.8-.6-2.5.2s-1.2 1.8-1.7 3.5c-.2.4-.5.7-1 .9-.9.3-.4.7-.2.7a6 6 0 0 0 2 0c.4-.2.1-1 .5-1.4l.8-1c0 .5 0 .8-.3 1.5-.2.7-1 1-1.3 1.3-.4.5.6.5.8.5.7-.2 1-.2 1.3-.4.4-.2.2-.8.3-1 .3-.7 1.4-2 1.6-2.3.8.2 1.7.2 2 .2 1.9-.2 2.3-1.5 2-2.6-.1-1-.7-1.5-.9-1.8l-.9-1.4 3.5-.9c0 .3.3.3.4.4.2.1.3 0 .2-.1a.6.6 0 0 1-.2-.2h.7c.3 0 .4-.4.3-.5Z" />
61
- <path
62
- clip-rule="evenodd"
63
- d="M61 26.7c-.5-2.6-2.9-4.1-4.1-4.7l-1.4-.4-.4-.2c.1-.5.8-.5 1.2-1.3 1-2.3-1.2-3.8-2.8-3.5-.8.2-1.3.4-1.5 1 0 .4-.3.4-.7.8-.2.2.1.4.2.5l-.1.3v.5s-.3.3 0 .7l.3.8c0 .1 0 .2-.3 0l-3.4-1a37.4 37.4 0 0 1-4.2-4.7c-.7 0 .5 1.3-.1.8-.2 0-.7-.4-.8-.5l-.1-.2-.3-.3H42.2c-.2 0-.1.5 0 .7 0 0 .4 1.2.6 1.4l1.5 1 2.6 3c.7.7 3.8 2.5 3.9 2.6.2 0 .5.8 0 5.5-.1 1.8-1.4 5.6-.8 7.5.4 1.3.9 2.2 1.3 5.6.1.8-.5 1.3-1.3 2l-1.4.8c-.2.2 0 .4.2.5.2 0 .5.3.8.3.3.1.9 0 1.4-.3.7-.3.7-.4 1-.6.5-.3 1-.3 1.2-.8.2-.6-.3-1.4-.3-1.7.4-2.8.9-4.1.2-5.8-.2-.3 1-4 1-3.4.2.9.3 3.8.3 5.9 0 .9.8 4.2 1 5.4.4 1.8-2.6 3.2-2 3.8l1 .3 1-.1c.3-.1.6-.5.7-.6.6-.8.4-.6 1-1.1.4-.5 0-1.4 0-1.8v-2.9c0-1.9 0-2.4.2-3.2l1-6.2s.2 0 .3-.2c.2-.2.1-.5.2-.7 0-.2 0 0 0 0l.2.6-.2.8c-.2.4.1.4.2.5 0 0 1-.7 1.2-1l.1-.8-.2-1.8c.2-.9 1-3.2.8-3.8Zm-2.2 3.6c-.2.5-.2 0-.6 1.7V31.1c0-2.1-1.5-6.5-.6-5.6 0 0 1.2.8 1.4 1.4.2.5.1 1.8-.2 3.4Z"
64
- fill-rule="evenodd"
65
- />
66
- <path d="M20 35.3c-.3-.3-1.6-2-2.4-2.7l-1-1.5c-1.6-2-1.9-2.1-3-2.2-.1-.2 0-.3 0-.4 1.3-.5.9-1.6.8-1.7l.2-.6-.2-1-.1-.7c-.8-.9-2.6-.9-3.5-.3-.8.5-.3.9-.6 1.6-.1.5 0 .9.3 1.2 0 .3.8.7.7 1.2-.2.6-1 .7-1 .7l-.3.1c-1.4.8-2.7 2-2.9 3.2 0 1 1.7 2.5 2.7 3.3.1 1.7 1.2 4.4 1.3 4.5.1.3-.3-.3-1.4-.7-.6-.1-1.2-.9-1.4 0 0 .4 0 1-.3 1.8-.2.6 0 1.5.7 1.5.5 0 .8-1.4.8-1.4s2.3 1 3.3.7c.7-.2.8-2.7.2-5-.2-.8.4 1.3 2 3.1.2.4 0 .7.2 2.2v1c0 .7-.7 1.6.9 2 1.6.4 1.5.8 2.5.1.5-.3-1.4-.5-1.8-1.6v-.2c0-.9.3-2.9.2-3.6-.6-3.4-2-5-2.2-5.8 0-2.4-.2-3.2 0-2.6l1 1.5.3.3.4.4 2.8 2.1s.1 1 .6 1c.4 0 2.3-1 2.2-1.1 0-.3-2-.3-2-.4ZM9.7 34l-1-1.8c.4-.7 1-1 1-.9.2 0 0 2.7 0 2.7Z" />
67
- <path d="M51.8 54.8c-.1 0-1.2-.5-2.2-2-.5-.8-3.8-7-4.3-8.2-.9-2.4-8-6.7-8.2-7-.2-.1-.2-.5-.1-.8.5-2 .3-3.8.4-4.1.3-.7.8-1.7.4-2.3l-.7-1.2s3.7 1.4 4.6 1.2c.8-.2 4.5-2.8 4.7-2.9.5-.2 1.8.1 3-1.3.5-.5.2-.6 0-.6.1 0-.1-.2-.4 0-.2.1-1.3.4-1.1.2.8-.5.2-.7.2-.7-.3.3-1.8.7-2.1 1l-.8.5c-.9.5-2.4 1.3-4 1.7-.3 0-3.3-2-5-2.2-1-.1-1.3 0-1.8.1-.6.2-.6-.7 0-1 .2 0 .6-.1.7-.4.2-.4 0-.7 0-.8v-.2l-.1-.1v-.5c.3-.2.2-.4.1-.4-.1-.1-.6-.4-.7-.7 0-.6-.3-.9-.3-1.2 0 0-.1-.8-.4-1-.4-.4-1.2-.8-2.8-.3-.6.1-.5.4-1.8.6-1.6.3-2.4 2.7-2.3 3.7.1.8.8.4.8.7 0 .6-.1 1.5 1 1.8.3 0 1.8-.2 2.4 0 0 0 .5 0 .2.4-.1.2-1.6.9-2 1-1 .4-3.6 4.6-4.3 5-.7.3-1 .6-1.3.8-1 .6-2.1 1.4-2.7 1.4-.7 0-1.4.3-1.9 1.5-.1.3 0 .5.3.5 0 .1.2.3.4.3.2.2.5 0 .7 0l1-.7c.5-.2 4-1.5 4.7-2.1 1.2-.6 3.5-3 4-3s1.6 1 1.2 3c0 .7-1 2-1.4 2.6-1 1.5-.2 2.7-.4 3-1 1.6-2.2 3.7-4.2 5.5-.8.6-2.4.7-3.3 1-2 .5-4.2 2-5.7 2.8-.5.3-1-.3-1.6-.4-.7 0-.7 1-1 1.8l-.7 1.5c-.1.4-.7 1.7-.1 2.2.4.7 1.5-1.4 2.4-2.3.4-.5.7-.7 1.7-1 .6 0 5.6-1.4 8.8-2.2h.3c4.2-1.1 8.6-6.6 8.7-6.6l7.2 3.5c.7.4.7 1.8 1.5 3.4a22 22 0 0 0 4.4 4.9c.4.4 0 1 .2 1.6.2.6.6.6 1.1.6l1.6-.2c.7 0 .5 0 1.3.2.4 0 1.3.1 2-.5 1-1.2-1.2-.6-2.3-1.1Z" />
68
- <path d="M44 51.7a.4.4 0 0 0-.6-.2 22.2 22.2 0 0 1-21-.6.5.5 0 0 0-.6.2c-.1.2 0 .4.1.6a23 23 0 0 0 21.9.5c.2 0 .3-.3.2-.5Z" />
69
- <path d="M12.9 22.9h-.2c-.2-.2-.3-.4-.2-.6 2-4.4 5.2-8 9.3-10.4.2-.1.5 0 .6.2.2.2 0 .4-.1.6-4 2.3-7.1 5.7-9 10l-.4.2Z" />
70
- <path d="M50.3 17.3c-.1 0-.3 0-.3-.2A22 22 0 0 0 36.5 10c-.2 0-.4-.3-.3-.5 0-.3.2-.4.5-.4a23 23 0 0 1 14 7.5v.7h-.4Z" />
71
- </svg>
72
-
20
+ <div class="global-container">
21
+ <div class="inner-header">
22
+ <div class="
23
+ header-logo
24
+ pl-4
25
+ pl-md-14
26
+ ">
27
+ <a
28
+ class="logo"
29
+ href="/"
30
+ ><svg
31
+ aria-label="Sécurité sociale, l'Assurance Maladie : Agir ensemble, protéger chacun. Retour à l'accueil."
32
+ fill="#0c419a"
33
+ focusable="false"
34
+ height="42"
35
+ role="img"
36
+ viewBox="0 0 211 64"
37
+ width="141"
38
+ xmlns="http://www.w3.org/2000/svg"
39
+ >
40
+ <g>
41
+ <path d="M100.1 45V30.6h3.8v14.6c0 .8.4 1 .7 1h.5l.5 2.9a5 5 0 0 1-2 .3c-2.6 0-3.5-1.7-3.5-4.4Z" />
42
+ <path d="m75.7 40.4 3.8-8.5h4V49h-3.6V38.4l-3 7.8h-2.4l-3-7.8v10.7H68V32h4l3.8 8.5Z" />
43
+ <path d="M107.1 45.5c0-2.8 2.3-4.3 7.4-4.9 0-1.1-.8-1.8-2.2-1.8-1 0-2.1.4-3.4 1.2l-1.3-2.6c1.6-1 3.5-1.7 5.5-1.7 3.3 0 5 1.9 5 5.9V49h-3.5v-1.3s-1.5 1.6-3.6 1.6c-2.4 0-3.9-1.7-3.9-4Zm7.4-.3V43c-2.7.3-3.7 1.2-3.7 2.2 0 .8.5 1.2 1.5 1.2.8 0 1.5-.5 2.2-1.2Z" />
44
+ <path d="M86.1 45.5c0-2.8 2.3-4.3 7.4-4.9 0-1.1-.8-1.8-2.2-1.8-1 0-2.1.4-3.4 1.2l-1.3-2.6c1.6-1 3.5-1.7 5.5-1.7 3.3 0 5 1.9 5 5.9V49h-3.5v-1.3S92 49.4 90 49.4c-2.4 0-3.9-1.7-3.9-4Zm7.4-.3V43c-2.7.3-3.7 1.2-3.7 2.2 0 .8.6 1.2 1.5 1.2.8 0 1.6-.5 2.2-1.2Z" />
45
+ <path d="M129 30.6v6.3a4.1 4.1 0 0 0-3.2-1.2c-2.7 0-5.3 2.6-5.3 6.8 0 4.3 2 7 5.2 7 1.8 0 3.1-1.4 3.2-1.5v1.1h3.8V30.6H129Zm-2.3 15.7c-1.5 0-2.4-1.2-2.4-3.8 0-2.5 1.1-3.6 2.4-3.6.6 0 1.4.2 2.2.8v5.4c-.7.8-1.4 1.2-2.2 1.2Z" />
46
+ <path d="M135.7 32c0-1.2 1-2 2.2-2 1.2 0 2.2.8 2.2 2s-1 2-2.2 2c-1.3 0-2.2-.8-2.2-2Zm.3 4h3.8V49H136V36Z" />
47
+ <path d="M142.2 42.5c0-4.2 2.6-6.8 5.9-6.8 3.6 0 5.6 2.7 5.6 6.3l-.1 1.7h-7.7c.3 2 1.6 2.8 3.3 2.8 1 0 1.8-.4 2.8-1l1.3 2.5c-1.3.9-3 1.4-4.6 1.4-3.8 0-6.5-2.5-6.5-6.9Zm8.3-1.4c0-1.4-.9-2.5-2.4-2.5-1.2 0-2 .9-2.3 2.5h4.7Z" />
48
+ <path d="M68 23.3V8.8h3.7v14.7c0 .8.4 1 .7 1h.5l.4 2.9a5 5 0 0 1-1.9.3c-2.6 0-3.5-1.7-3.5-4.4Z" />
49
+ <path d="m88.1 23.3 1 4.1h4l-5.3-17.3h-4.4l-5.3 17.3h4l1-4.1h5Zm-4.2-3 1.6-6.6h.2l1.6 6.5H84Z" />
50
+ <path d="m93.9 25.9 1.7-2.4c1.1.9 2.2 1.3 3.3 1.3 1.1 0 1.6-.4 1.6-1 0-1-1.2-1.4-2.6-1.9-1.6-.6-3.4-1.7-3.4-3.8 0-2.5 2-4.2 5-4.2 1.9 0 3.4.8 4.5 1.7l-1.7 2.4c-1-.7-1.8-1.2-2.8-1.2-1 0-1.4.4-1.4 1 0 1 1.2 1.2 2.5 1.7 1.6.7 3.5 1.6 3.5 4s-1.9 4.2-5.3 4.2c-1.7 0-3.6-.7-5-1.8Z" />
51
+ <path d="m105.3 25.9 1.7-2.4c1.1.9 2.2 1.3 3.3 1.3 1.1 0 1.6-.4 1.6-1 0-1-1.2-1.4-2.6-1.9-1.6-.6-3.4-1.7-3.4-3.8 0-2.5 2-4.2 5-4.2 1.9 0 3.4.8 4.5 1.7l-1.7 2.4c-1-.7-1.8-1.2-2.8-1.2-1 0-1.4.4-1.4 1 0 1 1.2 1.2 2.5 1.7 1.6.7 3.5 1.6 3.5 4s-1.9 4.2-5.3 4.2c-1.7 0-3.6-.7-5-1.8Z" />
52
+ <path d="M132.2 14.3h3.8V16c.8-1.4 2.5-2 3.4-2 .8 0 1.2.2 1.6.3l-.4 3.6c-.5-.2-1.1-.4-1.7-.4-1.5 0-2.8 1.3-2.9 3v6.8h-3.8V14.3Z" />
53
+ <path d="M155.7 14.3h3.8v1.6c1-1 2.2-2 4-2 2.7 0 4 2 4 5.3v8.2h-3.9v-7.7c0-1.9-.5-2.5-1.6-2.5-1 0-1.6.5-2.5 1.3v8.8h-3.8v-13Z" />
54
+ <path d="M180.6 20.8c0-4.3 2.7-6.9 5.9-6.9 3.7 0 5.7 2.8 5.7 6.3 0 .7 0 1.4-.2 1.8h-7.7c.4 1.9 1.7 2.8 3.4 2.8 1 0 1.8-.4 2.7-1l1.3 2.4c-1.3 1-3 1.5-4.6 1.5-3.7 0-6.5-2.5-6.5-6.9Zm8.4-1.4c0-1.4-.9-2.5-2.4-2.5-1.2 0-2 .8-2.3 2.5h4.7Z" />
55
+ <path d="M141.8 23.7c0-2.7 2.3-4.3 7.4-4.8 0-1.2-.8-1.9-2.2-1.9a7 7 0 0 0-3.4 1.2l-1.3-2.5c1.6-1 3.4-1.8 5.5-1.8 3.3 0 5 2 5 6v7.5h-3.6V26s-1.4 1.6-3.5 1.6c-2.4 0-4-1.7-4-4Zm7.4-.2v-2.3c-2.7.4-3.8 1.3-3.8 2.3 0 .8.6 1.2 1.5 1.2s1.7-.5 2.3-1.2Z" />
56
+ <path d="M76.7 8.8c-.8 0-1.9.6-1.9 1.7 0 1 .8 1.5 1.6 1.5 0 1.2-1 1.8-1.5 2.1l1 1.4c3.3-1 4-6.7.8-6.7Z" />
57
+ <path d="M125.3 14.3V23c-.8 1-1.4 1.4-2.3 1.4-1 0-1.6-.6-1.6-2.5v-7.6h-3.8v8.3c0 3 1.4 5.1 4 5.1 2.5 0 3.8-1.6 3.8-1.6v1.3h3.7V14.3h-3.8Z" />
58
+ <path d="M176.3 24.6c-1.7 0-3-1.5-3-3.7 0-2.3 1.3-3.8 3-3.8.6 0 1.1.2 1.7.7l1.8-2.5c-.9-.8-2.1-1.3-3.7-1.3a6.5 6.5 0 0 0-6.6 6.9c0 4.3 2.7 6.8 6.3 6.8 1.4 0 3-.4 4.2-1.5l-1.4-2.7c-.7.6-1.5 1-2.3 1Z" />
59
+ </g>
60
+ <path d="M34.8 9c-.1-.2-.4-.3-.6-.3H34c-.2-.2-5.3 0-6.5.7 0-.8-.4-1.8-1.7-2-1-.3-3.1.7-2.4 2.8 0 .3.3.6.7.8.2 0 .5 0 .7.6h.3l.2.2h.5c.4.4.8-.1 1-.5l.7 2c-.2-.2-1.8-.6-2.5.2s-1.2 1.8-1.7 3.5c-.2.4-.5.7-1 .9-.9.3-.4.7-.2.7a6 6 0 0 0 2 0c.4-.2.1-1 .5-1.4l.8-1c0 .5 0 .8-.3 1.5-.2.7-1 1-1.3 1.3-.4.5.6.5.8.5.7-.2 1-.2 1.3-.4.4-.2.2-.8.3-1 .3-.7 1.4-2 1.6-2.3.8.2 1.7.2 2 .2 1.9-.2 2.3-1.5 2-2.6-.1-1-.7-1.5-.9-1.8l-.9-1.4 3.5-.9c0 .3.3.3.4.4.2.1.3 0 .2-.1a.6.6 0 0 1-.2-.2h.7c.3 0 .4-.4.3-.5Z" />
61
+ <path
62
+ clip-rule="evenodd"
63
+ d="M61 26.7c-.5-2.6-2.9-4.1-4.1-4.7l-1.4-.4-.4-.2c.1-.5.8-.5 1.2-1.3 1-2.3-1.2-3.8-2.8-3.5-.8.2-1.3.4-1.5 1 0 .4-.3.4-.7.8-.2.2.1.4.2.5l-.1.3v.5s-.3.3 0 .7l.3.8c0 .1 0 .2-.3 0l-3.4-1a37.4 37.4 0 0 1-4.2-4.7c-.7 0 .5 1.3-.1.8-.2 0-.7-.4-.8-.5l-.1-.2-.3-.3H42.2c-.2 0-.1.5 0 .7 0 0 .4 1.2.6 1.4l1.5 1 2.6 3c.7.7 3.8 2.5 3.9 2.6.2 0 .5.8 0 5.5-.1 1.8-1.4 5.6-.8 7.5.4 1.3.9 2.2 1.3 5.6.1.8-.5 1.3-1.3 2l-1.4.8c-.2.2 0 .4.2.5.2 0 .5.3.8.3.3.1.9 0 1.4-.3.7-.3.7-.4 1-.6.5-.3 1-.3 1.2-.8.2-.6-.3-1.4-.3-1.7.4-2.8.9-4.1.2-5.8-.2-.3 1-4 1-3.4.2.9.3 3.8.3 5.9 0 .9.8 4.2 1 5.4.4 1.8-2.6 3.2-2 3.8l1 .3 1-.1c.3-.1.6-.5.7-.6.6-.8.4-.6 1-1.1.4-.5 0-1.4 0-1.8v-2.9c0-1.9 0-2.4.2-3.2l1-6.2s.2 0 .3-.2c.2-.2.1-.5.2-.7 0-.2 0 0 0 0l.2.6-.2.8c-.2.4.1.4.2.5 0 0 1-.7 1.2-1l.1-.8-.2-1.8c.2-.9 1-3.2.8-3.8Zm-2.2 3.6c-.2.5-.2 0-.6 1.7V31.1c0-2.1-1.5-6.5-.6-5.6 0 0 1.2.8 1.4 1.4.2.5.1 1.8-.2 3.4Z"
64
+ fill-rule="evenodd"
65
+ />
66
+ <path d="M20 35.3c-.3-.3-1.6-2-2.4-2.7l-1-1.5c-1.6-2-1.9-2.1-3-2.2-.1-.2 0-.3 0-.4 1.3-.5.9-1.6.8-1.7l.2-.6-.2-1-.1-.7c-.8-.9-2.6-.9-3.5-.3-.8.5-.3.9-.6 1.6-.1.5 0 .9.3 1.2 0 .3.8.7.7 1.2-.2.6-1 .7-1 .7l-.3.1c-1.4.8-2.7 2-2.9 3.2 0 1 1.7 2.5 2.7 3.3.1 1.7 1.2 4.4 1.3 4.5.1.3-.3-.3-1.4-.7-.6-.1-1.2-.9-1.4 0 0 .4 0 1-.3 1.8-.2.6 0 1.5.7 1.5.5 0 .8-1.4.8-1.4s2.3 1 3.3.7c.7-.2.8-2.7.2-5-.2-.8.4 1.3 2 3.1.2.4 0 .7.2 2.2v1c0 .7-.7 1.6.9 2 1.6.4 1.5.8 2.5.1.5-.3-1.4-.5-1.8-1.6v-.2c0-.9.3-2.9.2-3.6-.6-3.4-2-5-2.2-5.8 0-2.4-.2-3.2 0-2.6l1 1.5.3.3.4.4 2.8 2.1s.1 1 .6 1c.4 0 2.3-1 2.2-1.1 0-.3-2-.3-2-.4ZM9.7 34l-1-1.8c.4-.7 1-1 1-.9.2 0 0 2.7 0 2.7Z" />
67
+ <path d="M51.8 54.8c-.1 0-1.2-.5-2.2-2-.5-.8-3.8-7-4.3-8.2-.9-2.4-8-6.7-8.2-7-.2-.1-.2-.5-.1-.8.5-2 .3-3.8.4-4.1.3-.7.8-1.7.4-2.3l-.7-1.2s3.7 1.4 4.6 1.2c.8-.2 4.5-2.8 4.7-2.9.5-.2 1.8.1 3-1.3.5-.5.2-.6 0-.6.1 0-.1-.2-.4 0-.2.1-1.3.4-1.1.2.8-.5.2-.7.2-.7-.3.3-1.8.7-2.1 1l-.8.5c-.9.5-2.4 1.3-4 1.7-.3 0-3.3-2-5-2.2-1-.1-1.3 0-1.8.1-.6.2-.6-.7 0-1 .2 0 .6-.1.7-.4.2-.4 0-.7 0-.8v-.2l-.1-.1v-.5c.3-.2.2-.4.1-.4-.1-.1-.6-.4-.7-.7 0-.6-.3-.9-.3-1.2 0 0-.1-.8-.4-1-.4-.4-1.2-.8-2.8-.3-.6.1-.5.4-1.8.6-1.6.3-2.4 2.7-2.3 3.7.1.8.8.4.8.7 0 .6-.1 1.5 1 1.8.3 0 1.8-.2 2.4 0 0 0 .5 0 .2.4-.1.2-1.6.9-2 1-1 .4-3.6 4.6-4.3 5-.7.3-1 .6-1.3.8-1 .6-2.1 1.4-2.7 1.4-.7 0-1.4.3-1.9 1.5-.1.3 0 .5.3.5 0 .1.2.3.4.3.2.2.5 0 .7 0l1-.7c.5-.2 4-1.5 4.7-2.1 1.2-.6 3.5-3 4-3s1.6 1 1.2 3c0 .7-1 2-1.4 2.6-1 1.5-.2 2.7-.4 3-1 1.6-2.2 3.7-4.2 5.5-.8.6-2.4.7-3.3 1-2 .5-4.2 2-5.7 2.8-.5.3-1-.3-1.6-.4-.7 0-.7 1-1 1.8l-.7 1.5c-.1.4-.7 1.7-.1 2.2.4.7 1.5-1.4 2.4-2.3.4-.5.7-.7 1.7-1 .6 0 5.6-1.4 8.8-2.2h.3c4.2-1.1 8.6-6.6 8.7-6.6l7.2 3.5c.7.4.7 1.8 1.5 3.4a22 22 0 0 0 4.4 4.9c.4.4 0 1 .2 1.6.2.6.6.6 1.1.6l1.6-.2c.7 0 .5 0 1.3.2.4 0 1.3.1 2-.5 1-1.2-1.2-.6-2.3-1.1Z" />
68
+ <path d="M44 51.7a.4.4 0 0 0-.6-.2 22.2 22.2 0 0 1-21-.6.5.5 0 0 0-.6.2c-.1.2 0 .4.1.6a23 23 0 0 0 21.9.5c.2 0 .3-.3.2-.5Z" />
69
+ <path d="M12.9 22.9h-.2c-.2-.2-.3-.4-.2-.6 2-4.4 5.2-8 9.3-10.4.2-.1.5 0 .6.2.2.2 0 .4-.1.6-4 2.3-7.1 5.7-9 10l-.4.2Z" />
70
+ <path d="M50.3 17.3c-.1 0-.3 0-.3-.2A22 22 0 0 0 36.5 10c-.2 0-.4-.3-.3-.5 0-.3.2-.4.5-.4a23 23 0 0 1 14 7.5v.7h-.4Z" />
71
+ </svg>
72
+
73
+ <!-- v-if -->
74
+
75
+ <!-- v-if -->
76
+ </a>
77
+ </div>
73
78
  <!-- v-if -->
74
-
75
- <!-- v-if -->
76
- </a>
77
79
  </div>
78
- <!-- v-if -->
79
80
  </div>
80
81
  <!-- v-if -->
81
82
  </div>
@@ -0,0 +1,25 @@
1
+ // @vitest-environment jsdom
2
+
3
+ import { describe, it } from 'vitest'
4
+ import { mount } from '@vue/test-utils'
5
+ import { axe } from 'vitest-axe'
6
+ import { assertNoA11yViolations } from '@tests/unit/accessibility/axeUtils'
7
+ import HeaderLoading from '../HeaderLoading.vue'
8
+
9
+ // Scénario d’accessibilité : skeleton autonome qui s’annonce lui-même via aria-live.
10
+
11
+ describe('HeaderLoading – accessibility (axe)', () => {
12
+ it('has no obvious axe violations for standalone loader with aria-live', async () => {
13
+ const wrapper = mount(HeaderLoading, {
14
+ props: {
15
+ standalone: true,
16
+ ariaLabel: 'Chargement du contenu de l’en-tête',
17
+ },
18
+ })
19
+
20
+ const results = await axe(wrapper.element as HTMLElement)
21
+ assertNoA11yViolations(results, 'HeaderLoading – standalone loader', {
22
+ ignoreRules: ['region'],
23
+ })
24
+ })
25
+ })
@@ -212,6 +212,18 @@ const meta = {
212
212
  },
213
213
  },
214
214
  },
215
+ 'width': {
216
+ control: { type: 'text' },
217
+ description: 'Largeur interne du header.',
218
+ table: {
219
+ type: {
220
+ summary: 'string',
221
+ },
222
+ defaultValue: {
223
+ summary: '1712px',
224
+ },
225
+ },
226
+ },
215
227
  'vuetifyOptions': {
216
228
  control: { type: 'object' },
217
229
  description:
@@ -278,6 +290,9 @@ export const Default: Story = {
278
290
  ],
279
291
  },
280
292
  parameters: {
293
+ a11y: {
294
+ disable: true,
295
+ },
281
296
  sourceCode: [
282
297
  {
283
298
  name: 'Template',
@@ -327,6 +342,9 @@ export const WithScroll: Story = {
327
342
  }),
328
343
  ],
329
344
  parameters: {
345
+ a11y: {
346
+ disable: true,
347
+ },
330
348
  sourceCode: [
331
349
  {
332
350
  name: 'Template',
@@ -393,6 +411,9 @@ export const WithManyItems: Story = {
393
411
  ],
394
412
  },
395
413
  parameters: {
414
+ a11y: {
415
+ disable: true,
416
+ },
396
417
  sourceCode: [
397
418
  {
398
419
  name: 'Template',
@@ -507,6 +528,9 @@ export const WithSlots: Story = {
507
528
  }
508
529
  },
509
530
  parameters: {
531
+ a11y: {
532
+ disable: true,
533
+ },
510
534
  sourceCode: [
511
535
  {
512
536
  name: 'Template',
@@ -608,6 +632,9 @@ export const WithLogoSlot: Story = {
608
632
  }
609
633
  },
610
634
  parameters: {
635
+ a11y: {
636
+ disable: true,
637
+ },
611
638
  sourceCode: [
612
639
  {
613
640
  name: 'Template',
@@ -672,6 +699,9 @@ export const WithNavigationBarPrependSlot: Story = {
672
699
  }
673
700
  },
674
701
  parameters: {
702
+ a11y: {
703
+ disable: true,
704
+ },
675
705
  sourceCode: [
676
706
  {
677
707
  name: 'Template',
@@ -723,6 +753,9 @@ export const WithNavigationBarAppendSlot: Story = {
723
753
  }
724
754
  },
725
755
  parameters: {
756
+ a11y: {
757
+ disable: true,
758
+ },
726
759
  sourceCode: [
727
760
  {
728
761
  name: 'Template',
@@ -789,6 +822,9 @@ export const WithNavigationMenuAppendSlot: Story = {
789
822
  }
790
823
  },
791
824
  parameters: {
825
+ a11y: {
826
+ disable: true,
827
+ },
792
828
  sourceCode: [
793
829
  {
794
830
  name: 'Template',
@@ -836,6 +872,9 @@ export const WithVuetifyOptions: Story = {
836
872
  },
837
873
  },
838
874
  parameters: {
875
+ a11y: {
876
+ disable: true,
877
+ },
839
878
  sourceCode: [
840
879
  {
841
880
  name: 'Template',
@@ -905,6 +944,9 @@ export const WithTabConfirmation: Story = {
905
944
  }
906
945
  },
907
946
  parameters: {
947
+ a11y: {
948
+ disable: true,
949
+ },
908
950
  sourceCode: [
909
951
  {
910
952
  name: 'Template',
@@ -39,6 +39,8 @@
39
39
  confirmTabChange?: boolean
40
40
  /** Message affiché dans la boîte de dialogue de confirmation */
41
41
  confirmationMessage?: boolean
42
+ /** Largeur interne */
43
+ width?: string
42
44
  }>(),
43
45
  {
44
46
  // Confirmation related defaults
@@ -53,6 +55,7 @@
53
55
  hideWhenDown: false,
54
56
  maxHorizontalMenuItems: 6,
55
57
  items: undefined,
58
+ width: '1712px',
56
59
  })
57
60
 
58
61
  // Définition des événements émis
@@ -126,6 +129,7 @@
126
129
  :home-aria-label="homeAriaLabel"
127
130
  :service-title="serviceTitle"
128
131
  :service-subtitle="serviceSubtitle"
132
+ :width="width"
129
133
  >
130
134
  <template #menu>
131
135
  <HeaderBurgerMenu