@salutejs/plasma-new-hope 0.82.0-dev.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.
Files changed (53) hide show
  1. package/package.json +2 -2
  2. package/styled-components/cjs/components/Avatar/Avatar.template-doc.mdx +3 -1
  3. package/styled-components/cjs/components/Badge/Badge.template-doc.mdx +9 -9
  4. package/styled-components/cjs/components/Button/Button.template-doc.mdx +8 -9
  5. package/styled-components/cjs/components/Cell/Cell.template-doc.mdx +68 -0
  6. package/styled-components/cjs/components/Checkbox/Checkbox.template-doc.mdx +2 -2
  7. package/styled-components/cjs/components/Chip/Chip.template-doc.mdx +1 -1
  8. package/styled-components/cjs/components/Combobox/Combobox.template-doc.mdx +14 -14
  9. package/styled-components/cjs/components/Counter/Counter.template-doc.mdx +5 -5
  10. package/styled-components/cjs/components/Divider/Divider.template-docs.mdx +57 -0
  11. package/styled-components/cjs/components/Drawer/Drawer.template-doc.mdx +3 -3
  12. package/styled-components/cjs/components/Dropdown/Dropdown.template-doc.mdx +262 -261
  13. package/styled-components/cjs/components/IconButton/IconButton.template-doc.mdx +156 -0
  14. package/styled-components/cjs/components/Image/Image.template-doc.mdx +1 -1
  15. package/styled-components/cjs/components/Link/Link.template-doc.mdx +4 -4
  16. package/styled-components/cjs/components/Modal/Modal.template-doc.mdx +85 -33
  17. package/styled-components/cjs/components/Notification/Notification.template-doc.mdx +1 -2
  18. package/styled-components/cjs/components/Pagination/Pagination.template-doc.mdx +130 -0
  19. package/styled-components/cjs/components/Popover/Popover.template-doc.mdx +3 -3
  20. package/styled-components/cjs/components/Popup/Popup.template-doc.mdx +70 -74
  21. package/styled-components/cjs/components/Progress/Progress.template-doc.mdx +33 -0
  22. package/styled-components/cjs/components/Radiobox/Radiobox.template-doc.mdx +2 -1
  23. package/styled-components/cjs/components/Segment/Segment.template-doc.mdx +2 -2
  24. package/styled-components/cjs/components/Skeleton/Skeleton.template-doc.mdx +4 -4
  25. package/styled-components/cjs/components/Tabs/Tabs.template-doc.mdx +1 -1
  26. package/styled-components/cjs/components/TextField/TextField.template-doc.mdx +2 -2
  27. package/styled-components/cjs/components/Toolbar/Toolbar.template-doc.mdx +120 -0
  28. package/styled-components/es/components/Avatar/Avatar.template-doc.mdx +3 -1
  29. package/styled-components/es/components/Badge/Badge.template-doc.mdx +9 -9
  30. package/styled-components/es/components/Button/Button.template-doc.mdx +8 -9
  31. package/styled-components/es/components/Cell/Cell.template-doc.mdx +68 -0
  32. package/styled-components/es/components/Checkbox/Checkbox.template-doc.mdx +2 -2
  33. package/styled-components/es/components/Chip/Chip.template-doc.mdx +1 -1
  34. package/styled-components/es/components/Combobox/Combobox.template-doc.mdx +14 -14
  35. package/styled-components/es/components/Counter/Counter.template-doc.mdx +5 -5
  36. package/styled-components/es/components/Divider/Divider.template-docs.mdx +57 -0
  37. package/styled-components/es/components/Drawer/Drawer.template-doc.mdx +3 -3
  38. package/styled-components/es/components/Dropdown/Dropdown.template-doc.mdx +262 -261
  39. package/styled-components/es/components/IconButton/IconButton.template-doc.mdx +156 -0
  40. package/styled-components/es/components/Image/Image.template-doc.mdx +1 -1
  41. package/styled-components/es/components/Link/Link.template-doc.mdx +4 -4
  42. package/styled-components/es/components/Modal/Modal.template-doc.mdx +85 -33
  43. package/styled-components/es/components/Notification/Notification.template-doc.mdx +1 -2
  44. package/styled-components/es/components/Pagination/Pagination.template-doc.mdx +130 -0
  45. package/styled-components/es/components/Popover/Popover.template-doc.mdx +3 -3
  46. package/styled-components/es/components/Popup/Popup.template-doc.mdx +70 -74
  47. package/styled-components/es/components/Progress/Progress.template-doc.mdx +33 -0
  48. package/styled-components/es/components/Radiobox/Radiobox.template-doc.mdx +2 -1
  49. package/styled-components/es/components/Segment/Segment.template-doc.mdx +2 -2
  50. package/styled-components/es/components/Skeleton/Skeleton.template-doc.mdx +4 -4
  51. package/styled-components/es/components/Tabs/Tabs.template-doc.mdx +1 -1
  52. package/styled-components/es/components/TextField/TextField.template-doc.mdx +2 -2
  53. 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.0-dev.0",
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": "31e6bd9f3b1d26127a62b4b00b6f821bdab73509"
105
+ "gitHead": "855b9b58dfdd960e3e6ad14e1720a0ed2a32c1ca"
106
106
  }
@@ -32,7 +32,9 @@ export function App() {
32
32
  ```
33
33
 
34
34
  ### Инициалы вместо фотографии
35
- Инициалы можно задать с помощью свойства `name`. Желательный формат строки - "Имя Фамилия". Также не должно быть свойства url.
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
- Вид бейджа задается с помощью свойства `view`. Возможные значения свойства `view`:
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
- так же на вид бейджа влияет свойство `transparent`:
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/s{{package}}';
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/s{{package}}';
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
- - Если мы ходим по селекту и нажимаем `Tab` - выпадающий список закрывается и теряем фокус
31
- - Если мы ходим по селекту и нажимаем `Escape` - выпадающий список закрывается и фокусом остаёмся на таргете
32
- - В мультиселекте то же самое кроме закрытия выпадающего списка при выборе элемента
29
+ - `Enter` - выбираем элемент, закрываем выпадающий список и переходим фокусом снова на target (input)
30
+ - Если мы ходим по select и нажимаем `Tab` - выпадающий список закрывается и теряем фокус
31
+ - Если мы ходим по select и нажимаем `Escape` - выпадающий список закрывается и фокусом остаёмся на target
32
+ - В multi-select то же самое кроме закрытия выпадающего списка при выборе элемента
33
33
  - Когда находимся на первом чипе, нажимаем `стрелку влево` / `стрелку вправо` - переходим по чипам
34
- - Когда оказываемся на последнем чипе и нажимаем `стрелку вправо` - переходим на таргет (инпут)
35
- - Когда находимся на таргете (инпуте) и нажимаем `Backspace` - удаляется последний чип
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` поддерживает возможность создавать собственные правила для фильтрации списка элементов с помощью функции колбэка `filterFunction`,
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/{{ theme }}';
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