@salutejs/plasma-new-hope 0.82.0-canary.1203.9113315762.0 → 0.82.1-canary.1210.9126725322.0
Sign up to get free protection for your applications and to get access to all the features.
- package/package.json +2 -2
- package/styled-components/cjs/components/Avatar/Avatar.template-doc.mdx +3 -1
- package/styled-components/cjs/components/Badge/Badge.template-doc.mdx +9 -9
- package/styled-components/cjs/components/Button/Button.template-doc.mdx +8 -9
- package/styled-components/cjs/components/Cell/Cell.template-doc.mdx +68 -0
- package/styled-components/cjs/components/Checkbox/Checkbox.template-doc.mdx +2 -2
- package/styled-components/cjs/components/Chip/Chip.template-doc.mdx +1 -1
- package/styled-components/cjs/components/Combobox/Combobox.template-doc.mdx +14 -14
- package/styled-components/cjs/components/Counter/Counter.template-doc.mdx +5 -5
- package/styled-components/cjs/components/Divider/Divider.template-docs.mdx +57 -0
- package/styled-components/cjs/components/Drawer/Drawer.template-doc.mdx +3 -3
- package/styled-components/cjs/components/Dropdown/Dropdown.template-doc.mdx +262 -261
- package/styled-components/cjs/components/IconButton/IconButton.template-doc.mdx +156 -0
- package/styled-components/cjs/components/Image/Image.template-doc.mdx +1 -1
- package/styled-components/cjs/components/Link/Link.template-doc.mdx +4 -4
- package/styled-components/cjs/components/Modal/Modal.template-doc.mdx +85 -33
- package/styled-components/cjs/components/Notification/Notification.template-doc.mdx +1 -2
- package/styled-components/cjs/components/Pagination/Pagination.template-doc.mdx +130 -0
- package/styled-components/cjs/components/Popover/Popover.template-doc.mdx +3 -3
- package/styled-components/cjs/components/Popup/Popup.template-doc.mdx +70 -74
- package/styled-components/cjs/components/Progress/Progress.template-doc.mdx +33 -0
- package/styled-components/cjs/components/Radiobox/Radiobox.template-doc.mdx +2 -1
- package/styled-components/cjs/components/Segment/Segment.template-doc.mdx +2 -2
- package/styled-components/cjs/components/Skeleton/Skeleton.template-doc.mdx +4 -4
- package/styled-components/cjs/components/Tabs/Tabs.template-doc.mdx +1 -1
- package/styled-components/cjs/components/TextField/TextField.template-doc.mdx +2 -2
- package/styled-components/cjs/components/Toolbar/Toolbar.template-doc.mdx +120 -0
- package/styled-components/es/components/Avatar/Avatar.template-doc.mdx +3 -1
- package/styled-components/es/components/Badge/Badge.template-doc.mdx +9 -9
- package/styled-components/es/components/Button/Button.template-doc.mdx +8 -9
- package/styled-components/es/components/Cell/Cell.template-doc.mdx +68 -0
- package/styled-components/es/components/Checkbox/Checkbox.template-doc.mdx +2 -2
- package/styled-components/es/components/Chip/Chip.template-doc.mdx +1 -1
- package/styled-components/es/components/Combobox/Combobox.template-doc.mdx +14 -14
- package/styled-components/es/components/Counter/Counter.template-doc.mdx +5 -5
- package/styled-components/es/components/Divider/Divider.template-docs.mdx +57 -0
- package/styled-components/es/components/Drawer/Drawer.template-doc.mdx +3 -3
- package/styled-components/es/components/Dropdown/Dropdown.template-doc.mdx +262 -261
- package/styled-components/es/components/IconButton/IconButton.template-doc.mdx +156 -0
- package/styled-components/es/components/Image/Image.template-doc.mdx +1 -1
- package/styled-components/es/components/Link/Link.template-doc.mdx +4 -4
- package/styled-components/es/components/Modal/Modal.template-doc.mdx +85 -33
- package/styled-components/es/components/Notification/Notification.template-doc.mdx +1 -2
- package/styled-components/es/components/Pagination/Pagination.template-doc.mdx +130 -0
- package/styled-components/es/components/Popover/Popover.template-doc.mdx +3 -3
- package/styled-components/es/components/Popup/Popup.template-doc.mdx +70 -74
- package/styled-components/es/components/Progress/Progress.template-doc.mdx +33 -0
- package/styled-components/es/components/Radiobox/Radiobox.template-doc.mdx +2 -1
- package/styled-components/es/components/Segment/Segment.template-doc.mdx +2 -2
- package/styled-components/es/components/Skeleton/Skeleton.template-doc.mdx +4 -4
- package/styled-components/es/components/Tabs/Tabs.template-doc.mdx +1 -1
- package/styled-components/es/components/TextField/TextField.template-doc.mdx +2 -2
- package/styled-components/es/components/Toolbar/Toolbar.template-doc.mdx +120 -0
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@salutejs/plasma-new-hope",
|
3
|
-
"version": "0.82.
|
3
|
+
"version": "0.82.1-canary.1210.9126725322.0",
|
4
4
|
"description": "Salute Design System blueprint",
|
5
5
|
"main": "cjs/index.js",
|
6
6
|
"module": "es/index.js",
|
@@ -102,5 +102,5 @@
|
|
102
102
|
"react-popper": "2.3.0",
|
103
103
|
"storeon": "3.1.5"
|
104
104
|
},
|
105
|
-
"gitHead": "
|
105
|
+
"gitHead": "855b9b58dfdd960e3e6ad14e1720a0ed2a32c1ca"
|
106
106
|
}
|
@@ -32,7 +32,9 @@ export function App() {
|
|
32
32
|
```
|
33
33
|
|
34
34
|
### Инициалы вместо фотографии
|
35
|
-
Инициалы можно задать с помощью свойства `name`.
|
35
|
+
Инициалы можно задать с помощью свойства `name`.
|
36
|
+
Желательный формат строки - "Имя Фамилия".
|
37
|
+
Также не должно быть свойства url.
|
36
38
|
|
37
39
|
```tsx live
|
38
40
|
import React from 'react';
|
@@ -11,7 +11,7 @@ import { PropsTable, Description } from '@site/src/components';
|
|
11
11
|
|
12
12
|
## Примеры
|
13
13
|
|
14
|
-
### Размер
|
14
|
+
### Размер badge
|
15
15
|
Размер задается с помощью свойства `size`.
|
16
16
|
|
17
17
|
Возможные значения свойства: `"l"`, `"m"`, `"s"`.
|
@@ -31,7 +31,7 @@ export function App() {
|
|
31
31
|
}
|
32
32
|
```
|
33
33
|
|
34
|
-
### Скругленность
|
34
|
+
### Скругленность badge
|
35
35
|
Скругленность задается с помощью свойства `pilled`:
|
36
36
|
|
37
37
|
```tsx live
|
@@ -49,16 +49,16 @@ export function App() {
|
|
49
49
|
}
|
50
50
|
```
|
51
51
|
|
52
|
-
### Вид
|
53
|
-
Вид
|
52
|
+
### Вид badge
|
53
|
+
Вид `badge` задается с помощью свойства `view`. Возможные значения свойства `view`:
|
54
54
|
|
55
|
-
+ `"primary"` – основной
|
55
|
+
+ `"primary"` – основной badge;
|
56
56
|
+ `"accent"` – бейдж акцентного цвета;
|
57
57
|
+ `"positive"` – успешное завершение;
|
58
58
|
+ `"warning"` – предупреждение;
|
59
59
|
+ `"negative"` – ошибка;
|
60
|
-
+ `"dark"` – темный
|
61
|
-
+ `"light"` – светлый
|
60
|
+
+ `"dark"` – темный badge;
|
61
|
+
+ `"light"` – светлый badge.
|
62
62
|
|
63
63
|
```tsx live
|
64
64
|
import React from 'react';
|
@@ -79,7 +79,7 @@ export function App() {
|
|
79
79
|
}
|
80
80
|
```
|
81
81
|
|
82
|
-
|
82
|
+
Так же на вид badge влияет свойство `transparent`:
|
83
83
|
|
84
84
|
```tsx live
|
85
85
|
import React from 'react';
|
@@ -101,7 +101,7 @@ export function App() {
|
|
101
101
|
```
|
102
102
|
|
103
103
|
### Иконка слева / справа
|
104
|
-
В левой и/или правой части
|
104
|
+
В левой и/или правой части badge можно отобразить иконку:
|
105
105
|
|
106
106
|
```tsx live
|
107
107
|
import React from 'react';
|
@@ -21,7 +21,7 @@ import { PropsTable, Description } from '@site/src/components';
|
|
21
21
|
|
22
22
|
```tsx live
|
23
23
|
import React from 'react';
|
24
|
-
import { Button } from '@salutejs/{{package}}';
|
24
|
+
import { Button } from '@salutejs/{{ package }}';
|
25
25
|
import { IconDownload } from '@salutejs/plasma-icons';
|
26
26
|
|
27
27
|
export function App() {
|
@@ -55,7 +55,7 @@ export function App() {
|
|
55
55
|
|
56
56
|
```tsx live
|
57
57
|
import React from 'react';
|
58
|
-
import { Button } from '@salutejs/{{package}}';
|
58
|
+
import { Button } from '@salutejs/{{ package }}';
|
59
59
|
|
60
60
|
export function App() {
|
61
61
|
return (
|
@@ -80,7 +80,7 @@ export function App() {
|
|
80
80
|
|
81
81
|
```tsx live
|
82
82
|
import React from 'react';
|
83
|
-
import { Button } from '@salutejs/{{package}}';
|
83
|
+
import { Button } from '@salutejs/{{ package }}';
|
84
84
|
|
85
85
|
export function App() {
|
86
86
|
return (
|
@@ -106,7 +106,7 @@ export function App() {
|
|
106
106
|
|
107
107
|
```tsx live
|
108
108
|
import React from 'react';
|
109
|
-
import { Button } from '@salutejs/{{package}}';
|
109
|
+
import { Button } from '@salutejs/{{ package }}';
|
110
110
|
|
111
111
|
export function App() {
|
112
112
|
return (
|
@@ -132,15 +132,15 @@ export function App() {
|
|
132
132
|
|
133
133
|
```tsx live
|
134
134
|
import React from 'react';
|
135
|
-
import { Button } from '@salutejs/{{package}}';
|
135
|
+
import { Button } from '@salutejs/{{ package }}';
|
136
136
|
import { IconDownload } from '@salutejs/plasma-icons';
|
137
137
|
|
138
138
|
export function App() {
|
139
139
|
return (
|
140
140
|
<div>
|
141
|
-
<Button contentLeft={<IconDownload />} />
|
141
|
+
<Button contentLeft={<IconDownload color="inherit" />} />
|
142
142
|
|
143
|
-
<Button contentLeft={<IconDownload />} pin="circle-circle" />
|
143
|
+
<Button contentLeft={<IconDownload color="inherit" />} pin="circle-circle" />
|
144
144
|
</div>
|
145
145
|
);
|
146
146
|
}
|
@@ -151,8 +151,7 @@ export function App() {
|
|
151
151
|
|
152
152
|
```tsx live
|
153
153
|
import React from 'react';
|
154
|
-
import { Button } from '@salutejs/{{package}}';
|
155
|
-
import { IconDownload } from '@salutejs/plasma-icons';
|
154
|
+
import { Button } from '@salutejs/{{ package }}';
|
156
155
|
|
157
156
|
export function App() {
|
158
157
|
return (
|
@@ -0,0 +1,68 @@
|
|
1
|
+
---
|
2
|
+
id: cell
|
3
|
+
title: Cell
|
4
|
+
---
|
5
|
+
|
6
|
+
import { PropsTable, Description } from '@site/src/components';
|
7
|
+
|
8
|
+
# Cell
|
9
|
+
<PropsTable name="Cell" />
|
10
|
+
<Description name="Cell" />
|
11
|
+
|
12
|
+
Компонент ячейки представляет собой стилизованные слоты для контента.
|
13
|
+
|
14
|
+
Также имеются вспомогательные компоненты (Textbox, TextTitle, TextSubtitle, TextLabel).
|
15
|
+
|
16
|
+
Они представляют собой стилизованный текст и слот для них.
|
17
|
+
|
18
|
+
## Примеры
|
19
|
+
|
20
|
+
### Базовое использование
|
21
|
+
|
22
|
+
```tsx live
|
23
|
+
import React from 'react';
|
24
|
+
import { Avatar, Cell } from '@salutejs/{{ package }}';
|
25
|
+
import { IconChevronRight } from '@salutejs/plasma-icons';
|
26
|
+
|
27
|
+
export function App() {
|
28
|
+
return (
|
29
|
+
<>
|
30
|
+
<Cell
|
31
|
+
contentLeft={ <Avatar size="m" url="https://avatars.githubusercontent.com/u/1813468?v=4" /> }
|
32
|
+
size="m"
|
33
|
+
contentRight={<IconChevronRight color="inheart" size="xs" />}
|
34
|
+
title="Title"
|
35
|
+
subtitle="Subtitle"
|
36
|
+
label="Label"
|
37
|
+
/>
|
38
|
+
</>
|
39
|
+
);
|
40
|
+
}
|
41
|
+
```
|
42
|
+
|
43
|
+
### С использованием своих стилей или встроенных компонентов
|
44
|
+
|
45
|
+
```tsx live
|
46
|
+
import React from 'react';
|
47
|
+
import { Avatar, Cell , CellTextboxLabel , CellTextboxTitle , CellTextboxSubtitle, CellTextbox } from '@salutejs/{{ package }}';
|
48
|
+
import { IconChevronRight } from '@salutejs/plasma-icons';
|
49
|
+
|
50
|
+
export function App() {
|
51
|
+
return (
|
52
|
+
<>
|
53
|
+
<Cell
|
54
|
+
contentLeft={ <Avatar size="m" url="https://avatars.githubusercontent.com/u/1813468?v=4" /> }
|
55
|
+
size="m"
|
56
|
+
contentRight={<IconChevronRight color="inheart" size="xs" />}
|
57
|
+
>
|
58
|
+
<CellTextbox>
|
59
|
+
<CellTextboxLabel>Label</CellTextboxLabel>
|
60
|
+
<CellTextboxTitle>Title</CellTextboxTitle>
|
61
|
+
<CellTextboxSubtitle>Subtitle</CellTextboxSubtitle>
|
62
|
+
<div style=\{{'font-size': '12px', opacity: 0.4}}>Caption</div>
|
63
|
+
</CellTextbox>
|
64
|
+
</Cell>
|
65
|
+
</>
|
66
|
+
);
|
67
|
+
}
|
68
|
+
```
|
@@ -14,7 +14,7 @@ import { PropsTable, Description } from '@site/src/components';
|
|
14
14
|
|
15
15
|
```tsx live
|
16
16
|
import React from 'react';
|
17
|
-
import { Checkbox } from '@salutejs/
|
17
|
+
import { Checkbox } from '@salutejs/{{ package }}';
|
18
18
|
|
19
19
|
export function App() {
|
20
20
|
return (
|
@@ -31,7 +31,7 @@ export function App() {
|
|
31
31
|
|
32
32
|
```tsx live
|
33
33
|
import React from 'react';
|
34
|
-
import { Checkbox } from '@salutejs/
|
34
|
+
import { Checkbox } from '@salutejs/{{ package }}';
|
35
35
|
|
36
36
|
export function App() {
|
37
37
|
return (
|
@@ -72,7 +72,7 @@ export function App() {
|
|
72
72
|
Вид Chip задается с помощью свойства `view`. Возможные значения свойства `view`:
|
73
73
|
+ `"default"` – основная;
|
74
74
|
+ `"secondary"` – вторичная;
|
75
|
-
+ `"accent"` –
|
75
|
+
+ `"accent"` – акцентный;
|
76
76
|
|
77
77
|
```tsx live
|
78
78
|
import React from 'react';
|
@@ -22,24 +22,24 @@ import { PropsTable, Description } from '@site/src/components';
|
|
22
22
|
## Клавиатурная навигация
|
23
23
|
|
24
24
|
Данный компонент может полностью управляться с помощью клавиатуры, используя следующие клавиши:
|
25
|
-
- `Tab` - переход на
|
25
|
+
- `Tab` - переход на target (input)
|
26
26
|
- `Shift` + `tab` - выход с него (теряем фокус)
|
27
27
|
- `Стрелка вверх` / `стрелка вниз` - открыть выпадающий список и переместиться на первый элемент
|
28
28
|
- `Стрелка вверх` / `стрелка вниз` ходим по элементам с зацикливанием
|
29
|
-
- `Enter` - выбираем элемент, закрываем выпадающий список и переходим фокусом снова на
|
30
|
-
- Если мы ходим по
|
31
|
-
- Если мы ходим по
|
32
|
-
- В
|
29
|
+
- `Enter` - выбираем элемент, закрываем выпадающий список и переходим фокусом снова на target (input)
|
30
|
+
- Если мы ходим по select и нажимаем `Tab` - выпадающий список закрывается и теряем фокус
|
31
|
+
- Если мы ходим по select и нажимаем `Escape` - выпадающий список закрывается и фокусом остаёмся на target
|
32
|
+
- В multi-select то же самое кроме закрытия выпадающего списка при выборе элемента
|
33
33
|
- Когда находимся на первом чипе, нажимаем `стрелку влево` / `стрелку вправо` - переходим по чипам
|
34
|
-
- Когда оказываемся на последнем чипе и нажимаем `стрелку вправо` - переходим на
|
35
|
-
- Когда находимся на
|
36
|
-
- Когда находимся на
|
34
|
+
- Когда оказываемся на последнем чипе и нажимаем `стрелку вправо` - переходим на target (input)
|
35
|
+
- Когда находимся на target (input) и нажимаем `Backspace` - удаляется последний чип
|
36
|
+
- Когда находимся на target (input) и нажимаем `стрелку влево` - переходим на последний чип
|
37
37
|
- Нажимаем `Backspace` - удаляем выбранный чип и переходим на предыдущий
|
38
|
-
- Если удалили последний чип, то фокусируемся на
|
38
|
+
- Если удалили последний чип, то фокусируемся на target
|
39
39
|
- Если находимся в выборе элемента из выпадающего списка и нажимаем `стрелку влево` / `стрелку вправо` - попадаем на самый последний чип
|
40
40
|
- Если находимся в режиме выбора элемента и нажимаем `стрелку вниз` / `стрелку вверх` находясь на последнем / первом элементе, то перескакиваем в начало / в конец
|
41
|
-
- Если находимся в режиме выбора элемента и нажимаем любую клавишу **кроме** `стрелки вниз` / `вверх` / `влево` / `вправо` / `Escape` / `Tab` / `Enter`, то переходим на
|
42
|
-
- Ввод значение в
|
41
|
+
- Если находимся в режиме выбора элемента и нажимаем любую клавишу **кроме** `стрелки вниз` / `вверх` / `влево` / `вправо` / `Escape` / `Tab` / `Enter`, то переходим на target (input) и вводим значения
|
42
|
+
- Ввод значение в target (input) приводит к фильтрации элементов в выпадающем списке. Если значение не соответствует ни одному элементу, то отобразится сообщение "Элементы не найдены"
|
43
43
|
|
44
44
|
### Single
|
45
45
|
|
@@ -178,12 +178,12 @@ export function App() {
|
|
178
178
|
```
|
179
179
|
|
180
180
|
### Применение пользовательского фильтра
|
181
|
-
`Combobox` поддерживает возможность создавать собственные правила для фильтрации списка элементов с помощью функции
|
182
|
-
которая срабатывает на каждый элемент и если возвращает `true`, то элемент
|
181
|
+
`Combobox` поддерживает возможность создавать собственные правила для фильтрации списка элементов с помощью функции callback `filterFunction`,
|
182
|
+
которая срабатывает на каждый элемент и если возвращает `true`, то элемент rendering, иначе нет.
|
183
183
|
|
184
184
|
```tsx live
|
185
185
|
import React from 'react';
|
186
|
-
import { Combobox } from '@salutejs/{{ package }}';
|
186
|
+
import { Combobox, ComboboxItem } from '@salutejs/{{ package }}';
|
187
187
|
|
188
188
|
export function App() {
|
189
189
|
const [value, setValue] = React.useState(['item_0']);
|
@@ -11,7 +11,7 @@ import { PropsTable, Description } from '@site/src/components';
|
|
11
11
|
|
12
12
|
## Примеры
|
13
13
|
|
14
|
-
### Максимальное значение числового
|
14
|
+
### Максимальное значение числового badge
|
15
15
|
Задается с помощью свойства `maxCount`.
|
16
16
|
|
17
17
|
```tsx live
|
@@ -28,7 +28,7 @@ export function App() {
|
|
28
28
|
}
|
29
29
|
```
|
30
30
|
|
31
|
-
### Размер числового
|
31
|
+
### Размер числового badge
|
32
32
|
Размер задается с помощью свойства `size`. Возможные значения свойства: `"xs"` или `"xxs"`.
|
33
33
|
|
34
34
|
```tsx live
|
@@ -45,7 +45,7 @@ export function App() {
|
|
45
45
|
}
|
46
46
|
```
|
47
47
|
|
48
|
-
### Вид числового
|
48
|
+
### Вид числового badge
|
49
49
|
Вид задается с помощью свойства `view`. Возможные значения свойства `view`:
|
50
50
|
|
51
51
|
+ `"primary"` – основной бейдж;
|
@@ -53,8 +53,8 @@ export function App() {
|
|
53
53
|
+ `"positive"` – успешное завершение;
|
54
54
|
+ `"warning"` – предупреждение;
|
55
55
|
+ `"negative"` – ошибка;
|
56
|
-
+ `"dark"` – темный
|
57
|
-
+ `"light"` – светлый
|
56
|
+
+ `"dark"` – темный badge;
|
57
|
+
+ `"light"` – светлый badge.
|
58
58
|
|
59
59
|
```tsx live
|
60
60
|
import React from 'react';
|
@@ -0,0 +1,57 @@
|
|
1
|
+
---
|
2
|
+
id: divider
|
3
|
+
title: Divider
|
4
|
+
---
|
5
|
+
|
6
|
+
import { PropsTable, Description } from '@site/src/components';
|
7
|
+
|
8
|
+
## Divider
|
9
|
+
<Description name="Divider" />
|
10
|
+
<PropsTable name="Divider" exclude={['css']} />
|
11
|
+
|
12
|
+
## Использование
|
13
|
+
Компонент `Divider` используется для визуального разделения компонент.
|
14
|
+
|
15
|
+
### Ориентация разделителя
|
16
|
+
Ориентация разделителя задается с помощью свойства orientation.
|
17
|
+
|
18
|
+
Возможные значения свойства orientation:
|
19
|
+
+ "horizontal" – горизонтальная (по умолчанию);
|
20
|
+
+ "vertical" – вертикальная;
|
21
|
+
|
22
|
+
```tsx live
|
23
|
+
import React from 'react';
|
24
|
+
import { BodyS, Divider } from '@salutejs/{{ package }}';
|
25
|
+
|
26
|
+
export function App() {
|
27
|
+
const Demo = ({
|
28
|
+
orientation = 'horizontal',
|
29
|
+
length = '100%',
|
30
|
+
beforeText = 'Before',
|
31
|
+
afterText = 'After',
|
32
|
+
}) => {
|
33
|
+
const wrapperStyle = {
|
34
|
+
display: "inline-flex",
|
35
|
+
gap: "0.5rem",
|
36
|
+
alignItems: "center",
|
37
|
+
justifyContent: "center",
|
38
|
+
flexDirection: orientation === "horizontal" ? "column" : "row"
|
39
|
+
}
|
40
|
+
|
41
|
+
return (
|
42
|
+
<div style={wrapperStyle}>
|
43
|
+
<BodyS>{beforeText}</BodyS>
|
44
|
+
<Divider orientation={orientation} length={length} />
|
45
|
+
<BodyS>{afterText}</BodyS>
|
46
|
+
</div>
|
47
|
+
);
|
48
|
+
};
|
49
|
+
|
50
|
+
return (
|
51
|
+
<div style=\{{ display: "flex", gap: "2rem" }}>
|
52
|
+
<Demo />
|
53
|
+
<Demo orientation="vertical" />
|
54
|
+
</div>
|
55
|
+
);
|
56
|
+
}
|
57
|
+
```
|
@@ -35,13 +35,13 @@ Drawer можно использовать как и на всем окне, т
|
|
35
35
|
а также определить отступы от точки с помощью `offset`.
|
36
36
|
|
37
37
|
У компонента Drawer есть 2 режима отображения:
|
38
|
-
модальный - добавляет при этом подложку(`overlay`), а также блокирует
|
39
|
-
немодальный - нет подложки,
|
38
|
+
- модальный - добавляет при этом подложку(`overlay`), а также блокирует scroll и фокус;
|
39
|
+
- немодальный - нет подложки, scroll и фокус не заблокированы.
|
40
40
|
|
41
41
|
```tsx live
|
42
42
|
import React, { useRef } from 'react';
|
43
43
|
import { IconDone } from '@salutejs/plasma-icons';
|
44
|
-
import { surfaceSolidSecondary } from '@salutejs/{{
|
44
|
+
import { surfaceSolidSecondary } from '@salutejs/{{ vertical }}/tokens';
|
45
45
|
|
46
46
|
import { SSRProvider, H3, Button, Drawer, DrawerHeader, DrawerContent, DrawerFooter, PopupProvider } from '@salutejs/{{ package }}';
|
47
47
|
|