@cnamts/synapse 1.0.5 → 1.0.7

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 (364) hide show
  1. package/dist/{DateFilter-BQpRKTju.js → DateFilter-CHDLz2EO.js} +1 -1
  2. package/dist/{NumberFilter-BykSKt2D.js → NumberFilter-DXNQ4Uls.js} +1 -1
  3. package/dist/{PeriodFilter-Cks6NygV.js → PeriodFilter-C8Qf3Jcn.js} +1 -1
  4. package/dist/{SelectFilter-DEL5dHd_.js → SelectFilter-B2Ejs4Cb.js} +1 -1
  5. package/dist/{TextFilter-0RAFj7Oe.js → TextFilter-CfR5_A1S.js} +1 -1
  6. package/dist/components/Amelipro/AmeliproAccordion/AmeliproAccordion.d.ts +103 -0
  7. package/dist/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/AmeliproAccordionTemplate.d.ts +105 -0
  8. package/dist/components/Amelipro/AmeliproAccordionGroup/AmeliproAccordionGroup.d.ts +116 -0
  9. package/dist/components/Amelipro/AmeliproAccordionGroup/types.d.ts +4 -0
  10. package/dist/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.d.ts +220 -0
  11. package/dist/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResult.d.ts +68 -0
  12. package/dist/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/AmeliproAccordionResultTemplate.d.ts +70 -0
  13. package/dist/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.d.ts +204 -0
  14. package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +26 -26
  15. package/dist/components/Amelipro/AmeliproBadge/AmeliproBadge.d.ts +59 -0
  16. package/dist/components/Amelipro/AmeliproBtn/AmeliproBtn.d.ts +3 -3
  17. package/dist/components/Amelipro/AmeliproCaptcha/AmeliproCaptcha.d.ts +132 -0
  18. package/dist/components/Amelipro/AmeliproCaptcha/types.d.ts +5 -0
  19. package/dist/components/Amelipro/AmeliproCard/AmeliproCard.d.ts +3 -3
  20. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarousel.d.ts +214 -0
  21. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarouselItem/AmeliproCarouselItem.d.ts +70 -0
  22. package/dist/components/Amelipro/AmeliproCarousel/types.d.ts +7 -0
  23. package/dist/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.d.ts +125 -0
  24. package/dist/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.d.ts +126 -0
  25. package/dist/components/Amelipro/AmeliproCustomSelector/types.d.ts +6 -0
  26. package/dist/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.d.ts +1 -1
  27. package/dist/components/Amelipro/AmeliproIllustratedDataTile/AmeliproIllustratedDataTile.d.ts +3 -3
  28. package/dist/components/Amelipro/AmeliproMultipleFoldingCard/AmeliproMultipleFoldingCard.d.ts +1 -1
  29. package/dist/components/Amelipro/AmeliproResultList/AmeliproResultList.d.ts +164 -0
  30. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +27 -27
  31. package/dist/components/Amelipro/AmeliproStateTile/AmeliproStateTile.d.ts +1 -1
  32. package/dist/components/Amelipro/AmeliproTable/AmeliproTable.d.ts +190 -0
  33. package/dist/components/Amelipro/AmeliproTable/types.d.ts +34 -0
  34. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +32 -32
  35. package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +6 -6
  36. package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +7 -7
  37. package/dist/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.d.ts +2 -2
  38. package/dist/components/Amelipro/AmeliproTooltips/AmeliproTooltips.d.ts +2 -2
  39. package/dist/components/Amelipro/types.d.ts +6 -0
  40. package/dist/components/ChipList/ChipList.d.ts +4 -0
  41. package/dist/components/ChipList/locales.d.ts +4 -2
  42. package/dist/components/CookieBanner/CookieBanner.d.ts +1 -1
  43. package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +8 -8
  44. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +454 -8
  45. package/dist/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.d.ts +6 -1
  46. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +2 -0
  47. package/dist/components/Customs/SyTabs/SyTabs.d.ts +71 -0
  48. package/dist/components/Customs/SyTabs/config.d.ts +17 -0
  49. package/dist/components/Customs/SyTabs/types.d.ts +11 -0
  50. package/dist/components/Customs/SyTextField/SyTextField.d.ts +12 -10
  51. package/dist/components/DataList/DataList.d.ts +10 -1
  52. package/dist/components/DataListGroup/DataListGroup.d.ts +10 -1
  53. package/dist/components/DataListItem/DataListItem.d.ts +1 -1
  54. package/dist/components/DataListItem/config.d.ts +1 -1
  55. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +4825 -244
  56. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +58 -29
  57. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +28 -10
  58. package/dist/components/DatePicker/composables/useDateInputEditing.d.ts +18 -8
  59. package/dist/components/DatePicker/composables/useKeyboardEvents.d.ts +41 -0
  60. package/dist/components/DatePicker/composables/useManualDateValidation.d.ts +4 -9
  61. package/dist/components/DatePicker/composables/useTodayButton.d.ts +1 -0
  62. package/dist/components/DatePicker/utils/dateFormattingUtils.d.ts +72 -0
  63. package/dist/components/DatePicker/utils/validationUtils.d.ts +38 -0
  64. package/dist/components/DialogBox/DialogBox.d.ts +219 -0
  65. package/dist/components/HeaderBar/HeaderBurgerMenu/HeaderBurgerMenu.d.ts +9 -3
  66. package/dist/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/HeaderMenuItem.d.ts +6 -1
  67. package/dist/components/HeaderBar/HeaderBurgerMenu/HeaderMenuSection/HeaderMenuSection.d.ts +11 -1
  68. package/dist/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.d.ts +11 -1
  69. package/dist/components/HeaderBar/HeaderBurgerMenu/locals.d.ts +2 -0
  70. package/dist/components/HeaderBar/HeaderBurgerMenu/useMenuPosition.d.ts +4 -0
  71. package/dist/components/HeaderLoading/HeaderLoading.d.ts +27 -0
  72. package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +110 -3
  73. package/dist/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.d.ts +19 -1
  74. package/dist/components/LangBtn/LangBtn.d.ts +2 -2
  75. package/dist/components/NirField/NirField.d.ts +30 -20
  76. package/dist/components/PeriodField/PeriodField.d.ts +10949 -1783
  77. package/dist/components/PhoneField/PhoneField.d.ts +1866 -2
  78. package/dist/components/PhoneField/indicatifs.d.ts +1 -0
  79. package/dist/components/PhoneField/locales.d.ts +1 -0
  80. package/dist/components/RangeField/RangeField.d.ts +1 -1
  81. package/dist/components/RangeField/RangeSlider/RangeSlider.d.ts +1 -1
  82. package/dist/components/SubHeader/SubHeader.d.ts +8 -0
  83. package/dist/components/SubHeader/locales.d.ts +1 -0
  84. package/dist/components/SyTextArea/SyTextArea.d.ts +6 -6
  85. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +5 -4
  86. package/dist/components/Tables/SyTable/SyTable.d.ts +5 -4
  87. package/dist/components/Tables/common/SyTablePagination.d.ts +458 -7
  88. package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +2 -2
  89. package/dist/components/Tables/common/types.d.ts +2 -0
  90. package/dist/components/index.d.ts +13 -0
  91. package/dist/composables/index.d.ts +1 -0
  92. package/dist/composables/usePagination.d.ts +16 -0
  93. package/dist/design-system-v3.js +174 -160
  94. package/dist/design-system-v3.umd.cjs +290 -281
  95. package/dist/directives/lockFocus.d.ts +17 -0
  96. package/dist/{main-Co2P_lBt.js → main-C66C1BkG.js} +14406 -11554
  97. package/dist/style.css +1 -1
  98. package/package.json +4 -1
  99. package/src/assets/amelipro/apTheme.scss +149 -0
  100. package/src/assets/amelipro/apTokens.scss +0 -148
  101. package/src/assets/amelipro/icons.ts +38 -11
  102. package/src/assets/overrides/_btns.scss +15 -0
  103. package/src/assets/overrides/_container.scss +36 -0
  104. package/src/assets/overrides/_forms.scss +7 -0
  105. package/src/assets/{_spacers.scss → overrides/_spacers.scss} +0 -7
  106. package/src/assets/overrides/_tables.scss +18 -0
  107. package/src/assets/overrides/_tooltips.scss +10 -0
  108. package/src/assets/overrides/_typography.scss +196 -0
  109. package/src/assets/settings.scss +11 -51
  110. package/src/assets/themes.scss +10 -0
  111. package/src/assets/tokens.scss +9 -156
  112. package/src/components/Accordion/composables/__tests__/useAccordionGroupCommunication.spec.ts +80 -40
  113. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordion.mdx +15 -0
  114. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordion.stories.ts +83 -0
  115. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordion.vue +86 -0
  116. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/AmeliproAccordionTemplate.vue +242 -0
  117. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/__tests__/AmeliproAccordionTemplate.spec.ts +20 -0
  118. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/__tests__/__snapshots__/AmeliproAccordionTemplate.spec.ts.snap +124 -0
  119. package/src/components/Amelipro/AmeliproAccordion/__tests__/AmeliproAccordion.spec.ts +20 -0
  120. package/src/components/Amelipro/AmeliproAccordion/__tests__/__snapshots__/AmeliproAccordion.spec.ts.snap +124 -0
  121. package/src/components/Amelipro/AmeliproAccordionGroup/AmeliproAccordionGroup.mdx +20 -0
  122. package/src/components/Amelipro/AmeliproAccordionGroup/AmeliproAccordionGroup.stories.ts +135 -0
  123. package/src/components/Amelipro/AmeliproAccordionGroup/AmeliproAccordionGroup.vue +107 -0
  124. package/src/components/Amelipro/AmeliproAccordionGroup/__tests__/AmeliproAccordionGroup.spec.ts +37 -0
  125. package/src/components/Amelipro/AmeliproAccordionGroup/__tests__/__snapshots__/AmeliproAccordionGroup.spec.ts.snap +513 -0
  126. package/src/components/Amelipro/AmeliproAccordionGroup/types.d.ts +4 -0
  127. package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.mdx +16 -0
  128. package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.stories.ts +300 -0
  129. package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.vue +288 -0
  130. package/src/components/Amelipro/AmeliproAccordionList/__tests__/AmeliproAccordionList.spec.ts +38 -0
  131. package/src/components/Amelipro/AmeliproAccordionList/__tests__/__snapshots__/AmeliproAccordionList.spec.ts.snap +1712 -0
  132. package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResult.mdx +19 -0
  133. package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResult.stories.ts +68 -0
  134. package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResult.vue +66 -0
  135. package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/AmeliproAccordionResultTemplate.vue +145 -0
  136. package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/__tests__/AmeliproAccordionResultTemplate.spec.ts +24 -0
  137. package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/__tests__/__snapshots__/AmeliproAccordionResultTemplate.spec.ts.snap +127 -0
  138. package/src/components/Amelipro/AmeliproAccordionResult/__tests__/AmeliproAccordionResult.spec.ts +24 -0
  139. package/src/components/Amelipro/AmeliproAccordionResult/__tests__/__snapshots__/AmeliproAccordionResult.spec.ts.snap +123 -0
  140. package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.mdx +20 -0
  141. package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.stories.ts +273 -0
  142. package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.vue +275 -0
  143. package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/AmeliproAccordionResultList.spec.ts +38 -0
  144. package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/__snapshots__/AmeliproAccordionResultList.spec.ts.snap +1593 -0
  145. package/src/components/Amelipro/AmeliproBadge/AmeliproBadge.mdx +15 -0
  146. package/src/components/Amelipro/AmeliproBadge/AmeliproBadge.stories.ts +54 -0
  147. package/src/components/Amelipro/AmeliproBadge/AmeliproBadge.vue +76 -0
  148. package/src/components/Amelipro/AmeliproBadge/__tests__/AmeliproBadge.spec.ts +20 -0
  149. package/src/components/Amelipro/AmeliproBadge/__tests__/__snapshots__/AmeliproBadge.spec.ts.snap +19 -0
  150. package/src/components/Amelipro/AmeliproCaptcha/AmeliproCaptcha.mdx +15 -0
  151. package/src/components/Amelipro/AmeliproCaptcha/AmeliproCaptcha.stories.ts +87 -0
  152. package/src/components/Amelipro/AmeliproCaptcha/AmeliproCaptcha.vue +233 -0
  153. package/src/components/Amelipro/AmeliproCaptcha/__tests__/AmeliproCaptcha.spec.ts +24 -0
  154. package/src/components/Amelipro/AmeliproCaptcha/__tests__/__snapshots__/AmeliproCaptcha.spec.ts.snap +384 -0
  155. package/src/components/Amelipro/AmeliproCaptcha/types.d.ts +5 -0
  156. package/src/components/Amelipro/AmeliproCarousel/AmeliproCarousel.mdx +15 -0
  157. package/src/components/Amelipro/AmeliproCarousel/AmeliproCarousel.stories.ts +191 -0
  158. package/src/components/Amelipro/AmeliproCarousel/AmeliproCarousel.vue +263 -0
  159. package/src/components/Amelipro/AmeliproCarousel/AmeliproCarouselItem/AmeliproCarouselItem.vue +93 -0
  160. package/src/components/Amelipro/AmeliproCarousel/AmeliproCarouselItem/__tests__/AmeliproCarouselItem.spec.ts +24 -0
  161. package/src/components/Amelipro/AmeliproCarousel/AmeliproCarouselItem/__tests__/__snapshots__/AmeliproCarouselItem.spec.ts.snap +43 -0
  162. package/src/components/Amelipro/AmeliproCarousel/__tests__/AmeliproCarousel.spec.ts +40 -0
  163. package/src/components/Amelipro/AmeliproCarousel/__tests__/__snapshots__/AmeliproCarousel.spec.ts.snap +342 -0
  164. package/src/components/Amelipro/AmeliproCarousel/types.d.ts +8 -0
  165. package/src/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.mdx +18 -0
  166. package/src/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.stories.ts +67 -0
  167. package/src/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.vue +233 -0
  168. package/src/components/Amelipro/AmeliproClickableTile/tests/AmeliproClickableTile.spec.ts +21 -0
  169. package/src/components/Amelipro/AmeliproClickableTile/tests/__snapshots__/AmeliproClickableTile.spec.ts.snap +140 -0
  170. package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.mdx +15 -0
  171. package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.stories.ts +143 -0
  172. package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.vue +351 -0
  173. package/src/components/Amelipro/AmeliproCustomSelector/__tests__/AmeliproCustomSelector.spec.ts +50 -0
  174. package/src/components/Amelipro/AmeliproCustomSelector/__tests__/__snapshots__/AmeliproCustomSelector.spec.ts.snap +186 -0
  175. package/src/components/Amelipro/AmeliproCustomSelector/types.d.ts +6 -0
  176. package/src/components/Amelipro/AmeliproHeader/AmeliproHeader.vue +7 -1
  177. package/src/components/Amelipro/AmeliproHeader/tests/__snapshots__/AmeliproHeader.spec.ts.snap +5 -711
  178. package/src/components/Amelipro/AmeliproIcon/iconList.ts +6 -0
  179. package/src/components/Amelipro/AmeliproPageLayout/tests/__snapshots__/AmeliproPageLayout.spec.ts.snap +5 -711
  180. package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.mdx +15 -0
  181. package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.stories.ts +264 -0
  182. package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.vue +231 -0
  183. package/src/components/Amelipro/AmeliproResultList/__tests__/AmeliproResultList.spec.ts +37 -0
  184. package/src/components/Amelipro/AmeliproResultList/__tests__/__snapshots__/AmeliproResultList.spec.ts.snap +434 -0
  185. package/src/components/Amelipro/AmeliproTable/AmeliproTable.mdx +22 -0
  186. package/src/components/Amelipro/AmeliproTable/AmeliproTable.stories.ts +550 -0
  187. package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +422 -0
  188. package/src/components/Amelipro/AmeliproTable/__tests__/AmeliproTable.spec.ts +72 -0
  189. package/src/components/Amelipro/AmeliproTable/__tests__/__snapshots__/AmeliproTable.spec.ts.snap +424 -0
  190. package/src/components/Amelipro/AmeliproTable/types.d.ts +34 -0
  191. package/src/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.stories.ts +2 -2
  192. package/src/components/Amelipro/ServiceMenu/ServiceMenu.vue +12 -1
  193. package/src/components/Amelipro/ServiceMenu/tests/__snapshots__/ServiceMenu.spec.ts.snap +0 -820
  194. package/src/components/Amelipro/types.ts +8 -0
  195. package/src/components/ChipList/Accessibilite.stories.ts +4 -0
  196. package/src/components/ChipList/ChipList.vue +185 -42
  197. package/src/components/ChipList/locales.ts +4 -2
  198. package/src/components/ChipList/tests/chipList.spec.ts +7 -4
  199. package/src/components/CollapsibleList/CollapsibleList.vue +0 -2
  200. package/src/components/CookieBanner/CookieBanner.vue +1 -3
  201. package/src/components/CopyBtn/CopyBtn.vue +9 -2
  202. package/src/components/CopyBtn/tests/CopyBtn.spec.ts +3 -1
  203. package/src/components/Customs/Selects/SelectOverview.mdx +18 -15
  204. package/src/components/Customs/Selects/SyBtnSelect/SyBtnSelect.stories.ts +10 -10
  205. package/src/components/Customs/Selects/SySelect/Accessibilite.mdx +7 -0
  206. package/src/components/Customs/Selects/SySelect/Accessibilite.stories.ts +4 -1
  207. package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +92 -4
  208. package/src/components/Customs/Selects/SySelect/SySelect.vue +373 -56
  209. package/src/components/Customs/Selects/SySelect/composables/tests/useSySelectKeyboard.spec.ts +14 -5
  210. package/src/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.ts +129 -12
  211. package/src/components/Customs/SyCheckbox/SyCheckbox.mdx +3 -1
  212. package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +165 -0
  213. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +28 -9
  214. package/src/components/Customs/SyIcon/SyIcon.spec.ts +3 -0
  215. package/src/components/Customs/SyTabs/Accessibilite.mdx +309 -0
  216. package/src/components/Customs/SyTabs/SyTabs.mdx +117 -0
  217. package/src/components/Customs/SyTabs/SyTabs.stories.ts +354 -0
  218. package/src/components/Customs/SyTabs/SyTabs.vue +350 -0
  219. package/src/components/Customs/SyTabs/config.ts +17 -0
  220. package/src/components/Customs/SyTabs/tests/SyTabs.spec.ts +425 -0
  221. package/src/components/Customs/SyTabs/types.ts +12 -0
  222. package/src/components/Customs/SyTextField/Accessibilite.stories.ts +3 -1
  223. package/src/components/Customs/SyTextField/SyTextField.mdx +3 -0
  224. package/src/components/Customs/SyTextField/SyTextField.stories.ts +221 -7
  225. package/src/components/Customs/SyTextField/SyTextField.vue +226 -29
  226. package/src/components/DataList/Accessibilite.stories.ts +4 -0
  227. package/src/components/DataList/DataList.vue +52 -47
  228. package/src/components/DataListGroup/Accessibilite.stories.ts +4 -0
  229. package/src/components/DataListGroup/DataListGroup.vue +32 -15
  230. package/src/components/DataListItem/DataListItem.vue +72 -65
  231. package/src/components/DataListItem/config.ts +1 -1
  232. package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +3 -3
  233. package/src/components/DatePicker/CalendarMode/DatePicker.vue +59 -18
  234. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +174 -0
  235. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +421 -636
  236. package/src/components/DatePicker/DatePickerValidationExample/CalendarMode.stories.ts +215 -0
  237. package/src/components/DatePicker/DatePickerValidationExample/ComplexDatePicker.stories.ts +218 -0
  238. package/src/components/DatePicker/DatePickerValidationExample/DatePickerValidation.mdx +2 -0
  239. package/src/components/DatePicker/DatePickerValidationExample/DatePickerValidation.stories.ts +287 -1
  240. package/src/components/DatePicker/DatePickerValidationExample/DateTextInput.stories.ts +218 -0
  241. package/src/components/DatePicker/DatePickerValidationExample/MultiMode.stories.ts +281 -0
  242. package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +1 -1
  243. package/src/components/DatePicker/DateTextInput/DateTextInput.events.spec.ts +17 -4
  244. package/src/components/DatePicker/DateTextInput/DateTextInput.range.spec.ts +111 -18
  245. package/src/components/DatePicker/DateTextInput/DateTextInput.spec.ts +238 -6
  246. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +716 -759
  247. package/src/components/DatePicker/composables/tests/useDateInputEditing.spec.ts +4 -4
  248. package/src/components/DatePicker/composables/tests/useDisplayedDateString.spec.ts +17 -10
  249. package/src/components/DatePicker/composables/tests/useManualDateValidation.spec.ts +11 -3
  250. package/src/components/DatePicker/composables/useDateInputEditing.ts +119 -225
  251. package/src/components/DatePicker/composables/useDisplayedDateString.ts +18 -4
  252. package/src/components/DatePicker/composables/useKeyboardEvents.ts +149 -0
  253. package/src/components/DatePicker/composables/useManualDateValidation.ts +27 -68
  254. package/src/components/DatePicker/composables/useTodayButton.ts +13 -1
  255. package/src/components/DatePicker/utils/dateFormattingUtils.ts +293 -0
  256. package/src/components/DatePicker/utils/validationUtils.ts +90 -0
  257. package/src/components/DialogBox/Accessibilite.stories.ts +4 -0
  258. package/src/components/DialogBox/DialogBox.stories.ts +22 -10
  259. package/src/components/DialogBox/DialogBox.vue +89 -22
  260. package/src/components/DialogBox/tests/DialogBox.spec.ts +22 -0
  261. package/src/components/DialogBox/tests/__snapshots__/DialogBox.spec.ts.snap +12 -6
  262. package/src/components/FileUpload/tests/FileUpload.spec.ts +3 -0
  263. package/src/components/FooterBar/FooterBar.vue +1 -0
  264. package/src/components/HeaderBar/Accessibilite.stories.ts +4 -0
  265. package/src/components/HeaderBar/HeaderBar.mdx +47 -22
  266. package/src/components/HeaderBar/HeaderBar.stories.ts +54 -13
  267. package/src/components/HeaderBar/HeaderBar.vue +2 -1
  268. package/src/components/HeaderBar/HeaderBurgerMenu/Accessibilite.stories.ts +4 -0
  269. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderBurgerMenu.stories.ts +160 -82
  270. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderBurgerMenu.vue +41 -56
  271. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/HeaderMenuItem.vue +10 -3
  272. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuSection/HeaderMenuSection.vue +41 -18
  273. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuSection/tests/HeaderMenuSection.spec.ts +7 -2
  274. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.stories.ts +36 -9
  275. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.vue +41 -9
  276. package/src/components/HeaderBar/HeaderBurgerMenu/locals.ts +2 -0
  277. package/src/components/HeaderBar/HeaderBurgerMenu/tests/HeaderBurgerMenu.spec.ts +1 -1
  278. package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/HeaderBurgerMenu.spec.ts.snap +8 -3
  279. package/src/components/HeaderBar/HeaderBurgerMenu/useMenuPosition.ts +50 -0
  280. package/src/components/HeaderBar/HeaderLogo/HeaderLogo.vue +5 -5
  281. package/src/components/HeaderBar/HeaderMenuBtn/HeaderMenuBtn.vue +7 -4
  282. package/src/components/HeaderBar/locales.ts +1 -1
  283. package/src/components/HeaderBar/tests/__snapshots__/HeaderBar.spec.ts.snap +2 -1
  284. package/src/components/HeaderLoading/Accessibilite.mdx +429 -8
  285. package/src/components/HeaderLoading/Accessibilite.stories.ts +4 -0
  286. package/src/components/HeaderLoading/HeaderLoading.vue +59 -1
  287. package/src/components/HeaderNavigationBar/HeaderNavigationBar.mdx +17 -2
  288. package/src/components/HeaderNavigationBar/HeaderNavigationBar.stories.ts +91 -2
  289. package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +37 -1
  290. package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +276 -21
  291. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.spec.ts +4 -2
  292. package/src/components/LangBtn/LangBtn.vue +0 -3
  293. package/src/components/LogoBrandSection/Accessibilite.stories.ts +4 -1
  294. package/src/components/LogoBrandSection/LogoBrandSection.stories.ts +2 -2
  295. package/src/components/LogoBrandSection/LogoBrandSection.vue +13 -8
  296. package/src/components/LogoBrandSection/locales.ts +1 -1
  297. package/src/components/LogoBrandSection/tests/LogoBrandSection.spec.ts +1 -1
  298. package/src/components/LogoBrandSection/tests/__snapshots__/LogoBrandSection.spec.ts.snap +6 -4
  299. package/src/components/NirField/NirField.mdx +3 -0
  300. package/src/components/NirField/NirField.vue +15 -6
  301. package/src/components/NirField/tests/NirField.spec.ts +159 -12
  302. package/src/components/PasswordField/PasswordField.mdx +3 -0
  303. package/src/components/PeriodField/PeriodField.mdx +2 -0
  304. package/src/components/PeriodField/PeriodField.stories.ts +195 -0
  305. package/src/components/PhoneField/Accessibilite.stories.ts +4 -0
  306. package/src/components/PhoneField/PhoneField.mdx +3 -1
  307. package/src/components/PhoneField/PhoneField.stories.ts +285 -1
  308. package/src/components/PhoneField/PhoneField.vue +228 -95
  309. package/src/components/PhoneField/indicatifs.ts +102 -102
  310. package/src/components/PhoneField/locales.ts +1 -0
  311. package/src/components/PhoneField/tests/PhoneField.spec.ts +429 -2
  312. package/src/components/SkipLink/SkipLink.vue +3 -31
  313. package/src/components/SkipLink/tests/skipLink.spec.ts +0 -21
  314. package/src/components/SubHeader/Accessibilite.stories.ts +8 -0
  315. package/src/components/SubHeader/SubHeader.mdx +1 -0
  316. package/src/components/SubHeader/SubHeader.stories.ts +179 -60
  317. package/src/components/SubHeader/SubHeader.vue +45 -15
  318. package/src/components/SubHeader/locales.ts +1 -0
  319. package/src/components/SyAlert/SyAlert.vue +6 -0
  320. package/src/components/Tables/SyServerTable/SyServerTable.mdx +3 -10
  321. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +242 -0
  322. package/src/components/Tables/SyServerTable/SyServerTable.vue +29 -10
  323. package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +104 -6
  324. package/src/components/Tables/SyTable/SyTable.mdx +3 -10
  325. package/src/components/Tables/SyTable/SyTable.stories.ts +242 -0
  326. package/src/components/Tables/SyTable/SyTable.vue +2 -0
  327. package/src/components/Tables/common/SyTablePagination.vue +13 -6
  328. package/src/components/Tables/common/TableHeader.vue +10 -7
  329. package/src/components/Tables/common/tableAccessibilityUtils.ts +13 -2
  330. package/src/components/Tables/common/tests/SyTablePagination.spec.ts +157 -0
  331. package/src/components/Tables/common/types.ts +2 -0
  332. package/src/components/Tables/common/useTableAria.ts +17 -1
  333. package/src/components/UserMenuBtn/tests/UserMenuBtn.spec.ts +2 -1
  334. package/src/components/index.ts +13 -0
  335. package/src/composables/date/tests/useDatePickerAccessibility.spec.ts +34 -5
  336. package/src/composables/index.ts +3 -0
  337. package/src/composables/useFilterable/useFilterable.ts +23 -1
  338. package/src/composables/usePagination.ts +103 -0
  339. package/src/designTokens/tokens/amelipro/apColors.ts +1 -1
  340. package/src/designTokens/tokens/cnam/cnamSemantic.ts +3 -3
  341. package/src/directives/lockFocus.ts +48 -0
  342. package/src/main.ts +1 -2
  343. package/src/stories/Accessibilite/Aculturation/SensibilisationAccessibilite.mdx +1 -8
  344. package/src/stories/Accessibilite/{Aculturation/AuditDesignSystem.mdx → AuditDesignSystem.mdx} +1 -1
  345. package/src/stories/Accessibilite/KitDePreAudit/Outils/Tanaguru/FauxPositifs.mdx +102 -0
  346. package/src/stories/Accessibilite/KitDePreAudit/Outils/Tanaguru/FauxPositifs.stories.ts +219 -0
  347. package/src/stories/Accessibilite/KitDePreAudit/Outils/{Tanaguru.mdx → Tanaguru/Utilisation.mdx} +1 -1
  348. package/src/stories/Components/Components.stories.ts +1 -1
  349. package/src/stories/DesignTokens/ColorIntegrationExample.vue +43 -0
  350. package/src/stories/DesignTokens/Colors.mdx +2 -0
  351. package/src/stories/DesignTokens/colors.stories.ts +9 -0
  352. package/src/stories/GuideDuDev/FormValidationGuide.mdx +342 -0
  353. package/src/stories/Templates/Templates.stories.ts +1 -1
  354. package/src/utils/functions/ameliproColors/ameliproColors.ts +1 -1
  355. package/src/vuetifyConfig.ts +3 -3
  356. package/dist/components/DataList/locales.d.ts +0 -3
  357. package/dist/directives/letterSpacing.d.ts +0 -27
  358. package/src/assets/_fonts.scss +0 -6
  359. package/src/assets/_typography.scss +0 -157
  360. package/src/components/DataList/locales.ts +0 -3
  361. package/src/components/PhoneField/tests/PhoneField.additional.spec.ts +0 -266
  362. package/src/directives/letterSpacing.ts +0 -233
  363. /package/src/assets/{_elevations.scss → overrides/_elevations.scss} +0 -0
  364. /package/src/assets/{_radius.scss → overrides/_radius.scss} +0 -0
@@ -3,3 +3,11 @@ export interface IndexedObject<T = string> {
3
3
  }
4
4
 
5
5
  export type ValidateOnType = 'lazy' | ('input' | 'blur' | 'submit') | 'input lazy' | 'blur lazy' | 'submit lazy' | 'lazy input' | 'lazy blur' | 'lazy submit' | undefined
6
+
7
+ export interface IDataListItem {
8
+ id: number
9
+ [key: string]: string | number | undefined
10
+ accordionTitle?: string
11
+ }
12
+
13
+ export type Breakpoints = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'smAndDown' | 'smAndUp' | 'mdAndDown' | 'mdAndUp' | 'lgAndDown' | 'lgAndUp' | 'xlAndDown'
@@ -208,6 +208,10 @@ export const Legende: StoryObj = {
208
208
  Problèmes relevés par Tanaguru
209
209
  </div>
210
210
  </div>
211
+ <div class="mt-4">
212
+ <p>Rapport d’audit manuel : <a href="/audits/ChipList.xlsx" style="color:#0C41BD;">Voir le rapport</a></p>
213
+ <p style="color: grey; font-size: 14px">Correctifs associés (<a href="https://github.com/assurance-maladie-digital/design-system-v3/issues/814" target="_blank" style="color:#0C41BD;">issue #814</a>)</p>
214
+ </div>
211
215
  </div>
212
216
  `,
213
217
  }
@@ -5,6 +5,7 @@
5
5
  import { computed, ref } from 'vue'
6
6
  import { locales } from './locales'
7
7
  import type { ChipItem, ChipState } from './types'
8
+ import SyIcon from '@/components/Customs/SyIcon/SyIcon.vue'
8
9
 
9
10
  type NonEmptyChipState = Exclude<ChipState, undefined>
10
11
  type VuetifyVariant = 'flat' | 'text' | 'elevated' | 'tonal' | 'outlined' | 'plain'
@@ -17,6 +18,8 @@
17
18
  displayPrependStateIcon?: boolean
18
19
  displayAppendStateIcon?: boolean
19
20
  customIcon?: string
21
+ listAriaLabel?: string
22
+ listAriaLabelledby?: string
20
23
  vuetifyOptions?: {
21
24
  chip?: {
22
25
  color?: string
@@ -41,6 +44,8 @@
41
44
  displayPrependStateIcon: false,
42
45
  displayAppendStateIcon: false,
43
46
  customIcon: undefined,
47
+ listAriaLabel: undefined,
48
+ listAriaLabelledby: undefined,
44
49
  vuetifyOptions: () => ({}),
45
50
  })
46
51
 
@@ -53,21 +58,57 @@
53
58
 
54
59
  const locale = ref(locales)
55
60
  const deleteIcon = ref(mdiWindowClose)
61
+ const showAllItems = ref(false)
56
62
 
57
63
  const filteredItems = computed(() => {
64
+ if (showAllItems.value) {
65
+ return props.items
66
+ }
58
67
  return props.items.slice(0, props.overflowLimit - 1)
59
68
  })
60
69
 
61
70
  const showOverflowChip = computed(() => {
62
- return props.items.length >= props.overflowLimit
71
+ return props.items.length >= props.overflowLimit && !showAllItems.value
72
+ })
73
+
74
+ const overflowCount = computed(() => {
75
+ return props.items.length - props.overflowLimit + 1
63
76
  })
64
77
 
65
78
  const overflowText = computed(() => {
66
- return `+${props.items.length - props.overflowLimit + 1}`
79
+ return `+${overflowCount.value}`
80
+ })
81
+
82
+ const hiddenItems = computed(() => {
83
+ return props.items.slice(props.overflowLimit - 1)
84
+ })
85
+
86
+ const overflowAriaLabel = computed(() => {
87
+ const count = overflowCount.value
88
+ const itemsText = hiddenItems.value.map(item => item.text).join(', ')
89
+ return locale.value.overflowAriaLabel
90
+ .replace('{count}', count.toString())
91
+ .replace('{items}', itemsText)
92
+ })
93
+
94
+ const toggleButtonText = computed(() => {
95
+ if (showAllItems.value) {
96
+ return locale.value.hideExtraFilters
97
+ }
98
+ const count = overflowCount.value
99
+ return locale.value.showMoreFilters.replace('{count}', count.toString())
100
+ })
101
+
102
+ const listAccessibleName = computed(() => {
103
+ return props.listAriaLabel ?? locale.value.chipGroupLabel
67
104
  })
68
105
 
69
106
  const resetButtonText = computed(() => {
70
- return props.resetText ?? locale.value.reset
107
+ if (props.resetText) {
108
+ return props.resetText
109
+ }
110
+ // Utiliser le pluriel si plus d'un filtre
111
+ return props.items.length > 1 ? locale.value.resetMultiple : locale.value.reset
71
112
  })
72
113
 
73
114
  /**
@@ -108,12 +149,27 @@
108
149
  }
109
150
  }
110
151
 
152
+ /**
153
+ * Bascule l'affichage de tous les éléments ou seulement les premiers
154
+ */
155
+ function toggleShowAllItems(): void {
156
+ showAllItems.value = !showAllItems.value
157
+ }
158
+
159
+ /**
160
+ * Émet l'événement de suppression d'un élément
161
+ *
162
+ * @param item - L'élément à supprimer
163
+ */
111
164
  function emitRemoveEvent(item: ChipItem): void {
112
165
  if (!props.readonly) {
113
166
  emits('remove', item)
114
167
  }
115
168
  }
116
169
 
170
+ /**
171
+ * Émet l'événement de réinitialisation
172
+ */
117
173
  function emitResetEvent(): void {
118
174
  if (!props.readonly) {
119
175
  emits('reset')
@@ -124,79 +180,102 @@
124
180
  <template>
125
181
  <div
126
182
  v-if="items.length"
127
- :class="{
128
- 'flex-column': showOverflowChip,
129
- }"
130
- class="chip-list d-flex flex-wrap max-width-none mx-n1 mt-n1"
131
- role="list"
183
+ class="sy-chip-list d-flex flex-wrap align-center ga-1"
132
184
  >
133
- <div
134
- class="d-flex flex-wrap align-center"
135
- role="group"
136
- :aria-label="locale.chipGroupLabel"
185
+ <ul
186
+ :class="{
187
+ 'flex-row': showOverflowChip,
188
+ 'd-flex flex-wrap align-center ga-1': true
189
+ }"
190
+ :aria-label="props.listAriaLabelledby ? undefined : listAccessibleName"
191
+ :aria-labelledby="props.listAriaLabelledby"
137
192
  >
138
- <VChip
193
+ <li
139
194
  v-for="item in filteredItems"
140
- v-bind="options.chip"
141
195
  :key="item.text"
142
- :color="getBackgroundColor(item.state)"
143
- :class="{
144
- 'sy-chip-success': item.state === 'success',
145
- 'sy-chip-info': item.state === 'info',
146
- 'sy-chip-warning': item.state === 'warning',
147
- 'sy-chip-error': item.state === 'error',
148
- }"
149
- role="listitem"
196
+ class="d-inline-flex"
150
197
  >
151
- <div class="d-flex align-center justify-center ga-sm-1">
198
+ <VChip
199
+ v-bind="options.chip"
200
+ :color="getBackgroundColor(item.state)"
201
+ :class="{
202
+ 'sy-chip-success': item.state === 'success',
203
+ 'sy-chip-info': item.state === 'info',
204
+ 'sy-chip-warning': item.state === 'warning',
205
+ 'sy-chip-error': item.state === 'error',
206
+ }"
207
+ >
152
208
  <template v-if="displayPrependStateIcon">
153
- <VIcon
209
+ <SyIcon
154
210
  v-bind="options.icon"
155
211
  :icon="customIcon || getIcon(item.state)"
156
212
  :color="item.state"
213
+ decorative
157
214
  />
158
215
  </template>
159
216
 
160
217
  <span>{{ item.text }}</span>
161
218
 
162
219
  <template v-if="displayAppendStateIcon">
163
- <VIcon
220
+ <SyIcon
164
221
  v-bind="options.icon"
165
222
  :icon="customIcon || getIcon(item.state)"
223
+ decorative
166
224
  />
167
225
  </template>
168
226
 
169
227
  <VBtn
170
228
  v-if="!readonly"
171
229
  v-bind="options.btn"
172
- :aria-label="locale.closeBtnLabel"
230
+ :aria-label="`Supprimer le filtre '${item.text}'`"
173
231
  icon
174
232
  class="remove-chip"
175
233
  @click="emitRemoveEvent(item)"
176
234
  >
177
- <VIcon
235
+ <SyIcon
178
236
  v-bind="options.icon"
179
237
  :icon="deleteIcon"
180
238
  :color="item.state"
239
+ decorative
181
240
  />
182
241
  </VBtn>
183
- </div>
184
- </VChip>
185
- </div>
242
+ </VChip>
243
+ </li>
186
244
 
245
+ <!-- Élément +N intégré dans la liste HTML -->
246
+ <li
247
+ v-if="showOverflowChip"
248
+ class="d-inline-flex"
249
+ >
250
+ <VChip
251
+ v-bind="options.chip"
252
+ class="overflow-chip text-cyan-darken-40 ma-1"
253
+ tabindex="0"
254
+ :aria-label="overflowAriaLabel"
255
+ @click="toggleShowAllItems"
256
+ @keydown.enter="toggleShowAllItems"
257
+ @keydown.space.prevent="toggleShowAllItems"
258
+ >
259
+ {{ overflowText }}
260
+ </VChip>
261
+ </li>
262
+ </ul>
263
+
264
+ <!-- Boutons d'action (hors de la liste) -->
187
265
  <div
188
- v-if="showOverflowChip || !readonly"
266
+ v-if="showAllItems || !readonly"
189
267
  class="d-flex align-center"
190
268
  >
191
- <VChip
192
- v-if="showOverflowChip"
193
- v-bind="options.chip"
194
- class="overflow-chip text-cyan-darken-40 ma-1"
195
- role="status"
196
- :aria-label="locale.overflowLabel"
269
+ <VBtn
270
+ v-if="showAllItems"
271
+ variant="text"
272
+ color="primary"
273
+ size="small"
274
+ class="hide-extra-btn px-1 mr-2"
275
+ @click="toggleShowAllItems"
197
276
  >
198
- {{ overflowText }}
199
- </VChip>
277
+ {{ toggleButtonText }}
278
+ </VBtn>
200
279
 
201
280
  <VBtn
202
281
  v-if="!readonly"
@@ -204,7 +283,7 @@
204
283
  color="primary"
205
284
  size="small"
206
285
  data-test-id="reset-btn"
207
- class="overflow-btn px-1 ml-1 my-1"
286
+ class="overflow-btn px-1"
208
287
  @click="emitResetEvent"
209
288
  >
210
289
  {{ resetButtonText }}
@@ -216,6 +295,41 @@
216
295
  <style lang="scss" scoped>
217
296
  @use '@/assets/tokens';
218
297
 
298
+ // Styles pour la liste HTML native
299
+ .sy-chip-list ul {
300
+ list-style: none;
301
+ padding: 0;
302
+ margin: 0;
303
+ }
304
+
305
+ .sy-chip-list li {
306
+ margin: 0;
307
+ padding: 0;
308
+ }
309
+
310
+ // Styles pour le bouton de suppression
311
+ .remove-chip {
312
+ padding: 0 !important;
313
+ min-width: auto !important;
314
+ width: auto !important;
315
+ height: auto !important;
316
+ flex-shrink: 0 !important;
317
+
318
+ // Assurer que l'icône reste visible en zoom texte 200%
319
+ :deep(.v-icon) {
320
+ font-size: 1rem !important;
321
+ width: 1rem !important;
322
+ height: 1rem !important;
323
+ flex-shrink: 0 !important;
324
+ }
325
+
326
+ // Améliorer le contraste des bordures de focus pour les boutons de suppression
327
+ &:focus-visible {
328
+ outline: 2px solid tokens.$primary-base !important;
329
+ outline-offset: -2px !important;
330
+ }
331
+ }
332
+
219
333
  .sy-chip-success {
220
334
  color: tokens.$colors-text-success !important;
221
335
  border: 1px solid tokens.$colors-border-success !important;
@@ -238,6 +352,12 @@
238
352
 
239
353
  .overflow-chip {
240
354
  border: 1px solid tokens.$cyan-lighten-90 !important;
355
+ cursor: pointer;
356
+
357
+ &:focus-visible {
358
+ outline: 2px solid tokens.$primary-base !important;
359
+ outline-offset: -2px !important;
360
+ }
241
361
  }
242
362
 
243
363
  // Disable overflow button hover state
@@ -245,7 +365,30 @@
245
365
  display: none;
246
366
  }
247
367
 
248
- .remove-chip {
249
- padding: 0 !important;
368
+ // Bouton "Réinitialiser le filtre" - améliorer le contraste de la bordure de focus
369
+ .overflow-btn:focus-visible {
370
+ outline: 2px solid tokens.$primary-base !important;
371
+ outline-offset: -2px !important;
372
+ }
373
+
374
+ // Styles spécifiques pour améliorer le contraste de focus selon le thème du chip
375
+ .sy-chip-success .remove-chip:focus-visible {
376
+ outline: 2px solid tokens.$colors-border-success !important;
377
+ outline-offset: -2px !important;
378
+ }
379
+
380
+ .sy-chip-info .remove-chip:focus-visible {
381
+ outline: 2px solid tokens.$colors-border-info !important;
382
+ outline-offset: -2px !important;
383
+ }
384
+
385
+ .sy-chip-warning .remove-chip:focus-visible {
386
+ outline: 2px solid tokens.$colors-border-warning !important;
387
+ outline-offset: -2px !important;
388
+ }
389
+
390
+ .sy-chip-error .remove-chip:focus-visible {
391
+ outline: 2px solid tokens.$colors-border-error !important;
392
+ outline-offset: -2px !important;
250
393
  }
251
394
  </style>
@@ -1,6 +1,8 @@
1
1
  export const locales = {
2
- closeBtnLabel: 'Supprimer le filtre pour cette valeur',
3
2
  reset: 'Réinitialiser le filtre',
3
+ resetMultiple: 'Réinitialiser les filtres',
4
4
  chipGroupLabel: 'Liste des filtres sélectionnés',
5
- overflowLabel: 'Filtres supplémentaires',
5
+ showMoreFilters: 'Afficher {count} filtres supplémentaires',
6
+ hideExtraFilters: 'Réduire',
7
+ overflowAriaLabel: 'Afficher {count} filtres supplémentaires : {items}',
6
8
  } as const
@@ -226,10 +226,13 @@ describe('ChipList', () => {
226
226
  },
227
227
  })
228
228
 
229
- // Vérifie la présence des rôles ARIA
230
- expect(wrapper.find('[role="list"]').exists()).toBe(true)
231
- expect(wrapper.find('[role="group"]').exists()).toBe(true)
232
- expect(wrapper.findAll('[role="listitem"]')).toHaveLength(defaultItems.length)
229
+ // Vérifie la présence de la structure HTML native
230
+ expect(wrapper.find('ul').exists()).toBe(true)
231
+ expect(wrapper.findAll('li')).toHaveLength(defaultItems.length)
232
+
233
+ // Vérifie l'aria-label sur la liste
234
+ const list = wrapper.find('ul')
235
+ expect(list.attributes('aria-label')).toBeTruthy()
233
236
 
234
237
  // Vérifie les labels ARIA des boutons
235
238
  const removeButton = wrapper.find('.remove-chip')
@@ -2,7 +2,6 @@
2
2
  import { computed } from 'vue'
3
3
  import { useDisplay } from 'vuetify'
4
4
  import type { ListItem } from './types'
5
- import { vLetterSpacing } from '@/directives/letterSpacing'
6
5
 
7
6
  const props = defineProps<{
8
7
  listTitle: string | null
@@ -57,7 +56,6 @@
57
56
  class="vd-collapse-list"
58
57
  >
59
58
  <h4
60
- v-letter-spacing
61
59
  class="text-subtitle-1 font-weight-bold mb-3"
62
60
  >
63
61
  {{ listTitle }}
@@ -9,7 +9,6 @@
9
9
  import { config } from './config'
10
10
  import { locales } from './locales'
11
11
  import CookiesSelection from '../CookiesSelection/CookiesSelection.vue'
12
- import { vLetterSpacing } from '@/directives/letterSpacing'
13
12
 
14
13
  const props = defineProps<CustomizableOptions & {
15
14
  items?: CookiesItems
@@ -167,7 +166,6 @@
167
166
  >
168
167
  <VSheet
169
168
  ref="vsheetRef"
170
- v-letter-spacing
171
169
  v-bind="options.banner"
172
170
  :aria-label="locales.label"
173
171
  class="vd-cookie-banner"
@@ -179,7 +177,7 @@
179
177
  >
180
178
  <div class="d-flex align-start flex-nowrap pa-0 mb-6">
181
179
  <h2
182
- v-letter-spacing
180
+
183
181
  class="text-h5 font-weight-bold"
184
182
  >
185
183
  {{ locales.title }}
@@ -1,5 +1,5 @@
1
1
  <script setup lang="ts">
2
- import { ref } from 'vue'
2
+ import { ref, onUnmounted } from 'vue'
3
3
  import { mdiContentCopy } from '@mdi/js'
4
4
 
5
5
  import useCustomizableOptions, { type CustomizableOptions } from '@/composables/useCustomizableOptions'
@@ -28,6 +28,13 @@
28
28
 
29
29
  const tooltip = ref(false)
30
30
  const copyIcon = mdiContentCopy
31
+ let tooltipTimeoutId: ReturnType<typeof setTimeout> | undefined
32
+
33
+ onUnmounted(() => {
34
+ if (tooltipTimeoutId !== undefined) {
35
+ clearTimeout(tooltipTimeoutId)
36
+ }
37
+ })
31
38
 
32
39
  function copy(): void {
33
40
  let contentToCopy
@@ -66,7 +73,7 @@
66
73
  return
67
74
  }
68
75
 
69
- setTimeout(() => {
76
+ tooltipTimeoutId = setTimeout(() => {
70
77
  tooltip.value = false
71
78
  }, props.tooltipDuration)
72
79
  }
@@ -66,6 +66,7 @@ describe('CopyBtn', () => {
66
66
  propsData: {
67
67
  label: 'test',
68
68
  textToCopy: 'test',
69
+ tooltipDuration: 100,
69
70
  },
70
71
  global: {
71
72
  plugins: [vuetify],
@@ -76,7 +77,8 @@ describe('CopyBtn', () => {
76
77
 
77
78
  expect(wrapper.vm.tooltip).toBeTruthy()
78
79
 
79
- vi.runAllTimers()
80
+ vi.advanceTimersByTime(101) // tooltipDuration + 1ms pour être sûr
81
+
80
82
  expect(wrapper.vm.tooltip).toBeFalsy()
81
83
  })
82
84
 
@@ -19,13 +19,13 @@ Notre système propose quatre modes de sélection, chacun adapté à des besoins
19
19
  border: '1px solid #e0e0e0',
20
20
  borderRadius: '8px',
21
21
  padding: '20px',
22
- cursor: 'pointer',
23
22
  boxShadow: '0 2px 5px rgba(0,0,0,0.05)',
24
23
  transition: 'all 0.2s ease',
25
24
  backgroundColor: '#fff'
26
25
  }}
27
26
  onClick={() => linkTo('Composants/Formulaires/Selects/SySelect')()}
28
27
  >
28
+ <img style={{ width: '40%', height: 'auto', marginLeft: '35%' }} src="/components/sy-select.svg" alt="SySelect" />
29
29
  <h3 style={{ marginTop: 0, marginBottom: '10px', color: '#1976d2' }}>SySelect</h3>
30
30
  <div>Composant de sélection complet et flexible, supportant la sélection simple ou multiple.</div>
31
31
  <div style={{ marginTop: '10px', color: '#666' }}>
@@ -43,8 +43,9 @@ Notre système propose quatre modes de sélection, chacun adapté à des besoins
43
43
  padding: '5px 10px',
44
44
  color: '#1976d2',
45
45
  borderRadius: '4px',
46
- fontSize: '14px'
47
- }}>
46
+ fontSize: '14px',
47
+ cursor: 'pointer',
48
+ }} onClick={() => linkTo('Composants/Formulaires/Selects/SySelect')()}>
48
49
  Voir la documentation →
49
50
  </span>
50
51
  </div>
@@ -56,13 +57,12 @@ Notre système propose quatre modes de sélection, chacun adapté à des besoins
56
57
  border: '1px solid #e0e0e0',
57
58
  borderRadius: '8px',
58
59
  padding: '20px',
59
- cursor: 'pointer',
60
60
  boxShadow: '0 2px 5px rgba(0,0,0,0.05)',
61
61
  transition: 'all 0.2s ease',
62
62
  backgroundColor: '#fff'
63
63
  }}
64
- onClick={() => linkTo('Composants/Formulaires/Selects/SyInputSelect')()}
65
64
  >
65
+ <img style={{ width: '40%', height: 'auto', marginLeft: '35%' }} src="/components/sy-input-select.svg" alt="SySelect" />
66
66
  <h3 style={{ marginTop: 0, marginBottom: '10px', color: '#7b1fa2' }}>SyInputSelect</h3>
67
67
  <div>Un composant de sélection qui ressemble à un champ de texte standard avec validation intégrée.</div>
68
68
  <div style={{ marginTop: '10px', color: '#666' }}>
@@ -79,8 +79,9 @@ Notre système propose quatre modes de sélection, chacun adapté à des besoins
79
79
  padding: '5px 10px',
80
80
  color: '#7b1fa2',
81
81
  borderRadius: '4px',
82
- fontSize: '14px'
83
- }}>
82
+ fontSize: '14px',
83
+ cursor: 'pointer',
84
+ }} onClick={() => linkTo('Composants/Formulaires/Selects/SyInputSelect')()}>
84
85
  Voir la documentation →
85
86
  </span>
86
87
  </div>
@@ -94,13 +95,12 @@ Notre système propose quatre modes de sélection, chacun adapté à des besoins
94
95
  border: '1px solid #e0e0e0',
95
96
  borderRadius: '8px',
96
97
  padding: '20px',
97
- cursor: 'pointer',
98
98
  boxShadow: '0 2px 5px rgba(0,0,0,0.05)',
99
99
  transition: 'all 0.2s ease',
100
100
  backgroundColor: '#fff'
101
101
  }}
102
- onClick={() => linkTo('Composants/Formulaires/Selects/SyBtnSelect')()}
103
102
  >
103
+ <img style={{ width: '40%', height: 'auto', marginLeft: '35%' }} src="/components/sy-btn-select.svg" alt="SySelect" />
104
104
  <h3 style={{ marginTop: 0, marginBottom: '10px', color: '#00796b' }}>SyBtnSelect</h3>
105
105
  <div>Un composant de sélection sous forme de bouton, idéal pour les menus utilisateur ou les sélecteurs compacts.</div>
106
106
  <div style={{ marginTop: '10px', color: '#666' }}>
@@ -116,8 +116,9 @@ Notre système propose quatre modes de sélection, chacun adapté à des besoins
116
116
  padding: '5px 10px',
117
117
  color: '#00796b',
118
118
  borderRadius: '4px',
119
- fontSize: '14px'
120
- }}>
119
+ fontSize: '14px',
120
+ cursor: 'pointer',
121
+ }} onClick={() => linkTo('Composants/Formulaires/Selects/SyBtnSelect')()}>
121
122
  Voir la documentation →
122
123
  </span>
123
124
  </div>
@@ -129,13 +130,12 @@ Notre système propose quatre modes de sélection, chacun adapté à des besoins
129
130
  border: '1px solid #e0e0e0',
130
131
  borderRadius: '8px',
131
132
  padding: '20px',
132
- cursor: 'pointer',
133
133
  boxShadow: '0 2px 5px rgba(0,0,0,0.05)',
134
134
  transition: 'all 0.2s ease',
135
135
  backgroundColor: '#fff'
136
136
  }}
137
- onClick={() => linkTo('Composants/Formulaires/Selects/SelectBtnField')()}
138
137
  >
138
+ <img style={{ width: '40%', height: 'auto', marginLeft: '35%' }} src="/components/select-btn-field.svg" alt="SySelect" />
139
139
  <h3 style={{ marginTop: 0, marginBottom: '10px', color: '#e65100' }}>SelectBtnField</h3>
140
140
  <div>Un composant de sélection sous forme de boutons toggle, idéal pour les choix visuels et les options mutuellement exclusives.</div>
141
141
  <div style={{ marginTop: '10px', color: '#666' }}>
@@ -151,8 +151,9 @@ Notre système propose quatre modes de sélection, chacun adapté à des besoins
151
151
  padding: '5px 10px',
152
152
  color: '#e65100',
153
153
  borderRadius: '4px',
154
- fontSize: '14px'
155
- }}>
154
+ fontSize: '14px',
155
+ cursor: 'pointer',
156
+ }} onClick={() => linkTo('Composants/Formulaires/Selects/SelectBtnField')()}>
156
157
  Voir la documentation →
157
158
  </span>
158
159
  </div>
@@ -348,3 +349,5 @@ Notre système propose quatre modes de sélection, chacun adapté à des besoins
348
349
  - Adapter le type de sélecteur au contexte d'utilisation (formulaire standard, menu utilisateur, etc.)
349
350
  - Pour SelectBtnField, utiliser la propriété `inline` pour une disposition horizontale des options
350
351
  - Pour SelectBtnField, utiliser la propriété `unique` sur certaines options pour qu'elles désélectionnent automatiquement les autres options lorsqu'elles sont sélectionnées
352
+
353
+ <a href="/?path=/docs/guide-du-dev-guide-de-validation-des-formulaires--docs" className="action-link">Pour plus d'informations sur la validation, consultez le guide de validation des formulaires.</a>