@cnamts/synapse 0.0.7-alpha → 0.0.8-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 (102) hide show
  1. package/dist/design-system-v3.d.ts +325 -368
  2. package/dist/design-system-v3.js +2791 -2637
  3. package/dist/design-system-v3.umd.cjs +1 -10
  4. package/dist/style.css +1 -1
  5. package/package.json +10 -2
  6. package/src/assets/settings.scss +2 -2
  7. package/src/assets/tokens.scss +107 -112
  8. package/src/components/BackBtn/BackBtn.vue +4 -4
  9. package/src/components/BackToTopBtn/BackToTopBtn.vue +1 -0
  10. package/src/components/CollapsibleList/CollapsibleList.mdx +1 -1
  11. package/src/components/CollapsibleList/CollapsibleList.vue +43 -44
  12. package/src/components/ContextualMenu/ContextualMenu.mdx +118 -0
  13. package/src/components/ContextualMenu/ContextualMenu.stories.ts +430 -0
  14. package/src/components/ContextualMenu/ContextualMenu.vue +101 -0
  15. package/src/components/ContextualMenu/tests/ContextualMenu.spec.ts +115 -0
  16. package/src/components/ContextualMenu/tests/__snapshots__/ContextualMenu.spec.ts.snap +10 -0
  17. package/src/components/ContextualMenu/types.ts +5 -0
  18. package/src/components/CookieBanner/CookieBanner.stories.ts +1 -2
  19. package/src/components/CookieBanner/CookieBanner.vue +13 -10
  20. package/src/components/CookieBanner/tests/__snapshots__/CookieBanner.spec.ts.snap +17 -15
  21. package/src/components/CookiesSelection/CookiesInformation/CookiesInformation.vue +6 -1
  22. package/src/components/CookiesSelection/CookiesInformation/locales.ts +1 -0
  23. package/src/components/CookiesSelection/CookiesTable/CookiesTable.vue +1 -0
  24. package/src/components/CookiesSelection/tests/__snapshots__/CookiesSelection.spec.ts.snap +17 -15
  25. package/src/components/CopyBtn/CopyBtn.vue +7 -7
  26. package/src/components/Customs/SyBtnSelect/SyBtnSelect.vue +26 -26
  27. package/src/components/Customs/SyInputSelect/SyInputSelect.vue +24 -24
  28. package/src/components/Customs/SySelect/SySelect.vue +27 -26
  29. package/src/components/DataList/DataList.stories.ts +3 -2
  30. package/src/components/DataList/DataList.vue +1 -1
  31. package/src/components/DataListGroup/DataListGroup.stories.ts +3 -2
  32. package/src/components/DataListItem/DataListItem.vue +12 -12
  33. package/src/components/DialogBox/DialogBox.mdx +28 -2
  34. package/src/components/DialogBox/DialogBox.stories.ts +1 -1
  35. package/src/components/DialogBox/DialogBox.vue +3 -2
  36. package/src/components/DownloadBtn/DownloadBtn.vue +2 -1
  37. package/src/components/ExternalLinks/ExternalLinks.mdx +86 -0
  38. package/src/components/ExternalLinks/ExternalLinks.stories.ts +553 -0
  39. package/src/components/ExternalLinks/ExternalLinks.vue +200 -0
  40. package/src/components/ExternalLinks/config.ts +34 -0
  41. package/src/components/ExternalLinks/locales.ts +4 -0
  42. package/src/components/ExternalLinks/tests/ExternalLinks.spec.ts +154 -0
  43. package/src/components/ExternalLinks/tests/__snapshots__/ExternalLinks.spec.ts.snap +159 -0
  44. package/src/components/FooterBar/FooterBar.vue +105 -80
  45. package/src/components/FranceConnectBtn/FranceConnectBtn.vue +14 -13
  46. package/src/components/HeaderBar/HeaderBar.vue +3 -3
  47. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderBurgerMenu.vue +11 -7
  48. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/HeaderMenuItem.vue +5 -5
  49. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuSection/HeaderMenuSection.vue +2 -2
  50. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.vue +10 -8
  51. package/src/components/HeaderBar/HeaderLogo/HeaderLogo.vue +2 -2
  52. package/src/components/HeaderBar/HeaderLogo/logos/Logo-mobile.vue +2 -1
  53. package/src/components/HeaderBar/HeaderLogo/logos/Logo.vue +2 -1
  54. package/src/components/HeaderBar/HeaderMenuBtn/HeaderMenuBtn.vue +10 -10
  55. package/src/components/HeaderBar/consts.scss +1 -1
  56. package/src/components/HeaderLoading/HeaderLoading.vue +12 -11
  57. package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +2 -1
  58. package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +9 -9
  59. package/src/components/HeaderToolbar/HeaderToolbar.vue +215 -202
  60. package/src/components/LangBtn/LangBtn.vue +8 -6
  61. package/src/components/LogoBrandSection/LogoBrandSection.stories.ts +2 -2
  62. package/src/components/NirField/NirField.stories.ts +7 -7
  63. package/src/components/NirField/NirField.vue +44 -47
  64. package/src/components/NotFoundPage/NotFoundPage.stories.ts +33 -2
  65. package/src/components/NotFoundPage/NotFoundPage.vue +17 -0
  66. package/src/components/NotificationBar/NotificationBar.mdx +5 -5
  67. package/src/components/NotificationBar/NotificationBar.stories.ts +410 -314
  68. package/src/components/NotificationBar/NotificationBar.vue +43 -41
  69. package/src/components/PageContainer/PageContainer.vue +4 -4
  70. package/src/components/PasswordField/PasswordField.mdx +70 -0
  71. package/src/components/PasswordField/PasswordField.stories.ts +213 -0
  72. package/src/components/PasswordField/PasswordField.vue +189 -0
  73. package/src/components/PasswordField/config.ts +11 -0
  74. package/src/components/PasswordField/locales.ts +4 -0
  75. package/src/components/PasswordField/tests/PasswordField.spec.ts +96 -0
  76. package/src/components/PhoneField/PhoneField.mdx +0 -2
  77. package/src/components/PhoneField/PhoneField.stories.ts +10 -50
  78. package/src/components/PhoneField/PhoneField.vue +34 -34
  79. package/src/components/SkipLink/SkipLink.vue +10 -10
  80. package/src/components/SocialMediaLinks/SocialMediaLinks.vue +28 -26
  81. package/src/components/SubHeader/SubHeader.vue +32 -31
  82. package/src/components/SyAlert/SyAlert.vue +12 -12
  83. package/src/components/UserMenuBtn/UserMenuBtn.vue +1 -1
  84. package/src/components/UserMenuBtn/config.ts +1 -1
  85. package/src/components/index.ts +10 -7
  86. package/src/designTokens/index.ts +6 -4
  87. package/src/designTokens/{bootstrapColors.md → paColors.md} +1 -1
  88. package/src/designTokens/tokens/cnam/cnamLightTheme.ts +2 -0
  89. package/src/designTokens/tokens/pa/paColors.ts +171 -0
  90. package/src/designTokens/tokens/pa/paContextual.ts +58 -0
  91. package/src/designTokens/tokens/pa/paDarkTheme.ts +5 -0
  92. package/src/designTokens/tokens/pa/paLightTheme.ts +123 -0
  93. package/src/designTokens/tokens/pa/paSemantic.ts +87 -0
  94. package/src/stories/GuideDuDev/CreerUneIssue.mdx +64 -0
  95. package/src/stories/GuideDuDev/{CommentUtiliserLesRules.mdx → UtiliserLesRules.mdx} +2 -2
  96. package/src/stories/GuideDuDev/components.stories.ts +9 -7
  97. package/src/stories/Guidelines/Vuetify/Vuetify.stories.ts +163 -88
  98. package/src/stories/Guidelines/Vuetify/VuetifyItems.ts +250 -23
  99. package/src/temp/TestDTComponent.vue +5 -6
  100. package/src/designTokens/tokens/bootstrap/bootstrapColors.ts +0 -158
  101. package/src/designTokens/tokens/bootstrap/bootstrapLightTheme.ts +0 -22
  102. package/src/stories/GuideDuDev/CommentContribuer.mdx +0 -22
@@ -129,19 +129,19 @@ $grey-lighten-20: #76797a;
129
129
  $grey-lighten-40: #989b9b;
130
130
  $grey-lighten-60: #bbbcbd;
131
131
  $grey-lighten-80: #dddede;
132
- $grey-lighten-90: #eeeeee;
132
+ $grey-lighten-90: #eee;
133
133
  $grey-lighten-97: #fafafa;
134
- $white-20: rgba(255, 255, 255, 0.2000);
135
- $white-38: rgba(255, 255, 255, 0.3800);
136
- $white-40: rgba(255, 255, 255, 0.4000);
137
- $white-70: rgba(255, 255, 255, 0.7000);
138
- $white-base: #ffffff;
139
- $white-08: rgba(255, 255, 255, 0.0800);
140
- $white-00: rgba(255, 255, 255, 0.0000);
134
+ $white-20: rgb(255 255 255 / 20%);
135
+ $white-38: rgb(255 255 255 / 38%);
136
+ $white-40: rgb(255 255 255 / 40%);
137
+ $white-70: rgb(255 255 255 / 70%);
138
+ $white-base: #fff;
139
+ $white-08: rgb(255 255 255 / 8%);
140
+ $white-00: rgb(255 255 255 / 0%);
141
141
  $none-value: undefined;
142
- $transparent-blue-18: rgba(12, 65, 154, 0.1800);
143
- $transparent-blue-08: rgba(12, 65, 154, 0.0800);
144
- $transparent-blue-00: rgba(12, 65, 154, 0.0000);
142
+ $transparent-blue-18: rgb(12 65 154 / 18%);
143
+ $transparent-blue-08: rgb(12 65 154 / 8%);
144
+ $transparent-blue-00: rgb(12 65 154 / 0%);
145
145
 
146
146
  // Semantic Tokens
147
147
  $primary-darker-2: #07275c;
@@ -156,11 +156,11 @@ $neutral-black: #222324;
156
156
  $neutral-black-lighter: #545859;
157
157
  $neutral-black-lighter-2: #989b9b;
158
158
  $neutral-grey: #dddede;
159
- $neutral-white: #ffffff;
160
- $neutral-white-alpha: rgba(255, 255, 255, 0.7);
161
- $neutral-white-alpha-lighter: rgba(255, 255, 255, 0.4);
162
- $neutral-white-alpha-lighter-2: rgba(255, 255, 255, 0.2);
163
- $neutral-white-alpha-lighter-3: rgba(255, 255, 255, 0.08);
159
+ $neutral-white: #fff;
160
+ $neutral-white-alpha: rgb(255 255 255 / 70%);
161
+ $neutral-white-alpha-lighter: rgb(255 255 255 / 40%);
162
+ $neutral-white-alpha-lighter-2: rgb(255 255 255 / 20%);
163
+ $neutral-white-alpha-lighter-3: rgb(255 255 255 / 8%);
164
164
  $info-info-lightest: #e7ecf5;
165
165
  $info-info-lighter: #ced9eb;
166
166
  $info-default: #0c419a;
@@ -180,11 +180,11 @@ $user-assure: #ed76b3;
180
180
  $user-entreprise: #f0b323;
181
181
 
182
182
  // Contextual Tokens
183
- $colors-background: #ffffff;
184
- $colors-border: #dddddd;
185
- $colors-text: #333333;
186
- $colors-icon: #666666;
187
- $colors-overlay: rgba(0, 0, 0, 0.5);
183
+ $colors-background: #fff;
184
+ $colors-border: #ddd;
185
+ $colors-text: #333;
186
+ $colors-icon: #666;
187
+ $colors-overlay: rgb(0 0 0 / 50%);
188
188
  $colors-interactive: #007bff;
189
189
  $gap-0: 0;
190
190
  $gap-1: 4px;
@@ -227,8 +227,8 @@ $font-size-link-label: 14px;
227
227
 
228
228
  // Additional Contextual Tokens
229
229
  $colors-background-main: #e7ecf5;
230
- $colors-background-surface: #ffffff;
231
- $colors-background-main-alt: #ffffff;
230
+ $colors-background-surface: #fff;
231
+ $colors-background-main-alt: #fff;
232
232
  $colors-background-surface-alt: #e7ecf5;
233
233
  $colors-background-raised: #f8f9fc;
234
234
  $colors-background-accent: #0c419a;
@@ -247,25 +247,23 @@ $colors-background-error: #f9dcd7;
247
247
  $colors-background-error-subdued: #fcedeb;
248
248
  $colors-background-error-contrasted: #b33f2e;
249
249
  $colors-background-disabled: #dddede;
250
- $colors-background-disabled-ondark: rgba(255, 255, 255, 0.0800);
250
+ $colors-background-disabled-ondark: rgb(255 255 255 / 8%);
251
251
  $colors-background-assure: #ed76b3;
252
252
  $colors-background-professionnel: #66c9ec;
253
253
  $colors-background-entreprise: #f0b323;
254
-
255
254
  $colors-border-darker: #222324;
256
255
  $colors-border-base: #989b9b;
257
256
  $colors-border-subdued: #dddede;
258
257
  $colors-border-accent: #0c419a;
259
258
  $colors-border-accent-contrasted: #07275c;
260
- $colors-border-accent-ondark: #ffffff;
259
+ $colors-border-accent-ondark: #fff;
261
260
  $colors-border-info: #0c419a;
262
261
  $colors-border-success: #224e2d;
263
262
  $colors-border-warning: #60480e;
264
263
  $colors-border-error: #b33f2e;
265
- $colors-border-ondark: rgba(255, 255, 255, 0.7);
264
+ $colors-border-ondark: rgb(255 255 255 / 70%);
266
265
  $colors-border-disabled: #dddede;
267
- $colors-border-disabled-ondark: rgba(255, 255, 255, 0.4);
268
-
266
+ $colors-border-disabled-ondark: rgb(255 255 255 / 40%);
269
267
  $colors-text-base: #222324;
270
268
  $colors-text-accent: #0c419a;
271
269
  $colors-text-accent-contrasted: #07275c;
@@ -275,34 +273,30 @@ $colors-text-success: #224e2d;
275
273
  $colors-text-warning: #60480e;
276
274
  $colors-text-error: #b33f2e;
277
275
  $colors-text-disabled: #989b9b;
278
- $colors-text-ondark: #ffffff;
279
- $colors-text-subdued-ondark: rgba(255, 255, 255, 0.7);
280
- $colors-text-disabled-ondark: rgba(255, 255, 255, 0.4);
281
-
276
+ $colors-text-ondark: #fff;
277
+ $colors-text-subdued-ondark: rgb(255 255 255 / 70%);
278
+ $colors-text-disabled-ondark: rgb(255 255 255 / 40%);
282
279
  $colors-icon-base: #222324;
283
280
  $colors-icon-subdued: #545859;
284
- $colors-icon-subdued-ondark: rgba(255, 255, 255, 0.7);
281
+ $colors-icon-subdued-ondark: rgb(255 255 255 / 70%);
285
282
  $colors-icon-accent: #0c419a;
286
283
  $colors-icon-accent-contrasted: #07275c;
287
284
  $colors-icon-info: #0c419a;
288
285
  $colors-icon-success: #224e2d;
289
286
  $colors-icon-warning: #60480e;
290
287
  $colors-icon-error: #b33f2e;
291
- $colors-icon-ondark: #ffffff;
288
+ $colors-icon-ondark: #fff;
292
289
  $colors-icon-disabled: #989b9b;
293
- $colors-icon-disabled-ondark: rgba(255, 255, 255, 0.4);
294
-
290
+ $colors-icon-disabled-ondark: rgb(255 255 255 / 40%);
295
291
  $colors-overlay-fullpage: #989b9b;
296
- $colors-overlay-ondark: #ffffff;
292
+ $colors-overlay-ondark: #fff;
297
293
  $colors-overlay-onlight: #0c419a;
298
-
299
- $colors-interactive-default: rgba(255, 255, 255, 0.0000);
294
+ $colors-interactive-default: rgb(255 255 255 / 0%);
300
295
  $colors-interactive-hover: #e7ecf5;
301
296
  $colors-interactive-pressed: #ced9eb;
302
297
  $colors-interactive-focus: #e7ecf5;
303
- $colors-interactive-disabled: rgba(255, 255, 255, 0.0000);
298
+ $colors-interactive-disabled: rgb(255 255 255 / 0%);
304
299
  $colors-interactive-hover-on-selected: #ced9eb;
305
-
306
300
  $padding-0: 0;
307
301
  $padding-2: 8px;
308
302
  $padding-3: 12px;
@@ -312,93 +306,91 @@ $padding-8: 32px;
312
306
  $padding-10: 40px;
313
307
  $padding-14: 56px;
314
308
  $padding-16: 64px;
315
-
316
309
  $heading-1-font-size: 24px;
317
310
  $heading-2-font-size: 20px;
318
311
  $heading-3-font-size: 16px;
319
312
  $heading-4-font-size: 14px;
320
313
 
321
-
322
314
  .title {
323
- font-size: $font-size-title !important;
315
+ font-size: $font-size-title !important;
324
316
  }
325
317
 
326
318
  .alt-title {
327
- font-size: $font-size-alt-title !important;
319
+ font-size: $font-size-alt-title !important;
328
320
  }
329
321
 
330
322
  .body-text {
331
- font-size: $font-size-body-text !important;
323
+ font-size: $font-size-body-text !important;
332
324
  }
333
325
 
334
326
  .link-label {
335
- font-size: $font-size-link-label !important;
327
+ font-size: $font-size-link-label !important;
336
328
  }
337
329
 
338
330
  h1 {
339
- font-size: 32px !important;
340
- line-height: 130% !important;
331
+ font-size: 32px !important;
332
+ line-height: 130% !important;
341
333
  }
342
334
 
343
335
  .h1-bold {
344
- font-size: 32px !important;
345
- font-weight: bold !important;
346
- line-height: 130% !important;
336
+ font-size: 32px !important;
337
+ font-weight: bold !important;
338
+ line-height: 130% !important;
347
339
  }
348
340
 
349
341
  h2 {
350
- font-size: 28px !important;
351
- line-height: 130% !important;
342
+ font-size: 28px !important;
343
+ line-height: 130% !important;
352
344
  }
353
345
 
354
346
  .h2-bold {
355
- font-size: 28px !important;
356
- font-weight: bold !important;
357
- line-height: 130% !important;
347
+ font-size: 28px !important;
348
+ font-weight: bold !important;
349
+ line-height: 130% !important;
358
350
  }
359
351
 
360
352
  h3 {
361
- font-size: 24px !important;
362
- line-height: 130% !important;
353
+ font-size: 24px !important;
354
+ line-height: 130% !important;
363
355
  }
364
356
 
365
357
  .h3-bold {
366
- font-size: 24px !important;
367
- font-weight: bold !important;
368
- line-height: 130% !important;
358
+ font-size: 24px !important;
359
+ font-weight: bold !important;
360
+ line-height: 130% !important;
369
361
  }
370
362
 
371
363
  h4 {
372
- font-size: 20px !important;
373
- line-height: 130% !important;
364
+ font-size: 20px !important;
365
+ line-height: 130% !important;
374
366
  }
375
367
 
376
368
  .h4-bold {
377
- font-size: 20px !important;
378
- font-weight: bold !important;
379
- line-height: 130% !important;
369
+ font-size: 20px !important;
370
+ font-weight: bold !important;
371
+ line-height: 130% !important;
380
372
  }
381
373
 
382
374
  .display-1 {
383
- font-size: 40px !important;
384
- line-height: 130% !important;
375
+ font-size: 40px !important;
376
+ line-height: 130% !important;
385
377
  }
386
378
 
387
379
  .display-1-bold {
388
- font-size: 40px !important;
389
- font-weight: bold !important;
390
- line-height: 130% !important;
380
+ font-size: 40px !important;
381
+ font-weight: bold !important;
382
+ line-height: 130% !important;
391
383
  }
392
384
 
393
385
  .display-2 {
394
- font-size: 30px !important;
395
- line-height: 130% !important;
386
+ font-size: 30px !important;
387
+ line-height: 130% !important;
396
388
  }
397
389
 
398
390
  .display-2-bold {
399
- font-size: 30px !important;
400
- font-weight: bold !important;
401
- line-height: 130% !important;
391
+ font-size: 30px !important;
392
+ font-weight: bold !important;
393
+ line-height: 130% !important;
402
394
  }
403
395
 
404
396
  // espacement verticaux des elements
@@ -427,7 +419,6 @@ $spacing-horizontal-xx-large: 56px;
427
419
  $spacing-horizontal-xxx-large: 64px;
428
420
  $spacing-horizontal-huge: 80px;
429
421
 
430
-
431
422
  // Surcharger toutes les élévations pour utiliser uniquement l'élévation 02
432
423
  .elevation-1,
433
424
  .elevation-2,
@@ -453,7 +444,10 @@ $spacing-horizontal-huge: 80px;
453
444
  .elevation-22,
454
445
  .elevation-23,
455
446
  .elevation-24 {
456
- box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12) !important;
447
+ box-shadow:
448
+ 0 3px 1px -2px rgb(0 0 0 / 20%),
449
+ 0 2px 2px 0 rgb(0 0 0 / 14%),
450
+ 0 1px 5px 0 rgb(0 0 0 / 12%) !important;
457
451
  }
458
452
 
459
453
  // global.scss
@@ -465,35 +459,36 @@ $container-desktop-max-width: 960px;
465
459
 
466
460
  // Conteneur général
467
461
  .page-container {
468
- text-align: center;
469
- margin: 0 auto; // Centrer les conteneurs
470
- padding: 40px 40px 56px 56px;
471
- width: 1160px;
472
- // Mobile Styles
473
- @media (max-width: 600px) {
474
- max-width: $container-mobile-max-width;
475
- padding: 40px 24px 80px;
476
- display: grid;
477
- grid-template-columns: repeat(3, 1fr);
478
- grid-gap: 24px;
479
- width: 80%;
480
- }
481
-
482
- // Tablet Styles
483
- @media (min-width: 601px) and (max-width: 960px) {
484
- max-width: $container-tablet-max-width;
485
- width: 80%;
486
- display: grid;
487
- grid-template-columns: repeat(6, 1fr);
488
- grid-gap: 24px;
489
- }
490
-
491
- // Desktop Styles
492
- @media (min-width: 960px) {
493
- max-width: $container-desktop-max-width;
494
- width: 100%;
495
- display: grid;
496
- grid-template-columns: repeat(12, 1fr);
497
- grid-gap: 24px;
498
- }
499
- }
462
+ text-align: center;
463
+ margin: 0 auto; // Centrer les conteneurs
464
+ padding: 40px 40px 56px 56px;
465
+ width: 1160px;
466
+
467
+ // Mobile Styles
468
+ @media (width <= 600px) {
469
+ max-width: $container-mobile-max-width;
470
+ padding: 40px 24px 80px;
471
+ display: grid;
472
+ grid-template-columns: repeat(3, 1fr);
473
+ grid-gap: 24px;
474
+ width: 80%;
475
+ }
476
+
477
+ // Tablet Styles
478
+ @media (width >= 601px) and (width <= 960px) {
479
+ max-width: $container-tablet-max-width;
480
+ width: 80%;
481
+ display: grid;
482
+ grid-template-columns: repeat(6, 1fr);
483
+ grid-gap: 24px;
484
+ }
485
+
486
+ // Desktop Styles
487
+ @media (width >= 960px) {
488
+ max-width: $container-desktop-max-width;
489
+ width: 100%;
490
+ display: grid;
491
+ grid-template-columns: repeat(12, 1fr);
492
+ grid-gap: 24px;
493
+ }
494
+ }
@@ -51,9 +51,9 @@
51
51
  <style lang="scss" scoped>
52
52
  // Désactiver l'état de hover sur le thème clair
53
53
  .v-btn.v-theme--light:deep() {
54
- .v-btn__underlay,
55
- .v-btn__overlay {
56
- display: none;
57
- }
54
+ .v-btn__underlay,
55
+ .v-btn__overlay {
56
+ display: none;
57
+ }
58
58
  }
59
59
  </style>
@@ -131,6 +131,7 @@
131
131
  opacity: 1;
132
132
  float: right;
133
133
  }
134
+
134
135
  .v-btn--variant-outlined {
135
136
  background: white;
136
137
  }
@@ -15,7 +15,7 @@ L’élément `CollapsibleList` est utilisé pour afficher des listes de liens.
15
15
 
16
16
  <Source dark code={`
17
17
  <script setup lang="ts">
18
- import CollapsibleList from '@cnamts/synapse'
18
+ import { CollapsibleList } from '@cnamts/synapse'
19
19
  import type { ListItem } from '@cnamts/synapse/src/components/CollapsibleList/types'
20
20
 
21
21
  const remboursementItems = [
@@ -79,79 +79,78 @@
79
79
 
80
80
  <style lang="scss" scoped>
81
81
  .vd-panel {
82
- background-color: transparent;
82
+ background-color: transparent;
83
83
  }
84
84
 
85
85
  .vd-panel-title :deep(.v-expansion-panel-title__overlay) {
86
- background: transparent !important;
86
+ background: transparent !important;
87
87
  }
88
88
 
89
89
  .vd-panel-text :deep(.v-expansion-panel-text__wrapper) {
90
- padding: 0;
90
+ padding: 0;
91
91
  }
92
92
 
93
93
  li {
94
- list-style: none;
94
+ list-style: none;
95
95
  }
96
96
 
97
97
  a {
98
- transition: 0.15s;
99
- padding-top: 1px; // Add top padding to account for bottom border
100
- border-bottom: 1px solid transparent;
101
- color: black;
102
-
103
- &:hover,
104
- &:focus {
105
- border-color: currentColor;
106
- }
98
+ transition: 0.15s;
99
+ padding-top: 1px; // Add top padding to account for bottom border
100
+ border-bottom: 1px solid transparent;
101
+ color: black;
102
+
103
+ &:hover,
104
+ &:focus {
105
+ border-color: currentcolor;
106
+ }
107
107
  }
108
108
 
109
109
  .v-theme--dark a :deep() {
110
- color: white;
110
+ color: white;
111
111
  }
112
112
 
113
113
  .vd-collapse-list a {
114
- color: black;
114
+ color: black;
115
115
  }
116
116
 
117
117
  .vd-collapse-list :deep() {
118
- .text-subtitle-1 {
119
- font-size: 1.125rem !important;
120
- letter-spacing: .0015em !important;
121
- line-height: 1.75rem;
122
- }
118
+ .text-subtitle-1 {
119
+ font-size: 1.125rem !important;
120
+ letter-spacing: 0.0015em !important;
121
+ line-height: 1.75rem;
122
+ }
123
123
  }
124
124
 
125
125
  .vd-collapse-list.theme--dark :deep() {
126
- h4,
127
- ul,
128
- a,
129
- button {
130
- color: white !important;
131
- }
126
+ h4,
127
+ ul,
128
+ a,
129
+ button {
130
+ color: white !important;
131
+ }
132
132
  }
133
133
 
134
134
  .vd-collapse-list-mobile :deep() {
135
- .text-subtitle-2 {
136
- font-size: 1rem !important;
137
- letter-spacing: .001em !important;
138
- line-height: 1.375rem;
139
- font-weight: 600;
140
- }
141
- .v-icon {
142
- color: rgba(0, 0, 0, .54) !important;
143
- }
135
+ .text-subtitle-2 {
136
+ font-size: 1rem !important;
137
+ letter-spacing: 0.001em !important;
138
+ line-height: 1.375rem;
139
+ font-weight: 600;
140
+ }
141
+
142
+ button {
143
+ color: red !important;
144
+ }
145
+
146
+ .v-icon {
147
+ color: rgb(0 0 0 / 54%) !important;
148
+ }
144
149
  }
145
150
 
146
151
  .vd-collapse-list-mobile.theme--dark :deep() {
147
- button {
148
- color: white !important;
149
- }
150
- }
151
-
152
- .vd-collapse-list-mobile :deep() {
153
- button {
154
- color: red !important;
155
- }
152
+ button {
153
+ color: white !important;
154
+ }
156
155
  }
157
156
  </style>
@@ -0,0 +1,118 @@
1
+ import {Controls, Canvas, Meta, Source, Story} from '@storybook/blocks';
2
+ import * as ContextualMenuStories from './ContextualMenu.stories';
3
+
4
+ <Meta of={ContextualMenuStories} />
5
+
6
+ # ContextualMenu
7
+
8
+ L’élément `ContextualMenu` est utilisé pour afficher un menu avec une liste d’ancres pour la navigation.
9
+
10
+ <Canvas of={ContextualMenuStories.Default} />
11
+
12
+ # API
13
+
14
+ <Controls of={ContextualMenuStories.Default} />
15
+
16
+ # Exemple d'utilisation
17
+
18
+ <Source dark code={`
19
+ <script setup lang="ts">
20
+ import { ContextualMenu } from '@cnamts/synapse'
21
+ import { ref } from 'vue'
22
+
23
+ const items = [{
24
+ text: 'section 1',
25
+ hash: '#section-1',
26
+ }, {
27
+ text: 'section 2',
28
+ hash: '#section-2',
29
+ }, {
30
+ text: 'section 3',
31
+ hash: '#section-3',
32
+ }, {
33
+ text: 'section 4',
34
+ hash: '#section-4',
35
+ }, {
36
+ text: 'section 5',
37
+ hash: '#section-5',
38
+ }]
39
+
40
+ const hash = ref<string | null>(null)
41
+ </script>
42
+
43
+ <template>
44
+ <div class="wrapper">
45
+ <div class="menu">
46
+ <ContextualMenu
47
+ v-model="hash"
48
+ :items
49
+ />
50
+ </div>
51
+ <div class="content">
52
+ <section id="section-1">
53
+ <h2>section 1</h2>
54
+ <p>
55
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Alias, quae eligendi modi, rem consectetur cum labore voluptate nostrum molestiae asperiores dolorum, saepe perspiciatis quisquam provident placeat aut distinctio minima dolor.
56
+ Temporibus consequatur consectetur sequi. Sequi tempora velit soluta? Nam error, nesciunt molestiae provident possimus voluptas tempore porro at officia sint exercitationem dolore debitis eaque temporibus accusantium soluta? In, maxime excepturi.
57
+ </p>
58
+ </section>
59
+ <section id="section-2">
60
+ <h2>section 2</h2>
61
+ <p>
62
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Alias, quae eligendi modi, rem consectetur cum labore voluptate nostrum molestiae asperiores dolorum, saepe perspiciatis quisquam provident placeat aut distinctio minima dolor.
63
+ Temporibus consequatur consectetur sequi. Sequi tempora velit soluta? Nam error, nesciunt molestiae provident possimus voluptas tempore porro at officia sint exercitationem dolore debitis eaque temporibus accusantium soluta? In, maxime excepturi.
64
+ </p>
65
+ </section>
66
+ <section id="section-3">
67
+ <h2>section 3</h2>
68
+ <p>
69
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Alias, quae eligendi modi, rem consectetur cum labore voluptate nostrum molestiae asperiores dolorum, saepe perspiciatis quisquam provident placeat aut distinctio minima dolor.
70
+ Temporibus consequatur consectetur sequi. Sequi tempora velit soluta? Nam error, nesciunt molestiae provident possimus voluptas tempore porro at officia sint exercitationem dolore debitis eaque temporibus accusantium soluta? In, maxime excepturi.
71
+ </p>
72
+ </section>
73
+ <section id="section-4">
74
+ <h2>section 4</h2>
75
+ <p>
76
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Alias, quae eligendi modi, rem consectetur cum labore voluptate nostrum molestiae asperiores dolorum, saepe perspiciatis quisquam provident placeat aut distinctio minima dolor.
77
+ Temporibus consequatur consectetur sequi. Sequi tempora velit soluta? Nam error, nesciunt molestiae provident possimus voluptas tempore porro at officia sint exercitationem dolore debitis eaque temporibus accusantium soluta? In, maxime excepturi.
78
+ </p>
79
+ </section>
80
+ <section id="section-5">
81
+ <h2>section 5</h2>
82
+ <p>
83
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Alias, quae eligendi modi, rem consectetur cum labore voluptate nostrum molestiae asperiores dolorum, saepe perspiciatis quisquam provident placeat aut distinctio minima dolor.
84
+ Temporibus consequatur consectetur sequi. Sequi tempora velit soluta? Nam error, nesciunt molestiae provident possimus voluptas tempore porro at officia sint exercitationem dolore debitis eaque temporibus accusantium soluta? In, maxime excepturi.
85
+ </p>
86
+ </section>
87
+ </div>
88
+ </div>
89
+ </template>
90
+
91
+ <style lang="scss" scoped>
92
+ .wrapper {
93
+ display: flex;
94
+ flex-direction: row;
95
+ justify-content: space-evenly;
96
+ place-items: center;
97
+ height: 100dvh;
98
+ width: 500px;
99
+ }
100
+ .menu {
101
+ width: 200px;
102
+ }
103
+ .content {
104
+ border: 1px solid black;
105
+ height: 500px;
106
+ overflow-y: auto;
107
+ scroll-behavior: smooth;
108
+ }
109
+
110
+ section {
111
+ padding: 20px;
112
+ }
113
+
114
+ section p {
115
+ max-width: 300px;
116
+ }
117
+ </style>
118
+ `} />