@cnamts/synapse 1.0.20 → 1.0.22

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 (414) hide show
  1. package/dist/{DateFilter-XURUmpMl.js → DateFilter-B5n-ZkLi.js} +29 -24
  2. package/dist/{NumberFilter-BZc0O8wV.js → NumberFilter-CtiZ9uj8.js} +1 -1
  3. package/dist/{PeriodFilter-ZNdXcl3p.js → PeriodFilter-DzqiMb-b.js} +1 -1
  4. package/dist/{SelectFilter-DshYU5OK.js → SelectFilter-BOYlF7rX.js} +1 -1
  5. package/dist/{TextFilter-D_c5dRPl.js → TextFilter-BOFRNfcX.js} +1 -1
  6. package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +7399 -5967
  7. package/dist/components/Amelipro/AmeliproBtn/AmeliproBtn.d.ts +1 -1
  8. package/dist/components/Amelipro/AmeliproCallback/AmeliproCallback.d.ts +1 -1
  9. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarousel.d.ts +10 -14
  10. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarouselItem/AmeliproCarouselItem.d.ts +1 -1
  11. package/dist/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.d.ts +1 -1
  12. package/dist/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.d.ts +1 -1
  13. package/dist/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.d.ts +1 -1
  14. package/dist/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.d.ts +1 -1
  15. package/dist/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.d.ts +1 -1
  16. package/dist/components/Amelipro/AmeliproFooter/AmeliproFooter.d.ts +8 -8
  17. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeader.d.ts +3 -3
  18. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBar.d.ts +1 -1
  19. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/AmeliproHeaderBrandSection.d.ts +1 -1
  20. package/dist/components/Amelipro/AmeliproIcon/AmeliproIcon.d.ts +1 -1
  21. package/dist/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.d.ts +16 -20
  22. package/dist/components/Amelipro/AmeliproMenu/AmeliproMenu.d.ts +1 -1
  23. package/dist/components/Amelipro/AmeliproPagination/AmeliproPaginationBtn/AmeliproPaginationBtn.d.ts +1 -1
  24. package/dist/components/Amelipro/AmeliproPatientBanner/AmeliproPatientBanner.d.ts +1 -1
  25. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/AmeliproPostalAddressCityRow.d.ts +1610 -1354
  26. package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.d.ts +2411 -2027
  27. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +8889 -7327
  28. package/dist/components/Amelipro/AmeliproStateTile/AmeliproStateTile.d.ts +1 -1
  29. package/dist/components/Amelipro/AmeliproStepper/AmeliproStepper.d.ts +2 -6
  30. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +8888 -7334
  31. package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +951 -839
  32. package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +1613 -1357
  33. package/dist/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.d.ts +223 -203
  34. package/dist/components/Amelipro/AmeliproTransmission/AmeliproTransmission.d.ts +3 -3
  35. package/dist/components/Amelipro/StructureMenu/StructureTabs/StructureTabs.d.ts +3 -7
  36. package/dist/components/CollapsibleList/CollapsibleList.d.ts +4 -1
  37. package/dist/components/CookieBanner/CookieBanner.d.ts +303 -273
  38. package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +1297 -1156
  39. package/dist/components/CookiesSelection/CookiesSelection.d.ts +404 -377
  40. package/dist/components/Customs/Selects/SelectBtnField/SelectBtnField.d.ts +1 -1
  41. package/dist/components/Customs/Selects/SyAutocomplete/SyAutocomplete.d.ts +1088 -847
  42. package/dist/components/Customs/Selects/SyInputSelect/SyInputSelect.d.ts +1 -1
  43. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +515 -321
  44. package/dist/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.d.ts +162 -0
  45. package/dist/components/Customs/SyCheckBoxGroup/locales.d.ts +3 -0
  46. package/dist/components/Customs/SyCheckBoxGroup/types.d.ts +10 -0
  47. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +1668 -5
  48. package/dist/components/Customs/SyForm/SyForm.d.ts +356 -348
  49. package/dist/components/Customs/SyPagination/SyPagination.d.ts +11 -1
  50. package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +1609 -4
  51. package/dist/components/Customs/SyTextField/SyTextField.d.ts +1629 -1365
  52. package/dist/components/DataList/DataList.d.ts +1 -1
  53. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +3868 -3123
  54. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +1946 -1562
  55. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +833 -687
  56. package/dist/components/DeclarationAccessibilityPage/DeclarationAccessibilityPage.d.ts +60 -0
  57. package/dist/components/DialogBox/DialogBox.d.ts +482 -416
  58. package/dist/components/DownloadBtn/config.d.ts +1 -1
  59. package/dist/components/ErrorPage/ErrorPage.d.ts +5 -12
  60. package/dist/components/ErrorPage/locales.d.ts +18 -3
  61. package/dist/components/FileList/UploadItem/locales.d.ts +4 -0
  62. package/dist/components/FileUpload/FileUpload.d.ts +6 -4
  63. package/dist/components/FileUpload/locales.d.ts +1 -0
  64. package/dist/components/FilterSideBar/FilterSideBar.d.ts +418 -366
  65. package/dist/components/FooterBar/FooterBar.d.ts +13 -1
  66. package/dist/components/FooterBar/locales.d.ts +1 -0
  67. package/dist/components/FooterBar/types.d.ts +1 -0
  68. package/dist/components/HeaderBar/HeaderBar.d.ts +1 -0
  69. package/dist/components/HeaderBar/HeaderLogo/HeaderLogo.d.ts +1 -0
  70. package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +3 -6
  71. package/dist/components/HeaderToolbar/HeaderToolbar.d.ts +1031 -643
  72. package/dist/components/LangBtn/LangBtn.d.ts +277 -239
  73. package/dist/components/LogoBrandSection/LogoBrandSection.d.ts +4 -0
  74. package/dist/components/MaintenancePage/MaintenancePage.d.ts +16 -1
  75. package/dist/components/MaintenancePage/locales.d.ts +18 -2
  76. package/dist/components/NirField/NirField.d.ts +1659 -1371
  77. package/dist/components/NotFoundPage/NotFoundPage.d.ts +9 -3
  78. package/dist/components/NotFoundPage/locales.d.ts +20 -4
  79. package/dist/components/PageContainer/PageContainer.d.ts +3 -1
  80. package/dist/components/PasswordField/PasswordField.d.ts +1 -1
  81. package/dist/components/PeriodField/PeriodField.d.ts +7712 -6216
  82. package/dist/components/PhoneField/PhoneField.d.ts +831 -687
  83. package/dist/components/RangeField/RangeSlider/RangeSlider.d.ts +4 -12
  84. package/dist/components/StatusPage/StatusPage.d.ts +50 -0
  85. package/dist/components/SubHeader/SubHeader.d.ts +2 -0
  86. package/dist/components/SyAlert/SyAlert.d.ts +74 -70
  87. package/dist/components/SyBtnMenu/SyBtnMenu.d.ts +10 -1
  88. package/dist/components/SyHeading/SyHeading.d.ts +20 -0
  89. package/dist/components/SyTextArea/SyTextArea.d.ts +476 -420
  90. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +759 -468
  91. package/dist/components/Tables/SyTable/SyTable.d.ts +761 -470
  92. package/dist/components/Tables/common/SyTableFilter.d.ts +1 -1
  93. package/dist/components/Tables/common/SyTablePagination.d.ts +269 -170
  94. package/dist/components/Tables/common/filters/DateFilter.d.ts +10 -1
  95. package/dist/components/Tables/common/filters/NumberFilter.d.ts +1 -1
  96. package/dist/components/Tables/common/filters/PeriodFilter.d.ts +1 -1
  97. package/dist/components/Tables/common/filters/SelectFilter.d.ts +1 -1
  98. package/dist/components/Tables/common/filters/TextFilter.d.ts +1 -1
  99. package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +166 -138
  100. package/dist/components/Tables/common/types.d.ts +2 -0
  101. package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +35 -1212
  102. package/dist/components/UserMenuBtn/UserMenuBtn.d.ts +1 -0
  103. package/dist/components/index.d.ts +4 -0
  104. package/dist/components/types.d.ts +2 -0
  105. package/dist/design-system-v3.js +131 -127
  106. package/dist/design-system-v3.umd.cjs +274 -274
  107. package/dist/designTokens/tokens/amelipro/apLightTheme.d.ts +26 -14
  108. package/dist/designTokens/tokens/amelipro/apSemantic.d.ts +19 -13
  109. package/dist/designTokens/tokens/cnam/cnamLightTheme.d.ts +28 -15
  110. package/dist/designTokens/tokens/cnam/cnamSemantic.d.ts +20 -13
  111. package/dist/designTokens/tokens/pa/paLightTheme.d.ts +26 -15
  112. package/dist/designTokens/tokens/pa/paSemantic.d.ts +19 -13
  113. package/dist/main-CEl4J8_T.js +37241 -0
  114. package/dist/style.css +1 -1
  115. package/dist/utils/theme/index.d.ts +6 -0
  116. package/dist/vuetifyConfig.d.ts +14 -14
  117. package/package.json +16 -7
  118. package/src/assets/amelipro/img/logo-amelipro.svg +9 -0
  119. package/src/assets/apTokens.scss +53 -17
  120. package/src/assets/overrides/_icons.scss +12 -2
  121. package/src/assets/overrides/_tooltips.scss +5 -6
  122. package/src/assets/overrides/_typography.scss +17 -2
  123. package/src/assets/overrides/_utilities.scss +49 -3
  124. package/src/assets/tokens.scss +53 -17
  125. package/src/components/Accordion/accessibilite/Accessibility.mdx +5 -4
  126. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/AmeliproAccordionTemplate.vue +2 -2
  127. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordionTemplate/__tests__/__snapshots__/AmeliproAccordionTemplate.spec.ts.snap +0 -2
  128. package/src/components/Amelipro/AmeliproAccordionFrieze/AmeliproAccordionFrieze.vue +2 -2
  129. package/src/components/Amelipro/AmeliproAccordionFrieze/__tests__/__snapshots__/AmeliproAccordionFrieze.spec.ts.snap +14 -56
  130. package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.vue +1 -1
  131. package/src/components/Amelipro/AmeliproAccordionList/__tests__/__snapshots__/AmeliproAccordionList.spec.ts.snap +15 -23
  132. package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.vue +1 -1
  133. package/src/components/Amelipro/AmeliproAccordionResultList/__tests__/__snapshots__/AmeliproAccordionResultList.spec.ts.snap +15 -3
  134. package/src/components/Amelipro/AmeliproCarousel/__tests__/__snapshots__/AmeliproCarousel.spec.ts.snap +0 -2
  135. package/src/components/Amelipro/AmeliproClickableTile/tests/__snapshots__/AmeliproClickableTile.spec.ts.snap +0 -98
  136. package/src/components/Amelipro/AmeliproContentLayout/AmeliproContentLayout.mdx +1 -1
  137. package/src/components/Amelipro/AmeliproContentLayout/AmeliproContentLayout.stories.ts +5 -16
  138. package/src/components/Amelipro/AmeliproCopyBtn/AmeliproCopyBtn.mdx +3 -1
  139. package/src/components/Amelipro/AmeliproCopyBtn/AmeliproCopyBtn.stories.ts +7 -0
  140. package/src/components/Amelipro/AmeliproDentalChart/AmeliproTooth/AmeliproTooth.vue +0 -1
  141. package/src/components/Amelipro/AmeliproDentalChart/AmeliproTooth/tests/__snapshots__/AmeliproTooth.spec.ts.snap +0 -1
  142. package/src/components/Amelipro/AmeliproDentalChart/tests/__snapshots__/AmeliproDentalChart.spec.ts.snap +0 -52
  143. package/src/components/Amelipro/AmeliproDialog/__tests__/__snapshots__/AmeliproDialog.spec.ts.snap +6 -0
  144. package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.mdx +3 -1
  145. package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.stories.ts +19 -0
  146. package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.vue +2 -2
  147. package/src/components/Amelipro/AmeliproFirstLogin/AmeliproFirstLogin.vue +3 -4
  148. package/src/components/Amelipro/AmeliproFirstLogin/__tests__/__snapshots__/AmeliproFirstLogin.spec.ts.snap +2 -13
  149. package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.mdx +3 -1
  150. package/src/components/Amelipro/AmeliproFooter/AmeliproFooter.stories.ts +7 -0
  151. package/src/components/Amelipro/AmeliproMenu/__tests__/__snapshots__/AmeliproMenu.spec.ts.snap +8 -0
  152. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/__snapshots__/AmeliproPatientLogged.spec.ts.snap +9 -2
  153. package/src/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressCityRow/__tests__/__snapshots__/AmeliproPostalAddressCityRow.spec.ts.snap +28 -10
  154. package/src/components/Amelipro/AmeliproPostalAddressField/__tests__/__snapshots__/AmeliproPostalAddressField.spec.ts.snap +44 -8
  155. package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.vue +1 -1
  156. package/src/components/Amelipro/AmeliproResultList/__tests__/__snapshots__/AmeliproResultList.spec.ts.snap +15 -3
  157. package/src/components/Amelipro/AmeliproTable/AmeliproTable.vue +1 -1
  158. package/src/components/Amelipro/AmeliproTable/__tests__/__snapshots__/AmeliproTable.spec.ts.snap +0 -1
  159. package/src/components/Amelipro/AmeliproTooltips/__tests__/__snapshots__/AmeliproTooltips.spec.ts.snap +6 -0
  160. package/src/components/Amelipro/AmeliproUpload/__tests__/__snapshots__/AmeliproUpload.spec.ts.snap +2 -4
  161. package/src/components/Amelipro/StructureMenu/StructureList/__tests__/__snapshots__/StructureList.spec.ts.snap +0 -2
  162. package/src/components/Amelipro/UserMenu/__tests__/__snapshots__/UserMenu.spec.ts.snap +8 -0
  163. package/src/components/BackBtn/BackBtn.vue +1 -1
  164. package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +36 -18
  165. package/src/components/ChipList/ChipList.vue +4 -2
  166. package/src/components/CollapsibleList/CollapsibleList.stories.ts +8 -3
  167. package/src/components/CollapsibleList/CollapsibleList.vue +14 -6
  168. package/src/components/CollapsibleList/accessibilite/Accessibility.mdx +19 -6
  169. package/src/components/CollapsibleList/tests/CollapsibleList.a11y.spec.ts +1 -0
  170. package/src/components/CollapsibleList/tests/CollapsibleList.spec.ts +2 -0
  171. package/src/components/ContextualMenu/ContextualMenu.stories.ts +0 -3
  172. package/src/components/ContextualMenu/accessibilite/Accessibility.mdx +67 -11
  173. package/src/components/CookieBanner/CookieBanner.stories.ts +21 -20
  174. package/src/components/CookieBanner/CookieBanner.vue +35 -10
  175. package/src/components/CookieBanner/accessibilite/Accessibility.mdx +76 -11
  176. package/src/components/CookieBanner/tests/CookieBanner.spec.ts +56 -4
  177. package/src/components/CookieBanner/tests/__snapshots__/CookieBanner.spec.ts.snap +21 -15
  178. package/src/components/CookiesSelection/CookiesInformation/CookiesInformation.vue +17 -8
  179. package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.a11y.spec.ts +1 -0
  180. package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.spec.ts +5 -0
  181. package/src/components/CookiesSelection/CookiesSelection.vue +7 -2
  182. package/src/components/CookiesSelection/tests/CookiesSelection.a11y.spec.ts +1 -0
  183. package/src/components/CookiesSelection/tests/CookiesSelection.spec.ts +5 -0
  184. package/src/components/CookiesSelection/tests/__snapshots__/CookiesSelection.spec.ts.snap +21 -15
  185. package/src/components/CopyBtn/CopyBtn.vue +6 -4
  186. package/src/components/CopyBtn/accessibilite/Accessibility.mdx +82 -11
  187. package/src/components/CopyBtn/tests/__snapshots__/CopyBtn.spec.ts.snap +5 -1
  188. package/src/components/Customs/Selects/SyInputSelect/SyInputSelect.stories.ts +4 -10
  189. package/src/components/Customs/Selects/SySelect/SySelect.mdx +0 -1
  190. package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +10 -10
  191. package/src/components/Customs/Selects/SySelect/SySelect.vue +17 -0
  192. package/src/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.ts +1 -1
  193. package/src/components/Customs/Selects/SySelect/tests/SySelect.a11y.spec.ts +1 -3
  194. package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +72 -0
  195. package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.mdx +32 -0
  196. package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.stories.ts +856 -0
  197. package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.vue +334 -0
  198. package/src/components/Customs/SyCheckBoxGroup/accessibilite/Accessibility.mdx +243 -0
  199. package/src/components/Customs/SyCheckBoxGroup/locales.ts +3 -0
  200. package/src/components/Customs/SyCheckBoxGroup/tests/SyCheckBoxGroup.a11y.spec.ts +30 -0
  201. package/src/components/Customs/SyCheckBoxGroup/tests/SyCheckBoxGroup.spec.ts +152 -0
  202. package/src/components/Customs/SyCheckBoxGroup/types.ts +10 -0
  203. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +17 -28
  204. package/src/components/Customs/SyCheckbox/accessibilite/Accessibility.mdx +1 -1
  205. package/src/components/Customs/SyForm/SyForm.a11y.spec.ts +1 -1
  206. package/src/components/Customs/SyIcon/SyIcon.a11y.spec.ts +31 -2
  207. package/src/components/Customs/SyIcon/SyIcon.vue +9 -5
  208. package/src/components/Customs/SyPagination/SyPagination.stories.ts +14 -2
  209. package/src/components/Customs/SyPagination/SyPagination.vue +20 -5
  210. package/src/components/Customs/SyPagination/accessibilite/Accessibility.mdx +79 -8
  211. package/src/components/Customs/SyPagination/tests/SyPagination.a11y.spec.ts +38 -12
  212. package/src/components/Customs/SyPagination/tests/SyPagination.spec.ts +12 -0
  213. package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +16 -43
  214. package/src/components/Customs/SyTextField/SyTextField.stories.ts +4 -0
  215. package/src/components/Customs/SyTextField/SyTextField.vue +39 -5
  216. package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +28 -3
  217. package/src/components/DatePicker/CalendarMode/DatePicker.vue +55 -19
  218. package/src/components/DatePicker/CalendarMode/tests/DatePicker.spec.ts +9 -3
  219. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +44 -3
  220. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +70 -47
  221. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.a11y.spec.ts +9 -1
  222. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +48 -21
  223. package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +98 -0
  224. package/src/components/DatePicker/docExamples/BidirectionalComplexValidation.vue +23 -9
  225. package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +21 -8
  226. package/src/components/DatePicker/docExamples/DatePickerValidationExamples.vue +50 -22
  227. package/src/components/DatePicker/playground/ComplexDatePickerPlayground.vue +48 -10
  228. package/src/components/DatePicker/playground/DatePickerHolidayRule.vue +16 -3
  229. package/src/components/DeclarationAccessibilityPage/DeclarationAccessibilityPage.mdx +83 -0
  230. package/src/components/DeclarationAccessibilityPage/DeclarationAccessibilityPage.stories.ts +502 -0
  231. package/src/components/DeclarationAccessibilityPage/DeclarationAccessibilityPage.vue +428 -0
  232. package/src/components/DeclarationAccessibilityPage/accessibilite/Accessibility.mdx +75 -0
  233. package/src/components/DeclarationAccessibilityPage/tests/DeclarationAccessibilityPage.a11y.spec.ts +53 -0
  234. package/src/components/DeclarationAccessibilityPage/tests/DeclarationAccessibilityPage.spec.ts +59 -0
  235. package/src/components/DiacriticPicker/DiacriticPicker.vue +20 -1
  236. package/src/components/DialogBox/DialogBox.stories.ts +13 -0
  237. package/src/components/DialogBox/DialogBox.vue +12 -5
  238. package/src/components/DialogBox/accessibilite/Accessibility.mdx +27 -7
  239. package/src/components/DialogBox/tests/DialogBox.a11y.spec.ts +1 -0
  240. package/src/components/DialogBox/tests/DialogBox.spec.ts +40 -6
  241. package/src/components/DownloadBtn/accessibilite/Accessibility.mdx +73 -11
  242. package/src/components/DownloadBtn/config.ts +1 -1
  243. package/src/components/ErrorPage/ErrorPage.mdx +6 -16
  244. package/src/components/ErrorPage/ErrorPage.stories.ts +90 -126
  245. package/src/components/ErrorPage/ErrorPage.vue +44 -125
  246. package/src/components/ErrorPage/accessibilite/Accessibility.mdx +83 -6
  247. package/src/components/ErrorPage/assets/error-ap.svg +1774 -0
  248. package/src/components/ErrorPage/locales.ts +21 -3
  249. package/src/components/ErrorPage/tests/ErrorPage.a11y.spec.ts +5 -13
  250. package/src/components/ErrorPage/tests/ErrorPage.spec.ts +2 -41
  251. package/src/components/ErrorPage/tests/__snapshots__/ErrorPage.spec.ts.snap +10 -266
  252. package/src/components/ExternalLinks/tests/__snapshots__/ExternalLinks.spec.ts.snap +13 -2
  253. package/src/components/FileList/FileList.stories.ts +4 -0
  254. package/src/components/FileList/UploadItem/UploadItem.vue +8 -3
  255. package/src/components/FileList/UploadItem/locales.ts +10 -0
  256. package/src/components/FileList/accessibilite/Accessibility.mdx +55 -7
  257. package/src/components/FileUpload/FileUpload.vue +65 -37
  258. package/src/components/FileUpload/FileUploadContent.vue +1 -1
  259. package/src/components/FileUpload/accessibilite/Accessibility.mdx +48 -5
  260. package/src/components/FileUpload/locales.ts +1 -0
  261. package/src/components/FileUpload/tests/FileUpload.spec.ts +14 -14
  262. package/src/components/FilterInline/FilterInline.stories.ts +0 -15
  263. package/src/components/FilterInline/FilterInline.vue +1 -0
  264. package/src/components/FilterInline/accessibilite/Accessibility.mdx +70 -7
  265. package/src/components/FilterInline/tests/__snapshots__/FilterInline.spec.ts.snap +3 -3
  266. package/src/components/FilterSideBar/FilterSideBar.stories.ts +0 -3
  267. package/src/components/FilterSideBar/FilterSideBar.vue +2 -1
  268. package/src/components/FilterSideBar/accessibilite/Accessibility.mdx +70 -9
  269. package/src/components/FooterBar/FooterBar.stories.ts +316 -48
  270. package/src/components/FooterBar/FooterBar.vue +67 -9
  271. package/src/components/FooterBar/config.ts +2 -2
  272. package/src/components/FooterBar/defaultSocialMediaLinks.ts +6 -4
  273. package/src/components/FooterBar/locales.ts +1 -0
  274. package/src/components/FooterBar/tests/FooterBarConfig.spec.ts +1 -1
  275. package/src/components/FooterBar/tests/__snapshots__/FooterBar.spec.ts.snap +6 -25
  276. package/src/components/FooterBar/types.d.ts +1 -0
  277. package/src/components/HeaderBar/HeaderBar.stories.ts +23 -1
  278. package/src/components/HeaderBar/HeaderBar.vue +4 -0
  279. package/src/components/HeaderBar/HeaderLogo/HeaderLogo.vue +7 -2
  280. package/src/components/HeaderBar/HeaderLogo/tests/HeaderLogo.spec.ts +5 -0
  281. package/src/components/HeaderBar/accessibilite/Accessibility.mdx +24 -5
  282. package/src/components/HeaderBar/tests/HeaderBar.a11y.spec.ts +1 -0
  283. package/src/components/HeaderBar/tests/HeaderBar.spec.ts +3 -0
  284. package/src/components/HeaderNavigationBar/HeaderNavigationBar.stories.ts +4 -0
  285. package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +2 -0
  286. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.spec.ts +3 -0
  287. package/src/components/LogoBrandSection/LogoBrandSection.stories.ts +22 -0
  288. package/src/components/LogoBrandSection/LogoBrandSection.vue +13 -5
  289. package/src/components/LogoBrandSection/tests/LogoBrandSection.a11y.spec.ts +2 -0
  290. package/src/components/LogoBrandSection/tests/LogoBrandSection.spec.ts +44 -0
  291. package/src/components/LogoBrandSection/tests/__snapshots__/LogoBrandSection.spec.ts.snap +2 -0
  292. package/src/components/MaintenancePage/MaintenancePage.mdx +1 -1
  293. package/src/components/MaintenancePage/MaintenancePage.vue +42 -7
  294. package/src/components/MaintenancePage/accessibilite/Accessibility.mdx +63 -6
  295. package/src/components/MaintenancePage/assets/maintenance-ap.svg +1718 -0
  296. package/src/components/MaintenancePage/locales.ts +24 -3
  297. package/src/components/MaintenancePage/tests/MaintenancePage.a11y.spec.ts +76 -3
  298. package/src/components/MaintenancePage/tests/MaintenancePage.spec.ts +60 -2
  299. package/src/components/MaintenancePage/tests/__snapshots__/MaintenancePage.spec.ts.snap +5 -2
  300. package/src/components/NotFoundPage/NotFoundPage.mdx +1 -1
  301. package/src/components/NotFoundPage/NotFoundPage.stories.ts +4 -4
  302. package/src/components/NotFoundPage/NotFoundPage.vue +30 -14
  303. package/src/components/NotFoundPage/accessibilite/Accessibility.mdx +80 -6
  304. package/src/components/NotFoundPage/assets/not-found-ap.svg +2061 -0
  305. package/src/components/NotFoundPage/locales.ts +24 -4
  306. package/src/components/NotFoundPage/tests/NotFoundPage.a11y.spec.ts +217 -4
  307. package/src/components/NotFoundPage/tests/NotFoundPage.spec.ts +123 -12
  308. package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +4 -2
  309. package/src/components/NotificationBar/NotificationBar.mdx +2 -2
  310. package/src/components/NotificationBar/accessibilite/Accessibility.mdx +68 -8
  311. package/src/components/PageContainer/PageContainer.stories.ts +47 -0
  312. package/src/components/PageContainer/PageContainer.vue +4 -2
  313. package/src/components/PageContainer/accessibilite/Accessibility.mdx +67 -0
  314. package/src/components/PageContainer/tests/PageContainer.a11y.spec.ts +14 -7
  315. package/src/components/PaginatedTable/PaginatedTable.mdx +3 -3
  316. package/src/components/PaginatedTable/PaginatedTable.stories.ts +9 -1
  317. package/src/components/PeriodField/PeriodField.vue +4 -0
  318. package/src/components/PeriodField/tests/PeriodField.a11y.spec.ts +10 -1
  319. package/src/components/PhoneField/PhoneField.stories.ts +115 -69
  320. package/src/components/PhoneField/PhoneField.vue +152 -83
  321. package/src/components/PhoneField/accessibilite/Accessibility.mdx +306 -9
  322. package/src/components/PhoneField/indicatifs.ts +2 -2
  323. package/src/components/PhoneField/tests/PhoneField.a11y.spec.ts +22 -9
  324. package/src/components/PhoneField/tests/PhoneField.spec.ts +82 -5
  325. package/src/components/SearchListField/SearchListField.vue +1 -1
  326. package/src/components/SearchListField/accessibilite/Accessibility.mdx +69 -9
  327. package/src/components/SearchListField/tests/SearchListField.a11y.spec.ts +37 -0
  328. package/src/components/SocialMediaLinks/DefaultSocialMediaLinks.ts +6 -4
  329. package/src/components/SocialMediaLinks/SocialMediaLinks.mdx +7 -5
  330. package/src/components/SocialMediaLinks/SocialMediaLinks.stories.ts +17 -13
  331. package/src/components/SocialMediaLinks/SocialMediaLinks.vue +10 -2
  332. package/src/components/SocialMediaLinks/accessibilite/Accessibility.mdx +63 -11
  333. package/src/components/SocialMediaLinks/tests/DefaultSocialMediaLinks.spec.ts +5 -5
  334. package/src/components/SocialMediaLinks/tests/SocialMediaLinks.a11y.spec.ts +59 -0
  335. package/src/components/SocialMediaLinks/tests/SocialMediaLinks.spec.ts +9 -7
  336. package/src/components/StatusPage/StatusPage.mdx +31 -0
  337. package/src/components/StatusPage/StatusPage.stories.ts +236 -0
  338. package/src/components/StatusPage/StatusPage.vue +167 -0
  339. package/src/components/StatusPage/accessibilite/Accessibility.mdx +100 -0
  340. package/src/components/StatusPage/tests/StatusPage.a11y.spec.ts +30 -0
  341. package/src/components/StatusPage/tests/StatusPage.spec.ts +53 -0
  342. package/src/components/StatusPage/tests/__snapshots__/StatusPage.spec.ts.snap +272 -0
  343. package/src/components/SubHeader/SubHeader.stories.ts +16 -0
  344. package/src/components/SubHeader/SubHeader.vue +6 -3
  345. package/src/components/SubHeader/accessibilite/Accessibility.mdx +27 -6
  346. package/src/components/SyAlert/SyAlert.vue +21 -20
  347. package/src/components/SyBtnMenu/SyBtnMenu.vue +33 -17
  348. package/src/components/SyBtnMenu/tests/SyBtnMenu.a11y.spec.ts +38 -0
  349. package/src/components/SyBtnMenu/tests/SyBtnMenu.spec.ts +41 -0
  350. package/src/components/SyHeading/SyHeading.vue +18 -0
  351. package/src/components/TableToolbar/TableToolbar.stories.ts +6 -6
  352. package/src/components/TableToolbar/TableToolbar.vue +1 -1
  353. package/src/components/TableToolbar/tests/__snapshots__/TableToolbar.spec.ts.snap +96 -35
  354. package/src/components/Tables/SyServerTable/SyServerTable.vue +2 -0
  355. package/src/components/Tables/SyTable/SyTable.vue +2 -0
  356. package/src/components/Tables/common/SyTablePagination.vue +16 -10
  357. package/src/components/Tables/common/filters/DateFilter.vue +5 -0
  358. package/src/components/Tables/common/tests/SyTablePagination.spec.ts +40 -24
  359. package/src/components/Tables/common/types.ts +3 -0
  360. package/src/components/UploadWorkflow/UploadWorkflow.mdx +11 -1
  361. package/src/components/UploadWorkflow/UploadWorkflow.stories.ts +118 -14
  362. package/src/components/UploadWorkflow/UploadWorkflow.vue +59 -31
  363. package/src/components/UploadWorkflow/accessibilite/Accessibility.mdx +56 -5
  364. package/src/components/UploadWorkflow/accessibilite/UploadWorkflow.a11y.spec.ts +110 -0
  365. package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +37 -7
  366. package/src/components/UploadWorkflow/tests/__snapshots__/UploadWorkflow.spec.ts.snap +139 -112
  367. package/src/components/UploadWorkflow/useFileList.ts +7 -0
  368. package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +53 -31
  369. package/src/components/UserMenuBtn/UserMenuBtn.vue +4 -1
  370. package/src/components/UserMenuBtn/accessibilite/Accessibility.mdx +72 -8
  371. package/src/components/index.ts +4 -0
  372. package/src/components/types.ts +4 -0
  373. package/src/composables/date/tests/useDateInitialization.spec.ts +22 -1
  374. package/src/composables/date/useDateInitializationDayjs.ts +4 -7
  375. package/src/composables/date/useDatePickerAccessibility.ts +2 -3
  376. package/src/composables/rules/tests/useFieldValidation.spec.ts +39 -3
  377. package/src/composables/rules/useFieldValidation.ts +24 -9
  378. package/src/composables/useFilterable/useFilterable.spec.ts +52 -2
  379. package/src/composables/useFilterable/useFilterable.ts +7 -1
  380. package/src/designTokens/tokens/amelipro/apLightTheme.ts +27 -15
  381. package/src/designTokens/tokens/amelipro/apSemantic.ts +21 -15
  382. package/src/designTokens/tokens/cnam/cnamLightTheme.ts +28 -15
  383. package/src/designTokens/tokens/cnam/cnamSemantic.ts +21 -14
  384. package/src/designTokens/tokens/pa/paLightTheme.ts +27 -16
  385. package/src/designTokens/tokens/pa/paSemantic.ts +19 -13
  386. package/src/directives/rgaaSvgFix.ts +2 -7
  387. package/src/stories/Accessibilite/{Audit → AuditEtContreAudit}/Exemptions-derogations.mdx +1 -1
  388. package/src/stories/Accessibilite/AuditEtContreAudit/Introduction.mdx +188 -0
  389. package/src/stories/Accessibilite/{Audit → AuditEtContreAudit}/RGAA.mdx +1 -1
  390. package/src/stories/Accessibilite/Introduction.mdx +22 -3
  391. package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +21 -22
  392. package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +7 -0
  393. package/src/stories/DeprecationNotice/DeprecationNotice.ts +41 -0
  394. package/src/stories/DesignTokens/ColorDisplay.vue +12 -5
  395. package/src/stories/DesignTokens/Colors.mdx +8 -59
  396. package/src/stories/DesignTokens/colors.stories.ts +1862 -1071
  397. package/src/stories/EcoConception/EcoGuideComponent.vue +10 -4
  398. package/src/utils/theme/index.ts +19 -0
  399. package/src/utils/theme/tests/useThemeLocales.spec.ts +245 -0
  400. package/dist/components/MaintenancePage/index.d.ts +0 -2
  401. package/dist/main-CuI6xaPq.js +0 -36396
  402. package/src/components/Customs/SyTabs/tests/SyTabs.a11y.spec.ts +0 -51
  403. package/src/components/DataListItem/tests/DataListItem.a11y.spec.ts +0 -31
  404. package/src/components/DatePicker/CalendarMode/tests/DatePicker.a11y.spec.ts +0 -27
  405. package/src/components/DownloadBtn/tests/DownloadBtn.a11y.spec.ts +0 -26
  406. package/src/components/ExternalLinks/tests/ExternalLinks.a11y.spec.ts +0 -39
  407. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.a11y.spec.ts +0 -45
  408. package/src/components/HeaderToolbar/tests/HeaderToolbar.a11y.spec.ts +0 -25
  409. package/src/components/LunarCalendar/tests/LunarCalendar.a11y.spec.ts +0 -31
  410. package/src/components/MaintenancePage/index.ts +0 -3
  411. package/src/components/PageContainer/Accessibilite/Accessibility.mdx +0 -53
  412. package/src/components/PageContainer/Accessibilite/AccessibilityGuide.mdx +0 -0
  413. package/src/components/PaginatedTable/tests/PaginatedTable.a11y.spec.ts +0 -43
  414. /package/src/components/NotFoundPage/assets/{not-found.svg → not-found-cnam.svg} +0 -0
@@ -0,0 +1,67 @@
1
+ import { Meta, Primary, Story} from '@storybook/blocks';
2
+ import * as PageContainerStories from '../PageContainer.stories.ts';
3
+ import AccessibilityIcon from '@/common/imgs/accessibility-svgrepo-com.svg';
4
+ import {
5
+ AccessibilityGuideLayout,
6
+ CriteriaSection,
7
+ CriteriaCard,
8
+ DemoSection,
9
+ BestPracticesSection,
10
+ ResourcesSection,
11
+ } from '@/stories/accessibility/AccessibilityGuideLayout.mdx';
12
+
13
+ <Meta of={PageContainerStories} />
14
+
15
+ <AccessibilityGuideLayout
16
+ componentName="PageContainer"
17
+ iconSrc={AccessibilityIcon}
18
+ >
19
+
20
+ <div class="mt-2">
21
+ <p>Rapport d’audit manuel : <a href="/audits/PageContainer.xlsx" style={{ color:'#0C41BD' }}>Voir le rapport</a></p>
22
+ <p style={{ color: 'grey', fontSize: '14px', marginTop: '0px' }}>Correctifs associés (<a href="https://github.com/assurance-maladie-digital/design-system-v3/issues/4011" target="_blank" style={{color:'#0C41BD'}}>issue #4011</a>)</p>
23
+ </div>
24
+
25
+ <CriteriaSection>
26
+ <CriteriaCard icon="🔍" title="Structure sémantique">
27
+ <ul>
28
+ <li><strong>Id unique</strong> : la prop <code>uniqueId</code> génère un identifiant sur le conteneur (suffixe <code>-container</code>) et sur le contenu interne (suffixe <code>-content</code>), permettant des relations ARIA robustes</li>
29
+ <li><strong>Rôles ARIA disponibles via la prop <code>role</code></strong> :</li>
30
+ <ul style={{ listStyleType: 'none', paddingLeft: 0 }}>
31
+ <li style={{ listStyleType: '"- "' }}><code>role="region"</code> : contient une zone importante identifiée par un titre</li>
32
+ <li style={{ listStyleType: '"- "' }}><code>role="main"</code> : représente le contenu principal</li>
33
+ <li style={{ listStyleType: '"- "' }}><code>role="banner"</code> : pour l'en-tête du site</li>
34
+ <li style={{ listStyleType: '"- "' }}><code>role="contentinfo"</code> : pour le pied de page du site</li>
35
+ <li style={{ listStyleType: '"- "' }}><code>role="navigation"</code> : pour un conteneur de navigation</li>
36
+ </ul>
37
+ </ul>
38
+ </CriteriaCard>
39
+
40
+ <CriteriaCard icon="🏷️" title="Liaison ARIA">
41
+ <ul>
42
+ <li><strong>Prop <code>ariaLabelledby</code></strong> : permet de lier le conteneur à un titre via son <code>id</code>, renforçant la compréhension par les lecteurs d'écran — particulièrement utile avec <code>role="region"</code></li>
43
+ <li><strong>Avec <code>StatusPage</code></strong> : la liaison est gérée automatiquement via les props <code>role</code> et <code>uniqueId</code> de <code>StatusPage</code></li>
44
+ </ul>
45
+ </CriteriaCard>
46
+ </CriteriaSection>
47
+
48
+ <DemoSection title="Avec rôle et liaison ARIA" componentName="PageContainer">
49
+ <Story of={PageContainerStories.WithAriaRole} />
50
+ </DemoSection>
51
+
52
+ <BestPracticesSection>
53
+ <ul>
54
+ <li>Toujours privilégier les balises HTML sémantiques natives avant ARIA :</li>
55
+ <li><code>header</code></li>
56
+ <li><code>nav</code></li>
57
+ <li><code>main</code></li>
58
+ <li><code>footer</code></li>
59
+ <li><code>section (avec un titre)</code></li>
60
+ <li><code>aside</code></li>
61
+ <li><code>article</code></li>
62
+ <li>Toujours associer <code>role="region"</code> à un <code>aria-labelledby</code> pointant vers un titre visible</li>
63
+ <li>Ne pas utiliser <code>role="main"</code> plus d'une fois par page</li>
64
+ <li>Fournir un <code>uniqueId</code> explicite et descriptif pour garantir l'unicité des identifiants générés</li>
65
+ </ul>
66
+ </BestPracticesSection>
67
+ </AccessibilityGuideLayout>
@@ -1,6 +1,6 @@
1
1
  // @vitest-environment jsdom
2
2
 
3
- import { describe, it, expect } from 'vitest'
3
+ import { describe, it, expect, afterEach } from 'vitest'
4
4
  import { mount } from '@vue/test-utils'
5
5
  import { axe } from 'vitest-axe'
6
6
  import { assertNoA11yViolations } from '@tests/unit/accessibility/axeUtils'
@@ -9,6 +9,10 @@ import PageContainer from '../PageContainer.vue'
9
9
  // Scénario d’accessibilité : conteneur de page enveloppant un contenu principal.
10
10
 
11
11
  describe('PageContainer – accessibility (axe)', () => {
12
+ afterEach(() => {
13
+ document.body.innerHTML = ''
14
+ })
15
+
12
16
  it('has no obvious axe violations with main content slot', async () => {
13
17
  const wrapper = mount(PageContainer, {
14
18
  slots: {
@@ -113,7 +117,7 @@ describe('PageContainer – accessibility (axe)', () => {
113
117
  role: 'navigation',
114
118
  },
115
119
  slots: {
116
- default: '<nav><ul><li><a href="#home">Accueil</a></li><li><a href="#about">À propos</a></li></ul></nav>',
120
+ default: '<ul><li><a href="#home">Accueil</a></li><li><a href="#about">À propos</a></li></ul>',
117
121
  },
118
122
  attachTo: document.body,
119
123
  })
@@ -154,7 +158,7 @@ describe('PageContainer – accessibility (axe)', () => {
154
158
  role: 'contentinfo',
155
159
  },
156
160
  slots: {
157
- default: '<footer><p>&copy; 2026 - Tous droits réservés</p></footer>',
161
+ default: '<div><p>&copy; 2026 - Tous droits réservés</p></div>',
158
162
  },
159
163
  attachTo: document.body,
160
164
  })
@@ -175,7 +179,7 @@ describe('PageContainer – accessibility (axe)', () => {
175
179
  role: 'banner',
176
180
  },
177
181
  slots: {
178
- default: '<header><h1>Logo</h1></header>',
182
+ default: '<div><h1>Logo</h1></div>',
179
183
  },
180
184
  attachTo: document.body,
181
185
  })
@@ -286,7 +290,7 @@ describe('PageContainer – accessibility (axe)', () => {
286
290
  uniqueId: 'footer',
287
291
  },
288
292
  slots: {
289
- default: '<footer><p>Informations de pied de page</p></footer>',
293
+ default: '<div><p>Informations de pied de page</p></div>',
290
294
  },
291
295
  attachTo: document.body,
292
296
  })
@@ -310,7 +314,7 @@ describe('PageContainer – accessibility (axe)', () => {
310
314
  uniqueId: 'header',
311
315
  },
312
316
  slots: {
313
- default: '<header><h1>En-tête</h1></header>',
317
+ default: '<div><h1>En-tête</h1></div>',
314
318
  },
315
319
  attachTo: document.body,
316
320
  })
@@ -461,9 +465,12 @@ describe('PageContainer – accessibility (axe)', () => {
461
465
  it('has proper color contrast with different background colors', async () => {
462
466
  const wrapper = mount(PageContainer, {
463
467
  props: {
464
- role: 'main',
468
+ role: 'region',
465
469
  color: 'surface',
466
470
  },
471
+ attrs: {
472
+ 'aria-label': 'Bloc coloré',
473
+ },
467
474
  slots: {
468
475
  default: '<h1>Texte contrasté</h1><p>Paragraphe avec contraste de couleur.</p>',
469
476
  },
@@ -1,15 +1,15 @@
1
- import {Meta, Canvas, Controls, Source} from '@storybook/blocks';
1
+ import {Meta, Canvas, Controls, Source, Story} from '@storybook/blocks';
2
2
  import * as PaginatedTableStories from "./PaginatedTable.stories.ts";
3
3
 
4
4
  <Meta of={PaginatedTableStories}/>
5
5
 
6
+ <Story of={PaginatedTableStories.DeprecationNotice} />
7
+
6
8
  <div className="header">
7
9
  <h1>PaginatedTable</h1>
8
10
  <p>Le composant `PaginatedTable` est utilisé pour afficher une `VDataTable` de Vuetify avec une pagination persistante.</p>
9
11
  </div>
10
12
 
11
- > **⚠️ Attention** : Ce composant est déprécié au profit des composants [SyTable](?path=/docs/composants-tableaux-sytable--docs) et [SyServerTable](?path=/docs/composants-tableaux-syservertable--docs).
12
-
13
13
  <Canvas story={{height: '550px'}} of={PaginatedTableStories.Default}/>
14
14
 
15
15
  # API
@@ -4,6 +4,7 @@ import { StateEnum } from './constants/StateEnum'
4
4
  import type { DataOptions } from './types'
5
5
  import { ref } from 'vue'
6
6
  import type { VDataTable } from 'vuetify/components'
7
+ import { createDeprecationNotice } from '@/stories/DeprecationNotice/DeprecationNotice'
7
8
 
8
9
  interface User {
9
10
  [key: string]: string
@@ -22,7 +23,7 @@ const meta = {
22
23
  component: PaginatedTable,
23
24
  decorators: [
24
25
  () => ({
25
- template: '<div style="padding: 20px;"><story/></div>',
26
+ template: '<div><story/></div>',
26
27
  }),
27
28
  ],
28
29
  parameters: {
@@ -767,3 +768,10 @@ export const ManyTables: Story = {
767
768
  }
768
769
  },
769
770
  }
771
+
772
+ export const DeprecationNotice = {
773
+ ...createDeprecationNotice([
774
+ { label: 'SyTable', url: '?path=/docs/composants-tableaux-sytable--docs' },
775
+ ]),
776
+ tags: ['!dev'],
777
+ }
@@ -32,6 +32,7 @@
32
32
  bgColor?: string
33
33
  density?: 'default' | 'comfortable' | 'compact'
34
34
  hideDetails?: boolean | 'auto'
35
+ headingLevel?: 1 | 2 | 3 | 4 | 5 | 6
35
36
  }>(), {
36
37
  modelValue: () => ({ from: null, to: null }),
37
38
  placeholderFrom: 'Début',
@@ -54,6 +55,7 @@
54
55
  bgColor: 'white',
55
56
  density: 'default',
56
57
  hideDetails: false,
58
+ headingLevel: 2,
57
59
  })
58
60
 
59
61
  const emit = defineEmits(['update:modelValue'])
@@ -345,6 +347,7 @@
345
347
  :error-message="fromDateValidation.hasError"
346
348
  :format="props.format"
347
349
  :disabled="props.disabled"
350
+ :heading-level="props.headingLevel"
348
351
  :is-outlined="props.isOutlined"
349
352
  :no-calendar="props.noCalendar"
350
353
  :no-icon="props.noIcon"
@@ -371,6 +374,7 @@
371
374
  :display-append-icon="props.displayAppendIcon"
372
375
  :display-icon="props.displayIcon"
373
376
  :error-message="toDateValidation.hasError"
377
+ :heading-level="props.headingLevel"
374
378
  :format="props.format"
375
379
  :disabled="props.disabled"
376
380
  :is-outlined="props.isOutlined"
@@ -21,9 +21,18 @@ describe('PeriodField – accessibility (axe)', () => {
21
21
  attachTo: document.body,
22
22
  })
23
23
 
24
+ // TODO : https://github.com/assurance-maladie-digital/design-system-v3/issues/1960
25
+ // 'aria-valid-attr-value' is ignored because Vuetify sets aria-owns on the
26
+ // DatePicker input referencing the VMenu id, but in JSDOM the menu is
27
+ // rendered via <Teleport> and not present in the scanned subtree.
28
+ const ignoreRules = ['region', 'aria-valid-attr-value']
29
+
24
30
  const results = await axe(wrapper.element as HTMLElement)
31
+ if (results.violations.filter(violation => !ignoreRules.includes(violation.id)).length > 0) {
32
+ console.log(JSON.stringify(results.violations, null, 2))
33
+ }
25
34
  assertNoA11yViolations(results, 'PeriodField – valid period', {
26
- ignoreRules: ['region'],
35
+ ignoreRules: ignoreRules,
27
36
  })
28
37
 
29
38
  wrapper.unmount()
@@ -1,6 +1,6 @@
1
1
  import type { StoryObj, Meta } from '@storybook/vue3'
2
2
  import PhoneField from './PhoneField.vue'
3
- import { ref } from 'vue'
3
+ import { ref, watch } from 'vue'
4
4
  import { indicatifs } from './indicatifs'
5
5
 
6
6
  const meta = {
@@ -8,47 +8,54 @@ const meta = {
8
8
  component: PhoneField,
9
9
  parameters: {
10
10
  layout: 'fullscreen',
11
+ actions: {
12
+ handles: ['update:modelValue', 'update:selectedDialCode', 'update:dialCodeModel', 'change'],
13
+ },
11
14
  controls: { exclude: ['computedValue', 'phoneMask', 'counter', 'hasError', 'phoneNumber', 'mergedDialCodes'] },
12
15
  },
13
16
  argTypes: {
14
- modelValue: { control: false },
15
- dialCodeModel: { control: false },
16
- required: { control: 'boolean' },
17
- outlined: { control: 'boolean' },
18
- outlinedIndicatif: { control: 'boolean' },
19
- withCountryCode: { control: 'boolean' },
20
- countryCodeRequired: { control: 'boolean' },
21
- displayFormat: {
17
+ 'modelValue': { control: false },
18
+ 'dialCodeModel': { control: false },
19
+ 'onUpdate:modelValue': { action: 'update:modelValue' },
20
+ 'onUpdate:selectedDialCode': { action: 'update:selectedDialCode' },
21
+ 'onUpdate:dialCodeModel': { action: 'update:dialCodeModel' },
22
+ 'onChange': { action: 'change' },
23
+ 'required': { control: 'boolean' },
24
+ 'outlined': { control: 'boolean' },
25
+ 'outlinedIndicatif': { control: 'boolean' },
26
+ 'withCountryCode': { control: 'boolean' },
27
+ 'countryCodeRequired': { control: 'boolean' },
28
+ 'displayFormat': {
22
29
  control: { type: 'select' },
23
30
  description: 'Format d\'affichage des items',
24
31
  options: ['code', 'code-abbreviation', 'code-country', 'country', 'abbreviation'],
25
32
  },
26
- customIndicatifs: {
33
+ 'customIndicatifs': {
27
34
  control: 'object',
28
35
  description: 'Permet d\'ajouter des indicatifs à la liste pre-existante',
29
36
  },
30
- useCustomIndicatifsOnly: {
37
+ 'useCustomIndicatifsOnly': {
31
38
  control: 'boolean',
32
39
  description: 'Permet d\'utiliser uniquement les indicatifs que vous renseignez dans la props customIndicatifs',
33
40
  },
34
- helpText: {
41
+ 'helpText': {
35
42
  control: 'text',
36
43
  description: 'Texte d\'aide affiché sous le champ. Lorsque présent, les messages d\'erreur incluent un exemple concret distinct du texte d\'aide.',
37
44
  },
38
- autocompleteCountryCode: {
45
+ 'autocompleteCountryCode': {
39
46
  control: 'text',
40
- description: 'Valeur de l\'attribut autocomplete pour le champ indicatif pays (par défaut: "tel-country-code")',
47
+ description: 'Valeur de l\'attribut `autocomplete` pour le champ indicatif pays. Utiliser `tel-country-code` (défaut) lorsque le numéro est séparé en deux champs (indicatif + numéro national), conformément à [WHATWG](https://html.spec.whatwg.org/#autofill-field-tel-country-code) et [WCAG 1.3.5](https://www.w3.org/WAI/WCAG21/quickref/#identify-input-purpose).',
41
48
  },
42
- autocompletePhone: {
49
+ 'autocompletePhone': {
43
50
  control: 'text',
44
- description: 'Valeur de l\'attribut autocomplete pour le champ numéro de téléphone (par défaut: "tel-national")',
51
+ description: 'Valeur de l\'attribut `autocomplete` pour le champ numéro de téléphone. Valeurs recommandées selon le scénario :\n\n- `tel-national` (défaut) — numéro sans indicatif, lorsque le composant est en mode deux champs (`withCountryCode`).\n- `tel` — numéro complet avec indicatif intégré, pour un champ unique sans sélecteur de pays.\n- `tel-extension` — poste ou extension téléphonique.',
45
52
  },
46
- isValidatedOnBlur: { control: 'boolean' },
47
- displayAsterisk: { control: 'boolean' },
48
- disableErrorHandling: { control: 'boolean' },
49
- disabled: { control: 'boolean' },
50
- readonly: { control: 'boolean' },
51
- },
53
+ 'isValidatedOnBlur': { control: 'boolean' },
54
+ 'displayAsterisk': { control: 'boolean' },
55
+ 'disableErrorHandling': { control: 'boolean' },
56
+ 'disabled': { control: 'boolean' },
57
+ 'readonly': { control: 'boolean' },
58
+ } as Record<string, unknown>,
52
59
  } satisfies Meta<typeof PhoneField>
53
60
 
54
61
  export default meta
@@ -58,7 +65,7 @@ type Story = StoryObj<typeof meta>
58
65
  export const Default: Story = {
59
66
  parameters: {
60
67
  a11y: {
61
- disable: true,
68
+ disable: false,
62
69
  },
63
70
  sourceCode: [
64
71
  {
@@ -99,7 +106,7 @@ export const Default: Story = {
99
106
  },
100
107
  args: {
101
108
  modelValue: '',
102
- required: true,
109
+ required: false,
103
110
  outlined: true,
104
111
  outlinedIndicatif: true,
105
112
  withCountryCode: true,
@@ -133,7 +140,7 @@ export const Default: Story = {
133
140
  export const Required: Story = {
134
141
  parameters: {
135
142
  a11y: {
136
- disable: true,
143
+ disable: false,
137
144
  },
138
145
  sourceCode: [
139
146
  {
@@ -216,7 +223,7 @@ export const RequiredWithAsterisk: Story = {
216
223
  },
217
224
  parameters: {
218
225
  a11y: {
219
- disable: true,
226
+ disable: false,
220
227
  },
221
228
  docs: {
222
229
  description: {
@@ -269,7 +276,7 @@ const phoneNumber = ref('')
269
276
  export const HelpText: Story = {
270
277
  parameters: {
271
278
  a11y: {
272
- disable: true,
279
+ disable: false,
273
280
  },
274
281
  sourceCode: [
275
282
  {
@@ -392,7 +399,21 @@ const selectedDialCode = ref('')
392
399
  export const Autocomplete: Story = {
393
400
  parameters: {
394
401
  a11y: {
395
- disable: true,
402
+ disable: false,
403
+ },
404
+ docs: {
405
+ description: {
406
+ story: `
407
+ Les attributs \`autocomplete\` permettent aux navigateurs et aux outils d'assistance de remplir automatiquement les champs avec les bonnes informations utilisateur, conformément à [WCAG 1.3.5 — Identifier la finalité de la saisie](https://www.w3.org/WAI/WCAG21/quickref/#identify-input-purpose).
408
+
409
+ | Scénario | Prop à utiliser | Valeur recommandée | Source |
410
+ |---|---|---|---|
411
+ | **Code pays** (ex : +33) — champ séparé | \`autocompleteCountryCode\` | \`tel-country-code\` | [WHATWG](https://html.spec.whatwg.org/#autofill-field-tel-country-code) |
412
+ | **Numéro sans indicatif** (ex : 06 12 34 56 78) — avec \`withCountryCode\` | \`autocompletePhone\` | \`tel-national\` | [WHATWG](https://html.spec.whatwg.org/#autofill-field-tel-national) |
413
+ | **Numéro complet** (indicatif intégré) — sans \`withCountryCode\` | \`autocompletePhone\` | \`tel\` | [WHATWG](https://html.spec.whatwg.org/#autofill-field-tel) |
414
+ | **Extension / poste** | \`autocompletePhone\` | \`tel-extension\` | [WHATWG](https://html.spec.whatwg.org/#autofill-field-tel-extension) |
415
+ `,
416
+ },
396
417
  },
397
418
  sourceCode: [
398
419
  {
@@ -465,7 +486,7 @@ const phoneValue3 = ref('')
465
486
  ],
466
487
  },
467
488
  args: {
468
- required: true,
489
+ required: false,
469
490
  withCountryCode: true,
470
491
  autocompleteCountryCode: 'tel-country-code',
471
492
  autocompletePhone: 'tel-national',
@@ -547,7 +568,7 @@ const phoneValue3 = ref('')
547
568
  export const CustomIndicatifs: Story = {
548
569
  parameters: {
549
570
  a11y: {
550
- disable: true,
571
+ disable: false,
551
572
  },
552
573
  sourceCode: [
553
574
  {
@@ -631,7 +652,7 @@ export const CustomIndicatifs: Story = {
631
652
  export const NotValidatedOnBlur: Story = {
632
653
  parameters: {
633
654
  a11y: {
634
- disable: true,
655
+ disable: false,
635
656
  },
636
657
  sourceCode: [
637
658
  {
@@ -705,7 +726,7 @@ export const NotValidatedOnBlur: Story = {
705
726
  export const DisplayFormatCode: Story = {
706
727
  parameters: {
707
728
  a11y: {
708
- disable: true,
729
+ disable: false,
709
730
  },
710
731
  sourceCode: [
711
732
  {
@@ -754,7 +775,7 @@ export const DisplayFormatCode: Story = {
754
775
  displayFormat: 'code',
755
776
  customIndicatifs: [],
756
777
  useCustomIndicatifsOnly: false,
757
- isValidatedOnBlur: false,
778
+ isValidatedOnBlur: true,
758
779
  readonly: false,
759
780
  disabled: false,
760
781
  bgColor: 'white',
@@ -779,7 +800,7 @@ export const DisplayFormatCode: Story = {
779
800
  export const DisplayFormatCodeAbbreviation: Story = {
780
801
  parameters: {
781
802
  a11y: {
782
- disable: true,
803
+ disable: false,
783
804
  },
784
805
  sourceCode: [
785
806
  {
@@ -828,7 +849,7 @@ export const DisplayFormatCodeAbbreviation: Story = {
828
849
  displayFormat: 'code-abbreviation',
829
850
  customIndicatifs: [],
830
851
  useCustomIndicatifsOnly: false,
831
- isValidatedOnBlur: false,
852
+ isValidatedOnBlur: true,
832
853
  readonly: false,
833
854
  disabled: false,
834
855
  bgColor: 'white',
@@ -853,7 +874,7 @@ export const DisplayFormatCodeAbbreviation: Story = {
853
874
  export const DisplayFormatCodeCountry: Story = {
854
875
  parameters: {
855
876
  a11y: {
856
- disable: true,
877
+ disable: false,
857
878
  },
858
879
  sourceCode: [
859
880
  {
@@ -902,7 +923,7 @@ export const DisplayFormatCodeCountry: Story = {
902
923
  displayFormat: 'code-country',
903
924
  customIndicatifs: [],
904
925
  useCustomIndicatifsOnly: false,
905
- isValidatedOnBlur: false,
926
+ isValidatedOnBlur: true,
906
927
  readonly: false,
907
928
  disabled: false,
908
929
  bgColor: 'white',
@@ -927,7 +948,7 @@ export const DisplayFormatCodeCountry: Story = {
927
948
  export const DisplayFormatCountry: Story = {
928
949
  parameters: {
929
950
  a11y: {
930
- disable: true,
951
+ disable: false,
931
952
  },
932
953
  sourceCode: [
933
954
  {
@@ -976,7 +997,7 @@ export const DisplayFormatCountry: Story = {
976
997
  displayFormat: 'country',
977
998
  customIndicatifs: [],
978
999
  useCustomIndicatifsOnly: false,
979
- isValidatedOnBlur: false,
1000
+ isValidatedOnBlur: true,
980
1001
  readonly: false,
981
1002
  disabled: false,
982
1003
  bgColor: 'white',
@@ -1001,7 +1022,7 @@ export const DisplayFormatCountry: Story = {
1001
1022
  export const DisplayFormatAbbreviation: Story = {
1002
1023
  parameters: {
1003
1024
  a11y: {
1004
- disable: true,
1025
+ disable: false,
1005
1026
  },
1006
1027
  sourceCode: [
1007
1028
  {
@@ -1050,7 +1071,7 @@ export const DisplayFormatAbbreviation: Story = {
1050
1071
  displayFormat: 'abbreviation',
1051
1072
  customIndicatifs: [],
1052
1073
  useCustomIndicatifsOnly: false,
1053
- isValidatedOnBlur: false,
1074
+ isValidatedOnBlur: true,
1054
1075
  readonly: false,
1055
1076
  disabled: false,
1056
1077
  bgColor: 'white',
@@ -1075,7 +1096,7 @@ export const DisplayFormatAbbreviation: Story = {
1075
1096
  export const DefaultDialCode: Story = {
1076
1097
  parameters: {
1077
1098
  a11y: {
1078
- disable: true,
1099
+ disable: false,
1079
1100
  },
1080
1101
  sourceCode: [
1081
1102
  {
@@ -1129,7 +1150,7 @@ export const DefaultDialCode: Story = {
1129
1150
  args: {
1130
1151
  modelValue: '',
1131
1152
  dialCodeModel: { code: '+3433', country: 'Exemple', abbreviation: 'EX', phoneLength: 10, mask: '## ## ## ## ##' },
1132
- required: true,
1153
+ required: false,
1133
1154
  outlined: true,
1134
1155
  outlinedIndicatif: true,
1135
1156
  withCountryCode: true,
@@ -1168,7 +1189,7 @@ export const DefaultDialCode: Story = {
1168
1189
  export const DefaultDialCodeStandard: Story = {
1169
1190
  parameters: {
1170
1191
  a11y: {
1171
- disable: true,
1192
+ disable: false,
1172
1193
  },
1173
1194
  sourceCode: [
1174
1195
  {
@@ -1246,7 +1267,7 @@ export const DefaultDialCodeStandard: Story = {
1246
1267
  export const DisplayModels: Story = {
1247
1268
  parameters: {
1248
1269
  a11y: {
1249
- disable: true,
1270
+ disable: false,
1250
1271
  },
1251
1272
  sourceCode: [
1252
1273
  {
@@ -1254,7 +1275,7 @@ export const DisplayModels: Story = {
1254
1275
  code: `
1255
1276
  <template>
1256
1277
  <span>
1257
- {{ args.selectedDialCode }} - {{ args.modelValue }}
1278
+ Indicatif: {{ selectedDialCode }}<br/>Numéro: {{ modelValue }}
1258
1279
  </span>
1259
1280
  <PhoneField
1260
1281
  v-model="modelValue"
@@ -1301,28 +1322,51 @@ export const DisplayModels: Story = {
1301
1322
  displayFormat: 'code-country',
1302
1323
  customIndicatifs: [],
1303
1324
  useCustomIndicatifsOnly: false,
1304
- isValidatedOnBlur: false,
1325
+ isValidatedOnBlur: true,
1305
1326
  readonly: false,
1306
1327
  bgColor: 'white',
1307
1328
  },
1308
- render: (args) => {
1309
- return {
1310
- components: { PhoneField },
1311
- setup() {
1312
- return { args }
1313
- },
1314
- template: `
1315
- <div class="pa-4">
1316
- <div class="pa-4">
1317
- {{ args.dialCodeModel }} - {{ args.modelValue }}
1318
- </div>
1319
- <PhoneField
1320
- v-bind="args"
1321
- />
1322
- </div>
1323
- `,
1324
- }
1325
- },
1329
+ render: args => ({
1330
+ components: { PhoneField },
1331
+ setup() {
1332
+ const modelValue = ref(args.modelValue)
1333
+ const selectedDialCode = ref(args.dialCodeModel)
1334
+
1335
+ // Sync ref -> args (pour afficher les modèles dans la story)
1336
+ watch(modelValue, (val) => {
1337
+ args.modelValue = val
1338
+ })
1339
+ watch(selectedDialCode, (val) => {
1340
+ args.dialCodeModel = val
1341
+ })
1342
+ // Sync args -> ref (quand on change les controls Storybook)
1343
+ watch(() => args.modelValue, (val) => {
1344
+ modelValue.value = val
1345
+ })
1346
+ watch(() => args.dialCodeModel, (val) => {
1347
+ selectedDialCode.value = val
1348
+ })
1349
+
1350
+ return {
1351
+ args,
1352
+ modelValue,
1353
+ selectedDialCode,
1354
+ }
1355
+ },
1356
+ template: `
1357
+ <div class="pa-4">
1358
+ <div class="pa-4">
1359
+ Indicatif: {{ selectedDialCode }}<br/>Numéro: {{ modelValue }}
1360
+ </div>
1361
+
1362
+ <PhoneField
1363
+ v-bind="args"
1364
+ v-model="modelValue"
1365
+ v-model:selectedDialCode="selectedDialCode"
1366
+ />
1367
+ </div>
1368
+ `,
1369
+ }),
1326
1370
  }
1327
1371
 
1328
1372
  /**
@@ -1332,7 +1376,7 @@ export const DisplayModels: Story = {
1332
1376
  export const DisabledErrorHandling: Story = {
1333
1377
  parameters: {
1334
1378
  a11y: {
1335
- disable: true,
1379
+ disable: false,
1336
1380
  },
1337
1381
  sourceCode: [
1338
1382
  {
@@ -1403,6 +1447,7 @@ export const DisabledErrorHandling: Story = {
1403
1447
  <p>Ce champ est requis et affichera une erreur s'il est vide.</p>
1404
1448
  <PhoneField
1405
1449
  v-bind="args"
1450
+ :disable-error-handling="false"
1406
1451
  />
1407
1452
  </div>
1408
1453
  </div>
@@ -1414,7 +1459,7 @@ export const DisabledErrorHandling: Story = {
1414
1459
  export const FormValidation: Story = {
1415
1460
  parameters: {
1416
1461
  a11y: {
1417
- disable: true,
1462
+ disable: false,
1418
1463
  },
1419
1464
  sourceCode: [
1420
1465
  {
@@ -1430,7 +1475,7 @@ export const FormValidation: Story = {
1430
1475
  :outlinedIndicatif="true"
1431
1476
  :withCountryCode="true"
1432
1477
  :country-code-required="true"
1433
- :isValidatedOnBlur="false"
1478
+ :isValidatedOnBlur="true"
1434
1479
  :readonly="readonly"
1435
1480
  :disabled="disabled"
1436
1481
  />
@@ -1485,7 +1530,7 @@ export const FormValidation: Story = {
1485
1530
  displayFormat: 'code',
1486
1531
  customIndicatifs: [],
1487
1532
  useCustomIndicatifsOnly: false,
1488
- isValidatedOnBlur: false,
1533
+ isValidatedOnBlur: true,
1489
1534
  bgColor: 'white',
1490
1535
  readonly: false,
1491
1536
  disabled: false,
@@ -1519,6 +1564,7 @@ export const FormValidation: Story = {
1519
1564
  <div class="pa-4">
1520
1565
  <form @submit.prevent="submitForm" class="d-flex flex-column">
1521
1566
  <PhoneField
1567
+ ref="phoneFieldRef"
1522
1568
  v-bind="args"
1523
1569
  />
1524
1570
  <v-btn type="submit" color="primary" class="mt-4" style="width: 200px;">Soumettre le formulaire</v-btn>