@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.
Files changed (246) hide show
  1. package/CHANGELOG.md +0 -30
  2. package/cjs/components/Autocomplete/Autocomplete.md +113 -0
  3. package/cjs/components/Button/Button.md +261 -0
  4. package/cjs/components/Calendar/Calendar.md +276 -0
  5. package/cjs/components/Calendar/CalendarDay.md +70 -0
  6. package/cjs/components/Center/Center.md +26 -0
  7. package/cjs/components/Checkbox/Checkbox.md +171 -0
  8. package/cjs/components/ComboBox/ComboBox.d.ts +11 -5
  9. package/cjs/components/ComboBox/ComboBox.js +10 -1
  10. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  11. package/cjs/components/ComboBox/ComboBox.md +574 -0
  12. package/cjs/components/CurrencyInput/CurrencyInput.md +39 -0
  13. package/cjs/components/CurrencyLabel/CurrencyLabel.js +2 -2
  14. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  15. package/cjs/components/CurrencyLabel/CurrencyLabel.md +29 -0
  16. package/cjs/components/DateInput/DateInput.md +111 -0
  17. package/cjs/components/DatePicker/DatePicker.md +368 -0
  18. package/cjs/components/Dropdown/Dropdown.md +45 -0
  19. package/cjs/components/DropdownMenu/DropdownMenu.md +290 -0
  20. package/cjs/components/FileUploader/FileUploader.md +131 -0
  21. package/cjs/components/FxInput/FxInput.md +31 -0
  22. package/cjs/components/Gapped/Gapped.md +44 -0
  23. package/cjs/components/GlobalLoader/GlobalLoader.md +97 -0
  24. package/cjs/components/Group/Group.md +19 -0
  25. package/cjs/components/Hint/Hint.md +86 -0
  26. package/cjs/components/Input/Input.md +86 -0
  27. package/cjs/components/Input/InputLayout/InputLayout.d.ts +1 -0
  28. package/cjs/components/Input/InputLayout/InputLayout.js +4 -2
  29. package/cjs/components/Input/InputLayout/InputLayout.js.map +1 -1
  30. package/cjs/components/Kebab/Kebab.md +306 -0
  31. package/cjs/components/Link/Link.md +182 -0
  32. package/cjs/components/Loader/Loader.md +33 -0
  33. package/cjs/components/MaskedInput/MaskedInput.d.ts +0 -8
  34. package/cjs/components/MaskedInput/MaskedInput.js +2 -23
  35. package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
  36. package/cjs/components/MaskedInput/MaskedInput.md +114 -0
  37. package/cjs/components/MenuFooter/MenuFooter.md +27 -0
  38. package/cjs/components/MenuHeader/MenuHeader.md +35 -0
  39. package/cjs/components/MenuItem/MenuItem.md +139 -0
  40. package/cjs/components/MenuSeparator/MenuSeparator.md +14 -0
  41. package/cjs/components/MiniModal/MiniModal.md +231 -0
  42. package/cjs/components/Modal/Modal.md +56 -0
  43. package/cjs/components/Paging/Paging.md +57 -0
  44. package/cjs/components/PasswordInput/PasswordInput.md +29 -0
  45. package/cjs/components/Radio/Radio.md +57 -0
  46. package/cjs/components/RadioGroup/RadioGroup.md +44 -0
  47. package/cjs/components/ResponsiveLayout/ResponsiveLayout.md +75 -0
  48. package/cjs/components/ScrollContainer/ScrollContainer.md +224 -0
  49. package/cjs/components/Select/Select.md +113 -0
  50. package/cjs/components/SidePage/SidePage.md +65 -0
  51. package/cjs/components/SingleToast/SingleToast.md +36 -0
  52. package/cjs/components/Spinner/Spinner.md +36 -0
  53. package/cjs/components/Sticky/Sticky.md +28 -0
  54. package/cjs/components/Switcher/Switcher.md +111 -0
  55. package/cjs/components/Tabs/Tab.md +73 -0
  56. package/cjs/components/Tabs/Tabs.md +54 -0
  57. package/cjs/components/Textarea/Textarea.d.ts +6 -1
  58. package/cjs/components/Textarea/Textarea.js +16 -3
  59. package/cjs/components/Textarea/Textarea.js.map +1 -1
  60. package/cjs/components/Textarea/Textarea.md +58 -0
  61. package/cjs/components/Textarea/Textarea.styles.js +2 -1
  62. package/cjs/components/Textarea/Textarea.styles.js.map +1 -1
  63. package/cjs/components/Toast/Toast.md +69 -0
  64. package/cjs/components/Toggle/Toggle.md +110 -0
  65. package/cjs/components/Token/Token.md +48 -0
  66. package/cjs/components/TokenInput/TokenInput.md +277 -0
  67. package/cjs/components/Tooltip/Tooltip.d.ts +1 -1
  68. package/cjs/components/Tooltip/Tooltip.js +6 -8
  69. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  70. package/cjs/components/Tooltip/Tooltip.md +322 -0
  71. package/cjs/components/TooltipMenu/TooltipMenu.md +241 -0
  72. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.d.ts +1 -0
  73. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.js +16 -7
  74. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.js.map +1 -1
  75. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.styles.d.ts +3 -0
  76. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.styles.js +27 -9
  77. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.styles.js.map +1 -1
  78. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +7 -6
  79. package/cjs/internal/CustomComboBox/ComboBoxView.js +2 -7
  80. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  81. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +6 -5
  82. package/cjs/internal/CustomComboBox/CustomComboBox.js +1 -3
  83. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  84. package/cjs/internal/CustomComboBox/getComboBoxTheme.d.ts +2 -1
  85. package/cjs/internal/CustomComboBox/getComboBoxTheme.js +10 -7
  86. package/cjs/internal/CustomComboBox/getComboBoxTheme.js.map +1 -1
  87. package/cjs/internal/DataTids/DATATIDS.md +12 -0
  88. package/cjs/internal/DataTids/DataTids.d.ts +12 -0
  89. package/cjs/internal/DataTids/DataTids.js +50 -0
  90. package/cjs/internal/DataTids/DataTids.js.map +1 -0
  91. package/cjs/internal/DataTids/DataTids.styles.d.ts +7 -0
  92. package/cjs/internal/DataTids/DataTids.styles.js +42 -0
  93. package/cjs/internal/DataTids/DataTids.styles.js.map +1 -0
  94. package/cjs/internal/DataTids/componentsDataTids.d.ts +5 -0
  95. package/cjs/internal/DataTids/componentsDataTids.js +15 -0
  96. package/cjs/internal/DataTids/componentsDataTids.js.map +1 -0
  97. package/cjs/internal/InputLikeText/InputLikeText.styles.d.ts +1 -0
  98. package/cjs/internal/InputLikeText/InputLikeText.styles.js +12 -4
  99. package/cjs/internal/InputLikeText/InputLikeText.styles.js.map +1 -1
  100. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +37 -0
  101. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +235 -0
  102. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -0
  103. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.d.ts +3 -0
  104. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js +10 -0
  105. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js.map +1 -0
  106. package/cjs/internal/ThemePlayground/Playground.md +7 -0
  107. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  108. package/cjs/internal/themes/BasicTheme.d.ts +2 -0
  109. package/cjs/internal/themes/BasicTheme.js +11 -6
  110. package/cjs/internal/themes/BasicTheme.js.map +1 -1
  111. package/cjs/internal/themes/DarkTheme5_4.js +10 -3
  112. package/cjs/internal/themes/DarkTheme5_4.js.map +1 -1
  113. package/cjs/internal/themes/LightTheme5_4.js +10 -3
  114. package/cjs/internal/themes/LightTheme5_4.js.map +1 -1
  115. package/cjs/internal/themes/consts.d.ts +7 -0
  116. package/cjs/internal/themes/consts.js +7 -0
  117. package/cjs/internal/themes/consts.js.map +1 -0
  118. package/cjs/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +64 -0
  119. package/cjs/lib/locale/LOCALECONTEXT.md +222 -0
  120. package/cjs/lib/theming/ThemeContext.md +265 -0
  121. package/components/Autocomplete/Autocomplete.md +113 -0
  122. package/components/Button/Button.md +261 -0
  123. package/components/Calendar/Calendar.md +276 -0
  124. package/components/Calendar/CalendarDay.md +70 -0
  125. package/components/Center/Center.md +26 -0
  126. package/components/Checkbox/Checkbox.md +171 -0
  127. package/components/ComboBox/ComboBox/ComboBox.js +2 -1
  128. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  129. package/components/ComboBox/ComboBox.d.ts +11 -5
  130. package/components/ComboBox/ComboBox.md +574 -0
  131. package/components/CurrencyInput/CurrencyInput.md +39 -0
  132. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +1 -1
  133. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  134. package/components/CurrencyLabel/CurrencyLabel.md +29 -0
  135. package/components/DateInput/DateInput.md +111 -0
  136. package/components/DatePicker/DatePicker.md +368 -0
  137. package/components/Dropdown/Dropdown.md +45 -0
  138. package/components/DropdownMenu/DropdownMenu.md +290 -0
  139. package/components/FileUploader/FileUploader.md +131 -0
  140. package/components/FxInput/FxInput.md +31 -0
  141. package/components/Gapped/Gapped.md +44 -0
  142. package/components/GlobalLoader/GlobalLoader.md +97 -0
  143. package/components/Group/Group.md +19 -0
  144. package/components/Hint/Hint.md +86 -0
  145. package/components/Input/Input.md +86 -0
  146. package/components/Input/InputLayout/InputLayout/InputLayout.js +5 -2
  147. package/components/Input/InputLayout/InputLayout/InputLayout.js.map +1 -1
  148. package/components/Input/InputLayout/InputLayout.d.ts +1 -0
  149. package/components/Kebab/Kebab.md +306 -0
  150. package/components/Link/Link.md +182 -0
  151. package/components/Loader/Loader.md +33 -0
  152. package/components/MaskedInput/MaskedInput/MaskedInput.js +1 -11
  153. package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  154. package/components/MaskedInput/MaskedInput.d.ts +0 -8
  155. package/components/MaskedInput/MaskedInput.md +114 -0
  156. package/components/MenuFooter/MenuFooter.md +27 -0
  157. package/components/MenuHeader/MenuHeader.md +35 -0
  158. package/components/MenuItem/MenuItem.md +139 -0
  159. package/components/MenuSeparator/MenuSeparator.md +14 -0
  160. package/components/MiniModal/MiniModal.md +231 -0
  161. package/components/Modal/Modal.md +56 -0
  162. package/components/Paging/Paging.md +57 -0
  163. package/components/PasswordInput/PasswordInput.md +29 -0
  164. package/components/Radio/Radio.md +57 -0
  165. package/components/RadioGroup/RadioGroup.md +44 -0
  166. package/components/ResponsiveLayout/ResponsiveLayout.md +75 -0
  167. package/components/ScrollContainer/ScrollContainer.md +224 -0
  168. package/components/Select/Select.md +113 -0
  169. package/components/SidePage/SidePage.md +65 -0
  170. package/components/SingleToast/SingleToast.md +36 -0
  171. package/components/Spinner/Spinner.md +36 -0
  172. package/components/Sticky/Sticky.md +28 -0
  173. package/components/Switcher/Switcher.md +111 -0
  174. package/components/Tabs/Tab.md +73 -0
  175. package/components/Tabs/Tabs.md +54 -0
  176. package/components/Textarea/Textarea/Textarea.js +11 -2
  177. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  178. package/components/Textarea/Textarea.d.ts +6 -1
  179. package/components/Textarea/Textarea.md +58 -0
  180. package/components/Textarea/Textarea.styles/Textarea.styles.js +1 -1
  181. package/components/Textarea/Textarea.styles/Textarea.styles.js.map +1 -1
  182. package/components/Toast/Toast.md +69 -0
  183. package/components/Toggle/Toggle.md +110 -0
  184. package/components/Token/Token.md +48 -0
  185. package/components/TokenInput/TokenInput.md +277 -0
  186. package/components/Tooltip/Tooltip/Tooltip.js +4 -7
  187. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  188. package/components/Tooltip/Tooltip.d.ts +1 -1
  189. package/components/Tooltip/Tooltip.md +322 -0
  190. package/components/TooltipMenu/TooltipMenu.md +241 -0
  191. package/internal/ClearCrossIcon/ClearCrossIcon/ClearCrossIcon.js +21 -7
  192. package/internal/ClearCrossIcon/ClearCrossIcon/ClearCrossIcon.js.map +1 -1
  193. package/internal/ClearCrossIcon/ClearCrossIcon.d.ts +1 -0
  194. package/internal/ClearCrossIcon/ClearCrossIcon.styles/ClearCrossIcon.styles.js +14 -5
  195. package/internal/ClearCrossIcon/ClearCrossIcon.styles/ClearCrossIcon.styles.js.map +1 -1
  196. package/internal/ClearCrossIcon/ClearCrossIcon.styles.d.ts +3 -0
  197. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +44 -51
  198. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  199. package/internal/CustomComboBox/ComboBoxView.d.ts +7 -6
  200. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +3 -5
  201. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  202. package/internal/CustomComboBox/CustomComboBox.d.ts +6 -5
  203. package/internal/CustomComboBox/getComboBoxTheme/getComboBoxTheme.js +5 -3
  204. package/internal/CustomComboBox/getComboBoxTheme/getComboBoxTheme.js.map +1 -1
  205. package/internal/CustomComboBox/getComboBoxTheme.d.ts +2 -1
  206. package/internal/DataTids/DATATIDS.md +12 -0
  207. package/internal/DataTids/DataTids/DataTids.js +69 -0
  208. package/internal/DataTids/DataTids/DataTids.js.map +1 -0
  209. package/internal/DataTids/DataTids/package.json +6 -0
  210. package/internal/DataTids/DataTids.d.ts +12 -0
  211. package/internal/DataTids/DataTids.styles/DataTids.styles.js +20 -0
  212. package/internal/DataTids/DataTids.styles/DataTids.styles.js.map +1 -0
  213. package/internal/DataTids/DataTids.styles/package.json +6 -0
  214. package/internal/DataTids/DataTids.styles.d.ts +7 -0
  215. package/internal/DataTids/componentsDataTids/componentsDataTids.js +12 -0
  216. package/internal/DataTids/componentsDataTids/componentsDataTids.js.map +1 -0
  217. package/internal/DataTids/componentsDataTids/package.json +6 -0
  218. package/internal/DataTids/componentsDataTids.d.ts +5 -0
  219. package/internal/InputLikeText/InputLikeText.styles/InputLikeText.styles.js +7 -4
  220. package/internal/InputLikeText/InputLikeText.styles/InputLikeText.styles.js.map +1 -1
  221. package/internal/InputLikeText/InputLikeText.styles.d.ts +1 -0
  222. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js +249 -0
  223. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -0
  224. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/package.json +6 -0
  225. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +37 -0
  226. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles/InternalTextareaWithLayout.styles.js +8 -0
  227. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles/InternalTextareaWithLayout.styles.js.map +1 -0
  228. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles/package.json +6 -0
  229. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.d.ts +3 -0
  230. package/internal/ThemePlayground/Playground.md +7 -0
  231. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  232. package/internal/themes/BasicTheme/BasicTheme.js +4 -4
  233. package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
  234. package/internal/themes/BasicTheme.d.ts +2 -0
  235. package/internal/themes/DarkTheme5_4/DarkTheme5_4.js +4 -2
  236. package/internal/themes/DarkTheme5_4/DarkTheme5_4.js.map +1 -1
  237. package/internal/themes/LightTheme5_4/LightTheme5_4.js +4 -2
  238. package/internal/themes/LightTheme5_4/LightTheme5_4.js.map +1 -1
  239. package/internal/themes/consts/consts.js +7 -0
  240. package/internal/themes/consts/consts.js.map +1 -0
  241. package/internal/themes/consts/package.json +6 -0
  242. package/internal/themes/consts.d.ts +7 -0
  243. package/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +64 -0
  244. package/lib/locale/LOCALECONTEXT.md +222 -0
  245. package/lib/theming/ThemeContext.md +265 -0
  246. 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
+ ```
@@ -22,7 +22,7 @@ import { getTextAreaHeight } from "../TextareaHelpers";
22
22
  import { styles } from "../Textarea.styles";
23
23
  import { TextareaCounter } from "../TextareaCounter";
24
24
  import { TextareaWithSafari17Workaround } from "../TextareaWithSafari17Workaround";
25
- var DEFAULT_WIDTH = 250;
25
+ export var DEFAULT_WIDTH = 250;
26
26
  var AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;
27
27
  export var TextareaDataTids = {
28
28
  root: 'Textarea__root',
@@ -43,6 +43,14 @@ export var Textarea = rootNode(_class = (_Textarea = /*#__PURE__*/function (_Rea
43
43
  args[_key] = arguments[_key];
44
44
  }
45
45
  _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
46
+ _this.clear = function () {
47
+ if (_this.node) {
48
+ _this.node.value = '';
49
+ }
50
+ if (_this.fakeNode) {
51
+ _this.fakeNode.value = '';
52
+ }
53
+ };
46
54
  _this.getProps = createPropsGetter(Textarea.defaultProps);
47
55
  _this.state = {
48
56
  needsPolyfillPlaceholder: needsPolyfillPlaceholder,
@@ -121,7 +129,8 @@ export var Textarea = rootNode(_class = (_Textarea = /*#__PURE__*/function (_Rea
121
129
  };
122
130
  var textareaClassNames = cx(_this.getTextareaSizeClassName(), (_cx = {}, _cx[styles.textarea(_this.theme)] = true, _cx[styles.hovering(_this.theme)] = !error && !warning, _cx[styles.disabled(_this.theme)] = disabled, _cx[styles.error(_this.theme)] = !!error, _cx[styles.warning(_this.theme)] = !!warning, _cx[styles.disableAnimations()] = _this.isAnimationsDisabled(), _cx));
123
131
  var textareaStyle = {
124
- resize: autoResize ? 'none' : resize
132
+ resize: autoResize ? 'none' : resize,
133
+ textAlign: _this.props.align
125
134
  };
126
135
  var placeholderPolyfill = null;
127
136
  if (_this.state.needsPolyfillPlaceholder && !textareaProps.value && !textareaProps.defaultValue) {
@@ -1 +1 @@
1
- {"version":3,"names":["React","throttle","globalObject","isKeyEnter","needsPolyfillPlaceholder","LayoutEvents","ThemeContext","RenderLayer","ResizeDetector","isIE11","isSafariWithTextareaBug","CommonWrapper","isTestEnv","cx","rootNode","createPropsGetter","getTextAreaHeight","styles","TextareaCounter","TextareaWithSafari17Workaround","DEFAULT_WIDTH","AUTORESIZE_THROTTLE_DEFAULT_WAIT","TextareaDataTids","root","counter","helpIcon","Textarea","_class","_Textarea","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","isCounterVisible","reflowCounter","reflow","selectAllId","textareaObserver","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","_objectWithoutPropertiesLoose","_excluded","rootProps","style","textareaClassNames","getTextareaSizeClassName","textarea","theme","hovering","isAnimationsDisabled","textareaStyle","placeholderPolyfill","defaultValue","createElement","className","fakeTextarea","fakeProps","fake","readOnly","_extends","ref","refFake","help","maxLength","onCloseHelp","handleCloseCounterHelp","refCounter","Component","onFocusOutside","onClickOutside","active","getRootSizeClassName","onResize","undefined","onChange","handleChange","handleCut","handlePaste","handleFocus","onKeyDown","handleKeyDown","children","setState","e","toString","isBlockEnter","preventDefault","fieldIsEmpty","target","element","fakeNode","autoResizeHandler","_this$getProps","rows","_ref2","minRows","parseInt","height","exceededMaxHeight","overflowY","getAutoResizeThrottleWait","event","_inheritsLoose","_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","Consumer","rootNodeRef","setRootNode","blur","__KONTUR_REACT_UI__","displayName"],"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","throttle","globalObject","isKeyEnter","needsPolyfillPlaceholder","LayoutEvents","ThemeContext","RenderLayer","ResizeDetector","isIE11","isSafariWithTextareaBug","CommonWrapper","isTestEnv","cx","rootNode","createPropsGetter","getTextAreaHeight","styles","TextareaCounter","TextareaWithSafari17Workaround","DEFAULT_WIDTH","AUTORESIZE_THROTTLE_DEFAULT_WAIT","TextareaDataTids","root","counter","helpIcon","Textarea","_class","_Textarea","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","clear","node","value","fakeNode","getProps","defaultProps","state","isCounterVisible","reflowCounter","reflow","selectAllId","textareaObserver","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","_objectWithoutPropertiesLoose","_excluded","rootProps","style","textareaClassNames","getTextareaSizeClassName","textarea","theme","hovering","isAnimationsDisabled","textareaStyle","textAlign","align","placeholderPolyfill","defaultValue","createElement","className","fakeTextarea","fakeProps","fake","readOnly","_extends","ref","refFake","help","maxLength","onCloseHelp","handleCloseCounterHelp","refCounter","Component","onFocusOutside","onClickOutside","active","getRootSizeClassName","onResize","undefined","onChange","handleChange","handleCut","handlePaste","handleFocus","onKeyDown","handleKeyDown","children","setState","e","toString","isBlockEnter","preventDefault","fieldIsEmpty","target","element","autoResizeHandler","_this$getProps","rows","_ref2","minRows","parseInt","height","exceededMaxHeight","overflowY","getAutoResizeThrottleWait","event","_inheritsLoose","_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","Consumer","rootNodeRef","setRootNode","blur","__KONTUR_REACT_UI__","displayName"],"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":[]}
@@ -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
- export interface TextareaProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps, Override<React.TextareaHTMLAttributes<HTMLTextAreaElement>, {
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;
@@ -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
+ ```
@@ -16,7 +16,7 @@ export var styles = memoizeStyle({
16
16
  return css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["\n ", ";\n "])), rootTextareaSizeMixin(t.textareaFontSizeLarge, t.textareaLineHeightLarge));
17
17
  },
18
18
  textarea: function textarea(t) {
19
- return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\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 "])), t.textareaBg, t.textareaBackgroundClip, t.textareaBorderWidth, t.textareaBorderColor, t.textareaBorderTopColor, t.textareaShadow, t.textareaColor, t.textareaWidth, t.transitionDuration, t.transitionTimingFunction, t.textareaBorderRadius, t.textareaBorderColorFocus, t.textareaOutlineWidth, t.textareaBorderColorFocus, t.textareaPlaceholderColorLight, t.textareaPlaceholderColor, t.textareaPlaceholderColor, t.textareaPlaceholderColor);
19
+ return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\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 "])), t.textareaMargin, t.textareaBg, t.textareaBackgroundClip, t.textareaBorderWidth, t.textareaBorderColor, t.textareaBorderTopColor, t.textareaShadow, t.textareaColor, t.textareaWidth, t.transitionDuration, t.transitionTimingFunction, t.textareaBorderRadius, t.textareaBorderColorFocus, t.textareaOutlineWidth, t.textareaBorderColorFocus, t.textareaPlaceholderColorLight, t.textareaPlaceholderColor, t.textareaPlaceholderColor, t.textareaPlaceholderColor);
20
20
  },
21
21
  textareaSmall: function textareaSmall(t) {
22
22
  return css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n ", ";\n "])), textareaSizeMixin(t.textareaPaddingYSmall, t.textareaPaddingXSmall, t.textareaMinHeightSmall));
@@ -1 +1 @@
1
- {"version":3,"names":["css","memoizeStyle","counterSizeMixin","rootTextareaSizeMixin","textareaSizeMixin","styles","root","_templateObject","_taggedTemplateLiteralLoose","rootSmall","t","_templateObject2","textareaFontSizeSmall","textareaLineHeightSmall","rootMedium","_templateObject3","textareaFontSizeMedium","textareaLineHeightMedium","rootLarge","_templateObject4","textareaFontSizeLarge","textareaLineHeightLarge","textarea","_templateObject5","textareaBg","textareaBackgroundClip","textareaBorderWidth","textareaBorderColor","textareaBorderTopColor","textareaShadow","textareaColor","textareaWidth","transitionDuration","transitionTimingFunction","textareaBorderRadius","textareaBorderColorFocus","textareaOutlineWidth","textareaPlaceholderColorLight","textareaPlaceholderColor","textareaSmall","_templateObject6","textareaPaddingYSmall","textareaPaddingXSmall","textareaMinHeightSmall","textareaMedium","_templateObject7","textareaPaddingYMedium","textareaPaddingXMedium","textareaMinHeightMedium","textareaLarge","_templateObject8","textareaPaddingYLarge","textareaPaddingXLarge","textareaMinHeightLarge","hovering","_templateObject9","textareaBorderColorHover","error","_templateObject10","textareaBorderColorError","warning","_templateObject11","textareaBorderColorWarning","disabled","_templateObject12","textareaTextColorDisabled","textareaDisabledBg","textareaDisabledBorderColor","textareaPlaceholderColorDisabled","fake","_templateObject13","placeholder","_templateObject14","counterContainer","_templateObject15","counter","_templateObject16","textareaCounterBg","textareaCounterColor","counterSmall","_templateObject17","counterMedium","_templateObject18","counterLarge","_templateObject19","counterError","_templateObject20","textareaCounterErrorColor","counterHelp","_templateObject21","disableAnimations","_templateObject22"],"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":"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","ignoreList":[]}
1
+ {"version":3,"names":["css","memoizeStyle","counterSizeMixin","rootTextareaSizeMixin","textareaSizeMixin","styles","root","_templateObject","_taggedTemplateLiteralLoose","rootSmall","t","_templateObject2","textareaFontSizeSmall","textareaLineHeightSmall","rootMedium","_templateObject3","textareaFontSizeMedium","textareaLineHeightMedium","rootLarge","_templateObject4","textareaFontSizeLarge","textareaLineHeightLarge","textarea","_templateObject5","textareaMargin","textareaBg","textareaBackgroundClip","textareaBorderWidth","textareaBorderColor","textareaBorderTopColor","textareaShadow","textareaColor","textareaWidth","transitionDuration","transitionTimingFunction","textareaBorderRadius","textareaBorderColorFocus","textareaOutlineWidth","textareaPlaceholderColorLight","textareaPlaceholderColor","textareaSmall","_templateObject6","textareaPaddingYSmall","textareaPaddingXSmall","textareaMinHeightSmall","textareaMedium","_templateObject7","textareaPaddingYMedium","textareaPaddingXMedium","textareaMinHeightMedium","textareaLarge","_templateObject8","textareaPaddingYLarge","textareaPaddingXLarge","textareaMinHeightLarge","hovering","_templateObject9","textareaBorderColorHover","error","_templateObject10","textareaBorderColorError","warning","_templateObject11","textareaBorderColorWarning","disabled","_templateObject12","textareaTextColorDisabled","textareaDisabledBg","textareaDisabledBorderColor","textareaPlaceholderColorDisabled","fake","_templateObject13","placeholder","_templateObject14","counterContainer","_templateObject15","counter","_templateObject16","textareaCounterBg","textareaCounterColor","counterSmall","_templateObject17","counterMedium","_templateObject18","counterLarge","_templateObject19","counterError","_templateObject20","textareaCounterErrorColor","counterHelp","_templateObject21","disableAnimations","_templateObject22"],"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
+ ```