@cnamts/synapse 1.0.10 → 1.0.12

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 (393) hide show
  1. package/dist/{DateFilter-C0wDuzgn.js → DateFilter-DoCcOfDW.js} +1 -1
  2. package/dist/{NumberFilter-CBj7zdOi.js → NumberFilter-9uR8uo6p.js} +1 -1
  3. package/dist/{PeriodFilter-DB4wWyKy.js → PeriodFilter-CxN5ini7.js} +1 -1
  4. package/dist/{SelectFilter-Dces8572.js → SelectFilter-bfxipgvt.js} +1 -1
  5. package/dist/{TextFilter-BU9nlkuS.js → TextFilter-yCnWcmW2.js} +1 -1
  6. package/dist/components/Amelipro/AmeliproAccordion/AmeliproAccordion.d.ts +6 -2
  7. package/dist/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.d.ts +11 -0
  8. package/dist/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResult.d.ts +6 -2
  9. package/dist/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.d.ts +9 -0
  10. package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +12 -30
  11. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarousel.d.ts +18 -0
  12. package/dist/components/Amelipro/AmeliproFooter/AmeliproFooter.d.ts +9 -0
  13. package/dist/components/Amelipro/AmeliproFooter/locales.d.ts +0 -1
  14. package/dist/components/Amelipro/AmeliproFooter/types.d.ts +1 -0
  15. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeader.d.ts +2 -0
  16. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBar.d.ts +6 -2
  17. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/AmeliproHeaderBrandSection.d.ts +8 -4
  18. package/dist/components/Amelipro/AmeliproPageLayout/AmeliproPageLayout.d.ts +2 -0
  19. package/dist/components/Amelipro/AmeliproResultList/AmeliproResultList.d.ts +9 -0
  20. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +11 -11
  21. package/dist/components/Amelipro/AmeliproTable/AmeliproTable.d.ts +13 -0
  22. package/dist/components/Amelipro/AmeliproTable/types.d.ts +11 -0
  23. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +12 -12
  24. package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +2 -2
  25. package/dist/components/Amelipro/AmeliproUpload/types.d.ts +10 -0
  26. package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +16 -16
  27. package/dist/components/Customs/Selects/SelectBtnField/SelectBtnField.d.ts +1 -1
  28. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +6 -6
  29. package/dist/components/Customs/SyTextField/SyTextField.d.ts +2 -2
  30. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +52 -16
  31. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +52 -10
  32. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +8 -13
  33. package/dist/components/DatePicker/composables/useDatePickerViewMode.d.ts +2 -1
  34. package/dist/components/DatePicker/tests/setup.d.ts +464 -104
  35. package/dist/components/HeaderToolbar/HeaderToolbar.d.ts +6 -6
  36. package/dist/components/LangBtn/LangBtn.d.ts +2 -2
  37. package/dist/components/NirField/NirField.d.ts +10 -8
  38. package/dist/components/PeriodField/PeriodField.d.ts +104 -24
  39. package/dist/components/PhoneField/PhoneField.d.ts +3 -3
  40. package/dist/components/SearchListField/SearchListField.d.ts +13 -4
  41. package/dist/components/SyTextArea/SyTextArea.d.ts +2 -2
  42. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +5 -8
  43. package/dist/components/Tables/SyTable/SyTable.d.ts +5 -8
  44. package/dist/components/Tables/common/SyTablePagination.d.ts +7 -7
  45. package/dist/components/Tables/common/TableHeader.d.ts +6 -0
  46. package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +2 -2
  47. package/dist/components/Tables/common/types.d.ts +11 -0
  48. package/dist/components/Tables/common/usePagination.d.ts +3 -4
  49. package/dist/components/Tables/common/useTableCheckbox.d.ts +10 -6
  50. package/dist/components/Tables/common/useTableHeaders.d.ts +10 -20
  51. package/dist/design-system-v3.js +1 -1
  52. package/dist/design-system-v3.umd.cjs +160 -160
  53. package/dist/main-DMXtXK3y.js +33458 -0
  54. package/dist/style.css +1 -1
  55. package/dist/utils/amelipro/rules/uploadFile/index.d.ts +6 -0
  56. package/dist/utils/amelipro/toKebabCase/toKebabCase.d.ts +1 -0
  57. package/dist/utils/rules/isRequired/index.d.ts +5 -2
  58. package/dist/utils/rules/types.d.ts +12 -3
  59. package/package.json +12 -3
  60. package/src/assets/amelipro/img/bg-pieces-jointe.svg +28 -0
  61. package/src/assets/overrides/_btns.scss +1 -0
  62. package/src/assets/overrides/_forms.scss +7 -0
  63. package/src/components/Accordion/tests/accordion.spec.ts +0 -55
  64. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordion.stories.ts +7 -4
  65. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordion.vue +2 -0
  66. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/__tests__/AmeliproAccordionTemplate.spec.ts +0 -4
  67. package/src/components/Amelipro/AmeliproAccordion/__tests__/AmeliproAccordion.spec.ts +0 -4
  68. package/src/components/Amelipro/AmeliproAccordionFrieze/AmeliproAccordionFrieze.vue +1 -0
  69. package/src/components/Amelipro/AmeliproAccordionFrieze/__tests__/AmeliproAccordionFrieze.spec.ts +0 -4
  70. package/src/components/Amelipro/AmeliproAccordionFrieze/__tests__/__snapshots__/AmeliproAccordionFrieze.spec.ts.snap +574 -112
  71. package/src/components/Amelipro/AmeliproAccordionGroup/__tests__/AmeliproAccordionGroup.spec.ts +0 -4
  72. package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.stories.ts +11 -2
  73. package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.vue +7 -2
  74. package/src/components/Amelipro/AmeliproAccordionList/__tests__/AmeliproAccordionList.spec.ts +0 -4
  75. package/src/components/Amelipro/AmeliproAccordionList/__tests__/__snapshots__/AmeliproAccordionList.spec.ts.snap +13 -2
  76. package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResult.stories.ts +6 -3
  77. package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResult.vue +2 -0
  78. package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResultTemplate/__tests__/AmeliproAccordionResultTemplate.spec.ts +0 -4
  79. package/src/components/Amelipro/AmeliproAccordionResult/__tests__/AmeliproAccordionResult.spec.ts +0 -4
  80. package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.stories.ts +11 -2
  81. package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.vue +7 -2
  82. package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/AmeliproAccordionResultList.spec.ts +0 -4
  83. package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/__snapshots__/AmeliproAccordionResultList.spec.ts.snap +13 -2
  84. package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.stories.ts +1 -1
  85. package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/AmeliproAutoCompleteField.spec.ts +277 -55
  86. package/src/components/Amelipro/AmeliproAutoCompleteField/__tests__/__snapshots__/AmeliproAutoCompleteField.spec.ts.snap +113 -233
  87. package/src/components/Amelipro/AmeliproBadge/__tests__/AmeliproBadge.spec.ts +0 -4
  88. package/src/components/Amelipro/AmeliproBreadcrumb/__tests__/AmeliproBreadcrumb.spec.ts +0 -4
  89. package/src/components/Amelipro/AmeliproBtn/__tests__/AmeliproBtn.spec.ts +478 -0
  90. package/src/components/Amelipro/AmeliproBtn/__tests__/__snapshots__/AmeliproBtn.spec.ts.snap +74 -0
  91. package/src/components/Amelipro/AmeliproCallback/__tests__/AmeliproCallback.spec.ts +100 -0
  92. package/src/components/Amelipro/AmeliproCallback/__tests__/__snapshots__/AmeliproCallback.spec.ts.snap +50 -0
  93. package/src/components/Amelipro/AmeliproCaptcha/__tests__/AmeliproCaptcha.spec.ts +0 -4
  94. package/src/components/Amelipro/AmeliproCaptcha/__tests__/__snapshots__/AmeliproCaptcha.spec.ts.snap +10 -2
  95. package/src/components/Amelipro/AmeliproCard/__tests__/AmeliproCard.spec.ts +402 -0
  96. package/src/components/Amelipro/AmeliproCard/__tests__/__snapshots__/AmeliproCard.spec.ts.snap +106 -0
  97. package/src/components/Amelipro/AmeliproCarousel/AmeliproCarousel.stories.ts +2 -0
  98. package/src/components/Amelipro/AmeliproCarousel/AmeliproCarousel.vue +11 -1
  99. package/src/components/Amelipro/AmeliproCarousel/AmeliproCarouselItem/__tests__/AmeliproCarouselItem.spec.ts +0 -4
  100. package/src/components/Amelipro/AmeliproCarousel/__tests__/AmeliproCarousel.spec.ts +0 -4
  101. package/src/components/Amelipro/AmeliproCarousel/__tests__/__snapshots__/AmeliproCarousel.spec.ts.snap +0 -2
  102. package/src/components/Amelipro/AmeliproCheckbox/__tests__/AmeliproCheckbox.spec.ts +175 -0
  103. package/src/components/Amelipro/AmeliproCheckbox/__tests__/__snapshots__/AmeliproCheckbox.spec.ts.snap +88 -0
  104. package/src/components/Amelipro/AmeliproCheckboxGroup/__tests__/AmeliproCheckboxGroup.spec.ts +423 -0
  105. package/src/components/Amelipro/AmeliproCheckboxGroup/{tests → __tests__}/__snapshots__/AmeliproCheckboxGroup.spec.ts.snap +112 -78
  106. package/src/components/Amelipro/AmeliproChips/__tests__/AmeliproChips.spec.ts +92 -0
  107. package/src/components/Amelipro/AmeliproChips/__tests__/__snapshots__/AmeliproChips.spec.ts.snap +81 -0
  108. package/src/components/Amelipro/AmeliproClickableTile/tests/AmeliproClickableTile.spec.ts +0 -4
  109. package/src/components/Amelipro/AmeliproContentLayout/__tests__/AmeliproContentLayout.spec.ts +0 -4
  110. package/src/components/Amelipro/AmeliproCopyBtn/__tests__/AmeliproCopyBtn.spec.ts +0 -4
  111. package/src/components/Amelipro/AmeliproCustomSelector/__tests__/AmeliproCustomSelector.spec.ts +0 -4
  112. package/src/components/Amelipro/AmeliproDentalChart/AmeliproTooth/tests/AmeliproTooth.spec.ts +0 -4
  113. package/src/components/Amelipro/AmeliproDentalChart/tests/AmeliproDentalChart.spec.ts +0 -4
  114. package/src/components/Amelipro/AmeliproDialog/__tests__/AmeliproDialog.spec.ts +257 -0
  115. package/src/components/Amelipro/AmeliproDialog/__tests__/__snapshots__/AmeliproDialog.spec.ts.snap +61 -0
  116. package/src/components/Amelipro/AmeliproDisclosure/__tests__/AmeliproDisclosure.spec.ts +79 -0
  117. package/src/components/Amelipro/AmeliproDisclosure/__tests__/__snapshots__/AmeliproDisclosure.spec.ts.snap +89 -0
  118. package/src/components/Amelipro/AmeliproErrorTemplate/__tests__/AmeliproErrorTemplate.spec.ts +0 -4
  119. package/src/components/Amelipro/AmeliproFilePreview/__tests__/AmeliproFilePreview.spec.ts +0 -4
  120. package/src/components/Amelipro/AmeliproFirstLogin/__tests__/AmeliproFirstLogin.spec.ts +0 -2
  121. package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.stories.ts +1 -0
  122. package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.vue +5 -1
  123. package/src/components/Amelipro/AmeliproFooter/locales.ts +0 -1
  124. package/src/components/Amelipro/AmeliproFooter/tests/AmeliproFooter.spec.ts +0 -4
  125. package/src/components/Amelipro/AmeliproFooter/types.d.ts +1 -0
  126. package/src/components/Amelipro/AmeliproHeader/AmeliproHeader.stories.ts +18 -8
  127. package/src/components/Amelipro/AmeliproHeader/AmeliproHeader.vue +3 -1
  128. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBar.vue +3 -0
  129. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/AmeliproHeaderBrandSection.vue +10 -2
  130. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/tests/AmeliproHeaderBrandSection.spec.ts +0 -4
  131. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/tests/__snapshots__/AmeliproHeaderBrandSection.spec.ts.snap +2 -3
  132. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproLogoAm/tests/AmeliproLogoAm.spec.ts +0 -4
  133. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/tests/AmeliproHeaderBar.spec.ts +0 -4
  134. package/src/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/tests/__snapshots__/AmeliproHeaderBar.spec.ts.snap +2 -3
  135. package/src/components/Amelipro/AmeliproHeader/tests/AmeliproHeader.spec.ts +0 -4
  136. package/src/components/Amelipro/AmeliproHeader/tests/__snapshots__/AmeliproHeader.spec.ts.snap +2 -3
  137. package/src/components/Amelipro/AmeliproIcon/tests/AmeliproIcon.spec.ts +0 -4
  138. package/src/components/Amelipro/AmeliproIconBtn/tests/AmeliproIconBtn.spec.ts +0 -4
  139. package/src/components/Amelipro/AmeliproIllustratedDataTile/tests/AmeliproIllustratedDataTile.spec.ts +0 -4
  140. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/tests/AmeliproIllustratedRadioGroup.spec.ts +0 -4
  141. package/src/components/Amelipro/AmeliproMailTile/tests/AmeliproMailTile.spec.ts +0 -4
  142. package/src/components/Amelipro/AmeliproMenu/tests/AmeliproMenu.spec.ts +0 -2
  143. package/src/components/Amelipro/AmeliproMessage/tests/AmeliproMessage.spec.ts +0 -4
  144. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproDropdownMenu/AmeliproDropdownMenuBtn/tests/AmeliproDropdownMenuBtn.spec.ts +0 -4
  145. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproDropdownMenu/tests/AmeliproDropdownMenu.spec.ts +0 -4
  146. package/src/components/Amelipro/AmeliproMessagingLayout/AmeliproMessagingMenuBtn/tests/AmeliproMessagingMenuBtn.spec.ts +0 -4
  147. package/src/components/Amelipro/AmeliproMessagingLayout/tests/AmeliproMessagingLayout.spec.ts +0 -4
  148. package/src/components/Amelipro/AmeliproMultipleFoldingCard/tests/AmeliproMultipleFoldingCard.spec.ts +0 -4
  149. package/src/components/Amelipro/AmeliproNumberedCard/tests/AmeliproNumberedCard.spec.ts +0 -4
  150. package/src/components/Amelipro/AmeliproOnboarding/tests/AmeliproOnboarding.spec.ts +0 -4
  151. package/src/components/Amelipro/AmeliproPageLayout/AmeliproPageLayout.stories.ts +9 -2
  152. package/src/components/Amelipro/AmeliproPageLayout/AmeliproPageLayout.vue +4 -1
  153. package/src/components/Amelipro/AmeliproPageLayout/tests/AmeliproPageLayout.spec.ts +0 -4
  154. package/src/components/Amelipro/AmeliproPageLayout/tests/__snapshots__/AmeliproPageLayout.spec.ts.snap +2 -3
  155. package/src/components/Amelipro/AmeliproPagination/AmeliproPaginationBtn/tests/AmeliproPaginationBtn.spec.ts +0 -4
  156. package/src/components/Amelipro/AmeliproPagination/tests/AmeliproPagination.spec.ts +0 -4
  157. package/src/components/Amelipro/AmeliproPatientBanner/tests/AmeliproPatientBanner.spec.ts +0 -4
  158. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/AmeliproPatientLogged.spec.ts +0 -4
  159. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/__snapshots__/AmeliproPatientLogged.spec.ts.snap +13 -2
  160. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLoginForm/__tests__/AmeliproPatientLoginForm.spec.ts +0 -4
  161. package/src/components/Amelipro/AmeliproPatientLogin/__tests__/AmeliproPatientLogin.spec.ts +0 -4
  162. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/AmeliproPostalAddressCityRow.spec.ts +0 -4
  163. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/__snapshots__/AmeliproPostalAddressCityRow.spec.ts.snap +24 -4
  164. package/src/components/Amelipro/AmeliproPostalAddressField/tests/AmeliproPostalAddressField.spec.ts +0 -4
  165. package/src/components/Amelipro/AmeliproPostalAddressField/tests/__snapshots__/AmeliproPostalAddressField.spec.ts.snap +40 -8
  166. package/src/components/Amelipro/AmeliproRadioGroup/tests/AmeliproRadioGroup.spec.ts +0 -4
  167. package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.stories.ts +6 -0
  168. package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.vue +5 -1
  169. package/src/components/Amelipro/AmeliproResultList/__tests__/AmeliproResultList.spec.ts +0 -4
  170. package/src/components/Amelipro/AmeliproResultList/__tests__/__snapshots__/AmeliproResultList.spec.ts.snap +13 -2
  171. package/src/components/Amelipro/AmeliproSelect/tests/AmeliproSelect.spec.ts +0 -4
  172. package/src/components/Amelipro/AmeliproSelect/tests/__snapshots__/AmeliproSelect.spec.ts.snap +13 -2
  173. package/src/components/Amelipro/AmeliproStateTile/tests/AmeliproStateTile.spec.ts +0 -4
  174. package/src/components/Amelipro/AmeliproStatus/tests/AmeliproStatus.spec.ts +0 -4
  175. package/src/components/Amelipro/AmeliproStepper/AmeliproStepBtn/tests/AmeliproStepBtn.spec.ts +0 -4
  176. package/src/components/Amelipro/AmeliproStepper/tests/AmeliproStepper.spec.ts +0 -4
  177. package/src/components/Amelipro/AmeliproTable/AmeliproTable.stories.ts +87 -9
  178. package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +144 -62
  179. package/src/components/Amelipro/AmeliproTable/__tests__/AmeliproTable.spec.ts +10 -4
  180. package/src/components/Amelipro/AmeliproTable/__tests__/__snapshots__/AmeliproTable.spec.ts.snap +374 -189
  181. package/src/components/Amelipro/AmeliproTable/types.d.ts +11 -0
  182. package/src/components/Amelipro/AmeliproTabs/AmeliproTabBtn/tests/AmeliproTabBtn.spec.ts +0 -4
  183. package/src/components/Amelipro/AmeliproTabs/tests/AmeliproTabs.spec.ts +0 -4
  184. package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.stories.ts +1 -1
  185. package/src/components/Amelipro/AmeliproTextArea/__tests__/AmeliproTextArea.spec.ts +0 -4
  186. package/src/components/Amelipro/AmeliproTextArea/__tests__/__snapshots__/AmeliproTextArea.spec.ts.snap +10 -2
  187. package/src/components/Amelipro/AmeliproTextField/tests/AmeliproTextField.spec.ts +0 -4
  188. package/src/components/Amelipro/AmeliproTextField/tests/__snapshots__/AmeliproTextField.spec.ts.snap +10 -2
  189. package/src/components/Amelipro/AmeliproTileBtn/tests/AmeliproTileBtn.spec.ts +0 -4
  190. package/src/components/Amelipro/AmeliproTooltips/tests/AmeliproTooltips.spec.ts +0 -4
  191. package/src/components/Amelipro/AmeliproTransmission/tests/AmeliproTransmission.spec.ts +0 -4
  192. package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.mdx +38 -0
  193. package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.stories.ts +99 -0
  194. package/src/components/Amelipro/AmeliproUpload/AmeliproUpload.vue +714 -0
  195. package/src/components/Amelipro/AmeliproUpload/README.md +66 -0
  196. package/src/components/Amelipro/AmeliproUpload/__tests__/AmeliproUpload.spec.ts +74 -0
  197. package/src/components/Amelipro/AmeliproUpload/types.d.ts +10 -0
  198. package/src/components/Amelipro/ServiceMenu/ServiceBtn/tests/ServiceBtn.spec.ts +0 -4
  199. package/src/components/Amelipro/ServiceMenu/ServiceList/tests/ServiceList.spec.ts +0 -4
  200. package/src/components/Amelipro/ServiceMenu/ServiceMenuContent/tests/ServiceMenuContent.spec.ts +0 -4
  201. package/src/components/Amelipro/ServiceMenu/tests/ServiceMenu.spec.ts +0 -4
  202. package/src/components/Amelipro/StructureMenu/StructureBtn/tests/StructureBtn.spec.ts +0 -4
  203. package/src/components/Amelipro/StructureMenu/StructureItem/tests/StructureItem.spec.ts +0 -4
  204. package/src/components/Amelipro/StructureMenu/StructureList/tests/StructureList.spec.ts +0 -4
  205. package/src/components/Amelipro/StructureMenu/StructureTabs/tests/StructureTabs.spec.ts +0 -4
  206. package/src/components/Amelipro/StructureMenu/tests/StructureMenu.spec.ts +0 -2
  207. package/src/components/Amelipro/UserInformationSummary/tests/UserInformationSummary.spec.ts +0 -4
  208. package/src/components/Amelipro/UserMenu/UserMenuDetails/tests/UserMenuDetails.spec.ts +0 -4
  209. package/src/components/Amelipro/UserMenu/tests/UserMenu.spec.ts +0 -4
  210. package/src/components/BackBtn/BackBtn.vue +2 -1
  211. package/src/components/BackBtn/tests/BackBtn.spec.ts +1 -23
  212. package/src/components/BackToTopBtn/tests/BackToTopBtn.spec.ts +3 -34
  213. package/src/components/ChipList/tests/chipList.spec.ts +0 -38
  214. package/src/components/CollapsibleList/tests/CollapsibleList.spec.ts +0 -8
  215. package/src/components/ContextualMenu/tests/ContextualMenu.spec.ts +0 -28
  216. package/src/components/CookieBanner/tests/CookieBanner.spec.ts +1 -11
  217. package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.spec.ts +0 -16
  218. package/src/components/CookiesSelection/CookiesTable/tests/CookiesTable.spec.ts +0 -4
  219. package/src/components/CookiesSelection/tests/CookiesSelection.spec.ts +0 -16
  220. package/src/components/CopyBtn/tests/CopyBtn.spec.ts +0 -31
  221. package/src/components/CopyBtn/tests/__snapshots__/CopyBtn.spec.ts.snap +1 -0
  222. package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.spec.ts +3 -37
  223. package/src/components/Customs/Selects/SyBtnSelect/tests/SyBtnSelect.spec.ts +0 -28
  224. package/src/components/Customs/Selects/SyInputSelect/tests/SyInputSelect.spec.ts +8 -104
  225. package/src/components/Customs/Selects/SySelect/SySelect.vue +2 -2
  226. package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +0 -135
  227. package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +1 -1
  228. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +1 -1
  229. package/src/components/Customs/SyCheckbox/tests/SyCheckbox.spec.ts +0 -20
  230. package/src/components/Customs/SyForm/SyForm.mdx +1 -3
  231. package/src/components/Customs/SyForm/SyForm.stories.ts +131 -143
  232. package/src/components/Customs/SyTabs/tests/SyTabs.spec.ts +0 -2
  233. package/src/components/Customs/SyTextField/SyTextField.vue +27 -5
  234. package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +1 -27
  235. package/src/components/DataList/DataListLoading/tests/DataListLoading.spec.ts +0 -4
  236. package/src/components/DataList/tests/DataList.spec.ts +0 -26
  237. package/src/components/DataListGroup/tests/DataListGroup.spec.ts +0 -10
  238. package/src/components/DataListItem/tests/DataListItem.spec.ts +0 -28
  239. package/src/components/DatePicker/CalendarMode/DatePicker.vue +31 -8
  240. package/src/components/DatePicker/CalendarMode/tests/DatePicker.events.spec.ts +0 -16
  241. package/src/components/DatePicker/CalendarMode/tests/DatePicker.spec.ts +4 -34
  242. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +44 -12
  243. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.events.spec.ts +0 -10
  244. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +2 -2
  245. package/src/components/DatePicker/DateTextInput/DateTextInput.events.spec.ts +0 -13
  246. package/src/components/DatePicker/DateTextInput/DateTextInput.range.spec.ts +0 -10
  247. package/src/components/DatePicker/DateTextInput/DateTextInput.spec.ts +0 -52
  248. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +7 -1
  249. package/src/components/DatePicker/composables/tests/useDatePickerViewMode.spec.ts +107 -72
  250. package/src/components/DatePicker/composables/tests/useMonthButtonCustomization.spec.ts +6 -6
  251. package/src/components/DatePicker/composables/useDatePickerViewMode.ts +57 -7
  252. package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +14 -14
  253. package/src/components/DatePicker/tests/DatePicker.validation.spec.ts +0 -543
  254. package/src/components/DatePicker/tests/navigation.regression.spec.ts +74 -0
  255. package/src/components/DatePicker/tests/navigation.simple.spec.ts +137 -0
  256. package/src/components/DiacriticPicker/tests/DiatriticPicker.spec.ts +0 -6
  257. package/src/components/DialogBox/tests/DialogBox.spec.ts +0 -63
  258. package/src/components/DownloadBtn/tests/DownloadBtn.spec.ts +0 -7
  259. package/src/components/ErrorPage/tests/ErrorPage.spec.ts +0 -7
  260. package/src/components/ExternalLinks/tests/ExternalLinks.spec.ts +0 -16
  261. package/src/components/ExternalLinks/tests/__snapshots__/ExternalLinks.spec.ts.snap +1 -0
  262. package/src/components/FileList/tests/FileList.spec.ts +0 -13
  263. package/src/components/FilePreview/tests/FilePreview.spec.ts +1 -6
  264. package/src/components/FileUpload/tests/FileUpload.spec.ts +1 -48
  265. package/src/components/FilterInline/tests/FilterInline.spec.ts +0 -10
  266. package/src/components/FilterSideBar/FilterSideBar.stories.ts +2 -0
  267. package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +0 -10
  268. package/src/components/FooterBar/tests/FooterBar.spec.ts +7 -19
  269. package/src/components/FranceConnectBtn/tests/FranceConnectBtn.spec.ts +0 -11
  270. package/src/components/HeaderBar/HeaderBar.stories.ts +37 -38
  271. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/tests/HeaderSubMenu.spec.ts +0 -6
  272. package/src/components/HeaderBar/HeaderBurgerMenu/tests/HeaderBurgerMenu.spec.ts +0 -6
  273. package/src/components/HeaderBar/HeaderBurgerMenu/tests/useHandleSubMenus.spec.ts +0 -13
  274. package/src/components/HeaderBar/HeaderLogo/tests/HeaderLogo.spec.ts +1 -22
  275. package/src/components/HeaderBar/HeaderMenuBtn/tests/HeaderMenuBtn.spec.ts +0 -10
  276. package/src/components/HeaderBar/tests/HeaderBar.spec.ts +0 -16
  277. package/src/components/HeaderLoading/tests/HeaderLoading.spec.ts +0 -4
  278. package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +22 -15
  279. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.spec.ts +0 -4
  280. package/src/components/HeaderToolbar/tests/HeaderToolBar.spec.ts +7 -51
  281. package/src/components/LangBtn/tests/LangBtn.spec.ts +0 -56
  282. package/src/components/LogoBrandSection/tests/LogoBrandSection.spec.ts +22 -67
  283. package/src/components/NirField/NirField.stories.ts +13 -2
  284. package/src/components/NirField/NirField.vue +69 -34
  285. package/src/components/NirField/tests/NirField.cursor.spec.ts +315 -0
  286. package/src/components/NirField/tests/NirField.spec.ts +215 -17
  287. package/src/components/NotFoundPage/tests/NotFoundPage.spec.ts +2 -12
  288. package/src/components/NotificationBar/NotificationBar.mdx +1 -1
  289. package/src/components/NotificationBar/NotificationBar.stories.ts +1 -0
  290. package/src/components/NotificationBar/tests/NotificationBar.spec.ts +5 -44
  291. package/src/components/PageContainer/tests/PageContainer.spec.ts +1 -15
  292. package/src/components/PaginatedTable/tests/PaginatedTable.spec.ts +0 -23
  293. package/src/components/PasswordField/tests/PasswordField.spec.ts +4 -38
  294. package/src/components/PeriodField/tests/PeriodField.spec.ts +4 -74
  295. package/src/components/PhoneField/tests/PhoneField.spec.ts +3 -154
  296. package/src/components/RangeField/RangeSlider/tests/rangeSlider.spec.ts +0 -13
  297. package/src/components/RangeField/RangeSlider/tests/useThumbKeyboard.spec.ts +0 -34
  298. package/src/components/RangeField/RangeSlider/tests/useTrack.spec.ts +4 -24
  299. package/src/components/RangeField/tests/RangeField.spec.ts +0 -34
  300. package/src/components/RatingPicker/EmotionPicker/tests/EmotionPicker.spec.ts +2 -23
  301. package/src/components/RatingPicker/NumberPicker/tests/NumberPicker.spec.ts +2 -17
  302. package/src/components/RatingPicker/StarsPicker/tests/StarsPicker.spec.ts +3 -22
  303. package/src/components/RatingPicker/tests/Rating.spec.ts +0 -10
  304. package/src/components/RatingPicker/tests/RatingPicker.spec.ts +0 -23
  305. package/src/components/SearchListField/SearchListField.mdx +3 -4
  306. package/src/components/SearchListField/SearchListField.stories.ts +103 -3
  307. package/src/components/SearchListField/SearchListField.vue +34 -9
  308. package/src/components/SearchListField/tests/SearchListField.spec.ts +98 -44
  309. package/src/components/SocialMediaLinks/tests/SocialMediaLinks.spec.ts +0 -32
  310. package/src/components/SubHeader/tests/SubHeader.spec.ts +0 -18
  311. package/src/components/SyAlert/tests/SyAlert.spec.ts +0 -14
  312. package/src/components/SyTextArea/tests/SyTextArea.spec.ts +0 -31
  313. package/src/components/TableToolbar/tests/TableToolbar.spec.ts +0 -31
  314. package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +72 -24
  315. package/src/components/Tables/SyServerTable/SyServerTable.mdx +15 -0
  316. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +309 -0
  317. package/src/components/Tables/SyServerTable/SyServerTable.vue +33 -6
  318. package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +67 -58
  319. package/src/components/Tables/SyTable/SyTable.mdx +15 -0
  320. package/src/components/Tables/SyTable/SyTable.stories.ts +228 -0
  321. package/src/components/Tables/SyTable/SyTable.vue +48 -10
  322. package/src/components/Tables/SyTable/tests/SyTable.spec.ts +63 -55
  323. package/src/components/Tables/common/SyTablePagination.vue +11 -9
  324. package/src/components/Tables/common/TableHeader.vue +57 -2
  325. package/src/components/Tables/common/filters/tests/DateFilter.spec.ts +0 -11
  326. package/src/components/Tables/common/filters/tests/NumberFilter.spec.ts +0 -11
  327. package/src/components/Tables/common/filters/tests/PeriodFilter.spec.ts +0 -11
  328. package/src/components/Tables/common/filters/tests/SelectFilter.spec.ts +0 -11
  329. package/src/components/Tables/common/filters/tests/TextFilter.spec.ts +0 -11
  330. package/src/components/Tables/common/tests/SyTableFilter.spec.ts +0 -31
  331. package/src/components/Tables/common/tests/SyTablePagination.spec.ts +0 -49
  332. package/src/components/Tables/common/tests/TableHeader.spec.ts +0 -19
  333. package/src/components/Tables/common/tests/filterByRange.spec.ts +0 -13
  334. package/src/components/Tables/common/tests/resize.spec.ts +0 -13
  335. package/src/components/Tables/common/types.ts +11 -0
  336. package/src/components/Tables/common/usePagination.ts +11 -20
  337. package/src/components/Tables/common/useStoredOptions.ts +1 -1
  338. package/src/components/Tables/common/useTableCheckbox.ts +23 -11
  339. package/src/components/Tables/common/useTableHeaders.ts +73 -6
  340. package/src/components/ToolbarContainer/tests/ToolbarContainer.spec.ts +0 -19
  341. package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +0 -15
  342. package/src/components/Usages/tests/Usages.spec.ts +3 -31
  343. package/src/components/UserMenuBtn/tests/UserMenuBtn.spec.ts +0 -31
  344. package/src/composables/useFilterable/useFilterable.ts +33 -24
  345. package/src/composables/validation/{AvecVosComposants.mdx → AvecVosComposants.mdx.old} +1 -1
  346. package/src/composables/validation/{FormValidation.stories.ts → FormValidation.stories.ts.old} +5 -5
  347. package/src/stories/Accessibilite/Introduction.mdx +1 -1
  348. package/src/stories/Demarrer/EnrichirLeDesignSystem.mdx +43 -0
  349. package/src/stories/Demarrer/EnrichirLeDesignSystem.stories.ts +239 -0
  350. package/src/stories/Demarrer/SignalerUneAnomalie.mdx +39 -0
  351. package/src/stories/Demarrer/SignalerUneAnomalie.stories.ts +261 -0
  352. package/src/stories/GuideDuDev/FormValidationGuide.mdx +746 -114
  353. package/src/stories/GuideDuDev/UtiliserLesRules.mdx +138 -136
  354. package/src/utils/amelipro/rules/uploadFile/index.ts +119 -0
  355. package/src/utils/amelipro/rules/uploadFile/tests/uploadFile.spec.ts +55 -0
  356. package/src/utils/amelipro/toKebabCase/toKebabCase.ts +11 -0
  357. package/src/utils/rules/doMatchPattern/index.ts +1 -1
  358. package/src/utils/rules/isDateValid/index.ts +1 -1
  359. package/src/utils/rules/isExactLength/index.ts +4 -0
  360. package/src/utils/rules/isHolidayDay/index.ts +1 -1
  361. package/src/utils/rules/isHolidayDay/tests/isHolidayDay.spec.ts +24 -14
  362. package/src/utils/rules/isMaxLength/index.ts +4 -0
  363. package/src/utils/rules/isMinLength/index.ts +4 -0
  364. package/src/utils/rules/isNotAfterDate/index.ts +4 -0
  365. package/src/utils/rules/isNotAfterToday/index.ts +1 -1
  366. package/src/utils/rules/isNotBeforeDate/index.ts +4 -0
  367. package/src/utils/rules/isNotBeforeToday/index.ts +1 -1
  368. package/src/utils/rules/isRequired/index.ts +11 -5
  369. package/src/utils/rules/isRequired/tests/{isRequred.spec.ts → isRequired.spec.ts} +24 -0
  370. package/src/utils/rules/isValidEmail/index.ts +1 -1
  371. package/src/utils/rules/types.d.ts +12 -3
  372. package/dist/main-Dt4iNotT.js +0 -33147
  373. package/src/components/Amelipro/AmeliproBtn/tests/AmeliproBtn.spec.ts +0 -22
  374. package/src/components/Amelipro/AmeliproBtn/tests/__snapshots__/AmeliproBtn.spec.ts.snap +0 -46
  375. package/src/components/Amelipro/AmeliproCallback/tests/AmeliproCallback.spec.ts +0 -21
  376. package/src/components/Amelipro/AmeliproCallback/tests/__snapshots__/AmeliproCallback.spec.ts.snap +0 -165
  377. package/src/components/Amelipro/AmeliproCard/tests/AmeliproCard.spec.ts +0 -23
  378. package/src/components/Amelipro/AmeliproCard/tests/__snapshots__/AmeliproCard.spec.ts.snap +0 -78
  379. package/src/components/Amelipro/AmeliproCheckbox/tests/AmeliproCheckbox.spec.ts +0 -23
  380. package/src/components/Amelipro/AmeliproCheckbox/tests/__snapshots__/AmeliproCheckbox.spec.ts.snap +0 -40
  381. package/src/components/Amelipro/AmeliproCheckboxGroup/tests/AmeliproCheckboxGroup.spec.ts +0 -50
  382. package/src/components/Amelipro/AmeliproChips/tests/AmeliproChips.spec.ts +0 -20
  383. package/src/components/Amelipro/AmeliproChips/tests/__snapshots__/AmeliproChips.spec.ts.snap +0 -97
  384. package/src/components/Amelipro/AmeliproDialog/tests/AmeliproDialog.spec.ts +0 -26
  385. package/src/components/Amelipro/AmeliproDialog/tests/__snapshots__/AmeliproDialog.spec.ts.snap +0 -134
  386. package/src/components/Amelipro/AmeliproDisclosure/tests/AmeliproDisclosure.spec.ts +0 -23
  387. package/src/components/Amelipro/AmeliproDisclosure/tests/__snapshots__/AmeliproDisclosure.spec.ts.snap +0 -104
  388. package/src/components/BackBtn/tests/__snapshots__/BackBtn.spec.ts.snap +0 -45
  389. package/src/components/DialogBox/tests/__snapshots__/DialogBox.spec.ts.snap +0 -204
  390. package/src/components/RangeField/tests/__snapshots__/RangeField.spec.ts.snap +0 -1222
  391. package/src/stories/Demarrer/CreerUneIssue.mdx +0 -67
  392. package/src/stories/Demarrer/components.stories.ts +0 -25
  393. /package/src/composables/validation/{FormValidation.mdx → FormValidation.mdx.old} +0 -0
@@ -20,14 +20,61 @@ export function useTableHeaders({
20
20
  }) {
21
21
  // Process headers to ensure they have title property
22
22
  const normalizedHeaders = computed(() => {
23
- const headers = storedHeaders ?? headersProp?.value
24
- if (!Array.isArray(headers)) {
23
+ const incoming = headersProp?.value
24
+ const stored = Array.isArray(storedHeaders) ? storedHeaders : undefined
25
+
26
+ // Si aucun header, rien à faire
27
+ if (!Array.isArray(incoming) && !Array.isArray(stored)) {
25
28
  return undefined
26
29
  }
27
- return headers.map(header => ({
28
- ...header,
29
- title: header.title ?? header.text,
30
- }))
30
+
31
+ // Fusion logique entre storedHeaders et incoming
32
+ let headers: DataTableHeaders[] = []
33
+
34
+ if (stored && incoming) {
35
+ // Fusionne les headers existants avec les nouveaux
36
+ const merged = stored.map((storedHeader) => {
37
+ const match = incoming.find(
38
+ h =>
39
+ (h.key && h.key === storedHeader.key)
40
+ || (h.value && h.value === storedHeader.value),
41
+ )
42
+ return {
43
+ ...storedHeader,
44
+ ...(match || {}), // les nouveaux props écrasent les anciens
45
+ }
46
+ })
47
+
48
+ // Ajoute les headers qui n'existent pas encore dans le stockage
49
+ const extras = incoming.filter(
50
+ h =>
51
+ !merged.some(
52
+ x =>
53
+ (x.key && x.key === h.key)
54
+ || (x.value && x.value === h.value),
55
+ ),
56
+ )
57
+
58
+ headers = [...merged, ...extras]
59
+ }
60
+ else {
61
+ headers = (stored ?? incoming) as DataTableHeaders[]
62
+ }
63
+
64
+ // Normalisation finale
65
+ return headers.map((header) => {
66
+ const mapped = {
67
+ ...header,
68
+ title: header.title ?? header.text,
69
+ } as TableColumnHeader
70
+
71
+ // Si maxWidth est défini sans width → applique-le à width
72
+ if (mapped.maxWidth != null && mapped.width == null) {
73
+ mapped.width = mapped.maxWidth
74
+ }
75
+
76
+ return mapped as unknown as DataTableHeaders
77
+ })
31
78
  })
32
79
 
33
80
  // Get filterable headers
@@ -72,6 +119,25 @@ export function useTableHeaders({
72
119
  return normalizedHeaders.value?.find(header => header.key === key)
73
120
  }
74
121
 
122
+ /**
123
+ * Get original header from a rendered column (match by key or value)
124
+ */
125
+ function getHeaderForColumn(column: TableColumnHeader): TableColumnHeader | undefined {
126
+ if (!normalizedHeaders.value) return undefined
127
+ const key = column.key as string | undefined
128
+ if (key) {
129
+ const byKey = normalizedHeaders.value.find(h => h.key === key)
130
+ if (byKey) return byKey
131
+ }
132
+ // Fallback: try matching by value when key is not present or didn’t match
133
+ const val = column.value as string | undefined
134
+ if (val) {
135
+ const byValue = normalizedHeaders.value.find(h => h.value === val)
136
+ if (byValue) return byValue
137
+ }
138
+ return undefined
139
+ }
140
+
75
141
  /**
76
142
  * The headers filtered by visibility and sorted by order
77
143
  */
@@ -87,5 +153,6 @@ export function useTableHeaders({
87
153
  filterableHeaders,
88
154
  getEnhancedHeader,
89
155
  getHeaderByKey,
156
+ getHeaderForColumn,
90
157
  }
91
158
  }
@@ -2,15 +2,11 @@ import { describe, it, expect } from 'vitest'
2
2
  import { mount } from '@vue/test-utils'
3
3
  import Toolbar from '../ToolbarContainer.vue'
4
4
  import { VBtn } from 'vuetify/components'
5
- import { vuetify } from '@tests/unit/setup'
6
5
  import { defineComponent } from 'vue'
7
6
 
8
7
  describe('ToolbarContainer.vue', () => {
9
8
  it('renders default slot content', () => {
10
9
  const wrapper = mount(Toolbar, {
11
- global: {
12
- plugins: [vuetify],
13
- },
14
10
  slots: {
15
11
  default: '<div class="toolbar-content">Toolbar Content</div>',
16
12
  },
@@ -21,9 +17,6 @@ describe('ToolbarContainer.vue', () => {
21
17
 
22
18
  it('applies custom classes', () => {
23
19
  const wrapper = mount(Toolbar, {
24
- global: {
25
- plugins: [vuetify],
26
- },
27
20
  props: {
28
21
  class: 'custom-toolbar',
29
22
  },
@@ -35,9 +28,6 @@ describe('ToolbarContainer.vue', () => {
35
28
  it('set the focus to the first button', async () => {
36
29
  const wrapper = mount(Toolbar, {
37
30
  attachTo: document.body,
38
- global: {
39
- plugins: [vuetify],
40
- },
41
31
  slots: {
42
32
  default: `
43
33
  <div>
@@ -58,9 +48,6 @@ describe('ToolbarContainer.vue', () => {
58
48
  it('focuses the button when the navigation key are pressed', async () => {
59
49
  const wrapper = mount(Toolbar, {
60
50
  attachTo: document.body,
61
- global: {
62
- plugins: [vuetify],
63
- },
64
51
  slots: {
65
52
  default: `
66
53
  <div>
@@ -89,9 +76,6 @@ describe('ToolbarContainer.vue', () => {
89
76
  it('focuses the first and last buttons when Home and End keys are pressed', async () => {
90
77
  const wrapper = mount(Toolbar, {
91
78
  attachTo: document.body,
92
- global: {
93
- plugins: [vuetify],
94
- },
95
79
  slots: {
96
80
  default: `
97
81
  <div>
@@ -134,9 +118,6 @@ describe('ToolbarContainer.vue', () => {
134
118
  })
135
119
  const wrapper = mount(TestComponent, {
136
120
  attachTo: document.body,
137
- global: {
138
- plugins: [vuetify],
139
- },
140
121
  })
141
122
 
142
123
  const toolbar = wrapper.find('.sy-toolbar')
@@ -1,6 +1,5 @@
1
1
  import { describe, it, expect, vi } from 'vitest'
2
2
  import { mount } from '@vue/test-utils'
3
- import { vuetify } from '@tests/unit/setup'
4
3
 
5
4
  import UploadWorkflow from '../UploadWorkflow.vue'
6
5
  import { locales as fileListLocales } from '@/components/FileList/UploadItem/locales'
@@ -28,9 +27,6 @@ describe('UploadWorkflow', () => {
28
27
  },
29
28
  ],
30
29
  },
31
- global: {
32
- plugins: [vuetify],
33
- },
34
30
  })
35
31
 
36
32
  expect(wrapper.html()).toMatchSnapshot()
@@ -52,9 +48,6 @@ describe('UploadWorkflow', () => {
52
48
  },
53
49
  ],
54
50
  },
55
- global: {
56
- plugins: [vuetify],
57
- },
58
51
  })
59
52
 
60
53
  await wrapper.find('.file-item button').trigger('click')
@@ -87,9 +80,6 @@ describe('UploadWorkflow', () => {
87
80
  },
88
81
  ],
89
82
  },
90
- global: {
91
- plugins: [vuetify],
92
- },
93
83
  })
94
84
 
95
85
  await wrapper.findAll('.file-item button')[1].trigger('click')
@@ -134,7 +124,6 @@ describe('UploadWorkflow', () => {
134
124
  ],
135
125
  },
136
126
  global: {
137
- plugins: [vuetify],
138
127
  stubs: {
139
128
  VDialog: {
140
129
  template: '<div><slot /></div>',
@@ -188,9 +177,6 @@ describe('UploadWorkflow', () => {
188
177
  },
189
178
  ],
190
179
  },
191
- global: {
192
- plugins: [vuetify],
193
- },
194
180
  })
195
181
 
196
182
  await wrapper.find('.file-item button').trigger('click')
@@ -227,7 +213,6 @@ describe('UploadWorkflow', () => {
227
213
  showFilePreview: false,
228
214
  },
229
215
  global: {
230
- plugins: [vuetify],
231
216
  stubs: {
232
217
  VDialog: {
233
218
  template: '<div><slot /></div>',
@@ -1,15 +1,10 @@
1
1
  import { mount } from '@vue/test-utils'
2
2
  import { describe, it, expect } from 'vitest'
3
- import { vuetify } from '@tests/unit/setup'
4
3
  import Usages from '../Usages.vue'
5
4
 
6
5
  describe('Usages.vue', () => {
7
6
  it('renders the component with default props', () => {
8
- const wrapper = mount(Usages, {
9
- global: {
10
- plugins: [vuetify],
11
- },
12
- })
7
+ const wrapper = mount(Usages)
13
8
 
14
9
  // Vérifier que le composant est rendu
15
10
  expect(wrapper.exists()).toBe(true)
@@ -33,9 +28,6 @@ describe('Usages.vue', () => {
33
28
  const items2 = ['Item A', 'Item B']
34
29
 
35
30
  const wrapper = mount(Usages, {
36
- global: {
37
- plugins: [vuetify],
38
- },
39
31
  props: {
40
32
  items1,
41
33
  items2,
@@ -61,9 +53,6 @@ describe('Usages.vue', () => {
61
53
  const items1 = ['Item 1', 'Item 2']
62
54
 
63
55
  const wrapper = mount(Usages, {
64
- global: {
65
- plugins: [vuetify],
66
- },
67
56
  props: {
68
57
  items1,
69
58
  },
@@ -82,9 +71,6 @@ describe('Usages.vue', () => {
82
71
  const items2 = ['Item A', 'Item B', 'Item C']
83
72
 
84
73
  const wrapper = mount(Usages, {
85
- global: {
86
- plugins: [vuetify],
87
- },
88
74
  props: {
89
75
  items2,
90
76
  },
@@ -100,11 +86,7 @@ describe('Usages.vue', () => {
100
86
  })
101
87
 
102
88
  it('uses the correct icons', () => {
103
- const wrapper = mount(Usages, {
104
- global: {
105
- plugins: [vuetify],
106
- },
107
- })
89
+ const wrapper = mount(Usages)
108
90
 
109
91
  const icons = wrapper.findAll('.v-icon')
110
92
 
@@ -119,11 +101,7 @@ describe('Usages.vue', () => {
119
101
  })
120
102
 
121
103
  it('applies the correct styling to columns', () => {
122
- const wrapper = mount(Usages, {
123
- global: {
124
- plugins: [vuetify],
125
- },
126
- })
104
+ const wrapper = mount(Usages)
127
105
 
128
106
  // Vérifier les classes CSS pour la première colonne
129
107
  const checkColumn = wrapper.find('.check')
@@ -140,9 +118,6 @@ describe('Usages.vue', () => {
140
118
 
141
119
  it('handles empty arrays for both item lists', () => {
142
120
  const wrapper = mount(Usages, {
143
- global: {
144
- plugins: [vuetify],
145
- },
146
121
  props: {
147
122
  items1: [],
148
123
  items2: [],
@@ -160,9 +135,6 @@ describe('Usages.vue', () => {
160
135
 
161
136
  it('renders with custom props from CustomizableOptions', () => {
162
137
  const wrapper = mount(Usages, {
163
- global: {
164
- plugins: [vuetify],
165
- },
166
138
  props: {
167
139
  color: 'primary',
168
140
  disabled: true,
@@ -1,15 +1,11 @@
1
1
  import { describe, it, expect } from 'vitest'
2
2
  import { mount } from '@vue/test-utils'
3
3
  import UserMenuBtn from '../UserMenuBtn.vue'
4
- import { vuetify } from '@tests/unit/setup'
5
4
  import { nextTick } from 'vue'
6
5
 
7
6
  describe('UserMenuBtn', () => {
8
7
  it('renders the component', () => {
9
8
  const wrapper = mount(UserMenuBtn, {
10
- global: {
11
- plugins: [vuetify],
12
- },
13
9
  props: {
14
10
  modelValue: null,
15
11
  menuItems: [{ text: 'Item 1', value: 'item1' }],
@@ -25,9 +21,6 @@ describe('UserMenuBtn', () => {
25
21
 
26
22
  it('displays the full name', () => {
27
23
  const wrapper = mount(UserMenuBtn, {
28
- global: {
29
- plugins: [vuetify],
30
- },
31
24
  props: {
32
25
  modelValue: null,
33
26
  fullName: 'John Doe',
@@ -38,9 +31,6 @@ describe('UserMenuBtn', () => {
38
31
 
39
32
  it('does not render logout button when hidden', () => {
40
33
  const wrapper = mount(UserMenuBtn, {
41
- global: {
42
- plugins: [vuetify],
43
- },
44
34
  props: {
45
35
  modelValue: null,
46
36
  hideLogoutBtn: true,
@@ -51,9 +41,6 @@ describe('UserMenuBtn', () => {
51
41
 
52
42
  it('renders user icon when not hidden', () => {
53
43
  const wrapper = mount(UserMenuBtn, {
54
- global: {
55
- plugins: [vuetify],
56
- },
57
44
  props: {
58
45
  modelValue: null,
59
46
  hideUserIcon: false,
@@ -64,9 +51,6 @@ describe('UserMenuBtn', () => {
64
51
 
65
52
  it('does not render user icon when hidden', () => {
66
53
  const wrapper = mount(UserMenuBtn, {
67
- global: {
68
- plugins: [vuetify],
69
- },
70
54
  props: {
71
55
  modelValue: null,
72
56
  hideUserIcon: true,
@@ -77,9 +61,6 @@ describe('UserMenuBtn', () => {
77
61
 
78
62
  it('emits "update:modelValue" when selected changes', async () => {
79
63
  const wrapper = mount(UserMenuBtn, {
80
- global: {
81
- plugins: [vuetify],
82
- },
83
64
  props: {
84
65
  modelValue: null,
85
66
  },
@@ -95,9 +76,6 @@ describe('UserMenuBtn', () => {
95
76
 
96
77
  it('computes mobile view correctly based on props and display', () => {
97
78
  const wrapper = mount(UserMenuBtn, {
98
- global: {
99
- plugins: [vuetify],
100
- },
101
79
  props: {
102
80
  modelValue: null,
103
81
  isMobileView: true,
@@ -107,9 +85,6 @@ describe('UserMenuBtn', () => {
107
85
  })
108
86
  it('emits "update:modelValue" when updateModelValue is called via event', async () => {
109
87
  const wrapper = mount(UserMenuBtn, {
110
- global: {
111
- plugins: [vuetify],
112
- },
113
88
  props: {
114
89
  modelValue: null,
115
90
  menuItems: [{ text: 'Item 1', value: 'item1' }],
@@ -127,9 +102,6 @@ describe('UserMenuBtn', () => {
127
102
  it('possède la prop logoutText custom', async () => {
128
103
  const customLogoutText = 'Déconnexion'
129
104
  const wrapper = mount(UserMenuBtn, {
130
- global: {
131
- plugins: [vuetify],
132
- },
133
105
  props: {
134
106
  modelValue: null,
135
107
  logoutText: customLogoutText,
@@ -148,9 +120,6 @@ describe('UserMenuBtn', () => {
148
120
  it('possède la prop logoutText par défaut', async () => {
149
121
  const defaultLogoutText = 'Logout'
150
122
  const wrapper = mount(UserMenuBtn, {
151
- global: {
152
- plugins: [vuetify],
153
- },
154
123
  props: {
155
124
  modelValue: null,
156
125
  hideLogoutBtn: false,
@@ -28,6 +28,31 @@ export default function useFilterable(model: Ref<FilterProp>, emits) {
28
28
  return slugify(name, { lower: true })
29
29
  }
30
30
 
31
+ /**
32
+ * Handle various types of items to extract a displayable text
33
+ */
34
+ function getDisplayText(item: unknown): string {
35
+ if (item === null || item === undefined) {
36
+ return ''
37
+ }
38
+
39
+ if (typeof item !== 'object') {
40
+ return item.toString()
41
+ }
42
+
43
+ const obj = item as Record<string, unknown>
44
+
45
+ const possibleKeys = ['title', 'text', 'label', 'name', 'value']
46
+ for (const key of possibleKeys) {
47
+ if (typeof obj[key] === 'string' || typeof obj[key] === 'number') {
48
+ const existingDisplayableValue = obj[key] as string | number
49
+ return existingDisplayableValue.toString()
50
+ }
51
+ }
52
+
53
+ return JSON.stringify(item)
54
+ }
55
+
31
56
  function getChips(filter: FilterItem): ChipItem[] {
32
57
  const { value, formatChip } = filter
33
58
 
@@ -54,19 +79,10 @@ export default function useFilterable(model: Ref<FilterProp>, emits) {
54
79
  }
55
80
 
56
81
  if (isArray) {
57
- return value.map((item) => {
58
- if (typeof item !== 'object') {
59
- return {
60
- text: item.toString(),
61
- value: item,
62
- }
63
- }
64
-
65
- return {
66
- text: item.title || item.text || item.value.toString(),
67
- value: item,
68
- }
69
- })
82
+ return value.map(item => ({
83
+ text: getDisplayText(item),
84
+ value: item,
85
+ }))
70
86
  }
71
87
 
72
88
  if (isObject) {
@@ -90,11 +106,11 @@ export default function useFilterable(model: Ref<FilterProp>, emits) {
90
106
 
91
107
  // Handle single select objects (VSelect with return-object but without multiple)
92
108
  // Check if this looks like a select option object with title/text and value properties
93
- const hasSelectStructure = (typedValue.title !== undefined || typedValue.text !== undefined) && typedValue.value !== undefined
109
+ const hasSelectStructure = (typedValue.title !== undefined || typedValue.text !== undefined || typedValue.label !== undefined) && typedValue.value !== undefined
94
110
  if (hasSelectStructure) {
95
111
  return [
96
112
  {
97
- text: typedValue.title || typedValue.text || typedValue.value.toString(),
113
+ text: getDisplayText(typedValue),
98
114
  value: typedValue,
99
115
  },
100
116
  ]
@@ -102,15 +118,8 @@ export default function useFilterable(model: Ref<FilterProp>, emits) {
102
118
 
103
119
  // Any other object - iterate over keys
104
120
  return Object.keys(typedValue).map((key) => {
105
- // Use text property if it exists, else use value property or default to key value
106
- const text
107
- = typedValue[key].title
108
- || typedValue[key].text
109
- || typedValue[key].value?.toString()
110
- || typedValue[key].toString()
111
-
112
121
  return {
113
- text,
122
+ text: getDisplayText(typedValue[key]),
114
123
  value: typedValue[key],
115
124
  }
116
125
  })
@@ -174,7 +183,7 @@ export default function useFilterable(model: Ref<FilterProp>, emits) {
174
183
  }
175
184
 
176
185
  // Handle single select objects (VSelect with return-object but without multiple)
177
- const hasSelectStructure = (typedValue.title !== undefined || typedValue.text !== undefined) && typedValue.value !== undefined
186
+ const hasSelectStructure = (typedValue.title !== undefined || typedValue.text !== undefined || typedValue.label !== undefined) && typedValue.value !== undefined
178
187
  if (hasSelectStructure) {
179
188
  // For single select objects, clear the entire value
180
189
  filter.value = undefined
@@ -1,6 +1,6 @@
1
1
  import { Meta, Source } from '@storybook/blocks';
2
2
 
3
- <Meta title="Composables/ValidationSystem/Avec Vos Composants" />
3
+ <Meta title="Guide Du Dev/SyForm/Avec Vos Composants" />
4
4
 
5
5
  <div className="header">
6
6
  <h1>Etendre le système à vos propres composants</h1>
@@ -11,7 +11,7 @@ import { VBtn, VTextField } from 'vuetify/components'
11
11
  * La documentation sur le système de validation en cascade de Synapse Design System.
12
12
  */
13
13
  export default {
14
- title: 'Composables/ValidationSystem',
14
+ title: 'Guide Du Dev/SyForm',
15
15
  component: SyForm,
16
16
  argTypes: {
17
17
  validateOnSubmit: {
@@ -32,7 +32,7 @@ export default {
32
32
  type Story = StoryObj<typeof SyForm>
33
33
 
34
34
  // Exemple de base
35
- export const SimpleForm: Story = {
35
+ export const FormulaireSimple: Story = {
36
36
  render: args => ({
37
37
  components: { SyForm, SyTextField, VBtn },
38
38
  setup() {
@@ -100,7 +100,7 @@ const onSubmit = (event: { isValid: boolean }) => {
100
100
  }
101
101
 
102
102
  // Exemple de formulaire avec composants mixtes
103
- export const MixedComponentsForm: Story = {
103
+ export const FormulaireMixte: Story = {
104
104
  render: args => ({
105
105
  components: { SyForm, SyTextField, SySelect, SyCheckbox, DatePicker, VBtn, VTextField },
106
106
  setup() {
@@ -216,7 +216,7 @@ const onSubmit = (event: { isValid: boolean }) => {
216
216
  }
217
217
 
218
218
  // Exemple de formulaire imbriqué
219
- export const NestedForm: Story = {
219
+ export const FormulaireImbrique: Story = {
220
220
  render: args => ({
221
221
  components: { SyForm, SyTextField, VBtn },
222
222
  setup() {
@@ -313,7 +313,7 @@ const onSubmit = (event: { isValid: boolean }) => {
313
313
  }
314
314
 
315
315
  // Exemple d'implémentation personnalisée
316
- export const CustomImplementation: Story = {
316
+ export const ImplementationPersonnalisee: Story = {
317
317
  render: args => ({
318
318
  components: { SyForm, SyTextField, VBtn },
319
319
  setup() {
@@ -220,7 +220,7 @@ Pour répondre aux objectifs de mise en conformité des interfaces utilisateurs
220
220
  <div>
221
221
  <h3>Besoin d'accompagnement ?</h3>
222
222
  <p>Si vous avez besoin d'un accompagnement sur le sujet, merci de prendre contact avec <a href="mailto:valentin.becquet@assurance-maladie.fr">valentin.becquet@assurance-maladie.fr</a>.</p>
223
- <p>Pour toute remontée de problème liée à l'accessibilité, veuillez <a href="https://github.com/assurance-maladie-digital/design-system-v3/issues/new?template=accessibility.md">signaler un problème d'accessibilité</a>.</p>
223
+ <p>Pour toute remontée de problème liée à l'accessibilité, veuillez <a href="/?path=/docs/démarrer-signaler-une-anomalie--docs">signaler un problème d'accessibilité</a>.</p>
224
224
  </div>
225
225
  </div>
226
226
 
@@ -0,0 +1,43 @@
1
+ import {Meta, Story} from '@storybook/addon-docs/blocks';
2
+ import * as ComponentStories from './EnrichirLeDesignSystem.stories.ts';
3
+ import '../styles/shared.css';
4
+
5
+ <Meta title="Démarrer/Enrichir le Design System"/>
6
+
7
+ <div className="header">
8
+ <h1>Enrichir le Design System</h1>
9
+ </div>
10
+
11
+ ## Introduction
12
+
13
+ Le Design System de l'Assurance Maladie est un projet vivant qui évolue constamment pour répondre aux besoins des utilisateurs et aux avancées technologiques.<br/>
14
+ Votre contribution est essentielle pour garantir que le Design System reste pertinent, accessible et efficace.<br/>
15
+ Toute demande ne sera pas nécessairement intégrée, mais chaque suggestion est examinée avec attention par l'équipe du Studio Design.
16
+
17
+ <Story of={ComponentStories.InfoIntro}/>
18
+
19
+ <a id="exigences" />
20
+ ## Exigences requises pour acceptation d'un nouveau composant ou d'une nouvelle fonctionnalité
21
+
22
+ 1. Être **conforme aux exigences de la charte graphique** de la CNAM (tokens associés).
23
+ 2. Avoir un **intérêt d'usage pour plusieurs produits** de l'Assurance Maladie (une justification métier peut être demandée).
24
+ 3. Avoir un **intérêt d'usage ou de pertinence** par rapport aux **composants de la bibliothèque Vuetify**.
25
+ 4. Avoir un **intérêt d'usage ou de pertinence** par rapport aux **composants existant du Design System**.
26
+ 5. Doit permettre la **responsivité**.
27
+ 6. Doit permettre le **respect du Référentiel général d'amélioration de l'accessibilité** (RGAA).
28
+ 7. Doit permettre aux produits utilisateurs du composant de respecter des **bonnes pratiques d’éco-conception**.
29
+ 8. Doit permettre la **maintenabilité du composant**.
30
+ 9. Ne doit pas engendrer de **conflit** ou **régression** avec l'existant.
31
+ 10. Doit se conformer aux **exigences techniques** du Design System et à son bon fonctionnement sur le Starter Kit (VueJS 3, version des plugins...).
32
+
33
+ ## Créer une nouvelle demande
34
+
35
+ <Story of={ComponentStories.Optimisation}/>
36
+
37
+ <Story of={ComponentStories.AjoutFonctionnalite}/>
38
+
39
+ <Story of={ComponentStories.DeclinaisonFonctionnalite}/>
40
+
41
+ <Story of={ComponentStories.CreationComposant}/>
42
+
43
+ <Story of={ComponentStories.IntegrationComposant}/>