@cnamts/synapse 0.0.0-alpha.0 → 0.0.3-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 (96) hide show
  1. package/README.md +72 -2
  2. package/dist/design-system-v3.d.ts +234 -2
  3. package/dist/design-system-v3.js +1413 -4404
  4. package/dist/design-system-v3.umd.cjs +1 -2
  5. package/dist/style.css +1 -1
  6. package/package.json +37 -36
  7. package/src/components/Alert/Alert.vue +8 -8
  8. package/src/components/CollapsibleList/CollapsibleList.mdx +47 -0
  9. package/src/components/CollapsibleList/CollapsibleList.stories.ts +52 -0
  10. package/src/components/CollapsibleList/CollapsibleList.vue +157 -0
  11. package/src/components/CollapsibleList/tests/CollapsibleList.spec.ts +60 -0
  12. package/src/components/CollapsibleList/types.d.ts +5 -0
  13. package/src/components/Customs/CustomInputSelect/CustomInputSelect.mdx +42 -0
  14. package/src/components/Customs/CustomInputSelect/CustomInputSelect.stories.ts +154 -0
  15. package/src/components/Customs/CustomInputSelect/CustomInputSelect.vue +185 -0
  16. package/src/components/Customs/CustomInputSelect/tests/CustomInputSelect.spec.ts +216 -0
  17. package/src/components/Customs/CustomSelect/CustomSelect.mdx +47 -0
  18. package/src/components/Customs/CustomSelect/CustomSelect.stories.ts +182 -0
  19. package/src/components/Customs/CustomSelect/CustomSelect.vue +188 -0
  20. package/src/components/Customs/CustomSelect/tests/CustomSelect.spec.ts +236 -0
  21. package/src/components/FooterBar/A11yCompliance.ts +9 -0
  22. package/src/components/FooterBar/FooterBar.mdx +115 -0
  23. package/src/components/FooterBar/FooterBar.stories.ts +632 -0
  24. package/src/components/FooterBar/FooterBar.vue +330 -0
  25. package/src/components/FooterBar/config.ts +20 -0
  26. package/src/components/FooterBar/defaultSocialMediaLinks.ts +21 -0
  27. package/src/components/FooterBar/locales.ts +16 -0
  28. package/src/components/FooterBar/tests/FooterBar.spec.ts +167 -0
  29. package/src/components/FooterBar/tests/FooterBarConfig.spec.ts +36 -0
  30. package/src/components/FooterBar/tests/__snapshots__/FooterBar.spec.ts.snap +27 -0
  31. package/src/components/FooterBar/types.d.ts +10 -0
  32. package/src/components/FranceConnectBtn/FranceConnectBtn.vue +2 -2
  33. package/src/components/HeaderBar/HeaderBar.mdx +137 -0
  34. package/src/components/HeaderBar/HeaderBar.stories.ts +159 -0
  35. package/src/components/HeaderBar/HeaderBar.vue +238 -0
  36. package/src/components/HeaderBar/HeaderComplexMenu/HeaderComplexMenu.stories.ts +272 -0
  37. package/src/components/HeaderBar/HeaderComplexMenu/HeaderComplexMenu.vue +205 -0
  38. package/src/components/HeaderBar/HeaderComplexMenu/HeaderMenuItem/HeaderMenuItem.stories.ts +49 -0
  39. package/src/components/HeaderBar/HeaderComplexMenu/HeaderMenuItem/HeaderMenuItem.vue +51 -0
  40. package/src/components/HeaderBar/HeaderComplexMenu/HeaderMenuItem/tests/HeaderMenuItem.spec.ts +16 -0
  41. package/src/components/HeaderBar/HeaderComplexMenu/HeaderMenuItem/tests/__snapshots__/HeaderMenuItem.spec.ts.snap +3 -0
  42. package/src/components/HeaderBar/HeaderComplexMenu/HeaderMenuSection/HeaderMenuSection.stories.ts +56 -0
  43. package/src/components/HeaderBar/HeaderComplexMenu/HeaderMenuSection/HeaderMenuSection.vue +51 -0
  44. package/src/components/HeaderBar/HeaderComplexMenu/HeaderMenuSection/tests/HeaderMenuSection.spec.ts +33 -0
  45. package/src/components/HeaderBar/HeaderComplexMenu/HeaderSubMenu/HeaderSubMenu.stories.ts +137 -0
  46. package/src/components/HeaderBar/HeaderComplexMenu/HeaderSubMenu/HeaderSubMenu.vue +180 -0
  47. package/src/components/HeaderBar/HeaderComplexMenu/HeaderSubMenu/tests/HeaderSubMenu.spec.ts +63 -0
  48. package/src/components/HeaderBar/HeaderComplexMenu/conts.ts +1 -0
  49. package/src/components/HeaderBar/HeaderComplexMenu/locals.ts +4 -0
  50. package/src/components/HeaderBar/HeaderComplexMenu/tests/HeaderComplexMenu.spec.ts +129 -0
  51. package/src/components/HeaderBar/HeaderComplexMenu/tests/__snapshots__/HeaderComplexMenu.spec.ts.snap +18 -0
  52. package/src/components/HeaderBar/HeaderComplexMenu/tests/useHandleSubMenus.spec.ts +158 -0
  53. package/src/components/HeaderBar/HeaderComplexMenu/useHandleSubMenus.ts +49 -0
  54. package/src/components/HeaderBar/HeaderLogo/HeaderLogo.vue +106 -0
  55. package/src/components/HeaderBar/HeaderLogo/locales.ts +3 -0
  56. package/src/components/HeaderBar/HeaderLogo/logos/Logo-mobile.vue +117 -0
  57. package/src/components/HeaderBar/HeaderLogo/logos/Logo.vue +279 -0
  58. package/src/components/HeaderBar/HeaderLogo/tests/HeaderLogo.spec.ts +71 -0
  59. package/src/components/HeaderBar/HeaderMenuBtn/HeaderMenuBtn.vue +88 -0
  60. package/src/components/HeaderBar/HeaderMenuBtn/locals.ts +4 -0
  61. package/src/components/HeaderBar/consts.scss +7 -0
  62. package/src/components/HeaderBar/consts.ts +2 -0
  63. package/src/components/HeaderBar/locales.ts +3 -0
  64. package/src/components/HeaderBar/tests/HeaderBar.spec.ts +210 -0
  65. package/src/components/HeaderBar/tests/__snapshots__/HeaderBar.spec.ts.snap +50 -0
  66. package/src/components/HeaderBar/tests/useHeaderResponsiveMode.spec.ts +26 -0
  67. package/src/components/HeaderBar/tests/useScrollDirection.spec.ts +34 -0
  68. package/src/components/HeaderBar/useHeaderResponsiveMode.ts +25 -0
  69. package/src/components/HeaderBar/useScrollDirection.ts +26 -0
  70. package/src/components/LangBtn/LangBtn.mdx +2 -1
  71. package/src/components/LangBtn/LangBtn.vue +3 -3
  72. package/src/components/Logo/Logo.mdx +26 -0
  73. package/src/components/Logo/Logo.stories.ts +217 -0
  74. package/src/components/Logo/Logo.vue +397 -0
  75. package/src/components/Logo/LogoSize.ts +7 -0
  76. package/src/components/Logo/locales.ts +6 -0
  77. package/src/components/Logo/logoDimensionsMapping.ts +16 -0
  78. package/src/components/Logo/tests/Logo.spec.ts +75 -0
  79. package/src/components/Logo/types.d.ts +8 -0
  80. package/src/components/NotificationBar/NotificationBar.vue +5 -7
  81. package/src/components/PageContainer/PageContainer.vue +0 -1
  82. package/src/components/SocialMediaLinks/DefaultSocialMediaLinks.ts +21 -0
  83. package/src/components/SocialMediaLinks/SocialMediaLinks.mdx +15 -0
  84. package/src/components/SocialMediaLinks/SocialMediaLinks.stories.ts +72 -0
  85. package/src/components/SocialMediaLinks/SocialMediaLinks.vue +92 -0
  86. package/src/components/SocialMediaLinks/locales.ts +3 -0
  87. package/src/components/SocialMediaLinks/tests/DefaultSocialMediaLinks.spec.ts +21 -0
  88. package/src/components/SocialMediaLinks/tests/SocialMediaLinks.spec.ts +89 -0
  89. package/src/components/SocialMediaLinks/tests/__snapshots__/SocialMediaLinks.spec.ts.snap +24 -0
  90. package/src/components/SocialMediaLinks/types.d.ts +5 -0
  91. package/src/components/index.ts +6 -0
  92. package/src/directives/clickOutside.ts +24 -0
  93. package/src/temp/TestDTComponent.vue +6 -10
  94. package/src/temp/gridsTests.vue +0 -4
  95. package/src/utils/propValidator/index.ts +20 -0
  96. package/src/utils/propValidator/tests/propValidator.spec.ts +40 -0
@@ -0,0 +1,632 @@
1
+ import FooterBar from '../FooterBar/FooterBar.vue'
2
+ import Logo from '../Logo/Logo.vue'
3
+ import CollapsibleList from '../CollapsibleList/CollapsibleList.vue'
4
+ import type { Meta, StoryObj } from '@storybook/vue3'
5
+ import { mdiTwitter, mdiLinkedin, mdiFacebook, mdiYoutube } from '@mdi/js'
6
+
7
+ const items = [
8
+ {
9
+ text: 'Plan du site',
10
+ href: '/sitemap',
11
+ },
12
+ {
13
+ text: 'Conditions générales d\'utilisation',
14
+ href: '/cgu',
15
+ },
16
+ {
17
+ text: 'Gestion des cookies',
18
+ href: '/cookies',
19
+ },
20
+ {
21
+ text: 'Mentions légales',
22
+ href: '/mentions-legales',
23
+ },
24
+ ]
25
+
26
+ const remboursementItems = [
27
+ {
28
+ text: 'Ce qui est remboursé',
29
+ href: 'https://www.ameli.fr/assure/remboursements/rembourse',
30
+ },
31
+ {
32
+ text: 'Ce qui reste à votre charge',
33
+ href: 'https://www.ameli.fr/assure/remboursements/reste-charge',
34
+ },
35
+ {
36
+ text: 'Être bien remboursé',
37
+ href: 'https://www.ameli.fr/assure/remboursements/etre-bien-rembourse',
38
+ },
39
+ ]
40
+
41
+ const healthItems = [
42
+ {
43
+ text: 'Mon espace santé',
44
+ href: 'https://www.ameli.fr/assure/sante/mon-espace-sante',
45
+ },
46
+ {
47
+ text: 'Accomplir les bons gestes',
48
+ href: 'https://www.ameli.fr/assure/sante/bons-gestes',
49
+ },
50
+ {
51
+ text: 'Réagir en cas d’urgence',
52
+ href: 'https://www.ameli.fr/assure/sante/urgence',
53
+ },
54
+ {
55
+ text: 'Télésanté',
56
+ href: 'https://www.ameli.fr/assure/sante/telesante',
57
+ },
58
+ ]
59
+
60
+ const currentYear = new Date().getFullYear()
61
+
62
+ const meta = {
63
+ title: 'Components/FooterBar',
64
+ component: FooterBar,
65
+ parameters: {
66
+ layout: 'fullscreen',
67
+ controls: { exclude: ['logoSize'] },
68
+ },
69
+ argTypes: {
70
+ a11yCompliance: {
71
+ options: ['non-compliant', 'partially-compliant', 'fully-compliant'],
72
+ control: { type: 'select' },
73
+ default: 'fully-compliant',
74
+ description: 'Le niveau de conformité aux règles d’accessibilité de l’application.\n Cette mention est obligatoire, voir la <a target="_blank" href="https://www.numerique.gouv.fr/publications/rgaa-accessibilite/obligations/#d%C3%A9claration-daccessibilit%C3%A9">documentation du RGAA</a>.',
75
+ },
76
+ linkItems: {
77
+ control: {
78
+ type: 'object',
79
+ },
80
+ description: 'Les liens de navigation à afficher dans le pied de page.',
81
+ },
82
+ hideSitemapLink: {
83
+ control: {
84
+ type: 'boolean',
85
+ },
86
+ description: 'Masque le lien vers le Plan du site.',
87
+ },
88
+ hideCguLink: {
89
+ control: {
90
+ type: 'boolean',
91
+ },
92
+ description: 'Masque le lien vers les Conditions générales d’utilisation.',
93
+ },
94
+ hideCookiesLink: {
95
+ control: {
96
+ type: 'boolean',
97
+ },
98
+ description: 'Masque le lien vers la Gestion des cookies.',
99
+ },
100
+ hideLegalNoticeLink: {
101
+ control: {
102
+ type: 'boolean',
103
+ },
104
+ description: 'Masque le lien vers les Mentions légales.',
105
+ },
106
+ hideA11yLink: {
107
+ control: {
108
+ type: 'boolean',
109
+ },
110
+ description: 'Masque le lien vers la Déclaration d’accessibilité.',
111
+ },
112
+ hideLogo: {
113
+ control: {
114
+ type: 'boolean',
115
+ },
116
+ description: 'Masque le logo.',
117
+ },
118
+ hideSocialMediaLinks: {
119
+ control: {
120
+ type: 'boolean',
121
+ },
122
+ description: 'Masque la liste des réseaux sociaux.',
123
+ },
124
+ version: {
125
+ control: {
126
+ type: 'text',
127
+ },
128
+ description: 'Le numéro de version de l’application.',
129
+ },
130
+ socialMediaLinks: {
131
+ control: {
132
+ type: 'object',
133
+ },
134
+ description: 'Personnalisation de la liste des réseaux sociaux.',
135
+ },
136
+ light: {
137
+ control: {
138
+ type: 'boolean',
139
+ },
140
+ description: 'Use the light theme for the footer.',
141
+ },
142
+ sitemapRoute: {
143
+ control: {
144
+ type: 'text',
145
+ },
146
+ description: 'La valeur de la prop `to` du lien vers le Plan du site.',
147
+ },
148
+ cguRoute: {
149
+ control: {
150
+ type: 'text',
151
+ },
152
+ description: 'La valeur de la prop `to` du lien vers les Conditions générales d’utilisation.',
153
+ },
154
+ cookiesRoute: {
155
+ control: {
156
+ type: 'text',
157
+ },
158
+ description: 'La valeur de la prop `to` du lien vers la Gestion des cookies..',
159
+ },
160
+ legalNoticeRoute: {
161
+ control: {
162
+ type: 'text',
163
+ },
164
+ description: 'La valeur de la prop `to` du lien vers les Mentions légales.',
165
+ },
166
+ a11yStatementRoute: {
167
+ control: {
168
+ type: 'text',
169
+ },
170
+ description: 'La valeur de la prop `to` du lien vers la Déclaration d’accessibilité.',
171
+ },
172
+ default: {
173
+ control: {
174
+ type: 'text',
175
+ },
176
+ description: 'Slot pour ajouter du contenu dans la partie centrale du pied de page.',
177
+ },
178
+ prepend: {
179
+ control: {
180
+ type: 'text',
181
+ },
182
+ description: 'Slot pour ajouter du contenu avant les liens du pied de page.',
183
+ },
184
+ append: {
185
+ control: {
186
+ type: 'text',
187
+ },
188
+ description: 'Slot pour ajouter du contenu après les liens du pied de page.',
189
+ },
190
+ logo: {
191
+ control: {
192
+ type: 'text',
193
+ },
194
+ description: 'Slot pour remplacer le logo.',
195
+ },
196
+ },
197
+ } satisfies Meta<typeof FooterBar>
198
+
199
+ export default meta
200
+
201
+ type Story = StoryObj<typeof meta>
202
+
203
+ export const Default: Story = {
204
+ parameters: {
205
+ controls: { exclude: ['logoSize', 'items'] },
206
+ },
207
+ args: {
208
+ a11yCompliance: 'non-compliant',
209
+ items: items,
210
+ hideSitemapLink: false,
211
+ hideCguLink: false,
212
+ hideCookiesLink: false,
213
+ hideLegalNoticeLink: false,
214
+ hideA11yLink: false,
215
+ hideLogo: false,
216
+ hideSocialMediaLinks: false,
217
+ version: '',
218
+ socialMediaLinks: [
219
+ {
220
+ icon: mdiFacebook,
221
+ name: 'Facebook',
222
+ href: 'https://www.facebook.com',
223
+ },
224
+ {
225
+ icon: mdiTwitter,
226
+ name: 'Twitter',
227
+ href: 'https://www.twitter.com',
228
+ },
229
+ {
230
+ icon: mdiLinkedin,
231
+ name: 'LinkedIn',
232
+ href: 'https://www.linkedin.com',
233
+ },
234
+ ],
235
+ light: false,
236
+ sitemapRoute: '/',
237
+ cguRoute: '/',
238
+ cookiesRoute: '/',
239
+ legalNoticeRoute: '/',
240
+ a11yStatementRoute: '/',
241
+ vuetifyOptions: {
242
+ footer: {
243
+ elevation: 3,
244
+ color: '#2f384d',
245
+ height: 'auto',
246
+ },
247
+ goTopBtn: {
248
+ density: 'compact',
249
+ icon: 'true',
250
+ variant: 'text',
251
+ elevation: 0,
252
+ },
253
+ goTopBtnIcon: {
254
+ color: 'primary',
255
+ },
256
+ },
257
+ },
258
+ render: (args) => {
259
+ return {
260
+ components: { FooterBar },
261
+ setup() {
262
+ return { args }
263
+ },
264
+ template: `
265
+ <FooterBar
266
+ v-bind="args.docProps"
267
+ :link-items="args.items"
268
+ :a11y-compliance="args.a11yCompliance"
269
+ :hide-a11y-link="args.hideA11yLink"
270
+ :hide-cgu-link="args.hideCguLink"
271
+ :hide-cookies-link="args.hideCookiesLink"
272
+ :hide-legal-notice-link="args.hideLegalNoticeLink"
273
+ :hide-sitemap-link="args.hideSitemapLink"
274
+ :hide-logo="args.hideLogo"
275
+ :hide-social-media-links="args.hideSocialMediaLinks"
276
+ :light="args.light"
277
+ :version="args.version"
278
+ :sitemap-route="args.sitemapRoute"
279
+ :cgu-route="args.cguRoute"
280
+ :cookies-route="args.cookiesRoute"
281
+ :legal-notice-route="args.legalNoticeRoute"
282
+ :a11y-statement-route="args.a11yStatementRoute"
283
+ :social-media-links="args.socialMediaLinks"
284
+ :vuetify-options="args.vuetifyOptions"
285
+ />
286
+ `,
287
+ }
288
+ },
289
+ }
290
+
291
+ export const changeLinks: Story = {
292
+ parameters: {
293
+ controls: { include: ['linkItems'] },
294
+ },
295
+ args: {
296
+ linkItems: [
297
+ {
298
+ text: 'Accueil',
299
+ href: '/',
300
+ },
301
+ {
302
+ text: 'Plan du site',
303
+ href: '/sitemap',
304
+ },
305
+ {
306
+ text: 'Conditions générales d\'utilisation',
307
+ href: '/cgu',
308
+ },
309
+ {
310
+ text: 'Aide',
311
+ href: 'https://www.ameli.fr/assure/aide',
312
+ ariaLabel: 'Aide (s’ouvre sur le site ameli.fr)',
313
+ openInNewTab: true,
314
+ },
315
+ ],
316
+ },
317
+ render: (args) => {
318
+ return {
319
+ components: { FooterBar },
320
+ setup() {
321
+ return { args }
322
+ },
323
+ template: `
324
+ <FooterBar :link-items="args.linkItems" />
325
+ `,
326
+ }
327
+ },
328
+ }
329
+
330
+ export const slotPrepend: Story = {
331
+ parameters: {
332
+ controls: { include: ['prepend'] },
333
+ },
334
+ args: {
335
+ items: items,
336
+ prepend: '<li class="text--secondary my-3 mx-4">Texte ajouté</li>',
337
+ },
338
+ render: (args) => {
339
+ return {
340
+ components: { FooterBar },
341
+ setup() {
342
+ return { args }
343
+ },
344
+ template: `
345
+ <FooterBar :link-items="args.items">
346
+ <template #prepend>
347
+ <li class="text--secondary my-3 mx-4">
348
+ Texte ajouté
349
+ </li>
350
+ </template>
351
+ </FooterBar>
352
+ `,
353
+ }
354
+ },
355
+ }
356
+
357
+ export const slotAppend: Story = {
358
+ parameters: {
359
+ controls: { include: ['append'] },
360
+ },
361
+ args: {
362
+ items: items,
363
+ append: '<li class="text--secondary my-3 mx-4">{{ currentYear }}</li>',
364
+ },
365
+ render: (args) => {
366
+ return {
367
+ components: { FooterBar },
368
+ setup() {
369
+ return { args, currentYear }
370
+ },
371
+ template: `
372
+ <FooterBar :link-items="args.items">
373
+ <template #append>
374
+ <li class="text--secondary my-3 mx-4">
375
+ {{ currentYear }}
376
+ </li>
377
+ </template>
378
+ </FooterBar>
379
+ `,
380
+ }
381
+ },
382
+ }
383
+
384
+ export const extendedMode: Story = {
385
+ parameters: {
386
+ controls: { include: ['default'] },
387
+ },
388
+ args: {
389
+ items: items,
390
+ default: '<p class="text--secondary mb-0"> Contenu supplémentaire.</p>',
391
+ },
392
+ render: (args) => {
393
+ return {
394
+ components: { FooterBar },
395
+ setup() {
396
+ return { args }
397
+ },
398
+ template: `
399
+ <FooterBar :link-items="args.items">
400
+ <p class="text--secondary mb-0"> Contenu supplémentaire.</p>
401
+ </FooterBar>
402
+ `,
403
+ }
404
+ },
405
+ }
406
+
407
+ export const slotLogo: Story = {
408
+ parameters: {
409
+ controls: { include: ['logo'] },
410
+ },
411
+ args: {
412
+ items: items,
413
+ logo: '<Logo :risque-pro="true" aria-label="Risque Pro" />',
414
+ },
415
+ render: (args) => {
416
+ return {
417
+ components: { FooterBar, Logo },
418
+ setup() {
419
+ return { args }
420
+ },
421
+ template: `
422
+ <FooterBar :link-items="args.items">
423
+ <p class="text--secondary mb-0"> Contenu supplémentaire.</p>
424
+ <template #logo>
425
+ <Logo
426
+ :risque-pro="true"
427
+ aria-label="Risque Pro"
428
+ />
429
+ </template>
430
+ </FooterBar>
431
+ `,
432
+ }
433
+ },
434
+ }
435
+
436
+ export const collapsibleList: Story = {
437
+ parameters: {
438
+ controls: { include: ['default'] },
439
+ },
440
+ args: {
441
+ items: items,
442
+ default: `<VRow class="max-width-none">
443
+ <VCol cols="12" sm="6">
444
+ <CollapsibleList
445
+ :items="remboursementItems"
446
+ list-title="Remboursement"
447
+ class="theme--dark"
448
+ />
449
+ </VCol>
450
+ <VCol cols="12" sm="6">
451
+ <CollapsibleList
452
+ :items="healthItems"
453
+ list-title="Santé"
454
+ class="theme--dark"
455
+ />
456
+ </VCol>
457
+ </VRow>`,
458
+ },
459
+ render(args) {
460
+ return {
461
+ components: { FooterBar, CollapsibleList },
462
+ setup() {
463
+ return { args, remboursementItems, healthItems }
464
+ },
465
+ template: `
466
+ <FooterBar :link-items="args.items">
467
+ <VRow class="max-width-none">
468
+ <VCol cols="12" sm="6">
469
+ <CollapsibleList
470
+ :items="remboursementItems"
471
+ list-title="Remboursement"
472
+ class="theme--dark"
473
+ />
474
+ </VCol>
475
+ <VCol cols="12" sm="6">
476
+ <CollapsibleList
477
+ :items="healthItems"
478
+ list-title="Santé"
479
+ class="theme--dark"
480
+ />
481
+ </VCol>
482
+ </VRow>
483
+ </FooterBar>
484
+ `,
485
+ }
486
+ },
487
+ }
488
+
489
+ export const hideSectionLogo: Story = {
490
+ parameters: {
491
+ controls: { include: ['hideLogo'] },
492
+ },
493
+ args: {
494
+ items: items,
495
+ hideLogo: true,
496
+ },
497
+ render(args) {
498
+ return {
499
+ components: { FooterBar },
500
+ setup() {
501
+ return { args }
502
+ },
503
+ template: `
504
+ <FooterBar :hide-logo="args.hideLogo" :link-items="args.items">
505
+ <p class="text--secondary mb-0"> Contenu supplémentaire.</p>
506
+ </FooterBar>
507
+ `,
508
+ }
509
+ },
510
+ }
511
+
512
+ export const hideSectionSocialMediaLinks: Story = {
513
+ parameters: {
514
+ controls: { include: ['hideSocialMediaLinks'] },
515
+ },
516
+ args: {
517
+ items: items,
518
+ hideSocialMediaLinks: true,
519
+ },
520
+ render(args) {
521
+ return {
522
+ components: { FooterBar },
523
+ setup() {
524
+ return { args }
525
+ },
526
+ template: `
527
+ <FooterBar :hide-social-media-links="args.hideSocialMediaLinks" :link-items="args.items">
528
+ <p class="text--secondary mb-0"> Contenu supplémentaire.</p>
529
+ </FooterBar>
530
+ `,
531
+ }
532
+ },
533
+ }
534
+
535
+ export const customSocialMediaLinks: Story = {
536
+ parameters: {
537
+ controls: { include: ['socialMediaLinks'] },
538
+ },
539
+ args: {
540
+ items: items,
541
+ socialMediaLinks: [
542
+ {
543
+ icon: mdiFacebook,
544
+ name: 'Facebook',
545
+ href: 'https://www.facebook.com',
546
+ },
547
+ {
548
+ icon: mdiTwitter,
549
+ name: 'Twitter',
550
+ href: 'https://www.twitter.com',
551
+ },
552
+ {
553
+ icon: mdiLinkedin,
554
+ name: 'LinkedIn',
555
+ href: 'https://www.linkedin.com',
556
+ },
557
+ {
558
+ icon: mdiYoutube,
559
+ name: 'YouTube',
560
+ href: 'https://youtube.com',
561
+ },
562
+ ],
563
+ },
564
+ render(args) {
565
+ return {
566
+ components: { FooterBar },
567
+ setup() {
568
+ return { args }
569
+ },
570
+ template: `
571
+ <FooterBar :social-media-links="args.socialMediaLinks" :link-items="args.items">
572
+ <p class="text--secondary mb-0"> Contenu supplémentaire.</p>
573
+ </FooterBar>
574
+ `,
575
+ }
576
+ },
577
+ }
578
+
579
+ export const lightTheme: Story = {
580
+ parameters: {
581
+ controls: { include: ['light'] },
582
+ },
583
+ args: {
584
+ items: items,
585
+ light: true,
586
+ },
587
+ render(args) {
588
+ return {
589
+ components: { FooterBar },
590
+ setup() {
591
+ return { args }
592
+ },
593
+ template: `
594
+ <FooterBar :light="args.light" :link-items="args.items">
595
+ <p class="text--secondary mb-0"> Contenu supplémentaire.</p>
596
+ </FooterBar>
597
+ `,
598
+ }
599
+ },
600
+ }
601
+
602
+ export const customTheme: Story = {
603
+ parameters: {
604
+ controls: { include: ['vuetifyOptions'] },
605
+ },
606
+ args: {
607
+ items: items,
608
+ vuetifyOptions: {
609
+ footer: {
610
+ elevation: 3,
611
+ color: 'rgb(50, 53, 53)',
612
+ height: 'auto',
613
+ },
614
+ goTopBtn: {
615
+ color: 'rgb(50, 53, 53)',
616
+ },
617
+ },
618
+ },
619
+ render(args) {
620
+ return {
621
+ components: { FooterBar },
622
+ setup() {
623
+ return { args }
624
+ },
625
+ template: `
626
+ <FooterBar :vuetify-options="args.vuetifyOptions" :link-items="args.items">
627
+ <p class="text--secondary mb-0"> Contenu supplémentaire.</p>
628
+ </FooterBar>
629
+ `,
630
+ }
631
+ },
632
+ }