@cnamts/synapse 0.0.3-alpha → 0.0.5-alpha

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 (300) hide show
  1. package/dist/design-system-v3.d.ts +1461 -68
  2. package/dist/design-system-v3.js +4775 -1673
  3. package/dist/design-system-v3.umd.cjs +10 -1
  4. package/dist/style.css +1 -1
  5. package/package.json +6 -2
  6. package/src/assets/tokens.scss +0 -1
  7. package/src/components/Alert/Accessibilite.mdx +14 -0
  8. package/src/components/Alert/Accessibilite.stories.ts +166 -0
  9. package/src/components/Alert/AccessibiliteItems.ts +152 -0
  10. package/src/components/Alert/Alert.mdx +1 -1
  11. package/src/components/Alert/Alert.stories.ts +91 -1
  12. package/src/components/Alert/constants/ExpertiseLevelEnum.ts +4 -0
  13. package/src/components/BackBtn/Accessibilite.mdx +14 -0
  14. package/src/components/BackBtn/Accessibilite.stories.ts +166 -0
  15. package/src/components/BackBtn/AccessibiliteItems.ts +132 -0
  16. package/src/components/BackBtn/BackBtn.mdx +1 -1
  17. package/src/components/BackBtn/BackBtn.stories.ts +84 -1
  18. package/src/components/BackBtn/constants/ExpertiseLevelEnum.ts +4 -0
  19. package/src/components/BackToTopBtn/Accessibilite.mdx +14 -0
  20. package/src/components/BackToTopBtn/Accessibilite.stories.ts +166 -0
  21. package/src/components/BackToTopBtn/AccessibiliteItems.ts +82 -0
  22. package/src/components/BackToTopBtn/BackToTopBtn.mdx +3 -3
  23. package/src/components/BackToTopBtn/BackToTopBtn.stories.ts +172 -11
  24. package/src/components/BackToTopBtn/constants/ExpertiseLevelEnum.ts +4 -0
  25. package/src/components/CollapsibleList/Accessibilite.mdx +14 -0
  26. package/src/components/CollapsibleList/Accessibilite.stories.ts +166 -0
  27. package/src/components/CollapsibleList/AccessibiliteItems.ts +129 -0
  28. package/src/components/CollapsibleList/CollapsibleList.mdx +2 -2
  29. package/src/components/CollapsibleList/CollapsibleList.stories.ts +37 -1
  30. package/src/components/CollapsibleList/constants/ExpertiseLevelEnum.ts +4 -0
  31. package/src/components/CopyBtn/Accessibilite.mdx +14 -0
  32. package/src/components/CopyBtn/Accessibilite.stories.ts +166 -0
  33. package/src/components/CopyBtn/AccessibiliteItems.ts +135 -0
  34. package/src/components/CopyBtn/CopyBtn.mdx +1 -1
  35. package/src/components/CopyBtn/CopyBtn.stories.ts +120 -1
  36. package/src/components/CopyBtn/CopyBtn.vue +1 -1
  37. package/src/components/CopyBtn/config.ts +2 -0
  38. package/src/components/CopyBtn/constants/ExpertiseLevelEnum.ts +4 -0
  39. package/src/components/Customs/SyBtnSelect/SyBtnSelect.mdx +44 -0
  40. package/src/components/Customs/SyBtnSelect/SyBtnSelect.stories.ts +606 -0
  41. package/src/components/Customs/SyBtnSelect/SyBtnSelect.vue +246 -0
  42. package/src/components/Customs/SyBtnSelect/tests/SyBtnSelect.spec.ts +168 -0
  43. package/src/components/Customs/SyInputSelect/SyInputSelect.mdx +40 -0
  44. package/src/components/Customs/SyInputSelect/SyInputSelect.stories.ts +420 -0
  45. package/src/components/Customs/{CustomInputSelect/CustomInputSelect.vue → SyInputSelect/SyInputSelect.vue} +89 -54
  46. package/src/components/Customs/SyInputSelect/config.ts +10 -0
  47. package/src/components/Customs/SyInputSelect/tests/SyInputSelect.spec.ts +140 -0
  48. package/src/components/Customs/{CustomSelect/CustomSelect.mdx → SySelect/SySelect.mdx} +10 -10
  49. package/src/components/Customs/SySelect/SySelect.stories.ts +338 -0
  50. package/src/components/Customs/{CustomSelect/CustomSelect.vue → SySelect/SySelect.vue} +34 -11
  51. package/src/components/Customs/{CustomInputSelect/tests/CustomInputSelect.spec.ts → SySelect/tests/SySelect.spec.ts} +48 -71
  52. package/src/components/Customs/SyTextField/SyTextField.mdx +44 -0
  53. package/src/components/Customs/SyTextField/SyTextField.stories.ts +403 -0
  54. package/src/components/Customs/SyTextField/SyTextField.vue +110 -0
  55. package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +93 -0
  56. package/src/components/Customs/SyTextField/tests/__snapshots__/SyTextField.spec.ts.snap +57 -0
  57. package/src/components/Customs/SyTextField/types.d.ts +3 -0
  58. package/src/components/DataList/DataList.mdx +77 -0
  59. package/src/components/DataList/DataList.stories.ts +960 -0
  60. package/src/components/DataList/DataList.vue +140 -0
  61. package/src/components/DataList/DataListLoading/DataListLoading.vue +56 -0
  62. package/src/components/DataList/DataListLoading/tests/DataListLoading.spec.ts +23 -0
  63. package/src/components/DataList/locales.ts +3 -0
  64. package/src/components/DataList/tests/DataList.spec.ts +194 -0
  65. package/src/components/DataList/types.d.ts +23 -0
  66. package/src/components/DataListGroup/DataListGroup.mdx +77 -0
  67. package/src/components/DataListGroup/DataListGroup.stories.ts +987 -0
  68. package/src/components/DataListGroup/DataListGroup.vue +59 -0
  69. package/src/components/DataListGroup/tests/DataListGroup.spec.ts +54 -0
  70. package/src/components/DataListGroup/tests/data/dataListGroupItems.ts +41 -0
  71. package/src/components/DataListGroup/types.d.ts +15 -0
  72. package/src/components/DataListItem/DataListItem.vue +135 -0
  73. package/src/components/DataListItem/config.ts +17 -0
  74. package/src/components/DataListItem/locales.ts +3 -0
  75. package/src/components/DataListItem/tests/DataListItem.spec.ts +156 -0
  76. package/src/components/DataListItem/types.d.ts +23 -0
  77. package/src/components/DialogBox/DialogBox.mdx +14 -0
  78. package/src/components/DialogBox/DialogBox.stories.ts +798 -0
  79. package/src/components/DialogBox/DialogBox.vue +181 -0
  80. package/src/components/DialogBox/config.ts +25 -0
  81. package/src/components/DialogBox/locales.ts +5 -0
  82. package/src/components/DialogBox/tests/DialogBox.spec.ts +329 -0
  83. package/src/components/DialogBox/tests/__snapshots__/DialogBox.spec.ts.snap +46 -0
  84. package/src/components/DownloadBtn/Accessibilite.mdx +14 -0
  85. package/src/components/DownloadBtn/Accessibilite.stories.ts +166 -0
  86. package/src/components/DownloadBtn/AccessibiliteItems.ts +129 -0
  87. package/src/components/DownloadBtn/DownloadBtn.mdx +5 -6
  88. package/src/components/DownloadBtn/DownloadBtn.stories.ts +207 -2
  89. package/src/components/DownloadBtn/constants/ExpertiseLevelEnum.ts +4 -0
  90. package/src/components/ErrorPage/ErrorPage.mdx +21 -0
  91. package/src/components/ErrorPage/ErrorPage.stories.ts +133 -0
  92. package/src/components/ErrorPage/ErrorPage.vue +93 -0
  93. package/src/components/ErrorPage/locales.ts +5 -0
  94. package/src/components/ErrorPage/tests/ErrorPage.spec.ts +40 -0
  95. package/src/components/ErrorPage/tests/__snapshots__/ErrorPage.spec.ts.snap +78 -0
  96. package/src/components/FooterBar/FooterBar.mdx +2 -2
  97. package/src/components/FooterBar/FooterBar.stories.ts +557 -9
  98. package/src/components/FooterBar/config.ts +2 -3
  99. package/src/components/FooterBar/tests/FooterBar.spec.ts +1 -1
  100. package/src/components/FooterBar/tests/FooterBarConfig.spec.ts +1 -1
  101. package/src/components/FooterBar/tests/__snapshots__/FooterBar.spec.ts.snap +2 -2
  102. package/src/components/FranceConnectBtn/Accessibilite.mdx +14 -0
  103. package/src/components/FranceConnectBtn/Accessibilite.stories.ts +194 -0
  104. package/src/components/FranceConnectBtn/AccessibiliteItems.ts +199 -0
  105. package/src/components/FranceConnectBtn/FranceConnectBtn.mdx +1 -1
  106. package/src/components/FranceConnectBtn/FranceConnectBtn.stories.ts +58 -1
  107. package/src/components/FranceConnectBtn/constants/ExpertiseLevelEnum.ts +4 -0
  108. package/src/components/HeaderBar/HeaderBar.mdx +164 -45
  109. package/src/components/HeaderBar/HeaderBar.stories.ts +618 -16
  110. package/src/components/HeaderBar/HeaderBar.vue +60 -22
  111. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderBurgerMenu.mdx +433 -0
  112. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderBurgerMenu.stories.ts +1089 -0
  113. package/src/components/HeaderBar/{HeaderComplexMenu/HeaderComplexMenu.vue → HeaderBurgerMenu/HeaderBurgerMenu.vue} +74 -45
  114. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/HeaderMenuItem.mdx +38 -0
  115. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/HeaderMenuItem.stories.ts +89 -0
  116. package/src/components/HeaderBar/{HeaderComplexMenu → HeaderBurgerMenu}/HeaderMenuItem/tests/__snapshots__/HeaderMenuItem.spec.ts.snap +1 -1
  117. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuSection/HeaderMenuSection.mdx +17 -0
  118. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuSection/HeaderMenuSection.stories.ts +121 -0
  119. package/src/components/HeaderBar/{HeaderComplexMenu → HeaderBurgerMenu}/HeaderMenuSection/HeaderMenuSection.vue +2 -2
  120. package/src/components/HeaderBar/{HeaderComplexMenu → HeaderBurgerMenu}/HeaderMenuSection/tests/HeaderMenuSection.spec.ts +1 -3
  121. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.mdx +43 -0
  122. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.stories.ts +261 -0
  123. package/src/components/HeaderBar/{HeaderComplexMenu → HeaderBurgerMenu}/HeaderSubMenu/HeaderSubMenu.vue +17 -3
  124. package/src/components/HeaderBar/{HeaderComplexMenu → HeaderBurgerMenu}/HeaderSubMenu/tests/HeaderSubMenu.spec.ts +1 -1
  125. package/src/components/HeaderBar/HeaderBurgerMenu/tests/HeaderBurgerMenu.spec.ts +180 -0
  126. package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/HeaderBurgerMenu.spec.ts.snap +13 -0
  127. package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/HeaderComplexMenu.spec.ts.snap +13 -0
  128. package/src/components/HeaderBar/HeaderLogo/HeaderLogo.vue +62 -25
  129. package/src/components/HeaderBar/HeaderLogo/tests/HeaderLogo.spec.ts +49 -1
  130. package/src/components/HeaderBar/HeaderMenuBtn/HeaderMenuBtn.vue +19 -23
  131. package/src/components/HeaderBar/HeaderMenuBtn/tests/HeaderMenuBtn.spec.ts +70 -0
  132. package/src/components/HeaderBar/Usages.mdx +85 -0
  133. package/src/components/HeaderBar/consts.scss +0 -1
  134. package/src/components/HeaderBar/tests/HeaderBar.spec.ts +8 -2
  135. package/src/components/HeaderBar/tests/__snapshots__/HeaderBar.spec.ts.snap +5 -10
  136. package/src/components/HeaderLoading/HeaderLoading.mdx +28 -0
  137. package/src/components/HeaderLoading/HeaderLoading.stories.ts +62 -0
  138. package/src/components/HeaderLoading/HeaderLoading.vue +45 -0
  139. package/src/components/HeaderLoading/tests/HeaderLoading.spec.ts +22 -0
  140. package/src/components/HeaderNavigationBar/HeaderNavigationBar.mdx +128 -0
  141. package/src/components/HeaderNavigationBar/HeaderNavigationBar.stories.ts +784 -0
  142. package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +194 -0
  143. package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +74 -0
  144. package/src/components/HeaderNavigationBar/HorizontalNavbar/config.ts +18 -0
  145. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.spec.ts +127 -0
  146. package/src/components/HeaderNavigationBar/types.ts +7 -0
  147. package/src/components/HeaderToolbar/HeaderToolbar.mdx +31 -0
  148. package/src/components/HeaderToolbar/HeaderToolbar.stories.ts +343 -0
  149. package/src/components/HeaderToolbar/HeaderToolbar.vue +487 -0
  150. package/src/components/HeaderToolbar/tests/HeaderToolbar.spec.ts +230 -0
  151. package/src/components/HeaderToolbar/types.d.ts +20 -0
  152. package/src/components/LangBtn/Accessibilite.mdx +14 -0
  153. package/src/components/LangBtn/Accessibilite.stories.ts +166 -0
  154. package/src/components/LangBtn/AccessibiliteItems.ts +132 -0
  155. package/src/components/LangBtn/LangBtn.mdx +1 -1
  156. package/src/components/LangBtn/LangBtn.stories.ts +125 -8
  157. package/src/components/LangBtn/constants/ExpertiseLevelEnum.ts +4 -0
  158. package/src/components/LangBtn/tests/LangBtn.spec.ts +1 -1
  159. package/src/components/LangBtn/tests/__snapshots__/LangBtn.spec.ts.snap +1 -1
  160. package/src/components/Logo/Logo.mdx +2 -2
  161. package/src/components/Logo/Logo.stories.ts +147 -1
  162. package/src/components/LogoBrandSection/LogoBrandSection.mdx +14 -0
  163. package/src/components/LogoBrandSection/LogoBrandSection.stories.ts +158 -0
  164. package/src/components/LogoBrandSection/LogoBrandSection.vue +312 -0
  165. package/src/components/LogoBrandSection/assets/ameli-pro.svg +1 -0
  166. package/src/components/LogoBrandSection/assets/ameli.svg +1 -0
  167. package/src/components/LogoBrandSection/assets/cnam.svg +1 -0
  168. package/src/components/LogoBrandSection/assets/compte-ameli.svg +1 -0
  169. package/src/components/LogoBrandSection/dividerDimensionsMapping.ts +14 -0
  170. package/src/components/LogoBrandSection/locales.ts +14 -0
  171. package/src/components/LogoBrandSection/secondaryLogoMapping.ts +24 -0
  172. package/src/components/LogoBrandSection/tests/LogoBrandSection.spec.ts +365 -0
  173. package/src/components/LogoBrandSection/tests/__snapshots__/LogoBrandSection.spec.ts.snap +14 -0
  174. package/src/components/LogoBrandSection/types.ts +8 -0
  175. package/src/components/MaintenancePage/MaintenancePage.mdx +11 -0
  176. package/src/components/MaintenancePage/MaintenancePage.stories.ts +41 -0
  177. package/src/components/MaintenancePage/MaintenancePage.vue +25 -0
  178. package/src/components/MaintenancePage/assets/maintenance.svg +1 -0
  179. package/src/components/MaintenancePage/index.ts +3 -0
  180. package/src/components/MaintenancePage/locales.ts +5 -0
  181. package/src/components/MaintenancePage/tests/MaintenancePage.spec.ts +12 -0
  182. package/src/components/MaintenancePage/tests/__snapshots__/MaintenancePage.spec.ts.snap +3 -0
  183. package/src/components/NotFoundPage/NotFoundPage.mdx +19 -0
  184. package/src/components/NotFoundPage/NotFoundPage.stories.ts +76 -0
  185. package/src/components/NotFoundPage/NotFoundPage.vue +52 -0
  186. package/src/components/NotFoundPage/assets/not-found.svg +1 -0
  187. package/src/components/NotFoundPage/locales.ts +6 -0
  188. package/src/components/NotFoundPage/tests/NotFoundPage.spec.ts +38 -0
  189. package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +76 -0
  190. package/src/components/NotificationBar/Accessibilite.mdx +14 -0
  191. package/src/components/NotificationBar/Accessibilite.stories.ts +166 -0
  192. package/src/components/NotificationBar/AccessibiliteItems.ts +174 -0
  193. package/src/components/NotificationBar/NotificationBar.mdx +6 -6
  194. package/src/components/NotificationBar/NotificationBar.stories.ts +1 -1
  195. package/src/components/NotificationBar/NotificationBar.vue +2 -2
  196. package/src/components/NotificationBar/constants/ExpertiseLevelEnum.ts +4 -0
  197. package/src/components/NotificationBar/options.ts +1 -0
  198. package/src/components/NotificationBar/tests/NotificationBar.spec.ts +1 -1
  199. package/src/components/PageContainer/Accessibilite.mdx +14 -0
  200. package/src/components/PageContainer/Accessibilite.stories.ts +166 -0
  201. package/src/components/PageContainer/AccessibiliteItems.ts +52 -0
  202. package/src/components/PageContainer/PageContainer.mdx +1 -1
  203. package/src/components/PageContainer/PageContainer.stories.ts +86 -1
  204. package/src/components/PageContainer/constants/ExpertiseLevelEnum.ts +4 -0
  205. package/src/components/PhoneField/PhoneField.mdx +49 -0
  206. package/src/components/PhoneField/PhoneField.stories.ts +869 -0
  207. package/src/components/PhoneField/PhoneField.vue +230 -0
  208. package/src/components/PhoneField/indicatifs.ts +104 -0
  209. package/src/components/PhoneField/locales.ts +4 -0
  210. package/src/components/PhoneField/tests/PhoneField.spec.ts +179 -0
  211. package/src/components/SkipLink/Accessibilite.mdx +14 -0
  212. package/src/components/SkipLink/Accessibilite.stories.ts +167 -0
  213. package/src/components/SkipLink/AccessibiliteItems.ts +77 -0
  214. package/src/components/SkipLink/SkipLink.stories.ts +50 -1
  215. package/src/components/SkipLink/constants/ExpertiseLevelEnum.ts +4 -0
  216. package/src/components/SocialMediaLinks/SocialMediaLinks.mdx +33 -2
  217. package/src/components/SocialMediaLinks/SocialMediaLinks.stories.ts +38 -1
  218. package/src/components/SocialMediaLinks/tests/SocialMediaLinks.spec.ts +1 -1
  219. package/src/components/SocialMediaLinks/tests/__snapshots__/SocialMediaLinks.spec.ts.snap +2 -2
  220. package/src/components/SubHeader/SubHeader.mdx +31 -0
  221. package/src/components/SubHeader/SubHeader.stories.ts +1032 -0
  222. package/src/components/SubHeader/SubHeader.vue +185 -0
  223. package/src/components/SubHeader/config.ts +12 -0
  224. package/src/components/SubHeader/locales.ts +3 -0
  225. package/src/components/SubHeader/tests/SubHeader.spec.ts +144 -0
  226. package/src/components/UserMenuBtn/UserMenuBtn.mdx +35 -0
  227. package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +438 -0
  228. package/src/components/UserMenuBtn/UserMenuBtn.vue +105 -0
  229. package/src/components/UserMenuBtn/config.ts +24 -0
  230. package/src/components/UserMenuBtn/tests/UserMenuBtn.spec.ts +125 -0
  231. package/src/components/index.ts +33 -7
  232. package/src/composables/index.ts +8 -0
  233. package/src/composables/rules/tests/useFieldValidation.spec.ts +82 -0
  234. package/src/composables/rules/useFieldValidation.ts +53 -0
  235. package/src/composables/widthable/index.ts +29 -0
  236. package/src/composables/widthable/tests/widthable.spec.ts +52 -0
  237. package/src/designTokens/index.ts +2 -0
  238. package/src/designTokens/tokens/cnam/cnamDarkTheme.ts +5 -0
  239. package/src/designTokens/tokens/cnam/cnamLightTheme.ts +3 -2
  240. package/src/main.ts +3 -0
  241. package/src/modules.d.ts +4 -0
  242. package/src/services/index.ts +1 -0
  243. package/src/stories/Demarrer/Accueil.mdx +10 -0
  244. package/src/stories/Demarrer/Accueil.stories.ts +76 -0
  245. package/src/stories/Demarrer/PolitiqueDeConfidentialite.mdx +9 -0
  246. package/src/stories/Demarrer/PolitiqueDeConfidentialite.stories.ts +20 -0
  247. package/src/stories/Fondamentaux/Arrondis.mdx +24 -0
  248. package/src/stories/{Guidelines → Fondamentaux}/Colors.mdx +1 -1
  249. package/src/stories/Fondamentaux/Conteneurs.mdx +7 -0
  250. package/src/stories/Fondamentaux/CustomisationEtThemes.mdx +7 -0
  251. package/src/stories/Fondamentaux/Elevations.mdx +14 -0
  252. package/src/stories/Fondamentaux/Espacements.mdx +29 -0
  253. package/src/stories/{Guidelines → Fondamentaux}/Introduction.mdx +1 -1
  254. package/src/stories/Fondamentaux/StylesTypographiques.mdx +33 -0
  255. package/src/stories/Fondamentaux/Typographie.mdx +58 -0
  256. package/src/stories/GuideDuDev/CommentUtiliserLesRules.mdx +132 -0
  257. package/src/stories/GuideDuDev/moduleDeNotification.mdx +52 -48
  258. package/src/stories/GuideDuDev/vuetifyOptions.mdx +31 -28
  259. package/src/stories/{Fondamentaux → Guidelines}/Accessibilite/Accessibilite.mdx +1 -2
  260. package/src/stories/{Fondamentaux → Guidelines}/Accessibilite/Accessibilite.stories.ts +1 -1
  261. package/src/stories/{Fondamentaux → Guidelines}/EcoConception/Econception.stories.ts +2 -2
  262. package/src/utils/functions/throttleDisplayFn/tests/throttleDisplayFn.spec.ts +47 -0
  263. package/src/utils/functions/throttleDisplayFn/throttleDisplayFn.ts +26 -0
  264. package/src/utils/rules/exactLength/index.ts +33 -0
  265. package/src/utils/rules/exactLength/locales.ts +6 -0
  266. package/src/utils/rules/required/index.ts +25 -0
  267. package/src/utils/rules/required/locales.ts +5 -0
  268. package/src/utils/rules/required/ruleMessageHelper.ts +14 -0
  269. package/src/utils/rules/required/tests/index.spec.ts +47 -0
  270. package/src/utils/rules/required/tests/rulesMessageHelper.spec.ts +22 -0
  271. package/src/utils/rules/types.d.ts +15 -0
  272. package/src/components/Beta/beta.mdx +0 -5
  273. package/src/components/Customs/CustomInputSelect/CustomInputSelect.mdx +0 -42
  274. package/src/components/Customs/CustomInputSelect/CustomInputSelect.stories.ts +0 -154
  275. package/src/components/Customs/CustomSelect/CustomSelect.stories.ts +0 -182
  276. package/src/components/Customs/CustomSelect/tests/CustomSelect.spec.ts +0 -236
  277. package/src/components/Deprecated/deprecated.mdx +0 -5
  278. package/src/components/HeaderBar/HeaderComplexMenu/HeaderComplexMenu.stories.ts +0 -272
  279. package/src/components/HeaderBar/HeaderComplexMenu/HeaderMenuItem/HeaderMenuItem.stories.ts +0 -49
  280. package/src/components/HeaderBar/HeaderComplexMenu/HeaderMenuSection/HeaderMenuSection.stories.ts +0 -56
  281. package/src/components/HeaderBar/HeaderComplexMenu/HeaderSubMenu/HeaderSubMenu.stories.ts +0 -137
  282. package/src/components/HeaderBar/HeaderComplexMenu/tests/HeaderComplexMenu.spec.ts +0 -129
  283. package/src/components/HeaderBar/HeaderComplexMenu/tests/__snapshots__/HeaderComplexMenu.spec.ts.snap +0 -18
  284. package/src/stories/Guidelines/CustomisationEtThemes.mdx +0 -3
  285. package/src/stories/Guidelines/Typo.mdx +0 -53
  286. package/src/stories/Home/Accueil.mdx +0 -7
  287. package/src/stories/Home/PolitiqueDeConfidentialite.mdx +0 -4
  288. package/src/stories/Home/synapse.webp +0 -0
  289. /package/src/components/HeaderBar/{HeaderComplexMenu → HeaderBurgerMenu}/HeaderMenuItem/HeaderMenuItem.vue +0 -0
  290. /package/src/components/HeaderBar/{HeaderComplexMenu → HeaderBurgerMenu}/HeaderMenuItem/tests/HeaderMenuItem.spec.ts +0 -0
  291. /package/src/components/HeaderBar/{HeaderComplexMenu → HeaderBurgerMenu}/conts.ts +0 -0
  292. /package/src/components/HeaderBar/{HeaderComplexMenu → HeaderBurgerMenu}/locals.ts +0 -0
  293. /package/src/components/HeaderBar/{HeaderComplexMenu → HeaderBurgerMenu}/tests/useHandleSubMenus.spec.ts +0 -0
  294. /package/src/components/HeaderBar/{HeaderComplexMenu → HeaderBurgerMenu}/useHandleSubMenus.ts +0 -0
  295. /package/src/components/Logo/{types.d.ts → types.ts} +0 -0
  296. /package/src/stories/{Fondamentaux → Guidelines}/Accessibilite/AccessibiliteItems.ts +0 -0
  297. /package/src/stories/{Fondamentaux → Guidelines}/Accessibilite/constants/ExpertiseLevelEnum.ts +0 -0
  298. /package/src/stories/{Fondamentaux → Guidelines}/Accessibilite/constants/RGAALevelEnum.ts +0 -0
  299. /package/src/stories/{Fondamentaux → Guidelines}/EcoConception/EcoConception.mdx +0 -0
  300. /package/src/stories/{Fondamentaux → Guidelines}/EcoConception/ecoDesignItems.ts +0 -0
@@ -0,0 +1,1089 @@
1
+ import HeaderToolbar from '@/components/HeaderToolbar/HeaderToolbar.vue'
2
+ import { mdiMapMarker } from '@mdi/js'
3
+ import type { Meta, StoryObj } from '@storybook/vue3'
4
+ import { VBtn } from 'vuetify/components'
5
+ import HeaderBar from '../HeaderBar.vue'
6
+ import HeaderBurgerMenu from './HeaderBurgerMenu.vue'
7
+ import HeaderMenuItem from './HeaderMenuItem/HeaderMenuItem.vue'
8
+ import HeaderMenuSection from './HeaderMenuSection/HeaderMenuSection.vue'
9
+ import HeaderSubMenu from './HeaderSubMenu/HeaderSubMenu.vue'
10
+ import { fn } from '@storybook/test'
11
+
12
+ const meta = {
13
+ title: 'Composants/Structure/HeaderBar/HeaderBurgerMenu',
14
+ component: HeaderBurgerMenu,
15
+ tags: ['dev'],
16
+ parameters: {
17
+ layout: 'fullscreen',
18
+ },
19
+ argTypes: {
20
+ 'modelValue': {
21
+ table: {
22
+ category: 'props',
23
+ type: {
24
+ summary: 'boolean',
25
+ },
26
+ defaultValue: {
27
+ summary: 'false',
28
+ },
29
+ },
30
+ control: { type: 'boolean' },
31
+ description: 'Avec `v-model` Permet de gérer l\'ouverture et la fermeture du menu.',
32
+ },
33
+ 'onUpdate:modelValue': {
34
+ action: 'update:modelValue',
35
+ table: {
36
+ category: 'events',
37
+ type: {
38
+ summary: 'boolean',
39
+ },
40
+ },
41
+ description: 'Évènement émit lors de l\'ouverture ou la fermeture du menu.',
42
+ },
43
+ 'default': {
44
+ control: { type: 'text' },
45
+ table: {
46
+ type: {
47
+ summary: '{}',
48
+ },
49
+ },
50
+ description: 'Le contenu du menu, à construire avec les composants `HeaderMenuSection` et `HeaderMenuItem`.',
51
+ },
52
+ },
53
+ } satisfies Meta<typeof HeaderBurgerMenu>
54
+
55
+ export default meta
56
+
57
+ type Story = StoryObj<typeof meta>
58
+
59
+ export const Default: Story = {
60
+ args: {
61
+ 'default': 'Menu content',
62
+ 'onUpdate:modelValue': fn(),
63
+ },
64
+ render: (args) => {
65
+ return {
66
+ components: { HeaderBurgerMenu, HeaderBar },
67
+ setup() {
68
+ return { args }
69
+ },
70
+ template: `
71
+ <HeaderBar>
72
+ <template #menu>
73
+ <HeaderBurgerMenu
74
+ v-model="args.modelValue"
75
+ @update:modelValue="args['onUpdate:modelValue']"
76
+ >
77
+ {{ args.default }}
78
+ </HeaderBurgerMenu>
79
+ </template>
80
+ </HeaderBar>
81
+ `,
82
+ }
83
+ },
84
+ parameters: {
85
+ sourceCode: [
86
+ {
87
+ name: 'Template',
88
+ code: `
89
+ <template>
90
+ <HeaderBar>
91
+ <template #menu>
92
+ <HeaderBurgerMenu>
93
+ <p>lorem ipsum</p>
94
+ </HeaderBurgerMenu>
95
+ </template>
96
+ </HeaderBar>
97
+ </template>
98
+ `,
99
+ },
100
+ {
101
+ name: 'Script',
102
+ code: `
103
+ <script setup lang="ts">
104
+ import { HeaderBurgerMenu, HeaderBar } from '@cnamts/synapse'
105
+ </script>
106
+ `,
107
+ },
108
+ ],
109
+ },
110
+ }
111
+
112
+ export const WithAnItem: Story = {
113
+ args: {
114
+ 'onUpdate:modelValue': fn(),
115
+ },
116
+ render: (args) => {
117
+ return {
118
+ components: { HeaderBurgerMenu, HeaderBar, HeaderMenuItem, HeaderMenuSection },
119
+ setup() {
120
+ return { args }
121
+ },
122
+ template: `
123
+ <HeaderBar>
124
+ <template #menu>
125
+ <HeaderBurgerMenu
126
+ v-model="args.modelValue"
127
+ @update:modelValue="args['onUpdate:modelValue']"
128
+ >
129
+ <HeaderMenuSection>
130
+ <HeaderMenuItem>
131
+ <a href="">Item 1</a>
132
+ </HeaderMenuItem>
133
+ </HeaderMenuSection>
134
+ </HeaderBurgerMenu>
135
+ </template>
136
+ </HeaderBar>
137
+ `,
138
+ }
139
+ },
140
+ parameters: {
141
+ sourceCode: [
142
+ {
143
+ name: 'Template',
144
+ code: `
145
+ <template>
146
+ <HeaderBar>
147
+ <template #menu>
148
+ <HeaderBurgerMenu>
149
+ <HeaderMenuSection>
150
+ <HeaderMenuItem>
151
+ <a href="">Item 1</a>
152
+ </HeaderMenuItem>
153
+ </HeaderMenuSection>
154
+ </HeaderBurgerMenu>
155
+ </template>
156
+ </HeaderBar>
157
+ </template>
158
+ `,
159
+ },
160
+ {
161
+ name: 'Script',
162
+ code: `
163
+ <script setup lang="ts">
164
+ import { HeaderBurgerMenu, HeaderBar, HeaderMenuSection, HeaderMenuItem } from '@cnamts/synapse'
165
+ </script>
166
+ `,
167
+ },
168
+ ],
169
+ },
170
+ }
171
+
172
+ export const Populated: Story = {
173
+ args: {
174
+ 'onUpdate:modelValue': fn(),
175
+ },
176
+ render: (args) => {
177
+ return {
178
+ components: {
179
+ HeaderMenuItem,
180
+ HeaderBurgerMenu,
181
+ HeaderBar,
182
+ HeaderSubMenu,
183
+ HeaderMenuSection,
184
+ VBtn,
185
+ },
186
+ setup() {
187
+ return { args }
188
+ },
189
+ template: `
190
+ <HeaderBar>
191
+ <template #menu>
192
+ <HeaderBurgerMenu
193
+ v-model="args.modelValue"
194
+ @update:modelValue="args['onUpdate:modelValue']"
195
+ >
196
+ <HeaderMenuSection>
197
+ <template #title>
198
+ Section 1
199
+ </template>
200
+ <HeaderMenuItem>
201
+ <a href="">Item 1</a>
202
+ </HeaderMenuItem>
203
+ <HeaderMenuItem>
204
+ <a href="">Item 2</a>
205
+ </HeaderMenuItem>
206
+ <headerMenuItem>
207
+ <HeaderSubMenu>
208
+ <template #title>
209
+ Menu de premier niveau 1
210
+ </template>
211
+ <HeaderMenuSection>
212
+ <template #title>
213
+ Section
214
+ </template>
215
+ <HeaderMenuItem>
216
+ <a href="">Item</a>
217
+ </HeaderMenuItem>
218
+ <HeaderSubMenu>
219
+ <template #title>
220
+ Menu de deuxième niveau 1
221
+ </template>
222
+ <HeaderMenuItem>
223
+ <a href="">Item</a>
224
+ </HeaderMenuItem>
225
+ </HeaderSubMenu>
226
+ </HeaderMenuSection>
227
+ </HeaderSubMenu>
228
+ </headerMenuItem>
229
+ </HeaderMenuSection>
230
+ <HeaderMenuSection>
231
+ <template #title>
232
+ Section 2
233
+ </template>
234
+ <headerMenuItem>
235
+ <HeaderSubMenu>
236
+ <template #title>
237
+ Menu de premier niveau 2
238
+ </template>
239
+ <HeaderMenuItem>
240
+ <a href="">Item 1</a>
241
+ </HeaderMenuItem>
242
+ <HeaderMenuItem>
243
+ <HeaderSubMenu>
244
+ <template #title>
245
+ Menu de deuxième niveau 2
246
+ </template>
247
+ <HeaderMenuItem>
248
+ <a href="">Item 1</a>
249
+ </HeaderMenuItem>
250
+ </HeaderSubMenu>
251
+ </HeaderMenuItem>
252
+ <HeaderMenuItem>
253
+ <HeaderSubMenu>
254
+ <template #title>
255
+ Menu de deuxième niveau 3
256
+ </template>
257
+ <HeaderMenuSection>
258
+ <template #title>
259
+ Section 1
260
+ </template>
261
+ <HeaderMenuItem>
262
+ <a href="">Item 1</a>
263
+ </HeaderMenuItem>
264
+ </HeaderMenuSection>
265
+ </HeaderSubMenu>
266
+ </HeaderMenuItem>
267
+ </HeaderSubMenu>
268
+ </headerMenuItem>
269
+ <HeaderMenuItem>
270
+ <a href="">Item 3</a>
271
+ </HeaderMenuItem>
272
+ </HeaderMenuSection>
273
+ <div class="pa-4">
274
+ <p class="font-weight-bold">Veillez vous connecter</p>
275
+ <VBtn variant="tonal" class="mt-4 font-weight-medium" color="primary">Je me connecte</VBtn>
276
+ </div>
277
+ </HeaderBurgerMenu>
278
+ </template>
279
+ </HeaderBar>
280
+ `,
281
+ }
282
+ },
283
+ parameters: {
284
+ sourceCode: [
285
+ {
286
+ name: 'Template',
287
+ code: `
288
+ <template>
289
+ <HeaderBar>
290
+ <template #menu>
291
+ <HeaderBurgerMenu>
292
+ <HeaderMenuSection>
293
+ <template #title>
294
+ Section 1
295
+ </template>
296
+ <HeaderMenuItem>
297
+ <a href="">Item 1</a>
298
+ </HeaderMenuItem>
299
+ <HeaderMenuItem>
300
+ <a href="">Item 2</a>
301
+ </HeaderMenuItem>
302
+ <headerMenuItem>
303
+ <HeaderSubMenu>
304
+ <template #title>
305
+ Menu de premier niveau 1
306
+ </template>
307
+ <HeaderMenuSection>
308
+ <template #title>
309
+ Section
310
+ </template>
311
+ <HeaderMenuItem>
312
+ <a href="">Item</a>
313
+ </HeaderMenuItem>
314
+ <HeaderSubMenu>
315
+ <template #title>
316
+ Menu de deuxième niveau 1
317
+ </template>
318
+ <HeaderMenuItem>
319
+ <a href="">Item</a>
320
+ </HeaderMenuItem>
321
+ </HeaderSubMenu>
322
+ </HeaderMenuSection>
323
+ </HeaderSubMenu>
324
+ </headerMenuItem>
325
+ </HeaderMenuSection>
326
+ <HeaderMenuSection>
327
+ <template #title>
328
+ Section 2
329
+ </template>
330
+ <headerMenuItem>
331
+ <HeaderSubMenu>
332
+ <template #title>
333
+ Menu de premier niveau 2
334
+ </template>
335
+ <HeaderMenuItem>
336
+ <a href="">Item 1</a>
337
+ </HeaderMenuItem>
338
+ <HeaderMenuItem>
339
+ <HeaderSubMenu>
340
+ <template #title>
341
+ Menu de deuxième niveau 2
342
+ </template>
343
+ <HeaderMenuItem>
344
+ <a href="">Item 1</a>
345
+ </HeaderMenuItem>
346
+ </HeaderSubMenu>
347
+ </HeaderMenuItem>
348
+ <HeaderMenuItem>
349
+ <HeaderSubMenu>
350
+ <template #title>
351
+ Menu de deuxième niveau 3
352
+ </template>
353
+ <HeaderMenuSection>
354
+ <template #title>
355
+ Section 1
356
+ </template>
357
+ <HeaderMenuItem>
358
+ <a href="">Item 1</a>
359
+ </HeaderMenuItem>
360
+ </HeaderMenuSection>
361
+ </HeaderSubMenu>
362
+ </HeaderMenuItem>
363
+ </HeaderSubMenu>
364
+ </headerMenuItem>
365
+ <HeaderMenuItem>
366
+ <a href="">Item 3</a>
367
+ </HeaderMenuItem>
368
+ </HeaderMenuSection>
369
+ <div class="pa-4">
370
+ <p class="font-weight-bold">Veillez vous connecter</p>
371
+ <VBtn variant="tonal" class="mt-4 font-weight-medium" color="primary">Je me connecte</VBtn>
372
+ </div>
373
+ </HeaderBurgerMenu>
374
+ </template>
375
+ </HeaderBar>
376
+ </template>
377
+ `,
378
+ },
379
+ {
380
+ name: 'Script',
381
+ code: `
382
+ <script setup lang="ts">
383
+ import { HeaderMenuItem, HeaderBurgerMenu, HeaderBar, HeaderSubMenu, HeaderMenuSection } from '@cnamts/synapse'
384
+ import { VBtn } from 'vuetify/components'
385
+ </script>
386
+ `,
387
+ },
388
+ ],
389
+ },
390
+ }
391
+
392
+ export const WithScroll: Story = {
393
+ args: {
394
+ 'onUpdate:modelValue': fn(),
395
+ },
396
+ render: (args) => {
397
+ return {
398
+ components: { HeaderBurgerMenu, HeaderBar, HeaderMenuSection, HeaderSubMenu, HeaderMenuItem, HeaderToolbar },
399
+ setup() {
400
+ return { args }
401
+ },
402
+ template: `
403
+ <div class="position: relative">
404
+ <HeaderToolbar />
405
+ <HeaderBar>
406
+ <template #menu>
407
+ <HeaderBurgerMenu
408
+ v-model="args.modelValue"
409
+ @update:modelValue="args['onUpdate:modelValue']"
410
+ >
411
+ <HeaderMenuSection>
412
+ <HeaderMenuItem>
413
+ <HeaderSubMenu>
414
+ <template #title>
415
+ Sous menu
416
+ </template>
417
+ <HeaderMenuSection>
418
+ <HeaderMenuItem>
419
+ <a href="">Item 1</a>
420
+ </HeaderMenuItem>
421
+ </HeaderMenuSection>
422
+ </HeaderSubMenu>
423
+ </HeaderMenuItem>
424
+ </HeaderMenuSection>
425
+ </HeaderBurgerMenu>
426
+ </template>
427
+ </HeaderBar>
428
+ <div
429
+ style="height: 200vh; background-color: #f5f5f5; margin: auto; margin-top: 2rem; max-width: 1200px; padding: 1em;"
430
+ >Contenu de la page</div>
431
+ </div>`,
432
+ }
433
+ },
434
+ parameters: {
435
+ sourceCode: [
436
+ {
437
+ name: 'Template',
438
+ code: `
439
+ <template>
440
+ <HeaderToolbar />
441
+ <HeaderBar>
442
+ <template #menu>
443
+ <HeaderBurgerMenu>
444
+ <HeaderMenuSection>
445
+ <HeaderMenuItem>
446
+ <HeaderSubMenu>
447
+ <template #title>
448
+ Sous menu
449
+ </template>
450
+ <HeaderMenuSection>
451
+ <HeaderMenuItem>
452
+ <a href="">Item 1</a>
453
+ </HeaderMenuItem>
454
+ </HeaderMenuSection>
455
+ </HeaderSubMenu>
456
+ </HeaderMenuItem>
457
+ </HeaderMenuSection>
458
+ </HeaderBurgerMenu>
459
+ </template>
460
+ </HeaderBar>
461
+ <div
462
+ style="height: 200vh; background-color: #f5f5f5; margin: auto; margin-top: 2rem; max-width: 1200px; padding: 1em;"
463
+ >Contenu de la page</div>
464
+ </template>
465
+ `,
466
+ },
467
+ {
468
+ name: 'Script',
469
+ code: `
470
+ <script setup lang="ts">
471
+ import { HeaderBurgerMenu, HeaderBar, HeaderMenuSection, HeaderMenuItem, HeaderSubMenu } from '@cnamts/synapse'
472
+ </script>
473
+ `,
474
+ },
475
+ ],
476
+ },
477
+ }
478
+
479
+ export const Generated: Story = {
480
+ args: {
481
+ 'onUpdate:modelValue': fn(),
482
+ },
483
+ render: (args) => {
484
+ return {
485
+ components: {
486
+ HeaderBurgerMenu,
487
+ HeaderBar,
488
+ HeaderMenuSection,
489
+ HeaderSubMenu,
490
+ HeaderMenuItem,
491
+ },
492
+ setup() {
493
+ const menu = [
494
+ {
495
+ title: 'Vous informer',
496
+ items: [
497
+ {
498
+ title: 'Actualités',
499
+ href: 'https://www.ameli.fr/assure/actualites',
500
+ },
501
+ {
502
+ subMenuTitle: 'Droits et démarches',
503
+ subMenuSubtitle: 'selon votre situation',
504
+ sections: [
505
+ {
506
+ title: undefined,
507
+ items: [
508
+ {
509
+ title: 'Les essentiels de l’assuré',
510
+ href: 'https://www.ameli.fr/assure/droits-demarches/principes',
511
+ },
512
+ {
513
+ title: 'Parentalité, couple',
514
+ href: 'https://www.ameli.fr/assure/droits-demarches/famille',
515
+ },
516
+ {
517
+ title: 'Fin de vie, deuil',
518
+ href: 'https://www.ameli.fr/assure/droits-demarches/fin-de-vie-deuil',
519
+ },
520
+ {
521
+ title: 'Etudes et stages',
522
+ href: 'https://www.ameli.fr/assure/droits-demarches/etudes-stages',
523
+ },
524
+ {
525
+ title: 'Vie professionnelle, retraite',
526
+ href: 'https://www.ameli.fr/assure/droits-demarches/vie-professionnelle-retraite',
527
+ },
528
+ {
529
+ title: 'Difficultés d\'accès aux droits et aux soins',
530
+ href: 'https://www.ameli.fr/assure/droits-demarches/difficultes-acces-droits-soins',
531
+ },
532
+ {
533
+ title: 'Maladie, accident, hospitalisation',
534
+ href: 'https://www.ameli.fr/assure/droits-demarches/maladie-accident-hospitalisation',
535
+ },
536
+ {
537
+ title: 'invalidité, handicap',
538
+ href: 'https://www.ameli.fr/assure/droits-demarches/invalidite-handicap',
539
+ },
540
+ {
541
+ title: 'situations particulières',
542
+ href: 'https://www.ameli.fr/assure/droits-demarches/situations-particulieres',
543
+ },
544
+ {
545
+ title: 'réclamation, médiation, recours',
546
+ href: 'https://www.ameli.fr/assure/droits-demarches/reclamation-mediation-voies-de-recours',
547
+ },
548
+ {
549
+ title: 'Europe, international',
550
+ href: 'https://www.ameli.fr/assure/droits-demarches/europe-international',
551
+ },
552
+ ],
553
+ },
554
+ ],
555
+ },
556
+ {
557
+ subMenuTitle: 'Remboursements',
558
+ subMenuSubtitle: 'prestations et aides',
559
+ sections: [
560
+ {
561
+ title: undefined,
562
+ items: [
563
+ {
564
+ title: 'Ce qui est remboursé',
565
+ href: 'https://www.ameli.fr/assure/remboursements/rembourse',
566
+ },
567
+ {
568
+ title: 'ce qui reste à votre charge',
569
+ href: 'https://www.ameli.fr/assure/remboursements/reste-charge',
570
+ },
571
+ {
572
+ title: 'Être bien remboursé',
573
+ href: 'https://www.ameli.fr/assure/remboursements/etre-bien-rembourse',
574
+ },
575
+ {
576
+ title:
577
+ 'Indemnités journalières maladie, maternité, paternité',
578
+ href: 'https://www.ameli.fr/assure/remboursements/indemnites-journalieres-maladie-maternite-paternite',
579
+ },
580
+ {
581
+ title:
582
+ 'Accident du travail : prise en charge et indemnités journalières',
583
+ href: 'https://www.ameli.fr/assure/remboursements/accident-travail',
584
+ },
585
+ {
586
+ title:
587
+ 'Maladie professionnelle : prise en charge et indemnités journalières',
588
+ href: 'https://www.ameli.fr/assure/remboursements/maladie-professionnelle',
589
+ },
590
+ {
591
+ title: 'Pensions, allocations et rentes',
592
+ href: 'https://www.ameli.fr/assure/remboursements/pensions-allocations-rentes',
593
+ },
594
+ {
595
+ title: 'Incapacité permanente',
596
+ href: 'https://www.ameli.fr/assure/remboursements/incapacite-permanente',
597
+ },
598
+ {
599
+ title:
600
+ 'Complémentaire santé solidaire : vous n\'avez rien à payer dans la plupart des cas ',
601
+ href: 'https://www.ameli.fr/assure/remboursements/cmu-aides-financieres/complementaire-sante-solidaire',
602
+ },
603
+ {
604
+ title: 'Aide médicale de l\'État et soins urgents',
605
+ href: 'https://www.ameli.fr/assure/remboursements/aide-medicale-etat-soins-urgents',
606
+ },
607
+ {
608
+ title: 'Compte ameli, mode d\'emploi',
609
+ href: 'https://www.ameli.fr/assure/remboursements/suivre-remboursements',
610
+ },
611
+ ],
612
+ },
613
+ ],
614
+ },
615
+ {
616
+ subMenuTitle: 'Maladies et prévention',
617
+ sections: [
618
+ {
619
+ title: undefined,
620
+ items: [
621
+ {
622
+ title: 'Tous les thèmes de santé',
623
+ href: 'https://www.ameli.fr/assure/sante/themes',
624
+ },
625
+ {
626
+ title: 'L\'Assurance Maladie vous accompagne',
627
+ href: 'https://www.ameli.fr/assure/remboursements/reste-charge',
628
+ },
629
+ {
630
+ title: 'Mon espace santé',
631
+ href: 'https://www.ameli.fr/assure/sante/mon-espace-sante',
632
+ },
633
+ {
634
+ title: 'Mon bilan prévention',
635
+ href: 'https://www.ameli.fr/assure/sante/mon-bilan-prevention',
636
+ },
637
+ {
638
+ title: 'Réagir en cas d\'urgence ',
639
+ href: 'https://www.ameli.fr/assure/sante/urgence',
640
+ },
641
+ {
642
+ title: 'Accomplir les bons gestes ',
643
+ href: 'https://www.ameli.fr/assure/sante/bons-gestes',
644
+ },
645
+ {
646
+ title: 'Médicaments et vaccins',
647
+ href: 'https://www.ameli.fr/assure/sante/medicaments',
648
+ },
649
+ {
650
+ title: 'Déroulement d\'un examen',
651
+ href: 'https://www.ameli.fr/assure/sante/examen',
652
+ },
653
+ {
654
+ title:
655
+ 'Certificat médical : dans quels cas et pour qui est-il obligatoire ?',
656
+ href: 'https://www.ameli.fr/assure/sante/certificat-medical-quand-et-pour-qui',
657
+ },
658
+ {
659
+ title: 'Devenir parent',
660
+ href: 'https://www.ameli.fr/assure/sante/devenir-parent',
661
+ },
662
+ {
663
+ title: 'Enfants',
664
+ href: 'https://www.ameli.fr/assure/sante/enfants',
665
+ },
666
+ {
667
+ title: 'Jeunes 16-25 ans',
668
+ href: 'https://www.ameli.fr/assure/sante/jeunes-16-25-ans',
669
+ },
670
+ {
671
+ title: 'Seniors',
672
+ href: 'https://www.ameli.fr/assure/sante/seniors',
673
+ },
674
+ {
675
+ title: 'Télésanté, la santé à distance',
676
+ href: 'https://www.ameli.fr/assure/sante/telesante',
677
+ },
678
+ ],
679
+ },
680
+ ],
681
+ },
682
+ ],
683
+ },
684
+ {
685
+ title: 'Besoin d\'aide',
686
+ items: [
687
+ {
688
+ title: 'Contacter l\'Assurance Maladie',
689
+ subtitle:
690
+ 'obtenir une attestation, envoyer une feuille de soins, contacter sa caisse, etc.',
691
+ href: 'https://www.ameli.fr/assure/adresses-contacts',
692
+ },
693
+ {
694
+ title: 'Trouver un professionnel de santé',
695
+ subtitle: 'médecins, infirmiers...',
696
+ href: 'https://www.ameli.fr/assure/adresses-contacts',
697
+ },
698
+ {
699
+ title: 'Télécharger un formulaire (ex: cerfa)',
700
+ href: 'https://www.ameli.fr/assure/droits-demarches/formulaires',
701
+ },
702
+ {
703
+ title: 'Consulter le forum',
704
+ href: 'https://forum-assures.ameli.fr/',
705
+ },
706
+ {
707
+ title: 'Sourds et malentendants',
708
+ href: 'https://elioz.fr/elioz-connect/annuaire/assurance-maladie-annuaire/',
709
+ },
710
+ ],
711
+ },
712
+ ]
713
+ return { args, menu, marker: mdiMapMarker }
714
+ },
715
+ template: `
716
+ <HeaderBar>
717
+ <template #menu>
718
+ <HeaderBurgerMenu
719
+ v-model="args.modelValue"
720
+ @update:modelValue="args['onUpdate:modelValue']"
721
+ >
722
+ <HeaderMenuSection v-for="section in menu" :key="section.title">
723
+ <template #title>
724
+ {{ section.title }}
725
+ </template>
726
+ <HeaderMenuItem v-for="item in section.items" :key="item.title">
727
+ <HeaderSubMenu v-if="item.subMenuTitle">
728
+ <template #title>
729
+ {{ item.subMenuTitle }}
730
+ <em v-if="item.subMenuSubtitle" style="font-style: normal; color: #757777;">{{ item.subMenuSubtitle }}</em>
731
+ </template>
732
+ <HeaderMenuSection v-for="subSection in item.sections" :key="subSection.title">
733
+ <template #title v-if="subSection.title">
734
+ {{ subSection.title }}
735
+ </template>
736
+ <HeaderMenuItem v-for="subItem in subSection.items" :key="subItem.title">
737
+ <a :href="subItem.href">{{ subItem.title }}</a>
738
+ </HeaderMenuItem>
739
+ </HeaderMenuSection>
740
+ </HeaderSubMenu>
741
+ <a v-else :href="item.href">
742
+ {{ item.title }}
743
+ <em v-if="item.subtitle" style="font-style: normal; color: #757777;">{{ item.subtitle }}</em>
744
+ </a>
745
+ </HeaderMenuItem>
746
+ </HeaderMenuSection>
747
+ <h2 class="border-b-sm mb-2" style="font-size: 1.1rem; padding: 40px 16px 8px 20px;">Votre caisse</h2>
748
+ <div style="padding: 16px 50px 16px 20px;">
749
+ <div class="d-flex align-center ga-2 font-weight-bold">
750
+ <VIcon aria-label="Localisation" role="img" aria-hidden="false" color="primary">{{marker}}</VIcon>
751
+ <p>Vous n'avez pas sélectionné votre caisse</p>
752
+ </div>
753
+ <VBtn class="mt-3 mb-4 font-weight-bold text-capitalize" base-color="primary" density="comfortable" flat height="37">Sélectionner</VBtn>
754
+ <p class="mb-8">Les pages d'ameli seront alors enrichies des informations locales de votre caisse (contacts, événements régionaux, etc.) </p>
755
+ </div>
756
+ </HeaderBurgerMenu>
757
+ </template>
758
+ </HeaderBar>
759
+ `,
760
+ }
761
+ },
762
+ parameters: {
763
+ sourceCode: [
764
+ {
765
+ name: 'Template',
766
+ code: `
767
+ <template>
768
+ <HeaderBar>
769
+ <template #menu>
770
+ <HeaderBurgerMenu>
771
+ <HeaderMenuSection
772
+ v-for="section in menu"
773
+ :key="section.title"
774
+ >
775
+ <template #title>
776
+ {{ section.title }}
777
+ </template>
778
+ <HeaderMenuItem
779
+ v-for="item in section.items"
780
+ :key="item.title"
781
+ >
782
+ <HeaderSubMenu v-if="'subMenuTitle' in item">
783
+ <template #title>
784
+ {{ item.subMenuTitle }}
785
+ <em
786
+ v-if="item.subMenuSubtitle"
787
+ style="font-style: normal; color: #757777;"
788
+ >{{ item.subMenuSubtitle }}</em>
789
+ </template>
790
+ <HeaderMenuSection
791
+ v-for="subSection in item.sections"
792
+ :key="subSection.title"
793
+ >
794
+ <template #title>
795
+ {{ subSection.title }}
796
+ </template>
797
+ <HeaderMenuItem
798
+ v-for="subItem in subSection.items"
799
+ :key="subItem.title"
800
+ >
801
+ <a :href="subItem.href">{{ subItem.title }}</a>
802
+ </HeaderMenuItem>
803
+ </HeaderMenuSection>
804
+ </HeaderSubMenu>
805
+ <a
806
+ v-else
807
+ :href="item.href"
808
+ >
809
+ {{ item.title }}
810
+ <em
811
+ v-if="'subtitle' in item"
812
+ style="font-style: normal; color: #757777;"
813
+ >{{ item.subtitle }}</em>
814
+ </a>
815
+ </HeaderMenuItem>
816
+ </HeaderMenuSection>
817
+ <h2
818
+ class="border-b-sm mb-2"
819
+ style="font-size: 1.1rem; padding: 40px 16px 8px 20px;"
820
+ >
821
+ Votre caisse
822
+ </h2>
823
+ <div style="padding: 16px 50px 16px 20px;">
824
+ <div class="d-flex align-center ga-2 font-weight-bold">
825
+ <VIcon
826
+ aria-label="Localisation"
827
+ role="img"
828
+ aria-hidden="false"
829
+ color="primary"
830
+ >
831
+ {{ marker }}
832
+ </VIcon>
833
+ <p>Vous n'avez pas sélectionné votre caisse</p>
834
+ </div>
835
+ <VBtn
836
+ class="mt-3 mb-4 font-weight-bold text-capitalize"
837
+ base-color="primary"
838
+ density="comfortable"
839
+ flat
840
+ height="37"
841
+ >
842
+ Sélectionner
843
+ </VBtn>
844
+ <p class="mb-8">
845
+ Les pages d'ameli seront alors enrichies des informations locales de votre caisse (contacts, événements régionaux, etc.)
846
+ </p>
847
+ </div>
848
+ </HeaderBurgerMenu>
849
+ </template>
850
+ </HeaderBar>
851
+ </template>
852
+ `,
853
+ },
854
+ {
855
+ name: 'Script',
856
+ code: `
857
+ <script setup lang="ts">
858
+ import { HeaderBurgerMenu, HeaderBar, HeaderMenuSection, HeaderSubMenu, HeaderMenuItem } from '@cnamts/synapse'
859
+ import { VBtn, VIcon } from 'vuetify/components'
860
+ import { mdiMapMarker } from '@mdi/js'
861
+
862
+ const marker = mdiMapMarker
863
+
864
+ const menu = [
865
+ {
866
+ title: 'Vous informer',
867
+ items: [
868
+ {
869
+ title: 'Actualités',
870
+ href: 'https://www.ameli.fr/assure/actualites',
871
+ },
872
+ {
873
+ subMenuTitle: 'Droits et démarches',
874
+ subMenuSubtitle: 'selon votre situation',
875
+ sections: [
876
+ {
877
+ title: undefined,
878
+ items: [
879
+ {
880
+ title: 'Les essentiels de l\\’assuré',
881
+ href: 'https://www.ameli.fr/assure/droits-demarches/principes',
882
+ },
883
+ {
884
+ title: 'Parentalité, couple',
885
+ href: 'https://www.ameli.fr/assure/droits-demarches/famille',
886
+ },
887
+ {
888
+ title: 'Fin de vie, deuil',
889
+ href: 'https://www.ameli.fr/assure/droits-demarches/fin-de-vie-deuil',
890
+ },
891
+ {
892
+ title: 'Etudes et stages',
893
+ href: 'https://www.ameli.fr/assure/droits-demarches/etudes-stages',
894
+ },
895
+ {
896
+ title: 'Vie professionnelle, retraite',
897
+ href: 'https://www.ameli.fr/assure/droits-demarches/vie-professionnelle-retraite',
898
+ },
899
+ {
900
+ title: 'Difficultés d\\'accès aux droits et aux soins',
901
+ href: 'https://www.ameli.fr/assure/droits-demarches/difficultes-acces-droits-soins',
902
+ },
903
+ {
904
+ title: 'Maladie, accident, hospitalisation',
905
+ href: 'https://www.ameli.fr/assure/droits-demarches/maladie-accident-hospitalisation',
906
+ },
907
+ {
908
+ title: 'invalidité, handicap',
909
+ href: 'https://www.ameli.fr/assure/droits-demarches/invalidite-handicap',
910
+ },
911
+ {
912
+ title: 'situations particulières',
913
+ href: 'https://www.ameli.fr/assure/droits-demarches/situations-particulieres',
914
+ },
915
+ {
916
+ title: 'réclamation, médiation, recours',
917
+ href: 'https://www.ameli.fr/assure/droits-demarches/reclamation-mediation-voies-de-recours',
918
+ },
919
+ {
920
+ title: 'Europe, international',
921
+ href: 'https://www.ameli.fr/assure/droits-demarches/europe-international',
922
+ },
923
+ ],
924
+ },
925
+ ],
926
+ },
927
+ {
928
+ subMenuTitle: 'Remboursements',
929
+ subMenuSubtitle: 'prestations et aides',
930
+ sections: [
931
+ {
932
+ title: undefined,
933
+ items: [
934
+ {
935
+ title: 'Ce qui est remboursé',
936
+ href: 'https://www.ameli.fr/assure/remboursements/rembourse',
937
+ },
938
+ {
939
+ title: 'ce qui reste à votre charge',
940
+ href: 'https://www.ameli.fr/assure/remboursements/reste-charge',
941
+ },
942
+ {
943
+ title: 'Être bien remboursé',
944
+ href: 'https://www.ameli.fr/assure/remboursements/etre-bien-rembourse',
945
+ },
946
+ {
947
+ title:
948
+ 'Indemnités journalières maladie, maternité, paternité',
949
+ href: 'https://www.ameli.fr/assure/remboursements/indemnites-journalieres-maladie-maternite-paternite',
950
+ },
951
+ {
952
+ title:
953
+ 'Accident du travail : prise en charge et indemnités journalières',
954
+ href: 'https://www.ameli.fr/assure/remboursements/accident-travail',
955
+ },
956
+ {
957
+ title:
958
+ 'Maladie professionnelle : prise en charge et indemnités journalières',
959
+ href: 'https://www.ameli.fr/assure/remboursements/maladie-professionnelle',
960
+ },
961
+ {
962
+ title: 'Pensions, allocations et rentes',
963
+ href: 'https://www.ameli.fr/assure/remboursements/pensions-allocations-rentes',
964
+ },
965
+ {
966
+ title: 'Incapacité permanente',
967
+ href: 'https://www.ameli.fr/assure/remboursements/incapacite-permanente',
968
+ },
969
+ {
970
+ title:
971
+ 'Complémentaire santé solidaire : vous n\\'avez rien à payer dans la plupart des cas ',
972
+ href: 'https://www.ameli.fr/assure/remboursements/cmu-aides-financieres/complementaire-sante-solidaire',
973
+ },
974
+ {
975
+ title: 'Aide médicale de l\\'État et soins urgents',
976
+ href: 'https://www.ameli.fr/assure/remboursements/aide-medicale-etat-soins-urgents',
977
+ },
978
+ {
979
+ title: 'Compte ameli, mode d\\'emploi',
980
+ href: 'https://www.ameli.fr/assure/remboursements/suivre-remboursements',
981
+ },
982
+ ],
983
+ },
984
+ ],
985
+ },
986
+ {
987
+ subMenuTitle: 'Maladies et prévention',
988
+ sections: [
989
+ {
990
+ title: undefined,
991
+ items: [
992
+ {
993
+ title: 'Tous les thèmes de santé',
994
+ href: 'https://www.ameli.fr/assure/sante/themes',
995
+ },
996
+ {
997
+ title: 'L\\'Assurance Maladie vous accompagne',
998
+ href: 'https://www.ameli.fr/assure/remboursements/reste-charge',
999
+ },
1000
+ {
1001
+ title: 'Mon espace santé',
1002
+ href: 'https://www.ameli.fr/assure/sante/mon-espace-sante',
1003
+ },
1004
+ {
1005
+ title: 'Mon bilan prévention',
1006
+ href: 'https://www.ameli.fr/assure/sante/mon-bilan-prevention',
1007
+ },
1008
+ {
1009
+ title: 'Réagir en cas d\\'urgence ',
1010
+ href: 'https://www.ameli.fr/assure/sante/urgence',
1011
+ },
1012
+ {
1013
+ title: 'Accomplir les bons gestes ',
1014
+ href: 'https://www.ameli.fr/assure/sante/bons-gestes',
1015
+ },
1016
+ {
1017
+ title: 'Médicaments et vaccins',
1018
+ href: 'https://www.ameli.fr/assure/sante/medicaments',
1019
+ },
1020
+ {
1021
+ title: 'Déroulement d\\'un examen',
1022
+ href: 'https://www.ameli.fr/assure/sante/examen',
1023
+ },
1024
+ {
1025
+ title:
1026
+ 'Certificat médical : dans quels cas et pour qui est-il obligatoire ?',
1027
+ href: 'https://www.ameli.fr/assure/sante/certificat-medical-quand-et-pour-qui',
1028
+ },
1029
+ {
1030
+ title: 'Devenir parent',
1031
+ href: 'https://www.ameli.fr/assure/sante/devenir-parent',
1032
+ },
1033
+ {
1034
+ title: 'Enfants',
1035
+ href: 'https://www.ameli.fr/assure/sante/enfants',
1036
+ },
1037
+ {
1038
+ title: 'Jeunes 16-25 ans',
1039
+ href: 'https://www.ameli.fr/assure/sante/jeunes-16-25-ans',
1040
+ },
1041
+ {
1042
+ title: 'Seniors',
1043
+ href: 'https://www.ameli.fr/assure/sante/seniors',
1044
+ },
1045
+ {
1046
+ title: 'Télésanté, la santé à distance',
1047
+ href: 'https://www.ameli.fr/assure/sante/telesante',
1048
+ },
1049
+ ],
1050
+ },
1051
+ ],
1052
+ },
1053
+ ],
1054
+ },
1055
+ {
1056
+ title: 'Besoin d\\'aide',
1057
+ items: [
1058
+ {
1059
+ title: 'Contacter l\\'Assurance Maladie',
1060
+ subtitle:
1061
+ 'obtenir une attestation, envoyer une feuille de soins, contacter sa caisse, etc.',
1062
+ href: 'https://www.ameli.fr/assure/adresses-contacts',
1063
+ },
1064
+ {
1065
+ title: 'Trouver un professionnel de santé',
1066
+ subtitle: 'médecins, infirmiers...',
1067
+ href: 'https://www.ameli.fr/assure/adresses-contacts',
1068
+ },
1069
+ {
1070
+ title: 'Télécharger un formulaire (ex: cerfa)',
1071
+ href: 'https://www.ameli.fr/assure/droits-demarches/formulaires',
1072
+ },
1073
+ {
1074
+ title: 'Consulter le forum',
1075
+ href: 'https://forum-assures.ameli.fr/',
1076
+ },
1077
+ {
1078
+ title: 'Sourds et malentendants',
1079
+ href: 'https://elioz.fr/elioz-connect/annuaire/assurance-maladie-annuaire/',
1080
+ },
1081
+ ],
1082
+ },
1083
+ ]
1084
+ </script>
1085
+ `,
1086
+ },
1087
+ ],
1088
+ },
1089
+ }