@sberbusiness/triplex-next 0.1.4 → 0.1.5

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 (291) hide show
  1. package/README.md +145 -0
  2. package/chunks/AlertProcessSpoiler-Dz7CKApv.js +39 -0
  3. package/chunks/Card.module-BVAy3tJd.js +17 -0
  4. package/chunks/DropdownListItem-CwqothNf.js +56 -0
  5. package/chunks/DropdownMobile.module-zLTfuu5W.js +19 -0
  6. package/chunks/Footer.module-C8ediOIN.js +11 -0
  7. package/chunks/FormFieldInput-Cmc0beZ5.js +62 -0
  8. package/chunks/HeaderLayoutSidebar.module-DUesMumi.js +9 -0
  9. package/chunks/HeaderTabs.module-B8b_Vmmv.js +9 -0
  10. package/chunks/HeaderTitle.module-CS0vKAYw.js +9 -0
  11. package/chunks/ListItemControlsButton-Bn_onrHQ.js +43 -0
  12. package/chunks/ListItemTail.module-8r8-WRy-.js +12 -0
  13. package/chunks/ListMasterFooter.module-Bylyf04G.js +10 -0
  14. package/chunks/Overlay.module-BfeGcilV.js +18 -0
  15. package/chunks/Page.module-DI3KI2pW.js +16 -0
  16. package/chunks/TabsExtended.module-De1gs7fV.js +13 -0
  17. package/chunks/TabsExtendedUtils-CZCrojKY.js +23 -0
  18. package/chunks/TooltipDesktop.module-0Me4J_t3.js +19 -0
  19. package/chunks/index-1QUfI5kD.js +931 -0
  20. package/chunks/utils-DUlFnyF3.js +36 -0
  21. package/chunks/vendor-CF2m175I.js +5891 -0
  22. package/components/Alert/AlertContext/AlertContext.js +52 -0
  23. package/components/Alert/AlertProcess/AlertProcess.js +60 -0
  24. package/components/Alert/AlertProcess/AlertProcessContext.js +10 -0
  25. package/components/Alert/AlertProcess/components/AlertProcessSpoiler.js +11 -0
  26. package/components/Alert/AlertTypeUtils.js +12 -0
  27. package/components/Alert/EAlertType.js +5 -0
  28. package/components/Alert/index.js +11 -0
  29. package/components/Body/Body.js +12 -0
  30. package/components/Body/index.js +5 -0
  31. package/components/Button/Button.js +14 -0
  32. package/components/Button/ButtonBase.js +8 -0
  33. package/components/Button/ButtonDropdown.js +26 -0
  34. package/components/Button/ButtonDropdownExtended.js +9 -0
  35. package/components/Button/ButtonIcon.js +29 -0
  36. package/components/Button/enums.js +7 -0
  37. package/components/Button/index.js +16 -0
  38. package/components/Card/CardAction.js +109 -0
  39. package/components/Card/CardStatic.js +34 -0
  40. package/components/Card/components/CardContent/CardContent.js +31 -0
  41. package/components/Card/components/CardContent/components/CardContentBody.js +9 -0
  42. package/components/Card/components/CardContent/components/CardContentFooter.js +9 -0
  43. package/components/Card/components/CardContent/components/CardContentHeader.js +9 -0
  44. package/components/Card/components/CardMedia.js +12 -0
  45. package/components/Card/enums.js +7 -0
  46. package/components/Card/index.js +11 -0
  47. package/components/Card/types.js +2 -0
  48. package/components/Card/utils.js +14 -0
  49. package/components/Checkbox/Checkbox.js +36 -0
  50. package/components/Checkbox/CheckboxXGroup.js +20 -0
  51. package/components/Checkbox/CheckboxYGroup.js +13 -0
  52. package/components/Checkbox/enum.js +5 -0
  53. package/components/Checkbox/index.js +11 -0
  54. package/components/Col/Col.js +183 -0
  55. package/components/Col/index.js +5 -0
  56. package/components/DesignTokens/DesignTokenUtils.js +82 -0
  57. package/components/DesignTokens/DesignTokensComponents.js +111 -0
  58. package/components/DesignTokens/DesignTokensComponentsThemeDark.js +111 -0
  59. package/components/DesignTokens/DesignTokensCore.js +466 -0
  60. package/components/DesignTokens/DesignTokensCoreThemeDark.js +6 -0
  61. package/components/DesignTokens/GetTokensValueByTheme.js +11 -0
  62. package/components/DesignTokens/components/AlertContext.js +20 -0
  63. package/components/DesignTokens/components/AlertProcess.js +23 -0
  64. package/components/DesignTokens/components/Button.js +107 -0
  65. package/components/DesignTokens/components/Card.js +53 -0
  66. package/components/DesignTokens/components/Checkbox.js +35 -0
  67. package/components/DesignTokens/components/Dropdown.js +11 -0
  68. package/components/DesignTokens/components/DropdownList.js +20 -0
  69. package/components/DesignTokens/components/DropdownMobile.js +23 -0
  70. package/components/DesignTokens/components/DropdownMobileList.js +11 -0
  71. package/components/DesignTokens/components/FooterPage.js +9 -0
  72. package/components/DesignTokens/components/FormField.js +50 -0
  73. package/components/DesignTokens/components/HeaderPage.js +9 -0
  74. package/components/DesignTokens/components/Link.js +20 -0
  75. package/components/DesignTokens/components/ListItem.js +20 -0
  76. package/components/DesignTokens/components/ListItemControlsButton.js +11 -0
  77. package/components/DesignTokens/components/ListMaster.js +23 -0
  78. package/components/DesignTokens/components/Loader.js +11 -0
  79. package/components/DesignTokens/components/LoaderWidget.js +17 -0
  80. package/components/DesignTokens/components/Overlay.js +11 -0
  81. package/components/DesignTokens/components/Page.js +9 -0
  82. package/components/DesignTokens/components/Pagination.js +23 -0
  83. package/components/DesignTokens/components/Radio.js +41 -0
  84. package/components/DesignTokens/components/SegmentedControl.js +20 -0
  85. package/components/DesignTokens/components/SegmentedControlSegment.js +158 -0
  86. package/components/DesignTokens/components/Skeleton.js +20 -0
  87. package/components/DesignTokens/components/Tabs.js +26 -0
  88. package/components/DesignTokens/components/Tooltip.js +40 -0
  89. package/components/DesignTokens/components/Typography.js +41 -0
  90. package/components/DesignTokens/components/UploadZone.js +23 -0
  91. package/components/DesignTokens/components/index.js +90 -0
  92. package/components/DesignTokens/index.js +11 -0
  93. package/components/DesignTokens/types/DesignTokenTypes.js +2 -0
  94. package/components/DesignTokens/types/DesignTokensTypes.js +134 -0
  95. package/components/Dropdown/Dropdown.js +10 -0
  96. package/components/Dropdown/DropdownListContext.js +10 -0
  97. package/components/Dropdown/desktop/DropdownDesktop.js +21 -0
  98. package/components/Dropdown/desktop/DropdownList.js +97 -0
  99. package/components/Dropdown/desktop/DropdownListItem.js +9 -0
  100. package/components/Dropdown/enums.js +8 -0
  101. package/components/Dropdown/index.js +32 -0
  102. package/components/Dropdown/mobile/DropdownMobile.js +22 -0
  103. package/components/Dropdown/mobile/DropdownMobileBody.js +12 -0
  104. package/components/Dropdown/mobile/DropdownMobileClose.js +14 -0
  105. package/components/Dropdown/mobile/DropdownMobileFooter.js +12 -0
  106. package/components/Dropdown/mobile/DropdownMobileHeader.js +15 -0
  107. package/components/Dropdown/mobile/DropdownMobileInner.js +56 -0
  108. package/components/Dropdown/mobile/DropdownMobileInput.js +12 -0
  109. package/components/Dropdown/mobile/DropdownMobileList.js +21 -0
  110. package/components/Dropdown/mobile/DropdownMobileListItem.js +37 -0
  111. package/components/Dropdown/mobile/index.js +21 -0
  112. package/components/Footer/Footer.js +29 -0
  113. package/components/Footer/components/FooterDescription.js +20 -0
  114. package/components/Footer/components/FooterDescriptionContent.js +12 -0
  115. package/components/Footer/components/FooterDescriptionControls.js +12 -0
  116. package/components/Footer/index.js +11 -0
  117. package/components/FormField/FormField.js +76 -0
  118. package/components/FormField/FormFieldContext.js +27 -0
  119. package/components/FormField/FormFieldDescriptionContext.js +13 -0
  120. package/components/FormField/components/FormFieldClear.js +29 -0
  121. package/components/FormField/components/FormFieldCounter.js +16 -0
  122. package/components/FormField/components/FormFieldDescription.js +16 -0
  123. package/components/FormField/components/FormFieldInput.js +9 -0
  124. package/components/FormField/components/FormFieldLabel.js +42 -0
  125. package/components/FormField/components/FormFieldMaskedInput.js +95 -0
  126. package/components/FormField/components/FormFieldMaskedInputPresets.js +168 -0
  127. package/components/FormField/components/FormFieldPostfix.js +24 -0
  128. package/components/FormField/components/FormFieldPrefix.js +24 -0
  129. package/components/FormField/components/FormFieldTextarea.js +42 -0
  130. package/components/FormField/consts.js +5 -0
  131. package/components/FormField/enums.js +5 -0
  132. package/components/FormField/index.js +25 -0
  133. package/components/FormGroup/FormGroup.js +8 -0
  134. package/components/FormGroup/index.js +5 -0
  135. package/components/Gap/Gap.js +8 -0
  136. package/components/Gap/index.js +5 -0
  137. package/components/Header/Header.js +40 -0
  138. package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebar.js +20 -0
  139. package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebarContent.js +12 -0
  140. package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebarSidebar.js +12 -0
  141. package/components/Header/components/HeaderSubheader/HeaderSubheader.js +22 -0
  142. package/components/Header/components/HeaderTabs/HeaderTabs.js +20 -0
  143. package/components/Header/components/HeaderTabs/HeaderTabsContent.js +12 -0
  144. package/components/Header/components/HeaderTabs/HeaderTabsControls.js +12 -0
  145. package/components/Header/components/HeaderTitle/HeaderTitle.js +20 -0
  146. package/components/Header/components/HeaderTitle/HeaderTitleContent.js +12 -0
  147. package/components/Header/components/HeaderTitle/HeaderTitleControls.js +12 -0
  148. package/components/Header/index.js +25 -0
  149. package/components/Link/Link.js +72 -0
  150. package/components/Link/index.js +5 -0
  151. package/components/List/List.js +23 -0
  152. package/components/List/ListSortable.js +75 -0
  153. package/components/List/components/ListEmptyState.js +13 -0
  154. package/components/List/components/ListItem.js +21 -0
  155. package/components/List/components/ListItemContent.js +27 -0
  156. package/components/List/components/ListItemContext.js +10 -0
  157. package/components/List/components/ListItemControls.js +13 -0
  158. package/components/List/components/ListItemControlsButton.js +10 -0
  159. package/components/List/components/ListItemControlsButtonDropdown.js +22 -0
  160. package/components/List/components/ListItemLoading.js +13 -0
  161. package/components/List/components/ListItemSelectable.js +46 -0
  162. package/components/List/components/ListItemTable.js +22 -0
  163. package/components/List/components/ListItemTailLeft.js +24 -0
  164. package/components/List/components/ListItemTailRight.js +24 -0
  165. package/components/List/components/ListSortableItem.js +21 -0
  166. package/components/List/components/ListSortableItemControls.js +21 -0
  167. package/components/List/components/ListSortableItemTarget.js +28 -0
  168. package/components/List/index.js +35 -0
  169. package/components/ListMaster/ListMaster.js +21 -0
  170. package/components/ListMaster/components/ListMasterBody.js +19 -0
  171. package/components/ListMaster/components/ListMasterChipGroup.js +18 -0
  172. package/components/ListMaster/components/ListMasterFooter.js +26 -0
  173. package/components/ListMaster/components/ListMasterFooterControls.js +12 -0
  174. package/components/ListMaster/components/ListMasterFooterDescription.js +12 -0
  175. package/components/ListMaster/components/ListMasterHeader.js +40 -0
  176. package/components/ListMaster/components/SelectionControls.js +22 -0
  177. package/components/ListMaster/index.js +19 -0
  178. package/components/Loader/LoaderMiddle/LoaderMiddle.js +22 -0
  179. package/components/Loader/LoaderSmall/LoaderSmall.js +48 -0
  180. package/components/Loader/LoaderSmall/enum.js +6 -0
  181. package/components/Loader/index.js +10 -0
  182. package/components/LoaderWidget/LoaderWidget.js +28 -0
  183. package/components/LoaderWidget/index.js +5 -0
  184. package/components/MediaWidth/MediaBetweenWidth.js +9 -0
  185. package/components/MediaWidth/MediaMaxWidth.js +6 -0
  186. package/components/MediaWidth/MediaMinWidth.js +6 -0
  187. package/components/MediaWidth/MediaWidth.js +10 -0
  188. package/components/MediaWidth/index.js +13 -0
  189. package/components/MediaWidth/useMatchMedia.js +14 -0
  190. package/components/MobileView/MobileView.js +8 -0
  191. package/components/MobileView/index.js +5 -0
  192. package/components/Overlay/Overlay.js +57 -0
  193. package/components/Overlay/OverlayBase.js +28 -0
  194. package/components/Overlay/OverlayMask.js +19 -0
  195. package/components/Overlay/OverlayPanel.js +46 -0
  196. package/components/Page/Page.js +23 -0
  197. package/components/Page/components/BodyPage.js +11 -0
  198. package/components/Page/components/FooterPage.js +39 -0
  199. package/components/Page/components/HeaderPage.js +42 -0
  200. package/components/Page/components/enums.js +6 -0
  201. package/components/Page/index.js +8 -0
  202. package/components/Pagination/Pagination.js +22 -0
  203. package/components/Pagination/components/PaginationExtended.js +22 -0
  204. package/components/Pagination/components/PaginationNavigation.js +67 -0
  205. package/components/Pagination/components/PaginationNavigationButton.js +29 -0
  206. package/components/Pagination/components/PaginationNavigationExtended.js +13 -0
  207. package/components/Pagination/components/PaginationNavigationExtendedItem.js +10 -0
  208. package/components/Pagination/components/PaginationPageButton.js +29 -0
  209. package/components/Pagination/components/PaginationPageEllipsis.js +13 -0
  210. package/components/Pagination/components/PaginationSelect.js +35 -0
  211. package/components/Pagination/enums.js +5 -0
  212. package/components/Pagination/index.js +23 -0
  213. package/components/Pagination/utils/paginationUtils.js +34 -0
  214. package/components/Portal/Portal.js +6 -0
  215. package/components/Radio/Radio.js +30 -0
  216. package/components/Radio/RadioXGroup.js +20 -0
  217. package/components/Radio/RadioYGroup.js +13 -0
  218. package/components/Radio/enum.js +5 -0
  219. package/components/Radio/index.js +11 -0
  220. package/components/Row/Row.js +14 -0
  221. package/components/Row/index.js +5 -0
  222. package/components/SegmentedControl/SegmentedControl.js +10 -0
  223. package/components/SegmentedControl/SegmentedControlSegment.js +11 -0
  224. package/components/SegmentedControl/enums.js +7 -0
  225. package/components/SegmentedControl/index.js +11 -0
  226. package/components/SegmentedControl/types.js +2 -0
  227. package/components/Skeleton/Skeleton.js +22 -0
  228. package/components/Skeleton/enums.js +5 -0
  229. package/components/Skeleton/index.js +7 -0
  230. package/components/SwipeableArea/SwipeableArea.js +140 -0
  231. package/components/SwipeableArea/index.js +5 -0
  232. package/components/TabsExtended/TabsExtended.js +38 -0
  233. package/components/TabsExtended/TabsExtendedContext.js +17 -0
  234. package/components/TabsExtended/TabsExtendedUtils.js +8 -0
  235. package/components/TabsExtended/components/TabsExtendedContent.js +20 -0
  236. package/components/TabsExtended/components/TabsExtendedDropdownWrapper.js +26 -0
  237. package/components/TabsExtended/components/TabsExtendedTab.js +38 -0
  238. package/components/TabsExtended/components/TabsExtendedTabButton.js +22 -0
  239. package/components/TabsExtended/components/TabsExtendedTabContext.js +8 -0
  240. package/components/TabsExtended/components/TabsExtendedTabsWrapper.js +70 -0
  241. package/components/TabsExtended/enums.js +5 -0
  242. package/components/TabsExtended/index.js +7 -0
  243. package/components/TextField/MaskedField.js +92 -0
  244. package/components/TextField/TextField.js +92 -0
  245. package/components/TextField/TextFieldBase.js +92 -0
  246. package/components/TextField/index.js +6 -0
  247. package/components/ThemeProvider/ETriplexNextTheme.js +5 -0
  248. package/components/ThemeProvider/ThemeProvider.js +28 -0
  249. package/components/ThemeProvider/ThemeProviderContext.js +14 -0
  250. package/components/ThemeProvider/components/ThemeProviderView.js +36 -0
  251. package/components/ThemeProvider/index.js +11 -0
  252. package/components/ThemeProvider/useToken.js +10 -0
  253. package/components/Tooltip/Tooltip.js +68 -0
  254. package/components/Tooltip/TootlipContext.js +18 -0
  255. package/components/Tooltip/components/common/TooltipBody.js +16 -0
  256. package/components/Tooltip/components/common/TooltipLink.js +34 -0
  257. package/components/Tooltip/components/common/TooltipTarget.js +19 -0
  258. package/components/Tooltip/components/common/TooltipXButton.js +16 -0
  259. package/components/Tooltip/components/desktop/TooltipDesktop.js +69 -0
  260. package/components/Tooltip/components/desktop/components/TooltipDesktopBase.js +241 -0
  261. package/components/Tooltip/components/desktop/components/TooltipDesktopTip.js +29 -0
  262. package/components/Tooltip/components/mobile/TooltipMobile.js +57 -0
  263. package/components/Tooltip/components/mobile/components/TooltipMobileCloseButton.js +14 -0
  264. package/components/Tooltip/components/mobile/components/TooltipMobileHeader.js +18 -0
  265. package/components/Tooltip/enums.js +14 -0
  266. package/components/Tooltip/index.js +8 -0
  267. package/components/Tooltip/types.js +2 -0
  268. package/components/Tooltip/utils/Positioning.js +124 -0
  269. package/components/Tooltip/utils/useTooltipTheme.js +31 -0
  270. package/components/Typography/Caption.js +54 -0
  271. package/components/Typography/Text.js +62 -0
  272. package/components/Typography/Title.js +58 -0
  273. package/components/Typography/enums.js +11 -0
  274. package/components/Typography/index.js +17 -0
  275. package/components/Typography/types.js +2 -0
  276. package/components/Typography/utils.js +6 -0
  277. package/components/UploadZone/UploadZone.js +10 -0
  278. package/components/UploadZone/components/UploadZoneInput.js +143 -0
  279. package/components/UploadZone/index.js +6 -0
  280. package/components/index.js +256 -0
  281. package/consts/IndentConst.js +2 -0
  282. package/enums/EFocusSource.js +5 -0
  283. package/generated/refTokenTypes.js +5 -0
  284. package/helpers/breakpoints.js +5 -0
  285. package/helpers/less/breakpoints.less +9 -0
  286. package/helpers/less/z-indexes.less +39 -0
  287. package/index.d.ts +4406 -0
  288. package/index.js +257 -0
  289. package/package.json +32 -94
  290. package/styles/triplex-next.css +333 -0
  291. package/utils/keyboard.js +50 -0
package/README.md ADDED
@@ -0,0 +1,145 @@
1
+ # Triplex-next
2
+
3
+ ## 🚀 Установка
4
+
5
+ ```bash
6
+ npm install triplex-next
7
+ ```
8
+
9
+ ## 🔤 Шрифты
10
+
11
+ Компоненты Typography используют шрифты SBSansDisplay и SBSansText. Для корректного отображения необходимо подключить шрифты в вашем проекте:
12
+
13
+ ```css
14
+ @font-face {
15
+ font-family: 'SBSansDisplay';
16
+ src: url('node_modules/@sberbusiness/triplex-next/public/assets/fonts/SBSansDisplay-Regular.woff2') format('woff2');
17
+ font-weight: normal;
18
+ font-style: normal;
19
+ }
20
+
21
+ @font-face {
22
+ font-family: 'SBSansDisplayMedium';
23
+ src: url('node_modules/@sberbusiness/triplex-next/public/assets/fonts/SBSansDisplay-Medium.woff2') format('woff2');
24
+ font-weight: normal;
25
+ font-style: normal;
26
+ }
27
+
28
+ @font-face {
29
+ font-family: 'SBSansDisplaySemibold';
30
+ src: url('node_modules/@sberbusiness/triplex-next/public/assets/fonts/SBSansDisplay-SemiBold.woff2') format('woff2');
31
+ font-weight: normal;
32
+ font-style: normal;
33
+ }
34
+
35
+ @font-face {
36
+ font-family: 'SBSansDisplayBold';
37
+ src: url('node_modules/@sberbusiness/triplex-next/public/assets/fonts/SBSansDisplay-Bold.woff2') format('woff2');
38
+ font-weight: normal;
39
+ font-style: normal;
40
+ }
41
+
42
+ @font-face {
43
+ font-family: 'SBSansText';
44
+ src: url('node_modules/@sberbusiness/triplex-next/public/assets/fonts/SBSansText-Regular.woff2') format('woff2');
45
+ font-weight: normal;
46
+ font-style: normal;
47
+ }
48
+
49
+ @font-face {
50
+ font-family: 'SBSansTextSemibold';
51
+ src: url('node_modules/@sberbusiness/triplex-next/public/assets/fonts/SBSansText-Semibold.woff2') format('woff2');
52
+ font-weight: normal;
53
+ font-style: normal;
54
+ }
55
+ ```
56
+
57
+
58
+ ---
59
+
60
+ ## 📁 Структура
61
+
62
+ ```
63
+ src/
64
+ components/
65
+ MyComponent/
66
+ MyComponent.tsx
67
+ MyComponent.module.css
68
+ index.ts
69
+ __tests__/MyComponent.test.tsx
70
+ ```
71
+
72
+ > Каждый компонент должен иметь собственный `index.ts`, чтобы поддерживать генерацию `exports` в `package.json`.
73
+
74
+ ---
75
+
76
+ ## 📜 Скрипты
77
+
78
+ | Скрипт | Назначение |
79
+ |-------|------------|
80
+ | `npm run build` | Сборка компонентов и `style.css` в `dist/` |
81
+ | `npm run storybook` | Локальный просмотр компонентов |
82
+ | `npm run storybook:build` | Сборка Storybook в `storybook-static/` |
83
+
84
+ ---
85
+
86
+ ## 🧱 Добавление нового компонента
87
+
88
+ 1. Создай папку:
89
+
90
+ ```bash
91
+ src/components/Alert/
92
+ ```
93
+
94
+ 2. Добавь файлы:
95
+
96
+ ```
97
+ Alert.tsx
98
+ styles/Alert.module.less
99
+ index.ts ← обязательный!
100
+ ```
101
+
102
+ 3. Зарегистрируй в `src/index.ts`:
103
+
104
+ ```ts
105
+ export * from './components/Alert';
106
+ ```
107
+
108
+ ---
109
+ ## 🧪 Тестирование
110
+
111
+ Проект использует [Vitest](https://vitest.dev/) для юнит-тестирования и [Testing Library](https://testing-library.com/docs/react-testing-library/intro/) для тестирования компонентов.
112
+
113
+ Chromatic для визуального тестирования Storybook-компонентов.
114
+
115
+ 🧪 Как работает
116
+ • При каждом пуше в ветки main или release-*, Chromatic запускает визуальные тесты.
117
+ • Chromatic делает скриншоты всех stories, сравнивает с предыдущими, и показывает отличия (если есть).
118
+ • ✅ Если изменений нет — билд считается успешным.
119
+ • 🔍 Если есть изменения — нужен review и approval в интерфейсе Chromatic.
120
+
121
+
122
+
123
+ 🔔 Уведомления
124
+ • Chromatic отправляет нотификации в Telegram (через Webhook), если:
125
+ • билд прошёл ✅
126
+ • или есть изменения/ошибки ❗
127
+
128
+
129
+
130
+ 🚀 Как одобрить изменения
131
+ 1. Перейди в свой Chromatic проект
132
+ 2. Найди последний билд в списке.
133
+ 3. Нажми Review changes
134
+ 4. Просмотри отличия → Approve (если всё ок)
135
+
136
+
137
+ ### Как запустить тесты локально
138
+
139
+ ```bash
140
+ npm run test-e2e # Запуск e2e тестов
141
+ npm run test-unit # Запуск unit тестов
142
+ npm run test-unit:watch # Запуск unit тестов в режиме наблюдения
143
+ npm run test-unit:coverage # Запуск unit тестов и генерация отчёта о покрытии
144
+ npm run chromatic # Запуск скриншот тестов. В директории должен быть файл .env.local с ключем CHROMATIC_PROJECT_TOKEN=***
145
+ ```
@@ -0,0 +1,39 @@
1
+ import { jsxs as p, jsx as t } from "react/jsx-runtime";
2
+ import { useContext as d, useEffect as i } from "react";
3
+ import { CaretdownStrokeSrvIcon16 as _ } from "@sberbusiness/icons-next";
4
+ import { ButtonIcon as m } from "../components/Button/ButtonIcon.js";
5
+ import { AlertProcessContext as x } from "../components/Alert/AlertProcess/AlertProcessContext.js";
6
+ import { c as n } from "./vendor-CF2m175I.js";
7
+ const y = "alertProcess__d44bde98", f = "withSpoiler__4a26c9e1", u = "themeIcon__eadc94ae", T = "alertTypeError__ac3dd7db", B = "alertTypeInfo__a8f13265", C = "alertTypeWarning__6d636865", S = "alertTypeSystem__05afbad8", h = "alertTypeFeature__d0a560c7", b = "alertProcessContentBlock__06451739", I = "closeButton__f5534704", P = "expandableContent__5a56a04b", g = "expanded__cf466297", k = "expandButton__b642ccef", e = {
8
+ alertProcess: y,
9
+ withSpoiler: f,
10
+ themeIcon: u,
11
+ alertTypeError: T,
12
+ alertTypeInfo: B,
13
+ alertTypeWarning: C,
14
+ alertTypeSystem: S,
15
+ alertTypeFeature: h,
16
+ alertProcessContentBlock: b,
17
+ closeButton: I,
18
+ expandableContent: P,
19
+ expanded: g,
20
+ expandButton: k
21
+ }, v = ({ children: s, open: r, onOpen: o, ...l }) => {
22
+ const { setHasSpoiler: a } = d(x);
23
+ i(() => (a(!0), () => {
24
+ a(!1);
25
+ }), [a]);
26
+ const c = () => {
27
+ o == null || o(!r);
28
+ };
29
+ return /* @__PURE__ */ p("div", { className: e.spoiler, children: [
30
+ /* @__PURE__ */ t("div", { className: n(e.expandableContent, { [e.expanded]: r }), ...l, children: s }),
31
+ /* @__PURE__ */ t("div", { className: n(e.expandButton, { [e.expanded]: r }), children: /* @__PURE__ */ t(m, { onClick: c, children: /* @__PURE__ */ t(_, { paletteIndex: 5 }) }) })
32
+ ] });
33
+ };
34
+ v.displayName = "AlertProcessSpoiler";
35
+ export {
36
+ v as A,
37
+ e as s
38
+ };
39
+ //# sourceMappingURL=AlertProcessSpoiler-Dz7CKApv.js.map
@@ -0,0 +1,17 @@
1
+ const n = "card__7710d43d", d = "roundingMD__dad36467", a = "roundingSM__f93a5862", o = "general__43b815ca", c = "secondary__0409ea98", r = "cardMedia__55dba279", t = "cardContent__901b6360", e = "paddingMD__e9fdc375", _ = "paddingSM__adb4d26b", s = "cardContentHeader__a0dafbc4", g = "cardContentFooter__ba241c99", i = {
2
+ card: n,
3
+ roundingMD: d,
4
+ roundingSM: a,
5
+ general: o,
6
+ secondary: c,
7
+ cardMedia: r,
8
+ cardContent: t,
9
+ paddingMD: e,
10
+ paddingSM: _,
11
+ cardContentHeader: s,
12
+ cardContentFooter: g
13
+ };
14
+ export {
15
+ i as c
16
+ };
17
+ //# sourceMappingURL=Card.module-BVAy3tJd.js.map
@@ -0,0 +1,56 @@
1
+ import { jsx as E } from "react/jsx-runtime";
2
+ import c, { useEffect as u } from "react";
3
+ import { EVENT_KEY_CODES as m } from "../utils/keyboard.js";
4
+ import { c as v } from "./vendor-CF2m175I.js";
5
+ const D = "dropdownList__fb7ca20e", y = "dropdownListItem__74e4464f", I = "active__93f841b9", l = "selected__b9f8ab19", n = {
6
+ dropdownList: D,
7
+ dropdownListItem: y,
8
+ active: I,
9
+ selected: l,
10
+ "dropdownList-sm": "dropdownList-sm__ac5911e1",
11
+ "dropdownList-md": "dropdownList-md__c6817f72",
12
+ "dropdownList-lg": "dropdownList-lg__a32d313e"
13
+ }, N = [m.SPACE, m.ENTER], b = c.forwardRef(
14
+ ({
15
+ active: d,
16
+ keyCodesForSelection: p = N,
17
+ children: s,
18
+ className: a,
19
+ onClick: e,
20
+ onSelect: o,
21
+ selected: i,
22
+ ..._
23
+ }, w) => {
24
+ const r = (t) => {
25
+ const { keyCode: f } = t;
26
+ p.includes(f) && (t.preventDefault(), o == null || o());
27
+ }, L = (t) => {
28
+ o == null || o(), e == null || e(t);
29
+ };
30
+ return u(() => (d ? document.addEventListener("keydown", r) : document.removeEventListener("keydown", r), () => {
31
+ document.removeEventListener("keydown", r);
32
+ }), [d]), /* @__PURE__ */ E(
33
+ "div",
34
+ {
35
+ className: v(
36
+ n.dropdownListItem,
37
+ { [n.active]: !!d, [n.selected]: !!i },
38
+ a
39
+ ),
40
+ title: typeof s == "string" ? s : void 0,
41
+ role: "option",
42
+ "aria-selected": !!i,
43
+ ..._,
44
+ onClick: L,
45
+ ref: w,
46
+ children: s
47
+ }
48
+ );
49
+ }
50
+ );
51
+ b.displayName = "DropdownListItem";
52
+ export {
53
+ b as D,
54
+ n as s
55
+ };
56
+ //# sourceMappingURL=DropdownListItem-CwqothNf.js.map
@@ -0,0 +1,19 @@
1
+ const o = "dropdownMobileWrapper__9bb0abe7", d = "dropdownMobileBackdrop__d6b4d0fb", e = "closing__52d997c6", n = "opening__61247809", r = "opened__c095f986", p = "dropdownMobile__a211aee3", l = "dropdownMobileHeader__0e9ddb4d", b = "dropdownMobileContent__b2f7400c", i = "dropdownMobileFooter__537953d5", t = "dropdownMobileListItem__8d3c00ee", s = "selected__b9f8ab19", w = "dropdownMobileClose__8f6f2200", c = "dropdownMobileBodyOverflow__7c00214d", M = {
2
+ dropdownMobileWrapper: o,
3
+ dropdownMobileBackdrop: d,
4
+ closing: e,
5
+ opening: n,
6
+ opened: r,
7
+ dropdownMobile: p,
8
+ dropdownMobileHeader: l,
9
+ dropdownMobileContent: b,
10
+ dropdownMobileFooter: i,
11
+ dropdownMobileListItem: t,
12
+ selected: s,
13
+ dropdownMobileClose: w,
14
+ dropdownMobileBodyOverflow: c
15
+ };
16
+ export {
17
+ M as s
18
+ };
19
+ //# sourceMappingURL=DropdownMobile.module-zLTfuu5W.js.map
@@ -0,0 +1,11 @@
1
+ const o = "footer__87bdfdd7", t = "sticky__81ad13fb", e = "footerDescription__92f32173", r = "footerDescriptionContent__7bc35238", s = "footerDescriptionControls__e3211d43", n = {
2
+ footer: o,
3
+ sticky: t,
4
+ footerDescription: e,
5
+ footerDescriptionContent: r,
6
+ footerDescriptionControls: s
7
+ };
8
+ export {
9
+ n as s
10
+ };
11
+ //# sourceMappingURL=Footer.module-C8ediOIN.js.map
@@ -0,0 +1,62 @@
1
+ import { jsx as R } from "react/jsx-runtime";
2
+ import g, { useContext as j, useRef as y, useEffect as c } from "react";
3
+ import { FormFieldContext as A } from "../components/FormField/FormFieldContext.js";
4
+ import { c as C, j as E } from "./vendor-CF2m175I.js";
5
+ const S = "formFieldInput__fa0ed219", N = {
6
+ formFieldInput: S,
7
+ "autofill-applied-hook": "autofill-applied-hook__cb49e86f",
8
+ "autofill-cancelled-hook": "autofill-cancelled-hook__998cf73e",
9
+ "size-sm": "size-sm__01125b29",
10
+ "size-md": "size-md__6784c995",
11
+ "size-lg": "size-lg__88b39b26"
12
+ }, W = g.forwardRef((d, u) => {
13
+ const { className: k, id: t, onAnimationStart: a, onBlur: i, onFocus: n, placeholder: m, value: s, ...x } = d, { render: f, ...b } = d, { focused: B, disabled: P, setFocused: p, setId: r, setValueExist: l, size: F } = j(A), _ = C(N.formFieldInput, k, N[`size-${F}`]), o = y(t || E("input_"));
14
+ c(() => {
15
+ r(o.current);
16
+ }, []), c(() => {
17
+ t && (o.current = t, r(o.current));
18
+ }, [t, r]), c(() => {
19
+ l(!!s);
20
+ }, [l, s]);
21
+ const h = (e) => {
22
+ p(!1), i == null || i(e);
23
+ }, I = (e) => {
24
+ p(!0), n == null || n(e);
25
+ }, z = (e) => {
26
+ e.animationName.startsWith("autofill-applied-hook") ? l(!0) : e.animationName.startsWith("autofill-cancelled-hook") && !s && l(!1), a == null || a(e);
27
+ };
28
+ return f ? f(
29
+ {
30
+ ...b,
31
+ className: _,
32
+ id: o.current,
33
+ onAnimationStart: z,
34
+ onBlur: h,
35
+ onFocus: I,
36
+ /* Когда элемент не в фокусе, вместо placeholder показывается Label. */
37
+ placeholder: B ? m : " ",
38
+ size: F
39
+ },
40
+ u
41
+ ) : /* @__PURE__ */ R(
42
+ "input",
43
+ {
44
+ ...x,
45
+ className: _,
46
+ disabled: P,
47
+ id: o.current,
48
+ onAnimationStart: z,
49
+ onFocus: I,
50
+ onBlur: h,
51
+ value: s,
52
+ placeholder: m,
53
+ ref: u
54
+ }
55
+ );
56
+ });
57
+ W.displayName = "FormFieldInput";
58
+ export {
59
+ W as F,
60
+ N as s
61
+ };
62
+ //# sourceMappingURL=FormFieldInput-Cmc0beZ5.js.map
@@ -0,0 +1,9 @@
1
+ const e = "headerLayoutSidebar__0605f064", a = "headerLayoutSidebarContent__7517b24a", d = "headerLayoutSidebarSidebar__a6d91dca", r = {
2
+ headerLayoutSidebar: e,
3
+ headerLayoutSidebarContent: a,
4
+ headerLayoutSidebarSidebar: d
5
+ };
6
+ export {
7
+ r as s
8
+ };
9
+ //# sourceMappingURL=HeaderLayoutSidebar.module-DUesMumi.js.map
@@ -0,0 +1,9 @@
1
+ const e = "headerTabs__dc4008d7", a = "headerTabsContent__b39ffbfd", s = "headerTabsControls__02eaca48", t = {
2
+ headerTabs: e,
3
+ headerTabsContent: a,
4
+ headerTabsControls: s
5
+ };
6
+ export {
7
+ t as s
8
+ };
9
+ //# sourceMappingURL=HeaderTabs.module-B8b_Vmmv.js.map
@@ -0,0 +1,9 @@
1
+ const e = "headerTitle__e490ab20", t = "headerTitleControls__8b46ea79", o = "headerTitleContent__10b38e5c", l = {
2
+ headerTitle: e,
3
+ headerTitleControls: t,
4
+ headerTitleContent: o
5
+ };
6
+ export {
7
+ l as s
8
+ };
9
+ //# sourceMappingURL=HeaderTitle.module-CS0vKAYw.js.map
@@ -0,0 +1,43 @@
1
+ import { jsx as s, jsxs as m } from "react/jsx-runtime";
2
+ import i from "react";
3
+ import { c as I } from "./vendor-CF2m175I.js";
4
+ import { ETextSize as u } from "../components/Typography/enums.js";
5
+ import { Text as c } from "../components/Typography/Text.js";
6
+ const a = "listItemControlsButton__c75a7d50", B = "listItemControlsButtonDropdown__dac97c53", C = "listItemControlsButtonIcon__2ecd6c7c", d = "withText__33274668", p = "listItemControlsButtonLabel__d2ffd5d6", _ = "listItemControlsButtonInner__fc8628b8", f = "withIcon__7b1743fc", w = "buttonDropdownMenuItem__995719b7", t = {
7
+ listItemControlsButton: a,
8
+ listItemControlsButtonDropdown: B,
9
+ listItemControlsButtonIcon: C,
10
+ withText: d,
11
+ listItemControlsButtonLabel: p,
12
+ listItemControlsButtonInner: _,
13
+ withIcon: f,
14
+ buttonDropdownMenuItem: w
15
+ }, b = i.forwardRef(
16
+ ({ children: o, className: e, icon: n, ...l }, r) => /* @__PURE__ */ s(
17
+ "button",
18
+ {
19
+ type: "button",
20
+ className: I(
21
+ t.listItemControlsButton,
22
+ "hoverable",
23
+ {
24
+ [t.withIcon]: typeof n < "u",
25
+ [t.withText]: typeof o < "u"
26
+ },
27
+ e
28
+ ),
29
+ ...l,
30
+ ref: r,
31
+ children: /* @__PURE__ */ m("span", { className: t.listItemControlsButtonInner, children: [
32
+ n ? /* @__PURE__ */ s("span", { className: t.listItemControlsButtonIcon, children: n }) : null,
33
+ o ? /* @__PURE__ */ s(c, { className: t.listItemControlsButtonLabel, size: u.B4, children: o }) : null
34
+ ] })
35
+ }
36
+ )
37
+ );
38
+ b.displayName = "ListItemControlsButton";
39
+ export {
40
+ b as L,
41
+ t as s
42
+ };
43
+ //# sourceMappingURL=ListItemControlsButton-Bn_onrHQ.js.map
@@ -0,0 +1,12 @@
1
+ const t = "listItemTail__cc27ecdf", i = "listItemTailLine__5b3c5d35", l = "listItemTailTop__31ed229d", e = "listItemTailBottom__35bef2ff", s = "listItemTailRight__20f93478", m = "listItemTailLeft__8625f940", T = {
2
+ listItemTail: t,
3
+ listItemTailLine: i,
4
+ listItemTailTop: l,
5
+ listItemTailBottom: e,
6
+ listItemTailRight: s,
7
+ listItemTailLeft: m
8
+ };
9
+ export {
10
+ T as s
11
+ };
12
+ //# sourceMappingURL=ListItemTail.module-8r8-WRy-.js.map
@@ -0,0 +1,10 @@
1
+ const t = "listMasterFooter__19d76d67", s = "sticky__dd82151f", o = "listMasterFooterDescription__41c5860f", r = "listMasterFooterControls__e1768441", e = {
2
+ listMasterFooter: t,
3
+ sticky: s,
4
+ listMasterFooterDescription: o,
5
+ listMasterFooterControls: r
6
+ };
7
+ export {
8
+ e as s
9
+ };
10
+ //# sourceMappingURL=ListMasterFooter.module-Bylyf04G.js.map
@@ -0,0 +1,18 @@
1
+ const o = "overlay__f7a3f485", e = "fixed__01fb497b", t = "closing__e7cdd2fc", n = "opened__b76c71f2", a = "overlayPanel__3c292d51", l = "bottom__8c107516", c = "left__838a34dc", _ = "right__a87eaa93", s = "top__52c65b48", r = "overlayContent__e30f1613", y = "overlayMask__8abc1143", v = "overlayOpened__26214563", d = {
2
+ overlay: o,
3
+ fixed: e,
4
+ closing: t,
5
+ opened: n,
6
+ overlayPanel: a,
7
+ bottom: l,
8
+ left: c,
9
+ right: _,
10
+ top: s,
11
+ overlayContent: r,
12
+ overlayMask: y,
13
+ overlayOpened: v
14
+ };
15
+ export {
16
+ d as s
17
+ };
18
+ //# sourceMappingURL=Overlay.module-BfeGcilV.js.map
@@ -0,0 +1,16 @@
1
+ const e = "page__bfa20a17", a = "headerPageBackground__685d9e8b", o = "footerPageBackground__d16f52e7", r = "headerPageSticky__b097ecdd", t = "footerPageSticky__db8d973a", g = "headerPageStuck__f5bbc756", c = "footerPageStuck__abf9dd24", d = "observerTarget__1723d66c", P = "headerPage__f41db9d7", _ = "bodyPage__e2e3dc3b", k = {
2
+ page: e,
3
+ headerPageBackground: a,
4
+ footerPageBackground: o,
5
+ headerPageSticky: r,
6
+ footerPageSticky: t,
7
+ headerPageStuck: g,
8
+ footerPageStuck: c,
9
+ observerTarget: d,
10
+ headerPage: P,
11
+ bodyPage: _
12
+ };
13
+ export {
14
+ k as s
15
+ };
16
+ //# sourceMappingURL=Page.module-DI3KI2pW.js.map
@@ -0,0 +1,13 @@
1
+ const t = "tabsExtended__57498984", e = "tabsExtendedContent__1fd2c56c", d = "tabsExtendedTab__50c4518a", n = "tabsExtendedDropdown__e7308178", a = "tabsReal__a2e7ff78", s = "tabsFake__1eefb267", b = "hidden__8c5062af", o = {
2
+ tabsExtended: t,
3
+ tabsExtendedContent: e,
4
+ tabsExtendedTab: d,
5
+ tabsExtendedDropdown: n,
6
+ tabsReal: a,
7
+ tabsFake: s,
8
+ hidden: b
9
+ };
10
+ export {
11
+ o as s
12
+ };
13
+ //# sourceMappingURL=TabsExtended.module-De1gs7fV.js.map
@@ -0,0 +1,23 @@
1
+ import { ETabsExtendedTabButtonSize as t } from "../components/TabsExtended/enums.js";
2
+ import { ETextSize as e } from "../components/Typography/enums.js";
3
+ const d = "tabsExtendedTabButton__948fa89a", a = "lg__7c7515f1", o = "md__070e42c7", n = "sm__85d1815c", c = "selected__501b9060", s = {
4
+ tabsExtendedTabButton: d,
5
+ lg: a,
6
+ md: o,
7
+ sm: n,
8
+ selected: c
9
+ }, _ = {
10
+ [t.LG]: s.lg,
11
+ [t.MD]: s.md,
12
+ [t.SM]: s.sm
13
+ }, l = {
14
+ [t.LG]: e.B2,
15
+ [t.MD]: e.B3,
16
+ [t.SM]: e.B4
17
+ };
18
+ export {
19
+ l as a,
20
+ s,
21
+ _ as t
22
+ };
23
+ //# sourceMappingURL=TabsExtendedUtils-CZCrojKY.js.map
@@ -0,0 +1,19 @@
1
+ const t = "tooltipDesktop__e930f04b", o = "tooltipBody__e17b6d80", p = "tooltipXButton__28c6e282", l = "tooltipDesktopContent__03aa3725", e = "closable__9e4ee525", i = "tooltipSM__59befd87", s = "tooltipLG__5f0729ea", n = "tooltipOverlay__ed74f584", _ = "tooltipDesktopTip__68ab2789", c = "down__09a1fa84", a = "up__a74169f5", d = "left__55a383ea", f = "right__c8de748f", k = {
2
+ tooltipDesktop: t,
3
+ tooltipBody: o,
4
+ tooltipXButton: p,
5
+ tooltipDesktopContent: l,
6
+ closable: e,
7
+ tooltipSM: i,
8
+ tooltipLG: s,
9
+ tooltipOverlay: n,
10
+ tooltipDesktopTip: _,
11
+ down: c,
12
+ up: a,
13
+ left: d,
14
+ right: f
15
+ };
16
+ export {
17
+ k as s
18
+ };
19
+ //# sourceMappingURL=TooltipDesktop.module-0Me4J_t3.js.map