@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
@@ -210,7 +210,7 @@
210
210
 
211
211
  <v-btn
212
212
  size="small"
213
- color="success"
213
+ color="onSuccessVariant"
214
214
  class="mr-2"
215
215
  @click="setTestDates"
216
216
  >
@@ -207,7 +207,7 @@
207
207
 
208
208
  <v-btn
209
209
  size="small"
210
- color="success"
210
+ color="onSuccessVariant"
211
211
  class="mr-2"
212
212
  @click="setTestDates"
213
213
  >
@@ -0,0 +1,75 @@
1
+ import { mount } from '@vue/test-utils'
2
+ import { describe, it, expect } from 'vitest'
3
+ import DateTextInput from '../DateTextInput/DateTextInput.vue'
4
+
5
+ /**
6
+ * Tests pour couvrir les méthodes exposées (focus, blur)
7
+ * Zones non couvertes : DateTextInput.vue lignes 1138-1144
8
+ */
9
+ describe('Exposed Methods Coverage Tests', () => {
10
+ /**
11
+ * Test 1 : Méthode focus() exposée
12
+ * Couvre ligne 1138-1140
13
+ */
14
+ it('expose la méthode focus() pour le focus programmatique', async () => {
15
+ const wrapper = mount(DateTextInput, {
16
+ props: {
17
+ modelValue: '',
18
+ label: 'Date',
19
+ format: 'DD/MM/YYYY',
20
+ },
21
+ attachTo: document.body,
22
+ })
23
+
24
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
25
+ expect(typeof (wrapper.vm as any).focus).toBe('function')
26
+ // Appel réel pour couvrir le corps de la méthode (ligne 1139)
27
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
+ expect(() => (wrapper.vm as any).focus()).not.toThrow()
29
+
30
+ wrapper.unmount()
31
+ })
32
+
33
+ /**
34
+ * Test 2 : Méthode blur() exposée
35
+ * Couvre ligne 1142-1144
36
+ */
37
+ it('expose la méthode blur() pour le blur programmatique', async () => {
38
+ const wrapper = mount(DateTextInput, {
39
+ props: {
40
+ modelValue: '',
41
+ label: 'Date',
42
+ format: 'DD/MM/YYYY',
43
+ },
44
+ attachTo: document.body,
45
+ })
46
+
47
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
48
+ expect(typeof (wrapper.vm as any).blur).toBe('function')
49
+ // Appel réel pour couvrir le corps de la méthode (ligne 1142-1143)
50
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
51
+ expect(() => (wrapper.vm as any).blur()).not.toThrow()
52
+
53
+ wrapper.unmount()
54
+ })
55
+
56
+ /**
57
+ * Test 3 : validateOnSubmit exposé
58
+ */
59
+ it('expose validateOnSubmit pour validation externe', async () => {
60
+ const wrapper = mount(DateTextInput, {
61
+ props: {
62
+ modelValue: '',
63
+ label: 'Date',
64
+ format: 'DD/MM/YYYY',
65
+ required: true,
66
+ },
67
+ })
68
+
69
+ // La méthode doit exister
70
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
71
+ expect((wrapper.vm as any).validateOnSubmit).toBeDefined()
72
+
73
+ wrapper.unmount()
74
+ })
75
+ })
@@ -253,7 +253,7 @@
253
253
  }
254
254
 
255
255
  .v-btn--icon {
256
- color: rgb(var(--v-theme-iconBase));
256
+ color: rgb(var(--v-theme-primary));
257
257
  position: absolute;
258
258
  right: 24px;
259
259
  }
@@ -97,7 +97,7 @@
97
97
  v-else-if="state === 'success'"
98
98
  :icon="mdiCheckCircle"
99
99
  :size="cnamContextualTokens.iconSize.default"
100
- color="success"
100
+ color="onSuccessVariant"
101
101
  decorative
102
102
  />
103
103
 
@@ -211,7 +211,7 @@
211
211
  flex-direction: column;
212
212
  gap: var(--v-gap-3);
213
213
  padding-block: var(--v-padding-4);
214
- border-bottom: 1px solid rgb(var(--v-theme-borderSubdued));
214
+ border-bottom: 1px solid rgb(var(--v-theme-disabled));
215
215
 
216
216
  &:first-child:last-child {
217
217
  border-bottom: none;
@@ -224,7 +224,7 @@
224
224
 
225
225
  .file-item__name {
226
226
  font-size: 0.875rem;
227
- color: rgb(var(--v-theme-textBase));
227
+ color: rgb(var(--v-theme-onSurface));
228
228
  }
229
229
 
230
230
  .file-item__description {
@@ -278,7 +278,7 @@
278
278
 
279
279
  .file-item__message {
280
280
  font-size: 0.875rem;
281
- color: rgb(var(--v-theme-textSubdued));
281
+ color: rgb(var(--v-theme-onSurfaceVariant));
282
282
  }
283
283
 
284
284
  .file-item__message-success,
@@ -174,14 +174,14 @@
174
174
  .sy-file-upload {
175
175
  cursor: pointer;
176
176
  position: relative;
177
- border: 1px dashed rgb(var(--v-theme-borderAccentPrimary));
177
+ border: 1px dashed rgb(var(--v-theme-primary));
178
178
  border-radius: var(--v-radius-roundedLg);
179
179
  transition: background 0.25s;
180
180
 
181
181
  &:hover,
182
182
  &:focus-within,
183
183
  &.dragover {
184
- background: rgb(var(--v-theme-backgroundSurfaceAlt));
184
+ background: rgb(var(--v-theme-surfaceDim));
185
185
  }
186
186
 
187
187
  &.dark-mode {
@@ -96,7 +96,7 @@
96
96
 
97
97
  .sy-file-upload-caption {
98
98
  font-size: 0.875rem;
99
- color: rgb(var(--v-theme-textSubdued));
99
+ color: rgb(var(--v-theme-onSurfaceVariant));
100
100
  }
101
101
 
102
102
  .sy-file-upload-btn {
@@ -6,7 +6,7 @@ import * as FilterSideBarStories from '@/components/FilterSideBar/FilterSideBar.
6
6
 
7
7
  <div className="header">
8
8
  <h1>FilterInline</h1>
9
-
9
+
10
10
  </div><Canvas of={FilterInlineStories.Default} />
11
11
 
12
12
  # API
@@ -135,7 +135,7 @@ const professionList = [
135
135
  value: 'pharmacien',
136
136
  },
137
137
  ]
138
-
138
+
139
139
  </script>
140
140
 
141
141
  <template>
@@ -486,7 +486,7 @@ export const FilterCombination: Story = {
486
486
  decorators: [
487
487
  () => ({
488
488
  template: `
489
- <VApp style="height: 500px; overflow-y: hidden;">
489
+ <VApp style="height: 500px; overflow-y: hidden; background: none">
490
490
  <div class="pa-4">
491
491
  <story />
492
492
  </div>
@@ -218,9 +218,9 @@
218
218
  size="large"
219
219
  class="sy-filters-side-bar__apply-btn"
220
220
  variant="elevated"
221
- type="submit"
221
+ type="button"
222
222
  :aria-label="locales.applyAriaLabel"
223
- @click.stop="applyFilters"
223
+ @click.prevent="applyFilters"
224
224
  >
225
225
  {{ locales.apply }}
226
226
  </VBtn>
@@ -363,32 +363,32 @@ a {
363
363
  .vd-footer-bar.v-theme--dark :deep() {
364
364
  .vd-footer-bar-links li,
365
365
  .vd-footer-bar-links a {
366
- color: rgb(var(--v-theme-textOnDark));
366
+ color: rgb(var(--v-theme-onPrimary));
367
367
 
368
368
  &.version {
369
- color: rgb(var(--v-theme-textSubduedOnDark));
369
+ color: rgb(var(--v-theme-surface));
370
370
  }
371
371
  }
372
372
 
373
373
  p,
374
374
  .text--primary {
375
- color: rgba(var(--v-theme-textOnDark), 0.87);
375
+ color: rgba(var(--v-theme-onPrimary));
376
376
  }
377
377
 
378
378
  .text--secondary {
379
- color: rgba(var(--v-theme-textOnDark), 0.6);
379
+ color: rgba(var(--v-theme-onPrimary));
380
380
  }
381
381
 
382
382
  a.text--primary {
383
- color: rgb(var(--v-theme-textOnDark));
383
+ color: rgb(var(--v-theme-onPrimary));
384
384
  }
385
385
 
386
386
  .v-divider {
387
- border-color: rgba(var(--v-theme-borderSubdued), 1);
387
+ border-color: rgba(var(--v-theme-disabled), 1);
388
388
  }
389
389
 
390
390
  svg {
391
- fill: rgb(var(--v-theme-textOnDark));
391
+ fill: rgb(var(--v-theme-onPrimary));
392
392
  }
393
393
  }
394
394
 
@@ -123,7 +123,7 @@
123
123
 
124
124
  .sy-france-connect-btn--dark {
125
125
  .sy-france-connect-link {
126
- color: rgb(var(--v-theme-textOnDark));
126
+ color: rgb(var(--v-theme-onPrimary));
127
127
  background-color: #8585f6;
128
128
 
129
129
  &:hover {
@@ -55,10 +55,10 @@
55
55
 
56
56
  .header-menu-item:hover {
57
57
  background-color: rgb(var(--v-theme-primary));
58
- color: rgb(var(--v-theme-textOnDark));
58
+ color: rgb(var(--v-theme-onPrimary));
59
59
 
60
60
  > :deep(a > *) {
61
- color: rgb(var(--v-theme-textOnDark)) !important;
61
+ color: rgb(var(--v-theme-onPrimary)) !important;
62
62
  }
63
63
  }
64
64
  </style>
@@ -111,11 +111,11 @@
111
111
 
112
112
  &:hover {
113
113
  background-color: rgb(var(--v-theme-primary));
114
- color: rgb(var(--v-theme-textOnDark));
114
+ color: rgb(var(--v-theme-onPrimary));
115
115
  text-decoration: underline;
116
116
 
117
117
  > :deep(*) {
118
- color: rgb(var(--v-theme-textOnDark)) !important;
118
+ color: rgb(var(--v-theme-onPrimary)) !important;
119
119
  }
120
120
  }
121
121
 
@@ -152,14 +152,14 @@
152
152
  .sub-menu--open > .sub-menu-btn {
153
153
  padding: 0 16px 8px 40px;
154
154
  border-bottom: 1px solid $menu-border-color;
155
- color: rgb(var(--v-theme-textBase));
155
+ color: rgb(var(--v-theme-onSurface));
156
156
  background-color: transparent;
157
157
 
158
158
  &:hover {
159
- color: rgb(var(--v-theme-textBase));
159
+ color: rgb(var(--v-theme-onSurface));
160
160
 
161
161
  > :deep(*) {
162
- color: rgb(var(--v-theme-textBase)) !important;
162
+ color: rgb(var(--v-theme-onSurface)) !important;
163
163
  }
164
164
  }
165
165
  }
@@ -177,11 +177,11 @@
177
177
 
178
178
  .sub-menu--open > .sub-menu-btn {
179
179
  background-color: rgb(var(--v-theme-primary));
180
- color: rgb(var(--v-theme-textOnDark));
180
+ color: rgb(var(--v-theme-onPrimary));
181
181
  transition: color 0.15s linear, background-color 0.15s linear;
182
182
 
183
183
  > :deep(*) {
184
- color: rgb(var(--v-theme-textOnDark)) !important;
184
+ color: rgb(var(--v-theme-onPrimary)) !important;
185
185
  }
186
186
  }
187
187
 
@@ -49,7 +49,7 @@
49
49
  justify-content: center;
50
50
  font-weight: 700;
51
51
  background-color: rgb(var(--v-theme-primary));
52
- color: rgb(var(--v-theme-textOnDark));
52
+ color: rgb(var(--v-theme-onPrimary));
53
53
  border: 2px solid transparent;
54
54
  border-bottom:
55
55
  solid 2px linear-gradient(
@@ -72,7 +72,7 @@
72
72
  .header-menu-btn__open {
73
73
  background-color: rgb(var(--v-theme-surface));
74
74
  color: rgb(var(--v-theme-primary));
75
- border-color: rgb(var(--v-theme-textOnDark));
75
+ border-color: rgb(var(--v-theme-onPrimary));
76
76
  }
77
77
 
78
78
  @media screen and (max-width: ($header-breakpoint + 1)) {
@@ -4,15 +4,94 @@ import { mount } from '@vue/test-utils'
4
4
  import HeaderLoading from '../HeaderLoading.vue'
5
5
 
6
6
  describe('HeaderLoading', () => {
7
- it('renders correctly', () => {
8
- const wrapper = mount(HeaderLoading, {
9
- props: {
10
- width: '100px',
11
- height: '1rem',
12
- },
7
+ describe('mode non-standalone (défaut)', () => {
8
+ it('rend le skeleton avec la classe vd-header-loading', () => {
9
+ const wrapper = mount(HeaderLoading)
10
+ expect(wrapper.find('.vd-header-loading').exists()).toBe(true)
13
11
  })
14
12
 
15
- const elExists = wrapper.find('.vd-header-loading').exists()
16
- expect(elExists).toBe(true)
13
+ it('applique aria-hidden="true" sur le skeleton', () => {
14
+ const wrapper = mount(HeaderLoading)
15
+ const skeleton = wrapper.find('.vd-header-loading')
16
+ expect(skeleton.attributes('aria-hidden')).toBe('true')
17
+ })
18
+
19
+ it('ne rend pas le conteneur wrapper vd-header-loading-container', () => {
20
+ const wrapper = mount(HeaderLoading)
21
+ expect(wrapper.find('.vd-header-loading-container').exists()).toBe(false)
22
+ })
23
+
24
+ it('applique la width par défaut (100px)', () => {
25
+ const wrapper = mount(HeaderLoading)
26
+ const skeleton = wrapper.find('.vd-header-loading')
27
+ expect(skeleton.attributes('style') ?? '').toContain('100px')
28
+ })
29
+
30
+ it('applique la height par défaut (1rem)', () => {
31
+ const wrapper = mount(HeaderLoading)
32
+ const skeleton = wrapper.find('.vd-header-loading')
33
+ expect(skeleton.attributes('style') ?? '').toContain('1rem')
34
+ })
35
+
36
+ it('applique les props width et height personnalisées', () => {
37
+ const wrapper = mount(HeaderLoading, {
38
+ props: { width: '200px', height: '2rem' },
39
+ })
40
+ const skeleton = wrapper.find('.vd-header-loading')
41
+ expect(skeleton.attributes('style') ?? '').toContain('200px')
42
+ expect(skeleton.attributes('style') ?? '').toContain('2rem')
43
+ })
44
+ })
45
+
46
+ describe('mode standalone', () => {
47
+ it('rend un conteneur avec role="alert" et aria-live="polite"', () => {
48
+ const wrapper = mount(HeaderLoading, {
49
+ props: { standalone: true },
50
+ })
51
+ const container = wrapper.find('[role="alert"]')
52
+ expect(container.exists()).toBe(true)
53
+ expect(container.attributes('aria-live')).toBe('polite')
54
+ })
55
+
56
+ it('applique le ariaLabel par défaut', () => {
57
+ const wrapper = mount(HeaderLoading, {
58
+ props: { standalone: true },
59
+ })
60
+ const container = wrapper.find('[role="alert"]')
61
+ expect(container.attributes('aria-label')).toBe('Chargement en cours...')
62
+ })
63
+
64
+ it('applique un ariaLabel personnalisé', () => {
65
+ const wrapper = mount(HeaderLoading, {
66
+ props: { standalone: true, ariaLabel: 'Chargement des données...' },
67
+ })
68
+ const container = wrapper.find('[role="alert"]')
69
+ expect(container.attributes('aria-label')).toBe('Chargement des données...')
70
+ })
71
+
72
+ it('rend le skeleton à l\'intérieur du conteneur', () => {
73
+ const wrapper = mount(HeaderLoading, {
74
+ props: { standalone: true },
75
+ })
76
+ const container = wrapper.find('.vd-header-loading-container')
77
+ expect(container.find('.vd-header-loading').exists()).toBe(true)
78
+ })
79
+
80
+ it('le skeleton standalone n\'a pas aria-hidden', () => {
81
+ const wrapper = mount(HeaderLoading, {
82
+ props: { standalone: true },
83
+ })
84
+ const skeleton = wrapper.find('.vd-header-loading')
85
+ expect(skeleton.attributes('aria-hidden')).toBeUndefined()
86
+ })
87
+
88
+ it('applique les props width et height en mode standalone', () => {
89
+ const wrapper = mount(HeaderLoading, {
90
+ props: { standalone: true, width: '300px', height: '3rem' },
91
+ })
92
+ const skeleton = wrapper.find('.vd-header-loading')
93
+ expect(skeleton.attributes('style') ?? '').toContain('300px')
94
+ expect(skeleton.attributes('style') ?? '').toContain('3rem')
95
+ })
17
96
  })
18
97
  })
@@ -323,7 +323,7 @@
323
323
  transition: color 0.2s ease;
324
324
 
325
325
  &:hover {
326
- color: rgb(var(--v-theme-textOnDark));
326
+ color: rgb(var(--v-theme-onPrimary));
327
327
  }
328
328
 
329
329
  &:focus-visible {
@@ -334,7 +334,7 @@
334
334
 
335
335
  &--active,
336
336
  &[aria-current='page'] {
337
- color: rgb(var(--v-theme-textOnDark));
337
+ color: rgb(var(--v-theme-onPrimary));
338
338
  border-bottom: 3px solid #fff; /* Bordure solide et plus visible pour les éléments actifs */
339
339
  box-shadow: 0 3px 0 0 #fff; /* Double effet pour être sûr que la bordure est bien visible */
340
340
 
@@ -350,7 +350,7 @@
350
350
  padding: 8px 16px;
351
351
  margin-top: 8px;
352
352
  background-color: v-bind('options.sheet.color');
353
- color: rgb(var(--v-theme-textOnDark));
353
+ color: rgb(var(--v-theme-onPrimary));
354
354
  text-decoration: none;
355
355
  border-radius: 4px;
356
356
  transition: background-color 0.2s ease;