@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
@@ -22,7 +22,11 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
22
22
  v-theme--light
23
23
  "
24
24
  role="progressbar"
25
- style="top: 0px; height: 0px; --v-progress-linear-height: 2px;"
25
+ style="
26
+ top: 0px;
27
+ height: 0px;
28
+ --v-progress-linear-height: 2px;
29
+ "
26
30
  >
27
31
  <!---->
28
32
  <div
@@ -31,7 +35,10 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
31
35
  ></div>
32
36
  <div
33
37
  class="v-progress-linear__buffer"
34
- style="opacity: NaN; width: 0%;"
38
+ style="
39
+ opacity: NaN;
40
+ width: 0%;
41
+ "
35
42
  ></div>
36
43
  <transition-stub
37
44
  appear="false"
@@ -217,6 +224,14 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
217
224
  <!---->
218
225
  </div>
219
226
  </details>
227
+ <div
228
+ aria-level="3"
229
+ class="vd-cookies-information__heading"
230
+ id="radio-group-essentials"
231
+ role="heading"
232
+ >
233
+ Accepter les cookies de type Cookies requis, ce champ est requis.
234
+ </div>
220
235
  <!-- v-if -->
221
236
  </div>
222
237
  <div class="
@@ -303,6 +318,14 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
303
318
  <!---->
304
319
  </div>
305
320
  </details>
321
+ <div
322
+ aria-level="3"
323
+ class="vd-cookies-information__heading"
324
+ id="radio-group-functional"
325
+ role="heading"
326
+ >
327
+ Accepter les cookies de type Cookies fonctionnels, ce champ est requis.
328
+ </div>
306
329
  <div class="
307
330
  v-input
308
331
  v-input--center-affix
@@ -315,21 +338,13 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
315
338
  ">
316
339
  <!---->
317
340
  <div class="v-input__control">
318
- <label
319
- class="v-label"
320
- id="radio-group-7"
321
- >
322
- <!---->
323
- Accepter les cookies de type Cookies fonctionnels, ce champ est requis.
324
- </label>
341
+ <!---->
325
342
  <div
326
- aria-describedby="radio-group-7-messages"
327
- aria-labelledby="radio-group-7"
343
+ aria-required="true"
328
344
  class="
329
345
  v-selection-control-group
330
346
  v-selection-control-group--inline
331
347
  "
332
- label="Accepter les cookies de type Cookies fonctionnels, ce champ est requis."
333
348
  role="radiogroup"
334
349
  >
335
350
  <div class="v-spacer"></div>
@@ -354,10 +369,9 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
354
369
  "
355
370
  ></i>
356
371
  <input
357
- aria-disabled="false"
358
372
  aria-label="Refuser"
359
- id="input-10"
360
- name="radio-group-7"
373
+ id="input-v-10"
374
+ name="radio-group-v-7"
361
375
  type="radio"
362
376
  value="reject"
363
377
  />
@@ -368,7 +382,7 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
368
382
  v-label
369
383
  v-label--clickable
370
384
  "
371
- for="input-10"
385
+ for="input-v-10"
372
386
  >
373
387
  <!---->
374
388
  Refuser
@@ -396,10 +410,9 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
396
410
  "
397
411
  ></i>
398
412
  <input
399
- aria-disabled="false"
400
413
  aria-label="Accepter"
401
- id="input-11"
402
- name="radio-group-7"
414
+ id="input-v-11"
415
+ name="radio-group-v-7"
403
416
  type="radio"
404
417
  value="accept"
405
418
  />
@@ -410,7 +423,7 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
410
423
  v-label
411
424
  v-label--clickable
412
425
  "
413
- for="input-11"
426
+ for="input-v-11"
414
427
  >
415
428
  <!---->
416
429
  Accepter
@@ -506,6 +519,14 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
506
519
  <!---->
507
520
  </div>
508
521
  </details>
522
+ <div
523
+ aria-level="3"
524
+ class="vd-cookies-information__heading"
525
+ id="radio-group-analytics"
526
+ role="heading"
527
+ >
528
+ Accepter les cookies de type Cookies d’analyse, ce champ est requis.
529
+ </div>
509
530
  <div class="
510
531
  v-input
511
532
  v-input--center-affix
@@ -518,21 +539,13 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
518
539
  ">
519
540
  <!---->
520
541
  <div class="v-input__control">
521
- <label
522
- class="v-label"
523
- id="radio-group-12"
524
- >
525
- <!---->
526
- Accepter les cookies de type Cookies d’analyse, ce champ est requis.
527
- </label>
542
+ <!---->
528
543
  <div
529
- aria-describedby="radio-group-12-messages"
530
- aria-labelledby="radio-group-12"
544
+ aria-required="true"
531
545
  class="
532
546
  v-selection-control-group
533
547
  v-selection-control-group--inline
534
548
  "
535
- label="Accepter les cookies de type Cookies d’analyse, ce champ est requis."
536
549
  role="radiogroup"
537
550
  >
538
551
  <div class="v-spacer"></div>
@@ -557,10 +570,9 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
557
570
  "
558
571
  ></i>
559
572
  <input
560
- aria-disabled="false"
561
573
  aria-label="Refuser"
562
- id="input-15"
563
- name="radio-group-12"
574
+ id="input-v-15"
575
+ name="radio-group-v-12"
564
576
  type="radio"
565
577
  value="reject"
566
578
  />
@@ -571,7 +583,7 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
571
583
  v-label
572
584
  v-label--clickable
573
585
  "
574
- for="input-15"
586
+ for="input-v-15"
575
587
  >
576
588
  <!---->
577
589
  Refuser
@@ -599,10 +611,9 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
599
611
  "
600
612
  ></i>
601
613
  <input
602
- aria-disabled="false"
603
614
  aria-label="Accepter"
604
- id="input-16"
605
- name="radio-group-12"
615
+ id="input-v-16"
616
+ name="radio-group-v-12"
606
617
  type="radio"
607
618
  value="accept"
608
619
  />
@@ -613,7 +624,7 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
613
624
  v-label
614
625
  v-label--clickable
615
626
  "
616
- for="input-16"
627
+ for="input-v-16"
617
628
  >
618
629
  <!---->
619
630
  Accepter
@@ -1,7 +1,8 @@
1
1
  <script setup lang="ts">
2
2
  import { isRequired } from '@/utils/rules/isRequired'
3
+ import type { VRadio, VRadioGroup } from 'vuetify/components'
3
4
  import { mdiChevronDown, mdiChevronUp } from '@mdi/js'
4
- import { computed, ref } from 'vue'
5
+ import { computed, ref, nextTick, onMounted } from 'vue'
5
6
  import CookiesTable from '../CookiesTable/CookiesTable.vue'
6
7
  import type { CookieTypes, Cookie } from '../types'
7
8
  import { locales } from './locales'
@@ -27,6 +28,66 @@
27
28
  function toggleDetails(event: ToggleEvent): void {
28
29
  open.value = event.newState === 'open'
29
30
  }
31
+
32
+ const rejectRadioRef = ref<VRadio | null>(null)
33
+ const acceptRadioRef = ref<VRadio | null>(null)
34
+ const radioGroupRef = ref<VRadioGroup | null>(null)
35
+
36
+ // Fonction pour supprimer les attributs aria-disabled des composants radio
37
+ const removeAriaDisabled = (radioRef: typeof rejectRadioRef) => {
38
+ if (!radioRef.value?.$el) return
39
+
40
+ // Chercher l'élément input dans le composant radio
41
+ const radioElement = radioRef.value.$el
42
+
43
+ // Supprimer l'attribut aria-disabled du composant lui-même
44
+ radioElement.removeAttribute('aria-disabled')
45
+
46
+ // Chercher et supprimer l'attribut aria-disabled des éléments enfants (input, label, etc.)
47
+ const elements = radioElement.querySelectorAll('[aria-disabled]')
48
+ elements.forEach(el => el.removeAttribute('aria-disabled'))
49
+ }
50
+
51
+ const removeAriaDescribedby = (radioGrpRef: typeof radioGroupRef) => {
52
+ if (!radioGrpRef.value?.$el) return
53
+
54
+ // Chercher l'élément input dans le composant radio
55
+ const radioElement = radioGrpRef.value.$el
56
+
57
+ // Supprimer l'attribut aria-disabled du composant lui-même
58
+ radioElement.removeAttribute('aria-describedby')
59
+
60
+ // Chercher et supprimer l'attribut aria-disabled des éléments enfants (input, label, etc.)
61
+ const elements = radioElement.querySelectorAll('[aria-describedby]')
62
+ elements.forEach(el => el.removeAttribute('aria-describedby'))
63
+ }
64
+
65
+ onMounted(() => {
66
+ nextTick(() => {
67
+ // Supprimer les attributs aria-disabled initiaux
68
+ removeAriaDisabled(rejectRadioRef)
69
+ removeAriaDisabled(acceptRadioRef)
70
+ removeAriaDescribedby(radioGroupRef)
71
+
72
+ // Observer les changements DOM pour supprimer aria-disabled s'il est ajouté dynamiquement
73
+ const observer = new MutationObserver(() => {
74
+ removeAriaDisabled(rejectRadioRef)
75
+ removeAriaDisabled(acceptRadioRef)
76
+ removeAriaDescribedby(radioGroupRef)
77
+ })
78
+
79
+ // Observer les deux boutons radio
80
+ if (rejectRadioRef.value?.$el) {
81
+ observer.observe(rejectRadioRef.value.$el, { attributes: true, subtree: true, childList: true })
82
+ }
83
+ if (acceptRadioRef.value?.$el) {
84
+ observer.observe(acceptRadioRef.value.$el, { attributes: true, subtree: true, childList: true })
85
+ }
86
+ if (radioGroupRef.value?.$el) {
87
+ observer.observe(radioGroupRef.value.$el, { attributes: true, subtree: true, childList: true })
88
+ }
89
+ })
90
+ })
30
91
  </script>
31
92
 
32
93
  <template>
@@ -67,13 +128,23 @@
67
128
  </CookiesTable>
68
129
  </details>
69
130
 
131
+ <div
132
+ :id="`radio-group-${type}`"
133
+ role="heading"
134
+ aria-level="3"
135
+ class="vd-cookies-information__heading"
136
+ >
137
+ {{ locales.fieldLabel(locales[type].title) }}
138
+ </div>
139
+
70
140
  <VRadioGroup
71
141
  v-if="type !== 'essentials'"
142
+ ref="radioGroupRef"
72
143
  :model-value="parsedValue"
73
144
  :rules="[isRequired]"
74
145
  data-test-id="radio-group"
146
+ aria-required="true"
75
147
  inline
76
- :label="locales.fieldLabel(locales[type].title)"
77
148
  hide-details="auto"
78
149
  class="vd-cookies-information__radio-group"
79
150
  @update:model-value="status = $event === 'accept'"
@@ -81,12 +152,14 @@
81
152
  <VSpacer />
82
153
 
83
154
  <VRadio
155
+ ref="rejectRadioRef"
84
156
  :label="locales.reject"
85
157
  :value="'reject'"
86
158
  color="primary"
87
159
  />
88
160
 
89
161
  <VRadio
162
+ ref="acceptRadioRef"
90
163
  :label="locales.accept"
91
164
  :value="'accept'"
92
165
  class="mr-0"
@@ -110,6 +183,11 @@ details > summary {
110
183
  }
111
184
  }
112
185
 
186
+ .vd-cookies-information__heading {
187
+ text-align: end;
188
+ opacity: var(--v-medium-emphasis-opacity);
189
+ }
190
+
113
191
  .vd-cookies-information__radio-group {
114
192
  margin-top: 0;
115
193
 
@@ -1,6 +1,6 @@
1
1
  <script setup lang="ts">
2
- import { computed, ref } from 'vue'
3
- import type { VForm } from 'vuetify/components'
2
+ import { computed, ref, onMounted, nextTick } from 'vue'
3
+ import type { VForm, VBtn } from 'vuetify/components'
4
4
  import CookiesInformation from './CookiesInformation/CookiesInformation.vue'
5
5
  import { locales } from './locales'
6
6
  import type { CookieTypes, CookiesItems, Preferences } from './types'
@@ -21,6 +21,18 @@
21
21
  analytics: undefined,
22
22
  })
23
23
 
24
+ const submitBtnRef = ref<VBtn | null>(null)
25
+
26
+ // Mettre le focus sur le bouton de soumission lorsque le composant est monté
27
+ onMounted(() => {
28
+ nextTick(() => {
29
+ // Accéder à l'élément DOM réel via $el
30
+ if (submitBtnRef.value?.$el instanceof HTMLElement) {
31
+ submitBtnRef.value.$el.focus()
32
+ }
33
+ })
34
+ })
35
+
24
36
  const filteredPreferences = computed(() => {
25
37
  const filtered: Partial<Preferences> = {}
26
38
 
@@ -115,6 +127,7 @@
115
127
  <VSpacer />
116
128
 
117
129
  <VBtn
130
+ ref="submitBtnRef"
118
131
  data-test-id="submit"
119
132
  color="primary"
120
133
  @click="submitForm"
@@ -22,7 +22,11 @@ exports[`CookiesSelection > renders correctly 1`] = `
22
22
  v-theme--light
23
23
  "
24
24
  role="progressbar"
25
- style="top: 0px; height: 0px; --v-progress-linear-height: 2px;"
25
+ style="
26
+ top: 0px;
27
+ height: 0px;
28
+ --v-progress-linear-height: 2px;
29
+ "
26
30
  >
27
31
  <!---->
28
32
  <div
@@ -31,7 +35,10 @@ exports[`CookiesSelection > renders correctly 1`] = `
31
35
  ></div>
32
36
  <div
33
37
  class="v-progress-linear__buffer"
34
- style="opacity: NaN; width: 0%;"
38
+ style="
39
+ opacity: NaN;
40
+ width: 0%;
41
+ "
35
42
  ></div>
36
43
  <transition-stub
37
44
  appear="false"
@@ -217,6 +224,14 @@ exports[`CookiesSelection > renders correctly 1`] = `
217
224
  <!---->
218
225
  </div>
219
226
  </details>
227
+ <div
228
+ aria-level="3"
229
+ class="vd-cookies-information__heading"
230
+ id="radio-group-essentials"
231
+ role="heading"
232
+ >
233
+ Accepter les cookies de type Cookies requis, ce champ est requis.
234
+ </div>
220
235
  <!-- v-if -->
221
236
  </div>
222
237
  <div class="
@@ -303,6 +318,14 @@ exports[`CookiesSelection > renders correctly 1`] = `
303
318
  <!---->
304
319
  </div>
305
320
  </details>
321
+ <div
322
+ aria-level="3"
323
+ class="vd-cookies-information__heading"
324
+ id="radio-group-functional"
325
+ role="heading"
326
+ >
327
+ Accepter les cookies de type Cookies fonctionnels, ce champ est requis.
328
+ </div>
306
329
  <div class="
307
330
  v-input
308
331
  v-input--center-affix
@@ -315,21 +338,13 @@ exports[`CookiesSelection > renders correctly 1`] = `
315
338
  ">
316
339
  <!---->
317
340
  <div class="v-input__control">
318
- <label
319
- class="v-label"
320
- id="radio-group-2"
321
- >
322
- <!---->
323
- Accepter les cookies de type Cookies fonctionnels, ce champ est requis.
324
- </label>
341
+ <!---->
325
342
  <div
326
- aria-describedby="radio-group-2-messages"
327
- aria-labelledby="radio-group-2"
343
+ aria-required="true"
328
344
  class="
329
345
  v-selection-control-group
330
346
  v-selection-control-group--inline
331
347
  "
332
- label="Accepter les cookies de type Cookies fonctionnels, ce champ est requis."
333
348
  role="radiogroup"
334
349
  >
335
350
  <div class="v-spacer"></div>
@@ -356,8 +371,8 @@ exports[`CookiesSelection > renders correctly 1`] = `
356
371
  <input
357
372
  aria-disabled="false"
358
373
  aria-label="Refuser"
359
- id="input-5"
360
- name="radio-group-2"
374
+ id="input-v-5"
375
+ name="radio-group-v-2"
361
376
  type="radio"
362
377
  value="reject"
363
378
  />
@@ -368,7 +383,7 @@ exports[`CookiesSelection > renders correctly 1`] = `
368
383
  v-label
369
384
  v-label--clickable
370
385
  "
371
- for="input-5"
386
+ for="input-v-5"
372
387
  >
373
388
  <!---->
374
389
  Refuser
@@ -398,8 +413,8 @@ exports[`CookiesSelection > renders correctly 1`] = `
398
413
  <input
399
414
  aria-disabled="false"
400
415
  aria-label="Accepter"
401
- id="input-6"
402
- name="radio-group-2"
416
+ id="input-v-6"
417
+ name="radio-group-v-2"
403
418
  type="radio"
404
419
  value="accept"
405
420
  />
@@ -410,7 +425,7 @@ exports[`CookiesSelection > renders correctly 1`] = `
410
425
  v-label
411
426
  v-label--clickable
412
427
  "
413
- for="input-6"
428
+ for="input-v-6"
414
429
  >
415
430
  <!---->
416
431
  Accepter
@@ -506,6 +521,14 @@ exports[`CookiesSelection > renders correctly 1`] = `
506
521
  <!---->
507
522
  </div>
508
523
  </details>
524
+ <div
525
+ aria-level="3"
526
+ class="vd-cookies-information__heading"
527
+ id="radio-group-analytics"
528
+ role="heading"
529
+ >
530
+ Accepter les cookies de type Cookies d’analyse, ce champ est requis.
531
+ </div>
509
532
  <div class="
510
533
  v-input
511
534
  v-input--center-affix
@@ -518,21 +541,13 @@ exports[`CookiesSelection > renders correctly 1`] = `
518
541
  ">
519
542
  <!---->
520
543
  <div class="v-input__control">
521
- <label
522
- class="v-label"
523
- id="radio-group-7"
524
- >
525
- <!---->
526
- Accepter les cookies de type Cookies d’analyse, ce champ est requis.
527
- </label>
544
+ <!---->
528
545
  <div
529
- aria-describedby="radio-group-7-messages"
530
- aria-labelledby="radio-group-7"
546
+ aria-required="true"
531
547
  class="
532
548
  v-selection-control-group
533
549
  v-selection-control-group--inline
534
550
  "
535
- label="Accepter les cookies de type Cookies d’analyse, ce champ est requis."
536
551
  role="radiogroup"
537
552
  >
538
553
  <div class="v-spacer"></div>
@@ -559,8 +574,8 @@ exports[`CookiesSelection > renders correctly 1`] = `
559
574
  <input
560
575
  aria-disabled="false"
561
576
  aria-label="Refuser"
562
- id="input-10"
563
- name="radio-group-7"
577
+ id="input-v-10"
578
+ name="radio-group-v-7"
564
579
  type="radio"
565
580
  value="reject"
566
581
  />
@@ -571,7 +586,7 @@ exports[`CookiesSelection > renders correctly 1`] = `
571
586
  v-label
572
587
  v-label--clickable
573
588
  "
574
- for="input-10"
589
+ for="input-v-10"
575
590
  >
576
591
  <!---->
577
592
  Refuser
@@ -601,8 +616,8 @@ exports[`CookiesSelection > renders correctly 1`] = `
601
616
  <input
602
617
  aria-disabled="false"
603
618
  aria-label="Accepter"
604
- id="input-11"
605
- name="radio-group-7"
619
+ id="input-v-11"
620
+ name="radio-group-v-7"
606
621
  type="radio"
607
622
  value="accept"
608
623
  />
@@ -613,7 +628,7 @@ exports[`CookiesSelection > renders correctly 1`] = `
613
628
  v-label
614
629
  v-label--clickable
615
630
  "
616
- for="input-11"
631
+ for="input-v-11"
617
632
  >
618
633
  <!---->
619
634
  Accepter
@@ -14,6 +14,7 @@ exports[`CopyBtn > renders correctly 1`] = `
14
14
  contained="false"
15
15
  disabled="false"
16
16
  eager="true"
17
+ interactive="false"
17
18
  location="right"
18
19
  locationstrategy="connected"
19
20
  minwidth="0"
@@ -25,7 +26,6 @@ exports[`CopyBtn > renders correctly 1`] = `
25
26
  origin="auto"
26
27
  scrim="false"
27
28
  scrollstrategy="reposition"
28
- transition="false"
29
29
  zindex="2000"
30
30
  ></v-tooltip-stub>
31
31
  </div>