@cnamts/synapse 0.0.14-alpha → 0.0.15-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 (86) hide show
  1. package/dist/components/Customs/SyInputSelect/SyInputSelect.d.ts +2 -2
  2. package/dist/components/Customs/SySelect/SySelect.d.ts +24 -12
  3. package/dist/components/Customs/SySelect/locales.d.ts +3 -0
  4. package/dist/components/Customs/SyTextField/SyTextField.d.ts +2 -2
  5. package/dist/components/DatePicker/DatePicker.d.ts +732 -16
  6. package/dist/components/DatePicker/DateTextInput.d.ts +8 -8
  7. package/dist/components/DialogBox/config.d.ts +1 -1
  8. package/dist/components/DownloadBtn/DownloadBtn.d.ts +2 -0
  9. package/dist/components/LangBtn/LangBtn.d.ts +467 -1
  10. package/dist/components/LangBtn/config.d.ts +1 -3
  11. package/dist/components/NirField/NirField.d.ts +13 -13
  12. package/dist/components/PasswordField/PasswordField.d.ts +2 -2
  13. package/dist/components/PeriodField/PeriodField.d.ts +1462 -30
  14. package/dist/components/PhoneField/PhoneField.d.ts +3 -3
  15. package/dist/components/SelectBtnField/SelectBtnField.d.ts +1 -1
  16. package/dist/components/SkipLink/SkipLink.d.ts +3 -2
  17. package/dist/components/UserMenuBtn/UserMenuBtn.d.ts +2 -0
  18. package/dist/components/index.d.ts +1 -0
  19. package/dist/design-system-v3.js +3038 -2936
  20. package/dist/design-system-v3.umd.cjs +1 -1
  21. package/dist/style.css +1 -1
  22. package/dist/vuetifyConfig.d.ts +1 -0
  23. package/package.json +1 -1
  24. package/src/components/BackBtn/Accessibilite.stories.ts +4 -0
  25. package/src/components/BackBtn/BackBtn.vue +2 -1
  26. package/src/components/BackToTopBtn/Accessibilite.stories.ts +4 -0
  27. package/src/components/BackToTopBtn/BackToTopBtn.stories.ts +78 -21
  28. package/src/components/BackToTopBtn/BackToTopBtn.vue +15 -0
  29. package/src/components/BackToTopBtn/config.ts +2 -2
  30. package/src/components/BackToTopBtn/tests/__snapshots__/BackToTopBtn.spec.ts.snap +4 -4
  31. package/src/components/CopyBtn/Accessibilite.stories.ts +4 -0
  32. package/src/components/Customs/SyBtnSelect/SyBtnSelect.stories.ts +2 -2
  33. package/src/components/Customs/SyBtnSelect/SyBtnSelect.vue +0 -1
  34. package/src/components/Customs/SyInputSelect/SyInputSelect.stories.ts +3 -3
  35. package/src/components/Customs/SyInputSelect/SyInputSelect.vue +4 -4
  36. package/src/components/Customs/SySelect/SySelect.stories.ts +4 -0
  37. package/src/components/Customs/SySelect/SySelect.vue +75 -10
  38. package/src/components/Customs/SySelect/locales.ts +3 -0
  39. package/src/components/Customs/SySelect/tests/SySelect.spec.ts +24 -2
  40. package/src/components/Customs/SyTextField/SyTextField.stories.ts +1 -1
  41. package/src/components/Customs/SyTextField/SyTextField.vue +3 -3
  42. package/src/components/DatePicker/DatePicker.vue +82 -57
  43. package/src/components/DatePicker/DatePickerValidation.mdx +338 -0
  44. package/src/components/DatePicker/DatePickerValidation.stories.ts +22 -0
  45. package/src/components/DatePicker/DatePickerValidationExamples.vue +535 -0
  46. package/src/components/DatePicker/DateTextInput.vue +3 -3
  47. package/src/components/DatePicker/tests/DateTextInput.spec.ts +2 -2
  48. package/src/components/DialogBox/DialogBox.stories.ts +5 -2
  49. package/src/components/DialogBox/DialogBox.vue +1 -1
  50. package/src/components/DialogBox/config.ts +1 -1
  51. package/src/components/DownloadBtn/Accessibilite.stories.ts +4 -0
  52. package/src/components/DownloadBtn/DownloadBtn.stories.ts +17 -8
  53. package/src/components/DownloadBtn/DownloadBtn.vue +13 -6
  54. package/src/components/DownloadBtn/tests/__snapshots__/DownloadBtn.spec.ts.snap +0 -2
  55. package/src/components/FranceConnectBtn/Accessibilite.stories.ts +4 -0
  56. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/HeaderMenuItem.vue +3 -0
  57. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.vue +3 -0
  58. package/src/components/HeaderBar/HeaderBurgerMenu/menu.scss +19 -0
  59. package/src/components/HeaderBar/HeaderMenuBtn/HeaderMenuBtn.vue +12 -2
  60. package/src/components/LangBtn/Accessibilite.stories.ts +4 -0
  61. package/src/components/LangBtn/LangBtn.stories.ts +1 -4
  62. package/src/components/LangBtn/LangBtn.vue +68 -9
  63. package/src/components/LangBtn/config.ts +0 -1
  64. package/src/components/LangBtn/tests/LangBtn.spec.ts +30 -2
  65. package/src/components/PageContainer/Accessibilite.stories.ts +36 -23
  66. package/src/components/PaginatedTable/PaginatedTable.stories.ts +144 -18
  67. package/src/components/PasswordField/PasswordField.stories.ts +6 -6
  68. package/src/components/PasswordField/PasswordField.vue +3 -3
  69. package/src/components/PeriodField/PeriodField.vue +4 -4
  70. package/src/components/PhoneField/PhoneField.stories.ts +216 -24
  71. package/src/components/PhoneField/PhoneField.vue +32 -2
  72. package/src/components/PhoneField/tests/PhoneField.spec.ts +161 -14
  73. package/src/components/RatingPicker/NumberPicker/NumberPicker.vue +2 -1
  74. package/src/components/RatingPicker/RatingPicker.stories.ts +1 -1
  75. package/src/components/SkipLink/Accessibilite.stories.ts +8 -0
  76. package/src/components/SkipLink/SkipLink.vue +11 -9
  77. package/src/components/SkipLink/tests/__snapshots__/skipLink.spec.ts.snap +7 -4
  78. package/src/components/SkipLink/tests/skipLink.spec.ts +120 -6
  79. package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +56 -0
  80. package/src/components/UserMenuBtn/UserMenuBtn.vue +4 -2
  81. package/src/components/UserMenuBtn/tests/UserMenuBtn.spec.ts +41 -0
  82. package/src/components/index.ts +1 -0
  83. package/src/composables/rules/useFieldValidation.ts +26 -3
  84. package/src/stories/Accessibilite/KitDePreAudit/Echantillonnage.mdx +1 -1
  85. package/src/stories/GuideDuDev/LesBreackingChanges.mdx +31 -2
  86. package/src/components/LangBtn/tests/Config.spec.ts +0 -24
@@ -0,0 +1,535 @@
1
+ <script setup>
2
+ import { ref } from 'vue'
3
+ import DatePicker from '@/components/DatePicker/DatePicker.vue'
4
+
5
+ // Exemple 1: Validation de base (required)
6
+ const date1 = ref('')
7
+
8
+ // Exemple 2: notWeekend
9
+ const date2 = ref('')
10
+
11
+ // Exemple 3: notAfterToday
12
+ const date3 = ref('')
13
+
14
+ // Exemple 4: notBeforeToday
15
+ const date4 = ref('')
16
+
17
+ // Exemple 5: notBeforeDate
18
+ const date5 = ref('')
19
+
20
+ // Exemple 6: notAfterDate
21
+ const date6 = ref('')
22
+
23
+ // Exemple 7: dateExact
24
+ const date7 = ref('')
25
+
26
+ // Exemple 8: customRules (règle personnalisée)
27
+ const date8 = ref('')
28
+
29
+ // Exemple 9: customWarningRules
30
+ const date9 = ref('')
31
+
32
+ // Exemple 10: Combinaison de plusieurs règles
33
+ const date10 = ref('')
34
+
35
+ const today = new Date().toLocaleDateString('fr-FR', {
36
+ day: '2-digit',
37
+ month: '2-digit',
38
+ year: 'numeric',
39
+ })
40
+ const tomorrow = new Date(Date.now() + 86400000).toLocaleDateString('fr-FR', {
41
+ day: '2-digit',
42
+ month: '2-digit',
43
+ year: 'numeric',
44
+ })
45
+ const yesterday = new Date(Date.now() - 86400000).toLocaleDateString('fr-FR', {
46
+ day: '2-digit',
47
+ month: '2-digit',
48
+ year: 'numeric',
49
+ })
50
+ const nextYear = new Date(Date.now() + 31536000000).toLocaleDateString('fr-FR', {
51
+ day: '2-digit',
52
+ month: '2-digit',
53
+ year: 'numeric',
54
+ })
55
+ </script>
56
+
57
+ <template>
58
+ <div class="date-picker-validation-examples">
59
+ <h1 class="text-h5 mb-6">
60
+ Exemples de validation du DatePicker
61
+ </h1>
62
+
63
+ <!-- Exemple 1: Validation de base (required) -->
64
+ <section class="mb-10">
65
+ <h2 class="text-h6 mb-3">
66
+ Validation de base (required)
67
+ </h2>
68
+ <div class="mb-2">
69
+ <DatePicker
70
+ v-model="date1"
71
+ placeholder="Date requise"
72
+ required
73
+ />
74
+ </div>
75
+ <v-btn
76
+ size="small"
77
+ color="primary"
78
+ @click="date1 = ''"
79
+ >
80
+ Vider le champ
81
+ </v-btn>
82
+ <v-btn
83
+ size="small"
84
+ class="ml-2"
85
+ @click="date1 = today"
86
+ >
87
+ Remplir le champ
88
+ </v-btn>
89
+ <div class="mt-2">
90
+ Valeur actuelle: {{ date1 }}
91
+ </div>
92
+ </section>
93
+
94
+ <!-- Exemple 2: notWeekend -->
95
+ <section class="mb-10">
96
+ <h2 class="text-h6 mb-3">
97
+ Validation notWeekend
98
+ </h2>
99
+ <p class="text-body-2 mb-2">
100
+ Cette règle vérifie que la date n'est pas un weekend
101
+ </p>
102
+ <div class="mb-2">
103
+ <DatePicker
104
+ v-model="date2"
105
+ placeholder="Jour de semaine uniquement"
106
+ :custom-rules="[{
107
+ type: 'notWeekend',
108
+ options: {
109
+ message: 'La date ne peut pas être un weekend',
110
+ successMessage: 'Jour de semaine valide'
111
+ }
112
+ }]"
113
+ :show-success-messages="true"
114
+ />
115
+ </div>
116
+ <v-btn
117
+ size="small"
118
+ color="primary"
119
+ @click="date2 = '13/04/2025'"
120
+ >
121
+ Samedi (13/04/2025)
122
+ </v-btn>
123
+ <v-btn
124
+ size="small"
125
+ class="ml-2"
126
+ @click="date2 = '15/04/2025'"
127
+ >
128
+ Mardi (15/04/2025)
129
+ </v-btn>
130
+ <div class="mt-2">
131
+ Valeur actuelle: {{ date2 }}
132
+ </div>
133
+ </section>
134
+
135
+ <!-- Exemple 3: notAfterToday -->
136
+ <section class="mb-10">
137
+ <h2 class="text-h6 mb-3">
138
+ Validation notAfterToday
139
+ </h2>
140
+ <p class="text-body-2 mb-2">
141
+ Cette règle vérifie que la date n'est pas postérieure à aujourd'hui
142
+ </p>
143
+ <div class="mb-2">
144
+ <DatePicker
145
+ v-model="date3"
146
+ placeholder="Date passée ou aujourd'hui"
147
+ :custom-rules="[{
148
+ type: 'notAfterToday',
149
+ options: {
150
+ message: 'La date ne peut pas être dans le futur',
151
+ successMessage: 'Date passée ou aujourd\'hui valide'
152
+ }
153
+ }]"
154
+ :show-success-messages="true"
155
+ />
156
+ </div>
157
+ <v-btn
158
+ size="small"
159
+ color="primary"
160
+ @click="date3 = today"
161
+ >
162
+ Aujourd'hui
163
+ </v-btn>
164
+ <v-btn
165
+ size="small"
166
+ class="ml-2"
167
+ @click="date3 = tomorrow"
168
+ >
169
+ Demain
170
+ </v-btn>
171
+ <v-btn
172
+ size="small"
173
+ class="ml-2"
174
+ @click="date3 = yesterday"
175
+ >
176
+ Hier
177
+ </v-btn>
178
+ <div class="mt-2">
179
+ Valeur actuelle: {{ date3 }}
180
+ </div>
181
+ </section>
182
+
183
+ <!-- Exemple 4: notBeforeToday -->
184
+ <section class="mb-10">
185
+ <h2 class="text-h6 mb-3">
186
+ Validation notBeforeToday
187
+ </h2>
188
+ <p class="text-body-2 mb-2">
189
+ Cette règle vérifie que la date n'est pas antérieure à aujourd'hui
190
+ </p>
191
+ <div class="mb-2">
192
+ <DatePicker
193
+ v-model="date4"
194
+ placeholder="Date future ou aujourd'hui"
195
+ :custom-rules="[{
196
+ type: 'notBeforeToday',
197
+ options: {
198
+ message: 'La date ne peut pas être dans le passé',
199
+ successMessage: 'Date future ou aujourd\'hui valide'
200
+ }
201
+ }]"
202
+ :show-success-messages="true"
203
+ />
204
+ </div>
205
+ <v-btn
206
+ size="small"
207
+ color="primary"
208
+ @click="date4 = today"
209
+ >
210
+ Aujourd'hui
211
+ </v-btn>
212
+ <v-btn
213
+ size="small"
214
+ class="ml-2"
215
+ @click="date4 = tomorrow"
216
+ >
217
+ Demain
218
+ </v-btn>
219
+ <v-btn
220
+ size="small"
221
+ class="ml-2"
222
+ @click="date4 = yesterday"
223
+ >
224
+ Hier
225
+ </v-btn>
226
+ <div class="mt-2">
227
+ Valeur actuelle: {{ date4 }}
228
+ </div>
229
+ </section>
230
+
231
+ <!-- Exemple 5: notBeforeDate -->
232
+ <section class="mb-10">
233
+ <h2 class="text-h6 mb-3">
234
+ Validation notBeforeDate
235
+ </h2>
236
+ <p class="text-body-2 mb-2">
237
+ Cette règle vérifie que la date n'est pas antérieure à une date de référence
238
+ </p>
239
+ <div class="mb-2">
240
+ <DatePicker
241
+ v-model="date5"
242
+ placeholder="Date après le 01/01/2025"
243
+ :custom-rules="[{
244
+ type: 'notBeforeDate',
245
+ options: {
246
+ message: 'La date ne peut pas être antérieure au 01/01/2025',
247
+ successMessage: 'Date valide (après le 01/01/2025)',
248
+ date: '01/01/2025'
249
+ }
250
+ }]"
251
+ :show-success-messages="true"
252
+ />
253
+ </div>
254
+ <v-btn
255
+ size="small"
256
+ color="primary"
257
+ @click="date5 = '15/04/2025'"
258
+ >
259
+ 15/04/2025
260
+ </v-btn>
261
+ <v-btn
262
+ size="small"
263
+ class="ml-2"
264
+ @click="date5 = '31/12/2024'"
265
+ >
266
+ 31/12/2024
267
+ </v-btn>
268
+ <div class="mt-2">
269
+ Valeur actuelle: {{ date5 }}
270
+ </div>
271
+ </section>
272
+
273
+ <!-- Exemple 6: notAfterDate -->
274
+ <section class="mb-10">
275
+ <h2 class="text-h6 mb-3">
276
+ Validation notAfterDate
277
+ </h2>
278
+ <p class="text-body-2 mb-2">
279
+ Cette règle vérifie que la date n'est pas postérieure à une date de référence
280
+ </p>
281
+ <div class="mb-2">
282
+ <DatePicker
283
+ v-model="date6"
284
+ placeholder="Date avant le 31/12/2025"
285
+ :custom-rules="[{
286
+ type: 'notAfterDate',
287
+ options: {
288
+ message: 'La date ne peut pas être postérieure au 31/12/2025',
289
+ successMessage: 'Date valide (avant le 31/12/2025)',
290
+ date: '31/12/2025'
291
+ }
292
+ }]"
293
+ :show-success-messages="true"
294
+ />
295
+ </div>
296
+ <v-btn
297
+ size="small"
298
+ color="primary"
299
+ @click="date6 = '15/04/2025'"
300
+ >
301
+ 15/04/2025
302
+ </v-btn>
303
+ <v-btn
304
+ size="small"
305
+ class="ml-2"
306
+ @click="date6 = '01/01/2026'"
307
+ >
308
+ 01/01/2026
309
+ </v-btn>
310
+ <div class="mt-2">
311
+ Valeur actuelle: {{ date6 }}
312
+ </div>
313
+ </section>
314
+
315
+ <!-- Exemple 7: dateExact -->
316
+ <section class="mb-10">
317
+ <h2 class="text-h6 mb-3">
318
+ Validation dateExact
319
+ </h2>
320
+ <p class="text-body-2 mb-2">
321
+ Cette règle vérifie que la date est exactement égale à une date de référence
322
+ </p>
323
+ <div class="mb-2">
324
+ <DatePicker
325
+ v-model="date7"
326
+ placeholder="Date exacte: 25/12/2025"
327
+ :custom-rules="[{
328
+ type: 'dateExact',
329
+ options: {
330
+ message: 'La date doit être le 25/12/2025',
331
+ successMessage: 'Date correcte (25/12/2025)',
332
+ date: '25/12/2025'
333
+ }
334
+ }]"
335
+ :show-success-messages="true"
336
+ />
337
+ </div>
338
+ <v-btn
339
+ size="small"
340
+ color="primary"
341
+ @click="date7 = '25/12/2025'"
342
+ >
343
+ 25/12/2025
344
+ </v-btn>
345
+ <v-btn
346
+ size="small"
347
+ class="ml-2"
348
+ @click="date7 = '26/12/2025'"
349
+ >
350
+ 26/12/2025
351
+ </v-btn>
352
+ <div class="mt-2">
353
+ Valeur actuelle: {{ date7 }}
354
+ </div>
355
+ </section>
356
+
357
+ <!-- Exemple 8: customRules (règle personnalisée) -->
358
+ <section class="mb-10">
359
+ <h2 class="text-h6 mb-3">
360
+ Règle personnalisée (custom)
361
+ </h2>
362
+ <p class="text-body-2 mb-2">
363
+ Cette règle vérifie que la date n'est pas en 2024
364
+ </p>
365
+ <div class="mb-2">
366
+ <DatePicker
367
+ v-model="date8"
368
+ placeholder="Date hors 2024"
369
+ :custom-rules="[{
370
+ type: 'custom',
371
+ options: {
372
+ validate: (value) => {
373
+ // Si pas de valeur, c'est valide
374
+ if (!value) return true
375
+ // Convertir en chaîne si ce n'est pas déjà le cas
376
+ const dateStr = value.toString()
377
+ // Vérifier si c'est une Date et extraire l'année
378
+ if (value instanceof Date) {
379
+ return value.getFullYear() !== 2024
380
+ }
381
+ // Fallback sur la vérification de chaîne
382
+ return !dateStr.includes('2024')
383
+ },
384
+ message: 'Les dates en 2024 ne sont pas autorisées',
385
+ successMessage: 'Date valide (hors 2024)',
386
+ fieldIdentifier: 'date'
387
+ }
388
+ }]"
389
+ :show-success-messages="true"
390
+ />
391
+ </div>
392
+ <v-btn
393
+ size="small"
394
+ color="primary"
395
+ @click="date8 = '15/04/2025'"
396
+ >
397
+ 15/04/2025
398
+ </v-btn>
399
+ <v-btn
400
+ size="small"
401
+ class="ml-2"
402
+ @click="date8 = '15/12/2024'"
403
+ >
404
+ 15/12/2024
405
+ </v-btn>
406
+ <div class="mt-2">
407
+ Valeur actuelle: {{ date8 }}
408
+ </div>
409
+ </section>
410
+
411
+ <!-- Exemple 9: customWarningRules -->
412
+ <section class="mb-10">
413
+ <h2 class="text-h6 mb-3">
414
+ Règle d'avertissement
415
+ </h2>
416
+ <p class="text-body-2 mb-2">
417
+ Cette règle affiche un avertissement si la date est en 2025
418
+ </p>
419
+ <div class="mb-2">
420
+ <DatePicker
421
+ v-model="date9"
422
+ placeholder="Date (avertissement pour 2025)"
423
+ :custom-warning-rules="[{
424
+ type: 'custom',
425
+ options: {
426
+ validate: (value) => {
427
+ // Si pas de valeur, c'est valide
428
+ if (!value) return true
429
+
430
+ // Convertir en chaîne si ce n'est pas déjà le cas
431
+ const dateStr = value.toString()
432
+
433
+ // Vérifier si c'est une Date et extraire l'année
434
+ if (value instanceof Date) {
435
+ return value.getFullYear() !== 2025
436
+ }
437
+
438
+ // Fallback sur la vérification de chaîne
439
+ return !dateStr.includes('2025')
440
+ },
441
+ warningMessage: 'Attention : les dates en 2025 génèrent un avertissement',
442
+ successMessage: 'Date hors 2025',
443
+ fieldIdentifier: 'date',
444
+ isWarning: true
445
+ }
446
+ }]"
447
+ :show-success-messages="true"
448
+ />
449
+ </div>
450
+ <v-btn
451
+ size="small"
452
+ color="primary"
453
+ @click="date9 = '15/04/2025'"
454
+ >
455
+ 15/04/2025
456
+ </v-btn>
457
+ <v-btn
458
+ size="small"
459
+ class="ml-2"
460
+ @click="date9 = '15/12/2026'"
461
+ >
462
+ 15/12/2026
463
+ </v-btn>
464
+ <div class="mt-2">
465
+ Valeur actuelle: {{ date9 }}
466
+ </div>
467
+ </section>
468
+
469
+ <!-- Exemple 10: Combinaison de plusieurs règles -->
470
+ <section class="mb-10">
471
+ <h2 class="text-h6 mb-3">
472
+ Combinaison de plusieurs règles
473
+ </h2>
474
+ <p class="text-body-2 mb-2">
475
+ Exemple de DatePicker avec plusieurs règles de validation
476
+ </p>
477
+ <div class="mb-2">
478
+ <DatePicker
479
+ v-model="date10"
480
+ placeholder="Date de travail"
481
+ required
482
+ :custom-rules="[
483
+ {
484
+ type: 'notWeekend',
485
+ options: { message: 'La date ne peut pas être un weekend' }
486
+ },
487
+ {
488
+ type: 'notAfterToday',
489
+ options: { message: 'La date ne peut pas être dans le futur' }
490
+ }
491
+ ]"
492
+ :show-success-messages="true"
493
+ />
494
+ </div>
495
+ <v-btn
496
+ size="small"
497
+ color="primary"
498
+ @click="date10 = today"
499
+ >
500
+ Aujourd'hui
501
+ </v-btn>
502
+ <v-btn
503
+ size="small"
504
+ class="ml-2"
505
+ @click="date10 = '13/04/2025'"
506
+ >
507
+ Weekend
508
+ </v-btn>
509
+ <v-btn
510
+ size="small"
511
+ class="ml-2"
512
+ @click="date10 = nextYear"
513
+ >
514
+ Futur
515
+ </v-btn>
516
+ <div class="mt-2">
517
+ Valeur actuelle: {{ date10 }}
518
+ </div>
519
+ </section>
520
+ </div>
521
+ </template>
522
+
523
+ <style scoped>
524
+ .date-picker-validation-examples {
525
+ padding: 20px;
526
+ max-width: 800px;
527
+ margin: 0 auto;
528
+ }
529
+
530
+ section {
531
+ padding: 20px;
532
+ border: 1px solid #e0e0e0;
533
+ border-radius: 4px;
534
+ }
535
+ </style>
@@ -17,7 +17,7 @@
17
17
  label?: string
18
18
  required?: boolean
19
19
  disabled?: boolean
20
- readOnly?: boolean
20
+ readonly?: boolean
21
21
  isOutlined?: boolean
22
22
  displayIcon?: boolean
23
23
  displayAppendIcon?: boolean
@@ -35,7 +35,7 @@
35
35
  label: undefined,
36
36
  required: false,
37
37
  disabled: false,
38
- readOnly: false,
38
+ readonly: false,
39
39
  isOutlined: true,
40
40
  displayIcon: true,
41
41
  displayAppendIcon: false,
@@ -455,7 +455,7 @@
455
455
  :success-messages="showSuccessMessages ? successMessages : []"
456
456
  :is-on-error="isOnError"
457
457
  :disabled="disabled"
458
- :read-only="readOnly"
458
+ :readonly="readonly"
459
459
  :display-icon="displayIcon"
460
460
  :display-append-icon="displayAppendIcon"
461
461
  :no-icon="noIcon"
@@ -227,9 +227,9 @@ describe('DateTextInput.vue', () => {
227
227
  })
228
228
 
229
229
  it('handles readonly state', async () => {
230
- await wrapper.setProps({ readOnly: true })
230
+ await wrapper.setProps({ readonly: true })
231
231
  const textField = wrapper.findComponent(SyTextField)
232
- expect(textField.props('readOnly')).toBe(true)
232
+ expect(textField.props('readonly')).toBe(true)
233
233
  })
234
234
 
235
235
  it('emits focus and blur events', async () => {
@@ -121,7 +121,7 @@ const meta: Meta<typeof DialogBox> = {
121
121
  height: '32px',
122
122
  class: 'mt-n2 mr-n2 ml-4',
123
123
  },
124
- actionsCtn: {
124
+ cardActions: {
125
125
  class: 'd-flex flex-wrap mt-6',
126
126
  },
127
127
  cancelBtn: {
@@ -139,8 +139,11 @@ const meta: Meta<typeof DialogBox> = {
139
139
  {
140
140
  card?: Record<string, any>,
141
141
  cardTitle?: Record<string, any>,
142
+ spacer?: Record<string, any>,
142
143
  closeBtn?: Record<string, any>,
143
- actionsCtn?: Record<string, any>,
144
+ icon?: Record<string, any>,
145
+ actionsBtn?: Record<string, any>,
146
+ actionsSpacer?: Record<string, any>,
144
147
  cancelBtn?: Record<string, any>,
145
148
  confirmBtn?: Record<string, any>,
146
149
  }
@@ -123,7 +123,7 @@
123
123
 
124
124
  <div
125
125
  v-if="!props.hideActions"
126
- v-bind="options.actionsCtn"
126
+ v-bind="options.cardActions"
127
127
  class="sy-dialog-box-actions-ctn"
128
128
  >
129
129
  <VSpacer v-bind="options.actionsSpacer" />
@@ -12,7 +12,7 @@ export const config = {
12
12
  height: '32px',
13
13
  class: 'mt-n2 mr-n2 ml-4',
14
14
  },
15
- actionsCtn: {
15
+ cardActions: {
16
16
  class: 'd-flex flex-wrap mt-6',
17
17
  },
18
18
  cancelBtn: {
@@ -159,6 +159,10 @@ export const Legende: StoryObj = {
159
159
  </div>
160
160
  </div>
161
161
  </div>
162
+ <div class="mt-4">
163
+ <p>Rapport d’audit manuel : <a href="/audits/DownloadBtn.xlsx" style="color:#0C41BD;">Voir le rapport</a></p>
164
+ <p style="color: grey; font-size: 14px">Correctifs associés (<a href="https://github.com/assurance-maladie-digital/design-system/issues/4007" target="_blank" style="color:#0C41BD;">issue #4007</a>)</p>
165
+ </div>
162
166
  `,
163
167
  }
164
168
  },
@@ -1,7 +1,7 @@
1
1
  import { fn, userEvent, within } from '@storybook/test'
2
2
  import type { Meta, StoryObj } from '@storybook/vue3'
3
3
  import axios from 'axios'
4
- import { VThemeProvider } from 'vuetify/components'
4
+ import { VSheet } from 'vuetify/components'
5
5
  import DownloadBtn from './DownloadBtn.vue'
6
6
  import NotificationBar from '../NotificationBar/NotificationBar.vue'
7
7
  import { useNotificationService } from '@/services/NotificationService'
@@ -22,6 +22,15 @@ const meta = {
22
22
  category: 'slots',
23
23
  },
24
24
  },
25
+ dark: {
26
+ control: 'boolean',
27
+ description: 'Applique le thème sombre.',
28
+ table: {
29
+ type: {
30
+ summary: 'boolean',
31
+ },
32
+ },
33
+ },
25
34
  filePromise: {
26
35
  control: false,
27
36
  description: 'Une fonction retournant une valeur de retour de Axios `Promise<AxiosResponse>`. <br>Exemple: `() => axios.get("https://run.mocky.io/v3/884c25f5-6dc2-4c01-b8d9-26c54042f94f")`',
@@ -231,16 +240,16 @@ export const Dark: Story = {
231
240
  {
232
241
  name: 'Template',
233
242
  code: `<template>
234
- <VThemeProvider theme="dark" with-background class="pa-4">
243
+ <VSheet color="primary" class="pa-4">
235
244
  <DownloadBtn
245
+ dark
236
246
  :file-promise="download"
237
- background-color="black"
238
247
  @error="console.log('error')"
239
248
  @success="console.log('success')"
240
249
  >
241
250
  Télécharger
242
251
  </DownloadBtn>
243
- </VThemeProvider>
252
+ </VSheet>
244
253
  </template>
245
254
  `,
246
255
  },
@@ -259,20 +268,20 @@ export const Dark: Story = {
259
268
  ],
260
269
  },
261
270
  render: args => ({
262
- components: { VThemeProvider, DownloadBtn },
271
+ components: { VSheet, DownloadBtn },
263
272
  setup() {
264
273
  return { args }
265
274
  },
266
275
  template: `
267
- <VThemeProvider theme="dark" with-background class="pa-4">
276
+ <VSheet color="primary" class="pa-4">
268
277
  <DownloadBtn v-bind="args">{{ args.default }}</DownloadBtn>
269
- </VThemeProvider>
278
+ </VSheet>
270
279
  `,
271
280
  }),
272
281
  args: {
282
+ dark: true,
273
283
  filePromise: () => axios.get('https://run.mocky.io/v3/884c25f5-6dc2-4c01-b8d9-26c54042f94f'),
274
284
  default: 'Télécharger',
275
- backgroundColor: 'black',
276
285
  onError: fn(),
277
286
  onSuccess: fn(),
278
287
  },