@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
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/NativeSelect/NativeSelect.tsx"],"names":["React","classNames","DropdownIcon","FormField","withAdaptivity","SizeType","getClassName","Headline","Text","VKCOM","useIsomorphicLayoutEffect","useEnsuredControl","useExternRef","usePlatform","NativeSelect","style","defaultValue","align","placeholder","children","className","getRef","getRootRef","disabled","sizeX","sizeY","multiline","restProps","platform","useState","title","setTitle","notSelected","setNotSelected","value","onChange","selectRef","selectedOption","current","options","selectedIndex","text","TypographyComponent","COMPACT"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { DropdownIcon } from \"../DropdownIcon/DropdownIcon\";\nimport { FormField } from \"../FormField/FormField\";\nimport { HasAlign, HasRef, HasRootRef } from \"../../types\";\nimport { withAdaptivity, SizeType } from \"../../hoc/withAdaptivity\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport Headline from \"../Typography/Headline/Headline\";\nimport Text from \"../Typography/Text/Text\";\nimport { VKCOM } from \"../../lib/platform\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { useEnsuredControl } from \"../../hooks/useEnsuredControl\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { AdaptivityContextInterface } from \"../AdaptivityProvider/AdaptivityContext\";\nimport \"../Select/Select.css\";\n\nexport interface NativeSelectProps\n extends React.SelectHTMLAttributes<HTMLSelectElement>,\n HasRef<HTMLSelectElement>,\n HasRootRef<HTMLLabelElement>,\n HasAlign,\n AdaptivityContextInterface {\n placeholder?: string;\n multiline?: boolean;\n}\n\nexport interface SelectState {\n value?: React.SelectHTMLAttributes<HTMLSelectElement>[\"value\"];\n title?: string;\n notSelected?: boolean;\n}\n\nconst NativeSelect: React.FC<NativeSelectProps> = ({\n style,\n defaultValue = \"\",\n align,\n placeholder,\n children,\n className,\n getRef,\n getRootRef,\n disabled,\n sizeX,\n sizeY,\n multiline,\n ...restProps\n}) => {\n const platform = usePlatform();\n const [title, setTitle] = React.useState(\"\");\n const [notSelected, setNotSelected] = React.useState(false);\n const [value, onChange] = useEnsuredControl(restProps, { defaultValue });\n const selectRef = useExternRef(getRef);\n useIsomorphicLayoutEffect(() => {\n const selectedOption =\n selectRef.current?.options[selectRef.current.selectedIndex];\n if (selectedOption) {\n setTitle(selectedOption.text);\n setNotSelected(selectedOption.value === \"\" && placeholder != null);\n }\n }, [value, children]);\n\n const TypographyComponent =\n platform === VKCOM || sizeY === SizeType.COMPACT ? Text : Headline;\n\n return (\n <FormField\n Component=\"label\"\n vkuiClass={classNames(getClassName(\"Select\", platform), {\n [\"Select--not-selected\"]: notSelected,\n [`Select--align-${align}`]: !!align,\n [`Select--sizeX--${sizeX}`]: !!sizeX,\n [`Select--sizeY--${sizeY}`]: !!sizeY,\n \"Select--multiline\": multiline,\n })}\n className={className}\n style={style}\n getRootRef={getRootRef}\n disabled={disabled}\n after={<DropdownIcon />}\n >\n <select\n {...restProps}\n disabled={disabled}\n vkuiClass=\"Select__el\"\n onChange={onChange}\n value={value}\n ref={selectRef}\n >\n {placeholder && <option value=\"\">{placeholder}</option>}\n {children}\n </select>\n <TypographyComponent\n Component=\"div\"\n weight=\"regular\"\n vkuiClass=\"Select__container\"\n >\n <span vkuiClass=\"Select__title\">{title}</span>\n </TypographyComponent>\n </FormField>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(NativeSelect, {\n sizeX: true,\n sizeY: true,\n});\n"],"file":"NativeSelect.js"}
1
+ {"version":3,"sources":["../../../../src/components/NativeSelect/NativeSelect.tsx"],"names":["React","classNames","DropdownIcon","FormField","withAdaptivity","SizeType","getClassName","Headline","Text","VKCOM","useIsomorphicLayoutEffect","useEnsuredControl","useExternRef","usePlatform","NativeSelect","style","defaultValue","align","placeholder","children","className","getRef","getRootRef","disabled","sizeX","sizeY","multiline","restProps","platform","useState","title","setTitle","notSelected","setNotSelected","value","onChange","selectRef","selectedOption","current","options","selectedIndex","text","TypographyComponent","COMPACT"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { DropdownIcon } from \"../DropdownIcon/DropdownIcon\";\nimport { FormField } from \"../FormField/FormField\";\nimport { HasAlign, HasRef, HasRootRef } from \"../../types\";\nimport { withAdaptivity, SizeType } from \"../../hoc/withAdaptivity\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport Headline from \"../Typography/Headline/Headline\";\nimport Text from \"../Typography/Text/Text\";\nimport { VKCOM } from \"../../lib/platform\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { useEnsuredControl } from \"../../hooks/useEnsuredControl\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport {\n AdaptivityContextInterface,\n AdaptivityProps,\n} from \"../AdaptivityProvider/AdaptivityContext\";\nimport \"../Select/Select.css\";\n\nexport interface NativeSelectProps\n extends React.SelectHTMLAttributes<HTMLSelectElement>,\n HasRef<HTMLSelectElement>,\n HasRootRef<HTMLLabelElement>,\n HasAlign,\n AdaptivityProps {\n placeholder?: string;\n multiline?: boolean;\n}\n\nexport interface SelectState {\n value?: React.SelectHTMLAttributes<HTMLSelectElement>[\"value\"];\n title?: string;\n notSelected?: boolean;\n}\n\nconst NativeSelect: React.FC<\n NativeSelectProps & AdaptivityContextInterface\n> = ({\n style,\n defaultValue = \"\",\n align,\n placeholder,\n children,\n className,\n getRef,\n getRootRef,\n disabled,\n sizeX,\n sizeY,\n multiline,\n ...restProps\n}) => {\n const platform = usePlatform();\n const [title, setTitle] = React.useState(\"\");\n const [notSelected, setNotSelected] = React.useState(false);\n const [value, onChange] = useEnsuredControl(restProps, { defaultValue });\n const selectRef = useExternRef(getRef);\n useIsomorphicLayoutEffect(() => {\n const selectedOption =\n selectRef.current?.options[selectRef.current.selectedIndex];\n if (selectedOption) {\n setTitle(selectedOption.text);\n setNotSelected(selectedOption.value === \"\" && placeholder != null);\n }\n }, [value, children]);\n\n const TypographyComponent =\n platform === VKCOM || sizeY === SizeType.COMPACT ? Text : Headline;\n\n return (\n <FormField\n Component=\"label\"\n vkuiClass={classNames(getClassName(\"Select\", platform), {\n [\"Select--not-selected\"]: notSelected,\n [`Select--align-${align}`]: !!align,\n [`Select--sizeX--${sizeX}`]: !!sizeX,\n [`Select--sizeY--${sizeY}`]: !!sizeY,\n \"Select--multiline\": multiline,\n })}\n className={className}\n style={style}\n getRootRef={getRootRef}\n disabled={disabled}\n after={<DropdownIcon />}\n >\n <select\n {...restProps}\n disabled={disabled}\n vkuiClass=\"Select__el\"\n onChange={onChange}\n value={value}\n ref={selectRef}\n >\n {placeholder && <option value=\"\">{placeholder}</option>}\n {children}\n </select>\n <TypographyComponent\n Component=\"div\"\n weight=\"regular\"\n vkuiClass=\"Select__container\"\n >\n <span vkuiClass=\"Select__title\">{title}</span>\n </TypographyComponent>\n </FormField>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(NativeSelect, {\n sizeX: true,\n sizeY: true,\n});\n"],"file":"NativeSelect.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Panel/Panel.tsx"],"names":["getClassName","classNames","Touch","TooltipContainer","withAdaptivity","IOS","usePlatform","Panel","centered","children","getRootRef","sizeX","nav","restProps","platform"],"mappings":";;;;;AACA,SAASA,YAAT;AACA,SAASC,UAAT;AACA,SAASC,KAAT;AACA,SAASC,gBAAT;AAEA,SAASC,cAAT;AACA,SAASC,GAAT;AACA,SAASC,WAAT;AAGA;AAUA,OAAO,IAAMC,KAAK,GAAGH,cAAc,CACjC,gBAA0E;AAAA,2BAAvEI,QAAuE;AAAA,MAAvEA,QAAuE,8BAA5D,KAA4D;AAAA,MAArDC,QAAqD,QAArDA,QAAqD;AAAA,MAA3CC,UAA2C,QAA3CA,UAA2C;AAAA,MAA/BC,KAA+B,QAA/BA,KAA+B;AAAA,MAAxBC,GAAwB,QAAxBA,GAAwB;AAAA,MAAhBC,SAAgB;;AACxE,MAAMC,QAAQ,GAAGR,WAAW,EAA5B;AAEA,SACE,wCACMO,SADN;AAEE,IAAA,GAAG,EAAEH,UAFP;AAGE,IAAA,SAAS,EAAET,UAAU,CACnBD,YAAY,CAAC,OAAD,EAAUc,QAAV,CADO,mBAETH,KAFS;AAIjB,yBAAmBH;AAJF,8BAKAG,KALA,GAKU,IALV;AAHvB,MAYE,oBAAC,KAAD;AAAO,IAAA,SAAS,EAAER,gBAAlB;AAAoC,IAAA,SAAS,EAAC;AAA9C,KACGW,QAAQ,KAAKT,GAAb,IAAoB;AAAK,IAAA,SAAS,EAAC;AAAf,IADvB,EAEE;AAAK,IAAA,SAAS,EAAC;AAAf,IAFF,EAGGG,QAAQ,GACP;AAAK,IAAA,SAAS,EAAC;AAAf,KAAkCC,QAAlC,CADO,GAGPA,QANJ,EAQE;AAAK,IAAA,SAAS,EAAC;AAAf,IARF,CAZF,CADF;AAyBD,CA7BgC,EA8BjC;AACEE,EAAAA,KAAK,EAAE;AADT,CA9BiC,CAA5B","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { Touch } from \"../Touch/Touch\";\nimport { TooltipContainer } from \"../Tooltip/TooltipContainer\";\nimport { HasRootRef } from \"../../types\";\nimport { withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport { IOS } from \"../../lib/platform\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { NavIdProps } from \"../../lib/getNavId\";\nimport { AdaptivityContextInterface } from \"../AdaptivityProvider/AdaptivityContext\";\nimport \"./Panel.css\";\n\nexport interface PanelProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement>,\n AdaptivityContextInterface,\n NavIdProps {\n centered?: boolean;\n}\n\nexport const Panel = withAdaptivity<PanelProps>(\n ({ centered = false, children, getRootRef, sizeX, nav, ...restProps }) => {\n const platform = usePlatform();\n\n return (\n <div\n {...restProps}\n ref={getRootRef}\n vkuiClass={classNames(\n getClassName(\"Panel\", platform),\n `Panel--${sizeX}`,\n {\n \"Panel--centered\": centered,\n [`Panel--sizeX-${sizeX}`]: true,\n }\n )}\n >\n <Touch Component={TooltipContainer} vkuiClass=\"Panel__in\">\n {platform === IOS && <div vkuiClass=\"Panel__fade\" />}\n <div vkuiClass=\"Panel__in-before\" />\n {centered ? (\n <div vkuiClass=\"Panel__centered\">{children}</div>\n ) : (\n children\n )}\n <div vkuiClass=\"Panel__in-after\" />\n </Touch>\n </div>\n );\n },\n {\n sizeX: true,\n }\n);\n"],"file":"Panel.js"}
1
+ {"version":3,"sources":["../../../../src/components/Panel/Panel.tsx"],"names":["getClassName","classNames","Touch","TooltipContainer","withAdaptivity","IOS","usePlatform","Panel","centered","children","getRootRef","sizeX","nav","restProps","platform"],"mappings":";;;;;AACA,SAASA,YAAT;AACA,SAASC,UAAT;AACA,SAASC,KAAT;AACA,SAASC,gBAAT;AAEA,SAASC,cAAT;AACA,SAASC,GAAT;AACA,SAASC,WAAT;AAMA;AAUA,OAAO,IAAMC,KAAK,GAAGH,cAAc,CACjC,gBAA0E;AAAA,2BAAvEI,QAAuE;AAAA,MAAvEA,QAAuE,8BAA5D,KAA4D;AAAA,MAArDC,QAAqD,QAArDA,QAAqD;AAAA,MAA3CC,UAA2C,QAA3CA,UAA2C;AAAA,MAA/BC,KAA+B,QAA/BA,KAA+B;AAAA,MAAxBC,GAAwB,QAAxBA,GAAwB;AAAA,MAAhBC,SAAgB;;AACxE,MAAMC,QAAQ,GAAGR,WAAW,EAA5B;AAEA,SACE,wCACMO,SADN;AAEE,IAAA,GAAG,EAAEH,UAFP;AAGE,IAAA,SAAS,EAAET,UAAU,CACnBD,YAAY,CAAC,OAAD,EAAUc,QAAV,CADO,mBAETH,KAFS;AAIjB,yBAAmBH;AAJF,8BAKAG,KALA,GAKU,IALV;AAHvB,MAYE,oBAAC,KAAD;AAAO,IAAA,SAAS,EAAER,gBAAlB;AAAoC,IAAA,SAAS,EAAC;AAA9C,KACGW,QAAQ,KAAKT,GAAb,IAAoB;AAAK,IAAA,SAAS,EAAC;AAAf,IADvB,EAEE;AAAK,IAAA,SAAS,EAAC;AAAf,IAFF,EAGGG,QAAQ,GACP;AAAK,IAAA,SAAS,EAAC;AAAf,KAAkCC,QAAlC,CADO,GAGPA,QANJ,EAQE;AAAK,IAAA,SAAS,EAAC;AAAf,IARF,CAZF,CADF;AAyBD,CA7BgC,EA8BjC;AACEE,EAAAA,KAAK,EAAE;AADT,CA9BiC,CAA5B","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { Touch } from \"../Touch/Touch\";\nimport { TooltipContainer } from \"../Tooltip/TooltipContainer\";\nimport { HasRootRef } from \"../../types\";\nimport { withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport { IOS } from \"../../lib/platform\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { NavIdProps } from \"../../lib/getNavId\";\nimport {\n AdaptivityContextInterface,\n AdaptivityProps,\n} from \"../AdaptivityProvider/AdaptivityContext\";\nimport \"./Panel.css\";\n\nexport interface PanelProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement>,\n AdaptivityProps,\n NavIdProps {\n centered?: boolean;\n}\n\nexport const Panel = withAdaptivity<PanelProps & AdaptivityContextInterface>(\n ({ centered = false, children, getRootRef, sizeX, nav, ...restProps }) => {\n const platform = usePlatform();\n\n return (\n <div\n {...restProps}\n ref={getRootRef}\n vkuiClass={classNames(\n getClassName(\"Panel\", platform),\n `Panel--${sizeX}`,\n {\n \"Panel--centered\": centered,\n [`Panel--sizeX-${sizeX}`]: true,\n }\n )}\n >\n <Touch Component={TooltipContainer} vkuiClass=\"Panel__in\">\n {platform === IOS && <div vkuiClass=\"Panel__fade\" />}\n <div vkuiClass=\"Panel__in-before\" />\n {centered ? (\n <div vkuiClass=\"Panel__centered\">{children}</div>\n ) : (\n children\n )}\n <div vkuiClass=\"Panel__in-after\" />\n </Touch>\n </div>\n );\n },\n {\n sizeX: true,\n }\n);\n"],"file":"Panel.js"}
@@ -5,8 +5,9 @@ import { createScopedElement } from "../../lib/jsxRuntime";
5
5
  import Tappable from "../Tappable/Tappable";
6
6
  import { getClassName } from "../../helpers/getClassName";
7
7
  import { classNames } from "../../lib/classNames";
8
+ import { warnOnce } from "../../lib/warnOnce";
8
9
  import { usePlatform } from "../../hooks/usePlatform";
9
- import { isPrimitiveReactNode } from "../../lib/utils";
10
+ import { getTitleFromChildren, isPrimitiveReactNode } from "../../lib/utils";
10
11
  import { IOS, VKCOM, ANDROID } from "../../lib/platform";
11
12
  import Text from "../Typography/Text/Text";
12
13
  import Title from "../Typography/Title/Title";
@@ -21,7 +22,7 @@ var ButtonTypography = function ButtonTypography(_ref) {
21
22
  return createScopedElement(Title, {
22
23
  Component: "span",
23
24
  level: "3",
24
- weight: primary ? "semibold" : "regular"
25
+ weight: primary ? "1" : "3"
25
26
  }, children);
26
27
  }
27
28
 
@@ -30,9 +31,11 @@ var ButtonTypography = function ButtonTypography(_ref) {
30
31
  }, children);
31
32
  };
32
33
 
34
+ var warn = warnOnce("PanelHeaderButton");
33
35
  export var PanelHeaderButton = function PanelHeaderButton(_ref2) {
34
36
  var children = _ref2.children,
35
- primary = _ref2.primary,
37
+ _ref2$primary = _ref2.primary,
38
+ primary = _ref2$primary === void 0 ? false : _ref2$primary,
36
39
  label = _ref2.label,
37
40
  restProps = _objectWithoutProperties(_ref2, _excluded);
38
41
 
@@ -58,6 +61,14 @@ export var PanelHeaderButton = function PanelHeaderButton(_ref2) {
58
61
  activeMode = "PanelHeaderButton--active";
59
62
  }
60
63
 
64
+ if (process.env.NODE_ENV === "development") {
65
+ var hasAccessibleName = Boolean(getTitleFromChildren(children) || getTitleFromChildren(label) || restProps["aria-label"] || restProps["aria-labelledby"]);
66
+
67
+ if (!hasAccessibleName) {
68
+ warn("a11y: У кнопки нет названия, которое может прочитать скринридер, и она недоступна для части пользователей. Замените содержимое на текст или добавьте описание действия с помощью пропа aria-label.");
69
+ }
70
+ }
71
+
61
72
  return createScopedElement(Tappable, _extends({}, restProps, {
62
73
  hoverMode: hoverMode,
63
74
  Component: restProps.href ? "a" : "button",
@@ -74,8 +85,4 @@ export var PanelHeaderButton = function PanelHeaderButton(_ref2) {
74
85
  primary: primary
75
86
  }, label) : label);
76
87
  };
77
- PanelHeaderButton.defaultProps = {
78
- primary: false,
79
- "aria-label": "Закрыть"
80
- };
81
88
  //# sourceMappingURL=PanelHeaderButton.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/PanelHeaderButton/PanelHeaderButton.tsx"],"names":["Tappable","getClassName","classNames","usePlatform","isPrimitiveReactNode","IOS","VKCOM","ANDROID","Text","Title","ButtonTypography","primary","children","platform","PanelHeaderButton","label","restProps","isPrimitive","isPrimitiveLabel","hoverMode","activeMode","href","defaultProps"],"mappings":";;;;AACA,OAAOA,QAAP;AACA,SAASC,YAAT;AACA,SAASC,UAAT;AACA,SAASC,WAAT;AACA,SAASC,oBAAT;AACA,SAASC,GAAT,EAAcC,KAAd,EAAqBC,OAArB;AACA,OAAOC,IAAP;AACA,OAAOC,KAAP;AACA;;AAWA,IAAMC,gBAAiD,GAAG,SAApDA,gBAAoD,OAG7B;AAAA,MAF3BC,OAE2B,QAF3BA,OAE2B;AAAA,MAD3BC,QAC2B,QAD3BA,QAC2B;AAC3B,MAAMC,QAAQ,GAAGV,WAAW,EAA5B;;AAEA,MAAIU,QAAQ,KAAKR,GAAjB,EAAsB;AACpB,WACE,oBAAC,KAAD;AACE,MAAA,SAAS,EAAC,MADZ;AAEE,MAAA,KAAK,EAAC,GAFR;AAGE,MAAA,MAAM,EAAEM,OAAO,GAAG,UAAH,GAAgB;AAHjC,OAKGC,QALH,CADF;AASD;;AAED,SACE,oBAAC,IAAD;AAAM,IAAA,MAAM,EAAEC,QAAQ,KAAKP,KAAb,GAAqB,SAArB,GAAiC;AAA/C,KAA0DM,QAA1D,CADF;AAGD,CArBD;;AAuBA,OAAO,IAAME,iBAAmD,GAAG,SAAtDA,iBAAsD,QAKrC;AAAA,MAJ5BF,QAI4B,SAJ5BA,QAI4B;AAAA,MAH5BD,OAG4B,SAH5BA,OAG4B;AAAA,MAF5BI,KAE4B,SAF5BA,KAE4B;AAAA,MADzBC,SACyB;;AAC5B,MAAMC,WAAW,GAAGb,oBAAoB,CAACQ,QAAD,CAAxC;AACA,MAAMM,gBAAgB,GAAGd,oBAAoB,CAACW,KAAD,CAA7C;AACA,MAAMF,QAAQ,GAAGV,WAAW,EAA5B;AAEA,MAAIgB,SAAJ;AACA,MAAIC,UAAJ;;AAEA,UAAQP,QAAR;AACE,SAAKN,OAAL;AACEY,MAAAA,SAAS,GAAG,YAAZ;AACAC,MAAAA,UAAU,GAAG,YAAb;AACA;;AACF,SAAKf,GAAL;AACEc,MAAAA,SAAS,GAAG,YAAZ;AACAC,MAAAA,UAAU,GAAG,SAAb;AACA;;AACF,SAAKd,KAAL;AACEa,MAAAA,SAAS,GAAG,0BAAZ;AACAC,MAAAA,UAAU,GAAG,2BAAb;AAXJ;;AAcA,SACE,oBAAC,QAAD,eACMJ,SADN;AAEE,IAAA,SAAS,EAAEG,SAFb;AAGE,IAAA,SAAS,EAAEH,SAAS,CAACK,IAAV,GAAiB,GAAjB,GAAuB,QAHpC;AAIE,IAAA,iBAAiB,EAAE,GAJrB;AAKE,IAAA,UAAU,EAAED,UALd;AAME,IAAA,SAAS,EAAElB,UAAU,CAACD,YAAY,CAAC,mBAAD,EAAsBY,QAAtB,CAAb,EAA8C;AACjE,oCAA8BF,OADmC;AAEjE,sCAAgCM,WAFiC;AAGjE,yCAAmC,CAACA,WAAD,IAAgB,CAACC;AAHa,KAA9C;AANvB,MAYGD,WAAW,GACV,oBAAC,gBAAD;AAAkB,IAAA,OAAO,EAAEN;AAA3B,KAAqCC,QAArC,CADU,GAGVA,QAfJ,EAiBGM,gBAAgB,GACf,oBAAC,gBAAD;AAAkB,IAAA,OAAO,EAAEP;AAA3B,KAAqCI,KAArC,CADe,GAGfA,KApBJ,CADF;AAyBD,CApDM;AAsDPD,iBAAiB,CAACQ,YAAlB,GAAiC;AAC/BX,EAAAA,OAAO,EAAE,KADsB;AAE/B,gBAAc;AAFiB,CAAjC","sourcesContent":["import * as React from \"react\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { isPrimitiveReactNode } from \"../../lib/utils\";\nimport { IOS, VKCOM, ANDROID } from \"../../lib/platform\";\nimport Text from \"../Typography/Text/Text\";\nimport Title from \"../Typography/Title/Title\";\nimport \"./PanelHeaderButton.css\";\n\nexport interface PanelHeaderButtonProps extends Omit<TappableProps, \"label\"> {\n primary?: boolean;\n label?: React.ReactNode;\n}\n\ninterface ButtonTypographyProps extends React.AllHTMLAttributes<HTMLElement> {\n primary?: PanelHeaderButtonProps[\"primary\"];\n}\n\nconst ButtonTypography: React.FC<ButtonTypographyProps> = ({\n primary,\n children,\n}: ButtonTypographyProps) => {\n const platform = usePlatform();\n\n if (platform === IOS) {\n return (\n <Title\n Component=\"span\"\n level=\"3\"\n weight={primary ? \"semibold\" : \"regular\"}\n >\n {children}\n </Title>\n );\n }\n\n return (\n <Text weight={platform === VKCOM ? \"regular\" : \"medium\"}>{children}</Text>\n );\n};\n\nexport const PanelHeaderButton: React.FC<PanelHeaderButtonProps> = ({\n children,\n primary,\n label,\n ...restProps\n}: PanelHeaderButtonProps) => {\n const isPrimitive = isPrimitiveReactNode(children);\n const isPrimitiveLabel = isPrimitiveReactNode(label);\n const platform = usePlatform();\n\n let hoverMode;\n let activeMode;\n\n switch (platform) {\n case ANDROID:\n hoverMode = \"background\";\n activeMode = \"background\";\n break;\n case IOS:\n hoverMode = \"background\";\n activeMode = \"opacity\";\n break;\n case VKCOM:\n hoverMode = \"PanelHeaderButton--hover\";\n activeMode = \"PanelHeaderButton--active\";\n }\n\n return (\n <Tappable\n {...restProps}\n hoverMode={hoverMode}\n Component={restProps.href ? \"a\" : \"button\"}\n activeEffectDelay={200}\n activeMode={activeMode}\n vkuiClass={classNames(getClassName(\"PanelHeaderButton\", platform), {\n \"PanelHeaderButton--primary\": primary,\n \"PanelHeaderButton--primitive\": isPrimitive,\n \"PanelHeaderButton--notPrimitive\": !isPrimitive && !isPrimitiveLabel,\n })}\n >\n {isPrimitive ? (\n <ButtonTypography primary={primary}>{children}</ButtonTypography>\n ) : (\n children\n )}\n {isPrimitiveLabel ? (\n <ButtonTypography primary={primary}>{label}</ButtonTypography>\n ) : (\n label\n )}\n </Tappable>\n );\n};\n\nPanelHeaderButton.defaultProps = {\n primary: false,\n \"aria-label\": \"Закрыть\",\n};\n"],"file":"PanelHeaderButton.js"}
1
+ {"version":3,"sources":["../../../../src/components/PanelHeaderButton/PanelHeaderButton.tsx"],"names":["Tappable","getClassName","classNames","warnOnce","usePlatform","getTitleFromChildren","isPrimitiveReactNode","IOS","VKCOM","ANDROID","Text","Title","ButtonTypography","primary","children","platform","warn","PanelHeaderButton","label","restProps","isPrimitive","isPrimitiveLabel","hoverMode","activeMode","process","env","NODE_ENV","hasAccessibleName","Boolean","href"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getTitleFromChildren, isPrimitiveReactNode } from \"../../lib/utils\";\nimport { IOS, VKCOM, ANDROID } from \"../../lib/platform\";\nimport Text from \"../Typography/Text/Text\";\nimport Title from \"../Typography/Title/Title\";\nimport \"./PanelHeaderButton.css\";\n\nexport interface PanelHeaderButtonProps extends Omit<TappableProps, \"label\"> {\n primary?: boolean;\n label?: React.ReactNode;\n}\n\ninterface ButtonTypographyProps extends React.AllHTMLAttributes<HTMLElement> {\n primary?: PanelHeaderButtonProps[\"primary\"];\n}\n\nconst ButtonTypography: React.FC<ButtonTypographyProps> = ({\n primary,\n children,\n}: ButtonTypographyProps) => {\n const platform = usePlatform();\n\n if (platform === IOS) {\n return (\n <Title Component=\"span\" level=\"3\" weight={primary ? \"1\" : \"3\"}>\n {children}\n </Title>\n );\n }\n\n return (\n <Text weight={platform === VKCOM ? \"regular\" : \"medium\"}>{children}</Text>\n );\n};\n\nconst warn = warnOnce(\"PanelHeaderButton\");\nexport const PanelHeaderButton: React.FC<PanelHeaderButtonProps> = ({\n children,\n primary = false,\n label,\n ...restProps\n}: PanelHeaderButtonProps) => {\n const isPrimitive = isPrimitiveReactNode(children);\n const isPrimitiveLabel = isPrimitiveReactNode(label);\n const platform = usePlatform();\n\n let hoverMode;\n let activeMode;\n\n switch (platform) {\n case ANDROID:\n hoverMode = \"background\";\n activeMode = \"background\";\n break;\n case IOS:\n hoverMode = \"background\";\n activeMode = \"opacity\";\n break;\n case VKCOM:\n hoverMode = \"PanelHeaderButton--hover\";\n activeMode = \"PanelHeaderButton--active\";\n }\n\n if (process.env.NODE_ENV === \"development\") {\n const hasAccessibleName = Boolean(\n getTitleFromChildren(children) ||\n getTitleFromChildren(label) ||\n restProps[\"aria-label\"] ||\n restProps[\"aria-labelledby\"]\n );\n\n if (!hasAccessibleName) {\n warn(\n \"a11y: У кнопки нет названия, которое может прочитать скринридер, и она недоступна для части пользователей. Замените содержимое на текст или добавьте описание действия с помощью пропа aria-label.\"\n );\n }\n }\n\n return (\n <Tappable\n {...restProps}\n hoverMode={hoverMode}\n Component={restProps.href ? \"a\" : \"button\"}\n activeEffectDelay={200}\n activeMode={activeMode}\n vkuiClass={classNames(getClassName(\"PanelHeaderButton\", platform), {\n \"PanelHeaderButton--primary\": primary,\n \"PanelHeaderButton--primitive\": isPrimitive,\n \"PanelHeaderButton--notPrimitive\": !isPrimitive && !isPrimitiveLabel,\n })}\n >\n {isPrimitive ? (\n <ButtonTypography primary={primary}>{children}</ButtonTypography>\n ) : (\n children\n )}\n {isPrimitiveLabel ? (\n <ButtonTypography primary={primary}>{label}</ButtonTypography>\n ) : (\n label\n )}\n </Tappable>\n );\n};\n"],"file":"PanelHeaderButton.js"}
@@ -28,7 +28,7 @@ var Placeholder = function Placeholder(props) {
28
28
  vkuiClass: "Placeholder__icon"
29
29
  }, icon), hasReactNode(header) && createScopedElement(Title, {
30
30
  level: "2",
31
- weight: "medium",
31
+ weight: "2",
32
32
  vkuiClass: "Placeholder__header"
33
33
  }, header), hasReactNode(children) && createScopedElement(Headline, {
34
34
  weight: "regular",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Placeholder/Placeholder.tsx"],"names":["classNames","hasReactNode","Title","Headline","Placeholder","props","icon","header","action","children","stretched","getRootRef","restProps"],"mappings":";;;;AACA,SAASA,UAAT;AACA,SAASC,YAAT;AACA,OAAOC,KAAP;AACA,OAAOC,QAAP;AAEA;;AAuBA,IAAMC,WAAuC,GAAG,SAA1CA,WAA0C,CAACC,KAAD,EAA6B;AAC3E,MACEC,IADF,GAQID,KARJ,CACEC,IADF;AAAA,MAEEC,MAFF,GAQIF,KARJ,CAEEE,MAFF;AAAA,MAGEC,MAHF,GAQIH,KARJ,CAGEG,MAHF;AAAA,MAIEC,QAJF,GAQIJ,KARJ,CAIEI,QAJF;AAAA,MAKEC,SALF,GAQIL,KARJ,CAKEK,SALF;AAAA,MAMEC,UANF,GAQIN,KARJ,CAMEM,UANF;AAAA,MAOKC,SAPL,4BAQIP,KARJ;;AAUA,SACE,wCACMO,SADN;AAEE,IAAA,GAAG,EAAED,UAFP;AAGE,IAAA,SAAS,EAAEX,UAAU,CAAC,aAAD,EAAgB;AACnC,gCAA0BU;AADS,KAAhB;AAHvB,MAOE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGT,YAAY,CAACK,IAAD,CAAZ,IAAsB;AAAK,IAAA,SAAS,EAAC;AAAf,KAAoCA,IAApC,CADzB,EAEGL,YAAY,CAACM,MAAD,CAAZ,IACC,oBAAC,KAAD;AAAO,IAAA,KAAK,EAAC,GAAb;AAAiB,IAAA,MAAM,EAAC,QAAxB;AAAiC,IAAA,SAAS,EAAC;AAA3C,KACGA,MADH,CAHJ,EAOGN,YAAY,CAACQ,QAAD,CAAZ,IACC,oBAAC,QAAD;AAAU,IAAA,MAAM,EAAC,SAAjB;AAA2B,IAAA,SAAS,EAAC;AAArC,KACGA,QADH,CARJ,EAYGR,YAAY,CAACO,MAAD,CAAZ,IACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAAsCA,MAAtC,CAbJ,CAPF,CADF;AA0BD,CArCD,C,CAuCA;;;AACA,eAAeJ,WAAf","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport Title from \"../Typography/Title/Title\";\nimport Headline from \"../Typography/Headline/Headline\";\nimport { HasRootRef } from \"../../types\";\nimport \"./Placeholder.css\";\n\nexport interface PlaceholderProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement> {\n /**\n * Иконка\n */\n icon?: React.ReactNode;\n /**\n * Заголовок плейсхолдера\n */\n header?: React.ReactNode;\n /**\n * Кнопка действия\n */\n action?: React.ReactNode;\n /**\n * Растягивает плейсхолдер на весь экран, но в таком случае на экране должен быть только плейсхолдер\n */\n stretched?: boolean;\n}\n\nconst Placeholder: React.FC<PlaceholderProps> = (props: PlaceholderProps) => {\n const {\n icon,\n header,\n action,\n children,\n stretched,\n getRootRef,\n ...restProps\n } = props;\n\n return (\n <div\n {...restProps}\n ref={getRootRef}\n vkuiClass={classNames(\"Placeholder\", {\n \"Placeholder--stretched\": stretched,\n })}\n >\n <div vkuiClass=\"Placeholder__in\">\n {hasReactNode(icon) && <div vkuiClass=\"Placeholder__icon\">{icon}</div>}\n {hasReactNode(header) && (\n <Title level=\"2\" weight=\"medium\" vkuiClass=\"Placeholder__header\">\n {header}\n </Title>\n )}\n {hasReactNode(children) && (\n <Headline weight=\"regular\" vkuiClass=\"Placeholder__text\">\n {children}\n </Headline>\n )}\n {hasReactNode(action) && (\n <div vkuiClass=\"Placeholder__action\">{action}</div>\n )}\n </div>\n </div>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default Placeholder;\n"],"file":"Placeholder.js"}
1
+ {"version":3,"sources":["../../../../src/components/Placeholder/Placeholder.tsx"],"names":["classNames","hasReactNode","Title","Headline","Placeholder","props","icon","header","action","children","stretched","getRootRef","restProps"],"mappings":";;;;AACA,SAASA,UAAT;AACA,SAASC,YAAT;AACA,OAAOC,KAAP;AACA,OAAOC,QAAP;AAEA;;AAuBA,IAAMC,WAAuC,GAAG,SAA1CA,WAA0C,CAACC,KAAD,EAA6B;AAC3E,MACEC,IADF,GAQID,KARJ,CACEC,IADF;AAAA,MAEEC,MAFF,GAQIF,KARJ,CAEEE,MAFF;AAAA,MAGEC,MAHF,GAQIH,KARJ,CAGEG,MAHF;AAAA,MAIEC,QAJF,GAQIJ,KARJ,CAIEI,QAJF;AAAA,MAKEC,SALF,GAQIL,KARJ,CAKEK,SALF;AAAA,MAMEC,UANF,GAQIN,KARJ,CAMEM,UANF;AAAA,MAOKC,SAPL,4BAQIP,KARJ;;AAUA,SACE,wCACMO,SADN;AAEE,IAAA,GAAG,EAAED,UAFP;AAGE,IAAA,SAAS,EAAEX,UAAU,CAAC,aAAD,EAAgB;AACnC,gCAA0BU;AADS,KAAhB;AAHvB,MAOE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGT,YAAY,CAACK,IAAD,CAAZ,IAAsB;AAAK,IAAA,SAAS,EAAC;AAAf,KAAoCA,IAApC,CADzB,EAEGL,YAAY,CAACM,MAAD,CAAZ,IACC,oBAAC,KAAD;AAAO,IAAA,KAAK,EAAC,GAAb;AAAiB,IAAA,MAAM,EAAC,GAAxB;AAA4B,IAAA,SAAS,EAAC;AAAtC,KACGA,MADH,CAHJ,EAOGN,YAAY,CAACQ,QAAD,CAAZ,IACC,oBAAC,QAAD;AAAU,IAAA,MAAM,EAAC,SAAjB;AAA2B,IAAA,SAAS,EAAC;AAArC,KACGA,QADH,CARJ,EAYGR,YAAY,CAACO,MAAD,CAAZ,IACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAAsCA,MAAtC,CAbJ,CAPF,CADF;AA0BD,CArCD,C,CAuCA;;;AACA,eAAeJ,WAAf","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport Title from \"../Typography/Title/Title\";\nimport Headline from \"../Typography/Headline/Headline\";\nimport { HasRootRef } from \"../../types\";\nimport \"./Placeholder.css\";\n\nexport interface PlaceholderProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement> {\n /**\n * Иконка\n */\n icon?: React.ReactNode;\n /**\n * Заголовок плейсхолдера\n */\n header?: React.ReactNode;\n /**\n * Кнопка действия\n */\n action?: React.ReactNode;\n /**\n * Растягивает плейсхолдер на весь экран, но в таком случае на экране должен быть только плейсхолдер\n */\n stretched?: boolean;\n}\n\nconst Placeholder: React.FC<PlaceholderProps> = (props: PlaceholderProps) => {\n const {\n icon,\n header,\n action,\n children,\n stretched,\n getRootRef,\n ...restProps\n } = props;\n\n return (\n <div\n {...restProps}\n ref={getRootRef}\n vkuiClass={classNames(\"Placeholder\", {\n \"Placeholder--stretched\": stretched,\n })}\n >\n <div vkuiClass=\"Placeholder__in\">\n {hasReactNode(icon) && <div vkuiClass=\"Placeholder__icon\">{icon}</div>}\n {hasReactNode(header) && (\n <Title level=\"2\" weight=\"2\" vkuiClass=\"Placeholder__header\">\n {header}\n </Title>\n )}\n {hasReactNode(children) && (\n <Headline weight=\"regular\" vkuiClass=\"Placeholder__text\">\n {children}\n </Headline>\n )}\n {hasReactNode(action) && (\n <div vkuiClass=\"Placeholder__action\">{action}</div>\n )}\n </div>\n </div>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default Placeholder;\n"],"file":"Placeholder.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/PopoutRoot/PopoutRoot.tsx"],"names":["React","withAdaptivity","ViewWidth","ViewHeight","AppRootPortal","blurActiveElement","useDOM","PopoutRootComponent","props","popout","modal","viewWidth","viewHeight","hasMouse","children","getRootRef","restProps","document","isDesktop","SMALL_TABLET","MEDIUM","useEffect","displayName","PopoutRoot"],"mappings":";;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAEA,SACEC,cADF,EAEEC,SAFF,EAGEC,UAHF;AAKA,SAASC,aAAT;AACA,SAASC,iBAAT,EAA4BC,MAA5B;AAEA;AAUA,OAAO,IAAMC,mBAA8C,GAAG,SAAjDA,mBAAiD,CAC5DC,KAD4D,EAEzD;AACH,MACEC,MADF,GASID,KATJ,CACEC,MADF;AAAA,MAEEC,KAFF,GASIF,KATJ,CAEEE,KAFF;AAAA,MAGEC,SAHF,GASIH,KATJ,CAGEG,SAHF;AAAA,MAIEC,UAJF,GASIJ,KATJ,CAIEI,UAJF;AAAA,MAKEC,QALF,GASIL,KATJ,CAKEK,QALF;AAAA,MAMEC,QANF,GASIN,KATJ,CAMEM,QANF;AAAA,MAOEC,UAPF,GASIP,KATJ,CAOEO,UAPF;AAAA,MAQKC,SARL,4BASIR,KATJ;;AAUA,gBAAqBF,MAAM,EAA3B;AAAA,MAAQW,QAAR,WAAQA,QAAR;;AAEA,MAAMC,SAAS,GACbP,SAAS,IAAIT,SAAS,CAACiB,YAAvB,KACCN,QAAQ,IAAID,UAAU,IAAIT,UAAU,CAACiB,MADtC,CADF;AAIApB,EAAAA,KAAK,CAACqB,SAAN,CAAgB,YAAM;AACpBZ,IAAAA,MAAM,IAAIJ,iBAAiB,CAACY,QAAD,CAA3B;AACD,GAFD,EAEG,CAACA,QAAD,EAAWR,MAAX,CAFH;AAIA,SACE,wCAASO,SAAT;AAAoB,IAAA,SAAS,EAAC,YAA9B;AAA2C,IAAA,GAAG,EAAED;AAAhD,MACGD,QADH,EAEE,oBAAC,aAAD,QACG,CAAC,CAACL,MAAF,IACC;AACE,IAAA,SAAS,EACPS,SAAS,GAAG,sBAAH,GAA4B;AAFzC,KAKGT,MALH,CAFJ,EAUG,CAAC,CAACC,KAAF,IAAW;AAAK,IAAA,SAAS,EAAC;AAAf,KAAoCA,KAApC,CAVd,CAFF,CADF;AAiBD,CAxCM;AA0CPH,mBAAmB,CAACe,WAApB,GAAkC,YAAlC;AAEA,OAAO,IAAMC,UAAU,GAAGtB,cAAc,CAACM,mBAAD,EAAsB;AAC5DI,EAAAA,SAAS,EAAE,IADiD;AAE5DC,EAAAA,UAAU,EAAE,IAFgD;AAG5DC,EAAAA,QAAQ,EAAE;AAHkD,CAAtB,CAAjC","sourcesContent":["import * as React from \"react\";\nimport { HasRootRef } from \"../../types\";\nimport {\n withAdaptivity,\n ViewWidth,\n ViewHeight,\n} from \"../../hoc/withAdaptivity\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { blurActiveElement, useDOM } from \"../../lib/dom\";\nimport { AdaptivityContextInterface } from \"../AdaptivityProvider/AdaptivityContext\";\nimport \"./PopoutRoot.css\";\n\nexport interface PopoutRootProps\n extends React.HTMLAttributes<HTMLDivElement>,\n AdaptivityContextInterface,\n HasRootRef<HTMLDivElement> {\n popout?: React.ReactNode;\n modal?: React.ReactNode;\n}\n\nexport const PopoutRootComponent: React.FC<PopoutRootProps> = (\n props: PopoutRootProps\n) => {\n const {\n popout,\n modal,\n viewWidth,\n viewHeight,\n hasMouse,\n children,\n getRootRef,\n ...restProps\n } = props;\n const { document } = useDOM();\n\n const isDesktop =\n viewWidth >= ViewWidth.SMALL_TABLET &&\n (hasMouse || viewHeight >= ViewHeight.MEDIUM);\n\n React.useEffect(() => {\n popout && blurActiveElement(document);\n }, [document, popout]);\n\n return (\n <div {...restProps} vkuiClass=\"PopoutRoot\" ref={getRootRef}>\n {children}\n <AppRootPortal>\n {!!popout && (\n <div\n vkuiClass={\n isDesktop ? \"PopoutRoot--absolute\" : \"PopoutRoot__popout\"\n }\n >\n {popout}\n </div>\n )}\n {!!modal && <div vkuiClass=\"PopoutRoot__modal\">{modal}</div>}\n </AppRootPortal>\n </div>\n );\n};\n\nPopoutRootComponent.displayName = \"PopoutRoot\";\n\nexport const PopoutRoot = withAdaptivity(PopoutRootComponent, {\n viewWidth: true,\n viewHeight: true,\n hasMouse: true,\n});\n"],"file":"PopoutRoot.js"}
1
+ {"version":3,"sources":["../../../../src/components/PopoutRoot/PopoutRoot.tsx"],"names":["React","withAdaptivity","ViewWidth","ViewHeight","AppRootPortal","blurActiveElement","useDOM","PopoutRootComponent","props","popout","modal","viewWidth","viewHeight","hasMouse","children","getRootRef","restProps","document","isDesktop","SMALL_TABLET","MEDIUM","useEffect","displayName","PopoutRoot"],"mappings":";;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAEA,SACEC,cADF,EAEEC,SAFF,EAGEC,UAHF;AAKA,SAASC,aAAT;AACA,SAASC,iBAAT,EAA4BC,MAA5B;AAKA;AAUA,OAAO,IAAMC,mBAEZ,GAAG,SAFSA,mBAET,CAACC,KAAD,EAAW;AACb,MACEC,MADF,GASID,KATJ,CACEC,MADF;AAAA,MAEEC,KAFF,GASIF,KATJ,CAEEE,KAFF;AAAA,MAGEC,SAHF,GASIH,KATJ,CAGEG,SAHF;AAAA,MAIEC,UAJF,GASIJ,KATJ,CAIEI,UAJF;AAAA,MAKEC,QALF,GASIL,KATJ,CAKEK,QALF;AAAA,MAMEC,QANF,GASIN,KATJ,CAMEM,QANF;AAAA,MAOEC,UAPF,GASIP,KATJ,CAOEO,UAPF;AAAA,MAQKC,SARL,4BASIR,KATJ;;AAUA,gBAAqBF,MAAM,EAA3B;AAAA,MAAQW,QAAR,WAAQA,QAAR;;AAEA,MAAMC,SAAS,GACbP,SAAS,IAAIT,SAAS,CAACiB,YAAvB,KACCN,QAAQ,IAAID,UAAU,IAAIT,UAAU,CAACiB,MADtC,CADF;AAIApB,EAAAA,KAAK,CAACqB,SAAN,CAAgB,YAAM;AACpBZ,IAAAA,MAAM,IAAIJ,iBAAiB,CAACY,QAAD,CAA3B;AACD,GAFD,EAEG,CAACA,QAAD,EAAWR,MAAX,CAFH;AAIA,SACE,wCAASO,SAAT;AAAoB,IAAA,SAAS,EAAC,YAA9B;AAA2C,IAAA,GAAG,EAAED;AAAhD,MACGD,QADH,EAEE,oBAAC,aAAD,QACG,CAAC,CAACL,MAAF,IACC;AACE,IAAA,SAAS,EACPS,SAAS,GAAG,sBAAH,GAA4B;AAFzC,KAKGT,MALH,CAFJ,EAUG,CAAC,CAACC,KAAF,IAAW;AAAK,IAAA,SAAS,EAAC;AAAf,KAAoCA,KAApC,CAVd,CAFF,CADF;AAiBD,CAxCM;AA0CPH,mBAAmB,CAACe,WAApB,GAAkC,YAAlC;AAEA,OAAO,IAAMC,UAAU,GAAGtB,cAAc,CAACM,mBAAD,EAAsB;AAC5DI,EAAAA,SAAS,EAAE,IADiD;AAE5DC,EAAAA,UAAU,EAAE,IAFgD;AAG5DC,EAAAA,QAAQ,EAAE;AAHkD,CAAtB,CAAjC","sourcesContent":["import * as React from \"react\";\nimport { HasRootRef } from \"../../types\";\nimport {\n withAdaptivity,\n ViewWidth,\n ViewHeight,\n} from \"../../hoc/withAdaptivity\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { blurActiveElement, useDOM } from \"../../lib/dom\";\nimport {\n AdaptivityContextInterface,\n AdaptivityProps,\n} from \"../AdaptivityProvider/AdaptivityContext\";\nimport \"./PopoutRoot.css\";\n\nexport interface PopoutRootProps\n extends React.HTMLAttributes<HTMLDivElement>,\n AdaptivityProps,\n HasRootRef<HTMLDivElement> {\n popout?: React.ReactNode;\n modal?: React.ReactNode;\n}\n\nexport const PopoutRootComponent: React.FC<\n PopoutRootProps & AdaptivityContextInterface\n> = (props) => {\n const {\n popout,\n modal,\n viewWidth,\n viewHeight,\n hasMouse,\n children,\n getRootRef,\n ...restProps\n } = props;\n const { document } = useDOM();\n\n const isDesktop =\n viewWidth >= ViewWidth.SMALL_TABLET &&\n (hasMouse || viewHeight >= ViewHeight.MEDIUM);\n\n React.useEffect(() => {\n popout && blurActiveElement(document);\n }, [document, popout]);\n\n return (\n <div {...restProps} vkuiClass=\"PopoutRoot\" ref={getRootRef}>\n {children}\n <AppRootPortal>\n {!!popout && (\n <div\n vkuiClass={\n isDesktop ? \"PopoutRoot--absolute\" : \"PopoutRoot__popout\"\n }\n >\n {popout}\n </div>\n )}\n {!!modal && <div vkuiClass=\"PopoutRoot__modal\">{modal}</div>}\n </AppRootPortal>\n </div>\n );\n};\n\nPopoutRootComponent.displayName = \"PopoutRoot\";\n\nexport const PopoutRoot = withAdaptivity(PopoutRootComponent, {\n viewWidth: true,\n viewHeight: true,\n hasMouse: true,\n});\n"],"file":"PopoutRoot.js"}
@@ -13,7 +13,9 @@ import Avatar from "../Avatar/Avatar";
13
13
  import Caption from "../Typography/Caption/Caption";
14
14
  import { usePlatform } from "../../hooks/usePlatform";
15
15
  import { getClassName } from "../../helpers/getClassName";
16
+ import { warnOnce } from "../../lib/warnOnce";
16
17
  import "./PromoBanner.css";
18
+ var warn = warnOnce("PromoBanner");
17
19
 
18
20
  var PromoBanner = function PromoBanner(props) {
19
21
  var platform = usePlatform();
@@ -25,6 +27,10 @@ var PromoBanner = function PromoBanner(props) {
25
27
 
26
28
  var ageRestrictions = bannerData.ageRestrictions != null ? parseInt(bannerData.ageRestrictions) : bannerData.ageRestriction;
27
29
 
30
+ if (bannerData.ageRestriction && process.env.NODE_ENV === "development") {
31
+ warn("Свойство bannerData.ageRestriction устарело и будет удалено в 5.0.0. Используйте bannerData.ageRestrictions");
32
+ }
33
+
28
34
  var _React$useState = React.useState(""),
29
35
  _React$useState2 = _slicedToArray(_React$useState, 2),
30
36
  currentPixel = _React$useState2[0],
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/PromoBanner/PromoBanner.tsx"],"names":["React","Icon24Dismiss","Button","SimpleCell","Avatar","Caption","usePlatform","getClassName","PromoBanner","props","platform","bannerData","onClose","restProps","ageRestrictions","parseInt","ageRestriction","useState","currentPixel","setCurrentPixel","statsPixels","useMemo","statistics","reduce","acc","item","type","url","onClick","useCallback","click","useEffect","playbackStarted","advertisingLabel","isCloseButtonHidden","trackingLink","iconLink","title","ctaText","domain","length"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { Icon24Dismiss } from \"@vkontakte/icons\";\nimport Button from \"../Button/Button\";\nimport SimpleCell from \"../SimpleCell/SimpleCell\";\nimport Avatar from \"../Avatar/Avatar\";\nimport Caption from \"../Typography/Caption/Caption\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport \"./PromoBanner.css\";\n\ntype StatsType =\n | \"playbackStarted\" // Начало показа\n | \"click\"; // Клик по баннеру\n\ntype BannerData = {\n title?: string;\n url_types?: string; // eslint-disable-line camelcase\n bannerID?: string;\n imageWidth?: number;\n imageHeight?: number;\n imageLink?: string;\n trackingLink?: string;\n type?: string;\n iconWidth?: number;\n domain?: string;\n ctaText?: string;\n advertisingLabel?: string;\n iconLink?: string;\n statistics?: Array<{ type: StatsType; url: string }>;\n openInBrowser?: boolean;\n iconHeight?: number;\n directLink?: boolean;\n navigationType?: string;\n description?: string;\n ageRestrictions?: string;\n /** @deprecated */\n ageRestriction?: number;\n};\n\nexport interface PromoBannerProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Данные рекламного баннера, полученные из VKWebAppGetAds */\n bannerData: BannerData;\n /** Флаг скрытия кнопки закрытия рекламы */\n isCloseButtonHidden?: boolean;\n /** Хандлер закрытия рекламы */\n onClose: () => void;\n}\n\nconst PromoBanner = (props: PromoBannerProps) => {\n const platform = usePlatform();\n const { bannerData = {}, onClose, ...restProps } = props;\n\n const ageRestrictions =\n bannerData.ageRestrictions != null\n ? parseInt(bannerData.ageRestrictions)\n : bannerData.ageRestriction;\n\n const [currentPixel, setCurrentPixel] = React.useState(\"\");\n\n const statsPixels = React.useMemo(\n () =>\n (bannerData.statistics\n ? bannerData.statistics.reduce(\n (acc, item) => ({ ...acc, [item.type]: item.url }),\n {}\n )\n : {}) as Record<StatsType, string | void>,\n [bannerData.statistics]\n );\n\n const onClick = React.useCallback(\n () => setCurrentPixel(statsPixels.click || \"\"),\n [statsPixels.click]\n );\n\n React.useEffect(() => {\n if (statsPixels.playbackStarted) {\n setCurrentPixel(statsPixels.playbackStarted);\n }\n }, [statsPixels.playbackStarted]);\n\n return (\n <div vkuiClass={getClassName(\"PromoBanner\", platform)} {...restProps}>\n <div vkuiClass=\"PromoBanner__head\">\n <Caption weight=\"regular\" level=\"1\" vkuiClass=\"PromoBanner__label\">\n {bannerData.advertisingLabel || \"Advertisement\"}\n </Caption>\n {ageRestrictions != null && (\n <Caption weight=\"regular\" level=\"1\" vkuiClass=\"PromoBanner__age\">\n {ageRestrictions}+\n </Caption>\n )}\n\n {!props.isCloseButtonHidden && (\n <div vkuiClass=\"PromoBanner__close\" onClick={props.onClose}>\n <Icon24Dismiss />\n </div>\n )}\n </div>\n <SimpleCell\n href={bannerData.trackingLink}\n onClick={onClick}\n rel=\"nofollow noopener noreferrer\"\n target=\"_blank\"\n before={\n <Avatar\n mode=\"image\"\n size={48}\n src={bannerData.iconLink}\n alt={bannerData.title}\n />\n }\n after={<Button mode=\"outline\">{bannerData.ctaText}</Button>}\n description={bannerData.domain}\n >\n {bannerData.title}\n </SimpleCell>\n\n {currentPixel.length > 0 && (\n <div vkuiClass=\"PromoBanner__pixels\">\n <img src={currentPixel} alt=\"\" />\n </div>\n )}\n </div>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default PromoBanner;\n"],"file":"PromoBanner.js"}
1
+ {"version":3,"sources":["../../../../src/components/PromoBanner/PromoBanner.tsx"],"names":["React","Icon24Dismiss","Button","SimpleCell","Avatar","Caption","usePlatform","getClassName","warnOnce","warn","PromoBanner","props","platform","bannerData","onClose","restProps","ageRestrictions","parseInt","ageRestriction","process","env","NODE_ENV","useState","currentPixel","setCurrentPixel","statsPixels","useMemo","statistics","reduce","acc","item","type","url","onClick","useCallback","click","useEffect","playbackStarted","advertisingLabel","isCloseButtonHidden","trackingLink","iconLink","title","ctaText","domain","length"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { Icon24Dismiss } from \"@vkontakte/icons\";\nimport Button from \"../Button/Button\";\nimport SimpleCell from \"../SimpleCell/SimpleCell\";\nimport Avatar from \"../Avatar/Avatar\";\nimport Caption from \"../Typography/Caption/Caption\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport \"./PromoBanner.css\";\n\ntype StatsType =\n | \"playbackStarted\" // Начало показа\n | \"click\"; // Клик по баннеру\n\ntype BannerData = {\n title?: string;\n url_types?: string; // eslint-disable-line camelcase\n bannerID?: string;\n imageWidth?: number;\n imageHeight?: number;\n imageLink?: string;\n trackingLink?: string;\n type?: string;\n iconWidth?: number;\n domain?: string;\n ctaText?: string;\n advertisingLabel?: string;\n iconLink?: string;\n statistics?: Array<{ type: StatsType; url: string }>;\n openInBrowser?: boolean;\n iconHeight?: number;\n directLink?: boolean;\n navigationType?: string;\n description?: string;\n ageRestrictions?: string;\n /** @deprecated */\n ageRestriction?: number;\n};\n\nexport interface PromoBannerProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Данные рекламного баннера, полученные из VKWebAppGetAds */\n bannerData: BannerData;\n /** Флаг скрытия кнопки закрытия рекламы */\n isCloseButtonHidden?: boolean;\n /** Хандлер закрытия рекламы */\n onClose: () => void;\n}\n\nconst warn = warnOnce(\"PromoBanner\");\nconst PromoBanner = (props: PromoBannerProps) => {\n const platform = usePlatform();\n const { bannerData = {}, onClose, ...restProps } = props;\n\n const ageRestrictions =\n bannerData.ageRestrictions != null\n ? parseInt(bannerData.ageRestrictions)\n : bannerData.ageRestriction;\n\n if (bannerData.ageRestriction && process.env.NODE_ENV === \"development\") {\n warn(\n \"Свойство bannerData.ageRestriction устарело и будет удалено в 5.0.0. Используйте bannerData.ageRestrictions\"\n );\n }\n\n const [currentPixel, setCurrentPixel] = React.useState(\"\");\n\n const statsPixels = React.useMemo(\n () =>\n (bannerData.statistics\n ? bannerData.statistics.reduce(\n (acc, item) => ({ ...acc, [item.type]: item.url }),\n {}\n )\n : {}) as Record<StatsType, string | void>,\n [bannerData.statistics]\n );\n\n const onClick = React.useCallback(\n () => setCurrentPixel(statsPixels.click || \"\"),\n [statsPixels.click]\n );\n\n React.useEffect(() => {\n if (statsPixels.playbackStarted) {\n setCurrentPixel(statsPixels.playbackStarted);\n }\n }, [statsPixels.playbackStarted]);\n\n return (\n <div vkuiClass={getClassName(\"PromoBanner\", platform)} {...restProps}>\n <div vkuiClass=\"PromoBanner__head\">\n <Caption weight=\"regular\" level=\"1\" vkuiClass=\"PromoBanner__label\">\n {bannerData.advertisingLabel || \"Advertisement\"}\n </Caption>\n {ageRestrictions != null && (\n <Caption weight=\"regular\" level=\"1\" vkuiClass=\"PromoBanner__age\">\n {ageRestrictions}+\n </Caption>\n )}\n\n {!props.isCloseButtonHidden && (\n <div vkuiClass=\"PromoBanner__close\" onClick={props.onClose}>\n <Icon24Dismiss />\n </div>\n )}\n </div>\n <SimpleCell\n href={bannerData.trackingLink}\n onClick={onClick}\n rel=\"nofollow noopener noreferrer\"\n target=\"_blank\"\n before={\n <Avatar\n mode=\"image\"\n size={48}\n src={bannerData.iconLink}\n alt={bannerData.title}\n />\n }\n after={<Button mode=\"outline\">{bannerData.ctaText}</Button>}\n description={bannerData.domain}\n >\n {bannerData.title}\n </SimpleCell>\n\n {currentPixel.length > 0 && (\n <div vkuiClass=\"PromoBanner__pixels\">\n <img src={currentPixel} alt=\"\" />\n </div>\n )}\n </div>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default PromoBanner;\n"],"file":"PromoBanner.js"}
@@ -123,6 +123,11 @@ var Root = function Root(_ref) {
123
123
  }
124
124
  };
125
125
 
126
+ if (process.env.NODE_ENV === "development") {
127
+ popout && warn("Свойство popout устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.");
128
+ modal && warn("Свойство modal устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.");
129
+ }
130
+
126
131
  return createScopedElement("div", _extends({}, restProps, {
127
132
  vkuiClass: classNames(getClassName("Root", platform), {
128
133
  "Root--transition": !disableAnimation && transition,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Root/Root.tsx"],"names":["React","classNames","getClassName","IOS","ConfigProviderContext","SplitColContext","AppRootPortal","ScrollContext","NavTransitionProvider","getNavId","warnOnce","useDOM","useIsomorphicLayoutEffect","useTimeout","usePlatform","warn","Root","popout","modal","children","_activeView","activeView","onTransition","nav","restProps","scroll","useContext","platform","document","scrolls","useRef","current","viewNodes","transitionMotionEnabled","animate","disableAnimation","views","Children","toArray","useState","transition","prevView","isBack","_setState","transitionTo","panel","viewIds","map","view","props","indexOf","getScroll","y","finishTransition","useCallback","activeElement","blur","scrollTo","Boolean","from","to","fallbackTransition","useEffect","clear","set","onAnimationEnd","e","includes","animationName","viewId","isTransitionTarget","compensateScroll","undefined","marginTop"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { IOS } from \"../../lib/platform\";\nimport { ConfigProviderContext } from \"../ConfigProvider/ConfigProviderContext\";\nimport { SplitColContext } from \"../SplitCol/SplitCol\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { ScrollContext } from \"../AppRoot/ScrollContext\";\nimport { NavTransitionProvider } from \"../NavTransitionContext/NavTransitionContext\";\nimport { getNavId, NavIdProps } from \"../../lib/getNavId\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { useDOM } from \"../../lib/dom\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport \"./Root.css\";\n\nconst warn = warnOnce(\"Root\");\n\nexport interface RootProps\n extends React.HTMLAttributes<HTMLDivElement>,\n NavIdProps {\n activeView: string;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.\n */\n popout?: React.ReactNode;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `ModalRoot`.\n */\n modal?: React.ReactNode;\n}\n\nexport interface RootState {\n activeView: string;\n transition: boolean;\n isBack?: boolean;\n prevView?: string;\n}\n\nconst Root: React.FC<RootProps> = ({\n popout = null,\n modal,\n children,\n activeView: _activeView,\n onTransition,\n nav,\n ...restProps\n}: RootProps) => {\n const scroll = React.useContext(ScrollContext);\n const platform = usePlatform();\n const { document } = useDOM();\n const scrolls = React.useRef<Record<string, number>>({}).current;\n const viewNodes = React.useRef<Record<string, HTMLElement | null>>(\n {}\n ).current;\n\n const { transitionMotionEnabled = true } = React.useContext(\n ConfigProviderContext\n );\n const { animate } = React.useContext(SplitColContext);\n const disableAnimation = !transitionMotionEnabled || !animate;\n\n const views = React.Children.toArray(children) as React.ReactElement[];\n\n const [{ prevView, activeView, transition, isBack }, _setState] =\n React.useState<RootState>({\n activeView: _activeView,\n transition: false,\n });\n const transitionTo = (panel: string) => {\n if (panel !== activeView) {\n const viewIds = views.map((view) => getNavId(view.props, warn));\n const isBack = viewIds.indexOf(panel) < viewIds.indexOf(activeView);\n scrolls[activeView] = scroll.getScroll().y;\n _setState({\n activeView: panel,\n prevView: activeView,\n transition: true,\n isBack,\n });\n }\n };\n const finishTransition = React.useCallback(\n () => _setState({ activeView, prevView, isBack, transition: false }),\n [activeView, isBack, prevView]\n );\n\n useIsomorphicLayoutEffect(() => {\n (document!.activeElement as HTMLElement).blur();\n }, [!!popout, activeView]);\n\n // Нужен переход\n useIsomorphicLayoutEffect(() => transitionTo(_activeView), [_activeView]);\n useIsomorphicLayoutEffect(() => {\n if (!transition && prevView) {\n // Закончился переход\n scroll.scrollTo(0, isBack ? scrolls[activeView] : 0);\n onTransition &&\n onTransition({\n isBack: Boolean(isBack),\n from: prevView,\n to: activeView,\n });\n }\n }, [transition]);\n\n const fallbackTransition = useTimeout(\n finishTransition,\n platform === IOS ? 600 : 300\n );\n React.useEffect(() => {\n if (!transition) {\n fallbackTransition.clear();\n return;\n }\n disableAnimation ? finishTransition() : fallbackTransition.set();\n }, [disableAnimation, fallbackTransition, finishTransition, transition]);\n\n const onAnimationEnd = (e: React.AnimationEvent) => {\n if (\n [\n \"vkui-root-android-animation-hide-back\",\n \"vkui-root-android-animation-show-forward\",\n \"vkui-root-ios-animation-hide-back\",\n \"vkui-root-ios-animation-show-forward\",\n ].includes(e.animationName)\n ) {\n finishTransition();\n }\n };\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(getClassName(\"Root\", platform), {\n \"Root--transition\": !disableAnimation && transition,\n \"Root--no-motion\": disableAnimation,\n })}\n >\n {views.map((view) => {\n const viewId = getNavId(view.props, warn);\n if (viewId !== activeView && !(transition && viewId === prevView)) {\n return null;\n }\n const isTransitionTarget =\n transition && viewId === (isBack ? prevView : activeView);\n const compensateScroll =\n transition &&\n (viewId === prevView || (isBack && viewId === activeView));\n return (\n <div\n key={viewId}\n ref={(e) => viewId && (viewNodes[viewId] = e)}\n onAnimationEnd={isTransitionTarget ? onAnimationEnd : undefined}\n vkuiClass={classNames(\"Root__view\", {\n \"Root__view--hide-back\":\n transition && viewId === prevView && isBack,\n \"Root__view--hide-forward\":\n transition && viewId === prevView && !isBack,\n \"Root__view--show-back\":\n transition && viewId === activeView && isBack,\n \"Root__view--show-forward\":\n transition && viewId === activeView && !isBack,\n \"Root__view--active\": !transition && viewId === activeView,\n })}\n >\n <NavTransitionProvider\n entering={transition && viewId === activeView}\n >\n <div\n vkuiClass=\"Root__scrollCompensation\"\n style={{\n marginTop: compensateScroll\n ? viewId && -(scrolls[viewId] ?? 0)\n : undefined,\n }}\n >\n {view}\n </div>\n </NavTransitionProvider>\n </div>\n );\n })}\n <AppRootPortal>\n {!!popout && <div vkuiClass=\"Root__popout\">{popout}</div>}\n {!!modal && <div vkuiClass=\"Root__modal\">{modal}</div>}\n </AppRootPortal>\n </div>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default Root;\n"],"file":"Root.js"}
1
+ {"version":3,"sources":["../../../../src/components/Root/Root.tsx"],"names":["React","classNames","getClassName","IOS","ConfigProviderContext","SplitColContext","AppRootPortal","ScrollContext","NavTransitionProvider","getNavId","warnOnce","useDOM","useIsomorphicLayoutEffect","useTimeout","usePlatform","warn","Root","popout","modal","children","_activeView","activeView","onTransition","nav","restProps","scroll","useContext","platform","document","scrolls","useRef","current","viewNodes","transitionMotionEnabled","animate","disableAnimation","views","Children","toArray","useState","transition","prevView","isBack","_setState","transitionTo","panel","viewIds","map","view","props","indexOf","getScroll","y","finishTransition","useCallback","activeElement","blur","scrollTo","Boolean","from","to","fallbackTransition","useEffect","clear","set","onAnimationEnd","e","includes","animationName","process","env","NODE_ENV","viewId","isTransitionTarget","compensateScroll","undefined","marginTop"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { IOS } from \"../../lib/platform\";\nimport { ConfigProviderContext } from \"../ConfigProvider/ConfigProviderContext\";\nimport { SplitColContext } from \"../SplitCol/SplitCol\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { ScrollContext } from \"../AppRoot/ScrollContext\";\nimport { NavTransitionProvider } from \"../NavTransitionContext/NavTransitionContext\";\nimport { getNavId, NavIdProps } from \"../../lib/getNavId\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { useDOM } from \"../../lib/dom\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport \"./Root.css\";\n\nexport interface RootProps\n extends React.HTMLAttributes<HTMLDivElement>,\n NavIdProps {\n activeView: string;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.\n */\n popout?: React.ReactNode;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `ModalRoot`.\n */\n modal?: React.ReactNode;\n}\n\nexport interface RootState {\n activeView: string;\n transition: boolean;\n isBack?: boolean;\n prevView?: string;\n}\n\nconst warn = warnOnce(\"Root\");\nconst Root: React.FC<RootProps> = ({\n popout = null,\n modal,\n children,\n activeView: _activeView,\n onTransition,\n nav,\n ...restProps\n}: RootProps) => {\n const scroll = React.useContext(ScrollContext);\n const platform = usePlatform();\n const { document } = useDOM();\n const scrolls = React.useRef<Record<string, number>>({}).current;\n const viewNodes = React.useRef<Record<string, HTMLElement | null>>(\n {}\n ).current;\n\n const { transitionMotionEnabled = true } = React.useContext(\n ConfigProviderContext\n );\n const { animate } = React.useContext(SplitColContext);\n const disableAnimation = !transitionMotionEnabled || !animate;\n\n const views = React.Children.toArray(children) as React.ReactElement[];\n\n const [{ prevView, activeView, transition, isBack }, _setState] =\n React.useState<RootState>({\n activeView: _activeView,\n transition: false,\n });\n const transitionTo = (panel: string) => {\n if (panel !== activeView) {\n const viewIds = views.map((view) => getNavId(view.props, warn));\n const isBack = viewIds.indexOf(panel) < viewIds.indexOf(activeView);\n scrolls[activeView] = scroll.getScroll().y;\n _setState({\n activeView: panel,\n prevView: activeView,\n transition: true,\n isBack,\n });\n }\n };\n const finishTransition = React.useCallback(\n () => _setState({ activeView, prevView, isBack, transition: false }),\n [activeView, isBack, prevView]\n );\n\n useIsomorphicLayoutEffect(() => {\n (document!.activeElement as HTMLElement).blur();\n }, [!!popout, activeView]);\n\n // Нужен переход\n useIsomorphicLayoutEffect(() => transitionTo(_activeView), [_activeView]);\n useIsomorphicLayoutEffect(() => {\n if (!transition && prevView) {\n // Закончился переход\n scroll.scrollTo(0, isBack ? scrolls[activeView] : 0);\n onTransition &&\n onTransition({\n isBack: Boolean(isBack),\n from: prevView,\n to: activeView,\n });\n }\n }, [transition]);\n\n const fallbackTransition = useTimeout(\n finishTransition,\n platform === IOS ? 600 : 300\n );\n React.useEffect(() => {\n if (!transition) {\n fallbackTransition.clear();\n return;\n }\n disableAnimation ? finishTransition() : fallbackTransition.set();\n }, [disableAnimation, fallbackTransition, finishTransition, transition]);\n\n const onAnimationEnd = (e: React.AnimationEvent) => {\n if (\n [\n \"vkui-root-android-animation-hide-back\",\n \"vkui-root-android-animation-show-forward\",\n \"vkui-root-ios-animation-hide-back\",\n \"vkui-root-ios-animation-show-forward\",\n ].includes(e.animationName)\n ) {\n finishTransition();\n }\n };\n\n if (process.env.NODE_ENV === \"development\") {\n popout &&\n warn(\n \"Свойство popout устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.\"\n );\n modal &&\n warn(\n \"Свойство modal устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.\"\n );\n }\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(getClassName(\"Root\", platform), {\n \"Root--transition\": !disableAnimation && transition,\n \"Root--no-motion\": disableAnimation,\n })}\n >\n {views.map((view) => {\n const viewId = getNavId(view.props, warn);\n if (viewId !== activeView && !(transition && viewId === prevView)) {\n return null;\n }\n const isTransitionTarget =\n transition && viewId === (isBack ? prevView : activeView);\n const compensateScroll =\n transition &&\n (viewId === prevView || (isBack && viewId === activeView));\n return (\n <div\n key={viewId}\n ref={(e) => viewId && (viewNodes[viewId] = e)}\n onAnimationEnd={isTransitionTarget ? onAnimationEnd : undefined}\n vkuiClass={classNames(\"Root__view\", {\n \"Root__view--hide-back\":\n transition && viewId === prevView && isBack,\n \"Root__view--hide-forward\":\n transition && viewId === prevView && !isBack,\n \"Root__view--show-back\":\n transition && viewId === activeView && isBack,\n \"Root__view--show-forward\":\n transition && viewId === activeView && !isBack,\n \"Root__view--active\": !transition && viewId === activeView,\n })}\n >\n <NavTransitionProvider\n entering={transition && viewId === activeView}\n >\n <div\n vkuiClass=\"Root__scrollCompensation\"\n style={{\n marginTop: compensateScroll\n ? viewId && -(scrolls[viewId] ?? 0)\n : undefined,\n }}\n >\n {view}\n </div>\n </NavTransitionProvider>\n </div>\n );\n })}\n <AppRootPortal>\n {!!popout && <div vkuiClass=\"Root__popout\">{popout}</div>}\n {!!modal && <div vkuiClass=\"Root__modal\">{modal}</div>}\n </AppRootPortal>\n </div>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default Root;\n"],"file":"Root.js"}
@@ -1,36 +1,63 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import _extends from "@babel/runtime/helpers/extends";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
- var _excluded = ["before", "className", "defaultValue", "placeholder", "after", "getRef", "platform", "icon", "onIconClick", "style"];
4
+ var _excluded = ["platform", "children"],
5
+ _excluded2 = ["before", "className", "defaultValue", "placeholder", "after", "getRef", "platform", "icon", "onIconClick", "style"];
5
6
  import { createScopedElement } from "../../lib/jsxRuntime";
6
7
  import * as React from "react";
7
8
  import { classNames } from "../../lib/classNames";
8
9
  import { withPlatform } from "../../hoc/withPlatform";
9
10
  import { getClassName } from "../../helpers/getClassName";
10
11
  import { Icon16SearchOutline, Icon16Clear, Icon24Cancel } from "@vkontakte/icons";
11
- import { IOS, VKCOM } from "../../lib/platform";
12
+ import { IOS, VKCOM, ANDROID } from "../../lib/platform";
12
13
  import { Touch } from "../Touch/Touch";
13
14
  import { noop } from "../../lib/utils";
14
15
  import Text from "../Typography/Text/Text";
15
16
  import Title from "../Typography/Title/Title";
17
+ import Headline from "../Typography/Headline/Headline";
16
18
  import Separator from "../Separator/Separator";
17
19
  import { useExternRef } from "../../hooks/useExternRef";
18
20
  import { useEnsuredControl } from "../../hooks/useEnsuredControl";
19
21
  import "./Search.css";
20
22
 
21
- var Search = function Search(_ref) {
22
- var before = _ref.before,
23
- className = _ref.className,
24
- defaultValue = _ref.defaultValue,
25
- placeholder = _ref.placeholder,
26
- after = _ref.after,
27
- getRef = _ref.getRef,
28
- platform = _ref.platform,
29
- icon = _ref.icon,
30
- _ref$onIconClick = _ref.onIconClick,
31
- onIconClick = _ref$onIconClick === void 0 ? noop : _ref$onIconClick,
32
- style = _ref.style,
33
- inputProps = _objectWithoutProperties(_ref, _excluded);
23
+ var SearchPlaceholderTypography = function SearchPlaceholderTypography(_ref) {
24
+ var platform = _ref.platform,
25
+ children = _ref.children,
26
+ restProps = _objectWithoutProperties(_ref, _excluded);
27
+
28
+ switch (platform) {
29
+ case IOS:
30
+ return createScopedElement(Title, _extends({}, restProps, {
31
+ level: "3",
32
+ weight: "3"
33
+ }), children);
34
+
35
+ case VKCOM:
36
+ return createScopedElement(Text, _extends({}, restProps, {
37
+ weight: "regular"
38
+ }), children);
39
+
40
+ case ANDROID:
41
+ default:
42
+ return createScopedElement(Headline, _extends({}, restProps, {
43
+ weight: "regular"
44
+ }), children);
45
+ }
46
+ };
47
+
48
+ var Search = function Search(_ref2) {
49
+ var before = _ref2.before,
50
+ className = _ref2.className,
51
+ defaultValue = _ref2.defaultValue,
52
+ placeholder = _ref2.placeholder,
53
+ after = _ref2.after,
54
+ getRef = _ref2.getRef,
55
+ platform = _ref2.platform,
56
+ icon = _ref2.icon,
57
+ _ref2$onIconClick = _ref2.onIconClick,
58
+ onIconClick = _ref2$onIconClick === void 0 ? noop : _ref2$onIconClick,
59
+ style = _ref2.style,
60
+ inputProps = _objectWithoutProperties(_ref2, _excluded2);
34
61
 
35
62
  var inputRef = useExternRef(getRef);
36
63
 
@@ -107,13 +134,9 @@ var Search = function Search(_ref) {
107
134
  vkuiClass: "Search__placeholder"
108
135
  }, createScopedElement("div", {
109
136
  vkuiClass: "Search__placeholder-in"
110
- }, before, platform === VKCOM ? createScopedElement(Text, {
111
- vkuiClass: "Search__placeholder-text",
112
- weight: "regular"
113
- }, placeholder) : createScopedElement(Title, {
137
+ }, before, createScopedElement(SearchPlaceholderTypography, {
114
138
  vkuiClass: "Search__placeholder-text",
115
- level: "3",
116
- weight: "regular"
139
+ platform: platform
117
140
  }, placeholder)), isFocused && platform === IOS && after && createScopedElement("div", {
118
141
  vkuiClass: "Search__after-width"
119
142
  }, after))), createScopedElement("div", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Search/Search.tsx"],"names":["React","classNames","withPlatform","getClassName","Icon16SearchOutline","Icon16Clear","Icon24Cancel","IOS","VKCOM","Touch","noop","Text","Title","Separator","useExternRef","useEnsuredControl","Search","before","className","defaultValue","placeholder","after","getRef","platform","icon","onIconClick","style","inputProps","inputRef","useState","isFocused","setFocused","value","onChange","onFocus","e","onBlur","onCancel","useCallback","nativeInputValueSetter","Object","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","call","current","ev2","Event","bubbles","dispatchEvent","onIconClickStart","originalEvent","onIconCancelClickStart","preventDefault","focus","defaultProps","autoComplete"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { withPlatform } from \"../../hoc/withPlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport {\n Icon16SearchOutline,\n Icon16Clear,\n Icon24Cancel,\n} from \"@vkontakte/icons\";\nimport { IOS, VKCOM } from \"../../lib/platform\";\nimport { HasPlatform, HasRef } from \"../../types\";\nimport { Touch, TouchEvent } from \"../Touch/Touch\";\nimport { VKUITouchEvent } from \"../../lib/touch\";\nimport { noop } from \"../../lib/utils\";\nimport Text from \"../Typography/Text/Text\";\nimport Title from \"../Typography/Title/Title\";\nimport Separator from \"../Separator/Separator\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useEnsuredControl } from \"../../hooks/useEnsuredControl\";\nimport \"./Search.css\";\n\nexport type InputRef = (element: HTMLInputElement) => void;\n\nexport interface SearchProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement>,\n HasPlatform {\n /**\n * iOS only. Текст кнопки \"отмена\", которая чистит текстовое поле и убирает фокус.\n */\n after?: React.ReactNode;\n before?: React.ReactNode;\n icon?: React.ReactNode;\n onIconClick?: (e: VKUITouchEvent) => void;\n defaultValue?: string;\n}\n\nconst Search: React.FC<SearchProps> = ({\n before,\n className,\n defaultValue,\n placeholder,\n after,\n getRef,\n platform,\n icon,\n onIconClick = noop,\n style,\n ...inputProps\n}) => {\n const inputRef = useExternRef(getRef);\n const [isFocused, setFocused] = React.useState(false);\n const [value, onChange] = useEnsuredControl(inputProps, { defaultValue });\n\n const onFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocused(true);\n inputProps.onFocus && inputProps.onFocus(e);\n };\n\n const onBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocused(false);\n inputProps.onBlur && inputProps.onBlur(e);\n };\n\n const onCancel = React.useCallback(() => {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n \"value\"\n )?.set;\n nativeInputValueSetter?.call(inputRef.current, \"\");\n\n const ev2 = new Event(\"input\", { bubbles: true });\n inputRef.current?.dispatchEvent(ev2);\n }, [inputRef]);\n\n const onIconClickStart = React.useCallback(\n (e: TouchEvent) => onIconClick(e.originalEvent),\n [onIconClick]\n );\n\n const onIconCancelClickStart = React.useCallback(\n (e: TouchEvent) => {\n e.originalEvent.preventDefault();\n inputRef.current?.focus();\n onCancel();\n },\n [inputRef, onCancel]\n );\n\n return (\n <div\n vkuiClass={classNames(getClassName(\"Search\", platform), {\n \"Search--focused\": isFocused,\n \"Search--has-value\": !!value,\n \"Search--has-after\": !!after,\n \"Search--has-icon\": !!icon,\n })}\n className={className}\n style={style}\n >\n <div vkuiClass=\"Search__in\">\n <div vkuiClass=\"Search__width\" />\n <label vkuiClass=\"Search__control\">\n <input\n type=\"search\"\n {...inputProps}\n ref={inputRef}\n vkuiClass=\"Search__input\"\n onFocus={onFocus}\n onBlur={onBlur}\n onChange={onChange}\n value={value}\n />\n {platform === IOS && after && (\n <div vkuiClass=\"Search__after-width\">{after}</div>\n )}\n <div vkuiClass=\"Search__placeholder\">\n <div vkuiClass=\"Search__placeholder-in\">\n {before}\n {platform === VKCOM ? (\n <Text vkuiClass=\"Search__placeholder-text\" weight=\"regular\">\n {placeholder}\n </Text>\n ) : (\n <Title\n vkuiClass=\"Search__placeholder-text\"\n level=\"3\"\n weight=\"regular\"\n >\n {placeholder}\n </Title>\n )}\n </div>\n {isFocused && platform === IOS && after && (\n <div vkuiClass=\"Search__after-width\">{after}</div>\n )}\n </div>\n </label>\n <div vkuiClass=\"Search__after\" onClick={onCancel}>\n <div vkuiClass=\"Search__icons\">\n {icon && (\n <Touch onStart={onIconClickStart} vkuiClass=\"Search__icon\">\n {icon}\n </Touch>\n )}\n {!!value && (\n <Touch onStart={onIconCancelClickStart} vkuiClass=\"Search__icon\">\n {platform === IOS ? <Icon16Clear /> : <Icon24Cancel />}\n </Touch>\n )}\n </div>\n {platform === IOS && after && (\n <div vkuiClass=\"Search__after-in\">{after}</div>\n )}\n </div>\n </div>\n {platform === VKCOM && <Separator vkuiClass=\"Search__separator\" wide />}\n </div>\n );\n};\n\nSearch.defaultProps = {\n autoComplete: \"off\",\n defaultValue: \"\",\n placeholder: \"Поиск\",\n after: \"Отмена\",\n before: <Icon16SearchOutline />,\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withPlatform(Search);\n"],"file":"Search.js"}
1
+ {"version":3,"sources":["../../../../src/components/Search/Search.tsx"],"names":["React","classNames","withPlatform","getClassName","Icon16SearchOutline","Icon16Clear","Icon24Cancel","IOS","VKCOM","ANDROID","Touch","noop","Text","Title","Headline","Separator","useExternRef","useEnsuredControl","SearchPlaceholderTypography","platform","children","restProps","Search","before","className","defaultValue","placeholder","after","getRef","icon","onIconClick","style","inputProps","inputRef","useState","isFocused","setFocused","value","onChange","onFocus","e","onBlur","onCancel","useCallback","nativeInputValueSetter","Object","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","call","current","ev2","Event","bubbles","dispatchEvent","onIconClickStart","originalEvent","onIconCancelClickStart","preventDefault","focus","defaultProps","autoComplete"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { withPlatform } from \"../../hoc/withPlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport {\n Icon16SearchOutline,\n Icon16Clear,\n Icon24Cancel,\n} from \"@vkontakte/icons\";\nimport { IOS, VKCOM, ANDROID } from \"../../lib/platform\";\nimport { HasPlatform, HasRef } from \"../../types\";\nimport { Touch, TouchEvent } from \"../Touch/Touch\";\nimport { VKUITouchEvent } from \"../../lib/touch\";\nimport { noop } from \"../../lib/utils\";\nimport Text from \"../Typography/Text/Text\";\nimport Title from \"../Typography/Title/Title\";\nimport Headline from \"../Typography/Headline/Headline\";\nimport Separator from \"../Separator/Separator\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useEnsuredControl } from \"../../hooks/useEnsuredControl\";\nimport \"./Search.css\";\n\nexport type InputRef = (element: HTMLInputElement) => void;\n\ninterface SearchPlaceholderTypographyProps\n extends HasPlatform,\n React.HTMLAttributes<HTMLElement> {}\n\nconst SearchPlaceholderTypography: React.FC<\n SearchPlaceholderTypographyProps\n> = ({ platform, children, ...restProps }) => {\n switch (platform) {\n case IOS:\n return (\n <Title {...restProps} level=\"3\" weight=\"3\">\n {children}\n </Title>\n );\n case VKCOM:\n return (\n <Text {...restProps} weight=\"regular\">\n {children}\n </Text>\n );\n case ANDROID:\n default:\n return (\n <Headline {...restProps} weight=\"regular\">\n {children}\n </Headline>\n );\n }\n};\n\nexport interface SearchProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement>,\n HasPlatform {\n /**\n * iOS only. Текст кнопки \"отмена\", которая чистит текстовое поле и убирает фокус.\n */\n after?: React.ReactNode;\n before?: React.ReactNode;\n icon?: React.ReactNode;\n onIconClick?: (e: VKUITouchEvent) => void;\n defaultValue?: string;\n}\n\nconst Search: React.FC<SearchProps> = ({\n before,\n className,\n defaultValue,\n placeholder,\n after,\n getRef,\n platform,\n icon,\n onIconClick = noop,\n style,\n ...inputProps\n}) => {\n const inputRef = useExternRef(getRef);\n const [isFocused, setFocused] = React.useState(false);\n const [value, onChange] = useEnsuredControl(inputProps, { defaultValue });\n\n const onFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocused(true);\n inputProps.onFocus && inputProps.onFocus(e);\n };\n\n const onBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocused(false);\n inputProps.onBlur && inputProps.onBlur(e);\n };\n\n const onCancel = React.useCallback(() => {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n \"value\"\n )?.set;\n nativeInputValueSetter?.call(inputRef.current, \"\");\n\n const ev2 = new Event(\"input\", { bubbles: true });\n inputRef.current?.dispatchEvent(ev2);\n }, [inputRef]);\n\n const onIconClickStart = React.useCallback(\n (e: TouchEvent) => onIconClick(e.originalEvent),\n [onIconClick]\n );\n\n const onIconCancelClickStart = React.useCallback(\n (e: TouchEvent) => {\n e.originalEvent.preventDefault();\n inputRef.current?.focus();\n onCancel();\n },\n [inputRef, onCancel]\n );\n\n return (\n <div\n vkuiClass={classNames(getClassName(\"Search\", platform), {\n \"Search--focused\": isFocused,\n \"Search--has-value\": !!value,\n \"Search--has-after\": !!after,\n \"Search--has-icon\": !!icon,\n })}\n className={className}\n style={style}\n >\n <div vkuiClass=\"Search__in\">\n <div vkuiClass=\"Search__width\" />\n <label vkuiClass=\"Search__control\">\n <input\n type=\"search\"\n {...inputProps}\n ref={inputRef}\n vkuiClass=\"Search__input\"\n onFocus={onFocus}\n onBlur={onBlur}\n onChange={onChange}\n value={value}\n />\n {platform === IOS && after && (\n <div vkuiClass=\"Search__after-width\">{after}</div>\n )}\n <div vkuiClass=\"Search__placeholder\">\n <div vkuiClass=\"Search__placeholder-in\">\n {before}\n <SearchPlaceholderTypography\n vkuiClass=\"Search__placeholder-text\"\n platform={platform}\n >\n {placeholder}\n </SearchPlaceholderTypography>\n </div>\n {isFocused && platform === IOS && after && (\n <div vkuiClass=\"Search__after-width\">{after}</div>\n )}\n </div>\n </label>\n <div vkuiClass=\"Search__after\" onClick={onCancel}>\n <div vkuiClass=\"Search__icons\">\n {icon && (\n <Touch onStart={onIconClickStart} vkuiClass=\"Search__icon\">\n {icon}\n </Touch>\n )}\n {!!value && (\n <Touch onStart={onIconCancelClickStart} vkuiClass=\"Search__icon\">\n {platform === IOS ? <Icon16Clear /> : <Icon24Cancel />}\n </Touch>\n )}\n </div>\n {platform === IOS && after && (\n <div vkuiClass=\"Search__after-in\">{after}</div>\n )}\n </div>\n </div>\n {platform === VKCOM && <Separator vkuiClass=\"Search__separator\" wide />}\n </div>\n );\n};\n\nSearch.defaultProps = {\n autoComplete: \"off\",\n defaultValue: \"\",\n placeholder: \"Поиск\",\n after: \"Отмена\",\n before: <Icon16SearchOutline />,\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withPlatform(Search);\n"],"file":"Search.js"}
@@ -0,0 +1 @@
1
+ .vkuiSegmentedControl{height:36px;padding:2px;border-radius:8px;border-radius:var(--vkui--size_border_radius--regular);background-color:#f5f5f5;background-color:var(--vkui--color_background_secondary);box-sizing:border-box}.vkuiSegmentedControl--l{height:44px}.vkuiSegmentedControl__in{position:relative;display:flex;height:100%;width:100%;transition:all 100ms ease-out;border-radius:inherit}.vkuiSegmentedControl__slider{position:absolute;top:0;left:0;bottom:0;background-color:#fff;background-color:var(--vkui--color_background_modal);transition:-webkit-transform 150ms;transition:transform 150ms;transition:transform 150ms,-webkit-transform 150ms;-webkit-transform-origin:0 0;transform-origin:0 0;border-radius:inherit;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.08),0 3px 8px rgba(0,0,0,.12),0 3px 1px rgba(0,0,0,.04);box-shadow:inset 0 0 0 .5px var(--vkui--color_image_border_alpha),0 3px 8px rgba(0,0,0,.12),0 3px 1px rgba(0,0,0,.04)}.vkuiSegmentedControl__option{position:relative;flex:1;display:block;margin:0;padding:0;z-index:1}
@@ -0,0 +1,95 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
+ var _excluded = ["size", "name", "options", "getRootRef", "onChange", "value", "defaultValue", "children"],
5
+ _excluded2 = ["label"];
6
+ import { createScopedElement } from "../../lib/jsxRuntime";
7
+ import * as React from "react";
8
+ import { classNames } from "../../lib/classNames";
9
+ import { useIsomorphicLayoutEffect } from "../../lib/useIsomorphicLayoutEffect";
10
+ import { generateRandomId, noop } from "../../lib/utils";
11
+ import { warnOnce } from "../../lib/warnOnce";
12
+ import { SegmentedControlOption } from "./SegmentedControlOption/SegmentedControlOption";
13
+ import "./SegmentedControl.css";
14
+ var warn = warnOnce("SegmentedControl");
15
+ export var SegmentedControl = function SegmentedControl(_ref) {
16
+ var _ref$size = _ref.size,
17
+ size = _ref$size === void 0 ? "l" : _ref$size,
18
+ name = _ref.name,
19
+ options = _ref.options,
20
+ getRootRef = _ref.getRootRef,
21
+ _ref$onChange = _ref.onChange,
22
+ onChange = _ref$onChange === void 0 ? noop : _ref$onChange,
23
+ value = _ref.value,
24
+ defaultValue = _ref.defaultValue,
25
+ children = _ref.children,
26
+ restProps = _objectWithoutProperties(_ref, _excluded);
27
+
28
+ var initialValue = defaultValue !== null && defaultValue !== void 0 ? defaultValue : value;
29
+
30
+ if (!initialValue) {
31
+ var _options$;
32
+
33
+ initialValue = (_options$ = options[0]) === null || _options$ === void 0 ? void 0 : _options$.value;
34
+ }
35
+
36
+ var _React$useState = React.useState(0),
37
+ _React$useState2 = _slicedToArray(_React$useState, 2),
38
+ activeOptionIdx = _React$useState2[0],
39
+ updateActiveOptionIdx = _React$useState2[1];
40
+
41
+ var _React$useState3 = React.useState(initialValue),
42
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
43
+ activeValue = _React$useState4[0],
44
+ updateActiveValue = _React$useState4[1];
45
+
46
+ var nameRef = React.useRef(name !== null && name !== void 0 ? name : generateRandomId());
47
+ useIsomorphicLayoutEffect(function () {
48
+ var _activeOptionIdx = options.findIndex(function (option) {
49
+ return option.value === activeValue;
50
+ });
51
+
52
+ if (_activeOptionIdx === -1 && process.env.NODE_ENV === "development") {
53
+ warn("defaultValue: такого значения нет среди опций!");
54
+ }
55
+
56
+ updateActiveOptionIdx(_activeOptionIdx);
57
+ }, [activeValue, options]);
58
+ var translateX = "translateX(".concat(100 * activeOptionIdx, "%)");
59
+
60
+ var handleOnChange = function handleOnChange(value) {
61
+ updateActiveValue(value);
62
+ onChange(value);
63
+ };
64
+
65
+ return createScopedElement("div", _extends({}, restProps, {
66
+ vkuiClass: classNames("SegmentedControl", "SegmentedControl--".concat(size)),
67
+ ref: getRootRef
68
+ }), createScopedElement("div", {
69
+ role: "radiogroup",
70
+ vkuiClass: "SegmentedControl__in"
71
+ }, activeOptionIdx > -1 && createScopedElement("div", {
72
+ "aria-hidden": "true",
73
+ vkuiClass: "SegmentedControl__slider",
74
+ style: {
75
+ width: "".concat(100 / options.length, "%"),
76
+ transform: translateX,
77
+ WebkitTransform: translateX
78
+ }
79
+ }), options.map(function (_ref2) {
80
+ var label = _ref2.label,
81
+ optionProps = _objectWithoutProperties(_ref2, _excluded2);
82
+
83
+ return createScopedElement(SegmentedControlOption, _extends({
84
+ key: "".concat(optionProps.value)
85
+ }, optionProps, {
86
+ vkuiClass: "SegmentedControl__option",
87
+ name: nameRef.current,
88
+ checked: activeValue === optionProps.value,
89
+ onChange: function onChange() {
90
+ return handleOnChange(optionProps.value);
91
+ }
92
+ }), label);
93
+ })));
94
+ };
95
+ //# sourceMappingURL=SegmentedControl.js.map