@vkontakte/vkui 4.25.0 → 4.27.0

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 (541) hide show
  1. package/.cache/.eslintcache +1 -1
  2. package/.cache/.stylelintcache +1 -1
  3. package/.cache/.tsbuildinfo +539 -382
  4. package/.cache/ts/src/components/ActionSheetItem/ActionSheetItem.d.ts +1 -2
  5. package/.cache/ts/src/components/AdaptivityProvider/AdaptivityProvider.d.ts +1 -1
  6. package/.cache/ts/src/components/Alert/Alert.d.ts +4 -4
  7. package/.cache/ts/src/components/AppRoot/AppRoot.d.ts +1 -2
  8. package/.cache/ts/src/components/AppearanceProvider/AppearanceProvider.d.ts +1 -0
  9. package/.cache/ts/src/components/Button/Button.d.ts +1 -1
  10. package/.cache/ts/src/components/Card/Card.d.ts +1 -2
  11. package/.cache/ts/src/components/CardGrid/CardGrid.d.ts +1 -1
  12. package/.cache/ts/src/components/CardScroll/CardScroll.d.ts +9 -5
  13. package/.cache/ts/src/components/Checkbox/Checkbox.d.ts +1 -1
  14. package/.cache/ts/src/components/Chip/Chip.d.ts +2 -2
  15. package/.cache/ts/src/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  16. package/.cache/ts/src/components/ConfigProvider/ConfigProvider.d.ts +1 -1
  17. package/.cache/ts/src/components/ConfigProvider/ConfigProviderContext.d.ts +6 -6
  18. package/.cache/ts/src/components/CustomSelect/CustomSelect.d.ts +1 -1
  19. package/.cache/ts/src/components/DatePicker/DatePicker.d.ts +1 -1
  20. package/.cache/ts/src/components/Epic/Epic.d.ts +4 -4
  21. package/.cache/ts/src/components/Gallery/Gallery.d.ts +1 -1
  22. package/.cache/ts/src/components/Gradient/Gradient.d.ts +1 -2
  23. package/.cache/ts/src/components/Group/Group.d.ts +1 -1
  24. package/.cache/ts/src/components/HorizontalScroll/HorizontalScroll.d.ts +2 -2
  25. package/.cache/ts/src/components/IconButton/IconButton.d.ts +1 -1
  26. package/.cache/ts/src/components/Input/Input.d.ts +1 -1
  27. package/.cache/ts/src/components/ModalCard/ModalCard.d.ts +3 -3
  28. package/.cache/ts/src/components/ModalCardBase/ModalCardBase.d.ts +1 -1
  29. package/.cache/ts/src/components/ModalPage/ModalPage.d.ts +3 -3
  30. package/.cache/ts/src/components/ModalRoot/ModalRootAdaptive.d.ts +3 -3
  31. package/.cache/ts/src/components/ModalRoot/withModalRootContext.d.ts +1 -1
  32. package/.cache/ts/src/components/NativeSelect/NativeSelect.d.ts +3 -3
  33. package/.cache/ts/src/components/Panel/Panel.d.ts +3 -3
  34. package/.cache/ts/src/components/PanelHeader/PanelHeader.d.ts +1 -1
  35. package/.cache/ts/src/components/PanelHeaderBack/PanelHeaderBack.d.ts +1 -1
  36. package/.cache/ts/src/components/PopoutRoot/PopoutRoot.d.ts +4 -4
  37. package/.cache/ts/src/components/PullToRefresh/PullToRefresh.d.ts +1 -1
  38. package/.cache/ts/src/components/Radio/Radio.d.ts +1 -1
  39. package/.cache/ts/src/components/RangeSlider/UniversalSlider.d.ts +1 -1
  40. package/.cache/ts/src/components/RichCell/RichCell.d.ts +1 -1
  41. package/.cache/ts/src/components/Search/Search.d.ts +1 -1
  42. package/.cache/ts/src/components/SegmentedControl/SegmentedControl.d.ts +17 -0
  43. package/.cache/ts/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +4 -0
  44. package/.cache/ts/src/components/Select/Select.d.ts +3 -3
  45. package/.cache/ts/src/components/SelectMimicry/SelectMimicry.d.ts +1 -1
  46. package/.cache/ts/src/components/SimpleCell/SimpleCell.d.ts +1 -1
  47. package/.cache/ts/src/components/SliderSwitch/SliderSwitch.d.ts +6 -2
  48. package/.cache/ts/src/components/SliderSwitch/SliderSwitchButton.d.ts +4 -2
  49. package/.cache/ts/src/components/Snackbar/Snackbar.d.ts +3 -3
  50. package/.cache/ts/src/components/Switch/Switch.d.ts +3 -2
  51. package/.cache/ts/src/components/Tabs/Tabs.d.ts +1 -1
  52. package/.cache/ts/src/components/Tappable/Tappable.d.ts +1 -1
  53. package/.cache/ts/src/components/Textarea/Textarea.d.ts +1 -1
  54. package/.cache/ts/src/components/Typography/Title/Title.d.ts +4 -1
  55. package/.cache/ts/src/components/View/View.d.ts +1 -1
  56. package/.cache/ts/src/components/View/ViewInfinite.d.ts +1 -1
  57. package/.cache/ts/src/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +12 -0
  58. package/.cache/ts/src/hooks/usePlatform.d.ts +1 -1
  59. package/.cache/ts/src/index.d.ts +10 -8
  60. package/.cache/ts/src/lib/platform.d.ts +1 -1
  61. package/.cache/ts/src/lib/utils.d.ts +1 -0
  62. package/.cache/ts/src/tokenized/index.d.ts +8 -0
  63. package/VKUI_TOKENS_MIGRATION_GUIDE.md +77 -0
  64. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.d.ts +1 -2
  65. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +19 -17
  66. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  67. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.d.ts +1 -1
  68. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js +4 -6
  69. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  70. package/dist/cjs/components/Alert/Alert.d.ts +4 -4
  71. package/dist/cjs/components/Alert/Alert.js +14 -17
  72. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  73. package/dist/cjs/components/AppRoot/AppRoot.d.ts +1 -2
  74. package/dist/cjs/components/AppRoot/AppRoot.js +2 -5
  75. package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
  76. package/dist/cjs/components/AppearanceProvider/AppearanceProvider.d.ts +1 -0
  77. package/dist/cjs/components/AppearanceProvider/AppearanceProvider.js +29 -2
  78. package/dist/cjs/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
  79. package/dist/cjs/components/Banner/Banner.js +1 -1
  80. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  81. package/dist/cjs/components/Button/Button.d.ts +1 -1
  82. package/dist/cjs/components/Button/Button.js +10 -4
  83. package/dist/cjs/components/Button/Button.js.map +1 -1
  84. package/dist/cjs/components/Card/Card.d.ts +1 -2
  85. package/dist/cjs/components/Card/Card.js +4 -8
  86. package/dist/cjs/components/Card/Card.js.map +1 -1
  87. package/dist/cjs/components/CardGrid/CardGrid.d.ts +1 -1
  88. package/dist/cjs/components/CardScroll/CardScroll.d.ts +9 -5
  89. package/dist/cjs/components/CardScroll/CardScroll.js +20 -18
  90. package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
  91. package/dist/cjs/components/Checkbox/Checkbox.d.ts +1 -1
  92. package/dist/cjs/components/Chip/Chip.d.ts +2 -2
  93. package/dist/cjs/components/Chip/Chip.js +3 -5
  94. package/dist/cjs/components/Chip/Chip.js.map +1 -1
  95. package/dist/cjs/components/ChipsInput/ChipsInput.js +2 -2
  96. package/dist/cjs/components/ChipsInput/ChipsInput.js.map +1 -1
  97. package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  98. package/dist/cjs/components/ConfigProvider/ConfigProvider.d.ts +1 -1
  99. package/dist/cjs/components/ConfigProvider/ConfigProvider.js +15 -6
  100. package/dist/cjs/components/ConfigProvider/ConfigProvider.js.map +1 -1
  101. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.d.ts +6 -6
  102. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  103. package/dist/cjs/components/ContentCard/ContentCard.js +12 -4
  104. package/dist/cjs/components/ContentCard/ContentCard.js.map +1 -1
  105. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +1 -1
  106. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js +1 -1
  107. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  108. package/dist/cjs/components/DatePicker/DatePicker.d.ts +1 -1
  109. package/dist/cjs/components/Epic/Epic.d.ts +4 -4
  110. package/dist/cjs/components/Epic/Epic.js.map +1 -1
  111. package/dist/cjs/components/Gallery/Gallery.d.ts +1 -1
  112. package/dist/cjs/components/Gradient/Gradient.d.ts +1 -2
  113. package/dist/cjs/components/Gradient/Gradient.js +6 -10
  114. package/dist/cjs/components/Gradient/Gradient.js.map +1 -1
  115. package/dist/cjs/components/Group/Group.d.ts +1 -1
  116. package/dist/cjs/components/Header/Header.js +1 -1
  117. package/dist/cjs/components/Header/Header.js.map +1 -1
  118. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.d.ts +2 -2
  119. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +7 -3
  120. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  121. package/dist/cjs/components/IconButton/IconButton.d.ts +1 -1
  122. package/dist/cjs/components/IconButton/IconButton.js +8 -0
  123. package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
  124. package/dist/cjs/components/Input/Input.d.ts +1 -1
  125. package/dist/cjs/components/ModalCard/ModalCard.d.ts +3 -3
  126. package/dist/cjs/components/ModalCard/ModalCard.js.map +1 -1
  127. package/dist/cjs/components/ModalCardBase/ModalCardBase.d.ts +1 -1
  128. package/dist/cjs/components/ModalCardBase/ModalCardBase.js +1 -1
  129. package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
  130. package/dist/cjs/components/ModalPage/ModalPage.d.ts +3 -3
  131. package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
  132. package/dist/cjs/components/ModalRoot/ModalRootAdaptive.d.ts +3 -3
  133. package/dist/cjs/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  134. package/dist/cjs/components/ModalRoot/withModalRootContext.d.ts +1 -1
  135. package/dist/cjs/components/ModalRoot/withModalRootContext.js.map +1 -1
  136. package/dist/cjs/components/NativeSelect/NativeSelect.d.ts +3 -3
  137. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  138. package/dist/cjs/components/Panel/Panel.d.ts +3 -3
  139. package/dist/cjs/components/Panel/Panel.js.map +1 -1
  140. package/dist/cjs/components/PanelHeader/PanelHeader.d.ts +1 -1
  141. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.d.ts +1 -1
  142. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js +15 -6
  143. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  144. package/dist/cjs/components/Placeholder/Placeholder.js +1 -1
  145. package/dist/cjs/components/Placeholder/Placeholder.js.map +1 -1
  146. package/dist/cjs/components/PopoutRoot/PopoutRoot.d.ts +4 -4
  147. package/dist/cjs/components/PopoutRoot/PopoutRoot.js.map +1 -1
  148. package/dist/cjs/components/PromoBanner/PromoBanner.js +7 -0
  149. package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
  150. package/dist/cjs/components/PullToRefresh/PullToRefresh.d.ts +1 -1
  151. package/dist/cjs/components/Radio/Radio.d.ts +1 -1
  152. package/dist/cjs/components/RangeSlider/UniversalSlider.d.ts +1 -1
  153. package/dist/cjs/components/RichCell/RichCell.d.ts +1 -1
  154. package/dist/cjs/components/Root/Root.js +5 -0
  155. package/dist/cjs/components/Root/Root.js.map +1 -1
  156. package/dist/cjs/components/Search/Search.d.ts +1 -1
  157. package/dist/cjs/components/Search/Search.js +47 -23
  158. package/dist/cjs/components/Search/Search.js.map +1 -1
  159. package/dist/cjs/components/SegmentedControl/SegmentedControl.d.ts +17 -0
  160. package/dist/cjs/components/SegmentedControl/SegmentedControl.js +116 -0
  161. package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -0
  162. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +4 -0
  163. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +61 -0
  164. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -0
  165. package/dist/cjs/components/Select/Select.d.ts +3 -3
  166. package/dist/cjs/components/Select/Select.js.map +1 -1
  167. package/dist/cjs/components/SelectMimicry/SelectMimicry.d.ts +1 -1
  168. package/dist/cjs/components/SimpleCell/SimpleCell.d.ts +1 -1
  169. package/dist/cjs/components/SimpleCell/SimpleCell.js +21 -8
  170. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  171. package/dist/cjs/components/SliderSwitch/SliderSwitch.d.ts +6 -2
  172. package/dist/cjs/components/SliderSwitch/SliderSwitch.js +18 -6
  173. package/dist/cjs/components/SliderSwitch/SliderSwitch.js.map +1 -1
  174. package/dist/cjs/components/SliderSwitch/SliderSwitchButton.d.ts +4 -2
  175. package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js +6 -5
  176. package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  177. package/dist/cjs/components/Snackbar/Snackbar.d.ts +3 -3
  178. package/dist/cjs/components/Snackbar/Snackbar.js.map +1 -1
  179. package/dist/cjs/components/Switch/Switch.d.ts +3 -2
  180. package/dist/cjs/components/Switch/Switch.js +3 -6
  181. package/dist/cjs/components/Switch/Switch.js.map +1 -1
  182. package/dist/cjs/components/TabbarItem/TabbarItem.js +8 -1
  183. package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
  184. package/dist/cjs/components/Tabs/Tabs.d.ts +1 -1
  185. package/dist/cjs/components/Tappable/Tappable.d.ts +1 -1
  186. package/dist/cjs/components/Textarea/Textarea.d.ts +1 -1
  187. package/dist/cjs/components/Typography/Title/Title.d.ts +4 -1
  188. package/dist/cjs/components/Typography/Title/Title.js +9 -19
  189. package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
  190. package/dist/cjs/components/View/View.d.ts +1 -1
  191. package/dist/cjs/components/View/View.js +29 -18
  192. package/dist/cjs/components/View/View.js.map +1 -1
  193. package/dist/cjs/components/View/ViewInfinite.d.ts +1 -1
  194. package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +12 -0
  195. package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js +37 -0
  196. package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -0
  197. package/dist/cjs/hooks/usePlatform.d.ts +1 -1
  198. package/dist/cjs/hooks/usePlatform.js.map +1 -1
  199. package/dist/cjs/index.d.ts +10 -8
  200. package/dist/cjs/index.js +24 -16
  201. package/dist/cjs/index.js.map +1 -1
  202. package/dist/cjs/lib/platform.d.ts +1 -1
  203. package/dist/cjs/lib/platform.js.map +1 -1
  204. package/dist/cjs/lib/utils.d.ts +1 -0
  205. package/dist/cjs/lib/utils.js +7 -0
  206. package/dist/cjs/lib/utils.js.map +1 -1
  207. package/dist/cjs/tokenized/index.d.ts +8 -0
  208. package/dist/cjs/tokenized/index.js +40 -0
  209. package/dist/cjs/tokenized/index.js.map +1 -0
  210. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +1 -2
  211. package/dist/components/ActionSheetItem/ActionSheetItem.js +16 -14
  212. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  213. package/dist/components/AdaptivityProvider/AdaptivityProvider.d.ts +1 -1
  214. package/dist/components/AdaptivityProvider/AdaptivityProvider.js +2 -3
  215. package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  216. package/dist/components/Alert/Alert.d.ts +4 -4
  217. package/dist/components/Alert/Alert.js +12 -13
  218. package/dist/components/Alert/Alert.js.map +1 -1
  219. package/dist/components/AppRoot/AppRoot.d.ts +1 -2
  220. package/dist/components/AppRoot/AppRoot.js +1 -3
  221. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  222. package/dist/components/AppearanceProvider/AppearanceProvider.d.ts +1 -0
  223. package/dist/components/AppearanceProvider/AppearanceProvider.js +25 -2
  224. package/dist/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
  225. package/dist/components/Banner/Banner.js +1 -1
  226. package/dist/components/Banner/Banner.js.map +1 -1
  227. package/dist/components/Button/Button.d.ts +1 -1
  228. package/dist/components/Button/Button.js +10 -4
  229. package/dist/components/Button/Button.js.map +1 -1
  230. package/dist/components/Card/Card.d.ts +1 -2
  231. package/dist/components/Card/Card.js +3 -9
  232. package/dist/components/Card/Card.js.map +1 -1
  233. package/dist/components/CardGrid/CardGrid.d.ts +1 -1
  234. package/dist/components/CardScroll/CardScroll.d.ts +9 -5
  235. package/dist/components/CardScroll/CardScroll.js +16 -16
  236. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  237. package/dist/components/Checkbox/Checkbox.d.ts +1 -1
  238. package/dist/components/Chip/Chip.d.ts +2 -2
  239. package/dist/components/Chip/Chip.js +2 -6
  240. package/dist/components/Chip/Chip.js.map +1 -1
  241. package/dist/components/ChipsInput/ChipsInput.js +1 -1
  242. package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
  243. package/dist/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  244. package/dist/components/ConfigProvider/ConfigProvider.d.ts +1 -1
  245. package/dist/components/ConfigProvider/ConfigProvider.js +16 -7
  246. package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
  247. package/dist/components/ConfigProvider/ConfigProviderContext.d.ts +6 -6
  248. package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  249. package/dist/components/ContentCard/ContentCard.js +10 -3
  250. package/dist/components/ContentCard/ContentCard.js.map +1 -1
  251. package/dist/components/CustomSelect/CustomSelect.d.ts +1 -1
  252. package/dist/components/CustomSelectOption/CustomSelectOption.js +1 -1
  253. package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  254. package/dist/components/DatePicker/DatePicker.d.ts +1 -1
  255. package/dist/components/Epic/Epic.d.ts +4 -4
  256. package/dist/components/Epic/Epic.js.map +1 -1
  257. package/dist/components/Gallery/Gallery.d.ts +1 -1
  258. package/dist/components/Gradient/Gradient.d.ts +1 -2
  259. package/dist/components/Gradient/Gradient.js +5 -11
  260. package/dist/components/Gradient/Gradient.js.map +1 -1
  261. package/dist/components/Group/Group.d.ts +1 -1
  262. package/dist/components/Header/Header.js +1 -1
  263. package/dist/components/Header/Header.js.map +1 -1
  264. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +2 -2
  265. package/dist/components/HorizontalScroll/HorizontalScroll.js +5 -3
  266. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  267. package/dist/components/IconButton/IconButton.d.ts +1 -1
  268. package/dist/components/IconButton/IconButton.js +7 -0
  269. package/dist/components/IconButton/IconButton.js.map +1 -1
  270. package/dist/components/Input/Input.d.ts +1 -1
  271. package/dist/components/ModalCard/ModalCard.d.ts +3 -3
  272. package/dist/components/ModalCard/ModalCard.js.map +1 -1
  273. package/dist/components/ModalCardBase/ModalCardBase.d.ts +1 -1
  274. package/dist/components/ModalCardBase/ModalCardBase.js +2 -2
  275. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  276. package/dist/components/ModalPage/ModalPage.d.ts +3 -3
  277. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  278. package/dist/components/ModalRoot/ModalRootAdaptive.d.ts +3 -3
  279. package/dist/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  280. package/dist/components/ModalRoot/withModalRootContext.d.ts +1 -1
  281. package/dist/components/ModalRoot/withModalRootContext.js.map +1 -1
  282. package/dist/components/NativeSelect/NativeSelect.d.ts +3 -3
  283. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  284. package/dist/components/Panel/Panel.d.ts +3 -3
  285. package/dist/components/Panel/Panel.js.map +1 -1
  286. package/dist/components/PanelHeader/PanelHeader.d.ts +1 -1
  287. package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts +1 -1
  288. package/dist/components/PanelHeaderButton/PanelHeaderButton.js +14 -7
  289. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  290. package/dist/components/Placeholder/Placeholder.js +1 -1
  291. package/dist/components/Placeholder/Placeholder.js.map +1 -1
  292. package/dist/components/PopoutRoot/PopoutRoot.d.ts +4 -4
  293. package/dist/components/PopoutRoot/PopoutRoot.js.map +1 -1
  294. package/dist/components/PromoBanner/PromoBanner.js +6 -0
  295. package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
  296. package/dist/components/PullToRefresh/PullToRefresh.d.ts +1 -1
  297. package/dist/components/Radio/Radio.d.ts +1 -1
  298. package/dist/components/RangeSlider/UniversalSlider.d.ts +1 -1
  299. package/dist/components/RichCell/RichCell.d.ts +1 -1
  300. package/dist/components/Root/Root.js +5 -0
  301. package/dist/components/Root/Root.js.map +1 -1
  302. package/dist/components/Search/Search.d.ts +1 -1
  303. package/dist/components/Search/Search.js +45 -22
  304. package/dist/components/Search/Search.js.map +1 -1
  305. package/dist/components/SegmentedControl/SegmentedControl.d.ts +17 -0
  306. package/dist/components/SegmentedControl/SegmentedControl.js +94 -0
  307. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -0
  308. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +4 -0
  309. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +40 -0
  310. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -0
  311. package/dist/components/Select/Select.d.ts +3 -3
  312. package/dist/components/Select/Select.js.map +1 -1
  313. package/dist/components/SelectMimicry/SelectMimicry.d.ts +1 -1
  314. package/dist/components/SimpleCell/SimpleCell.d.ts +1 -1
  315. package/dist/components/SimpleCell/SimpleCell.js +21 -9
  316. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  317. package/dist/components/SliderSwitch/SliderSwitch.d.ts +6 -2
  318. package/dist/components/SliderSwitch/SliderSwitch.js +14 -3
  319. package/dist/components/SliderSwitch/SliderSwitch.js.map +1 -1
  320. package/dist/components/SliderSwitch/SliderSwitchButton.d.ts +4 -2
  321. package/dist/components/SliderSwitch/SliderSwitchButton.js +5 -5
  322. package/dist/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  323. package/dist/components/Snackbar/Snackbar.d.ts +3 -3
  324. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  325. package/dist/components/Switch/Switch.d.ts +3 -2
  326. package/dist/components/Switch/Switch.js +3 -6
  327. package/dist/components/Switch/Switch.js.map +1 -1
  328. package/dist/components/TabbarItem/TabbarItem.js +7 -1
  329. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  330. package/dist/components/Tabs/Tabs.d.ts +1 -1
  331. package/dist/components/Tappable/Tappable.d.ts +1 -1
  332. package/dist/components/Textarea/Textarea.d.ts +1 -1
  333. package/dist/components/Typography/Title/Title.d.ts +4 -1
  334. package/dist/components/Typography/Title/Title.js +7 -16
  335. package/dist/components/Typography/Title/Title.js.map +1 -1
  336. package/dist/components/View/View.d.ts +1 -1
  337. package/dist/components/View/View.js +29 -18
  338. package/dist/components/View/View.js.map +1 -1
  339. package/dist/components/View/ViewInfinite.d.ts +1 -1
  340. package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +12 -0
  341. package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js +23 -0
  342. package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -0
  343. package/dist/components.css +15 -12
  344. package/dist/components.css.map +1 -1
  345. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +16 -14
  346. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  347. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +2 -3
  348. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  349. package/dist/cssm/components/Alert/Alert.js +12 -13
  350. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  351. package/dist/cssm/components/AppRoot/AppRoot.js +1 -3
  352. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  353. package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js +25 -2
  354. package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
  355. package/dist/cssm/components/Banner/Banner.js +1 -1
  356. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  357. package/dist/cssm/components/Button/Button.css +9 -11
  358. package/dist/cssm/components/Button/Button.js +10 -4
  359. package/dist/cssm/components/Button/Button.js.map +1 -1
  360. package/dist/cssm/components/Card/Card.css +6 -1
  361. package/dist/cssm/components/Card/Card.js +3 -9
  362. package/dist/cssm/components/Card/Card.js.map +1 -1
  363. package/dist/cssm/components/CardScroll/CardScroll.css +1 -1
  364. package/dist/cssm/components/CardScroll/CardScroll.js +16 -16
  365. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  366. package/dist/cssm/components/Chip/Chip.js +2 -6
  367. package/dist/cssm/components/Chip/Chip.js.map +1 -1
  368. package/dist/cssm/components/ChipsInput/ChipsInput.js +1 -1
  369. package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
  370. package/dist/cssm/components/ConfigProvider/ConfigProvider.js +16 -7
  371. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  372. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  373. package/dist/cssm/components/ContentCard/ContentCard.js +10 -3
  374. package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
  375. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +1 -1
  376. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  377. package/dist/cssm/components/Epic/Epic.js.map +1 -1
  378. package/dist/cssm/components/FocusVisible/FocusVisible.css +1 -1
  379. package/dist/cssm/components/Gradient/Gradient.js +5 -11
  380. package/dist/cssm/components/Gradient/Gradient.js.map +1 -1
  381. package/dist/cssm/components/Header/Header.js +1 -1
  382. package/dist/cssm/components/Header/Header.js.map +1 -1
  383. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +5 -3
  384. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  385. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.css +1 -1
  386. package/dist/cssm/components/IconButton/IconButton.js +7 -0
  387. package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
  388. package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
  389. package/dist/cssm/components/ModalCardBase/ModalCardBase.js +2 -2
  390. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  391. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  392. package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  393. package/dist/cssm/components/ModalRoot/withModalRootContext.js.map +1 -1
  394. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  395. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  396. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +14 -7
  397. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  398. package/dist/cssm/components/Placeholder/Placeholder.js +1 -1
  399. package/dist/cssm/components/Placeholder/Placeholder.js.map +1 -1
  400. package/dist/cssm/components/PopoutRoot/PopoutRoot.js.map +1 -1
  401. package/dist/cssm/components/PromoBanner/PromoBanner.js +6 -0
  402. package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
  403. package/dist/cssm/components/Root/Root.js +5 -0
  404. package/dist/cssm/components/Root/Root.js.map +1 -1
  405. package/dist/cssm/components/Search/Search.js +45 -22
  406. package/dist/cssm/components/Search/Search.js.map +1 -1
  407. package/dist/cssm/components/SegmentedControl/SegmentedControl.css +1 -0
  408. package/dist/cssm/components/SegmentedControl/SegmentedControl.js +95 -0
  409. package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -0
  410. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.css +1 -0
  411. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +41 -0
  412. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -0
  413. package/dist/cssm/components/Select/Select.js.map +1 -1
  414. package/dist/cssm/components/SimpleCell/SimpleCell.js +21 -9
  415. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  416. package/dist/cssm/components/SliderSwitch/SliderSwitch.js +14 -3
  417. package/dist/cssm/components/SliderSwitch/SliderSwitch.js.map +1 -1
  418. package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js +5 -5
  419. package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  420. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  421. package/dist/cssm/components/Switch/Switch.css +1 -1
  422. package/dist/cssm/components/Switch/Switch.js +3 -6
  423. package/dist/cssm/components/Switch/Switch.js.map +1 -1
  424. package/dist/cssm/components/TabbarItem/TabbarItem.js +7 -1
  425. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  426. package/dist/cssm/components/Typography/Title/Title.css +1 -1
  427. package/dist/cssm/components/Typography/Title/Title.js +7 -16
  428. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  429. package/dist/cssm/components/View/View.js +29 -18
  430. package/dist/cssm/components/View/View.js.map +1 -1
  431. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.css +1 -0
  432. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js +24 -0
  433. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -0
  434. package/dist/cssm/hooks/usePlatform.js.map +1 -1
  435. package/dist/cssm/index.js +9 -8
  436. package/dist/cssm/index.js.map +1 -1
  437. package/dist/cssm/lib/platform.js.map +1 -1
  438. package/dist/cssm/lib/utils.js +3 -0
  439. package/dist/cssm/lib/utils.js.map +1 -1
  440. package/dist/cssm/styles/components.css +15 -12
  441. package/dist/cssm/styles/themes.css +1 -1
  442. package/dist/cssm/tokenized/index.js +5 -0
  443. package/dist/cssm/tokenized/index.js.map +1 -0
  444. package/dist/hooks/usePlatform.d.ts +1 -1
  445. package/dist/hooks/usePlatform.js.map +1 -1
  446. package/dist/index.d.ts +10 -8
  447. package/dist/index.js +9 -8
  448. package/dist/index.js.map +1 -1
  449. package/dist/lib/platform.d.ts +1 -1
  450. package/dist/lib/platform.js.map +1 -1
  451. package/dist/lib/utils.d.ts +1 -0
  452. package/dist/lib/utils.js +3 -0
  453. package/dist/lib/utils.js.map +1 -1
  454. package/dist/tokenized/index.d.ts +8 -0
  455. package/dist/tokenized/index.js +5 -0
  456. package/dist/tokenized/index.js.map +1 -0
  457. package/dist/vkui.css +16 -13
  458. package/dist/vkui.css.map +1 -1
  459. package/package.json +3 -3
  460. package/postcss.config.js +10 -1
  461. package/src/components/ActionSheetItem/ActionSheetItem.tsx +29 -28
  462. package/src/components/AdaptivityProvider/AdaptivityProvider.tsx +1 -2
  463. package/src/components/Alert/Alert.tsx +15 -11
  464. package/src/components/AppRoot/AppRoot.tsx +0 -3
  465. package/src/components/AppearanceProvider/AppearanceProvider.tsx +27 -3
  466. package/src/components/Banner/Banner.tsx +1 -1
  467. package/src/components/Button/Button.css +9 -39
  468. package/src/components/Button/Button.tsx +8 -6
  469. package/src/components/Card/Card.css +45 -12
  470. package/src/components/Card/Card.tsx +2 -9
  471. package/src/components/CardScroll/CardScroll.css +11 -61
  472. package/src/components/CardScroll/CardScroll.tsx +19 -18
  473. package/src/components/CardScroll/Readme.md +3 -2
  474. package/src/components/Chip/Chip.tsx +1 -4
  475. package/src/components/ChipsInput/ChipsInput.tsx +1 -1
  476. package/src/components/ConfigProvider/ConfigProvider.tsx +26 -9
  477. package/src/components/ConfigProvider/ConfigProviderContext.tsx +5 -5
  478. package/src/components/ContentCard/ContentCard.tsx +8 -2
  479. package/src/components/CustomSelectOption/CustomSelectOption.tsx +1 -1
  480. package/src/components/Epic/Epic.tsx +8 -3
  481. package/src/components/FocusVisible/FocusVisible.css +4 -8
  482. package/src/components/FormItem/Readme.md +14 -2
  483. package/src/components/Gradient/Gradient.tsx +4 -12
  484. package/src/components/Gradient/Readme.md +1 -1
  485. package/src/components/Header/Header.tsx +1 -1
  486. package/src/components/HorizontalScroll/HorizontalScroll.tsx +10 -4
  487. package/src/components/HorizontalScroll/HorizontalScrollArrow.css +3 -1
  488. package/src/components/IconButton/IconButton.tsx +8 -0
  489. package/src/components/ModalCard/ModalCard.tsx +8 -3
  490. package/src/components/ModalCardBase/ModalCardBase.tsx +2 -2
  491. package/src/components/ModalPage/ModalPage.tsx +8 -3
  492. package/src/components/ModalRoot/ModalRootAdaptive.tsx +8 -3
  493. package/src/components/ModalRoot/Readme.md +1 -1
  494. package/src/components/ModalRoot/withModalRootContext.tsx +1 -1
  495. package/src/components/NativeSelect/NativeSelect.tsx +8 -3
  496. package/src/components/Panel/Panel.tsx +6 -3
  497. package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +20 -12
  498. package/src/components/Placeholder/Placeholder.tsx +1 -1
  499. package/src/components/PopoutRoot/PopoutRoot.tsx +8 -5
  500. package/src/components/PromoBanner/PromoBanner.tsx +8 -0
  501. package/src/components/Root/Root.tsx +12 -2
  502. package/src/components/Search/Search.tsx +38 -14
  503. package/src/components/SegmentedControl/Readme.md +94 -0
  504. package/src/components/SegmentedControl/SegmentedControl.css +42 -0
  505. package/src/components/SegmentedControl/SegmentedControl.tsx +105 -0
  506. package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.css +30 -0
  507. package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx +42 -0
  508. package/src/components/Select/Select.tsx +6 -5
  509. package/src/components/SimpleCell/SimpleCell.tsx +10 -6
  510. package/src/components/SliderSwitch/Readme.md +4 -0
  511. package/src/components/SliderSwitch/SliderSwitch.tsx +17 -3
  512. package/src/components/SliderSwitch/SliderSwitchButton.tsx +4 -4
  513. package/src/components/Snackbar/Snackbar.tsx +8 -3
  514. package/src/components/Switch/Switch.css +0 -12
  515. package/src/components/Switch/Switch.tsx +8 -10
  516. package/src/components/TabbarItem/TabbarItem.tsx +8 -1
  517. package/src/components/Typography/Title/Readme.md +28 -41
  518. package/src/components/Typography/Title/Title.css +22 -13
  519. package/src/components/Typography/Title/Title.tsx +27 -22
  520. package/src/components/View/View.tsx +15 -2
  521. package/src/components/VisuallyHiddenInput/VisuallyHiddenInput.css +9 -0
  522. package/src/components/VisuallyHiddenInput/VisuallyHiddenInput.tsx +25 -0
  523. package/src/hooks/usePlatform.ts +1 -1
  524. package/src/index.ts +14 -8
  525. package/src/lib/platform.ts +5 -1
  526. package/src/lib/utils.ts +6 -0
  527. package/src/styles/components.css +3 -0
  528. package/src/styles/themes.css +6 -0
  529. package/src/testing/utils.tsx +1 -1
  530. package/src/tokenized/index.ts +15 -0
  531. package/types/global.d.ts +0 -5
  532. package/.cache/ts/src/tokenized/tokenized.d.ts +0 -2
  533. package/dist/cjs/tokenized/tokenized.d.ts +0 -2
  534. package/dist/cjs/tokenized/tokenized.js +0 -16
  535. package/dist/cjs/tokenized/tokenized.js.map +0 -1
  536. package/dist/cssm/tokenized/tokenized.js +0 -2
  537. package/dist/cssm/tokenized/tokenized.js.map +0 -1
  538. package/dist/tokenized/tokenized.d.ts +0 -2
  539. package/dist/tokenized/tokenized.js +0 -2
  540. package/dist/tokenized/tokenized.js.map +0 -1
  541. package/src/tokenized/tokenized.ts +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/SegmentedControl/SegmentedControl.tsx"],"names":["React","classNames","useIsomorphicLayoutEffect","generateRandomId","noop","warnOnce","SegmentedControlOption","warn","SegmentedControl","size","name","options","getRootRef","onChange","value","defaultValue","children","restProps","initialValue","useState","activeOptionIdx","updateActiveOptionIdx","activeValue","updateActiveValue","nameRef","useRef","_activeOptionIdx","findIndex","option","process","env","NODE_ENV","translateX","handleOnChange","width","length","transform","WebkitTransform","map","label","optionProps","current"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { generateRandomId, noop } from \"../../lib/utils\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { SegmentedControlOption } from \"./SegmentedControlOption/SegmentedControlOption\";\nimport { HasRootRef } from \"../../types\";\nimport \"./SegmentedControl.css\";\n\nexport type SegmentedControlValue = string | number | undefined;\n\nexport interface SegmentedControlOptionInterface\n extends Omit<React.HTMLAttributes<HTMLElement>, \"label\"> {\n label: React.ReactChild;\n value: SegmentedControlValue;\n}\n\nexport interface SegmentedControlProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\">,\n HasRootRef<HTMLDivElement> {\n options: SegmentedControlOptionInterface[];\n size?: \"m\" | \"l\";\n name?: string;\n onChange?: (value: SegmentedControlValue) => void;\n value?: SegmentedControlValue;\n defaultValue?: SegmentedControlValue;\n}\n\nconst warn = warnOnce(\"SegmentedControl\");\nexport const SegmentedControl: React.FC<SegmentedControlProps> = ({\n size = \"l\",\n name,\n options,\n getRootRef,\n onChange = noop,\n value,\n defaultValue,\n children,\n ...restProps\n}) => {\n let initialValue = defaultValue ?? value;\n\n if (!initialValue) {\n initialValue = options[0]?.value;\n }\n\n const [activeOptionIdx, updateActiveOptionIdx] = React.useState<number>(0);\n const [activeValue, updateActiveValue] =\n React.useState<SegmentedControlValue>(initialValue);\n\n const nameRef = React.useRef<string>(name ?? generateRandomId());\n\n useIsomorphicLayoutEffect(() => {\n const _activeOptionIdx = options.findIndex(\n (option) => option.value === activeValue\n );\n\n if (_activeOptionIdx === -1 && process.env.NODE_ENV === \"development\") {\n warn(\"defaultValue: такого значения нет среди опций!\");\n }\n\n updateActiveOptionIdx(_activeOptionIdx);\n }, [activeValue, options]);\n\n const translateX = `translateX(${100 * activeOptionIdx}%)`;\n\n const handleOnChange = (value: SegmentedControlValue) => {\n updateActiveValue(value);\n onChange(value);\n };\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(\"SegmentedControl\", `SegmentedControl--${size}`)}\n ref={getRootRef}\n >\n <div role=\"radiogroup\" vkuiClass=\"SegmentedControl__in\">\n {activeOptionIdx > -1 && (\n <div\n aria-hidden=\"true\"\n vkuiClass=\"SegmentedControl__slider\"\n style={{\n width: `${100 / options.length}%`,\n transform: translateX,\n WebkitTransform: translateX,\n }}\n />\n )}\n {options.map(({ label, ...optionProps }) => (\n <SegmentedControlOption\n key={`${optionProps.value}`}\n {...optionProps}\n vkuiClass=\"SegmentedControl__option\"\n name={nameRef.current}\n checked={activeValue === optionProps.value}\n onChange={() => handleOnChange(optionProps.value)}\n >\n {label}\n </SegmentedControlOption>\n ))}\n </div>\n </div>\n );\n};\n"],"file":"SegmentedControl.js"}
@@ -0,0 +1 @@
1
+ .vkuiSegmentedControlOption{height:100%;border:0;border-radius:inherit;background:0 0;color:#000;color:var(--vkui--color_text_primary);transition:color 100ms ease-out;-webkit-user-select:none;user-select:none;box-sizing:border-box;cursor:pointer;-webkit-appearance:none;appearance:none}.vkuiSegmentedControlOption .vkuiIcon{color:#99a2ad;color:var(--vkui--color_icon_secondary)}.vkuiSegmentedControlOption:hover{opacity:.5}.vkuiSegmentedControlOption__content{display:flex;align-content:center;align-items:center;justify-content:center;height:100%;width:100%;border-radius:inherit}
@@ -0,0 +1,41 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ var _excluded = ["className", "style", "children"];
4
+ import { createScopedElement } from "../../../lib/jsxRuntime";
5
+ import { useFocusVisible } from "../../../hooks/useFocusVisible";
6
+ import { callMultiple } from "../../../lib/callMultiple";
7
+ import { classNames } from "../../../lib/classNames";
8
+ import { FocusVisible } from "../../FocusVisible/FocusVisible";
9
+ import Text from "../../Typography/Text/Text";
10
+ import { VisuallyHiddenInput } from "../../VisuallyHiddenInput/VisuallyHiddenInput";
11
+ import "./SegmentedControlOption.css";
12
+ export var SegmentedControlOption = function SegmentedControlOption(_ref) {
13
+ var className = _ref.className,
14
+ style = _ref.style,
15
+ children = _ref.children,
16
+ restProps = _objectWithoutProperties(_ref, _excluded);
17
+
18
+ var _useFocusVisible = useFocusVisible(),
19
+ focusVisible = _useFocusVisible.focusVisible,
20
+ onBlur = _useFocusVisible.onBlur,
21
+ onFocus = _useFocusVisible.onFocus;
22
+
23
+ return createScopedElement("label", {
24
+ className: className,
25
+ style: style,
26
+ vkuiClass: classNames("SegmentedControlOption", {
27
+ "SegmentedControlOption--checked": restProps.checked,
28
+ "SegmentedControlOption--focus-visible": focusVisible
29
+ })
30
+ }, createScopedElement(VisuallyHiddenInput, _extends({}, restProps, {
31
+ type: "radio",
32
+ onBlur: callMultiple(onBlur, restProps.onBlur),
33
+ onFocus: callMultiple(onFocus, restProps.onFocus)
34
+ })), createScopedElement(Text, {
35
+ vkuiClass: "SegmentedControlOption__content",
36
+ weight: "medium"
37
+ }, children), createScopedElement(FocusVisible, {
38
+ mode: "inside"
39
+ }));
40
+ };
41
+ //# sourceMappingURL=SegmentedControlOption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx"],"names":["useFocusVisible","callMultiple","classNames","FocusVisible","Text","VisuallyHiddenInput","SegmentedControlOption","className","style","children","restProps","focusVisible","onBlur","onFocus","checked"],"mappings":";;;;AACA,SAASA,eAAT;AACA,SAASC,YAAT;AACA,SAASC,UAAT;AACA,SAASC,YAAT;AACA,OAAOC,IAAP;AACA,SACEC,mBADF;AAIA;AAEA,OAAO,IAAMC,sBAA0D,GAAG,SAA7DA,sBAA6D,OAKpE;AAAA,MAJJC,SAII,QAJJA,SAII;AAAA,MAHJC,KAGI,QAHJA,KAGI;AAAA,MAFJC,QAEI,QAFJA,QAEI;AAAA,MADDC,SACC;;AACJ,yBAA0CV,eAAe,EAAzD;AAAA,MAAQW,YAAR,oBAAQA,YAAR;AAAA,MAAsBC,MAAtB,oBAAsBA,MAAtB;AAAA,MAA8BC,OAA9B,oBAA8BA,OAA9B;;AAEA,SACE;AACE,IAAA,SAAS,EAAEN,SADb;AAEE,IAAA,KAAK,EAAEC,KAFT;AAGE,IAAA,SAAS,EAAEN,UAAU,CAAC,wBAAD,EAA2B;AAC9C,yCAAmCQ,SAAS,CAACI,OADC;AAE9C,+CAAyCH;AAFK,KAA3B;AAHvB,KAQE,oBAAC,mBAAD,eACMD,SADN;AAEE,IAAA,IAAI,EAAC,OAFP;AAGE,IAAA,MAAM,EAAET,YAAY,CAACW,MAAD,EAASF,SAAS,CAACE,MAAnB,CAHtB;AAIE,IAAA,OAAO,EAAEX,YAAY,CAACY,OAAD,EAAUH,SAAS,CAACG,OAApB;AAJvB,KARF,EAcE,oBAAC,IAAD;AAAM,IAAA,SAAS,EAAC,iCAAhB;AAAkD,IAAA,MAAM,EAAC;AAAzD,KACGJ,QADH,CAdF,EAiBE,oBAAC,YAAD;AAAc,IAAA,IAAI,EAAC;AAAnB,IAjBF,CADF;AAqBD,CA7BM","sourcesContent":["import * as React from \"react\";\nimport { useFocusVisible } from \"../../../hooks/useFocusVisible\";\nimport { callMultiple } from \"../../../lib/callMultiple\";\nimport { classNames } from \"../../../lib/classNames\";\nimport { FocusVisible } from \"../../FocusVisible/FocusVisible\";\nimport Text from \"../../Typography/Text/Text\";\nimport {\n VisuallyHiddenInput,\n VisuallyHiddenInputProps,\n} from \"../../VisuallyHiddenInput/VisuallyHiddenInput\";\nimport \"./SegmentedControlOption.css\";\n\nexport const SegmentedControlOption: React.FC<VisuallyHiddenInputProps> = ({\n className,\n style,\n children,\n ...restProps\n}) => {\n const { focusVisible, onBlur, onFocus } = useFocusVisible();\n\n return (\n <label\n className={className}\n style={style}\n vkuiClass={classNames(\"SegmentedControlOption\", {\n \"SegmentedControlOption--checked\": restProps.checked,\n \"SegmentedControlOption--focus-visible\": focusVisible,\n })}\n >\n <VisuallyHiddenInput\n {...restProps}\n type=\"radio\"\n onBlur={callMultiple(onBlur, restProps.onBlur)}\n onFocus={callMultiple(onFocus, restProps.onFocus)}\n />\n <Text vkuiClass=\"SegmentedControlOption__content\" weight=\"medium\">\n {children}\n </Text>\n <FocusVisible mode=\"inside\" />\n </label>\n );\n};\n"],"file":"SegmentedControlOption.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Select/Select.tsx"],"names":["NativeSelect","CustomSelect","withAdaptivity","Select","hasMouse","props","children","restProps","options","popupDirection","renderOption","map","label","value"],"mappings":";;;;;AACA,OAAOA,YAAP;AACA,OAAOC,YAAP;AACA,SAASC,cAAT;;AAOA,IAAMC,MAA4C,GAAG,SAA/CA,MAA+C,OAGlC;AAAA,MAFjBC,QAEiB,QAFjBA,QAEiB;AAAA,MADdC,KACc;;AACjB;AACA,MAAID,QAAJ,EAAc;AACZ,QAAQE,QAAR,GAAmCD,KAAnC,CAAQC,QAAR;AAAA,QAAqBC,UAArB,4BAAmCF,KAAnC;;AAEA,WAAO,oBAAC,YAAD,EAAkBE,UAAlB,CAAP;AACD;;AAED,uBAAqEF,KAArE,CAAQG,OAAR;AAAA,MAAQA,OAAR,+BAAkB,EAAlB;AAAA,MAAsBC,cAAtB,GAAqEJ,KAArE,CAAsBI,cAAtB;AAAA,MAAsCC,YAAtC,GAAqEL,KAArE,CAAsCK,YAAtC;AAAA,MAAuDH,SAAvD,4BAAqEF,KAArE;;AAEA,SACE,oBAAC,YAAD,EAAkBE,SAAlB,EACGC,OAAO,CAACG,GAAR,CAAY;AAAA,QAAGC,KAAH,SAAGA,KAAH;AAAA,QAAUC,KAAV,SAAUA,KAAV;AAAA,WACX;AAAQ,MAAA,KAAK,EAAEA,KAAf;AAAsB,MAAA,GAAG,YAAKA,KAAL;AAAzB,OACGD,KADH,CADW;AAAA,GAAZ,CADH,CADF;AASD,CAtBD,C,CAwBA;;;AACA,eAAeV,cAAc,CAACC,MAAD,EAAS;AACpCC,EAAAA,QAAQ,EAAE;AAD0B,CAAT,CAA7B","sourcesContent":["import * as React from \"react\";\nimport NativeSelect from \"../NativeSelect/NativeSelect\";\nimport CustomSelect, { CustomSelectProps } from \"../CustomSelect/CustomSelect\";\nimport { withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport { AdaptivityContextInterface } from \"../AdaptivityProvider/AdaptivityContext\";\n\nexport interface SelectProps\n extends CustomSelectProps,\n AdaptivityContextInterface {}\n\nconst Select: React.FunctionComponent<SelectProps> = ({\n hasMouse,\n ...props\n}: SelectProps) => {\n // Use custom select if device has connected a mouse\n if (hasMouse) {\n const { children, ...restProps } = props;\n\n return <CustomSelect {...restProps} />;\n }\n\n const { options = [], popupDirection, renderOption, ...restProps } = props;\n\n return (\n <NativeSelect {...restProps}>\n {options.map(({ label, value }) => (\n <option value={value} key={`${value}`}>\n {label}\n </option>\n ))}\n </NativeSelect>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(Select, {\n hasMouse: true,\n});\n"],"file":"Select.js"}
1
+ {"version":3,"sources":["../../../../src/components/Select/Select.tsx"],"names":["NativeSelect","CustomSelect","withAdaptivity","Select","hasMouse","props","children","restProps","options","popupDirection","renderOption","map","label","value"],"mappings":";;;;;AACA,OAAOA,YAAP;AACA,OAAOC,YAAP;AACA,SAASC,cAAT;;AAQA,IAAMC,MAA0D,GAAG,SAA7DA,MAA6D,OAGhD;AAAA,MAFjBC,QAEiB,QAFjBA,QAEiB;AAAA,MADdC,KACc;;AACjB;AACA,MAAID,QAAJ,EAAc;AACZ,QAAQE,QAAR,GAAmCD,KAAnC,CAAQC,QAAR;AAAA,QAAqBC,UAArB,4BAAmCF,KAAnC;;AAEA,WAAO,oBAAC,YAAD,EAAkBE,UAAlB,CAAP;AACD;;AAED,uBAAqEF,KAArE,CAAQG,OAAR;AAAA,MAAQA,OAAR,+BAAkB,EAAlB;AAAA,MAAsBC,cAAtB,GAAqEJ,KAArE,CAAsBI,cAAtB;AAAA,MAAsCC,YAAtC,GAAqEL,KAArE,CAAsCK,YAAtC;AAAA,MAAuDH,SAAvD,4BAAqEF,KAArE;;AAEA,SACE,oBAAC,YAAD,EAAkBE,SAAlB,EACGC,OAAO,CAACG,GAAR,CAAY;AAAA,QAAGC,KAAH,SAAGA,KAAH;AAAA,QAAUC,KAAV,SAAUA,KAAV;AAAA,WACX;AAAQ,MAAA,KAAK,EAAEA,KAAf;AAAsB,MAAA,GAAG,YAAKA,KAAL;AAAzB,OACGD,KADH,CADW;AAAA,GAAZ,CADH,CADF;AASD,CAtBD,C,CAwBA;;;AACA,eAAeV,cAAc,CAACC,MAAD,EAAS;AACpCC,EAAAA,QAAQ,EAAE;AAD0B,CAAT,CAA7B","sourcesContent":["import * as React from \"react\";\nimport NativeSelect from \"../NativeSelect/NativeSelect\";\nimport CustomSelect, { CustomSelectProps } from \"../CustomSelect/CustomSelect\";\nimport { withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport {\n AdaptivityContextInterface,\n AdaptivityProps,\n} from \"../AdaptivityProvider/AdaptivityContext\";\n\nexport interface SelectProps extends CustomSelectProps, AdaptivityProps {}\n\nconst Select: React.FC<SelectProps & AdaptivityContextInterface> = ({\n hasMouse,\n ...props\n}: SelectProps) => {\n // Use custom select if device has connected a mouse\n if (hasMouse) {\n const { children, ...restProps } = props;\n\n return <CustomSelect {...restProps} />;\n }\n\n const { options = [], popupDirection, renderOption, ...restProps } = props;\n\n return (\n <NativeSelect {...restProps}>\n {options.map(({ label, value }) => (\n <option value={value} key={`${value}`}>\n {label}\n </option>\n ))}\n </NativeSelect>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(Select, {\n hasMouse: true,\n});\n"],"file":"Select.js"}
@@ -6,7 +6,7 @@ import { classNames } from "../../lib/classNames";
6
6
  import { getClassName } from "../../helpers/getClassName";
7
7
  import Tappable from "../Tappable/Tappable";
8
8
  import { Icon24Chevron } from "@vkontakte/icons";
9
- import { IOS } from "../../lib/platform";
9
+ import { ANDROID, IOS } from "../../lib/platform";
10
10
  import { usePlatform } from "../../hooks/usePlatform";
11
11
  import { hasReactNode } from "../../lib/utils";
12
12
  import { useAdaptivity } from "../../hooks/useAdaptivity";
@@ -14,20 +14,32 @@ import { withAdaptivity, SizeType } from "../../hoc/withAdaptivity";
14
14
  import Title from "../Typography/Title/Title";
15
15
  import Text from "../Typography/Text/Text";
16
16
  import Subhead from "../Typography/Subhead/Subhead";
17
+ import Headline from "../Typography/Headline/Headline";
17
18
  import "./SimpleCell.css";
18
19
 
19
20
  var SimpleCellTypography = function SimpleCellTypography(props) {
20
21
  var _useAdaptivity = useAdaptivity(),
21
22
  sizeY = _useAdaptivity.sizeY;
22
23
 
23
- return sizeY === SizeType.COMPACT ? createScopedElement(Text, _extends({
24
- Component: "span",
25
- weight: "regular"
26
- }, props)) : createScopedElement(Title, _extends({
27
- Component: "span",
28
- level: "3",
29
- weight: "regular"
30
- }, props));
24
+ var platform = usePlatform();
25
+
26
+ if (sizeY === SizeType.COMPACT) {
27
+ return createScopedElement(Text, _extends({
28
+ Component: "span",
29
+ weight: "regular"
30
+ }, props));
31
+ } else if (platform === ANDROID) {
32
+ return createScopedElement(Headline, _extends({
33
+ Component: "span",
34
+ weight: "regular"
35
+ }, props));
36
+ } else {
37
+ return createScopedElement(Title, _extends({
38
+ Component: "span",
39
+ level: "3",
40
+ weight: "3"
41
+ }, props));
42
+ }
31
43
  };
32
44
 
33
45
  var SimpleCell = function SimpleCell(_ref) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SimpleCell/SimpleCell.tsx"],"names":["classNames","getClassName","Tappable","Icon24Chevron","IOS","usePlatform","hasReactNode","useAdaptivity","withAdaptivity","SizeType","Title","Text","Subhead","SimpleCellTypography","props","sizeY","COMPACT","SimpleCell","badge","before","indicator","children","after","description","expandable","multiline","restProps","platform","hasAfter"],"mappings":";;;;AAEA,SAASA,UAAT;AACA,SAASC,YAAT;AACA,OAAOC,QAAP;AACA,SAASC,aAAT,QAA8B,kBAA9B;AACA,SAASC,GAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,SAASC,aAAT;AACA,SAASC,cAAT,EAAyBC,QAAzB;AACA,OAAOC,KAAP;AACA,OAAOC,IAAP;AACA,OAAOC,OAAP;AACA;;AAuCA,IAAMC,oBAAyD,GAAG,SAA5DA,oBAA4D,CAChEC,KADgE,EAE7D;AACH,uBAAkBP,aAAa,EAA/B;AAAA,MAAQQ,KAAR,kBAAQA,KAAR;;AAEA,SAAOA,KAAK,KAAKN,QAAQ,CAACO,OAAnB,GACL,oBAAC,IAAD;AAAM,IAAA,SAAS,EAAC,MAAhB;AAAuB,IAAA,MAAM,EAAC;AAA9B,KAA4CF,KAA5C,EADK,GAGL,oBAAC,KAAD;AAAO,IAAA,SAAS,EAAC,MAAjB;AAAwB,IAAA,KAAK,EAAC,GAA9B;AAAkC,IAAA,MAAM,EAAC;AAAzC,KAAuDA,KAAvD,EAHF;AAKD,CAVD;;AAYA,IAAMG,UAAqC,GAAG,SAAxCA,UAAwC,OAWvB;AAAA,MAVrBC,KAUqB,QAVrBA,KAUqB;AAAA,MATrBC,MASqB,QATrBA,MASqB;AAAA,MARrBC,SAQqB,QARrBA,SAQqB;AAAA,MAPrBC,QAOqB,QAPrBA,QAOqB;AAAA,MANrBC,KAMqB,QANrBA,KAMqB;AAAA,MALrBC,WAKqB,QALrBA,WAKqB;AAAA,MAJrBC,UAIqB,QAJrBA,UAIqB;AAAA,MAHrBC,SAGqB,QAHrBA,SAGqB;AAAA,MAFrBV,KAEqB,QAFrBA,KAEqB;AAAA,MADlBW,SACkB;;AACrB,MAAMC,QAAQ,GAAGtB,WAAW,EAA5B;AACA,MAAMuB,QAAQ,GAAGtB,YAAY,CAACgB,KAAD,CAAZ,IAAwBE,UAAU,IAAIG,QAAQ,KAAKvB,GAApE;AAEA,SACE,oBAAC,QAAD,eACMsB,SADN;AAEE,IAAA,SAAS,EAAE1B,UAAU,CACnBC,YAAY,CAAC,YAAD,EAAe0B,QAAf,CADO,EAEnB;AACE,yBAAmBH,UADrB;AAEE,0BAAoBC;AAFtB,KAFmB,8BAMEV,KANF;AAFvB,MAWGI,MAXH,EAYE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,oBAAC,oBAAD;AAAsB,IAAA,SAAS,EAAC;AAAhC,KACGE,QADH,CADF,EAIGf,YAAY,CAACY,KAAD,CAAZ,IACC;AAAM,IAAA,SAAS,EAAC;AAAhB,KAAqCA,KAArC,CALJ,CADF,EASGK,WAAW,IACV,oBAAC,OAAD;AACE,IAAA,SAAS,EAAC,MADZ;AAEE,IAAA,MAAM,EAAC,SAFT;AAGE,IAAA,SAAS,EAAC;AAHZ,KAKGA,WALH,CAVJ,CAZF,EA+BGjB,YAAY,CAACc,SAAD,CAAZ,IACC,oBAAC,oBAAD;AACE,IAAA,SAAS,EAAC,MADZ;AAEE,IAAA,SAAS,EAAC;AAFZ,KAIGA,SAJH,CAhCJ,EAuCGQ,QAAQ,IACP;AAAK,IAAA,SAAS,EAAC;AAAf,KACGN,KADH,EAEGE,UAAU,IAAIG,QAAQ,KAAKvB,GAA3B,IAAkC,oBAAC,aAAD,OAFrC,CAxCJ,CADF;AAgDD,CA/DD,C,CAiEA;;;AACA,eAAeI,cAAc,CAACS,UAAD,EAAa;AAAEF,EAAAA,KAAK,EAAE;AAAT,CAAb,CAA7B","sourcesContent":["import * as React from \"react\";\nimport { HasComponent } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport { Icon24Chevron } from \"@vkontakte/icons\";\nimport { IOS } from \"../../lib/platform\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { withAdaptivity, SizeType } from \"../../hoc/withAdaptivity\";\nimport Title from \"../Typography/Title/Title\";\nimport Text from \"../Typography/Text/Text\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport \"./SimpleCell.css\";\n\nexport interface SimpleCellOwnProps extends HasComponent {\n /**\n * Иконка 28 или `<Avatar size={28|32|40|48|72} />`\n */\n before?: React.ReactNode;\n /**\n * Иконка 12 или `<Badge />`. Добавится справа от текста `children`.\n */\n badge?: React.ReactNode;\n /**\n * Контейнер для текста справа от `children`.\n */\n indicator?: React.ReactNode;\n /**\n * Иконка 24|28 или `<Switch />`. Располагается справа от `indicator`.\n */\n after?: React.ReactNode;\n /**\n * Контейнер для текста под `children`.\n */\n description?: React.ReactNode;\n /**\n * Убирает анимацию нажатия\n */\n disabled?: boolean;\n /**\n * В iOS добавляет chevron справа. Передавать `true`, если предполагается переход при клике по ячейке.\n */\n expandable?: boolean;\n multiline?: boolean;\n}\n\nexport interface SimpleCellProps extends SimpleCellOwnProps, TappableProps {}\n\ntype SimpleCellTypographyProps = React.HTMLAttributes<HTMLDivElement> &\n HasComponent;\n\nconst SimpleCellTypography: React.FC<SimpleCellTypographyProps> = (\n props: SimpleCellTypographyProps\n) => {\n const { sizeY } = useAdaptivity();\n\n return sizeY === SizeType.COMPACT ? (\n <Text Component=\"span\" weight=\"regular\" {...props} />\n ) : (\n <Title Component=\"span\" level=\"3\" weight=\"regular\" {...props} />\n );\n};\n\nconst SimpleCell: React.FC<SimpleCellProps> = ({\n badge,\n before,\n indicator,\n children,\n after,\n description,\n expandable,\n multiline,\n sizeY,\n ...restProps\n}: SimpleCellProps) => {\n const platform = usePlatform();\n const hasAfter = hasReactNode(after) || (expandable && platform === IOS);\n\n return (\n <Tappable\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"SimpleCell\", platform),\n {\n \"SimpleCell--exp\": expandable,\n \"SimpleCell--mult\": multiline,\n },\n `SimpleCell--sizeY-${sizeY}`\n )}\n >\n {before}\n <div vkuiClass=\"SimpleCell__main\">\n <div vkuiClass=\"SimpleCell__content\">\n <SimpleCellTypography vkuiClass=\"SimpleCell__children\">\n {children}\n </SimpleCellTypography>\n {hasReactNode(badge) && (\n <span vkuiClass=\"SimpleCell__badge\">{badge}</span>\n )}\n </div>\n {description && (\n <Subhead\n Component=\"span\"\n weight=\"regular\"\n vkuiClass=\"SimpleCell__description\"\n >\n {description}\n </Subhead>\n )}\n </div>\n {hasReactNode(indicator) && (\n <SimpleCellTypography\n Component=\"span\"\n vkuiClass=\"SimpleCell__indicator\"\n >\n {indicator}\n </SimpleCellTypography>\n )}\n {hasAfter && (\n <div vkuiClass=\"SimpleCell__after\">\n {after}\n {expandable && platform === IOS && <Icon24Chevron />}\n </div>\n )}\n </Tappable>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(SimpleCell, { sizeY: true });\n"],"file":"SimpleCell.js"}
1
+ {"version":3,"sources":["../../../../src/components/SimpleCell/SimpleCell.tsx"],"names":["classNames","getClassName","Tappable","Icon24Chevron","ANDROID","IOS","usePlatform","hasReactNode","useAdaptivity","withAdaptivity","SizeType","Title","Text","Subhead","Headline","SimpleCellTypography","props","sizeY","platform","COMPACT","SimpleCell","badge","before","indicator","children","after","description","expandable","multiline","restProps","hasAfter"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { HasComponent } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport { Icon24Chevron } from \"@vkontakte/icons\";\nimport { ANDROID, IOS } from \"../../lib/platform\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { withAdaptivity, SizeType } from \"../../hoc/withAdaptivity\";\nimport Title from \"../Typography/Title/Title\";\nimport Text from \"../Typography/Text/Text\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport Headline from \"../Typography/Headline/Headline\";\nimport \"./SimpleCell.css\";\n\nexport interface SimpleCellOwnProps extends HasComponent {\n /**\n * Иконка 28 или `<Avatar size={28|32|40|48|72} />`\n */\n before?: React.ReactNode;\n /**\n * Иконка 12 или `<Badge />`. Добавится справа от текста `children`.\n */\n badge?: React.ReactNode;\n /**\n * Контейнер для текста справа от `children`.\n */\n indicator?: React.ReactNode;\n /**\n * Иконка 24|28 или `<Switch />`. Располагается справа от `indicator`.\n */\n after?: React.ReactNode;\n /**\n * Контейнер для текста под `children`.\n */\n description?: React.ReactNode;\n /**\n * Убирает анимацию нажатия\n */\n disabled?: boolean;\n /**\n * В iOS добавляет chevron справа. Передавать `true`, если предполагается переход при клике по ячейке.\n */\n expandable?: boolean;\n multiline?: boolean;\n}\n\nexport interface SimpleCellProps extends SimpleCellOwnProps, TappableProps {}\n\ntype SimpleCellTypographyProps = React.HTMLAttributes<HTMLDivElement> &\n HasComponent;\n\nconst SimpleCellTypography: React.FC<SimpleCellTypographyProps> = (\n props: SimpleCellTypographyProps\n) => {\n const { sizeY } = useAdaptivity();\n const platform = usePlatform();\n\n if (sizeY === SizeType.COMPACT) {\n return <Text Component=\"span\" weight=\"regular\" {...props} />;\n } else if (platform === ANDROID) {\n return <Headline Component=\"span\" weight=\"regular\" {...props} />;\n } else {\n return <Title Component=\"span\" level=\"3\" weight=\"3\" {...props} />;\n }\n};\n\nconst SimpleCell: React.FC<SimpleCellProps> = ({\n badge,\n before,\n indicator,\n children,\n after,\n description,\n expandable,\n multiline,\n sizeY,\n ...restProps\n}: SimpleCellProps) => {\n const platform = usePlatform();\n const hasAfter = hasReactNode(after) || (expandable && platform === IOS);\n\n return (\n <Tappable\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"SimpleCell\", platform),\n {\n \"SimpleCell--exp\": expandable,\n \"SimpleCell--mult\": multiline,\n },\n `SimpleCell--sizeY-${sizeY}`\n )}\n >\n {before}\n <div vkuiClass=\"SimpleCell__main\">\n <div vkuiClass=\"SimpleCell__content\">\n <SimpleCellTypography vkuiClass=\"SimpleCell__children\">\n {children}\n </SimpleCellTypography>\n {hasReactNode(badge) && (\n <span vkuiClass=\"SimpleCell__badge\">{badge}</span>\n )}\n </div>\n {description && (\n <Subhead\n Component=\"span\"\n weight=\"regular\"\n vkuiClass=\"SimpleCell__description\"\n >\n {description}\n </Subhead>\n )}\n </div>\n {hasReactNode(indicator) && (\n <SimpleCellTypography\n Component=\"span\"\n vkuiClass=\"SimpleCell__indicator\"\n >\n {indicator}\n </SimpleCellTypography>\n )}\n {hasAfter && (\n <div vkuiClass=\"SimpleCell__after\">\n {after}\n {expandable && platform === IOS && <Icon24Chevron />}\n </div>\n )}\n </Tappable>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(SimpleCell, { sizeY: true });\n"],"file":"SimpleCell.js"}
@@ -10,11 +10,15 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
10
10
  var _excluded = ["name", "options", "activeValue", "onSwitch"];
11
11
  import { createScopedElement } from "../../lib/jsxRuntime";
12
12
  import * as React from "react";
13
- import SliderSwitchButton from "./SliderSwitchButton";
13
+ import { SliderSwitchButton } from "./SliderSwitchButton";
14
14
  import { classNames } from "../../lib/classNames";
15
+ import { warnOnce } from "../../lib/warnOnce";
15
16
  import "./SliderSwitch.css";
17
+ var warn = warnOnce("SliderSwitch");
18
+ /**
19
+ * @deprecated Этот компонент устарел и будет удален в 5.0.0. Используйте [`SegmentedControl`](#/SegmentedControl).
20
+ */
16
21
 
17
- // eslint-disable-next-line import/no-default-export
18
22
  var SliderSwitch = /*#__PURE__*/function (_React$Component) {
19
23
  _inherits(SliderSwitch, _React$Component);
20
24
 
@@ -122,6 +126,13 @@ var SliderSwitch = /*#__PURE__*/function (_React$Component) {
122
126
  }
123
127
 
124
128
  _createClass(SliderSwitch, [{
129
+ key: "componentDidMount",
130
+ value: function componentDidMount() {
131
+ if (process.env.NODE_ENV === "development") {
132
+ warn("Этот компонент устарел и будет удален в 5.0.0. Используйте SegmentedControl.");
133
+ }
134
+ }
135
+ }, {
125
136
  key: "render",
126
137
  value: function render() {
127
138
  var _classNames;
@@ -196,5 +207,5 @@ _defineProperty(SliderSwitch, "defaultProps", {
196
207
  }]
197
208
  });
198
209
 
199
- export { SliderSwitch as default };
210
+ export { SliderSwitch };
200
211
  //# sourceMappingURL=SliderSwitch.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SliderSwitch/SliderSwitch.tsx"],"names":["React","SliderSwitchButton","classNames","SliderSwitch","props","value","onSwitch","setState","activeValue","options","hoveredOptionId","event","key","preventDefault","state","find","option","undefined","firstButton","current","focus","secondButton","createRef","name","_activeValue","restProps","firstOption","secondOption","firstActive","secondActive","switchByKey","resetFocusedOption","handleFirstClick","handleFirstHover","handleSecondClick","handleSecondHover","nextProps","prevState","Component"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport SliderSwitchButton from \"./SliderSwitchButton\";\nimport { classNames } from \"../../lib/classNames\";\nimport { HasPlatform } from \"../../types\";\nimport \"./SliderSwitch.css\";\n\nexport interface SliderSwitchOptionInterface {\n name: string;\n value: string | number;\n}\n\nexport interface SliderSwitchProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasPlatform {\n options: Array<{\n name: string;\n value: string | number;\n }>;\n activeValue?: SliderSwitchOptionInterface[\"value\"];\n name?: string;\n onSwitch?: (value: SliderSwitchOptionInterface[\"value\"]) => void;\n}\n\ninterface SliderSwitchState {\n activeValue: SliderSwitchOptionInterface[\"value\"];\n hoveredOptionId: number;\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default class SliderSwitch extends React.Component<\n SliderSwitchProps,\n SliderSwitchState\n> {\n public constructor(props: SliderSwitchProps) {\n super(props);\n\n this.state = {\n activeValue: props.activeValue ?? \"\",\n hoveredOptionId: -1,\n };\n\n this.firstButton = React.createRef();\n this.secondButton = React.createRef();\n }\n\n static defaultProps = {\n options: [\n { name: \"\", value: \"\" },\n { name: \"\", value: \"\" },\n ],\n };\n\n firstButton: React.RefObject<HTMLDivElement>;\n secondButton: React.RefObject<HTMLDivElement>;\n\n onSwitch = (value: SliderSwitchOptionInterface[\"value\"]) => {\n const { onSwitch } = this.props;\n\n this.setState(\n () => ({\n activeValue: value,\n }),\n () => {\n onSwitch && onSwitch(value);\n }\n );\n };\n\n handleFirstClick = () => {\n const { options } = this.props;\n const { value } = options[0];\n\n this.onSwitch(value);\n };\n\n handleSecondClick = () => {\n const { options } = this.props;\n const { value } = options[1];\n\n this.onSwitch(value);\n };\n\n handleFirstHover = () => {\n this.setState(() => ({\n hoveredOptionId: 0,\n }));\n };\n\n handleSecondHover = () => {\n this.setState(() => ({\n hoveredOptionId: 1,\n }));\n };\n\n resetFocusedOption = () => {\n this.setState(() => ({\n hoveredOptionId: -1,\n }));\n };\n\n switchByKey = (event: React.KeyboardEvent) => {\n if (\n event.key !== \"Enter\" &&\n event.key !== \"Spacebar\" &&\n event.key !== \" \"\n ) {\n return;\n }\n event.preventDefault();\n\n const { options } = this.props;\n const { activeValue } = this.state;\n const value = options.find((option) => option.value !== activeValue)?.value;\n\n if (value !== undefined) {\n this.onSwitch(value);\n }\n\n if (options[0].value === value) {\n this.firstButton.current?.focus();\n } else {\n this.secondButton.current?.focus();\n }\n };\n\n static getDerivedStateFromProps(\n nextProps: SliderSwitchProps,\n prevState: SliderSwitchState\n ) {\n if (\n nextProps.activeValue &&\n nextProps.activeValue !== prevState.activeValue\n ) {\n return {\n activeValue: nextProps.activeValue,\n };\n }\n\n return null;\n }\n\n public render() {\n const {\n name,\n options,\n activeValue: _activeValue,\n onSwitch,\n ...restProps\n } = this.props;\n const { activeValue, hoveredOptionId } = this.state;\n\n const [firstOption, secondOption] = options;\n const firstActive = firstOption.value === activeValue;\n const secondActive = secondOption.value === activeValue;\n\n return (\n <div\n {...restProps}\n vkuiClass=\"SliderSwitch\"\n onKeyDown={this.switchByKey}\n onMouseLeave={this.resetFocusedOption}\n >\n {!firstActive && !secondActive && (\n <div vkuiClass=\"SliderSwitch__border\" />\n )}\n <div\n vkuiClass={classNames(\"SliderSwitch__slider\", {\n [\"SliderSwitch--firstActive\"]: firstActive,\n [\"SliderSwitch--secondActive\"]: secondActive,\n })}\n />\n <input type=\"hidden\" name={name} value={activeValue} />\n <SliderSwitchButton\n active={firstActive}\n hovered={hoveredOptionId === 0}\n aria-pressed={firstActive}\n onClick={this.handleFirstClick}\n onMouseEnter={this.handleFirstHover}\n getRootRef={this.firstButton}\n >\n {firstOption.name}\n </SliderSwitchButton>\n <SliderSwitchButton\n active={secondActive}\n hovered={hoveredOptionId === 1}\n onClick={this.handleSecondClick}\n onMouseEnter={this.handleSecondHover}\n getRootRef={this.secondButton}\n >\n {secondOption.name}\n </SliderSwitchButton>\n </div>\n );\n }\n}\n"],"file":"SliderSwitch.js"}
1
+ {"version":3,"sources":["../../../../src/components/SliderSwitch/SliderSwitch.tsx"],"names":["React","SliderSwitchButton","classNames","warnOnce","warn","SliderSwitch","props","value","onSwitch","setState","activeValue","options","hoveredOptionId","event","key","preventDefault","state","find","option","undefined","firstButton","current","focus","secondButton","createRef","process","env","NODE_ENV","name","_activeValue","restProps","firstOption","secondOption","firstActive","secondActive","switchByKey","resetFocusedOption","handleFirstClick","handleFirstHover","handleSecondClick","handleSecondHover","nextProps","prevState","Component"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { SliderSwitchButton } from \"./SliderSwitchButton\";\nimport { classNames } from \"../../lib/classNames\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { HasPlatform } from \"../../types\";\nimport \"./SliderSwitch.css\";\n\nexport interface SliderSwitchOptionInterface {\n name: string;\n value: string | number;\n}\n\nexport interface SliderSwitchProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasPlatform {\n options: Array<{\n name: string;\n value: string | number;\n }>;\n activeValue?: SliderSwitchOptionInterface[\"value\"];\n name?: string;\n onSwitch?: (value: SliderSwitchOptionInterface[\"value\"]) => void;\n}\n\ninterface SliderSwitchState {\n activeValue: SliderSwitchOptionInterface[\"value\"];\n hoveredOptionId: number;\n}\n\nconst warn = warnOnce(\"SliderSwitch\");\n/**\n * @deprecated Этот компонент устарел и будет удален в 5.0.0. Используйте [`SegmentedControl`](#/SegmentedControl).\n */\nclass SliderSwitch extends React.Component<\n SliderSwitchProps,\n SliderSwitchState\n> {\n public constructor(props: SliderSwitchProps) {\n super(props);\n\n this.state = {\n activeValue: props.activeValue ?? \"\",\n hoveredOptionId: -1,\n };\n\n this.firstButton = React.createRef();\n this.secondButton = React.createRef();\n }\n\n static defaultProps = {\n options: [\n { name: \"\", value: \"\" },\n { name: \"\", value: \"\" },\n ],\n };\n\n firstButton: React.RefObject<HTMLDivElement>;\n secondButton: React.RefObject<HTMLDivElement>;\n\n onSwitch = (value: SliderSwitchOptionInterface[\"value\"]) => {\n const { onSwitch } = this.props;\n\n this.setState(\n () => ({\n activeValue: value,\n }),\n () => {\n onSwitch && onSwitch(value);\n }\n );\n };\n\n handleFirstClick = () => {\n const { options } = this.props;\n const { value } = options[0];\n\n this.onSwitch(value);\n };\n\n handleSecondClick = () => {\n const { options } = this.props;\n const { value } = options[1];\n\n this.onSwitch(value);\n };\n\n handleFirstHover = () => {\n this.setState(() => ({\n hoveredOptionId: 0,\n }));\n };\n\n handleSecondHover = () => {\n this.setState(() => ({\n hoveredOptionId: 1,\n }));\n };\n\n resetFocusedOption = () => {\n this.setState(() => ({\n hoveredOptionId: -1,\n }));\n };\n\n switchByKey = (event: React.KeyboardEvent) => {\n if (\n event.key !== \"Enter\" &&\n event.key !== \"Spacebar\" &&\n event.key !== \" \"\n ) {\n return;\n }\n event.preventDefault();\n\n const { options } = this.props;\n const { activeValue } = this.state;\n const value = options.find((option) => option.value !== activeValue)?.value;\n\n if (value !== undefined) {\n this.onSwitch(value);\n }\n\n if (options[0].value === value) {\n this.firstButton.current?.focus();\n } else {\n this.secondButton.current?.focus();\n }\n };\n\n static getDerivedStateFromProps(\n nextProps: SliderSwitchProps,\n prevState: SliderSwitchState\n ) {\n if (\n nextProps.activeValue &&\n nextProps.activeValue !== prevState.activeValue\n ) {\n return {\n activeValue: nextProps.activeValue,\n };\n }\n\n return null;\n }\n\n componentDidMount(): void {\n if (process.env.NODE_ENV === \"development\") {\n warn(\n \"Этот компонент устарел и будет удален в 5.0.0. Используйте SegmentedControl.\"\n );\n }\n }\n\n public render() {\n const {\n name,\n options,\n activeValue: _activeValue,\n onSwitch,\n ...restProps\n } = this.props;\n const { activeValue, hoveredOptionId } = this.state;\n\n const [firstOption, secondOption] = options;\n const firstActive = firstOption.value === activeValue;\n const secondActive = secondOption.value === activeValue;\n\n return (\n <div\n {...restProps}\n vkuiClass=\"SliderSwitch\"\n onKeyDown={this.switchByKey}\n onMouseLeave={this.resetFocusedOption}\n >\n {!firstActive && !secondActive && (\n <div vkuiClass=\"SliderSwitch__border\" />\n )}\n <div\n vkuiClass={classNames(\"SliderSwitch__slider\", {\n [\"SliderSwitch--firstActive\"]: firstActive,\n [\"SliderSwitch--secondActive\"]: secondActive,\n })}\n />\n <input type=\"hidden\" name={name} value={activeValue} />\n <SliderSwitchButton\n active={firstActive}\n hovered={hoveredOptionId === 0}\n aria-pressed={firstActive}\n onClick={this.handleFirstClick}\n onMouseEnter={this.handleFirstHover}\n getRootRef={this.firstButton}\n >\n {firstOption.name}\n </SliderSwitchButton>\n <SliderSwitchButton\n active={secondActive}\n hovered={hoveredOptionId === 1}\n onClick={this.handleSecondClick}\n onMouseEnter={this.handleSecondHover}\n getRootRef={this.secondButton}\n >\n {secondOption.name}\n </SliderSwitchButton>\n </div>\n );\n }\n}\n\nexport { SliderSwitch };\n"],"file":"SliderSwitch.js"}
@@ -12,7 +12,10 @@ import { usePlatform } from "../../hooks/usePlatform";
12
12
  import Text from "../Typography/Text/Text";
13
13
  import "./SliderSwitch.css";
14
14
 
15
- var SliderSwitchButton = function SliderSwitchButton(props) {
15
+ /**
16
+ * @deprecated Этот компонент устарел и будет удален в 5.0.0.
17
+ */
18
+ export var SliderSwitchButton = function SliderSwitchButton(props) {
16
19
  var _classNames;
17
20
 
18
21
  var active = props.active,
@@ -46,8 +49,5 @@ var SliderSwitchButton = function SliderSwitchButton(props) {
46
49
  }), createScopedElement(Text, {
47
50
  weight: "medium"
48
51
  }, children));
49
- }; // eslint-disable-next-line import/no-default-export
50
-
51
-
52
- export default SliderSwitchButton;
52
+ };
53
53
  //# sourceMappingURL=SliderSwitchButton.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SliderSwitch/SliderSwitchButton.tsx"],"names":["React","Tappable","getClassName","classNames","usePlatform","Text","SliderSwitchButton","props","active","hovered","children","getRootRef","restProps","platform","useState","focus","setFocus","toggleFocus"],"mappings":";;;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,OAAOC,QAAP;AACA,SAASC,YAAT;AACA,SAASC,UAAT;AAEA,SAASC,WAAT;AACA,OAAOC,IAAP;AACA;;AASA,IAAMC,kBAAwD,GAAG,SAA3DA,kBAA2D,CAC/DC,KAD+D,EAE5D;AAAA;;AACH,MAAQC,MAAR,GAAgED,KAAhE,CAAQC,MAAR;AAAA,MAAgBC,OAAhB,GAAgEF,KAAhE,CAAgBE,OAAhB;AAAA,MAAyBC,QAAzB,GAAgEH,KAAhE,CAAyBG,QAAzB;AAAA,MAAmCC,UAAnC,GAAgEJ,KAAhE,CAAmCI,UAAnC;AAAA,MAAkDC,SAAlD,4BAAgEL,KAAhE;;AACA,MAAMM,QAAQ,GAAGT,WAAW,EAA5B;;AACA,wBAA0BJ,KAAK,CAACc,QAAN,CAAe,KAAf,CAA1B;AAAA;AAAA,MAAOC,KAAP;AAAA,MAAcC,QAAd;;AAEA,MAAMC,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxBD,IAAAA,QAAQ,CAAC,CAACD,KAAF,CAAR;AACD,GAFD;;AAIA,SACE,oBAAC,QAAD,eACMH,SADN;AAEE,IAAA,SAAS,EAAET,UAAU,CAACD,YAAY,CAAC,sBAAD,EAAyBW,QAAzB,CAAb,kDAClB,8BADkB,EACeL,MADf,gCAElB,6BAFkB,EAEc,CAACA,MAAD,IAAWC,OAFzB,gCAGlB,mCAHkB,EAGoBD,MAAM,IAAIC,OAH9B,gCAIlB,6BAJkB,EAIcM,KAAK,IAAI,CAACN,OAJxB,gBAFvB;AAQE,IAAA,SAAS,EAAC,QARZ;AASE,IAAA,IAAI,EAAC,QATP;AAUE,IAAA,UAAU,EAAEE,UAVd;AAWE,oBAAcH,MAXhB;AAYE,IAAA,OAAO,EAAES,WAZX;AAaE,IAAA,MAAM,EAAEA,WAbV;AAcE,IAAA,QAAQ,EAAE,CAdZ;AAeE,IAAA,SAAS,EAAE,KAfb;AAgBE,IAAA,SAAS,EAAC;AAhBZ,MAkBE,oBAAC,IAAD;AAAM,IAAA,MAAM,EAAC;AAAb,KAAuBP,QAAvB,CAlBF,CADF;AAsBD,CAjCD,C,CAmCA;;;AACA,eAAeJ,kBAAf","sourcesContent":["import * as React from \"react\";\nimport Tappable from \"../Tappable/Tappable\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { HasRootRef } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport Text from \"../Typography/Text/Text\";\nimport \"./SliderSwitch.css\";\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLElement> {\n active?: boolean;\n hovered?: boolean;\n}\n\nconst SliderSwitchButton: React.FunctionComponent<ButtonProps> = (\n props: ButtonProps\n) => {\n const { active, hovered, children, getRootRef, ...restProps } = props;\n const platform = usePlatform();\n const [focus, setFocus] = React.useState(false);\n\n const toggleFocus = () => {\n setFocus(!focus);\n };\n\n return (\n <Tappable\n {...restProps}\n vkuiClass={classNames(getClassName(\"SliderSwitch__button\", platform), {\n [\"SliderSwitch__button--active\"]: active,\n [\"SliderSwitch__button--hover\"]: !active && hovered,\n [\"SliderSwitch__button--activeHover\"]: active && hovered,\n [\"SliderSwitch__button--focus\"]: focus && !hovered,\n })}\n Component=\"button\"\n type=\"button\"\n getRootRef={getRootRef}\n aria-pressed={active}\n onFocus={toggleFocus}\n onBlur={toggleFocus}\n tabIndex={0}\n hasActive={false}\n hoverMode=\"opacity\"\n >\n <Text weight=\"medium\">{children}</Text>\n </Tappable>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default SliderSwitchButton;\n"],"file":"SliderSwitchButton.js"}
1
+ {"version":3,"sources":["../../../../src/components/SliderSwitch/SliderSwitchButton.tsx"],"names":["React","Tappable","getClassName","classNames","usePlatform","Text","SliderSwitchButton","props","active","hovered","children","getRootRef","restProps","platform","useState","focus","setFocus","toggleFocus"],"mappings":";;;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,OAAOC,QAAP;AACA,SAASC,YAAT;AACA,SAASC,UAAT;AAEA,SAASC,WAAT;AACA,OAAOC,IAAP;AACA;;AASA;AACA;AACA;AACA,OAAO,IAAMC,kBAAwD,GAAG,SAA3DA,kBAA2D,CACtEC,KADsE,EAEnE;AAAA;;AACH,MAAQC,MAAR,GAAgED,KAAhE,CAAQC,MAAR;AAAA,MAAgBC,OAAhB,GAAgEF,KAAhE,CAAgBE,OAAhB;AAAA,MAAyBC,QAAzB,GAAgEH,KAAhE,CAAyBG,QAAzB;AAAA,MAAmCC,UAAnC,GAAgEJ,KAAhE,CAAmCI,UAAnC;AAAA,MAAkDC,SAAlD,4BAAgEL,KAAhE;;AACA,MAAMM,QAAQ,GAAGT,WAAW,EAA5B;;AACA,wBAA0BJ,KAAK,CAACc,QAAN,CAAe,KAAf,CAA1B;AAAA;AAAA,MAAOC,KAAP;AAAA,MAAcC,QAAd;;AAEA,MAAMC,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxBD,IAAAA,QAAQ,CAAC,CAACD,KAAF,CAAR;AACD,GAFD;;AAIA,SACE,oBAAC,QAAD,eACMH,SADN;AAEE,IAAA,SAAS,EAAET,UAAU,CAACD,YAAY,CAAC,sBAAD,EAAyBW,QAAzB,CAAb,kDAClB,8BADkB,EACeL,MADf,gCAElB,6BAFkB,EAEc,CAACA,MAAD,IAAWC,OAFzB,gCAGlB,mCAHkB,EAGoBD,MAAM,IAAIC,OAH9B,gCAIlB,6BAJkB,EAIcM,KAAK,IAAI,CAACN,OAJxB,gBAFvB;AAQE,IAAA,SAAS,EAAC,QARZ;AASE,IAAA,IAAI,EAAC,QATP;AAUE,IAAA,UAAU,EAAEE,UAVd;AAWE,oBAAcH,MAXhB;AAYE,IAAA,OAAO,EAAES,WAZX;AAaE,IAAA,MAAM,EAAEA,WAbV;AAcE,IAAA,QAAQ,EAAE,CAdZ;AAeE,IAAA,SAAS,EAAE,KAfb;AAgBE,IAAA,SAAS,EAAC;AAhBZ,MAkBE,oBAAC,IAAD;AAAM,IAAA,MAAM,EAAC;AAAb,KAAuBP,QAAvB,CAlBF,CADF;AAsBD,CAjCM","sourcesContent":["import * as React from \"react\";\nimport Tappable from \"../Tappable/Tappable\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { HasRootRef } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport Text from \"../Typography/Text/Text\";\nimport \"./SliderSwitch.css\";\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLElement> {\n active?: boolean;\n hovered?: boolean;\n}\n\n/**\n * @deprecated Этот компонент устарел и будет удален в 5.0.0.\n */\nexport const SliderSwitchButton: React.FunctionComponent<ButtonProps> = (\n props: ButtonProps\n) => {\n const { active, hovered, children, getRootRef, ...restProps } = props;\n const platform = usePlatform();\n const [focus, setFocus] = React.useState(false);\n\n const toggleFocus = () => {\n setFocus(!focus);\n };\n\n return (\n <Tappable\n {...restProps}\n vkuiClass={classNames(getClassName(\"SliderSwitch__button\", platform), {\n [\"SliderSwitch__button--active\"]: active,\n [\"SliderSwitch__button--hover\"]: !active && hovered,\n [\"SliderSwitch__button--activeHover\"]: active && hovered,\n [\"SliderSwitch__button--focus\"]: focus && !hovered,\n })}\n Component=\"button\"\n type=\"button\"\n getRootRef={getRootRef}\n aria-pressed={active}\n onFocus={toggleFocus}\n onBlur={toggleFocus}\n tabIndex={0}\n hasActive={false}\n hoverMode=\"opacity\"\n >\n <Text weight=\"medium\">{children}</Text>\n </Tappable>\n );\n};\n"],"file":"SliderSwitchButton.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Snackbar/Snackbar.tsx"],"names":["React","Touch","classNames","getClassName","ANDROID","VKCOM","rubber","withAdaptivity","ViewWidth","Text","Button","AppRootPortal","useWaitTransitionFinish","usePlatform","useTimeout","SnackbarComponent","props","children","layout","action","before","after","viewWidth","duration","onActionClick","onClose","restProps","platform","waitTransitionFinish","useState","closing","setClosing","touched","setTouched","shiftXPercentRef","useRef","shiftXCurrentRef","bodyElRef","innerElRef","animationFrameRef","isDesktop","SMALL_TABLET","transitionFinishDurationFallback","close","current","handleActionClick","e","closeTimeout","setBodyTransform","percent","cancelAnimationFrame","requestAnimationFrame","style","transform","onTouchStart","clear","onTouchMoveX","event","shiftX","originalEvent","preventDefault","offsetWidth","onTouchEnd","callback","shiftXCurrent","expectTranslateY","set","useEffect","resolvedLayout","displayName","defaultProps","Snackbar"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { Touch, TouchEvent } from \"../Touch/Touch\";\nimport { classNames } from \"../../lib/classNames\";\nimport { HasPlatform } from \"../../types\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { ANDROID, VKCOM } from \"../../lib/platform\";\nimport { rubber } from \"../../lib/touch\";\nimport { withAdaptivity, ViewWidth } from \"../../hoc/withAdaptivity\";\nimport Text from \"../Typography/Text/Text\";\nimport Button from \"../Button/Button\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { useWaitTransitionFinish } from \"../../hooks/useWaitTransitionFinish\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport { AdaptivityContextInterface } from \"../AdaptivityProvider/AdaptivityContext\";\nimport \"./Snackbar.css\";\n\nexport interface SnackbarProps\n extends React.HTMLAttributes<HTMLElement>,\n HasPlatform,\n AdaptivityContextInterface {\n /**\n * Название кнопки действия в уведомлении\n */\n action?: string | React.ComponentType;\n\n /**\n * Будет вызвано при клике на кнопку действия\n */\n onActionClick?: (e: React.MouseEvent) => void;\n\n /**\n * Цветная иконка 24x24 пикселя\n */\n before?: React.ReactNode;\n /**\n * Контент в правой части, может быть `<Avatar size={32} />`\n */\n after?: React.ReactNode;\n /**\n * Варианты расположения кнопки\n */\n layout?: \"vertical\" | \"horizontal\";\n /**\n * Время в миллисекундах, через которое плашка скроется\n */\n duration?: number;\n /**\n * Обработчик закрытия уведомления\n */\n onClose: () => void;\n}\n\nconst SnackbarComponent: React.FC<SnackbarProps> = (props: SnackbarProps) => {\n const {\n children,\n layout,\n action,\n before,\n after,\n viewWidth,\n duration = 0,\n onActionClick,\n onClose,\n ...restProps\n } = props;\n\n const platform = usePlatform();\n\n const { waitTransitionFinish } = useWaitTransitionFinish();\n\n const [closing, setClosing] = React.useState(false);\n const [touched, setTouched] = React.useState(false);\n\n const shiftXPercentRef = React.useRef<number>(0);\n const shiftXCurrentRef = React.useRef<number>(0);\n\n const bodyElRef = React.useRef<HTMLDivElement | null>(null);\n const innerElRef = React.useRef<HTMLDivElement | null>(null);\n\n const animationFrameRef = React.useRef<ReturnType<\n typeof requestAnimationFrame\n > | null>(null);\n\n const isDesktop = viewWidth >= ViewWidth.SMALL_TABLET;\n const transitionFinishDurationFallback =\n platform === ANDROID || platform === VKCOM ? 400 : 320;\n\n const close = () => {\n setClosing(true);\n waitTransitionFinish(\n innerElRef.current,\n () => {\n onClose();\n },\n transitionFinishDurationFallback\n );\n };\n\n const handleActionClick: React.MouseEventHandler<HTMLElement> = (e) => {\n close();\n\n if (action && typeof onActionClick === \"function\") {\n onActionClick(e);\n }\n };\n\n const closeTimeout = useTimeout(close, duration);\n\n const setBodyTransform = (percent: number) => {\n if (animationFrameRef.current !== null) {\n cancelAnimationFrame(animationFrameRef.current);\n }\n animationFrameRef.current = requestAnimationFrame(() => {\n if (bodyElRef.current) {\n bodyElRef.current.style.transform = `translate3d(${percent}%, 0, 0)`;\n }\n });\n };\n\n const onTouchStart = closeTimeout.clear;\n\n const onTouchMoveX = (event: TouchEvent) => {\n const { shiftX, originalEvent } = event;\n originalEvent.preventDefault();\n\n if (!touched) {\n setTouched(true);\n }\n\n shiftXPercentRef.current =\n (shiftX / (bodyElRef.current?.offsetWidth ?? 0)) * 100;\n shiftXCurrentRef.current = rubber(\n shiftXPercentRef.current,\n 72,\n 1.2,\n platform === ANDROID || platform === VKCOM\n );\n\n setBodyTransform(shiftXCurrentRef.current);\n };\n\n const onTouchEnd = (e: TouchEvent) => {\n let callback: VoidFunction | undefined;\n\n if (touched) {\n let shiftXCurrent = shiftXCurrentRef.current;\n const expectTranslateY = (shiftXCurrent / e.duration) * 240 * 0.6;\n shiftXCurrent = shiftXCurrent + expectTranslateY;\n\n if (isDesktop && shiftXCurrent <= -50) {\n closeTimeout.clear();\n waitTransitionFinish(\n bodyElRef.current,\n () => {\n onClose();\n },\n transitionFinishDurationFallback\n );\n setBodyTransform(-120);\n } else if (!isDesktop && shiftXCurrent >= 50) {\n closeTimeout.clear();\n waitTransitionFinish(\n bodyElRef.current,\n () => {\n onClose();\n },\n transitionFinishDurationFallback\n );\n setBodyTransform(120);\n } else {\n callback = () => {\n closeTimeout.set();\n setBodyTransform(0);\n };\n }\n } else {\n closeTimeout.set();\n }\n\n setTouched(false);\n callback && requestAnimationFrame(callback);\n };\n\n React.useEffect(() => closeTimeout.set(), [closeTimeout]);\n\n const resolvedLayout = after || isDesktop ? \"vertical\" : layout;\n\n return (\n <AppRootPortal>\n <div\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"Snackbar\", platform),\n `Snackbar--l-${resolvedLayout}`,\n {\n \"Snackbar--closing\": closing,\n \"Snackbar--touched\": touched,\n \"Snackbar--desktop\": isDesktop,\n }\n )}\n >\n <Touch\n vkuiClass=\"Snackbar__in\"\n getRootRef={innerElRef}\n onStart={onTouchStart}\n onMoveX={onTouchMoveX}\n onEnd={onTouchEnd}\n >\n <div vkuiClass=\"Snackbar__body\" ref={bodyElRef}>\n {before && <div vkuiClass=\"Snackbar__before\">{before}</div>}\n\n <div vkuiClass=\"Snackbar__content\">\n <Text weight=\"regular\" vkuiClass=\"Snackbar__content-text\">\n {children}\n </Text>\n\n {action && (\n <Button\n align=\"left\"\n hasHover={false}\n mode=\"tertiary\"\n size=\"s\"\n vkuiClass=\"Snackbar__action\"\n onClick={handleActionClick}\n >\n {action}\n </Button>\n )}\n </div>\n\n {after && <div vkuiClass=\"Snackbar__after\">{after}</div>}\n </div>\n </Touch>\n </div>\n </AppRootPortal>\n );\n};\n\nSnackbarComponent.displayName = \"Snackbar\";\n\nSnackbarComponent.defaultProps = {\n duration: 4000,\n layout: \"horizontal\",\n};\n\nexport const Snackbar = withAdaptivity(SnackbarComponent, {\n viewWidth: true,\n});\n"],"file":"Snackbar.js"}
1
+ {"version":3,"sources":["../../../../src/components/Snackbar/Snackbar.tsx"],"names":["React","Touch","classNames","getClassName","ANDROID","VKCOM","rubber","withAdaptivity","ViewWidth","Text","Button","AppRootPortal","useWaitTransitionFinish","usePlatform","useTimeout","SnackbarComponent","props","children","layout","action","before","after","viewWidth","duration","onActionClick","onClose","restProps","platform","waitTransitionFinish","useState","closing","setClosing","touched","setTouched","shiftXPercentRef","useRef","shiftXCurrentRef","bodyElRef","innerElRef","animationFrameRef","isDesktop","SMALL_TABLET","transitionFinishDurationFallback","close","current","handleActionClick","e","closeTimeout","setBodyTransform","percent","cancelAnimationFrame","requestAnimationFrame","style","transform","onTouchStart","clear","onTouchMoveX","event","shiftX","originalEvent","preventDefault","offsetWidth","onTouchEnd","callback","shiftXCurrent","expectTranslateY","set","useEffect","resolvedLayout","displayName","defaultProps","Snackbar"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { Touch, TouchEvent } from \"../Touch/Touch\";\nimport { classNames } from \"../../lib/classNames\";\nimport { HasPlatform } from \"../../types\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { ANDROID, VKCOM } from \"../../lib/platform\";\nimport { rubber } from \"../../lib/touch\";\nimport { withAdaptivity, ViewWidth } from \"../../hoc/withAdaptivity\";\nimport Text from \"../Typography/Text/Text\";\nimport Button from \"../Button/Button\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { useWaitTransitionFinish } from \"../../hooks/useWaitTransitionFinish\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport {\n AdaptivityContextInterface,\n AdaptivityProps,\n} from \"../AdaptivityProvider/AdaptivityContext\";\nimport \"./Snackbar.css\";\n\nexport interface SnackbarProps\n extends React.HTMLAttributes<HTMLElement>,\n HasPlatform,\n AdaptivityProps {\n /**\n * Название кнопки действия в уведомлении\n */\n action?: string | React.ComponentType;\n\n /**\n * Будет вызвано при клике на кнопку действия\n */\n onActionClick?: (e: React.MouseEvent) => void;\n\n /**\n * Цветная иконка 24x24 пикселя\n */\n before?: React.ReactNode;\n /**\n * Контент в правой части, может быть `<Avatar size={32} />`\n */\n after?: React.ReactNode;\n /**\n * Варианты расположения кнопки\n */\n layout?: \"vertical\" | \"horizontal\";\n /**\n * Время в миллисекундах, через которое плашка скроется\n */\n duration?: number;\n /**\n * Обработчик закрытия уведомления\n */\n onClose: () => void;\n}\n\nconst SnackbarComponent: React.FC<\n SnackbarProps & AdaptivityContextInterface\n> = (props) => {\n const {\n children,\n layout,\n action,\n before,\n after,\n viewWidth,\n duration = 0,\n onActionClick,\n onClose,\n ...restProps\n } = props;\n\n const platform = usePlatform();\n\n const { waitTransitionFinish } = useWaitTransitionFinish();\n\n const [closing, setClosing] = React.useState(false);\n const [touched, setTouched] = React.useState(false);\n\n const shiftXPercentRef = React.useRef<number>(0);\n const shiftXCurrentRef = React.useRef<number>(0);\n\n const bodyElRef = React.useRef<HTMLDivElement | null>(null);\n const innerElRef = React.useRef<HTMLDivElement | null>(null);\n\n const animationFrameRef = React.useRef<ReturnType<\n typeof requestAnimationFrame\n > | null>(null);\n\n const isDesktop = viewWidth >= ViewWidth.SMALL_TABLET;\n const transitionFinishDurationFallback =\n platform === ANDROID || platform === VKCOM ? 400 : 320;\n\n const close = () => {\n setClosing(true);\n waitTransitionFinish(\n innerElRef.current,\n () => {\n onClose();\n },\n transitionFinishDurationFallback\n );\n };\n\n const handleActionClick: React.MouseEventHandler<HTMLElement> = (e) => {\n close();\n\n if (action && typeof onActionClick === \"function\") {\n onActionClick(e);\n }\n };\n\n const closeTimeout = useTimeout(close, duration);\n\n const setBodyTransform = (percent: number) => {\n if (animationFrameRef.current !== null) {\n cancelAnimationFrame(animationFrameRef.current);\n }\n animationFrameRef.current = requestAnimationFrame(() => {\n if (bodyElRef.current) {\n bodyElRef.current.style.transform = `translate3d(${percent}%, 0, 0)`;\n }\n });\n };\n\n const onTouchStart = closeTimeout.clear;\n\n const onTouchMoveX = (event: TouchEvent) => {\n const { shiftX, originalEvent } = event;\n originalEvent.preventDefault();\n\n if (!touched) {\n setTouched(true);\n }\n\n shiftXPercentRef.current =\n (shiftX / (bodyElRef.current?.offsetWidth ?? 0)) * 100;\n shiftXCurrentRef.current = rubber(\n shiftXPercentRef.current,\n 72,\n 1.2,\n platform === ANDROID || platform === VKCOM\n );\n\n setBodyTransform(shiftXCurrentRef.current);\n };\n\n const onTouchEnd = (e: TouchEvent) => {\n let callback: VoidFunction | undefined;\n\n if (touched) {\n let shiftXCurrent = shiftXCurrentRef.current;\n const expectTranslateY = (shiftXCurrent / e.duration) * 240 * 0.6;\n shiftXCurrent = shiftXCurrent + expectTranslateY;\n\n if (isDesktop && shiftXCurrent <= -50) {\n closeTimeout.clear();\n waitTransitionFinish(\n bodyElRef.current,\n () => {\n onClose();\n },\n transitionFinishDurationFallback\n );\n setBodyTransform(-120);\n } else if (!isDesktop && shiftXCurrent >= 50) {\n closeTimeout.clear();\n waitTransitionFinish(\n bodyElRef.current,\n () => {\n onClose();\n },\n transitionFinishDurationFallback\n );\n setBodyTransform(120);\n } else {\n callback = () => {\n closeTimeout.set();\n setBodyTransform(0);\n };\n }\n } else {\n closeTimeout.set();\n }\n\n setTouched(false);\n callback && requestAnimationFrame(callback);\n };\n\n React.useEffect(() => closeTimeout.set(), [closeTimeout]);\n\n const resolvedLayout = after || isDesktop ? \"vertical\" : layout;\n\n return (\n <AppRootPortal>\n <div\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"Snackbar\", platform),\n `Snackbar--l-${resolvedLayout}`,\n {\n \"Snackbar--closing\": closing,\n \"Snackbar--touched\": touched,\n \"Snackbar--desktop\": isDesktop,\n }\n )}\n >\n <Touch\n vkuiClass=\"Snackbar__in\"\n getRootRef={innerElRef}\n onStart={onTouchStart}\n onMoveX={onTouchMoveX}\n onEnd={onTouchEnd}\n >\n <div vkuiClass=\"Snackbar__body\" ref={bodyElRef}>\n {before && <div vkuiClass=\"Snackbar__before\">{before}</div>}\n\n <div vkuiClass=\"Snackbar__content\">\n <Text weight=\"regular\" vkuiClass=\"Snackbar__content-text\">\n {children}\n </Text>\n\n {action && (\n <Button\n align=\"left\"\n hasHover={false}\n mode=\"tertiary\"\n size=\"s\"\n vkuiClass=\"Snackbar__action\"\n onClick={handleActionClick}\n >\n {action}\n </Button>\n )}\n </div>\n\n {after && <div vkuiClass=\"Snackbar__after\">{after}</div>}\n </div>\n </Touch>\n </div>\n </AppRootPortal>\n );\n};\n\nSnackbarComponent.displayName = \"Snackbar\";\n\nSnackbarComponent.defaultProps = {\n duration: 4000,\n layout: \"horizontal\",\n};\n\nexport const Snackbar = withAdaptivity(SnackbarComponent, {\n viewWidth: true,\n});\n"],"file":"Snackbar.js"}
@@ -1 +1 @@
1
- .vkuiSwitch{position:relative;display:block;cursor:pointer}.vkuiSwitch--disabled{cursor:default}.vkuiSwitch__self{position:absolute;width:1px;height:1px;margin:0;padding:0;border:0;clip:rect(1px,1px,1px,1px);overflow:hidden;opacity:0}.vkuiSwitch__pseudo{position:relative;display:block;box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent}.vkuiSwitch__pseudo::before{position:absolute;content:"";top:-3px;left:-3px;border-radius:50%;box-sizing:border-box}.vkuiSwitch__self:checked+.vkuiSwitch__pseudo::before{-webkit-transform:translateX(20px);transform:translateX(20px)}.vkuiSwitch__self[disabled]+.vkuiSwitch__pseudo{opacity:.4}.vkuiSwitch--ios .vkuiSwitch__pseudo{width:51px;height:31px;border:2px solid transparent;background:rgba(0,28,61,.08);background:var(--placeholder_icon_background);border-radius:15px}.vkuiSwitch--ios.vkuiSwitch--sizeY-compact .vkuiSwitch__pseudo{width:47px;height:27px;border-radius:13px}.vkuiSwitch--ios .vkuiSwitch__self:checked+.vkuiSwitch__pseudo{background:#2688eb;background:var(--accent)}.vkuiSwitch--ios .vkuiSwitch__pseudo::before{top:0;left:0;width:27px;height:27px;background:#fff;background:var(--white);box-shadow:0 3px 8px rgba(0,0,0,.15),0 3px 1px rgba(0,0,0,.06),inset 0 0 0 .5px rgba(0,0,0,.04)}.vkuiSwitch--ios.vkuiSwitch--sizeY-compact .vkuiSwitch__pseudo::before{width:23px;height:23px}.vkuiSwitch--android,.vkuiSwitch--vkcom{padding:3px}.vkuiSwitch--android .vkuiSwitch__pseudo::after,.vkuiSwitch--vkcom .vkuiSwitch__pseudo::after{content:"";display:block;width:100%;height:100%}.vkuiSwitch--android .vkuiSwitch__self:checked+.vkuiSwitch__pseudo::after,.vkuiSwitch--vkcom .vkuiSwitch__self:checked+.vkuiSwitch__pseudo::after{background:#2688eb;background:var(--accent);opacity:.48}.vkuiSwitch--android .vkuiSwitch__pseudo{width:34px;height:14px}.vkuiSwitch--android .vkuiSwitch__pseudo::after{background:#c6c5c5;border-radius:7px}.vkuiSwitch--android.vkuiSwitch--sizeY-compact .vkuiSwitch__pseudo{width:32px;height:12px}.vkuiSwitch--android.vkuiSwitch--sizeY-compact .vkuiSwitch__pseudo::after{border-radius:6px}.vkuiSwitch--android .vkuiSwitch__pseudo::before{width:20px;height:20px;background:#f1f1f1;box-shadow:0 0 2px 0 rgba(0,0,0,.12),0 2px 2px 0 rgba(0,0,0,.24)}.vkuiSwitch--android.vkuiSwitch--sizeY-compact .vkuiSwitch__pseudo::before{width:18px;height:18px}.vkuiSwitch--android .vkuiSwitch__self:checked+.vkuiSwitch__pseudo::before{background:#2688eb;background:var(--accent)}.vkuiSwitch--android.vkuiSwitch--sizeY-compact .vkuiSwitch__self:checked+.vkuiSwitch__pseudo::before{-webkit-transform:translateX(19px);transform:translateX(19px)}.vkuiSwitch--vkcom .vkuiSwitch__pseudo{width:28px;height:10px}.vkuiSwitch--vkcom .vkuiSwitch__pseudo::after{border-radius:45px;background:#b8c1cc;background:var(--icon_tertiary);opacity:.48}.vkuiSwitch--vkcom .vkuiSwitch__pseudo::before{left:-2px;width:16px;height:16px;background:#f9f9f9;background:var(--background_light);border:1px solid #b8c1cc;border:1px solid var(--icon_tertiary);z-index:1}.vkuiSwitch--vkcom .vkuiSwitch__self:checked+.vkuiSwitch__pseudo::before{background:#2688eb;background:var(--accent);border:0;-webkit-transform:translateX(16px);transform:translateX(16px)}@media (prefers-reduced-motion:no-preference){.vkuiSwitch__pseudo::before{transition:-webkit-transform .1s ease;transition:transform .1s ease;transition:transform .1s ease,-webkit-transform .1s ease}.vkuiSwitch--ios .vkuiSwitch__pseudo{transition:background-color .2s ease,border-color .2s ease}.vkuiSwitch--ios .vkuiSwitch__pseudo::before{transition:-webkit-transform .2s cubic-bezier(.36,-.24,.26,1.32);transition:transform .2s cubic-bezier(.36,-.24,.26,1.32);transition:transform .2s cubic-bezier(.36,-.24,.26,1.32),-webkit-transform .2s cubic-bezier(.36,-.24,.26,1.32)}.vkuiSwitch--android .vkuiSwitch__pseudo::after,.vkuiSwitch--vkcom .vkuiSwitch__pseudo::after{transition:background-color .1s ease}}.vkuiSimpleCell .vkuiSwitch{margin-left:10px}
1
+ .vkuiSwitch{position:relative;display:block;cursor:pointer}.vkuiSwitch--disabled{cursor:default}.vkuiSwitch__pseudo{position:relative;display:block;box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent}.vkuiSwitch__pseudo::before{position:absolute;content:"";top:-3px;left:-3px;border-radius:50%;box-sizing:border-box}.vkuiSwitch__self:checked+.vkuiSwitch__pseudo::before{-webkit-transform:translateX(20px);transform:translateX(20px)}.vkuiSwitch__self[disabled]+.vkuiSwitch__pseudo{opacity:.4}.vkuiSwitch--ios .vkuiSwitch__pseudo{width:51px;height:31px;border:2px solid transparent;background:rgba(0,28,61,.08);background:var(--placeholder_icon_background);border-radius:15px}.vkuiSwitch--ios.vkuiSwitch--sizeY-compact .vkuiSwitch__pseudo{width:47px;height:27px;border-radius:13px}.vkuiSwitch--ios .vkuiSwitch__self:checked+.vkuiSwitch__pseudo{background:#2688eb;background:var(--accent)}.vkuiSwitch--ios .vkuiSwitch__pseudo::before{top:0;left:0;width:27px;height:27px;background:#fff;background:var(--white);box-shadow:0 3px 8px rgba(0,0,0,.15),0 3px 1px rgba(0,0,0,.06),inset 0 0 0 .5px rgba(0,0,0,.04)}.vkuiSwitch--ios.vkuiSwitch--sizeY-compact .vkuiSwitch__pseudo::before{width:23px;height:23px}.vkuiSwitch--android,.vkuiSwitch--vkcom{padding:3px}.vkuiSwitch--android .vkuiSwitch__pseudo::after,.vkuiSwitch--vkcom .vkuiSwitch__pseudo::after{content:"";display:block;width:100%;height:100%}.vkuiSwitch--android .vkuiSwitch__self:checked+.vkuiSwitch__pseudo::after,.vkuiSwitch--vkcom .vkuiSwitch__self:checked+.vkuiSwitch__pseudo::after{background:#2688eb;background:var(--accent);opacity:.48}.vkuiSwitch--android .vkuiSwitch__pseudo{width:34px;height:14px}.vkuiSwitch--android .vkuiSwitch__pseudo::after{background:#c6c5c5;border-radius:7px}.vkuiSwitch--android.vkuiSwitch--sizeY-compact .vkuiSwitch__pseudo{width:32px;height:12px}.vkuiSwitch--android.vkuiSwitch--sizeY-compact .vkuiSwitch__pseudo::after{border-radius:6px}.vkuiSwitch--android .vkuiSwitch__pseudo::before{width:20px;height:20px;background:#f1f1f1;box-shadow:0 0 2px 0 rgba(0,0,0,.12),0 2px 2px 0 rgba(0,0,0,.24)}.vkuiSwitch--android.vkuiSwitch--sizeY-compact .vkuiSwitch__pseudo::before{width:18px;height:18px}.vkuiSwitch--android .vkuiSwitch__self:checked+.vkuiSwitch__pseudo::before{background:#2688eb;background:var(--accent)}.vkuiSwitch--android.vkuiSwitch--sizeY-compact .vkuiSwitch__self:checked+.vkuiSwitch__pseudo::before{-webkit-transform:translateX(19px);transform:translateX(19px)}.vkuiSwitch--vkcom .vkuiSwitch__pseudo{width:28px;height:10px}.vkuiSwitch--vkcom .vkuiSwitch__pseudo::after{border-radius:45px;background:#b8c1cc;background:var(--icon_tertiary);opacity:.48}.vkuiSwitch--vkcom .vkuiSwitch__pseudo::before{left:-2px;width:16px;height:16px;background:#f9f9f9;background:var(--background_light);border:1px solid #b8c1cc;border:1px solid var(--icon_tertiary);z-index:1}.vkuiSwitch--vkcom .vkuiSwitch__self:checked+.vkuiSwitch__pseudo::before{background:#2688eb;background:var(--accent);border:0;-webkit-transform:translateX(16px);transform:translateX(16px)}@media (prefers-reduced-motion:no-preference){.vkuiSwitch__pseudo::before{transition:-webkit-transform .1s ease;transition:transform .1s ease;transition:transform .1s ease,-webkit-transform .1s ease}.vkuiSwitch--ios .vkuiSwitch__pseudo{transition:background-color .2s ease,border-color .2s ease}.vkuiSwitch--ios .vkuiSwitch__pseudo::before{transition:-webkit-transform .2s cubic-bezier(.36,-.24,.26,1.32);transition:transform .2s cubic-bezier(.36,-.24,.26,1.32);transition:transform .2s cubic-bezier(.36,-.24,.26,1.32),-webkit-transform .2s cubic-bezier(.36,-.24,.26,1.32)}.vkuiSwitch--android .vkuiSwitch__pseudo::after,.vkuiSwitch--vkcom .vkuiSwitch__pseudo::after{transition:background-color .1s ease}}.vkuiSimpleCell .vkuiSwitch{margin-left:10px}
@@ -1,20 +1,19 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["style", "className", "getRef", "getRootRef"];
3
+ var _excluded = ["style", "className", "getRootRef"];
4
4
  import { createScopedElement } from "../../lib/jsxRuntime";
5
5
  import { getClassName } from "../../helpers/getClassName";
6
6
  import { classNames } from "../../lib/classNames";
7
7
  import { callMultiple } from "../../lib/callMultiple";
8
8
  import { usePlatform } from "../../hooks/usePlatform";
9
9
  import { useAdaptivity } from "../../hooks/useAdaptivity";
10
- import { useExternRef } from "../../hooks/useExternRef";
10
+ import { VisuallyHiddenInput } from "../VisuallyHiddenInput/VisuallyHiddenInput";
11
11
  import { useFocusVisible } from "../../hooks/useFocusVisible";
12
12
  import { FocusVisible } from "../FocusVisible/FocusVisible";
13
13
  import "./Switch.css";
14
14
  export var Switch = function Switch(_ref) {
15
15
  var style = _ref.style,
16
16
  className = _ref.className,
17
- getRef = _ref.getRef,
18
17
  getRootRef = _ref.getRootRef,
19
18
  restProps = _objectWithoutProperties(_ref, _excluded);
20
19
 
@@ -28,7 +27,6 @@ export var Switch = function Switch(_ref) {
28
27
  onBlur = _useFocusVisible.onBlur,
29
28
  onFocus = _useFocusVisible.onFocus;
30
29
 
31
- var inputRef = useExternRef(getRef);
32
30
  return createScopedElement("label", {
33
31
  vkuiClass: classNames(getClassName("Switch", platform), "Switch--sizeY-".concat(sizeY), {
34
32
  "Switch--disabled": restProps.disabled,
@@ -38,10 +36,9 @@ export var Switch = function Switch(_ref) {
38
36
  style: style,
39
37
  ref: getRootRef,
40
38
  role: "presentation"
41
- }, createScopedElement("input", _extends({}, restProps, {
39
+ }, createScopedElement(VisuallyHiddenInput, _extends({}, restProps, {
42
40
  type: "checkbox",
43
41
  vkuiClass: "Switch__self",
44
- ref: inputRef,
45
42
  onBlur: callMultiple(onBlur, restProps.onBlur),
46
43
  onFocus: callMultiple(onFocus, restProps.onFocus)
47
44
  })), createScopedElement("span", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Switch/Switch.tsx"],"names":["getClassName","classNames","callMultiple","usePlatform","useAdaptivity","useExternRef","useFocusVisible","FocusVisible","Switch","style","className","getRef","getRootRef","restProps","platform","sizeY","focusVisible","onBlur","onFocus","inputRef","disabled"],"mappings":";;;;AACA,SAASA,YAAT;AACA,SAASC,UAAT;AACA,SAASC,YAAT;AACA,SAASC,WAAT;AAEA,SAASC,aAAT;AACA,SAASC,YAAT;AACA,SAASC,eAAT;AACA,SAASC,YAAT;AACA;AAOA,OAAO,IAAMC,MAA6B,GAAG,SAAhCA,MAAgC,OAM1B;AAAA,MALjBC,KAKiB,QALjBA,KAKiB;AAAA,MAJjBC,SAIiB,QAJjBA,SAIiB;AAAA,MAHjBC,MAGiB,QAHjBA,MAGiB;AAAA,MAFjBC,UAEiB,QAFjBA,UAEiB;AAAA,MADdC,SACc;;AACjB,MAAMC,QAAQ,GAAGX,WAAW,EAA5B;;AACA,uBAAkBC,aAAa,EAA/B;AAAA,MAAQW,KAAR,kBAAQA,KAAR;;AACA,yBAA0CT,eAAe,EAAzD;AAAA,MAAQU,YAAR,oBAAQA,YAAR;AAAA,MAAsBC,MAAtB,oBAAsBA,MAAtB;AAAA,MAA8BC,OAA9B,oBAA8BA,OAA9B;;AAEA,MAAMC,QAAQ,GAAGd,YAAY,CAACM,MAAD,CAA7B;AAEA,SACE;AACE,IAAA,SAAS,EAAEV,UAAU,CACnBD,YAAY,CAAC,QAAD,EAAWc,QAAX,CADO,0BAEFC,KAFE,GAGnB;AACE,0BAAoBF,SAAS,CAACO,QADhC;AAEE,+BAAyBJ;AAF3B,KAHmB,CADvB;AASE,IAAA,SAAS,EAAEN,SATb;AAUE,IAAA,KAAK,EAAED,KAVT;AAWE,IAAA,GAAG,EAAEG,UAXP;AAYE,IAAA,IAAI,EAAC;AAZP,KAcE,0CACMC,SADN;AAEE,IAAA,IAAI,EAAC,UAFP;AAGE,IAAA,SAAS,EAAC,cAHZ;AAIE,IAAA,GAAG,EAAEM,QAJP;AAKE,IAAA,MAAM,EAAEjB,YAAY,CAACe,MAAD,EAASJ,SAAS,CAACI,MAAnB,CALtB;AAME,IAAA,OAAO,EAAEf,YAAY,CAACgB,OAAD,EAAUL,SAAS,CAACK,OAApB;AANvB,KAdF,EAsBE;AAAM,IAAA,IAAI,EAAC,cAAX;AAA0B,IAAA,SAAS,EAAC;AAApC,IAtBF,EAuBE,oBAAC,YAAD;AAAc,IAAA,IAAI,EAAC;AAAnB,IAvBF,CADF;AA2BD,CAxCM","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { callMultiple } from \"../../lib/callMultiple\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { HasRef, HasRootRef } from \"../../types\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useFocusVisible } from \"../../hooks/useFocusVisible\";\nimport { FocusVisible } from \"../FocusVisible/FocusVisible\";\nimport \"./Switch.css\";\n\nexport interface SwitchProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRootRef<HTMLLabelElement>,\n HasRef<HTMLInputElement> {}\n\nexport const Switch: React.FC<SwitchProps> = ({\n style,\n className,\n getRef,\n getRootRef,\n ...restProps\n}: SwitchProps) => {\n const platform = usePlatform();\n const { sizeY } = useAdaptivity();\n const { focusVisible, onBlur, onFocus } = useFocusVisible();\n\n const inputRef = useExternRef(getRef);\n\n return (\n <label\n vkuiClass={classNames(\n getClassName(\"Switch\", platform),\n `Switch--sizeY-${sizeY}`,\n {\n \"Switch--disabled\": restProps.disabled,\n \"Switch--focus-visible\": focusVisible,\n }\n )}\n className={className}\n style={style}\n ref={getRootRef}\n role=\"presentation\"\n >\n <input\n {...restProps}\n type=\"checkbox\"\n vkuiClass=\"Switch__self\"\n ref={inputRef}\n onBlur={callMultiple(onBlur, restProps.onBlur)}\n onFocus={callMultiple(onFocus, restProps.onFocus)}\n />\n <span role=\"presentation\" vkuiClass=\"Switch__pseudo\" />\n <FocusVisible mode=\"outside\" />\n </label>\n );\n};\n"],"file":"Switch.js"}
1
+ {"version":3,"sources":["../../../../src/components/Switch/Switch.tsx"],"names":["getClassName","classNames","callMultiple","usePlatform","useAdaptivity","VisuallyHiddenInput","useFocusVisible","FocusVisible","Switch","style","className","getRootRef","restProps","platform","sizeY","focusVisible","onBlur","onFocus","disabled"],"mappings":";;;;AACA,SAASA,YAAT;AACA,SAASC,UAAT;AACA,SAASC,YAAT;AACA,SAASC,WAAT;AAEA,SAASC,aAAT;AACA,SACEC,mBADF;AAIA,SAASC,eAAT;AACA,SAASC,YAAT;AACA;AAMA,OAAO,IAAMC,MAA6B,GAAG,SAAhCA,MAAgC,OAK1B;AAAA,MAJjBC,KAIiB,QAJjBA,KAIiB;AAAA,MAHjBC,SAGiB,QAHjBA,SAGiB;AAAA,MAFjBC,UAEiB,QAFjBA,UAEiB;AAAA,MADdC,SACc;;AACjB,MAAMC,QAAQ,GAAGV,WAAW,EAA5B;;AACA,uBAAkBC,aAAa,EAA/B;AAAA,MAAQU,KAAR,kBAAQA,KAAR;;AACA,yBAA0CR,eAAe,EAAzD;AAAA,MAAQS,YAAR,oBAAQA,YAAR;AAAA,MAAsBC,MAAtB,oBAAsBA,MAAtB;AAAA,MAA8BC,OAA9B,oBAA8BA,OAA9B;;AAEA,SACE;AACE,IAAA,SAAS,EAAEhB,UAAU,CACnBD,YAAY,CAAC,QAAD,EAAWa,QAAX,CADO,0BAEFC,KAFE,GAGnB;AACE,0BAAoBF,SAAS,CAACM,QADhC;AAEE,+BAAyBH;AAF3B,KAHmB,CADvB;AASE,IAAA,SAAS,EAAEL,SATb;AAUE,IAAA,KAAK,EAAED,KAVT;AAWE,IAAA,GAAG,EAAEE,UAXP;AAYE,IAAA,IAAI,EAAC;AAZP,KAcE,oBAAC,mBAAD,eACMC,SADN;AAEE,IAAA,IAAI,EAAC,UAFP;AAGE,IAAA,SAAS,EAAC,cAHZ;AAIE,IAAA,MAAM,EAAEV,YAAY,CAACc,MAAD,EAASJ,SAAS,CAACI,MAAnB,CAJtB;AAKE,IAAA,OAAO,EAAEd,YAAY,CAACe,OAAD,EAAUL,SAAS,CAACK,OAApB;AALvB,KAdF,EAqBE;AAAM,IAAA,IAAI,EAAC,cAAX;AAA0B,IAAA,SAAS,EAAC;AAApC,IArBF,EAsBE,oBAAC,YAAD;AAAc,IAAA,IAAI,EAAC;AAAnB,IAtBF,CADF;AA0BD,CApCM","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { callMultiple } from \"../../lib/callMultiple\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { HasRootRef } from \"../../types\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport {\n VisuallyHiddenInput,\n VisuallyHiddenInputProps,\n} from \"../VisuallyHiddenInput/VisuallyHiddenInput\";\nimport { useFocusVisible } from \"../../hooks/useFocusVisible\";\nimport { FocusVisible } from \"../FocusVisible/FocusVisible\";\nimport \"./Switch.css\";\n\nexport interface SwitchProps\n extends VisuallyHiddenInputProps,\n HasRootRef<HTMLLabelElement> {}\n\nexport const Switch: React.FC<SwitchProps> = ({\n style,\n className,\n getRootRef,\n ...restProps\n}: SwitchProps) => {\n const platform = usePlatform();\n const { sizeY } = useAdaptivity();\n const { focusVisible, onBlur, onFocus } = useFocusVisible();\n\n return (\n <label\n vkuiClass={classNames(\n getClassName(\"Switch\", platform),\n `Switch--sizeY-${sizeY}`,\n {\n \"Switch--disabled\": restProps.disabled,\n \"Switch--focus-visible\": focusVisible,\n }\n )}\n className={className}\n style={style}\n ref={getRootRef}\n role=\"presentation\"\n >\n <VisuallyHiddenInput\n {...restProps}\n type=\"checkbox\"\n vkuiClass=\"Switch__self\"\n onBlur={callMultiple(onBlur, restProps.onBlur)}\n onFocus={callMultiple(onFocus, restProps.onFocus)}\n />\n <span role=\"presentation\" vkuiClass=\"Switch__pseudo\" />\n <FocusVisible mode=\"outside\" />\n </label>\n );\n};\n"],"file":"Switch.js"}
@@ -9,7 +9,9 @@ import { usePlatform } from "../../hooks/usePlatform";
9
9
  import { hasReactNode } from "../../lib/utils";
10
10
  import Tappable from "../Tappable/Tappable";
11
11
  import { Platform } from "../../lib/platform";
12
+ import { warnOnce } from "../../lib/warnOnce";
12
13
  import "./TabbarItem.css";
14
+ var warn = warnOnce("TabbarItem");
13
15
 
14
16
  var TabbarItem = function TabbarItem(_ref) {
15
17
  var children = _ref.children,
@@ -23,7 +25,11 @@ var TabbarItem = function TabbarItem(_ref) {
23
25
  disabled = _ref.disabled,
24
26
  restProps = _objectWithoutProperties(_ref, _excluded);
25
27
 
26
- var platform = usePlatform(); // @ts-ignore ругается на то, что у AllHTMLAttributes type это строка, а button не любую строку считает валидным значением
28
+ var platform = usePlatform();
29
+
30
+ if (label && process.env.NODE_ENV === "development") {
31
+ warn("Свойство label устарело и будет удалено в 5.0.0. Используйте indicator.");
32
+ }
27
33
 
28
34
  return createScopedElement(Component, _extends({}, restProps, {
29
35
  disabled: disabled,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/TabbarItem/TabbarItem.tsx"],"names":["getClassName","Counter","classNames","usePlatform","hasReactNode","Tappable","Platform","TabbarItem","children","selected","label","indicator","text","href","Component","disabled","restProps","platform","IOS"],"mappings":";;;;AACA,SAASA,YAAT;AACA,OAAOC,OAAP;AACA,SAASC,UAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,OAAOC,QAAP;AACA,SAASC,QAAT;AAEA;;AAqBA,IAAMC,UAAoD,GAAG,SAAvDA,UAAuD,OAUtC;AAAA,MATrBC,QASqB,QATrBA,QASqB;AAAA,MARrBC,QAQqB,QARrBA,QAQqB;AAAA,MAPrBC,KAOqB,QAPrBA,KAOqB;AAAA,MANrBC,SAMqB,QANrBA,SAMqB;AAAA,MALrBC,IAKqB,QALrBA,IAKqB;AAAA,MAJrBC,IAIqB,QAJrBA,IAIqB;AAAA,4BAHrBC,SAGqB;AAAA,MAHrBA,SAGqB,+BAHTD,IAAI,GAAG,GAAH,GAAS,QAGJ;AAAA,MAFrBE,QAEqB,QAFrBA,QAEqB;AAAA,MADlBC,SACkB;;AACrB,MAAMC,QAAQ,GAAGd,WAAW,EAA5B,CADqB,CAGrB;;AACA,SACE,oBAAC,SAAD,eACMa,SADN;AAEE,IAAA,QAAQ,EAAED,QAFZ;AAGE,IAAA,IAAI,EAAEF,IAHR;AAIE,IAAA,SAAS,EAAEX,UAAU,CAACF,YAAY,CAAC,YAAD,EAAeiB,QAAf,CAAb,EAAuC;AAC1D,8BAAwBR,QADkC;AAE1D,0BAAoB,CAAC,CAACG;AAFoC,KAAvC;AAJvB,MASE,oBAAC,QAAD;AACE,IAAA,IAAI,EAAC,cADP;AAEE,IAAA,SAAS,EAAC,KAFZ;AAGE,IAAA,QAAQ,EAAEG,QAHZ;AAIE,IAAA,UAAU,EACRE,QAAQ,KAAKX,QAAQ,CAACY,GAAtB,GACI,8BADJ,GAEI,YAPR;AASE,IAAA,iBAAiB,EAAED,QAAQ,KAAKX,QAAQ,CAACY,GAAtB,GAA4B,CAA5B,GAAgC,GATrD;AAUE,IAAA,QAAQ,EAAE,KAVZ;AAWE,IAAA,SAAS,EAAC;AAXZ,IATF,EAsBE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGV,QADH,EAEE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGJ,YAAY,CAACO,SAAD,CAAZ,IAA2BA,SAD9B,EAEG,CAACA,SAAD,IAAcD,KAAd,IACC,oBAAC,OAAD;AAAS,IAAA,IAAI,EAAC,GAAd;AAAkB,IAAA,IAAI,EAAC;AAAvB,KACGA,KADH,CAHJ,CAFF,CADF,EAYGE,IAAI,IAAI;AAAK,IAAA,SAAS,EAAC;AAAf,KAAmCA,IAAnC,CAZX,CAtBF,CADF;AAuCD,CArDD,C,CAuDA;;;AACA,eAAeL,UAAf","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport Counter from \"../Counter/Counter\";\nimport { classNames } from \"../../lib/classNames\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport Tappable from \"../Tappable/Tappable\";\nimport { Platform } from \"../../lib/platform\";\nimport { HasComponent, HasRootRef } from \"../../types\";\nimport \"./TabbarItem.css\";\n\nexport interface TabbarItemProps\n extends Omit<React.AllHTMLAttributes<HTMLElement>, \"label\">, // TODO убрать Omit после удаления свойства label\n HasRootRef<HTMLElement>,\n HasComponent {\n selected?: boolean;\n /**\n * Тест рядом с иконкой\n */\n text?: React.ReactNode;\n /**\n * Индикатор над иконкой. Принимает `<Badge mode=\"prominent\" />` или `<Counter size=\"s\" mode=\"prominent\" />`\n */\n indicator?: React.ReactNode;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте `indicator`\n */\n label?: React.ReactNode;\n}\n\nconst TabbarItem: React.FunctionComponent<TabbarItemProps> = ({\n children,\n selected,\n label,\n indicator,\n text,\n href,\n Component = href ? \"a\" : \"button\",\n disabled,\n ...restProps\n}: TabbarItemProps) => {\n const platform = usePlatform();\n\n // @ts-ignore ругается на то, что у AllHTMLAttributes type это строка, а button не любую строку считает валидным значением\n return (\n <Component\n {...restProps}\n disabled={disabled}\n href={href}\n vkuiClass={classNames(getClassName(\"TabbarItem\", platform), {\n \"TabbarItem--selected\": selected,\n \"TabbarItem--text\": !!text,\n })}\n >\n <Tappable\n role=\"presentation\"\n Component=\"div\"\n disabled={disabled}\n activeMode={\n platform === Platform.IOS\n ? \"TabbarItem__tappable--active\"\n : \"background\"\n }\n activeEffectDelay={platform === Platform.IOS ? 0 : 300}\n hasHover={false}\n vkuiClass=\"TabbarItem__tappable\"\n />\n <div vkuiClass=\"TabbarItem__in\">\n <div vkuiClass=\"TabbarItem__icon\">\n {children}\n <div vkuiClass=\"TabbarItem__label\">\n {hasReactNode(indicator) && indicator}\n {!indicator && label && (\n <Counter size=\"s\" mode=\"prominent\">\n {label}\n </Counter>\n )}\n </div>\n </div>\n {text && <div vkuiClass=\"TabbarItem__text\">{text}</div>}\n </div>\n </Component>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default TabbarItem;\n"],"file":"TabbarItem.js"}
1
+ {"version":3,"sources":["../../../../src/components/TabbarItem/TabbarItem.tsx"],"names":["getClassName","Counter","classNames","usePlatform","hasReactNode","Tappable","Platform","warnOnce","warn","TabbarItem","children","selected","label","indicator","text","href","Component","disabled","restProps","platform","process","env","NODE_ENV","IOS"],"mappings":";;;;AACA,SAASA,YAAT;AACA,OAAOC,OAAP;AACA,SAASC,UAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,OAAOC,QAAP;AACA,SAASC,QAAT;AAEA,SAASC,QAAT;AACA;AAqBA,IAAMC,IAAI,GAAGD,QAAQ,CAAC,YAAD,CAArB;;AACA,IAAME,UAAoD,GAAG,SAAvDA,UAAuD,OAUtC;AAAA,MATrBC,QASqB,QATrBA,QASqB;AAAA,MARrBC,QAQqB,QARrBA,QAQqB;AAAA,MAPrBC,KAOqB,QAPrBA,KAOqB;AAAA,MANrBC,SAMqB,QANrBA,SAMqB;AAAA,MALrBC,IAKqB,QALrBA,IAKqB;AAAA,MAJrBC,IAIqB,QAJrBA,IAIqB;AAAA,4BAHrBC,SAGqB;AAAA,MAHrBA,SAGqB,+BAHTD,IAAI,GAAG,GAAH,GAAS,QAGJ;AAAA,MAFrBE,QAEqB,QAFrBA,QAEqB;AAAA,MADlBC,SACkB;;AACrB,MAAMC,QAAQ,GAAGhB,WAAW,EAA5B;;AAEA,MAAIS,KAAK,IAAIQ,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAtC,EAAqD;AACnDd,IAAAA,IAAI,CACF,yEADE,CAAJ;AAGD;;AAED,SACE,oBAAC,SAAD,eACMU,SADN;AAEE,IAAA,QAAQ,EAAED,QAFZ;AAGE,IAAA,IAAI,EAAEF,IAHR;AAIE,IAAA,SAAS,EAAEb,UAAU,CAACF,YAAY,CAAC,YAAD,EAAemB,QAAf,CAAb,EAAuC;AAC1D,8BAAwBR,QADkC;AAE1D,0BAAoB,CAAC,CAACG;AAFoC,KAAvC;AAJvB,MASE,oBAAC,QAAD;AACE,IAAA,IAAI,EAAC,cADP;AAEE,IAAA,SAAS,EAAC,KAFZ;AAGE,IAAA,QAAQ,EAAEG,QAHZ;AAIE,IAAA,UAAU,EACRE,QAAQ,KAAKb,QAAQ,CAACiB,GAAtB,GACI,8BADJ,GAEI,YAPR;AASE,IAAA,iBAAiB,EAAEJ,QAAQ,KAAKb,QAAQ,CAACiB,GAAtB,GAA4B,CAA5B,GAAgC,GATrD;AAUE,IAAA,QAAQ,EAAE,KAVZ;AAWE,IAAA,SAAS,EAAC;AAXZ,IATF,EAsBE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGb,QADH,EAEE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGN,YAAY,CAACS,SAAD,CAAZ,IAA2BA,SAD9B,EAEG,CAACA,SAAD,IAAcD,KAAd,IACC,oBAAC,OAAD;AAAS,IAAA,IAAI,EAAC,GAAd;AAAkB,IAAA,IAAI,EAAC;AAAvB,KACGA,KADH,CAHJ,CAFF,CADF,EAYGE,IAAI,IAAI;AAAK,IAAA,SAAS,EAAC;AAAf,KAAmCA,IAAnC,CAZX,CAtBF,CADF;AAuCD,CA1DD,C,CA4DA;;;AACA,eAAeL,UAAf","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport Counter from \"../Counter/Counter\";\nimport { classNames } from \"../../lib/classNames\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport Tappable from \"../Tappable/Tappable\";\nimport { Platform } from \"../../lib/platform\";\nimport { HasComponent, HasRootRef } from \"../../types\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport \"./TabbarItem.css\";\n\nexport interface TabbarItemProps\n extends Omit<React.AllHTMLAttributes<HTMLElement>, \"label\">, // TODO убрать Omit после удаления свойства label\n HasRootRef<HTMLElement>,\n HasComponent {\n selected?: boolean;\n /**\n * Тест рядом с иконкой\n */\n text?: React.ReactNode;\n /**\n * Индикатор над иконкой. Принимает `<Badge mode=\"prominent\" />` или `<Counter size=\"s\" mode=\"prominent\" />`\n */\n indicator?: React.ReactNode;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте `indicator`\n */\n label?: React.ReactNode;\n}\n\nconst warn = warnOnce(\"TabbarItem\");\nconst TabbarItem: React.FunctionComponent<TabbarItemProps> = ({\n children,\n selected,\n label,\n indicator,\n text,\n href,\n Component = href ? \"a\" : \"button\",\n disabled,\n ...restProps\n}: TabbarItemProps) => {\n const platform = usePlatform();\n\n if (label && process.env.NODE_ENV === \"development\") {\n warn(\n \"Свойство label устарело и будет удалено в 5.0.0. Используйте indicator.\"\n );\n }\n\n return (\n <Component\n {...restProps}\n disabled={disabled}\n href={href}\n vkuiClass={classNames(getClassName(\"TabbarItem\", platform), {\n \"TabbarItem--selected\": selected,\n \"TabbarItem--text\": !!text,\n })}\n >\n <Tappable\n role=\"presentation\"\n Component=\"div\"\n disabled={disabled}\n activeMode={\n platform === Platform.IOS\n ? \"TabbarItem__tappable--active\"\n : \"background\"\n }\n activeEffectDelay={platform === Platform.IOS ? 0 : 300}\n hasHover={false}\n vkuiClass=\"TabbarItem__tappable\"\n />\n <div vkuiClass=\"TabbarItem__in\">\n <div vkuiClass=\"TabbarItem__icon\">\n {children}\n <div vkuiClass=\"TabbarItem__label\">\n {hasReactNode(indicator) && indicator}\n {!indicator && label && (\n <Counter size=\"s\" mode=\"prominent\">\n {label}\n </Counter>\n )}\n </div>\n </div>\n {text && <div vkuiClass=\"TabbarItem__text\">{text}</div>}\n </div>\n </Component>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default TabbarItem;\n"],"file":"TabbarItem.js"}
@@ -1 +1 @@
1
- .vkuiTitle{display:block;margin:0}.vkuiTitle--l-1{font-size:24px;line-height:28px}.vkuiTitle--l-2{font-size:20px;line-height:24px}.vkuiTitle--l-3{font-size:17px;line-height:22px}.vkuiTitle--w-regular{font-weight:400}.vkuiTitle--w-medium{font-weight:500}.vkuiTitle--w-semibold{font-weight:600}.vkuiTitle--w-bold{font-weight:700}.vkuiTitle--w-heavy{font-weight:800}.vkuiTitle--android.vkuiTitle--w-semibold{font-weight:500}.vkuiTitle--android.vkuiTitle--w-heavy{font-weight:700}
1
+ .vkuiTitle{display:block;margin:0}.vkuiTitle--l-1{font-size:24px;font-size:var(--vkui--font_title1--font_size--regular);line-height:28px;line-height:var(--vkui--font_title1--line_height--regular);font-weight:600;font-weight:var(--vkui--font_title1--font_weight--regular)}.vkuiTitle--l-2{font-size:20px;font-size:var(--vkui--font_title2--font_size--regular);line-height:24px;line-height:var(--vkui--font_title2--line_height--regular);font-weight:600;font-weight:var(--vkui--font_title2--font_weight--regular)}.vkuiTitle--l-3{font-size:17px;font-size:var(--vkui--font_title3--font_size--regular);line-height:22px;line-height:var(--vkui--font_title3--line_height--regular);font-weight:600;font-weight:var(--vkui--font_title3--font_weight--regular)}.vkuiTitle--w-regular{font-weight:400}.vkuiTitle--w-medium{font-weight:500}.vkuiTitle--w-semibold{font-weight:600}.vkuiTitle--w-bold{font-weight:700}.vkuiTitle--w-heavy{font-weight:800}.vkuiTitle--w-1{font-weight:600;font-weight:var(--vkui--font_weight_accent1)}.vkuiTitle--w-2{font-weight:500;font-weight:var(--vkui--font_weight_accent2)}.vkuiTitle--w-3{font-weight:400;font-weight:var(--vkui--font_weight_accent3)}
@@ -1,40 +1,31 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
4
  var _excluded = ["children", "weight", "level", "Component"];
4
5
  import { createScopedElement } from "../../../lib/jsxRuntime";
5
- import { usePlatform } from "../../../hooks/usePlatform";
6
6
  import { classNames } from "../../../lib/classNames";
7
- import { getClassName } from "../../../helpers/getClassName";
8
- import { ANDROID } from "../../../lib/platform";
9
- import Headline from "../Headline/Headline";
7
+ import { warnOnce } from "../../../lib/warnOnce";
10
8
  import "./Title.css";
9
+ var warn = warnOnce("Title");
11
10
 
12
11
  var Title = function Title(_ref) {
13
12
  var children = _ref.children,
14
- _ref$weight = _ref.weight,
15
- weight = _ref$weight === void 0 ? "regular" : _ref$weight,
13
+ weight = _ref.weight,
16
14
  _ref$level = _ref.level,
17
15
  level = _ref$level === void 0 ? "1" : _ref$level,
18
16
  Component = _ref.Component,
19
17
  restProps = _objectWithoutProperties(_ref, _excluded);
20
18
 
21
- var platform = usePlatform();
22
-
23
19
  if (!Component) {
24
20
  Component = "h" + level;
25
21
  }
26
22
 
27
- if (platform === ANDROID && level === "3") {
28
- var headlineWeight = weight === "regular" ? weight : "medium";
29
- return createScopedElement(Headline, _extends({
30
- Component: Component
31
- }, restProps, {
32
- weight: headlineWeight
33
- }), children);
23
+ if (process.env.NODE_ENV === "development") {
24
+ if (weight && ["heavy", "bold", "semibold", "medium", "regular"].includes(weight)) warn("\u041D\u0430\u0447\u0435\u0440\u0442\u0430\u043D\u0438\u0435 \"".concat(weight, "\" \u0443\u0441\u0442\u0430\u0440\u0435\u043B\u043E \u0438 \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043B\u0435\u043D\u043E \u0432 5.0.0. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \"1\", \"2\" \u0438 \"3\""));
34
25
  }
35
26
 
36
27
  return createScopedElement(Component, _extends({}, restProps, {
37
- vkuiClass: classNames(getClassName("Title", platform), "Title--w-".concat(weight), "Title--l-".concat(level))
28
+ vkuiClass: classNames("Title", "Title--l-".concat(level), _defineProperty({}, "Title--w-".concat(weight), !!weight))
38
29
  }), children);
39
30
  }; // eslint-disable-next-line import/no-default-export
40
31