@skbkontur/react-ui 0.0.0-66a28a30fb → 0.0.0-68e286f9fe

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 (504) hide show
  1. package/CHANGELOG.md +98 -0
  2. package/README.md +1 -1
  3. package/cjs/components/Autocomplete/Autocomplete.d.ts +0 -22
  4. package/cjs/components/Autocomplete/Autocomplete.js +2 -40
  5. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  6. package/cjs/components/Button/Button.styles.js +2 -1
  7. package/cjs/components/Button/Button.styles.js.map +1 -1
  8. package/cjs/components/Calendar/CalendarDay.js +18 -2
  9. package/cjs/components/Calendar/CalendarDay.js.map +1 -1
  10. package/cjs/components/Calendar/DayCellView.js +7 -15
  11. package/cjs/components/Calendar/DayCellView.js.map +1 -1
  12. package/cjs/components/Checkbox/Checkbox.d.ts +0 -12
  13. package/cjs/components/Checkbox/Checkbox.js +1 -14
  14. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  15. package/cjs/components/ComboBox/ComboBox.d.ts +7 -1
  16. package/cjs/components/ComboBox/ComboBox.js +8 -1
  17. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  18. package/cjs/components/ComboBox/ComboBox.md +2 -2
  19. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +1 -24
  20. package/cjs/components/CurrencyInput/CurrencyInput.js +2 -29
  21. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  22. package/cjs/components/CurrencyLabel/CurrencyLabel.js +21 -27
  23. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  24. package/cjs/components/DateInput/DateInput.d.ts +1 -0
  25. package/cjs/components/DateInput/DateInput.js +37 -14
  26. package/cjs/components/DateInput/DateInput.js.map +1 -1
  27. package/cjs/components/DateInput/helpers/InternalDateMediator.d.ts +1 -1
  28. package/cjs/components/DateInput/helpers/InternalDateMediator.js +10 -1
  29. package/cjs/components/DateInput/helpers/InternalDateMediator.js.map +1 -1
  30. package/cjs/components/DatePicker/DatePicker.d.ts +4 -33
  31. package/cjs/components/DatePicker/DatePicker.js +5 -60
  32. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  33. package/cjs/components/DateRangePicker/DateRangePicker.d.ts +3 -1
  34. package/cjs/components/DateRangePicker/DateRangePicker.js +61 -23
  35. package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
  36. package/cjs/components/DateRangePicker/DateRangePicker.styles.d.ts +0 -1
  37. package/cjs/components/DateRangePicker/DateRangePicker.styles.js +13 -18
  38. package/cjs/components/DateRangePicker/DateRangePicker.styles.js.map +1 -1
  39. package/cjs/components/DateRangePicker/DateRangePickerInput.js +4 -8
  40. package/cjs/components/DateRangePicker/DateRangePickerInput.js.map +1 -1
  41. package/cjs/components/DateRangePicker/helpers/validateDateRangePicker.js +17 -17
  42. package/cjs/components/DateRangePicker/helpers/validateDateRangePicker.js.map +1 -1
  43. package/cjs/components/Dropdown/Dropdown.d.ts +0 -47
  44. package/cjs/components/Dropdown/Dropdown.js +2 -83
  45. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  46. package/cjs/components/DropdownMenu/DropdownMenu.md +8 -8
  47. package/cjs/components/FileUploader/FileUploader.js +14 -2
  48. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  49. package/cjs/components/FxInput/FxInput.d.ts +1 -6
  50. package/cjs/components/FxInput/FxInput.js +1 -7
  51. package/cjs/components/FxInput/FxInput.js.map +1 -1
  52. package/cjs/components/Gapped/Gapped.d.ts +0 -15
  53. package/cjs/components/Gapped/Gapped.js +1 -25
  54. package/cjs/components/Gapped/Gapped.js.map +1 -1
  55. package/cjs/components/Group/Group.d.ts +3 -4
  56. package/cjs/components/Group/Group.js +90 -40
  57. package/cjs/components/Group/Group.js.map +1 -1
  58. package/cjs/components/Group/Group.md +4 -4
  59. package/cjs/components/Group/Group.styles.d.ts +1 -0
  60. package/cjs/components/Group/Group.styles.js +12 -6
  61. package/cjs/components/Group/Group.styles.js.map +1 -1
  62. package/cjs/components/Input/Input.md +4 -5
  63. package/cjs/components/Input/InputLayout/InputLayout.d.ts +1 -0
  64. package/cjs/components/Input/InputLayout/InputLayout.js +4 -2
  65. package/cjs/components/Input/InputLayout/InputLayout.js.map +1 -1
  66. package/cjs/components/Kebab/Kebab.d.ts +0 -1
  67. package/cjs/components/Kebab/Kebab.js +1 -26
  68. package/cjs/components/Kebab/Kebab.js.map +1 -1
  69. package/cjs/components/Kebab/Kebab.md +32 -32
  70. package/cjs/components/Link/Link.js +5 -0
  71. package/cjs/components/Link/Link.js.map +1 -1
  72. package/cjs/components/Link/Link.mixins.js +1 -2
  73. package/cjs/components/Link/Link.mixins.js.map +1 -1
  74. package/cjs/components/Link/Link.styles.js +3 -2
  75. package/cjs/components/Link/Link.styles.js.map +1 -1
  76. package/cjs/components/Loader/Loader.d.ts +4 -36
  77. package/cjs/components/Loader/Loader.js +3 -58
  78. package/cjs/components/Loader/Loader.js.map +1 -1
  79. package/cjs/components/MenuItem/MenuItem.d.ts +0 -12
  80. package/cjs/components/MenuItem/MenuItem.js +1 -22
  81. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  82. package/cjs/components/MenuItem/MenuItem.md +6 -6
  83. package/cjs/components/MiniModal/MiniModal.styles.d.ts +1 -0
  84. package/cjs/components/MiniModal/MiniModal.styles.js +14 -7
  85. package/cjs/components/MiniModal/MiniModal.styles.js.map +1 -1
  86. package/cjs/components/MiniModal/MiniModalBody.js +17 -2
  87. package/cjs/components/MiniModal/MiniModalBody.js.map +1 -1
  88. package/cjs/components/Modal/Modal.styles.d.ts +1 -1
  89. package/cjs/components/Modal/Modal.styles.js +6 -6
  90. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  91. package/cjs/components/Modal/ModalSeparator.js +1 -1
  92. package/cjs/components/Modal/ModalSeparator.js.map +1 -1
  93. package/cjs/components/Paging/Paging.d.ts +0 -1
  94. package/cjs/components/Paging/Paging.js +2 -28
  95. package/cjs/components/Paging/Paging.js.map +1 -1
  96. package/cjs/components/PasswordInput/PasswordInput.d.ts +0 -7
  97. package/cjs/components/PasswordInput/PasswordInput.js +1 -11
  98. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  99. package/cjs/components/RadioGroup/RadioGroup.d.ts +1 -0
  100. package/cjs/components/RadioGroup/RadioGroup.js +18 -1
  101. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  102. package/cjs/components/RadioGroup/RadioGroup.styles.d.ts +1 -0
  103. package/cjs/components/RadioGroup/RadioGroup.styles.js +10 -4
  104. package/cjs/components/RadioGroup/RadioGroup.styles.js.map +1 -1
  105. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +0 -9
  106. package/cjs/components/ScrollContainer/ScrollContainer.js +1 -11
  107. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  108. package/cjs/components/Select/Select.d.ts +3 -0
  109. package/cjs/components/Select/Select.js +4 -1
  110. package/cjs/components/Select/Select.js.map +1 -1
  111. package/cjs/components/Select/Select.md +3 -3
  112. package/cjs/components/SidePage/SidePage.js +1 -1
  113. package/cjs/components/SidePage/SidePage.js.map +1 -1
  114. package/cjs/components/SidePage/SidePageHeader.js +4 -1
  115. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  116. package/cjs/components/SingleToast/SingleToast.d.ts +3 -3
  117. package/cjs/components/SingleToast/SingleToast.js.map +1 -1
  118. package/cjs/components/Spinner/Spinner.d.ts +0 -18
  119. package/cjs/components/Spinner/Spinner.js +1 -32
  120. package/cjs/components/Spinner/Spinner.js.map +1 -1
  121. package/cjs/components/Sticky/Sticky.d.ts +3 -13
  122. package/cjs/components/Sticky/Sticky.js +12 -19
  123. package/cjs/components/Sticky/Sticky.js.map +1 -1
  124. package/cjs/components/Switcher/Switcher.d.ts +4 -21
  125. package/cjs/components/Switcher/Switcher.js +11 -21
  126. package/cjs/components/Switcher/Switcher.js.map +1 -1
  127. package/cjs/components/Switcher/Switcher.styles.d.ts +1 -0
  128. package/cjs/components/Switcher/Switcher.styles.js +17 -9
  129. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  130. package/cjs/components/Textarea/Textarea.d.ts +6 -45
  131. package/cjs/components/Textarea/Textarea.js +16 -58
  132. package/cjs/components/Textarea/Textarea.js.map +1 -1
  133. package/cjs/components/Textarea/Textarea.styles.js +2 -1
  134. package/cjs/components/Textarea/Textarea.styles.js.map +1 -1
  135. package/cjs/components/Textarea/TextareaCounter.js +2 -13
  136. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  137. package/cjs/components/Toast/Toast.d.ts +8 -6
  138. package/cjs/components/Toast/Toast.js +18 -4
  139. package/cjs/components/Toast/Toast.js.map +1 -1
  140. package/cjs/components/Toast/ToastStatic.d.ts +3 -2
  141. package/cjs/components/Toast/ToastStatic.js.map +1 -1
  142. package/cjs/components/Toast/ToastView.d.ts +1 -15
  143. package/cjs/components/Toast/ToastView.js +3 -23
  144. package/cjs/components/Toast/ToastView.js.map +1 -1
  145. package/cjs/components/Toggle/Toggle.d.ts +0 -10
  146. package/cjs/components/Toggle/Toggle.js +1 -12
  147. package/cjs/components/Toggle/Toggle.js.map +1 -1
  148. package/cjs/components/Token/Token.md +0 -83
  149. package/cjs/components/TokenInput/TokenInput.d.ts +2 -2
  150. package/cjs/components/TokenInput/TokenInput.js +2 -1
  151. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  152. package/cjs/components/TokenInput/TokenInput.md +2 -33
  153. package/cjs/components/TokenInput/TokenInputMenu.d.ts +12 -3
  154. package/cjs/components/TokenInput/TokenInputMenu.js +23 -1
  155. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  156. package/cjs/components/Tooltip/Tooltip.d.ts +2 -3
  157. package/cjs/components/Tooltip/Tooltip.js +7 -9
  158. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  159. package/cjs/components/Tooltip/Tooltip.md +8 -8
  160. package/cjs/components/TooltipMenu/TooltipMenu.md +12 -12
  161. package/cjs/index.d.ts +1 -0
  162. package/cjs/index.js.map +1 -1
  163. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.d.ts +1 -0
  164. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.js +16 -7
  165. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.js.map +1 -1
  166. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.styles.d.ts +3 -0
  167. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.styles.js +27 -9
  168. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.styles.js.map +1 -1
  169. package/cjs/internal/ComponentTable.js +2 -3
  170. package/cjs/internal/ComponentTable.js.map +1 -1
  171. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +6 -2
  172. package/cjs/internal/CustomComboBox/ComboBoxView.js +37 -2
  173. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  174. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +4 -2
  175. package/cjs/internal/CustomComboBox/CustomComboBox.js +4 -1
  176. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  177. package/cjs/internal/DateSelect/DateSelect.d.ts +0 -10
  178. package/cjs/internal/DateSelect/DateSelect.js +12 -18
  179. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  180. package/cjs/internal/InputLikeText/InputLikeText.styles.d.ts +1 -0
  181. package/cjs/internal/InputLikeText/InputLikeText.styles.js +12 -4
  182. package/cjs/internal/InputLikeText/InputLikeText.styles.js.map +1 -1
  183. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +36 -0
  184. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +233 -0
  185. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -0
  186. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.d.ts +3 -0
  187. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js +10 -0
  188. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js.map +1 -0
  189. package/cjs/internal/Popup/Popup.d.ts +41 -60
  190. package/cjs/internal/Popup/Popup.js +27 -78
  191. package/cjs/internal/Popup/Popup.js.map +1 -1
  192. package/cjs/internal/Popup/PopupPin.d.ts +23 -33
  193. package/cjs/internal/Popup/PopupPin.js +2 -35
  194. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  195. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +0 -6
  196. package/cjs/internal/RenderContainer/RenderInnerContainer.js +0 -9
  197. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  198. package/cjs/internal/RenderLayer/RenderLayer.d.ts +0 -3
  199. package/cjs/internal/RenderLayer/RenderLayer.js +2 -12
  200. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  201. package/cjs/internal/ThemePlayground/Playground.js +16 -16
  202. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  203. package/cjs/internal/ThemePlayground/SizesGroup.js +4 -4
  204. package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -1
  205. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +1 -1
  206. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  207. package/cjs/internal/ThemePlayground/VariableValue.js +4 -4
  208. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  209. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  210. package/cjs/internal/ZIndex/ZIndex.d.ts +1 -3
  211. package/cjs/internal/ZIndex/ZIndex.js +5 -2
  212. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  213. package/cjs/internal/themes/BasicTheme.d.ts +4 -0
  214. package/cjs/internal/themes/BasicTheme.js +6 -2
  215. package/cjs/internal/themes/BasicTheme.js.map +1 -1
  216. package/cjs/internal/themes/DarkTheme5_2.js +1 -1
  217. package/cjs/internal/themes/DarkTheme5_2.js.map +1 -1
  218. package/cjs/internal/themes/DarkTheme5_3.d.ts +1 -0
  219. package/cjs/internal/themes/DarkTheme5_3.js +13 -0
  220. package/cjs/internal/themes/DarkTheme5_3.js.map +1 -0
  221. package/cjs/internal/themes/LightTheme5_3.d.ts +1 -0
  222. package/cjs/internal/themes/LightTheme5_3.js +13 -0
  223. package/cjs/internal/themes/LightTheme5_3.js.map +1 -0
  224. package/cjs/lib/date/InternalDateGetter.d.ts +1 -1
  225. package/cjs/lib/date/InternalDateGetter.js +8 -1
  226. package/cjs/lib/date/InternalDateGetter.js.map +1 -1
  227. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +5 -0
  228. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +5 -0
  229. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +11 -1
  230. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  231. package/cjs/lib/forwardRefAndName.d.ts +1 -1
  232. package/cjs/lib/forwardRefAndName.js +0 -1
  233. package/cjs/lib/forwardRefAndName.js.map +1 -1
  234. package/cjs/lib/getMenuPositions.d.ts +21 -1
  235. package/cjs/lib/getMenuPositions.js +45 -8
  236. package/cjs/lib/getMenuPositions.js.map +1 -1
  237. package/cjs/lib/theming/ThemeVersions.d.ts +1 -1
  238. package/cjs/lib/theming/ThemeVersions.js.map +1 -1
  239. package/cjs/lib/theming/themes/DarkTheme.d.ts +1 -0
  240. package/cjs/lib/theming/themes/DarkTheme.js +4 -2
  241. package/cjs/lib/theming/themes/DarkTheme.js.map +1 -1
  242. package/cjs/lib/theming/themes/LightTheme.d.ts +1 -0
  243. package/cjs/lib/theming/themes/LightTheme.js +4 -2
  244. package/cjs/lib/theming/themes/LightTheme.js.map +1 -1
  245. package/cjs/lib/utils.d.ts +4 -0
  246. package/cjs/lib/utils.js +5 -1
  247. package/cjs/lib/utils.js.map +1 -1
  248. package/components/Autocomplete/Autocomplete/Autocomplete.js +3 -23
  249. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  250. package/components/Autocomplete/Autocomplete.d.ts +0 -22
  251. package/components/Button/Button.styles/Button.styles.js +1 -1
  252. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  253. package/components/Calendar/CalendarDay/CalendarDay.js +9 -2
  254. package/components/Calendar/CalendarDay/CalendarDay.js.map +1 -1
  255. package/components/Calendar/DayCellView/DayCellView.js +6 -10
  256. package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
  257. package/components/Checkbox/Checkbox/Checkbox.js +0 -11
  258. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  259. package/components/Checkbox/Checkbox.d.ts +0 -12
  260. package/components/ComboBox/ComboBox/ComboBox.js +2 -1
  261. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  262. package/components/ComboBox/ComboBox.d.ts +7 -1
  263. package/components/ComboBox/ComboBox.md +2 -2
  264. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +9 -36
  265. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  266. package/components/CurrencyInput/CurrencyInput.d.ts +1 -24
  267. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +10 -22
  268. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  269. package/components/DateInput/DateInput/DateInput.js +25 -16
  270. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  271. package/components/DateInput/DateInput.d.ts +1 -0
  272. package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js +2 -2
  273. package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js.map +1 -1
  274. package/components/DateInput/helpers/InternalDateMediator.d.ts +1 -1
  275. package/components/DatePicker/DatePicker/DatePicker.js +1 -32
  276. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  277. package/components/DatePicker/DatePicker.d.ts +4 -33
  278. package/components/DateRangePicker/DateRangePicker/DateRangePicker.js +41 -22
  279. package/components/DateRangePicker/DateRangePicker/DateRangePicker.js.map +1 -1
  280. package/components/DateRangePicker/DateRangePicker.d.ts +3 -1
  281. package/components/DateRangePicker/DateRangePicker.styles/DateRangePicker.styles.js +12 -15
  282. package/components/DateRangePicker/DateRangePicker.styles/DateRangePicker.styles.js.map +1 -1
  283. package/components/DateRangePicker/DateRangePicker.styles.d.ts +0 -1
  284. package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js +5 -8
  285. package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js.map +1 -1
  286. package/components/DateRangePicker/helpers/validateDateRangePicker/validateDateRangePicker.js +16 -15
  287. package/components/DateRangePicker/helpers/validateDateRangePicker/validateDateRangePicker.js.map +1 -1
  288. package/components/Dropdown/Dropdown/Dropdown.js +1 -47
  289. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  290. package/components/Dropdown/Dropdown.d.ts +0 -47
  291. package/components/DropdownMenu/DropdownMenu.md +8 -8
  292. package/components/FileUploader/FileUploader/FileUploader.js +7 -2
  293. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  294. package/components/FxInput/FxInput/FxInput.js +1 -5
  295. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  296. package/components/FxInput/FxInput.d.ts +1 -6
  297. package/components/Gapped/Gapped/Gapped.js +1 -15
  298. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  299. package/components/Gapped/Gapped.d.ts +0 -15
  300. package/components/Group/Group/Group.js +64 -28
  301. package/components/Group/Group/Group.js.map +1 -1
  302. package/components/Group/Group.d.ts +3 -4
  303. package/components/Group/Group.md +4 -4
  304. package/components/Group/Group.styles/Group.styles.js +9 -6
  305. package/components/Group/Group.styles/Group.styles.js.map +1 -1
  306. package/components/Group/Group.styles.d.ts +1 -0
  307. package/components/Input/Input.md +4 -5
  308. package/components/Input/InputLayout/InputLayout/InputLayout.js +5 -2
  309. package/components/Input/InputLayout/InputLayout/InputLayout.js.map +1 -1
  310. package/components/Input/InputLayout/InputLayout.d.ts +1 -0
  311. package/components/Kebab/Kebab/Kebab.js +2 -20
  312. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  313. package/components/Kebab/Kebab.d.ts +0 -1
  314. package/components/Kebab/Kebab.md +32 -32
  315. package/components/Link/Link/Link.js +4 -0
  316. package/components/Link/Link/Link.js.map +1 -1
  317. package/components/Link/Link.mixins/Link.mixins.js +1 -1
  318. package/components/Link/Link.mixins/Link.mixins.js.map +1 -1
  319. package/components/Link/Link.styles/Link.styles.js +1 -1
  320. package/components/Link/Link.styles/Link.styles.js.map +1 -1
  321. package/components/Loader/Loader/Loader.js +0 -33
  322. package/components/Loader/Loader/Loader.js.map +1 -1
  323. package/components/Loader/Loader.d.ts +4 -36
  324. package/components/MenuItem/MenuItem/MenuItem.js +1 -12
  325. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  326. package/components/MenuItem/MenuItem.d.ts +0 -12
  327. package/components/MenuItem/MenuItem.md +6 -6
  328. package/components/MiniModal/MiniModal.styles/MiniModal.styles.js +10 -7
  329. package/components/MiniModal/MiniModal.styles/MiniModal.styles.js.map +1 -1
  330. package/components/MiniModal/MiniModal.styles.d.ts +1 -0
  331. package/components/MiniModal/MiniModalBody/MiniModalBody.js +13 -5
  332. package/components/MiniModal/MiniModalBody/MiniModalBody.js.map +1 -1
  333. package/components/Modal/Modal.styles/Modal.styles.js +3 -3
  334. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  335. package/components/Modal/Modal.styles.d.ts +1 -1
  336. package/components/Modal/ModalSeparator/ModalSeparator.js +1 -1
  337. package/components/Modal/ModalSeparator/ModalSeparator.js.map +1 -1
  338. package/components/Paging/Paging/Paging.js +1 -22
  339. package/components/Paging/Paging/Paging.js.map +1 -1
  340. package/components/Paging/Paging.d.ts +0 -1
  341. package/components/PasswordInput/PasswordInput/PasswordInput.js +1 -7
  342. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  343. package/components/PasswordInput/PasswordInput.d.ts +0 -7
  344. package/components/RadioGroup/RadioGroup/RadioGroup.js +23 -17
  345. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  346. package/components/RadioGroup/RadioGroup.d.ts +1 -0
  347. package/components/RadioGroup/RadioGroup.styles/RadioGroup.styles.js +7 -4
  348. package/components/RadioGroup/RadioGroup.styles/RadioGroup.styles.js.map +1 -1
  349. package/components/RadioGroup/RadioGroup.styles.d.ts +1 -0
  350. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -9
  351. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  352. package/components/ScrollContainer/ScrollContainer.d.ts +0 -9
  353. package/components/Select/Select/Select.js +3 -2
  354. package/components/Select/Select/Select.js.map +1 -1
  355. package/components/Select/Select.d.ts +3 -0
  356. package/components/Select/Select.md +3 -3
  357. package/components/SidePage/SidePage/SidePage.js +1 -1
  358. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  359. package/components/SidePage/SidePageHeader/SidePageHeader.js +6 -1
  360. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  361. package/components/SingleToast/SingleToast/SingleToast.js.map +1 -1
  362. package/components/SingleToast/SingleToast.d.ts +3 -3
  363. package/components/Spinner/Spinner/Spinner.js +1 -18
  364. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  365. package/components/Spinner/Spinner.d.ts +0 -18
  366. package/components/Sticky/Sticky/Sticky.js +10 -14
  367. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  368. package/components/Sticky/Sticky.d.ts +3 -13
  369. package/components/Switcher/Switcher/Switcher.js +19 -16
  370. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  371. package/components/Switcher/Switcher.d.ts +4 -21
  372. package/components/Switcher/Switcher.styles/Switcher.styles.js +12 -9
  373. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  374. package/components/Switcher/Switcher.styles.d.ts +1 -0
  375. package/components/Textarea/Textarea/Textarea.js +12 -46
  376. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  377. package/components/Textarea/Textarea.d.ts +6 -45
  378. package/components/Textarea/Textarea.styles/Textarea.styles.js +1 -1
  379. package/components/Textarea/Textarea.styles/Textarea.styles.js.map +1 -1
  380. package/components/Textarea/TextareaCounter/TextareaCounter.js +1 -11
  381. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  382. package/components/Toast/Toast/Toast.js +8 -10
  383. package/components/Toast/Toast/Toast.js.map +1 -1
  384. package/components/Toast/Toast.d.ts +8 -6
  385. package/components/Toast/ToastStatic/ToastStatic.js.map +1 -1
  386. package/components/Toast/ToastStatic.d.ts +3 -2
  387. package/components/Toast/ToastView/ToastView.js +3 -17
  388. package/components/Toast/ToastView/ToastView.js.map +1 -1
  389. package/components/Toast/ToastView.d.ts +1 -15
  390. package/components/Toggle/Toggle/Toggle.js +1 -10
  391. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  392. package/components/Toggle/Toggle.d.ts +0 -10
  393. package/components/Token/Token.md +0 -83
  394. package/components/TokenInput/TokenInput/TokenInput.js +2 -1
  395. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  396. package/components/TokenInput/TokenInput.d.ts +2 -2
  397. package/components/TokenInput/TokenInput.md +2 -33
  398. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +16 -6
  399. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  400. package/components/TokenInput/TokenInputMenu.d.ts +12 -3
  401. package/components/Tooltip/Tooltip/Tooltip.js +8 -7
  402. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  403. package/components/Tooltip/Tooltip.d.ts +2 -3
  404. package/components/Tooltip/Tooltip.md +8 -8
  405. package/components/TooltipMenu/TooltipMenu.md +12 -12
  406. package/index.d.ts +1 -0
  407. package/index.js +1 -0
  408. package/index.js.map +1 -1
  409. package/internal/ClearCrossIcon/ClearCrossIcon/ClearCrossIcon.js +21 -7
  410. package/internal/ClearCrossIcon/ClearCrossIcon/ClearCrossIcon.js.map +1 -1
  411. package/internal/ClearCrossIcon/ClearCrossIcon.d.ts +1 -0
  412. package/internal/ClearCrossIcon/ClearCrossIcon.styles/ClearCrossIcon.styles.js +14 -5
  413. package/internal/ClearCrossIcon/ClearCrossIcon.styles/ClearCrossIcon.styles.js.map +1 -1
  414. package/internal/ClearCrossIcon/ClearCrossIcon.styles.d.ts +3 -0
  415. package/internal/ComponentTable/ComponentTable.js +0 -2
  416. package/internal/ComponentTable/ComponentTable.js.map +1 -1
  417. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +59 -27
  418. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  419. package/internal/CustomComboBox/ComboBoxView.d.ts +6 -2
  420. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +2 -1
  421. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  422. package/internal/CustomComboBox/CustomComboBox.d.ts +4 -2
  423. package/internal/DateSelect/DateSelect/DateSelect.js +3 -10
  424. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  425. package/internal/DateSelect/DateSelect.d.ts +0 -10
  426. package/internal/InputLikeText/InputLikeText.styles/InputLikeText.styles.js +7 -4
  427. package/internal/InputLikeText/InputLikeText.styles/InputLikeText.styles.js.map +1 -1
  428. package/internal/InputLikeText/InputLikeText.styles.d.ts +1 -0
  429. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js +244 -0
  430. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -0
  431. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/package.json +6 -0
  432. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +36 -0
  433. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles/InternalTextareaWithLayout.styles.js +8 -0
  434. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles/InternalTextareaWithLayout.styles.js.map +1 -0
  435. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles/package.json +6 -0
  436. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.d.ts +3 -0
  437. package/internal/Popup/Popup/Popup.js +13 -66
  438. package/internal/Popup/Popup/Popup.js.map +1 -1
  439. package/internal/Popup/Popup.d.ts +41 -60
  440. package/internal/Popup/PopupPin/PopupPin.js +1 -34
  441. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  442. package/internal/Popup/PopupPin.d.ts +23 -33
  443. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +0 -8
  444. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  445. package/internal/RenderContainer/RenderInnerContainer.d.ts +0 -6
  446. package/internal/RenderLayer/RenderLayer/RenderLayer.js +3 -11
  447. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  448. package/internal/RenderLayer/RenderLayer.d.ts +0 -3
  449. package/internal/ThemePlayground/Playground/Playground.js +13 -13
  450. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  451. package/internal/ThemePlayground/SizesGroup/SizesGroup.js +4 -4
  452. package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -1
  453. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +2 -2
  454. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
  455. package/internal/ThemePlayground/VariableValue/VariableValue.js +4 -4
  456. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  457. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  458. package/internal/ZIndex/ZIndex/ZIndex.js +8 -10
  459. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  460. package/internal/ZIndex/ZIndex.d.ts +1 -3
  461. package/internal/themes/BasicTheme/BasicTheme.js +4 -0
  462. package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
  463. package/internal/themes/BasicTheme.d.ts +4 -0
  464. package/internal/themes/DarkTheme5_2/DarkTheme5_2.js +3 -3
  465. package/internal/themes/DarkTheme5_2/DarkTheme5_2.js.map +1 -1
  466. package/internal/themes/DarkTheme5_3/DarkTheme5_3.js +16 -0
  467. package/internal/themes/DarkTheme5_3/DarkTheme5_3.js.map +1 -0
  468. package/internal/themes/DarkTheme5_3/package.json +6 -0
  469. package/internal/themes/DarkTheme5_3.d.ts +1 -0
  470. package/internal/themes/LightTheme5_3/LightTheme5_3.js +16 -0
  471. package/internal/themes/LightTheme5_3/LightTheme5_3.js.map +1 -0
  472. package/internal/themes/LightTheme5_3/package.json +6 -0
  473. package/internal/themes/LightTheme5_3.d.ts +1 -0
  474. package/lib/date/InternalDateGetter/InternalDateGetter.js +4 -1
  475. package/lib/date/InternalDateGetter/InternalDateGetter.js.map +1 -1
  476. package/lib/date/InternalDateGetter.d.ts +1 -1
  477. package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +5 -0
  478. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +6 -1
  479. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  480. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +5 -0
  481. package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -1
  482. package/lib/forwardRefAndName.d.ts +1 -1
  483. package/lib/getMenuPositions/getMenuPositions.js +33 -4
  484. package/lib/getMenuPositions/getMenuPositions.js.map +1 -1
  485. package/lib/getMenuPositions.d.ts +21 -1
  486. package/lib/theming/ThemeVersions/ThemeVersions.js.map +1 -1
  487. package/lib/theming/ThemeVersions.d.ts +1 -1
  488. package/lib/theming/themes/DarkTheme/DarkTheme.js +3 -1
  489. package/lib/theming/themes/DarkTheme/DarkTheme.js.map +1 -1
  490. package/lib/theming/themes/DarkTheme.d.ts +1 -0
  491. package/lib/theming/themes/LightTheme/LightTheme.js +3 -1
  492. package/lib/theming/themes/LightTheme/LightTheme.js.map +1 -1
  493. package/lib/theming/themes/LightTheme.d.ts +1 -0
  494. package/lib/utils/utils.js +2 -0
  495. package/lib/utils/utils.js.map +1 -1
  496. package/lib/utils.d.ts +4 -0
  497. package/package.json +7 -11
  498. package/cjs/lib/SSRSafe.d.ts +0 -2
  499. package/cjs/lib/SSRSafe.js +0 -5
  500. package/cjs/lib/SSRSafe.js.map +0 -1
  501. package/lib/SSRSafe/SSRSafe.js +0 -4
  502. package/lib/SSRSafe/SSRSafe.js.map +0 -1
  503. package/lib/SSRSafe/package.json +0 -6
  504. package/lib/SSRSafe.d.ts +0 -2
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { ToastProps } from '../Toast/Toast';
2
+ import type { ToastClose, ToastProps, ToastPush } from '../Toast/Toast';
3
3
  import { Toast } from '../Toast/Toast';
4
4
  /**
5
5
  * `SingleToast` — это короткое немодальное уведомление, которое сообщает пользователю о результате выполнения его команды.
@@ -12,7 +12,7 @@ export declare class SingleToast extends React.Component<ToastProps> {
12
12
  static __KONTUR_REACT_UI__: string;
13
13
  static displayName: string;
14
14
  static ref: React.RefObject<Toast>;
15
- static push: typeof Toast.push;
16
- static close: typeof Toast.close;
15
+ static push: ToastPush;
16
+ static close: ToastClose;
17
17
  render: () => React.JSX.Element;
18
18
  }
@@ -2,7 +2,6 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
3
3
  var _class, _Spinner;
4
4
  import React from 'react';
5
- import PropTypes from 'prop-types';
6
5
  import { ThemeContext } from "../../../lib/theming/ThemeContext";
7
6
  import { SpinnerIcon } from "../../../internal/SpinnerIcon/SpinnerIcon";
8
7
  import { CommonWrapper } from "../../../internal/CommonWrapper";
@@ -79,23 +78,7 @@ export var Spinner = rootNode(_class = (_Spinner = /*#__PURE__*/function (_React
79
78
  }, this.renderSpinner(type, dimmed, inline)), caption && this.renderCaption(type, caption)));
80
79
  };
81
80
  return Spinner;
82
- }(React.Component), _Spinner.__KONTUR_REACT_UI__ = 'Spinner', _Spinner.displayName = 'Spinner', _Spinner.propTypes = {
83
- /**
84
- * Текст рядом с мини-лоадером.
85
- *
86
- * 'Загрузка' - значение по-умолчанию
87
- */
88
- caption: PropTypes.node,
89
- dimmed: PropTypes.bool,
90
- /**
91
- * Тип спиннера: mini, normal, big
92
- *
93
- * Значение по-умолчанию - normal
94
- *
95
- * Spinner.types - все доступные типы
96
- */
97
- type: PropTypes.oneOf(types)
98
- }, _Spinner.defaultProps = {
81
+ }(React.Component), _Spinner.__KONTUR_REACT_UI__ = 'Spinner', _Spinner.displayName = 'Spinner', _Spinner.defaultProps = {
99
82
  type: 'normal'
100
83
  }, _Spinner.Types = Object.assign.apply(Object, [{}].concat(types.map(function (type) {
101
84
  var _ref;
@@ -1 +1 @@
1
- {"version":3,"names":["React","PropTypes","ThemeContext","SpinnerIcon","CommonWrapper","cx","rootNode","createPropsGetter","styles","types","SpinnerDataTids","root","Spinner","_class","_Spinner","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","renderSpinner","type","dimmed","inline","_cx","createElement","size","className","circle","theme","props","color","circleDimmedColor","circleWithoutColorAnimation","width","renderCaption","caption","captionColor","_inheritsLoose","_proto","prototype","render","_this2","Consumer","renderMain","_this$props","_this$props$caption","_extends","rootNodeRef","setRootNode","spinner","inner","Component","__KONTUR_REACT_UI__","displayName","propTypes","node","bool","oneOf","Types","Object","assign","map","_ref"],"sources":["Spinner.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { SpinnerIcon } from '../../internal/SpinnerIcon/SpinnerIcon';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Spinner.styles';\n\nconst types = ['big', 'mini', 'normal'] as const;\n\nexport type SpinnerType = (typeof types)[number];\n\nexport interface SpinnerProps extends CommonProps {\n /** Задает подпись под спиннером.\n * @default \"Загрузка\" */\n caption?: React.ReactNode;\n\n /** Переводит спиннер в \"затемнённый режим\".\n * Цвет спиннера в \"затемнённом режиме\" определяется переменной `spinnerDimmedColor`. */\n dimmed?: boolean;\n\n /** Задает размер спиннера и текста.\n * @default normal. */\n type?: SpinnerType;\n\n /** Уменьшает спиннер для вставки в инлайн элемент. При type = \"big\"|\"normal\" размер спиннера уменьшается. */\n inline?: boolean;\n\n /** Задает толщину спиннера. */\n width?: number;\n\n /** Задает цвет спиннера. Не работает с пропом dimmed. */\n color?: React.CSSProperties['color'];\n}\n\nexport const SpinnerDataTids = {\n root: 'Spinner__root',\n} as const;\n\ntype DefaultProps = Required<Pick<SpinnerProps, 'type'>>;\n\n/**\n * `Spinner` — это зацикленный индикатор, не отображающий прогресс выполнения задачи.\n *\n * Используйте `Spinner`, чтобы показать, что система выполняет команду, которую дал пользователь.\n * Не применяйте `Spinner` для заполнения паузы при загрузке контента, для этого предназначен GlobalLoader.\n *\n * Используйте компонент `Spinner`, если вам нужен спиннер, без дополнительного функционала, который предоставляет компонент Loader.\n */\n@rootNode\nexport class Spinner extends React.Component<SpinnerProps> {\n public static __KONTUR_REACT_UI__ = 'Spinner';\n public static displayName = 'Spinner';\n\n public static propTypes = {\n /**\n * Текст рядом с мини-лоадером.\n *\n * 'Загрузка' - значение по-умолчанию\n */\n caption: PropTypes.node,\n\n dimmed: PropTypes.bool,\n\n /**\n * Тип спиннера: mini, normal, big\n *\n * Значение по-умолчанию - normal\n *\n * Spinner.types - все доступные типы\n */\n type: PropTypes.oneOf(types),\n };\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n };\n\n private getProps = createPropsGetter(Spinner.defaultProps);\n\n public static Types: Record<SpinnerType, SpinnerType> = Object.assign({}, ...types.map((type) => ({ [type]: type })));\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { caption = null, dimmed, inline } = this.props;\n const type = this.getProps().type;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={SpinnerDataTids.root} className={styles.spinner()}>\n <span className={styles.inner()}>{this.renderSpinner(type, dimmed, inline)}</span>\n {caption && this.renderCaption(type, caption)}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderSpinner = (type: SpinnerType, dimmed?: boolean, inline?: boolean) => {\n return (\n <SpinnerIcon\n size={type}\n className={cx({\n [styles.circle(this.theme)]: !dimmed && !this.props.color,\n [styles.circleDimmedColor(this.theme)]: dimmed,\n [styles.circleWithoutColorAnimation()]: dimmed || !!this.props.color,\n })}\n dimmed={dimmed}\n width={this.props.width}\n color={this.props.color}\n inline={inline}\n />\n );\n };\n\n private renderCaption = (type: SpinnerType, caption: React.ReactNode) => (\n <span className={cx(styles[type](this.theme), styles.captionColor(this.theme))}>{caption}</span>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","ThemeContext","SpinnerIcon","CommonWrapper","cx","rootNode","createPropsGetter","styles","types","SpinnerDataTids","root","Spinner","_class","_Spinner","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","renderSpinner","type","dimmed","inline","_cx","createElement","size","className","circle","theme","props","color","circleDimmedColor","circleWithoutColorAnimation","width","renderCaption","caption","captionColor","_inheritsLoose","_proto","prototype","render","_this2","Consumer","renderMain","_this$props","_this$props$caption","_extends","rootNodeRef","setRootNode","spinner","inner","Component","__KONTUR_REACT_UI__","displayName","Types","Object","assign","map","_ref"],"sources":["Spinner.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { SpinnerIcon } from '../../internal/SpinnerIcon/SpinnerIcon';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Spinner.styles';\n\nconst types = ['big', 'mini', 'normal'] as const;\n\nexport type SpinnerType = (typeof types)[number];\n\nexport interface SpinnerProps extends CommonProps {\n /** Задает подпись под спиннером.\n * @default \"Загрузка\" */\n caption?: React.ReactNode;\n\n /** Переводит спиннер в \"затемнённый режим\".\n * Цвет спиннера в \"затемнённом режиме\" определяется переменной `spinnerDimmedColor`. */\n dimmed?: boolean;\n\n /** Задает размер спиннера и текста.\n * @default normal. */\n type?: SpinnerType;\n\n /** Уменьшает спиннер для вставки в инлайн элемент. При type = \"big\"|\"normal\" размер спиннера уменьшается. */\n inline?: boolean;\n\n /** Задает толщину спиннера. */\n width?: number;\n\n /** Задает цвет спиннера. Не работает с пропом dimmed. */\n color?: React.CSSProperties['color'];\n}\n\nexport const SpinnerDataTids = {\n root: 'Spinner__root',\n} as const;\n\ntype DefaultProps = Required<Pick<SpinnerProps, 'type'>>;\n\n/**\n * `Spinner` — это зацикленный индикатор, не отображающий прогресс выполнения задачи.\n *\n * Используйте `Spinner`, чтобы показать, что система выполняет команду, которую дал пользователь.\n * Не применяйте `Spinner` для заполнения паузы при загрузке контента, для этого предназначен GlobalLoader.\n *\n * Используйте компонент `Spinner`, если вам нужен спиннер, без дополнительного функционала, который предоставляет компонент Loader.\n */\n@rootNode\nexport class Spinner extends React.Component<SpinnerProps> {\n public static __KONTUR_REACT_UI__ = 'Spinner';\n public static displayName = 'Spinner';\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n };\n\n private getProps = createPropsGetter(Spinner.defaultProps);\n\n public static Types: Record<SpinnerType, SpinnerType> = Object.assign({}, ...types.map((type) => ({ [type]: type })));\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { caption = null, dimmed, inline } = this.props;\n const type = this.getProps().type;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={SpinnerDataTids.root} className={styles.spinner()}>\n <span className={styles.inner()}>{this.renderSpinner(type, dimmed, inline)}</span>\n {caption && this.renderCaption(type, caption)}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderSpinner = (type: SpinnerType, dimmed?: boolean, inline?: boolean) => {\n return (\n <SpinnerIcon\n size={type}\n className={cx({\n [styles.circle(this.theme)]: !dimmed && !this.props.color,\n [styles.circleDimmedColor(this.theme)]: dimmed,\n [styles.circleWithoutColorAnimation()]: dimmed || !!this.props.color,\n })}\n dimmed={dimmed}\n width={this.props.width}\n color={this.props.color}\n inline={inline}\n />\n );\n };\n\n private renderCaption = (type: SpinnerType, caption: React.ReactNode) => (\n <span className={cx(styles[type](this.theme), styles.captionColor(this.theme))}>{caption}</span>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
- import PropTypes from 'prop-types';
3
2
  import type { CommonProps } from '../../internal/CommonWrapper';
4
3
  declare const types: readonly ["big", "mini", "normal"];
5
4
  export type SpinnerType = (typeof types)[number];
@@ -35,23 +34,6 @@ type DefaultProps = Required<Pick<SpinnerProps, 'type'>>;
35
34
  export declare class Spinner extends React.Component<SpinnerProps> {
36
35
  static __KONTUR_REACT_UI__: string;
37
36
  static displayName: string;
38
- static propTypes: {
39
- /**
40
- * Текст рядом с мини-лоадером.
41
- *
42
- * 'Загрузка' - значение по-умолчанию
43
- */
44
- caption: PropTypes.Requireable<PropTypes.ReactNodeLike>;
45
- dimmed: PropTypes.Requireable<boolean>;
46
- /**
47
- * Тип спиннера: mini, normal, big
48
- *
49
- * Значение по-умолчанию - normal
50
- *
51
- * Spinner.types - все доступные типы
52
- */
53
- type: PropTypes.Requireable<"big" | "normal" | "mini">;
54
- };
55
37
  static defaultProps: DefaultProps;
56
38
  private getProps;
57
39
  static Types: Record<SpinnerType, SpinnerType>;
@@ -2,7 +2,6 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
3
3
  var _class, _Sticky;
4
4
  import React from 'react';
5
- import PropTypes from 'prop-types';
6
5
  import shallowEqual from 'shallowequal';
7
6
  import { globalObject } from '@skbkontur/global-object';
8
7
  import * as LayoutEvents from "../../../lib/LayoutEvents";
@@ -13,6 +12,7 @@ import { cx } from "../../../lib/theming/Emotion";
13
12
  import { rootNode } from "../../../lib/rootNode";
14
13
  import { getDOMRect } from "../../../lib/dom/getDOMRect";
15
14
  import { createPropsGetter } from "../../../lib/createPropsGetter";
15
+ import { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from "../../../lib/featureFlagsContext";
16
16
  import { styles } from "../Sticky.styles";
17
17
  var MAX_REFLOW_RETRIES = 5;
18
18
  export var StickyDataTids = {
@@ -130,7 +130,7 @@ export var Sticky = rootNode(_class = (_Sticky = /*#__PURE__*/function (_React$C
130
130
  _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
131
131
  if (!shallowEqual(prevProps, this.props) || !shallowEqual(prevState, this.state)) {
132
132
  if (this.reflowCounter < MAX_REFLOW_RETRIES) {
133
- LayoutEvents.emit();
133
+ this.featureFlags.stickyReduceLayoutEvents ? this.reflow() : LayoutEvents.emit();
134
134
  this.reflowCounter += 1;
135
135
  return;
136
136
  }
@@ -138,6 +138,13 @@ export var Sticky = rootNode(_class = (_Sticky = /*#__PURE__*/function (_React$C
138
138
  this.reflowCounter = 0;
139
139
  };
140
140
  _proto.render = function render() {
141
+ var _this2 = this;
142
+ return /*#__PURE__*/React.createElement(ReactUIFeatureFlagsContext.Consumer, null, function (flags) {
143
+ _this2.featureFlags = getFullReactUIFlagsContext(flags);
144
+ return _this2.renderMain();
145
+ });
146
+ };
147
+ _proto.renderMain = function renderMain() {
141
148
  var _cx;
142
149
  var children = this.props.children;
143
150
  var side = this.props.side;
@@ -186,17 +193,6 @@ export var Sticky = rootNode(_class = (_Sticky = /*#__PURE__*/function (_React$C
186
193
  }) : null));
187
194
  };
188
195
  return Sticky;
189
- }(React.Component), _Sticky.__KONTUR_REACT_UI__ = 'Sticky', _Sticky.displayName = 'Sticky', _Sticky.propTypes = {
190
- children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
191
- /**
192
- * Функция, которая возвращает DOM-элемент, который нельзя пересекать.
193
- */
194
- getStop: PropTypes.func,
195
- /**
196
- * Отступ от границы в пикселях
197
- */
198
- offset: PropTypes.number,
199
- side: PropTypes.oneOf(['top', 'bottom']).isRequired
200
- }, _Sticky.defaultProps = {
196
+ }(React.Component), _Sticky.__KONTUR_REACT_UI__ = 'Sticky', _Sticky.displayName = 'Sticky', _Sticky.defaultProps = {
201
197
  offset: 0
202
198
  }, _Sticky)) || _class;
@@ -1 +1 @@
1
- {"version":3,"names":["React","PropTypes","shallowEqual","globalObject","LayoutEvents","isFunction","ZIndex","CommonWrapper","cx","rootNode","getDOMRect","createPropsGetter","styles","MAX_REFLOW_RETRIES","StickyDataTids","root","Sticky","_class","_Sticky","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","fixed","deltaHeight","stopped","relativeTop","layoutSubscription","remove","reflowCounter","refWrapper","ref","wrapper","refInner","inner","reflow","_globalObject$documen","document","documentElement","Error","windowHeight","innerHeight","clientHeight","_getDOMRect","top","bottom","left","width","_getDOMRect2","height","_this$props","props","getStop","side","_this$state","prevFixed","_this$state$height","prevHeight","offset","Math","ceil","floor","setState","stop","stopRect","outerHeight","_inheritsLoose","_proto","prototype","componentDidMount","addListener","componentWillUnmount","componentDidUpdate","prevProps","prevState","emit","render","_cx","children","_this$state2","innerStyle","createElement","_extends","rootNodeRef","setRootNode","className","priority","applyZIndex","style","wrapperRef","container","Component","__KONTUR_REACT_UI__","displayName","propTypes","oneOfType","node","func","number","oneOf","isRequired"],"sources":["Sticky.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport shallowEqual from 'shallowequal';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable } from '../../typings/utility-types';\nimport { isFunction } from '../../lib/utils';\nimport { ZIndex } from '../../internal/ZIndex';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Sticky.styles';\n\nconst MAX_REFLOW_RETRIES = 5;\n\nexport interface StickyProps extends Omit<CommonProps, 'children'> {\n /** Задает сторону залипания. */\n side: 'top' | 'bottom';\n\n /** Задает отступ от края экрана в пикселях, на который сдвигается элемент в залипшем состоянии.\n * @default 0 */\n offset?: number;\n\n /** Задает функцию, которая возвращает DOM-элемент, который нельзя пересекать. */\n getStop?: () => Nullable<HTMLElement>;\n\n /** @ignore */\n children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);\n}\n\nexport interface StickyState {\n fixed: boolean;\n deltaHeight: number;\n height?: number;\n width?: number;\n left?: number;\n stopped: boolean;\n relativeTop: number;\n}\n\nexport const StickyDataTids = {\n root: 'Sticky__root',\n} as const;\n\ntype DefaultProps = Required<Pick<StickyProps, 'offset'>>;\n\n/**\n * `Sticky` позволяет закреплять элемент интерфейса в определенной позиции на экране при прокрутке страницы.\n * Это полезно для создания \"прилипающих\" элементов, которые остаются видимыми при прокрутке содержимого.\n */\n@rootNode\nexport class Sticky extends React.Component<StickyProps, StickyState> {\n public static __KONTUR_REACT_UI__ = 'Sticky';\n public static displayName = 'Sticky';\n\n public static propTypes = {\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n\n /**\n * Функция, которая возвращает DOM-элемент, который нельзя пересекать.\n */\n getStop: PropTypes.func,\n\n /**\n * Отступ от границы в пикселях\n */\n offset: PropTypes.number,\n\n side: PropTypes.oneOf(['top', 'bottom']).isRequired,\n };\n\n public static defaultProps: DefaultProps = { offset: 0 };\n\n private getProps = createPropsGetter(Sticky.defaultProps);\n\n public state: StickyState = {\n fixed: false,\n deltaHeight: 0,\n stopped: false,\n relativeTop: 0,\n };\n\n private wrapper: Nullable<HTMLElement>;\n private inner: Nullable<HTMLElement>;\n private layoutSubscription: { remove: Nullable<() => void> } = { remove: null };\n private reflowCounter = 0;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n this.reflow();\n\n this.layoutSubscription = LayoutEvents.addListener(this.reflow);\n }\n\n public componentWillUnmount() {\n if (this.layoutSubscription.remove) {\n this.layoutSubscription.remove();\n }\n }\n\n public componentDidUpdate(prevProps: StickyProps, prevState: StickyState) {\n if (!shallowEqual(prevProps, this.props) || !shallowEqual(prevState, this.state)) {\n if (this.reflowCounter < MAX_REFLOW_RETRIES) {\n LayoutEvents.emit();\n this.reflowCounter += 1;\n return;\n }\n }\n this.reflowCounter = 0;\n }\n\n public render() {\n let { children } = this.props;\n const { side } = this.props;\n const offset = this.getProps().offset;\n const { fixed, stopped, relativeTop, deltaHeight, width, height, left } = this.state;\n const innerStyle: React.CSSProperties = {};\n\n if (fixed) {\n if (stopped) {\n innerStyle.top = relativeTop;\n innerStyle[side === 'top' ? 'marginTop' : 'marginBottom'] = deltaHeight;\n } else {\n innerStyle.width = width;\n innerStyle[side] = offset;\n innerStyle.left = left;\n }\n }\n\n if (isFunction(children)) {\n children = children(fixed);\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={StickyDataTids.root} ref={this.refWrapper} className={styles.wrapper()}>\n <ZIndex\n priority=\"Sticky\"\n applyZIndex={fixed}\n className={cx(styles.inner(), {\n [styles.fixed()]: fixed && !stopped,\n [styles.stopped()]: stopped,\n })}\n style={innerStyle}\n wrapperRef={this.refInner}\n >\n <div className={styles.container()}>{children}</div>\n </ZIndex>\n {fixed && !stopped ? <div style={{ width, height }} /> : null}\n </div>\n </CommonWrapper>\n );\n }\n\n private refWrapper = (ref: Nullable<HTMLElement>) => (this.wrapper = ref);\n\n private refInner = (ref: Nullable<HTMLElement>) => (this.inner = ref);\n\n /**\n * Пересчитать габариты и позицию залипшего элемента\n *\n * @public\n */\n public reflow = () => {\n if (!globalObject.document?.documentElement) {\n throw Error('There is no \"documentElement\" in document');\n }\n\n const windowHeight = globalObject.innerHeight || globalObject.document.documentElement.clientHeight;\n if (!this.wrapper || !this.inner) {\n return;\n }\n const { top, bottom, left, width } = getDOMRect(this.wrapper);\n const { height } = getDOMRect(this.inner);\n const { getStop, side } = this.props;\n const { fixed: prevFixed, height: prevHeight = height } = this.state;\n const offset = this.getProps().offset;\n const fixed = side === 'top' ? Math.ceil(top) < offset : Math.floor(bottom) > windowHeight - offset;\n\n this.setState({ fixed, left });\n\n if (fixed && !prevFixed) {\n this.setState({ width, height });\n }\n\n if (fixed) {\n this.setState({ width });\n const stop = getStop && getStop();\n if (stop) {\n const deltaHeight = prevHeight - height;\n const stopRect = getDOMRect(stop);\n const outerHeight = height + offset;\n let stopped = false;\n let relativeTop = 0;\n\n if (side === 'top') {\n stopped = stopRect.top - outerHeight < 0;\n relativeTop = stopRect.top - prevHeight - top;\n } else {\n stopped = stopRect.bottom + outerHeight > windowHeight;\n relativeTop = stopRect.bottom - top;\n }\n\n this.setState({ relativeTop, deltaHeight, stopped });\n }\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","shallowEqual","globalObject","LayoutEvents","isFunction","ZIndex","CommonWrapper","cx","rootNode","getDOMRect","createPropsGetter","getFullReactUIFlagsContext","ReactUIFeatureFlagsContext","styles","MAX_REFLOW_RETRIES","StickyDataTids","root","Sticky","_class","_Sticky","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","fixed","deltaHeight","stopped","relativeTop","layoutSubscription","remove","reflowCounter","refWrapper","ref","wrapper","refInner","inner","reflow","_globalObject$documen","document","documentElement","Error","windowHeight","innerHeight","clientHeight","_getDOMRect","top","bottom","left","width","_getDOMRect2","height","_this$props","props","getStop","side","_this$state","prevFixed","_this$state$height","prevHeight","offset","Math","ceil","floor","setState","stop","stopRect","outerHeight","_inheritsLoose","_proto","prototype","componentDidMount","addListener","componentWillUnmount","componentDidUpdate","prevProps","prevState","featureFlags","stickyReduceLayoutEvents","emit","render","_this2","createElement","Consumer","flags","renderMain","_cx","children","_this$state2","innerStyle","_extends","rootNodeRef","setRootNode","className","priority","applyZIndex","style","wrapperRef","container","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Sticky.tsx"],"sourcesContent":["import React from 'react';\nimport shallowEqual from 'shallowequal';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable } from '../../typings/utility-types';\nimport { isFunction } from '../../lib/utils';\nimport { ZIndex } from '../../internal/ZIndex';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';\nimport { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\n\nimport { styles } from './Sticky.styles';\n\nconst MAX_REFLOW_RETRIES = 5;\n\nexport interface StickyProps extends Omit<CommonProps, 'children'> {\n /** Задает сторону залипания. */\n side: 'top' | 'bottom';\n\n /** Задает отступ от края экрана в пикселях, на который сдвигается элемент в залипшем состоянии.\n * @default 0 */\n offset?: number;\n\n /** Задает функцию, которая возвращает DOM-элемент, который нельзя пересекать. */\n getStop?: () => Nullable<HTMLElement>;\n\n /** @ignore */\n children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);\n}\n\nexport interface StickyState {\n fixed: boolean;\n deltaHeight: number;\n height?: number;\n width?: number;\n left?: number;\n stopped: boolean;\n relativeTop: number;\n}\n\nexport const StickyDataTids = {\n root: 'Sticky__root',\n} as const;\n\ntype DefaultProps = Required<Pick<StickyProps, 'offset'>>;\n\n/**\n * `Sticky` позволяет закреплять элемент интерфейса в определенной позиции на экране при прокрутке страницы.\n * Это полезно для создания \"прилипающих\" элементов, которые остаются видимыми при прокрутке содержимого.\n */\n@rootNode\nexport class Sticky extends React.Component<StickyProps, StickyState> {\n public static __KONTUR_REACT_UI__ = 'Sticky';\n public static displayName = 'Sticky';\n\n public static defaultProps: DefaultProps = { offset: 0 };\n\n private getProps = createPropsGetter(Sticky.defaultProps);\n\n public state: StickyState = {\n fixed: false,\n deltaHeight: 0,\n stopped: false,\n relativeTop: 0,\n };\n\n private wrapper: Nullable<HTMLElement>;\n private inner: Nullable<HTMLElement>;\n private layoutSubscription: { remove: Nullable<() => void> } = { remove: null };\n private reflowCounter = 0;\n private setRootNode!: TSetRootNode;\n public featureFlags!: ReactUIFeatureFlags;\n\n public componentDidMount() {\n this.reflow();\n\n this.layoutSubscription = LayoutEvents.addListener(this.reflow);\n }\n\n public componentWillUnmount() {\n if (this.layoutSubscription.remove) {\n this.layoutSubscription.remove();\n }\n }\n\n public componentDidUpdate(prevProps: StickyProps, prevState: StickyState) {\n if (!shallowEqual(prevProps, this.props) || !shallowEqual(prevState, this.state)) {\n if (this.reflowCounter < MAX_REFLOW_RETRIES) {\n this.featureFlags.stickyReduceLayoutEvents ? this.reflow() : LayoutEvents.emit();\n this.reflowCounter += 1;\n return;\n }\n }\n this.reflowCounter = 0;\n }\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return this.renderMain();\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n private renderMain() {\n let { children } = this.props;\n const { side } = this.props;\n const offset = this.getProps().offset;\n const { fixed, stopped, relativeTop, deltaHeight, width, height, left } = this.state;\n const innerStyle: React.CSSProperties = {};\n\n if (fixed) {\n if (stopped) {\n innerStyle.top = relativeTop;\n innerStyle[side === 'top' ? 'marginTop' : 'marginBottom'] = deltaHeight;\n } else {\n innerStyle.width = width;\n innerStyle[side] = offset;\n innerStyle.left = left;\n }\n }\n\n if (isFunction(children)) {\n children = children(fixed);\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={StickyDataTids.root} ref={this.refWrapper} className={styles.wrapper()}>\n <ZIndex\n priority=\"Sticky\"\n applyZIndex={fixed}\n className={cx(styles.inner(), {\n [styles.fixed()]: fixed && !stopped,\n [styles.stopped()]: stopped,\n })}\n style={innerStyle}\n wrapperRef={this.refInner}\n >\n <div className={styles.container()}>{children}</div>\n </ZIndex>\n {fixed && !stopped ? <div style={{ width, height }} /> : null}\n </div>\n </CommonWrapper>\n );\n }\n\n private refWrapper = (ref: Nullable<HTMLElement>) => (this.wrapper = ref);\n\n private refInner = (ref: Nullable<HTMLElement>) => (this.inner = ref);\n\n /**\n * Пересчитать габариты и позицию залипшего элемента\n *\n * @public\n */\n public reflow = () => {\n if (!globalObject.document?.documentElement) {\n throw Error('There is no \"documentElement\" in document');\n }\n\n const windowHeight = globalObject.innerHeight || globalObject.document.documentElement.clientHeight;\n if (!this.wrapper || !this.inner) {\n return;\n }\n const { top, bottom, left, width } = getDOMRect(this.wrapper);\n const { height } = getDOMRect(this.inner);\n const { getStop, side } = this.props;\n const { fixed: prevFixed, height: prevHeight = height } = this.state;\n const offset = this.getProps().offset;\n const fixed = side === 'top' ? Math.ceil(top) < offset : Math.floor(bottom) > windowHeight - offset;\n\n this.setState({ fixed, left });\n\n if (fixed && !prevFixed) {\n this.setState({ width, height });\n }\n\n if (fixed) {\n this.setState({ width });\n const stop = getStop && getStop();\n if (stop) {\n const deltaHeight = prevHeight - height;\n const stopRect = getDOMRect(stop);\n const outerHeight = height + offset;\n let stopped = false;\n let relativeTop = 0;\n\n if (side === 'top') {\n stopped = stopRect.top - outerHeight < 0;\n relativeTop = stopRect.top - prevHeight - top;\n } else {\n stopped = stopRect.bottom + outerHeight > windowHeight;\n relativeTop = stopRect.bottom - top;\n }\n\n this.setState({ relativeTop, deltaHeight, stopped });\n }\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
- import PropTypes from 'prop-types';
3
2
  import type { Nullable } from '../../typings/utility-types';
4
3
  import type { CommonProps } from '../../internal/CommonWrapper';
4
+ import type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';
5
5
  export interface StickyProps extends Omit<CommonProps, 'children'> {
6
6
  /** Задает сторону залипания. */
7
7
  side: 'top' | 'bottom';
@@ -33,18 +33,6 @@ type DefaultProps = Required<Pick<StickyProps, 'offset'>>;
33
33
  export declare class Sticky extends React.Component<StickyProps, StickyState> {
34
34
  static __KONTUR_REACT_UI__: string;
35
35
  static displayName: string;
36
- static propTypes: {
37
- children: PropTypes.Requireable<NonNullable<((...args: any[]) => any) | PropTypes.ReactNodeLike>>;
38
- /**
39
- * Функция, которая возвращает DOM-элемент, который нельзя пересекать.
40
- */
41
- getStop: PropTypes.Requireable<(...args: any[]) => any>;
42
- /**
43
- * Отступ от границы в пикселях
44
- */
45
- offset: PropTypes.Requireable<number>;
46
- side: PropTypes.Validator<string>;
47
- };
48
36
  static defaultProps: DefaultProps;
49
37
  private getProps;
50
38
  state: StickyState;
@@ -53,10 +41,12 @@ export declare class Sticky extends React.Component<StickyProps, StickyState> {
53
41
  private layoutSubscription;
54
42
  private reflowCounter;
55
43
  private setRootNode;
44
+ featureFlags: ReactUIFeatureFlags;
56
45
  componentDidMount(): void;
57
46
  componentWillUnmount(): void;
58
47
  componentDidUpdate(prevProps: StickyProps, prevState: StickyState): void;
59
48
  render(): React.JSX.Element;
49
+ private renderMain;
60
50
  private refWrapper;
61
51
  private refInner;
62
52
  /**
@@ -2,7 +2,6 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
3
3
  var _class, _Switcher;
4
4
  import React from 'react';
5
- import PropTypes from 'prop-types';
6
5
  import { isKeyArrowHorizontal, isKeyArrowLeft, isKeyEnter } from "../../../lib/events/keyboard/identifiers";
7
6
  import { getButtonCorners, Group } from "../../Group";
8
7
  import { Button } from "../../Button";
@@ -11,6 +10,7 @@ import { CommonWrapper } from "../../../internal/CommonWrapper";
11
10
  import { cx } from "../../../lib/theming/Emotion";
12
11
  import { rootNode } from "../../../lib/rootNode";
13
12
  import { isThemeGTE } from "../../../lib/theming/ThemeHelpers";
13
+ import { ReactUIFeatureFlagsContext } from "../../../lib/featureFlagsContext";
14
14
  import { styles } from "../Switcher.styles";
15
15
  import { getSwitcherTheme } from "../switcherTheme";
16
16
  import { mod } from "../helpers";
@@ -121,6 +121,7 @@ export var Switcher = rootNode(_class = (_Switcher = /*#__PURE__*/function (_Rea
121
121
  items = _this$props2.items,
122
122
  value = _this$props2.value,
123
123
  size = _this$props2.size,
124
+ width = _this$props2.width,
124
125
  disabled = _this$props2.disabled,
125
126
  role = _this$props2.role,
126
127
  renderItem = _this$props2.renderItem;
@@ -145,6 +146,9 @@ export var Switcher = rootNode(_class = (_Switcher = /*#__PURE__*/function (_Rea
145
146
  corners: getButtonCorners(i === 0, i === items.length - 1)
146
147
  };
147
148
  var buttonProps = _extends({}, commonButtonProps, customButtonProps);
149
+ if (!buttonProps.width && width) {
150
+ buttonProps.width = '100%';
151
+ }
148
152
  var renderDefault = function renderDefault() {
149
153
  return _this.renderDefaultItem(label, itemValue, buttonProps, ariaLabel);
150
154
  };
@@ -184,6 +188,7 @@ export var Switcher = rootNode(_class = (_Switcher = /*#__PURE__*/function (_Rea
184
188
  });
185
189
  };
186
190
  _proto.renderMain = function renderMain() {
191
+ var _cx, _cx2;
187
192
  var inputProps = {
188
193
  type: 'checkbox',
189
194
  onKeyDown: this.handleKey,
@@ -193,15 +198,24 @@ export var Switcher = rootNode(_class = (_Switcher = /*#__PURE__*/function (_Rea
193
198
  };
194
199
  var isThemeGTE_5_1 = isThemeGTE(this.theme, '5.1');
195
200
  var isTheme_5_0 = !isThemeGTE_5_1;
196
- var items = /*#__PURE__*/React.createElement(Group, null, this._renderItems());
201
+ var items = /*#__PURE__*/React.createElement(ReactUIFeatureFlagsContext.Provider, {
202
+ value: {
203
+ groupAddHintAndTooltipSupport: true
204
+ }
205
+ }, /*#__PURE__*/React.createElement(Group, {
206
+ width: '100%'
207
+ }, this._renderItems()));
197
208
  var captionClassName = cx(styles.caption(this.theme), this.getLabelSizeClassName());
198
- var wrapperClassName = cx(styles.wrap(), isThemeGTE_5_1 && this.props.error && styles.error5_1(this.theme));
199
- var errorClassName = cx(isTheme_5_0 && this.props.error && styles.error(this.theme));
209
+ var wrapperClassName = cx(styles.wrap(), (_cx = {}, _cx[styles.error5_1(this.theme)] = isThemeGTE_5_1 && this.props.error, _cx[styles.wrapCustomWidth()] = this.props.width !== undefined, _cx));
210
+ var errorClassName = cx((_cx2 = {}, _cx2[styles.error(this.theme)] = isTheme_5_0 && this.props.error, _cx2));
200
211
  return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
201
212
  rootNodeRef: this.setRootNode
202
213
  }, this.props), /*#__PURE__*/React.createElement("div", {
203
214
  "data-tid": SwitcherDataTids.root,
204
- className: styles.root()
215
+ className: styles.root(),
216
+ style: {
217
+ width: this.props.width
218
+ }
205
219
  }, this.props.caption ? /*#__PURE__*/React.createElement("div", {
206
220
  className: captionClassName
207
221
  }, this.props.caption) : null, /*#__PURE__*/React.createElement("div", {
@@ -213,15 +227,4 @@ export var Switcher = rootNode(_class = (_Switcher = /*#__PURE__*/function (_Rea
213
227
  return Switcher;
214
228
  }(React.Component), _Switcher.__KONTUR_REACT_UI__ = 'Switcher', _Switcher.displayName = 'Switcher', _Switcher.defaultProps = {
215
229
  role: 'switch'
216
- }, _Switcher.propTypes = {
217
- error: PropTypes.bool,
218
- disabled: PropTypes.bool,
219
- items: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.arrayOf(PropTypes.shape({
220
- label: PropTypes.string,
221
- value: PropTypes.string
222
- }))]).isRequired,
223
- caption: PropTypes.string,
224
- value: PropTypes.string,
225
- onValueChange: PropTypes.func,
226
- renderItem: PropTypes.func
227
230
  }, _Switcher)) || _class;
@@ -1 +1 @@
1
- {"version":3,"names":["React","PropTypes","isKeyArrowHorizontal","isKeyArrowLeft","isKeyEnter","getButtonCorners","Group","Button","ThemeContext","CommonWrapper","cx","rootNode","isThemeGTE","styles","getSwitcherTheme","mod","SwitcherDataTids","root","Switcher","_class","_Switcher","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","focusedIndex","selectItem","value","props","onValueChange","_extractPropsFromItem","item","label","_extractValuesFromItems","items","map","_this$_extractPropsFr","_focus","index","setState","handleKey","e","_this$_extractPropsFr2","buttonProps","disabled","preventDefault","move","left","selectedIndex","newFocusedIndex","_getNextFocusedIndex","_this$props","i","_this$_extractPropsFr3","_handleFocus","currentIndex","indexOf","_handleBlur","_renderItems","_this$props2","size","role","renderItem","_this$_extractPropsFr4","ariaLabel","itemValue","customButtonProps","isChecked","commonButtonProps","checked","visuallyFocused","onClick","disableFocus","corners","_extends","renderDefault","renderDefaultItem","createElement","key","getLabelSizeClassName","captionLarge","theme","captionMedium","captionSmall","_inheritsLoose","_proto","prototype","render","_this2","Consumer","Provider","renderMain","inputProps","type","onKeyDown","onFocus","onBlur","className","input","isThemeGTE_5_1","isTheme_5_0","captionClassName","caption","wrapperClassName","wrap","error","error5_1","errorClassName","rootNodeRef","setRootNode","Component","__KONTUR_REACT_UI__","displayName","defaultProps","propTypes","bool","oneOfType","arrayOf","string","shape","isRequired","func"],"sources":["Switcher.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isKeyArrowHorizontal, isKeyArrowLeft, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { getButtonCorners, Group } from '../Group';\nimport type { ButtonProps } from '../Button';\nimport { Button } from '../Button';\nimport type { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport type { SizeProp } from '../../lib/types/props';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\n\nimport { styles } from './Switcher.styles';\nimport { getSwitcherTheme } from './switcherTheme';\nimport { mod } from './helpers';\n\nexport type SwitcherItems = string | SwitcherItem;\n\nexport const SwitcherDataTids = {\n root: 'Switcher__root',\n} as const;\n\nexport interface SwitcherProps extends Pick<HTMLAttributes<unknown>, 'role'>, CommonProps {\n /** Задает список строк или список элементов типа `{ label: string, value: string, buttonProps?: Partial<ButtonProps> }`. */\n items: SwitcherItems[];\n\n /** Устанавливает значение свитчера. */\n value?: string;\n\n /** Задает функцию, которая вызывается при изменении значения свитчера (value). */\n onValueChange?: (value: string) => void;\n\n /** Задает подпись около свитчера. */\n caption?: string;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Задает размер контрола. */\n size?: SizeProp;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает функцию отрисовки элемента.\n * @param `label` -\n * @param `value` -\n * @param `buttonProps` -\n * @param `renderDefault` -\n * @param `ariaLabel` -\n */\n renderItem?: (\n label: string,\n value: string,\n buttonProps: ButtonProps,\n renderDefault: () => React.ReactNode,\n ariaLabel?: string,\n ) => React.ReactNode;\n}\n\ntype DefaultProps = Required<Pick<SwitcherProps, 'role'>>;\n\nexport interface SwitcherState {\n focusedIndex: Nullable<number>;\n}\n\ninterface SwitcherItem {\n value: string;\n label: string;\n 'aria-label'?: string;\n buttonProps?: Partial<ButtonProps>;\n}\n\n/**\n * Переключатель `Switcher` — это замена RadioGroup.\n *\n * Не используйте переключатель в качестве навигации, для этого лучше подходят Tabs.\n */\n@rootNode\nexport class Switcher extends React.Component<SwitcherProps, SwitcherState> {\n public static __KONTUR_REACT_UI__ = 'Switcher';\n public static displayName = 'Switcher';\n\n public static defaultProps: DefaultProps = {\n role: 'switch',\n };\n\n public static propTypes = {\n error: PropTypes.bool,\n disabled: PropTypes.bool,\n items: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string,\n }),\n ),\n ]).isRequired,\n caption: PropTypes.string,\n value: PropTypes.string,\n onValueChange: PropTypes.func,\n renderItem: PropTypes.func,\n };\n\n public state: SwitcherState = {\n focusedIndex: null,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getSwitcherTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const inputProps = {\n type: 'checkbox',\n onKeyDown: this.handleKey,\n onFocus: this._handleFocus,\n onBlur: this._handleBlur,\n className: styles.input(),\n };\n const isThemeGTE_5_1 = isThemeGTE(this.theme, '5.1');\n const isTheme_5_0 = !isThemeGTE_5_1;\n const items = <Group>{this._renderItems()}</Group>;\n\n const captionClassName = cx(styles.caption(this.theme), this.getLabelSizeClassName());\n const wrapperClassName = cx(styles.wrap(), isThemeGTE_5_1 && this.props.error && styles.error5_1(this.theme));\n const errorClassName = cx(isTheme_5_0 && this.props.error && styles.error(this.theme));\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={SwitcherDataTids.root} className={styles.root()}>\n {this.props.caption ? <div className={captionClassName}>{this.props.caption}</div> : null}\n <div className={wrapperClassName}>\n <input {...inputProps} />\n {isThemeGTE_5_1 ? items : <div className={errorClassName}>{items}</div>}\n </div>\n </div>\n </CommonWrapper>\n );\n }\n\n private selectItem = (value: string) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private _extractPropsFromItem = (item: string | SwitcherItem): SwitcherItem => {\n return typeof item === 'object' ? item : { label: item, value: item };\n };\n\n private _extractValuesFromItems = (): string[] => {\n return this.props.items.map((item) => {\n const { value } = this._extractPropsFromItem(item);\n return value;\n });\n };\n\n private _focus = (index: number) => {\n this.setState({ focusedIndex: index });\n };\n\n private handleKey = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const focusedIndex = this.state.focusedIndex;\n if (typeof focusedIndex !== 'number') {\n return;\n }\n\n if (isKeyEnter(e)) {\n if (this.props.onValueChange) {\n const { value, buttonProps } = this._extractPropsFromItem(this.props.items[focusedIndex]);\n if (!buttonProps?.disabled) {\n this.selectItem(value);\n }\n }\n return;\n }\n\n if (isKeyArrowHorizontal(e)) {\n e.preventDefault();\n this.move(isKeyArrowLeft(e));\n }\n };\n\n private move = (left: boolean) => {\n const selectedIndex = this.state.focusedIndex;\n\n if (typeof selectedIndex !== 'number') {\n return;\n }\n const newFocusedIndex = this._getNextFocusedIndex(left, selectedIndex);\n this._focus(newFocusedIndex);\n };\n\n private _getNextFocusedIndex = (left: boolean, focusedIndex: number): number => {\n const { items, disabled } = this.props;\n if (disabled) {\n return focusedIndex;\n }\n\n for (let i = 1; i < items.length; i++) {\n const index = mod(focusedIndex + (left ? -i : i), items.length);\n const { buttonProps } = this._extractPropsFromItem(items[index]);\n if (!buttonProps?.disabled) {\n return index;\n }\n }\n return focusedIndex;\n };\n\n private _handleFocus = () => {\n const { value } = this.props;\n\n const items = this._extractValuesFromItems();\n const currentIndex = [...items].indexOf(value as string);\n const index = currentIndex > -1 ? currentIndex : 0;\n\n this.setState({ focusedIndex: index });\n };\n\n private _handleBlur = () => {\n this.setState({ focusedIndex: null });\n };\n\n private _renderItems = () => {\n const { items, value, size, disabled, role, renderItem } = this.props;\n return items.map((item, i) => {\n const {\n 'aria-label': ariaLabel,\n label,\n value: itemValue,\n buttonProps: customButtonProps,\n } = this._extractPropsFromItem(item);\n\n const isChecked = value === itemValue;\n const commonButtonProps = {\n 'aria-checked': isChecked,\n role,\n checked: isChecked,\n visuallyFocused: this.state.focusedIndex === i,\n onClick: () => {\n this.selectItem(itemValue);\n },\n disableFocus: true,\n size,\n disabled,\n corners: getButtonCorners(i === 0, i === items.length - 1),\n };\n\n const buttonProps = {\n ...commonButtonProps,\n ...customButtonProps,\n };\n\n const renderDefault = () => this.renderDefaultItem(label, itemValue, buttonProps, ariaLabel);\n\n return renderItem ? renderItem(label, itemValue, buttonProps, renderDefault, ariaLabel) : renderDefault();\n });\n };\n\n private renderDefaultItem = (label: string, value: string, buttonProps: ButtonProps, ariaLabel?: string) => (\n <Button aria-label={ariaLabel} key={value} {...buttonProps}>\n {label}\n </Button>\n );\n\n private getLabelSizeClassName = (): string => {\n switch (this.props.size) {\n case 'large':\n return styles.captionLarge(this.theme);\n case 'medium':\n return styles.captionMedium(this.theme);\n case 'small':\n default:\n return styles.captionSmall(this.theme);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","isKeyArrowHorizontal","isKeyArrowLeft","isKeyEnter","getButtonCorners","Group","Button","ThemeContext","CommonWrapper","cx","rootNode","isThemeGTE","ReactUIFeatureFlagsContext","styles","getSwitcherTheme","mod","SwitcherDataTids","root","Switcher","_class","_Switcher","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","focusedIndex","selectItem","value","props","onValueChange","_extractPropsFromItem","item","label","_extractValuesFromItems","items","map","_this$_extractPropsFr","_focus","index","setState","handleKey","e","_this$_extractPropsFr2","buttonProps","disabled","preventDefault","move","left","selectedIndex","newFocusedIndex","_getNextFocusedIndex","_this$props","i","_this$_extractPropsFr3","_handleFocus","currentIndex","indexOf","_handleBlur","_renderItems","_this$props2","size","width","role","renderItem","_this$_extractPropsFr4","ariaLabel","itemValue","customButtonProps","isChecked","commonButtonProps","checked","visuallyFocused","onClick","disableFocus","corners","_extends","renderDefault","renderDefaultItem","createElement","key","getLabelSizeClassName","captionLarge","theme","captionMedium","captionSmall","_inheritsLoose","_proto","prototype","render","_this2","Consumer","Provider","renderMain","_cx","_cx2","inputProps","type","onKeyDown","onFocus","onBlur","className","input","isThemeGTE_5_1","isTheme_5_0","groupAddHintAndTooltipSupport","captionClassName","caption","wrapperClassName","wrap","error5_1","error","wrapCustomWidth","undefined","errorClassName","rootNodeRef","setRootNode","style","Component","__KONTUR_REACT_UI__","displayName","defaultProps"],"sources":["Switcher.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport { isKeyArrowHorizontal, isKeyArrowLeft, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { getButtonCorners, Group } from '../Group';\nimport type { ButtonProps } from '../Button';\nimport { Button } from '../Button';\nimport type { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport type { SizeProp } from '../../lib/types/props';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\nimport { ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\n\nimport { styles } from './Switcher.styles';\nimport { getSwitcherTheme } from './switcherTheme';\nimport { mod } from './helpers';\n\nexport type SwitcherItems = string | SwitcherItem;\n\nexport const SwitcherDataTids = {\n root: 'Switcher__root',\n} as const;\n\nexport interface SwitcherProps extends Pick<HTMLAttributes<unknown>, 'role'>, CommonProps {\n /** Задает список элементов в свитчере. Это массив строк или объектов типа `{ label: string, value: string, buttonProps?: Partial<ButtonProps> }` */\n items: SwitcherItems[];\n\n /** Устанавливает значение свитчера. */\n value?: string;\n\n /** Задает функцию, которая вызывается при изменении значения свитчера (value). */\n onValueChange?: (value: string) => void;\n\n /** Задает подпись около свитчера. */\n caption?: string;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Задает размер контрола. */\n size?: SizeProp;\n\n /** Задает ширину контрола. С этим пропом элементы внутри автоматически равномерно растянутся. */\n width?: React.CSSProperties['width'];\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает функцию отрисовки элемента. Параметр `renderDefault` - это встроенная дефолтная функция отрисовки элемента, которую можно вызывать в `renderItem`. */\n renderItem?: (\n label: string,\n value: string,\n buttonProps: ButtonProps,\n renderDefault: () => React.ReactNode,\n ariaLabel?: string,\n ) => React.ReactNode;\n}\n\ntype DefaultProps = Required<Pick<SwitcherProps, 'role'>>;\n\nexport interface SwitcherState {\n focusedIndex: Nullable<number>;\n}\n\ninterface SwitcherItem {\n value: string;\n label: string;\n 'aria-label'?: string;\n buttonProps?: Partial<ButtonProps>;\n}\n\n/**\n * Переключатель `Switcher` — это замена RadioGroup.\n *\n * Не используйте переключатель в качестве навигации, для этого лучше подходят Tabs.\n */\n@rootNode\nexport class Switcher extends React.Component<SwitcherProps, SwitcherState> {\n public static __KONTUR_REACT_UI__ = 'Switcher';\n public static displayName = 'Switcher';\n\n public static defaultProps: DefaultProps = {\n role: 'switch',\n };\n\n public state: SwitcherState = {\n focusedIndex: null,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getSwitcherTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const inputProps = {\n type: 'checkbox',\n onKeyDown: this.handleKey,\n onFocus: this._handleFocus,\n onBlur: this._handleBlur,\n className: styles.input(),\n };\n const isThemeGTE_5_1 = isThemeGTE(this.theme, '5.1');\n const isTheme_5_0 = !isThemeGTE_5_1;\n const items = (\n <ReactUIFeatureFlagsContext.Provider value={{ groupAddHintAndTooltipSupport: true }}>\n <Group width={'100%'}>{this._renderItems()}</Group>\n </ReactUIFeatureFlagsContext.Provider>\n );\n\n const captionClassName = cx(styles.caption(this.theme), this.getLabelSizeClassName());\n const wrapperClassName = cx(styles.wrap(), {\n [styles.error5_1(this.theme)]: isThemeGTE_5_1 && this.props.error,\n [styles.wrapCustomWidth()]: this.props.width !== undefined,\n });\n const errorClassName = cx({ [styles.error(this.theme)]: isTheme_5_0 && this.props.error });\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={SwitcherDataTids.root} className={styles.root()} style={{ width: this.props.width }}>\n {this.props.caption ? <div className={captionClassName}>{this.props.caption}</div> : null}\n <div className={wrapperClassName}>\n <input {...inputProps} />\n {isThemeGTE_5_1 ? items : <div className={errorClassName}>{items}</div>}\n </div>\n </div>\n </CommonWrapper>\n );\n }\n\n private selectItem = (value: string) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private _extractPropsFromItem = (item: string | SwitcherItem): SwitcherItem => {\n return typeof item === 'object' ? item : { label: item, value: item };\n };\n\n private _extractValuesFromItems = (): string[] => {\n return this.props.items.map((item) => {\n const { value } = this._extractPropsFromItem(item);\n return value;\n });\n };\n\n private _focus = (index: number) => {\n this.setState({ focusedIndex: index });\n };\n\n private handleKey = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const focusedIndex = this.state.focusedIndex;\n if (typeof focusedIndex !== 'number') {\n return;\n }\n\n if (isKeyEnter(e)) {\n if (this.props.onValueChange) {\n const { value, buttonProps } = this._extractPropsFromItem(this.props.items[focusedIndex]);\n if (!buttonProps?.disabled) {\n this.selectItem(value);\n }\n }\n return;\n }\n\n if (isKeyArrowHorizontal(e)) {\n e.preventDefault();\n this.move(isKeyArrowLeft(e));\n }\n };\n\n private move = (left: boolean) => {\n const selectedIndex = this.state.focusedIndex;\n\n if (typeof selectedIndex !== 'number') {\n return;\n }\n const newFocusedIndex = this._getNextFocusedIndex(left, selectedIndex);\n this._focus(newFocusedIndex);\n };\n\n private _getNextFocusedIndex = (left: boolean, focusedIndex: number): number => {\n const { items, disabled } = this.props;\n if (disabled) {\n return focusedIndex;\n }\n\n for (let i = 1; i < items.length; i++) {\n const index = mod(focusedIndex + (left ? -i : i), items.length);\n const { buttonProps } = this._extractPropsFromItem(items[index]);\n if (!buttonProps?.disabled) {\n return index;\n }\n }\n return focusedIndex;\n };\n\n private _handleFocus = () => {\n const { value } = this.props;\n\n const items = this._extractValuesFromItems();\n const currentIndex = [...items].indexOf(value as string);\n const index = currentIndex > -1 ? currentIndex : 0;\n\n this.setState({ focusedIndex: index });\n };\n\n private _handleBlur = () => {\n this.setState({ focusedIndex: null });\n };\n\n private _renderItems = () => {\n const { items, value, size, width, disabled, role, renderItem } = this.props;\n\n return items.map((item, i) => {\n const {\n 'aria-label': ariaLabel,\n label,\n value: itemValue,\n buttonProps: customButtonProps,\n } = this._extractPropsFromItem(item);\n\n const isChecked = value === itemValue;\n const commonButtonProps = {\n 'aria-checked': isChecked,\n role,\n checked: isChecked,\n visuallyFocused: this.state.focusedIndex === i,\n onClick: () => {\n this.selectItem(itemValue);\n },\n disableFocus: true,\n size,\n disabled,\n corners: getButtonCorners(i === 0, i === items.length - 1),\n };\n\n const buttonProps = {\n ...commonButtonProps,\n ...customButtonProps,\n };\n\n if (!buttonProps.width && width) {\n buttonProps.width = '100%';\n }\n\n const renderDefault = () => this.renderDefaultItem(label, itemValue, buttonProps, ariaLabel);\n return renderItem ? renderItem(label, itemValue, buttonProps, renderDefault, ariaLabel) : renderDefault();\n });\n };\n\n private renderDefaultItem = (label: string, value: string, buttonProps: ButtonProps, ariaLabel?: string) => (\n <Button aria-label={ariaLabel} key={value} {...buttonProps}>\n {label}\n </Button>\n );\n\n private getLabelSizeClassName = (): string => {\n switch (this.props.size) {\n case 'large':\n return styles.captionLarge(this.theme);\n case 'medium':\n return styles.captionMedium(this.theme);\n case 'small':\n default:\n return styles.captionSmall(this.theme);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,5 @@
1
1
  import type { HTMLAttributes } from 'react';
2
2
  import React from 'react';
3
- import PropTypes from 'prop-types';
4
3
  import type { ButtonProps } from '../Button';
5
4
  import type { Nullable } from '../../typings/utility-types';
6
5
  import type { CommonProps } from '../../internal/CommonWrapper';
@@ -10,7 +9,7 @@ export declare const SwitcherDataTids: {
10
9
  readonly root: "Switcher__root";
11
10
  };
12
11
  export interface SwitcherProps extends Pick<HTMLAttributes<unknown>, 'role'>, CommonProps {
13
- /** Задает список строк или список элементов типа `{ label: string, value: string, buttonProps?: Partial<ButtonProps> }`. */
12
+ /** Задает список элементов в свитчере. Это массив строк или объектов типа `{ label: string, value: string, buttonProps?: Partial<ButtonProps> }` */
14
13
  items: SwitcherItems[];
15
14
  /** Устанавливает значение свитчера. */
16
15
  value?: string;
@@ -22,15 +21,11 @@ export interface SwitcherProps extends Pick<HTMLAttributes<unknown>, 'role'>, Co
22
21
  error?: boolean;
23
22
  /** Задает размер контрола. */
24
23
  size?: SizeProp;
24
+ /** Задает ширину контрола. С этим пропом элементы внутри автоматически равномерно растянутся. */
25
+ width?: React.CSSProperties['width'];
25
26
  /** Делает компонент недоступным. */
26
27
  disabled?: boolean;
27
- /** Задает функцию отрисовки элемента.
28
- * @param `label` -
29
- * @param `value` -
30
- * @param `buttonProps` -
31
- * @param `renderDefault` -
32
- * @param `ariaLabel` -
33
- */
28
+ /** Задает функцию отрисовки элемента. Параметр `renderDefault` - это встроенная дефолтная функция отрисовки элемента, которую можно вызывать в `renderItem`. */
34
29
  renderItem?: (label: string, value: string, buttonProps: ButtonProps, renderDefault: () => React.ReactNode, ariaLabel?: string) => React.ReactNode;
35
30
  }
36
31
  type DefaultProps = Required<Pick<SwitcherProps, 'role'>>;
@@ -52,18 +47,6 @@ export declare class Switcher extends React.Component<SwitcherProps, SwitcherSta
52
47
  static __KONTUR_REACT_UI__: string;
53
48
  static displayName: string;
54
49
  static defaultProps: DefaultProps;
55
- static propTypes: {
56
- error: PropTypes.Requireable<boolean>;
57
- disabled: PropTypes.Requireable<boolean>;
58
- items: PropTypes.Validator<NonNullable<NonNullable<(string | null | undefined)[] | (PropTypes.InferProps<{
59
- label: PropTypes.Requireable<string>;
60
- value: PropTypes.Requireable<string>;
61
- }> | null | undefined)[] | null | undefined>>>;
62
- caption: PropTypes.Requireable<string>;
63
- value: PropTypes.Requireable<string>;
64
- onValueChange: PropTypes.Requireable<(...args: any[]) => any>;
65
- renderItem: PropTypes.Requireable<(...args: any[]) => any>;
66
- };
67
50
  state: SwitcherState;
68
51
  private theme;
69
52
  private setRootNode;
@@ -1,34 +1,37 @@
1
1
  import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
2
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
2
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
3
3
  import { css, memoizeStyle } from "../../../lib/theming/Emotion";
4
4
  export var styles = memoizeStyle({
5
5
  root: function root() {
6
- return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n line-height: normal;\n "])));
6
+ return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n line-height: normal;\n "])));
7
7
  },
8
8
  wrap: function wrap() {
9
9
  return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n display: inline-block;\n vertical-align: middle;\n "])));
10
10
  },
11
+ wrapCustomWidth: function wrapCustomWidth() {
12
+ return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n flex-grow: 1;\n "])));
13
+ },
11
14
  input: function input() {
12
- return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n "])));
15
+ return css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n "])));
13
16
  },
14
17
  caption: function caption(t) {
15
- return css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["\n color: ", ";\n vertical-align: middle;\n display: inline-block;\n "])), t.switcherTextColor);
18
+ return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n color: ", ";\n vertical-align: middle;\n display: inline-block;\n "])), t.switcherTextColor);
16
19
  },
17
20
  captionSmall: function captionSmall(t) {
18
- return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n margin-right: ", ";\n font-size: ", ";\n line-height: ", ";\n "])), t.switcherCaptionGapSmall, t.switcherCaptionFontSizeSmall, t.switcherCaptionLineHeightSmall);
21
+ return css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n margin-right: ", ";\n font-size: ", ";\n line-height: ", ";\n "])), t.switcherCaptionGapSmall, t.switcherCaptionFontSizeSmall, t.switcherCaptionLineHeightSmall);
19
22
  },
20
23
  captionMedium: function captionMedium(t) {
21
- return css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n margin-right: ", ";\n font-size: ", ";\n line-height: ", ";\n "])), t.switcherCaptionGapMedium, t.switcherCaptionFontSizeMedium, t.switcherCaptionLineHeightMedium);
24
+ return css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n margin-right: ", ";\n font-size: ", ";\n line-height: ", ";\n "])), t.switcherCaptionGapMedium, t.switcherCaptionFontSizeMedium, t.switcherCaptionLineHeightMedium);
22
25
  },
23
26
  captionLarge: function captionLarge(t) {
24
- return css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n margin-right: ", ";\n font-size: ", ";\n line-height: ", ";\n "])), t.switcherCaptionGapLarge, t.switcherCaptionFontSizeLarge, t.switcherCaptionLineHeightLarge);
27
+ return css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteralLoose(["\n margin-right: ", ";\n font-size: ", ";\n line-height: ", ";\n "])), t.switcherCaptionGapLarge, t.switcherCaptionFontSizeLarge, t.switcherCaptionLineHeightLarge);
25
28
  },
26
29
  error: function error(t) {
27
30
  var insideWidth = parseInt(t.btnBorderWidth);
28
31
  var outsideWidth = parseInt(t.switcherOutlineWidth) - insideWidth + "px";
29
- return css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteralLoose(["\n border-radius: ", ";\n box-shadow:\n inset 0 0 0 ", "px ", ",\n 0 0 0 ", " ", ";\n "])), t.switcherBorderRadius, insideWidth, t.borderColorError, outsideWidth, t.borderColorError);
32
+ return css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteralLoose(["\n border-radius: ", ";\n box-shadow:\n inset 0 0 0 ", "px ", ",\n 0 0 0 ", " ", ";\n "])), t.switcherBorderRadius, insideWidth, t.borderColorError, outsideWidth, t.borderColorError);
30
33
  },
31
34
  error5_1: function error5_1(t) {
32
- return css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteralLoose(["\n position: relative;\n\n &:before {\n content: '';\n position: absolute;\n pointer-events: none;\n top: 1px;\n right: 1px;\n bottom: 1px;\n left: 1px;\n z-index: 1;\n border-radius: ", ";\n box-shadow: 0 0 0 ", " ", ";\n }\n "])), t.switcherBorderRadius, t.switcherOutlineWidth, t.borderColorError);
35
+ return css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteralLoose(["\n position: relative;\n\n &:before {\n content: '';\n position: absolute;\n pointer-events: none;\n top: 1px;\n right: 1px;\n bottom: 1px;\n left: 1px;\n z-index: 1;\n border-radius: ", ";\n box-shadow: 0 0 0 ", " ", ";\n }\n "])), t.switcherBorderRadius, t.switcherOutlineWidth, t.borderColorError);
33
36
  }
34
37
  });