@cnamts/synapse 0.0.7-alpha → 0.0.9-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 (198) hide show
  1. package/dist/design-system-v3.d.ts +785 -372
  2. package/dist/design-system-v3.js +4993 -3357
  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/Accessibilite.mdx +14 -0
  13. package/src/components/ContextualMenu/Accessibilite.stories.ts +191 -0
  14. package/src/components/ContextualMenu/AccessibiliteItems.ts +89 -0
  15. package/src/components/ContextualMenu/ContextualMenu.mdx +118 -0
  16. package/src/components/ContextualMenu/ContextualMenu.stories.ts +430 -0
  17. package/src/components/ContextualMenu/ContextualMenu.vue +101 -0
  18. package/src/components/ContextualMenu/constants/ExpertiseLevelEnum.ts +4 -0
  19. package/src/components/ContextualMenu/tests/ContextualMenu.spec.ts +115 -0
  20. package/src/components/ContextualMenu/tests/__snapshots__/ContextualMenu.spec.ts.snap +10 -0
  21. package/src/components/ContextualMenu/types.ts +5 -0
  22. package/src/components/CookieBanner/CookieBanner.stories.ts +1 -2
  23. package/src/components/CookieBanner/CookieBanner.vue +13 -10
  24. package/src/components/CookieBanner/tests/__snapshots__/CookieBanner.spec.ts.snap +17 -15
  25. package/src/components/CookiesSelection/CookiesInformation/CookiesInformation.vue +6 -1
  26. package/src/components/CookiesSelection/CookiesInformation/locales.ts +1 -0
  27. package/src/components/CookiesSelection/CookiesTable/CookiesTable.vue +1 -0
  28. package/src/components/CookiesSelection/tests/__snapshots__/CookiesSelection.spec.ts.snap +17 -15
  29. package/src/components/CopyBtn/CopyBtn.vue +7 -7
  30. package/src/components/Customs/SyBtnSelect/SyBtnSelect.vue +26 -26
  31. package/src/components/Customs/SyInputSelect/SyInputSelect.vue +24 -24
  32. package/src/components/Customs/SySelect/SySelect.stories.ts +7 -7
  33. package/src/components/Customs/SySelect/SySelect.vue +36 -30
  34. package/src/components/Customs/SySelect/tests/SySelect.spec.ts +2 -2
  35. package/src/components/Customs/SyTextField/SyTextField.stories.ts +187 -2
  36. package/src/components/Customs/SyTextField/SyTextField.vue +185 -16
  37. package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +2 -4
  38. package/src/components/Customs/SyTextField/tests/__snapshots__/SyTextField.spec.ts.snap +18 -16
  39. package/src/components/Customs/SyTextField/types.d.ts +2 -2
  40. package/src/components/DataList/DataList.stories.ts +3 -2
  41. package/src/components/DataList/DataList.vue +1 -1
  42. package/src/components/DataListGroup/DataListGroup.stories.ts +3 -2
  43. package/src/components/DataListItem/DataListItem.vue +12 -12
  44. package/src/components/DatePicker/DatePicker.mdx +191 -0
  45. package/src/components/DatePicker/DatePicker.stories.ts +787 -0
  46. package/src/components/DatePicker/DatePicker.vue +560 -0
  47. package/src/components/DatePicker/DateTextInput.vue +409 -0
  48. package/src/components/DatePicker/tests/DatePicker.spec.ts +266 -0
  49. package/src/components/DialogBox/DialogBox.mdx +28 -2
  50. package/src/components/DialogBox/DialogBox.stories.ts +2 -2
  51. package/src/components/DialogBox/DialogBox.vue +3 -2
  52. package/src/components/DownloadBtn/DownloadBtn.vue +2 -1
  53. package/src/components/ExternalLinks/Accessibilite.mdx +14 -0
  54. package/src/components/ExternalLinks/Accessibilite.stories.ts +191 -0
  55. package/src/components/ExternalLinks/AccessibiliteItems.ts +197 -0
  56. package/src/components/ExternalLinks/ExternalLinks.mdx +86 -0
  57. package/src/components/ExternalLinks/ExternalLinks.stories.ts +553 -0
  58. package/src/components/ExternalLinks/ExternalLinks.vue +200 -0
  59. package/src/components/ExternalLinks/config.ts +34 -0
  60. package/src/components/ExternalLinks/constants/ExpertiseLevelEnum.ts +4 -0
  61. package/src/components/ExternalLinks/locales.ts +4 -0
  62. package/src/components/ExternalLinks/tests/ExternalLinks.spec.ts +154 -0
  63. package/src/components/ExternalLinks/tests/__snapshots__/ExternalLinks.spec.ts.snap +159 -0
  64. package/src/components/FileUpload/FileUpload.mdx +165 -0
  65. package/src/components/FileUpload/FileUpload.stories.ts +429 -0
  66. package/src/components/FileUpload/FileUpload.vue +195 -0
  67. package/src/components/FileUpload/FileUploadContent.vue +109 -0
  68. package/src/components/FileUpload/locales.ts +10 -0
  69. package/src/components/FileUpload/tests/FileUpload.spec.ts +332 -0
  70. package/src/components/FileUpload/tests/__snapshots__/FileUpload.spec.ts.snap +7 -0
  71. package/src/components/FileUpload/useFileDrop.ts +23 -0
  72. package/src/components/FileUpload/validateFiles.ts +39 -0
  73. package/src/components/FooterBar/FooterBar.vue +105 -80
  74. package/src/components/FranceConnectBtn/FranceConnectBtn.vue +14 -13
  75. package/src/components/HeaderBar/HeaderBar.vue +3 -3
  76. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderBurgerMenu.vue +11 -7
  77. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/HeaderMenuItem.vue +5 -5
  78. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuSection/HeaderMenuSection.vue +2 -2
  79. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.vue +10 -8
  80. package/src/components/HeaderBar/HeaderLogo/HeaderLogo.vue +2 -2
  81. package/src/components/HeaderBar/HeaderLogo/logos/Logo-mobile.vue +2 -1
  82. package/src/components/HeaderBar/HeaderLogo/logos/Logo.vue +2 -1
  83. package/src/components/HeaderBar/HeaderMenuBtn/HeaderMenuBtn.vue +10 -10
  84. package/src/components/HeaderBar/consts.scss +1 -1
  85. package/src/components/HeaderLoading/HeaderLoading.vue +12 -11
  86. package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +2 -1
  87. package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +9 -9
  88. package/src/components/HeaderToolbar/HeaderToolbar.vue +215 -202
  89. package/src/components/LangBtn/LangBtn.vue +8 -6
  90. package/src/components/LogoBrandSection/LogoBrandSection.stories.ts +2 -2
  91. package/src/components/NirField/NirField.stories.ts +8 -8
  92. package/src/components/NirField/NirField.vue +46 -48
  93. package/src/components/NotFoundPage/NotFoundPage.stories.ts +33 -2
  94. package/src/components/NotFoundPage/NotFoundPage.vue +17 -0
  95. package/src/components/NotificationBar/NotificationBar.mdx +5 -5
  96. package/src/components/NotificationBar/NotificationBar.stories.ts +410 -314
  97. package/src/components/NotificationBar/NotificationBar.vue +43 -41
  98. package/src/components/PageContainer/PageContainer.vue +4 -4
  99. package/src/components/PasswordField/Accessibilite.mdx +14 -0
  100. package/src/components/PasswordField/Accessibilite.stories.ts +191 -0
  101. package/src/components/PasswordField/AccessibiliteItems.ts +184 -0
  102. package/src/components/PasswordField/PasswordField.mdx +70 -0
  103. package/src/components/PasswordField/PasswordField.stories.ts +213 -0
  104. package/src/components/PasswordField/PasswordField.vue +189 -0
  105. package/src/components/PasswordField/config.ts +11 -0
  106. package/src/components/PasswordField/constants/ExpertiseLevelEnum.ts +4 -0
  107. package/src/components/PasswordField/locales.ts +4 -0
  108. package/src/components/PasswordField/tests/PasswordField.spec.ts +96 -0
  109. package/src/components/PhoneField/PhoneField.mdx +0 -2
  110. package/src/components/PhoneField/PhoneField.stories.ts +10 -50
  111. package/src/components/PhoneField/PhoneField.vue +77 -93
  112. package/src/components/PhoneField/tests/PhoneField.spec.ts +0 -15
  113. package/src/components/RangeField/RangeField.mdx +54 -0
  114. package/src/components/RangeField/RangeField.stories.ts +189 -0
  115. package/src/components/RangeField/RangeField.vue +157 -0
  116. package/src/components/RangeField/RangeSlider/RangeSlider.vue +387 -0
  117. package/src/components/RangeField/RangeSlider/Tooltip/Tooltip.vue +64 -0
  118. package/src/components/RangeField/RangeSlider/tests/__snapshots__/rangeSlider.spec.ts.snap +27 -0
  119. package/src/components/RangeField/RangeSlider/tests/rangeSlider.spec.ts +100 -0
  120. package/src/components/RangeField/RangeSlider/tests/useDoubleSlider.spec.ts +246 -0
  121. package/src/components/RangeField/RangeSlider/tests/useMouseSlide.spec.ts +204 -0
  122. package/src/components/RangeField/RangeSlider/tests/useThumb.spec.ts +22 -0
  123. package/src/components/RangeField/RangeSlider/tests/useThumbKeyboard.spec.ts +233 -0
  124. package/src/components/RangeField/RangeSlider/tests/useTooltipsNudge.spec.ts +150 -0
  125. package/src/components/RangeField/RangeSlider/tests/useTrack.spec.ts +314 -0
  126. package/src/components/RangeField/RangeSlider/tests/vAnimateClick.spec.ts +32 -0
  127. package/src/components/RangeField/RangeSlider/types.ts +15 -0
  128. package/src/components/RangeField/RangeSlider/useMouseSlide.ts +109 -0
  129. package/src/components/RangeField/RangeSlider/useRangeSlider.ts +126 -0
  130. package/src/components/RangeField/RangeSlider/useThumb.ts +18 -0
  131. package/src/components/RangeField/RangeSlider/useThumbKeyboard.ts +84 -0
  132. package/src/components/RangeField/RangeSlider/useTooltipsNudge.ts +92 -0
  133. package/src/components/RangeField/RangeSlider/useTrack.ts +116 -0
  134. package/src/components/RangeField/RangeSlider/vAnimateClick.ts +19 -0
  135. package/src/components/RangeField/config.ts +7 -0
  136. package/src/components/RangeField/locales.ts +4 -0
  137. package/src/components/RangeField/tests/RangeField.spec.ts +224 -0
  138. package/src/components/RangeField/tests/__snapshots__/RangeField.spec.ts.snap +379 -0
  139. package/src/components/RatingPicker/EmotionPicker/EmotionPicker.vue +205 -0
  140. package/src/components/RatingPicker/EmotionPicker/locales.ts +3 -0
  141. package/src/components/RatingPicker/EmotionPicker/tests/EmotionPicker.spec.ts +104 -0
  142. package/src/components/RatingPicker/EmotionPicker/tests/__snapshots__/EmotionPicker.spec.ts.snap +66 -0
  143. package/src/components/RatingPicker/NumberPicker/NumberPicker.vue +159 -0
  144. package/src/components/RatingPicker/NumberPicker/locales.ts +4 -0
  145. package/src/components/RatingPicker/NumberPicker/tests/NumberPicker.spec.ts +73 -0
  146. package/src/components/RatingPicker/NumberPicker/tests/__snapshots__/NumberPicker.spec.ts.snap +105 -0
  147. package/src/components/RatingPicker/Rating.ts +45 -0
  148. package/src/components/RatingPicker/RatingPicker.mdx +56 -0
  149. package/src/components/RatingPicker/RatingPicker.stories.ts +515 -0
  150. package/src/components/RatingPicker/RatingPicker.vue +122 -0
  151. package/src/components/RatingPicker/StarsPicker/StarsPicker.vue +116 -0
  152. package/src/components/RatingPicker/StarsPicker/tests/StarsPicker.spec.ts +95 -0
  153. package/src/components/RatingPicker/StarsPicker/tests/__snapshots__/StarsPicker.spec.ts.snap +36 -0
  154. package/src/components/RatingPicker/locales.ts +3 -0
  155. package/src/components/RatingPicker/tests/Rating.spec.ts +104 -0
  156. package/src/components/RatingPicker/tests/RatingPicker.spec.ts +187 -0
  157. package/src/components/RatingPicker/tests/__snapshots__/RatingPicker.spec.ts.snap +108 -0
  158. package/src/components/SearchListField/SearchListField.mdx +74 -0
  159. package/src/components/SearchListField/SearchListField.stories.ts +126 -0
  160. package/src/components/SearchListField/SearchListField.vue +194 -0
  161. package/src/components/SearchListField/locales.ts +5 -0
  162. package/src/components/SearchListField/tests/SearchListField.spec.ts +323 -0
  163. package/src/components/SearchListField/types.d.ts +4 -0
  164. package/src/components/SelectBtnField/SelectBtnField.mdx +50 -0
  165. package/src/components/SelectBtnField/SelectBtnField.stories.ts +763 -0
  166. package/src/components/SelectBtnField/SelectBtnField.vue +283 -0
  167. package/src/components/SelectBtnField/config.ts +11 -0
  168. package/src/components/SelectBtnField/tests/SelectBtnField.spec.ts +327 -0
  169. package/src/components/SelectBtnField/tests/__snapshots__/SelectBtnField.spec.ts.snap +125 -0
  170. package/src/components/SelectBtnField/types.d.ts +11 -0
  171. package/src/components/SkipLink/SkipLink.vue +10 -10
  172. package/src/components/SocialMediaLinks/SocialMediaLinks.vue +28 -26
  173. package/src/components/SubHeader/SubHeader.vue +32 -31
  174. package/src/components/SyAlert/SyAlert.vue +12 -12
  175. package/src/components/UserMenuBtn/UserMenuBtn.vue +1 -1
  176. package/src/components/UserMenuBtn/config.ts +1 -1
  177. package/src/components/index.ts +17 -7
  178. package/src/composables/rules/useFieldValidation.ts +172 -44
  179. package/src/designTokens/index.ts +6 -4
  180. package/src/designTokens/{bootstrapColors.md → paColors.md} +1 -1
  181. package/src/designTokens/tokens/cnam/cnamLightTheme.ts +2 -0
  182. package/src/designTokens/tokens/pa/paColors.ts +171 -0
  183. package/src/designTokens/tokens/pa/paContextual.ts +58 -0
  184. package/src/designTokens/tokens/pa/paDarkTheme.ts +5 -0
  185. package/src/designTokens/tokens/pa/paLightTheme.ts +123 -0
  186. package/src/designTokens/tokens/pa/paSemantic.ts +87 -0
  187. package/src/stories/Fondamentaux/CustomisationEtThemes.mdx +52 -2
  188. package/src/stories/GuideDuDev/CreerUneIssue.mdx +64 -0
  189. package/src/stories/GuideDuDev/{CommentUtiliserLesRules.mdx → UtiliserLesRules.mdx} +2 -2
  190. package/src/stories/GuideDuDev/components.stories.ts +9 -7
  191. package/src/stories/Guidelines/Vuetify/Vuetify.stories.ts +163 -88
  192. package/src/stories/Guidelines/Vuetify/VuetifyItems.ts +250 -23
  193. package/src/temp/TestDTComponent.vue +5 -6
  194. package/src/utils/calcHumanFileSize/index.ts +12 -0
  195. package/src/utils/calcHumanFileSize/tests/calcHumanFileSize.spec.ts +21 -0
  196. package/src/designTokens/tokens/bootstrap/bootstrapColors.ts +0 -158
  197. package/src/designTokens/tokens/bootstrap/bootstrapLightTheme.ts +0 -22
  198. package/src/stories/GuideDuDev/CommentContribuer.mdx +0 -22
@@ -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>
@@ -0,0 +1,191 @@
1
+ import {Meta, Canvas, Controls, Source} from '@storybook/blocks';
2
+ import * as DatePickerStories from "./DatePicker.stories.ts";
3
+
4
+ <Meta of={DatePickerStories}/>
5
+
6
+ # DatePicker
7
+
8
+ Le composant `DatePicker` est un champ de saisie de date qui combine un champ de texte et un sélecteur de date. Il permet de saisir une date manuellement ou de la sélectionner via un calendrier, avec support pour les plages de dates.
9
+
10
+ <Canvas story={{height: '550px'}} of={DatePickerStories.Default}/>
11
+
12
+ # API
13
+
14
+ <Controls of={DatePickerStories.Default}/>
15
+
16
+ # Props
17
+
18
+ ## Valeur et contrôle
19
+
20
+ ### modelValue
21
+ - **Type** : `string | string[]`
22
+ - **Description** : La valeur du champ. Pour une plage de dates, utiliser un tableau de deux dates. La valeur doit être fournie dans le même format que celui spécifié dans la prop `format`.
23
+ - **Défaut** : `undefined`
24
+
25
+ ### placeholder
26
+ - **Type** : `string`
27
+ - **Description** : Texte indicatif affiché quand le champ est vide
28
+ - **Défaut** : `'Sélectionner une date'`
29
+
30
+ ### format
31
+ - **Type** : `string`
32
+ - **Description** : Format d'affichage et d'entrée de la date. Supporte les formats suivants :
33
+ - `DD` : jour sur 2 chiffres
34
+ - `MM` : mois sur 2 chiffres
35
+ - `YYYY` : année sur 4 chiffres
36
+ - `YY` : année sur 2 chiffres (assumé comme 20XX)
37
+ Les séparateurs peuvent être `/`, `-` ou `.`
38
+ - **Défaut** : `'DD/MM/YYYY'`
39
+
40
+ ### dateFormatReturn
41
+ - **Type** : `string`
42
+ - **Description** : Format de la date pour la valeur de retour. Utilise les mêmes tokens que la prop `format`. Si non spécifié, utilise le même format que `format`.
43
+ - **Défaut** : `''`
44
+
45
+ <div
46
+ style={{
47
+ border: '2px solid #FF0000',
48
+ padding: '1rem',
49
+ borderRadius: '4px',
50
+ marginBottom: '1rem',
51
+ }}
52
+ >
53
+ <strong>Note importante sur les formats</strong>
54
+ <p>
55
+ Le composant utilise deux formats distincts :
56
+ </p>
57
+ <ol>
58
+ <li>
59
+ <strong>Format d'entrée/affichage</strong><br/>
60
+ Défini par la prop <code>format</code>, il détermine à la fois :
61
+ <ul>
62
+ <li>Le format dans lequel la date doit être fournie au composant</li>
63
+ <li>Comment la date est affichée visuellement dans le champ</li>
64
+ </ul>
65
+ </li>
66
+ <li>
67
+ <strong>Format de retour</strong><br/>
68
+ Défini par la prop <code>dateFormatReturn</code>, il détermine le format de la date émise
69
+ </li>
70
+ </ol>
71
+ <p>
72
+ Par exemple, avec <code>format="DD-MM-YY"</code> et <code>dateFormatReturn="YYYY/MM/DD"</code> :
73
+ </p>
74
+ <ul>
75
+ <li>Vous devez fournir la date au format : <code>24-12-25</code></li>
76
+ <li>Elle sera affichée comme : <code>24-12-25</code></li>
77
+ <li>Elle sera retournée comme : <code>2025/12/24</code></li>
78
+ </ul>
79
+ </div>
80
+
81
+
82
+
83
+ ### required
84
+ - **Type** : `boolean`
85
+ - **Description** : Indique si le champ est obligatoire
86
+ - **Défaut** : `false`
87
+
88
+ ### isDisabled
89
+ - **Type** : `boolean`
90
+ - **Description** : Désactive le champ
91
+ - **Défaut** : `false`
92
+
93
+ ## Configuration du calendrier
94
+
95
+ ### isBirthDate
96
+ - **Type** : `boolean`
97
+ - **Description** : Active le mode date de naissance (commence par la sélection de l'année)
98
+ - **Défaut** : `false`
99
+
100
+ ### isOutlined
101
+ - **Type** : `boolean`
102
+ - **Description** : Active le style de champ de saisie "outlined" (bordure) plutôt que "underlined" (fond)
103
+ - **Défaut** : `true`
104
+
105
+ ### showWeekNumber
106
+ - **Type** : `boolean`
107
+ - **Description** : Affiche les numéros de semaine dans le calendrier
108
+ - **Défaut** : `false`
109
+
110
+ ### displayRange
111
+ - **Type** : `boolean`
112
+ - **Description** : Active la sélection d'une plage de dates
113
+ - **Défaut** : `false`
114
+
115
+ ### noCalendar
116
+ - **Type** : `boolean`
117
+ - **Description** : Désactive l'affichage du calendrier (saisie manuelle uniquement)
118
+ - **Défaut** : `false`
119
+
120
+ ## Apparence
121
+
122
+ ### displayIcon
123
+ - **Type** : `boolean`
124
+ - **Description** : Affiche l'icône de calendrier
125
+ - **Défaut** : `false`
126
+
127
+ ### displayAppendIcon
128
+ - **Type** : `boolean`
129
+ - **Description** : Affiche l'icône à la fin du champ plutôt qu'au début
130
+ - **Défaut** : `false`
131
+
132
+ ### noIcon
133
+ - **Type** : `boolean`
134
+ - **Description** : Masque toutes les icônes
135
+ - **Défaut** : `false`
136
+
137
+ ## Validation
138
+
139
+ ### customRules
140
+ - **Type** : `{ type: string, options: RuleOptions }[]`
141
+ - **Description** : Règles de validation personnalisées
142
+ - **Défaut** : `[]`
143
+
144
+ ### customWarningRules
145
+ - **Type** : `{ type: string, options: RuleOptions }[]`
146
+ - **Description** : Règles d'avertissement personnalisées
147
+ - **Défaut** : `[]`
148
+
149
+ # Exemple d'utilisation
150
+
151
+ <Source
152
+ dark code={`
153
+ <script setup lang="ts">
154
+ import { ref } from 'vue'
155
+ import { DatePicker } from '@cnamts/synapse'
156
+
157
+ const date = ref('')
158
+ </script>
159
+
160
+ <template>
161
+ <DatePicker
162
+ v-model="date"
163
+ placeholder="Sélectionner une date"
164
+ format="DD/MM/YYYY"
165
+ required
166
+ />
167
+ </template>
168
+ `}
169
+ />
170
+
171
+ ## Exemple avec plage de dates
172
+
173
+ <Source
174
+ dark code={`
175
+ <script setup lang="ts">
176
+ import { ref } from 'vue'
177
+ import { DatePicker } from '@cnamts/synapse'
178
+
179
+ const dateRange = ref(['', ''])
180
+ </script>
181
+
182
+ <template>
183
+ <DatePicker
184
+ v-model="dateRange"
185
+ placeholder="Sélectionner une période"
186
+ format="DD/MM/YYYY"
187
+ display-range
188
+ />
189
+ </template>
190
+ `}
191
+ />