@cnamts/synapse 1.0.26 → 1.0.27

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 (253) hide show
  1. package/dist/{AutocompleteFilter-BPR-a55G.js → AutocompleteFilter-C9eLKyW8.js} +3 -3
  2. package/dist/{DateFilter-CknrJWs2.js → DateFilter-y-GLkAkn.js} +8 -8
  3. package/dist/{NumberFilter-DJ-yNlzv.js → NumberFilter-DN6hIBS7.js} +1 -1
  4. package/dist/{PeriodFilter-CiB5Oa9Z.js → PeriodFilter-MoUUp9qS.js} +1 -1
  5. package/dist/{SelectFilter-EiafX97M.js → SelectFilter-bCbrdLmu.js} +1 -1
  6. package/dist/{TextFilter-BzOmpdxj.js → TextFilter-CvjgEaoM.js} +4 -4
  7. package/dist/apLightTheme2026-ug4Y23ns.js +611 -0
  8. package/dist/components/Customs/Selects/SyAutocomplete/SyAutocomplete.d.ts +2369 -353
  9. package/dist/components/Customs/Selects/SyAutocomplete/composables/useSyAutocompleteValidation.d.ts +18 -0
  10. package/dist/components/Customs/Selects/SyAutocomplete/utils/ariaManager.d.ts +1 -1
  11. package/dist/components/Customs/Selects/SyAutocomplete/utils/useKeyboardHandler.d.ts +3 -1
  12. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +9 -10
  13. package/dist/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.d.ts +1 -0
  14. package/dist/components/Customs/Selects/SySelect/composables/useSySelectValidation.d.ts +15 -0
  15. package/dist/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.d.ts +3 -3
  16. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +3 -3
  17. package/dist/components/Customs/SyIconButton/SyIconButton.d.ts +18 -0
  18. package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +20 -38
  19. package/dist/components/Customs/SyRadioGroup/composables/useSyRadioGroupValidation.d.ts +50 -0
  20. package/dist/components/Customs/SyTextField/SyTextField.d.ts +6 -6
  21. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +147 -136
  22. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +62 -54
  23. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +27 -24
  24. package/dist/components/DatePicker/composables/index.d.ts +1 -0
  25. package/dist/components/DatePicker/composables/useDatePickerValidationBridge.d.ts +51 -0
  26. package/dist/components/MonthPicker/MonthPicker.d.ts +23 -23
  27. package/dist/components/MonthPicker/MonthPickerText/MonthPickerInput.d.ts +23 -23
  28. package/dist/components/NirField/NirField.d.ts +56 -56
  29. package/dist/components/PasswordField/PasswordField.d.ts +3 -3
  30. package/dist/components/PeriodField/PeriodField.d.ts +236 -212
  31. package/dist/components/PhoneField/PhoneField.d.ts +23 -23
  32. package/dist/components/SyTextArea/SyTextArea.d.ts +25 -15
  33. package/dist/components/SyTextArea/composables/useSyTextAreaValidation.d.ts +20 -0
  34. package/dist/components/SyTextArea/locales.d.ts +1 -0
  35. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +1 -0
  36. package/dist/components/Tables/SyTable/SyTable.d.ts +1 -0
  37. package/dist/components/Tables/common/SyTablePagination.d.ts +25 -25
  38. package/dist/components/Tables/common/types.d.ts +2 -0
  39. package/dist/components/index.d.ts +1 -0
  40. package/dist/composables/unifyValidation/documentationValidationProps.d.ts +160 -160
  41. package/dist/composables/unifyValidation/useValidation.d.ts +16 -14
  42. package/dist/design-system-v3.js +81 -80
  43. package/dist/designTokens/tokens/amelipro/apContextual.d.ts +6 -6
  44. package/dist/designTokens/tokens/amelipro/apDarkTheme.d.ts +3 -1
  45. package/dist/designTokens/tokens/amelipro/apLightTheme.d.ts +53 -100
  46. package/dist/designTokens/tokens/baseContextualTokens.d.ts +0 -6
  47. package/dist/designTokens/tokens/baseTokens.d.ts +232 -0
  48. package/dist/designTokens/tokens/cnam/cnamContextual.d.ts +6 -6
  49. package/dist/designTokens/tokens/cnam/cnamDarkTheme.d.ts +1 -1
  50. package/dist/designTokens/tokens/cnam/cnamLightTheme.d.ts +57 -101
  51. package/dist/designTokens/tokens/pa/paContextual.d.ts +0 -6
  52. package/dist/designTokens/tokens/pa/paDarkTheme.d.ts +1 -1
  53. package/dist/designTokens/tokens/pa/paLightTheme.d.ts +53 -97
  54. package/dist/designTokens/tokens/pa/paSemantic.d.ts +1 -0
  55. package/dist/designTokens/tokens/semanticTokens.d.ts +112 -0
  56. package/dist/main-CI6Q9nmO.js +39234 -0
  57. package/dist/synapse.css +1 -1
  58. package/dist/vuetifyConfig.js +208 -72
  59. package/package.json +4 -2
  60. package/src/assets/overrides/_icons.scss +5 -4
  61. package/src/assets/overrides/_otp.scss +4 -4
  62. package/src/assets/overrides/_typography.scss +2 -1
  63. package/src/assets/overrides/_utilities.scss +1 -42
  64. package/src/components/ChipList/ChipList.vue +30 -18
  65. package/src/components/ChipList/tests/chipList.spec.ts +4 -4
  66. package/src/components/CopyBtn/CopyBtn.vue +2 -2
  67. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.stories.ts +4 -0
  68. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.vue +7 -6
  69. package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.spec.ts +223 -0
  70. package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.stories.ts +283 -351
  71. package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.vue +182 -218
  72. package/src/components/Customs/Selects/SyAutocomplete/composables/useSyAutocompleteValidation.ts +101 -0
  73. package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.spec.ts +761 -1
  74. package/src/components/Customs/Selects/SyAutocomplete/utils/ariaManager.ts +3 -1
  75. package/src/components/Customs/Selects/SyAutocomplete/utils/useKeyboardHandler.ts +79 -5
  76. package/src/components/Customs/Selects/SyAutocomplete/validation/Validation.stories.ts +1029 -0
  77. package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +9 -491
  78. package/src/components/Customs/Selects/SySelect/SySelect.vue +46 -79
  79. package/src/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.ts +3 -0
  80. package/src/components/Customs/Selects/SySelect/composables/useSySelectValidation.ts +64 -0
  81. package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +196 -0
  82. package/src/components/Customs/Selects/SySelect/validation/Validation.stories.ts +1026 -0
  83. package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.stories.ts +18 -7
  84. package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.vue +2 -2
  85. package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +8 -8
  86. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +8 -8
  87. package/src/components/Customs/SyCheckbox/tests/SyCheckbox.spec.ts +1 -1
  88. package/src/components/Customs/SyIcon/accessibilite/Accessibility.mdx +0 -6
  89. package/src/components/Customs/SyIcon/utils/tests/iconUtils.spec.ts +107 -0
  90. package/src/components/Customs/SyRadioGroup/SyRadioGroup.mdx +2 -2
  91. package/src/components/Customs/SyRadioGroup/SyRadioGroup.stories.ts +395 -200
  92. package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +82 -127
  93. package/src/components/Customs/SyRadioGroup/composables/useSyRadioGroupValidation.ts +127 -0
  94. package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.a11y.spec.ts +93 -1
  95. package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.spec.ts +146 -9
  96. package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.visual.cy.ts +165 -0
  97. package/src/components/Customs/SyRadioGroup/validation/Validation.stories.ts +773 -0
  98. package/src/components/Customs/SyTabs/config.ts +3 -3
  99. package/src/components/Customs/SyTabs/tests/SyTabs.spec.ts +265 -0
  100. package/src/components/Customs/SyTabs/tests/useTabTransition.spec.ts +188 -0
  101. package/src/components/Customs/SyTextField/SyTextField.stories.ts +10 -29
  102. package/src/components/Customs/SyTextField/SyTextField.vue +23 -15
  103. package/src/components/DataList/DataList.stories.ts +1 -1
  104. package/src/components/DataListItem/tests/DataListItem.spec.ts +3 -1
  105. package/src/components/DatePicker/CalendarMode/DatePicker.vue +37 -142
  106. package/src/components/DatePicker/CalendarMode/tests/DatePicker.coverage.spec.ts +156 -0
  107. package/src/components/DatePicker/CalendarMode/tests/DatePicker.spec.ts +495 -4
  108. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +47 -66
  109. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +206 -0
  110. package/src/components/DatePicker/ComplexDatePicker/tests/bridge-integration.regression.spec.ts +210 -0
  111. package/src/components/DatePicker/ComplexDatePicker/tests/calendar-navigation.regression.spec.ts +214 -0
  112. package/src/components/DatePicker/ComplexDatePicker/tests/validation-cross.regression.spec.ts +194 -0
  113. package/src/components/DatePicker/ComplexDatePicker/tests/validation-success-messages.regression.spec.ts +83 -0
  114. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +129 -54
  115. package/src/components/DatePicker/DateTextInput/tests/DateTextInput.spec.ts +320 -0
  116. package/src/components/DatePicker/composables/index.ts +1 -0
  117. package/src/components/DatePicker/composables/tests/useCalendarKeyboardNavigation.spec.ts +360 -0
  118. package/src/components/DatePicker/composables/tests/useDatePickerValidationBridge.spec.ts +129 -0
  119. package/src/components/DatePicker/composables/useDatePickerValidationBridge.ts +205 -0
  120. package/src/components/DatePicker/docExamples/BidirectionalComplexValidation.vue +1 -1
  121. package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +1 -1
  122. package/src/components/DatePicker/tests/exposed-methods.coverage.spec.ts +75 -0
  123. package/src/components/DialogBox/DialogBox.vue +1 -1
  124. package/src/components/FileList/UploadItem/UploadItem.vue +4 -4
  125. package/src/components/FileUpload/FileUpload.vue +2 -2
  126. package/src/components/FileUpload/FileUploadContent.vue +1 -1
  127. package/src/components/FilterInline/FilterInline.mdx +2 -2
  128. package/src/components/FilterSideBar/FilterSideBar.stories.ts +1 -1
  129. package/src/components/FilterSideBar/FilterSideBar.vue +2 -2
  130. package/src/components/FooterBar/FooterBar.vue +7 -7
  131. package/src/components/FranceConnectBtn/FranceConnectBtn.vue +1 -1
  132. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/HeaderMenuItem.vue +2 -2
  133. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.vue +7 -7
  134. package/src/components/HeaderBar/HeaderMenuBtn/HeaderMenuBtn.vue +2 -2
  135. package/src/components/HeaderLoading/tests/HeaderLoading.spec.ts +87 -8
  136. package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +3 -3
  137. package/src/components/HeaderNavigationBar/HorizontalNavbar/tests/HorizontalNavbar.spec.ts +589 -0
  138. package/src/components/HeaderToolbar/tests/HeaderToolBar.spec.ts +153 -1
  139. package/src/components/HeaderToolbar/tests/useMobileRightMenu.spec.ts +258 -0
  140. package/src/components/LogoBrandSection/tests/LogoBrandSection.spec.ts +2 -2
  141. package/src/components/LogoBrandSection/tests/__snapshots__/LogoBrandSection.spec.ts.snap +1 -1
  142. package/src/components/LunarCalendar/tests/useLunarCalendarRules.spec.ts +184 -0
  143. package/src/components/MonthPicker/MonthPickerVisual/MonthSelector.vue +3 -3
  144. package/src/components/MonthPicker/MonthPickerVisual/VisualPickerFooter.vue +1 -1
  145. package/src/components/MonthPicker/MonthPickerVisual/VisualPickerHeader.vue +2 -2
  146. package/src/components/MonthPicker/MonthPickerVisual/YearSelector.vue +1 -1
  147. package/src/components/NirField/NirField.vue +3 -3
  148. package/src/components/NotificationBar/Notification/Notification.vue +12 -12
  149. package/src/components/NotificationBar/NotificationBar.stories.ts +8 -8
  150. package/src/components/PaginatedTable/Pagination.vue +2 -2
  151. package/src/components/PasswordField/PasswordField.vue +8 -8
  152. package/src/components/PasswordField/tests/PasswordField.spec.ts +3 -3
  153. package/src/components/RangeField/RangeSlider/RangeSlider.vue +2 -2
  154. package/src/components/RangeField/RangeSlider/Tooltip/Tooltip.vue +1 -1
  155. package/src/components/StatusPage/tests/StatusPage.spec.ts +149 -0
  156. package/src/components/SubHeader/SubHeader.vue +1 -1
  157. package/src/components/SyAlert/SyAlert.vue +23 -23
  158. package/src/components/SyTextArea/SyTextArea.stories.ts +177 -131
  159. package/src/components/SyTextArea/SyTextArea.vue +235 -83
  160. package/src/components/SyTextArea/composables/useSyTextAreaValidation.ts +81 -0
  161. package/src/components/SyTextArea/locales.ts +1 -0
  162. package/src/components/SyTextArea/tests/SyTextArea.spec.ts +449 -1
  163. package/src/components/SyTextArea/useDefaultValidationRules.ts +2 -7
  164. package/src/components/SyTextArea/validation/Validation.stories.ts +856 -0
  165. package/src/components/TableToolbar/TableToolbar.vue +6 -6
  166. package/src/components/TableToolbar/accessibilite/Accessibility.mdx +81 -7
  167. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +163 -0
  168. package/src/components/Tables/SyServerTable/SyServerTable.vue +2 -1
  169. package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +67 -0
  170. package/src/components/Tables/SyTable/SyTable.stories.ts +94 -0
  171. package/src/components/Tables/SyTable/SyTable.vue +2 -1
  172. package/src/components/Tables/SyTable/tests/SyTable.spec.ts +64 -0
  173. package/src/components/Tables/common/TableHeader.vue +2 -2
  174. package/src/components/Tables/common/filters/logics/tests/NumberFilterLogic.spec.ts +176 -0
  175. package/src/components/Tables/common/filters/logics/tests/SelectFilterLogic.spec.ts +111 -0
  176. package/src/components/Tables/common/tableStyles.scss +6 -6
  177. package/src/components/Tables/common/types.ts +2 -0
  178. package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +2 -0
  179. package/src/components/index.ts +1 -0
  180. package/src/composables/date/tests/useDateFormatDayjs.spec.ts +31 -0
  181. package/src/composables/date/tests/useHolidayDay.spec.ts +109 -0
  182. package/src/composables/rules/tests/useFieldValidation.spec.ts +374 -0
  183. package/src/composables/tests/useError.spec.ts +30 -0
  184. package/src/composables/tests/useFormFieldErrorHandling.spec.ts +234 -0
  185. package/src/composables/unifyValidation/documentationValidationProps.ts +5 -5
  186. package/src/composables/unifyValidation/tests/documentationValidationProps.spec.ts +177 -0
  187. package/src/composables/unifyValidation/tests/useCustomValidation.spec.ts +30 -0
  188. package/src/composables/unifyValidation/tests/useValidation.spec.ts +6 -2
  189. package/src/composables/unifyValidation/useCustomValidation.ts +19 -9
  190. package/src/composables/unifyValidation/useValidation.ts +18 -21
  191. package/src/composables/useFilterable/useFilterable.spec.ts +42 -0
  192. package/src/composables/useFilterable/useFilterable.ts +11 -7
  193. package/src/composables/useFormFieldErrorHandling.ts +2 -2
  194. package/src/composantsVuetify/VBtn/VBtn.mdx +9 -39
  195. package/src/composantsVuetify/VBtn/v-btn.stories.ts +26 -86
  196. package/src/designTokens/tokens/amelipro/apContextual.ts +6 -0
  197. package/src/designTokens/tokens/amelipro/apDarkTheme.ts +2 -2
  198. package/src/designTokens/tokens/amelipro/apLightTheme.ts +72 -103
  199. package/src/designTokens/tokens/amelipro/apSemantic.ts +1 -1
  200. package/src/designTokens/tokens/baseContextualTokens.ts +1 -6
  201. package/src/designTokens/tokens/baseTokens.ts +232 -0
  202. package/src/designTokens/tokens/cnam/cnamContextual.ts +6 -0
  203. package/src/designTokens/tokens/cnam/cnamDarkTheme.ts +2 -2
  204. package/src/designTokens/tokens/cnam/cnamLightTheme.ts +76 -104
  205. package/src/designTokens/tokens/pa/paDarkTheme.ts +2 -2
  206. package/src/designTokens/tokens/pa/paLightTheme.ts +73 -99
  207. package/src/designTokens/tokens/pa/paSemantic.ts +2 -0
  208. package/src/designTokens/tokens/semanticTokens.ts +114 -0
  209. package/src/stories/Components/Components.stories.ts +7 -3
  210. package/src/stories/DesignTokens/ColorIntegrationExample.vue +2 -3
  211. package/src/stories/DesignTokens/Colors.mdx +6 -8
  212. package/src/stories/DesignTokens/colors.stories.ts +244 -1081
  213. package/src/utils/amelipro/toKebabCase/tests/toKebabCase.spec.ts +52 -0
  214. package/src/utils/formatNir/tests/formatNir.spec.ts +34 -0
  215. package/src/utils/tests/insertAt.spec.ts +44 -0
  216. package/dist/apLightTheme-DS0Uy44H.js +0 -954
  217. package/dist/components/RatingPicker/tests/RatingPicker.a11y.spect.d.ts +0 -1
  218. package/dist/main-BsJ9ec3i.js +0 -38954
  219. package/src/components/BackBtn/tests/__snapshots__/back-btn-custom-bg.snap.png +0 -0
  220. package/src/components/BackBtn/tests/__snapshots__/back-btn-dark-mode.snap.png +0 -0
  221. package/src/components/BackBtn/tests/__snapshots__/back-btn-default.snap.png +0 -0
  222. package/src/components/BackBtn/tests/__snapshots__/back-btn-no-icon.snap.png +0 -0
  223. package/src/components/DatePicker/CalendarMode/tests/DatePicker.events.spec.ts +0 -178
  224. package/src/components/DialogBox/tests/__snapshots__/dialog-box-custom-texts.snap.png +0 -0
  225. package/src/components/DialogBox/tests/__snapshots__/dialog-box-default.snap.png +0 -0
  226. package/src/components/DialogBox/tests/__snapshots__/dialog-box-no-actions.snap.png +0 -0
  227. package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/header-burger-menu-generated-submenu-open.snap.png +0 -0
  228. package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/header-burger-menu-generated.snap.png +0 -0
  229. package/src/components/HeaderBar/tests/__snapshots__/header-bar-custom-width.snap.png +0 -0
  230. package/src/components/HeaderBar/tests/__snapshots__/header-bar-default.snap.png +0 -0
  231. package/src/components/HeaderBar/tests/__snapshots__/header-bar-no-sticky.snap.png +0 -0
  232. package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-prepend.snap.png +0 -0
  233. package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-side.snap.png +0 -0
  234. package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-subtitle.snap.png +0 -0
  235. package/src/components/Logo/tests/__snapshots__/logo-avatar.snap.png +0 -0
  236. package/src/components/Logo/tests/__snapshots__/logo-dark.snap.png +0 -0
  237. package/src/components/Logo/tests/__snapshots__/logo-default.snap.png +0 -0
  238. package/src/components/Logo/tests/__snapshots__/logo-no-organism.snap.png +0 -0
  239. package/src/components/Logo/tests/__snapshots__/logo-no-signature.snap.png +0 -0
  240. package/src/components/Logo/tests/__snapshots__/logo-risque-pro.snap.png +0 -0
  241. package/src/components/RangeField/tests/__snapshots__/range-field-custom-bg.snap.png +0 -0
  242. package/src/components/RangeField/tests/__snapshots__/range-field-custom-range.snap.png +0 -0
  243. package/src/components/RangeField/tests/__snapshots__/range-field-default.snap.png +0 -0
  244. package/src/components/RangeField/tests/__snapshots__/range-field-step.snap.png +0 -0
  245. package/src/components/RangeField/tests/__snapshots__/range-field-with-label.snap.png +0 -0
  246. package/src/components/SyAlert/tests/__snapshots__/sy-alert-closable.snap.png +0 -0
  247. package/src/components/SyAlert/tests/__snapshots__/sy-alert-error.snap.png +0 -0
  248. package/src/components/SyAlert/tests/__snapshots__/sy-alert-info.snap.png +0 -0
  249. package/src/components/SyAlert/tests/__snapshots__/sy-alert-success.snap.png +0 -0
  250. package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-outlined.snap.png +0 -0
  251. package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-tonal.snap.png +0 -0
  252. package/src/components/SyAlert/tests/__snapshots__/sy-alert-warning.snap.png +0 -0
  253. /package/src/components/RatingPicker/tests/{RatingPicker.a11y.spect.ts → RatingPicker.a11y.spec.ts} +0 -0
@@ -9,9 +9,9 @@ export const config = {
9
9
  'show-arrows': true,
10
10
  },
11
11
  tab: {
12
- 'base-color': 'rgb(var(--v-theme-colorPrimary))',
13
- 'active-color': 'rgb(var(--v-theme-colorPrimary))',
14
- 'slider-color': 'rgb(var(--v-theme-colorPrimary))',
12
+ 'base-color': 'rgb(var(--v-theme-primary))',
13
+ 'active-color': 'rgb(var(--v-theme-primary))',
14
+ 'slider-color': 'rgb(var(--v-theme-primary))',
15
15
  'ripple': false,
16
16
  },
17
17
  }
@@ -450,6 +450,271 @@ describe('SyTabs', () => {
450
450
  })
451
451
  })
452
452
 
453
+ // Tests items désactivés avec navigation (branches template lignes 444-504)
454
+ describe('Items désactivés en mode navigation', () => {
455
+ it('rend un <button> désactivé pour un item avec to et disabled', () => {
456
+ const wrapper = createWrapper({
457
+ props: {
458
+ ...defaultMountOptions.props,
459
+ items: [
460
+ { label: 'Nav 1', value: 'nav1', to: '/path-1' },
461
+ { label: 'Désactivé', value: 'nav2', to: '/path-2', disabled: true },
462
+ ],
463
+ },
464
+ })
465
+
466
+ const buttons = wrapper.findAll('.sy-tabs__button')
467
+ const disabledBtn = buttons.find(b => b.attributes('disabled') !== undefined)
468
+ expect(disabledBtn).toBeDefined()
469
+ expect(disabledBtn!.element.tagName).toBe('BUTTON')
470
+ })
471
+
472
+ it('rend un <button> désactivé pour un item avec href et disabled', () => {
473
+ const wrapper = createWrapper({
474
+ props: {
475
+ ...defaultMountOptions.props,
476
+ items: [
477
+ { label: 'Externe', value: 'ext', href: 'https://example.com', disabled: true },
478
+ ],
479
+ },
480
+ })
481
+
482
+ const btn = wrapper.find('.sy-tabs__button')
483
+ expect(btn.element.tagName).toBe('BUTTON')
484
+ expect(btn.attributes('disabled')).toBeDefined()
485
+ expect(btn.attributes('aria-disabled')).toBe('true')
486
+ })
487
+
488
+ it('rend un <a> pour un item avec href non désactivé', () => {
489
+ const wrapper = createWrapper({
490
+ props: {
491
+ ...defaultMountOptions.props,
492
+ items: [
493
+ { label: 'Externe', value: 'ext', href: 'https://example.com' },
494
+ ],
495
+ },
496
+ })
497
+
498
+ const link = wrapper.find('.sy-tabs__button')
499
+ expect(link.element.tagName).toBe('A')
500
+ expect(link.attributes('href')).toBe('https://example.com')
501
+ })
502
+
503
+ it('ne change pas d\'onglet au clic sur un item désactivé (button)', async () => {
504
+ const wrapper = createWrapper({
505
+ props: {
506
+ ...defaultMountOptions.props,
507
+ items: [
508
+ { label: 'Tab 1', value: 'tab1', content: 'Contenu 1' },
509
+ { label: 'Désactivé', value: 'tab2', content: '', disabled: true },
510
+ ],
511
+ },
512
+ })
513
+
514
+ const vm = wrapper.vm as unknown as { activeItemIndex: number }
515
+ expect(vm.activeItemIndex).toBe(0)
516
+
517
+ const disabledBtn = wrapper.findAll('.sy-tabs__button')[1]!
518
+ await disabledBtn.trigger('click')
519
+
520
+ expect(vm.activeItemIndex).toBe(0)
521
+ })
522
+ })
523
+
524
+ // Tests Escape key (setupAccessibilityFeatures)
525
+ describe('Escape key', () => {
526
+ it('remet focusedItemIndex à -1 sur Escape quand focus >= 0', async () => {
527
+ const wrapper = createWrapper()
528
+ const vm = wrapper.vm as unknown as { focusedItemIndex: number }
529
+
530
+ vm.focusedItemIndex = 1
531
+
532
+ window.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape' }))
533
+ await nextTick()
534
+
535
+ expect(vm.focusedItemIndex).toBe(-1)
536
+ })
537
+
538
+ it('ne fait rien sur Escape quand focusedItemIndex est -1', async () => {
539
+ const wrapper = createWrapper()
540
+ const vm = wrapper.vm as unknown as { focusedItemIndex: number }
541
+
542
+ vm.focusedItemIndex = -1
543
+ window.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape' }))
544
+ await nextTick()
545
+
546
+ expect(vm.focusedItemIndex).toBe(-1)
547
+ })
548
+
549
+ it('retire l\'écouteur keydown au démontage', () => {
550
+ const removeSpy = vi.spyOn(window, 'removeEventListener')
551
+ const wrapper = createWrapper()
552
+ wrapper.unmount()
553
+
554
+ expect(removeSpy).toHaveBeenCalledWith('keydown', expect.any(Function))
555
+ })
556
+ })
557
+
558
+ // Tests lazy prop
559
+ describe('Lazy loading', () => {
560
+ it('ne rend le panneau que quand il devient actif avec lazy=true', async () => {
561
+ const wrapper = createWrapper({
562
+ props: {
563
+ ...defaultMountOptions.props,
564
+ lazy: true,
565
+ },
566
+ })
567
+
568
+ const secondTab = wrapper.findAll('.sy-tabs__button')[1]!
569
+ await secondTab.trigger('click')
570
+ await nextTick()
571
+
572
+ expect(wrapper.find('#panel-1').exists()).toBe(true)
573
+ })
574
+ })
575
+
576
+ // Tests onMounted branches
577
+ describe('onMounted — branches', () => {
578
+ it('ne plante pas avec items vides', () => {
579
+ expect(() => createWrapper({
580
+ props: { items: [] },
581
+ })).not.toThrow()
582
+ })
583
+
584
+ it('utilise pathname pour trouver l\'index actif si modelValue est un nombre', async () => {
585
+ Object.defineProperty(window, 'location', {
586
+ value: { ...window.location, pathname: '/tab2' },
587
+ writable: true,
588
+ })
589
+
590
+ const items = [
591
+ { label: 'Tab 1', value: 'tab1', content: 'C1', to: '/tab1' },
592
+ { label: 'Tab 2', value: 'tab2', content: 'C2', to: '/tab2' },
593
+ ]
594
+ const wrapper = createWrapper({
595
+ props: { items, modelValue: 0 },
596
+ })
597
+ await nextTick()
598
+
599
+ const vm = wrapper.vm as unknown as { activeItemIndex: number }
600
+ expect(vm.activeItemIndex).toBe(1)
601
+
602
+ Object.defineProperty(window, 'location', {
603
+ value: { ...window.location, pathname: '/' },
604
+ writable: true,
605
+ })
606
+ })
607
+ })
608
+
609
+ // Tests find*EnabledTab avec tous désactivés
610
+ describe('Navigation avec tous les onglets désactivés', () => {
611
+ it('findNextEnabledTab retourne -1 si tous désactivés', async () => {
612
+ const allDisabled = [
613
+ { label: 'A', value: 'a', content: '', disabled: true },
614
+ { label: 'B', value: 'b', content: '', disabled: true },
615
+ ]
616
+ const wrapper = createWrapper({ props: { items: allDisabled } })
617
+ const vm = wrapper.vm as unknown as {
618
+ findNextEnabledTab: (i: number) => number
619
+ }
620
+ expect(vm.findNextEnabledTab(0)).toBe(-1)
621
+ })
622
+
623
+ it('findPreviousEnabledTab retourne -1 si tous désactivés', () => {
624
+ const allDisabled = [
625
+ { label: 'A', value: 'a', content: '', disabled: true },
626
+ { label: 'B', value: 'b', content: '', disabled: true },
627
+ ]
628
+ const wrapper = createWrapper({ props: { items: allDisabled } })
629
+ const vm = wrapper.vm as unknown as {
630
+ findPreviousEnabledTab: (i: number) => number
631
+ }
632
+ expect(vm.findPreviousEnabledTab(0)).toBe(-1)
633
+ })
634
+
635
+ it('findFirstEnabledTab retourne -1 si tous désactivés', () => {
636
+ const allDisabled = [
637
+ { label: 'A', value: 'a', content: '', disabled: true },
638
+ ]
639
+ const wrapper = createWrapper({ props: { items: allDisabled } })
640
+ const vm = wrapper.vm as unknown as {
641
+ findFirstEnabledTab: () => number
642
+ }
643
+ expect(vm.findFirstEnabledTab()).toBe(-1)
644
+ })
645
+
646
+ it('findLastEnabledTab retourne -1 si tous désactivés', () => {
647
+ const allDisabled = [
648
+ { label: 'A', value: 'a', content: '', disabled: true },
649
+ ]
650
+ const wrapper = createWrapper({ props: { items: allDisabled } })
651
+ const vm = wrapper.vm as unknown as {
652
+ findLastEnabledTab: () => number
653
+ }
654
+ expect(vm.findLastEnabledTab()).toBe(-1)
655
+ })
656
+
657
+ it('handleArrowNavigation ne fait rien si items est vide', () => {
658
+ const wrapper = createWrapper({ props: { items: [] } })
659
+ const vm = wrapper.vm as unknown as {
660
+ handleArrowNavigation: (event: KeyboardEvent, index: number) => void
661
+ }
662
+ const event = new KeyboardEvent('keydown', { key: 'ArrowRight' })
663
+ event.preventDefault = vi.fn()
664
+ expect(() => vm.handleArrowNavigation(event, 0)).not.toThrow()
665
+ })
666
+
667
+ it('handleArrowNavigation ne fait rien pour une touche non gérée', () => {
668
+ const wrapper = createWrapper()
669
+ const vm = wrapper.vm as unknown as {
670
+ handleArrowNavigation: (event: KeyboardEvent, index: number) => void
671
+ }
672
+ const event = new KeyboardEvent('keydown', { key: 'Tab' })
673
+ expect(() => vm.handleArrowNavigation(event, 0)).not.toThrow()
674
+ expect(wrapper.emitted('update:modelValue')).toBeFalsy()
675
+ })
676
+ })
677
+
678
+ // Tests watcher modelValue
679
+ describe('Watcher modelValue', () => {
680
+ it('ne fait rien si newValue est undefined', async () => {
681
+ const wrapper = createWrapper({
682
+ props: { ...defaultMountOptions.props, modelValue: 1 },
683
+ })
684
+ const vm = wrapper.vm as unknown as { activeItemIndex: number }
685
+
686
+ await wrapper.setProps({ modelValue: undefined })
687
+ await nextTick()
688
+
689
+ expect(vm.activeItemIndex).toBe(1)
690
+ })
691
+
692
+ it('met à jour activeItemIndex via watcher modelValue string', async () => {
693
+ const wrapper = createWrapper({
694
+ props: { ...defaultMountOptions.props, modelValue: 'tab1' },
695
+ })
696
+ const vm = wrapper.vm as unknown as { activeItemIndex: number }
697
+
698
+ await wrapper.setProps({ modelValue: 'tab3' })
699
+ await nextTick()
700
+
701
+ expect(vm.activeItemIndex).toBe(2)
702
+ })
703
+
704
+ it('ne change pas activeItemIndex si modelValue string inconnu', async () => {
705
+ const wrapper = createWrapper({
706
+ props: { ...defaultMountOptions.props, modelValue: 'tab1' },
707
+ })
708
+ const vm = wrapper.vm as unknown as { activeItemIndex: number }
709
+ const before = vm.activeItemIndex
710
+
711
+ await wrapper.setProps({ modelValue: 'unknown-value' })
712
+ await nextTick()
713
+
714
+ expect(vm.activeItemIndex).toBe(before)
715
+ })
716
+ })
717
+
453
718
  // Tests avec différentes configurations
454
719
  describe('Configurations personnalisées', () => {
455
720
  it('doit permettre de personnaliser les options', () => {
@@ -0,0 +1,188 @@
1
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest'
2
+ import { ref, nextTick, defineComponent } from 'vue'
3
+ import { mount } from '@vue/test-utils'
4
+ import { useTabTransition } from '../useTabTransition'
5
+
6
+ function makeTablistEl(activeLeft = 50, activeWidth = 120, containerLeft = 10): HTMLElement {
7
+ const container = document.createElement('div')
8
+ const activeBtn = document.createElement('button')
9
+ activeBtn.classList.add('sy-tabs__button--active')
10
+
11
+ vi.spyOn(activeBtn, 'getBoundingClientRect').mockReturnValue({
12
+ left: activeLeft,
13
+ width: activeWidth,
14
+ top: 0,
15
+ right: activeLeft + activeWidth,
16
+ bottom: 0,
17
+ height: 0,
18
+ x: activeLeft,
19
+ y: 0,
20
+ toJSON: () => ({}),
21
+ } as DOMRect)
22
+
23
+ vi.spyOn(container, 'getBoundingClientRect').mockReturnValue({
24
+ left: containerLeft,
25
+ width: 500,
26
+ top: 0,
27
+ right: containerLeft + 500,
28
+ bottom: 0,
29
+ height: 0,
30
+ x: containerLeft,
31
+ y: 0,
32
+ toJSON: () => ({}),
33
+ } as DOMRect)
34
+
35
+ container.appendChild(activeBtn)
36
+ return container
37
+ }
38
+
39
+ function makeComponent(tablistEl: HTMLElement | null, initialIndex = 0) {
40
+ return defineComponent({
41
+ setup() {
42
+ const tablist = ref<HTMLElement | null>(tablistEl)
43
+ const activeItemIndex = ref(initialIndex)
44
+ const result = useTabTransition(tablist, activeItemIndex)
45
+ return { ...result, activeItemIndex, tablist }
46
+ },
47
+ template: '<div />',
48
+ })
49
+ }
50
+
51
+ describe('useTabTransition', () => {
52
+ beforeEach(() => {
53
+ vi.useFakeTimers()
54
+ })
55
+
56
+ afterEach(() => {
57
+ vi.restoreAllMocks()
58
+ vi.useRealTimers()
59
+ })
60
+
61
+ describe('positionIndicator — sans activeTab', () => {
62
+ it('remet xPosition et width à 0 si tablist est null', async () => {
63
+ const wrapper = mount(makeComponent(null))
64
+ await nextTick()
65
+ await nextTick()
66
+
67
+ expect(wrapper.vm.xPosition).toBe(0)
68
+ expect(wrapper.vm.width).toBe(0)
69
+ })
70
+
71
+ it('remet xPosition et width à 0 si aucun bouton actif n\'existe', async () => {
72
+ const container = document.createElement('div')
73
+ vi.spyOn(container, 'getBoundingClientRect').mockReturnValue({
74
+ left: 0, width: 500, top: 0, right: 500, bottom: 0, height: 0, x: 0, y: 0, toJSON: () => ({}),
75
+ } as DOMRect)
76
+
77
+ const wrapper = mount(makeComponent(container))
78
+ await nextTick()
79
+ await nextTick()
80
+
81
+ expect(wrapper.vm.xPosition).toBe(0)
82
+ expect(wrapper.vm.width).toBe(0)
83
+ })
84
+ })
85
+
86
+ describe('positionIndicator — avec activeTab', () => {
87
+ it('calcule xPosition = activeLeft - containerLeft', async () => {
88
+ const el = makeTablistEl(50, 120, 10)
89
+ const wrapper = mount(makeComponent(el))
90
+ await nextTick()
91
+ await nextTick()
92
+
93
+ expect(wrapper.vm.xPosition).toBe(40) // 50 - 10
94
+ })
95
+
96
+ it('calcule width = activeTab.width', async () => {
97
+ const el = makeTablistEl(50, 120, 10)
98
+ const wrapper = mount(makeComponent(el))
99
+ await nextTick()
100
+ await nextTick()
101
+
102
+ expect(wrapper.vm.width).toBe(120)
103
+ })
104
+
105
+ it('met à jour la position quand activeItemIndex change', async () => {
106
+ const container = document.createElement('div')
107
+ const btn1 = document.createElement('button')
108
+ const btn2 = document.createElement('button')
109
+ btn1.classList.add('sy-tabs__button--active')
110
+
111
+ vi.spyOn(btn1, 'getBoundingClientRect').mockReturnValue({
112
+ left: 50, width: 100, top: 0, right: 150, bottom: 0, height: 0, x: 50, y: 0, toJSON: () => ({}),
113
+ } as DOMRect)
114
+ vi.spyOn(btn2, 'getBoundingClientRect').mockReturnValue({
115
+ left: 200, width: 150, top: 0, right: 350, bottom: 0, height: 0, x: 200, y: 0, toJSON: () => ({}),
116
+ } as DOMRect)
117
+ vi.spyOn(container, 'getBoundingClientRect').mockReturnValue({
118
+ left: 0, width: 500, top: 0, right: 500, bottom: 0, height: 0, x: 0, y: 0, toJSON: () => ({}),
119
+ } as DOMRect)
120
+
121
+ container.appendChild(btn1)
122
+ container.appendChild(btn2)
123
+
124
+ const wrapper = mount(makeComponent(container, 0))
125
+ await nextTick()
126
+ await nextTick()
127
+
128
+ expect(wrapper.vm.xPosition).toBe(50)
129
+
130
+ btn1.classList.remove('sy-tabs__button--active')
131
+ btn2.classList.add('sy-tabs__button--active')
132
+ wrapper.vm.activeItemIndex = 1
133
+ await nextTick()
134
+ await nextTick()
135
+
136
+ expect(wrapper.vm.xPosition).toBe(200)
137
+ expect(wrapper.vm.width).toBe(150)
138
+ })
139
+ })
140
+
141
+ describe('resize listener', () => {
142
+ it('ajoute un écouteur resize au montage', () => {
143
+ const addSpy = vi.spyOn(window, 'addEventListener')
144
+ const el = makeTablistEl()
145
+ mount(makeComponent(el))
146
+
147
+ expect(addSpy).toHaveBeenCalledWith('resize', expect.any(Function))
148
+ })
149
+
150
+ it('retire l\'écouteur resize au démontage', () => {
151
+ const removeSpy = vi.spyOn(window, 'removeEventListener')
152
+ const el = makeTablistEl()
153
+ const wrapper = mount(makeComponent(el))
154
+
155
+ wrapper.unmount()
156
+
157
+ expect(removeSpy).toHaveBeenCalledWith('resize', expect.any(Function))
158
+ })
159
+
160
+ it('recalcule la position lors d\'un événement resize', async () => {
161
+ const el = makeTablistEl(50, 120, 10)
162
+ const wrapper = mount(makeComponent(el))
163
+ await nextTick()
164
+ await nextTick()
165
+
166
+ const btn = el.querySelector('.sy-tabs__button--active') as HTMLButtonElement
167
+ vi.spyOn(btn, 'getBoundingClientRect').mockReturnValue({
168
+ left: 100, width: 200, top: 0, right: 300, bottom: 0, height: 0, x: 100, y: 0, toJSON: () => ({}),
169
+ } as DOMRect)
170
+
171
+ window.dispatchEvent(new Event('resize'))
172
+ await nextTick()
173
+ await nextTick()
174
+
175
+ expect(wrapper.vm.width).toBe(200)
176
+ })
177
+ })
178
+
179
+ describe('valeurs retournées', () => {
180
+ it('expose xPosition et width comme refs réactives', () => {
181
+ const el = makeTablistEl()
182
+ const wrapper = mount(makeComponent(el))
183
+
184
+ expect(wrapper.vm.xPosition).toBeDefined()
185
+ expect(wrapper.vm.width).toBeDefined()
186
+ })
187
+ })
188
+ })
@@ -1109,19 +1109,22 @@ Cette story montre l'utilisation de la règle \`matchPattern\` pour valider un f
1109
1109
  }),
1110
1110
  }
1111
1111
 
1112
+ // Persistent value for WithTooltips
1113
+ const withTooltipsValueMain = ref('')
1114
+
1112
1115
  export const WithTooltips: Story = {
1113
1116
  args: {
1114
- modelValue: '',
1115
1117
  label: 'Champ avec tooltips',
1116
1118
  prependTooltip: 'Information à gauche du champ',
1117
1119
  appendTooltip: 'Information à droite du champ',
1118
1120
  tooltipLocation: 'top',
1121
+ isClearable: true,
1122
+ disableClickButton: true,
1119
1123
  },
1120
1124
  render: args => ({
1121
1125
  components: { SyTextField },
1122
1126
  setup() {
1123
- const value = ref(args.modelValue)
1124
- return { args, value }
1127
+ return { args, value: withTooltipsValueMain }
1125
1128
  },
1126
1129
  template: `
1127
1130
  <div>
@@ -1398,20 +1401,9 @@ export const FormValidation: Story = {
1398
1401
  </ul>
1399
1402
  </div>
1400
1403
 
1401
- <button
1402
- type="submit"
1403
- style="
1404
- background-color: #1976d2;
1405
- color: white;
1406
- padding: 8px 16px;
1407
- border: none;
1408
- border-radius: 4px;
1409
- cursor: pointer;
1410
- font-size: 1rem;
1411
- "
1412
- >
1404
+ <VBtn type="submit" color="primary">
1413
1405
  Soumettre
1414
- </button>
1406
+ </VBtn>
1415
1407
  </form>
1416
1408
  </div>
1417
1409
  `,
@@ -1479,20 +1471,9 @@ export const FormValidation: Story = {
1479
1471
  </ul>
1480
1472
  </div>
1481
1473
 
1482
- <button
1483
- type="submit"
1484
- style="
1485
- background-color: #1976d2;
1486
- color: white;
1487
- padding: 8px 16px;
1488
- border: none;
1489
- border-radius: 4px;
1490
- cursor: pointer;
1491
- font-size: 1rem;
1492
- "
1493
- >
1474
+ <VBtn type="submit" color="primary">
1494
1475
  Soumettre
1495
- </button>
1476
+ </VBtn>
1496
1477
  </form>
1497
1478
  </div>
1498
1479
  </div>
@@ -851,18 +851,22 @@
851
851
  }
852
852
 
853
853
  :deep(.v-icon__svg) {
854
- fill: rgb(var(--v-theme-textWarning)) !important;
854
+ fill: rgb(var(--v-theme-onWarningVariant)) !important;
855
855
  }
856
856
 
857
- :deep(.v-field) {
857
+ :deep(.v-label.v-field-label) {
858
858
  color: rgb(var(--v-theme-borderWarning)) !important;
859
+ }
860
+
861
+ :deep(.v-field) {
862
+ color: rgb(var(--v-theme-onWarningVariant)) !important;
859
863
 
860
864
  --v-medium-emphasis-opacity: 1;
861
865
 
862
866
  .v-field__outline {
863
867
  --v-field-border-opacity: 1;
864
868
 
865
- color: rgb(var(--v-theme-borderWarning)) !important;
869
+ color: rgb(var(--v-theme-onWarningVariant)) !important;
866
870
  }
867
871
  }
868
872
 
@@ -870,7 +874,7 @@
870
874
  opacity: 1 !important;
871
875
 
872
876
  .v-messages__message {
873
- color: rgb(var(--v-theme-borderWarning)) !important;
877
+ color: rgb(var(--v-theme-onWarningVariant)) !important;
874
878
  }
875
879
  }
876
880
  }
@@ -878,7 +882,7 @@
878
882
  /* stylelint-disable-next-line selector-class-pattern */
879
883
  .text-iconBase {
880
884
  :deep(.v-icon__svg) {
881
- fill: rgb(var(--v-theme-borderAccentPrimary)) !important;
885
+ fill: rgb(var(--v-theme-primary)) !important;
882
886
  }
883
887
  }
884
888
 
@@ -890,16 +894,16 @@
890
894
  }
891
895
 
892
896
  :deep(.v-icon__svg) {
893
- fill: rgb(var(--v-theme-textError)) !important;
897
+ fill: rgb(var(--v-theme-error)) !important;
894
898
  }
895
899
 
896
900
  :deep(.v-field) {
897
- color: rgb(var(--v-theme-borderError)) !important;
901
+ color: rgb(var(--v-theme-error)) !important;
898
902
 
899
903
  .v-field__outline {
900
904
  --v-field-border-opacity: 1;
901
905
 
902
- color: rgb(var(--v-theme-borderError)) !important;
906
+ color: rgb(var(--v-theme-error)) !important;
903
907
  }
904
908
  }
905
909
 
@@ -907,7 +911,7 @@
907
911
  opacity: 1 !important;
908
912
 
909
913
  .v-messages__message {
910
- color: rgb(var(--v-theme-borderError)) !important;
914
+ color: rgb(var(--v-theme-error)) !important;
911
915
  }
912
916
  }
913
917
  }
@@ -920,18 +924,22 @@
920
924
  }
921
925
 
922
926
  :deep(.v-icon__svg) {
923
- fill: rgb(var(--v-theme-textSuccess)) !important;
927
+ fill: rgb(var(--v-theme-onSuccessVariant)) !important;
924
928
  }
925
929
 
926
- :deep(.v-field) {
930
+ :deep(.v-label.v-field-label) {
927
931
  color: rgb(var(--v-theme-borderSuccess)) !important;
932
+ }
933
+
934
+ :deep(.v-field) {
935
+ color: rgb(var(--v-theme-onSuccessVariant)) !important;
928
936
 
929
937
  --v-medium-emphasis-opacity: 1;
930
938
 
931
939
  .v-field__outline {
932
940
  --v-field-border-opacity: 1;
933
941
 
934
- color: rgb(var(--v-theme-borderSuccess)) !important;
942
+ color: rgb(var(--v-theme-onSuccessVariant)) !important;
935
943
  }
936
944
  }
937
945
 
@@ -939,7 +947,7 @@
939
947
  opacity: 1 !important;
940
948
 
941
949
  .v-messages__message {
942
- color: rgb(var(--v-theme-borderSuccess)) !important;
950
+ color: rgb(var(--v-theme-onSuccessVariant)) !important;
943
951
  }
944
952
  }
945
953
  }
@@ -950,13 +958,13 @@
950
958
  }
951
959
 
952
960
  :deep(.v-field--focused .v-field__outline) {
953
- color: rgb(var(--v-theme-borderAccentPrimary)) !important;
961
+ color: rgb(var(--v-theme-primary)) !important;
954
962
  opacity: 1 !important;
955
963
  }
956
964
 
957
965
  :deep(.v-input__prepend .v-icon:focus-visible),
958
966
  :deep(.v-input__append .v-icon:focus-visible) {
959
- outline: 2px solid rgb(var(--v-theme-borderAccentPrimary));
967
+ outline: 2px solid rgb(var(--v-theme-primary));
960
968
  outline-offset: 2px;
961
969
  opacity: 1;
962
970
  }
@@ -561,7 +561,7 @@ export const Chips: Story = {
561
561
  chip: true,
562
562
  options: {
563
563
  chip: {
564
- color: 'success',
564
+ color: 'onSuccessVariant',
565
565
  },
566
566
  },
567
567
  },
@@ -1,5 +1,5 @@
1
1
  import { mount } from '@vue/test-utils'
2
- import { describe, it, expect } from 'vitest'
2
+ import { describe, it, expect, vi } from 'vitest'
3
3
 
4
4
  import DataListItem from '../DataListItem.vue'
5
5
 
@@ -59,6 +59,7 @@ describe('DataListItem', () => {
59
59
  })
60
60
 
61
61
  it('renders correctly a value as plain HTML', () => {
62
+ const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {})
62
63
  const wrapper = mount(DataListItem, {
63
64
  props: {
64
65
  label: 'Test',
@@ -66,6 +67,7 @@ describe('DataListItem', () => {
66
67
  renderHtmlValue: true,
67
68
  },
68
69
  })
70
+ warnSpy.mockRestore()
69
71
 
70
72
  const elValue = wrapper.find('.sy-data-list-item-value span')
71
73