@cnamts/synapse 0.0.11-alpha → 0.0.12-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 (108) hide show
  1. package/dist/design-system-v3.js +3878 -3189
  2. package/dist/design-system-v3.umd.cjs +1 -1
  3. package/dist/src/components/Amelipro/types/languages.d.ts +6 -0
  4. package/dist/src/components/Amelipro/types/types.d.ts +65 -0
  5. package/dist/src/components/CookieBanner/CookieBanner.d.ts +1 -1
  6. package/dist/src/components/Customs/SyInputSelect/SyInputSelect.d.ts +2 -0
  7. package/dist/src/components/Customs/SyTextField/SyTextField.d.ts +29 -23
  8. package/dist/src/components/Customs/SyTextField/types.d.ts +1 -0
  9. package/dist/src/components/DatePicker/DatePicker.d.ts +70 -59
  10. package/dist/src/components/DatePicker/DateTextInput.d.ts +67 -56
  11. package/dist/src/components/ErrorPage/ErrorPage.d.ts +1 -1
  12. package/dist/src/components/FileList/FileList.d.ts +1 -0
  13. package/dist/src/components/FileList/UploadItem/UploadItem.d.ts +1 -1
  14. package/dist/src/components/FilterSideBar/FilterSideBar.d.ts +31 -0
  15. package/dist/src/components/FilterSideBar/locales.d.ts +7 -0
  16. package/dist/src/components/FilterSideBar/tests/FilterSideBar.spec.d.ts +1 -0
  17. package/dist/src/components/LangBtn/LangBtn.d.ts +2 -2
  18. package/dist/src/components/NirField/NirField.d.ts +940 -0
  19. package/dist/src/components/NotificationBar/NotificationBar.d.ts +1 -1
  20. package/dist/src/components/PasswordField/PasswordField.d.ts +40 -8
  21. package/dist/src/components/PeriodField/PeriodField.d.ts +142 -120
  22. package/dist/src/components/PhoneField/PhoneField.d.ts +11 -2
  23. package/dist/src/components/RatingPicker/EmotionPicker/EmotionPicker.d.ts +1 -1
  24. package/dist/src/components/RatingPicker/NumberPicker/NumberPicker.d.ts +1 -1
  25. package/dist/src/components/RatingPicker/StarsPicker/StarsPicker.d.ts +1 -1
  26. package/dist/src/components/UploadWorkflow/config.d.ts +29 -0
  27. package/dist/src/components/UploadWorkflow/locales.d.ts +7 -0
  28. package/dist/src/components/UploadWorkflow/tests/UploadWorkflow.spec.d.ts +1 -0
  29. package/dist/src/components/UploadWorkflow/types.d.ts +19 -0
  30. package/dist/src/components/UploadWorkflow/useFileList.d.ts +10 -0
  31. package/dist/src/components/UploadWorkflow/useFileUploadJourney.d.ts +9 -0
  32. package/dist/src/components/index.d.ts +2 -0
  33. package/dist/src/composables/rules/useFieldValidation.d.ts +1 -0
  34. package/dist/src/composables/validation/tests/useValidation.spec.d.ts +1 -0
  35. package/dist/src/composables/validation/useValidation.d.ts +39 -0
  36. package/dist/src/designTokens/index.d.ts +3 -1
  37. package/dist/src/vuetifyConfig.d.ts +81 -0
  38. package/dist/style.css +1 -1
  39. package/package.json +1 -1
  40. package/src/assets/_elevations.scss +89 -0
  41. package/src/assets/_fonts.scss +6 -0
  42. package/src/assets/_radius.scss +86 -0
  43. package/src/assets/_spacers.scss +149 -0
  44. package/src/assets/settings.scss +7 -3
  45. package/src/assets/tokens.scss +32 -29
  46. package/src/components/Amelipro/types/languages.d.ts +6 -0
  47. package/src/components/Amelipro/types/types.d.ts +65 -0
  48. package/src/components/Customs/SyInputSelect/SyInputSelect.stories.ts +65 -0
  49. package/src/components/Customs/SyInputSelect/SyInputSelect.vue +13 -3
  50. package/src/components/Customs/SySelect/SySelect.stories.ts +88 -5
  51. package/src/components/Customs/SySelect/SySelect.vue +36 -10
  52. package/src/components/Customs/SySelect/tests/SySelect.spec.ts +135 -2
  53. package/src/components/Customs/SyTextField/SyTextField.stories.ts +576 -85
  54. package/src/components/Customs/SyTextField/SyTextField.vue +132 -104
  55. package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +190 -38
  56. package/src/components/Customs/SyTextField/types.d.ts +1 -0
  57. package/src/components/DatePicker/DatePicker.vue +405 -137
  58. package/src/components/DatePicker/DateTextInput.vue +15 -0
  59. package/src/components/DatePicker/tests/DatePicker.spec.ts +8 -15
  60. package/src/components/FileList/FileList.vue +2 -1
  61. package/src/components/FileList/UploadItem/UploadItem.vue +10 -0
  62. package/src/components/FileUpload/FileUpload.stories.ts +84 -0
  63. package/src/components/FileUpload/FileUpload.vue +1 -0
  64. package/src/components/FileUpload/tests/FileUpload.spec.ts +4 -4
  65. package/src/components/FilterInline/FilterInline.mdx +180 -34
  66. package/src/components/FilterInline/FilterInline.stories.ts +363 -6
  67. package/src/components/FilterSideBar/FilterSideBar.mdx +237 -0
  68. package/src/components/FilterSideBar/FilterSideBar.stories.ts +798 -0
  69. package/src/components/FilterSideBar/FilterSideBar.vue +193 -0
  70. package/src/components/FilterSideBar/locales.ts +8 -0
  71. package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +305 -0
  72. package/src/components/FilterSideBar/tests/__snapshots__/FilterSideBar.spec.ts.snap +39 -0
  73. package/src/components/HeaderBar/Usages.mdx +1 -1
  74. package/src/components/NirField/NirField.stories.ts +573 -29
  75. package/src/components/NirField/NirField.vue +397 -359
  76. package/src/components/NirField/tests/NirField.spec.ts +88 -52
  77. package/src/components/NirField/tests//342/200/257dataset/342/200/257.md +12 -0
  78. package/src/components/NotificationBar/Accessibilite.stories.ts +4 -0
  79. package/src/components/NotificationBar/NotificationBar.stories.ts +18 -13
  80. package/src/components/PasswordField/PasswordField.mdx +129 -47
  81. package/src/components/PasswordField/PasswordField.stories.ts +924 -120
  82. package/src/components/PasswordField/PasswordField.vue +209 -99
  83. package/src/components/PasswordField/tests/PasswordField.spec.ts +138 -9
  84. package/src/components/PeriodField/PeriodField.vue +55 -54
  85. package/src/components/PhoneField/PhoneField.stories.ts +69 -0
  86. package/src/components/PhoneField/PhoneField.vue +3 -0
  87. package/src/components/PhoneField/indicatifs.ts +1 -1
  88. package/src/components/UploadWorkflow/UploadWorkflow.mdx +75 -0
  89. package/src/components/UploadWorkflow/UploadWorkflow.stories.ts +943 -0
  90. package/src/components/UploadWorkflow/UploadWorkflow.vue +230 -0
  91. package/src/components/UploadWorkflow/config.ts +29 -0
  92. package/src/components/UploadWorkflow/locales.ts +8 -0
  93. package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +257 -0
  94. package/src/components/UploadWorkflow/tests/__snapshots__/UploadWorkflow.spec.ts.snap +54 -0
  95. package/src/components/UploadWorkflow/types.ts +21 -0
  96. package/src/components/UploadWorkflow/useFileList.ts +84 -0
  97. package/src/components/UploadWorkflow/useFileUploadJourney.ts +18 -0
  98. package/src/components/index.ts +2 -0
  99. package/src/composables/rules/useFieldValidation.ts +5 -2
  100. package/src/composables/validation/tests/useValidation.spec.ts +154 -0
  101. package/src/composables/validation/useValidation.ts +165 -0
  102. package/src/designTokens/index.ts +4 -0
  103. package/src/stories/Demarrer/Accueil.mdx +1 -1
  104. package/src/stories/DesignTokens/ThemePA.mdx +4 -30
  105. package/src/stories/GuideDuDev/UtiliserLesRules.mdx +319 -76
  106. package/src/stories/GuideDuDev/moduleDeNotification.mdx +1 -1
  107. package/src/vuetifyConfig.ts +61 -0
  108. package/src/composables/useFilterable/__snapshots__/useFilterable.spec.ts.snap +0 -3
@@ -276,65 +276,66 @@
276
276
 
277
277
  <template>
278
278
  <div class="period-field">
279
- <v-row>
280
- <v-col
281
- cols="12"
282
- sm="6"
283
- >
284
- <DatePicker
285
- ref="fromDateRef"
286
- v-model="internalFromDate"
287
- :custom-rules="fromDateRules"
288
- :custom-warning-rules="props.customWarningRules"
289
- :date-format-return="props.dateFormatReturn"
290
- :display-append-icon="props.displayAppendIcon"
291
- :display-icon="props.displayIcon"
292
- :error-message="hasFromDateErrors"
293
- :format="props.format"
294
- :is-disabled="props.isDisabled"
295
- :is-outlined="props.isOutlined"
296
- :no-calendar="props.noCalendar"
297
- :no-icon="props.noIcon"
298
- :placeholder="props.placeholderFrom"
299
- :required="props.required"
300
- :show-week-number="props.showWeekNumber"
301
- :success-message="hasFromDateSuccesses"
302
- class="mr-2"
303
- @closed="handleFromDateClosed"
304
- />
305
- </v-col>
306
- <v-col
307
- cols="12"
308
- sm="6"
309
- >
310
- <DatePicker
311
- ref="toDateRef"
312
- v-model="internalToDate"
313
- :custom-rules="toDateRules"
314
- :custom-warning-rules="props.customWarningRules"
315
- :date-format-return="props.dateFormatReturn"
316
- :display-append-icon="props.displayAppendIcon"
317
- :display-icon="props.displayIcon"
318
- :error-message="hasToDateErrors"
319
- :format="props.format"
320
- :is-disabled="props.isDisabled"
321
- :is-outlined="props.isOutlined"
322
- :no-calendar="props.noCalendar"
323
- :no-icon="props.noIcon"
324
- :placeholder="props.placeholderTo"
325
- :required="props.required"
326
- :show-week-number="props.showWeekNumber"
327
- :success-message="hasToDateSuccesses"
328
- @closed="handleToDateClosed"
329
- />
330
- </v-col>
331
- </v-row>
279
+ <div
280
+ class="period-field__col"
281
+ >
282
+ <DatePicker
283
+ ref="fromDateRef"
284
+ v-model="internalFromDate"
285
+ :custom-rules="fromDateRules"
286
+ :custom-warning-rules="props.customWarningRules"
287
+ :date-format-return="props.dateFormatReturn"
288
+ :display-append-icon="props.displayAppendIcon"
289
+ :display-icon="props.displayIcon"
290
+ :error-message="hasFromDateErrors"
291
+ :format="props.format"
292
+ :is-disabled="props.isDisabled"
293
+ :is-outlined="props.isOutlined"
294
+ :no-calendar="props.noCalendar"
295
+ :no-icon="props.noIcon"
296
+ :placeholder="props.placeholderFrom"
297
+ :required="props.required"
298
+ :show-week-number="props.showWeekNumber"
299
+ :success-message="hasFromDateSuccesses"
300
+ @closed="handleFromDateClosed"
301
+ />
302
+ </div>
303
+ <div
304
+ class="period-field__col"
305
+ >
306
+ <DatePicker
307
+ ref="toDateRef"
308
+ v-model="internalToDate"
309
+ :custom-rules="toDateRules"
310
+ :custom-warning-rules="props.customWarningRules"
311
+ :date-format-return="props.dateFormatReturn"
312
+ :display-append-icon="props.displayAppendIcon"
313
+ :display-icon="props.displayIcon"
314
+ :error-message="hasToDateErrors"
315
+ :format="props.format"
316
+ :is-disabled="props.isDisabled"
317
+ :is-outlined="props.isOutlined"
318
+ :no-calendar="props.noCalendar"
319
+ :no-icon="props.noIcon"
320
+ :placeholder="props.placeholderTo"
321
+ :required="props.required"
322
+ :show-week-number="props.showWeekNumber"
323
+ :success-message="hasToDateSuccesses"
324
+ @closed="handleToDateClosed"
325
+ />
326
+ </div>
332
327
  </div>
333
328
  </template>
334
329
 
335
330
  <style scoped>
336
331
  .period-field {
337
332
  display: flex;
338
- gap: 10px;
333
+ gap: 24px;
334
+ flex-wrap: wrap;
335
+ }
336
+
337
+ .period-field__col {
338
+ flex: 1;
339
+ min-width: min(300px, 100%);
339
340
  }
340
341
  </style>
@@ -30,6 +30,7 @@ const meta = {
30
30
  description: 'Permet d\'utiliser uniquement les indicatifs que vous renseignez dans la props customIndicatifs',
31
31
  },
32
32
  isValidatedOnBlur: { control: 'boolean' },
33
+ displayAsterisk: { control: 'boolean' },
33
34
  },
34
35
  } satisfies Meta<typeof PhoneField>
35
36
 
@@ -192,6 +193,74 @@ export const Required: Story = {
192
193
  },
193
194
  }
194
195
 
196
+ /**
197
+ * Story avec champ requis et astérisque.
198
+ */
199
+ export const RequiredWithAsterisk: Story = {
200
+ args: {
201
+ ...Default.args,
202
+ required: true,
203
+ displayAsterisk: true,
204
+ },
205
+ parameters: {
206
+ docs: {
207
+ description: {
208
+ story: 'Version du champ téléphone requis avec un astérisque visuel.',
209
+ },
210
+ },
211
+ sourceCode: [
212
+ {
213
+ name: 'Template',
214
+ code: `
215
+ <template>
216
+ <PhoneField
217
+ v-model="phoneNumber"
218
+ required
219
+ display-asterisk
220
+ />
221
+ </template>
222
+ `,
223
+ },
224
+ {
225
+ name: 'Script',
226
+ code: `
227
+ <script setup lang="ts">
228
+ import { ref } from 'vue'
229
+ import PhoneField from '@cnamts/synapse'
230
+
231
+ const phoneNumber = ref('')
232
+ </script>
233
+ `,
234
+ },
235
+ ],
236
+ },
237
+ render: (args) => {
238
+ return {
239
+ components: { PhoneField },
240
+ setup() {
241
+ return { args }
242
+ },
243
+ template: `
244
+ <div class="pa-4">
245
+ <PhoneField
246
+ v-model="args.modelValue"
247
+ :required="args.required"
248
+ :outlined="args.outlined"
249
+ :outlinedIndicatif="args.outlinedIndicatif"
250
+ :withCountryCode="args.withCountryCode"
251
+ :countryCodeRequired="args.countryCodeRequired"
252
+ :displayFormat="args.displayFormat"
253
+ :customIndicatifs="args.customIndicatifs"
254
+ :useCustomIndicatifsOnly="args.useCustomIndicatifsOnly"
255
+ :isValidatedOnBlur="args.isValidatedOnBlur"
256
+ :display-asterisk="args.displayAsterisk"
257
+ />
258
+ </div>
259
+ `,
260
+ }
261
+ },
262
+ }
263
+
195
264
  export const CustomIndicatifs: Story = {
196
265
  parameters: {
197
266
  sourceCode: [
@@ -32,6 +32,7 @@
32
32
  customIndicatifs: { type: Array as PropType<Indicatif[]>, default: () => [] },
33
33
  useCustomIndicatifsOnly: { type: Boolean, default: false },
34
34
  isValidatedOnBlur: { type: Boolean, default: true },
35
+ displayAsterisk: { type: Boolean, default: false },
35
36
  })
36
37
 
37
38
  const emit = defineEmits(['update:modelValue', 'update:selectedDialCode', 'change'])
@@ -133,6 +134,7 @@
133
134
  :label="locales.indicatifLabel"
134
135
  :outlined="outlinedIndicatif"
135
136
  :required="props.countryCodeRequired"
137
+ :display-asterisk="props.displayAsterisk"
136
138
  class="custom-select"
137
139
  text-key="displayText"
138
140
  value-key="code"
@@ -146,6 +148,7 @@
146
148
  :required="props.required"
147
149
  :rules="validationRules"
148
150
  :variant="outlined ? 'outlined' : 'underlined'"
151
+ :display-asterisk="props.displayAsterisk"
149
152
  class="phone-field"
150
153
  color="primary"
151
154
  @blur="validateInputOnBlur"
@@ -1,5 +1,5 @@
1
1
  export const indicatifs = [
2
- { code: '+1', country: 'USA/Canada', abbreviation: 'US/CA', phoneLength: 10, mask: '###-###-####' },
2
+ { code: '+1', country: 'USA/Canada', abbreviation: 'US/CA', phoneLength: 10, mask: '### ### ####' },
3
3
  { code: '+7', country: 'Russia/Kazakhstan', abbreviation: 'RU/KZ', phoneLength: 10, mask: '### ### ## ##' },
4
4
  { code: '+20', country: 'Egypt', abbreviation: 'EG', phoneLength: 9, mask: '### ### ####' },
5
5
  { code: '+27', country: 'South Africa', abbreviation: 'ZA', phoneLength: 9, mask: '### ### ####' },
@@ -0,0 +1,75 @@
1
+ import { Controls, Canvas, Meta, Source } from '@storybook/blocks';
2
+
3
+ import * as UploadWorkflowStories from './UploadWorkflow.stories';
4
+
5
+ <Meta of={UploadWorkflowStories} />
6
+
7
+ # UploadWorkflow
8
+
9
+ <Canvas of={UploadWorkflowStories.Default} />
10
+
11
+ # API
12
+
13
+ <Controls of={UploadWorkflowStories.Default} />
14
+
15
+ # Exemple
16
+
17
+ ## Événements
18
+
19
+ Vous pouvez réagir lorsque la liste des fichiers est mise à jour en utilisant l’événement `update:modelValue`, et réagir aux erreurs de validation en utilisant l’événement `error`.
20
+
21
+ <Canvas of={UploadWorkflowStories.Events} />
22
+
23
+
24
+ ## Un seul fichier
25
+
26
+ Lorsque que la liste ne contient qu’un seul fichier, la boîte de dialogue demandant à l’utilisateur de choisir quel fichier il a sélectionné ne sera pas affichée.
27
+
28
+ <Canvas of={UploadWorkflowStories.OneFile} />
29
+
30
+
31
+ ## Fichiers optionnels
32
+
33
+ Vous pouvez spécifier des fichiers optionnels en utilisant la propriété `optional`.
34
+
35
+ <Canvas of={UploadWorkflowStories.OptionalDocument} />
36
+
37
+
38
+ ## Prévisualisation des fichiers
39
+
40
+ Vous pouvez permettre à l’utilisateur de prévisualiser le fichier qu’il vient de sélectionner avant de valider en utilisant la prop `show-file-preview`.
41
+
42
+ <Canvas of={UploadWorkflowStories.WithPreviewStep} />
43
+
44
+
45
+ ## Exemple d'utilisation
46
+
47
+ <Source
48
+ language="typescript"
49
+ dark code={`
50
+ <script setup lang="ts">
51
+ import { ref } from 'vue'
52
+ import { UploadWorkflow } from '@cnamts/synapse'
53
+
54
+ const files = ref([])
55
+
56
+ const uploadList = [
57
+ {
58
+ id: '1',
59
+ title: 'Carte d\\'identité',
60
+ },
61
+ {
62
+ id: '2',
63
+ title: 'Facture de soin',
64
+ },
65
+ ]
66
+ </script>
67
+
68
+ <template>
69
+ <UploadWorkflow
70
+ v-model="files"
71
+ :uploadList="uploadList"
72
+ />
73
+ </template>
74
+ `}
75
+ />