@skbkontur/react-ui 5.3.1 → 5.3.2

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 (135) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/package.json +1 -6
  3. package/cjs/components/Autocomplete/Autocomplete.md +0 -113
  4. package/cjs/components/Button/Button.md +0 -261
  5. package/cjs/components/Calendar/Calendar.md +0 -276
  6. package/cjs/components/Calendar/CalendarDay.md +0 -70
  7. package/cjs/components/Center/Center.md +0 -26
  8. package/cjs/components/Checkbox/Checkbox.md +0 -171
  9. package/cjs/components/ComboBox/ComboBox.md +0 -574
  10. package/cjs/components/CurrencyInput/CurrencyInput.md +0 -39
  11. package/cjs/components/CurrencyLabel/CurrencyLabel.md +0 -29
  12. package/cjs/components/DateInput/DateInput.md +0 -111
  13. package/cjs/components/DatePicker/DatePicker.md +0 -368
  14. package/cjs/components/Dropdown/Dropdown.md +0 -45
  15. package/cjs/components/DropdownMenu/DropdownMenu.md +0 -290
  16. package/cjs/components/FileUploader/FileUploader.md +0 -131
  17. package/cjs/components/FxInput/FxInput.md +0 -31
  18. package/cjs/components/Gapped/Gapped.md +0 -44
  19. package/cjs/components/GlobalLoader/GlobalLoader.md +0 -97
  20. package/cjs/components/Group/Group.md +0 -19
  21. package/cjs/components/Hint/Hint.md +0 -86
  22. package/cjs/components/Input/Input.md +0 -86
  23. package/cjs/components/Kebab/Kebab.md +0 -306
  24. package/cjs/components/Link/Link.md +0 -182
  25. package/cjs/components/Loader/Loader.md +0 -33
  26. package/cjs/components/MaskedInput/MaskedInput.md +0 -114
  27. package/cjs/components/MenuFooter/MenuFooter.md +0 -27
  28. package/cjs/components/MenuHeader/MenuHeader.md +0 -35
  29. package/cjs/components/MenuItem/MenuItem.md +0 -139
  30. package/cjs/components/MenuSeparator/MenuSeparator.md +0 -14
  31. package/cjs/components/MiniModal/MiniModal.md +0 -231
  32. package/cjs/components/Modal/Modal.md +0 -56
  33. package/cjs/components/Paging/Paging.md +0 -57
  34. package/cjs/components/PasswordInput/PasswordInput.md +0 -29
  35. package/cjs/components/Radio/Radio.md +0 -57
  36. package/cjs/components/RadioGroup/RadioGroup.md +0 -44
  37. package/cjs/components/ResponsiveLayout/ResponsiveLayout.md +0 -75
  38. package/cjs/components/ScrollContainer/ScrollContainer.md +0 -224
  39. package/cjs/components/Select/Select.md +0 -113
  40. package/cjs/components/SidePage/SidePage.md +0 -65
  41. package/cjs/components/SingleToast/SingleToast.md +0 -36
  42. package/cjs/components/Spinner/Spinner.md +0 -36
  43. package/cjs/components/Sticky/Sticky.md +0 -28
  44. package/cjs/components/Switcher/Switcher.md +0 -111
  45. package/cjs/components/Tabs/Tab.md +0 -73
  46. package/cjs/components/Tabs/Tabs.md +0 -54
  47. package/cjs/components/Textarea/Textarea.md +0 -58
  48. package/cjs/components/Toast/Toast.md +0 -69
  49. package/cjs/components/Toggle/Toggle.md +0 -110
  50. package/cjs/components/Token/Token.md +0 -48
  51. package/cjs/components/TokenInput/TokenInput.md +0 -277
  52. package/cjs/components/Tooltip/Tooltip.md +0 -322
  53. package/cjs/components/TooltipMenu/TooltipMenu.md +0 -241
  54. package/cjs/internal/DataTids/DATATIDS.md +0 -12
  55. package/cjs/internal/DataTids/DataTids.d.ts +0 -12
  56. package/cjs/internal/DataTids/DataTids.js +0 -50
  57. package/cjs/internal/DataTids/DataTids.js.map +0 -1
  58. package/cjs/internal/DataTids/DataTids.styles.d.ts +0 -7
  59. package/cjs/internal/DataTids/DataTids.styles.js +0 -42
  60. package/cjs/internal/DataTids/DataTids.styles.js.map +0 -1
  61. package/cjs/internal/DataTids/componentsDataTids.d.ts +0 -5
  62. package/cjs/internal/DataTids/componentsDataTids.js +0 -15
  63. package/cjs/internal/DataTids/componentsDataTids.js.map +0 -1
  64. package/cjs/internal/ThemePlayground/Playground.md +0 -7
  65. package/cjs/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +0 -64
  66. package/cjs/lib/locale/LOCALECONTEXT.md +0 -222
  67. package/cjs/lib/theming/ThemeContext.md +0 -265
  68. package/components/Autocomplete/Autocomplete.md +0 -113
  69. package/components/Button/Button.md +0 -261
  70. package/components/Calendar/Calendar.md +0 -276
  71. package/components/Calendar/CalendarDay.md +0 -70
  72. package/components/Center/Center.md +0 -26
  73. package/components/Checkbox/Checkbox.md +0 -171
  74. package/components/ComboBox/ComboBox.md +0 -574
  75. package/components/CurrencyInput/CurrencyInput.md +0 -39
  76. package/components/CurrencyLabel/CurrencyLabel.md +0 -29
  77. package/components/DateInput/DateInput.md +0 -111
  78. package/components/DatePicker/DatePicker.md +0 -368
  79. package/components/Dropdown/Dropdown.md +0 -45
  80. package/components/DropdownMenu/DropdownMenu.md +0 -290
  81. package/components/FileUploader/FileUploader.md +0 -131
  82. package/components/FxInput/FxInput.md +0 -31
  83. package/components/Gapped/Gapped.md +0 -44
  84. package/components/GlobalLoader/GlobalLoader.md +0 -97
  85. package/components/Group/Group.md +0 -19
  86. package/components/Hint/Hint.md +0 -86
  87. package/components/Input/Input.md +0 -86
  88. package/components/Kebab/Kebab.md +0 -306
  89. package/components/Link/Link.md +0 -182
  90. package/components/Loader/Loader.md +0 -33
  91. package/components/MaskedInput/MaskedInput.md +0 -114
  92. package/components/MenuFooter/MenuFooter.md +0 -27
  93. package/components/MenuHeader/MenuHeader.md +0 -35
  94. package/components/MenuItem/MenuItem.md +0 -139
  95. package/components/MenuSeparator/MenuSeparator.md +0 -14
  96. package/components/MiniModal/MiniModal.md +0 -231
  97. package/components/Modal/Modal.md +0 -56
  98. package/components/Paging/Paging.md +0 -57
  99. package/components/PasswordInput/PasswordInput.md +0 -29
  100. package/components/Radio/Radio.md +0 -57
  101. package/components/RadioGroup/RadioGroup.md +0 -44
  102. package/components/ResponsiveLayout/ResponsiveLayout.md +0 -75
  103. package/components/ScrollContainer/ScrollContainer.md +0 -224
  104. package/components/Select/Select.md +0 -113
  105. package/components/SidePage/SidePage.md +0 -65
  106. package/components/SingleToast/SingleToast.md +0 -36
  107. package/components/Spinner/Spinner.md +0 -36
  108. package/components/Sticky/Sticky.md +0 -28
  109. package/components/Switcher/Switcher.md +0 -111
  110. package/components/Tabs/Tab.md +0 -73
  111. package/components/Tabs/Tabs.md +0 -54
  112. package/components/Textarea/Textarea.md +0 -58
  113. package/components/Toast/Toast.md +0 -69
  114. package/components/Toggle/Toggle.md +0 -110
  115. package/components/Token/Token.md +0 -48
  116. package/components/TokenInput/TokenInput.md +0 -277
  117. package/components/Tooltip/Tooltip.md +0 -322
  118. package/components/TooltipMenu/TooltipMenu.md +0 -241
  119. package/internal/DataTids/DATATIDS.md +0 -12
  120. package/internal/DataTids/DataTids/DataTids.js +0 -69
  121. package/internal/DataTids/DataTids/DataTids.js.map +0 -1
  122. package/internal/DataTids/DataTids/package.json +0 -6
  123. package/internal/DataTids/DataTids.d.ts +0 -12
  124. package/internal/DataTids/DataTids.styles/DataTids.styles.js +0 -20
  125. package/internal/DataTids/DataTids.styles/DataTids.styles.js.map +0 -1
  126. package/internal/DataTids/DataTids.styles/package.json +0 -6
  127. package/internal/DataTids/DataTids.styles.d.ts +0 -7
  128. package/internal/DataTids/componentsDataTids/componentsDataTids.js +0 -12
  129. package/internal/DataTids/componentsDataTids/componentsDataTids.js.map +0 -1
  130. package/internal/DataTids/componentsDataTids/package.json +0 -6
  131. package/internal/DataTids/componentsDataTids.d.ts +0 -5
  132. package/internal/ThemePlayground/Playground.md +0 -7
  133. package/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +0 -64
  134. package/lib/locale/LOCALECONTEXT.md +0 -222
  135. package/lib/theming/ThemeContext.md +0 -265
@@ -1,290 +0,0 @@
1
- ### Базовый пример меню
2
-
3
- ```jsx harmony
4
- import { Button, MenuHeader, MenuItem, MenuSeparator } from '@skbkontur/react-ui';
5
-
6
- <DropdownMenu caption={<Button use="primary">Открыть меню</Button>}>
7
- <MenuHeader>Заголовок меню</MenuHeader>
8
- <MenuSeparator />
9
- <MenuItem>Раз</MenuItem>
10
- <MenuItem>Два</MenuItem>
11
- <MenuItem>Три</MenuItem>
12
- <MenuSeparator />
13
- <MenuItem>Раз</MenuItem>
14
- <MenuItem>Два</MenuItem>
15
- <MenuItem>Три</MenuItem>
16
- </DropdownMenu>;
17
- ```
18
-
19
- В проп `caption` помимо компонента можно передать функцию, возвращающую компонент, с помощью которой можно управлять текущим состоянием меню.
20
-
21
- ```jsx harmony
22
- import { Button, MenuHeader, MenuItem, MenuSeparator } from '@skbkontur/react-ui';
23
-
24
- <DropdownMenu caption={({ opened, openMenu, closeMenu, toggleMenu }) => {
25
- return (
26
- <>
27
- <p>Сейчас меню { opened ? 'окрыто' : 'закрыто' }</p>
28
- <Button onClick={toggleMenu}>Переключить меню</Button>
29
- <Button onClick={openMenu}>Открыть меню</Button>
30
- <Button onClick={closeMenu}>Закрыть меню</Button>
31
- </>
32
- )
33
- }}>
34
- <MenuHeader>Заголовок меню</MenuHeader>
35
- <MenuSeparator />
36
- <MenuItem>Раз</MenuItem>
37
- <MenuItem>Два</MenuItem>
38
- <MenuItem>Три</MenuItem>
39
- <MenuSeparator />
40
- <MenuItem>Раз</MenuItem>
41
- <MenuItem>Два</MenuItem>
42
- <MenuItem>Три</MenuItem>
43
- </DropdownMenu>;
44
- ```
45
-
46
- ### Ширина
47
-
48
- ```jsx harmony
49
- import { Button, MenuHeader, MenuItem, MenuSeparator } from '@skbkontur/react-ui';
50
-
51
- <DropdownMenu caption={<Button use="primary">Открыть меню c заданной шириной</Button>} menuWidth={350}>
52
- <MenuHeader>Заголовок меню</MenuHeader>
53
- <MenuSeparator />
54
- <MenuItem>Раз</MenuItem>
55
- <MenuItem>Два</MenuItem>
56
- <MenuItem>Три</MenuItem>
57
- <MenuSeparator />
58
- <MenuItem>Раз</MenuItem>
59
- <MenuItem>Два</MenuItem>
60
- <MenuItem>Три</MenuItem>
61
- </DropdownMenu>;
62
- ```
63
-
64
- ### Максимальная высота
65
-
66
- ```jsx harmony
67
- import { Button, MenuHeader, MenuItem, MenuSeparator } from '@skbkontur/react-ui';
68
-
69
- <DropdownMenu caption={<Button use="primary">Открыть меню c заданной высотой</Button>} menuMaxHeight={150}>
70
- <MenuHeader>Заголовок меню</MenuHeader>
71
- <MenuSeparator />
72
- <MenuItem>Раз</MenuItem>
73
- <MenuItem>Два</MenuItem>
74
- <MenuItem>Три</MenuItem>
75
- <MenuSeparator />
76
- <MenuItem>Раз</MenuItem>
77
- <MenuItem>Два</MenuItem>
78
- <MenuItem>Три</MenuItem>
79
- </DropdownMenu>;
80
- ```
81
-
82
- ### Выпадашка слева по центру
83
-
84
- ```jsx harmony
85
- import { Button, MenuHeader, MenuItem, MenuSeparator } from '@skbkontur/react-ui';
86
-
87
- <DropdownMenu positions={["left middle"]} caption={<Button use="primary">Открыть меню</Button>}>
88
- <MenuHeader>Заголовок меню</MenuHeader>
89
- <MenuSeparator />
90
- <MenuItem>Раз</MenuItem>
91
- <MenuItem>Два</MenuItem>
92
- <MenuItem>Три</MenuItem>
93
- <MenuSeparator />
94
- <MenuItem>Раз</MenuItem>
95
- <MenuItem>Два</MenuItem>
96
- <MenuItem>Три</MenuItem>
97
- </DropdownMenu>;
98
- ```
99
-
100
- ### Меню c шапкой и подвалом
101
-
102
- ```jsx harmony
103
- import { Button, MenuHeader, MenuItem, MenuSeparator } from '@skbkontur/react-ui';
104
-
105
- <DropdownMenu
106
- header={<p>Это шапка в виде обычного текста</p>}
107
- footer={<Button>А это подвал в виде кнопки</Button>}
108
- caption={<Button use="primary">Открыть меню</Button>}
109
- >
110
- <MenuItem>Раз</MenuItem>
111
- <MenuItem>Два</MenuItem>
112
- <MenuItem>Три</MenuItem>
113
- </DropdownMenu>;
114
- ```
115
-
116
- ### Иконка и автовыравнивание текста
117
-
118
- ```jsx harmony
119
- import { Button, MenuHeader, MenuItem, MenuSeparator, DropdownMenu } from '@skbkontur/react-ui';
120
- import { CheckAIcon16Regular } from '@skbkontur/icons/icons/CheckAIcon/CheckAIcon16Regular';;
121
-
122
- <DropdownMenu caption={<Button use="primary">Открыть меню</Button>}>
123
- <MenuHeader>MenuHeader</MenuHeader>
124
- <MenuItem icon={<CheckAIcon16Regular />}>MenuItem1</MenuItem>
125
- <MenuItem icon={<CheckAIcon16Regular />}>MenuItem2</MenuItem>
126
- <MenuItem>MenuItem3</MenuItem>
127
- </DropdownMenu>;
128
- ```
129
-
130
- ### Иконка и отключенное автовыравнивание текста
131
-
132
- ```jsx harmony
133
- import { Button, MenuHeader, MenuItem, MenuSeparator, DropdownMenu } from '@skbkontur/react-ui';
134
- import { CheckAIcon16Regular } from '@skbkontur/icons/icons/CheckAIcon/CheckAIcon16Regular';;
135
-
136
- <DropdownMenu preventIconsOffset caption={<Button use="primary">Открыть меню</Button>}>
137
- <MenuHeader>MenuHeader</MenuHeader>
138
- <MenuItem icon={<CheckAIcon16Regular />}>MenuItem1</MenuItem>
139
- <MenuItem icon={<CheckAIcon16Regular />}>MenuItem2</MenuItem>
140
- <MenuItem>MenuItem3</MenuItem>
141
- </DropdownMenu>
142
- ```
143
-
144
- ### Отключенная анимация
145
-
146
- ```jsx harmony
147
- import { Button, MenuHeader, MenuItem, MenuSeparator } from '@skbkontur/react-ui';
148
-
149
- <DropdownMenu
150
- disableAnimations
151
- caption={<Button use="primary">Открыть меню без анимации</Button>}
152
- >
153
- <MenuHeader>Заголовок меню</MenuHeader>
154
- <MenuSeparator />
155
- <MenuItem>Раз</MenuItem>
156
- <MenuItem>Два</MenuItem>
157
- <MenuItem>Три</MenuItem>
158
- </DropdownMenu>;
159
- ```
160
-
161
- ### Подпись
162
- В `caption` можно передать любой элемент.
163
-
164
- ```jsx harmony
165
- import { UiMenuBars3HIcon16Regular } from '@skbkontur/icons/icons/UiMenuBars3HIcon/UiMenuBars3HIcon16Regular';
166
- import { MenuItem } from '@skbkontur/react-ui';
167
-
168
- <DropdownMenu
169
- caption={
170
- <span style={{ display: 'inline-block' }} tabIndex="0">
171
- <UiMenuBars3HIcon16Regular size={32} />
172
- </span>
173
- }
174
- menuWidth="300px"
175
- >
176
- <MenuItem>Раз</MenuItem>
177
- <MenuItem>Два</MenuItem>
178
- <MenuItem>Три</MenuItem>
179
- </DropdownMenu>;
180
- ```
181
-
182
- ### Чекбокс внутри MenuItem
183
-
184
- ```jsx harmony
185
- import { MenuItem, Checkbox, Button, ThemeContext, ThemeFactory } from '@skbkontur/react-ui';
186
-
187
- const [checked, setChecked] = React.useState(false);
188
-
189
- let close;
190
-
191
- const renderCaption = ({ openMenu, closeMenu }) => {
192
- close = closeMenu;
193
- return (
194
- <Button onClick={openMenu} use="primary">
195
- Открыть меню
196
- </Button>
197
- );
198
- };
199
-
200
- <DropdownMenu caption={renderCaption}>
201
- <MenuItem onClick={(e) => e.preventDefault()}>Просто пункт</MenuItem>
202
- <ThemeContext.Provider value={ThemeFactory.create({ menuItemHoverBg: 'initial' })}>
203
- <MenuItem
204
- onClick={(e) => {
205
- e.preventDefault();
206
- setChecked(!checked);
207
- }}
208
- >
209
- <Checkbox checked={checked}>с чекбоксом</Checkbox>
210
- </MenuItem>
211
- </ThemeContext.Provider>
212
- <MenuItem
213
- onClick={(e) => {
214
- e.preventDefault();
215
- close();
216
- }}
217
- >
218
- Закрыть
219
- </MenuItem>
220
- </DropdownMenu>
221
- ```
222
-
223
- ### Условный рендер элементов меню
224
- (с сохранением поведения [MenuItem](#/Components/MenuItem))
225
-
226
- ```jsx harmony
227
- import {Button, MenuItem, Gapped, MenuSeparator} from '@skbkontur/react-ui';
228
-
229
- const [showItems, setShowItems] = React.useState(false);
230
-
231
- const hiddenItems = [
232
- <MenuSeparator />,
233
- <MenuItem>А я скрываюсь</MenuItem>,
234
- <MenuItem>И я</MenuItem>,
235
- <MenuItem>Я с вами</MenuItem>,
236
- ];
237
-
238
-
239
- <Gapped>
240
- <Button onClick={() => setShowItems(!showItems)}>
241
- {showItems ? 'Спрятать' : 'Показать'} элементы
242
- </Button>
243
-
244
- <DropdownMenu caption={<Button use="primary">Открыть меню</Button>}>
245
- <MenuItem>Меня видно всегда</MenuItem>
246
- <MenuItem>Меня тоже</MenuItem>
247
- <MenuItem>Ага, и меня!</MenuItem>
248
- {showItems && hiddenItems}
249
- </DropdownMenu>
250
- </Gapped>
251
- ```
252
-
253
- С использованием фиче-флага menuItemsAtAnyLevel. Mожно использовать различные обертки для пунктов меню.
254
-
255
- ```jsx harmony
256
- import {
257
- DropdownMenu,
258
- Button,
259
- MenuHeader,
260
- MenuItem,
261
- MenuSeparator,
262
- ReactUIFeatureFlagsContext,
263
- Gapped
264
- } from '@skbkontur/react-ui';
265
-
266
- const groupedMenuItems = (
267
- <div>
268
- <MenuItem>MenuItem1</MenuItem>
269
- <MenuItem>MenuItem2</MenuItem>
270
- <MenuItem isNotSelectable>Not Selectable</MenuItem>
271
- </div>
272
- );
273
-
274
- <Gapped>
275
- <ReactUIFeatureFlagsContext.Provider value={{ menuItemsAtAnyLevel: true }}>
276
- <DropdownMenu caption={<Button use="primary">Открыть меню</Button>}>
277
- <>
278
- <MenuHeader>Заголовок меню</MenuHeader>
279
- <MenuSeparator />
280
- <div>
281
- {groupedMenuItems}
282
- </div>
283
- </>
284
- <MenuItem>MenuItem3</MenuItem>
285
- </DropdownMenu>
286
- </ReactUIFeatureFlagsContext.Provider>
287
- </Gapped>;
288
- ```
289
-
290
-
@@ -1,131 +0,0 @@
1
- Контрол загрузки файлов.
2
- Можно использовать для синхронной отправки данных, например, в форме.
3
- Или же можно использовать в асинхронном режиме.
4
-
5
- ### Синхронный контрол
6
- ```jsx harmony
7
- import { FileUploader } from '@skbkontur/react-ui';
8
-
9
- <FileUploader />
10
- ```
11
-
12
- ### Асинхронный контрол
13
- ```jsx harmony
14
- import { FileUploader } from '@skbkontur/react-ui';
15
-
16
- const request = () => Promise.resolve();
17
-
18
- <FileUploader request={request} />
19
- ```
20
-
21
- ### Multiple контрол
22
- ```jsx harmony
23
- import { FileUploader } from '@skbkontur/react-ui';
24
-
25
- const request = () => Promise.reject();
26
-
27
- <FileUploader request={request} multiple />
28
- ```
29
-
30
- ### Файлы по умолчанию
31
- ```jsx harmony
32
- import { FileUploader } from '@skbkontur/react-ui';
33
-
34
- function createFile(filename, content) {
35
- return new File(['content'], filename, { type: 'text/plain' });
36
- };
37
-
38
- const initialFiles = [createFile('test1.txt'), createFile('test2.txt')];
39
- <FileUploader multiple initialFiles={initialFiles} />
40
- ```
41
-
42
- ### Файлы по умолчанию с кастомизацией рендеринга
43
- ```jsx harmony
44
- import { cloneElement } from 'react';
45
- import { FileUploader } from '@skbkontur/react-ui';
46
-
47
- function createFile(filename, content) {
48
- return new File(['content'], filename, { type: 'text/plain' });
49
- };
50
-
51
- const initialFiles = [createFile('test1.txt'), createFile('test2.txt')];
52
- <FileUploader
53
- multiple
54
- initialFiles={initialFiles}
55
- renderFile={(file, fileNode) => cloneElement(fileNode, { showSize: false })}
56
- />
57
- ```
58
-
59
- ### Использование `accept`
60
- ```jsx harmony
61
- import { FileUploader } from '@skbkontur/react-ui';
62
-
63
- <FileUploader multiple accept="image/*" />
64
- ```
65
-
66
- ### Валидация файла в списке
67
- ```jsx harmony
68
- import { FileUploader } from '@skbkontur/react-ui';
69
-
70
- <FileUploader
71
- multiple
72
- validateBeforeUpload={({ originalFile }) => {
73
- return Promise.resolve(`У файла ${originalFile.name} неверный формат`);
74
- }}
75
- />;
76
- ```
77
-
78
- ### Валидация контрола
79
- ```jsx harmony
80
- import { FileUploader } from '@skbkontur/react-ui';
81
-
82
- <FileUploader multiple error />
83
- ```
84
-
85
- Ручное удаление файлов
86
-
87
- В критичных случаях, если нужно удалить файлы из контрола вручную, то это можно сделать, используя метод `removeFile` из `ref`.
88
- Обратите внимание, что при вызове `removeFile` вызываются коллбэки `onRemove` и `onValueChange`.
89
-
90
- ```jsx harmony
91
- import { FileUploader, Button } from '@skbkontur/react-ui';
92
-
93
- const fileUploaderRef = React.useRef(null);
94
- const [fileList, setFileList] = React.useState([]);
95
-
96
- <div style={{ display: 'inline-grid', gap: '10px' }}>
97
- <FileUploader ref={fileUploaderRef} multiple onValueChange={(files) => setFileList(files)} />
98
- {fileList.map((file) => {
99
- return (
100
- <Button key={file.id} onClick={() => fileUploaderRef.current.removeFile(file.id)}>
101
- Delete file {file.originalFile.name}
102
- </Button>
103
- );
104
- })}
105
- </div>
106
- ```
107
-
108
- ### Локали по умолчанию
109
-
110
- ```typescript static
111
- interface FileUploaderLocale {
112
- chooseFile: string;
113
- choosedFile: string;
114
- orDragHere: string;
115
- requestErrorText: string;
116
- }
117
-
118
- const ru_RU = {
119
- chooseFile: 'Выберите файл',
120
- choosedFile: 'Выбран файл',
121
- orDragHere: 'или перетащите сюда',
122
- requestErrorText: 'Файл не удалось загрузить на сервер, повторите попытку позже',
123
- };
124
-
125
- const en_GB = {
126
- chooseFile: 'Select a file',
127
- choosedFile: 'File selected',
128
- orDragHere: 'or drag here',
129
- requestErrorText: 'The file could not be uploaded to the server, please try again later',
130
- };
131
- ```
@@ -1,31 +0,0 @@
1
- ### Базовый пример
2
- ```jsx harmony
3
- const [auto, setAuto] = React.useState(false);
4
- const [value, setValue] = React.useState();
5
-
6
- function handleValueChange(value) {
7
- setAuto(false);
8
- setValue(value);
9
- }
10
-
11
- function handleRestore() {
12
- setAuto(true);
13
- setValue('auto');
14
- }
15
-
16
- <FxInput auto={auto} value={value} onValueChange={handleValueChange} onRestore={handleRestore} />;
17
- ```
18
-
19
- ### Очистка значения
20
- Очистить значение в `FxInput`'е можно с помощью пустой строки или `undefined`
21
- ```jsx harmony
22
- import { Group, Button } from '@skbkontur/react-ui';
23
-
24
- const [value, setValue] = React.useState(12345);
25
-
26
- <Group>
27
- <FxInput value={value} onValueChange={setValue} />
28
- <Button onClick={() => setValue(undefined)}>Undefined</Button>
29
- <Button onClick={() => setValue('')}>Пустая строка</Button>
30
- </Group>
31
- ```
@@ -1,44 +0,0 @@
1
- ### Вывод элементов с горизонтальным расположением
2
-
3
- ```jsx harmony
4
- import { Button } from '@skbkontur/react-ui';
5
-
6
- <Gapped gap={20}>
7
- <Button use="primary">Сохранить</Button>
8
- <Button>Отмена</Button>
9
- </Gapped>;
10
- ```
11
-
12
- ### Вертикальное расположение
13
-
14
- ```jsx harmony
15
- import { Checkbox } from '@skbkontur/react-ui';
16
-
17
- <Gapped vertical gap={20}>
18
- <Checkbox checked>Write todos</Checkbox>
19
- <Checkbox initialIndeterminate>Work in progress</Checkbox>
20
- <Checkbox>Make things done</Checkbox>
21
- </Gapped>;
22
- ```
23
-
24
- ### Wrap
25
- По умолчанию `Gapped` выстраивает элементы в одну строчку, но с помощью свойства `wrap` можно включить перенос элементов на новую строку.
26
- При этом между строчками будет отступ равный значению свойста `gap`
27
- В таком случае из-за особенности верстки `Gapped` может перекрывать элементы расположенные сверху-слева.
28
-
29
- ```jsx harmony
30
- import { Button, Checkbox, Toggle } from '@skbkontur/react-ui';
31
-
32
- <>
33
- {"U Can't Touch This! => "}
34
- <Toggle />
35
-
36
- <div style={{ paddingTop: '10px', position: 'relative', width: '250px' }}>
37
- <Gapped wrap gap={50}>
38
- <Button use="primary">Сохранить</Button>
39
- <Button>Отмена</Button>
40
- <Checkbox>Я не робот</Checkbox>
41
- </Gapped>
42
- </div>
43
- </>;
44
- ```
@@ -1,97 +0,0 @@
1
- Индикатор обмена данными с сервером.
2
-
3
- Глобальный Лоадер может быть только один в приложении. Поэтому, каждый новый экземпляр компонента
4
- "убивает" предыдущий
5
- экземпляр, и начинает перехватывать статические методы.
6
-
7
- Предполагается монтирование компонента в единственном месте. И управление им через статические методы, либо через пропы.
8
-
9
- ### Все статические методы
10
- ```jsx harmony
11
- import { Button, Gapped } from '@skbkontur/react-ui';
12
-
13
- <Gapped>
14
- <Button onClick={GlobalLoader.start} use="primary">start</Button>
15
- <Button onClick={GlobalLoader.done} use="success">done</Button>
16
- <Button onClick={GlobalLoader.reject} use="danger">reject</Button>
17
- <Button onClick={GlobalLoader.accept} use="pay">accept</Button>
18
- </Gapped>
19
- ```
20
-
21
- ### Монтирование и кастомизация
22
- ```jsx harmony
23
- import { Button, Toggle, Gapped, GlobalLoader, ThemeContext, ThemeFactory } from '@skbkontur/react-ui';
24
-
25
- const myTheme = ThemeFactory.create({ globalLoaderColor: 'red' });
26
-
27
- const [manually, setManually] = React.useState(false);
28
- const [active, setActive] = React.useState(false);
29
- const [error, setError] = React.useState(false);
30
-
31
- const reset = () => {
32
- if (manually) {
33
- setManually(false);
34
- setError(false);
35
- setActive(false);
36
- } else {
37
- setManually(true);
38
- }
39
- }
40
-
41
- <Gapped vertical>
42
- <Toggle checked={manually} onValueChange={reset}>
43
- Управление пропами
44
- </Toggle>
45
- <Toggle checked={active} onValueChange={setActive} disabled={!manually}>
46
- <code>active</code>
47
- </Toggle>
48
- <Toggle checked={error} onValueChange={setError} disabled={!manually}>
49
- <code>rejected</code>
50
- </Toggle>
51
-
52
- <ThemeContext.Provider value={myTheme}>
53
- <GlobalLoader expectedResponseTime={2000} delayBeforeShow={1000} active={active} rejected={error}
54
- onStart={() => console.log('start')}
55
- onDone={() => console.log('done')}
56
- onReject={() => console.log('reject')}
57
- onAccept={() => console.log('accept')}
58
- />
59
- </ThemeContext.Provider>
60
-
61
- </Gapped>
62
- ```
63
-
64
-
65
- ### Статические методы в модалке
66
- ```jsx harmony
67
- import { Button, Gapped, Modal } from '@skbkontur/react-ui';
68
-
69
- const [opened, setOpened] = React.useState(false);
70
-
71
- function renderModal() {
72
- return (
73
- <Modal onClose={close}>
74
- <Modal.Header>Заголовок</Modal.Header>
75
- <Modal.Body>
76
- <Gapped>
77
- <Button onClick={GlobalLoader.start} use="primary">start</Button>
78
- <Button onClick={GlobalLoader.done} use="success">done</Button>
79
- </Gapped>
80
- </Modal.Body>
81
- </Modal>
82
- );
83
- }
84
-
85
- function open() {
86
- setOpened(true);
87
- }
88
-
89
- function close() {
90
- setOpened(false);
91
- }
92
-
93
- <div>
94
- {opened && renderModal()}
95
- <Button onClick={open}>Открыть</Button>
96
- </div>;
97
- ```
@@ -1,19 +0,0 @@
1
- ### Базовый пример
2
- ```jsx harmony
3
- import { MathFunctionIcon16Regular } from '@skbkontur/icons/icons/MathFunctionIcon/MathFunctionIcon16Regular';
4
- import { SearchLoupeIcon16Regular } from '@skbkontur/icons/icons/SearchLoupeIcon/SearchLoupeIcon16Regular';
5
- import { Button, Input } from '@skbkontur/react-ui';
6
-
7
- const [value, setValue] = React.useState('Foo');
8
-
9
- <Group width={300}>
10
- <Button>
11
- <MathFunctionIcon16Regular />
12
- </Button>
13
- <Input value={value} width="100%" onValueChange={setValue} />
14
- <Button>
15
- <SearchLoupeIcon16Regular />
16
- </Button>
17
- <Button>Bar</Button>
18
- </Group>;
19
- ```