@cnamts/synapse 0.0.3-alpha → 0.0.4-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 (185) hide show
  1. package/dist/design-system-v3.d.ts +712 -27
  2. package/dist/design-system-v3.js +2715 -1485
  3. package/dist/design-system-v3.umd.cjs +10 -1
  4. package/dist/style.css +1 -1
  5. package/package.json +5 -2
  6. package/src/components/Alert/Alert.mdx +1 -1
  7. package/src/components/Alert/Alert.stories.ts +91 -1
  8. package/src/components/BackBtn/BackBtn.mdx +1 -1
  9. package/src/components/BackBtn/BackBtn.stories.ts +84 -1
  10. package/src/components/BackToTopBtn/BackToTopBtn.mdx +3 -3
  11. package/src/components/BackToTopBtn/BackToTopBtn.stories.ts +172 -11
  12. package/src/components/CollapsibleList/CollapsibleList.mdx +2 -2
  13. package/src/components/CollapsibleList/CollapsibleList.stories.ts +37 -1
  14. package/src/components/CopyBtn/CopyBtn.mdx +1 -1
  15. package/src/components/CopyBtn/CopyBtn.stories.ts +120 -1
  16. package/src/components/CopyBtn/CopyBtn.vue +1 -1
  17. package/src/components/Customs/CustomInputSelect/CustomInputSelect.mdx +6 -8
  18. package/src/components/Customs/CustomInputSelect/CustomInputSelect.stories.ts +270 -4
  19. package/src/components/Customs/CustomInputSelect/CustomInputSelect.vue +80 -53
  20. package/src/components/Customs/CustomInputSelect/config.ts +10 -0
  21. package/src/components/Customs/CustomSelect/CustomSelect.mdx +3 -3
  22. package/src/components/Customs/CustomSelect/CustomSelect.stories.ts +158 -2
  23. package/src/components/Customs/CustomSelect/CustomSelect.vue +25 -6
  24. package/src/components/Customs/CustomTextField/CustomTextField.mdx +44 -0
  25. package/src/components/Customs/CustomTextField/CustomTextField.stories.ts +403 -0
  26. package/src/components/Customs/CustomTextField/CustomTextField.vue +110 -0
  27. package/src/components/Customs/CustomTextField/tests/CustomTextField.spec.ts +93 -0
  28. package/src/components/Customs/CustomTextField/tests/__snapshots__/CustomTextField.spec.ts.snap +59 -0
  29. package/src/components/Customs/CustomTextField/types.d.ts +3 -0
  30. package/src/components/DataList/DataList.mdx +77 -0
  31. package/src/components/DataList/DataList.stories.ts +960 -0
  32. package/src/components/DataList/DataList.vue +140 -0
  33. package/src/components/DataList/DataListLoading/DataListLoading.vue +56 -0
  34. package/src/components/DataList/DataListLoading/tests/DataListLoading.spec.ts +23 -0
  35. package/src/components/DataList/locales.ts +3 -0
  36. package/src/components/DataList/tests/DataList.spec.ts +194 -0
  37. package/src/components/DataList/types.d.ts +23 -0
  38. package/src/components/DataListGroup/DataListGroup.mdx +77 -0
  39. package/src/components/DataListGroup/DataListGroup.stories.ts +987 -0
  40. package/src/components/DataListGroup/DataListGroup.vue +59 -0
  41. package/src/components/DataListGroup/tests/DataListGroup.spec.ts +54 -0
  42. package/src/components/DataListGroup/tests/data/dataListGroupItems.ts +41 -0
  43. package/src/components/DataListGroup/types.d.ts +15 -0
  44. package/src/components/DataListItem/DataListItem.vue +135 -0
  45. package/src/components/DataListItem/config.ts +17 -0
  46. package/src/components/DataListItem/locales.ts +3 -0
  47. package/src/components/DataListItem/tests/DataListItem.spec.ts +156 -0
  48. package/src/components/DataListItem/types.d.ts +23 -0
  49. package/src/components/DownloadBtn/Accessibilite.mdx +14 -0
  50. package/src/components/DownloadBtn/Accessibilite.stories.ts +166 -0
  51. package/src/components/DownloadBtn/AccessibiliteItems.ts +129 -0
  52. package/src/components/DownloadBtn/DownloadBtn.mdx +5 -6
  53. package/src/components/DownloadBtn/DownloadBtn.stories.ts +207 -2
  54. package/src/components/DownloadBtn/constants/ExpertiseLevelEnum.ts +4 -0
  55. package/src/components/FooterBar/FooterBar.mdx +2 -2
  56. package/src/components/FooterBar/FooterBar.stories.ts +1 -1
  57. package/src/components/FranceConnectBtn/FranceConnectBtn.mdx +1 -1
  58. package/src/components/FranceConnectBtn/FranceConnectBtn.stories.ts +58 -1
  59. package/src/components/HeaderBar/HeaderBar.mdx +164 -45
  60. package/src/components/HeaderBar/HeaderBar.stories.ts +559 -15
  61. package/src/components/HeaderBar/HeaderBar.vue +60 -22
  62. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderBurgerMenu.mdx +433 -0
  63. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderBurgerMenu.stories.ts +1089 -0
  64. package/src/components/HeaderBar/{HeaderComplexMenu/HeaderComplexMenu.vue → HeaderBurgerMenu/HeaderBurgerMenu.vue} +74 -45
  65. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/HeaderMenuItem.mdx +38 -0
  66. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/HeaderMenuItem.stories.ts +89 -0
  67. package/src/components/HeaderBar/{HeaderComplexMenu → HeaderBurgerMenu}/HeaderMenuItem/tests/__snapshots__/HeaderMenuItem.spec.ts.snap +1 -1
  68. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuSection/HeaderMenuSection.mdx +17 -0
  69. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuSection/HeaderMenuSection.stories.ts +121 -0
  70. package/src/components/HeaderBar/{HeaderComplexMenu → HeaderBurgerMenu}/HeaderMenuSection/HeaderMenuSection.vue +2 -2
  71. package/src/components/HeaderBar/{HeaderComplexMenu → HeaderBurgerMenu}/HeaderMenuSection/tests/HeaderMenuSection.spec.ts +1 -3
  72. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.mdx +43 -0
  73. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.stories.ts +261 -0
  74. package/src/components/HeaderBar/{HeaderComplexMenu → HeaderBurgerMenu}/HeaderSubMenu/HeaderSubMenu.vue +17 -3
  75. package/src/components/HeaderBar/{HeaderComplexMenu → HeaderBurgerMenu}/HeaderSubMenu/tests/HeaderSubMenu.spec.ts +1 -1
  76. package/src/components/HeaderBar/HeaderBurgerMenu/tests/HeaderBurgerMenu.spec.ts +180 -0
  77. package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/HeaderBurgerMenu.spec.ts.snap +13 -0
  78. package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/HeaderComplexMenu.spec.ts.snap +13 -0
  79. package/src/components/HeaderBar/HeaderLogo/HeaderLogo.vue +62 -25
  80. package/src/components/HeaderBar/HeaderLogo/tests/HeaderLogo.spec.ts +49 -1
  81. package/src/components/HeaderBar/HeaderMenuBtn/HeaderMenuBtn.vue +19 -23
  82. package/src/components/HeaderBar/HeaderMenuBtn/tests/HeaderMenuBtn.spec.ts +70 -0
  83. package/src/components/HeaderBar/Usages.mdx +85 -0
  84. package/src/components/HeaderBar/consts.scss +0 -1
  85. package/src/components/HeaderBar/tests/HeaderBar.spec.ts +8 -2
  86. package/src/components/HeaderBar/tests/__snapshots__/HeaderBar.spec.ts.snap +5 -10
  87. package/src/components/HeaderLoading/HeaderLoading.mdx +28 -0
  88. package/src/components/HeaderLoading/HeaderLoading.stories.ts +62 -0
  89. package/src/components/HeaderLoading/HeaderLoading.vue +45 -0
  90. package/src/components/HeaderLoading/tests/HeaderLoading.spec.ts +22 -0
  91. package/src/components/HeaderNavigationBar/HeaderNavigationBar.mdx +128 -0
  92. package/src/components/HeaderNavigationBar/HeaderNavigationBar.stories.ts +784 -0
  93. package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +194 -0
  94. package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +74 -0
  95. package/src/components/HeaderNavigationBar/HorizontalNavbar/config.ts +18 -0
  96. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.spec.ts +127 -0
  97. package/src/components/HeaderNavigationBar/types.ts +7 -0
  98. package/src/components/HeaderToolbar/HeaderToolbar.mdx +31 -0
  99. package/src/components/HeaderToolbar/HeaderToolbar.stories.ts +343 -0
  100. package/src/components/HeaderToolbar/HeaderToolbar.vue +487 -0
  101. package/src/components/HeaderToolbar/tests/HeaderToolbar.spec.ts +196 -0
  102. package/src/components/HeaderToolbar/types.d.ts +20 -0
  103. package/src/components/LangBtn/LangBtn.mdx +1 -1
  104. package/src/components/LangBtn/LangBtn.stories.ts +125 -8
  105. package/src/components/Logo/Logo.mdx +2 -2
  106. package/src/components/Logo/Logo.stories.ts +147 -1
  107. package/src/components/LogoBrandSection/LogoBrandSection.mdx +14 -0
  108. package/src/components/LogoBrandSection/LogoBrandSection.stories.ts +158 -0
  109. package/src/components/LogoBrandSection/LogoBrandSection.vue +312 -0
  110. package/src/components/LogoBrandSection/assets/ameli-pro.svg +1 -0
  111. package/src/components/LogoBrandSection/assets/ameli.svg +1 -0
  112. package/src/components/LogoBrandSection/assets/cnam.svg +1 -0
  113. package/src/components/LogoBrandSection/assets/compte-ameli.svg +1 -0
  114. package/src/components/LogoBrandSection/dividerDimensionsMapping.ts +14 -0
  115. package/src/components/LogoBrandSection/locales.ts +14 -0
  116. package/src/components/LogoBrandSection/secondaryLogoMapping.ts +24 -0
  117. package/src/components/LogoBrandSection/tests/LogoBrandSection.spec.ts +365 -0
  118. package/src/components/LogoBrandSection/tests/__snapshots__/LogoBrandSection.spec.ts.snap +14 -0
  119. package/src/components/LogoBrandSection/types.ts +8 -0
  120. package/src/components/NotificationBar/NotificationBar.mdx +6 -6
  121. package/src/components/NotificationBar/NotificationBar.stories.ts +1 -1
  122. package/src/components/NotificationBar/NotificationBar.vue +2 -2
  123. package/src/components/NotificationBar/tests/NotificationBar.spec.ts +1 -1
  124. package/src/components/PageContainer/PageContainer.mdx +1 -1
  125. package/src/components/PageContainer/PageContainer.stories.ts +86 -1
  126. package/src/components/PhoneField/PhoneField.mdx +49 -0
  127. package/src/components/PhoneField/PhoneField.stories.ts +869 -0
  128. package/src/components/PhoneField/PhoneField.vue +230 -0
  129. package/src/components/PhoneField/indicatifs.ts +104 -0
  130. package/src/components/PhoneField/locales.ts +4 -0
  131. package/src/components/PhoneField/tests/PhoneField.spec.ts +179 -0
  132. package/src/components/SkipLink/SkipLink.stories.ts +50 -1
  133. package/src/components/SocialMediaLinks/SocialMediaLinks.mdx +28 -1
  134. package/src/components/SocialMediaLinks/SocialMediaLinks.stories.ts +37 -1
  135. package/src/components/SubHeader/SubHeader.mdx +31 -0
  136. package/src/components/SubHeader/SubHeader.stories.ts +1032 -0
  137. package/src/components/SubHeader/SubHeader.vue +185 -0
  138. package/src/components/SubHeader/config.ts +12 -0
  139. package/src/components/SubHeader/locales.ts +3 -0
  140. package/src/components/SubHeader/tests/SubHeader.spec.ts +144 -0
  141. package/src/components/index.ts +24 -7
  142. package/src/composables/widthable/index.ts +29 -0
  143. package/src/composables/widthable/tests/widthable.spec.ts +52 -0
  144. package/src/designTokens/tokens/cnam/cnamLightTheme.ts +2 -2
  145. package/src/main.ts +1 -0
  146. package/src/modules.d.ts +4 -0
  147. package/src/services/index.ts +1 -0
  148. package/src/stories/Demarrer/Accueil.mdx +10 -0
  149. package/src/stories/Demarrer/Accueil.stories.ts +76 -0
  150. package/src/stories/Demarrer/PolitiqueDeConfidentialite.mdx +9 -0
  151. package/src/stories/Demarrer/PolitiqueDeConfidentialite.stories.ts +20 -0
  152. package/src/stories/Fondamentaux/Accessibilite/Accessibilite.mdx +1 -2
  153. package/src/stories/Fondamentaux/Accessibilite/Accessibilite.stories.ts +1 -1
  154. package/src/stories/Fondamentaux/EcoConception/Econception.stories.ts +1 -1
  155. package/src/stories/GuideDuDev/moduleDeNotification.mdx +52 -48
  156. package/src/stories/GuideDuDev/vuetifyOptions.mdx +31 -28
  157. package/src/stories/Guidelines/CustomisationEtThemes.mdx +1 -1
  158. package/src/utils/functions/throttleDisplayFn/tests/throttleDisplayFn.spec.ts +47 -0
  159. package/src/utils/functions/throttleDisplayFn/throttleDisplayFn.ts +26 -0
  160. package/src/utils/rules/exactLength/index.ts +33 -0
  161. package/src/utils/rules/exactLength/locales.ts +6 -0
  162. package/src/utils/rules/required/index.ts +25 -0
  163. package/src/utils/rules/required/locales.ts +5 -0
  164. package/src/utils/rules/required/ruleMessageHelper.ts +14 -0
  165. package/src/utils/rules/required/tests/index.spec.ts +47 -0
  166. package/src/utils/rules/required/tests/rulesMessageHelper.spec.ts +22 -0
  167. package/src/utils/rules/types.d.ts +15 -0
  168. package/src/components/Beta/beta.mdx +0 -5
  169. package/src/components/Deprecated/deprecated.mdx +0 -5
  170. package/src/components/HeaderBar/HeaderComplexMenu/HeaderComplexMenu.stories.ts +0 -272
  171. package/src/components/HeaderBar/HeaderComplexMenu/HeaderMenuItem/HeaderMenuItem.stories.ts +0 -49
  172. package/src/components/HeaderBar/HeaderComplexMenu/HeaderMenuSection/HeaderMenuSection.stories.ts +0 -56
  173. package/src/components/HeaderBar/HeaderComplexMenu/HeaderSubMenu/HeaderSubMenu.stories.ts +0 -137
  174. package/src/components/HeaderBar/HeaderComplexMenu/tests/HeaderComplexMenu.spec.ts +0 -129
  175. package/src/components/HeaderBar/HeaderComplexMenu/tests/__snapshots__/HeaderComplexMenu.spec.ts.snap +0 -18
  176. package/src/stories/Home/Accueil.mdx +0 -7
  177. package/src/stories/Home/PolitiqueDeConfidentialite.mdx +0 -4
  178. package/src/stories/Home/synapse.webp +0 -0
  179. /package/src/components/HeaderBar/{HeaderComplexMenu → HeaderBurgerMenu}/HeaderMenuItem/HeaderMenuItem.vue +0 -0
  180. /package/src/components/HeaderBar/{HeaderComplexMenu → HeaderBurgerMenu}/HeaderMenuItem/tests/HeaderMenuItem.spec.ts +0 -0
  181. /package/src/components/HeaderBar/{HeaderComplexMenu → HeaderBurgerMenu}/conts.ts +0 -0
  182. /package/src/components/HeaderBar/{HeaderComplexMenu → HeaderBurgerMenu}/locals.ts +0 -0
  183. /package/src/components/HeaderBar/{HeaderComplexMenu → HeaderBurgerMenu}/tests/useHandleSubMenus.spec.ts +0 -0
  184. /package/src/components/HeaderBar/{HeaderComplexMenu → HeaderBurgerMenu}/useHandleSubMenus.ts +0 -0
  185. /package/src/components/Logo/{types.d.ts → types.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
+ }