@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
@@ -158,7 +158,6 @@
158
158
  </template>
159
159
 
160
160
  <style lang="scss" scoped>
161
-
162
161
  .vd-cookie-banner {
163
162
  position: fixed;
164
163
  left: 50%;
@@ -176,16 +175,17 @@
176
175
  display: flex;
177
176
  flex-direction: column;
178
177
  width: 100%;
179
- background: transparent;
178
+ background: transparent;
180
179
  }
181
180
 
182
181
  .vd-cookie-banner-content {
183
182
  overflow-y: auto;
184
183
  padding-right: 8px;
185
- background: transparent;
186
- div {
187
- background: transparent;
188
- }
184
+ background: transparent;
185
+
186
+ div {
187
+ background: transparent;
188
+ }
189
189
  }
190
190
 
191
191
  .vd-cookie-banner-action-ctn .v-btn {
@@ -193,12 +193,13 @@
193
193
  }
194
194
 
195
195
  .v-btn--icon {
196
- color: rgba(0, 0, 0, 0.54);
196
+ color: rgb(0 0 0 / 54%);
197
197
  position: absolute;
198
198
  right: 24px;
199
199
  }
200
200
 
201
- .height-enter-active, .height-leave-active {
201
+ .height-enter-active,
202
+ .height-leave-active {
202
203
  box-sizing: border-box;
203
204
  transition: height 2s ease;
204
205
  interpolate-size: allow-keywords;
@@ -214,11 +215,13 @@
214
215
  transition: height 0.1s ease;
215
216
  }
216
217
 
217
- .height-enter-from, .height-leave-to {
218
+ .height-enter-from,
219
+ .height-leave-to {
218
220
  height: 0;
219
221
  }
220
222
 
221
- .height-enter-to, .height-leave-from {
223
+ .height-enter-to,
224
+ .height-leave-from {
222
225
  height: auto;
223
226
  }
224
227
 
@@ -42,9 +42,9 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
42
42
  <table>
43
43
  <thead data-v-d0e8c396="">
44
44
  <tr data-v-d0e8c396="">
45
- <th data-v-d0e8c396="" style="width: 180px;" class="text-left">Dénomination du cookie</th>
46
- <th data-v-d0e8c396="" style="width: 328px;" class="text-left">Finalité</th>
47
- <th data-v-d0e8c396="" style="width: 180px;" class="text-left">Durée de conservation</th>
45
+ <th data-v-d0e8c396="" style="width: 180px;" class="text-left" scope="col">Dénomination du cookie</th>
46
+ <th data-v-d0e8c396="" style="width: 328px;" class="text-left" scope="col">Finalité</th>
47
+ <th data-v-d0e8c396="" style="width: 180px;" class="text-left" scope="col">Durée de conservation</th>
48
48
  </tr>
49
49
  </thead>
50
50
  <tbody data-v-d0e8c396="">
@@ -77,9 +77,9 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
77
77
  <table>
78
78
  <thead data-v-d0e8c396="">
79
79
  <tr data-v-d0e8c396="">
80
- <th data-v-d0e8c396="" style="width: 180px;" class="text-left">Dénomination du cookie</th>
81
- <th data-v-d0e8c396="" style="width: 328px;" class="text-left">Finalité</th>
82
- <th data-v-d0e8c396="" style="width: 180px;" class="text-left">Durée de conservation</th>
80
+ <th data-v-d0e8c396="" style="width: 180px;" class="text-left" scope="col">Dénomination du cookie</th>
81
+ <th data-v-d0e8c396="" style="width: 328px;" class="text-left" scope="col">Finalité</th>
82
+ <th data-v-d0e8c396="" style="width: 180px;" class="text-left" scope="col">Durée de conservation</th>
83
83
  </tr>
84
84
  </thead>
85
85
  <tbody data-v-d0e8c396="">
@@ -96,9 +96,10 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
96
96
  </details>
97
97
  <div data-v-2ca04413="" class="v-input v-input--horizontal v-input--center-affix v-input--density-default v-theme--light v-locale--is-ltr v-radio-group vd-cookies-information__radio-group" data-test-id="radio-group">
98
98
  <!---->
99
- <div class="v-input__control">
100
- <!---->
101
- <div class="v-selection-control-group v-selection-control-group--inline" role="radiogroup" aria-describedby="radio-group-7-messages">
99
+ <div class="v-input__control"><label class="v-label" id="radio-group-7">
100
+ <!---->Accepter les cookies de type Cookies fonctionnels, ce champ est requis.
101
+ </label>
102
+ <div class="v-selection-control-group v-selection-control-group--inline" role="radiogroup" label="Accepter les cookies de type Cookies fonctionnels, ce champ est requis." aria-describedby="radio-group-7-messages" aria-labelledby="radio-group-7">
102
103
  <div data-v-2ca04413="" class="v-spacer"></div>
103
104
  <div data-v-2ca04413="" class="v-selection-control v-selection-control--inline v-selection-control--density-default v-radio">
104
105
  <div class="v-selection-control__wrapper">
@@ -133,9 +134,9 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
133
134
  <table>
134
135
  <thead data-v-d0e8c396="">
135
136
  <tr data-v-d0e8c396="">
136
- <th data-v-d0e8c396="" style="width: 180px;" class="text-left">Dénomination du cookie</th>
137
- <th data-v-d0e8c396="" style="width: 328px;" class="text-left">Finalité</th>
138
- <th data-v-d0e8c396="" style="width: 180px;" class="text-left">Durée de conservation</th>
137
+ <th data-v-d0e8c396="" style="width: 180px;" class="text-left" scope="col">Dénomination du cookie</th>
138
+ <th data-v-d0e8c396="" style="width: 328px;" class="text-left" scope="col">Finalité</th>
139
+ <th data-v-d0e8c396="" style="width: 180px;" class="text-left" scope="col">Durée de conservation</th>
139
140
  </tr>
140
141
  </thead>
141
142
  <tbody data-v-d0e8c396="">
@@ -152,9 +153,10 @@ exports[`CookieBanner > does not close the dialog when the customize button is c
152
153
  </details>
153
154
  <div data-v-2ca04413="" class="v-input v-input--horizontal v-input--center-affix v-input--density-default v-theme--light v-locale--is-ltr v-radio-group vd-cookies-information__radio-group" data-test-id="radio-group">
154
155
  <!---->
155
- <div class="v-input__control">
156
- <!---->
157
- <div class="v-selection-control-group v-selection-control-group--inline" role="radiogroup" aria-describedby="radio-group-12-messages">
156
+ <div class="v-input__control"><label class="v-label" id="radio-group-12">
157
+ <!---->Accepter les cookies de type Cookies d’analyse, ce champ est requis.
158
+ </label>
159
+ <div class="v-selection-control-group v-selection-control-group--inline" role="radiogroup" label="Accepter les cookies de type Cookies d’analyse, ce champ est requis." aria-describedby="radio-group-12-messages" aria-labelledby="radio-group-12">
158
160
  <div data-v-2ca04413="" class="v-spacer"></div>
159
161
  <div data-v-2ca04413="" class="v-selection-control v-selection-control--inline v-selection-control--density-default v-radio">
160
162
  <div class="v-selection-control__wrapper">
@@ -73,6 +73,7 @@
73
73
  :rules="[required]"
74
74
  data-test-id="radio-group"
75
75
  inline
76
+ :label="locales.fieldLabel(locales[type].title)"
76
77
  hide-details="auto"
77
78
  class="vd-cookies-information__radio-group"
78
79
  @update:model-value="status = $event === 'accept'"
@@ -96,7 +97,7 @@
96
97
  </template>
97
98
 
98
99
  <style lang="scss" scoped>
99
- @use '@/assets/tokens.scss';
100
+ @use '@/assets/tokens';
100
101
 
101
102
  details > summary {
102
103
  cursor: pointer;
@@ -119,5 +120,9 @@ details > summary {
119
120
  :deep(.v-messages) {
120
121
  text-align: end;
121
122
  }
123
+
124
+ :deep(.v-label) {
125
+ justify-content: end;
126
+ }
122
127
  }
123
128
  </style>
@@ -18,4 +18,5 @@ export const locales = {
18
18
  hideInformation: 'Masquer les cookies',
19
19
  reject: 'Refuser',
20
20
  accept: 'Accepter',
21
+ fieldLabel: (cookieCategory: string) => `Accepter les cookies de type ${cookieCategory}, ce champ est requis.`,
21
22
  } as const
@@ -14,6 +14,7 @@
14
14
  :key="index"
15
15
  :style="{ width: item.width }"
16
16
  class="text-left"
17
+ scope="col"
17
18
  >
18
19
  {{ item.label }}
19
20
  </th>
@@ -42,9 +42,9 @@ exports[`CookiesSelection > renders correctly 1`] = `
42
42
  <table>
43
43
  <thead data-v-d0e8c396="">
44
44
  <tr data-v-d0e8c396="">
45
- <th data-v-d0e8c396="" style="width: 180px;" class="text-left">Dénomination du cookie</th>
46
- <th data-v-d0e8c396="" style="width: 328px;" class="text-left">Finalité</th>
47
- <th data-v-d0e8c396="" style="width: 180px;" class="text-left">Durée de conservation</th>
45
+ <th data-v-d0e8c396="" style="width: 180px;" class="text-left" scope="col">Dénomination du cookie</th>
46
+ <th data-v-d0e8c396="" style="width: 328px;" class="text-left" scope="col">Finalité</th>
47
+ <th data-v-d0e8c396="" style="width: 180px;" class="text-left" scope="col">Durée de conservation</th>
48
48
  </tr>
49
49
  </thead>
50
50
  <tbody data-v-d0e8c396="">
@@ -77,9 +77,9 @@ exports[`CookiesSelection > renders correctly 1`] = `
77
77
  <table>
78
78
  <thead data-v-d0e8c396="">
79
79
  <tr data-v-d0e8c396="">
80
- <th data-v-d0e8c396="" style="width: 180px;" class="text-left">Dénomination du cookie</th>
81
- <th data-v-d0e8c396="" style="width: 328px;" class="text-left">Finalité</th>
82
- <th data-v-d0e8c396="" style="width: 180px;" class="text-left">Durée de conservation</th>
80
+ <th data-v-d0e8c396="" style="width: 180px;" class="text-left" scope="col">Dénomination du cookie</th>
81
+ <th data-v-d0e8c396="" style="width: 328px;" class="text-left" scope="col">Finalité</th>
82
+ <th data-v-d0e8c396="" style="width: 180px;" class="text-left" scope="col">Durée de conservation</th>
83
83
  </tr>
84
84
  </thead>
85
85
  <tbody data-v-d0e8c396="">
@@ -96,9 +96,10 @@ exports[`CookiesSelection > renders correctly 1`] = `
96
96
  </details>
97
97
  <div data-v-2ca04413="" class="v-input v-input--horizontal v-input--center-affix v-input--density-default v-theme--light v-locale--is-ltr v-radio-group vd-cookies-information__radio-group" data-test-id="radio-group">
98
98
  <!---->
99
- <div class="v-input__control">
100
- <!---->
101
- <div class="v-selection-control-group v-selection-control-group--inline" role="radiogroup" aria-describedby="radio-group-2-messages">
99
+ <div class="v-input__control"><label class="v-label" id="radio-group-2">
100
+ <!---->Accepter les cookies de type Cookies fonctionnels, ce champ est requis.
101
+ </label>
102
+ <div class="v-selection-control-group v-selection-control-group--inline" role="radiogroup" label="Accepter les cookies de type Cookies fonctionnels, ce champ est requis." aria-describedby="radio-group-2-messages" aria-labelledby="radio-group-2">
102
103
  <div data-v-2ca04413="" class="v-spacer"></div>
103
104
  <div data-v-2ca04413="" class="v-selection-control v-selection-control--inline v-selection-control--density-default v-radio">
104
105
  <div class="v-selection-control__wrapper">
@@ -133,9 +134,9 @@ exports[`CookiesSelection > renders correctly 1`] = `
133
134
  <table>
134
135
  <thead data-v-d0e8c396="">
135
136
  <tr data-v-d0e8c396="">
136
- <th data-v-d0e8c396="" style="width: 180px;" class="text-left">Dénomination du cookie</th>
137
- <th data-v-d0e8c396="" style="width: 328px;" class="text-left">Finalité</th>
138
- <th data-v-d0e8c396="" style="width: 180px;" class="text-left">Durée de conservation</th>
137
+ <th data-v-d0e8c396="" style="width: 180px;" class="text-left" scope="col">Dénomination du cookie</th>
138
+ <th data-v-d0e8c396="" style="width: 328px;" class="text-left" scope="col">Finalité</th>
139
+ <th data-v-d0e8c396="" style="width: 180px;" class="text-left" scope="col">Durée de conservation</th>
139
140
  </tr>
140
141
  </thead>
141
142
  <tbody data-v-d0e8c396="">
@@ -152,9 +153,10 @@ exports[`CookiesSelection > renders correctly 1`] = `
152
153
  </details>
153
154
  <div data-v-2ca04413="" class="v-input v-input--horizontal v-input--center-affix v-input--density-default v-theme--light v-locale--is-ltr v-radio-group vd-cookies-information__radio-group" data-test-id="radio-group">
154
155
  <!---->
155
- <div class="v-input__control">
156
- <!---->
157
- <div class="v-selection-control-group v-selection-control-group--inline" role="radiogroup" aria-describedby="radio-group-7-messages">
156
+ <div class="v-input__control"><label class="v-label" id="radio-group-7">
157
+ <!---->Accepter les cookies de type Cookies d’analyse, ce champ est requis.
158
+ </label>
159
+ <div class="v-selection-control-group v-selection-control-group--inline" role="radiogroup" label="Accepter les cookies de type Cookies d’analyse, ce champ est requis." aria-describedby="radio-group-7-messages" aria-labelledby="radio-group-7">
158
160
  <div data-v-2ca04413="" class="v-spacer"></div>
159
161
  <div data-v-2ca04413="" class="v-selection-control v-selection-control--inline v-selection-control--density-default v-radio">
160
162
  <div class="v-selection-control__wrapper">
@@ -86,17 +86,17 @@
86
86
  </template>
87
87
 
88
88
  <style lang="scss">
89
- @use '@/assets/tokens.scss';
89
+ @use '@/assets/tokens';
90
90
 
91
91
  .vd-copy-tooltip-menu {
92
- padding: 6px 16px;
93
- box-shadow: none;
94
- margin-top: 2px;
95
- background: rgba(84, 88, 89, 0.95);
96
- color: white;
92
+ padding: 6px 16px;
93
+ box-shadow: none;
94
+ margin-top: 2px;
95
+ background: rgb(84 88 89 / 95%);
96
+ color: white;
97
97
  }
98
98
 
99
99
  .v-btn--icon .v-icon {
100
- color: tokens.$grey-lighten-20;
100
+ color: tokens.$grey-lighten-20;
101
101
  }
102
102
  </style>
@@ -213,42 +213,42 @@
213
213
  </template>
214
214
 
215
215
  <style lang="scss" scoped>
216
- @use '@/assets/tokens.scss';
216
+ @use '@/assets/tokens';
217
217
  @use '@/assets/tokens' as *;
218
218
 
219
219
  .vd-user-menu-btn-ctn {
220
- position: relative;
221
- z-index: 1;
220
+ position: relative;
221
+ z-index: 1;
222
222
 
223
- .v-btn.v-btn--density-default {
224
- height: auto !important;
225
- }
223
+ .v-btn.v-btn--density-default {
224
+ height: auto !important;
225
+ }
226
226
 
227
- .v-btn {
228
- text-transform: none !important;
229
- }
227
+ .v-btn {
228
+ text-transform: none !important;
229
+ }
230
230
  }
231
231
 
232
232
  .vd-user-menu-btn {
233
- outline: none;
234
- padding: 12px !important;
235
-
236
- &:hover:before {
237
- background: #000;
238
- opacity: 0.05;
239
- }
240
-
241
- &:focus:before {
242
- background: tokens.$blue-base;
243
- opacity: 0.08;
244
- }
245
-
246
- &:focus {
247
- background: rgba(tokens.$blue-base, 0.08) !important;
248
- }
233
+ outline: none;
234
+ padding: 12px !important;
235
+
236
+ &:hover::before {
237
+ background: #000;
238
+ opacity: 0.05;
239
+ }
240
+
241
+ &:focus::before {
242
+ background: tokens.$blue-base;
243
+ opacity: 0.08;
244
+ }
245
+
246
+ &:focus {
247
+ background: rgba(tokens.$blue-base, 0.08) !important;
248
+ }
249
249
  }
250
250
 
251
251
  :deep(.vd-user-menu-btn:focus > .v-btn__overlay) {
252
- opacity: 0 !important;
252
+ opacity: 0 !important;
253
253
  }
254
254
  </style>
@@ -200,53 +200,53 @@
200
200
  </template>
201
201
 
202
202
  <style lang="scss" scoped>
203
- @use '@/assets/tokens.scss';
203
+ @use '@/assets/tokens';
204
204
 
205
205
  .sy-input-select {
206
- text-transform: none !important;
207
- font-size: 16px;
206
+ text-transform: none !important;
207
+ font-size: 16px;
208
208
  }
209
209
 
210
210
  .v-input {
211
- cursor: pointer;
212
- position: relative;
211
+ cursor: pointer;
212
+ position: relative;
213
213
  }
214
214
 
215
215
  .v-list {
216
- position: absolute;
217
- width: 100%;
218
- z-index: 1;
219
- background-color: white;
220
- min-width: fit-content;
221
- max-width: 100px;
222
- padding: 0;
223
- box-shadow: 0 2px 5px rgba(0, 0, 0, 0.12), 0 2px 10px rgba(0, 0, 0, 0.08);
224
- border-radius: 4px;
225
- overflow-y: auto;
226
- max-height: 300px;
216
+ position: absolute;
217
+ width: 100%;
218
+ z-index: 1;
219
+ background-color: white;
220
+ min-width: fit-content;
221
+ max-width: 100px;
222
+ padding: 0;
223
+ box-shadow: 0 2px 5px rgb(0 0 0 / 12%), 0 2px 10px rgb(0 0 0 / 8%);
224
+ border-radius: 4px;
225
+ overflow-y: auto;
226
+ max-height: 300px;
227
227
  }
228
228
 
229
229
  .v-list-item:hover {
230
- background-color: rgba(0, 0, 0, 0.04);
230
+ background-color: rgb(0 0 0 / 4%);
231
231
  }
232
232
 
233
233
  :deep(.v-list-item[aria-selected='true']) {
234
- background-color: rgba(0, 0, 0, 0.08);
234
+ background-color: rgb(0 0 0 / 8%);
235
235
 
236
- .v-list-item-title {
237
- font-weight: bold;
238
- }
236
+ .v-list-item-title {
237
+ font-weight: bold;
238
+ }
239
239
  }
240
240
 
241
241
  .error {
242
- border-color: tokens.$danger-default;
242
+ border-color: tokens.$danger-default;
243
243
  }
244
244
 
245
245
  .v-btn {
246
- color: tokens.$blue-base;
246
+ color: tokens.$blue-base;
247
247
  }
248
248
 
249
249
  .text-color {
250
- color: tokens.$blue-base;
250
+ color: tokens.$blue-base;
251
251
  }
252
252
  </style>
@@ -183,56 +183,57 @@
183
183
  </template>
184
184
 
185
185
  <style scoped lang="scss">
186
- @use '@/assets/tokens.scss';
186
+ @use '@/assets/tokens';
187
187
 
188
188
  .sy-select {
189
- display: flex;
190
- flex-direction: column;
189
+ display: flex;
190
+ flex-direction: column;
191
191
  }
192
192
 
193
193
  .v-field {
194
- position: relative;
194
+ position: relative;
195
195
  }
196
+
196
197
  .v-field--focused {
197
- .v-icon.arrow {
198
- transform: rotateX(180deg);
199
- }
198
+ .v-icon.arrow {
199
+ transform: rotateX(180deg);
200
+ }
200
201
  }
201
202
 
202
203
  .v-list {
203
- position: absolute;
204
- left: inherit !important;
205
- margin-top: -22px;
206
- background-color: white;
207
- max-height: 300px;
208
- padding: 0;
209
- box-shadow: 0 2px 5px rgba(0, 0, 0, 0.12), 0 2px 10px rgba(0, 0, 0, 0.08);
210
- border-radius: 4px;
211
- overflow-y: auto;
212
- z-index: 2;
204
+ position: absolute;
205
+ left: inherit !important;
206
+ margin-top: -22px;
207
+ background-color: white;
208
+ max-height: 300px;
209
+ padding: 0;
210
+ box-shadow: 0 2px 5px rgb(0 0 0 / 12%), 0 2px 10px rgb(0 0 0 / 8%);
211
+ border-radius: 4px;
212
+ overflow-y: auto;
213
+ z-index: 2;
213
214
  }
214
215
 
215
216
  .v-list-item:hover {
216
- background-color: rgba(0, 0, 0, 0.04);
217
+ background-color: rgb(0 0 0 / 4%);
217
218
  }
218
219
 
219
220
  .v-list-item[aria-selected='true'] {
220
- background-color: rgba(0, 0, 0, 0.08);
221
+ background-color: rgb(0 0 0 / 8%);
221
222
  }
222
223
 
223
224
  .v-icon {
224
- position: absolute;
225
- right: 10px;
226
- color: tokens.$grey-darken-20;
225
+ position: absolute;
226
+ right: 10px;
227
+ color: tokens.$grey-darken-20;
227
228
  }
228
229
 
229
230
  :deep(.v-field__input) {
230
- color: tokens.$grey-darken-20
231
+ color: tokens.$grey-darken-20;
231
232
  }
232
233
 
233
234
  .hidden-label {
234
- visibility: hidden;
235
- position: absolute;
236
- white-space: nowrap;
235
+ visibility: hidden;
236
+ position: absolute;
237
+ white-space: nowrap;
237
238
  }
238
239
  </style>
@@ -421,8 +421,9 @@ export const ActionBtn: Story = {
421
421
  code: `
422
422
  <script setup lang="ts">
423
423
  import { DataList } from '@cnamts/synapse'
424
+ import { ref } from 'vue'
424
425
 
425
- const items = [
426
+ const items = ref([
426
427
  {
427
428
  key: 'Nom',
428
429
  value: 'Dupont',
@@ -436,7 +437,7 @@ export const ActionBtn: Story = {
436
437
  value: '24/09/1970',
437
438
  action: 'Modifier',
438
439
  },
439
- ]
440
+ ])
440
441
 
441
442
  const updateBirthdate = (index: number) => {
442
443
  items[index].value = '25/09/1970'
@@ -135,6 +135,6 @@
135
135
 
136
136
  <style lang="scss" scoped>
137
137
  :deep(ul) {
138
- list-style: none;
138
+ list-style: none;
139
139
  }
140
140
  </style>
@@ -332,8 +332,9 @@ export const ActionBtn: Story = {
332
332
  code: `
333
333
  <script setup lang="ts">
334
334
  import { DataListGroup } from '@cnamts/synapse'
335
+ import { ref } from 'vue'
335
336
 
336
- const items = [
337
+ const items = ref([
337
338
  {
338
339
  title: 'Informations patient',
339
340
  items: [
@@ -374,7 +375,7 @@ export const ActionBtn: Story = {
374
375
  },
375
376
  ],
376
377
  },
377
- ]
378
+ ])
378
379
 
379
380
  const updateBirthdate = (eventValue: object) => {
380
381
  items.value[eventValue.dataListIndex].items[eventValue.itemIndex].value = '25/09/1970'
@@ -111,25 +111,25 @@
111
111
 
112
112
  <style lang="scss" scoped>
113
113
  .vd-row {
114
- display: flex;
115
- flex-wrap: wrap;
114
+ display: flex;
115
+ flex-wrap: wrap;
116
116
 
117
- .vd-data-list-item-label {
118
- align-self: center;
117
+ .vd-data-list-item-label {
118
+ align-self: center;
119
119
 
120
- &::after {
121
- content: ':';
122
- margin: 0 4px;
123
- }
124
- }
120
+ &::after {
121
+ content: ':';
122
+ margin: 0 4px;
123
+ }
124
+ }
125
125
  }
126
126
 
127
127
  .vd-data-list-item-action-btn.v-btn {
128
- min-width: 0;
129
- margin: 0 -1px;
128
+ min-width: 0;
129
+ margin: 0 -1px;
130
130
  }
131
131
 
132
132
  .v-icon.v-theme--light {
133
- color: rgba(0, 0, 0, 0.54);
133
+ color: rgb(0 0 0 / 54%);
134
134
  }
135
135
  </style>
@@ -1,4 +1,4 @@
1
- import { Meta, Canvas, Controls } from '@storybook/blocks';
1
+ import { Meta, Canvas, Controls, Source } from '@storybook/blocks';
2
2
  import * as DialogBoxStories from './DialogBox.stories';
3
3
 
4
4
  <Meta of={DialogBoxStories} />
@@ -11,4 +11,30 @@ L’élément `DialogBox` est utilisé pour afficher une boîte de dialogue avec
11
11
 
12
12
  # API
13
13
 
14
- <Controls of={DialogBoxStories.Default} />
14
+ <Controls of={DialogBoxStories.Default} />
15
+
16
+ # Exemple d'utilisation
17
+
18
+ <Source dark code={`
19
+ <script setup lang="ts">
20
+ import { DialogBox } from '@cnamts/synapse'
21
+ import { ref } from 'vue'
22
+
23
+ const dialogOpen = ref(false)
24
+ </script>
25
+
26
+ <template>
27
+ <VBtn
28
+ color="primary"
29
+ @click="dialogOpen = !dialogOpen"
30
+ >Toggle DialogBox</VBtn>
31
+ <DialogBox
32
+ v-model="dialogOpen"
33
+ title="DialogBox title"
34
+ @confirm="dialogOpen = false"
35
+ @cancel="dialogOpen = false"
36
+ >
37
+ DialogBox content
38
+ </DialogBox>
39
+ </template>
40
+ `} />
@@ -429,7 +429,7 @@ export const Persistent: Story = {
429
429
  <DialogBox
430
430
  v-model="dialogOpen"
431
431
  title="DialogBox title"
432
- Persistent
432
+ persistent
433
433
  @confirm="dialogOpen = false"
434
434
  @cancel="dialogOpen = false"
435
435
  >