@salutejs/plasma-new-hope 0.66.0-dev.0 → 0.66.1-canary.1128.8446493855.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 +97 -0
- package/styled-components/cjs/components/AvatarGroup/AvatarGroup.template-doc.mdx +29 -0
- package/styled-components/cjs/components/Badge/Badge.template-doc.mdx +131 -0
- package/styled-components/cjs/components/Button/Button.template-doc.mdx +162 -0
- package/styled-components/cjs/components/ButtonGroup/ButtonGroup.template-doc.mdx +123 -0
- package/styled-components/cjs/components/Calendar/Calendar.template-doc.mdx +208 -0
- package/styled-components/cjs/components/Checkbox/Checkbox.template-doc.mdx +44 -0
- package/styled-components/cjs/components/Chip/Chip.template-doc.mdx +90 -0
- package/styled-components/cjs/components/Combobox/Combobox.template-doc.mdx +237 -0
- package/styled-components/cjs/components/Counter/Counter.template-doc.mdx +76 -0
- package/styled-components/cjs/components/Drawer/Drawer.template-doc.mdx +170 -0
- package/styled-components/cjs/components/Dropdown/Dropdown.template-doc.mdx +80 -0
- package/styled-components/cjs/components/Grid/Grid.template-doc.mdx +142 -0
- package/styled-components/cjs/components/Image/Image.template-doc.mdx +26 -0
- package/styled-components/cjs/components/Indicator/Indicator.template-doc.mdx +76 -0
- package/styled-components/cjs/components/Link/Link.template-doc.mdx +23 -0
- package/styled-components/cjs/components/Modal/Modal.template-doc.mdx +56 -0
- package/styled-components/cjs/components/Notification/Notification.template-doc.mdx +59 -0
- package/styled-components/cjs/components/Overlay/Overlay.template-doc.mdx +10 -0
- package/styled-components/cjs/components/Popover/Popover.template-doc.mdx +72 -0
- package/styled-components/cjs/components/Popup/Popup.template-doc.mdx +209 -0
- package/styled-components/cjs/components/Radiobox/Radiobox.template-doc.mdx +38 -0
- package/styled-components/cjs/components/Segment/Segment.template-doc.mdx +61 -0
- package/styled-components/cjs/components/Select/Select.template-doc.mdx +115 -0
- package/styled-components/cjs/components/Skeleton/Skeleton.template-doc.mdx +103 -0
- package/styled-components/cjs/components/Spinner/Spinner.template-doc.mdx +21 -0
- package/styled-components/cjs/components/Switch/Switch.template-doc.mdx +24 -0
- package/styled-components/cjs/components/Tabs/Tabs.template-doc.mdx +94 -0
- package/styled-components/cjs/components/TextArea/TextArea.template-doc.mdx +88 -0
- package/styled-components/cjs/components/TextField/TextField.template-doc.mdx +112 -0
- package/styled-components/cjs/components/Toast/Toast.template-doc.mdx +153 -0
- package/styled-components/cjs/components/Tooltip/Tooltip.template-doc.mdx +30 -0
- package/styled-components/cjs/components/Typography/Typography.template-doc.mdx +127 -0
- package/styled-components/es/components/Avatar/Avatar.template-doc.mdx +97 -0
- package/styled-components/es/components/AvatarGroup/AvatarGroup.template-doc.mdx +29 -0
- package/styled-components/es/components/Badge/Badge.template-doc.mdx +131 -0
- package/styled-components/es/components/Button/Button.template-doc.mdx +162 -0
- package/styled-components/es/components/ButtonGroup/ButtonGroup.template-doc.mdx +123 -0
- package/styled-components/es/components/Calendar/Calendar.template-doc.mdx +208 -0
- package/styled-components/es/components/Checkbox/Checkbox.template-doc.mdx +44 -0
- package/styled-components/es/components/Chip/Chip.template-doc.mdx +90 -0
- package/styled-components/es/components/Combobox/Combobox.template-doc.mdx +237 -0
- package/styled-components/es/components/Counter/Counter.template-doc.mdx +76 -0
- package/styled-components/es/components/Drawer/Drawer.template-doc.mdx +170 -0
- package/styled-components/es/components/Dropdown/Dropdown.template-doc.mdx +80 -0
- package/styled-components/es/components/Grid/Grid.template-doc.mdx +142 -0
- package/styled-components/es/components/Image/Image.template-doc.mdx +26 -0
- package/styled-components/es/components/Indicator/Indicator.template-doc.mdx +76 -0
- package/styled-components/es/components/Link/Link.template-doc.mdx +23 -0
- package/styled-components/es/components/Modal/Modal.template-doc.mdx +56 -0
- package/styled-components/es/components/Notification/Notification.template-doc.mdx +59 -0
- package/styled-components/es/components/Overlay/Overlay.template-doc.mdx +10 -0
- package/styled-components/es/components/Popover/Popover.template-doc.mdx +72 -0
- package/styled-components/es/components/Popup/Popup.template-doc.mdx +209 -0
- package/styled-components/es/components/Radiobox/Radiobox.template-doc.mdx +38 -0
- package/styled-components/es/components/Segment/Segment.template-doc.mdx +61 -0
- package/styled-components/es/components/Select/Select.template-doc.mdx +115 -0
- package/styled-components/es/components/Skeleton/Skeleton.template-doc.mdx +103 -0
- package/styled-components/es/components/Spinner/Spinner.template-doc.mdx +21 -0
- package/styled-components/es/components/Switch/Switch.template-doc.mdx +24 -0
- package/styled-components/es/components/Tabs/Tabs.template-doc.mdx +94 -0
- package/styled-components/es/components/TextArea/TextArea.template-doc.mdx +88 -0
- package/styled-components/es/components/TextField/TextField.template-doc.mdx +112 -0
- package/styled-components/es/components/Toast/Toast.template-doc.mdx +153 -0
- package/styled-components/es/components/Tooltip/Tooltip.template-doc.mdx +30 -0
- package/styled-components/es/components/Typography/Typography.template-doc.mdx +127 -0
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@salutejs/plasma-new-hope",
|
3
|
-
"version": "0.66.
|
3
|
+
"version": "0.66.1-canary.1128.8446493855.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": "53ab9ecd06142aff1f9a85a5af50d508f8199cd3"
|
106
106
|
}
|
@@ -0,0 +1,97 @@
|
|
1
|
+
---
|
2
|
+
id: avatar
|
3
|
+
title: Avatar
|
4
|
+
---
|
5
|
+
|
6
|
+
import { PropsTable, Description } from '@site/src/components';
|
7
|
+
|
8
|
+
# Avatar
|
9
|
+
<Description name="Avatar" />
|
10
|
+
<PropsTable name="Avatar" exclude={['css']} />
|
11
|
+
|
12
|
+
|
13
|
+
## Примеры
|
14
|
+
|
15
|
+
### Размер аватара
|
16
|
+
Размер задается с помощью свойства `size`. Возможные значения свойства: `"xxl"`, `"l"`, `"m"`, `"s"`, `"fit"`.
|
17
|
+
|
18
|
+
```tsx live
|
19
|
+
import React from 'react';
|
20
|
+
import { Avatar } from '@salutejs/{{ package }}';
|
21
|
+
|
22
|
+
export function App() {
|
23
|
+
return (
|
24
|
+
<>
|
25
|
+
<Avatar size="xxl" url="https://avatars.githubusercontent.com/u/1813468?v=4" />
|
26
|
+
<Avatar size="l" url="https://avatars.githubusercontent.com/u/1813468?v=4" />
|
27
|
+
<Avatar size="m" url="https://avatars.githubusercontent.com/u/1813468?v=4" />
|
28
|
+
<Avatar size="s" url="https://avatars.githubusercontent.com/u/1813468?v=4" />
|
29
|
+
</>
|
30
|
+
);
|
31
|
+
}
|
32
|
+
```
|
33
|
+
|
34
|
+
### Инициалы вместо фотографии
|
35
|
+
Инициалы можно задать с помощью свойства `name`. Желательный формат строки - "Имя Фамилия". Также не должно быть свойства url.
|
36
|
+
|
37
|
+
```tsx live
|
38
|
+
import React from 'react';
|
39
|
+
import { Avatar } from '@salutejs/{{ package }}';
|
40
|
+
|
41
|
+
export function App() {
|
42
|
+
return (
|
43
|
+
<>
|
44
|
+
<Avatar name="Иван Фадеев" />
|
45
|
+
</>
|
46
|
+
);
|
47
|
+
}
|
48
|
+
```
|
49
|
+
|
50
|
+
### Статус аватара
|
51
|
+
Статус задается с помощью свойства `status`. Возможные значения: `"active"`, `"inactive"`.
|
52
|
+
|
53
|
+
```tsx live
|
54
|
+
import React from 'react';
|
55
|
+
import { Avatar } from '@salutejs/{{ package }}';
|
56
|
+
|
57
|
+
export function App() {
|
58
|
+
return (
|
59
|
+
<>
|
60
|
+
<Avatar status="active" name="Иван Фадеев" />
|
61
|
+
<Avatar status="inactive" name="Иван Фадеев" />
|
62
|
+
</>
|
63
|
+
);
|
64
|
+
}
|
65
|
+
```
|
66
|
+
|
67
|
+
### Увеличение при наведении
|
68
|
+
Опциональное свойство `"isScalable"`.
|
69
|
+
|
70
|
+
```tsx live
|
71
|
+
import React from 'react';
|
72
|
+
import { Avatar } from '@salutejs/{{ package }}';
|
73
|
+
|
74
|
+
export function App() {
|
75
|
+
return (
|
76
|
+
<>
|
77
|
+
<Avatar isScalable name="Иван Фадеев" />
|
78
|
+
</>
|
79
|
+
);
|
80
|
+
}
|
81
|
+
```
|
82
|
+
|
83
|
+
### Доступность
|
84
|
+
Добавляем `"role"` и `"tabIndex"`.
|
85
|
+
|
86
|
+
```tsx live
|
87
|
+
import React from 'react';
|
88
|
+
import { Avatar } from '@salutejs/{{ package }}';
|
89
|
+
|
90
|
+
export function App() {
|
91
|
+
return (
|
92
|
+
<>
|
93
|
+
<Avatar role="button" tabIndex="0" name="Иван Фадеев" />
|
94
|
+
</>
|
95
|
+
);
|
96
|
+
}
|
97
|
+
```
|
@@ -0,0 +1,29 @@
|
|
1
|
+
---
|
2
|
+
id: avatarGroup
|
3
|
+
title: AvatarGroup
|
4
|
+
---
|
5
|
+
|
6
|
+
import { PropsTable, Description } from '@site/src/components';
|
7
|
+
|
8
|
+
# AvatarGroup
|
9
|
+
<Description name="AvatarGroup" />
|
10
|
+
<PropsTable name="AvatarGroup" exclude={['css']} />
|
11
|
+
|
12
|
+
AvatarGroup это обертка для Avatar. Принимает в себя группу из avatar's.
|
13
|
+
|
14
|
+
```tsx live
|
15
|
+
import React from 'react';
|
16
|
+
import { Avatar, AvatarGroup } from '@salutejs/{{ package }}';
|
17
|
+
|
18
|
+
export function App() {
|
19
|
+
return (
|
20
|
+
<AvatarGroup>
|
21
|
+
{
|
22
|
+
Array(5).fill(true).map(() => (
|
23
|
+
<Avatar size="xxl" url="https://avatars.githubusercontent.com/u/1813468?v=4" />
|
24
|
+
))
|
25
|
+
}
|
26
|
+
</AvatarGroup>
|
27
|
+
);
|
28
|
+
}
|
29
|
+
```
|
@@ -0,0 +1,131 @@
|
|
1
|
+
---
|
2
|
+
id: badge
|
3
|
+
title: Badge
|
4
|
+
---
|
5
|
+
|
6
|
+
import { PropsTable, Description } from '@site/src/components';
|
7
|
+
|
8
|
+
# Badge
|
9
|
+
<Description name="Badge" />
|
10
|
+
<PropsTable name="Badge" exclude={['css']} />
|
11
|
+
|
12
|
+
## Примеры
|
13
|
+
|
14
|
+
### Размер бейджа
|
15
|
+
Размер задается с помощью свойства `size`.
|
16
|
+
|
17
|
+
Возможные значения свойства: `"l"`, `"m"`, `"s"`.
|
18
|
+
|
19
|
+
```tsx live
|
20
|
+
import React from 'react';
|
21
|
+
import { Badge } from '@salutejs/{{ package }}';
|
22
|
+
|
23
|
+
export function App() {
|
24
|
+
return (
|
25
|
+
<div>
|
26
|
+
<Badge text="Бейдж" size="l" />
|
27
|
+
<Badge text="Бейдж" size="m" />
|
28
|
+
<Badge text="Бейдж" size="s" />
|
29
|
+
</div>
|
30
|
+
);
|
31
|
+
}
|
32
|
+
```
|
33
|
+
|
34
|
+
### Скругленность бейджа
|
35
|
+
Скругленность задается с помощью свойства `pilled`:
|
36
|
+
|
37
|
+
```tsx live
|
38
|
+
import React from 'react';
|
39
|
+
import { Badge } from '@salutejs/{{ package }}';
|
40
|
+
|
41
|
+
export function App() {
|
42
|
+
return (
|
43
|
+
<div>
|
44
|
+
<Badge text="Бейдж" size="l" pilled />
|
45
|
+
<Badge text="Бейдж" size="m" pilled />
|
46
|
+
<Badge text="Бейдж" size="s" pilled />
|
47
|
+
</div>
|
48
|
+
);
|
49
|
+
}
|
50
|
+
```
|
51
|
+
|
52
|
+
### Вид бейджа
|
53
|
+
Вид бейджа задается с помощью свойства `view`. Возможные значения свойства `view`:
|
54
|
+
|
55
|
+
+ `"primary"` – основной бейдж;
|
56
|
+
+ `"accent"` – бейдж акцентного цвета;
|
57
|
+
+ `"positive"` – успешное завершение;
|
58
|
+
+ `"warning"` – предупреждение;
|
59
|
+
+ `"negative"` – ошибка;
|
60
|
+
+ `"dark"` – темный бэйдж;
|
61
|
+
+ `"light"` – светлый бэйдж.
|
62
|
+
|
63
|
+
```tsx live
|
64
|
+
import React from 'react';
|
65
|
+
import { Badge } from '@salutejs/{{ package }}';
|
66
|
+
|
67
|
+
export function App() {
|
68
|
+
return (
|
69
|
+
<div>
|
70
|
+
<Badge text="Бейдж" size="l" view="primary" />
|
71
|
+
<Badge text="Бейдж" size="l" view="accent" />
|
72
|
+
<Badge text="Бейдж" size="l" view="positive" />
|
73
|
+
<Badge text="Бейдж" size="l" view="warning" />
|
74
|
+
<Badge text="Бейдж" size="l" view="negative" />
|
75
|
+
<Badge text="Бейдж" size="l" view="dark" />
|
76
|
+
<Badge text="Бейдж" size="l" view="light" />
|
77
|
+
</div>
|
78
|
+
);
|
79
|
+
}
|
80
|
+
```
|
81
|
+
|
82
|
+
так же на вид бейджа влияет свойство `transparent`:
|
83
|
+
|
84
|
+
```tsx live
|
85
|
+
import React from 'react';
|
86
|
+
import { Badge } from '@salutejs/{{ package }}';
|
87
|
+
|
88
|
+
export function App() {
|
89
|
+
return (
|
90
|
+
<div>
|
91
|
+
<Badge text="Бейдж" size="l" view="primary" transparent />
|
92
|
+
<Badge text="Бейдж" size="l" view="accent" transparent />
|
93
|
+
<Badge text="Бейдж" size="l" view="positive" transparent />
|
94
|
+
<Badge text="Бейдж" size="l" view="warning" transparent />
|
95
|
+
<Badge text="Бейдж" size="l" view="negative" transparent />
|
96
|
+
<Badge text="Бейдж" size="l" view="dark" transparent />
|
97
|
+
<Badge text="Бейдж" size="l" view="light" transparent />
|
98
|
+
</div>
|
99
|
+
);
|
100
|
+
}
|
101
|
+
```
|
102
|
+
|
103
|
+
### Иконка слева / справа
|
104
|
+
В левой и/или правой части бейджа можно отобразить иконку:
|
105
|
+
|
106
|
+
```tsx live
|
107
|
+
import React from 'react';
|
108
|
+
import { Badge } from '@salutejs/{{ package }}';
|
109
|
+
import { IconEye } from '@salutejs/plasma-icons';
|
110
|
+
|
111
|
+
export function App() {
|
112
|
+
return (
|
113
|
+
<div>
|
114
|
+
<Badge
|
115
|
+
text="Бейдж"
|
116
|
+
size="l"
|
117
|
+
view="primary"
|
118
|
+
contentLeft={
|
119
|
+
<IconEye color="inherit" size="xs" />
|
120
|
+
} />
|
121
|
+
<Badge
|
122
|
+
text="Бейдж"
|
123
|
+
size="l"
|
124
|
+
view="primary"
|
125
|
+
contentRight={
|
126
|
+
<IconEye color="inherit" size="xs" />
|
127
|
+
} />
|
128
|
+
</div>
|
129
|
+
);
|
130
|
+
}
|
131
|
+
```
|
@@ -0,0 +1,162 @@
|
|
1
|
+
---
|
2
|
+
id: button
|
3
|
+
title: Button
|
4
|
+
---
|
5
|
+
|
6
|
+
import { PropsTable, Description } from '@site/src/components';
|
7
|
+
|
8
|
+
# Button
|
9
|
+
Кнопки могут отображаться в нескольких размерах и цветах, могут содержать текст и/или иконку.
|
10
|
+
|
11
|
+
## Button
|
12
|
+
<Description name="Button" />
|
13
|
+
<PropsTable name="Button" />
|
14
|
+
|
15
|
+
## Использование
|
16
|
+
Компонент `Button` может содержать текст, который указывается в
|
17
|
+
свойстве `text`, или любой контент напрямую через `children`.
|
18
|
+
|
19
|
+
Свойство text можно использовать вместе со свойствами `contentLeft` и `contentRight`.
|
20
|
+
С их помощью можно размещать **иконку** слева или справа от текста.
|
21
|
+
|
22
|
+
```tsx live
|
23
|
+
import React from 'react';
|
24
|
+
import { Button } from '@salutejs/{{package}}';
|
25
|
+
import { IconDownload } from '@salutejs/plasma-icons';
|
26
|
+
|
27
|
+
export function App() {
|
28
|
+
return (
|
29
|
+
<div>
|
30
|
+
<Button text="Текст" />
|
31
|
+
|
32
|
+
<Button text="Текст" contentLeft={<IconDownload />} />
|
33
|
+
|
34
|
+
<Button text="Текст" contentRight={<IconDownload />} />
|
35
|
+
|
36
|
+
<Button contentLeft={<IconDownload />} />
|
37
|
+
|
38
|
+
<Button text="Текст" isLoading />
|
39
|
+
|
40
|
+
<Button text="Текст" isLoading loader={<div>Loader...</div>} />
|
41
|
+
|
42
|
+
<Button>
|
43
|
+
<IconDownload />
|
44
|
+
<span>Текст</span>
|
45
|
+
</Button>
|
46
|
+
</div>
|
47
|
+
);
|
48
|
+
}
|
49
|
+
```
|
50
|
+
|
51
|
+
## Примеры
|
52
|
+
|
53
|
+
### Размер кнопки
|
54
|
+
Размер кнопки задается с помощью свойства `size`. Возможные значения свойства: `"l"`, `"m"` или `"s"`:
|
55
|
+
|
56
|
+
```tsx live
|
57
|
+
import React from 'react';
|
58
|
+
import { Button } from '@salutejs/{{package}}';
|
59
|
+
|
60
|
+
export function App() {
|
61
|
+
return (
|
62
|
+
<div>
|
63
|
+
<Button text="Button" size="l" />
|
64
|
+
<Button text="Button" size="m" />
|
65
|
+
<Button text="Button" size="s" />
|
66
|
+
</div>
|
67
|
+
);
|
68
|
+
}
|
69
|
+
```
|
70
|
+
|
71
|
+
### Вид кнопки
|
72
|
+
Вид кнопки задается с помощью свойства `view`. Возможные значения свойства `view`:
|
73
|
+
+ `"primary"` – основная;
|
74
|
+
+ `"secondary"` – вторичная;
|
75
|
+
+ `"success"` – успешное завершение;
|
76
|
+
+ `"warning"` – предупреждение;
|
77
|
+
+ `"critical"` – ошибка;
|
78
|
+
+ `"checked"` – выбранное состояние;
|
79
|
+
+ `"clear"` – без цветового сопровождения.
|
80
|
+
|
81
|
+
```tsx live
|
82
|
+
import React from 'react';
|
83
|
+
import { Button } from '@salutejs/{{package}}';
|
84
|
+
|
85
|
+
export function App() {
|
86
|
+
return (
|
87
|
+
<div>
|
88
|
+
<Button text="Кнопка" size="s" view="primary" />
|
89
|
+
<Button text="Кнопка" size="s" view="secondary" />
|
90
|
+
<Button text="Кнопка" size="s" view="success" />
|
91
|
+
<Button text="Кнопка" size="s" view="warning" />
|
92
|
+
<Button text="Кнопка" size="s" view="critical" />
|
93
|
+
<Button text="Кнопка" size="s" view="checked" />
|
94
|
+
<Button text="Кнопка" size="s" view="overlay" />
|
95
|
+
<Button text="Кнопка" size="s" view="clear" />
|
96
|
+
</div>
|
97
|
+
);
|
98
|
+
}
|
99
|
+
```
|
100
|
+
|
101
|
+
### Границы кнопки
|
102
|
+
Границы кнопки задаются с помощью свойства `pin`. Возможные значения свойства `pin`:
|
103
|
+
+ `square` – обычное скругление;
|
104
|
+
+ `circle` – сильное скругление;
|
105
|
+
+ `clear` – нет скругления.
|
106
|
+
|
107
|
+
```tsx live
|
108
|
+
import React from 'react';
|
109
|
+
import { Button } from '@salutejs/{{package}}';
|
110
|
+
|
111
|
+
export function App() {
|
112
|
+
return (
|
113
|
+
<div>
|
114
|
+
<Button pin="square-square">Button</Button>
|
115
|
+
<Button pin="square-clear">Button</Button>
|
116
|
+
<Button pin="clear-square">Button</Button>
|
117
|
+
<Button pin="clear-clear">Button</Button>
|
118
|
+
<Button pin="clear-circle">Button</Button>
|
119
|
+
<Button pin="circle-clear">Button</Button>
|
120
|
+
<Button pin="circle-circle">Button</Button>
|
121
|
+
</div>
|
122
|
+
);
|
123
|
+
}
|
124
|
+
```
|
125
|
+
|
126
|
+
### Квадратные и круглые кнопки
|
127
|
+
Для отображения иконок и/или текста в квадратных или круглых кнопках с **равными сторонами**,
|
128
|
+
используйте компонент `Button` и свойство `contentLeft`, в которое требуется передать нужное значение.
|
129
|
+
|
130
|
+
По умолчанию границы кнопки **квадратные** (со скругленными углами) — `pin="square-square"`.
|
131
|
+
**Круглые** границы кнопки можно сделать с помощью свойства `pin` со значением `"circle-circle"`.
|
132
|
+
|
133
|
+
```tsx live
|
134
|
+
import React from 'react';
|
135
|
+
import { Button } from '@salutejs/{{package}}';
|
136
|
+
import { IconDownload } from '@salutejs/plasma-icons';
|
137
|
+
|
138
|
+
export function App() {
|
139
|
+
return (
|
140
|
+
<div>
|
141
|
+
<Button contentLeft={<IconDownload />} />
|
142
|
+
|
143
|
+
<Button contentLeft={<IconDownload />} pin="circle-circle" />
|
144
|
+
</div>
|
145
|
+
);
|
146
|
+
}
|
147
|
+
```
|
148
|
+
|
149
|
+
### Гиперссылка
|
150
|
+
Компонент поддерживает вывод в виде тега `<a>`, для этого необходимо указать свойство `as`:
|
151
|
+
|
152
|
+
```tsx live
|
153
|
+
import React from 'react';
|
154
|
+
import { Button } from '@salutejs/{{package}}';
|
155
|
+
import { IconDownload } from '@salutejs/plasma-icons';
|
156
|
+
|
157
|
+
export function App() {
|
158
|
+
return (
|
159
|
+
<Button as="a" text="Гиперссылка" />
|
160
|
+
);
|
161
|
+
}
|
162
|
+
```
|
@@ -0,0 +1,123 @@
|
|
1
|
+
---
|
2
|
+
id: buttonGroup
|
3
|
+
title: ButtonGroup
|
4
|
+
---
|
5
|
+
|
6
|
+
import { PropsTable, Description } from '@site/src/components';
|
7
|
+
|
8
|
+
# ButtonGroup
|
9
|
+
<Description name="ButtonGroup" />
|
10
|
+
<PropsTable name="ButtonGroup" exclude={['css']} />
|
11
|
+
|
12
|
+
## Использование
|
13
|
+
Компонент `ButtonGroup` - это обертка для Button. Принимает в себя группу кнопок.
|
14
|
+
|
15
|
+
```tsx live
|
16
|
+
import React from 'react';
|
17
|
+
import { ButtonGroup, Button } from '@salutejs/{{ package }}';
|
18
|
+
|
19
|
+
export function App() {
|
20
|
+
return (
|
21
|
+
<ButtonGroup>
|
22
|
+
{Array(5)
|
23
|
+
.fill(true)
|
24
|
+
.map((_, i) => (
|
25
|
+
<Button text={`Button ${i}`} />
|
26
|
+
))}
|
27
|
+
</ButtonGroup>
|
28
|
+
);
|
29
|
+
}
|
30
|
+
```
|
31
|
+
|
32
|
+
## Примеры
|
33
|
+
|
34
|
+
### Размер и вид группы кнопок
|
35
|
+
Размер и вид группы кнопок задается с помощью свойств `size` и `view` соответственно.
|
36
|
+
С помощью свойства `isCommonButtonStyles` можно отключить переопределение стилей для всех кнопок внутри группы.
|
37
|
+
Тогда каждая кнопка будет иметь настраиваемый размер и вид.
|
38
|
+
|
39
|
+
```tsx live
|
40
|
+
import React from 'react';
|
41
|
+
import { ButtonGroup, Button } from '@salutejs/{{ package }}';
|
42
|
+
|
43
|
+
export function App() {
|
44
|
+
return (
|
45
|
+
<div>
|
46
|
+
<ButtonGroup size="s" view="secondary">
|
47
|
+
{Array(5)
|
48
|
+
.fill(true)
|
49
|
+
.map((_, i) => (
|
50
|
+
<Button text={`Button ${i}`} />
|
51
|
+
))}
|
52
|
+
</ButtonGroup>
|
53
|
+
|
54
|
+
<ButtonGroup isCommonButtonStyles={false}>
|
55
|
+
<Button size="m" text="Default" />
|
56
|
+
<Button size="s" text="Primary" view="primary" />
|
57
|
+
<Button size="xs" text="Success" view="success" />
|
58
|
+
</ButtonGroup>
|
59
|
+
</div>
|
60
|
+
);
|
61
|
+
}
|
62
|
+
```
|
63
|
+
|
64
|
+
### Ориентация группы кнопок и отступы между кнопками
|
65
|
+
|
66
|
+
Группа кнопок может располагаться вертикально или горизонтально и иметь три вида отступов:
|
67
|
+
|
68
|
+
```tsx live
|
69
|
+
import React from 'react';
|
70
|
+
import { ButtonGroup, Button } from '@salutejs/{{ package }}';
|
71
|
+
|
72
|
+
export function App() {
|
73
|
+
return (
|
74
|
+
<div>
|
75
|
+
<ButtonGroup size="xs" orientation="vertical" gap="none">
|
76
|
+
{Array(5)
|
77
|
+
.fill(true)
|
78
|
+
.map((_, i) => (
|
79
|
+
<Button text={`Button ${i}`} />
|
80
|
+
))}
|
81
|
+
</ButtonGroup>
|
82
|
+
|
83
|
+
<ButtonGroup size="xs" orientation="horizontal" gap="wide">
|
84
|
+
{Array(4)
|
85
|
+
.fill(true)
|
86
|
+
.map((_, i) => (
|
87
|
+
<Button text={`Button ${i}`} />
|
88
|
+
))}
|
89
|
+
</ButtonGroup>
|
90
|
+
</div>
|
91
|
+
);
|
92
|
+
}
|
93
|
+
```
|
94
|
+
|
95
|
+
### Границы кнопки
|
96
|
+
Границы кнопки задаются с помощью свойства `shape`.
|
97
|
+
|
98
|
+
```tsx live
|
99
|
+
import React from 'react';
|
100
|
+
import { ButtonGroup, Button } from '@salutejs/{{ package }}';
|
101
|
+
|
102
|
+
export function App() {
|
103
|
+
return (
|
104
|
+
<div>
|
105
|
+
<ButtonGroup size="xs" shape="segmented">
|
106
|
+
{Array(3)
|
107
|
+
.fill(true)
|
108
|
+
.map((_, i) => (
|
109
|
+
<Button text={`Button ${i}`} />
|
110
|
+
))}
|
111
|
+
</ButtonGroup>
|
112
|
+
|
113
|
+
<ButtonGroup size="xs" shape="default">
|
114
|
+
{Array(3)
|
115
|
+
.fill(true)
|
116
|
+
.map((_, i) => (
|
117
|
+
<Button text={`Button ${i}`} />
|
118
|
+
))}
|
119
|
+
</ButtonGroup>
|
120
|
+
</div>
|
121
|
+
);
|
122
|
+
}
|
123
|
+
```
|