@skbkontur/react-ui 0.0.0-a5ba2462c5 → 0.0.0-a6f09fbded
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 +0 -30
- package/cjs/components/Autocomplete/Autocomplete.md +113 -0
- package/cjs/components/Button/Button.md +261 -0
- package/cjs/components/Calendar/Calendar.md +276 -0
- package/cjs/components/Calendar/CalendarDay.md +70 -0
- package/cjs/components/Center/Center.md +26 -0
- package/cjs/components/Checkbox/Checkbox.md +171 -0
- package/cjs/components/ComboBox/ComboBox.d.ts +11 -5
- package/cjs/components/ComboBox/ComboBox.js +10 -1
- package/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/cjs/components/ComboBox/ComboBox.md +574 -0
- package/cjs/components/CurrencyInput/CurrencyInput.md +39 -0
- package/cjs/components/CurrencyLabel/CurrencyLabel.js +2 -2
- package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/cjs/components/CurrencyLabel/CurrencyLabel.md +29 -0
- package/cjs/components/DateInput/DateInput.md +111 -0
- package/cjs/components/DatePicker/DatePicker.md +368 -0
- package/cjs/components/Dropdown/Dropdown.md +45 -0
- package/cjs/components/DropdownMenu/DropdownMenu.md +290 -0
- package/cjs/components/FileUploader/FileUploader.md +131 -0
- package/cjs/components/FxInput/FxInput.md +31 -0
- package/cjs/components/Gapped/Gapped.md +44 -0
- package/cjs/components/GlobalLoader/GlobalLoader.md +97 -0
- package/cjs/components/Group/Group.md +19 -0
- package/cjs/components/Hint/Hint.md +86 -0
- package/cjs/components/Input/Input.md +86 -0
- package/cjs/components/Input/InputLayout/InputLayout.d.ts +1 -0
- package/cjs/components/Input/InputLayout/InputLayout.js +4 -2
- package/cjs/components/Input/InputLayout/InputLayout.js.map +1 -1
- package/cjs/components/Kebab/Kebab.md +306 -0
- package/cjs/components/Link/Link.md +182 -0
- package/cjs/components/Loader/Loader.md +33 -0
- package/cjs/components/MaskedInput/MaskedInput.d.ts +0 -8
- package/cjs/components/MaskedInput/MaskedInput.js +2 -23
- package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
- package/cjs/components/MaskedInput/MaskedInput.md +114 -0
- package/cjs/components/MenuFooter/MenuFooter.md +27 -0
- package/cjs/components/MenuHeader/MenuHeader.md +35 -0
- package/cjs/components/MenuItem/MenuItem.md +139 -0
- package/cjs/components/MenuSeparator/MenuSeparator.md +14 -0
- package/cjs/components/MiniModal/MiniModal.md +231 -0
- package/cjs/components/Modal/Modal.md +56 -0
- package/cjs/components/Paging/Paging.md +57 -0
- package/cjs/components/PasswordInput/PasswordInput.md +29 -0
- package/cjs/components/Radio/Radio.md +57 -0
- package/cjs/components/RadioGroup/RadioGroup.md +44 -0
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.md +75 -0
- package/cjs/components/ScrollContainer/ScrollContainer.md +224 -0
- package/cjs/components/Select/Select.md +113 -0
- package/cjs/components/SidePage/SidePage.md +65 -0
- package/cjs/components/SingleToast/SingleToast.md +36 -0
- package/cjs/components/Spinner/Spinner.md +36 -0
- package/cjs/components/Sticky/Sticky.md +28 -0
- package/cjs/components/Switcher/Switcher.md +111 -0
- package/cjs/components/Tabs/Tab.md +73 -0
- package/cjs/components/Tabs/Tabs.md +54 -0
- package/cjs/components/Textarea/Textarea.d.ts +6 -1
- package/cjs/components/Textarea/Textarea.js +16 -3
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Textarea/Textarea.md +58 -0
- package/cjs/components/Textarea/Textarea.styles.js +2 -1
- package/cjs/components/Textarea/Textarea.styles.js.map +1 -1
- package/cjs/components/Toast/Toast.md +69 -0
- package/cjs/components/Toggle/Toggle.md +110 -0
- package/cjs/components/Token/Token.md +48 -0
- package/cjs/components/TokenInput/TokenInput.md +277 -0
- package/cjs/components/Tooltip/Tooltip.d.ts +1 -1
- package/cjs/components/Tooltip/Tooltip.js +6 -8
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.md +322 -0
- package/cjs/components/TooltipMenu/TooltipMenu.md +241 -0
- package/cjs/internal/ClearCrossIcon/ClearCrossIcon.d.ts +1 -0
- package/cjs/internal/ClearCrossIcon/ClearCrossIcon.js +16 -7
- package/cjs/internal/ClearCrossIcon/ClearCrossIcon.js.map +1 -1
- package/cjs/internal/ClearCrossIcon/ClearCrossIcon.styles.d.ts +3 -0
- package/cjs/internal/ClearCrossIcon/ClearCrossIcon.styles.js +27 -9
- package/cjs/internal/ClearCrossIcon/ClearCrossIcon.styles.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +7 -6
- package/cjs/internal/CustomComboBox/ComboBoxView.js +2 -7
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +6 -5
- package/cjs/internal/CustomComboBox/CustomComboBox.js +1 -3
- package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/cjs/internal/CustomComboBox/getComboBoxTheme.d.ts +2 -1
- package/cjs/internal/CustomComboBox/getComboBoxTheme.js +10 -7
- package/cjs/internal/CustomComboBox/getComboBoxTheme.js.map +1 -1
- package/cjs/internal/DataTids/DATATIDS.md +12 -0
- package/cjs/internal/DataTids/DataTids.d.ts +12 -0
- package/cjs/internal/DataTids/DataTids.js +50 -0
- package/cjs/internal/DataTids/DataTids.js.map +1 -0
- package/cjs/internal/DataTids/DataTids.styles.d.ts +7 -0
- package/cjs/internal/DataTids/DataTids.styles.js +42 -0
- package/cjs/internal/DataTids/DataTids.styles.js.map +1 -0
- package/cjs/internal/DataTids/componentsDataTids.d.ts +5 -0
- package/cjs/internal/DataTids/componentsDataTids.js +15 -0
- package/cjs/internal/DataTids/componentsDataTids.js.map +1 -0
- package/cjs/internal/InputLikeText/InputLikeText.styles.d.ts +1 -0
- package/cjs/internal/InputLikeText/InputLikeText.styles.js +12 -4
- package/cjs/internal/InputLikeText/InputLikeText.styles.js.map +1 -1
- package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +37 -0
- package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +235 -0
- package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -0
- package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.d.ts +3 -0
- package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js +10 -0
- package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js.map +1 -0
- package/cjs/internal/ThemePlayground/Playground.md +7 -0
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/themes/BasicTheme.d.ts +2 -0
- package/cjs/internal/themes/BasicTheme.js +11 -6
- package/cjs/internal/themes/BasicTheme.js.map +1 -1
- package/cjs/internal/themes/DarkTheme5_4.js +10 -3
- package/cjs/internal/themes/DarkTheme5_4.js.map +1 -1
- package/cjs/internal/themes/LightTheme5_4.js +10 -3
- package/cjs/internal/themes/LightTheme5_4.js.map +1 -1
- package/cjs/internal/themes/consts.d.ts +7 -0
- package/cjs/internal/themes/consts.js +7 -0
- package/cjs/internal/themes/consts.js.map +1 -0
- package/cjs/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +64 -0
- package/cjs/lib/locale/LOCALECONTEXT.md +222 -0
- package/cjs/lib/theming/ThemeContext.md +265 -0
- package/components/Autocomplete/Autocomplete.md +113 -0
- package/components/Button/Button.md +261 -0
- package/components/Calendar/Calendar.md +276 -0
- package/components/Calendar/CalendarDay.md +70 -0
- package/components/Center/Center.md +26 -0
- package/components/Checkbox/Checkbox.md +171 -0
- package/components/ComboBox/ComboBox/ComboBox.js +2 -1
- package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
- package/components/ComboBox/ComboBox.d.ts +11 -5
- package/components/ComboBox/ComboBox.md +574 -0
- package/components/CurrencyInput/CurrencyInput.md +39 -0
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +1 -1
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/components/CurrencyLabel/CurrencyLabel.md +29 -0
- package/components/DateInput/DateInput.md +111 -0
- package/components/DatePicker/DatePicker.md +368 -0
- package/components/Dropdown/Dropdown.md +45 -0
- package/components/DropdownMenu/DropdownMenu.md +290 -0
- package/components/FileUploader/FileUploader.md +131 -0
- package/components/FxInput/FxInput.md +31 -0
- package/components/Gapped/Gapped.md +44 -0
- package/components/GlobalLoader/GlobalLoader.md +97 -0
- package/components/Group/Group.md +19 -0
- package/components/Hint/Hint.md +86 -0
- package/components/Input/Input.md +86 -0
- package/components/Input/InputLayout/InputLayout/InputLayout.js +5 -2
- package/components/Input/InputLayout/InputLayout/InputLayout.js.map +1 -1
- package/components/Input/InputLayout/InputLayout.d.ts +1 -0
- package/components/Kebab/Kebab.md +306 -0
- package/components/Link/Link.md +182 -0
- package/components/Loader/Loader.md +33 -0
- package/components/MaskedInput/MaskedInput/MaskedInput.js +1 -11
- package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
- package/components/MaskedInput/MaskedInput.d.ts +0 -8
- package/components/MaskedInput/MaskedInput.md +114 -0
- package/components/MenuFooter/MenuFooter.md +27 -0
- package/components/MenuHeader/MenuHeader.md +35 -0
- package/components/MenuItem/MenuItem.md +139 -0
- package/components/MenuSeparator/MenuSeparator.md +14 -0
- package/components/MiniModal/MiniModal.md +231 -0
- package/components/Modal/Modal.md +56 -0
- package/components/Paging/Paging.md +57 -0
- package/components/PasswordInput/PasswordInput.md +29 -0
- package/components/Radio/Radio.md +57 -0
- package/components/RadioGroup/RadioGroup.md +44 -0
- package/components/ResponsiveLayout/ResponsiveLayout.md +75 -0
- package/components/ScrollContainer/ScrollContainer.md +224 -0
- package/components/Select/Select.md +113 -0
- package/components/SidePage/SidePage.md +65 -0
- package/components/SingleToast/SingleToast.md +36 -0
- package/components/Spinner/Spinner.md +36 -0
- package/components/Sticky/Sticky.md +28 -0
- package/components/Switcher/Switcher.md +111 -0
- package/components/Tabs/Tab.md +73 -0
- package/components/Tabs/Tabs.md +54 -0
- package/components/Textarea/Textarea/Textarea.js +11 -2
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +6 -1
- package/components/Textarea/Textarea.md +58 -0
- package/components/Textarea/Textarea.styles/Textarea.styles.js +1 -1
- package/components/Textarea/Textarea.styles/Textarea.styles.js.map +1 -1
- package/components/Toast/Toast.md +69 -0
- package/components/Toggle/Toggle.md +110 -0
- package/components/Token/Token.md +48 -0
- package/components/TokenInput/TokenInput.md +277 -0
- package/components/Tooltip/Tooltip/Tooltip.js +4 -7
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +1 -1
- package/components/Tooltip/Tooltip.md +322 -0
- package/components/TooltipMenu/TooltipMenu.md +241 -0
- package/internal/ClearCrossIcon/ClearCrossIcon/ClearCrossIcon.js +21 -7
- package/internal/ClearCrossIcon/ClearCrossIcon/ClearCrossIcon.js.map +1 -1
- package/internal/ClearCrossIcon/ClearCrossIcon.d.ts +1 -0
- package/internal/ClearCrossIcon/ClearCrossIcon.styles/ClearCrossIcon.styles.js +14 -5
- package/internal/ClearCrossIcon/ClearCrossIcon.styles/ClearCrossIcon.styles.js.map +1 -1
- package/internal/ClearCrossIcon/ClearCrossIcon.styles.d.ts +3 -0
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +44 -51
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView.d.ts +7 -6
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +3 -5
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox.d.ts +6 -5
- package/internal/CustomComboBox/getComboBoxTheme/getComboBoxTheme.js +5 -3
- package/internal/CustomComboBox/getComboBoxTheme/getComboBoxTheme.js.map +1 -1
- package/internal/CustomComboBox/getComboBoxTheme.d.ts +2 -1
- package/internal/DataTids/DATATIDS.md +12 -0
- package/internal/DataTids/DataTids/DataTids.js +69 -0
- package/internal/DataTids/DataTids/DataTids.js.map +1 -0
- package/internal/DataTids/DataTids/package.json +6 -0
- package/internal/DataTids/DataTids.d.ts +12 -0
- package/internal/DataTids/DataTids.styles/DataTids.styles.js +20 -0
- package/internal/DataTids/DataTids.styles/DataTids.styles.js.map +1 -0
- package/internal/DataTids/DataTids.styles/package.json +6 -0
- package/internal/DataTids/DataTids.styles.d.ts +7 -0
- package/internal/DataTids/componentsDataTids/componentsDataTids.js +12 -0
- package/internal/DataTids/componentsDataTids/componentsDataTids.js.map +1 -0
- package/internal/DataTids/componentsDataTids/package.json +6 -0
- package/internal/DataTids/componentsDataTids.d.ts +5 -0
- package/internal/InputLikeText/InputLikeText.styles/InputLikeText.styles.js +7 -4
- package/internal/InputLikeText/InputLikeText.styles/InputLikeText.styles.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.styles.d.ts +1 -0
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js +249 -0
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -0
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/package.json +6 -0
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +37 -0
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles/InternalTextareaWithLayout.styles.js +8 -0
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles/InternalTextareaWithLayout.styles.js.map +1 -0
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles/package.json +6 -0
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.d.ts +3 -0
- package/internal/ThemePlayground/Playground.md +7 -0
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/themes/BasicTheme/BasicTheme.js +4 -4
- package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
- package/internal/themes/BasicTheme.d.ts +2 -0
- package/internal/themes/DarkTheme5_4/DarkTheme5_4.js +4 -2
- package/internal/themes/DarkTheme5_4/DarkTheme5_4.js.map +1 -1
- package/internal/themes/LightTheme5_4/LightTheme5_4.js +4 -2
- package/internal/themes/LightTheme5_4/LightTheme5_4.js.map +1 -1
- package/internal/themes/consts/consts.js +7 -0
- package/internal/themes/consts/consts.js.map +1 -0
- package/internal/themes/consts/package.json +6 -0
- package/internal/themes/consts.d.ts +7 -0
- package/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +64 -0
- package/lib/locale/LOCALECONTEXT.md +222 -0
- package/lib/theming/ThemeContext.md +265 -0
- package/package.json +6 -1
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
У компонента `<Tabs.Tab />` есть несколько визуальных состояний, в которых компонент может находиться: `primary`, `success`, `warning` и `error`. Чтобы перевести контрол в нужное состояние передайте компоненту булевый проп с соответсвующим названием.
|
|
2
|
+
|
|
3
|
+
### Кастомизация
|
|
4
|
+
Используя переменные `tabColorPrimary`, `tabColorSuccess`, `tabColorWarning` и `tabColorError` можно изменить активный цвет состояния, а библиотека автоматически подберёт цвет подчёркивания при наведении.
|
|
5
|
+
```jsx harmony
|
|
6
|
+
import { ThemeContext, ThemeFactory, Button, Tabs } from '@skbkontur/react-ui';
|
|
7
|
+
|
|
8
|
+
const getRandomColor = () => '#' + Math.random().toString(16).substr(-6);
|
|
9
|
+
const updateColors = () => {
|
|
10
|
+
return {
|
|
11
|
+
tabColorPrimary: getRandomColor(),
|
|
12
|
+
tabColorSuccess: getRandomColor(),
|
|
13
|
+
tabColorWarning: getRandomColor(),
|
|
14
|
+
tabColorError: getRandomColor(),
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const [activeBase, setActiveBase] = React.useState('error');
|
|
19
|
+
const [activeRandom, setActiveRandom] = React.useState('error');
|
|
20
|
+
const [colors, setColors] = React.useState(updateColors());
|
|
21
|
+
|
|
22
|
+
<>
|
|
23
|
+
<p style={{ fontSize: '17px' }}>C цветами по умолчанию</p>
|
|
24
|
+
<Tabs value={activeBase} onValueChange={setActiveBase}>
|
|
25
|
+
<Tabs.Tab primary id="primary">Primary</Tabs.Tab>
|
|
26
|
+
<Tabs.Tab success id="success">Success</Tabs.Tab>
|
|
27
|
+
<Tabs.Tab warning id="warning">Warning</Tabs.Tab>
|
|
28
|
+
<Tabs.Tab error id="error">Error</Tabs.Tab>
|
|
29
|
+
</Tabs>
|
|
30
|
+
|
|
31
|
+
<p style={{ fontSize: '17px' }}>Со случайным основным цветом</p>
|
|
32
|
+
<div style={{ display: 'inline-flex', flexDirection: 'column', justifyContent: 'space-between', height: '100px' }}>
|
|
33
|
+
<ThemeContext.Consumer>
|
|
34
|
+
{(theme) => {
|
|
35
|
+
return (
|
|
36
|
+
<ThemeContext.Provider
|
|
37
|
+
value={ThemeFactory.create(colors,theme)}
|
|
38
|
+
>
|
|
39
|
+
<Tabs value={activeRandom} onValueChange={setActiveRandom}>
|
|
40
|
+
<Tabs.Tab primary id="primary">Primary</Tabs.Tab>
|
|
41
|
+
<Tabs.Tab success id="success">Success</Tabs.Tab>
|
|
42
|
+
<Tabs.Tab warning id="warning">Warning</Tabs.Tab>
|
|
43
|
+
<Tabs.Tab error id="error">Error</Tabs.Tab>
|
|
44
|
+
</Tabs>
|
|
45
|
+
</ThemeContext.Provider>
|
|
46
|
+
);
|
|
47
|
+
}}
|
|
48
|
+
</ThemeContext.Consumer>
|
|
49
|
+
<Button onClick={() => setColors(updateColors)}>Получить новый набор цветов</Button>
|
|
50
|
+
</div>
|
|
51
|
+
</>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Изменение корневого компонента Tab
|
|
55
|
+
С помощью пропа `component` можно изменять корневой элемент `<Tab />`.
|
|
56
|
+
|
|
57
|
+
Проп может принимать: компоненты, функции и строки.
|
|
58
|
+
```jsx harmony
|
|
59
|
+
import { Tabs } from '@skbkontur/react-ui';
|
|
60
|
+
|
|
61
|
+
const [active, setActive] = React.useState('/fuji');
|
|
62
|
+
|
|
63
|
+
const NavLink = props => <a {...props} />;
|
|
64
|
+
|
|
65
|
+
<Tabs value={active} onValueChange={setActive}>
|
|
66
|
+
{/** Кастомный компонент **/}
|
|
67
|
+
<Tabs.Tab component={(props) => <NavLink {...props} />} id="/fuji">🌋 Fuji</Tabs.Tab>
|
|
68
|
+
{/** Функция **/}
|
|
69
|
+
<Tabs.Tab component={(props) => <a {...props} />} id="/tahat">⛰ Tahat</Tabs.Tab>
|
|
70
|
+
{/** Строка **/}
|
|
71
|
+
<Tabs.Tab component="a" id="/alps">🗻 Alps</Tabs.Tab>
|
|
72
|
+
</Tabs>;
|
|
73
|
+
```
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
### Базовый пример
|
|
2
|
+
```jsx harmony
|
|
3
|
+
const [active, setActive] = React.useState('fuji');
|
|
4
|
+
|
|
5
|
+
<Tabs value={active} onValueChange={setActive}>
|
|
6
|
+
<Tabs.Tab id="fuji">🌋 Fuji</Tabs.Tab>
|
|
7
|
+
<Tabs.Tab id="tahat">⛰ Tahat</Tabs.Tab>
|
|
8
|
+
<Tabs.Tab id="alps">🗻 Alps</Tabs.Tab>
|
|
9
|
+
</Tabs>;
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
### Расположение табов
|
|
13
|
+
Компонент может отображать табы двумя способами: горизонтально (по умолчанию) и вертикально.
|
|
14
|
+
```jsx harmony
|
|
15
|
+
const [active, setActive] = React.useState('fuji');
|
|
16
|
+
|
|
17
|
+
<Tabs vertical value={active} onValueChange={setActive}>
|
|
18
|
+
<Tabs.Tab id="fuji">🌋 Fuji</Tabs.Tab>
|
|
19
|
+
<Tabs.Tab id="tahat">⛰ Tahat</Tabs.Tab>
|
|
20
|
+
<Tabs.Tab id="alps">🗻 Alps</Tabs.Tab>
|
|
21
|
+
</Tabs>;
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Размер
|
|
25
|
+
```jsx harmony
|
|
26
|
+
const [active, setActive] = React.useState('fuji');
|
|
27
|
+
const renderCaption = (caption) => <span style={{display: "inline-block", width: 60}}>{caption}</span>;
|
|
28
|
+
<div>
|
|
29
|
+
<div>
|
|
30
|
+
{renderCaption("small")}
|
|
31
|
+
<Tabs value={active} onValueChange={setActive} size="small">
|
|
32
|
+
<Tabs.Tab id="fuji">🌋 Fuji</Tabs.Tab>
|
|
33
|
+
<Tabs.Tab id="tahat">⛰ Tahat</Tabs.Tab>
|
|
34
|
+
<Tabs.Tab id="alps">🗻 Alps</Tabs.Tab>
|
|
35
|
+
</Tabs>
|
|
36
|
+
</div>
|
|
37
|
+
<div>
|
|
38
|
+
{renderCaption("medium")}
|
|
39
|
+
<Tabs value={active} onValueChange={setActive} size="medium">
|
|
40
|
+
<Tabs.Tab id="fuji">🌋 Fuji</Tabs.Tab>
|
|
41
|
+
<Tabs.Tab id="tahat">⛰ Tahat</Tabs.Tab>
|
|
42
|
+
<Tabs.Tab id="alps">🗻 Alps</Tabs.Tab>
|
|
43
|
+
</Tabs>
|
|
44
|
+
</div>
|
|
45
|
+
<div>
|
|
46
|
+
{renderCaption("large")}
|
|
47
|
+
<Tabs value={active} onValueChange={setActive} size="large">
|
|
48
|
+
<Tabs.Tab id="fuji">🌋 Fuji</Tabs.Tab>
|
|
49
|
+
<Tabs.Tab id="tahat">⛰ Tahat</Tabs.Tab>
|
|
50
|
+
<Tabs.Tab id="alps">🗻 Alps</Tabs.Tab>
|
|
51
|
+
</Tabs>
|
|
52
|
+
</div>
|
|
53
|
+
</div>;
|
|
54
|
+
```
|
|
@@ -4,7 +4,9 @@ import type { Override } from '../../typings/utility-types';
|
|
|
4
4
|
import type { CommonProps } from '../../internal/CommonWrapper';
|
|
5
5
|
import type { TGetRootNode } from '../../lib/rootNode';
|
|
6
6
|
import type { SizeProp } from '../../lib/types/props';
|
|
7
|
-
|
|
7
|
+
import type { InputAlign } from '../Input';
|
|
8
|
+
export declare const DEFAULT_WIDTH = 250;
|
|
9
|
+
export interface TextareaProps extends Pick<AriaAttributes, 'aria-controls' | 'aria-label'>, CommonProps, Override<React.TextareaHTMLAttributes<HTMLTextAreaElement>, {
|
|
8
10
|
/** Переводит контрол в состояние валидации "ошибка". */
|
|
9
11
|
error?: boolean;
|
|
10
12
|
/** Переводит контрол в состояние валидации "предупреждение". */
|
|
@@ -46,6 +48,8 @@ export interface TextareaProps extends Pick<AriaAttributes, 'aria-label'>, Commo
|
|
|
46
48
|
extraRow?: boolean;
|
|
47
49
|
/** Отключает анимацию при авто-ресайзе. Автоматически отключается когда в `extraRow` передан `false`. */
|
|
48
50
|
disableAnimations?: boolean;
|
|
51
|
+
/** Выравнивание текста */
|
|
52
|
+
align?: InputAlign;
|
|
49
53
|
}> {
|
|
50
54
|
}
|
|
51
55
|
export interface TextareaState {
|
|
@@ -68,6 +72,7 @@ export declare class Textarea extends React.Component<TextareaProps, TextareaSta
|
|
|
68
72
|
static __KONTUR_REACT_UI__: string;
|
|
69
73
|
static displayName: string;
|
|
70
74
|
static defaultProps: DefaultProps;
|
|
75
|
+
clear: () => void;
|
|
71
76
|
private getProps;
|
|
72
77
|
private getRootSizeClassName;
|
|
73
78
|
private getTextareaSizeClassName;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;exports.__esModule = true;exports.TextareaDataTids = exports.Textarea = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;exports.__esModule = true;exports.TextareaDataTids = exports.Textarea = exports.DEFAULT_WIDTH = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
|
|
2
2
|
var _react = _interopRequireDefault(require("react"));
|
|
3
3
|
var _lodash = _interopRequireDefault(require("lodash.throttle"));
|
|
4
4
|
var _globalObject = require("@skbkontur/global-object");
|
|
@@ -21,13 +21,14 @@ var _rootNode = require("../../lib/rootNode");
|
|
|
21
21
|
var _createPropsGetter = require("../../lib/createPropsGetter");
|
|
22
22
|
|
|
23
23
|
|
|
24
|
+
|
|
24
25
|
var _TextareaHelpers = require("./TextareaHelpers");
|
|
25
26
|
var _Textarea2 = require("./Textarea.styles");
|
|
26
27
|
|
|
27
28
|
var _TextareaCounter = require("./TextareaCounter");
|
|
28
29
|
var _TextareaWithSafari17Workaround = require("./TextareaWithSafari17Workaround");var _excluded = ["width", "error", "warning", "size", "autoResize", "resize", "onCut", "onPaste", "maxRows", "onFocus", "selectAllOnFocus", "placeholder", "onValueChange", "showLengthCounter", "lengthCounter", "counterHelp", "extraRow", "disableAnimations", "disabled"];var _class, _Textarea;
|
|
29
30
|
|
|
30
|
-
var DEFAULT_WIDTH = 250;
|
|
31
|
+
var DEFAULT_WIDTH = exports.DEFAULT_WIDTH = 250;
|
|
31
32
|
var AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;
|
|
32
33
|
|
|
33
34
|
|
|
@@ -97,6 +98,8 @@ var AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;
|
|
|
97
98
|
|
|
98
99
|
|
|
99
100
|
|
|
101
|
+
|
|
102
|
+
|
|
100
103
|
|
|
101
104
|
|
|
102
105
|
|
|
@@ -127,6 +130,15 @@ Textarea = exports.Textarea = (0, _rootNode.rootNode)(_class = (_Textarea = /*#_
|
|
|
127
130
|
|
|
128
131
|
|
|
129
132
|
|
|
133
|
+
clear = function () {
|
|
134
|
+
if (_this.node) {
|
|
135
|
+
_this.node.value = '';
|
|
136
|
+
}
|
|
137
|
+
if (_this.fakeNode) {
|
|
138
|
+
_this.fakeNode.value = '';
|
|
139
|
+
}
|
|
140
|
+
};_this.
|
|
141
|
+
|
|
130
142
|
getProps = (0, _createPropsGetter.createPropsGetter)(Textarea.defaultProps);_this.
|
|
131
143
|
|
|
132
144
|
|
|
@@ -329,7 +341,8 @@ Textarea = exports.Textarea = (0, _rootNode.rootNode)(_class = (_Textarea = /*#_
|
|
|
329
341
|
);
|
|
330
342
|
|
|
331
343
|
var textareaStyle = {
|
|
332
|
-
resize: autoResize ? 'none' : resize
|
|
344
|
+
resize: autoResize ? 'none' : resize,
|
|
345
|
+
textAlign: _this.props.align
|
|
333
346
|
};
|
|
334
347
|
|
|
335
348
|
var placeholderPolyfill = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_lodash","_globalObject","_identifiers","_needsPolyfillPlaceholder","LayoutEvents","_interopRequireWildcard","_ThemeContext","_RenderLayer","_ResizeDetector","_client","_CommonWrapper","_currentEnvironment","_Emotion","_rootNode","_createPropsGetter","_TextareaHelpers","_Textarea2","_TextareaCounter","_TextareaWithSafari17Workaround","_excluded","_class","_Textarea","DEFAULT_WIDTH","AUTORESIZE_THROTTLE_DEFAULT_WAIT","TextareaDataTids","exports","root","counter","helpIcon","Textarea","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","needsPolyfillPlaceholder","isCounterVisible","reflowCounter","reflow","selectAllId","textareaObserver","globalObject","MutationObserver","setSelectionRange","start","end","_globalObject$documen","node","Error","document","activeElement","focus","selectAll","value","delaySelectAll","_globalObject$request","requestAnimationFrame","cancelDelayedSelectAll","cancelAnimationFrame","renderMain","props","_cx","_ref","_textareaProps$maxLen","_cx2","_props$width","width","error","warning","size","autoResize","resize","onCut","onPaste","maxRows","onFocus","selectAllOnFocus","placeholder","onValueChange","showLengthCounter","lengthCounter","counterHelp","extraRow","disableAnimations","disabled","textareaProps","_objectWithoutPropertiesLoose2","default","rootProps","style","textareaClassNames","cx","getTextareaSizeClassName","styles","textarea","theme","hovering","isAnimationsDisabled","textareaStyle","placeholderPolyfill","defaultValue","createElement","className","fakeTextarea","fakeProps","fake","readOnly","_extends2","ref","refFake","TextareaCounter","help","maxLength","onCloseHelp","handleCloseCounterHelp","refCounter","Component","isSafariWithTextareaBug","TextareaWithSafari17Workaround","RenderLayer","onFocusOutside","onClickOutside","active","getRootSizeClassName","ResizeDetector","onResize","undefined","onChange","handleChange","handleCut","handlePaste","handleFocus","onKeyDown","handleKeyDown","children","setState","e","toString","isBlockEnter","isKeyEnter","preventDefault","fieldIsEmpty","target","element","fakeNode","autoResizeHandler","_this$getProps","rows","_ref2","getTextAreaHeight","minRows","parseInt","height","exceededMaxHeight","overflowY","throttle","getAutoResizeThrottleWait","event","isIE11","_inheritsLoose2","_proto","prototype","rootLarge","rootMedium","rootSmall","textareaLarge","textareaMedium","textareaSmall","_temp","_ref3","componentDidMount","layoutEvents","addListener","observe","attributes","componentWillUnmount","remove","disconnect","componentDidUpdate","prevProps","cancel","_this$getProps2","render","_this2","ThemeContext","Consumer","CommonWrapper","rootNodeRef","setRootNode","blur","React","__KONTUR_REACT_UI__","displayName","isTestEnv"],"sources":["Textarea.tsx"],"sourcesContent":["import type { AriaAttributes, ReactNode } from 'react';\nimport React from 'react';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isIE11, isSafariWithTextareaBug } from '../../lib/client';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\n\nimport { getTextAreaHeight } from './TextareaHelpers';\nimport { styles } from './Textarea.styles';\nimport type { TextareaCounterRef } from './TextareaCounter';\nimport { TextareaCounter } from './TextareaCounter';\nimport { TextareaWithSafari17Workaround } from './TextareaWithSafari17Workaround';\n\nconst DEFAULT_WIDTH = 250;\nconst AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;\n\nexport interface TextareaProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Override<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n {\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает размер компонента. */\n size?: SizeProp;\n\n /** Выполняет автоматический ресайз в зависимости от содержимого. */\n autoResize?: boolean;\n\n /** Задает высоту текстарии в виде числа строк видимых без скролла. */\n rows?: number;\n\n /** Задает максимальное число строк при автоматическом ресайзе. */\n maxRows?: string | number;\n\n /** Задает направления ресайза компонента.\n * Попадает в `style`. */\n resize?: React.CSSProperties['resize'];\n\n /** Задает ширину текстэрии. */\n width?: React.CSSProperties['width'];\n\n /** Задает функцию, которая вызывается при изменении `value`. */\n onValueChange?: (value: string) => void;\n\n /** Определяет, нужно ли выделять введенное значение при фокусе. Работает с типами text, password, tel, search, url. */\n selectAllOnFocus?: boolean;\n\n /** Определяет, нужно ли показывать счетчик символов. */\n showLengthCounter?: boolean;\n\n /** Задает допустимое количество символов в поле. Отображается в счетчике.\n * @default maxLength */\n lengthCounter?: number;\n\n /** Задает подсказку к счетчику символов.\n * По умолчанию - тултип с содержимым из пропа, если передан `ReactNode`.\n * Передав функцию, можно переопределить подсказку целиком, вместе с иконкой.\n * @example\n * ```\n * counterHelp={() => <Tooltip render={...}><HelpIcon /></Tooltip>}\n * ``` */\n counterHelp?: ReactNode | (() => ReactNode);\n\n /** Добавляет дополнительную свободную строку при авто-ресайзе.\n * @see https://guides.kontur.ru/components/textarea/#04 */\n extraRow?: boolean;\n\n /** Отключает анимацию при авто-ресайзе. Автоматически отключается когда в `extraRow` передан `false`. */\n disableAnimations?: boolean;\n }\n > {}\n\nexport interface TextareaState {\n needsPolyfillPlaceholder: boolean;\n isCounterVisible: boolean;\n}\n\nexport const TextareaDataTids = {\n root: 'Textarea__root',\n counter: 'TextareaCounter__root',\n helpIcon: 'TextareaCounter__helpIcon',\n} as const;\n\ntype DefaultProps = Required<Pick<TextareaProps, 'rows' | 'maxRows' | 'extraRow' | 'disableAnimations' | 'size'>>;\n\n/**\n * Многострочное поле `Textarea` — это поле ввода, которое позволяет работать с несколькими строками текста.\n *\n * Принимает все атрибуты `React.TextareaHTMLAttributes<HTMLTextAreaElement>`.\n * Пропы **`className` и `style` игнорируются**.\n */\n@rootNode\nexport class Textarea extends React.Component<TextareaProps, TextareaState> {\n public static __KONTUR_REACT_UI__ = 'Textarea';\n public static displayName = 'Textarea';\n\n public static defaultProps: DefaultProps = {\n rows: 3,\n maxRows: 15,\n extraRow: true,\n size: 'small',\n disableAnimations: isTestEnv,\n };\n\n private getProps = createPropsGetter(Textarea.defaultProps);\n\n private getRootSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getTextareaSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.textareaLarge(this.theme);\n case 'medium':\n return styles.textareaMedium(this.theme);\n case 'small':\n default:\n return styles.textareaSmall(this.theme);\n }\n }\n\n public state = {\n needsPolyfillPlaceholder,\n isCounterVisible: false,\n };\n private reflowCounter = () => {\n if (this.counter) {\n this.counter.reflow();\n }\n };\n\n private theme!: Theme;\n private selectAllId: number | null = null;\n private node: Nullable<HTMLTextAreaElement>;\n private fakeNode: Nullable<HTMLTextAreaElement>;\n private counter: Nullable<TextareaCounterRef>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private textareaObserver = globalObject.MutationObserver\n ? new globalObject.MutationObserver(this.reflowCounter)\n : null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private getAutoResizeThrottleWait(props: TextareaProps = this.props): number {\n // NOTE: При отключении анимации остается эффект дергания при авто-ресайзе из-за троттлинга расчета высоты\n // Поэтому выставляем таймаут троттла в ноль. Подробности - https://github.com/skbkontur/retail-ui/issues/2120\n return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;\n }\n private isAnimationsDisabled({ disableAnimations, extraRow }: TextareaProps = this.props): boolean {\n return disableAnimations || !extraRow;\n }\n\n public componentDidMount() {\n if (this.props.autoResize) {\n this.autoResize();\n this.layoutEvents = LayoutEvents.addListener(this.autoResize);\n }\n\n if (this.node && this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.observe(this.node, { attributes: true });\n }\n }\n\n public componentWillUnmount() {\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n if (this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.disconnect();\n }\n this.cancelDelayedSelectAll();\n }\n\n public componentDidUpdate(prevProps: TextareaProps) {\n if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {\n this.autoResize.cancel();\n this.autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n }\n const { rows, maxRows } = this.getProps();\n if (\n this.props.autoResize &&\n (rows !== prevProps.rows || maxRows !== prevProps.maxRows || this.props.value !== prevProps.value)\n ) {\n this.autoResize();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange = (start: number, end: number) => {\n if (!this.node) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (globalObject.document?.activeElement !== this.node) {\n this.focus();\n }\n\n this.node.setSelectionRange(start, end);\n };\n\n /**\n * @public\n */\n public selectAll = () => {\n if (this.node) {\n this.setSelectionRange(0, this.node.value.length);\n }\n };\n\n private delaySelectAll = (): number | null =>\n (this.selectAllId = globalObject.requestAnimationFrame?.(this.selectAll) ?? null);\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n globalObject.cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<TextareaProps>) => {\n const {\n width = DEFAULT_WIDTH,\n error,\n warning,\n size,\n autoResize,\n resize,\n onCut,\n onPaste,\n maxRows,\n onFocus,\n selectAllOnFocus,\n placeholder,\n onValueChange,\n showLengthCounter,\n lengthCounter,\n counterHelp,\n extraRow,\n disableAnimations,\n disabled,\n ...textareaProps\n } = props;\n\n const { isCounterVisible } = this.state;\n\n const rootProps = {\n style: {\n width,\n },\n };\n\n const textareaClassNames = cx(this.getTextareaSizeClassName(), {\n [styles.textarea(this.theme)]: true,\n [styles.hovering(this.theme)]: !error && !warning,\n [styles.disabled(this.theme)]: disabled,\n [styles.error(this.theme)]: !!error,\n [styles.warning(this.theme)]: !!warning,\n [styles.disableAnimations()]: this.isAnimationsDisabled(),\n });\n\n const textareaStyle = {\n resize: autoResize ? 'none' : resize,\n };\n\n let placeholderPolyfill = null;\n\n if (this.state.needsPolyfillPlaceholder && !textareaProps.value && !textareaProps.defaultValue) {\n placeholderPolyfill = <span className={styles.placeholder()}>{placeholder}</span>;\n }\n\n let fakeTextarea = null;\n if (autoResize) {\n const fakeProps = {\n value: this.props.value,\n defaultValue: this.props.defaultValue,\n className: cx(textareaClassNames, styles.fake()),\n readOnly: true,\n };\n fakeTextarea = <textarea {...fakeProps} ref={this.refFake} />;\n }\n\n const counter = showLengthCounter && isCounterVisible && this.node && (\n <TextareaCounter\n textarea={this.node}\n size={this.getProps().size}\n help={counterHelp}\n value={textareaProps.value}\n length={textareaProps.maxLength ?? lengthCounter ?? 0}\n onCloseHelp={this.handleCloseCounterHelp}\n ref={this.refCounter}\n />\n );\n\n const Component = isSafariWithTextareaBug ? TextareaWithSafari17Workaround : 'textarea';\n\n return (\n <RenderLayer\n onFocusOutside={this.handleCloseCounterHelp}\n onClickOutside={this.handleCloseCounterHelp}\n active={this.state.isCounterVisible}\n >\n <label\n data-tid={TextareaDataTids.root}\n {...rootProps}\n className={cx(this.getRootSizeClassName(), {\n [styles.root()]: true,\n })}\n >\n {placeholderPolyfill}\n <ResizeDetector onResize={this.reflowCounter}>\n <Component\n {...textareaProps}\n className={textareaClassNames}\n style={textareaStyle}\n placeholder={!placeholderPolyfill ? placeholder : undefined}\n ref={this.ref}\n onChange={this.handleChange}\n onCut={this.handleCut}\n onPaste={this.handlePaste}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n disabled={disabled}\n >\n {this.props.children}\n </Component>\n </ResizeDetector>\n {fakeTextarea}\n {counter}\n </label>\n </RenderLayer>\n );\n };\n\n private handleCloseCounterHelp = () => this.setState({ isCounterVisible: false });\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n // Edge bug: textarea maxlength doesn't work after new line\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/18833616/\n const value = this.props.value !== undefined ? this.props.value.toString() : null;\n const isBlockEnter = isKeyEnter(e) && value !== null && value.length === this.props.maxLength;\n\n if (isBlockEnter) {\n e.preventDefault();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = e.target.value === '';\n\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(e.target.value);\n }\n\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onChange) {\n this.props.onChange(e);\n }\n\n this.reflowCounter();\n };\n\n private ref = (element: HTMLTextAreaElement) => {\n this.node = element;\n };\n\n private refFake = (element: HTMLTextAreaElement) => {\n this.fakeNode = element;\n };\n\n private refCounter = (ref: TextareaCounterRef | null) => {\n this.counter = ref;\n };\n\n private autoResizeHandler = () => {\n const fakeNode = this.fakeNode;\n if (!fakeNode) {\n return;\n }\n const node = this.node;\n if (!node) {\n return;\n }\n if (this.props.value === undefined) {\n fakeNode.value = node.value;\n }\n\n const { rows, maxRows } = this.getProps();\n if (rows === undefined || maxRows === undefined) {\n return;\n }\n\n const { height, exceededMaxHeight } =\n getTextAreaHeight({\n node: fakeNode,\n minRows: typeof rows === 'number' ? rows : parseInt(rows, 10),\n maxRows: typeof maxRows === 'number' ? maxRows : parseInt(maxRows, 10),\n extraRow: this.getProps().extraRow,\n }) || {};\n\n if (height === undefined || exceededMaxHeight === undefined) {\n return;\n }\n\n node.style.height = height + 'px';\n node.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n fakeNode.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n };\n\n private autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n\n private handleCut = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onCut) {\n this.props.onCut(event);\n }\n\n this.reflowCounter();\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onPaste) {\n this.props.onPaste(event);\n }\n\n this.reflowCounter();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n this.setState({ isCounterVisible: true });\n\n if (this.props.selectAllOnFocus) {\n // https://github.com/facebook/react/issues/7769\n this.node && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_lodash","_globalObject","_identifiers","_needsPolyfillPlaceholder","LayoutEvents","_interopRequireWildcard","_ThemeContext","_RenderLayer","_ResizeDetector","_client","_CommonWrapper","_currentEnvironment","_Emotion","_rootNode","_createPropsGetter","_TextareaHelpers","_Textarea2","_TextareaCounter","_TextareaWithSafari17Workaround","_excluded","_class","_Textarea","DEFAULT_WIDTH","exports","AUTORESIZE_THROTTLE_DEFAULT_WAIT","TextareaDataTids","root","counter","helpIcon","Textarea","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","clear","node","value","fakeNode","getProps","createPropsGetter","defaultProps","state","needsPolyfillPlaceholder","isCounterVisible","reflowCounter","reflow","selectAllId","textareaObserver","globalObject","MutationObserver","setSelectionRange","start","end","_globalObject$documen","Error","document","activeElement","focus","selectAll","delaySelectAll","_globalObject$request","requestAnimationFrame","cancelDelayedSelectAll","cancelAnimationFrame","renderMain","props","_cx","_ref","_textareaProps$maxLen","_cx2","_props$width","width","error","warning","size","autoResize","resize","onCut","onPaste","maxRows","onFocus","selectAllOnFocus","placeholder","onValueChange","showLengthCounter","lengthCounter","counterHelp","extraRow","disableAnimations","disabled","textareaProps","_objectWithoutPropertiesLoose2","default","rootProps","style","textareaClassNames","cx","getTextareaSizeClassName","styles","textarea","theme","hovering","isAnimationsDisabled","textareaStyle","textAlign","align","placeholderPolyfill","defaultValue","createElement","className","fakeTextarea","fakeProps","fake","readOnly","_extends2","ref","refFake","TextareaCounter","help","maxLength","onCloseHelp","handleCloseCounterHelp","refCounter","Component","isSafariWithTextareaBug","TextareaWithSafari17Workaround","RenderLayer","onFocusOutside","onClickOutside","active","getRootSizeClassName","ResizeDetector","onResize","undefined","onChange","handleChange","handleCut","handlePaste","handleFocus","onKeyDown","handleKeyDown","children","setState","e","toString","isBlockEnter","isKeyEnter","preventDefault","fieldIsEmpty","target","element","autoResizeHandler","_this$getProps","rows","_ref2","getTextAreaHeight","minRows","parseInt","height","exceededMaxHeight","overflowY","throttle","getAutoResizeThrottleWait","event","isIE11","_inheritsLoose2","_proto","prototype","rootLarge","rootMedium","rootSmall","textareaLarge","textareaMedium","textareaSmall","_temp","_ref3","componentDidMount","layoutEvents","addListener","observe","attributes","componentWillUnmount","remove","disconnect","componentDidUpdate","prevProps","cancel","_this$getProps2","render","_this2","ThemeContext","Consumer","CommonWrapper","rootNodeRef","setRootNode","blur","React","__KONTUR_REACT_UI__","displayName","isTestEnv"],"sources":["Textarea.tsx"],"sourcesContent":["import type { AriaAttributes, ReactNode } from 'react';\nimport React from 'react';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isIE11, isSafariWithTextareaBug } from '../../lib/client';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { InputAlign } from '../Input';\n\nimport { getTextAreaHeight } from './TextareaHelpers';\nimport { styles } from './Textarea.styles';\nimport type { TextareaCounterRef } from './TextareaCounter';\nimport { TextareaCounter } from './TextareaCounter';\nimport { TextareaWithSafari17Workaround } from './TextareaWithSafari17Workaround';\n\nexport const DEFAULT_WIDTH = 250;\nconst AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;\n\nexport interface TextareaProps\n extends Pick<AriaAttributes, 'aria-controls' | 'aria-label'>,\n CommonProps,\n Override<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n {\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает размер компонента. */\n size?: SizeProp;\n\n /** Выполняет автоматический ресайз в зависимости от содержимого. */\n autoResize?: boolean;\n\n /** Задает высоту текстарии в виде числа строк видимых без скролла. */\n rows?: number;\n\n /** Задает максимальное число строк при автоматическом ресайзе. */\n maxRows?: string | number;\n\n /** Задает направления ресайза компонента.\n * Попадает в `style`. */\n resize?: React.CSSProperties['resize'];\n\n /** Задает ширину текстэрии. */\n width?: React.CSSProperties['width'];\n\n /** Задает функцию, которая вызывается при изменении `value`. */\n onValueChange?: (value: string) => void;\n\n /** Определяет, нужно ли выделять введенное значение при фокусе. Работает с типами text, password, tel, search, url. */\n selectAllOnFocus?: boolean;\n\n /** Определяет, нужно ли показывать счетчик символов. */\n showLengthCounter?: boolean;\n\n /** Задает допустимое количество символов в поле. Отображается в счетчике.\n * @default maxLength */\n lengthCounter?: number;\n\n /** Задает подсказку к счетчику символов.\n * По умолчанию - тултип с содержимым из пропа, если передан `ReactNode`.\n * Передав функцию, можно переопределить подсказку целиком, вместе с иконкой.\n * @example\n * ```\n * counterHelp={() => <Tooltip render={...}><HelpIcon /></Tooltip>}\n * ``` */\n counterHelp?: ReactNode | (() => ReactNode);\n\n /** Добавляет дополнительную свободную строку при авто-ресайзе.\n * @see https://guides.kontur.ru/components/textarea/#04 */\n extraRow?: boolean;\n\n /** Отключает анимацию при авто-ресайзе. Автоматически отключается когда в `extraRow` передан `false`. */\n disableAnimations?: boolean;\n /** Выравнивание текста */\n align?: InputAlign;\n }\n > {}\n\nexport interface TextareaState {\n needsPolyfillPlaceholder: boolean;\n isCounterVisible: boolean;\n}\n\nexport const TextareaDataTids = {\n root: 'Textarea__root',\n counter: 'TextareaCounter__root',\n helpIcon: 'TextareaCounter__helpIcon',\n} as const;\n\ntype DefaultProps = Required<Pick<TextareaProps, 'rows' | 'maxRows' | 'extraRow' | 'disableAnimations' | 'size'>>;\n\n/**\n * Многострочное поле `Textarea` — это поле ввода, которое позволяет работать с несколькими строками текста.\n *\n * Принимает все атрибуты `React.TextareaHTMLAttributes<HTMLTextAreaElement>`.\n * Пропы **`className` и `style` игнорируются**.\n */\n@rootNode\nexport class Textarea extends React.Component<TextareaProps, TextareaState> {\n public static __KONTUR_REACT_UI__ = 'Textarea';\n public static displayName = 'Textarea';\n\n public static defaultProps: DefaultProps = {\n rows: 3,\n maxRows: 15,\n extraRow: true,\n size: 'small',\n disableAnimations: isTestEnv,\n };\n\n public clear = () => {\n if (this.node) {\n this.node.value = '';\n }\n if (this.fakeNode) {\n this.fakeNode.value = '';\n }\n };\n\n private getProps = createPropsGetter(Textarea.defaultProps);\n\n private getRootSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getTextareaSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.textareaLarge(this.theme);\n case 'medium':\n return styles.textareaMedium(this.theme);\n case 'small':\n default:\n return styles.textareaSmall(this.theme);\n }\n }\n\n public state = {\n needsPolyfillPlaceholder,\n isCounterVisible: false,\n };\n private reflowCounter = () => {\n if (this.counter) {\n this.counter.reflow();\n }\n };\n\n private theme!: Theme;\n private selectAllId: number | null = null;\n private node: Nullable<HTMLTextAreaElement>;\n private fakeNode: Nullable<HTMLTextAreaElement>;\n private counter: Nullable<TextareaCounterRef>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private textareaObserver = globalObject.MutationObserver\n ? new globalObject.MutationObserver(this.reflowCounter)\n : null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private getAutoResizeThrottleWait(props: TextareaProps = this.props): number {\n // NOTE: При отключении анимации остается эффект дергания при авто-ресайзе из-за троттлинга расчета высоты\n // Поэтому выставляем таймаут троттла в ноль. Подробности - https://github.com/skbkontur/retail-ui/issues/2120\n return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;\n }\n private isAnimationsDisabled({ disableAnimations, extraRow }: TextareaProps = this.props): boolean {\n return disableAnimations || !extraRow;\n }\n\n public componentDidMount() {\n if (this.props.autoResize) {\n this.autoResize();\n this.layoutEvents = LayoutEvents.addListener(this.autoResize);\n }\n\n if (this.node && this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.observe(this.node, { attributes: true });\n }\n }\n\n public componentWillUnmount() {\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n if (this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.disconnect();\n }\n this.cancelDelayedSelectAll();\n }\n\n public componentDidUpdate(prevProps: TextareaProps) {\n if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {\n this.autoResize.cancel();\n this.autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n }\n const { rows, maxRows } = this.getProps();\n if (\n this.props.autoResize &&\n (rows !== prevProps.rows || maxRows !== prevProps.maxRows || this.props.value !== prevProps.value)\n ) {\n this.autoResize();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange = (start: number, end: number) => {\n if (!this.node) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (globalObject.document?.activeElement !== this.node) {\n this.focus();\n }\n\n this.node.setSelectionRange(start, end);\n };\n\n /**\n * @public\n */\n public selectAll = () => {\n if (this.node) {\n this.setSelectionRange(0, this.node.value.length);\n }\n };\n\n private delaySelectAll = (): number | null =>\n (this.selectAllId = globalObject.requestAnimationFrame?.(this.selectAll) ?? null);\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n globalObject.cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<TextareaProps>) => {\n const {\n width = DEFAULT_WIDTH,\n error,\n warning,\n size,\n autoResize,\n resize,\n onCut,\n onPaste,\n maxRows,\n onFocus,\n selectAllOnFocus,\n placeholder,\n onValueChange,\n showLengthCounter,\n lengthCounter,\n counterHelp,\n extraRow,\n disableAnimations,\n disabled,\n ...textareaProps\n } = props;\n\n const { isCounterVisible } = this.state;\n\n const rootProps = {\n style: {\n width,\n },\n };\n\n const textareaClassNames = cx(this.getTextareaSizeClassName(), {\n [styles.textarea(this.theme)]: true,\n [styles.hovering(this.theme)]: !error && !warning,\n [styles.disabled(this.theme)]: disabled,\n [styles.error(this.theme)]: !!error,\n [styles.warning(this.theme)]: !!warning,\n [styles.disableAnimations()]: this.isAnimationsDisabled(),\n });\n\n const textareaStyle = {\n resize: autoResize ? 'none' : resize,\n textAlign: this.props.align,\n };\n\n let placeholderPolyfill = null;\n\n if (this.state.needsPolyfillPlaceholder && !textareaProps.value && !textareaProps.defaultValue) {\n placeholderPolyfill = <span className={styles.placeholder()}>{placeholder}</span>;\n }\n\n let fakeTextarea = null;\n if (autoResize) {\n const fakeProps = {\n value: this.props.value,\n defaultValue: this.props.defaultValue,\n className: cx(textareaClassNames, styles.fake()),\n readOnly: true,\n };\n fakeTextarea = <textarea {...fakeProps} ref={this.refFake} />;\n }\n\n const counter = showLengthCounter && isCounterVisible && this.node && (\n <TextareaCounter\n textarea={this.node}\n size={this.getProps().size}\n help={counterHelp}\n value={textareaProps.value}\n length={textareaProps.maxLength ?? lengthCounter ?? 0}\n onCloseHelp={this.handleCloseCounterHelp}\n ref={this.refCounter}\n />\n );\n\n const Component = isSafariWithTextareaBug ? TextareaWithSafari17Workaround : 'textarea';\n\n return (\n <RenderLayer\n onFocusOutside={this.handleCloseCounterHelp}\n onClickOutside={this.handleCloseCounterHelp}\n active={this.state.isCounterVisible}\n >\n <label\n data-tid={TextareaDataTids.root}\n {...rootProps}\n className={cx(this.getRootSizeClassName(), {\n [styles.root()]: true,\n })}\n >\n {placeholderPolyfill}\n <ResizeDetector onResize={this.reflowCounter}>\n <Component\n {...textareaProps}\n className={textareaClassNames}\n style={textareaStyle}\n placeholder={!placeholderPolyfill ? placeholder : undefined}\n ref={this.ref}\n onChange={this.handleChange}\n onCut={this.handleCut}\n onPaste={this.handlePaste}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n disabled={disabled}\n >\n {this.props.children}\n </Component>\n </ResizeDetector>\n {fakeTextarea}\n {counter}\n </label>\n </RenderLayer>\n );\n };\n\n private handleCloseCounterHelp = () => this.setState({ isCounterVisible: false });\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n // Edge bug: textarea maxlength doesn't work after new line\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/18833616/\n const value = this.props.value !== undefined ? this.props.value.toString() : null;\n const isBlockEnter = isKeyEnter(e) && value !== null && value.length === this.props.maxLength;\n\n if (isBlockEnter) {\n e.preventDefault();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = e.target.value === '';\n\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(e.target.value);\n }\n\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onChange) {\n this.props.onChange(e);\n }\n\n this.reflowCounter();\n };\n\n private ref = (element: HTMLTextAreaElement) => {\n this.node = element;\n };\n\n private refFake = (element: HTMLTextAreaElement) => {\n this.fakeNode = element;\n };\n\n private refCounter = (ref: TextareaCounterRef | null) => {\n this.counter = ref;\n };\n\n private autoResizeHandler = () => {\n const fakeNode = this.fakeNode;\n if (!fakeNode) {\n return;\n }\n const node = this.node;\n if (!node) {\n return;\n }\n if (this.props.value === undefined) {\n fakeNode.value = node.value;\n }\n\n const { rows, maxRows } = this.getProps();\n if (rows === undefined || maxRows === undefined) {\n return;\n }\n\n const { height, exceededMaxHeight } =\n getTextAreaHeight({\n node: fakeNode,\n minRows: typeof rows === 'number' ? rows : parseInt(rows, 10),\n maxRows: typeof maxRows === 'number' ? maxRows : parseInt(maxRows, 10),\n extraRow: this.getProps().extraRow,\n }) || {};\n\n if (height === undefined || exceededMaxHeight === undefined) {\n return;\n }\n\n node.style.height = height + 'px';\n node.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n fakeNode.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n };\n\n private autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n\n private handleCut = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onCut) {\n this.props.onCut(event);\n }\n\n this.reflowCounter();\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onPaste) {\n this.props.onPaste(event);\n }\n\n this.reflowCounter();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n this.setState({ isCounterVisible: true });\n\n if (this.props.selectAllOnFocus) {\n // https://github.com/facebook/react/issues/7769\n this.node && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
### Базовый пример
|
|
2
|
+
```jsx harmony
|
|
3
|
+
const [value, setValue] = React.useState('');
|
|
4
|
+
|
|
5
|
+
<Textarea
|
|
6
|
+
value={value}
|
|
7
|
+
onValueChange={setValue}
|
|
8
|
+
autoResize
|
|
9
|
+
placeholder="Through faith we can reign in every area of life"
|
|
10
|
+
/>;
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### Очистка значения
|
|
14
|
+
Очистить значение в `Textarea` можно только с помощью пустой строки
|
|
15
|
+
|
|
16
|
+
```jsx harmony
|
|
17
|
+
import { Group, Button } from '@skbkontur/react-ui';
|
|
18
|
+
|
|
19
|
+
const [value, setValue] = React.useState('Значение');
|
|
20
|
+
|
|
21
|
+
<Group>
|
|
22
|
+
<Textarea
|
|
23
|
+
value={value}
|
|
24
|
+
onValueChange={setValue}
|
|
25
|
+
autoResize
|
|
26
|
+
rows={1}
|
|
27
|
+
placeholder="Плейсхолдер"
|
|
28
|
+
/>
|
|
29
|
+
<Button style={{ height: '52px' }} onClick={() => setValue('')}>Очистить значение</Button>
|
|
30
|
+
</Group>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Счетчик введенных символов
|
|
34
|
+
|
|
35
|
+
```jsx harmony
|
|
36
|
+
const [value, setValue] = React.useState('');
|
|
37
|
+
|
|
38
|
+
<Textarea
|
|
39
|
+
value={value}
|
|
40
|
+
onValueChange={setValue}
|
|
41
|
+
placeholder="Счетчик появляется при фокусе"
|
|
42
|
+
lengthCounter={10}
|
|
43
|
+
showLengthCounter
|
|
44
|
+
counterHelp="Hello 👋"
|
|
45
|
+
/>;
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Размер
|
|
49
|
+
|
|
50
|
+
```jsx harmony
|
|
51
|
+
import { Gapped } from '@skbkontur/react-ui';
|
|
52
|
+
|
|
53
|
+
<Gapped vertical>
|
|
54
|
+
<Textarea size={'small'} value={'Маленький'} autoResize rows={1} />
|
|
55
|
+
<Textarea size={'medium'} value={'Средний'} autoResize rows={1} />
|
|
56
|
+
<Textarea size={'large'} value={'Большой'} autoResize rows={1} />
|
|
57
|
+
</Gapped>
|
|
58
|
+
```
|
|
@@ -27,7 +27,8 @@ var styles = exports.styles = (0, _Emotion.memoizeStyle)({
|
|
|
27
27
|
},
|
|
28
28
|
|
|
29
29
|
textarea: function textarea(t) {
|
|
30
|
-
return (0, _Emotion.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteralLoose2.default)(["\n -webkit-appearance: none;\n background: ", ";\n background-clip: ", ";\n border: ", " solid ", ";\n border-top-color: ", ";\n box-shadow: ", ";\n box-sizing: border-box;\n color: ", ";\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n max-width: 100%;\n min-width: ", ";\n outline: none;\n transition:\n border-color ", " ", ",\n height 0.2s ease-out;\n vertical-align: middle;\n width: 100%;\n border-radius: ", ";\n white-space: pre-wrap;\n\n &:focus {\n border-color: ", ";\n box-shadow: 0 0 0 ", " ", ";\n position: relative;\n z-index: 2;\n\n &::placeholder {\n color: ", ";\n }\n }\n\n &::placeholder {\n color: ", ";\n }\n\n &:-moz-placeholder {\n color: ", ";\n }\n\n &::-moz-placeholder {\n color: ", ";\n }\n "])),
|
|
30
|
+
return (0, _Emotion.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteralLoose2.default)(["\n margin: ", ";\n -webkit-appearance: none;\n background: ", ";\n background-clip: ", ";\n border: ", " solid ", ";\n border-top-color: ", ";\n box-shadow: ", ";\n box-sizing: border-box;\n color: ", ";\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n max-width: 100%;\n min-width: ", ";\n outline: none;\n transition:\n border-color ", " ", ",\n height 0.2s ease-out;\n vertical-align: middle;\n width: 100%;\n border-radius: ", ";\n white-space: pre-wrap;\n\n &:focus {\n border-color: ", ";\n box-shadow: 0 0 0 ", " ", ";\n position: relative;\n z-index: 2;\n\n &::placeholder {\n color: ", ";\n }\n }\n\n &::placeholder {\n color: ", ";\n }\n\n &:-moz-placeholder {\n color: ", ";\n }\n\n &::-moz-placeholder {\n color: ", ";\n }\n "])),
|
|
31
|
+
t.textareaMargin,
|
|
31
32
|
|
|
32
33
|
t.textareaBg,
|
|
33
34
|
t.textareaBackgroundClip,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_Emotion","require","_Textarea","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_templateObject13","_templateObject14","_templateObject15","_templateObject16","_templateObject17","_templateObject18","_templateObject19","_templateObject20","_templateObject21","_templateObject22","styles","exports","memoizeStyle","root","css","_taggedTemplateLiteralLoose2","default","rootSmall","t","rootTextareaSizeMixin","textareaFontSizeSmall","textareaLineHeightSmall","rootMedium","textareaFontSizeMedium","textareaLineHeightMedium","rootLarge","textareaFontSizeLarge","textareaLineHeightLarge","textarea","textareaBg","textareaBackgroundClip","textareaBorderWidth","textareaBorderColor","textareaBorderTopColor","textareaShadow","textareaColor","textareaWidth","transitionDuration","transitionTimingFunction","textareaBorderRadius","textareaBorderColorFocus","textareaOutlineWidth","textareaPlaceholderColorLight","textareaPlaceholderColor","textareaSmall","textareaSizeMixin","textareaPaddingYSmall","textareaPaddingXSmall","textareaMinHeightSmall","textareaMedium","textareaPaddingYMedium","textareaPaddingXMedium","textareaMinHeightMedium","textareaLarge","textareaPaddingYLarge","textareaPaddingXLarge","textareaMinHeightLarge","hovering","textareaBorderColorHover","error","textareaBorderColorError","warning","textareaBorderColorWarning","disabled","textareaTextColorDisabled","textareaDisabledBg","textareaDisabledBorderColor","textareaPlaceholderColorDisabled","fake","placeholder","counterContainer","counter","textareaCounterBg","textareaCounterColor","counterSmall","counterSizeMixin","counterMedium","counterLarge","counterError","textareaCounterErrorColor","counterHelp","disableAnimations"],"sources":["Textarea.styles.ts"],"sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport type { Theme } from '../../lib/theming/Theme';\n\nimport { counterSizeMixin, rootTextareaSizeMixin, textareaSizeMixin } from './Textarea.mixins';\n\nexport const styles = memoizeStyle({\n root() {\n return css`\n display: inline-block;\n position: relative;\n `;\n },\n rootSmall(t: Theme) {\n return css`\n ${rootTextareaSizeMixin(t.textareaFontSizeSmall, t.textareaLineHeightSmall)};\n `;\n },\n rootMedium(t: Theme) {\n return css`\n ${rootTextareaSizeMixin(t.textareaFontSizeMedium, t.textareaLineHeightMedium)};\n `;\n },\n rootLarge(t: Theme) {\n return css`\n ${rootTextareaSizeMixin(t.textareaFontSizeLarge, t.textareaLineHeightLarge)};\n `;\n },\n\n textarea(t: Theme) {\n return css`\n -webkit-appearance: none;\n background: ${t.textareaBg};\n background-clip: ${t.textareaBackgroundClip};\n border: ${t.textareaBorderWidth} solid ${t.textareaBorderColor};\n border-top-color: ${t.textareaBorderTopColor};\n box-shadow: ${t.textareaShadow};\n box-sizing: border-box;\n color: ${t.textareaColor};\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n max-width: 100%;\n min-width: ${t.textareaWidth};\n outline: none;\n transition:\n border-color ${t.transitionDuration} ${t.transitionTimingFunction},\n height 0.2s ease-out;\n vertical-align: middle;\n width: 100%;\n border-radius: ${t.textareaBorderRadius};\n white-space: pre-wrap;\n\n &:focus {\n border-color: ${t.textareaBorderColorFocus};\n box-shadow: 0 0 0 ${t.textareaOutlineWidth} ${t.textareaBorderColorFocus};\n position: relative;\n z-index: 2;\n\n &::placeholder {\n color: ${t.textareaPlaceholderColorLight};\n }\n }\n\n &::placeholder {\n color: ${t.textareaPlaceholderColor};\n }\n\n &:-moz-placeholder {\n color: ${t.textareaPlaceholderColor};\n }\n\n &::-moz-placeholder {\n color: ${t.textareaPlaceholderColor};\n }\n `;\n },\n textareaSmall(t: Theme) {\n return css`\n ${textareaSizeMixin(t.textareaPaddingYSmall, t.textareaPaddingXSmall, t.textareaMinHeightSmall)};\n `;\n },\n textareaMedium(t: Theme) {\n return css`\n ${textareaSizeMixin(t.textareaPaddingYMedium, t.textareaPaddingXMedium, t.textareaMinHeightMedium)};\n `;\n },\n textareaLarge(t: Theme) {\n return css`\n ${textareaSizeMixin(t.textareaPaddingYLarge, t.textareaPaddingXLarge, t.textareaMinHeightLarge)};\n `;\n },\n\n hovering(t: Theme) {\n return css`\n &:enabled:hover:not(:focus) {\n border-color: ${t.textareaBorderColorHover};\n }\n `;\n },\n\n error(t: Theme) {\n return css`\n border-color: ${t.textareaBorderColorError};\n box-shadow: 0 0 0 ${t.textareaBorderWidth} ${t.textareaBorderColorError};\n\n &:focus {\n border-color: ${t.textareaBorderColorError};\n box-shadow: 0 0 0 ${t.textareaOutlineWidth} ${t.textareaBorderColorError};\n }\n `;\n },\n\n warning(t: Theme) {\n return css`\n border-color: ${t.textareaBorderColorWarning};\n box-shadow: 0 0 0 ${t.textareaOutlineWidth} ${t.textareaBorderColorWarning};\n\n &:focus {\n border-color: ${t.textareaBorderColorWarning};\n box-shadow: 0 0 0 ${t.textareaOutlineWidth} ${t.textareaBorderColorWarning};\n }\n `;\n },\n\n disabled(t: Theme) {\n return css`\n color: ${t.textareaTextColorDisabled};\n background: ${t.textareaDisabledBg};\n border-color: ${t.textareaDisabledBorderColor};\n box-shadow: none;\n\n &::placeholder {\n color: ${t.textareaPlaceholderColorDisabled};\n }\n `;\n },\n\n fake() {\n return css`\n height: 0;\n left: 0;\n position: absolute;\n top: 0;\n visibility: hidden;\n width: 100%;\n `;\n },\n\n placeholder() {\n return css`\n -ms-user-select: none;\n color: #aaa;\n left: 12px;\n overflow: hidden;\n position: absolute;\n right: 12px;\n top: 9px;\n user-select: none;\n z-index: 3;\n `;\n },\n\n counterContainer(t: Theme) {\n return css`\n position: absolute;\n top: 0;\n border: ${t.textareaBorderWidth} solid transparent;\n box-sizing: content-box;\n `;\n },\n\n counter(t: Theme) {\n return css`\n position: absolute;\n z-index: 3;\n text-align: right;\n background: ${t.textareaCounterBg};\n color: ${t.textareaCounterColor};\n border-radius: 2px;\n `;\n },\n counterSmall(t: Theme) {\n return css`\n ${counterSizeMixin(t.textareaPaddingYSmall, t.textareaPaddingXSmall)};\n `;\n },\n counterMedium(t: Theme) {\n return css`\n ${counterSizeMixin(t.textareaPaddingYMedium, t.textareaPaddingXMedium)};\n `;\n },\n counterLarge(t: Theme) {\n return css`\n ${counterSizeMixin(t.textareaPaddingYLarge, t.textareaPaddingXLarge)};\n `;\n },\n\n counterError(t: Theme) {\n return css`\n color: ${t.textareaCounterErrorColor};\n `;\n },\n\n counterHelp() {\n return css`\n margin-left: 4px;\n cursor: pointer;\n `;\n },\n\n disableAnimations() {\n return css`\n transition: none;\n `;\n },\n});\n"],"mappings":"oRAAA,IAAAA,QAAA,GAAAC,OAAA;;;AAGA,IAAAC,SAAA,GAAAD,OAAA,sBAA+F,IAAAE,eAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,iBAAA,EAAAC,iBAAA,EAAAC,iBAAA,EAAAC,iBAAA,EAAAC,iBAAA,EAAAC,iBAAA,EAAAC,iBAAA,EAAAC,iBAAA,EAAAC,iBAAA,EAAAC,iBAAA,EAAAC,iBAAA,EAAAC,iBAAA,EAAAC,iBAAA;;AAExF,IAAMC,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG,IAAAE,qBAAY,EAAC;EACjCC,IAAI,WAAAA,KAAA,EAAG;IACL,WAAOC,YAAG,EAAA1B,eAAA,KAAAA,eAAA,OAAA2B,4BAAA,CAAAC,OAAA;;;;EAIZ,CAAC;EACDC,SAAS,WAAAA,UAACC,CAAQ,EAAE;IAClB,WAAOJ,YAAG,EAAAzB,gBAAA,KAAAA,gBAAA,OAAA0B,4BAAA,CAAAC,OAAA;IACN,IAAAG,+BAAqB,EAACD,CAAC,CAACE,qBAAqB,EAAEF,CAAC,CAACG,uBAAuB,CAAC;;EAE/E,CAAC;EACDC,UAAU,WAAAA,WAACJ,CAAQ,EAAE;IACnB,WAAOJ,YAAG,EAAAxB,gBAAA,KAAAA,gBAAA,OAAAyB,4BAAA,CAAAC,OAAA;IACN,IAAAG,+BAAqB,EAACD,CAAC,CAACK,sBAAsB,EAAEL,CAAC,CAACM,wBAAwB,CAAC;;EAEjF,CAAC;EACDC,SAAS,WAAAA,UAACP,CAAQ,EAAE;IAClB,WAAOJ,YAAG,EAAAvB,gBAAA,KAAAA,gBAAA,OAAAwB,4BAAA,CAAAC,OAAA;IACN,IAAAG,+BAAqB,EAACD,CAAC,CAACQ,qBAAqB,EAAER,CAAC,CAACS,uBAAuB,CAAC;;EAE/E,CAAC;;EAEDC,QAAQ,WAAAA,SAACV,CAAQ,EAAE;IACjB,WAAOJ,YAAG,EAAAtB,gBAAA,KAAAA,gBAAA,OAAAuB,4BAAA,CAAAC,OAAA;;IAEME,CAAC,CAACW,UAAU;IACPX,CAAC,CAACY,sBAAsB;IACjCZ,CAAC,CAACa,mBAAmB,EAAUb,CAAC,CAACc,mBAAmB;IAC1Cd,CAAC,CAACe,sBAAsB;IAC9Bf,CAAC,CAACgB,cAAc;;IAErBhB,CAAC,CAACiB,aAAa;;;;;IAKXjB,CAAC,CAACkB,aAAa;;;IAGXlB,CAAC,CAACmB,kBAAkB,EAAInB,CAAC,CAACoB,wBAAwB;;;;IAIlDpB,CAAC,CAACqB,oBAAoB;;;;IAIrBrB,CAAC,CAACsB,wBAAwB;IACtBtB,CAAC,CAACuB,oBAAoB,EAAIvB,CAAC,CAACsB,wBAAwB;;;;;IAK7DtB,CAAC,CAACwB,6BAA6B;;;;;IAKjCxB,CAAC,CAACyB,wBAAwB;;;;IAI1BzB,CAAC,CAACyB,wBAAwB;;;;IAI1BzB,CAAC,CAACyB,wBAAwB;;;EAGzC,CAAC;EACDC,aAAa,WAAAA,cAAC1B,CAAQ,EAAE;IACtB,WAAOJ,YAAG,EAAArB,gBAAA,KAAAA,gBAAA,OAAAsB,4BAAA,CAAAC,OAAA;IACN,IAAA6B,2BAAiB,EAAC3B,CAAC,CAAC4B,qBAAqB,EAAE5B,CAAC,CAAC6B,qBAAqB,EAAE7B,CAAC,CAAC8B,sBAAsB,CAAC;;EAEnG,CAAC;EACDC,cAAc,WAAAA,eAAC/B,CAAQ,EAAE;IACvB,WAAOJ,YAAG,EAAApB,gBAAA,KAAAA,gBAAA,OAAAqB,4BAAA,CAAAC,OAAA;IACN,IAAA6B,2BAAiB,EAAC3B,CAAC,CAACgC,sBAAsB,EAAEhC,CAAC,CAACiC,sBAAsB,EAAEjC,CAAC,CAACkC,uBAAuB,CAAC;;EAEtG,CAAC;EACDC,aAAa,WAAAA,cAACnC,CAAQ,EAAE;IACtB,WAAOJ,YAAG,EAAAnB,gBAAA,KAAAA,gBAAA,OAAAoB,4BAAA,CAAAC,OAAA;IACN,IAAA6B,2BAAiB,EAAC3B,CAAC,CAACoC,qBAAqB,EAAEpC,CAAC,CAACqC,qBAAqB,EAAErC,CAAC,CAACsC,sBAAsB,CAAC;;EAEnG,CAAC;;EAEDC,QAAQ,WAAAA,SAACvC,CAAQ,EAAE;IACjB,WAAOJ,YAAG,EAAAlB,gBAAA,KAAAA,gBAAA,OAAAmB,4BAAA,CAAAC,OAAA;;IAEUE,CAAC,CAACwC,wBAAwB;;;EAGhD,CAAC;;EAEDC,KAAK,WAAAA,MAACzC,CAAQ,EAAE;IACd,WAAOJ,YAAG,EAAAjB,iBAAA,KAAAA,iBAAA,OAAAkB,4BAAA,CAAAC,OAAA;IACQE,CAAC,CAAC0C,wBAAwB;IACtB1C,CAAC,CAACa,mBAAmB,EAAIb,CAAC,CAAC0C,wBAAwB;;;IAGrD1C,CAAC,CAAC0C,wBAAwB;IACtB1C,CAAC,CAACuB,oBAAoB,EAAIvB,CAAC,CAAC0C,wBAAwB;;;EAG9E,CAAC;;EAEDC,OAAO,WAAAA,QAAC3C,CAAQ,EAAE;IAChB,WAAOJ,YAAG,EAAAhB,iBAAA,KAAAA,iBAAA,OAAAiB,4BAAA,CAAAC,OAAA;IACQE,CAAC,CAAC4C,0BAA0B;IACxB5C,CAAC,CAACuB,oBAAoB,EAAIvB,CAAC,CAAC4C,0BAA0B;;;IAGxD5C,CAAC,CAAC4C,0BAA0B;IACxB5C,CAAC,CAACuB,oBAAoB,EAAIvB,CAAC,CAAC4C,0BAA0B;;;EAGhF,CAAC;;EAEDC,QAAQ,WAAAA,SAAC7C,CAAQ,EAAE;IACjB,WAAOJ,YAAG,EAAAf,iBAAA,KAAAA,iBAAA,OAAAgB,4BAAA,CAAAC,OAAA;IACCE,CAAC,CAAC8C,yBAAyB;IACtB9C,CAAC,CAAC+C,kBAAkB;IAClB/C,CAAC,CAACgD,2BAA2B;;;;IAIlChD,CAAC,CAACiD,gCAAgC;;;EAGjD,CAAC;;EAEDC,IAAI,WAAAA,KAAA,EAAG;IACL,WAAOtD,YAAG,EAAAd,iBAAA,KAAAA,iBAAA,OAAAe,4BAAA,CAAAC,OAAA;;;;;;;;EAQZ,CAAC;;EAEDqD,WAAW,WAAAA,YAAA,EAAG;IACZ,WAAOvD,YAAG,EAAAb,iBAAA,KAAAA,iBAAA,OAAAc,4BAAA,CAAAC,OAAA;;;;;;;;;;;EAWZ,CAAC;;EAEDsD,gBAAgB,WAAAA,iBAACpD,CAAQ,EAAE;IACzB,WAAOJ,YAAG,EAAAZ,iBAAA,KAAAA,iBAAA,OAAAa,4BAAA,CAAAC,OAAA;;;IAGEE,CAAC,CAACa,mBAAmB;;;EAGnC,CAAC;;EAEDwC,OAAO,WAAAA,QAACrD,CAAQ,EAAE;IAChB,WAAOJ,YAAG,EAAAX,iBAAA,KAAAA,iBAAA,OAAAY,4BAAA,CAAAC,OAAA;;;;IAIME,CAAC,CAACsD,iBAAiB;IACxBtD,CAAC,CAACuD,oBAAoB;;;EAGnC,CAAC;EACDC,YAAY,WAAAA,aAACxD,CAAQ,EAAE;IACrB,WAAOJ,YAAG,EAAAV,iBAAA,KAAAA,iBAAA,OAAAW,4BAAA,CAAAC,OAAA;IACN,IAAA2D,0BAAgB,EAACzD,CAAC,CAAC4B,qBAAqB,EAAE5B,CAAC,CAAC6B,qBAAqB,CAAC;;EAExE,CAAC;EACD6B,aAAa,WAAAA,cAAC1D,CAAQ,EAAE;IACtB,WAAOJ,YAAG,EAAAT,iBAAA,KAAAA,iBAAA,OAAAU,4BAAA,CAAAC,OAAA;IACN,IAAA2D,0BAAgB,EAACzD,CAAC,CAACgC,sBAAsB,EAAEhC,CAAC,CAACiC,sBAAsB,CAAC;;EAE1E,CAAC;EACD0B,YAAY,WAAAA,aAAC3D,CAAQ,EAAE;IACrB,WAAOJ,YAAG,EAAAR,iBAAA,KAAAA,iBAAA,OAAAS,4BAAA,CAAAC,OAAA;IACN,IAAA2D,0BAAgB,EAACzD,CAAC,CAACoC,qBAAqB,EAAEpC,CAAC,CAACqC,qBAAqB,CAAC;;EAExE,CAAC;;EAEDuB,YAAY,WAAAA,aAAC5D,CAAQ,EAAE;IACrB,WAAOJ,YAAG,EAAAP,iBAAA,KAAAA,iBAAA,OAAAQ,4BAAA,CAAAC,OAAA;IACCE,CAAC,CAAC6D,yBAAyB;;EAExC,CAAC;;EAEDC,WAAW,WAAAA,YAAA,EAAG;IACZ,WAAOlE,YAAG,EAAAN,iBAAA,KAAAA,iBAAA,OAAAO,4BAAA,CAAAC,OAAA;;;;EAIZ,CAAC;;EAEDiE,iBAAiB,WAAAA,kBAAA,EAAG;IAClB,WAAOnE,YAAG,EAAAL,iBAAA,KAAAA,iBAAA,OAAAM,4BAAA,CAAAC,OAAA;;;EAGZ;AACF,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_Emotion","require","_Textarea","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_templateObject13","_templateObject14","_templateObject15","_templateObject16","_templateObject17","_templateObject18","_templateObject19","_templateObject20","_templateObject21","_templateObject22","styles","exports","memoizeStyle","root","css","_taggedTemplateLiteralLoose2","default","rootSmall","t","rootTextareaSizeMixin","textareaFontSizeSmall","textareaLineHeightSmall","rootMedium","textareaFontSizeMedium","textareaLineHeightMedium","rootLarge","textareaFontSizeLarge","textareaLineHeightLarge","textarea","textareaMargin","textareaBg","textareaBackgroundClip","textareaBorderWidth","textareaBorderColor","textareaBorderTopColor","textareaShadow","textareaColor","textareaWidth","transitionDuration","transitionTimingFunction","textareaBorderRadius","textareaBorderColorFocus","textareaOutlineWidth","textareaPlaceholderColorLight","textareaPlaceholderColor","textareaSmall","textareaSizeMixin","textareaPaddingYSmall","textareaPaddingXSmall","textareaMinHeightSmall","textareaMedium","textareaPaddingYMedium","textareaPaddingXMedium","textareaMinHeightMedium","textareaLarge","textareaPaddingYLarge","textareaPaddingXLarge","textareaMinHeightLarge","hovering","textareaBorderColorHover","error","textareaBorderColorError","warning","textareaBorderColorWarning","disabled","textareaTextColorDisabled","textareaDisabledBg","textareaDisabledBorderColor","textareaPlaceholderColorDisabled","fake","placeholder","counterContainer","counter","textareaCounterBg","textareaCounterColor","counterSmall","counterSizeMixin","counterMedium","counterLarge","counterError","textareaCounterErrorColor","counterHelp","disableAnimations"],"sources":["Textarea.styles.ts"],"sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport type { Theme } from '../../lib/theming/Theme';\n\nimport { counterSizeMixin, rootTextareaSizeMixin, textareaSizeMixin } from './Textarea.mixins';\n\nexport const styles = memoizeStyle({\n root() {\n return css`\n display: inline-block;\n position: relative;\n `;\n },\n rootSmall(t: Theme) {\n return css`\n ${rootTextareaSizeMixin(t.textareaFontSizeSmall, t.textareaLineHeightSmall)};\n `;\n },\n rootMedium(t: Theme) {\n return css`\n ${rootTextareaSizeMixin(t.textareaFontSizeMedium, t.textareaLineHeightMedium)};\n `;\n },\n rootLarge(t: Theme) {\n return css`\n ${rootTextareaSizeMixin(t.textareaFontSizeLarge, t.textareaLineHeightLarge)};\n `;\n },\n\n textarea(t: Theme) {\n return css`\n margin: ${t.textareaMargin};\n -webkit-appearance: none;\n background: ${t.textareaBg};\n background-clip: ${t.textareaBackgroundClip};\n border: ${t.textareaBorderWidth} solid ${t.textareaBorderColor};\n border-top-color: ${t.textareaBorderTopColor};\n box-shadow: ${t.textareaShadow};\n box-sizing: border-box;\n color: ${t.textareaColor};\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n max-width: 100%;\n min-width: ${t.textareaWidth};\n outline: none;\n transition:\n border-color ${t.transitionDuration} ${t.transitionTimingFunction},\n height 0.2s ease-out;\n vertical-align: middle;\n width: 100%;\n border-radius: ${t.textareaBorderRadius};\n white-space: pre-wrap;\n\n &:focus {\n border-color: ${t.textareaBorderColorFocus};\n box-shadow: 0 0 0 ${t.textareaOutlineWidth} ${t.textareaBorderColorFocus};\n position: relative;\n z-index: 2;\n\n &::placeholder {\n color: ${t.textareaPlaceholderColorLight};\n }\n }\n\n &::placeholder {\n color: ${t.textareaPlaceholderColor};\n }\n\n &:-moz-placeholder {\n color: ${t.textareaPlaceholderColor};\n }\n\n &::-moz-placeholder {\n color: ${t.textareaPlaceholderColor};\n }\n `;\n },\n textareaSmall(t: Theme) {\n return css`\n ${textareaSizeMixin(t.textareaPaddingYSmall, t.textareaPaddingXSmall, t.textareaMinHeightSmall)};\n `;\n },\n textareaMedium(t: Theme) {\n return css`\n ${textareaSizeMixin(t.textareaPaddingYMedium, t.textareaPaddingXMedium, t.textareaMinHeightMedium)};\n `;\n },\n textareaLarge(t: Theme) {\n return css`\n ${textareaSizeMixin(t.textareaPaddingYLarge, t.textareaPaddingXLarge, t.textareaMinHeightLarge)};\n `;\n },\n\n hovering(t: Theme) {\n return css`\n &:enabled:hover:not(:focus) {\n border-color: ${t.textareaBorderColorHover};\n }\n `;\n },\n\n error(t: Theme) {\n return css`\n border-color: ${t.textareaBorderColorError};\n box-shadow: 0 0 0 ${t.textareaBorderWidth} ${t.textareaBorderColorError};\n\n &:focus {\n border-color: ${t.textareaBorderColorError};\n box-shadow: 0 0 0 ${t.textareaOutlineWidth} ${t.textareaBorderColorError};\n }\n `;\n },\n\n warning(t: Theme) {\n return css`\n border-color: ${t.textareaBorderColorWarning};\n box-shadow: 0 0 0 ${t.textareaOutlineWidth} ${t.textareaBorderColorWarning};\n\n &:focus {\n border-color: ${t.textareaBorderColorWarning};\n box-shadow: 0 0 0 ${t.textareaOutlineWidth} ${t.textareaBorderColorWarning};\n }\n `;\n },\n\n disabled(t: Theme) {\n return css`\n color: ${t.textareaTextColorDisabled};\n background: ${t.textareaDisabledBg};\n border-color: ${t.textareaDisabledBorderColor};\n box-shadow: none;\n\n &::placeholder {\n color: ${t.textareaPlaceholderColorDisabled};\n }\n `;\n },\n\n fake() {\n return css`\n height: 0;\n left: 0;\n position: absolute;\n top: 0;\n visibility: hidden;\n width: 100%;\n `;\n },\n\n placeholder() {\n return css`\n -ms-user-select: none;\n color: #aaa;\n left: 12px;\n overflow: hidden;\n position: absolute;\n right: 12px;\n top: 9px;\n user-select: none;\n z-index: 3;\n `;\n },\n\n counterContainer(t: Theme) {\n return css`\n position: absolute;\n top: 0;\n border: ${t.textareaBorderWidth} solid transparent;\n box-sizing: content-box;\n `;\n },\n\n counter(t: Theme) {\n return css`\n position: absolute;\n z-index: 3;\n text-align: right;\n background: ${t.textareaCounterBg};\n color: ${t.textareaCounterColor};\n border-radius: 2px;\n `;\n },\n counterSmall(t: Theme) {\n return css`\n ${counterSizeMixin(t.textareaPaddingYSmall, t.textareaPaddingXSmall)};\n `;\n },\n counterMedium(t: Theme) {\n return css`\n ${counterSizeMixin(t.textareaPaddingYMedium, t.textareaPaddingXMedium)};\n `;\n },\n counterLarge(t: Theme) {\n return css`\n ${counterSizeMixin(t.textareaPaddingYLarge, t.textareaPaddingXLarge)};\n `;\n },\n\n counterError(t: Theme) {\n return css`\n color: ${t.textareaCounterErrorColor};\n `;\n },\n\n counterHelp() {\n return css`\n margin-left: 4px;\n cursor: pointer;\n `;\n },\n\n disableAnimations() {\n return css`\n transition: none;\n `;\n },\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
### Вызов статических методов
|
|
2
|
+
|
|
3
|
+
```jsx harmony
|
|
4
|
+
import { Button, Toast } from '@skbkontur/react-ui';
|
|
5
|
+
|
|
6
|
+
function showComplexNotification() {
|
|
7
|
+
Toast.push('Successfully saved', {
|
|
8
|
+
label: 'Cancel',
|
|
9
|
+
handler: () => Toast.push('Canceled'),
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
<Button onClick={showComplexNotification}>Show notification</Button>;
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### Кастомный showTime
|
|
17
|
+
|
|
18
|
+
```jsx harmony
|
|
19
|
+
import { Button, Toast } from '@skbkontur/react-ui';
|
|
20
|
+
|
|
21
|
+
function showComplexNotification() {
|
|
22
|
+
Toast.push('Successfully saved', {
|
|
23
|
+
label: 'Cancel',
|
|
24
|
+
handler: () => Toast.push('Canceled'),
|
|
25
|
+
}, 15000);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
<Button onClick={showComplexNotification}>Show notification</Button>;
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Кастомный showTime без action
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
```jsx harmony
|
|
35
|
+
import { Button, Toast } from '@skbkontur/react-ui';
|
|
36
|
+
|
|
37
|
+
function showComplexNotification() {
|
|
38
|
+
Toast.push('Successfully saved', null, 15000);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
<Button onClick={showComplexNotification}>Show notification</Button>;
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Использование `ref`
|
|
45
|
+
|
|
46
|
+
```jsx harmony
|
|
47
|
+
import { Button, Toast } from '@skbkontur/react-ui';
|
|
48
|
+
|
|
49
|
+
class Toaster extends React.Component {
|
|
50
|
+
showNotification() {
|
|
51
|
+
this.notifier.push('Successfully');
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
render() {
|
|
55
|
+
return (
|
|
56
|
+
<div>
|
|
57
|
+
<Toast
|
|
58
|
+
ref={el => {
|
|
59
|
+
this.notifier = el;
|
|
60
|
+
}}
|
|
61
|
+
/>
|
|
62
|
+
<Button onClick={() => this.showNotification()}>Show notification</Button>
|
|
63
|
+
</div>
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
<Toaster />;
|
|
69
|
+
```
|