@cnamts/synapse 1.1.0 → 1.1.1

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 (202) hide show
  1. package/dist/{AutocompleteFilter-DXd4szWO.js → AutocompleteFilter-CGF33skz.js} +1 -1
  2. package/dist/{DateFilter-BD59Kgwf.js → DateFilter-D7-MsKtx.js} +1 -1
  3. package/dist/{NumberFilter-BSMZE7uw.js → NumberFilter-bjQPPfsj.js} +1 -1
  4. package/dist/{PeriodFilter-keUdSSk0.js → PeriodFilter-B3wJpK8-.js} +1 -1
  5. package/dist/{SelectFilter-Dhvvwazl.js → SelectFilter-BN6DbKAV.js} +1 -1
  6. package/dist/{TextFilter-CU8FpXz0.js → TextFilter-BffP0J2f.js} +1 -1
  7. package/dist/{apLightTheme2026-DbS7BPUf.js → apLightTheme2026-C4ygwMHC.js} +11 -11
  8. package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +6 -6
  9. package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +6 -6
  10. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +6 -6
  11. package/dist/components/Captcha/Captcha.d.ts +27 -16
  12. package/dist/components/Captcha/CaptchaForm.d.ts +29 -3
  13. package/dist/components/Captcha/types.d.ts +14 -0
  14. package/dist/components/Captcha/useCaptchaValidation.d.ts +37 -0
  15. package/dist/components/Customs/Selects/SelectBtnField/SelectBtnField.d.ts +33 -13
  16. package/dist/components/Customs/Selects/SelectBtnField/composables/useSelectBtnFieldValidation.d.ts +23 -0
  17. package/dist/components/Customs/Selects/SyAutocomplete/composables/useSyAutocompleteValidation.d.ts +2 -2
  18. package/dist/components/Customs/Selects/SySelect/composables/useSySelectValidation.d.ts +2 -2
  19. package/dist/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.d.ts +17 -48
  20. package/dist/components/Customs/SyCheckBoxGroup/composables/useSyCheckBoxGroupValidation.d.ts +29 -0
  21. package/dist/components/Customs/SyCheckBoxGroup/types.d.ts +46 -0
  22. package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +16 -51
  23. package/dist/components/Customs/SyCheckbox/composables/useSyCheckboxValidation.d.ts +27 -0
  24. package/dist/components/Customs/SyCheckbox/types.d.ts +49 -0
  25. package/dist/components/Customs/SyTextField/FieldState.d.ts +5 -0
  26. package/dist/components/Customs/SyTextField/useSyTextFieldValidation.d.ts +3 -3
  27. package/dist/components/DialogBox/DialogBox.d.ts +2 -0
  28. package/dist/components/DialogBox/locales.d.ts +1 -0
  29. package/dist/components/FilterSideBar/FilterSideBar.d.ts +4 -0
  30. package/dist/components/LunarCalendar/LunarCalendar.d.ts +43 -14
  31. package/dist/components/LunarCalendar/types.d.ts +35 -0
  32. package/dist/components/LunarCalendar/useLunarCalendarValidation.d.ts +11 -12
  33. package/dist/components/MonthPicker/MonthPicker.d.ts +72 -1747
  34. package/dist/components/MonthPicker/MonthPickerText/MonthPickerInput.d.ts +21 -1733
  35. package/dist/components/MonthPicker/MonthPickerText/useTextField.d.ts +5 -0
  36. package/dist/components/MonthPicker/locales.d.ts +1 -0
  37. package/dist/components/MonthPicker/types.d.ts +11 -0
  38. package/dist/components/MonthPicker/useMonthPickerValidation.d.ts +37 -24
  39. package/dist/components/NirField/NirField.d.ts +6 -4
  40. package/dist/components/NirField/useNirValidation.d.ts +7 -5
  41. package/dist/components/PageContainer/PageContainer.d.ts +8 -0
  42. package/dist/components/PasswordField/PasswordField.d.ts +2 -2
  43. package/dist/components/PasswordField/usePasswordFieldValidation.d.ts +2 -2
  44. package/dist/components/PhoneField/PhoneField.d.ts +960 -1938
  45. package/dist/components/PhoneField/indicatifs.d.ts +715 -8
  46. package/dist/components/PhoneField/locales.d.ts +7 -0
  47. package/dist/components/PhoneField/types.d.ts +29 -0
  48. package/dist/components/PhoneField/usePhoneFieldValidation.d.ts +45 -0
  49. package/dist/components/PhoneField/usePhoneIndicatifs.d.ts +947 -0
  50. package/dist/components/SyTextArea/composables/useSyTextAreaValidation.d.ts +2 -2
  51. package/dist/composables/unifyValidation/documentationValidationProps.d.ts +1 -1
  52. package/dist/composables/unifyValidation/useValidation.d.ts +4 -5
  53. package/dist/design-system-v3.js +2 -2
  54. package/dist/designTokens/tokens/amelipro/apLightTheme.d.ts +10 -10
  55. package/dist/designTokens/tokens/baseTokens.d.ts +18 -18
  56. package/dist/designTokens/tokens/cnam/cnamLightTheme.d.ts +10 -10
  57. package/dist/designTokens/tokens/pa/paLightTheme.d.ts +10 -10
  58. package/dist/designTokens/tokens/semanticTokens.d.ts +14 -14
  59. package/dist/{main-D8ryUoS5.js → main-C4wAktOs.js} +13718 -12991
  60. package/dist/synapse.css +1 -1
  61. package/dist/vuetifyConfig.js +1 -1
  62. package/package.json +7 -7
  63. package/src/assets/compat/_legacy-tokens.scss +91 -0
  64. package/src/assets/overrides/_utilities.scss +23 -0
  65. package/src/components/Accordion/Accordion.stories.ts +121 -1
  66. package/src/components/BackBtn/BackBtn.mdx +1 -1
  67. package/src/components/BackToTopBtn/BackToTopBtn.mdx +0 -1
  68. package/src/components/Captcha/Captcha.stories.ts +134 -31
  69. package/src/components/Captcha/Captcha.vue +95 -28
  70. package/src/components/Captcha/CaptchaForm.vue +51 -22
  71. package/src/components/Captcha/tests/Captcha.focus.spec.ts +214 -0
  72. package/src/components/Captcha/tests/Captcha.spec.ts +233 -24
  73. package/src/components/Captcha/tests/CaptchaForm.spec.ts +82 -0
  74. package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +16 -42
  75. package/src/components/Captcha/types.ts +15 -0
  76. package/src/components/Captcha/useCaptchaValidation.ts +87 -0
  77. package/src/components/Captcha/validation/validation.stories.ts +1194 -0
  78. package/src/components/ChipList/ChipList.mdx +0 -1
  79. package/src/components/CollapsibleList/CollapsibleList.mdx +0 -1
  80. package/src/components/CookieBanner/CookieBanner.mdx +0 -1
  81. package/src/components/CopyBtn/CopyBtn.mdx +0 -1
  82. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.stories.ts +123 -439
  83. package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.vue +147 -41
  84. package/src/components/Customs/Selects/SelectBtnField/Validation/Validation.stories.ts +600 -0
  85. package/src/components/Customs/Selects/SelectBtnField/composables/useSelectBtnFieldValidation.ts +87 -0
  86. package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.spec.ts +402 -33
  87. package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/SelectBtnField.spec.ts.snap +52 -38
  88. package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.stories.ts +342 -162
  89. package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.vue +77 -129
  90. package/src/components/Customs/SyCheckBoxGroup/Validation/Validation.stories.ts +1008 -0
  91. package/src/components/Customs/SyCheckBoxGroup/composables/useSyCheckBoxGroupValidation.ts +107 -0
  92. package/src/components/Customs/SyCheckBoxGroup/tests/SyCheckBoxGroup.spec.ts +180 -7
  93. package/src/components/Customs/SyCheckBoxGroup/types.ts +49 -0
  94. package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +41 -161
  95. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +71 -148
  96. package/src/components/Customs/SyCheckbox/Validation/Validation.stories.ts +654 -0
  97. package/src/components/Customs/SyCheckbox/composables/useSyCheckboxValidation.ts +105 -0
  98. package/src/components/Customs/SyCheckbox/tests/SyCheckbox.spec.ts +106 -0
  99. package/src/components/Customs/SyCheckbox/tests/useSyCheckboxValidation.spec.ts +98 -0
  100. package/src/components/Customs/SyCheckbox/types.ts +51 -0
  101. package/src/components/Customs/SyTextField/FieldState.vue +50 -0
  102. package/src/components/Customs/SyTextField/SyTextField.vue +12 -9
  103. package/src/components/Customs/SyTextField/useSyTextFieldValidation.ts +2 -11
  104. package/src/components/DataList/DataList.mdx +0 -1
  105. package/src/components/DataListGroup/DataListGroup.mdx +0 -1
  106. package/src/components/DiacriticPicker/DiacriticPicker.mdx +0 -1
  107. package/src/components/DialogBox/DialogBox.mdx +0 -1
  108. package/src/components/DialogBox/DialogBox.stories.ts +399 -4
  109. package/src/components/DialogBox/DialogBox.vue +20 -0
  110. package/src/components/DialogBox/locales.ts +1 -0
  111. package/src/components/DialogBox/tests/DialogBox.spec.ts +73 -0
  112. package/src/components/DialogBox/tests/DialogBox.visual.cy.ts +24 -0
  113. package/src/components/ErrorPage/ErrorPage.mdx +1 -1
  114. package/src/components/ExternalLinks/ExternalLinks.mdx +0 -1
  115. package/src/components/FileList/FileList.mdx +0 -1
  116. package/src/components/FilterInline/FilterInline.mdx +0 -1
  117. package/src/components/FilterSideBar/FilterSideBar.mdx +8 -1
  118. package/src/components/FilterSideBar/FilterSideBar.stories.ts +133 -1
  119. package/src/components/FilterSideBar/FilterSideBar.vue +19 -2
  120. package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +55 -0
  121. package/src/components/FooterBar/FooterBar.mdx +0 -1
  122. package/src/components/FranceConnectBtn/FranceConnectBtn.mdx +0 -1
  123. package/src/components/HeaderBar/HeaderBar.mdx +0 -1
  124. package/src/components/HeaderLoading/HeaderLoading.mdx +0 -1
  125. package/src/components/LangBtn/LangBtn.mdx +0 -1
  126. package/src/components/Logo/Logo.mdx +1 -1
  127. package/src/components/LunarCalendar/LunarCalendar.mdx +6 -9
  128. package/src/components/LunarCalendar/LunarCalendar.stories.ts +243 -46
  129. package/src/components/LunarCalendar/LunarCalendar.vue +61 -26
  130. package/src/components/LunarCalendar/Validation/Validation.stories.ts +717 -0
  131. package/src/components/LunarCalendar/tests/LunarCalendar.a11y.spec.ts +1 -1
  132. package/src/components/LunarCalendar/tests/LunarCalendar.spec.ts +197 -6
  133. package/src/components/LunarCalendar/tests/useLunarCalendarValidation.spec.ts +287 -0
  134. package/src/components/LunarCalendar/types.ts +39 -0
  135. package/src/components/LunarCalendar/useLunarCalendarValidation.ts +115 -39
  136. package/src/components/MonthPicker/MonthPicker.stories.ts +38 -281
  137. package/src/components/MonthPicker/MonthPicker.vue +66 -17
  138. package/src/components/MonthPicker/MonthPickerText/MonthPickerInput.vue +44 -20
  139. package/src/components/MonthPicker/MonthPickerText/useTextField.ts +5 -0
  140. package/src/components/MonthPicker/Validation/Validation.stories.ts +1117 -0
  141. package/src/components/MonthPicker/locales.ts +1 -0
  142. package/src/components/MonthPicker/tests/MonthPicker.spec.ts +353 -2
  143. package/src/components/MonthPicker/tests/__snapshots__/MonthPicker.spec.ts.snap +12 -8
  144. package/src/components/MonthPicker/types.ts +16 -0
  145. package/src/components/MonthPicker/useMonthPickerValidation.ts +64 -27
  146. package/src/components/NirField/NirField.mdx +120 -66
  147. package/src/components/NirField/NirField.stories.ts +216 -0
  148. package/src/components/NirField/useNirValidation.ts +16 -17
  149. package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +263 -245
  150. package/src/components/NotificationBar/NotificationBar.mdx +0 -1
  151. package/src/components/PageContainer/PageContainer.mdx +0 -1
  152. package/src/components/PageContainer/PageContainer.stories.ts +170 -2
  153. package/src/components/PageContainer/PageContainer.vue +63 -8
  154. package/src/components/PageContainer/tests/__snapshots__/PageContainer.spec.ts.snap +19 -11
  155. package/src/components/PaginatedTable/PaginatedTable.mdx +0 -1
  156. package/src/components/PeriodField/PeriodField.mdx +0 -1
  157. package/src/components/PhoneField/PhoneField.mdx +2 -3
  158. package/src/components/PhoneField/PhoneField.stories.ts +227 -410
  159. package/src/components/PhoneField/PhoneField.vue +204 -438
  160. package/src/components/PhoneField/indicatifs.ts +1 -1
  161. package/src/components/PhoneField/locales.ts +7 -0
  162. package/src/components/PhoneField/tests/PhoneField.a11y.spec.ts +0 -1
  163. package/src/components/PhoneField/tests/PhoneField.spec.ts +517 -220
  164. package/src/components/PhoneField/types.ts +30 -0
  165. package/src/components/PhoneField/usePhoneFieldValidation.ts +119 -0
  166. package/src/components/PhoneField/usePhoneIndicatifs.ts +89 -0
  167. package/src/components/PhoneField/validation/validation.stories.ts +717 -0
  168. package/src/components/RangeField/RangeField.mdx +0 -1
  169. package/src/components/RatingPicker/RatingPicker.mdx +0 -1
  170. package/src/components/SocialMediaLinks/SocialMediaLinks.mdx +0 -1
  171. package/src/components/StatusPage/StatusPage.vue +1 -0
  172. package/src/components/StatusPage/tests/__snapshots__/StatusPage.spec.ts.snap +248 -230
  173. package/src/components/SubHeader/SubHeader.mdx +5 -6
  174. package/src/components/Tables/common/tests/SyTableFilter.spec.ts +11 -12
  175. package/src/components/UploadWorkflow/UploadWorkflow.mdx +0 -1
  176. package/src/components/UserMenuBtn/UserMenuBtn.mdx +0 -1
  177. package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +177 -0
  178. package/src/composables/unifyValidation/documentationValidationProps.ts +1 -1
  179. package/src/composables/unifyValidation/tests/useValidation.spec.ts +13 -1
  180. package/src/composables/unifyValidation/useValidation.ts +37 -33
  181. package/src/composantsVuetify/VCard/VCard.mdx +4 -0
  182. package/src/composantsVuetify/VCard/v-card.stories.ts +93 -1
  183. package/src/composantsVuetify/VCarousel/VCarousel.mdx +74 -0
  184. package/src/composantsVuetify/VCarousel/v-carousel.stories.ts +531 -0
  185. package/src/composantsVuetify/VNavigationDrawer/VNavgationDrawer.mdx +53 -0
  186. package/src/composantsVuetify/VNavigationDrawer/v-navigation-drawer.stories.ts +310 -0
  187. package/src/composantsVuetify/VSlideGroup/VSlideGroup.mdx +105 -0
  188. package/src/composantsVuetify/VSlideGroup/v-slide-group.stories.ts +463 -0
  189. package/src/designTokens/tokens/baseColors.ts +1 -1
  190. package/src/designTokens/tokens/baseTokens.ts +18 -18
  191. package/src/stories/Components/Components.stories.ts +34 -1
  192. package/src/stories/Demarrer/Releases.stories.ts +16 -2
  193. package/src/stories/DesignTokens/Arrondis.mdx +1 -1
  194. package/src/stories/DesignTokens/Correspondances.mdx +219 -0
  195. package/src/stories/DesignTokens/UtiliserLesTokens.mdx +235 -0
  196. package/src/stories/DesignTokens/colors.stories.ts +569 -569
  197. package/src/stories/GuideDuDev/Amelipro.stories.ts +335 -267
  198. package/dist/components/LunarCalendar/useLunarCalendarRules.d.ts +0 -5
  199. package/dist/components/PhoneField/tests/types.d.ts +0 -18
  200. package/src/components/LunarCalendar/tests/useLunarCalendarRules.spec.ts +0 -184
  201. package/src/components/LunarCalendar/useLunarCalendarRules.ts +0 -96
  202. package/src/components/PhoneField/tests/types.d.ts +0 -19
@@ -0,0 +1,463 @@
1
+ import type { Meta, StoryObj } from '@storybook/vue3'
2
+ import { VSlideGroup, VSlideGroupItem, VCard, VCardText, VBtn, VChip } from 'vuetify/components'
3
+ import { ref } from 'vue'
4
+
5
+ const meta: Meta<typeof VSlideGroup> = {
6
+ title: 'Composants/Composants Vuetify/VSlideGroup',
7
+ tags: ['!dev'],
8
+ component: VSlideGroup,
9
+ parameters: {
10
+ docs: {
11
+ source: {
12
+ transform: (src: string) => {
13
+ const templateMatch = src.match(/template:\s*`([\s\S]*?)`/)
14
+ if (templateMatch && templateMatch[1]) {
15
+ return templateMatch[1]
16
+ .trim()
17
+ .replace(/<VSlideGroup/g, '<v-slide-group')
18
+ .replace(/<\/VSlideGroup>/g, '</v-slide-group>')
19
+ .replace(/<VSlideGroupItem/g, '<v-slide-group-item')
20
+ .replace(/<\/VSlideGroupItem>/g, '</v-slide-group-item>')
21
+ .replace(/<VCard/g, '<v-card')
22
+ .replace(/<\/VCard>/g, '</v-card>')
23
+ .replace(/<VCardText/g, '<v-card-text')
24
+ .replace(/<\/VCardText>/g, '</v-card-text>')
25
+ .replace(/<VBtn/g, '<v-btn')
26
+ .replace(/<\/VBtn>/g, '</v-btn>')
27
+ .replace(/<VIcon/g, '<v-icon')
28
+ .replace(/<\/VIcon>/g, '</v-icon>')
29
+ .replace(/<VChip/g, '<v-chip')
30
+ .replace(/<\/VChip>/g, '</v-chip>')
31
+ }
32
+ return src
33
+ },
34
+ },
35
+ },
36
+ },
37
+ argTypes: {
38
+ selectedClass: {
39
+ control: { type: 'text' },
40
+ description: 'Classe CSS appliquée aux éléments sélectionnés',
41
+ },
42
+ showArrows: {
43
+ control: { type: 'boolean' },
44
+ description: 'Affiche les flèches de navigation',
45
+ },
46
+ centerActive: {
47
+ control: { type: 'boolean' },
48
+ description: 'Centre l\'élément actif',
49
+ },
50
+ multiple: {
51
+ control: { type: 'boolean' },
52
+ description: 'Permet la sélection multiple',
53
+ },
54
+ mandatory: {
55
+ control: { type: 'boolean' },
56
+ description: 'Rend la sélection obligatoire',
57
+ },
58
+ },
59
+ }
60
+
61
+ export default meta
62
+
63
+ type Story = StoryObj<typeof VSlideGroup>
64
+
65
+ export const Default: Story = {
66
+ render: args => ({
67
+ components: { VSlideGroup, VSlideGroupItem, VCard, VCardText },
68
+ setup() {
69
+ return { args }
70
+ },
71
+ template: `
72
+ <VSlideGroup v-bind="args">
73
+ <VSlideGroupItem v-for="n in 15" :key="n">
74
+ <VCard
75
+ color="primary"
76
+ class="ma-2"
77
+ height="150"
78
+ width="150"
79
+ :ripple="false"
80
+ >
81
+ <VCardText class="d-flex align-center justify-center h-100 text-h4">
82
+ {{ n }}
83
+ </VCardText>
84
+ </VCard>
85
+ </VSlideGroupItem>
86
+ </VSlideGroup>
87
+ `,
88
+ }),
89
+ args: {
90
+ showArrows: true,
91
+ },
92
+ parameters: {
93
+ docs: {
94
+ source: {
95
+ code: `<template>
96
+ <v-slide-group :show-arrows="true">
97
+ <v-slide-group-item v-for="n in 15" :key="n">
98
+ <v-card
99
+ color="primary"
100
+ class="ma-2"
101
+ height="150"
102
+ width="150"
103
+ :ripple="false"
104
+ >
105
+ <v-card-text class="d-flex align-center justify-center h-100 text-h4">
106
+ {{ n }}
107
+ </v-card-text>
108
+ </v-card>
109
+ </v-slide-group-item>
110
+ </v-slide-group>
111
+ </template>`,
112
+ },
113
+ },
114
+ },
115
+ }
116
+
117
+ export const WithChips: Story = {
118
+ render: args => ({
119
+ components: { VSlideGroup, VSlideGroupItem, VChip },
120
+ setup() {
121
+ const tags = ['Option 1', 'Option 2', 'Option 3', 'Option 4', 'Option 5', 'Option 6', 'Option 7', 'Option 8']
122
+ return { args, tags }
123
+ },
124
+ template: `
125
+ <VSlideGroup v-bind="args">
126
+ <VSlideGroupItem v-for="(tag, index) in tags" :key="index" v-slot="{ isSelected, toggle }">
127
+ <VChip
128
+ color="primary"
129
+ :variant="isSelected ? 'flat' : 'outlined'"
130
+ class="ma-2"
131
+ :ripple="false"
132
+ @click="toggle"
133
+ >
134
+ {{ tag }}
135
+ </VChip>
136
+ </VSlideGroupItem>
137
+ </VSlideGroup>
138
+ `,
139
+ }),
140
+ args: {
141
+ showArrows: true,
142
+ mandatory: false,
143
+ },
144
+ parameters: {
145
+ docs: {
146
+ source: {
147
+ code: `<template>
148
+ <v-slide-group :show-arrows="true">
149
+ <v-slide-group-item v-for="(tag, index) in tags" :key="index" v-slot="{ isSelected, toggle }">
150
+ <v-chip
151
+ color="primary"
152
+ :variant="isSelected ? 'flat' : 'outlined'"
153
+ class="ma-2"
154
+ :ripple="false"
155
+ @click="toggle"
156
+ >
157
+ {{ tag }}
158
+ </v-chip>
159
+ </v-slide-group-item>
160
+ </v-slide-group>
161
+ </template>
162
+
163
+ <script setup lang="ts">
164
+ const tags = ['Option 1', 'Option 2', 'Option 3', 'Option 4', 'Option 5', 'Option 6', 'Option 7', 'Option 8']
165
+ </script>`,
166
+ },
167
+ },
168
+ },
169
+ }
170
+
171
+ export const CenterActive: Story = {
172
+ render: args => ({
173
+ components: { VSlideGroup, VSlideGroupItem, VBtn },
174
+ setup() {
175
+ const model = ref(3)
176
+ const items = ['Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche']
177
+ return { args, model, items }
178
+ },
179
+ template: `
180
+ <VSlideGroup v-model="model" v-bind="args">
181
+ <VSlideGroupItem v-for="(item, index) in items" :key="index" :value="index" v-slot="{ isSelected, toggle }">
182
+ <VBtn
183
+ color="primary"
184
+ :variant="isSelected ? 'flat' : 'outlined'"
185
+ class="ma-2"
186
+ :ripple="false"
187
+ @click="toggle"
188
+ >
189
+ {{ item }}
190
+ </VBtn>
191
+ </VSlideGroupItem>
192
+ </VSlideGroup>
193
+ <div class="text-center mt-4">
194
+ <p class="text-body-2">Jour sélectionné : {{ items[model] }}</p>
195
+ </div>
196
+ `,
197
+ }),
198
+ args: {
199
+ showArrows: true,
200
+ centerActive: true,
201
+ mandatory: true,
202
+ },
203
+ parameters: {
204
+ docs: {
205
+ source: {
206
+ code: `<template>
207
+ <v-slide-group v-model="model" :show-arrows="true" :center-active="true" :mandatory="true">
208
+ <v-slide-group-item v-for="(item, index) in items" :key="index" :value="index" v-slot="{ isSelected, toggle }">
209
+ <v-btn
210
+ color="primary"
211
+ :variant="isSelected ? 'flat' : 'outlined'"
212
+ class="ma-2"
213
+ :ripple="false"
214
+ @click="toggle"
215
+ >
216
+ {{ item }}
217
+ </v-btn>
218
+ </v-slide-group-item>
219
+ </v-slide-group>
220
+ <div class="text-center mt-4">
221
+ <p class="text-body-2">Jour sélectionné : {{ items[model] }}</p>
222
+ </div>
223
+ </template>
224
+
225
+ <script setup lang="ts">
226
+ import { ref } from 'vue'
227
+
228
+ const model = ref(3)
229
+ const items = ['Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche']
230
+ </script>`,
231
+ },
232
+ },
233
+ },
234
+ }
235
+
236
+ export const Misc: Story = {
237
+ render: args => ({
238
+ components: { VSlideGroup, VSlideGroupItem, VChip },
239
+ setup() {
240
+ const model = ref(0)
241
+ const items = [
242
+ { text: 'Aperitifs', value: 'aperitifs' },
243
+ { text: 'Appetizers', value: 'appetizers' },
244
+ { text: 'Cocktails', value: 'cocktails' },
245
+ { text: 'Dinner', value: 'dinner' },
246
+ { text: 'Wines by the Bottle', value: 'wines_bottle' },
247
+ { text: 'Wines by the Glass', value: 'wines_glass' },
248
+ ]
249
+ return { args, model, items }
250
+ },
251
+ template: `
252
+ <VSlideGroup v-model="model" v-bind="args" selected-class="bg-primary">
253
+ <VSlideGroupItem
254
+ v-for="(item, index) in items"
255
+ :key="item.value"
256
+ :value="index"
257
+ v-slot="{ isSelected, toggle }"
258
+ >
259
+ <VChip
260
+ class="ma-2"
261
+ color="primary"
262
+ :variant="isSelected ? 'flat' : 'outlined'"
263
+ :ripple="false"
264
+ @click="toggle"
265
+ >
266
+ {{ item.text }}
267
+ </VChip>
268
+ </VSlideGroupItem>
269
+ </VSlideGroup>
270
+
271
+ <div class="text-center mt-4">
272
+ <p class="text-body-2 text-medium-emphasis">Selected: {{ items[model]?.text || 'None' }}</p>
273
+ </div>
274
+ `,
275
+ }),
276
+ args: {
277
+ showArrows: true,
278
+ centerActive: true,
279
+ mandatory: true,
280
+ },
281
+ parameters: {
282
+ docs: {
283
+ description: {
284
+ story: 'Exemple de menu de navigation avec sélection et affichage de la valeur sélectionnée.',
285
+ },
286
+ source: {
287
+ code: `<template>
288
+ <v-slide-group v-model="model" :show-arrows="true" :center-active="true" :mandatory="true" selected-class="bg-primary">
289
+ <v-slide-group-item
290
+ v-for="(item, index) in items"
291
+ :key="item.value"
292
+ :value="index"
293
+ v-slot="{ isSelected, toggle }"
294
+ >
295
+ <v-chip
296
+ class="ma-2"
297
+ color="primary"
298
+ :variant="isSelected ? 'flat' : 'outlined'"
299
+ :ripple="false"
300
+ @click="toggle"
301
+ >
302
+ {{ item.text }}
303
+ </v-chip>
304
+ </v-slide-group-item>
305
+ </v-slide-group>
306
+
307
+ <div class="text-center mt-4">
308
+ <p class="text-body-2 text-medium-emphasis">Selected: {{ items[model]?.text || 'None' }}</p>
309
+ </div>
310
+ </template>
311
+
312
+ <script setup lang="ts">
313
+ import { ref } from 'vue'
314
+
315
+ const model = ref(0)
316
+ const items = [
317
+ { text: 'Aperitifs', value: 'aperitifs' },
318
+ { text: 'Appetizers', value: 'appetizers' },
319
+ { text: 'Cocktails', value: 'cocktails' },
320
+ { text: 'Dinner', value: 'dinner' },
321
+ { text: 'Wines by the Bottle', value: 'wines_bottle' },
322
+ { text: 'Wines by the Glass', value: 'wines_glass' },
323
+ ]
324
+ </script>`,
325
+ },
326
+ },
327
+ },
328
+ }
329
+
330
+ export const MultipleSelection: Story = {
331
+ render: args => ({
332
+ components: { VSlideGroup, VSlideGroupItem, VCard, VCardText },
333
+ setup() {
334
+ return { args }
335
+ },
336
+ template: `
337
+ <VSlideGroup v-bind="args">
338
+ <VSlideGroupItem v-for="n in 10" :key="n" v-slot="{ isSelected, toggle }">
339
+ <VCard
340
+ color="primary"
341
+ :variant="isSelected ? 'flat' : 'outlined'"
342
+ class="ma-2"
343
+ height="120"
344
+ width="120"
345
+ :ripple="false"
346
+ @click="toggle"
347
+ >
348
+ <VCardText class="d-flex align-center justify-center h-100 text-h5">
349
+ {{ n }}
350
+ </VCardText>
351
+ </VCard>
352
+ </VSlideGroupItem>
353
+ </VSlideGroup>
354
+ `,
355
+ }),
356
+ args: {
357
+ showArrows: true,
358
+ multiple: true,
359
+ },
360
+ parameters: {
361
+ docs: {
362
+ source: {
363
+ code: `<template>
364
+ <v-slide-group :show-arrows="true" :multiple="true">
365
+ <v-slide-group-item v-for="n in 10" :key="n" v-slot="{ isSelected, toggle }">
366
+ <v-card
367
+ color="primary"
368
+ :variant="isSelected ? 'flat' : 'outlined'"
369
+ class="ma-2"
370
+ height="120"
371
+ width="120"
372
+ :ripple="false"
373
+ @click="toggle"
374
+ >
375
+ <v-card-text class="d-flex align-center justify-center h-100 text-h5">
376
+ {{ n }}
377
+ </v-card-text>
378
+ </v-card>
379
+ </v-slide-group-item>
380
+ </v-slide-group>
381
+ </template>`,
382
+ },
383
+ },
384
+ },
385
+ }
386
+
387
+ export const CustomCards: Story = {
388
+ render: args => ({
389
+ components: { VSlideGroup, VSlideGroupItem, VCard, VCardText },
390
+ setup() {
391
+ const categories = [
392
+ { title: 'Catégorie 1', color: 'primary' },
393
+ { title: 'Catégorie 2', color: 'secondary' },
394
+ { title: 'Catégorie 3', color: 'success' },
395
+ { title: 'Catégorie 4', color: 'info' },
396
+ { title: 'Catégorie 5', color: 'warning' },
397
+ { title: 'Catégorie 6', color: 'error' },
398
+ ]
399
+ return { args, categories }
400
+ },
401
+ template: `
402
+ <VSlideGroup v-bind="args">
403
+ <VSlideGroupItem v-for="(category, index) in categories" :key="index" v-slot="{ isSelected, toggle }">
404
+ <VCard
405
+ :color="category.color"
406
+ :variant="isSelected ? 'flat' : 'outlined'"
407
+ :elevation="isSelected ? 4 : 0"
408
+ class="ma-2"
409
+ height="180"
410
+ width="180"
411
+ :ripple="false"
412
+ @click="toggle"
413
+ >
414
+ <VCardText class="d-flex align-center justify-center h-100 text-h6 text-center">
415
+ {{ category.title }}
416
+ </VCardText>
417
+ </VCard>
418
+ </VSlideGroupItem>
419
+ </VSlideGroup>
420
+ `,
421
+ }),
422
+ args: {
423
+ showArrows: true,
424
+ mandatory: false,
425
+ },
426
+ parameters: {
427
+ docs: {
428
+ source: {
429
+ code: `<template>
430
+ <v-slide-group :show-arrows="true">
431
+ <v-slide-group-item v-for="(category, index) in categories" :key="index" v-slot="{ isSelected, toggle }">
432
+ <v-card
433
+ :color="category.color"
434
+ :variant="isSelected ? 'flat' : 'outlined'"
435
+ :elevation="isSelected ? 4 : 0"
436
+ class="ma-2"
437
+ height="180"
438
+ width="180"
439
+ :ripple="false"
440
+ @click="toggle"
441
+ >
442
+ <v-card-text class="d-flex align-center justify-center h-100 text-h6 text-center">
443
+ {{ category.title }}
444
+ </v-card-text>
445
+ </v-card>
446
+ </v-slide-group-item>
447
+ </v-slide-group>
448
+ </template>
449
+
450
+ <script setup lang="ts">
451
+ const categories = [
452
+ { title: 'Catégorie 1', color: 'primary' },
453
+ { title: 'Catégorie 2', color: 'secondary' },
454
+ { title: 'Catégorie 3', color: 'success' },
455
+ { title: 'Catégorie 4', color: 'info' },
456
+ { title: 'Catégorie 5', color: 'warning' },
457
+ { title: 'Catégorie 6', color: 'error' },
458
+ ]
459
+ </script>`,
460
+ },
461
+ },
462
+ },
463
+ }
@@ -123,7 +123,7 @@ export const baseColors = {
123
123
  lighten38: 'rgba(255, 255, 255, 0.38)',
124
124
  lighten40: 'rgba(255, 255, 255, 0.40)',
125
125
  lighten70: 'rgba(255, 255, 255, 0.70)',
126
- lighten8: 'rgba(255, 255, 255, 0.080)',
126
+ lighten8: 'rgba(255, 255, 255, 0.08)',
127
127
  base: '#ffffff',
128
128
  },
129
129
  }
@@ -156,37 +156,37 @@ export const baseTokens = {
156
156
  lighten80: '#DDDEDE',
157
157
  lighten90: '#EEEEEE',
158
158
  lighten97: '#FAFAFA',
159
- alpha40: 'rgba(152,155,155,0.4000000059604645)',
159
+ alpha40: 'rgba(152,155,155,0.4)',
160
160
  },
161
161
  white: {
162
162
  base: '#FFFFFF',
163
- alpha70: 'rgba(255,255,255,0.699999988079071)',
164
- alpha40: 'rgba(255,255,255,0.4000000059604645)',
165
- alpha38: 'rgba(255,255,255,0.3799999952316284)',
166
- alpha20: 'rgba(255,255,255,0.20000000298023224)',
167
- alpha08: 'rgba(255,255,255,0.07999999821186066)',
163
+ alpha70: 'rgba(255,255,255,0.7)',
164
+ alpha40: 'rgba(255,255,255,0.4)',
165
+ alpha38: 'rgba(255,255,255,0.38)',
166
+ alpha20: 'rgba(255,255,255,0.2)',
167
+ alpha08: 'rgba(255,255,255,0.08)',
168
168
  alpha00: 'rgba(255,255,255,0)',
169
169
  },
170
170
  transparentBlue: {
171
- alpha40: 'rgba(12,65,154,0.4000000059604645)',
172
- alpha20: 'rgba(12,65,154,0.20000000298023224)',
173
- alpha18: 'rgba(12,65,154,0.18000000715255737)',
174
- alpha08: 'rgba(12,65,154,0.07999999821186066)',
171
+ alpha40: 'rgba(12,65,154,0.4)',
172
+ alpha20: 'rgba(12,65,154,0.2)',
173
+ alpha18: 'rgba(12,65,154,0.18)',
174
+ alpha08: 'rgba(12,65,154,0.08)',
175
175
  alpha00: 'rgba(12,65,154,0)',
176
176
  },
177
177
  transparentCyan: {
178
178
  alpha00: 'rgba(0,132,178,0)',
179
- alpha08: 'rgba(0,132,178,0.07999999821186066)',
180
- alpha18: 'rgba(0,132,178,0.18000000715255737)',
181
- alpha20: 'rgba(0,132,178,0.20000000298023224)',
182
- alpha40: 'rgba(0,132,178,0.4000000059604645)',
179
+ alpha08: 'rgba(0,132,178,0.08)',
180
+ alpha18: 'rgba(0,132,178,0.18)',
181
+ alpha20: 'rgba(0,132,178,0.2)',
182
+ alpha40: 'rgba(0,132,178,0.4)',
183
183
  },
184
184
  transparentBlack: {
185
185
  alpha00: 'rgba(0,0,0,0)',
186
- alpha08: 'rgba(0,0,0,0.07999999821186066)',
187
- alpha18: 'rgba(0,0,0,0.18000000715255737)',
188
- alpha20: 'rgba(0,0,0,0.20000000298023224)',
189
- alpha40: 'rgba(0,0,0,0.4000000059604645)',
186
+ alpha08: 'rgba(0,0,0,0.08)',
187
+ alpha18: 'rgba(0,0,0,0.18)',
188
+ alpha20: 'rgba(0,0,0,0.2)',
189
+ alpha40: 'rgba(0,0,0,0.4)',
190
190
  },
191
191
  amber: {
192
192
  darken80: '#502C01',
@@ -63,6 +63,13 @@ export const ComponentsList: StoryObj = {
63
63
  img: '/components/v-skeleton-loader.svg',
64
64
  category: 'Structure',
65
65
  },
66
+ {
67
+ title: 'NavigationDrawer',
68
+ description: 'Utilisé pour naviguer dans l\'application.',
69
+ link: '/?path=/docs/composants-composants-vuetify-vnavigationdrawer--docs',
70
+ img: `/components/navigation-drawer${isAp ? '-ap' : ''}.svg`,
71
+ category: 'Navigation',
72
+ },
66
73
  {
67
74
  title: 'FooterBar',
68
75
  description: 'Utilisé pour afficher une barre de pied de page avec des liens et des informations supplémentaires.',
@@ -84,6 +91,20 @@ export const ComponentsList: StoryObj = {
84
91
  img: `/components/card${isAp ? '-ap' : ''}.svg`,
85
92
  category: 'Layout',
86
93
  },
94
+ {
95
+ title: 'Carousel',
96
+ description: 'Utilisé pour afficher un diaporama d\'images ou de contenu.',
97
+ link: '/?path=/docs/composants-composants-vuetify-vcarousel--docs',
98
+ img: `/components/carousel${isAp ? '-ap' : ''}.svg`,
99
+ category: 'Layout',
100
+ },
101
+ {
102
+ title: 'SlideGroup',
103
+ description: 'Utilisé pour afficher des informations pseudo-paginées.',
104
+ link: '/?path=/docs/composants-composants-vuetify-vslidegroup--docs',
105
+ img: `/components/slide-group${isAp ? '-ap' : ''}.svg`,
106
+ category: 'Layout',
107
+ },
87
108
  {
88
109
  title: 'Stepper',
89
110
  description: 'Affiche la progression par étapes numérotées.',
@@ -200,7 +221,7 @@ export const ComponentsList: StoryObj = {
200
221
  title: 'UserMenuBtn',
201
222
  description: 'Utilisé pour afficher un bouton de menu utilisateur avec un menu déroulant.',
202
223
  link: '/?path=/docs/composants-boutons-usermenubtn--docs',
203
- img: '/components/user-menu-btn.svg',
224
+ img: `/components/user-menu-btn${isAp ? '-ap' : ''}.svg`,
204
225
  category: 'Boutons',
205
226
  },
206
227
  {
@@ -273,6 +294,13 @@ export const ComponentsList: StoryObj = {
273
294
  img: '/components/file-upload.svg',
274
295
  category: 'Formulaires',
275
296
  },
297
+ {
298
+ title: 'UploadWorkflow',
299
+ description: 'Utilisé pour permettre à l’utilisateur de sélectionner ou de glisser-déposer plusieurs fichiers demandés.',
300
+ link: '/?path=/docs/composants-formulaires-uploadworkflow--docs',
301
+ img: `/components/upload-workflow${isAp ? '-ap' : ''}.svg`,
302
+ category: 'Formulaires',
303
+ },
276
304
  {
277
305
  title: 'NirField',
278
306
  description: 'Utilisé pour permettre à l’utilisateur de saisir un numéro de Sécurité sociale (NIR).',
@@ -546,6 +574,11 @@ export const ComponentsList: StoryObj = {
546
574
  'PasswordField',
547
575
  'Stepper',
548
576
  'Captcha',
577
+ 'Carousel',
578
+ 'UserMenuBtn',
579
+ 'UploadWorkflow',
580
+ 'NavigationDrawer',
581
+ 'SlideGroup',
549
582
  ]
550
583
 
551
584
  const shouldDisplayComponent = (component: { category: string, title: string }, category: string) => {
@@ -25,7 +25,7 @@ const releaseAlerts: ReleaseAlert[] = [
25
25
  {
26
26
  id: 'form-success-messages-hidden',
27
27
  releaseVersion: 'v1.1.0',
28
- message: 'Cette version modifie le comportement des composants de formulaire, les messages de succès sont désormais masqués par défaut. Cette modification répond à la fois à des besoins projets et à l\'harmonisation des différents thèmes (CNAM, PAG, Amelipro). Pour les projets souhaitant afficher les messages de succès vous pouvez simplement le faire via la prop `showSuccessMessages`. Les composants concernés sont :',
28
+ message: 'Cette version modifie le comportement des composants de formulaire, les messages de succès sont désormais masqués par défaut. Cette modification répond à la fois à des besoins projets et à l\'harmonisation des différents thèmes (CNAM, PAG, Amelipro).\nPour les projets souhaitant afficher les messages de succès vous pouvez simplement le faire via la prop showSuccessMessages.\nLes composants concernés sont :',
29
29
  type: 'warning',
30
30
  variant: 'tonal',
31
31
  components: [
@@ -62,6 +62,20 @@ const releaseAlerts: ReleaseAlert[] = [
62
62
  variant: 'tonal',
63
63
  link: { href: '/?path=/docs/design-tokens-couleurs--docs', text: 'couleurs' },
64
64
  },
65
+ {
66
+ id: 'starter-kit-2-0-35',
67
+ releaseVersion: 'v1.0.27',
68
+ message: 'Il est conseillé de faire une montée de version du Starter Kit en 2.0.35',
69
+ type: 'warning',
70
+ variant: 'tonal',
71
+ },
72
+ {
73
+ id: 'starter-kit-2-0-33',
74
+ releaseVersion: 'v1.0.25',
75
+ message: 'Il est conseillé de faire une montée de version du Starter Kit en 2.0.33',
76
+ type: 'warning',
77
+ variant: 'tonal',
78
+ },
65
79
  {
66
80
  id: 'starter-kit-2-0-32',
67
81
  releaseVersion: 'v1.0.24',
@@ -144,7 +158,7 @@ export const List = {
144
158
  :closable="false"
145
159
  class="mt-2 mb-4"
146
160
  >
147
- <template #default>{{ alert.message }}<template v-if="alert.link"> <a :href="alert.link.href">{{ alert.link.text }}</a>.</template><ul v-if="alert.components" class="mt-2 ml-4"><li v-for="component in alert.components" :key="component">{{ component }}</li></ul></template>
161
+ <template #default><span style="white-space: pre-line">{{ alert.message }}</span><template v-if="alert.link"> <a :href="alert.link.href">{{ alert.link.text }}</a>.</template><ul v-if="alert.components" class="mt-2 ml-4" style="column-count: 3; max-width: 42rem;"><li v-for="component in alert.components" :key="component">{{ component }}</li></ul></template>
148
162
  </SyAlert>
149
163
  <div v-html="formatMarkdown(release.body)"></div>
150
164
  <hr>
@@ -23,7 +23,7 @@ Ce radius peut être utilisé sur des éléments interactifs tels que les bouton
23
23
  - <b>rounded-lg : 8px</b><br/>
24
24
  Ce radius peut être utilisé sur des blocs de structure (cards, tableaux...)
25
25
 
26
- - <b>rounded-pill : 96px</b><br/>
26
+ - <b>rounded-pill : 64px</b><br/>
27
27
  Ce radius peut être utilisé sur des éléments (intéractifs ou non) présentant de la donnée, comme des tags, des filtres, des status...
28
28
 
29
29
  <br />