@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,241 @@
|
|
|
1
|
+
### Базовый пример
|
|
2
|
+
|
|
3
|
+
```jsx harmony
|
|
4
|
+
import { Button, MenuHeader, MenuItem, MenuSeparator } from '@skbkontur/react-ui';
|
|
5
|
+
|
|
6
|
+
<TooltipMenu caption={<Button use="primary">Открыть меню</Button>}>
|
|
7
|
+
<MenuHeader>Заголовок меню</MenuHeader>
|
|
8
|
+
<MenuSeparator />
|
|
9
|
+
<MenuItem>Раз</MenuItem>
|
|
10
|
+
<MenuItem>Два</MenuItem>
|
|
11
|
+
<MenuItem>Три</MenuItem>
|
|
12
|
+
<MenuSeparator />
|
|
13
|
+
<MenuItem>Раз</MenuItem>
|
|
14
|
+
<MenuItem>Два</MenuItem>
|
|
15
|
+
<MenuItem>Три</MenuItem>
|
|
16
|
+
</TooltipMenu>;
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Управление состоянием тултип-меню
|
|
20
|
+
В проп `caption` помимо компонента можно передать функцию, возвращающую компонент, с помощью которой можно управлять текущим состоянием тултип-меню.
|
|
21
|
+
|
|
22
|
+
```jsx harmony
|
|
23
|
+
import { Button, MenuHeader, MenuItem, MenuSeparator } from '@skbkontur/react-ui';
|
|
24
|
+
|
|
25
|
+
<TooltipMenu caption={({ opened, openMenu, closeMenu, toggleMenu }) => {
|
|
26
|
+
return (
|
|
27
|
+
<>
|
|
28
|
+
<p>Сейчас тултип-меню { opened ? 'окрыто' : 'закрыто' }</p>
|
|
29
|
+
<Button onClick={toggleMenu}>Переключить меню</Button>
|
|
30
|
+
<Button onClick={openMenu}>Открыть меню</Button>
|
|
31
|
+
<Button onClick={closeMenu}>Закрыть меню</Button>
|
|
32
|
+
</>
|
|
33
|
+
)
|
|
34
|
+
}}>
|
|
35
|
+
<MenuHeader>Заголовок меню</MenuHeader>
|
|
36
|
+
<MenuSeparator />
|
|
37
|
+
<MenuItem>Раз</MenuItem>
|
|
38
|
+
<MenuItem>Два</MenuItem>
|
|
39
|
+
<MenuItem>Три</MenuItem>
|
|
40
|
+
<MenuSeparator />
|
|
41
|
+
<MenuItem>Раз</MenuItem>
|
|
42
|
+
<MenuItem>Два</MenuItem>
|
|
43
|
+
<MenuItem>Три</MenuItem>
|
|
44
|
+
</TooltipMenu>;
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Ширина
|
|
48
|
+
|
|
49
|
+
```jsx harmony
|
|
50
|
+
import { Button, MenuHeader, MenuItem, MenuSeparator } from '@skbkontur/react-ui';
|
|
51
|
+
|
|
52
|
+
<TooltipMenu
|
|
53
|
+
caption={<Button use="primary">Открыть меню с заданной шириной</Button>}
|
|
54
|
+
menuWidth={350}
|
|
55
|
+
>
|
|
56
|
+
<MenuHeader>Заголовок меню</MenuHeader>
|
|
57
|
+
<MenuSeparator />
|
|
58
|
+
<MenuItem>Раз</MenuItem>
|
|
59
|
+
<MenuItem>Два</MenuItem>
|
|
60
|
+
<MenuItem>Три</MenuItem>
|
|
61
|
+
<MenuSeparator />
|
|
62
|
+
<MenuItem>Раз</MenuItem>
|
|
63
|
+
<MenuItem>Два</MenuItem>
|
|
64
|
+
<MenuItem>Три</MenuItem>
|
|
65
|
+
</TooltipMenu>;
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Максимальная высота
|
|
69
|
+
|
|
70
|
+
```jsx harmony
|
|
71
|
+
import { Button, MenuHeader, MenuItem, MenuSeparator } from '@skbkontur/react-ui';
|
|
72
|
+
|
|
73
|
+
<TooltipMenu
|
|
74
|
+
caption={<Button use="primary">Открыть меню с заданной высотой</Button>}
|
|
75
|
+
menuMaxHeight={150}
|
|
76
|
+
>
|
|
77
|
+
<MenuHeader>Заголовок меню</MenuHeader>
|
|
78
|
+
<MenuSeparator />
|
|
79
|
+
<MenuItem>Раз</MenuItem>
|
|
80
|
+
<MenuItem>Два</MenuItem>
|
|
81
|
+
<MenuItem>Три</MenuItem>
|
|
82
|
+
<MenuSeparator />
|
|
83
|
+
<MenuItem>Раз</MenuItem>
|
|
84
|
+
<MenuItem>Два</MenuItem>
|
|
85
|
+
<MenuItem>Три</MenuItem>
|
|
86
|
+
</TooltipMenu>;
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Отключенная анимация
|
|
90
|
+
|
|
91
|
+
```jsx harmony
|
|
92
|
+
import { Button, MenuHeader, MenuItem, MenuSeparator } from '@skbkontur/react-ui';
|
|
93
|
+
|
|
94
|
+
<TooltipMenu
|
|
95
|
+
disableAnimations
|
|
96
|
+
caption={<Button use="primary">Открыть меню без анимации</Button>}
|
|
97
|
+
>
|
|
98
|
+
<MenuHeader>Заголовок меню</MenuHeader>
|
|
99
|
+
<MenuSeparator />
|
|
100
|
+
<MenuItem>Раз</MenuItem>
|
|
101
|
+
<MenuItem>Два</MenuItem>
|
|
102
|
+
<MenuItem>Три</MenuItem>
|
|
103
|
+
</TooltipMenu>;
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Подпись
|
|
107
|
+
В `caption` можно передать любой элемент.
|
|
108
|
+
|
|
109
|
+
```jsx harmony
|
|
110
|
+
import { MenuItem } from '@skbkontur/react-ui';
|
|
111
|
+
import { UiMenuBars3HIcon16Regular } from '@skbkontur/icons/icons/UiMenuBars3HIcon/UiMenuBars3HIcon16Regular';
|
|
112
|
+
|
|
113
|
+
<TooltipMenu
|
|
114
|
+
caption={
|
|
115
|
+
<span style={{ display: 'inline-block' }} tabIndex="0">
|
|
116
|
+
<UiMenuBars3HIcon16Regular size={32} />
|
|
117
|
+
</span>
|
|
118
|
+
}
|
|
119
|
+
menuWidth="300px"
|
|
120
|
+
>
|
|
121
|
+
<MenuItem>Раз</MenuItem>
|
|
122
|
+
<MenuItem>Два</MenuItem>
|
|
123
|
+
<MenuItem>Три</MenuItem>
|
|
124
|
+
</TooltipMenu>;
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Тултип-меню всегда всплывающее справа от `caption`
|
|
128
|
+
|
|
129
|
+
```jsx harmony
|
|
130
|
+
import { MenuItem } from '@skbkontur/react-ui';
|
|
131
|
+
import { LightbulbIcon16Regular } from '@skbkontur/icons/icons/LightbulbIcon/LightbulbIcon16Regular';
|
|
132
|
+
|
|
133
|
+
<TooltipMenu
|
|
134
|
+
caption={
|
|
135
|
+
<span style={{ display: 'inline-block' }} tabIndex="0">
|
|
136
|
+
<LightbulbIcon16Regular size={32} />
|
|
137
|
+
</span>
|
|
138
|
+
}
|
|
139
|
+
menuWidth="300px"
|
|
140
|
+
positions={['right top', 'right middle', 'right bottom']}
|
|
141
|
+
>
|
|
142
|
+
<MenuItem>Раз</MenuItem>
|
|
143
|
+
<MenuItem>Два</MenuItem>
|
|
144
|
+
<MenuItem>Три</MenuItem>
|
|
145
|
+
</TooltipMenu>;
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Тултип-меню всегда всплывающее сверху от `caption` и выравненное по правому краю `caption`
|
|
149
|
+
|
|
150
|
+
```jsx harmony
|
|
151
|
+
import { MenuItem } from '@skbkontur/react-ui';
|
|
152
|
+
import { LightbulbIcon16Regular } from '@skbkontur/icons/icons/LightbulbIcon/LightbulbIcon16Regular';
|
|
153
|
+
|
|
154
|
+
<TooltipMenu
|
|
155
|
+
caption={
|
|
156
|
+
<span style={{ display: 'inline-block' }} tabIndex="0">
|
|
157
|
+
<LightbulbIcon16Regular size={32} />
|
|
158
|
+
</span>
|
|
159
|
+
}
|
|
160
|
+
menuWidth="300px"
|
|
161
|
+
positions={['top right']}
|
|
162
|
+
>
|
|
163
|
+
<MenuItem>Раз</MenuItem>
|
|
164
|
+
<MenuItem>Два</MenuItem>
|
|
165
|
+
<MenuItem>Три</MenuItem>
|
|
166
|
+
</TooltipMenu>;
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Тултип-меню c шапкой и подвалом
|
|
170
|
+
|
|
171
|
+
```jsx harmony
|
|
172
|
+
import { Button, MenuHeader, MenuItem, MenuSeparator } from '@skbkontur/react-ui';
|
|
173
|
+
|
|
174
|
+
<TooltipMenu
|
|
175
|
+
header={<p>Это шапка в виде обычного текста</p>}
|
|
176
|
+
footer={<Button>А это подвал в виде кнопки</Button>}
|
|
177
|
+
caption={<Button use="primary">Открыть меню</Button>}
|
|
178
|
+
>
|
|
179
|
+
<MenuItem>Раз</MenuItem>
|
|
180
|
+
<MenuItem>Два</MenuItem>
|
|
181
|
+
<MenuItem>Три</MenuItem>
|
|
182
|
+
</TooltipMenu>;
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Иконки и автовыравнивание
|
|
186
|
+
|
|
187
|
+
```jsx harmony
|
|
188
|
+
import { Button, MenuHeader, MenuItem, MenuSeparator, TooltipMenu } from '@skbkontur/react-ui';
|
|
189
|
+
import { PlusIcon16Regular } from '@skbkontur/icons/icons/PlusIcon/PlusIcon16Regular';
|
|
190
|
+
|
|
191
|
+
<TooltipMenu caption={<Button use="primary">Открыть меню</Button>}>
|
|
192
|
+
<MenuHeader>MenuHeader</MenuHeader>
|
|
193
|
+
<MenuItem icon={<PlusIcon16Regular />}>MenuItem1</MenuItem>
|
|
194
|
+
<MenuItem icon={<PlusIcon16Regular />}>MenuItem2</MenuItem>
|
|
195
|
+
<MenuItem>MenuItem3</MenuItem>
|
|
196
|
+
</TooltipMenu>;
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Иконки и автовыравнивание
|
|
200
|
+
|
|
201
|
+
```jsx harmony
|
|
202
|
+
import { Button, MenuHeader, MenuItem, MenuSeparator, TooltipMenu } from '@skbkontur/react-ui';
|
|
203
|
+
import { PlusIcon16Regular } from '@skbkontur/icons/icons/PlusIcon/PlusIcon16Regular';
|
|
204
|
+
|
|
205
|
+
<TooltipMenu preventIconsOffset caption={<Button use="primary">Открыть меню</Button>}>
|
|
206
|
+
<MenuHeader>MenuHeader</MenuHeader>
|
|
207
|
+
<MenuItem icon={<PlusIcon16Regular />}>MenuItem1</MenuItem>
|
|
208
|
+
<MenuItem icon={<PlusIcon16Regular />}>MenuItem2</MenuItem>
|
|
209
|
+
<MenuItem>MenuItem3</MenuItem>
|
|
210
|
+
</TooltipMenu>
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Условный рендер элементов тултип-меню
|
|
214
|
+
(с сохранением поведения [MenuItem](#/Components/MenuItem)).
|
|
215
|
+
|
|
216
|
+
```jsx harmony
|
|
217
|
+
import {Button, MenuItem, Gapped, MenuSeparator} from '@skbkontur/react-ui';
|
|
218
|
+
|
|
219
|
+
const [showItems, setShowItems] = React.useState(false);
|
|
220
|
+
|
|
221
|
+
const hiddenItems = [
|
|
222
|
+
<MenuSeparator />,
|
|
223
|
+
<MenuItem>А я скрываюсь</MenuItem>,
|
|
224
|
+
<MenuItem>И я</MenuItem>,
|
|
225
|
+
<MenuItem>Я с вами</MenuItem>,
|
|
226
|
+
];
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
<Gapped>
|
|
230
|
+
<Button onClick={() => setShowItems(!showItems)}>
|
|
231
|
+
{showItems ? 'Спрятать' : 'Показать'} элементы
|
|
232
|
+
</Button>
|
|
233
|
+
|
|
234
|
+
<TooltipMenu caption={<Button use="primary">Открыть меню</Button>}>
|
|
235
|
+
<MenuItem>Меня видно всегда</MenuItem>
|
|
236
|
+
<MenuItem>Меня тоже</MenuItem>
|
|
237
|
+
<MenuItem>Ага, и меня!</MenuItem>
|
|
238
|
+
{showItems && hiddenItems}
|
|
239
|
+
</TooltipMenu>
|
|
240
|
+
</Gapped>
|
|
241
|
+
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
var _excluded = ["size", "style"];
|
|
3
|
+
var _excluded = ["size", "style", "data-tid"];
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import { globalObject } from '@skbkontur/global-object';
|
|
6
6
|
import { cx } from "../../../lib/theming/Emotion";
|
|
@@ -13,17 +13,27 @@ export var ClearCrossIcon = function ClearCrossIcon(_ref) {
|
|
|
13
13
|
var _ref$size = _ref.size,
|
|
14
14
|
size = _ref$size === void 0 ? 'small' : _ref$size,
|
|
15
15
|
style = _ref.style,
|
|
16
|
+
dataTid = _ref['data-tid'],
|
|
16
17
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
17
18
|
var theme = React.useContext(ThemeContext);
|
|
18
|
-
var
|
|
19
|
+
var getSizeClassNames = function getSizeClassNames(size) {
|
|
19
20
|
switch (size) {
|
|
20
21
|
case 'large':
|
|
21
|
-
return
|
|
22
|
+
return {
|
|
23
|
+
button: styles.clearCrossLarge(theme),
|
|
24
|
+
span: styles.relativeWidthLarge(theme)
|
|
25
|
+
};
|
|
22
26
|
case 'medium':
|
|
23
|
-
return
|
|
27
|
+
return {
|
|
28
|
+
button: styles.clearCrossMedium(theme),
|
|
29
|
+
span: styles.relativeWidthMedium(theme)
|
|
30
|
+
};
|
|
24
31
|
case 'small':
|
|
25
32
|
default:
|
|
26
|
-
return
|
|
33
|
+
return {
|
|
34
|
+
button: styles.clearCrossSmall(theme),
|
|
35
|
+
span: styles.relativeWidthSmall(theme)
|
|
36
|
+
};
|
|
27
37
|
}
|
|
28
38
|
};
|
|
29
39
|
var _React$useState = React.useState(false),
|
|
@@ -42,12 +52,16 @@ export var ClearCrossIcon = function ClearCrossIcon(_ref) {
|
|
|
42
52
|
};
|
|
43
53
|
return /*#__PURE__*/(
|
|
44
54
|
React.createElement(CommonWrapper, rest, /*#__PURE__*/
|
|
55
|
+
React.createElement("span", {
|
|
56
|
+
className: getSizeClassNames(size).span
|
|
57
|
+
}, /*#__PURE__*/
|
|
45
58
|
React.createElement("button", _extends({
|
|
59
|
+
"data-tid": dataTid,
|
|
46
60
|
type: "button",
|
|
47
61
|
tabIndex: -1,
|
|
48
62
|
className: cx(styles.root(theme),
|
|
49
63
|
// Todo: use &:focus-visible on root instead styles.focus. It supported on Chrome >= 86, Firefox >= 4, Safari >= 15.4
|
|
50
|
-
focusedByTab && styles.focus(theme),
|
|
64
|
+
focusedByTab && styles.focus(theme), getSizeClassNames(size).button),
|
|
51
65
|
style: style,
|
|
52
66
|
onFocus: handleFocus,
|
|
53
67
|
onBlur: handleBlur
|
|
@@ -56,7 +70,7 @@ export var ClearCrossIcon = function ClearCrossIcon(_ref) {
|
|
|
56
70
|
React.createElement(CrossIcon, {
|
|
57
71
|
size: size,
|
|
58
72
|
focusable: true
|
|
59
|
-
})))
|
|
73
|
+
}))))
|
|
60
74
|
);
|
|
61
75
|
};
|
|
62
76
|
ClearCrossIcon.__KONTUR_REACT_UI__ = 'ClearCrossIcon';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","globalObject","cx","keyListener","ThemeContext","CommonWrapper","styles","CrossIcon","ClearCrossIcon","_ref","_ref$size","size","style","rest","_objectWithoutPropertiesLoose","_excluded","theme","useContext","
|
|
1
|
+
{"version":3,"names":["React","globalObject","cx","keyListener","ThemeContext","CommonWrapper","styles","CrossIcon","ClearCrossIcon","_ref","_ref$size","size","style","dataTid","rest","_objectWithoutPropertiesLoose","_excluded","theme","useContext","getSizeClassNames","button","clearCrossLarge","span","relativeWidthLarge","clearCrossMedium","relativeWidthMedium","clearCrossSmall","relativeWidthSmall","_React$useState","useState","focusedByTab","setFocusedByTab","handleFocus","requestAnimationFrame","isTabPressed","handleBlur","createElement","className","_extends","type","tabIndex","root","focus","onFocus","onBlur","focusable","__KONTUR_REACT_UI__","displayName"],"sources":["ClearCrossIcon.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { cx } from '../../lib/theming/Emotion';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { CommonProps } from '../CommonWrapper';\nimport { CommonWrapper } from '../CommonWrapper';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { TokenSize } from '../../components/Token';\n\nimport { styles } from './ClearCrossIcon.styles';\nimport { CrossIcon } from './CrossIcon';\n\nexport interface ClearCrossIconProps\n extends Pick<AriaAttributes, 'aria-label'>,\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n CommonProps {\n /** Ширина и высота иконки крестика\n * @default small */\n size?: SizeProp;\n 'data-tid'?: string;\n}\n\nexport const ClearCrossIcon: React.FunctionComponent<ClearCrossIconProps> = ({\n size = 'small',\n style,\n 'data-tid': dataTid,\n ...rest\n}) => {\n const theme = React.useContext(ThemeContext);\n const getSizeClassNames = (size: TokenSize) => {\n switch (size) {\n case 'large':\n return { button: styles.clearCrossLarge(theme), span: styles.relativeWidthLarge(theme) };\n case 'medium':\n return { button: styles.clearCrossMedium(theme), span: styles.relativeWidthMedium(theme) };\n case 'small':\n default:\n return { button: styles.clearCrossSmall(theme), span: styles.relativeWidthSmall(theme) };\n }\n };\n\n const [focusedByTab, setFocusedByTab] = React.useState<boolean>(false);\n\n const handleFocus = () => {\n // focus event fires before keyDown eventlistener so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n setFocusedByTab(true);\n }\n });\n };\n const handleBlur = () => setFocusedByTab(false);\n\n return (\n <CommonWrapper {...rest}>\n <span className={getSizeClassNames(size).span}>\n <button\n data-tid={dataTid}\n type=\"button\"\n tabIndex={-1}\n className={cx(\n styles.root(theme),\n // Todo: use &:focus-visible on root instead styles.focus. It supported on Chrome >= 86, Firefox >= 4, Safari >= 15.4\n focusedByTab && styles.focus(theme),\n getSizeClassNames(size).button,\n )}\n style={style}\n onFocus={handleFocus}\n onBlur={handleBlur}\n {...rest}\n >\n <CrossIcon size={size} focusable />\n </button>\n </span>\n </CommonWrapper>\n );\n};\n\nClearCrossIcon.__KONTUR_REACT_UI__ = 'ClearCrossIcon';\nClearCrossIcon.displayName = 'ClearCrossIcon';\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,5 +6,6 @@ export interface ClearCrossIconProps extends Pick<AriaAttributes, 'aria-label'>,
|
|
|
6
6
|
/** Ширина и высота иконки крестика
|
|
7
7
|
* @default small */
|
|
8
8
|
size?: SizeProp;
|
|
9
|
+
'data-tid'?: string;
|
|
9
10
|
}
|
|
10
11
|
export declare const ClearCrossIcon: React.FunctionComponent<ClearCrossIconProps>;
|
|
@@ -1,21 +1,30 @@
|
|
|
1
1
|
import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
|
|
2
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
2
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
|
|
3
3
|
import { css, memoizeStyle } from "../../../lib/theming/Emotion";
|
|
4
4
|
import { resetButton } from "../../../lib/styles/Mixins";
|
|
5
5
|
export var styles = memoizeStyle({
|
|
6
6
|
root: function root(t) {
|
|
7
|
-
return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n ", "\n color: ", ";\n cursor: pointer;\n transition: color ", " ", ";\n &:hover {\n color: ", ";\n }\n display: flex;\n justify-content:
|
|
7
|
+
return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n ", "\n color: ", ";\n cursor: pointer;\n transition: color ", " ", ";\n &:hover {\n color: ", ";\n }\n display: flex;\n justify-content: ", ";\n align-items: center;\n position: absolute;\n right: -", ";\n top: -", ";\n "])), resetButton(), t.clearCrossIconColor, t.transitionDuration, t.transitionTimingFunction, t.clearCrossIconHoverColor, t.clearCrossIconAlign, t.inputBorderWidth, t.inputBorderWidth);
|
|
8
8
|
},
|
|
9
9
|
focus: function focus(t) {
|
|
10
10
|
return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n color: ", ";\n "])), t.clearCrossIconHoverColor);
|
|
11
11
|
},
|
|
12
12
|
clearCrossSmall: function clearCrossSmall(t) {
|
|
13
|
-
return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n width: ", ";\n height: ", ";\n
|
|
13
|
+
return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n width: ", ";\n height: ", ";\n border-radius: ", ";\n "])), t.clearCrossIconWidthSmall, t.clearCrossIconHeightSmall, t.clearCrossIconBorderRadiusSmall);
|
|
14
14
|
},
|
|
15
15
|
clearCrossMedium: function clearCrossMedium(t) {
|
|
16
|
-
return css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["\n width: ", ";\n height: ", ";\n
|
|
16
|
+
return css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["\n width: ", ";\n height: ", ";\n border-radius: ", ";\n "])), t.clearCrossIconWidthMedium, t.clearCrossIconHeightMedium, t.clearCrossIconBorderRadiusMedium);
|
|
17
17
|
},
|
|
18
18
|
clearCrossLarge: function clearCrossLarge(t) {
|
|
19
|
-
return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n width: ", ";\n height: ", ";\n
|
|
19
|
+
return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n width: ", ";\n height: ", ";\n border-radius: ", ";\n "])), t.clearCrossIconWidthLarge, t.clearCrossIconHeightLarge, t.clearCrossIconBorderRadiusLarge);
|
|
20
|
+
},
|
|
21
|
+
relativeWidthSmall: function relativeWidthSmall(t) {
|
|
22
|
+
return css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n display: inline-block;\n width: ", ";\n "])), t.inputIconSizeSmall);
|
|
23
|
+
},
|
|
24
|
+
relativeWidthMedium: function relativeWidthMedium(t) {
|
|
25
|
+
return css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n display: inline-block;\n width: ", ";\n "])), t.inputIconSizeMedium);
|
|
26
|
+
},
|
|
27
|
+
relativeWidthLarge: function relativeWidthLarge(t) {
|
|
28
|
+
return css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteralLoose(["\n display: inline-block;\n width: ", ";\n "])), t.inputIconSizeLarge);
|
|
20
29
|
}
|
|
21
30
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["css","memoizeStyle","resetButton","styles","root","t","_templateObject","_taggedTemplateLiteralLoose","clearCrossIconColor","transitionDuration","transitionTimingFunction","clearCrossIconHoverColor","focus","_templateObject2","clearCrossSmall","_templateObject3","clearCrossIconWidthSmall","clearCrossIconHeightSmall","
|
|
1
|
+
{"version":3,"names":["css","memoizeStyle","resetButton","styles","root","t","_templateObject","_taggedTemplateLiteralLoose","clearCrossIconColor","transitionDuration","transitionTimingFunction","clearCrossIconHoverColor","clearCrossIconAlign","inputBorderWidth","focus","_templateObject2","clearCrossSmall","_templateObject3","clearCrossIconWidthSmall","clearCrossIconHeightSmall","clearCrossIconBorderRadiusSmall","clearCrossMedium","_templateObject4","clearCrossIconWidthMedium","clearCrossIconHeightMedium","clearCrossIconBorderRadiusMedium","clearCrossLarge","_templateObject5","clearCrossIconWidthLarge","clearCrossIconHeightLarge","clearCrossIconBorderRadiusLarge","relativeWidthSmall","_templateObject6","inputIconSizeSmall","relativeWidthMedium","_templateObject7","inputIconSizeMedium","relativeWidthLarge","_templateObject8","inputIconSizeLarge"],"sources":["ClearCrossIcon.styles.tsx"],"sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { resetButton } from '../../lib/styles/Mixins';\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n ${resetButton()}\n color: ${t.clearCrossIconColor};\n cursor: pointer;\n transition: color ${t.transitionDuration} ${t.transitionTimingFunction};\n &:hover {\n color: ${t.clearCrossIconHoverColor};\n }\n display: flex;\n justify-content: ${t.clearCrossIconAlign};\n align-items: center;\n position: absolute;\n right: -${t.inputBorderWidth};\n top: -${t.inputBorderWidth};\n `;\n },\n\n focus(t: Theme) {\n return css`\n color: ${t.clearCrossIconHoverColor};\n `;\n },\n\n clearCrossSmall(t: Theme) {\n return css`\n width: ${t.clearCrossIconWidthSmall};\n height: ${t.clearCrossIconHeightSmall};\n border-radius: ${t.clearCrossIconBorderRadiusSmall};\n `;\n },\n clearCrossMedium(t: Theme) {\n return css`\n width: ${t.clearCrossIconWidthMedium};\n height: ${t.clearCrossIconHeightMedium};\n border-radius: ${t.clearCrossIconBorderRadiusMedium};\n `;\n },\n clearCrossLarge(t: Theme) {\n return css`\n width: ${t.clearCrossIconWidthLarge};\n height: ${t.clearCrossIconHeightLarge};\n border-radius: ${t.clearCrossIconBorderRadiusLarge};\n `;\n },\n relativeWidthSmall(t: Theme) {\n return css`\n display: inline-block;\n width: ${t.inputIconSizeSmall};\n `;\n },\n relativeWidthMedium(t: Theme) {\n return css`\n display: inline-block;\n width: ${t.inputIconSizeMedium};\n `;\n },\n relativeWidthLarge(t: Theme) {\n return css`\n display: inline-block;\n width: ${t.inputIconSizeLarge};\n `;\n },\n});\n"],"mappings":"kPAAA,SAASA,GAAG,EAAEC,YAAY,QAAQ,2BAA2B;;AAE7D,SAASC,WAAW,QAAQ,yBAAyB;;AAErD,OAAO,IAAMC,MAAM,GAAGF,YAAY,CAAC;EACjCG,IAAI,WAAAA,KAACC,CAAQ,EAAE;IACb,OAAOL,GAAG,CAAAM,eAAA,KAAAA,eAAA,GAAAC,2BAAA;IACNL,WAAW,CAAC,CAAC;IACNG,CAAC,CAACG,mBAAmB;;IAEVH,CAAC,CAACI,kBAAkB,EAAIJ,CAAC,CAACK,wBAAwB;;IAE3DL,CAAC,CAACM,wBAAwB;;;IAGlBN,CAAC,CAACO,mBAAmB;;;IAG9BP,CAAC,CAACQ,gBAAgB;IACpBR,CAAC,CAACQ,gBAAgB;;EAE9B,CAAC;;EAEDC,KAAK,WAAAA,MAACT,CAAQ,EAAE;IACd,OAAOL,GAAG,CAAAe,gBAAA,KAAAA,gBAAA,GAAAR,2BAAA;IACCF,CAAC,CAACM,wBAAwB;;EAEvC,CAAC;;EAEDK,eAAe,WAAAA,gBAACX,CAAQ,EAAE;IACxB,OAAOL,GAAG,CAAAiB,gBAAA,KAAAA,gBAAA,GAAAV,2BAAA;IACCF,CAAC,CAACa,wBAAwB;IACzBb,CAAC,CAACc,yBAAyB;IACpBd,CAAC,CAACe,+BAA+B;;EAEtD,CAAC;EACDC,gBAAgB,WAAAA,iBAAChB,CAAQ,EAAE;IACzB,OAAOL,GAAG,CAAAsB,gBAAA,KAAAA,gBAAA,GAAAf,2BAAA;IACCF,CAAC,CAACkB,yBAAyB;IAC1BlB,CAAC,CAACmB,0BAA0B;IACrBnB,CAAC,CAACoB,gCAAgC;;EAEvD,CAAC;EACDC,eAAe,WAAAA,gBAACrB,CAAQ,EAAE;IACxB,OAAOL,GAAG,CAAA2B,gBAAA,KAAAA,gBAAA,GAAApB,2BAAA;IACCF,CAAC,CAACuB,wBAAwB;IACzBvB,CAAC,CAACwB,yBAAyB;IACpBxB,CAAC,CAACyB,+BAA+B;;EAEtD,CAAC;EACDC,kBAAkB,WAAAA,mBAAC1B,CAAQ,EAAE;IAC3B,OAAOL,GAAG,CAAAgC,gBAAA,KAAAA,gBAAA,GAAAzB,2BAAA;;IAECF,CAAC,CAAC4B,kBAAkB;;EAEjC,CAAC;EACDC,mBAAmB,WAAAA,oBAAC7B,CAAQ,EAAE;IAC5B,OAAOL,GAAG,CAAAmC,gBAAA,KAAAA,gBAAA,GAAA5B,2BAAA;;IAECF,CAAC,CAAC+B,mBAAmB;;EAElC,CAAC;EACDC,kBAAkB,WAAAA,mBAAChC,CAAQ,EAAE;IAC3B,OAAOL,GAAG,CAAAsC,gBAAA,KAAAA,gBAAA,GAAA/B,2BAAA;;IAECF,CAAC,CAACkC,kBAAkB;;EAEjC;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -5,4 +5,7 @@ export declare const styles: {
|
|
|
5
5
|
clearCrossSmall(t: Theme): string;
|
|
6
6
|
clearCrossMedium(t: Theme): string;
|
|
7
7
|
clearCrossLarge(t: Theme): string;
|
|
8
|
+
relativeWidthSmall(t: Theme): string;
|
|
9
|
+
relativeWidthMedium(t: Theme): string;
|
|
10
|
+
relativeWidthLarge(t: Theme): string;
|
|
8
11
|
};
|
|
@@ -17,9 +17,7 @@ import { LoadingIcon } from "../../icons2022/LoadingIcon";
|
|
|
17
17
|
import { Popup } from "../../Popup";
|
|
18
18
|
import { getMenuPositions } from "../../../lib/getMenuPositions";
|
|
19
19
|
import { ZIndex } from "../../ZIndex";
|
|
20
|
-
import {
|
|
21
|
-
import { styles as MaskedInputStyles } from "../../../components/MaskedInput/MaskedInput.styles";
|
|
22
|
-
import { cx } from "../../../lib/theming/Emotion";
|
|
20
|
+
import { InternalTextareaWithLayout } from "../../InternalTextareaWithLayout/InternalTextareaWithLayout";
|
|
23
21
|
import { ArrowDownIcon } from "../ArrowDownIcon";
|
|
24
22
|
import { ComboBoxMenu } from "../ComboBoxMenu";
|
|
25
23
|
import { ComboBoxRequestStatus } from "../CustomComboBoxTypes";
|
|
@@ -226,7 +224,7 @@ export var ComboBoxView = responsiveLayout(_class = rootNode(_class = (_ComboBox
|
|
|
226
224
|
_proto.render = function render() {
|
|
227
225
|
var _this2 = this;
|
|
228
226
|
return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
|
|
229
|
-
_this2.theme = getComboBoxTheme(theme);
|
|
227
|
+
_this2.theme = getComboBoxTheme(theme, _this2.props.viewMode);
|
|
230
228
|
return /*#__PURE__*/React.createElement(ThemeContext.Provider, {
|
|
231
229
|
value: _this2.theme
|
|
232
230
|
}, _this2.renderMain());
|
|
@@ -285,56 +283,52 @@ export var ComboBoxView = responsiveLayout(_class = rootNode(_class = (_ComboBox
|
|
|
285
283
|
size = _this$props5.size,
|
|
286
284
|
ariaDescribedby = _this$props5['aria-describedby'],
|
|
287
285
|
ariaLabel = _this$props5['aria-label'],
|
|
288
|
-
showClearIcon = _this$props5.showClearIcon
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
formatChars = _this$props5.formatChars,
|
|
292
|
-
maskOnBeforePaste = _this$props5.maskOnBeforePaste;
|
|
286
|
+
showClearIcon = _this$props5.showClearIcon;
|
|
287
|
+
var _this$getProps4 = this.getProps(),
|
|
288
|
+
renderValue = _this$getProps4.renderValue;
|
|
293
289
|
var rightIcon = this.getRightIcon();
|
|
290
|
+
var editingStateProps = {
|
|
291
|
+
id: id,
|
|
292
|
+
align: align,
|
|
293
|
+
borderless: borderless,
|
|
294
|
+
disabled: disabled,
|
|
295
|
+
error: error,
|
|
296
|
+
maxLength: this.props.maxLength,
|
|
297
|
+
onBlur: isMobile ? undefined : onInputBlur,
|
|
298
|
+
onValueChange: onInputValueChange,
|
|
299
|
+
onFocus: onInputFocus,
|
|
300
|
+
onClick: isMobile ? this.handleMobileFocus : onInputClick,
|
|
301
|
+
leftIcon: leftIcon,
|
|
302
|
+
rightIcon: rightIcon,
|
|
303
|
+
value: textValue || '',
|
|
304
|
+
onKeyDown: onInputKeyDown,
|
|
305
|
+
placeholder: placeholder,
|
|
306
|
+
width: '100%',
|
|
307
|
+
size: size,
|
|
308
|
+
ref: this.refInput,
|
|
309
|
+
warning: warning,
|
|
310
|
+
inputMode: inputMode,
|
|
311
|
+
autoComplete: 'off',
|
|
312
|
+
'aria-describedby': ariaDescribedby,
|
|
313
|
+
'aria-controls': this.menuId,
|
|
314
|
+
'aria-label': ariaLabel,
|
|
315
|
+
showClearIcon: showClearIcon
|
|
316
|
+
};
|
|
317
|
+
var multilineTextareaProps = {
|
|
318
|
+
autoResize: true,
|
|
319
|
+
rows: 1,
|
|
320
|
+
extraRow: false,
|
|
321
|
+
maxRows: this.props.maxRows
|
|
322
|
+
};
|
|
323
|
+
if (this.props.viewMode === 'multiline') {
|
|
324
|
+
return /*#__PURE__*/React.createElement(InternalTextareaWithLayout, _extends({}, editingStateProps, multilineTextareaProps));
|
|
325
|
+
}
|
|
294
326
|
if (editing) {
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
align: align,
|
|
298
|
-
borderless: borderless,
|
|
299
|
-
disabled: disabled,
|
|
300
|
-
error: error,
|
|
301
|
-
onBlur: isMobile ? undefined : onInputBlur,
|
|
302
|
-
onValueChange: onInputValueChange,
|
|
303
|
-
onFocus: onInputFocus,
|
|
304
|
-
onClick: isMobile ? this.handleMobileFocus : onInputClick,
|
|
305
|
-
leftIcon: leftIcon,
|
|
306
|
-
rightIcon: rightIcon,
|
|
307
|
-
value: textValue || '',
|
|
308
|
-
onKeyDown: onInputKeyDown,
|
|
309
|
-
placeholder: placeholder,
|
|
310
|
-
width: '100%',
|
|
311
|
-
size: size,
|
|
312
|
-
warning: warning,
|
|
313
|
-
inputMode: inputMode,
|
|
314
|
-
autoComplete: 'off',
|
|
315
|
-
'aria-describedby': ariaDescribedby,
|
|
316
|
-
'aria-controls': this.menuId,
|
|
317
|
-
'aria-label': ariaLabel,
|
|
318
|
-
showClearIcon: showClearIcon
|
|
319
|
-
};
|
|
320
|
-
if (mask) {
|
|
321
|
-
return /*#__PURE__*/React.createElement(MaskedInput, _extends({
|
|
322
|
-
ref: this.refInput
|
|
323
|
-
}, inputProps, {
|
|
324
|
-
type: "text",
|
|
325
|
-
mask: mask,
|
|
326
|
-
maskChar: maskChar,
|
|
327
|
-
formatChars: formatChars,
|
|
328
|
-
onBeforePasteValue: maskOnBeforePaste
|
|
329
|
-
}));
|
|
327
|
+
if (this.props.viewMode === 'multiline-editing') {
|
|
328
|
+
return /*#__PURE__*/React.createElement(InternalTextareaWithLayout, _extends({}, editingStateProps, multilineTextareaProps));
|
|
330
329
|
}
|
|
331
|
-
return /*#__PURE__*/React.createElement(Input,
|
|
332
|
-
ref: this.refInput,
|
|
333
|
-
maxLength: this.props.maxLength
|
|
334
|
-
}, inputProps));
|
|
330
|
+
return /*#__PURE__*/React.createElement(Input, editingStateProps);
|
|
335
331
|
}
|
|
336
|
-
var _this$getProps4 = this.getProps(),
|
|
337
|
-
renderValue = _this$getProps4.renderValue;
|
|
338
332
|
return /*#__PURE__*/React.createElement(InputLikeText, {
|
|
339
333
|
id: id,
|
|
340
334
|
align: align,
|
|
@@ -352,7 +346,6 @@ export var ComboBoxView = responsiveLayout(_class = rootNode(_class = (_ComboBox
|
|
|
352
346
|
"aria-describedby": ariaDescribedby,
|
|
353
347
|
"aria-controls": this.menuId,
|
|
354
348
|
showClearIcon: showClearIcon,
|
|
355
|
-
className: cx(mask && MaskedInputStyles.root(this.theme)),
|
|
356
349
|
onClearCrossClick: this.props.onClearCrossClick
|
|
357
350
|
}, isNonNullable(value) && renderValue ? renderValue(value) : null);
|
|
358
351
|
};
|