@cnamts/synapse 1.0.23 → 1.0.25

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 (574) hide show
  1. package/README.md +27 -5
  2. package/dist/AutocompleteFilter-D7qBuCAP.js +114 -0
  3. package/dist/AutocompleteFilter-Df9i5mAl.cjs +1 -0
  4. package/dist/DateFilter-BJD6FMev.cjs +1 -0
  5. package/dist/{DateFilter-Dc-gSGwk.js → DateFilter-BitMWrMU.js} +1 -1
  6. package/dist/{NumberFilter-vP38Wp6j.js → NumberFilter-BTLUxw0a.js} +3 -3
  7. package/dist/NumberFilter-DGCzCXzI.cjs +1 -0
  8. package/dist/{PeriodFilter-Ba1uYUnT.js → PeriodFilter-B5rUIPAC.js} +1 -1
  9. package/dist/PeriodFilter-DO_ecTZW.cjs +1 -0
  10. package/dist/SelectFilter-CGwcKWLm.cjs +1 -0
  11. package/dist/SelectFilter-l4QnRcuk.js +135 -0
  12. package/dist/TextFilter-B8nf7xoK.cjs +1 -0
  13. package/dist/{TextFilter-B84dpnoq.js → TextFilter-C9hj6Qrp.js} +7 -7
  14. package/dist/apLightTheme-CEK4iY3f.cjs +1 -0
  15. package/dist/apLightTheme-DnIM24Lv.js +950 -0
  16. package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +7022 -9616
  17. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarousel.d.ts +2 -2
  18. package/dist/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.d.ts +2 -2
  19. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.d.ts +40 -40
  20. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.d.ts +60 -60
  21. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +7168 -9762
  22. package/dist/components/Amelipro/AmeliproStepper/AmeliproStepper.d.ts +2 -2
  23. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +7501 -10095
  24. package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +21 -21
  25. package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +41 -41
  26. package/dist/components/Amelipro/StructureMenu/StructureTabs/StructureTabs.d.ts +2 -2
  27. package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +20 -498
  28. package/dist/components/Customs/Selects/SyAutocomplete/SyAutocomplete.d.ts +117 -151
  29. package/dist/components/Customs/Selects/SyInputSelect/SyInputSelect.d.ts +5 -5
  30. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +12 -16
  31. package/dist/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.d.ts +8 -8
  32. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +31 -506
  33. package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +28 -506
  34. package/dist/components/Customs/SyTabs/SyTabs.d.ts +13 -11
  35. package/dist/components/Customs/SyTextField/SyTextField.d.ts +69 -89
  36. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +627 -791
  37. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +315 -412
  38. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +112 -160
  39. package/dist/components/DatePicker/composables/index.d.ts +1 -0
  40. package/dist/components/DatePicker/composables/useDatePickerFocusTrap.d.ts +11 -0
  41. package/dist/components/DatePicker/composables/useDatePickerState.d.ts +1 -0
  42. package/dist/components/DatePicker/composables/useDateTextField.d.ts +4 -4
  43. package/dist/components/DatePicker/composables/useDateValidation.d.ts +3 -3
  44. package/dist/components/DatePicker/composables/useInputBlurHandler.d.ts +2 -2
  45. package/dist/components/DatePicker/composables/useManualDateValidation.d.ts +2 -2
  46. package/dist/components/FileList/FileList.d.ts +6 -0
  47. package/dist/components/FilterSideBar/FilterSideBar.d.ts +2 -0
  48. package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +17 -17
  49. package/dist/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.d.ts +3 -3
  50. package/dist/components/HeaderToolbar/HeaderToolbar.d.ts +20 -28
  51. package/dist/components/LunarCalendar/useLunarCalendarValidation.d.ts +3 -3
  52. package/dist/components/MonthPicker/MonthPicker.d.ts +86 -127
  53. package/dist/components/MonthPicker/MonthPickerText/MonthPickerInput.d.ts +85 -126
  54. package/dist/components/NirField/NirField.d.ts +202 -278
  55. package/dist/components/NirField/locales.d.ts +10 -10
  56. package/dist/components/NirField/useNirValidation.d.ts +64 -0
  57. package/dist/components/PasswordField/PasswordField.d.ts +8 -9
  58. package/dist/components/PeriodField/PeriodField.d.ts +1352 -1680
  59. package/dist/components/PhoneField/PhoneField.d.ts +88 -129
  60. package/dist/components/RangeField/RangeSlider/RangeSlider.d.ts +12 -12
  61. package/dist/components/SyTextArea/SyTextArea.d.ts +34 -14
  62. package/dist/components/SyTextArea/useDefaultValidationRules.d.ts +11 -0
  63. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +10 -6
  64. package/dist/components/Tables/SyTable/SyTable.d.ts +10 -6
  65. package/dist/components/Tables/common/SyTableFilter.d.ts +2 -3
  66. package/dist/components/Tables/common/SyTablePagination.d.ts +19 -19
  67. package/dist/components/Tables/common/TableHeader.d.ts +5 -0
  68. package/dist/components/Tables/common/filters/AutocompleteFilter.d.ts +120 -0
  69. package/dist/components/Tables/common/filters/locales.d.ts +0 -1
  70. package/dist/components/Tables/common/locales.d.ts +3 -0
  71. package/dist/components/Tables/common/types.d.ts +21 -3
  72. package/dist/components/Tables/common/useClickableTableRow.d.ts +17 -0
  73. package/dist/components/Tables/common/usePagination.d.ts +3 -1
  74. package/dist/components/Tables/common/usePinnedColumns.d.ts +31 -0
  75. package/dist/components/Tables/common/useTableHeaders.d.ts +2 -0
  76. package/dist/components/Tables/common/useTableRowCheckboxAccessibility.d.ts +5 -0
  77. package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +7 -6
  78. package/dist/composables/date/useDatePickerAccessibility.d.ts +1 -1
  79. package/dist/composables/rules/useFieldValidation.d.ts +4 -4
  80. package/dist/composables/unifyValidation/documentationValidationProps.d.ts +230 -0
  81. package/dist/composables/unifyValidation/useCustomValidation.d.ts +8 -0
  82. package/dist/composables/unifyValidation/useValidation.d.ts +102 -0
  83. package/dist/composables/unifyValidation/useVuetifyValidation.d.ts +18 -0
  84. package/dist/composables/useFormFieldErrorHandling.d.ts +2 -2
  85. package/dist/composables/validation/useFormValidation.d.ts +11 -2
  86. package/dist/composables/validation/useValidation.d.ts +19 -9
  87. package/dist/design-system-v3.d.ts +2 -0
  88. package/dist/design-system-v3.js +186 -187
  89. package/dist/design-system-v3.umd.cjs +1 -1066
  90. package/dist/designTokens/tokens/amelipro/apColors.d.ts +10 -10
  91. package/dist/designTokens/tokens/amelipro/apColors2026.d.ts +1 -2
  92. package/dist/designTokens/tokens/amelipro/apContextual.d.ts +44 -0
  93. package/dist/designTokens/tokens/amelipro/apSemantic.d.ts +1 -1
  94. package/dist/designTokens/tokens/baseColors.d.ts +127 -0
  95. package/dist/designTokens/tokens/baseContextualTokens.d.ts +50 -0
  96. package/dist/designTokens/tokens/cnam/cnamColors.d.ts +10 -10
  97. package/dist/designTokens/tokens/cnam/cnamSemantic.d.ts +1 -1
  98. package/dist/designTokens/tokens/pa/paColors.d.ts +1 -166
  99. package/dist/designTokens/tokens/pa/paSemantic.d.ts +1 -1
  100. package/dist/designTokens/utils/buildColorClassMap.d.ts +12 -0
  101. package/dist/designTokens/utils/createFlattenTheme.d.ts +1 -3
  102. package/dist/designTokens/utils/index.d.ts +2 -2
  103. package/dist/main-ByDPHpae.cjs +1067 -0
  104. package/dist/main-Cpx8Co6H.js +38869 -0
  105. package/dist/main.d.ts +0 -1
  106. package/dist/synapse.css +1 -0
  107. package/dist/tooth-11-D3sLWv2n.cjs +1 -0
  108. package/dist/tooth-12-CXrLuH03.cjs +1 -0
  109. package/dist/tooth-13-BSfo5fpT.cjs +1 -0
  110. package/dist/tooth-14-DMzulx0h.cjs +1 -0
  111. package/dist/tooth-15-BKRFVi-9.cjs +1 -0
  112. package/dist/tooth-16-CpuxAbuM.cjs +1 -0
  113. package/dist/tooth-17-BPoahUdg.cjs +1 -0
  114. package/dist/tooth-18-DhHJz8sy.cjs +1 -0
  115. package/dist/tooth-21-Dgd5hn_X.cjs +1 -0
  116. package/dist/tooth-22-C2Tn19sB.cjs +1 -0
  117. package/dist/tooth-23-C9uaaSGb.cjs +1 -0
  118. package/dist/tooth-24-BrK9UGpf.cjs +1 -0
  119. package/dist/tooth-25-CE_EfGNp.cjs +1 -0
  120. package/dist/tooth-26-Ctv4i9Fy.cjs +1 -0
  121. package/dist/tooth-27-C5J7JkWM.cjs +1 -0
  122. package/dist/tooth-28-Z9oWqjo0.cjs +1 -0
  123. package/dist/tooth-31-BrYqmkTi.cjs +1 -0
  124. package/dist/tooth-32-BNNR0oCZ.cjs +1 -0
  125. package/dist/tooth-33-DuxvqO2J.cjs +1 -0
  126. package/dist/tooth-34-BCSCXMB6.cjs +1 -0
  127. package/dist/tooth-35-BLUXkX88.cjs +1 -0
  128. package/dist/tooth-36-IrKHYqlA.cjs +1 -0
  129. package/dist/tooth-37-BYqpdMwo.cjs +1 -0
  130. package/dist/tooth-38-B_eNXXdu.cjs +1 -0
  131. package/dist/tooth-41-Ddva4Ot8.cjs +1 -0
  132. package/dist/tooth-42-szcDqlM0.cjs +1 -0
  133. package/dist/tooth-43-B3ka6rQm.cjs +1 -0
  134. package/dist/tooth-44-CazyQucj.cjs +1 -0
  135. package/dist/tooth-45-B4HQtc8n.cjs +1 -0
  136. package/dist/tooth-46-BPM40gbG.cjs +1 -0
  137. package/dist/tooth-47-Dvr20dlh.cjs +1 -0
  138. package/dist/tooth-48-Bd8ljGsF.cjs +1 -0
  139. package/dist/tooth-51-OBpwCOF3.cjs +1 -0
  140. package/dist/tooth-52-aKxyHcmq.cjs +1 -0
  141. package/dist/tooth-53-vCwJjTOc.cjs +1 -0
  142. package/dist/tooth-54-DsWu2iFy.cjs +1 -0
  143. package/dist/tooth-55-BxC1X2Dn.cjs +1 -0
  144. package/dist/tooth-61-BbLvxMQi.cjs +1 -0
  145. package/dist/tooth-62-CmTkWczP.cjs +1 -0
  146. package/dist/tooth-63-DI7l_2qI.cjs +1 -0
  147. package/dist/tooth-64-B21sOsJh.cjs +1 -0
  148. package/dist/tooth-65-D2ZC2VEr.cjs +1 -0
  149. package/dist/tooth-71-D473PPO5.cjs +1 -0
  150. package/dist/tooth-72-Drh1wnNu.cjs +1 -0
  151. package/dist/tooth-73-DzlwYI23.cjs +1 -0
  152. package/dist/tooth-74-8aGvcZPg.cjs +1 -0
  153. package/dist/tooth-75-BFK7At_r.cjs +1 -0
  154. package/dist/tooth-81-BZmR-I0M.cjs +1 -0
  155. package/dist/tooth-82-euVfUUZV.cjs +1 -0
  156. package/dist/tooth-83-KV010j64.cjs +1 -0
  157. package/dist/tooth-84-BBg1RjhZ.cjs +1 -0
  158. package/dist/tooth-85-Cr-kc1wM.cjs +1 -0
  159. package/dist/utils/functions/classToHex.d.ts +1 -1
  160. package/dist/utils/functions/createHexResolver.d.ts +16 -0
  161. package/dist/vuetifyConfig.js +522 -0
  162. package/dist/vuetifyConfig.umd.cjs +1 -0
  163. package/package.json +37 -20
  164. package/src/assets/amelipro/apTokens2026.scss +5 -5
  165. package/src/assets/overrides/_breakpoints.scss +25 -0
  166. package/src/assets/overrides/_btns.scss +0 -8
  167. package/src/assets/overrides/_forms.scss +1 -3
  168. package/src/assets/overrides/_icons.scss +14 -10
  169. package/src/assets/overrides/_otp.scss +41 -0
  170. package/src/assets/overrides/_tables.scss +11 -20
  171. package/src/assets/overrides/_tooltips.scss +17 -7
  172. package/src/assets/overrides/_typography.scss +35 -47
  173. package/src/assets/overrides/_utilities.scss +43 -47
  174. package/src/assets/themes.scss +1 -0
  175. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/AmeliproAccordionTemplate.vue +20 -20
  176. package/src/components/Amelipro/AmeliproAccordionFrieze/AmeliproAccordionFrieze.vue +12 -14
  177. package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.vue +4 -6
  178. package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/AmeliproAccordionResultTemplate.vue +5 -5
  179. package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.vue +4 -6
  180. package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.vue +4 -6
  181. package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/__snapshots__/AmeliproAutoCompleteField.spec.ts.snap +2 -2
  182. package/src/components/Amelipro/AmeliproBadge/AmeliproBadge.vue +4 -6
  183. package/src/components/Amelipro/AmeliproBreadcrumb/AmeliproBreadcrumb.vue +1 -3
  184. package/src/components/Amelipro/AmeliproBtn/AmeliproBtn.vue +4 -6
  185. package/src/components/Amelipro/AmeliproCallback/AmeliproCallback.vue +2 -2
  186. package/src/components/Amelipro/AmeliproCard/AmeliproCard.vue +31 -31
  187. package/src/components/Amelipro/AmeliproCarousel/AmeliproCarousel.vue +5 -7
  188. package/src/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.vue +13 -15
  189. package/src/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.vue +23 -23
  190. package/src/components/Amelipro/AmeliproChips/AmeliproChips.vue +1 -3
  191. package/src/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.vue +17 -12
  192. package/src/components/Amelipro/AmeliproClickableTile/tests/__snapshots__/AmeliproClickableTile.spec.ts.snap +2 -2
  193. package/src/components/Amelipro/AmeliproCopyBtn/AmeliproCopyBtn.vue +4 -6
  194. package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.vue +13 -13
  195. package/src/components/Amelipro/AmeliproDentalChart/AmeliproDentalChart.vue +4 -2
  196. package/src/components/Amelipro/AmeliproDentalChart/AmeliproTooth/AmeliproTooth.vue +4 -4
  197. package/src/components/Amelipro/AmeliproDialog/AmeliproDialog.vue +5 -7
  198. package/src/components/Amelipro/AmeliproDisclosure/AmeliproDisclosure.vue +1 -3
  199. package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.vue +2 -4
  200. package/src/components/Amelipro/AmeliproFilePreview/AmeliproFilePreview.vue +4 -6
  201. package/src/components/Amelipro/AmeliproFilters/AmeliproFilters.vue +13 -13
  202. package/src/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.vue +3 -5
  203. package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.vue +1 -3
  204. package/src/components/Amelipro/AmeliproHeader/AmeliproHeader.vue +2 -4
  205. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBar.vue +1 -3
  206. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/AmeliproHeaderBrandSection.vue +20 -16
  207. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/__tests__/__snapshots__/AmeliproHeaderBrandSection.spec.ts.snap +2 -2
  208. package/src/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.vue +2 -4
  209. package/src/components/Amelipro/AmeliproIllustratedDataTile/AmeliproIllustratedDataTile.vue +5 -7
  210. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.vue +6 -8
  211. package/src/components/Amelipro/AmeliproMailTile/AmeliproMailTile.vue +14 -14
  212. package/src/components/Amelipro/AmeliproMenu/AmeliproMenu.vue +11 -13
  213. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproDropdownMenu/AmeliproDropdownMenu.vue +2 -4
  214. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproMessagingLayout.vue +8 -8
  215. package/src/components/Amelipro/AmeliproMultipleFoldingCard/AmeliproMultipleFoldingCard.vue +40 -40
  216. package/src/components/Amelipro/AmeliproNumberedCard/AmeliproNumberedCard.vue +27 -27
  217. package/src/components/Amelipro/AmeliproOnboarding/AmeliproOnboarding.vue +3 -5
  218. package/src/components/Amelipro/AmeliproPageLayout/AmeliproPageLayout.vue +2 -4
  219. package/src/components/Amelipro/AmeliproPagination/AmeliproPagination.vue +2 -4
  220. package/src/components/Amelipro/AmeliproPagination/AmeliproPaginationBtn/AmeliproPaginationBtn.vue +3 -5
  221. package/src/components/Amelipro/AmeliproPatientBanner/AmeliproPatientBanner.vue +1 -3
  222. package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.vue +2 -4
  223. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLogin.vue +4 -4
  224. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLoginForm/AmeliproPatientLoginForm.vue +1 -3
  225. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.vue +3 -5
  226. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.vue +3 -5
  227. package/src/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.vue +23 -23
  228. package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.vue +4 -6
  229. package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.vue +12 -22
  230. package/src/components/Amelipro/AmeliproStateTile/AmeliproStateTile.vue +10 -12
  231. package/src/components/Amelipro/AmeliproStepper/AmeliproStepper.vue +17 -17
  232. package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +8 -10
  233. package/src/components/Amelipro/AmeliproTabs/AmeliproTabBtn/AmeliproTabBtn.vue +6 -8
  234. package/src/components/Amelipro/AmeliproTabs/AmeliproTabs.vue +4 -4
  235. package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.vue +4 -6
  236. package/src/components/Amelipro/AmeliproTextArea/__tests__/__snapshots__/AmeliproTextArea.spec.ts.snap +2 -2
  237. package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.vue +7 -9
  238. package/src/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.vue +3 -5
  239. package/src/components/Amelipro/AmeliproTooltips/AmeliproTooltips.vue +0 -2
  240. package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.vue +6 -6
  241. package/src/components/Amelipro/ServiceMenu/ServiceMenu.vue +2 -2
  242. package/src/components/Amelipro/StructureMenu/StructureBtn/StructureBtn.vue +4 -4
  243. package/src/components/Amelipro/StructureMenu/StructureItem/StructureItem.vue +4 -6
  244. package/src/components/Amelipro/StructureMenu/StructureMenu.vue +2 -2
  245. package/src/components/Amelipro/StructureMenu/StructureTabs/StructureTabs.vue +2 -2
  246. package/src/components/Amelipro/UserMenu/UserMenu.vue +1 -3
  247. package/src/components/BackBtn/tests/BackBtn.visual.cy.ts +43 -0
  248. package/src/components/BackBtn/tests/__snapshots__/back-btn-custom-bg.snap.png +0 -0
  249. package/src/components/BackBtn/tests/__snapshots__/back-btn-dark-mode.snap.png +0 -0
  250. package/src/components/BackBtn/tests/__snapshots__/back-btn-default.snap.png +0 -0
  251. package/src/components/BackBtn/tests/__snapshots__/back-btn-no-icon.snap.png +0 -0
  252. package/src/components/Captcha/Captcha.vue +1 -3
  253. package/src/components/Captcha/accessibilite/Accessibility.mdx +86 -8
  254. package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +12 -12
  255. package/src/components/ChipList/ChipList.stories.ts +0 -15
  256. package/src/components/ChipList/ChipList.vue +19 -17
  257. package/src/components/ChipList/accessibilite/Accessibility.mdx +83 -10
  258. package/src/components/ChipList/tests/ChipList.a11y.spec.ts +41 -0
  259. package/src/components/CookiesSelection/CookiesInformation/CookiesInformation.vue +0 -2
  260. package/src/components/CopyBtn/CopyBtn.vue +1 -3
  261. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.vue +17 -17
  262. package/src/components/Customs/Selects/SelectBtnField/accessibilite/Accessibility.mdx +0 -9
  263. package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.spec.ts +31 -0
  264. package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.stories.ts +66 -0
  265. package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.vue +28 -7
  266. package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.a11y.spec.ts +18 -0
  267. package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.spec.ts +209 -0
  268. package/src/components/Customs/Selects/SyAutocomplete/utils/ariaManager.ts +14 -10
  269. package/src/components/Customs/Selects/SyInputSelect/SyInputSelect.stories.ts +4 -4
  270. package/src/components/Customs/Selects/SyInputSelect/SyInputSelect.vue +12 -15
  271. package/src/components/Customs/Selects/SyInputSelect/tests/SyInputSelect.spec.ts +10 -10
  272. package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +1 -39
  273. package/src/components/Customs/Selects/SySelect/SySelect.vue +274 -71
  274. package/src/components/Customs/Selects/SySelect/accessibilite/Accessibility.mdx +199 -269
  275. package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +89 -0
  276. package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.vue +6 -9
  277. package/src/components/Customs/SyCheckbox/SyCheckbox.mdx +5 -0
  278. package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +10 -16
  279. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +45 -11
  280. package/src/components/Customs/SyCheckbox/accessibilite/Accessibility.mdx +53 -3
  281. package/src/components/Customs/SyCheckbox/tests/SyCheckbox.a11y.spec.ts +134 -2
  282. package/src/components/Customs/SyForm/SyForm.stories.ts +31 -5
  283. package/src/components/Customs/SyPagination/SyPagination.vue +0 -2
  284. package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +4 -7
  285. package/src/components/Customs/SyTabs/SyTabs.mdx +0 -58
  286. package/src/components/Customs/SyTabs/SyTabs.stories.ts +32 -33
  287. package/src/components/Customs/SyTabs/SyTabs.vue +87 -67
  288. package/src/components/Customs/SyTabs/accessibilite/Accessibility.mdx +83 -23
  289. package/src/components/Customs/SyTabs/tests/SyTabs.a11y.spec.ts +88 -0
  290. package/src/components/Customs/SyTabs/tests/SyTabs.spec.ts +46 -1
  291. package/src/components/Customs/SyTextField/SyTextField.mdx +1 -1
  292. package/src/components/Customs/SyTextField/SyTextField.stories.ts +50 -68
  293. package/src/components/Customs/SyTextField/SyTextField.vue +156 -161
  294. package/src/components/Customs/SyTextField/tests/SyTextField.a11y.spec.ts +32 -0
  295. package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +120 -11
  296. package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +62 -58
  297. package/src/components/DatePicker/CalendarMode/DatePicker.vue +342 -237
  298. package/src/components/DatePicker/CalendarMode/accessibilite/Accessibility.mdx +82 -0
  299. package/src/components/DatePicker/CalendarMode/tests/DatePicker.a11y.spec.ts +141 -0
  300. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +2 -56
  301. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +215 -175
  302. package/src/components/DatePicker/ComplexDatePicker/accessibilite/Accessibility.mdx +76 -0
  303. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +33 -10
  304. package/src/components/DatePicker/DatePickerValidationExample/CalendarMode.stories.ts +8 -8
  305. package/src/components/DatePicker/DatePickerValidationExample/ComplexDatePicker.stories.ts +106 -8
  306. package/src/components/DatePicker/DatePickerValidationExample/DateTextInput.stories.ts +12 -11
  307. package/src/components/DatePicker/DatePickerValidationExample/MultiMode.stories.ts +12 -12
  308. package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +0 -12
  309. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +71 -67
  310. package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +3 -0
  311. package/src/components/DatePicker/DateTextInput/accessibilite/Accessibility.mdx +66 -0
  312. package/src/components/DatePicker/DateTextInput/tests/DateTextInput.spec.ts +52 -1
  313. package/src/components/DatePicker/composables/index.ts +1 -0
  314. package/src/components/DatePicker/composables/tests/useCalendarKeyboardNavigation.spec.ts +109 -65
  315. package/src/components/DatePicker/composables/tests/useDatePickerFocusTrap.spec.ts +138 -0
  316. package/src/components/DatePicker/composables/tests/useDatePickerState.spec.ts +53 -0
  317. package/src/components/DatePicker/composables/tests/useDateValidation.spec.ts +74 -18
  318. package/src/components/DatePicker/composables/tests/useInputBlurHandler.spec.ts +39 -0
  319. package/src/components/DatePicker/composables/tests/useManualDateValidation.spec.ts +91 -0
  320. package/src/components/DatePicker/composables/useCalendarKeyboardNavigation.ts +442 -36
  321. package/src/components/DatePicker/composables/useDatePickerFocusTrap.ts +92 -0
  322. package/src/components/DatePicker/composables/useDatePickerState.ts +24 -0
  323. package/src/components/DatePicker/composables/useDateTextField.ts +6 -6
  324. package/src/components/DatePicker/composables/useDateValidation.ts +36 -35
  325. package/src/components/DatePicker/composables/useInputBlurHandler.ts +3 -3
  326. package/src/components/DatePicker/composables/useManualDateValidation.ts +6 -2
  327. package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +9 -8
  328. package/src/components/DatePicker/playground/DatePickerHolidayRule.vue +1 -1
  329. package/src/components/DiacriticPicker/accessibilite/Accessibility.mdx +76 -8
  330. package/src/components/DialogBox/DialogBox.vue +3 -5
  331. package/src/components/DialogBox/tests/DialogBox.visual.cy.ts +76 -0
  332. package/src/components/DialogBox/tests/__snapshots__/dialog-box-custom-texts.snap.png +0 -0
  333. package/src/components/DialogBox/tests/__snapshots__/dialog-box-default.snap.png +0 -0
  334. package/src/components/DialogBox/tests/__snapshots__/dialog-box-no-actions.snap.png +0 -0
  335. package/src/components/FileList/FileList.vue +9 -2
  336. package/src/components/FileList/UploadItem/UploadItem.vue +11 -13
  337. package/src/components/FileList/tests/FileList.spec.ts +47 -0
  338. package/src/components/FileUpload/FileUpload.vue +3 -5
  339. package/src/components/FileUpload/FileUploadContent.vue +3 -5
  340. package/src/components/FilterInline/FilterInline.vue +1 -3
  341. package/src/components/FilterSideBar/FilterSideBar.mdx +44 -1
  342. package/src/components/FilterSideBar/FilterSideBar.stories.ts +105 -1
  343. package/src/components/FilterSideBar/FilterSideBar.vue +7 -0
  344. package/src/components/FilterSideBar/tests/FilterSideBar.a11y.spec.ts +54 -1
  345. package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +42 -0
  346. package/src/components/FooterBar/FooterBar.vue +9 -13
  347. package/src/components/FranceConnectBtn/FranceConnectBtn.vue +1 -1
  348. package/src/components/HeaderBar/HeaderBar.stories.ts +14 -2
  349. package/src/components/HeaderBar/HeaderBar.vue +2 -3
  350. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderBurgerMenu.vue +2 -3
  351. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/HeaderMenuItem.vue +2 -3
  352. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuSection/HeaderMenuSection.vue +0 -1
  353. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.vue +8 -9
  354. package/src/components/HeaderBar/HeaderBurgerMenu/menu.scss +0 -8
  355. package/src/components/HeaderBar/HeaderBurgerMenu/tests/HeaderBurgerMenu.visual.cy.ts +196 -0
  356. package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/header-burger-menu-generated-submenu-open.snap.png +0 -0
  357. package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/header-burger-menu-generated.snap.png +0 -0
  358. package/src/components/HeaderBar/HeaderLogo/HeaderLogo.vue +0 -1
  359. package/src/components/HeaderBar/HeaderMenuBtn/HeaderMenuBtn.vue +6 -7
  360. package/src/components/HeaderBar/tests/HeaderBar.visual.cy.ts +81 -0
  361. package/src/components/HeaderBar/tests/__snapshots__/header-bar-custom-width.snap.png +0 -0
  362. package/src/components/HeaderBar/tests/__snapshots__/header-bar-default.snap.png +0 -0
  363. package/src/components/HeaderBar/tests/__snapshots__/header-bar-no-sticky.snap.png +0 -0
  364. package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-prepend.snap.png +0 -0
  365. package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-side.snap.png +0 -0
  366. package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-subtitle.snap.png +0 -0
  367. package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +12 -3
  368. package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +15 -8
  369. package/src/components/HeaderToolbar/HeaderToolbar.vue +6 -7
  370. package/src/components/LangBtn/LangBtn.vue +2 -4
  371. package/src/components/Logo/accessibilite/Accessibility.mdx +73 -11
  372. package/src/components/Logo/tests/Logo.visual.cy.ts +57 -0
  373. package/src/components/Logo/tests/__snapshots__/logo-avatar.snap.png +0 -0
  374. package/src/components/Logo/tests/__snapshots__/logo-dark.snap.png +0 -0
  375. package/src/components/Logo/tests/__snapshots__/logo-default.snap.png +0 -0
  376. package/src/components/Logo/tests/__snapshots__/logo-no-organism.snap.png +0 -0
  377. package/src/components/Logo/tests/__snapshots__/logo-no-signature.snap.png +0 -0
  378. package/src/components/Logo/tests/__snapshots__/logo-risque-pro.snap.png +0 -0
  379. package/src/components/LogoBrandSection/LogoBrandSection.vue +2 -2
  380. package/src/components/LogoBrandSection/accessibilite/Accessibility.mdx +85 -9
  381. package/src/components/LunarCalendar/tests/LunarCalendar.spec.ts +3 -1
  382. package/src/components/LunarCalendar/useLunarCalendarValidation.ts +4 -5
  383. package/src/components/MonthPicker/MonthPickerVisual/VisualPickerHeader.vue +1 -1
  384. package/src/components/MonthPicker/tests/MonthPicker.spec.ts +2 -1
  385. package/src/components/MonthPicker/tests/__snapshots__/MonthPicker.spec.ts.snap +7 -7
  386. package/src/components/NirField/NirField.stories.ts +6 -2
  387. package/src/components/NirField/NirField.vue +67 -265
  388. package/src/components/NirField/accessibilite/Accessibility.mdx +102 -7
  389. package/src/components/NirField/locales.ts +1 -1
  390. package/src/components/NirField/tests/NirField.spec.ts +124 -0
  391. package/src/components/NirField/tests/useNirValidation.spec.ts +449 -0
  392. package/src/components/NirField/useNirValidation.ts +277 -0
  393. package/src/components/NotificationBar/Notification/Notification.vue +5 -7
  394. package/src/components/NotificationBar/NotificationBar.vue +1 -3
  395. package/src/components/PaginatedTable/PaginatedTable.vue +2 -3
  396. package/src/components/PaginatedTable/Pagination.vue +3 -5
  397. package/src/components/PasswordField/PasswordField.stories.ts +4 -4
  398. package/src/components/PasswordField/PasswordField.vue +26 -34
  399. package/src/components/PasswordField/tests/PasswordField.spec.ts +6 -3
  400. package/src/components/PeriodField/PeriodField.stories.ts +4 -4
  401. package/src/components/PeriodField/PeriodField.vue +57 -57
  402. package/src/components/PeriodField/__tests__/PeriodField.async.spec.ts +32 -0
  403. package/src/components/PeriodField/accessibilite/Accessibility.mdx +68 -8
  404. package/src/components/PeriodField/tests/PeriodField.spec.ts +28 -2
  405. package/src/components/PhoneField/PhoneField.vue +8 -9
  406. package/src/components/PhoneField/tests/PhoneField.spec.ts +1 -0
  407. package/src/components/RangeField/RangeField.vue +6 -0
  408. package/src/components/RangeField/RangeSlider/RangeSlider.vue +0 -2
  409. package/src/components/RangeField/RangeSlider/Tooltip/Tooltip.vue +1 -1
  410. package/src/components/RangeField/tests/RangeField.visual.cy.ts +65 -0
  411. package/src/components/RangeField/tests/__snapshots__/range-field-custom-bg.snap.png +0 -0
  412. package/src/components/RangeField/tests/__snapshots__/range-field-custom-range.snap.png +0 -0
  413. package/src/components/RangeField/tests/__snapshots__/range-field-default.snap.png +0 -0
  414. package/src/components/RangeField/tests/__snapshots__/range-field-step.snap.png +0 -0
  415. package/src/components/RangeField/tests/__snapshots__/range-field-with-label.snap.png +0 -0
  416. package/src/components/RatingPicker/EmotionPicker/EmotionPicker.vue +6 -8
  417. package/src/components/RatingPicker/StarsPicker/StarsPicker.vue +3 -5
  418. package/src/components/SearchListField/SearchListField.vue +0 -2
  419. package/src/components/SkipLink/SkipLink.vue +2 -4
  420. package/src/components/SocialMediaLinks/SocialMediaLinks.vue +6 -6
  421. package/src/components/SubHeader/SubHeader.vue +1 -1
  422. package/src/components/SyAlert/SyAlert.vue +7 -9
  423. package/src/components/SyAlert/tests/SyAlert.visual.cy.ts +46 -0
  424. package/src/components/SyAlert/tests/__snapshots__/sy-alert-closable.snap.png +0 -0
  425. package/src/components/SyAlert/tests/__snapshots__/sy-alert-error.snap.png +0 -0
  426. package/src/components/SyAlert/tests/__snapshots__/sy-alert-info.snap.png +0 -0
  427. package/src/components/SyAlert/tests/__snapshots__/sy-alert-success.snap.png +0 -0
  428. package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-outlined.snap.png +0 -0
  429. package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-tonal.snap.png +0 -0
  430. package/src/components/SyAlert/tests/__snapshots__/sy-alert-warning.snap.png +0 -0
  431. package/src/components/SyBtnMenu/SyBtnMenu.vue +2 -4
  432. package/src/components/SyTextArea/SyTextArea.stories.ts +138 -2
  433. package/src/components/SyTextArea/SyTextArea.vue +53 -23
  434. package/src/components/SyTextArea/tests/SyTextArea.spec.ts +126 -3
  435. package/src/components/SyTextArea/useDefaultValidationRules.ts +74 -0
  436. package/src/components/TableToolbar/TableToolbar.vue +6 -8
  437. package/src/components/Tables/SyServerTable/SyServerTable.mdx +25 -0
  438. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +839 -1
  439. package/src/components/Tables/SyServerTable/SyServerTable.vue +154 -95
  440. package/src/components/Tables/SyServerTable/tests/SyServerTable.a11y.spec.ts +81 -0
  441. package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +390 -0
  442. package/src/components/Tables/SyTable/SyTable.mdx +25 -0
  443. package/src/components/Tables/SyTable/SyTable.stories.ts +556 -1
  444. package/src/components/Tables/SyTable/SyTable.vue +136 -60
  445. package/src/components/Tables/SyTable/tests/SyTable.a11y.spec.ts +79 -0
  446. package/src/components/Tables/SyTable/tests/SyTable.spec.ts +382 -0
  447. package/src/components/Tables/common/SyTableFilter.vue +49 -4
  448. package/src/components/Tables/common/SyTablePagination.vue +142 -19
  449. package/src/components/Tables/common/TableHeader.vue +45 -4
  450. package/src/components/Tables/common/filters/AutocompleteFilter.vue +160 -0
  451. package/src/components/Tables/common/filters/NumberFilter.vue +1 -1
  452. package/src/components/Tables/common/filters/SelectFilter.vue +11 -12
  453. package/src/components/Tables/common/filters/TextFilter.vue +1 -1
  454. package/src/components/Tables/common/filters/getFilterComponent.ts +8 -1
  455. package/src/components/Tables/common/filters/locales.ts +0 -1
  456. package/src/components/Tables/common/filters/tests/AutocompleteFilter.a11y.spec.ts +110 -0
  457. package/src/components/Tables/common/filters/tests/AutocompleteFilter.spec.ts +203 -0
  458. package/src/components/Tables/common/filters/tests/SelectFilter.a11y.spec.ts +104 -0
  459. package/src/components/Tables/common/filters/tests/SelectFilter.spec.ts +152 -16
  460. package/src/components/Tables/common/locales.ts +3 -0
  461. package/src/components/Tables/common/tableFilterUtils.ts +3 -0
  462. package/src/components/Tables/common/tableStyles.scss +60 -19
  463. package/src/components/Tables/common/tests/SyTablePagination.spec.ts +18 -0
  464. package/src/components/Tables/common/tests/TableHeader.spec.ts +39 -0
  465. package/src/components/Tables/common/tests/filterByRange.spec.ts +2 -1
  466. package/src/components/Tables/common/types.ts +15 -4
  467. package/src/components/Tables/common/useClickableTableRow.ts +103 -0
  468. package/src/components/Tables/common/usePagination.ts +13 -0
  469. package/src/components/Tables/common/usePinnedColumns.ts +237 -0
  470. package/src/components/Tables/common/useTableHeaders.ts +52 -30
  471. package/src/components/Tables/common/useTableRowCheckboxAccessibility.ts +41 -0
  472. package/src/components/UploadWorkflow/UploadWorkflow.vue +1 -0
  473. package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +23 -0
  474. package/src/components/UploadWorkflow/tests/__snapshots__/UploadWorkflow.spec.ts.snap +66 -0
  475. package/src/components/UploadWorkflow/useFileList.ts +3 -0
  476. package/src/components/UserMenuBtn/UserMenuBtn.vue +1 -3
  477. package/src/composables/date/tests/useDatePickerAccessibility.spec.ts +2 -6
  478. package/src/composables/date/useDatePickerAccessibility.ts +42 -207
  479. package/src/composables/rules/tests/useFieldValidation.spec.ts +120 -120
  480. package/src/composables/rules/useFieldValidation.ts +34 -17
  481. package/src/composables/unifyValidation/documentationValidationProps.ts +235 -0
  482. package/src/composables/unifyValidation/tests/useCustomValidation.spec.ts +601 -0
  483. package/src/composables/unifyValidation/tests/useValidation.spec.ts +2048 -0
  484. package/src/composables/unifyValidation/tests/useVuetifyValidation.spec.ts +184 -0
  485. package/src/composables/unifyValidation/useCustomValidation.ts +95 -0
  486. package/src/composables/unifyValidation/useValidation.ts +190 -0
  487. package/src/composables/unifyValidation/useVuetifyValidation.ts +54 -0
  488. package/src/composables/useFormFieldErrorHandling.ts +4 -7
  489. package/src/composables/validation/tests/useFormValidation.spec.ts +14 -0
  490. package/src/composables/validation/tests/useValidation.spec.ts +116 -21
  491. package/src/composables/validation/useFormValidation.ts +20 -13
  492. package/src/composables/validation/useValidatable.ts +8 -1
  493. package/src/composables/validation/useValidation.ts +151 -99
  494. package/src/composantsVuetify/Introduction.mdx +48 -0
  495. package/src/composantsVuetify/VBreadcrumbs/VBreadcrumbs.mdx +28 -0
  496. package/src/composantsVuetify/VBreadcrumbs/v-breadcrumbs.stories.ts +108 -0
  497. package/src/composantsVuetify/VBtn/VBtn.mdx +72 -0
  498. package/src/composantsVuetify/VBtn/v-btn.stories.ts +121 -0
  499. package/src/composantsVuetify/VOtpInput/VOtpInput.mdx +39 -0
  500. package/src/composantsVuetify/VOtpInput/v-otp-input.stories.ts +56 -0
  501. package/src/composantsVuetify/VSkeletonLoader/VSkeletonLoader.mdx +42 -0
  502. package/src/composantsVuetify/VSkeletonLoader/v-skeleton-loader.stories.ts +77 -0
  503. package/src/composantsVuetify/VSwitch/VSwitch.mdx +47 -0
  504. package/src/composantsVuetify/VSwitch/v-switch.stories.ts +166 -0
  505. package/src/composantsVuetify/VTooltip/VTooltip.mdx +32 -0
  506. package/src/composantsVuetify/VTooltip/v-tooltip.stories.ts +95 -0
  507. package/src/designTokens/tests/buildColorClassMap.spec.ts +31 -0
  508. package/src/designTokens/tests/generateScssTokens.spec.ts +12 -0
  509. package/src/designTokens/tests/themeUtils.spec.ts +53 -0
  510. package/src/designTokens/tokens/amelipro/apColors.ts +8 -130
  511. package/src/designTokens/tokens/amelipro/apColors2026.ts +3 -15
  512. package/src/designTokens/tokens/amelipro/apContextual.ts +55 -47
  513. package/src/designTokens/tokens/amelipro/apLightTheme.ts +1 -1
  514. package/src/designTokens/tokens/amelipro/apSemantic.ts +1 -1
  515. package/src/designTokens/tokens/baseColors.ts +129 -0
  516. package/src/designTokens/tokens/baseContextualTokens.ts +52 -0
  517. package/src/designTokens/tokens/cnam/cnamColors.ts +3 -125
  518. package/src/designTokens/tokens/cnam/cnamContextual.ts +4 -48
  519. package/src/designTokens/tokens/cnam/cnamLightTheme.ts +1 -1
  520. package/src/designTokens/tokens/cnam/cnamSemantic.ts +3 -3
  521. package/src/designTokens/tokens/pa/paColors.ts +2 -166
  522. package/src/designTokens/tokens/pa/paContextual.ts +3 -48
  523. package/src/designTokens/tokens/pa/paLightTheme.ts +1 -1
  524. package/src/designTokens/tokens/pa/paSemantic.ts +2 -2
  525. package/src/designTokens/utils/buildColorClassMap.ts +34 -0
  526. package/src/designTokens/utils/convertSemanticsToken.ts +8 -11
  527. package/src/designTokens/utils/createFlattenTheme.ts +15 -7
  528. package/src/designTokens/utils/index.ts +2 -2
  529. package/src/main.ts +0 -2
  530. package/src/stories/Accessibilite/AuditDesignSystem.mdx +0 -11
  531. package/src/stories/Accessibilite/DesignSystem/Avancement.mdx +433 -0
  532. package/src/stories/Accessibilite/DesignSystem/a11y-status.json +692 -0
  533. package/src/stories/Accessibilite/KitDePreAudit/Echantillonnage.mdx +8 -1
  534. package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +51 -10
  535. package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +16 -9
  536. package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +48 -58
  537. package/src/stories/Components/Components.stories.ts +113 -9
  538. package/src/stories/Demarrer/Accueil.stories.ts +3 -3
  539. package/src/stories/Demarrer/EnrichirLeDesignSystem.mdx +4 -9
  540. package/src/stories/Demarrer/EnrichirLeDesignSystem.stories.ts +28 -0
  541. package/src/stories/Demarrer/Releases.stories.ts +48 -5
  542. package/src/stories/DesignTokens/ColorDisplay.vue +6 -5
  543. package/src/stories/DesignTokens/ColorIntegrationExample.vue +2 -4
  544. package/src/stories/DesignTokens/colors.stories.ts +5 -6
  545. package/src/stories/GuideDuDev/Amelipro.mdx +15 -0
  546. package/src/stories/GuideDuDev/Amelipro.stories.ts +209 -0
  547. package/src/stories/GuideDuDev/CreateVuetifyInstance.mdx +95 -0
  548. package/src/stories/GuideDuDev/Theme.mdx +36 -26
  549. package/src/stories/GuideDuDev/moduleDeNotification.mdx +3 -2
  550. package/src/stories/GuideDuDev/vuetifyOptions.mdx +3 -3
  551. package/src/stories/styles/accessibility-guide.css +3 -3
  552. package/src/utils/functions/classToHex.ts +6 -34
  553. package/src/utils/functions/createHexResolver.ts +45 -0
  554. package/src/utils/functions/tests/classToHex.spec.ts +36 -0
  555. package/src/utils/functions/tests/convertToHex.spec.ts +31 -0
  556. package/src/utils/functions/tests/createHexResolver.spec.ts +66 -0
  557. package/src/utils/functions/tests/isCssColor.spec.ts +48 -0
  558. package/dist/SelectFilter-BioGT6Nn.js +0 -136
  559. package/dist/designTokens/utils/convertGaps.d.ts +0 -5
  560. package/dist/main-aLKwdMi1.js +0 -37886
  561. package/dist/style.css +0 -1
  562. package/src/assets/apTokens.scss +0 -343
  563. package/src/assets/overrides/_container.scss +0 -36
  564. package/src/assets/tokens.scss +0 -388
  565. package/src/components/DatePicker/Accessibilite.mdx +0 -14
  566. package/src/designTokens/apColors.md +0 -66
  567. package/src/designTokens/cnamColors.md +0 -193
  568. package/src/designTokens/paColors.md +0 -66
  569. package/src/designTokens/tokens/json/contextual-tokens.json +0 -156
  570. package/src/designTokens/tokens/json/primitives.json +0 -209
  571. package/src/designTokens/tokens/json/semantic.json +0 -120
  572. package/src/designTokens/utils/convertGaps.ts +0 -11
  573. package/src/stories/Accessibilite/Avancement/Avancement.mdx +0 -533
  574. package/src/stories/Accessibilite/Avancement/Avancement.stories.ts +0 -306
@@ -4,7 +4,7 @@
4
4
  inheritAttrs: false,
5
5
  })
6
6
  import { mdiAlertCircle, mdiAlertOutline, mdiCheck, mdiChevronDown, mdiClose, mdiCloseCircle, mdiInformationOutline } from '@mdi/js'
7
- import { ref, watch, watchEffect, onMounted, onBeforeUnmount, computed, nextTick, type PropType } from 'vue'
7
+ import { ref, watch, watchEffect, onMounted, onBeforeUnmount, computed, nextTick, useAttrs, type PropType } from 'vue'
8
8
  import { useSySelectKeyboard } from './composables/useSySelectKeyboard'
9
9
  import { useValidatable } from '@/composables/validation/useValidatable'
10
10
  import type { ColorType, IconType, VariantStyle } from '@/types/vuetifyTypes'
@@ -164,6 +164,9 @@
164
164
  },
165
165
  })
166
166
 
167
+ // pr récupérer proprement aria-label
168
+ const attrs = useAttrs()
169
+
167
170
  const ICONS: Record<NonNullable<IconType>, string> = {
168
171
  info: mdiInformationOutline,
169
172
  success: mdiCheck,
@@ -192,8 +195,8 @@
192
195
  const disableClickButton = computed(() => props.disableClickButton)
193
196
 
194
197
  const iconColor = computed(() => {
195
- if (hasError.value || Boolean(isRequired.value) || props.errorMessages.length > 0) return 'error'
196
- return 'rgb(0 0 0 / 70%)'
198
+ if (hasError.value || props.errorMessages.length > 0) return 'error'
199
+ return 'rgb(var(--v-theme-iconBase))'
197
200
  })
198
201
 
199
202
  const variant = computed(() => {
@@ -256,9 +259,37 @@
256
259
  menuMinWidth.value = (controlEl ?? el).offsetWidth
257
260
  }
258
261
  const inputId = ref(`sy-select-${Math.random().toString(36).substring(7)}`)
262
+ // text d'aide
263
+ const helpTextId = computed(() => `${inputId.value}-help`)
264
+ // messages d'erreur, success avertissement
265
+ const messagesId = computed(() => `${inputId.value}-messages`)
266
+ // live region pour le lecteur ecran
267
+ const liveRegionId = computed(() => `${inputId.value}-live`)
268
+ // un libellé caché pour la popup/grid
269
+ const overlayLabelId = computed(() => `${inputId.value}-overlay-label`)
270
+
259
271
  // Generate unique menu ID for each component instance to avoid conflicts and validation issues
260
272
  const uniqueMenuId = ref(props.menuId === 'sy-select-menu' ? `sy-select-menu-${Math.random().toString(36).substring(7)}` : props.menuId)
261
273
 
274
+ const rawAriaLabel = computed(() => {
275
+ const ariaLabel = attrs['aria-label']
276
+ return typeof ariaLabel === 'string' && ariaLabel.trim().length > 0 ? ariaLabel.trim() : ''
277
+ })
278
+
279
+ // met en place un fallback robuste du nom accessible :
280
+ const accessibleLabel = computed(() => {
281
+ // si aria-label existant
282
+ if (rawAriaLabel.value) return rawAriaLabel.value
283
+
284
+ // return label
285
+ if (props.label?.trim()) return labelWithAsterisk.value
286
+
287
+ // message d'aide si aucun label fourni
288
+ if (typeof props.helpText === 'string' && props.helpText.trim()) return props.helpText.trim()
289
+
290
+ return 'Selectionnez une option'
291
+ })
292
+
262
293
  const selectItem = (item: ItemType | null | undefined, event?: Event) => {
263
294
  // Prevent default action if event is provided
264
295
  event?.preventDefault()
@@ -286,7 +317,10 @@
286
317
  emit('update:modelValue', props.multiple ? [] : null)
287
318
 
288
319
  // Garder la liste ouverte après une suppression et réinitialiser la navigation au clavier
289
- if (event?.type === 'keydown' || event?.type === 'click') {
320
+ const target = event?.target as HTMLElement | undefined
321
+ const listElement = list.value?.$el as HTMLElement | undefined
322
+ const isClickFromList = Boolean(listElement && target && listElement.contains(target))
323
+ if (event?.type === 'keydown' || isClickFromList) {
290
324
  if (!isOpen.value) {
291
325
  isOpen.value = true
292
326
  }
@@ -508,6 +542,26 @@
508
542
  return props.helpText && hasMessages.value && !props.hideMessages
509
543
  })
510
544
 
545
+ // Ici on calcule dynamiquement la liste des ids à rattacher à l'input :
546
+ const describedByIds = computed(() => {
547
+ const ids: string[] = []
548
+
549
+ // help text / hint
550
+ if ((showHelpTextAsMessage.value || showHelpTextBelow.value) && props.helpText) {
551
+ ids.push(helpTextId.value)
552
+ }
553
+ // messages affichés
554
+ if (!props.hideMessages && hasMessages.value) {
555
+ ids.push(messagesId.value)
556
+ }
557
+ // live region si erreur
558
+ if (hasError.value || (Array.isArray(props.errorMessages) && props.errorMessages.length > 0)) {
559
+ ids.push(liveRegionId.value)
560
+ }
561
+
562
+ return ids.join(' ')
563
+ })
564
+
511
565
  const calculatedWidth = computed(() => {
512
566
  // If width prop is provided and not 'undefined', return it directly as a CSS value
513
567
  if (props.width && props.width !== 'undefined') {
@@ -524,12 +578,28 @@
524
578
  return undefined
525
579
  })
526
580
 
581
+ const validationRules = computed(() => {
582
+ return hasError.value && !props.disableErrorHandling ? ['Le champ est requis.'] : []
583
+ })
584
+
527
585
  const menuTarget = computed<HTMLElement | undefined>(() => {
528
586
  const rootEl = textInput.value?.$el as HTMLElement | undefined
529
587
  if (!rootEl) return undefined
530
588
  return (rootEl.querySelector('.v-field') as HTMLElement | null) ?? rootEl
531
589
  })
532
590
 
591
+ const formattedErrorMessages = computed(() => {
592
+ return Array.isArray(props.errorMessages)
593
+ ? props.errorMessages.join(' ')
594
+ : props.errorMessages
595
+ })
596
+
597
+ const liveRegionMessage = computed(() => {
598
+ if (!hasError.value) return ''
599
+
600
+ return formattedErrorMessages.value || 'Le champ contient une erreur.'
601
+ })
602
+
533
603
  watch(() => props.modelValue, (newValue) => {
534
604
  selectedItem.value = newValue
535
605
  })
@@ -650,18 +720,27 @@
650
720
  }
651
721
  }
652
722
 
653
- watch([isOpen, hasError], ([newIsOpen, newHasError]) => {
723
+ watch(isOpen, (newIsOpen) => {
654
724
  if (!newIsOpen) {
725
+ // Valider uniquement à la fermeture du menu
655
726
  if (props.disableErrorHandling || props.readonly) {
656
727
  hasError.value = false
657
728
  }
658
729
  else {
659
- hasError.value = (!selectedItem.value && isRequired.value) || props.errorMessages.length > 0
730
+ const shouldHaveError = (!selectedItem.value && isRequired.value) || props.errorMessages.length > 0
731
+ hasError.value = shouldHaveError
732
+
733
+ // Forcer la validation du VTextField avec nextTick pour que le DOM soit à jour
734
+ nextTick(() => {
735
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
736
+ if (textInput.value && (textInput.value as any).validate) {
737
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
738
+ ;(textInput.value as any).validate()
739
+ }
740
+ })
660
741
  }
661
742
  }
662
- else {
663
- hasError.value = newHasError
664
- }
743
+ // Ne rien faire à l'ouverture pour préserver l'état actuel
665
744
  })
666
745
 
667
746
  watch(() => props.errorMessages, (newValue) => {
@@ -673,19 +752,35 @@
673
752
  const ariaManager = {
674
753
  cleanInputAttributes(inputElement: HTMLElement): void {
675
754
  if (!inputElement) return
676
-
677
- inputElement.removeAttribute('aria-describedby')
678
755
  inputElement.removeAttribute('size')
679
756
  inputElement.removeAttribute('tabindex')
680
757
  inputElement.removeAttribute('aria-hidden')
758
+ inputElement.removeAttribute('aria-owns')
681
759
  },
682
760
 
683
- updateInputState(inputElement: HTMLElement, isOpenValue: boolean, menuId: string, activeDescendant?: string): void {
761
+ updateInputState(
762
+ inputElement: HTMLElement,
763
+ isOpenValue: boolean,
764
+ menuId: string,
765
+ activeDescendant?: string,
766
+ describedBy?: string,
767
+ ): void {
684
768
  if (!inputElement) return
769
+ inputElement.removeAttribute('aria-owns')
685
770
 
686
771
  inputElement.setAttribute('role', 'combobox')
687
772
  inputElement.setAttribute('aria-expanded', isOpenValue ? 'true' : 'false')
688
773
  inputElement.setAttribute('aria-haspopup', 'listbox')
774
+ // On ajoute aria-autocomplete="list" pour le role combobox
775
+ inputElement.setAttribute('aria-autocomplete', 'list')
776
+
777
+ // On rattache aria-describedby à l'input
778
+ if (describedBy && describedBy.trim().length > 0) {
779
+ inputElement.setAttribute('aria-describedby', describedBy)
780
+ }
781
+ else {
782
+ inputElement.removeAttribute('aria-describedby')
783
+ }
689
784
 
690
785
  if (isOpenValue) {
691
786
  inputElement.setAttribute('aria-controls', menuId)
@@ -694,6 +789,7 @@
694
789
  inputElement.removeAttribute('aria-controls')
695
790
  }
696
791
 
792
+ // aria-activedescendant sur l'input
697
793
  if (isOpenValue && activeDescendant) {
698
794
  inputElement.setAttribute('aria-activedescendant', activeDescendant)
699
795
  }
@@ -712,12 +808,7 @@
712
808
  inputElement.removeAttribute('aria-required')
713
809
  }
714
810
 
715
- if (hasErrorValue) {
716
- inputElement.setAttribute('aria-invalid', 'true')
717
- }
718
- else {
719
- inputElement.removeAttribute('aria-invalid')
720
- }
811
+ inputElement.setAttribute('aria-invalid', hasErrorValue ? 'true' : 'false')
721
812
  },
722
813
 
723
814
  cleanParentAttributes(parentElement: HTMLElement): void {
@@ -752,7 +843,14 @@
752
843
 
753
844
  if (inputElement) {
754
845
  ariaManager.cleanInputAttributes(inputElement)
755
- ariaManager.updateInputState(inputElement, isOpen.value, uniqueMenuId.value, activeDescendantId.value)
846
+ ariaManager.updateInputState(
847
+ inputElement,
848
+ isOpen.value,
849
+ uniqueMenuId.value,
850
+ activeDescendantId.value,
851
+ // On injecte ici les ids calculés pour aria-describedby,
852
+ describedByIds.value,
853
+ )
756
854
  ariaManager.updateValidationAttributes(inputElement, Boolean(isRequired.value), Boolean(hasError.value))
757
855
  }
758
856
 
@@ -785,11 +883,19 @@
785
883
  })
786
884
  })
787
885
 
788
- watch(isOpen, () => {
789
- nextTick(() => {
790
- if (!textInput.value || !textInput.value.$el) return
791
- setupAriaAttributes()
792
- })
886
+ watch(isOpen, async (newValue) => {
887
+ await nextTick()
888
+
889
+ if (!textInput.value || !textInput.value.$el) return
890
+
891
+ setupAriaAttributes()
892
+
893
+ if (newValue) {
894
+ updateMenuAccessibility()
895
+ }
896
+ else {
897
+ focusInput()
898
+ }
793
899
  })
794
900
 
795
901
  watch(activeDescendantId, (newValue) => {
@@ -867,6 +973,31 @@
867
973
  validateOnSubmit,
868
974
  })
869
975
 
976
+ // on reprend la mm methode que pour le datepicker : useDatePickerAccesssibity (updateAccessibility)
977
+ const updateMenuAccessibility = async (): Promise<void> => {
978
+ await nextTick()
979
+
980
+ const listElement = list.value?.$el as HTMLElement | null
981
+ if (!listElement) return
982
+
983
+ listElement.setAttribute('role', 'listbox')
984
+ if (props.multiple) {
985
+ listElement.setAttribute('aria-multiselectable', 'true')
986
+ }
987
+ else {
988
+ listElement.removeAttribute('aria-multiselectable')
989
+ }
990
+ listElement.setAttribute('aria-labelledby', overlayLabelId.value)
991
+ }
992
+
993
+ const focusInput = () => {
994
+ // eviter un focus inutile si le composant est disebled ou readonly
995
+ if (props.disabled || props.readonly) return
996
+
997
+ const inputElement = textInput.value?.$el?.querySelector('input') as HTMLInputElement | null
998
+ inputElement?.focus()
999
+ }
1000
+
870
1001
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
871
1002
  function initializeActivatorProps(activatorProps: Record<string, any>) {
872
1003
  const onFocus = (event: FocusEvent) => {
@@ -922,14 +1053,14 @@
922
1053
  :id="inputId"
923
1054
  v-model="selectedItemText"
924
1055
  v-click-outside="closeList"
925
- :title="$attrs['aria-label'] || labelWithAsterisk"
1056
+ :title="accessibleLabel"
926
1057
  :color="props.color"
927
1058
  :disabled="disabled"
928
1059
  :label="labelWithAsterisk"
929
- :aria-label="$attrs['aria-label'] || labelWithAsterisk"
1060
+ :aria-label="accessibleLabel"
930
1061
  :error-messages="props.disableErrorHandling ? [] : errorMessages"
931
1062
  :variant="variant"
932
- :rules="isRequired && !props.disableErrorHandling ? ['Le champ est requis.'] : []"
1063
+ :rules="validationRules"
933
1064
  :bg-color="props.bgColor"
934
1065
  :density="props.density"
935
1066
  :active="hasChips || hasMultipleSelections || isOpen"
@@ -939,7 +1070,7 @@
939
1070
  :persistent-hint="!!showHelpTextAsMessage"
940
1071
  :autocomplete="props.autocomplete"
941
1072
  :width="calculatedWidth"
942
- :style="hasError ? { minWidth: `${labelWidth + 18}px`} : {minWidth: `${labelWidth}px`}"
1073
+ :style="hasError ? { minWidth: `${labelWidth + 18}px`} : { minWidth: `${labelWidth}px` }"
943
1074
  v-bind="{
944
1075
  ...Object.fromEntries(Object.entries($attrs).filter(([key]) => key !== 'display-asterisk')),
945
1076
  ...initializeActivatorProps(activatorProps),
@@ -968,11 +1099,14 @@
968
1099
  class="ma-1"
969
1100
  closable
970
1101
  :close-label="locales.removeChip(getChipText(item))"
971
- @click:close="removeChip(item)"
1102
+ @click:close.stop.prevent="removeChip(item)"
1103
+ @keydown.enter.capture.stop.prevent="(event) => (event.target as HTMLElement | null)?.closest('.v-chip__close') && removeChip(item)"
1104
+ @keydown.space.capture.stop.prevent="(event) => (event.target as HTMLElement | null)?.closest('.v-chip__close') && removeChip(item)"
972
1105
  >
973
1106
  {{ getChipText(item) }}
974
1107
  </VChip>
975
1108
  </div>
1109
+
976
1110
  <template v-else-if="hasMultipleSelections">
977
1111
  <span
978
1112
  v-for="item in (selectedItem as unknown[])"
@@ -982,6 +1116,7 @@
982
1116
  {{ getChipText(item) }}
983
1117
  </span>
984
1118
  </template>
1119
+
985
1120
  <!-- Prepend -->
986
1121
  <template
987
1122
  v-if="$slots.prepend || props.prependIcon || props.prependTooltip"
@@ -1027,6 +1162,7 @@
1027
1162
  />
1028
1163
  </IconSlot>
1029
1164
  </template>
1165
+
1030
1166
  <template #append-inner>
1031
1167
  <SyIcon
1032
1168
  v-if="hasError"
@@ -1066,18 +1202,30 @@
1066
1202
  class="hidden-label"
1067
1203
  >{{ label }}</span>
1068
1204
  </template>
1205
+
1206
+ <!--
1207
+ Libellé caché utilisé pour nommer la popup/grid.
1208
+ -->
1209
+ <span
1210
+ :id="overlayLabelId"
1211
+ class="d-sr-only"
1212
+ >
1213
+ {{ accessibleLabel }}
1214
+ </span>
1215
+
1069
1216
  <VList
1070
1217
  :id="uniqueMenuId"
1071
1218
  ref="list"
1072
- class="v-list"
1219
+ class="v-list sy-select-grid"
1073
1220
  role="listbox"
1074
- :aria-label="$attrs['aria-label'] || labelWithAsterisk"
1075
- :title="$attrs['aria-label'] || labelWithAsterisk"
1221
+ :aria-multiselectable="props.multiple ? 'true' : undefined"
1222
+ :aria-labelledby="overlayLabelId"
1223
+ :title="accessibleLabel"
1076
1224
  :style="{
1077
1225
  minWidth: `${textInput?.$el.offsetWidth}px`
1078
1226
  }"
1079
1227
  bg-color="white"
1080
- tabindex="0"
1228
+ tabindex="-1"
1081
1229
  @keydown.esc.prevent="closeList"
1082
1230
  @keydown.tab="handleTabKey"
1083
1231
  @keydown.enter.prevent="handleEnterKey"
@@ -1089,50 +1237,82 @@
1089
1237
  @keydown.page-down.prevent="handlePageDownKey"
1090
1238
  @click.stop
1091
1239
  >
1092
- <VListItem
1240
+ <div
1093
1241
  v-for="(item, index) in formattedItems"
1094
1242
  :id="`option-${index}`"
1095
1243
  :key="index"
1096
1244
  :ref="'options-' + index"
1097
1245
  role="option"
1098
- class="v-list-item"
1099
- :aria-selected="isItemSelected(item) ? 'true' : 'false'"
1246
+ :aria-selected="isItemSelected(item)"
1247
+ class="v-list-item sy-select-grid__row"
1100
1248
  tabindex="-1"
1101
- :class="{ active: isItemSelected(item) || `option-${index}` === activeDescendantId }"
1249
+ :class="{
1250
+ active: isItemSelected(item) || `option-${index}` === activeDescendantId,
1251
+ 'v-list-item--selected': isItemSelected(item),
1252
+ }"
1102
1253
  @click.stop="(event) => selectItem(item, event)"
1254
+ @keydown.enter.prevent="(event) => selectItem(item, event)"
1255
+ @keydown.space.prevent="(event) => selectItem(item, event)"
1103
1256
  >
1104
- <template
1257
+ <div
1105
1258
  v-if="props.multiple && !isDefaultOption(item)"
1106
- #prepend
1259
+ class="sy-select-grid__cell sy-select-grid__cell--checkbox"
1260
+ aria-hidden="true"
1107
1261
  >
1108
1262
  <SyCheckbox
1109
1263
  :model-value="isItemSelected(item)"
1110
- density="compact"
1111
- hide-details
1264
+ decorative
1112
1265
  color="primary"
1113
- class="mt-0 pt-0 mr-1"
1114
- :title="getItemText(item)"
1115
- :aria-label="getItemText(item)"
1116
- @click.stop="(event) => selectItem(item, event)"
1266
+ class="mt-0 pt-0 mr-1 pointer-events-none"
1117
1267
  />
1118
- </template>
1119
- <VListItemTitle>
1120
- <span
1121
- v-if="allowHtml"
1122
- ref="htmlItemRefs"
1123
- class="item-text"
1124
- />
1125
- <span
1126
- v-else
1127
- class="item-text"
1128
- >
1129
- {{ getItemText(item) }}
1130
- </span>
1131
- </VListItemTitle>
1132
- </VListItem>
1268
+ </div>
1269
+
1270
+ <div
1271
+ class="sy-select-grid__cell sy-select-grid__cell--label"
1272
+ >
1273
+ <VListItemTitle>
1274
+ <span
1275
+ v-if="allowHtml"
1276
+ ref="htmlItemRefs"
1277
+ class="item-text"
1278
+ />
1279
+ <span
1280
+ v-else
1281
+ class="item-text"
1282
+ >
1283
+ {{ getItemText(item) }}
1284
+ </span>
1285
+ </VListItemTitle>
1286
+ </div>
1287
+ </div>
1133
1288
  </VList>
1134
1289
  </VMenu>
1135
1290
 
1291
+ <div
1292
+ v-if="(showHelpTextAsMessage || showHelpTextBelow) && props.helpText"
1293
+ :id="helpTextId"
1294
+ class="d-sr-only"
1295
+ >
1296
+ {{ props.helpText }}
1297
+ </div>
1298
+
1299
+ <div
1300
+ v-if="!props.hideMessages && hasMessages"
1301
+ :id="messagesId"
1302
+ class="d-sr-only"
1303
+ >
1304
+ {{ formattedErrorMessages }}
1305
+ </div>
1306
+
1307
+ <div
1308
+ :id="liveRegionId"
1309
+ class="d-sr-only"
1310
+ aria-live="polite"
1311
+ aria-atomic="true"
1312
+ >
1313
+ {{ liveRegionMessage }}
1314
+ </div>
1315
+
1136
1316
  <div
1137
1317
  v-if="showHelpTextBelow"
1138
1318
  class="help-text-below px-4 mt-1"
@@ -1144,8 +1324,6 @@
1144
1324
  </template>
1145
1325
 
1146
1326
  <style scoped lang="scss">
1147
- @use '@/assets/tokens';
1148
-
1149
1327
  .sy-select-container {
1150
1328
  display: flex;
1151
1329
  flex-direction: column;
@@ -1157,12 +1335,12 @@
1157
1335
 
1158
1336
  :deep(.v-input__prepend > .v-icon__svg),
1159
1337
  :deep(.v-input__append > .v-icon__svg) {
1160
- fill: rgb(0 0 0 / 70%);
1338
+ fill: rgb(var(--v-theme-iconBase));
1161
1339
  }
1162
1340
 
1163
1341
  :deep(.v-input__prepend .v-icon:focus-visible),
1164
1342
  :deep(.v-input__append .v-icon:focus-visible) {
1165
- outline: 2px solid tokens.$primary-base;
1343
+ outline: 2px solid rgb(var(--v-theme-borderAccentPrimary));
1166
1344
  outline-offset: 2px;
1167
1345
  opacity: 1;
1168
1346
  }
@@ -1182,7 +1360,7 @@
1182
1360
  background-color: rgb(0 0 0 / 4%);
1183
1361
  }
1184
1362
 
1185
- .v-list-item[aria-selected='true'] {
1363
+ .v-list-item--selected {
1186
1364
  background-color: rgb(0 0 0 / 8%);
1187
1365
  }
1188
1366
 
@@ -1192,7 +1370,7 @@
1192
1370
 
1193
1371
  .help-text {
1194
1372
  color: rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity));
1195
- font-size: 14px;
1373
+ font-size: var(--v-fontSize-liensEtLibelles);
1196
1374
  line-height: 1.2;
1197
1375
  }
1198
1376
 
@@ -1202,7 +1380,7 @@
1202
1380
 
1203
1381
  .help-text-below {
1204
1382
  color: rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity));
1205
- font-size: 14px;
1383
+ font-size: var(--v-fontSize-liensEtLibelles);
1206
1384
  line-height: 1.2;
1207
1385
  }
1208
1386
 
@@ -1213,7 +1391,7 @@
1213
1391
  /* Ensure focus styles match selection styles for keyboard navigation */
1214
1392
  .v-list-item:focus-visible,
1215
1393
  .v-list-item.keyboard-focused {
1216
- outline: 2px solid tokens.$primary-base;
1394
+ outline: 2px solid rgb(var(--v-theme-borderAccentPrimary));
1217
1395
  outline-offset: -2px;
1218
1396
  background-color: rgb(0 0 0 / 8%);
1219
1397
  }
@@ -1240,11 +1418,11 @@
1240
1418
  .v-icon.arrow {
1241
1419
  position: absolute;
1242
1420
  right: 10px;
1243
- color: tokens.$grey-darken-20;
1421
+ color: rgb(var(--v-theme-iconBase));
1244
1422
  }
1245
1423
 
1246
1424
  .sy-select__clear-icon {
1247
- color: tokens.$grey-darken-20 !important;
1425
+ color: rgb(var(--v-theme-iconBase)) !important;
1248
1426
  opacity: var(--v-medium-emphasis-opacity) !important;
1249
1427
  }
1250
1428
 
@@ -1289,7 +1467,7 @@
1289
1467
 
1290
1468
  .sy-select :deep(.v-field__input) {
1291
1469
  opacity: 1;
1292
- color: tokens.$grey-darken-20 !important;
1470
+ color: rgb(var(--v-theme-iconBase)) !important;
1293
1471
  cursor: pointer;
1294
1472
  caret-color: transparent;
1295
1473
  padding-right: 25px;
@@ -1317,4 +1495,29 @@
1317
1495
  position: absolute;
1318
1496
  z-index: -1;
1319
1497
  }
1498
+
1499
+ .sy-select-grid__row {
1500
+ display: grid;
1501
+ grid-template-columns: auto 1fr;
1502
+ align-items: center;
1503
+ }
1504
+
1505
+ .sy-select-grid__cell {
1506
+ display: flex;
1507
+ align-items: center;
1508
+ min-width: 0;
1509
+ }
1510
+
1511
+ .sy-select-grid__cell--checkbox {
1512
+ padding-right: 4px;
1513
+ }
1514
+
1515
+ .sy-select-grid__cell--label {
1516
+ padding-right: 16px;
1517
+ min-width: 0;
1518
+ }
1519
+
1520
+ .pointer-events-none {
1521
+ pointer-events: none;
1522
+ }
1320
1523
  </style>