@cnamts/synapse 1.0.8 → 1.0.9

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 (394) hide show
  1. package/dist/{DateFilter-DkqG0pmr.js → DateFilter-BylukfjR.js} +1 -1
  2. package/dist/{NumberFilter-Ck7AwD39.js → NumberFilter-C_bUk9o1.js} +1 -1
  3. package/dist/{PeriodFilter-LRI6YpgU.js → PeriodFilter-dVOmcfmt.js} +1 -1
  4. package/dist/{SelectFilter-DPc70Jk7.js → SelectFilter-BW8KpXkQ.js} +1 -1
  5. package/dist/{TextFilter-DRQL7uD8.js → TextFilter-diwVzTz7.js} +1 -1
  6. package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +2785 -2770
  7. package/dist/components/Amelipro/AmeliproCallback/AmeliproCallback.d.ts +3 -3
  8. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarousel.d.ts +7 -7
  9. package/dist/components/Amelipro/AmeliproCarousel/AmeliproCarouselItem/AmeliproCarouselItem.d.ts +3 -3
  10. package/dist/components/Amelipro/AmeliproClickableTile/AmeliproClickableTile.d.ts +3 -3
  11. package/dist/components/Amelipro/AmeliproContentLayout/AmeliproContentLayout.d.ts +30 -0
  12. package/dist/components/Amelipro/AmeliproContentLayout/index.d.ts +2 -0
  13. package/dist/components/Amelipro/AmeliproCopyBtn/AmeliproCopyBtn.d.ts +24 -0
  14. package/dist/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.d.ts +128 -0
  15. package/dist/components/Amelipro/AmeliproErrorTemplate/errorTemplateTypes.d.ts +2 -0
  16. package/dist/components/Amelipro/AmeliproErrorTemplate/types.d.ts +7 -0
  17. package/dist/components/Amelipro/AmeliproFilePreview/AmeliproFilePreview.d.ts +91 -0
  18. package/dist/components/Amelipro/AmeliproFooter/AmeliproFooter.d.ts +18 -18
  19. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeader.d.ts +9 -9
  20. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBar.d.ts +3 -3
  21. package/dist/components/Amelipro/AmeliproHeader/AmeliproHeaderBar/AmeliproHeaderBrandSection/AmeliproHeaderBrandSection.d.ts +3 -3
  22. package/dist/components/Amelipro/AmeliproIconBtn/AmeliproIconBtn.d.ts +3 -3
  23. package/dist/components/Amelipro/AmeliproMenu/AmeliproMenu.d.ts +3 -3
  24. package/dist/components/Amelipro/AmeliproPagination/AmeliproPaginationBtn/AmeliproPaginationBtn.d.ts +3 -3
  25. package/dist/components/Amelipro/AmeliproPatientBanner/AmeliproPatientBanner.d.ts +3 -3
  26. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +2766 -2751
  27. package/dist/components/Amelipro/AmeliproStateTile/AmeliproStateTile.d.ts +3 -3
  28. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +2766 -2751
  29. package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +388 -386
  30. package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +632 -630
  31. package/dist/components/Amelipro/AmeliproTileBtn/AmeliproTileBtn.d.ts +3 -3
  32. package/dist/components/Amelipro/AmeliproTransmission/AmeliproTransmission.d.ts +9 -9
  33. package/dist/components/CookieBanner/CookieBanner.d.ts +116 -114
  34. package/dist/components/CookiesSelection/CookiesInformation/CookiesInformation.d.ts +465 -465
  35. package/dist/components/CookiesSelection/CookiesSelection.d.ts +103 -101
  36. package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +105 -105
  37. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +1 -1
  38. package/dist/components/Customs/SyTextField/SyTextField.d.ts +634 -632
  39. package/dist/components/DataList/DataList.d.ts +1 -1
  40. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +2875 -2843
  41. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +1446 -1430
  42. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +643 -641
  43. package/dist/components/DialogBox/DialogBox.d.ts +172 -169
  44. package/dist/components/DialogBox/config.d.ts +3 -3
  45. package/dist/components/DialogBox/locales.d.ts +2 -0
  46. package/dist/components/DialogBox/useDraggable.d.ts +8 -0
  47. package/dist/components/FilterSideBar/FilterSideBar.d.ts +159 -157
  48. package/dist/components/FooterBar/FooterBar.d.ts +5 -5
  49. package/dist/components/HeaderBar/HeaderBar.d.ts +2 -2
  50. package/dist/components/HeaderBar/HeaderLogo/HeaderLogo.d.ts +1 -1
  51. package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +1 -1
  52. package/dist/components/LangBtn/LangBtn.d.ts +169 -167
  53. package/dist/components/LogoBrandSection/LogoBrandSection.d.ts +1 -1
  54. package/dist/components/NirField/NirField.d.ts +1277 -1273
  55. package/dist/components/PeriodField/PeriodField.d.ts +5752 -5688
  56. package/dist/components/PhoneField/PhoneField.d.ts +647 -636
  57. package/dist/components/SearchListField/SearchListField.d.ts +105 -105
  58. package/dist/components/SyAlert/SyAlert.d.ts +29 -29
  59. package/dist/components/SyTextArea/SyTextArea.d.ts +389 -387
  60. package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +207 -175
  61. package/dist/components/Tables/SyTable/SyTable.d.ts +208 -176
  62. package/dist/components/Tables/common/SyTableFilter.d.ts +1 -1
  63. package/dist/components/Tables/common/SyTablePagination.d.ts +105 -105
  64. package/dist/components/Tables/common/filters/DateFilter.d.ts +1 -1
  65. package/dist/components/Tables/common/filters/NumberFilter.d.ts +1 -1
  66. package/dist/components/Tables/common/filters/PeriodFilter.d.ts +1 -1
  67. package/dist/components/Tables/common/filters/SelectFilter.d.ts +1 -1
  68. package/dist/components/Tables/common/filters/TextFilter.d.ts +1 -1
  69. package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +82 -82
  70. package/dist/components/Tables/common/tableProps.d.ts +11 -0
  71. package/dist/components/Tables/common/types.d.ts +8 -4
  72. package/dist/components/Tables/common/useStoredOptions.d.ts +14 -0
  73. package/dist/components/Tables/common/useTableHeaders.d.ts +3 -2
  74. package/dist/components/Tables/common/useTableItems.d.ts +0 -1
  75. package/dist/components/UploadWorkflow/UploadWorkflow.d.ts +16 -16
  76. package/dist/components/index.d.ts +4 -0
  77. package/dist/design-system-v3.js +166 -162
  78. package/dist/design-system-v3.umd.cjs +267 -262
  79. package/dist/main-2eWGB7zZ.js +30203 -0
  80. package/dist/style.css +1 -1
  81. package/dist/vuetifyConfig.d.ts +6 -6
  82. package/package.json +1 -1
  83. package/src/assets/amelipro/img/ico_pdf.svg +15 -0
  84. package/src/assets/amelipro/img/navigateurs.png +0 -0
  85. package/src/assets/amelipro/img/visuel_deconnexion.svg +973 -0
  86. package/src/assets/amelipro/img/visuel_erreur_403.svg +3652 -0
  87. package/src/assets/amelipro/img/visuel_erreur_404.svg +1801 -0
  88. package/src/assets/amelipro/img/visuel_erreur_500.svg +989 -0
  89. package/src/assets/amelipro/img/visuel_erreur_503.svg +1005 -0
  90. package/src/assets/amelipro/img/visuel_navigateur_obsolete.svg +828 -0
  91. package/src/assets/amelipro/pdf/charte-pour-pdf.pdf +0 -0
  92. package/src/components/Accordion/Accessibilite/AccessibilityGuide.mdx +5 -2
  93. package/src/components/Accordion/Accordion.mdx +5 -3
  94. package/src/components/Amelipro/AmeliproAccordion/AmeliproAccordion.stories.ts +258 -0
  95. package/src/components/Amelipro/AmeliproAccordionGroup/AmeliproAccordionGroup.stories.ts +321 -0
  96. package/src/components/Amelipro/AmeliproAccordionList/AmeliproAccordionList.stories.ts +656 -0
  97. package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResult.mdx +1 -3
  98. package/src/components/Amelipro/AmeliproAccordionResult/AmeliproAccordionResult.stories.ts +208 -0
  99. package/src/components/Amelipro/AmeliproAccordionResultList/AmeliproAccordionResultList.stories.ts +562 -0
  100. package/src/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.stories.ts +480 -0
  101. package/src/components/Amelipro/AmeliproCaptcha/AmeliproCaptcha.stories.ts +267 -0
  102. package/src/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.stories.ts +287 -6
  103. package/src/components/Amelipro/AmeliproCheckboxGroup/AmeliproCheckboxGroup.stories.ts +433 -0
  104. package/src/components/Amelipro/AmeliproContentLayout/AmeliproContentLayout.mdx +15 -0
  105. package/src/components/Amelipro/AmeliproContentLayout/AmeliproContentLayout.stories.ts +44 -0
  106. package/src/components/Amelipro/AmeliproContentLayout/AmeliproContentLayout.vue +55 -0
  107. package/src/components/Amelipro/AmeliproContentLayout/__tests__/AmeliproContentLayout.spec.ts +20 -0
  108. package/src/components/Amelipro/AmeliproContentLayout/__tests__/__snapshots__/AmeliproContentLayout.spec.ts.snap +24 -0
  109. package/src/components/Amelipro/AmeliproContentLayout/index.ts +3 -0
  110. package/src/components/Amelipro/AmeliproCopyBtn/AmeliproCopyBtn.mdx +18 -0
  111. package/src/components/Amelipro/AmeliproCopyBtn/AmeliproCopyBtn.stories.ts +68 -0
  112. package/src/components/Amelipro/AmeliproCopyBtn/AmeliproCopyBtn.vue +73 -0
  113. package/src/components/Amelipro/AmeliproCopyBtn/__tests__/AmeliproCopyBtn.spec.ts +20 -0
  114. package/src/components/Amelipro/AmeliproCopyBtn/__tests__/__snapshots__/AmeliproCopyBtn.spec.ts.snap +84 -0
  115. package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.stories.ts +422 -0
  116. package/src/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.vue +2 -2
  117. package/src/components/Amelipro/AmeliproCustomSelector/__tests__/__snapshots__/AmeliproCustomSelector.spec.ts.snap +4 -6
  118. package/src/components/Amelipro/AmeliproDisclosure/AmeliproDisclosure.stories.ts +92 -0
  119. package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.mdx +23 -0
  120. package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.stories.ts +386 -0
  121. package/src/components/Amelipro/AmeliproErrorTemplate/AmeliproErrorTemplate.vue +187 -0
  122. package/src/components/Amelipro/AmeliproErrorTemplate/__tests__/AmeliproErrorTemplate.spec.ts +31 -0
  123. package/src/components/Amelipro/AmeliproErrorTemplate/__tests__/__snapshots__/AmeliproErrorTemplate.spec.ts.snap +185 -0
  124. package/src/components/Amelipro/AmeliproErrorTemplate/errorTemplateTypes.ts +85 -0
  125. package/src/components/Amelipro/AmeliproErrorTemplate/types.d.ts +7 -0
  126. package/src/components/Amelipro/AmeliproFilePreview/AmeliproFilePreview.mdx +15 -0
  127. package/src/components/Amelipro/AmeliproFilePreview/AmeliproFilePreview.stories.ts +71 -0
  128. package/src/components/Amelipro/AmeliproFilePreview/AmeliproFilePreview.vue +161 -0
  129. package/src/components/Amelipro/AmeliproFilePreview/__tests__/AmeliproFilePreview.spec.ts +28 -0
  130. package/src/components/Amelipro/AmeliproFilePreview/__tests__/__snapshots__/AmeliproFilePreview.spec.ts.snap +209 -0
  131. package/src/components/Amelipro/AmeliproIllustratedRadioGroup/AmeliproIllustratedRadioGroup.stories.ts +194 -0
  132. package/src/components/Amelipro/AmeliproRadioGroup/AmeliproRadioGroup.stories.ts +639 -0
  133. package/src/components/Amelipro/AmeliproResultList/AmeliproResultList.stories.ts +648 -0
  134. package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.stories.ts +392 -0
  135. package/src/components/Amelipro/AmeliproTextArea/AmeliproTextArea.stories.ts +351 -0
  136. package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.stories.ts +634 -38
  137. package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.vue +1 -1
  138. package/src/components/Amelipro/ServiceMenu/ServiceMenu.mdx +5 -3
  139. package/src/components/Amelipro/StructureMenu/StructureMenu.mdx +5 -3
  140. package/src/components/Amelipro/UserMenu/UserMenu.mdx +5 -3
  141. package/src/components/BackBtn/Accessibilite.mdx +6 -2
  142. package/src/components/BackBtn/BackBtn.mdx +5 -3
  143. package/src/components/BackBtn/BackBtn.stories.ts +1 -0
  144. package/src/components/BackBtn/Usages.mdx +5 -3
  145. package/src/components/BackToTopBtn/Accessibilite.mdx +6 -2
  146. package/src/components/BackToTopBtn/BackToTopBtn.mdx +5 -4
  147. package/src/components/BackToTopBtn/Usages.mdx +5 -3
  148. package/src/components/ChipList/Accessibilite.mdx +6 -2
  149. package/src/components/ChipList/ChipList.mdx +5 -3
  150. package/src/components/CollapsibleList/Accessibilite.mdx +6 -2
  151. package/src/components/CollapsibleList/CollapsibleList.mdx +5 -3
  152. package/src/components/ContextualMenu/Accessibilite.mdx +6 -2
  153. package/src/components/ContextualMenu/ContextualMenu.mdx +7 -4
  154. package/src/components/ContextualMenu/Usages.mdx +5 -3
  155. package/src/components/CookieBanner/Accessibilite.mdx +6 -2
  156. package/src/components/CookieBanner/CookieBanner.mdx +5 -8
  157. package/src/components/CopyBtn/Accessibilite.mdx +6 -2
  158. package/src/components/CopyBtn/CopyBtn.mdx +5 -3
  159. package/src/components/CopyBtn/Usages.mdx +5 -3
  160. package/src/components/Customs/Selects/SelectBtnField/Accessibilite.mdx +6 -2
  161. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.mdx +7 -4
  162. package/src/components/Customs/Selects/SelectBtnField/Usages.mdx +5 -3
  163. package/src/components/Customs/Selects/SelectOverview.mdx +5 -3
  164. package/src/components/Customs/Selects/SyBtnSelect/Accessibilite.mdx +6 -2
  165. package/src/components/Customs/Selects/SyBtnSelect/SyBtnSelect.mdx +6 -4
  166. package/src/components/Customs/Selects/SyInputSelect/Accessibilite.mdx +6 -2
  167. package/src/components/Customs/Selects/SyInputSelect/SyInputSelect.mdx +7 -2
  168. package/src/components/Customs/Selects/SySelect/Accessibilite.mdx +7 -3
  169. package/src/components/Customs/Selects/SySelect/SySelect.mdx +6 -4
  170. package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +1 -1
  171. package/src/components/Customs/Selects/SySelect/SySelect.vue +115 -193
  172. package/src/components/Customs/Selects/SySelect/Usages.mdx +5 -3
  173. package/src/components/Customs/SyCheckbox/Accessibilite.mdx +6 -3
  174. package/src/components/Customs/SyCheckbox/SyCheckbox.mdx +5 -3
  175. package/src/components/Customs/SyIcon/Accessibilite.mdx +5 -5
  176. package/src/components/Customs/SyIcon/SyIcon.mdx +5 -7
  177. package/src/components/Customs/SyPagination/SyPagination.mdx +7 -4
  178. package/src/components/Customs/SyTabs/Accessibilite.mdx +4 -1
  179. package/src/components/Customs/SyTabs/SyTabs.mdx +5 -3
  180. package/src/components/Customs/SyTabs/tests/SyTabs.spec.ts +18 -0
  181. package/src/components/Customs/SyTextField/Accessibilite.mdx +6 -2
  182. package/src/components/Customs/SyTextField/SyTextField.mdx +5 -6
  183. package/src/components/Customs/SyTextField/SyTextField.vue +17 -4
  184. package/src/components/Customs/SyTextField/Usages.mdx +1 -0
  185. package/src/components/DataList/Accessibilite.mdx +6 -2
  186. package/src/components/DataList/DataList.mdx +5 -3
  187. package/src/components/DataListGroup/Accessibilite.mdx +6 -2
  188. package/src/components/DataListGroup/DataListGroup.mdx +5 -3
  189. package/src/components/DatePicker/Accessibilite.mdx +6 -2
  190. package/src/components/DatePicker/CalendarMode/DatePicker.mdx +5 -3
  191. package/src/components/DatePicker/CalendarMode/DatePicker.vue +6 -3
  192. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.mdx +5 -6
  193. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +14 -3
  194. package/src/components/DatePicker/DatePickerOverview.mdx +5 -3
  195. package/src/components/DatePicker/DatePickerValidationExample/DatePickerValidation.mdx +5 -3
  196. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +37 -32
  197. package/src/components/DatePicker/DateTextInput/NoCalendar.mdx +5 -3
  198. package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +3 -0
  199. package/src/components/DatePicker/Usages.mdx +5 -3
  200. package/src/components/DiacriticPicker/DiacriticPicker.mdx +5 -3
  201. package/src/components/DialogBox/Accessibilite.mdx +6 -2
  202. package/src/components/DialogBox/DialogBox.mdx +5 -3
  203. package/src/components/DialogBox/DialogBox.stories.ts +83 -0
  204. package/src/components/DialogBox/DialogBox.vue +41 -6
  205. package/src/components/DialogBox/Usages.mdx +5 -3
  206. package/src/components/DialogBox/config.ts +3 -3
  207. package/src/components/DialogBox/locales.ts +2 -0
  208. package/src/components/DialogBox/tests/DialogBox.spec.ts +132 -3
  209. package/src/components/DialogBox/tests/__snapshots__/DialogBox.spec.ts.snap +14 -11
  210. package/src/components/DialogBox/useDraggable.ts +98 -0
  211. package/src/components/DownloadBtn/Accessibilite.mdx +6 -2
  212. package/src/components/DownloadBtn/DownloadBtn.mdx +7 -4
  213. package/src/components/DownloadBtn/DownloadBtn.vue +1 -1
  214. package/src/components/DownloadBtn/tests/DownloadBtn.spec.ts +2 -3
  215. package/src/components/ErrorPage/Accessibilite.mdx +6 -2
  216. package/src/components/ErrorPage/ErrorPage.mdx +5 -3
  217. package/src/components/ExternalLinks/Accessibilite.mdx +6 -2
  218. package/src/components/ExternalLinks/ExternalLinks.mdx +5 -8
  219. package/src/components/ExternalLinks/Usages.mdx +5 -3
  220. package/src/components/FileList/Accessibilite.mdx +6 -2
  221. package/src/components/FileList/FileList.mdx +5 -4
  222. package/src/components/FilePreview/Accessibilite.mdx +6 -2
  223. package/src/components/FilePreview/FilePreview.mdx +7 -7
  224. package/src/components/FileUpload/Accessibilite.mdx +6 -2
  225. package/src/components/FileUpload/FileUpload.mdx +7 -4
  226. package/src/components/FilterInline/Accessibilite.mdx +6 -2
  227. package/src/components/FilterInline/FilterInline.mdx +5 -5
  228. package/src/components/FilterSideBar/Accessibilite.mdx +6 -2
  229. package/src/components/FilterSideBar/FilterSideBar.mdx +5 -4
  230. package/src/components/FooterBar/Accessibilite.mdx +6 -2
  231. package/src/components/FooterBar/FooterBar.mdx +5 -3
  232. package/src/components/FranceConnectBtn/Accessibilite.mdx +6 -2
  233. package/src/components/FranceConnectBtn/FranceConnectBtn.mdx +5 -3
  234. package/src/components/HeaderBar/Accessibilite.mdx +6 -2
  235. package/src/components/HeaderBar/HeaderBar.mdx +4 -4
  236. package/src/components/HeaderBar/HeaderBurgerMenu/Accessibilite.mdx +6 -2
  237. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderBurgerMenu.mdx +9 -13
  238. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/HeaderMenuItem.mdx +1 -1
  239. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuSection/HeaderMenuSection.mdx +5 -5
  240. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.mdx +1 -2
  241. package/src/components/HeaderBar/Usages.mdx +5 -3
  242. package/src/components/HeaderLoading/Accessibilite.mdx +2 -1
  243. package/src/components/HeaderLoading/HeaderLoading.mdx +5 -3
  244. package/src/components/HeaderNavigationBar/HeaderNavigationBar.mdx +1 -8
  245. package/src/components/HeaderToolbar/Accessibilite.mdx +6 -2
  246. package/src/components/HeaderToolbar/HeaderToolbar.mdx +5 -3
  247. package/src/components/LangBtn/Accessibilite.mdx +6 -2
  248. package/src/components/LangBtn/LangBtn.mdx +5 -3
  249. package/src/components/Logo/Accessibilite.mdx +6 -2
  250. package/src/components/Logo/Logo.mdx +5 -3
  251. package/src/components/LogoBrandSection/Accessibilite.mdx +6 -2
  252. package/src/components/LogoBrandSection/LogoBrandSection.mdx +5 -3
  253. package/src/components/MaintenancePage/Accessibilite.mdx +6 -2
  254. package/src/components/MaintenancePage/MaintenancePage.mdx +6 -4
  255. package/src/components/NirField/Accessibilite.mdx +6 -2
  256. package/src/components/NirField/NirField.mdx +5 -7
  257. package/src/components/NirField/NirField.vue +13 -118
  258. package/src/components/NirField/Usages.mdx +5 -3
  259. package/src/components/NotFoundPage/Accessibilite.mdx +6 -2
  260. package/src/components/NotFoundPage/NotFoundPage.mdx +6 -4
  261. package/src/components/NotificationBar/Accessibilite.mdx +6 -2
  262. package/src/components/NotificationBar/NotificationBar.mdx +5 -1
  263. package/src/components/NotificationBar/Usages.mdx +5 -3
  264. package/src/components/PageContainer/Accessibilite.mdx +6 -2
  265. package/src/components/PageContainer/PageContainer.mdx +5 -3
  266. package/src/components/PaginatedTable/Accessibilite.mdx +6 -2
  267. package/src/components/PaginatedTable/PaginatedTable.mdx +5 -3
  268. package/src/components/PasswordField/Accessibilite.mdx +6 -2
  269. package/src/components/PasswordField/PasswordField.mdx +5 -3
  270. package/src/components/PeriodField/Accessibilite.mdx +6 -2
  271. package/src/components/PeriodField/PeriodField.mdx +5 -3
  272. package/src/components/PhoneField/Accessibilite.mdx +6 -2
  273. package/src/components/PhoneField/PhoneField.mdx +5 -3
  274. package/src/components/PhoneField/PhoneField.stories.ts +17 -218
  275. package/src/components/PhoneField/PhoneField.vue +17 -11
  276. package/src/components/PhoneField/Usages.mdx +5 -3
  277. package/src/components/PhoneField/tests/PhoneField.spec.ts +46 -0
  278. package/src/components/RangeField/Accessibilite.mdx +6 -2
  279. package/src/components/RangeField/RangeField.mdx +5 -7
  280. package/src/components/RatingPicker/Accessibilite.mdx +6 -2
  281. package/src/components/RatingPicker/RatingPicker.mdx +5 -4
  282. package/src/components/SearchListField/Accessibilite.mdx +6 -2
  283. package/src/components/SearchListField/SearchListField.mdx +7 -5
  284. package/src/components/SkipLink/Accessibilite.mdx +6 -2
  285. package/src/components/SkipLink/SkipLink.mdx +5 -3
  286. package/src/components/SkipLink/Usages.mdx +5 -3
  287. package/src/components/SocialMediaLinks/Accessibilite.mdx +6 -2
  288. package/src/components/SocialMediaLinks/SocialMediaLinks.mdx +5 -3
  289. package/src/components/SubHeader/Accessibilite.mdx +6 -2
  290. package/src/components/SubHeader/SubHeader.mdx +5 -3
  291. package/src/components/SyAlert/Accessibilite.mdx +6 -2
  292. package/src/components/SyAlert/SyAlert.mdx +7 -4
  293. package/src/components/SyAlert/Usages.mdx +5 -3
  294. package/src/components/SyTextArea/SyTextArea.mdx +5 -3
  295. package/src/components/TableToolbar/Accessibilite.mdx +6 -2
  296. package/src/components/TableToolbar/TableToolbar.mdx +6 -3
  297. package/src/components/Tables/SyServerTable/SyServerTable.mdx +5 -3
  298. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +4 -0
  299. package/src/components/Tables/SyServerTable/SyServerTable.vue +36 -74
  300. package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +46 -7
  301. package/src/components/Tables/SyTable/SyTable.mdx +5 -3
  302. package/src/components/Tables/SyTable/SyTable.stories.ts +5 -1
  303. package/src/components/Tables/SyTable/SyTable.vue +38 -60
  304. package/src/components/Tables/SyTable/tests/SyTable.spec.ts +9 -7
  305. package/src/components/Tables/common/tableProps.ts +53 -0
  306. package/src/components/Tables/common/tableStyles.scss +4 -0
  307. package/src/components/Tables/common/tests/tableUtils.spec.ts +4 -151
  308. package/src/components/Tables/common/types.ts +12 -2
  309. package/src/components/Tables/common/useStoredOptions.ts +36 -0
  310. package/src/components/Tables/common/useTableHeaders.ts +10 -7
  311. package/src/components/Tables/common/useTableItems.ts +0 -20
  312. package/src/components/ToolbarContainer/ToolbarContainer.mdx +1 -0
  313. package/src/components/UploadWorkflow/Accessibilite.mdx +6 -2
  314. package/src/components/UploadWorkflow/UploadWorkflow.mdx +5 -7
  315. package/src/components/UserMenuBtn/Accessibilite.mdx +6 -2
  316. package/src/components/UserMenuBtn/UserMenuBtn.mdx +5 -3
  317. package/src/components/index.ts +4 -0
  318. package/src/stories/Accessibilite/Aculturation/SensibilisationAccessibilite.mdx +2 -65
  319. package/src/stories/Accessibilite/Audit/RGAA.mdx +2 -20
  320. package/src/stories/Accessibilite/AuditDesignSystem.mdx +4 -47
  321. package/src/stories/Accessibilite/Avancement/Avancement.mdx +5 -68
  322. package/src/stories/Accessibilite/Avancement/Avancement.stories.ts +267 -198
  323. package/src/stories/Accessibilite/Introduction.mdx +2 -20
  324. package/src/stories/Accessibilite/KitDePreAudit/Echantillonnage.mdx +4 -21
  325. package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +3 -20
  326. package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +5 -50
  327. package/src/stories/Accessibilite/KitDePreAudit/Outils/LecteursDEcran.mdx +3 -46
  328. package/src/stories/Accessibilite/KitDePreAudit/Outils/Tanaguru/FauxPositifs.mdx +3 -39
  329. package/src/stories/Accessibilite/KitDePreAudit/Outils/Tanaguru/Utilisation.mdx +4 -54
  330. package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +4 -51
  331. package/src/stories/Accessibilite/Vuetify/Vuetify.mdx +3 -11
  332. package/src/stories/Accessibilite/Vuetify/Vuetify.stories.ts +2 -2
  333. package/src/stories/Accessibilite/Vuetify/VuetifyItems.ts +6 -3
  334. package/src/stories/Components/Components.stories.ts +1 -1
  335. package/src/stories/Demarrer/CreerUneIssue.mdx +4 -1
  336. package/src/stories/Demarrer/PolitiqueDeConfidentialite.mdx +0 -2
  337. package/src/stories/Demarrer/PolitiqueDeConfidentialite.stories.ts +3 -0
  338. package/src/stories/Demarrer/Releases.mdx +0 -2
  339. package/src/stories/Demarrer/Releases.stories.ts +3 -0
  340. package/src/stories/DesignTokens/Arrondis.mdx +7 -1
  341. package/src/stories/DesignTokens/Colors.mdx +7 -1
  342. package/src/stories/DesignTokens/Conteneurs.mdx +6 -1
  343. package/src/stories/DesignTokens/Elevations.mdx +7 -1
  344. package/src/stories/DesignTokens/Espacements.mdx +7 -1
  345. package/src/stories/DesignTokens/Introduction.mdx +5 -3
  346. package/src/stories/DesignTokens/StylesTypographiques.mdx +6 -1
  347. package/src/stories/DesignTokens/Typographie.mdx +5 -1
  348. package/src/stories/Directives/SvgDirective.mdx +3 -22
  349. package/src/stories/EcoConception/EcoGuideComponent.vue +569 -0
  350. package/src/stories/EcoConception/Introduction.mdx +190 -13
  351. package/src/stories/EcoConception/Referentiel.mdx +13 -0
  352. package/src/stories/EcoConception/datas/back_rules.json +184 -0
  353. package/src/stories/EcoConception/datas/ux_ui_rules.json +1073 -0
  354. package/src/stories/EcoConception/ecoconception.stories.ts +30 -0
  355. package/src/stories/GuideDuDev/ClassesUtilitaires/DataUtilities.mdx +7 -3
  356. package/src/stories/GuideDuDev/ClassesUtilitaires/DomBrowserUtilities.mdx +9 -1
  357. package/src/stories/GuideDuDev/ClassesUtilitaires/FormattingUtilities.mdx +7 -3
  358. package/src/stories/GuideDuDev/ClassesUtilitaires/StorageUtilities.mdx +5 -1
  359. package/src/stories/GuideDuDev/ClassesUtilitaires/ValidationRules.mdx +7 -3
  360. package/src/stories/GuideDuDev/ClassesUtilitaires/ValidationUtilities.mdx +7 -3
  361. package/src/stories/GuideDuDev/ClassesUtilitaires/index.mdx +5 -2
  362. package/src/stories/GuideDuDev/FormValidationGuide.mdx +7 -3
  363. package/src/stories/GuideDuDev/LesBreackingChanges.mdx +6 -2
  364. package/src/stories/GuideDuDev/MigrationDepuisBridge.mdx +7 -2
  365. package/src/stories/GuideDuDev/MigrationDepuisVue2.mdx +7 -2
  366. package/src/stories/GuideDuDev/PortailAgent.mdx +6 -1
  367. package/src/stories/GuideDuDev/Theme.mdx +8 -2
  368. package/src/stories/GuideDuDev/UtiliserLesRules.mdx +7 -3
  369. package/src/stories/GuideDuDev/moduleDeNotification.mdx +8 -3
  370. package/src/stories/GuideDuDev/vuetifyOptions.mdx +5 -1
  371. package/src/stories/Templates/Templates.stories.ts +1 -1
  372. package/src/stories/styles/shared.css +16 -0
  373. package/src/utils/rules/Rules.mdx +26 -3
  374. package/src/utils/rules/doMatchPattern/DoMachPattern.mdx +27 -4
  375. package/src/utils/rules/isDateValid/IsDateValid.mdx +27 -4
  376. package/src/utils/rules/isExactLength/IsExactLenght.mdx +27 -4
  377. package/src/utils/rules/isHolidayDay/IsHolidayDay.mdx +27 -4
  378. package/src/utils/rules/isMaxLength/IsMaxLength.mdx +27 -4
  379. package/src/utils/rules/isMinLength/IsMinLength.mdx +27 -4
  380. package/src/utils/rules/isNotAfterDate/IsNotAfterDate.mdx +27 -4
  381. package/src/utils/rules/isNotAfterToday/IsNotAfterToday.mdx +27 -4
  382. package/src/utils/rules/isNotBeforeDate/IsNotBeforeDate.mdx +27 -4
  383. package/src/utils/rules/isNotBeforeToday/IsNotBeforeToday.mdx +27 -3
  384. package/src/utils/rules/isRequired/IsRequired.mdx +27 -4
  385. package/src/utils/rules/isValidEmail/IsValidEmail.mdx +27 -4
  386. package/dist/components/Tables/common/tableStorageUtils.d.ts +0 -69
  387. package/dist/components/Tables/common/tableUtils.d.ts +0 -79
  388. package/dist/main-DXMoMtj5.js +0 -29904
  389. package/dist/stories/EcoConception/ecoDesignItems.d.ts +0 -4
  390. package/src/components/DownloadBtn/tests/__snapshots__/DownloadBtn.spec.ts.snap +0 -92
  391. package/src/components/Tables/common/tableStorageUtils.ts +0 -127
  392. package/src/components/Tables/common/tableUtils.ts +0 -102
  393. package/src/stories/EcoConception/ecoDesignItems.ts +0 -55
  394. package/src/stories/EcoConception/econception.stories.ts +0 -30
@@ -1,8 +1,14 @@
1
1
  import { Meta } from "@storybook/blocks";
2
+ import '../styles/shared.css';
2
3
 
3
4
  <Meta title="Design Tokens/Espacements" />
4
5
 
5
- # Espacements
6
+
7
+
8
+ <div className="header">
9
+ <h1>Les espacements</h1>
10
+ <p>Les espacements disponibles dans notre Design System.</p>
11
+ </div>
6
12
 
7
13
  Le design système de la CNAM est basé sur des multiples de 4 pour définir la taille des éléments, placer des espacements et disposer des composants.<br/>
8
14
  Ce système d’espacement permet de garantir une homogénéité, cohérence et consistance des interfaces conçues. Cela dans le but d'améliorer l’UX et de faciliter la conception et le développement.
@@ -1,11 +1,13 @@
1
1
  import { Meta } from '@storybook/addon-docs';
2
+ import '../styles/shared.css';
2
3
 
3
4
  <Meta title="Design Tokens/Introduction" />
4
5
 
5
- Principes de design
6
- ===================
7
6
 
8
- Les principes éthiques de construction de notre Design System.
7
+ <div className="header">
8
+ <h1>Principes de design</h1>
9
+ <p>Les principes éthiques de construction de notre Design System.</p>
10
+ </div>
9
11
 
10
12
  Être au service des usagers de la santé publique
11
13
  ------------------------------------------------
@@ -1,9 +1,14 @@
1
1
  import { Story, Meta } from '@storybook/blocks';
2
2
  import * as TypographyStories from './StylesTypographiques.stories';
3
+ import '../styles/shared.css';
3
4
 
4
5
  <Meta title="Design Tokens/Styles typographiques" of={TypographyStories} />
5
6
 
6
- # Styles typographiques
7
+
8
+ <div className="header">
9
+ <h1>Styles typographiques</h1>
10
+ <p>Les styles typographiques disponibles dans notre Design System.</p>
11
+ </div>
7
12
  <Story of={TypographyStories.Introduction} />
8
13
 
9
14
  ## Styles de titres
@@ -1,4 +1,5 @@
1
1
  import { Meta, Typeset } from '@storybook/addon-docs';
2
+ import '../styles/shared.css';
2
3
 
3
4
  <Meta title="Design Tokens/Typographie" />
4
5
 
@@ -28,7 +29,10 @@ export const typography = {
28
29
 
29
30
  export const SampleText = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.';
30
31
 
31
- # Typographie
32
+ <div className="header">
33
+ <h1>Typographie</h1>
34
+ <p>Les grands principes typographiques du Design System.</p>
35
+ </div>
32
36
 
33
37
  Impulsé par les travaux réalisés sur [Ameli.fr](https://www.ameli.fr/), le Design System fournit un ensemble limité et ciblé de styles typographiques que nous utilisons pour présenter l'interface utilisateur et le contenu de la manière la plus claire et la plus efficace possible tout en assurant la cohérence de la marque sur l’ensemble des plateformes.
34
38
 
@@ -1,29 +1,11 @@
1
1
  import { Meta } from '@storybook/blocks'
2
+ import '../styles/shared.css';
2
3
 
3
4
  <Meta title="Directives/v-rgaa-svg-fix" />
4
5
 
5
6
  <style>
6
7
  {
7
8
  `
8
- .directive-header {
9
- color: white;
10
- padding: 2rem;
11
- border-radius: 8px;
12
- margin-bottom: 2rem;
13
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
14
- }
15
-
16
- .directive-header h1 {
17
- margin-top: 0;
18
- font-size: 2.5rem;
19
- font-weight: 700;
20
- }
21
-
22
- .directive-header p {
23
- font-size: 1.1rem;
24
- margin-bottom: 0;
25
- opacity: 0.9;
26
- }
27
9
 
28
10
  .section-title {
29
11
  position: relative;
@@ -84,7 +66,6 @@ import { Meta } from '@storybook/blocks'
84
66
  }
85
67
 
86
68
  .feature-card:hover {
87
- transform: translateY(-2px);
88
69
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
89
70
  }
90
71
 
@@ -110,7 +91,7 @@ import { Meta } from '@storybook/blocks'
110
91
  }
111
92
  </style>
112
93
 
113
- <div className="directive-header">
94
+ <div className="header">
114
95
  <h1>Directive v-rgaa-svg-fix</h1>
115
96
  <p>Correction des attributs d'accessibilité pour les icônes SVG selon les normes RGAA</p>
116
97
  </div>
@@ -426,7 +407,7 @@ import { Meta } from '@storybook/blocks'
426
407
  </div>
427
408
  </div>
428
409
 
429
- <div className="directive-header" style={{ background: '#e3e8f2', color: '#0c419a', marginTop: '3rem' }}>
410
+ <div className="directive-header" style={{ background: '', color: '#0c419a', marginTop: '3rem' }}>
430
411
  <h2 style={{ margin: '0 0 1rem 0' }}>Conclusion</h2>
431
412
  <p>La directive <code>v-rgaa-svg-fix</code> est un outil essentiel pour garantir que les icônes SVG de votre application respectent les normes d'accessibilité RGAA. En l'utilisant correctement, vous améliorez l'expérience des utilisateurs de technologies d'assistance et vous contribuez à rendre votre application plus inclusive.</p>
432
413
  </div>
@@ -0,0 +1,569 @@
1
+ <script setup lang="ts">
2
+ import { ref, computed, watchEffect } from 'vue'
3
+ import uxUiRules from './datas/ux_ui_rules.json'
4
+ import { mdiChevronDown, mdiChevronUp, mdiMagnify, mdiRefresh } from '@mdi/js'
5
+ // import backRules from './datas/back_rules.json'
6
+
7
+ const mdiChevronDownIcon = mdiChevronDown
8
+ const mdiChevronUpIcon = mdiChevronUp
9
+ const mdiMagnifyIcon = mdiMagnify
10
+ const mdiRefreshIcon = mdiRefresh
11
+
12
+ interface EcoRule {
13
+ numero: number
14
+ theme?: string
15
+ finalite3mots?: string
16
+ criteres?: string
17
+ actions?: string
18
+ principes_directeurs?: string | null
19
+ statuts?: string | null
20
+ principe_finalite?: string
21
+ evaluation_type?: string | null
22
+ evaluation_description?: string | null
23
+ precisions?: string | null
24
+ page?: string | null
25
+ tests?: string | null
26
+ }
27
+
28
+ interface ThemeOption {
29
+ title: string
30
+ value: string
31
+ id: string
32
+ }
33
+
34
+ const categories = [
35
+ { value: 'ux-ui-dev', title: 'UX/UI/Front' },
36
+ { value: 'gestion-projet', title: 'Gestion de projet' },
37
+ { value: 'architecture', title: 'Architecture' },
38
+ { value: 'back', title: 'Backend' },
39
+ { value: 'environnement-run', title: 'Environnement/Run' },
40
+ ]
41
+
42
+ const uxUiRulesData = ref(uxUiRules as EcoRule[])
43
+ // const backRulesData = ref(backRules as EcoRule[])
44
+ const DATA_SOURCES: Record<string, () => EcoRule[]> = {
45
+ 'ux-ui-dev': () => uxUiRulesData.value,
46
+ // back: () => backRulesData.value,
47
+ }
48
+
49
+ const search = ref('')
50
+ const selectedCategory = ref<'ux-ui-dev' | 'gestion-projet' | 'architecture' | 'back' | 'environnement-run'>('ux-ui-dev')
51
+ const selectedTheme = ref<ThemeOption | null>(null)
52
+ const showFilters = ref(true)
53
+
54
+ const page = ref(1)
55
+ const itemsPerPage = ref(6)
56
+
57
+ const hasDataForCategory = computed(() => !!DATA_SOURCES[selectedCategory.value])
58
+
59
+ const currentRules = computed<EcoRule[]>(() => (DATA_SOURCES[selectedCategory.value]?.() ?? []))
60
+
61
+ const getAllThemes = () => {
62
+ const allThemes = currentRules.value.map(rule => rule.theme).filter(Boolean)
63
+ return allThemes
64
+ }
65
+
66
+ const normalizeString = (str: string): string => {
67
+ return str
68
+ .trim()
69
+ .toLowerCase()
70
+ .normalize('NFD') // Décomposer les caractères accentués
71
+ .replace(/[\u0300-\u036f]/g, '') // Supprimer les accents
72
+ .replace(/\s+/g, ' ') // Normaliser les espaces multiples
73
+ }
74
+
75
+ const themes = computed(() => {
76
+ const rawThemes = getAllThemes()
77
+ const themeSet = new Map<string, ThemeOption>()
78
+
79
+ for (const rawTheme of rawThemes) {
80
+ if (!rawTheme) continue
81
+
82
+ const displayTheme = rawTheme.trim()
83
+ const normalizedId = normalizeString(displayTheme)
84
+
85
+ if (!themeSet.has(normalizedId)) {
86
+ themeSet.set(normalizedId, {
87
+ title: displayTheme,
88
+ value: displayTheme,
89
+ id: normalizedId,
90
+ })
91
+ }
92
+ }
93
+
94
+ const themesArray = Array.from(themeSet.values()).sort((a, b) =>
95
+ a.title.localeCompare(b.title, 'fr', { sensitivity: 'base' }),
96
+ )
97
+ return themesArray
98
+ })
99
+
100
+ const filteredRules = computed(() => {
101
+ if (!hasDataForCategory.value) return []
102
+
103
+ const q = (search.value ?? '').trim().toLowerCase()
104
+ const theme = selectedTheme.value
105
+
106
+ return currentRules.value.filter((rule) => {
107
+ // On compare en utilisant la même normalisation
108
+ const themeOK = !theme || (rule.theme && theme.value
109
+ && normalizeString(rule.theme) === normalizeString(theme.value))
110
+ if (!q) return themeOK
111
+
112
+ const haystack = [
113
+ rule.actions ?? '',
114
+ rule.criteres ?? '',
115
+ String(rule.numero ?? ''),
116
+ rule.theme ?? '',
117
+ ].join(' ').toLowerCase()
118
+
119
+ return themeOK && haystack.includes(q)
120
+ })
121
+ })
122
+
123
+ const totalPages = computed(() => Math.max(1, Math.ceil(filteredRules.value.length / itemsPerPage.value)))
124
+
125
+ const paginatedRules = computed(() => {
126
+ const start = (page.value - 1) * itemsPerPage.value
127
+ return filteredRules.value.slice(start, start + itemsPerPage.value)
128
+ })
129
+
130
+ watchEffect(() => {
131
+ // Si changement de catégorie non implémentée => reset thème
132
+ if (!hasDataForCategory.value) selectedTheme.value = null
133
+ if ((page.value - 1) * itemsPerPage.value >= filteredRules.value.length && page.value !== 1) {
134
+ page.value = 1
135
+ }
136
+ })
137
+
138
+ const resetFilters = () => {
139
+ search.value = ''
140
+ selectedTheme.value = null
141
+ page.value = 1
142
+ }
143
+
144
+ const detailDialog = ref(false)
145
+ const selectedRule = ref<EcoRule | null>(null)
146
+ const showRuleDetails = (rule: EcoRule) => {
147
+ selectedRule.value = rule
148
+ detailDialog.value = true
149
+ }
150
+
151
+ const BADGE_MAP: Array<[key: string, color: string]> = [
152
+ ['conception des parcours', '#3949AB'],
153
+ ['algorithmes', '#7B1FA2'],
154
+ ['code léger', '#2E7D32'],
155
+ ['dépendances', '#D84315'],
156
+ ['requêtes', '#0277BD'],
157
+ ['stockage', '#00695C'],
158
+ ]
159
+
160
+ const getBadgeColor = (theme = '') => {
161
+ const t = theme.toLowerCase()
162
+ for (const [k, c] of BADGE_MAP) if (t.includes(k)) return c
163
+ return '#607D8B'
164
+ }
165
+
166
+ const extractThemeNumber = (theme = '') => (theme.match(/^([\d.]+)\s/)?.[1] ?? '')
167
+
168
+ const formatTestsWithBullets = (text?: string | null) => {
169
+ if (!text) return ''
170
+ const lines = text.split('\n')
171
+ const items: string[] = []
172
+ const paras: string[] = []
173
+ for (const line of lines) {
174
+ const trimmed = line.trim()
175
+ if (!trimmed) continue
176
+ if (trimmed.startsWith('•')) items.push(trimmed.slice(1).trim())
177
+ else paras.push(trimmed)
178
+ }
179
+ const ul = items.length ? `<ul>${items.map(i => `<li>${i}</li>`).join('')}</ul>` : ''
180
+ const p = paras.length ? paras.map(x => `<p>${x}</p>`).join('') : ''
181
+ return p + ul
182
+ }
183
+ </script>
184
+
185
+ <template>
186
+ <v-container fluid>
187
+ <v-card
188
+ flat
189
+ class="mt-4"
190
+ >
191
+ <v-card-text class="d-flex justify-space-between align-center px-4 py-2">
192
+ <h3 class="text-h6 text-primary">
193
+ Filtres
194
+ </h3>
195
+ <v-btn
196
+ variant="text"
197
+ :aria-label="showFilters ? 'Masquer les filtres' : 'Afficher les filtres'"
198
+ :icon="showFilters ? mdiChevronUpIcon : mdiChevronDownIcon"
199
+ @click="showFilters = !showFilters"
200
+ />
201
+ </v-card-text>
202
+
203
+ <v-expand-transition>
204
+ <div v-show="showFilters">
205
+ <v-card-text class="pa-2">
206
+ <v-row class="mb-1">
207
+ <v-col
208
+ cols="12"
209
+ md="6"
210
+ >
211
+ <v-select
212
+ v-model="selectedCategory"
213
+ :items="categories"
214
+ label="Catégorie"
215
+ variant="outlined"
216
+ density="comfortable"
217
+ hide-details
218
+ item-title="title"
219
+ item-value="value"
220
+ color="primary"
221
+ />
222
+ </v-col>
223
+ <v-col
224
+ cols="12"
225
+ md="6"
226
+ >
227
+ <v-select
228
+ v-model="selectedTheme"
229
+ :items="themes"
230
+ label="Sélectionnez un thème"
231
+ return-object
232
+ variant="outlined"
233
+ density="comfortable"
234
+ hide-details
235
+ clearable
236
+ color="primary"
237
+ :disabled="!hasDataForCategory"
238
+ placeholder="Sélectionnez un thème"
239
+ />
240
+ </v-col>
241
+ </v-row>
242
+
243
+ <v-row class="mb-1">
244
+ <v-col
245
+ cols="12"
246
+ >
247
+ <v-text-field
248
+ v-model="search"
249
+ label="Rechercher"
250
+ variant="outlined"
251
+ density="comfortable"
252
+ hide-details
253
+ :prepend-inner-icon="mdiMagnifyIcon"
254
+ clearable
255
+ color="primary"
256
+ placeholder="Rechercher par critères, actions ou numéro de règle ou de thème"
257
+ :disabled="!hasDataForCategory"
258
+ />
259
+ </v-col>
260
+ </v-row>
261
+
262
+ <v-row>
263
+ <v-col
264
+ cols="12"
265
+ class="d-flex justify-end"
266
+ >
267
+ <v-btn
268
+ :prepend-icon="mdiRefreshIcon"
269
+ variant="text"
270
+ color="primary"
271
+ @click="resetFilters"
272
+ >
273
+ Réinitialiser
274
+ </v-btn>
275
+ </v-col>
276
+ </v-row>
277
+ </v-card-text>
278
+ </div>
279
+ </v-expand-transition>
280
+
281
+ <v-divider />
282
+
283
+ <v-row
284
+ v-if="!hasDataForCategory"
285
+ class="pa-4"
286
+ >
287
+ <v-col
288
+ cols="12"
289
+ md="6"
290
+ >
291
+ <v-alert
292
+ type="info"
293
+ title="Contenu à venir"
294
+ text="Les règles d'éco-conception pour cette catégorie seront disponibles prochainement."
295
+ color="info"
296
+ variant="tonal"
297
+ class="mb-4"
298
+ />
299
+ </v-col>
300
+ </v-row>
301
+
302
+ <v-row
303
+ v-else
304
+ class="pa-4"
305
+ >
306
+ <v-col
307
+ v-if="filteredRules.length === 0"
308
+ cols="12"
309
+ >
310
+ <v-alert
311
+ type="info"
312
+ title="Aucun résultat"
313
+ text="Aucune règle ne correspond à vos critères de recherche."
314
+ color="info"
315
+ variant="tonal"
316
+ />
317
+ </v-col>
318
+
319
+ <template v-else>
320
+ <v-col
321
+ v-for="rule in paginatedRules"
322
+ :key="rule.numero"
323
+ cols="12"
324
+ sm="6"
325
+ md="6"
326
+ >
327
+ <v-card
328
+ height="100%"
329
+ class="d-flex flex-column"
330
+ elevation="2"
331
+ >
332
+ <v-card-title class="text-subtitle-1 text-primary font-weight-bold title-multiline">
333
+ <v-chip
334
+ :color="getBadgeColor(rule.theme)"
335
+ size="small"
336
+ class="mr-2"
337
+ >
338
+ {{ extractThemeNumber(rule.theme) }}
339
+ </v-chip>
340
+ <span class="card-text-wrap">{{ rule.criteres }}</span>
341
+ </v-card-title>
342
+
343
+ <v-card-text class="flex-grow-1">
344
+ <p class="text-body-1">
345
+ {{ rule.actions }}
346
+ </p>
347
+ </v-card-text>
348
+
349
+ <v-card-actions>
350
+ <v-spacer />
351
+ <v-btn
352
+ variant="text"
353
+ color="primary"
354
+ @click="showRuleDetails(rule)"
355
+ >
356
+ Détails
357
+ </v-btn>
358
+ </v-card-actions>
359
+ </v-card>
360
+ </v-col>
361
+ </template>
362
+
363
+ <v-col
364
+ v-if="filteredRules.length > itemsPerPage"
365
+ cols="12"
366
+ class="d-flex justify-center mt-4"
367
+ >
368
+ <v-pagination
369
+ v-model="page"
370
+ :length="totalPages"
371
+ total-visible="7"
372
+ rounded
373
+ color="primary"
374
+ />
375
+ </v-col>
376
+ </v-row>
377
+ </v-card>
378
+
379
+ <v-dialog
380
+ v-model="detailDialog"
381
+ max-width="800px"
382
+ >
383
+ <v-card
384
+ v-if="selectedRule"
385
+ class="detail-card"
386
+ elevation="3"
387
+ >
388
+ <v-card-item>
389
+ <div class="d-flex justify-space-between mb-2">
390
+ <h3>
391
+ {{ selectedRule.finalite3mots }}
392
+ </h3>
393
+ <v-chip
394
+ :color="getBadgeColor(selectedRule.theme)"
395
+ size="small"
396
+ >
397
+ Regle: {{ selectedRule.numero }}
398
+ </v-chip>
399
+ </div>
400
+
401
+ <!-- <h3 class="text-h6 mb-4 mt-4">
402
+ {{ selectedRule.actions || selectedRule.criteres || ('Règle ' + selectedRule.numero) }}
403
+ </h3> -->
404
+
405
+ <div class="detail-section">
406
+ <div
407
+ v-if="selectedRule.theme"
408
+ class="detail-item"
409
+ >
410
+ <div class="detail-label">
411
+ Thème
412
+ </div>
413
+ <div class="detail-content">
414
+ {{ selectedRule.theme }}
415
+ </div>
416
+ </div>
417
+
418
+ <div
419
+ v-if="selectedRule.criteres"
420
+ class="detail-item"
421
+ >
422
+ <div class="detail-label">
423
+ Critères
424
+ </div>
425
+ <div class="detail-content">
426
+ {{ selectedRule.criteres }}
427
+ </div>
428
+ </div>
429
+
430
+ <div
431
+ v-if="selectedRule.actions"
432
+ class="detail-item"
433
+ >
434
+ <div class="detail-label">
435
+ Attendu
436
+ </div>
437
+ <div class="detail-content">
438
+ {{ selectedRule.actions }}
439
+ </div>
440
+ </div>
441
+ <div
442
+ v-if="selectedRule.precisions"
443
+ class="detail-item"
444
+ >
445
+ <div class="detail-label">
446
+ Exemple de mise en œuvre
447
+ </div>
448
+ <div class="detail-content">
449
+ {{ selectedRule.precisions }}
450
+ </div>
451
+ </div>
452
+
453
+ <div
454
+ v-if="selectedRule.tests"
455
+ class="detail-item"
456
+ >
457
+ <div class="detail-label">
458
+ Moyen de test ou de contrôle
459
+ </div>
460
+ <div class="detail-content">
461
+ <div
462
+ class="formatted-tests"
463
+ v-html="formatTestsWithBullets(selectedRule.tests)"
464
+ />
465
+ </div>
466
+ </div>
467
+ <div
468
+ v-if="selectedRule.principes_directeurs"
469
+ class="detail-item"
470
+ >
471
+ <div class="detail-label">
472
+ Principes directeurs
473
+ </div>
474
+ <div class="detail-content">
475
+ {{ selectedRule.principes_directeurs }}
476
+ </div>
477
+ </div>
478
+
479
+ <div
480
+ v-if="selectedRule.principe_finalite"
481
+ class="detail-item"
482
+ >
483
+ <div class="detail-label">
484
+ Principe de finalité
485
+ </div>
486
+ <div class="detail-content">
487
+ {{ selectedRule.principe_finalite }}
488
+ </div>
489
+ </div>
490
+ </div>
491
+ </v-card-item>
492
+
493
+ <v-card-actions class="pa-4">
494
+ <v-spacer />
495
+ <v-btn
496
+ variant="outlined"
497
+ color="primary"
498
+ @click="detailDialog = false"
499
+ >
500
+ Fermer
501
+ </v-btn>
502
+ </v-card-actions>
503
+ </v-card>
504
+ </v-dialog>
505
+ </v-container>
506
+ </template>
507
+
508
+ <style lang="scss" scoped>
509
+ .detail-section {
510
+ margin-top: 16px;
511
+ display: flex;
512
+ flex-direction: column;
513
+ gap: 20px;
514
+ }
515
+
516
+ .detail-item {
517
+ margin-bottom: 16px;
518
+ border-bottom: 1px solid rgb(0 0 0 / 8%);
519
+ padding-bottom: 16px;
520
+ }
521
+
522
+ .detail-label {
523
+ font-weight: 600;
524
+ color: #0c419a;
525
+ margin-bottom: 8px;
526
+ }
527
+
528
+ .detail-content {
529
+ white-space: pre-wrap;
530
+ line-height: 1.5;
531
+ }
532
+
533
+ .formatted-tests {
534
+ display: block;
535
+ padding-left: 20px;
536
+ }
537
+
538
+ .formatted-tests li {
539
+ display: list-item;
540
+ margin-bottom: 8px;
541
+ list-style-type: disc;
542
+ }
543
+
544
+ .v-card {
545
+ transition: transform 0.3s;
546
+ }
547
+
548
+ .detail-card {
549
+ padding: 24px;
550
+ }
551
+
552
+ .title-multiline {
553
+ display: flex;
554
+ flex-direction: column;
555
+ align-items: flex-start;
556
+ }
557
+
558
+ .title-multiline .v-chip {
559
+ margin-bottom: 8px;
560
+ }
561
+
562
+ .card-text-wrap {
563
+ white-space: normal;
564
+ word-wrap: break-word;
565
+ overflow-wrap: break-word;
566
+ display: block;
567
+ width: 100%;
568
+ }
569
+ </style>