@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.
Files changed (248) hide show
  1. package/dist/{DateFilter-DSwJUvBu.js → DateFilter-RHtdShO1.js} +1 -1
  2. package/dist/{NumberFilter-CwsbYyz4.js → NumberFilter-DXYz_b_w.js} +1 -1
  3. package/dist/{PeriodFilter-csnEZU30.js → PeriodFilter-CzphmrNu.js} +1 -1
  4. package/dist/{SelectFilter-Bd5fndzR.js → SelectFilter-a4fUV5Jp.js} +1 -1
  5. package/dist/{TextFilter-B6gxzq2a.js → TextFilter-CZ4LTKoq.js} +1 -1
  6. package/dist/components/Accordion/Accordion.d.ts +22 -7
  7. package/dist/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.d.ts +31 -8
  8. package/dist/components/Amelipro/AmeliproPatientLogged/types.d.ts +2 -1
  9. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabBtn/AmeliproTabBtn.d.ts +1 -1
  10. package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +14 -5
  11. package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +10 -1
  12. package/dist/components/Amelipro/AmeliproTooltips/AmeliproTooltips.d.ts +6 -2
  13. package/dist/components/Amelipro/StructureMenu/StructureBtn/StructureBtn.d.ts +9 -0
  14. package/dist/components/Amelipro/StructureMenu/StructureItem/types.d.ts +1 -0
  15. package/dist/components/Amelipro/StructureMenu/StructureMenu.d.ts +9 -0
  16. package/dist/components/Amelipro/StructureMenu/StructureTabs/StructureTabs.d.ts +23 -2
  17. package/dist/components/ChipList/locales.d.ts +1 -0
  18. package/dist/components/CookieBanner/CookieBanner.d.ts +2 -2
  19. package/dist/components/Customs/SyTextField/SyTextField.d.ts +1 -1
  20. package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +4 -4
  21. package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +9 -11
  22. package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +7 -10
  23. package/dist/components/DatePicker/composables/index.d.ts +0 -1
  24. package/dist/components/DialogBox/DialogBox.d.ts +3 -3
  25. package/dist/components/DialogBox/config.d.ts +4 -0
  26. package/dist/components/FilterSideBar/FilterSideBar.d.ts +10 -3
  27. package/dist/components/FilterSideBar/locales.d.ts +5 -0
  28. package/dist/components/HeaderBar/HeaderBar.d.ts +2 -0
  29. package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +14 -4
  30. package/dist/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.d.ts +5 -1
  31. package/dist/components/MaintenancePage/MaintenancePage.d.ts +8 -1
  32. package/dist/components/NotFoundPage/NotFoundPage.d.ts +9 -2
  33. package/dist/components/NotificationBar/Notification/Notification.d.ts +30 -0
  34. package/dist/components/NotificationBar/NotificationBar.d.ts +32 -20
  35. package/dist/components/PeriodField/PeriodField.d.ts +16 -16
  36. package/dist/components/SubHeader/SubHeader.d.ts +11 -8
  37. package/dist/components/SyTextArea/SyTextArea.d.ts +2 -0
  38. package/dist/components/SyTextArea/locales.d.ts +1 -0
  39. package/dist/components/UserMenuBtn/UserMenuBtn.d.ts +2 -0
  40. package/dist/design-system-v3.js +1 -1
  41. package/dist/design-system-v3.umd.cjs +18 -18
  42. package/dist/directives/lockFocus.d.ts +1 -1
  43. package/dist/{main-DkZZpa3S.js → main-BXIMMzFS.js} +9368 -9157
  44. package/dist/style.css +1 -1
  45. package/package.json +11 -4
  46. package/src/components/Accordion/Accessibilite/AccessibilityGuide.mdx +70 -241
  47. package/src/components/Accordion/Accordion.mdx +6 -1
  48. package/src/components/Accordion/Accordion.stories.ts +88 -9
  49. package/src/components/Accordion/Accordion.vue +56 -24
  50. package/src/components/Accordion/tests/Accordion.a11y.spec.ts +46 -0
  51. package/src/components/Accordion/tests/__snapshots__/accordion.spec.ts.snap +26 -30
  52. package/src/components/Accordion/tests/accordion.spec.ts +27 -26
  53. package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.stories.ts +62 -34
  54. package/src/components/Amelipro/AmeliproPatientLogged/AmeliproPatientLogged.vue +48 -15
  55. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/AmeliproPatientLogged.spec.ts +4 -2
  56. package/src/components/Amelipro/AmeliproPatientLogged/__tests__/__snapshots__/AmeliproPatientLogged.spec.ts.snap +54 -4
  57. package/src/components/Amelipro/AmeliproPatientLogged/types.d.ts +2 -1
  58. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLogin.stories.ts +11 -5
  59. package/src/components/Amelipro/AmeliproPatientLogin/AmeliproPatientLoginForm/AmeliproPatientLoginForm.vue +8 -0
  60. package/src/components/Amelipro/AmeliproSelect/AmeliproSelect.vue +37 -1
  61. package/src/components/Amelipro/AmeliproSelect/__tests__/__snapshots__/AmeliproSelect.spec.ts.snap +2 -2
  62. package/src/components/Amelipro/AmeliproTabs/AmeliproTabs.stories.ts +94 -0
  63. package/src/components/Amelipro/AmeliproTabs/AmeliproTabs.vue +6 -2
  64. package/src/components/Amelipro/AmeliproTabs/__tests__/AmeliproTabs.spec.ts +4 -0
  65. package/src/components/Amelipro/AmeliproTabs/__tests__/__snapshots__/AmeliproTabs.spec.ts.snap +4 -2
  66. package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.stories.ts +68 -0
  67. package/src/components/Amelipro/AmeliproTextField/AmeliproTextField.vue +110 -2
  68. package/src/components/Amelipro/AmeliproTextField/__tests__/AmeliproTextField.spec.ts +14 -2
  69. package/src/components/Amelipro/AmeliproTextField/__tests__/__snapshots__/AmeliproTextField.spec.ts.snap +2 -0
  70. package/src/components/Amelipro/AmeliproTooltips/AmeliproTooltips.stories.ts +45 -0
  71. package/src/components/Amelipro/AmeliproTooltips/AmeliproTooltips.vue +6 -0
  72. package/src/components/Amelipro/StructureMenu/StructureBtn/StructureBtn.vue +13 -0
  73. package/src/components/Amelipro/StructureMenu/StructureBtn/__tests__/StructureBtn.spec.ts +6 -0
  74. package/src/components/Amelipro/StructureMenu/StructureBtn/__tests__/__snapshots__/StructureBtn.spec.ts.snap +1 -1
  75. package/src/components/Amelipro/StructureMenu/StructureItem/StructureItem.vue +14 -2
  76. package/src/components/Amelipro/StructureMenu/StructureItem/__tests__/__snapshots__/StructureItem.spec.ts.snap +22 -6
  77. package/src/components/Amelipro/StructureMenu/StructureItem/types.d.ts +1 -0
  78. package/src/components/Amelipro/StructureMenu/StructureMenu.stories.ts +93 -63
  79. package/src/components/Amelipro/StructureMenu/StructureMenu.vue +5 -0
  80. package/src/components/Amelipro/StructureMenu/StructureTabs/StructureTabs.vue +22 -1
  81. package/src/components/Amelipro/StructureMenu/StructureTabs/__tests__/StructureTabs.spec.ts +4 -0
  82. package/src/components/Amelipro/StructureMenu/StructureTabs/__tests__/__snapshots__/StructureTabs.spec.ts.snap +2 -0
  83. package/src/components/Amelipro/StructureMenu/__tests__/StructureMenu.spec.ts +12 -6
  84. package/src/components/BackBtn/tests/BackBtn.a11y.spec.ts +20 -0
  85. package/src/components/BackToTopBtn/BackToTopBtn.stories.ts +9 -0
  86. package/src/components/BackToTopBtn/tests/BackToTopBtn.a11y.spec.ts +37 -0
  87. package/src/components/Captcha/tests/Captcha.a11y.spec.ts +49 -0
  88. package/src/components/ChipList/ChipList.stories.ts +15 -0
  89. package/src/components/ChipList/ChipList.vue +20 -17
  90. package/src/components/ChipList/locales.ts +1 -0
  91. package/src/components/ChipList/tests/ChipList.a11y.spec.ts +40 -0
  92. package/src/components/CollapsibleList/Accessibilite.mdx +67 -11
  93. package/src/components/CollapsibleList/tests/CollapsibleList.a11y.spec.ts +38 -0
  94. package/src/components/ContextualMenu/ContextualMenu.stories.ts +3 -0
  95. package/src/components/ContextualMenu/tests/ContextualMenu.a11y.spec.ts +30 -0
  96. package/src/components/CookieBanner/CookieBanner.stories.ts +15 -0
  97. package/src/components/CookieBanner/CookieBanner.vue +0 -1
  98. package/src/components/CookieBanner/tests/CookieBanner.a11y.spec.ts +29 -0
  99. package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.a11y.spec.ts +46 -0
  100. package/src/components/CookiesSelection/CookiesTable/tests/CookiesTable.a11y.spec.ts +37 -0
  101. package/src/components/CookiesSelection/tests/CookiesSelection.a11y.spec.ts +58 -0
  102. package/src/components/CopyBtn/CopyBtn.stories.ts +21 -0
  103. package/src/components/CopyBtn/tests/CopyBtn.a11y.spec.ts +40 -0
  104. package/src/components/Customs/Selects/SyBtnSelect/SyBtnSelect.stories.ts +30 -0
  105. package/src/components/Customs/Selects/SyBtnSelect/SyBtnSelect.vue +1 -0
  106. package/src/components/Customs/Selects/SySelect/SySelect.stories.ts +27 -0
  107. package/src/components/Customs/Selects/SySelect/tests/SySelect.a11y.spec.ts +40 -0
  108. package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +7 -3
  109. package/src/components/Customs/SyCheckbox/SyCheckbox.vue +20 -2
  110. package/src/components/Customs/SyCheckbox/tests/SyCheckbox.a11y.spec.ts +26 -0
  111. package/src/components/Customs/SyForm/SyForm.a11y.spec.ts +33 -0
  112. package/src/components/Customs/SyIcon/SyIcon.a11y.spec.ts +37 -0
  113. package/src/components/Customs/SyIcon/SyIcon.stories.ts +5 -0
  114. package/src/components/Customs/SyPagination/tests/SyPagination.a11y.spec.ts +27 -0
  115. package/src/components/Customs/SyRadioGroup/tests/SyRadioGroup.a11y.spec.ts +30 -0
  116. package/src/components/Customs/SyTabs/SyTabs.stories.ts +33 -0
  117. package/src/components/Customs/SyTabs/tests/SyTabs.a11y.spec.ts +51 -0
  118. package/src/components/Customs/SyTextField/SyTextField.stories.ts +3 -0
  119. package/src/components/Customs/SyTextField/SyTextField.vue +13 -11
  120. package/src/components/Customs/SyTextField/tests/SyTextField.a11y.spec.ts +27 -0
  121. package/src/components/DataList/tests/DataList.a11y.spec.ts +35 -0
  122. package/src/components/DataListGroup/tests/DataListGroup.a11y.spec.ts +24 -0
  123. package/src/components/DataListItem/tests/DataListItem.a11y.spec.ts +31 -0
  124. package/src/components/DatePicker/CalendarMode/DatePicker.stories.ts +45 -0
  125. package/src/components/DatePicker/CalendarMode/DatePicker.vue +76 -30
  126. package/src/components/DatePicker/CalendarMode/tests/DatePicker.a11y.spec.ts +27 -0
  127. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +54 -0
  128. package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +79 -23
  129. package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.a11y.spec.ts +26 -0
  130. package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +12 -0
  131. package/src/components/DatePicker/DateTextInput/DateTextInput.vue +0 -8
  132. package/src/components/DatePicker/DateTextInput/tests/DateTextInput.a11y.spec.ts +27 -0
  133. package/src/components/DatePicker/composables/index.ts +0 -1
  134. package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +0 -1
  135. package/src/components/DiacriticPicker/tests/DiacriticPicker.a11y.spec.ts +46 -0
  136. package/src/components/DialogBox/DialogBox.stories.ts +5 -2
  137. package/src/components/DialogBox/DialogBox.vue +5 -0
  138. package/src/components/DialogBox/config.ts +5 -0
  139. package/src/components/DialogBox/tests/DialogBox.a11y.spec.ts +43 -0
  140. package/src/components/DownloadBtn/tests/DownloadBtn.a11y.spec.ts +26 -0
  141. package/src/components/ErrorPage/ErrorPage.stories.ts +60 -0
  142. package/src/components/ErrorPage/tests/ErrorPage.a11y.spec.ts +29 -0
  143. package/src/components/ExternalLinks/ExternalLinks.stories.ts +21 -0
  144. package/src/components/ExternalLinks/tests/ExternalLinks.a11y.spec.ts +39 -0
  145. package/src/components/FileList/FileList.stories.ts +3 -0
  146. package/src/components/FileList/tests/FileList.a11y.spec.ts +41 -0
  147. package/src/components/FilePreview/FilePreview.stories.ts +3 -0
  148. package/src/components/FilePreview/tests/FilePreview.a11y.spec.ts +47 -0
  149. package/src/components/FileUpload/tests/FileUpload.a11y.spec.ts +25 -0
  150. package/src/components/FilterInline/FilterInline.stories.ts +15 -0
  151. package/src/components/FilterInline/FilterInline.vue +8 -4
  152. package/src/components/FilterInline/tests/FilterInline.a11y.spec.ts +36 -0
  153. package/src/components/FilterInline/tests/__snapshots__/FilterInline.spec.ts.snap +0 -3
  154. package/src/components/FilterSideBar/Accessibilite.stories.ts +4 -0
  155. package/src/components/FilterSideBar/FilterSideBar.stories.ts +33 -11
  156. package/src/components/FilterSideBar/FilterSideBar.vue +146 -83
  157. package/src/components/FilterSideBar/locales.ts +6 -0
  158. package/src/components/FilterSideBar/tests/FilterSideBar.a11y.spec.ts +59 -0
  159. package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +2 -2
  160. package/src/components/FooterBar/Accessibilite.mdx +67 -11
  161. package/src/components/FooterBar/FooterBar.vue +1 -1
  162. package/src/components/FooterBar/config.ts +2 -2
  163. package/src/components/FooterBar/tests/FooterBar.a11y.spec.ts +31 -0
  164. package/src/components/FooterBar/tests/FooterBarConfig.spec.ts +1 -1
  165. package/src/components/FooterBar/tests/__snapshots__/FooterBar.spec.ts.snap +1 -1
  166. package/src/components/FranceConnectBtn/tests/FranceConnectBtn.a11y.spec.ts +25 -0
  167. package/src/components/HeaderBar/HeaderBar.stories.ts +21 -0
  168. package/src/components/HeaderBar/HeaderBar.vue +47 -40
  169. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderBurgerMenu.stories.ts +12 -0
  170. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.stories.ts +3 -0
  171. package/src/components/HeaderBar/HeaderBurgerMenu/HeaderSubMenu/HeaderSubMenu.vue +4 -0
  172. package/src/components/HeaderBar/HeaderBurgerMenu/menu.scss +17 -7
  173. package/src/components/HeaderBar/consts.scss +0 -1
  174. package/src/components/HeaderBar/tests/HeaderBar.a11y.spec.ts +33 -0
  175. package/src/components/HeaderBar/tests/__snapshots__/HeaderBar.spec.ts.snap +58 -57
  176. package/src/components/HeaderLoading/tests/HeaderLoading.a11y.spec.ts +25 -0
  177. package/src/components/HeaderNavigationBar/HeaderNavigationBar.stories.ts +42 -0
  178. package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +4 -0
  179. package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +6 -2
  180. package/src/components/HeaderNavigationBar/tests/HeaderNavigationBar.a11y.spec.ts +45 -0
  181. package/src/components/HeaderToolbar/HeaderToolbar.stories.ts +6 -0
  182. package/src/components/HeaderToolbar/HeaderToolbar.vue +0 -3
  183. package/src/components/HeaderToolbar/tests/HeaderToolbar.a11y.spec.ts +25 -0
  184. package/src/components/LangBtn/LangBtn.stories.ts +12 -0
  185. package/src/components/LangBtn/tests/LangBtn.a11y.spec.ts +25 -0
  186. package/src/components/Logo/tests/Logo.a11y.spec.ts +20 -0
  187. package/src/components/LogoBrandSection/tests/LogoBrandSection.a11y.spec.ts +38 -0
  188. package/src/components/LunarCalendar/tests/LunarCalendar.a11y.spec.ts +31 -0
  189. package/src/components/MaintenancePage/MaintenancePage.stories.ts +46 -0
  190. package/src/components/MaintenancePage/MaintenancePage.vue +7 -5
  191. package/src/components/MaintenancePage/tests/MaintenancePage.a11y.spec.ts +21 -0
  192. package/src/components/NirField/NirField.stories.ts +6 -0
  193. package/src/components/NirField/tests/NirField.a11y.spec.ts +32 -0
  194. package/src/components/NotFoundPage/NotFoundPage.stories.ts +56 -0
  195. package/src/components/NotFoundPage/NotFoundPage.vue +7 -5
  196. package/src/components/NotFoundPage/tests/NotFoundPage.a11y.spec.ts +31 -0
  197. package/src/components/NotificationBar/Notification/Notification.vue +203 -0
  198. package/src/components/NotificationBar/NotificationBar.stories.ts +151 -140
  199. package/src/components/NotificationBar/NotificationBar.vue +148 -202
  200. package/src/components/NotificationBar/config.ts +1 -1
  201. package/src/components/NotificationBar/tests/NotificationBar.a11y.spec.ts +66 -0
  202. package/src/components/NotificationBar/tests/NotificationBar.spec.ts +173 -177
  203. package/src/components/NotificationBar/tests/__snapshots__/NotificationBar.spec.ts.snap +67 -29
  204. package/src/components/PageContainer/tests/PageContainer.a11y.spec.ts +27 -0
  205. package/src/components/PaginatedTable/PaginatedTable.stories.ts +6 -0
  206. package/src/components/PaginatedTable/PaginatedTable.vue +48 -1
  207. package/src/components/PaginatedTable/tests/PaginatedTable.a11y.spec.ts +43 -0
  208. package/src/components/PasswordField/PasswordField.stories.ts +39 -0
  209. package/src/components/PasswordField/tests/PasswordField.a11y.spec.ts +26 -0
  210. package/src/components/PeriodField/tests/PeriodField.a11y.spec.ts +31 -0
  211. package/src/components/PhoneField/PhoneField.stories.ts +51 -0
  212. package/src/components/PhoneField/tests/PhoneField.a11y.spec.ts +34 -0
  213. package/src/components/RangeField/tests/RangeField.a11y.spec.ts +32 -0
  214. package/src/components/RatingPicker/RatingPicker.stories.ts +21 -0
  215. package/src/components/SkipLink/Accessibilite.mdx +59 -13
  216. package/src/components/SkipLink/SkipLink.stories.ts +41 -8
  217. package/src/components/SubHeader/SubHeader.stories.ts +178 -92
  218. package/src/components/SubHeader/SubHeader.vue +84 -71
  219. package/src/components/SubHeader/config.ts +1 -1
  220. package/src/components/SyAlert/SyAlert.vue +1 -1
  221. package/src/components/SyTextArea/SyTextArea.stories.ts +40 -0
  222. package/src/components/SyTextArea/SyTextArea.vue +13 -0
  223. package/src/components/SyTextArea/locales.ts +1 -0
  224. package/src/components/SyTextArea/tests/SyTextArea.spec.ts +42 -0
  225. package/src/components/TableToolbar/TableToolbar.stories.ts +3 -0
  226. package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +70 -1
  227. package/src/components/Tables/SyTable/FilterRules.stories.ts +12 -0
  228. package/src/components/Tables/SyTable/SyTable.stories.ts +69 -0
  229. package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +31 -1
  230. package/src/components/UserMenuBtn/UserMenuBtn.vue +2 -1
  231. package/src/components/UserMenuBtn/tests/UserMenuBtn.a11y.spec.ts +31 -0
  232. package/src/directives/lockFocus.ts +12 -2
  233. package/src/stories/GuideDuDev/ClassesUtilitaires/DataUtilities.mdx +6 -6
  234. package/src/stories/GuideDuDev/ClassesUtilitaires/DomBrowserUtilities.mdx +52 -59
  235. package/src/stories/GuideDuDev/ClassesUtilitaires/FormattingUtilities.mdx +9 -9
  236. package/src/stories/GuideDuDev/ClassesUtilitaires/StorageUtilities.mdx +2 -2
  237. package/src/stories/GuideDuDev/ClassesUtilitaires/ValidationRules.mdx +3 -3
  238. package/src/stories/GuideDuDev/ClassesUtilitaires/ValidationUtilities.mdx +11 -11
  239. package/src/stories/GuideDuDev/ClassesUtilitaires/index.mdx +15 -15
  240. package/src/stories/GuideDuDev/MigrationDepuisBridge.mdx +1 -1
  241. package/src/stories/GuideDuDev/moduleDeNotification.mdx +1 -1
  242. package/src/stories/accessibility/AccessibilityGuideLayout.mdx +87 -0
  243. package/src/stories/styles/accessibility-guide.css +153 -0
  244. package/dist/components/DatePicker/composables/useIconState.d.ts +0 -17
  245. package/src/components/Amelipro/AmeliproTextField/tests/__snapshots__/AmeliproTextField.spec.ts.snap +0 -162
  246. package/src/components/DatePicker/composables/tests/useIconState.spec.ts +0 -130
  247. package/src/components/DatePicker/composables/useIconState.ts +0 -53
  248. 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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase'
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/synpase-bridge` a été remplacé par `@cnamts/synapse`.
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/synpase'
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
- };