@cnamts/synapse 1.0.3 → 1.0.4

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 (207) hide show
  1. package/dist/DateFilter-yrwJv_2R.js +95 -0
  2. package/dist/NumberFilter-BQXtywZI.js +117 -0
  3. package/dist/PeriodFilter-BYXVSzr5.js +108 -0
  4. package/dist/SelectFilter-CJV_mlN3.js +133 -0
  5. package/dist/TextFilter-DN0ejYIs.js +110 -0
  6. package/dist/components/Accordion/Accordion.d.ts +2 -2
  7. package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +5 -5
  8. package/dist/components/Amelipro/AmeliproIcon/AmeliproIcon.d.ts +1 -1
  9. package/dist/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.d.ts +7 -7
  10. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +5 -5
  11. package/dist/components/Amelipro/AmeliproStateTile/AmeliproStateTile.d.ts +9 -0
  12. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +10 -10
  13. package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +1 -1
  14. package/dist/components/CookieBanner/CookieBanner.d.ts +302 -1
  15. package/dist/components/CookieBanner/config.d.ts +1 -0
  16. package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +1188 -1
  17. package/dist/components/CookiesSelection/CookiesSelection.d.ts +217 -0
  18. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +1 -1
  19. package/dist/components/Customs/SyTextField/SyTextField.d.ts +1 -1
  20. package/dist/components/DataList/DataList.d.ts +1 -1
  21. package/dist/components/DataListItem/DataListItem.d.ts +1 -1
  22. package/dist/components/DatePicker/{DatePicker → CalendarMode}/DatePicker.d.ts +15 -15
  23. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +13 -13
  24. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +4 -4
  25. package/dist/components/DatePicker/composables/useDatePickerViewMode.d.ts +2 -2
  26. package/dist/components/DatePicker/composables/useDatePickerVisibility.d.ts +2 -2
  27. package/dist/components/DatePicker/composables/useDateSelection.d.ts +1 -1
  28. package/dist/components/DatePicker/composables/useMonthButtonCustomization.d.ts +2 -2
  29. package/dist/components/DatePicker/composables/useTodayButton.d.ts +1 -1
  30. package/dist/components/DatePicker/composables/useWeekendDays.d.ts +1 -1
  31. package/dist/components/DatePicker/constants/messages.d.ts +1 -1
  32. package/dist/components/DatePicker/types.d.ts +2 -2
  33. package/dist/components/ExternalLinks/ExternalLinks.d.ts +3 -3
  34. package/dist/components/ExternalLinks/config.d.ts +4 -3
  35. package/dist/components/ExternalLinks/locales.d.ts +1 -0
  36. package/dist/components/NirField/NirField.d.ts +11 -11
  37. package/dist/components/PasswordField/PasswordField.d.ts +1 -1
  38. package/dist/components/PeriodField/PeriodField.d.ts +24 -24
  39. package/dist/components/Tables/common/locales.d.ts +5 -0
  40. package/dist/components/Tables/common/useTableAria.d.ts +21 -0
  41. package/dist/components/index.d.ts +1 -1
  42. package/dist/composables/date/useDatePickerAccessibility.d.ts +2 -2
  43. package/dist/{style.css → design-system-v3.css} +1 -1
  44. package/dist/design-system-v3.js +1 -1
  45. package/dist/design-system-v3.umd.cjs +273 -252
  46. package/dist/directives/Toolbar.d.ts +15 -0
  47. package/dist/directives/letterSpacing.d.ts +27 -0
  48. package/dist/{main-DoYCrS2Q.js → main-BzyNNvHX.js} +10482 -10252
  49. package/package.json +12 -12
  50. package/src/assets/_typography.scss +22 -23
  51. package/src/components/Accordion/Accordion.vue +2 -2
  52. package/src/components/Accordion/tests/__snapshots__/accordion.spec.ts.snap +5 -1
  53. package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/__snapshots__/AmeliproAutoCompleteField.spec.ts.snap +26 -14
  54. package/src/components/Amelipro/AmeliproBreadcrumb/__tests__/__snapshots__/AmeliproBreadcrumb.spec.ts.snap +15 -3
  55. package/src/components/Amelipro/AmeliproBtn/tests/__snapshots__/AmeliproBtn.spec.ts.snap +5 -1
  56. package/src/components/Amelipro/AmeliproCallback/tests/__snapshots__/AmeliproCallback.spec.ts.snap +14 -3
  57. package/src/components/Amelipro/AmeliproCard/tests/__snapshots__/AmeliproCard.spec.ts.snap +9 -2
  58. package/src/components/Amelipro/AmeliproChips/tests/__snapshots__/AmeliproChips.spec.ts.snap +4 -1
  59. package/src/components/Amelipro/AmeliproDialog/tests/__snapshots__/AmeliproDialog.spec.ts.snap +9 -2
  60. package/src/components/Amelipro/AmeliproDisclosure/tests/__snapshots__/AmeliproDisclosure.spec.ts.snap +19 -3
  61. package/src/components/Amelipro/AmeliproFooter/tests/__snapshots__/AmeliproFooter.spec.ts.snap +35 -7
  62. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/tests/__snapshots__/AmeliproHeaderBrandSection.spec.ts.snap +1 -1
  63. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/tests/__snapshots__/AmeliproHeaderBar.spec.ts.snap +5 -2
  64. package/src/components/Amelipro/AmeliproHeader/tests/__snapshots__/AmeliproHeader.spec.ts.snap +130 -30
  65. package/src/components/Amelipro/AmeliproIconBtn/tests/__snapshots__/AmeliproIconBtn.spec.ts.snap +4 -1
  66. package/src/components/Amelipro/AmeliproIllustratedDataTile/tests/__snapshots__/AmeliproIllustratedDataTile.spec.ts.snap +4 -1
  67. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/tests/__snapshots__/AmeliproIllustratedRadioGroup.spec.ts.snap +25 -5
  68. package/src/components/Amelipro/AmeliproMailTile/tests/__snapshots__/AmeliproMailTile.spec.ts.snap +5 -1
  69. package/src/components/Amelipro/AmeliproMenu/tests/__snapshots__/AmeliproMenu.spec.ts.snap +77 -15
  70. package/src/components/Amelipro/AmeliproMessage/tests/__snapshots__/AmeliproMessage.spec.ts.snap +11 -2
  71. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproDropdownMenu/AmeliproDropdownMenuBtn/tests/__snapshots__/AmeliproDropdownMenuBtn.spec.ts.snap +5 -1
  72. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproDropdownMenu/tests/__snapshots__/AmeliproDropdownMenu.spec.ts.snap +25 -5
  73. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproMessagingMenuBtn/tests/__snapshots__/AmeliproMessagingMenuBtn.spec.ts.snap +10 -2
  74. package/src/components/Amelipro/AmeliproMessagingLayout/tests/__snapshots__/AmeliproMessagingLayout.spec.ts.snap +42 -8
  75. package/src/components/Amelipro/AmeliproMultipleFoldingCard/tests/__snapshots__/AmeliproMultipleFoldingCard.spec.ts.snap +13 -3
  76. package/src/components/Amelipro/AmeliproNumberedCard/tests/__snapshots__/AmeliproNumberedCard.spec.ts.snap +12 -3
  77. package/src/components/Amelipro/AmeliproPageLayout/tests/__snapshots__/AmeliproPageLayout.spec.ts.snap +195 -42
  78. package/src/components/Amelipro/AmeliproPagination/AmeliproPaginationBtn/tests/__snapshots__/AmeliproPaginationBtn.spec.ts.snap +5 -1
  79. package/src/components/Amelipro/AmeliproPagination/tests/__snapshots__/AmeliproPagination.spec.ts.snap +10 -2
  80. package/src/components/Amelipro/AmeliproPatientBanner/tests/__snapshots__/AmeliproPatientBanner.spec.ts.snap +26 -4
  81. package/src/components/Amelipro/AmeliproSelect/tests/__snapshots__/AmeliproSelect.spec.ts.snap +10 -11
  82. package/src/components/Amelipro/AmeliproStateTile/AmeliproStateTile.stories.ts +2 -0
  83. package/src/components/Amelipro/AmeliproStateTile/AmeliproStateTile.vue +11 -4
  84. package/src/components/Amelipro/AmeliproStateTile/AmeliproStateTileTypes.ts +5 -0
  85. package/src/components/Amelipro/AmeliproStateTile/tests/__snapshots__/AmeliproStateTile.spec.ts.snap +13 -2
  86. package/src/components/Amelipro/AmeliproStatus/tests/__snapshots__/AmeliproStatus.spec.ts.snap +5 -1
  87. package/src/components/Amelipro/AmeliproStepper/AmeliproStepBtn/tests/__snapshots__/AmeliproStepBtn.spec.ts.snap +7 -1
  88. package/src/components/Amelipro/AmeliproStepper/tests/__snapshots__/AmeliproStepper.spec.ts.snap +49 -7
  89. package/src/components/Amelipro/AmeliproTabs/AmeliproTabBtn/tests/__snapshots__/AmeliproTabBtn.spec.ts.snap +5 -1
  90. package/src/components/Amelipro/AmeliproTabs/tests/__snapshots__/AmeliproTabs.spec.ts.snap +21 -4
  91. package/src/components/Amelipro/AmeliproTextArea/__tests__/__snapshots__/AmeliproTextArea.spec.ts.snap +10 -11
  92. package/src/components/Amelipro/AmeliproTextField/tests/__snapshots__/AmeliproTextField.spec.ts.snap +10 -11
  93. package/src/components/Amelipro/AmeliproTileBtn/tests/__snapshots__/AmeliproTileBtn.spec.ts.snap +8 -1
  94. package/src/components/Amelipro/AmeliproTooltips/tests/__snapshots__/AmeliproTooltips.spec.ts.snap +11 -2
  95. package/src/components/Amelipro/AmeliproTransmission/tests/__snapshots__/AmeliproTransmission.spec.ts.snap +26 -5
  96. package/src/components/Amelipro/ServiceMenu/ServiceBtn/tests/__snapshots__/ServiceBtn.spec.ts.snap +9 -2
  97. package/src/components/Amelipro/ServiceMenu/ServiceList/tests/__snapshots__/ServiceList.spec.ts.snap +18 -4
  98. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/tests/__snapshots__/ServiceMenuContent.spec.ts.snap +69 -15
  99. package/src/components/Amelipro/ServiceMenu/tests/__snapshots__/ServiceMenu.spec.ts.snap +84 -19
  100. package/src/components/Amelipro/StructureMenu/StructureItem/tests/__snapshots__/StructureItem.spec.ts.snap +5 -1
  101. package/src/components/Amelipro/StructureMenu/StructureList/tests/__snapshots__/StructureList.spec.ts.snap +15 -4
  102. package/src/components/Amelipro/StructureMenu/StructureTabs/tests/__snapshots__/StructureTabs.spec.ts.snap +30 -8
  103. package/src/components/Amelipro/StructureMenu/tests/__snapshots__/StructureMenu.spec.ts.snap +72 -16
  104. package/src/components/Amelipro/UserMenu/tests/__snapshots__/UserMenu.spec.ts.snap +9 -2
  105. package/src/components/BackToTopBtn/tests/BackToTopBtn.spec.ts +53 -15
  106. package/src/components/BackToTopBtn/tests/__snapshots__/BackToTopBtn.spec.ts.snap +10 -2
  107. package/src/components/CollapsibleList/CollapsibleList.vue +5 -1
  108. package/src/components/CookieBanner/Accessibilite.stories.ts +4 -0
  109. package/src/components/CookieBanner/CookieBanner.vue +137 -10
  110. package/src/components/CookieBanner/config.ts +3 -0
  111. package/src/components/CookieBanner/tests/__snapshots__/CookieBanner.spec.ts.snap +49 -38
  112. package/src/components/CookiesSelection/CookiesInformation/CookiesInformation.vue +80 -2
  113. package/src/components/CookiesSelection/CookiesSelection.vue +15 -2
  114. package/src/components/CookiesSelection/tests/__snapshots__/CookiesSelection.spec.ts.snap +49 -34
  115. package/src/components/CopyBtn/tests/__snapshots__/CopyBtn.spec.ts.snap +1 -1
  116. package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/SelectBtnField.spec.ts.snap +58 -13
  117. package/src/components/Customs/Selects/SySelect/SySelect.vue +144 -147
  118. package/src/components/DatePicker/{DatePicker → CalendarMode}/DatePicker.stories.ts +3 -3
  119. package/src/components/DatePicker/{DatePicker → CalendarMode}/DatePicker.vue +4 -4
  120. package/src/components/DatePicker/{DatePicker → CalendarMode}/tests/DatePicker.events.spec.ts +1 -1
  121. package/src/components/DatePicker/{DatePicker → CalendarMode}/tests/DatePicker.spec.ts +4 -4
  122. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.mdx +1 -1
  123. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +3 -3
  124. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +6 -6
  125. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +3 -3
  126. package/src/components/DatePicker/DatePickerOverview.mdx +1 -1
  127. package/src/components/DatePicker/DatePickerValidationExample/DatePickerValidation.stories.ts +1 -1
  128. package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +76 -3
  129. package/src/components/DatePicker/DateTextInput/NoCalendar.mdx +1 -1
  130. package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +1 -1
  131. package/src/components/DatePicker/composables/index.ts +2 -2
  132. package/src/components/DatePicker/composables/tests/useDatePickerVisibility.spec.ts +14 -14
  133. package/src/components/DatePicker/composables/useDatePickerViewMode.ts +4 -4
  134. package/src/components/DatePicker/composables/useDatePickerVisibility.ts +12 -12
  135. package/src/components/DatePicker/composables/useDateSelection.ts +1 -1
  136. package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +3 -3
  137. package/src/components/DatePicker/composables/useTodayButton.ts +1 -1
  138. package/src/components/DatePicker/composables/useWeekendDays.ts +1 -1
  139. package/src/components/DatePicker/constants/messages.ts +1 -1
  140. package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +2 -2
  141. package/src/components/DatePicker/docExamples/DatePickerValidationExamples.vue +1 -1
  142. package/src/components/DatePicker/types.ts +2 -2
  143. package/src/components/DialogBox/tests/DialogBox.spec.ts +26 -4
  144. package/src/components/DialogBox/tests/__snapshots__/DialogBox.spec.ts.snap +13 -3
  145. package/src/components/DownloadBtn/tests/__snapshots__/DownloadBtn.spec.ts.snap +8 -2
  146. package/src/components/ErrorPage/tests/__snapshots__/ErrorPage.spec.ts.snap +18 -4
  147. package/src/components/ExternalLinks/Accessibilite.mdx +4 -1
  148. package/src/components/ExternalLinks/Accessibilite.stories.ts +34 -0
  149. package/src/components/ExternalLinks/ExternalLinks.stories.ts +1 -3
  150. package/src/components/ExternalLinks/ExternalLinks.vue +96 -41
  151. package/src/components/ExternalLinks/config.ts +5 -4
  152. package/src/components/ExternalLinks/locales.ts +1 -0
  153. package/src/components/ExternalLinks/tests/ExternalLinks.spec.ts +3 -3
  154. package/src/components/ExternalLinks/tests/__snapshots__/ExternalLinks.spec.ts.snap +510 -400
  155. package/src/components/FilterInline/tests/__snapshots__/FilterInline.spec.ts.snap +3 -3
  156. package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +15 -6
  157. package/src/components/FooterBar/Accessibilite.stories.ts +4 -0
  158. package/src/components/FooterBar/FooterBar.vue +9 -5
  159. package/src/components/FooterBar/tests/__snapshots__/FooterBar.spec.ts.snap +0 -5
  160. package/src/components/FranceConnectBtn/tests/__snapshots__/FranceConnectBtn.spec.ts.snap +15 -3
  161. package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/HeaderBurgerMenu.spec.ts.snap +5 -1
  162. package/src/components/HeaderBar/HeaderLogo/tests/HeaderLogo.spec.ts +31 -6
  163. package/src/components/HeaderBar/tests/__snapshots__/HeaderBar.spec.ts.snap +7 -1
  164. package/src/components/HeaderBar/tests/useHeaderResponsiveMode.spec.ts +63 -5
  165. package/src/components/NirField/NirField.vue +41 -1
  166. package/src/components/NirField/tests/NirField.spec.ts +2 -2
  167. package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +18 -4
  168. package/src/components/PeriodField/PeriodField.vue +3 -3
  169. package/src/components/RangeField/RangeSlider/tests/__snapshots__/rangeSlider.spec.ts.snap +12 -3
  170. package/src/components/RangeField/tests/__snapshots__/RangeField.spec.ts.snap +132 -111
  171. package/src/components/RatingPicker/EmotionPicker/tests/__snapshots__/EmotionPicker.spec.ts.snap +66 -31
  172. package/src/components/RatingPicker/NumberPicker/tests/__snapshots__/NumberPicker.spec.ts.snap +33 -33
  173. package/src/components/RatingPicker/StarsPicker/tests/__snapshots__/StarsPicker.spec.ts.snap +43 -23
  174. package/src/components/RatingPicker/tests/__snapshots__/RatingPicker.spec.ts.snap +33 -33
  175. package/src/components/SyAlert/tests/__snapshots__/SyAlert.spec.ts.snap +5 -1
  176. package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +107 -95
  177. package/src/components/Tables/SyServerTable/SyServerTable.vue +43 -2
  178. package/src/components/Tables/SyTable/SyTable.vue +45 -7
  179. package/src/components/Tables/common/SyTablePagination.vue +10 -6
  180. package/src/components/Tables/common/filters/DateFilter.vue +1 -1
  181. package/src/components/Tables/common/filters/SelectFilter.vue +1 -2
  182. package/src/components/Tables/common/filters/tests/DateFilter.spec.ts +2 -2
  183. package/src/components/Tables/common/locales.ts +7 -0
  184. package/src/components/Tables/common/useTableAria.ts +279 -0
  185. package/src/components/ToolbarContainer/ToolbarContainer.vue +4 -4
  186. package/src/components/UploadWorkflow/tests/__snapshots__/UploadWorkflow.spec.ts.snap +17 -5
  187. package/src/components/index.ts +1 -1
  188. package/src/composables/date/tests/useDatePickerAccessibility.spec.ts +1 -1
  189. package/src/composables/date/useDateInitialization.ts +1 -1
  190. package/src/composables/date/useDateInitializationDayjs.ts +1 -1
  191. package/src/composables/date/useDatePickerAccessibility.ts +5 -5
  192. package/src/composables/useFilterable/useFilterable.spec.ts +10 -2
  193. package/src/designTokens/utils/createFontVariables.ts +6 -6
  194. package/src/directives/Toolbar.ts +172 -0
  195. package/src/directives/letterSpacing.ts +233 -0
  196. package/src/stories/Accessibilite/Avancement/Avancement.mdx +6 -6
  197. package/src/stories/Accessibilite/Avancement/Avancement.stories.ts +10 -9
  198. package/src/utils/functions/throttleDisplayFn/tests/throttleDisplayFn.spec.ts +27 -2
  199. package/src/utils/rules/isHolidayDay/IsHolidayDay.stories.ts +2 -2
  200. package/dist/DateFilter-DFKfon7L.js +0 -98
  201. package/dist/NumberFilter-DmhIL2Pr.js +0 -121
  202. package/dist/PeriodFilter-C46V6bYN.js +0 -112
  203. package/dist/SelectFilter-B8dtHtHo.js +0 -136
  204. package/dist/TextFilter-COKGday2.js +0 -114
  205. package/src/components/FilterSideBar/tests/__snapshots__/FilterSideBar.spec.ts.snap +0 -173
  206. package/src/components/SocialMediaLinks/tests/__snapshots__/SocialMediaLinks.spec.ts.snap +0 -186
  207. /package/src/components/DatePicker/{DatePicker → CalendarMode}/DatePicker.mdx +0 -0
@@ -32,7 +32,11 @@ exports[`DialogBox > rendering and props > renders correctly with props 1`] = `
32
32
  v-theme--light
33
33
  "
34
34
  role="progressbar"
35
- style="top: 0px; height: 0px; --v-progress-linear-height: 2px;"
35
+ style="
36
+ top: 0px;
37
+ height: 0px;
38
+ --v-progress-linear-height: 2px;
39
+ "
36
40
  >
37
41
  <!---->
38
42
  <div
@@ -41,7 +45,10 @@ exports[`DialogBox > rendering and props > renders correctly with props 1`] = `
41
45
  ></div>
42
46
  <div
43
47
  class="v-progress-linear__buffer"
44
- style="opacity: NaN; width: 0%;"
48
+ style="
49
+ opacity: NaN;
50
+ width: 0%;
51
+ "
45
52
  ></div>
46
53
  <transition-stub
47
54
  appear="false"
@@ -96,7 +103,10 @@ exports[`DialogBox > rendering and props > renders correctly with props 1`] = `
96
103
  v-btn--variant-elevated
97
104
  v-theme--light
98
105
  "
99
- style="height: 32px; width: 32px;"
106
+ style="
107
+ height: 32px;
108
+ width: 32px;
109
+ "
100
110
  type="button"
101
111
  >
102
112
  <span class="v-btn__overlay"></span>
@@ -13,7 +13,10 @@ exports[`DownloadBtn > renders correctly 1`] = `
13
13
  v-btn--variant-outlined
14
14
  v-theme--light
15
15
  "
16
- style="height: auto; min-height: 36px;"
16
+ style="
17
+ height: auto;
18
+ min-height: 36px;
19
+ "
17
20
  type="button"
18
21
  >
19
22
  <span class="v-btn__overlay"></span>
@@ -55,7 +58,10 @@ exports[`DownloadBtn > with slots 1`] = `
55
58
  v-btn--variant-outlined
56
59
  v-theme--light
57
60
  "
58
- style="height: auto; min-height: 36px;"
61
+ style="
62
+ height: auto;
63
+ min-height: 36px;
64
+ "
59
65
  type="button"
60
66
  >
61
67
  <span class="v-btn__overlay"></span>
@@ -37,7 +37,11 @@ exports[`ErrorPage > renders correctly 1`] = `
37
37
  v-theme--light
38
38
  "
39
39
  role="progressbar"
40
- style="top: 0px; height: 0px; --v-progress-linear-height: 2px;"
40
+ style="
41
+ top: 0px;
42
+ height: 0px;
43
+ --v-progress-linear-height: 2px;
44
+ "
41
45
  >
42
46
  <!---->
43
47
  <div
@@ -46,7 +50,10 @@ exports[`ErrorPage > renders correctly 1`] = `
46
50
  ></div>
47
51
  <div
48
52
  class="v-progress-linear__buffer"
49
- style="opacity: NaN; width: 0%;"
53
+ style="
54
+ opacity: NaN;
55
+ width: 0%;
56
+ "
50
57
  ></div>
51
58
  <transition-stub
52
59
  appear="false"
@@ -147,7 +154,11 @@ exports[`ErrorPage > renders correctly with undefined route 1`] = `
147
154
  v-theme--light
148
155
  "
149
156
  role="progressbar"
150
- style="top: 0px; height: 0px; --v-progress-linear-height: 2px;"
157
+ style="
158
+ top: 0px;
159
+ height: 0px;
160
+ --v-progress-linear-height: 2px;
161
+ "
151
162
  >
152
163
  <!---->
153
164
  <div
@@ -156,7 +167,10 @@ exports[`ErrorPage > renders correctly with undefined route 1`] = `
156
167
  ></div>
157
168
  <div
158
169
  class="v-progress-linear__buffer"
159
- style="opacity: NaN; width: 0%;"
170
+ style="
171
+ opacity: NaN;
172
+ width: 0%;
173
+ "
160
174
  ></div>
161
175
  <transition-stub
162
176
  appear="false"
@@ -8,7 +8,10 @@ Accessibilité
8
8
  <Story of={AccessStories.Legende} />
9
9
  <br />
10
10
 
11
+
11
12
  --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
12
13
 
13
14
  <Story of={AccessStories.AccessibilitePanel} />
14
- <br />
15
+ <br />
16
+
17
+ <Story of={AccessStories.TanaguruFalsePositives} />
@@ -2,6 +2,7 @@ import { VExpansionPanels, VExpansionPanel, VExpansionPanelTitle, VExpansionPane
2
2
  import type { StoryObj } from '@storybook/vue3'
3
3
  import { AccessibiliteItemsIndeterminate, AccessibiliteItemsValidated } from './AccessibiliteItems'
4
4
  import { mdiCheckboxMarkedCircle, mdiLink, mdiEye } from '@mdi/js'
5
+ import SyAlert from '../SyAlert/SyAlert.vue'
5
6
 
6
7
  const checkIcon = mdiCheckboxMarkedCircle
7
8
  const iconEye = mdiEye
@@ -183,9 +184,42 @@ export const Legende: StoryObj = {
183
184
  Problèmes relevés par Tanaguru
184
185
  </div>
185
186
  </div>
187
+ <div class="mt-4">
188
+ <p>Rapport d’audit manuel : <a href="/audits/ExternalLinks.xlsx" style="color:#0C41BD;">Voir le
189
+ rapport</a></p>
190
+ <p style="color: grey; font-size: 14px">Correctifs associés (<a
191
+ href="https://github.com/assurance-maladie-digital/design-system-v3/issues/808" target="_blank"
192
+ style="color:#0C41BD;"
193
+ >issue #652</a>)</p>
194
+ </div>
186
195
  </div>
187
196
  `,
188
197
  }
189
198
  },
190
199
  tags: ['!dev'],
191
200
  }
201
+
202
+ export const TanaguruFalsePositives: StoryObj = {
203
+ render: (args) => {
204
+ return {
205
+ components: { SyAlert },
206
+ setup() {
207
+ return { args }
208
+ },
209
+ template: `
210
+ <SyAlert
211
+ type="warning"
212
+ >
213
+ L'outil Tanaguru remonte l'erreur suivante sur ce composant : <br />
214
+ <cite>
215
+ Interactive elements non reachable with keyboard navigation
216
+ </cite>
217
+ <br />
218
+ Tanaguru se basant sur le markup HTML, il n'est pas en mesure de détecter les éléments rendus interactifs par l'usage de JavaScript.<br>
219
+ Les éléments de ce composant sont bien accessibles au clavier, l'erreur est donc considérée comme un faux positif et peut être ignorée sans impact sur l'audit d'accessibilité.
220
+ </SyAlert>
221
+ `,
222
+ }
223
+ },
224
+ tags: ['!dev'],
225
+ }
@@ -125,7 +125,7 @@ const meta = {
125
125
  tile: true,
126
126
  minHeight: '48px',
127
127
  minWidth: '328px',
128
- color: cnamColorsTokens.blue.lighten20,
128
+ color: cnamColorsTokens.blue.base,
129
129
  class: 'd-flex px-3',
130
130
  },
131
131
  btnIcon: {
@@ -135,8 +135,6 @@ const meta = {
135
135
  color: 'rgba(0, 0, 0, .54)',
136
136
  },
137
137
  list: {
138
- border: false,
139
- elevation: 0,
140
138
  class: 'py-0',
141
139
  },
142
140
  listItem: {
@@ -6,10 +6,12 @@
6
6
  } from '@mdi/js'
7
7
 
8
8
  import { locales } from './locales'
9
- import { computed, ref, type CSSProperties } from 'vue'
9
+ import { computed, ref, watch, nextTick, type CSSProperties, useId } from 'vue'
10
10
  import { convertToUnit } from '@/utils/convertToUnit'
11
11
  import useCustomizableOptions, { type CustomizableOptions } from '@/composables/useCustomizableOptions'
12
12
  import { config } from './config'
13
+ import { vToolbar } from '@/directives/Toolbar'
14
+ import SyIcon from '../Customs/SyIcon/SyIcon.vue'
13
15
 
14
16
  const props = withDefaults(defineProps<CustomizableOptions & {
15
17
  items: Array<{
@@ -22,15 +24,13 @@
22
24
  nudgeBottom?: number | string
23
25
  fixed?: boolean
24
26
  ariaLabel?: string
25
- ariaOwns?: string
26
27
  }>(), {
27
28
  position: 'top left',
28
29
  btnText: locales.btnText,
29
30
  nudgeTop: 0,
30
31
  nudgeBottom: 0,
31
32
  fixed: false,
32
- ariaLabel: 'external-link-btn',
33
- ariaOwns: 'external-link-btn',
33
+ ariaLabel: locales.ariaLabel,
34
34
  })
35
35
 
36
36
  const options = useCustomizableOptions(config, props)
@@ -38,6 +38,7 @@
38
38
  const menu = ref(false)
39
39
  const hover = ref(false)
40
40
  const open = computed(() => menu.value || hover.value)
41
+ const menuId = `sy-external-links-menu-${useId()}`
41
42
 
42
43
  const left = computed(() => props.position.includes('left'))
43
44
  const top = computed(() => props.position.includes('top'))
@@ -67,23 +68,31 @@
67
68
  }
68
69
  return left.value ? rightArrowIcon : leftArrowIcon
69
70
  })
71
+
72
+ const list = ref<HTMLElement | null>(null)
73
+
74
+ watch(menu, async (newValue) => {
75
+ if (newValue) {
76
+ await nextTick()
77
+ const firstItem = list.value?.querySelector<HTMLElement>('li a')
78
+ firstItem?.focus()
79
+ }
80
+ })
70
81
  </script>
71
82
 
72
83
  <template>
73
- <div
74
- :id="props.ariaOwns"
75
- >
84
+ <div>
76
85
  <VMenu
86
+ :id="menuId"
77
87
  v-bind="options.menu"
78
- :id="props.ariaOwns"
79
88
  v-model="menu"
80
89
  :location="top ? 'bottom' : 'top'"
81
90
  attach
82
91
  transition="fade-transition"
83
- class="vd-external-links"
92
+ class="sy-external-links"
84
93
  :class="{
85
- 'vd-external-links--left': left,
86
- 'vd-external-links--right': !left,
94
+ 'sy-external-links--left': left,
95
+ 'sy-external-links--right': !left,
87
96
  }"
88
97
  >
89
98
  <template #activator="{ props: vMenuProps }">
@@ -93,9 +102,9 @@
93
102
  ...options.btn,
94
103
  }"
95
104
  :aria-label="props.ariaLabel"
96
- :aria-owns="props.ariaOwns"
105
+ :aria-controls="menu ? menuId : undefined"
97
106
  :style="btnStyle"
98
- class="vd-external-links-btn"
107
+ class="sy-external-links-btn"
99
108
  @mouseenter="hover = true"
100
109
  @mouseleave="hover = false"
101
110
  @focusin="hover = true"
@@ -106,41 +115,54 @@
106
115
  'ml-3': !left,
107
116
  'mr-3': left,
108
117
  }"
109
- class="vd-external-links-btn-text white--text"
118
+ class="sy-external-links-btn-text white--text"
110
119
  >
111
120
  {{ btnText }}
112
121
  </span>
113
122
 
114
- <VIcon v-bind="options.btnIcon">
115
- {{ arrowIcon }}
116
- </VIcon>
123
+ <SyIcon
124
+ v-bind="options.btnIcon"
125
+ :icon="arrowIcon"
126
+ decorative
127
+ />
117
128
  </VBtn>
118
129
  </template>
119
130
 
120
- <VList
131
+ <ul
121
132
  v-if="items.length"
122
133
  v-bind="options.list"
123
- class="vd-external-links-list"
134
+ ref="list"
135
+ v-toolbar
136
+ class="sy-external-links-list elevation-3"
124
137
  >
125
- <VListItem
138
+ <li
126
139
  v-for="(item, index) in items"
127
140
  :key="index"
128
- :href="item.href"
129
- v-bind="options.listItem"
130
141
  >
131
- <div class="d-flex flex-row justify-space-between">
132
- <VListItemTitle v-bind="options.listItemTitle">
133
- {{ item.text }}
134
- </VListItemTitle>
135
-
136
- <slot name="link-icon">
137
- <VIcon v-bind="options.linkIcon">
138
- {{ linkIcon }}
139
- </VIcon>
140
- </slot>
141
- </div>
142
- </VListItem>
143
- </VList>
142
+ <VBtn
143
+ :href="item.href"
144
+ block
145
+ class="sy-external-links-list-item py-2"
146
+ v-bind="options.listItem"
147
+ >
148
+ <div
149
+ class="w-100 h-100 d-flex justify-space-between align-center"
150
+ >
151
+ <div v-bind="options.listItemTitle">
152
+ {{ item.text }}
153
+ </div>
154
+
155
+ <slot name="link-icon">
156
+ <SyIcon
157
+ v-bind="options.linkIcon"
158
+ :icon="linkIcon"
159
+ decorative
160
+ />
161
+ </slot>
162
+ </div>
163
+ </VBtn>
164
+ </li>
165
+ </ul>
144
166
 
145
167
  <VSheet
146
168
  v-else
@@ -157,9 +179,10 @@
157
179
  <style lang="scss" scoped>
158
180
  $list-max-height: 248px;
159
181
 
160
- .vd-external-links-btn {
182
+ .sy-external-links-btn {
161
183
  // Allow overgrow on mobile
162
184
  max-width: none;
185
+ border-radius: 0 !important;
163
186
 
164
187
  :deep(.v-btn__content) {
165
188
  flex-direction: inherit;
@@ -172,28 +195,60 @@ $list-max-height: 248px;
172
195
  }
173
196
  }
174
197
 
175
- .vd-external-links--left :deep(.v-overlay__content) {
198
+ .sy-external-links--left :deep(.v-overlay__content) {
176
199
  left: 0 !important;
177
200
  right: auto !important;
178
201
  }
179
202
 
180
- .vd-external-links--right :deep(.v-overlay__content) {
203
+ .sy-external-links--right :deep(.v-overlay__content) {
181
204
  right: 0 !important;
182
205
  left: auto !important;
183
206
  }
184
207
 
185
- .vd-external-links > :deep(.v-overlay__content) {
208
+ .sy-external-links > :deep(.v-overlay__content) {
186
209
  border-radius: 0;
187
210
  }
188
211
 
189
- .vd-external-links-list {
212
+ .sy-external-links-list {
190
213
  max-height: $list-max-height;
191
214
  overflow-y: auto;
192
215
  border-radius: 0;
216
+ background-color: white;
217
+ box-shadow:
218
+ 0 5px 5px -3px var(--v-shadow-key-umbra-opacity, rgb(0 0 0 / 20%)),
219
+ 0 8px 10px 1px var(--v-shadow-key-penumbra-opacity, rgb(0 0 0 / 14%)),
220
+ 0 3px 14px 2px var(--v-shadow-key-ambient-opacity, rgb(0 0 0 / 12%));
221
+ }
222
+
223
+ .sy-external-links-list-item {
224
+ padding-block: 4px !important;
225
+ height: 48px !important;
226
+ border-radius: 0 !important;
227
+
228
+ &:focus-visible {
229
+ outline: 0;
230
+
231
+ :deep(.v-btn__overlay) {
232
+ background-color: transparent !important;
233
+ display: none !important;
234
+ }
235
+
236
+ &::after {
237
+ opacity: 1;
238
+ border: 2px solid rgb(var(--v-theme-primary));
239
+ }
240
+ }
241
+ }
242
+
243
+ .sy-external-links-list-item :deep(.v-btn__content) {
244
+ width: 100%;
245
+ font-size: 1rem;
246
+ font-weight: 400;
247
+ letter-spacing: 0.0094em;
193
248
  }
194
249
 
195
250
  @media only screen and (height <= 340px) {
196
- .vd-external-links-btn {
251
+ .sy-external-links-btn {
197
252
  z-index: 4 !important;
198
253
  }
199
254
  }
@@ -2,7 +2,6 @@ import { cnamColorsTokens } from '@/designTokens/tokens/cnam/cnamColors'
2
2
 
3
3
  export const config = {
4
4
  menu: {
5
- tile: true,
6
5
  zIndex: 4,
7
6
  offset: 0,
8
7
  },
@@ -10,23 +9,25 @@ export const config = {
10
9
  tile: true,
11
10
  minHeight: '48px',
12
11
  minWidth: '328px',
13
- color: cnamColorsTokens.blue.lighten20,
12
+ color: cnamColorsTokens.blue.base,
14
13
  class: 'd-flex px-3',
15
14
  },
16
15
  btnIcon: {
17
16
  color: 'white',
18
17
  },
19
18
  linkIcon: {
19
+ size: 'large',
20
20
  color: 'rgba(0, 0, 0, .54)',
21
21
  },
22
22
  list: {
23
- border: false,
24
- elevation: 3,
25
23
  class: 'py-0',
26
24
  },
27
25
  listItem: {
28
26
  target: '_blank',
29
27
  rel: 'noopener noreferrer',
28
+ flat: true,
29
+ rounded: 0,
30
+ size: 'large',
30
31
  },
31
32
  sheet: {
32
33
  class: 'px-4 py-3',
@@ -1,4 +1,5 @@
1
1
  export const locales = {
2
+ ariaLabel: 'Menu : Consulter les données externes',
2
3
  noData: 'Pas de données.',
3
4
  btnText: 'Consulter les données externes',
4
5
  }
@@ -62,9 +62,9 @@ describe('ExternalLinks', () => {
62
62
  })
63
63
 
64
64
  const button = wrapper.find('button')
65
- expect(wrapper.find('.vd-external-links-list').exists()).toBe(false)
65
+ expect(wrapper.find('.sy-external-links-list').exists()).toBe(false)
66
66
  await button.trigger('click')
67
- expect(wrapper.find('.vd-external-links-list').exists()).toBe(true)
67
+ expect(wrapper.find('.sy-external-links-list').exists()).toBe(true)
68
68
  expect(wrapper.html()).toMatchSnapshot()
69
69
  })
70
70
 
@@ -114,7 +114,7 @@ describe('ExternalLinks', () => {
114
114
  await button.trigger('click')
115
115
 
116
116
  expect(wrapper.html()).toMatchSnapshot()
117
- expect(wrapper.find('.vd-external-links-btn').attributes('style')).toContain('position: fixed;')
117
+ expect(wrapper.find('.sy-external-links-btn').attributes('style')).toContain('position: fixed;')
118
118
  })
119
119
 
120
120
  it('slides on hover or focus', async () => {