@salutejs/plasma-new-hope 0.66.0-dev.0 → 0.66.1-canary.1149.8446846250.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. package/package.json +2 -2
  2. package/styled-components/cjs/components/Avatar/Avatar.template-doc.mdx +97 -0
  3. package/styled-components/cjs/components/AvatarGroup/AvatarGroup.template-doc.mdx +29 -0
  4. package/styled-components/cjs/components/Badge/Badge.template-doc.mdx +131 -0
  5. package/styled-components/cjs/components/Button/Button.template-doc.mdx +162 -0
  6. package/styled-components/cjs/components/ButtonGroup/ButtonGroup.template-doc.mdx +123 -0
  7. package/styled-components/cjs/components/Calendar/Calendar.template-doc.mdx +208 -0
  8. package/styled-components/cjs/components/Checkbox/Checkbox.template-doc.mdx +44 -0
  9. package/styled-components/cjs/components/Chip/Chip.template-doc.mdx +90 -0
  10. package/styled-components/cjs/components/Combobox/Combobox.template-doc.mdx +237 -0
  11. package/styled-components/cjs/components/Counter/Counter.template-doc.mdx +76 -0
  12. package/styled-components/cjs/components/Drawer/Drawer.template-doc.mdx +170 -0
  13. package/styled-components/cjs/components/Dropdown/Dropdown.template-doc.mdx +80 -0
  14. package/styled-components/cjs/components/Grid/Grid.template-doc.mdx +142 -0
  15. package/styled-components/cjs/components/Image/Image.template-doc.mdx +26 -0
  16. package/styled-components/cjs/components/Indicator/Indicator.template-doc.mdx +76 -0
  17. package/styled-components/cjs/components/Link/Link.template-doc.mdx +23 -0
  18. package/styled-components/cjs/components/Modal/Modal.template-doc.mdx +56 -0
  19. package/styled-components/cjs/components/Notification/Notification.template-doc.mdx +59 -0
  20. package/styled-components/cjs/components/Overlay/Overlay.template-doc.mdx +10 -0
  21. package/styled-components/cjs/components/Popover/Popover.template-doc.mdx +72 -0
  22. package/styled-components/cjs/components/Popup/Popup.template-doc.mdx +209 -0
  23. package/styled-components/cjs/components/Radiobox/Radiobox.template-doc.mdx +38 -0
  24. package/styled-components/cjs/components/Segment/Segment.template-doc.mdx +61 -0
  25. package/styled-components/cjs/components/Select/Select.template-doc.mdx +115 -0
  26. package/styled-components/cjs/components/Skeleton/Skeleton.template-doc.mdx +103 -0
  27. package/styled-components/cjs/components/Spinner/Spinner.template-doc.mdx +21 -0
  28. package/styled-components/cjs/components/Switch/Switch.template-doc.mdx +24 -0
  29. package/styled-components/cjs/components/Tabs/Tabs.template-doc.mdx +94 -0
  30. package/styled-components/cjs/components/TextArea/TextArea.template-doc.mdx +88 -0
  31. package/styled-components/cjs/components/TextField/TextField.template-doc.mdx +112 -0
  32. package/styled-components/cjs/components/Toast/Toast.template-doc.mdx +153 -0
  33. package/styled-components/cjs/components/Tooltip/Tooltip.template-doc.mdx +30 -0
  34. package/styled-components/cjs/components/Typography/Typography.template-doc.mdx +127 -0
  35. package/styled-components/es/components/Avatar/Avatar.template-doc.mdx +97 -0
  36. package/styled-components/es/components/AvatarGroup/AvatarGroup.template-doc.mdx +29 -0
  37. package/styled-components/es/components/Badge/Badge.template-doc.mdx +131 -0
  38. package/styled-components/es/components/Button/Button.template-doc.mdx +162 -0
  39. package/styled-components/es/components/ButtonGroup/ButtonGroup.template-doc.mdx +123 -0
  40. package/styled-components/es/components/Calendar/Calendar.template-doc.mdx +208 -0
  41. package/styled-components/es/components/Checkbox/Checkbox.template-doc.mdx +44 -0
  42. package/styled-components/es/components/Chip/Chip.template-doc.mdx +90 -0
  43. package/styled-components/es/components/Combobox/Combobox.template-doc.mdx +237 -0
  44. package/styled-components/es/components/Counter/Counter.template-doc.mdx +76 -0
  45. package/styled-components/es/components/Drawer/Drawer.template-doc.mdx +170 -0
  46. package/styled-components/es/components/Dropdown/Dropdown.template-doc.mdx +80 -0
  47. package/styled-components/es/components/Grid/Grid.template-doc.mdx +142 -0
  48. package/styled-components/es/components/Image/Image.template-doc.mdx +26 -0
  49. package/styled-components/es/components/Indicator/Indicator.template-doc.mdx +76 -0
  50. package/styled-components/es/components/Link/Link.template-doc.mdx +23 -0
  51. package/styled-components/es/components/Modal/Modal.template-doc.mdx +56 -0
  52. package/styled-components/es/components/Notification/Notification.template-doc.mdx +59 -0
  53. package/styled-components/es/components/Overlay/Overlay.template-doc.mdx +10 -0
  54. package/styled-components/es/components/Popover/Popover.template-doc.mdx +72 -0
  55. package/styled-components/es/components/Popup/Popup.template-doc.mdx +209 -0
  56. package/styled-components/es/components/Radiobox/Radiobox.template-doc.mdx +38 -0
  57. package/styled-components/es/components/Segment/Segment.template-doc.mdx +61 -0
  58. package/styled-components/es/components/Select/Select.template-doc.mdx +115 -0
  59. package/styled-components/es/components/Skeleton/Skeleton.template-doc.mdx +103 -0
  60. package/styled-components/es/components/Spinner/Spinner.template-doc.mdx +21 -0
  61. package/styled-components/es/components/Switch/Switch.template-doc.mdx +24 -0
  62. package/styled-components/es/components/Tabs/Tabs.template-doc.mdx +94 -0
  63. package/styled-components/es/components/TextArea/TextArea.template-doc.mdx +88 -0
  64. package/styled-components/es/components/TextField/TextField.template-doc.mdx +112 -0
  65. package/styled-components/es/components/Toast/Toast.template-doc.mdx +153 -0
  66. package/styled-components/es/components/Tooltip/Tooltip.template-doc.mdx +30 -0
  67. package/styled-components/es/components/Typography/Typography.template-doc.mdx +127 -0
@@ -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
+ ```
@@ -0,0 +1,208 @@
1
+ ---
2
+ id: calendar
3
+ title: Calendar
4
+ ---
5
+
6
+ import { PropsTable, Description } from '@site/src/components';
7
+
8
+ # Calendar
9
+ Компоненты календарей для выбора даты или диапазона дат.
10
+
11
+ ## Calendar
12
+
13
+ <Description name="Calendar" />
14
+ <PropsTable name="Calendar" />
15
+
16
+ Представляет собой универсальный компонент `Calendar`, в котором можно настроить любое доступное представление: базовый, двойной, базовый с диапазоном, двойной с диапазоном.
17
+
18
+ ```tsx live
19
+ import React from 'react';
20
+ import { Calendar } from '@salutejs/{{ package }}';
21
+
22
+ export function App() {
23
+ const isRange = false;
24
+ const isDouble = false;
25
+ const min = new Date(2022, 4, 0);
26
+ const max = new Date(2022, 6, 15);
27
+ const date = {
28
+ day: 6,
29
+ monthIndex: 5,
30
+ year: 2022,
31
+ }
32
+
33
+ const [value, setValue] = React.useState(new Date(2022, 5, 6));
34
+ const [valueRange, setValueRange] = React.useState([new Date(2022, 5, 6), new Date(2022, 5, 10)]);
35
+
36
+ const handleOnChange = React.useCallback((newValue) => {
37
+ setValue(newValue);
38
+ }, []);
39
+ const handleOnRangeChange = React.useCallback((newValue) => {
40
+ setValueRange(newValue);
41
+ }, []);
42
+
43
+ const baseEvents = [
44
+ {
45
+ date: new Date(2022, 5, 6),
46
+ },
47
+ {
48
+ date: new Date(2022, 5, 10),
49
+ color: 'red',
50
+ },
51
+ {
52
+ date: new Date(2022, 5, 10),
53
+ color: 'green',
54
+ },
55
+ {
56
+ date: new Date(2022, 5, 10),
57
+ color: 'blue',
58
+ },
59
+ ];
60
+
61
+ const eventsRange = Array.from(Array(10),((_, day) => ({
62
+ date: new Date(2022, 5, 15 + day),
63
+ color: 'purple',
64
+ })));
65
+
66
+ const disabledDays = Array.from(Array(5),((_, day) => ({
67
+ date: new Date(2022, 5, 11 + day),
68
+
69
+ })));
70
+
71
+ return (
72
+ <div>
73
+ <Calendar
74
+ isRange={isRange}
75
+ isDouble={isDouble}
76
+ value={(isRange ? valueRange : value)}
77
+ eventList={[...baseEvents, ...eventsRange]}
78
+ disabledList={disabledDays}
79
+ date={date}
80
+ min={min}
81
+ max={max}
82
+ onChangeValue={(isRange ? handleOnRangeChange : handleOnChange)}
83
+ />
84
+ </div>
85
+ );
86
+ }
87
+ ```
88
+
89
+ ## CalendarBase
90
+ <Description name="CalendarBase" />
91
+ <PropsTable name="CalendarBase" />
92
+
93
+ ```tsx live
94
+ import React from 'react';
95
+ import { CalendarBase } from '@salutejs/{{ package }}';
96
+
97
+ export function App() {
98
+ const min = new Date(2022, 4, 0);
99
+ const max = new Date(2022, 7, 15);
100
+
101
+ const [value, setValue] = React.useState(new Date(2022, 5, 6));
102
+ const handleOnChange = React.useCallback((newValue) => {
103
+ setValue(newValue);
104
+ }, []);
105
+
106
+ return (
107
+ <div>
108
+ <CalendarBase
109
+ value={value}
110
+ min={min}
111
+ max={max}
112
+ onChangeValue={handleOnChange}
113
+ />
114
+ </div>
115
+ );
116
+ }
117
+ ```
118
+
119
+ ## CalendarDouble
120
+ <Description name="CalendarDouble" />
121
+ <PropsTable name="CalendarDouble" />
122
+
123
+ ```tsx live
124
+ import React from 'react';
125
+ import { CalendarDouble } from '@salutejs/{{ package }}';
126
+
127
+ export function App() {
128
+ const min = new Date(2022, 4, 0);
129
+ const max = new Date(2022, 7, 15);
130
+
131
+ const [value, setValue] = React.useState(new Date(2022, 5, 6));
132
+ const handleOnChange = React.useCallback((newValue) => {
133
+ setValue(newValue);
134
+ }, []);
135
+
136
+ return (
137
+ <div>
138
+ <CalendarDouble
139
+ value={value}
140
+ min={min}
141
+ max={max}
142
+ onChangeValue={handleOnChange}
143
+ />
144
+ </div>
145
+ );
146
+ }
147
+ ```
148
+
149
+ ## CalendarBaseRange
150
+ <Description name="CalendarBaseRange" />
151
+ <PropsTable name="CalendarBaseRange" />
152
+
153
+ ```tsx live
154
+ import React from 'react';
155
+ import { CalendarBaseRange } from '@salutejs/{{ package }}';
156
+
157
+ export function App() {
158
+ const min = new Date(2022, 4, 0);
159
+ const max = new Date(2022, 7, 15);
160
+
161
+ const [value, setValue] = React.useState([new Date(2022, 5, 6), new Date(2022, 5, 16)]);
162
+ const handleOnChange = React.useCallback((newValue) => {
163
+ setValue(newValue);
164
+ }, []);
165
+
166
+ return (
167
+ <div>
168
+ <CalendarBaseRange
169
+ value={value}
170
+ min={min}
171
+ max={max}
172
+ onChangeValue={handleOnChange}
173
+ />
174
+ </div>
175
+ );
176
+ }
177
+ ```
178
+
179
+ ## CalendarDoubleRange
180
+ <Description name="CalendarDoubleRange" />
181
+ <PropsTable name="CalendarDoubleRange" />
182
+
183
+ ```tsx live
184
+ import React from 'react';
185
+ import { CalendarDoubleRange } from '@salutejs/{{ package }}';
186
+
187
+ export function App() {
188
+ const min = new Date(2022, 4, 0);
189
+ const max = new Date(2022, 7, 15);
190
+
191
+ const [value, setValue] = React.useState([new Date(2022, 5, 6), new Date(2022, 6, 16)]);
192
+ const handleOnChange = React.useCallback((newValue) => {
193
+ setValue(newValue);
194
+ }, []);
195
+
196
+ return (
197
+ <div>
198
+ <CalendarDoubleRange
199
+ value={value}
200
+ min={min}
201
+ max={max}
202
+ onChangeValue={handleOnChange}
203
+ />
204
+ </div>
205
+ );
206
+ }
207
+ ```
208
+
@@ -0,0 +1,44 @@
1
+ ---
2
+ id: checkbox
3
+ title: Checkbox
4
+ ---
5
+
6
+ import { PropsTable, Description } from '@site/src/components';
7
+
8
+ # Checkbox
9
+ <Description name="Checkbox" />
10
+ <PropsTable name="Checkbox" exclude={['css', 'focused']} />
11
+
12
+ ## Использование
13
+ Компонент `Checkbox` может содержать лейбл и описание.
14
+
15
+ ```tsx live
16
+ import React from 'react';
17
+ import { Checkbox } from '@salutejs/s{{package}}';
18
+
19
+ export function App() {
20
+ return (
21
+ <Checkbox label="Чекбокс" description="Описание" defaultChecked />
22
+ );
23
+ }
24
+ ```
25
+
26
+ Свойства `description` и `label` могут принимать JSX элементы.
27
+
28
+ По умолчанию, контент внутри лейбла и описания многострочный.
29
+
30
+ Для того чтобы стал однострочным, необходимо использовать свойство `singleLine`(по умолчанию `false`).
31
+
32
+ ```tsx live
33
+ import React from 'react';
34
+ import { Checkbox } from '@salutejs/s{{package}}';
35
+
36
+ export function App() {
37
+ return (
38
+ <Checkbox
39
+ label={<div>Чекбокс со <a href="/#">ссылкой</a></div>}
40
+ description={<div>Описание чекбокса со <a href="/#">ссылкой</a></div>}
41
+ />
42
+ );
43
+ }
44
+ ```