@cnamts/synapse 1.0.16 → 1.0.17
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/{DateFilter-DSwJUvBu.js → DateFilter-RHtdShO1.js} +1 -1
- package/dist/{NumberFilter-CwsbYyz4.js → NumberFilter-DXYz_b_w.js} +1 -1
- package/dist/{PeriodFilter-csnEZU30.js → PeriodFilter-CzphmrNu.js} +1 -1
- package/dist/{SelectFilter-Bd5fndzR.js → SelectFilter-a4fUV5Jp.js} +1 -1
- package/dist/{TextFilter-B6gxzq2a.js → TextFilter-CZ4LTKoq.js} +1 -1
- package/dist/components/Accordion/Accordion.d.ts +22 -7
- package/dist/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.d.ts +31 -8
- package/dist/components/Amelipro/AmeliproPatientLogged/types.d.ts +2 -1
- package/dist/components/Amelipro/AmeliproTabs/AmeliproTabBtn/AmeliproTabBtn.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +14 -5
- package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +10 -1
- package/dist/components/Amelipro/AmeliproTooltips/AmeliproTooltips.d.ts +6 -2
- package/dist/components/Amelipro/StructureMenu/StructureBtn/StructureBtn.d.ts +9 -0
- package/dist/components/Amelipro/StructureMenu/StructureItem/types.d.ts +1 -0
- package/dist/components/Amelipro/StructureMenu/StructureMenu.d.ts +9 -0
- package/dist/components/Amelipro/StructureMenu/StructureTabs/StructureTabs.d.ts +23 -2
- package/dist/components/ChipList/locales.d.ts +1 -0
- package/dist/components/CookieBanner/CookieBanner.d.ts +2 -2
- package/dist/components/Customs/SyTextField/SyTextField.d.ts +1 -1
- package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +4 -4
- package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +9 -11
- package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +7 -10
- package/dist/components/DatePicker/composables/index.d.ts +0 -1
- package/dist/components/DialogBox/DialogBox.d.ts +3 -3
- package/dist/components/DialogBox/config.d.ts +4 -0
- package/dist/components/FilterSideBar/FilterSideBar.d.ts +10 -3
- package/dist/components/FilterSideBar/locales.d.ts +5 -0
- package/dist/components/HeaderBar/HeaderBar.d.ts +2 -0
- package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +14 -4
- package/dist/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.d.ts +5 -1
- package/dist/components/MaintenancePage/MaintenancePage.d.ts +8 -1
- package/dist/components/NotFoundPage/NotFoundPage.d.ts +9 -2
- package/dist/components/NotificationBar/Notification/Notification.d.ts +30 -0
- package/dist/components/NotificationBar/NotificationBar.d.ts +32 -20
- package/dist/components/PeriodField/PeriodField.d.ts +16 -16
- package/dist/components/SubHeader/SubHeader.d.ts +11 -8
- package/dist/components/SyTextArea/SyTextArea.d.ts +2 -0
- package/dist/components/SyTextArea/locales.d.ts +1 -0
- package/dist/components/UserMenuBtn/UserMenuBtn.d.ts +2 -0
- package/dist/design-system-v3.js +1 -1
- package/dist/design-system-v3.umd.cjs +18 -18
- package/dist/directives/lockFocus.d.ts +1 -1
- package/dist/{main-DkZZpa3S.js → main-BXIMMzFS.js} +9368 -9157
- package/dist/style.css +1 -1
- package/package.json +11 -4
- package/src/components/Accordion/Accessibilite/AccessibilityGuide.mdx +70 -241
- package/src/components/Accordion/Accordion.mdx +6 -1
- package/src/components/Accordion/Accordion.stories.ts +88 -9
- package/src/components/Accordion/Accordion.vue +56 -24
- package/src/components/Accordion/tests/Accordion.a11y.spec.ts +46 -0
- package/src/components/Accordion/tests/__snapshots__/accordion.spec.ts.snap +26 -30
- package/src/components/Accordion/tests/accordion.spec.ts +27 -26
- package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.stories.ts +62 -34
- package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.vue +48 -15
- package/src/components/Amelipro/AmeliproPatientLogged/__tests__/AmeliproPatientLogged.spec.ts +4 -2
- package/src/components/Amelipro/AmeliproPatientLogged/__tests__/__snapshots__/AmeliproPatientLogged.spec.ts.snap +54 -4
- package/src/components/Amelipro/AmeliproPatientLogged/types.d.ts +2 -1
- package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLogin.stories.ts +11 -5
- package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLoginForm/AmeliproPatientLoginForm.vue +8 -0
- package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.vue +37 -1
- package/src/components/Amelipro/AmeliproSelect/__tests__/__snapshots__/AmeliproSelect.spec.ts.snap +2 -2
- package/src/components/Amelipro/AmeliproTabs/AmeliproTabs.stories.ts +94 -0
- package/src/components/Amelipro/AmeliproTabs/AmeliproTabs.vue +6 -2
- package/src/components/Amelipro/AmeliproTabs/__tests__/AmeliproTabs.spec.ts +4 -0
- package/src/components/Amelipro/AmeliproTabs/__tests__/__snapshots__/AmeliproTabs.spec.ts.snap +4 -2
- package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.stories.ts +68 -0
- package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.vue +110 -2
- package/src/components/Amelipro/AmeliproTextField/__tests__/AmeliproTextField.spec.ts +14 -2
- package/src/components/Amelipro/AmeliproTextField/__tests__/__snapshots__/AmeliproTextField.spec.ts.snap +2 -0
- package/src/components/Amelipro/AmeliproTooltips/AmeliproTooltips.stories.ts +45 -0
- package/src/components/Amelipro/AmeliproTooltips/AmeliproTooltips.vue +6 -0
- package/src/components/Amelipro/StructureMenu/StructureBtn/StructureBtn.vue +13 -0
- package/src/components/Amelipro/StructureMenu/StructureBtn/__tests__/StructureBtn.spec.ts +6 -0
- package/src/components/Amelipro/StructureMenu/StructureBtn/__tests__/__snapshots__/StructureBtn.spec.ts.snap +1 -1
- package/src/components/Amelipro/StructureMenu/StructureItem/StructureItem.vue +14 -2
- package/src/components/Amelipro/StructureMenu/StructureItem/__tests__/__snapshots__/StructureItem.spec.ts.snap +22 -6
- package/src/components/Amelipro/StructureMenu/StructureItem/types.d.ts +1 -0
- package/src/components/Amelipro/StructureMenu/StructureMenu.stories.ts +93 -63
- package/src/components/Amelipro/StructureMenu/StructureMenu.vue +5 -0
- package/src/components/Amelipro/StructureMenu/StructureTabs/StructureTabs.vue +22 -1
- package/src/components/Amelipro/StructureMenu/StructureTabs/__tests__/StructureTabs.spec.ts +4 -0
- package/src/components/Amelipro/StructureMenu/StructureTabs/__tests__/__snapshots__/StructureTabs.spec.ts.snap +2 -0
- package/src/components/Amelipro/StructureMenu/__tests__/StructureMenu.spec.ts +12 -6
- package/src/components/BackBtn/tests/BackBtn.a11y.spec.ts +20 -0
- package/src/components/BackToTopBtn/BackToTopBtn.stories.ts +9 -0
- package/src/components/BackToTopBtn/tests/BackToTopBtn.a11y.spec.ts +37 -0
- package/src/components/Captcha/tests/Captcha.a11y.spec.ts +49 -0
- package/src/components/ChipList/ChipList.stories.ts +15 -0
- package/src/components/ChipList/ChipList.vue +20 -17
- package/src/components/ChipList/locales.ts +1 -0
- package/src/components/ChipList/tests/ChipList.a11y.spec.ts +40 -0
- package/src/components/CollapsibleList/Accessibilite.mdx +67 -11
- package/src/components/CollapsibleList/tests/CollapsibleList.a11y.spec.ts +38 -0
- package/src/components/ContextualMenu/ContextualMenu.stories.ts +3 -0
- package/src/components/ContextualMenu/tests/ContextualMenu.a11y.spec.ts +30 -0
- package/src/components/CookieBanner/CookieBanner.stories.ts +15 -0
- package/src/components/CookieBanner/CookieBanner.vue +0 -1
- package/src/components/CookieBanner/tests/CookieBanner.a11y.spec.ts +29 -0
- package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.a11y.spec.ts +46 -0
- package/src/components/CookiesSelection/CookiesTable/tests/CookiesTable.a11y.spec.ts +37 -0
- package/src/components/CookiesSelection/tests/CookiesSelection.a11y.spec.ts +58 -0
- package/src/components/CopyBtn/CopyBtn.stories.ts +21 -0
- package/src/components/CopyBtn/tests/CopyBtn.a11y.spec.ts +40 -0
- package/src/components/Customs/Selects/SyBtnSelect/SyBtnSelect.stories.ts +30 -0
- package/src/components/Customs/Selects/SyBtnSelect/SyBtnSelect.vue +1 -0
- package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +27 -0
- package/src/components/Customs/Selects/SySelect/tests/SySelect.a11y.spec.ts +40 -0
- package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +7 -3
- package/src/components/Customs/SyCheckbox/SyCheckbox.vue +20 -2
- package/src/components/Customs/SyCheckbox/tests/SyCheckbox.a11y.spec.ts +26 -0
- package/src/components/Customs/SyForm/SyForm.a11y.spec.ts +33 -0
- package/src/components/Customs/SyIcon/SyIcon.a11y.spec.ts +37 -0
- package/src/components/Customs/SyIcon/SyIcon.stories.ts +5 -0
- package/src/components/Customs/SyPagination/tests/SyPagination.a11y.spec.ts +27 -0
- package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.a11y.spec.ts +30 -0
- package/src/components/Customs/SyTabs/SyTabs.stories.ts +33 -0
- package/src/components/Customs/SyTabs/tests/SyTabs.a11y.spec.ts +51 -0
- package/src/components/Customs/SyTextField/SyTextField.stories.ts +3 -0
- package/src/components/Customs/SyTextField/SyTextField.vue +13 -11
- package/src/components/Customs/SyTextField/tests/SyTextField.a11y.spec.ts +27 -0
- package/src/components/DataList/tests/DataList.a11y.spec.ts +35 -0
- package/src/components/DataListGroup/tests/DataListGroup.a11y.spec.ts +24 -0
- package/src/components/DataListItem/tests/DataListItem.a11y.spec.ts +31 -0
- package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +45 -0
- package/src/components/DatePicker/CalendarMode/DatePicker.vue +76 -30
- package/src/components/DatePicker/CalendarMode/tests/DatePicker.a11y.spec.ts +27 -0
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +54 -0
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +79 -23
- package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.a11y.spec.ts +26 -0
- package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +12 -0
- package/src/components/DatePicker/DateTextInput/DateTextInput.vue +0 -8
- package/src/components/DatePicker/DateTextInput/tests/DateTextInput.a11y.spec.ts +27 -0
- package/src/components/DatePicker/composables/index.ts +0 -1
- package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +0 -1
- package/src/components/DiacriticPicker/tests/DiacriticPicker.a11y.spec.ts +46 -0
- package/src/components/DialogBox/DialogBox.stories.ts +5 -2
- package/src/components/DialogBox/DialogBox.vue +5 -0
- package/src/components/DialogBox/config.ts +5 -0
- package/src/components/DialogBox/tests/DialogBox.a11y.spec.ts +43 -0
- package/src/components/DownloadBtn/tests/DownloadBtn.a11y.spec.ts +26 -0
- package/src/components/ErrorPage/ErrorPage.stories.ts +60 -0
- package/src/components/ErrorPage/tests/ErrorPage.a11y.spec.ts +29 -0
- package/src/components/ExternalLinks/ExternalLinks.stories.ts +21 -0
- package/src/components/ExternalLinks/tests/ExternalLinks.a11y.spec.ts +39 -0
- package/src/components/FileList/FileList.stories.ts +3 -0
- package/src/components/FileList/tests/FileList.a11y.spec.ts +41 -0
- package/src/components/FilePreview/FilePreview.stories.ts +3 -0
- package/src/components/FilePreview/tests/FilePreview.a11y.spec.ts +47 -0
- package/src/components/FileUpload/tests/FileUpload.a11y.spec.ts +25 -0
- package/src/components/FilterInline/FilterInline.stories.ts +15 -0
- package/src/components/FilterInline/FilterInline.vue +8 -4
- package/src/components/FilterInline/tests/FilterInline.a11y.spec.ts +36 -0
- package/src/components/FilterInline/tests/__snapshots__/FilterInline.spec.ts.snap +0 -3
- package/src/components/FilterSideBar/Accessibilite.stories.ts +4 -0
- package/src/components/FilterSideBar/FilterSideBar.stories.ts +33 -11
- package/src/components/FilterSideBar/FilterSideBar.vue +146 -83
- package/src/components/FilterSideBar/locales.ts +6 -0
- package/src/components/FilterSideBar/tests/FilterSideBar.a11y.spec.ts +59 -0
- package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +2 -2
- package/src/components/FooterBar/Accessibilite.mdx +67 -11
- package/src/components/FooterBar/FooterBar.vue +1 -1
- package/src/components/FooterBar/config.ts +2 -2
- package/src/components/FooterBar/tests/FooterBar.a11y.spec.ts +31 -0
- package/src/components/FooterBar/tests/FooterBarConfig.spec.ts +1 -1
- package/src/components/FooterBar/tests/__snapshots__/FooterBar.spec.ts.snap +1 -1
- package/src/components/FranceConnectBtn/tests/FranceConnectBtn.a11y.spec.ts +25 -0
- package/src/components/HeaderBar/HeaderBar.stories.ts +21 -0
- package/src/components/HeaderBar/HeaderBar.vue +47 -40
- package/src/components/HeaderBar/HeaderBurgerMenu/HeaderBurgerMenu.stories.ts +12 -0
- package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.stories.ts +3 -0
- package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.vue +4 -0
- package/src/components/HeaderBar/HeaderBurgerMenu/menu.scss +17 -7
- package/src/components/HeaderBar/consts.scss +0 -1
- package/src/components/HeaderBar/tests/HeaderBar.a11y.spec.ts +33 -0
- package/src/components/HeaderBar/tests/__snapshots__/HeaderBar.spec.ts.snap +58 -57
- package/src/components/HeaderLoading/tests/HeaderLoading.a11y.spec.ts +25 -0
- package/src/components/HeaderNavigationBar/HeaderNavigationBar.stories.ts +42 -0
- package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +4 -0
- package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +6 -2
- package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.a11y.spec.ts +45 -0
- package/src/components/HeaderToolbar/HeaderToolbar.stories.ts +6 -0
- package/src/components/HeaderToolbar/HeaderToolbar.vue +0 -3
- package/src/components/HeaderToolbar/tests/HeaderToolbar.a11y.spec.ts +25 -0
- package/src/components/LangBtn/LangBtn.stories.ts +12 -0
- package/src/components/LangBtn/tests/LangBtn.a11y.spec.ts +25 -0
- package/src/components/Logo/tests/Logo.a11y.spec.ts +20 -0
- package/src/components/LogoBrandSection/tests/LogoBrandSection.a11y.spec.ts +38 -0
- package/src/components/LunarCalendar/tests/LunarCalendar.a11y.spec.ts +31 -0
- package/src/components/MaintenancePage/MaintenancePage.stories.ts +46 -0
- package/src/components/MaintenancePage/MaintenancePage.vue +7 -5
- package/src/components/MaintenancePage/tests/MaintenancePage.a11y.spec.ts +21 -0
- package/src/components/NirField/NirField.stories.ts +6 -0
- package/src/components/NirField/tests/NirField.a11y.spec.ts +32 -0
- package/src/components/NotFoundPage/NotFoundPage.stories.ts +56 -0
- package/src/components/NotFoundPage/NotFoundPage.vue +7 -5
- package/src/components/NotFoundPage/tests/NotFoundPage.a11y.spec.ts +31 -0
- package/src/components/NotificationBar/Notification/Notification.vue +203 -0
- package/src/components/NotificationBar/NotificationBar.stories.ts +151 -140
- package/src/components/NotificationBar/NotificationBar.vue +148 -202
- package/src/components/NotificationBar/config.ts +1 -1
- package/src/components/NotificationBar/tests/NotificationBar.a11y.spec.ts +66 -0
- package/src/components/NotificationBar/tests/NotificationBar.spec.ts +173 -177
- package/src/components/NotificationBar/tests/__snapshots__/NotificationBar.spec.ts.snap +67 -29
- package/src/components/PageContainer/tests/PageContainer.a11y.spec.ts +27 -0
- package/src/components/PaginatedTable/PaginatedTable.stories.ts +6 -0
- package/src/components/PaginatedTable/PaginatedTable.vue +48 -1
- package/src/components/PaginatedTable/tests/PaginatedTable.a11y.spec.ts +43 -0
- package/src/components/PasswordField/PasswordField.stories.ts +39 -0
- package/src/components/PasswordField/tests/PasswordField.a11y.spec.ts +26 -0
- package/src/components/PeriodField/tests/PeriodField.a11y.spec.ts +31 -0
- package/src/components/PhoneField/PhoneField.stories.ts +51 -0
- package/src/components/PhoneField/tests/PhoneField.a11y.spec.ts +34 -0
- package/src/components/RangeField/tests/RangeField.a11y.spec.ts +32 -0
- package/src/components/RatingPicker/RatingPicker.stories.ts +21 -0
- package/src/components/SkipLink/Accessibilite.mdx +59 -13
- package/src/components/SkipLink/SkipLink.stories.ts +41 -8
- package/src/components/SubHeader/SubHeader.stories.ts +178 -92
- package/src/components/SubHeader/SubHeader.vue +84 -71
- package/src/components/SubHeader/config.ts +1 -1
- package/src/components/SyAlert/SyAlert.vue +1 -1
- package/src/components/SyTextArea/SyTextArea.stories.ts +40 -0
- package/src/components/SyTextArea/SyTextArea.vue +13 -0
- package/src/components/SyTextArea/locales.ts +1 -0
- package/src/components/SyTextArea/tests/SyTextArea.spec.ts +42 -0
- package/src/components/TableToolbar/TableToolbar.stories.ts +3 -0
- package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +70 -1
- package/src/components/Tables/SyTable/FilterRules.stories.ts +12 -0
- package/src/components/Tables/SyTable/SyTable.stories.ts +69 -0
- package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +31 -1
- package/src/components/UserMenuBtn/UserMenuBtn.vue +2 -1
- package/src/components/UserMenuBtn/tests/UserMenuBtn.a11y.spec.ts +31 -0
- package/src/directives/lockFocus.ts +12 -2
- package/src/stories/GuideDuDev/ClassesUtilitaires/DataUtilities.mdx +6 -6
- package/src/stories/GuideDuDev/ClassesUtilitaires/DomBrowserUtilities.mdx +52 -59
- package/src/stories/GuideDuDev/ClassesUtilitaires/FormattingUtilities.mdx +9 -9
- package/src/stories/GuideDuDev/ClassesUtilitaires/StorageUtilities.mdx +2 -2
- package/src/stories/GuideDuDev/ClassesUtilitaires/ValidationRules.mdx +3 -3
- package/src/stories/GuideDuDev/ClassesUtilitaires/ValidationUtilities.mdx +11 -11
- package/src/stories/GuideDuDev/ClassesUtilitaires/index.mdx +15 -15
- package/src/stories/GuideDuDev/MigrationDepuisBridge.mdx +1 -1
- package/src/stories/GuideDuDev/moduleDeNotification.mdx +1 -1
- package/src/stories/accessibility/AccessibilityGuideLayout.mdx +87 -0
- package/src/stories/styles/accessibility-guide.css +153 -0
- package/dist/components/DatePicker/composables/useIconState.d.ts +0 -17
- package/src/components/Amelipro/AmeliproTextField/tests/__snapshots__/AmeliproTextField.spec.ts.snap +0 -162
- package/src/components/DatePicker/composables/tests/useIconState.spec.ts +0 -130
- package/src/components/DatePicker/composables/useIconState.ts +0 -53
- package/src/components/Usages/tests/Usages.spec.ts +0 -155
|
@@ -15,7 +15,7 @@ Cette fonction convertit une taille en octets en une chaîne de caractères lisi
|
|
|
15
15
|
|
|
16
16
|
### Importation
|
|
17
17
|
|
|
18
|
-
<Source dark code={`import { calcHumanFileSize } from '@cnamts/
|
|
18
|
+
<Source dark code={`import { calcHumanFileSize } from '@cnamts/synapse'
|
|
19
19
|
`}/>
|
|
20
20
|
|
|
21
21
|
### Utilisation
|
|
@@ -43,7 +43,7 @@ calcHumanFileSize(1099511627776) // '1 To'
|
|
|
43
43
|
|
|
44
44
|
<script>
|
|
45
45
|
import { ref } from 'vue'
|
|
46
|
-
import { calcHumanFileSize } from '@cnamts/
|
|
46
|
+
import { calcHumanFileSize } from '@cnamts/synapse'
|
|
47
47
|
|
|
48
48
|
export default {
|
|
49
49
|
setup() {
|
|
@@ -74,7 +74,7 @@ Cette fonction convertit une valeur en unité CSS (px, em, rem, etc.).
|
|
|
74
74
|
|
|
75
75
|
### Importation
|
|
76
76
|
|
|
77
|
-
<Source dark code={`import { convertToUnit } from '@cnamts/
|
|
77
|
+
<Source dark code={`import { convertToUnit } from '@cnamts/synapse'
|
|
78
78
|
`}/>
|
|
79
79
|
|
|
80
80
|
### Utilisation
|
|
@@ -103,7 +103,7 @@ convertToUnit(undefined) // undefined
|
|
|
103
103
|
|
|
104
104
|
<script>
|
|
105
105
|
import { ref, computed } from 'vue'
|
|
106
|
-
import { convertToUnit } from '@cnamts/
|
|
106
|
+
import { convertToUnit } from '@cnamts/synapse'
|
|
107
107
|
|
|
108
108
|
export default {
|
|
109
109
|
props: {
|
|
@@ -129,7 +129,7 @@ Cette fonction formate une date selon un format spécifique, en utilisant la bib
|
|
|
129
129
|
|
|
130
130
|
### Importation
|
|
131
131
|
|
|
132
|
-
<Source dark code={`import { formatDate } from '@cnamts/
|
|
132
|
+
<Source dark code={`import { formatDate } from '@cnamts/synapse'
|
|
133
133
|
`}/>
|
|
134
134
|
|
|
135
135
|
### Utilisation
|
|
@@ -159,7 +159,7 @@ formatDate(undefined) // ''
|
|
|
159
159
|
|
|
160
160
|
<script>
|
|
161
161
|
import { computed } from 'vue'
|
|
162
|
-
import { formatDate } from '@cnamts/
|
|
162
|
+
import { formatDate } from '@cnamts/synapse'
|
|
163
163
|
|
|
164
164
|
export default {
|
|
165
165
|
props: {
|
|
@@ -196,7 +196,7 @@ Cette fonction parse une chaîne de caractères en objet Date, en prenant en cha
|
|
|
196
196
|
|
|
197
197
|
### Importation
|
|
198
198
|
|
|
199
|
-
<Source dark code={`import { parseDate } from '@cnamts/
|
|
199
|
+
<Source dark code={`import { parseDate } from '@cnamts/synapse'
|
|
200
200
|
`}/>
|
|
201
201
|
|
|
202
202
|
### Utilisation
|
|
@@ -232,7 +232,7 @@ parseDate('date invalide') // null
|
|
|
232
232
|
<script>
|
|
233
233
|
import { ref, computed } from 'vue'
|
|
234
234
|
import { parseDate, isDateValidUtil } from '
|
|
235
|
-
import '../../styles/shared.css';@cnamts/
|
|
235
|
+
import '../../styles/shared.css';@cnamts/synapse'
|
|
236
236
|
|
|
237
237
|
export default {
|
|
238
238
|
setup() {
|
|
@@ -288,7 +288,7 @@ Cette fonction formate un numéro de sécurité sociale (NIR) pour le rendre plu
|
|
|
288
288
|
|
|
289
289
|
### Importation
|
|
290
290
|
|
|
291
|
-
<Source dark code={`import { formatNir } from '@cnamts/
|
|
291
|
+
<Source dark code={`import { formatNir } from '@cnamts/synapse'
|
|
292
292
|
`}/>
|
|
293
293
|
|
|
294
294
|
### Utilisation
|
|
@@ -18,7 +18,7 @@ import '../../styles/shared.css';
|
|
|
18
18
|
|
|
19
19
|
### Importation
|
|
20
20
|
|
|
21
|
-
<Source dark code={`import { LocalStorageUtility } from '@cnamts/
|
|
21
|
+
<Source dark code={`import { LocalStorageUtility } from '@cnamts/synapse'
|
|
22
22
|
`}/>
|
|
23
23
|
|
|
24
24
|
### Utilisation
|
|
@@ -107,7 +107,7 @@ storage.clear()
|
|
|
107
107
|
|
|
108
108
|
### Exemple complet
|
|
109
109
|
|
|
110
|
-
<Source dark code={`import { LocalStorageUtility } from '@cnamts/
|
|
110
|
+
<Source dark code={`import { LocalStorageUtility } from '@cnamts/synapse'
|
|
111
111
|
|
|
112
112
|
// Création d'une instance pour notre application
|
|
113
113
|
const appStorage = new LocalStorageUtility('my-app')
|
|
@@ -24,7 +24,7 @@ import '../../styles/shared.css';
|
|
|
24
24
|
isNotBeforeToday,
|
|
25
25
|
isRequired,
|
|
26
26
|
isValidEmail
|
|
27
|
-
} from '@cnamts/
|
|
27
|
+
} from '@cnamts/synapse'
|
|
28
28
|
`}/>
|
|
29
29
|
|
|
30
30
|
## Règles disponibles
|
|
@@ -246,7 +246,7 @@ import {
|
|
|
246
246
|
isValidEmail,
|
|
247
247
|
isMinLength,
|
|
248
248
|
doMatchPattern
|
|
249
|
-
} from '@cnamts/
|
|
249
|
+
} from '@cnamts/synapse'
|
|
250
250
|
|
|
251
251
|
export default {
|
|
252
252
|
setup() {
|
|
@@ -339,7 +339,7 @@ import {
|
|
|
339
339
|
isNotBeforeToday,
|
|
340
340
|
isNotAfterDate,
|
|
341
341
|
isHolidayDay
|
|
342
|
-
} from '@cnamts/
|
|
342
|
+
} from '@cnamts/synapse'
|
|
343
343
|
|
|
344
344
|
export default {
|
|
345
345
|
setup() {
|
|
@@ -15,7 +15,7 @@ Cette fonction facilite la validation des props dans les composants Vue.
|
|
|
15
15
|
|
|
16
16
|
### Importation
|
|
17
17
|
|
|
18
|
-
<Source dark code={`import { propValidator } from '@cnamts/
|
|
18
|
+
<Source dark code={`import { propValidator } from '@cnamts/synapse'
|
|
19
19
|
`}/>
|
|
20
20
|
|
|
21
21
|
### Utilisation
|
|
@@ -46,7 +46,7 @@ Cette fonction facilite la validation des props dans les composants Vue.
|
|
|
46
46
|
</template>
|
|
47
47
|
|
|
48
48
|
<script>
|
|
49
|
-
import { propValidator } from '@cnamts/
|
|
49
|
+
import { propValidator } from '@cnamts/synapse'
|
|
50
50
|
|
|
51
51
|
export default {
|
|
52
52
|
name: 'CustomButton',
|
|
@@ -72,7 +72,7 @@ Cette fonction génère un message d'erreur formaté pour les règles de validat
|
|
|
72
72
|
|
|
73
73
|
### Importation
|
|
74
74
|
|
|
75
|
-
<Source dark code={`import { ruleMessage } from '@cnamts/
|
|
75
|
+
<Source dark code={`import { ruleMessage } from '@cnamts/synapse'
|
|
76
76
|
`}/>
|
|
77
77
|
|
|
78
78
|
### Utilisation
|
|
@@ -104,7 +104,7 @@ ruleMessage('Ce champ est requis', 'Email') // 'Email : Ce champ est requis'
|
|
|
104
104
|
|
|
105
105
|
<script>
|
|
106
106
|
import { ref } from 'vue'
|
|
107
|
-
import { ruleMessage } from '@cnamts/
|
|
107
|
+
import { ruleMessage } from '@cnamts/synapse'
|
|
108
108
|
|
|
109
109
|
export default {
|
|
110
110
|
setup() {
|
|
@@ -140,7 +140,7 @@ Vérifie si une date est postérieure à une autre date.
|
|
|
140
140
|
|
|
141
141
|
#### Importation
|
|
142
142
|
|
|
143
|
-
<Source dark code={`import { isDateAfter } from '@cnamts/
|
|
143
|
+
<Source dark code={`import { isDateAfter } from '@cnamts/synapse'
|
|
144
144
|
`}/>
|
|
145
145
|
|
|
146
146
|
#### Utilisation
|
|
@@ -160,7 +160,7 @@ Vérifie si une date est antérieure à une autre date.
|
|
|
160
160
|
|
|
161
161
|
#### Importation
|
|
162
162
|
|
|
163
|
-
<Source dark code={`import { isDateBefore } from '@cnamts/
|
|
163
|
+
<Source dark code={`import { isDateBefore } from '@cnamts/synapse'
|
|
164
164
|
`}/>
|
|
165
165
|
|
|
166
166
|
#### Utilisation
|
|
@@ -179,7 +179,7 @@ Vérifie si une date est comprise dans une plage de dates.
|
|
|
179
179
|
|
|
180
180
|
#### Importation
|
|
181
181
|
|
|
182
|
-
<Source dark code={`import { isDateInRange } from '@cnamts/
|
|
182
|
+
<Source dark code={`import { isDateInRange } from '@cnamts/synapse'
|
|
183
183
|
`}/>
|
|
184
184
|
|
|
185
185
|
#### Utilisation
|
|
@@ -202,7 +202,7 @@ Vérifie si une chaîne de date est valide.
|
|
|
202
202
|
|
|
203
203
|
#### Importation
|
|
204
204
|
|
|
205
|
-
<Source dark code={`import { isDateValidUtil } from '@cnamts/
|
|
205
|
+
<Source dark code={`import { isDateValidUtil } from '@cnamts/synapse'
|
|
206
206
|
`}/>
|
|
207
207
|
|
|
208
208
|
#### Utilisation
|
|
@@ -222,7 +222,7 @@ Vérifie si une date correspond à un jour de week-end (samedi ou dimanche).
|
|
|
222
222
|
|
|
223
223
|
#### Importation
|
|
224
224
|
|
|
225
|
-
<Source dark code={`import { isWeekend } from '@cnamts/
|
|
225
|
+
<Source dark code={`import { isWeekend } from '@cnamts/synapse'
|
|
226
226
|
`}/>
|
|
227
227
|
|
|
228
228
|
#### Utilisation
|
|
@@ -244,7 +244,7 @@ Vérifie si une chaîne est un email valide.
|
|
|
244
244
|
|
|
245
245
|
#### Importation
|
|
246
246
|
|
|
247
|
-
<Source dark code={`import { isEmailValid } from '@cnamts/
|
|
247
|
+
<Source dark code={`import { isEmailValid } from '@cnamts/synapse'
|
|
248
248
|
`}/>
|
|
249
249
|
|
|
250
250
|
#### Utilisation
|
|
@@ -303,7 +303,7 @@ import {
|
|
|
303
303
|
isDateAfter,
|
|
304
304
|
isWeekend,
|
|
305
305
|
ruleMessage
|
|
306
|
-
} from '@cnamts/
|
|
306
|
+
} from '@cnamts/synapse'
|
|
307
307
|
|
|
308
308
|
export default {
|
|
309
309
|
setup() {
|
|
@@ -24,7 +24,7 @@ import '../../styles/shared.css';
|
|
|
24
24
|
|
|
25
25
|
Classe utilitaire pour manipuler le localStorage avec gestion des préfixes et de la sérialisation.
|
|
26
26
|
|
|
27
|
-
<Source dark code={`import { LocalStorageUtility } from '@cnamts/
|
|
27
|
+
<Source dark code={`import { LocalStorageUtility } from '@cnamts/synapse'
|
|
28
28
|
|
|
29
29
|
// Création d'une instance avec un préfixe
|
|
30
30
|
const storage = new LocalStorageUtility('my-app')
|
|
@@ -53,7 +53,7 @@ storage.clear()
|
|
|
53
53
|
|
|
54
54
|
Convertit une taille en octets en une chaîne de caractères lisible par un humain.
|
|
55
55
|
|
|
56
|
-
<Source dark code={`import { calcHumanFileSize } from '@cnamts/
|
|
56
|
+
<Source dark code={`import { calcHumanFileSize } from '@cnamts/synapse'
|
|
57
57
|
|
|
58
58
|
console.log(calcHumanFileSize(1024)) // '1 Ko'
|
|
59
59
|
console.log(calcHumanFileSize(1048576)) // '1 Mo'
|
|
@@ -64,7 +64,7 @@ console.log(calcHumanFileSize(1073741824)) // '1 Go'
|
|
|
64
64
|
|
|
65
65
|
Convertit une valeur en unité CSS (px, em, rem, etc.).
|
|
66
66
|
|
|
67
|
-
<Source dark code={`import { convertToUnit } from '@cnamts/
|
|
67
|
+
<Source dark code={`import { convertToUnit } from '@cnamts/synapse'
|
|
68
68
|
|
|
69
69
|
console.log(convertToUnit(16)) // '16px'
|
|
70
70
|
console.log(convertToUnit('16')) // '16px'
|
|
@@ -77,7 +77,7 @@ console.log(convertToUnit(null)) // undefined
|
|
|
77
77
|
|
|
78
78
|
Formate une date selon un format spécifique.
|
|
79
79
|
|
|
80
|
-
<Source dark code={`import { formatDate } from '@cnamts/
|
|
80
|
+
<Source dark code={`import { formatDate } from '@cnamts/synapse'
|
|
81
81
|
|
|
82
82
|
const date = new Date('2023-01-15')
|
|
83
83
|
|
|
@@ -90,7 +90,7 @@ console.log(formatDate('2023-01-15')) // '15/01/2023'
|
|
|
90
90
|
|
|
91
91
|
Parse une chaîne de caractères en objet Date.
|
|
92
92
|
|
|
93
|
-
<Source dark code={`import { parseDate } from '@cnamts/
|
|
93
|
+
<Source dark code={`import { parseDate } from '@cnamts/synapse'
|
|
94
94
|
|
|
95
95
|
console.log(parseDate('15/01/2023').toISOString()) // '2023-01-15T00:00:00.000Z'
|
|
96
96
|
console.log(parseDate('2023-01-15').toISOString()) // '2023-01-15T00:00:00.000Z'
|
|
@@ -100,7 +100,7 @@ console.log(parseDate('2023-01-15').toISOString()) // '2023-01-15T00:00:00.000Z'
|
|
|
100
100
|
|
|
101
101
|
Formate un numéro de sécurité sociale (NIR) pour le rendre plus lisible en ajoutant des espaces à des positions fixes.
|
|
102
102
|
|
|
103
|
-
<Source dark code={`import { formatNir } from '@cnamts/
|
|
103
|
+
<Source dark code={`import { formatNir } from '@cnamts/synapse'
|
|
104
104
|
|
|
105
105
|
console.log(formatNir('1234567890123')) // '1 23 45 67 890 123'
|
|
106
106
|
console.log(formatNir('123456789012345')) // '1 23 45 67 890 123 45'
|
|
@@ -112,7 +112,7 @@ console.log(formatNir('123456789012345')) // '1 23 45 67 890 123 45'
|
|
|
112
112
|
|
|
113
113
|
Valide les props d'un composant Vue.
|
|
114
114
|
|
|
115
|
-
<Source dark code={`import { propValidator } from '@cnamts/
|
|
115
|
+
<Source dark code={`import { propValidator } from '@cnamts/synapse'
|
|
116
116
|
|
|
117
117
|
export default {
|
|
118
118
|
props: {
|
|
@@ -128,7 +128,7 @@ export default {
|
|
|
128
128
|
|
|
129
129
|
Génère un message d'erreur pour les règles de validation.
|
|
130
130
|
|
|
131
|
-
<Source dark code={`import { ruleMessage } from '@cnamts/
|
|
131
|
+
<Source dark code={`import { ruleMessage } from '@cnamts/synapse'
|
|
132
132
|
|
|
133
133
|
const message = ruleMessage('Ce champ est requis')
|
|
134
134
|
console.log(message) // 'Ce champ est requis'
|
|
@@ -146,7 +146,7 @@ console.log(fieldMessage) // 'Email : Ce champ est requis'
|
|
|
146
146
|
isDateInRange,
|
|
147
147
|
isDateValidUtil,
|
|
148
148
|
isWeekend
|
|
149
|
-
} from '@cnamts/
|
|
149
|
+
} from '@cnamts/synapse'
|
|
150
150
|
|
|
151
151
|
// Vérifier si une date est après une autre
|
|
152
152
|
console.log(isDateAfter('15/02/2023', '10/02/2023')) // true
|
|
@@ -169,7 +169,7 @@ console.log(isWeekend(new Date('2023-02-20'))) // false (lundi)
|
|
|
169
169
|
|
|
170
170
|
### Validation d'email
|
|
171
171
|
|
|
172
|
-
<Source dark code={`import { isEmailValid } from '@cnamts/
|
|
172
|
+
<Source dark code={`import { isEmailValid } from '@cnamts/synapse'
|
|
173
173
|
|
|
174
174
|
console.log(isEmailValid('user@example.com')) // true
|
|
175
175
|
console.log(isEmailValid('invalid-email')) // false
|
|
@@ -181,7 +181,7 @@ console.log(isEmailValid('invalid-email')) // false
|
|
|
181
181
|
|
|
182
182
|
Copie un texte dans le presse-papier.
|
|
183
183
|
|
|
184
|
-
<Source dark code={`import { copyToClipboard } from '@cnamts/
|
|
184
|
+
<Source dark code={`import { copyToClipboard } from '@cnamts/synapse'
|
|
185
185
|
|
|
186
186
|
// Copier un texte dans le presse-papier
|
|
187
187
|
copyToClipboard('Texte à copier')
|
|
@@ -193,7 +193,7 @@ copyToClipboard('Texte à copier')
|
|
|
193
193
|
|
|
194
194
|
Télécharge un fichier à partir d'une URL ou d'un Blob.
|
|
195
195
|
|
|
196
|
-
<Source dark code={`import { downloadFile } from '@cnamts/
|
|
196
|
+
<Source dark code={`import { downloadFile } from '@cnamts/synapse'
|
|
197
197
|
|
|
198
198
|
// Télécharger un fichier à partir d'une URL
|
|
199
199
|
downloadFile('https://example.com/document.pdf', 'mon-document.pdf')
|
|
@@ -207,7 +207,7 @@ downloadFile(blob, 'mon-fichier.txt')
|
|
|
207
207
|
|
|
208
208
|
Limite le nombre d'appels à une fonction d'affichage pour améliorer les performances.
|
|
209
209
|
|
|
210
|
-
<Source dark code={`import { throttleDisplayFn } from '@cnamts/
|
|
210
|
+
<Source dark code={`import { throttleDisplayFn } from '@cnamts/synapse'
|
|
211
211
|
|
|
212
212
|
// Fonction originale qui pourrait être appelée trop fréquemment
|
|
213
213
|
const updateUI = () => {
|
|
@@ -227,7 +227,7 @@ window.addEventListener('scroll', throttledUpdateUI)
|
|
|
227
227
|
|
|
228
228
|
Crée une copie profonde d'un objet.
|
|
229
229
|
|
|
230
|
-
<Source dark code={`import { deepCopy } from '@cnamts/
|
|
230
|
+
<Source dark code={`import { deepCopy } from '@cnamts/synapse'
|
|
231
231
|
|
|
232
232
|
const originalObject = {
|
|
233
233
|
user: {
|
|
@@ -263,7 +263,7 @@ Le Design System fournit également un ensemble de règles de validation prêtes
|
|
|
263
263
|
isNotBeforeToday,
|
|
264
264
|
isRequired,
|
|
265
265
|
isValidEmail
|
|
266
|
-
} from '@cnamts/
|
|
266
|
+
} from '@cnamts/synapse'
|
|
267
267
|
|
|
268
268
|
export default {
|
|
269
269
|
setup() {
|
|
@@ -15,7 +15,7 @@ import '../styles/shared.css';
|
|
|
15
15
|
- Transférez les pages de votre projet du Starter Kit Bridge dans le dossier pages du projet Starter Kit Synapse, les composants peuvent être placés dans le dossier components.
|
|
16
16
|
|
|
17
17
|
- Identifier les dépendances à conserver dans la nouvelle version.
|
|
18
|
-
Le package `@cnamts/
|
|
18
|
+
Le package `@cnamts/synapse-bridge` a été remplacé par `@cnamts/synapse`.
|
|
19
19
|
|
|
20
20
|
- Dans le fichier nuxt.config.ts, ajouter le lien vers votre fichier de style global.
|
|
21
21
|
|
|
@@ -14,7 +14,7 @@ import '../styles/shared.css';
|
|
|
14
14
|
|
|
15
15
|
<Source dark code={`
|
|
16
16
|
import { useNotificationService } from '
|
|
17
|
-
import '../styles/shared.css';@cnamts/
|
|
17
|
+
import '../styles/shared.css';@cnamts/synapse'
|
|
18
18
|
|
|
19
19
|
const { notificationQueue, addNotification, removeNotification, clearQueue } = useNotificationService()
|
|
20
20
|
`} />
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Meta } from '@storybook/blocks';
|
|
2
|
+
import '../styles/shared.css';
|
|
3
|
+
import '../styles/accessibility-guide.css';
|
|
4
|
+
|
|
5
|
+
<Meta isTemplate />
|
|
6
|
+
|
|
7
|
+
export const AccessibilityGuideLayout = ({ componentName, iconSrc, apgHref, apgLabel, children }) => (
|
|
8
|
+
<div className="accessibility-guide">
|
|
9
|
+
<div className="header">
|
|
10
|
+
<h1>Guide d'Accessibilité du Composant {componentName}</h1>
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
<div className="intro-section">
|
|
14
|
+
{iconSrc && (
|
|
15
|
+
<img
|
|
16
|
+
src={iconSrc}
|
|
17
|
+
alt="Icône d'accessibilité"
|
|
18
|
+
className="accessibility-icon"
|
|
19
|
+
/>
|
|
20
|
+
)}
|
|
21
|
+
<p className="intro-text">
|
|
22
|
+
Le composant {componentName} a été conçu en suivant rigoureusement les recommandations d'accessibilité du W3C
|
|
23
|
+
{apgHref && (
|
|
24
|
+
<>
|
|
25
|
+
, notamment le modèle{' '}
|
|
26
|
+
<a href={apgHref} target="_blank" rel="noopener noreferrer">
|
|
27
|
+
{apgLabel || 'WAI-ARIA Authoring Practices'}
|
|
28
|
+
</a>
|
|
29
|
+
</>
|
|
30
|
+
)}
|
|
31
|
+
. Ce guide détaille comment notre implémentation respecte ces standards et garantit une expérience
|
|
32
|
+
utilisateur inclusive.
|
|
33
|
+
</p>
|
|
34
|
+
</div>
|
|
35
|
+
|
|
36
|
+
{children}
|
|
37
|
+
</div>
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
export const CriteriaSection = ({ title = "Critères d'accessibilité respectés", children }) => (
|
|
41
|
+
<div className="criteria-section">
|
|
42
|
+
<h2>{title}</h2>
|
|
43
|
+
{children}
|
|
44
|
+
</div>
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
export const CriteriaCard = ({ icon, title, children }) => (
|
|
48
|
+
<div className="criteria-card">
|
|
49
|
+
<div className="criteria-header">
|
|
50
|
+
{icon && <span className="criteria-icon">{icon}</span>}
|
|
51
|
+
<h3>{title}</h3>
|
|
52
|
+
</div>
|
|
53
|
+
{children}
|
|
54
|
+
</div>
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
export const DemoSection = ({ componentName, children }) => (
|
|
58
|
+
<div className="demo-section">
|
|
59
|
+
<h2>Démonstration interactive</h2>
|
|
60
|
+
<p>
|
|
61
|
+
Explorez ci-dessous un exemple de {componentName} entièrement accessible. Essayez de naviguer en utilisant
|
|
62
|
+
uniquement votre clavier pour tester l'accessibilité.
|
|
63
|
+
</p>
|
|
64
|
+
{children}
|
|
65
|
+
</div>
|
|
66
|
+
);
|
|
67
|
+
|
|
68
|
+
export const BestPracticesSection = ({ title = "Bonnes pratiques d'utilisation", children }) => (
|
|
69
|
+
<div className="best-practices">
|
|
70
|
+
<h2>{title}</h2>
|
|
71
|
+
{children}
|
|
72
|
+
</div>
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
export const ResourcesSection = ({ title = 'Ressources supplémentaires', children }) => (
|
|
76
|
+
<div className="resources-section">
|
|
77
|
+
<h2>{title}</h2>
|
|
78
|
+
{children}
|
|
79
|
+
</div>
|
|
80
|
+
);
|
|
81
|
+
|
|
82
|
+
export const AuditSection = ({ title = 'Rapports d\'audit', children }) => (
|
|
83
|
+
<div className="audit-section">
|
|
84
|
+
<h2>{title}</h2>
|
|
85
|
+
{children}
|
|
86
|
+
</div>
|
|
87
|
+
);
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
.accessibility-guide {
|
|
2
|
+
font-family:
|
|
3
|
+
system-ui,
|
|
4
|
+
-apple-system,
|
|
5
|
+
BlinkMacSystemFont,
|
|
6
|
+
'Segoe UI',
|
|
7
|
+
Roboto,
|
|
8
|
+
Oxygen,
|
|
9
|
+
Ubuntu,
|
|
10
|
+
Cantarell,
|
|
11
|
+
'Open Sans',
|
|
12
|
+
'Helvetica Neue',
|
|
13
|
+
sans-serif;
|
|
14
|
+
max-width: 1200px;
|
|
15
|
+
margin-top: 10px;
|
|
16
|
+
padding: 2rem;
|
|
17
|
+
color: #333;
|
|
18
|
+
line-height: 1.6;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.intro-section {
|
|
22
|
+
display: flex;
|
|
23
|
+
align-items: center;
|
|
24
|
+
gap: 2rem;
|
|
25
|
+
margin: 2rem 0 !important;
|
|
26
|
+
padding: 1.5rem;
|
|
27
|
+
background: linear-gradient(135deg, #f5f7fa 0%, #e4e8f0 100%);
|
|
28
|
+
border-radius: 12px;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.accessibility-icon {
|
|
32
|
+
width: 80px;
|
|
33
|
+
height: 80px;
|
|
34
|
+
object-fit: contain;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.intro-text {
|
|
38
|
+
font-size: 1.1rem;
|
|
39
|
+
margin: 0;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.criteria-section {
|
|
43
|
+
margin: 3rem 0;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.criteria-section h2 {
|
|
47
|
+
font-size: 1.8rem;
|
|
48
|
+
margin-bottom: 1.5rem;
|
|
49
|
+
color: #2c3e50;
|
|
50
|
+
border-bottom: 2px solid #e0e0e0;
|
|
51
|
+
padding-bottom: 0.5rem;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.criteria-card {
|
|
55
|
+
background-color: #fff;
|
|
56
|
+
border-radius: 8px;
|
|
57
|
+
box-shadow: 0 4px 6px rgb(0 0 0 / 5%), 0 1px 3px rgb(0 0 0 / 10%);
|
|
58
|
+
padding: 1.5rem;
|
|
59
|
+
margin-top: 1.5rem !important;
|
|
60
|
+
margin-bottom: 1.5rem !important;
|
|
61
|
+
transition: transform 0.2s ease, box-shadow 0.2s ease;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.criteria-header {
|
|
65
|
+
display: flex;
|
|
66
|
+
align-items: center;
|
|
67
|
+
margin-bottom: 1rem;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.criteria-icon {
|
|
71
|
+
font-size: 1.8rem;
|
|
72
|
+
margin-right: 0.5rem !important;
|
|
73
|
+
margin-left: 0.5rem !important;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.criteria-header h3 {
|
|
77
|
+
margin: 0;
|
|
78
|
+
font-size: 1.4rem;
|
|
79
|
+
color: #1976d2;
|
|
80
|
+
margin-top: 0.5rem !important;
|
|
81
|
+
margin-bottom: 0.5rem !important;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.criteria-card ul {
|
|
85
|
+
margin: 0;
|
|
86
|
+
padding-left: 1.5rem;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.criteria-card li {
|
|
90
|
+
margin-bottom: 0.5rem;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.criteria-card strong {
|
|
94
|
+
color: #455a64;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.criteria-card code {
|
|
98
|
+
background-color: #f5f5f5;
|
|
99
|
+
padding: 0.2rem 0.4rem;
|
|
100
|
+
border-radius: 4px;
|
|
101
|
+
font-size: 0.9rem;
|
|
102
|
+
color: #e91e63;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.demo-section {
|
|
106
|
+
margin: 3rem 0;
|
|
107
|
+
padding: 2rem;
|
|
108
|
+
background-color: #f9f9f9;
|
|
109
|
+
border-radius: 8px;
|
|
110
|
+
margin-top: 1.5rem !important;
|
|
111
|
+
margin-bottom: 1.5rem !important;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.best-practices {
|
|
115
|
+
margin: 3rem 0;
|
|
116
|
+
padding: 1.5rem;
|
|
117
|
+
background-color: #e8f5e9;
|
|
118
|
+
border-left: 4px solid #4caf50;
|
|
119
|
+
border-radius: 4px;
|
|
120
|
+
margin-top: 1.5rem !important;
|
|
121
|
+
margin-bottom: 1.5rem !important;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.best-practices h2 {
|
|
125
|
+
color: #2e7d32;
|
|
126
|
+
margin-top: 0;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.resources-section {
|
|
130
|
+
margin: 3rem 0;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.resources-section a {
|
|
134
|
+
color: #1976d2;
|
|
135
|
+
text-decoration: none;
|
|
136
|
+
border-bottom: 1px dotted;
|
|
137
|
+
transition: color 0.2s ease;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.resources-section a:hover {
|
|
141
|
+
color: #0d47a1;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
@media (width <= 768px) {
|
|
145
|
+
.intro-section {
|
|
146
|
+
flex-direction: column;
|
|
147
|
+
text-align: center;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.accessibility-icon {
|
|
151
|
+
margin-bottom: 1rem;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Ref } from 'vue';
|
|
2
|
-
/**
|
|
3
|
-
* Composable pour déterminer l'icône à afficher en fonction de l'état de validation
|
|
4
|
-
*
|
|
5
|
-
* @param options - Options de configuration
|
|
6
|
-
* @returns Fonction pour obtenir l'icône appropriée
|
|
7
|
-
*/
|
|
8
|
-
export declare const useIconState: (options: {
|
|
9
|
-
noCalendar?: boolean;
|
|
10
|
-
disableErrorHandling?: boolean;
|
|
11
|
-
errorMessages: Ref<string[]>;
|
|
12
|
-
warningMessages: Ref<string[]>;
|
|
13
|
-
successMessages: Ref<string[]>;
|
|
14
|
-
}) => {
|
|
15
|
-
getIcon: import('vue').ComputedRef<"success" | "error" | "warning" | undefined>;
|
|
16
|
-
getIconValue: import('vue').ComputedRef<"success" | "error" | "warning" | undefined>;
|
|
17
|
-
};
|