@skbkontur/react-ui 5.3.0 → 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.
Files changed (139) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/cjs/components/Select/Select.js +1 -1
  3. package/cjs/components/Select/Select.js.map +1 -1
  4. package/components/Select/Select/Select.js +2 -2
  5. package/components/Select/Select/Select.js.map +1 -1
  6. package/package.json +1 -6
  7. package/cjs/components/Autocomplete/Autocomplete.md +0 -113
  8. package/cjs/components/Button/Button.md +0 -261
  9. package/cjs/components/Calendar/Calendar.md +0 -276
  10. package/cjs/components/Calendar/CalendarDay.md +0 -70
  11. package/cjs/components/Center/Center.md +0 -26
  12. package/cjs/components/Checkbox/Checkbox.md +0 -171
  13. package/cjs/components/ComboBox/ComboBox.md +0 -574
  14. package/cjs/components/CurrencyInput/CurrencyInput.md +0 -39
  15. package/cjs/components/CurrencyLabel/CurrencyLabel.md +0 -29
  16. package/cjs/components/DateInput/DateInput.md +0 -111
  17. package/cjs/components/DatePicker/DatePicker.md +0 -368
  18. package/cjs/components/Dropdown/Dropdown.md +0 -45
  19. package/cjs/components/DropdownMenu/DropdownMenu.md +0 -290
  20. package/cjs/components/FileUploader/FileUploader.md +0 -131
  21. package/cjs/components/FxInput/FxInput.md +0 -31
  22. package/cjs/components/Gapped/Gapped.md +0 -44
  23. package/cjs/components/GlobalLoader/GlobalLoader.md +0 -97
  24. package/cjs/components/Group/Group.md +0 -19
  25. package/cjs/components/Hint/Hint.md +0 -86
  26. package/cjs/components/Input/Input.md +0 -86
  27. package/cjs/components/Kebab/Kebab.md +0 -306
  28. package/cjs/components/Link/Link.md +0 -182
  29. package/cjs/components/Loader/Loader.md +0 -33
  30. package/cjs/components/MaskedInput/MaskedInput.md +0 -114
  31. package/cjs/components/MenuFooter/MenuFooter.md +0 -27
  32. package/cjs/components/MenuHeader/MenuHeader.md +0 -35
  33. package/cjs/components/MenuItem/MenuItem.md +0 -139
  34. package/cjs/components/MenuSeparator/MenuSeparator.md +0 -14
  35. package/cjs/components/MiniModal/MiniModal.md +0 -231
  36. package/cjs/components/Modal/Modal.md +0 -56
  37. package/cjs/components/Paging/Paging.md +0 -57
  38. package/cjs/components/PasswordInput/PasswordInput.md +0 -29
  39. package/cjs/components/Radio/Radio.md +0 -57
  40. package/cjs/components/RadioGroup/RadioGroup.md +0 -44
  41. package/cjs/components/ResponsiveLayout/ResponsiveLayout.md +0 -75
  42. package/cjs/components/ScrollContainer/ScrollContainer.md +0 -224
  43. package/cjs/components/Select/Select.md +0 -113
  44. package/cjs/components/SidePage/SidePage.md +0 -65
  45. package/cjs/components/SingleToast/SingleToast.md +0 -36
  46. package/cjs/components/Spinner/Spinner.md +0 -36
  47. package/cjs/components/Sticky/Sticky.md +0 -28
  48. package/cjs/components/Switcher/Switcher.md +0 -111
  49. package/cjs/components/Tabs/Tab.md +0 -73
  50. package/cjs/components/Tabs/Tabs.md +0 -54
  51. package/cjs/components/Textarea/Textarea.md +0 -58
  52. package/cjs/components/Toast/Toast.md +0 -69
  53. package/cjs/components/Toggle/Toggle.md +0 -110
  54. package/cjs/components/Token/Token.md +0 -48
  55. package/cjs/components/TokenInput/TokenInput.md +0 -277
  56. package/cjs/components/Tooltip/Tooltip.md +0 -322
  57. package/cjs/components/TooltipMenu/TooltipMenu.md +0 -241
  58. package/cjs/internal/DataTids/DATATIDS.md +0 -12
  59. package/cjs/internal/DataTids/DataTids.d.ts +0 -12
  60. package/cjs/internal/DataTids/DataTids.js +0 -50
  61. package/cjs/internal/DataTids/DataTids.js.map +0 -1
  62. package/cjs/internal/DataTids/DataTids.styles.d.ts +0 -7
  63. package/cjs/internal/DataTids/DataTids.styles.js +0 -42
  64. package/cjs/internal/DataTids/DataTids.styles.js.map +0 -1
  65. package/cjs/internal/DataTids/componentsDataTids.d.ts +0 -5
  66. package/cjs/internal/DataTids/componentsDataTids.js +0 -15
  67. package/cjs/internal/DataTids/componentsDataTids.js.map +0 -1
  68. package/cjs/internal/ThemePlayground/Playground.md +0 -7
  69. package/cjs/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +0 -64
  70. package/cjs/lib/locale/LOCALECONTEXT.md +0 -222
  71. package/cjs/lib/theming/ThemeContext.md +0 -265
  72. package/components/Autocomplete/Autocomplete.md +0 -113
  73. package/components/Button/Button.md +0 -261
  74. package/components/Calendar/Calendar.md +0 -276
  75. package/components/Calendar/CalendarDay.md +0 -70
  76. package/components/Center/Center.md +0 -26
  77. package/components/Checkbox/Checkbox.md +0 -171
  78. package/components/ComboBox/ComboBox.md +0 -574
  79. package/components/CurrencyInput/CurrencyInput.md +0 -39
  80. package/components/CurrencyLabel/CurrencyLabel.md +0 -29
  81. package/components/DateInput/DateInput.md +0 -111
  82. package/components/DatePicker/DatePicker.md +0 -368
  83. package/components/Dropdown/Dropdown.md +0 -45
  84. package/components/DropdownMenu/DropdownMenu.md +0 -290
  85. package/components/FileUploader/FileUploader.md +0 -131
  86. package/components/FxInput/FxInput.md +0 -31
  87. package/components/Gapped/Gapped.md +0 -44
  88. package/components/GlobalLoader/GlobalLoader.md +0 -97
  89. package/components/Group/Group.md +0 -19
  90. package/components/Hint/Hint.md +0 -86
  91. package/components/Input/Input.md +0 -86
  92. package/components/Kebab/Kebab.md +0 -306
  93. package/components/Link/Link.md +0 -182
  94. package/components/Loader/Loader.md +0 -33
  95. package/components/MaskedInput/MaskedInput.md +0 -114
  96. package/components/MenuFooter/MenuFooter.md +0 -27
  97. package/components/MenuHeader/MenuHeader.md +0 -35
  98. package/components/MenuItem/MenuItem.md +0 -139
  99. package/components/MenuSeparator/MenuSeparator.md +0 -14
  100. package/components/MiniModal/MiniModal.md +0 -231
  101. package/components/Modal/Modal.md +0 -56
  102. package/components/Paging/Paging.md +0 -57
  103. package/components/PasswordInput/PasswordInput.md +0 -29
  104. package/components/Radio/Radio.md +0 -57
  105. package/components/RadioGroup/RadioGroup.md +0 -44
  106. package/components/ResponsiveLayout/ResponsiveLayout.md +0 -75
  107. package/components/ScrollContainer/ScrollContainer.md +0 -224
  108. package/components/Select/Select.md +0 -113
  109. package/components/SidePage/SidePage.md +0 -65
  110. package/components/SingleToast/SingleToast.md +0 -36
  111. package/components/Spinner/Spinner.md +0 -36
  112. package/components/Sticky/Sticky.md +0 -28
  113. package/components/Switcher/Switcher.md +0 -111
  114. package/components/Tabs/Tab.md +0 -73
  115. package/components/Tabs/Tabs.md +0 -54
  116. package/components/Textarea/Textarea.md +0 -58
  117. package/components/Toast/Toast.md +0 -69
  118. package/components/Toggle/Toggle.md +0 -110
  119. package/components/Token/Token.md +0 -48
  120. package/components/TokenInput/TokenInput.md +0 -277
  121. package/components/Tooltip/Tooltip.md +0 -322
  122. package/components/TooltipMenu/TooltipMenu.md +0 -241
  123. package/internal/DataTids/DATATIDS.md +0 -12
  124. package/internal/DataTids/DataTids/DataTids.js +0 -69
  125. package/internal/DataTids/DataTids/DataTids.js.map +0 -1
  126. package/internal/DataTids/DataTids/package.json +0 -6
  127. package/internal/DataTids/DataTids.d.ts +0 -12
  128. package/internal/DataTids/DataTids.styles/DataTids.styles.js +0 -20
  129. package/internal/DataTids/DataTids.styles/DataTids.styles.js.map +0 -1
  130. package/internal/DataTids/DataTids.styles/package.json +0 -6
  131. package/internal/DataTids/DataTids.styles.d.ts +0 -7
  132. package/internal/DataTids/componentsDataTids/componentsDataTids.js +0 -12
  133. package/internal/DataTids/componentsDataTids/componentsDataTids.js.map +0 -1
  134. package/internal/DataTids/componentsDataTids/package.json +0 -6
  135. package/internal/DataTids/componentsDataTids.d.ts +0 -5
  136. package/internal/ThemePlayground/Playground.md +0 -7
  137. package/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +0 -64
  138. package/lib/locale/LOCALECONTEXT.md +0 -222
  139. package/lib/theming/ThemeContext.md +0 -265
@@ -1,29 +0,0 @@
1
- ### Базовый пример
2
- ```jsx harmony
3
- <PasswordInput />
4
- ```
5
-
6
- ### Отслеживание нажатия CapsLock
7
-
8
- ```jsx harmony
9
- <PasswordInput detectCapsLock />
10
- ```
11
-
12
- ### Локали по умолчанию
13
-
14
- ```typescript static
15
- interface PasswordInputLocale {
16
- eyeOpenedAriaLabel?: string;
17
- eyeClosedAriaLabel?: string;
18
- }
19
-
20
- const ru_RU = {
21
- eyeOpenedAriaLabel: 'Скрыть символы пароля',
22
- eyeClosedAriaLabel: 'Отобразить символы пароля',
23
- }
24
-
25
- const en_GB = {
26
- eyeOpenedAriaLabel: 'Hide password symbols',
27
- eyeClosedAriaLabel: 'Show password symbols',
28
- }
29
- ```
@@ -1,57 +0,0 @@
1
- ### Виды радио-кнопок
2
-
3
- ```jsx harmony
4
- import { Gapped, Radio, RadioGroup } from '@skbkontur/react-ui';
5
-
6
- const [chosen, setChosen] = React.useState(null);
7
-
8
- <RadioGroup onValueChange={(value) => setChosen(value)}>
9
- <Gapped gap={3} vertical>
10
- <Radio value={1}>
11
- Обычная радио-кнопка
12
- </Radio>
13
- <Radio value={2} disabled>
14
- Отключенная радио-кнопка
15
- </Radio>
16
- <Radio value={3} checked={!chosen}>
17
- Радио-кнопка отмеченная по умолчанию
18
- </Radio>
19
- <Radio value={4} focused>
20
- Радио-кнопка в состоянии <b>focused</b> (меняется только обводка)
21
- </Radio>
22
- <Radio value={5} error>
23
- Радио-кнопка в состоянии <b>error</b>
24
- </Radio>
25
- <Radio value={6} warning>
26
- Радио-кнопка в состоянии <b>warning</b>
27
- </Radio>
28
- </Gapped>
29
- </RadioGroup>
30
- ```
31
-
32
- ### Состояния
33
- Радио-кнопки могут иметь сразу несколько состояний.
34
-
35
- ```jsx harmony
36
- <Radio disabled checked warning>
37
- Отключенная, отмеченная радио-кнопка в состоянии <b>warning</b>
38
- </Radio>
39
- ```
40
-
41
- ### Размер
42
-
43
- ```jsx harmony
44
- import { Gapped } from '@skbkontur/react-ui';
45
-
46
- <Gapped vertical>
47
- <Radio size="small" value="value" >
48
- Маленький
49
- </Radio>
50
- <Radio size="medium" value="value" >
51
- Средний
52
- </Radio>
53
- <Radio size="large" value="value" >
54
- Большой
55
- </Radio>
56
- </Gapped>
57
- ```
@@ -1,44 +0,0 @@
1
- ### Базовый пример
2
- ```jsx harmony
3
- import { Gapped, Radio } from '@skbkontur/react-ui';
4
-
5
- let items = ['One', 'Two', 'Three', 'Four'];
6
-
7
- let simpleRadioGroup = (
8
- <div>
9
- <h2>Numbers</h2>
10
- <RadioGroup name="number-simple" items={items} defaultValue="One" />
11
- </div>
12
- );
13
-
14
- let complexRadioGroup = (
15
- <div>
16
- <h2>Numbers</h2>
17
- <RadioGroup name="number-complex" defaultValue="3">
18
- <Gapped gap={40}>
19
- <Gapped vertical gap={0}>
20
- <b>Odd</b>
21
- <Radio value="1">One</Radio>
22
- <Radio value="3">Three</Radio>
23
- <Radio value="5" disabled>
24
- Five
25
- </Radio>
26
- <Radio value="7">Seven</Radio>
27
- </Gapped>
28
- <Gapped vertical gap={0}>
29
- <b>Even</b>
30
- <Radio value="2">Two</Radio>
31
- <Radio value="4">Four</Radio>
32
- <Radio value="6">Six</Radio>
33
- <Radio value="8">Eight</Radio>
34
- </Gapped>
35
- </Gapped>
36
- </RadioGroup>
37
- </div>
38
- );
39
-
40
- <div>
41
- {simpleRadioGroup}
42
- {complexRadioGroup}
43
- </div>;
44
- ```
@@ -1,75 +0,0 @@
1
- ### Вспомогательный интерфейс
2
- ```ts static
3
- interface ResponsiveLayoutFlags {
4
- isMobile: boolean;
5
- }
6
- ```
7
-
8
- ### Компонент ожидает в себя функцию, в которую аргументом передается объект с флагом лэйаута.
9
-
10
- ```jsx static
11
- import { ResponsiveLayout } from '@skbkontur/react-ui';
12
-
13
- class SomeComponent {
14
- public render() {
15
- return (
16
- <ResponsiveLayout>
17
- {
18
- ({ isMobile }) => {
19
- /* ... */
20
- }
21
- }
22
- </ResponsiveLayout>
23
- )
24
- }
25
- }
26
- ```
27
-
28
- ### Также существует проп `onLayoutChange`, который вызывает переданный в него коллбэк при изменении лэйаута. Аргументом передается объект с флагом.
29
-
30
- ```jsx static
31
- import { ResponsiveLayout } from '@skbkontur/react-ui';
32
-
33
- class SomeComponent {
34
- public render() {
35
- return (
36
- <div>
37
- <ResponsiveLayout onLayoutChange={({ isMobile }) => console.log(isMobile)} />
38
- </div>
39
- )
40
- }
41
- }
42
- ```
43
-
44
- ### В компонент можно передать проп `customMediaQueries: MediaQueriesType`, который позволяет кастомизировать возвращаемые флаги:
45
- ```ts static
46
- type MediaQueriesType = Record<string, string>;
47
- ```
48
- 1. Без кастомизации есть только флаг isMobile
49
- 2. Поля из `customMediaQueries` дополняют список возвращаемых флагов в `ResponsiveLayoutFlags`
50
- 3. При добавлении кастомного флага isMobile, значение дефолтного флага перезаписывается в пользу кастомного
51
-
52
- ```jsx static
53
- import { ResponsiveLayout } from '@skbkontur/react-ui';
54
-
55
- const customMediaQueries = {
56
- isTablet: '(min-width: 577px)',
57
- isDesktop: '(min-width: 1280px)',
58
- };
59
-
60
- class SomeComponent {
61
- public render() {
62
- return (
63
- <ResponsiveLayout customMediaQueries={customMediaQueries}>
64
- {
65
- ({ isMobile, isTablet, isDesktop }) => {
66
- /* ... */
67
- }
68
- }
69
- </ResponsiveLayout>
70
- )
71
- }
72
- }
73
- ```
74
-
75
- Как альтернативу можно использовать хук [useResponsiveLayout](#/Mobiles).
@@ -1,224 +0,0 @@
1
- ### Базовый пример
2
- ```jsx harmony
3
- function items(count) {
4
- var items = [];
5
- for (var i = 0; i < count; ++i) {
6
- items.push(i);
7
- }
8
- return items;
9
- }
10
-
11
- var divStyle = {
12
- display: 'inline-block',
13
- border: '1px solid #f99',
14
- height: 200,
15
- margin: 1,
16
- position: 'relative',
17
- verticalAlign: 'top',
18
- width: 200,
19
- };
20
- var absStyle = {
21
- border: '1px solid',
22
- boxSizing: 'border-box',
23
- position: 'absolute',
24
- width: '100%',
25
- };
26
-
27
- <div>
28
- <div style={divStyle}>
29
- <ScrollContainer>
30
- {items(20).map((i) => (
31
- <div key={i}>{i}</div>
32
- ))}
33
- </ScrollContainer>
34
- </div>
35
- <div style={{ ...divStyle, background: '#888' }}>
36
- <ScrollContainer invert>
37
- {items(20).map((i) => (
38
- <div key={i}>{i}</div>
39
- ))}
40
- </ScrollContainer>
41
- </div>
42
- <div style={divStyle}>
43
- <div style={absStyle}>
44
- <ScrollContainer>
45
- {items(3).map((i) => (
46
- <div key={i}>{i}</div>
47
- ))}
48
- </ScrollContainer>
49
- </div>
50
- </div>
51
- <div style={divStyle}>
52
- <div style={absStyle}>
53
- <ScrollContainer maxHeight={150}>
54
- {items(30).map((i) => (
55
- <div key={i}>{i}</div>
56
- ))}
57
- </ScrollContainer>
58
- </div>
59
- </div>
60
- </div>;
61
- ```
62
-
63
- ### Горизонтальный scrollbar
64
-
65
- ```jsx harmony
66
- var divStyle = {
67
- display: 'inline-block',
68
- border: '1px solid #f99',
69
- height: 200,
70
- margin: 1,
71
- position: 'relative',
72
- verticalAlign: 'top',
73
- width: 200,
74
- };
75
- var absStyle = {
76
- border: '1px solid',
77
- boxSizing: 'border-box',
78
- position: 'absolute',
79
- width: '100%',
80
- };
81
-
82
- function items(count) {
83
- var items = [];
84
- for (var i = 0; i < count; ++i) {
85
- items.push(i);
86
- }
87
- return items;
88
- }
89
-
90
- var containerStyle = {
91
- display: 'inline-block',
92
- border: '1px solid #f99',
93
- height: 200,
94
- margin: 1,
95
- width: 200,
96
- };
97
-
98
- var innerStyle = {
99
- width: 400,
100
- };
101
-
102
- <div>
103
- <div style={divStyle}>
104
- <ScrollContainer>
105
- {items(5).map((i) => (
106
- <div style={innerStyle} key={i}>
107
- {i}
108
- </div>
109
- ))}
110
- </ScrollContainer>
111
- </div>
112
- <div style={{ ...divStyle, background: '#888' }}>
113
- <ScrollContainer invert>
114
- {items(20).map((i) => (
115
- <div style={innerStyle} key={i}>
116
- {i}
117
- </div>
118
- ))}
119
- </ScrollContainer>
120
- </div>
121
- <div style={divStyle}>
122
- <div style={absStyle}>
123
- <ScrollContainer maxHeight={150}>
124
- {items(3).map((i) => (
125
- <div style={innerStyle} key={i}>
126
- {i}
127
- </div>
128
- ))}
129
- </ScrollContainer>
130
- </div>
131
- </div>
132
- <div style={divStyle}>
133
- <div style={absStyle}>
134
- <ScrollContainer maxHeight={150} maxWidth={200}>
135
- {items(30).map((i) => (
136
- <div style={innerStyle} key={i}>
137
- {i}
138
- </div>
139
- ))}
140
- </ScrollContainer>
141
- </div>
142
- </div>
143
- </div>;
144
- ```
145
-
146
- ### Смещение скроллбара
147
-
148
- ```jsx harmony
149
- const containerStyle = {
150
- display: 'inline-block',
151
- border: '1px solid #f99',
152
- height: 200,
153
- margin: 1,
154
- width: 200,
155
- };
156
-
157
- const offsetY = {
158
- top: 8,
159
- bottom: 8,
160
- right: 8,
161
- };
162
-
163
- <div style={containerStyle}>
164
- <ScrollContainer offsetY={offsetY}>
165
- {Array(30).fill(null).map((_,i) => (
166
- <div key={i}>
167
- {i}
168
- </div>
169
- ))}
170
- </ScrollContainer>
171
- </div>
172
- ```
173
-
174
- ### Скрытие если нет активности пользователя
175
- Проп `showScrollBar` со значением `scroll` скрывает скроллбар при отсутствии активности пользователя. Задержку на скрытие скроллбара можно регулировать пропом `hideScrollBarDelay` (по умолчанию 500ms)
176
-
177
- ```jsx harmony
178
- var divStyle = {
179
- display: 'inline-block',
180
- border: '1px solid #f99',
181
- height: 200,
182
- margin: 1,
183
- position: 'relative',
184
- verticalAlign: 'top',
185
- width: 200,
186
- };
187
- <div style={divStyle}>
188
- <ScrollContainer showScrollBar={'scroll'}>
189
- {Array(30).fill(null).map((_,i) => (
190
- <div key={i}>
191
- {i}
192
- </div>
193
- ))}
194
- </ScrollContainer>
195
- </div>
196
- ```
197
-
198
- ### Показ скролбара при наведении
199
- Проп `showScrollBar` со значением `hover` позволяет показывать скроллбар только когда курсор находится над скролл контейнером
200
-
201
- ```jsx harmony
202
- var divStyle = {
203
- display: 'inline-block',
204
- border: '1px solid #f99',
205
- height: 200,
206
- margin: 1,
207
- position: 'relative',
208
- verticalAlign: 'top',
209
- width: 200,
210
- };
211
-
212
-
213
- <span>
214
- <div style={divStyle}>
215
- <ScrollContainer showScrollBar={'hover'}>
216
- {Array(30).fill(null).map((_,i) => (
217
- <div key={i}>
218
- {i}
219
- </div>
220
- ))}
221
- </ScrollContainer>
222
- </div>
223
- </span>
224
- ```
@@ -1,113 +0,0 @@
1
- ### Базовый пример
2
-
3
- ```jsx harmony
4
- const [value, setValue] = React.useState();
5
-
6
- const items = [Select.staticElement(() => <Select.Item>Not
7
- selectable</Select.Item>), 'One', 'Two', 'Three', Select.SEP, 'Four'];
8
-
9
- <Select items={items} value={value} onValueChange={setValue}/>;
10
- ```
11
-
12
- ### Запрет выделения и выбора
13
- В пункты меню можно передать проп `isNotSelectable`, чтобы запретить выделение и выбор этого пункта меню
14
-
15
- ```jsx harmony
16
-
17
- const [value, setValue] = React.useState();
18
-
19
- const items = [<Select.Item isNotSelectable>Not selectable</Select.Item>, 'One', 'Two', 'Three', Select.SEP, 'Four'];
20
-
21
- <Select items={items} value={value} onValueChange={setValue} />
22
- ```
23
-
24
- ### Очистка значения
25
- Очистить значение в `Select`'е можно только с помощью `null`
26
- ```jsx harmony
27
- import { Button, Group } from '@skbkontur/react-ui';
28
-
29
- const [value, setValue] = React.useState();
30
-
31
- const items = ['One', 'Two', 'Three', 'Four'];
32
-
33
- <Group>
34
- <Select items={items} value={value} onValueChange={setValue} />
35
- <Button onClick={() => setValue(null)}>Очистить</Button>
36
- </Group>
37
- ```
38
-
39
- ### Поле поиска
40
-
41
- ```jsx harmony
42
- const [value, setValue] = React.useState();
43
-
44
- const items = ['One', 'Two', 'Three', Select.SEP, 'Four'];
45
-
46
- <Select items={items} value={value} onValueChange={setValue} search />;
47
- ```
48
-
49
- ### Пример использования пропа `_renderButton`:
50
-
51
- ```jsx harmony
52
- import { Link } from '@skbkontur/react-ui';
53
- import { People3Icon16Regular } from '@skbkontur/icons/icons/People3Icon/People3Icon16Regular';
54
-
55
- const [value, setValue] = React.useState();
56
-
57
- const items = [Select.staticElement(() => <Select.Item>Not
58
- selectable</Select.Item>), 'One', 'Two', 'Three', Select.SEP, 'Four'];
59
-
60
- const renderLinkButton = params => {
61
- const linkProps = {
62
- disabled: params.disabled,
63
- icon: <People3Icon16Regular />,
64
- _button: true,
65
- _buttonOpened: params.opened,
66
-
67
- onClick: params.onClick,
68
- onKeyDown: params.onKeyDown,
69
- };
70
-
71
- return <Link {...linkProps}>{params.label}</Link>;
72
- };
73
-
74
- <Select
75
- items={items}
76
- value={value}
77
- onValueChange={setValue}
78
- _renderButton={renderLinkButton}
79
- />;
80
- ```
81
-
82
- ### Локали по умолчанию
83
-
84
- ```typescript static
85
- interface SelectLocale {
86
- placeholder?: React.ReactNode;
87
- }
88
-
89
- const ru_RU = {
90
- placeholder: 'Ничего не выбрано',
91
- };
92
-
93
- const en_GB = {
94
- placeholder: 'Nothing selected',
95
- };
96
- ```
97
-
98
- ### Размер
99
- ```jsx harmony
100
- import { Gapped } from '@skbkontur/react-ui';
101
-
102
- const [valueSmall, setValueSmall] = React.useState('Маленький');
103
- const [valueMedium, setValueMedium] = React.useState('Средний');
104
- const [valueLarge, setValueLarge] = React.useState('Большой');
105
-
106
- const items = ['Маленький', 'Средний', 'Большой'];
107
-
108
- <Gapped vertical>
109
- <Select items={items} value={valueSmall} onValueChange={setValueSmall} size={'small'} />
110
- <Select items={items} value={valueMedium} onValueChange={setValueMedium} size={'medium'} />
111
- <Select items={items} value={valueLarge} onValueChange={setValueLarge} size={'large'} />
112
- </Gapped>
113
- ```
@@ -1,65 +0,0 @@
1
- ### Базовый пример
2
- ```jsx harmony
3
- import { Button } from '@skbkontur/react-ui';
4
-
5
- const [opened, setOpened] = React.useState(false);
6
-
7
- function renderSidePage() {
8
- return (
9
- <SidePage onClose={close} blockBackground>
10
- <SidePage.Header>Title</SidePage.Header>
11
- <SidePage.Body>
12
- <div
13
- style={{
14
- background: `repeating-linear-gradient(
15
- 60deg,
16
- #808080,
17
- #808080 20px,
18
- #d3d3d3 20px,
19
- #d3d3d3 40px
20
- )`,
21
- height: 600,
22
- padding: '20px 0',
23
- }}
24
- >
25
- <SidePage.Container>
26
- <p>Use rxjs operators with react hooks</p>
27
- </SidePage.Container>
28
- </div>
29
- </SidePage.Body>
30
- <SidePage.Footer panel>
31
- <Button onClick={close}>Close</Button>
32
- </SidePage.Footer>
33
- </SidePage>
34
- );
35
- }
36
-
37
- function open() {
38
- setOpened(true);
39
- }
40
-
41
- function close() {
42
- setOpened(false);
43
- }
44
-
45
- <div>
46
- {opened && renderSidePage()}
47
- <Button onClick={open}>Open</Button>
48
- </div>;
49
- ```
50
-
51
- ### Локали по умолчанию
52
-
53
- ```typescript static
54
- interface SidePageLocale {
55
- closeButtonAriaLabel?: string;
56
- }
57
-
58
- const ru_RU = {
59
- closeButtonAriaLabel: 'Закрыть модальное окно'
60
- }
61
-
62
- const en_GB = {
63
- closeButtonAriaLabel: 'Close modal window'
64
- }
65
- ```
@@ -1,36 +0,0 @@
1
- `<SingleToast>` можно добавить в единственном месте в проекте, а статические методы будут всегда использовать последний отрендеренный экземпляр `<Toast>`.
2
-
3
- _На внешний вид этого примера влияет следующий пример_
4
- ### Базовый пример
5
- ```jsx harmony
6
- import { Button, SingleToast } from '@skbkontur/react-ui';
7
-
8
- <div>
9
- <SingleToast />
10
- <Button onClick={() => SingleToast.push('Статический тост')}>
11
- Показать статический тост
12
- </Button>
13
- </div>
14
- ```
15
-
16
- ### Кастомизация
17
- `<SingleToast>` можно кастомизировать с помощью переменных темы для `toast`.
18
- ```jsx harmony
19
- import { Button, SingleToast, ThemeContext, ThemeFactory, THEME_2022 } from '@skbkontur/react-ui';
20
-
21
- const rand = () => "Пример жёлтого тоста № " + Math.round(Math.random() * 100).toString();
22
-
23
- const pushToast = () => {
24
- SingleToast.push(rand(), {
25
- label: "Cancel",
26
- handler: () => SingleToast.push("Canceled")
27
- });
28
- };
29
-
30
- <div>
31
- <SingleToast theme={{ toastBg: '#f1c40f' }} />
32
- <Button onClick={pushToast}>
33
- Показать тост с жёлтым фоном
34
- </Button>
35
- </div>
36
- ```
@@ -1,36 +0,0 @@
1
- ### Базовый пример
2
- ```jsx harmony
3
- import { Gapped, Spinner } from '@skbkontur/react-ui';
4
-
5
- const reactNodeCaption = (
6
- <div>
7
- <Spinner type="mini" caption={null} /> <span style={{ color: 'tomato', fontSize: '1.3em' }}>З</span>
8
- агрузка
9
- </div>
10
- );
11
-
12
- <Gapped>
13
- <Spinner type="big" caption="big" />
14
- <Spinner type="normal" caption="normal" />
15
- <Spinner type="mini" caption="mini" />
16
- <Spinner type="mini" dimmed caption="mini dimmed" />
17
- <Spinner type="big" caption={reactNodeCaption} />
18
- <Spinner type="big" caption="custom" width={8} color={'#538A1B'}/>
19
- </Gapped>;
20
- ```
21
-
22
- ### Локали по умолчанию
23
-
24
- ```typescript static
25
- interface SpinnerLocale {
26
- loading?: React.ReactNode;
27
- }
28
-
29
- const ru_RU = {
30
- loading: 'Загрузка',
31
- };
32
-
33
- const en_GB = {
34
- loading: 'Loading',
35
- };
36
- ```