@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.
- package/CHANGELOG.md +8 -0
- package/package.json +1 -6
- package/cjs/components/Autocomplete/Autocomplete.md +0 -113
- package/cjs/components/Button/Button.md +0 -261
- package/cjs/components/Calendar/Calendar.md +0 -276
- package/cjs/components/Calendar/CalendarDay.md +0 -70
- package/cjs/components/Center/Center.md +0 -26
- package/cjs/components/Checkbox/Checkbox.md +0 -171
- package/cjs/components/ComboBox/ComboBox.md +0 -574
- package/cjs/components/CurrencyInput/CurrencyInput.md +0 -39
- package/cjs/components/CurrencyLabel/CurrencyLabel.md +0 -29
- package/cjs/components/DateInput/DateInput.md +0 -111
- package/cjs/components/DatePicker/DatePicker.md +0 -368
- package/cjs/components/Dropdown/Dropdown.md +0 -45
- package/cjs/components/DropdownMenu/DropdownMenu.md +0 -290
- package/cjs/components/FileUploader/FileUploader.md +0 -131
- package/cjs/components/FxInput/FxInput.md +0 -31
- package/cjs/components/Gapped/Gapped.md +0 -44
- package/cjs/components/GlobalLoader/GlobalLoader.md +0 -97
- package/cjs/components/Group/Group.md +0 -19
- package/cjs/components/Hint/Hint.md +0 -86
- package/cjs/components/Input/Input.md +0 -86
- package/cjs/components/Kebab/Kebab.md +0 -306
- package/cjs/components/Link/Link.md +0 -182
- package/cjs/components/Loader/Loader.md +0 -33
- package/cjs/components/MaskedInput/MaskedInput.md +0 -114
- package/cjs/components/MenuFooter/MenuFooter.md +0 -27
- package/cjs/components/MenuHeader/MenuHeader.md +0 -35
- package/cjs/components/MenuItem/MenuItem.md +0 -139
- package/cjs/components/MenuSeparator/MenuSeparator.md +0 -14
- package/cjs/components/MiniModal/MiniModal.md +0 -231
- package/cjs/components/Modal/Modal.md +0 -56
- package/cjs/components/Paging/Paging.md +0 -57
- package/cjs/components/PasswordInput/PasswordInput.md +0 -29
- package/cjs/components/Radio/Radio.md +0 -57
- package/cjs/components/RadioGroup/RadioGroup.md +0 -44
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.md +0 -75
- package/cjs/components/ScrollContainer/ScrollContainer.md +0 -224
- package/cjs/components/Select/Select.md +0 -113
- package/cjs/components/SidePage/SidePage.md +0 -65
- package/cjs/components/SingleToast/SingleToast.md +0 -36
- package/cjs/components/Spinner/Spinner.md +0 -36
- package/cjs/components/Sticky/Sticky.md +0 -28
- package/cjs/components/Switcher/Switcher.md +0 -111
- package/cjs/components/Tabs/Tab.md +0 -73
- package/cjs/components/Tabs/Tabs.md +0 -54
- package/cjs/components/Textarea/Textarea.md +0 -58
- package/cjs/components/Toast/Toast.md +0 -69
- package/cjs/components/Toggle/Toggle.md +0 -110
- package/cjs/components/Token/Token.md +0 -48
- package/cjs/components/TokenInput/TokenInput.md +0 -277
- package/cjs/components/Tooltip/Tooltip.md +0 -322
- package/cjs/components/TooltipMenu/TooltipMenu.md +0 -241
- package/cjs/internal/DataTids/DATATIDS.md +0 -12
- package/cjs/internal/DataTids/DataTids.d.ts +0 -12
- package/cjs/internal/DataTids/DataTids.js +0 -50
- package/cjs/internal/DataTids/DataTids.js.map +0 -1
- package/cjs/internal/DataTids/DataTids.styles.d.ts +0 -7
- package/cjs/internal/DataTids/DataTids.styles.js +0 -42
- package/cjs/internal/DataTids/DataTids.styles.js.map +0 -1
- package/cjs/internal/DataTids/componentsDataTids.d.ts +0 -5
- package/cjs/internal/DataTids/componentsDataTids.js +0 -15
- package/cjs/internal/DataTids/componentsDataTids.js.map +0 -1
- package/cjs/internal/ThemePlayground/Playground.md +0 -7
- package/cjs/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +0 -64
- package/cjs/lib/locale/LOCALECONTEXT.md +0 -222
- package/cjs/lib/theming/ThemeContext.md +0 -265
- package/components/Autocomplete/Autocomplete.md +0 -113
- package/components/Button/Button.md +0 -261
- package/components/Calendar/Calendar.md +0 -276
- package/components/Calendar/CalendarDay.md +0 -70
- package/components/Center/Center.md +0 -26
- package/components/Checkbox/Checkbox.md +0 -171
- package/components/ComboBox/ComboBox.md +0 -574
- package/components/CurrencyInput/CurrencyInput.md +0 -39
- package/components/CurrencyLabel/CurrencyLabel.md +0 -29
- package/components/DateInput/DateInput.md +0 -111
- package/components/DatePicker/DatePicker.md +0 -368
- package/components/Dropdown/Dropdown.md +0 -45
- package/components/DropdownMenu/DropdownMenu.md +0 -290
- package/components/FileUploader/FileUploader.md +0 -131
- package/components/FxInput/FxInput.md +0 -31
- package/components/Gapped/Gapped.md +0 -44
- package/components/GlobalLoader/GlobalLoader.md +0 -97
- package/components/Group/Group.md +0 -19
- package/components/Hint/Hint.md +0 -86
- package/components/Input/Input.md +0 -86
- package/components/Kebab/Kebab.md +0 -306
- package/components/Link/Link.md +0 -182
- package/components/Loader/Loader.md +0 -33
- package/components/MaskedInput/MaskedInput.md +0 -114
- package/components/MenuFooter/MenuFooter.md +0 -27
- package/components/MenuHeader/MenuHeader.md +0 -35
- package/components/MenuItem/MenuItem.md +0 -139
- package/components/MenuSeparator/MenuSeparator.md +0 -14
- package/components/MiniModal/MiniModal.md +0 -231
- package/components/Modal/Modal.md +0 -56
- package/components/Paging/Paging.md +0 -57
- package/components/PasswordInput/PasswordInput.md +0 -29
- package/components/Radio/Radio.md +0 -57
- package/components/RadioGroup/RadioGroup.md +0 -44
- package/components/ResponsiveLayout/ResponsiveLayout.md +0 -75
- package/components/ScrollContainer/ScrollContainer.md +0 -224
- package/components/Select/Select.md +0 -113
- package/components/SidePage/SidePage.md +0 -65
- package/components/SingleToast/SingleToast.md +0 -36
- package/components/Spinner/Spinner.md +0 -36
- package/components/Sticky/Sticky.md +0 -28
- package/components/Switcher/Switcher.md +0 -111
- package/components/Tabs/Tab.md +0 -73
- package/components/Tabs/Tabs.md +0 -54
- package/components/Textarea/Textarea.md +0 -58
- package/components/Toast/Toast.md +0 -69
- package/components/Toggle/Toggle.md +0 -110
- package/components/Token/Token.md +0 -48
- package/components/TokenInput/TokenInput.md +0 -277
- package/components/Tooltip/Tooltip.md +0 -322
- package/components/TooltipMenu/TooltipMenu.md +0 -241
- package/internal/DataTids/DATATIDS.md +0 -12
- package/internal/DataTids/DataTids/DataTids.js +0 -69
- package/internal/DataTids/DataTids/DataTids.js.map +0 -1
- package/internal/DataTids/DataTids/package.json +0 -6
- package/internal/DataTids/DataTids.d.ts +0 -12
- package/internal/DataTids/DataTids.styles/DataTids.styles.js +0 -20
- package/internal/DataTids/DataTids.styles/DataTids.styles.js.map +0 -1
- package/internal/DataTids/DataTids.styles/package.json +0 -6
- package/internal/DataTids/DataTids.styles.d.ts +0 -7
- package/internal/DataTids/componentsDataTids/componentsDataTids.js +0 -12
- package/internal/DataTids/componentsDataTids/componentsDataTids.js.map +0 -1
- package/internal/DataTids/componentsDataTids/package.json +0 -6
- package/internal/DataTids/componentsDataTids.d.ts +0 -5
- package/internal/ThemePlayground/Playground.md +0 -7
- package/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +0 -64
- package/lib/locale/LOCALECONTEXT.md +0 -222
- package/lib/theming/ThemeContext.md +0 -265
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
### Базовый пример
|
|
2
|
-
|
|
3
|
-
```jsx harmony
|
|
4
|
-
<Hint text="Подсказка">Базовая</Hint>
|
|
5
|
-
```
|
|
6
|
-
|
|
7
|
-
### Иконка
|
|
8
|
-
|
|
9
|
-
```jsx harmony
|
|
10
|
-
<Hint text="Редактирование">
|
|
11
|
-
<svg width="16" height="16" viewBox="0 0 16 16">
|
|
12
|
-
<path
|
|
13
|
-
fillRule="evenodd"
|
|
14
|
-
d="M13 12V12.998H8V12H13ZM3 13V11L9 4.99999L11 6.99999L5 13H3ZM13 5L11.5 6.5L9.5 4.5L11 3L13 5Z"
|
|
15
|
-
clipRule="evenodd"
|
|
16
|
-
/>
|
|
17
|
-
</svg>
|
|
18
|
-
</Hint>
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
### Сторона всплытия
|
|
22
|
-
|
|
23
|
-
```jsx harmony
|
|
24
|
-
<Hint pos={"left"} text="Подсказка слева">Всегда всплывает слева</Hint>
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
### Ограниченная ширина
|
|
28
|
-
```jsx harmony
|
|
29
|
-
<Hint
|
|
30
|
-
maxWidth="150px"
|
|
31
|
-
text="Очень много текста, рассказывающего про этот очень непонятный элемент"
|
|
32
|
-
>
|
|
33
|
-
Очень непонятный элемент
|
|
34
|
-
</Hint>
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### Открытие подсказки кнопкой
|
|
38
|
-
|
|
39
|
-
```jsx harmony
|
|
40
|
-
import { Button, Gapped } from '@skbkontur/react-ui';
|
|
41
|
-
|
|
42
|
-
const [isOpen, setIsOpen] = React.useState(false);
|
|
43
|
-
|
|
44
|
-
<Gapped>
|
|
45
|
-
<Hint opened={isOpen} manual text="Подсказка">Управляемая удалённо</Hint>
|
|
46
|
-
<Button onClick={() => setIsOpen(!isOpen)}>
|
|
47
|
-
{isOpen ? "Закрыть подсказку" : "Открыть подсказку"}
|
|
48
|
-
</Button>
|
|
49
|
-
</Gapped>
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### Всплытие без анимации
|
|
53
|
-
|
|
54
|
-
```jsx harmony
|
|
55
|
-
<Hint disableAnimations text={"Нет анимации :("}>Есть анимация?</Hint>
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### Встроеная обёртка
|
|
59
|
-
|
|
60
|
-
Подсказка должна отображаться даже на отключённых компонентах. Из коробки это работает только с контролами `react-ui`.
|
|
61
|
-
|
|
62
|
-
Нативные элементы, поддерживающие атрибут `disabled`, отключают необходимые события мыши.
|
|
63
|
-
В подобных случаях следуют использовать проп `useWrapper`:
|
|
64
|
-
|
|
65
|
-
```jsx harmony
|
|
66
|
-
<Hint useWrapper text="Подсказа всё равно отображается">
|
|
67
|
-
<button disabled>native button</button>
|
|
68
|
-
</Hint>
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### Кастомная обертка
|
|
72
|
-
Т.к. встроённая обёртка это `<span>` без стилей, то она может работать некорректно в определённых ситуациях.
|
|
73
|
-
В таких случаях стоит использовать собственную обётку:
|
|
74
|
-
|
|
75
|
-
```jsx harmony
|
|
76
|
-
<>
|
|
77
|
-
<Hint useWrapper text="Подсказа">
|
|
78
|
-
<button disabled style={{ height: 40 }}>useWrapper prop</button>
|
|
79
|
-
</Hint>
|
|
80
|
-
<Hint text="Подсказа">
|
|
81
|
-
<span style={{ display: 'inline-block' }}>
|
|
82
|
-
<button disabled style={{ height: 40 }}>custom wrapper</button>
|
|
83
|
-
</span>
|
|
84
|
-
</Hint>
|
|
85
|
-
</>
|
|
86
|
-
```
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
### Базовый пример
|
|
2
|
-
```jsx harmony
|
|
3
|
-
|
|
4
|
-
<Input />;
|
|
5
|
-
```
|
|
6
|
-
|
|
7
|
-
### Иконка
|
|
8
|
-
```jsx harmony
|
|
9
|
-
import { SearchLoupeIcon16Regular } from '@skbkontur/icons/icons/SearchLoupeIcon/SearchLoupeIcon16Regular';
|
|
10
|
-
|
|
11
|
-
<Input leftIcon={<SearchLoupeIcon16Regular />} />;
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
### Очистка значения
|
|
15
|
-
Очистить значение в `Input`'е можно только с помощью пустой строки
|
|
16
|
-
|
|
17
|
-
```jsx harmony
|
|
18
|
-
import { Button, Group } from '@skbkontur/react-ui';
|
|
19
|
-
|
|
20
|
-
const [value, setValue] = React.useState('Значение');
|
|
21
|
-
|
|
22
|
-
<Group>
|
|
23
|
-
<Input value={value} onValueChange={setValue} />
|
|
24
|
-
<Button onClick={() => setValue('')}>Очистить</Button>
|
|
25
|
-
</Group>
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
### Префикс
|
|
29
|
-
|
|
30
|
-
```jsx harmony
|
|
31
|
-
import { SearchLoupeIcon16Regular } from '@skbkontur/icons/icons/SearchLoupeIcon/SearchLoupeIcon16Regular';
|
|
32
|
-
|
|
33
|
-
<Input
|
|
34
|
-
width={400}
|
|
35
|
-
prefix="https://kontur.ru/search?query="
|
|
36
|
-
rightIcon={<SearchLoupeIcon16Regular />}
|
|
37
|
-
/>;
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
### type
|
|
41
|
-
|
|
42
|
-
```jsx harmony
|
|
43
|
-
import { Gapped, Input, Tooltip } from '@skbkontur/react-ui';
|
|
44
|
-
|
|
45
|
-
<Gapped vertical gap={20}>
|
|
46
|
-
<Gapped gap={20}>
|
|
47
|
-
<Input type="password" />
|
|
48
|
-
<span>type = "password"</span>
|
|
49
|
-
</Gapped>
|
|
50
|
-
|
|
51
|
-
<Gapped gap={20}>
|
|
52
|
-
<Input type="number" />
|
|
53
|
-
<span>type = "number"</span>
|
|
54
|
-
</Gapped>
|
|
55
|
-
|
|
56
|
-
<Gapped gap={20}>
|
|
57
|
-
<Input type="tel" />
|
|
58
|
-
<span>type = "tel"</span>
|
|
59
|
-
</Gapped>
|
|
60
|
-
|
|
61
|
-
<Gapped gap={20}>
|
|
62
|
-
<Input type="search" />
|
|
63
|
-
<span>type = "search"</span>
|
|
64
|
-
</Gapped>
|
|
65
|
-
|
|
66
|
-
<Gapped gap={20}>
|
|
67
|
-
<Input type="time" />
|
|
68
|
-
<span>type = "time"</span>
|
|
69
|
-
</Gapped>
|
|
70
|
-
|
|
71
|
-
<Gapped gap={20}>
|
|
72
|
-
<Input type="date" />
|
|
73
|
-
<span>type = "date"</span>
|
|
74
|
-
</Gapped>
|
|
75
|
-
|
|
76
|
-
<Gapped gap={20}>
|
|
77
|
-
<Input type="url" />
|
|
78
|
-
<span>type = "url"</span>
|
|
79
|
-
</Gapped>
|
|
80
|
-
|
|
81
|
-
<Gapped gap={20}>
|
|
82
|
-
<Input type="email" />
|
|
83
|
-
<span>type = "email"</span>
|
|
84
|
-
</Gapped>
|
|
85
|
-
</Gapped>
|
|
86
|
-
```
|
|
@@ -1,306 +0,0 @@
|
|
|
1
|
-
### Базовый пример
|
|
2
|
-
|
|
3
|
-
```jsx harmony
|
|
4
|
-
import { ToolPencilLineIcon16Regular } from '@skbkontur/icons/icons/ToolPencilLineIcon/ToolPencilLineIcon16Regular';
|
|
5
|
-
import { TrashCanIcon16Regular } from '@skbkontur/icons/icons/TrashCanIcon/TrashCanIcon16Regular';
|
|
6
|
-
import { Gapped, MenuItem, Toast } from '@skbkontur/react-ui';
|
|
7
|
-
|
|
8
|
-
let style = {
|
|
9
|
-
alignItems: 'center',
|
|
10
|
-
border: '1px solid #dfdede',
|
|
11
|
-
display: 'flex',
|
|
12
|
-
justifyContent: 'space-between',
|
|
13
|
-
padding: '0 20px',
|
|
14
|
-
width: 250,
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
let Card = ({ name, post }) => (
|
|
18
|
-
<div style={style}>
|
|
19
|
-
<div>
|
|
20
|
-
<h3>{name}</h3>
|
|
21
|
-
<p style={{ color: 'gray' }}>{post}</p>
|
|
22
|
-
</div>
|
|
23
|
-
|
|
24
|
-
<Kebab size="large">
|
|
25
|
-
<MenuItem icon={<ToolPencilLineIcon16Regular />} onClick={() => Toast.push('Отредактировано')}>
|
|
26
|
-
Редактировать
|
|
27
|
-
</MenuItem>
|
|
28
|
-
<MenuItem icon={<TrashCanIcon16Regular />} onClick={() => Toast.push('Удалено')}>
|
|
29
|
-
Удалить
|
|
30
|
-
</MenuItem>
|
|
31
|
-
</Kebab>
|
|
32
|
-
</div>
|
|
33
|
-
);
|
|
34
|
-
|
|
35
|
-
<Gapped gap={-1} wrap>
|
|
36
|
-
<Gapped gap={-1}>
|
|
37
|
-
<Card name="Баранова Анастасия" post="SEO GazPro" />
|
|
38
|
-
<Card name="Слуцкий Антон" post="Junior Front-Back Developer" />
|
|
39
|
-
</Gapped>
|
|
40
|
-
<Gapped gap={-1}>
|
|
41
|
-
<Card name="Иванов Иван" post="Head Ivan Co" />
|
|
42
|
-
<Card name="Сашка Егоров" post="KungFu Master" />
|
|
43
|
-
</Gapped>
|
|
44
|
-
</Gapped>;
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
### Размер
|
|
48
|
-
|
|
49
|
-
```jsx harmony
|
|
50
|
-
import { ToolPencilLineIcon16Regular } from '@skbkontur/icons/icons/ToolPencilLineIcon/ToolPencilLineIcon16Regular';
|
|
51
|
-
import { TrashCanIcon16Regular } from '@skbkontur/icons/icons/TrashCanIcon/TrashCanIcon16Regular';
|
|
52
|
-
import { Gapped, MenuItem, Toast} from '@skbkontur/react-ui';
|
|
53
|
-
|
|
54
|
-
let style = {
|
|
55
|
-
alignItems: 'center',
|
|
56
|
-
border: '1px solid #dfdede',
|
|
57
|
-
display: 'flex',
|
|
58
|
-
justifyContent: 'space-between',
|
|
59
|
-
padding: '0 20px',
|
|
60
|
-
width: 230,
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
let Card = ({ title, size }) => (
|
|
64
|
-
<div style={style}>
|
|
65
|
-
<div>
|
|
66
|
-
<h3>{title}</h3>
|
|
67
|
-
</div>
|
|
68
|
-
|
|
69
|
-
<Kebab size={size}>
|
|
70
|
-
<MenuItem icon={<ToolPencilLineIcon16Regular />} onClick={() => Toast.push('Отредактировано')}>
|
|
71
|
-
Редактировать
|
|
72
|
-
</MenuItem>
|
|
73
|
-
<MenuItem icon={<TrashCanIcon16Regular />} onClick={() => Toast.push('Удалено')}>
|
|
74
|
-
Удалить
|
|
75
|
-
</MenuItem>
|
|
76
|
-
</Kebab>
|
|
77
|
-
</div>
|
|
78
|
-
);
|
|
79
|
-
|
|
80
|
-
<Gapped>
|
|
81
|
-
<Card title="Маленький кебаб" size="small" />
|
|
82
|
-
<Card title="Средний кебаб" size="medium" />
|
|
83
|
-
<Card title="Большой кебаб" size="large" />
|
|
84
|
-
</Gapped>
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
### Кебаб-меню с выпадашкой слева
|
|
88
|
-
|
|
89
|
-
```jsx harmony
|
|
90
|
-
import { ToolPencilLineIcon16Regular } from '@skbkontur/icons/icons/ToolPencilLineIcon/ToolPencilLineIcon16Regular';
|
|
91
|
-
import { TrashCanIcon16Regular } from '@skbkontur/icons/icons/TrashCanIcon/TrashCanIcon16Regular';
|
|
92
|
-
import { MenuItem, Toast } from '@skbkontur/react-ui';
|
|
93
|
-
|
|
94
|
-
let style = {
|
|
95
|
-
alignItems: 'center',
|
|
96
|
-
border: '1px solid #dfdede',
|
|
97
|
-
display: 'flex',
|
|
98
|
-
justifyContent: 'space-between',
|
|
99
|
-
padding: '0 20px',
|
|
100
|
-
width: 250,
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
let Card = ({ title }) => (
|
|
105
|
-
<div style={style}>
|
|
106
|
-
<div>
|
|
107
|
-
<h3>{title}</h3>
|
|
108
|
-
</div>
|
|
109
|
-
|
|
110
|
-
<Kebab positions={['left middle']} size="large">
|
|
111
|
-
<MenuItem icon={<ToolPencilLineIcon16Regular />} onClick={() => Toast.push('Отредактировано')}>
|
|
112
|
-
Редактировать
|
|
113
|
-
</MenuItem>
|
|
114
|
-
<MenuItem icon={<TrashCanIcon16Regular />} onClick={() => Toast.push('Удалено')}>
|
|
115
|
-
Удалить
|
|
116
|
-
</MenuItem>
|
|
117
|
-
</Kebab>
|
|
118
|
-
</div>
|
|
119
|
-
);
|
|
120
|
-
|
|
121
|
-
<Card title="С выпадашкой слева" />
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
### Кастомное действие при открытии
|
|
125
|
-
|
|
126
|
-
```jsx harmony
|
|
127
|
-
import { ToolPencilLineIcon16Regular } from '@skbkontur/icons/icons/ToolPencilLineIcon/ToolPencilLineIcon16Regular';
|
|
128
|
-
import { TrashCanIcon16Regular } from '@skbkontur/icons/icons/TrashCanIcon/TrashCanIcon16Regular';
|
|
129
|
-
import { MenuItem, Toast } from '@skbkontur/react-ui';
|
|
130
|
-
|
|
131
|
-
let style = {
|
|
132
|
-
alignItems: 'center',
|
|
133
|
-
border: '1px solid #dfdede',
|
|
134
|
-
display: 'flex',
|
|
135
|
-
justifyContent: 'space-between',
|
|
136
|
-
padding: '0 20px',
|
|
137
|
-
width: 250,
|
|
138
|
-
};
|
|
139
|
-
|
|
140
|
-
let Card = ({ title }) => (
|
|
141
|
-
<div style={style}>
|
|
142
|
-
<div>
|
|
143
|
-
<h3>{title}</h3>
|
|
144
|
-
</div>
|
|
145
|
-
|
|
146
|
-
<Kebab
|
|
147
|
-
onOpen={() => Toast.push('Кебаб-меню открылось!')}
|
|
148
|
-
size="large"
|
|
149
|
-
>
|
|
150
|
-
<MenuItem icon={<ToolPencilLineIcon16Regular />} onClick={() => Toast.push('Отредактировано')}>
|
|
151
|
-
Редактировать
|
|
152
|
-
</MenuItem>
|
|
153
|
-
<MenuItem icon={<TrashCanIcon16Regular />} onClick={() => Toast.push('Удалено')}>
|
|
154
|
-
Удалить
|
|
155
|
-
</MenuItem>
|
|
156
|
-
</Kebab>
|
|
157
|
-
</div>
|
|
158
|
-
);
|
|
159
|
-
|
|
160
|
-
<Card title="С кастомным действием" />
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
### Иконка и автовыравнивание
|
|
164
|
-
|
|
165
|
-
```jsx harmony
|
|
166
|
-
import { Button, MenuHeader, MenuItem, MenuSeparator, Kebab } from '@skbkontur/react-ui';
|
|
167
|
-
import { CheckAIcon16Regular } from '@skbkontur/icons/icons/CheckAIcon/CheckAIcon16Regular';
|
|
168
|
-
|
|
169
|
-
<Kebab>
|
|
170
|
-
<MenuHeader>MenuHeader</MenuHeader>
|
|
171
|
-
<MenuItem icon={<CheckAIcon16Regular />}>MenuItem1</MenuItem>
|
|
172
|
-
<MenuItem icon={<CheckAIcon16Regular />}>MenuItem2</MenuItem>
|
|
173
|
-
<MenuItem>MenuItem3</MenuItem>
|
|
174
|
-
</Kebab>;
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
### Иконка и отключенное автовыравнивание
|
|
178
|
-
|
|
179
|
-
```jsx harmony
|
|
180
|
-
import { Button, MenuHeader, MenuItem, MenuSeparator, Kebab } from '@skbkontur/react-ui';
|
|
181
|
-
import { CheckAIcon16Regular } from '@skbkontur/icons/icons/CheckAIcon/CheckAIcon16Regular';
|
|
182
|
-
|
|
183
|
-
<Kebab preventIconsOffset>
|
|
184
|
-
<MenuHeader>MenuHeader</MenuHeader>
|
|
185
|
-
<MenuItem icon={<CheckAIcon16Regular />}>MenuItem1</MenuItem>
|
|
186
|
-
<MenuItem icon={<CheckAIcon16Regular />}>MenuItem2</MenuItem>
|
|
187
|
-
<MenuItem>MenuItem3</MenuItem>
|
|
188
|
-
</Kebab>
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
### Отключенное кебаб-меню
|
|
192
|
-
|
|
193
|
-
```jsx harmony
|
|
194
|
-
import { ToolPencilLineIcon16Regular } from '@skbkontur/icons/icons/ToolPencilLineIcon/ToolPencilLineIcon16Regular';
|
|
195
|
-
import { TrashCanIcon16Regular } from '@skbkontur/icons/icons/TrashCanIcon/TrashCanIcon16Regular';
|
|
196
|
-
import { MenuItem, Toast } from '@skbkontur/react-ui';
|
|
197
|
-
|
|
198
|
-
let style = {
|
|
199
|
-
alignItems: 'center',
|
|
200
|
-
border: '1px solid #dfdede',
|
|
201
|
-
display: 'flex',
|
|
202
|
-
justifyContent: 'space-between',
|
|
203
|
-
padding: '0 20px',
|
|
204
|
-
width: 250,
|
|
205
|
-
};
|
|
206
|
-
|
|
207
|
-
let Card = ({ title }) => (
|
|
208
|
-
<div style={style}>
|
|
209
|
-
<div>
|
|
210
|
-
<h3>{title}</h3>
|
|
211
|
-
</div>
|
|
212
|
-
|
|
213
|
-
<Kebab disabled size="large">
|
|
214
|
-
<MenuItem icon={<ToolPencilLineIcon16Regular />} onClick={() => Toast.push('Отредактировано')}>
|
|
215
|
-
Редактировать
|
|
216
|
-
</MenuItem>
|
|
217
|
-
<MenuItem icon={<TrashCanIcon16Regular />} onClick={() => Toast.push('Удалено')}>
|
|
218
|
-
Удалить
|
|
219
|
-
</MenuItem>
|
|
220
|
-
</Kebab>
|
|
221
|
-
</div>
|
|
222
|
-
);
|
|
223
|
-
|
|
224
|
-
<Card title="Не нажимается :(" />
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
### Отключенная анимация
|
|
228
|
-
|
|
229
|
-
```jsx harmony
|
|
230
|
-
import { ToolPencilLineIcon16Regular } from '@skbkontur/icons/icons/ToolPencilLineIcon/ToolPencilLineIcon16Regular';
|
|
231
|
-
import { TrashCanIcon16Regular } from '@skbkontur/icons/icons/TrashCanIcon/TrashCanIcon16Regular';
|
|
232
|
-
import { MenuItem, Toast } from '@skbkontur/react-ui';
|
|
233
|
-
|
|
234
|
-
let style = {
|
|
235
|
-
alignItems: 'center',
|
|
236
|
-
border: '1px solid #dfdede',
|
|
237
|
-
display: 'flex',
|
|
238
|
-
justifyContent: 'space-between',
|
|
239
|
-
padding: '0 20px',
|
|
240
|
-
width: 250,
|
|
241
|
-
};
|
|
242
|
-
|
|
243
|
-
let Card = ({ title }) => (
|
|
244
|
-
<div style={style}>
|
|
245
|
-
<div>
|
|
246
|
-
<h3>{title}</h3>
|
|
247
|
-
</div>
|
|
248
|
-
|
|
249
|
-
<Kebab disableAnimations size="large">
|
|
250
|
-
<MenuItem icon={<ToolPencilLineIcon16Regular />} onClick={() => Toast.push('Отредактировано')}>
|
|
251
|
-
Редактировать
|
|
252
|
-
</MenuItem>
|
|
253
|
-
<MenuItem icon={<TrashCanIcon16Regular />} onClick={() => Toast.push('Удалено')}>
|
|
254
|
-
Удалить
|
|
255
|
-
</MenuItem>
|
|
256
|
-
</Kebab>
|
|
257
|
-
</div>
|
|
258
|
-
);
|
|
259
|
-
|
|
260
|
-
<Card title="Без анимации" />
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
### Высота
|
|
264
|
-
|
|
265
|
-
```jsx harmony
|
|
266
|
-
import { ToolPencilLineIcon16Regular } from '@skbkontur/icons/icons/ToolPencilLineIcon/ToolPencilLineIcon16Regular';
|
|
267
|
-
import { TrashCanIcon16Regular } from '@skbkontur/icons/icons/TrashCanIcon/TrashCanIcon16Regular';
|
|
268
|
-
import { MenuItem, Toast } from '@skbkontur/react-ui';
|
|
269
|
-
|
|
270
|
-
let style = {
|
|
271
|
-
alignItems: 'center',
|
|
272
|
-
border: '1px solid #dfdede',
|
|
273
|
-
display: 'flex',
|
|
274
|
-
justifyContent: 'space-between',
|
|
275
|
-
padding: '0 20px',
|
|
276
|
-
width: 250,
|
|
277
|
-
};
|
|
278
|
-
|
|
279
|
-
let Card = ({ title }) => (
|
|
280
|
-
<div style={style}>
|
|
281
|
-
<div>
|
|
282
|
-
<h3>{title}</h3>
|
|
283
|
-
</div>
|
|
284
|
-
|
|
285
|
-
<Kebab
|
|
286
|
-
menuMaxHeight="100px"
|
|
287
|
-
size="large"
|
|
288
|
-
>
|
|
289
|
-
<MenuItem>
|
|
290
|
-
Действие
|
|
291
|
-
</MenuItem>
|
|
292
|
-
<MenuItem>
|
|
293
|
-
И ещё одно
|
|
294
|
-
</MenuItem>
|
|
295
|
-
<MenuItem>
|
|
296
|
-
Ещё действие
|
|
297
|
-
</MenuItem>
|
|
298
|
-
<MenuItem>
|
|
299
|
-
И последнее действие
|
|
300
|
-
</MenuItem>
|
|
301
|
-
</Kebab>
|
|
302
|
-
</div>
|
|
303
|
-
);
|
|
304
|
-
|
|
305
|
-
<Card title="С заданной высотой" />
|
|
306
|
-
```
|
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
### Базовый пример
|
|
2
|
-
|
|
3
|
-
```jsx harmony
|
|
4
|
-
<Link href="https://kontur.ru" target="_blank">Обычная ссылка</Link>
|
|
5
|
-
```
|
|
6
|
-
|
|
7
|
-
### Корневой элемент
|
|
8
|
-
Cсылка может рендерить кнопку в качестве корневого элемента, c помощью пропа `component`. Cсылка принимает все пропы переданного в `component` компонента.
|
|
9
|
-
Рекомендуется к использованию вместо кнопки с `use=link`, если нужна кнопка с визуалом ссылки.
|
|
10
|
-
|
|
11
|
-
```jsx harmony
|
|
12
|
-
import { Link } from '@skbkontur/react-ui';
|
|
13
|
-
|
|
14
|
-
<Link component='button'>Кнопка, но выглядит как ссылка</Link>
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
### Проп `component`
|
|
18
|
-
С помощью пропа `component`, ссылка может рендерить компонент `Link` из `react router` в качестве корневого элемента.
|
|
19
|
-
|
|
20
|
-
```jsx static
|
|
21
|
-
import { Link } from '@skbkontur/react-ui';
|
|
22
|
-
import { Link as RouterLink, BrowserRouter } from 'react-router-dom';
|
|
23
|
-
|
|
24
|
-
<BrowserRouter>
|
|
25
|
-
<Link to='/dashboard' component={RouterLink}>react-router-dom link</Link>
|
|
26
|
-
</BrowserRouter>
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
### Стили и disabled
|
|
30
|
-
|
|
31
|
-
```jsx harmony
|
|
32
|
-
import { Gapped } from '@skbkontur/react-ui';
|
|
33
|
-
|
|
34
|
-
<Gapped gap={15}>
|
|
35
|
-
<Link>Обычная ссылка</Link>
|
|
36
|
-
<Link use="success">Успешная ссылка</Link>
|
|
37
|
-
<Link use="danger">Опасная ссылка</Link>
|
|
38
|
-
<Link use="grayed">Работающая ссылка серого цвета</Link>
|
|
39
|
-
<Link disabled>Отключенная ссылка</Link>
|
|
40
|
-
</Gapped>;
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
### Иконка
|
|
44
|
-
|
|
45
|
-
```jsx harmony
|
|
46
|
-
import { Gapped } from '@skbkontur/react-ui';
|
|
47
|
-
import { CheckAIcon16Light } from '@skbkontur/icons/CheckAIcon16Light';
|
|
48
|
-
|
|
49
|
-
<Gapped gap={20}>
|
|
50
|
-
<Link icon={<CheckAIcon16Light />}>Ссылка с иконкой слева</Link>
|
|
51
|
-
<Link icon={<CheckAIcon16Light />} rightIcon={<CheckAIcon16Light />}>Ссылка с двумя иконками</Link>
|
|
52
|
-
<Link rightIcon={<CheckAIcon16Light />}>Ссылка с иконкой справа</Link>
|
|
53
|
-
</Gapped>
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
### Ссылки, ведущие на внешние ресурсы
|
|
57
|
-
|
|
58
|
-
_Примечание_:
|
|
59
|
-
|
|
60
|
-
Если в контрол `Link` передана ссылка, ведущая на внешний ресурс, контрол `Link` неявно добавит атрибут `rel` со значением необходимым для внешних ссылок, при этом не трогая атрибут `target`.
|
|
61
|
-
|
|
62
|
-
Открытие ссылки в новой вкладке остаётся на усмотрение разработчика.
|
|
63
|
-
|
|
64
|
-
```jsx harmony
|
|
65
|
-
import { Gapped } from '@skbkontur/react-ui';
|
|
66
|
-
|
|
67
|
-
<Gapped>
|
|
68
|
-
<Link href="https://www.youtube.com/">
|
|
69
|
-
Откроется <span style={{ color: "#e3071c" }}>в этой</span> вкладке
|
|
70
|
-
</Link>
|
|
71
|
-
<Link target="_blank" href="https://www.youtube.com/">
|
|
72
|
-
Откроется <span style={{ color: "#3f9726" }}>в новой</span> вкладке
|
|
73
|
-
</Link>
|
|
74
|
-
</Gapped>
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### Состояние загрузки
|
|
78
|
-
|
|
79
|
-
**Поведение**: если у ссылки есть иконка, она заменяется на спиннер, когда иконки две заменяется только левая.
|
|
80
|
-
|
|
81
|
-
```jsx harmony
|
|
82
|
-
import { Gapped, Button } from '@skbkontur/react-ui';
|
|
83
|
-
import { CheckAIcon16Light } from '@skbkontur/icons/CheckAIcon16Light';
|
|
84
|
-
|
|
85
|
-
const [isLoading, setIsLoading] = React.useState(false);
|
|
86
|
-
|
|
87
|
-
<Gapped vertical gap={15}>
|
|
88
|
-
<Button onClick={() => setIsLoading(!isLoading)}>{isLoading ? "Прекратить загрузку!" : "Начать загрузку!"}</Button>
|
|
89
|
-
<Gapped gap={20}>
|
|
90
|
-
<Link loading={isLoading} icon={<CheckAIcon16Light />}>С иконкой слева</Link>
|
|
91
|
-
<Link loading={isLoading} icon={<CheckAIcon16Light />} rightIcon={<CheckAIcon16Light />}>С двумя иконками</Link>
|
|
92
|
-
<Link loading={isLoading} rightIcon={<CheckAIcon16Light />}>С иконкой справа</Link>
|
|
93
|
-
<Link loading={isLoading}>Без иконки</Link>
|
|
94
|
-
</Gapped>
|
|
95
|
-
</Gapped>
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
### Кастомное действие при нажатии
|
|
99
|
-
|
|
100
|
-
```jsx harmony
|
|
101
|
-
import { Toast } from '@skbkontur/react-ui';
|
|
102
|
-
|
|
103
|
-
<Link onClick={() => Toast.push("Ты нажал на ссылку!")}>Ссылка с кастомным действием</Link>
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
### Проп `theme`
|
|
107
|
-
|
|
108
|
-
```jsx harmony
|
|
109
|
-
import { Link, Gapped } from '@skbkontur/react-ui';
|
|
110
|
-
|
|
111
|
-
<Gapped>
|
|
112
|
-
<Link theme={{linkColor: '#C00000'}}>Ok</Link>
|
|
113
|
-
<Link>Ok</Link>
|
|
114
|
-
</Gapped>
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
### Кастомизация ссылки
|
|
119
|
-
|
|
120
|
-
```jsx harmony
|
|
121
|
-
import { Toast, Button } from "@skbkontur/react-ui";
|
|
122
|
-
import { CopyIcon16Regular } from "@skbkontur/icons/CopyIcon16Regular"
|
|
123
|
-
|
|
124
|
-
const textDecorationStyles = {
|
|
125
|
-
linkTextUnderlineOffset: '1px'
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
const underlineOnHoverStyles = {
|
|
129
|
-
linkTextDecorationColor: 'transparent',
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
const differentColorStyles = {
|
|
133
|
-
linkColor: 'blue',
|
|
134
|
-
linkHoverColor: 'blue',
|
|
135
|
-
linkActiveColor: 'blue',
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
const stringify = (styles) => {
|
|
139
|
-
return `${Object.entries(styles).map(([key, value]) => `${key}: "${value}"`).join(", ")}`
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
const copyStyles = (styles) => {
|
|
143
|
-
navigator.clipboard.writeText(stringify(styles));
|
|
144
|
-
Toast.push('Copied');
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
const tableStyle = {
|
|
148
|
-
borderCollapse: 'collapse',
|
|
149
|
-
width: '100%',
|
|
150
|
-
};
|
|
151
|
-
|
|
152
|
-
const tdStyle = {
|
|
153
|
-
border: '1px solid',
|
|
154
|
-
padding: '8px',
|
|
155
|
-
};
|
|
156
|
-
|
|
157
|
-
const renderExampleRow = (title, styles) => {
|
|
158
|
-
return (
|
|
159
|
-
<tr>
|
|
160
|
-
<td style={tdStyle}>{title}</td>
|
|
161
|
-
<td style={tdStyle}><Link theme={styles}>Link</Link></td>
|
|
162
|
-
<td style={tdStyle}>
|
|
163
|
-
<div style={{display: 'flex'}}>
|
|
164
|
-
<div style={{width: '80%', whiteSpace: 'pre-line'}}>{stringify(styles).replace(/, /g, '\n')}</div>
|
|
165
|
-
<Button icon={<CopyIcon16Regular />} use={'text'} onClick={() => copyStyles(styles)}/>
|
|
166
|
-
</div>
|
|
167
|
-
</td>
|
|
168
|
-
</tr>
|
|
169
|
-
)
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
<table style={tableStyle}>
|
|
173
|
-
<tr style={{textAlign: 'left'}}>
|
|
174
|
-
<th style={tdStyle}></th>
|
|
175
|
-
<th style={tdStyle}>Пример</th>
|
|
176
|
-
<th style={tdStyle}>Переменные темы</th>
|
|
177
|
-
</tr>
|
|
178
|
-
{renderExampleRow('Ссылка с подчеркиванием без отступа', textDecorationStyles)}
|
|
179
|
-
{renderExampleRow('Ссылка с подчеркиванием при наведении', underlineOnHoverStyles)}
|
|
180
|
-
{renderExampleRow('Изменение цвета ссылки', differentColorStyles)}
|
|
181
|
-
</table>
|
|
182
|
-
```
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
### Базовый пример
|
|
2
|
-
```jsx harmony
|
|
3
|
-
import { Button } from '@skbkontur/react-ui';
|
|
4
|
-
|
|
5
|
-
const [isActive, setIsActive] = React.useState(true);
|
|
6
|
-
|
|
7
|
-
<>
|
|
8
|
-
<Button onClick={() => setIsActive(!isActive)}>{isActive ? 'Остановить загрузку' : 'Продолжить загрузку'}</Button>
|
|
9
|
-
<Loader type="big" active={isActive}>
|
|
10
|
-
<h1>Yeah, and if you were the pope they'd be all, "Straighten your pope hat." And "Put on your good vestments."</h1>
|
|
11
|
-
<p>
|
|
12
|
-
No, I'm Santa Claus! I guess if you want children beaten, you have to do it yourself. We're also Santa Claus! Leela,
|
|
13
|
-
Bender, we're going grave robbing.
|
|
14
|
-
</p>
|
|
15
|
-
<p>
|
|
16
|
-
Are you crazy? I can't swallow that. Large bet on myself in round one. Hey, whatcha watching?
|
|
17
|
-
<strong> Moving along… I guess if you want children beaten, you have to do it yourself.</strong>
|
|
18
|
-
<em>It's okay, Bender.</em> I like cooking too.
|
|
19
|
-
</p>
|
|
20
|
-
<h2>Oh, I think we should just stay friends.</h2>
|
|
21
|
-
<p>
|
|
22
|
-
No argument here. And when we woke up, we had these bodies. You guys go on without me! I'm going to go… look for
|
|
23
|
-
more stuff to steal! Oh, how awful. Did he at least die painlessly? …To shreds, you say. Well, how is his wife
|
|
24
|
-
holding up? …To shreds, you say.
|
|
25
|
-
</p>
|
|
26
|
-
<ol>
|
|
27
|
-
<li>No! The kind with looting and maybe starting a few fires!</li>
|
|
28
|
-
<li>You are the last hope of the universe.</li>
|
|
29
|
-
<li>Hey, guess what you're accessories to.</li>
|
|
30
|
-
</ol>
|
|
31
|
-
</Loader>
|
|
32
|
-
</>
|
|
33
|
-
```
|