@cnamts/synapse 1.0.26 → 1.0.27
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.
- package/dist/{AutocompleteFilter-BPR-a55G.js → AutocompleteFilter-C9eLKyW8.js} +3 -3
- package/dist/{DateFilter-CknrJWs2.js → DateFilter-y-GLkAkn.js} +8 -8
- package/dist/{NumberFilter-DJ-yNlzv.js → NumberFilter-DN6hIBS7.js} +1 -1
- package/dist/{PeriodFilter-CiB5Oa9Z.js → PeriodFilter-MoUUp9qS.js} +1 -1
- package/dist/{SelectFilter-EiafX97M.js → SelectFilter-bCbrdLmu.js} +1 -1
- package/dist/{TextFilter-BzOmpdxj.js → TextFilter-CvjgEaoM.js} +4 -4
- package/dist/apLightTheme2026-ug4Y23ns.js +611 -0
- package/dist/components/Customs/Selects/SyAutocomplete/SyAutocomplete.d.ts +2369 -353
- package/dist/components/Customs/Selects/SyAutocomplete/composables/useSyAutocompleteValidation.d.ts +18 -0
- package/dist/components/Customs/Selects/SyAutocomplete/utils/ariaManager.d.ts +1 -1
- package/dist/components/Customs/Selects/SyAutocomplete/utils/useKeyboardHandler.d.ts +3 -1
- package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +9 -10
- package/dist/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.d.ts +1 -0
- package/dist/components/Customs/Selects/SySelect/composables/useSySelectValidation.d.ts +15 -0
- package/dist/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.d.ts +3 -3
- package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +3 -3
- package/dist/components/Customs/SyIconButton/SyIconButton.d.ts +18 -0
- package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +20 -38
- package/dist/components/Customs/SyRadioGroup/composables/useSyRadioGroupValidation.d.ts +50 -0
- package/dist/components/Customs/SyTextField/SyTextField.d.ts +6 -6
- package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +147 -136
- package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +62 -54
- package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +27 -24
- package/dist/components/DatePicker/composables/index.d.ts +1 -0
- package/dist/components/DatePicker/composables/useDatePickerValidationBridge.d.ts +51 -0
- package/dist/components/MonthPicker/MonthPicker.d.ts +23 -23
- package/dist/components/MonthPicker/MonthPickerText/MonthPickerInput.d.ts +23 -23
- package/dist/components/NirField/NirField.d.ts +56 -56
- package/dist/components/PasswordField/PasswordField.d.ts +3 -3
- package/dist/components/PeriodField/PeriodField.d.ts +236 -212
- package/dist/components/PhoneField/PhoneField.d.ts +23 -23
- package/dist/components/SyTextArea/SyTextArea.d.ts +25 -15
- package/dist/components/SyTextArea/composables/useSyTextAreaValidation.d.ts +20 -0
- package/dist/components/SyTextArea/locales.d.ts +1 -0
- package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +1 -0
- package/dist/components/Tables/SyTable/SyTable.d.ts +1 -0
- package/dist/components/Tables/common/SyTablePagination.d.ts +25 -25
- package/dist/components/Tables/common/types.d.ts +2 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/composables/unifyValidation/documentationValidationProps.d.ts +160 -160
- package/dist/composables/unifyValidation/useValidation.d.ts +16 -14
- package/dist/design-system-v3.js +81 -80
- package/dist/designTokens/tokens/amelipro/apContextual.d.ts +6 -6
- package/dist/designTokens/tokens/amelipro/apDarkTheme.d.ts +3 -1
- package/dist/designTokens/tokens/amelipro/apLightTheme.d.ts +53 -100
- package/dist/designTokens/tokens/baseContextualTokens.d.ts +0 -6
- package/dist/designTokens/tokens/baseTokens.d.ts +232 -0
- package/dist/designTokens/tokens/cnam/cnamContextual.d.ts +6 -6
- package/dist/designTokens/tokens/cnam/cnamDarkTheme.d.ts +1 -1
- package/dist/designTokens/tokens/cnam/cnamLightTheme.d.ts +57 -101
- package/dist/designTokens/tokens/pa/paContextual.d.ts +0 -6
- package/dist/designTokens/tokens/pa/paDarkTheme.d.ts +1 -1
- package/dist/designTokens/tokens/pa/paLightTheme.d.ts +53 -97
- package/dist/designTokens/tokens/pa/paSemantic.d.ts +1 -0
- package/dist/designTokens/tokens/semanticTokens.d.ts +112 -0
- package/dist/main-CI6Q9nmO.js +39234 -0
- package/dist/synapse.css +1 -1
- package/dist/vuetifyConfig.js +208 -72
- package/package.json +4 -2
- package/src/assets/overrides/_icons.scss +5 -4
- package/src/assets/overrides/_otp.scss +4 -4
- package/src/assets/overrides/_typography.scss +2 -1
- package/src/assets/overrides/_utilities.scss +1 -42
- package/src/components/ChipList/ChipList.vue +30 -18
- package/src/components/ChipList/tests/chipList.spec.ts +4 -4
- package/src/components/CopyBtn/CopyBtn.vue +2 -2
- package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.stories.ts +4 -0
- package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.vue +7 -6
- package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.spec.ts +223 -0
- package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.stories.ts +283 -351
- package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.vue +182 -218
- package/src/components/Customs/Selects/SyAutocomplete/composables/useSyAutocompleteValidation.ts +101 -0
- package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.spec.ts +761 -1
- package/src/components/Customs/Selects/SyAutocomplete/utils/ariaManager.ts +3 -1
- package/src/components/Customs/Selects/SyAutocomplete/utils/useKeyboardHandler.ts +79 -5
- package/src/components/Customs/Selects/SyAutocomplete/validation/Validation.stories.ts +1029 -0
- package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +9 -491
- package/src/components/Customs/Selects/SySelect/SySelect.vue +46 -79
- package/src/components/Customs/Selects/SySelect/composables/useSySelectKeyboard.ts +3 -0
- package/src/components/Customs/Selects/SySelect/composables/useSySelectValidation.ts +64 -0
- package/src/components/Customs/Selects/SySelect/tests/SySelect.spec.ts +196 -0
- package/src/components/Customs/Selects/SySelect/validation/Validation.stories.ts +1026 -0
- package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.stories.ts +18 -7
- package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.vue +2 -2
- package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +8 -8
- package/src/components/Customs/SyCheckbox/SyCheckbox.vue +8 -8
- package/src/components/Customs/SyCheckbox/tests/SyCheckbox.spec.ts +1 -1
- package/src/components/Customs/SyIcon/accessibilite/Accessibility.mdx +0 -6
- package/src/components/Customs/SyIcon/utils/tests/iconUtils.spec.ts +107 -0
- package/src/components/Customs/SyRadioGroup/SyRadioGroup.mdx +2 -2
- package/src/components/Customs/SyRadioGroup/SyRadioGroup.stories.ts +395 -200
- package/src/components/Customs/SyRadioGroup/SyRadioGroup.vue +82 -127
- package/src/components/Customs/SyRadioGroup/composables/useSyRadioGroupValidation.ts +127 -0
- package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.a11y.spec.ts +93 -1
- package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.spec.ts +146 -9
- package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.visual.cy.ts +165 -0
- package/src/components/Customs/SyRadioGroup/validation/Validation.stories.ts +773 -0
- package/src/components/Customs/SyTabs/config.ts +3 -3
- package/src/components/Customs/SyTabs/tests/SyTabs.spec.ts +265 -0
- package/src/components/Customs/SyTabs/tests/useTabTransition.spec.ts +188 -0
- package/src/components/Customs/SyTextField/SyTextField.stories.ts +10 -29
- package/src/components/Customs/SyTextField/SyTextField.vue +23 -15
- package/src/components/DataList/DataList.stories.ts +1 -1
- package/src/components/DataListItem/tests/DataListItem.spec.ts +3 -1
- package/src/components/DatePicker/CalendarMode/DatePicker.vue +37 -142
- package/src/components/DatePicker/CalendarMode/tests/DatePicker.coverage.spec.ts +156 -0
- package/src/components/DatePicker/CalendarMode/tests/DatePicker.spec.ts +495 -4
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +47 -66
- package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +206 -0
- package/src/components/DatePicker/ComplexDatePicker/tests/bridge-integration.regression.spec.ts +210 -0
- package/src/components/DatePicker/ComplexDatePicker/tests/calendar-navigation.regression.spec.ts +214 -0
- package/src/components/DatePicker/ComplexDatePicker/tests/validation-cross.regression.spec.ts +194 -0
- package/src/components/DatePicker/ComplexDatePicker/tests/validation-success-messages.regression.spec.ts +83 -0
- package/src/components/DatePicker/DateTextInput/DateTextInput.vue +129 -54
- package/src/components/DatePicker/DateTextInput/tests/DateTextInput.spec.ts +320 -0
- package/src/components/DatePicker/composables/index.ts +1 -0
- package/src/components/DatePicker/composables/tests/useCalendarKeyboardNavigation.spec.ts +360 -0
- package/src/components/DatePicker/composables/tests/useDatePickerValidationBridge.spec.ts +129 -0
- package/src/components/DatePicker/composables/useDatePickerValidationBridge.ts +205 -0
- package/src/components/DatePicker/docExamples/BidirectionalComplexValidation.vue +1 -1
- package/src/components/DatePicker/docExamples/DatePickerBidirectionalValidation.vue +1 -1
- package/src/components/DatePicker/tests/exposed-methods.coverage.spec.ts +75 -0
- package/src/components/DialogBox/DialogBox.vue +1 -1
- package/src/components/FileList/UploadItem/UploadItem.vue +4 -4
- package/src/components/FileUpload/FileUpload.vue +2 -2
- package/src/components/FileUpload/FileUploadContent.vue +1 -1
- package/src/components/FilterInline/FilterInline.mdx +2 -2
- package/src/components/FilterSideBar/FilterSideBar.stories.ts +1 -1
- package/src/components/FilterSideBar/FilterSideBar.vue +2 -2
- package/src/components/FooterBar/FooterBar.vue +7 -7
- package/src/components/FranceConnectBtn/FranceConnectBtn.vue +1 -1
- package/src/components/HeaderBar/HeaderBurgerMenu/HeaderMenuItem/HeaderMenuItem.vue +2 -2
- package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.vue +7 -7
- package/src/components/HeaderBar/HeaderMenuBtn/HeaderMenuBtn.vue +2 -2
- package/src/components/HeaderLoading/tests/HeaderLoading.spec.ts +87 -8
- package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +3 -3
- package/src/components/HeaderNavigationBar/HorizontalNavbar/tests/HorizontalNavbar.spec.ts +589 -0
- package/src/components/HeaderToolbar/tests/HeaderToolBar.spec.ts +153 -1
- package/src/components/HeaderToolbar/tests/useMobileRightMenu.spec.ts +258 -0
- package/src/components/LogoBrandSection/tests/LogoBrandSection.spec.ts +2 -2
- package/src/components/LogoBrandSection/tests/__snapshots__/LogoBrandSection.spec.ts.snap +1 -1
- package/src/components/LunarCalendar/tests/useLunarCalendarRules.spec.ts +184 -0
- package/src/components/MonthPicker/MonthPickerVisual/MonthSelector.vue +3 -3
- package/src/components/MonthPicker/MonthPickerVisual/VisualPickerFooter.vue +1 -1
- package/src/components/MonthPicker/MonthPickerVisual/VisualPickerHeader.vue +2 -2
- package/src/components/MonthPicker/MonthPickerVisual/YearSelector.vue +1 -1
- package/src/components/NirField/NirField.vue +3 -3
- package/src/components/NotificationBar/Notification/Notification.vue +12 -12
- package/src/components/NotificationBar/NotificationBar.stories.ts +8 -8
- package/src/components/PaginatedTable/Pagination.vue +2 -2
- package/src/components/PasswordField/PasswordField.vue +8 -8
- package/src/components/PasswordField/tests/PasswordField.spec.ts +3 -3
- package/src/components/RangeField/RangeSlider/RangeSlider.vue +2 -2
- package/src/components/RangeField/RangeSlider/Tooltip/Tooltip.vue +1 -1
- package/src/components/StatusPage/tests/StatusPage.spec.ts +149 -0
- package/src/components/SubHeader/SubHeader.vue +1 -1
- package/src/components/SyAlert/SyAlert.vue +23 -23
- package/src/components/SyTextArea/SyTextArea.stories.ts +177 -131
- package/src/components/SyTextArea/SyTextArea.vue +235 -83
- package/src/components/SyTextArea/composables/useSyTextAreaValidation.ts +81 -0
- package/src/components/SyTextArea/locales.ts +1 -0
- package/src/components/SyTextArea/tests/SyTextArea.spec.ts +449 -1
- package/src/components/SyTextArea/useDefaultValidationRules.ts +2 -7
- package/src/components/SyTextArea/validation/Validation.stories.ts +856 -0
- package/src/components/TableToolbar/TableToolbar.vue +6 -6
- package/src/components/TableToolbar/accessibilite/Accessibility.mdx +81 -7
- package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +163 -0
- package/src/components/Tables/SyServerTable/SyServerTable.vue +2 -1
- package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +67 -0
- package/src/components/Tables/SyTable/SyTable.stories.ts +94 -0
- package/src/components/Tables/SyTable/SyTable.vue +2 -1
- package/src/components/Tables/SyTable/tests/SyTable.spec.ts +64 -0
- package/src/components/Tables/common/TableHeader.vue +2 -2
- package/src/components/Tables/common/filters/logics/tests/NumberFilterLogic.spec.ts +176 -0
- package/src/components/Tables/common/filters/logics/tests/SelectFilterLogic.spec.ts +111 -0
- package/src/components/Tables/common/tableStyles.scss +6 -6
- package/src/components/Tables/common/types.ts +2 -0
- package/src/components/UploadWorkflow/tests/UploadWorkflow.spec.ts +2 -0
- package/src/components/index.ts +1 -0
- package/src/composables/date/tests/useDateFormatDayjs.spec.ts +31 -0
- package/src/composables/date/tests/useHolidayDay.spec.ts +109 -0
- package/src/composables/rules/tests/useFieldValidation.spec.ts +374 -0
- package/src/composables/tests/useError.spec.ts +30 -0
- package/src/composables/tests/useFormFieldErrorHandling.spec.ts +234 -0
- package/src/composables/unifyValidation/documentationValidationProps.ts +5 -5
- package/src/composables/unifyValidation/tests/documentationValidationProps.spec.ts +177 -0
- package/src/composables/unifyValidation/tests/useCustomValidation.spec.ts +30 -0
- package/src/composables/unifyValidation/tests/useValidation.spec.ts +6 -2
- package/src/composables/unifyValidation/useCustomValidation.ts +19 -9
- package/src/composables/unifyValidation/useValidation.ts +18 -21
- package/src/composables/useFilterable/useFilterable.spec.ts +42 -0
- package/src/composables/useFilterable/useFilterable.ts +11 -7
- package/src/composables/useFormFieldErrorHandling.ts +2 -2
- package/src/composantsVuetify/VBtn/VBtn.mdx +9 -39
- package/src/composantsVuetify/VBtn/v-btn.stories.ts +26 -86
- package/src/designTokens/tokens/amelipro/apContextual.ts +6 -0
- package/src/designTokens/tokens/amelipro/apDarkTheme.ts +2 -2
- package/src/designTokens/tokens/amelipro/apLightTheme.ts +72 -103
- package/src/designTokens/tokens/amelipro/apSemantic.ts +1 -1
- package/src/designTokens/tokens/baseContextualTokens.ts +1 -6
- package/src/designTokens/tokens/baseTokens.ts +232 -0
- package/src/designTokens/tokens/cnam/cnamContextual.ts +6 -0
- package/src/designTokens/tokens/cnam/cnamDarkTheme.ts +2 -2
- package/src/designTokens/tokens/cnam/cnamLightTheme.ts +76 -104
- package/src/designTokens/tokens/pa/paDarkTheme.ts +2 -2
- package/src/designTokens/tokens/pa/paLightTheme.ts +73 -99
- package/src/designTokens/tokens/pa/paSemantic.ts +2 -0
- package/src/designTokens/tokens/semanticTokens.ts +114 -0
- package/src/stories/Components/Components.stories.ts +7 -3
- package/src/stories/DesignTokens/ColorIntegrationExample.vue +2 -3
- package/src/stories/DesignTokens/Colors.mdx +6 -8
- package/src/stories/DesignTokens/colors.stories.ts +244 -1081
- package/src/utils/amelipro/toKebabCase/tests/toKebabCase.spec.ts +52 -0
- package/src/utils/formatNir/tests/formatNir.spec.ts +34 -0
- package/src/utils/tests/insertAt.spec.ts +44 -0
- package/dist/apLightTheme-DS0Uy44H.js +0 -954
- package/dist/components/RatingPicker/tests/RatingPicker.a11y.spect.d.ts +0 -1
- package/dist/main-BsJ9ec3i.js +0 -38954
- package/src/components/BackBtn/tests/__snapshots__/back-btn-custom-bg.snap.png +0 -0
- package/src/components/BackBtn/tests/__snapshots__/back-btn-dark-mode.snap.png +0 -0
- package/src/components/BackBtn/tests/__snapshots__/back-btn-default.snap.png +0 -0
- package/src/components/BackBtn/tests/__snapshots__/back-btn-no-icon.snap.png +0 -0
- package/src/components/DatePicker/CalendarMode/tests/DatePicker.events.spec.ts +0 -178
- package/src/components/DialogBox/tests/__snapshots__/dialog-box-custom-texts.snap.png +0 -0
- package/src/components/DialogBox/tests/__snapshots__/dialog-box-default.snap.png +0 -0
- package/src/components/DialogBox/tests/__snapshots__/dialog-box-no-actions.snap.png +0 -0
- package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/header-burger-menu-generated-submenu-open.snap.png +0 -0
- package/src/components/HeaderBar/HeaderBurgerMenu/tests/__snapshots__/header-burger-menu-generated.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-custom-width.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-default.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-no-sticky.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-prepend.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-side.snap.png +0 -0
- package/src/components/HeaderBar/tests/__snapshots__/header-bar-with-subtitle.snap.png +0 -0
- package/src/components/Logo/tests/__snapshots__/logo-avatar.snap.png +0 -0
- package/src/components/Logo/tests/__snapshots__/logo-dark.snap.png +0 -0
- package/src/components/Logo/tests/__snapshots__/logo-default.snap.png +0 -0
- package/src/components/Logo/tests/__snapshots__/logo-no-organism.snap.png +0 -0
- package/src/components/Logo/tests/__snapshots__/logo-no-signature.snap.png +0 -0
- package/src/components/Logo/tests/__snapshots__/logo-risque-pro.snap.png +0 -0
- package/src/components/RangeField/tests/__snapshots__/range-field-custom-bg.snap.png +0 -0
- package/src/components/RangeField/tests/__snapshots__/range-field-custom-range.snap.png +0 -0
- package/src/components/RangeField/tests/__snapshots__/range-field-default.snap.png +0 -0
- package/src/components/RangeField/tests/__snapshots__/range-field-step.snap.png +0 -0
- package/src/components/RangeField/tests/__snapshots__/range-field-with-label.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-closable.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-error.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-info.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-success.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-outlined.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-variant-tonal.snap.png +0 -0
- package/src/components/SyAlert/tests/__snapshots__/sy-alert-warning.snap.png +0 -0
- /package/src/components/RatingPicker/tests/{RatingPicker.a11y.spect.ts → RatingPicker.a11y.spec.ts} +0 -0
|
@@ -2,6 +2,8 @@ import type { Meta, StoryObj } from '@storybook/vue3'
|
|
|
2
2
|
import SyTextArea from './SyTextArea.vue'
|
|
3
3
|
import type { VTextarea } from 'vuetify/components'
|
|
4
4
|
import { fn } from '@storybook/test'
|
|
5
|
+
import { ref, onMounted, nextTick } from 'vue'
|
|
6
|
+
import { getValidationDocumentation } from '@/composables/unifyValidation/documentationValidationProps'
|
|
5
7
|
|
|
6
8
|
const meta = {
|
|
7
9
|
title: 'Composants/Formulaires/SyTextArea',
|
|
@@ -17,6 +19,7 @@ const meta = {
|
|
|
17
19
|
},
|
|
18
20
|
},
|
|
19
21
|
argTypes: {
|
|
22
|
+
...getValidationDocumentation('string'),
|
|
20
23
|
label: {
|
|
21
24
|
control: { type: 'text' },
|
|
22
25
|
description: 'Texte affiché au-dessus du champ',
|
|
@@ -83,148 +86,40 @@ const meta = {
|
|
|
83
86
|
defaultValue: { summary: 'outlined' },
|
|
84
87
|
},
|
|
85
88
|
},
|
|
86
|
-
|
|
89
|
+
clearable: {
|
|
87
90
|
control: { type: 'boolean' },
|
|
88
|
-
description: '
|
|
91
|
+
description: 'Affiche un bouton pour vider le champ',
|
|
89
92
|
table: {
|
|
90
93
|
type: { summary: 'boolean' },
|
|
91
94
|
defaultValue: { summary: 'false' },
|
|
92
|
-
category: '
|
|
93
|
-
},
|
|
94
|
-
},
|
|
95
|
-
rules: {
|
|
96
|
-
control: { type: 'object' },
|
|
97
|
-
description: 'Règles de validation Vuetify (mode useVuetifyValidation=true)',
|
|
98
|
-
table: {
|
|
99
|
-
type: { summary: 'Array<(value: string) => boolean | string>' },
|
|
100
|
-
defaultValue: { summary: '[]' },
|
|
101
|
-
category: 'validation',
|
|
102
|
-
},
|
|
103
|
-
},
|
|
104
|
-
useVuetifyValidation: {
|
|
105
|
-
control: { type: 'boolean' },
|
|
106
|
-
description: 'Active la validation Vuetify (sinon validation unifiée customRules)',
|
|
107
|
-
table: {
|
|
108
|
-
type: { summary: 'boolean' },
|
|
109
|
-
defaultValue: { summary: 'false' },
|
|
110
|
-
category: 'validation',
|
|
111
|
-
},
|
|
112
|
-
},
|
|
113
|
-
isValidateOnBlur: {
|
|
114
|
-
control: { type: 'boolean' },
|
|
115
|
-
description: 'Déclenche la validation au blur (sinon à la saisie)',
|
|
116
|
-
table: {
|
|
117
|
-
type: { summary: 'boolean' },
|
|
118
|
-
defaultValue: { summary: 'true' },
|
|
119
|
-
category: 'validation',
|
|
120
|
-
},
|
|
121
|
-
},
|
|
122
|
-
disableErrorHandling: {
|
|
123
|
-
control: { type: 'boolean' },
|
|
124
|
-
description: 'Désactive la gestion des messages d\'erreur/alerte/succès',
|
|
125
|
-
table: {
|
|
126
|
-
type: { summary: 'boolean' },
|
|
127
|
-
defaultValue: { summary: 'false' },
|
|
128
|
-
category: 'validation',
|
|
129
|
-
},
|
|
130
|
-
},
|
|
131
|
-
showSuccessMessages: {
|
|
132
|
-
control: { type: 'boolean' },
|
|
133
|
-
description: 'Affiche les messages de succès',
|
|
134
|
-
table: {
|
|
135
|
-
type: { summary: 'boolean' },
|
|
136
|
-
defaultValue: { summary: 'true' },
|
|
137
|
-
category: 'validation',
|
|
138
|
-
},
|
|
139
|
-
},
|
|
140
|
-
customRules: {
|
|
141
|
-
control: { type: 'object' },
|
|
142
|
-
description: 'Règles d\'erreur pour le mode validation unifiée',
|
|
143
|
-
table: {
|
|
144
|
-
type: { summary: 'ValidationRule[]' },
|
|
145
|
-
defaultValue: { summary: '[]' },
|
|
146
|
-
category: 'validation',
|
|
147
|
-
},
|
|
148
|
-
},
|
|
149
|
-
customWarningRules: {
|
|
150
|
-
control: { type: 'object' },
|
|
151
|
-
description: 'Règles d\'alerte pour le mode validation unifiée',
|
|
152
|
-
table: {
|
|
153
|
-
type: { summary: 'ValidationRule[]' },
|
|
154
|
-
defaultValue: { summary: '[]' },
|
|
155
|
-
category: 'validation',
|
|
156
|
-
},
|
|
157
|
-
},
|
|
158
|
-
customSuccessRules: {
|
|
159
|
-
control: { type: 'object' },
|
|
160
|
-
description: 'Règles de succès pour le mode validation unifiée',
|
|
161
|
-
table: {
|
|
162
|
-
type: { summary: 'ValidationRule[]' },
|
|
163
|
-
defaultValue: { summary: '[]' },
|
|
164
|
-
category: 'validation',
|
|
165
|
-
},
|
|
166
|
-
},
|
|
167
|
-
errorMessages: {
|
|
168
|
-
control: { type: 'object' },
|
|
169
|
-
description: 'Messages d\'erreur externes ajoutés au résultat de validation',
|
|
170
|
-
table: {
|
|
171
|
-
type: { summary: 'string[] | null' },
|
|
172
|
-
defaultValue: { summary: 'null' },
|
|
173
|
-
category: 'validation',
|
|
174
|
-
},
|
|
175
|
-
},
|
|
176
|
-
warningMessages: {
|
|
177
|
-
control: { type: 'object' },
|
|
178
|
-
description: 'Messages d\'alerte externes ajoutés au résultat de validation',
|
|
179
|
-
table: {
|
|
180
|
-
type: { summary: 'string[] | null' },
|
|
181
|
-
defaultValue: { summary: 'null' },
|
|
182
|
-
category: 'validation',
|
|
183
|
-
},
|
|
184
|
-
},
|
|
185
|
-
successMessages: {
|
|
186
|
-
control: { type: 'object' },
|
|
187
|
-
description: 'Messages de succès externes ajoutés au résultat de validation',
|
|
188
|
-
table: {
|
|
189
|
-
type: { summary: 'string[] | null' },
|
|
190
|
-
defaultValue: { summary: 'null' },
|
|
191
|
-
category: 'validation',
|
|
95
|
+
category: 'props',
|
|
192
96
|
},
|
|
193
97
|
},
|
|
194
|
-
|
|
195
|
-
control: { type: '
|
|
196
|
-
description: '
|
|
98
|
+
helpText: {
|
|
99
|
+
control: { type: 'text' },
|
|
100
|
+
description: 'Texte d\'aide affiché sous le champ en l\'absence de messages de validation',
|
|
197
101
|
table: {
|
|
198
|
-
type: { summary: '
|
|
199
|
-
defaultValue: { summary: '
|
|
200
|
-
category: '
|
|
102
|
+
type: { summary: 'string' },
|
|
103
|
+
defaultValue: { summary: '' },
|
|
104
|
+
category: 'props',
|
|
201
105
|
},
|
|
202
106
|
},
|
|
203
|
-
|
|
107
|
+
hideDetails: {
|
|
204
108
|
control: { type: 'boolean' },
|
|
205
|
-
description: '
|
|
109
|
+
description: 'Masque la zone des messages (erreurs, aide…)',
|
|
206
110
|
table: {
|
|
207
111
|
type: { summary: 'boolean' },
|
|
208
112
|
defaultValue: { summary: 'false' },
|
|
209
|
-
category: '
|
|
113
|
+
category: 'props',
|
|
210
114
|
},
|
|
211
115
|
},
|
|
212
|
-
|
|
116
|
+
displayAsterisk: {
|
|
213
117
|
control: { type: 'boolean' },
|
|
214
|
-
description: '
|
|
118
|
+
description: 'Affiche un astérisque après le label quand le champ est requis',
|
|
215
119
|
table: {
|
|
216
120
|
type: { summary: 'boolean' },
|
|
217
121
|
defaultValue: { summary: 'false' },
|
|
218
|
-
category: '
|
|
219
|
-
},
|
|
220
|
-
},
|
|
221
|
-
maxErrors: {
|
|
222
|
-
control: { type: 'number' },
|
|
223
|
-
description: 'Nombre maximum de messages d\'erreur affichés',
|
|
224
|
-
table: {
|
|
225
|
-
type: { summary: 'number' },
|
|
226
|
-
defaultValue: { summary: '1' },
|
|
227
|
-
category: 'validation',
|
|
122
|
+
category: 'props',
|
|
228
123
|
},
|
|
229
124
|
},
|
|
230
125
|
},
|
|
@@ -264,6 +159,40 @@ const text = ref('')
|
|
|
264
159
|
},
|
|
265
160
|
}
|
|
266
161
|
|
|
162
|
+
export const HelpText: Story = {
|
|
163
|
+
parameters: {
|
|
164
|
+
docs: {
|
|
165
|
+
description: {
|
|
166
|
+
story: 'La prop `helpText` affiche un texte d\'aide sous le champ. Il disparaît au profit des messages de validation quand ceux-ci sont présents.',
|
|
167
|
+
},
|
|
168
|
+
},
|
|
169
|
+
sourceCode: [
|
|
170
|
+
{
|
|
171
|
+
name: 'Template',
|
|
172
|
+
code: `<template>
|
|
173
|
+
<SyTextArea
|
|
174
|
+
v-model="text"
|
|
175
|
+
label="Observations médicales"
|
|
176
|
+
help-text="Décrivez les symptômes observés, leur durée et leur intensité."
|
|
177
|
+
/>
|
|
178
|
+
</template>`,
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
name: 'Script',
|
|
182
|
+
code: `<script setup lang="ts">
|
|
183
|
+
import { ref } from 'vue'
|
|
184
|
+
const text = ref('')
|
|
185
|
+
</script>`,
|
|
186
|
+
},
|
|
187
|
+
],
|
|
188
|
+
},
|
|
189
|
+
args: {
|
|
190
|
+
'label': 'Observations médicales',
|
|
191
|
+
'helpText': 'Décrivez les symptômes observés, leur durée et leur intensité.',
|
|
192
|
+
'onUpdate:modelValue': fn(),
|
|
193
|
+
},
|
|
194
|
+
}
|
|
195
|
+
|
|
267
196
|
export const Required: Story = {
|
|
268
197
|
args: {
|
|
269
198
|
'label': 'Texte requis',
|
|
@@ -279,7 +208,6 @@ export const Required: Story = {
|
|
|
279
208
|
v-model="text"
|
|
280
209
|
label="Texte requis"
|
|
281
210
|
:required="true"
|
|
282
|
-
style="width: 100%"
|
|
283
211
|
/>
|
|
284
212
|
</template>
|
|
285
213
|
`,
|
|
@@ -296,6 +224,103 @@ const text = ref('')
|
|
|
296
224
|
},
|
|
297
225
|
}
|
|
298
226
|
|
|
227
|
+
export const HideDetails: Story = {
|
|
228
|
+
parameters: {
|
|
229
|
+
docs: {
|
|
230
|
+
description: {
|
|
231
|
+
story: 'Avec `hideDetails: true`, la zone des messages est masquée tant qu\'il n\'y a pas de messages de validation. Utile pour gagner de l\'espace vertical dans les formulaires denses.',
|
|
232
|
+
},
|
|
233
|
+
},
|
|
234
|
+
sourceCode: [
|
|
235
|
+
{
|
|
236
|
+
name: 'Template',
|
|
237
|
+
code: `<template>
|
|
238
|
+
<SyTextArea
|
|
239
|
+
v-model="text"
|
|
240
|
+
label="Note interne"
|
|
241
|
+
:hide-details="true"
|
|
242
|
+
/>
|
|
243
|
+
</template>`,
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
name: 'Script',
|
|
247
|
+
code: `<script setup lang="ts">
|
|
248
|
+
import { ref } from 'vue'
|
|
249
|
+
const text = ref('')
|
|
250
|
+
</script>`,
|
|
251
|
+
},
|
|
252
|
+
],
|
|
253
|
+
},
|
|
254
|
+
args: {
|
|
255
|
+
'label': 'Note interne',
|
|
256
|
+
'hideDetails': true,
|
|
257
|
+
'onUpdate:modelValue': fn(),
|
|
258
|
+
},
|
|
259
|
+
render: () => ({
|
|
260
|
+
components: { SyTextArea },
|
|
261
|
+
setup() {
|
|
262
|
+
const value = ref('')
|
|
263
|
+
return { value }
|
|
264
|
+
},
|
|
265
|
+
template: `
|
|
266
|
+
<SyTextArea
|
|
267
|
+
v-model="value"
|
|
268
|
+
label="Note interne"
|
|
269
|
+
:hide-details="true"
|
|
270
|
+
:show-success-messages="false"
|
|
271
|
+
/>
|
|
272
|
+
`,
|
|
273
|
+
}),
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
export const Clearable: Story = {
|
|
277
|
+
parameters: {
|
|
278
|
+
docs: {
|
|
279
|
+
description: {
|
|
280
|
+
story: 'Avec `clearable: true`, un bouton permet de vider rapidement le contenu du textarea quand une valeur est présente.',
|
|
281
|
+
},
|
|
282
|
+
},
|
|
283
|
+
sourceCode: [
|
|
284
|
+
{
|
|
285
|
+
name: 'Template',
|
|
286
|
+
code: `<template>
|
|
287
|
+
<SyTextArea
|
|
288
|
+
v-model="text"
|
|
289
|
+
label="Commentaire"
|
|
290
|
+
clearable
|
|
291
|
+
/>
|
|
292
|
+
</template>`,
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
name: 'Script',
|
|
296
|
+
code: `<script setup lang="ts">
|
|
297
|
+
import { ref } from 'vue'
|
|
298
|
+
const text = ref('Texte initial')
|
|
299
|
+
</script>`,
|
|
300
|
+
},
|
|
301
|
+
],
|
|
302
|
+
},
|
|
303
|
+
args: {
|
|
304
|
+
'label': 'Commentaire',
|
|
305
|
+
'clearable': true,
|
|
306
|
+
'onUpdate:modelValue': fn(),
|
|
307
|
+
},
|
|
308
|
+
render: () => ({
|
|
309
|
+
components: { SyTextArea },
|
|
310
|
+
setup() {
|
|
311
|
+
const value = ref('Texte initial')
|
|
312
|
+
return { value }
|
|
313
|
+
},
|
|
314
|
+
template: `
|
|
315
|
+
<SyTextArea
|
|
316
|
+
v-model="value"
|
|
317
|
+
label="Commentaire"
|
|
318
|
+
clearable
|
|
319
|
+
/>
|
|
320
|
+
`,
|
|
321
|
+
}),
|
|
322
|
+
}
|
|
323
|
+
|
|
299
324
|
export const Trim: Story = {
|
|
300
325
|
args: {
|
|
301
326
|
'label': 'Trim text area',
|
|
@@ -377,12 +402,6 @@ const text = ref('')
|
|
|
377
402
|
}
|
|
378
403
|
|
|
379
404
|
export const MaxLines: Story = {
|
|
380
|
-
args: {
|
|
381
|
-
'label': 'Max lines text area',
|
|
382
|
-
'modelValue': 'Lorem ipsum dolor sit amet,\n consectetur adipiscing elit,\n sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n Ut enim ad minim veniam,\n quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n Excepteur sint occaecat cupidatat non proident,\n sunt in culpa qui officia deserunt mollit anim id est laborum.',
|
|
383
|
-
'maxLines': 5,
|
|
384
|
-
'onUpdate:modelValue': fn(),
|
|
385
|
-
},
|
|
386
405
|
parameters: {
|
|
387
406
|
sourceCode: [
|
|
388
407
|
{
|
|
@@ -415,6 +434,28 @@ const text = ref('')
|
|
|
415
434
|
</div>`,
|
|
416
435
|
}),
|
|
417
436
|
],
|
|
437
|
+
render: () => ({
|
|
438
|
+
components: { SyTextArea },
|
|
439
|
+
setup() {
|
|
440
|
+
const value = ref('Lorem ipsum dolor sit amet,\n consectetur adipiscing elit,\n sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n Ut enim ad minim veniam,\n quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n Excepteur sint occaecat cupidatat non proident,\n sunt in culpa qui officia deserunt mollit anim id est laborum.')
|
|
441
|
+
const textAreaRef = ref<{ validateOnSubmit: () => Promise<boolean> } | null>(null)
|
|
442
|
+
|
|
443
|
+
onMounted(async () => {
|
|
444
|
+
await nextTick()
|
|
445
|
+
textAreaRef.value?.validateOnSubmit()
|
|
446
|
+
})
|
|
447
|
+
|
|
448
|
+
return { value, textAreaRef }
|
|
449
|
+
},
|
|
450
|
+
template: `
|
|
451
|
+
<SyTextArea
|
|
452
|
+
ref="textAreaRef"
|
|
453
|
+
v-model="value"
|
|
454
|
+
label="Max lines text area"
|
|
455
|
+
:max-lines="5"
|
|
456
|
+
/>
|
|
457
|
+
`,
|
|
458
|
+
}),
|
|
418
459
|
}
|
|
419
460
|
|
|
420
461
|
export const AutoWrap: Story = {
|
|
@@ -464,6 +505,11 @@ export const Normalize: Story = {
|
|
|
464
505
|
'onUpdate:modelValue': fn(),
|
|
465
506
|
},
|
|
466
507
|
parameters: {
|
|
508
|
+
docs: {
|
|
509
|
+
description: {
|
|
510
|
+
story: 'La normalisation NFC (Canonical Decomposition, followed by Canonical Composition) unifie les représentations Unicode d\'un même caractère. Par exemple, le caractère `é` peut être encodé de deux façons : comme un seul point de code (`U+00E9`) ou comme la lettre `e` suivie d\'un accent aigu combinant (`U+0065` + `U+0301`). Avec `normalize: true`, ces deux formes sont automatiquement converties en une seule représentation canonique à la saisie, garantissant la cohérence des données.',
|
|
511
|
+
},
|
|
512
|
+
},
|
|
467
513
|
sourceCode: [
|
|
468
514
|
{
|
|
469
515
|
name: 'Template',
|
|
@@ -490,7 +536,7 @@ const text = ref('')
|
|
|
490
536
|
story => ({
|
|
491
537
|
components: { story },
|
|
492
538
|
template: `<div>
|
|
493
|
-
<p class="pb-5">
|
|
539
|
+
<p class="pb-5">La normalisation NFC unifie les représentations Unicode d'un même caractère. Par exemple, le caractère <code>é</code> peut être encodé de deux façons : comme un seul point de code (<code>U+00E9</code>) ou comme la lettre <code>e</code> suivie d'un accent aigu combinant (<code>U+0065</code> + <code>U+0301</code>).<br/>Avec <code>normalize: true</code>, ces deux formes sont automatiquement converties en une seule représentation canonique à la saisie, garantissant la cohérence des données.</p>
|
|
494
540
|
<story />
|
|
495
541
|
</div>`,
|
|
496
542
|
}),
|