@vkontakte/vkui 4.35.1 → 4.36.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 (654) hide show
  1. package/.cache/.eslintcache +1 -1
  2. package/.cache/.stylelintcache +1 -1
  3. package/.cache/.tsbuildinfo +21609 -18311
  4. package/.cache/ts/src/components/ActionSheet/ActionSheetDefaultIosCloseItem.d.ts +3 -0
  5. package/.cache/ts/src/components/ActionSheetItem/ActionSheetItem.d.ts +5 -1
  6. package/.cache/ts/src/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
  7. package/.cache/ts/src/components/ButtonGroup/ButtonGroup.d.ts +6 -2
  8. package/.cache/ts/src/components/Chip/Chip.d.ts +12 -5
  9. package/.cache/ts/src/components/ChipsInput/ChipsInput.d.ts +5 -26
  10. package/.cache/ts/src/components/ChipsInputBase/ChipsInputBase.d.ts +17 -0
  11. package/.cache/ts/src/components/ChipsSelect/ChipsSelect.d.ts +4 -4
  12. package/.cache/ts/src/components/CustomSelect/CustomSelect.d.ts +1 -1
  13. package/.cache/ts/src/components/DateInput/DateInput.d.ts +4 -2
  14. package/.cache/ts/src/components/DateRangeInput/DateRangeInput.d.ts +4 -2
  15. package/.cache/ts/src/components/DropdownIcon/DropdownIcon.d.ts +4 -2
  16. package/.cache/ts/src/components/FormField/FormField.d.ts +2 -1
  17. package/.cache/ts/src/components/FormLayoutGroup/FormLayoutGroup.d.ts +5 -1
  18. package/.cache/ts/src/components/FormStatus/FormStatus.d.ts +1 -0
  19. package/.cache/ts/src/components/Input/Input.d.ts +1 -1
  20. package/.cache/ts/src/components/List/List.d.ts +2 -1
  21. package/.cache/ts/src/components/ModalPage/ModalPage.d.ts +13 -1
  22. package/.cache/ts/src/components/NativeSelect/NativeSelect.d.ts +3 -2
  23. package/.cache/ts/src/components/Select/Select.d.ts +1 -1
  24. package/.cache/ts/src/components/SelectMimicry/SelectMimicry.d.ts +2 -2
  25. package/.cache/ts/src/components/Textarea/Textarea.d.ts +3 -2
  26. package/.cache/ts/src/{components/ChipsInput → hooks}/useChipsInput.d.ts +4 -3
  27. package/{dist/cssm/components/ChipsSelect → .cache/ts/src/hooks}/useChipsSelect.d.ts +4 -4
  28. package/.cache/ts/src/index.d.ts +3 -0
  29. package/.cache/ts/src/tokenized/index.d.ts +56 -0
  30. package/README.md +3 -2
  31. package/dist/cjs/components/ActionSheet/ActionSheet.js +4 -4
  32. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  33. package/dist/cjs/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +24 -0
  34. package/dist/cjs/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -0
  35. package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js +10 -8
  36. package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  37. package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js +4 -5
  38. package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  39. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +15 -39
  40. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  41. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js +2 -3
  42. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  43. package/dist/cjs/components/Alert/Alert.js +11 -12
  44. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  45. package/dist/cjs/components/AppRoot/AppRoot.js +2 -5
  46. package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
  47. package/dist/cjs/components/Avatar/Avatar.js +4 -17
  48. package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
  49. package/dist/cjs/components/Banner/Banner.js +41 -47
  50. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  51. package/dist/cjs/components/ButtonGroup/ButtonGroup.js.map +1 -1
  52. package/dist/cjs/components/CalendarDay/CalendarDay.js +4 -21
  53. package/dist/cjs/components/CalendarDay/CalendarDay.js.map +1 -1
  54. package/dist/cjs/components/CardScroll/CardScroll.js +2 -5
  55. package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
  56. package/dist/cjs/components/Chip/Chip.js.map +1 -1
  57. package/dist/cjs/components/ChipsInput/ChipsInput.js +15 -198
  58. package/dist/cjs/components/ChipsInput/ChipsInput.js.map +1 -1
  59. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js +215 -0
  60. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js.map +1 -0
  61. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +44 -27
  62. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  63. package/dist/cjs/components/CustomSelect/CustomSelect.js +33 -32
  64. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  65. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js +3 -0
  66. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  67. package/dist/cjs/components/DateInput/DateInput.js +4 -2
  68. package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
  69. package/dist/cjs/components/DateRangeInput/DateRangeInput.js +4 -2
  70. package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
  71. package/dist/cjs/components/DropdownIcon/DropdownIcon.js +16 -7
  72. package/dist/cjs/components/DropdownIcon/DropdownIcon.js.map +1 -1
  73. package/dist/cjs/components/FormField/FormField.js +4 -2
  74. package/dist/cjs/components/FormField/FormField.js.map +1 -1
  75. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +12 -3
  76. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  77. package/dist/cjs/components/FormStatus/FormStatus.js +4 -6
  78. package/dist/cjs/components/FormStatus/FormStatus.js.map +1 -1
  79. package/dist/cjs/components/Header/Header.js +3 -11
  80. package/dist/cjs/components/Header/Header.js.map +1 -1
  81. package/dist/cjs/components/IconButton/IconButton.js +4 -3
  82. package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
  83. package/dist/cjs/components/Input/Input.js +4 -2
  84. package/dist/cjs/components/Input/Input.js.map +1 -1
  85. package/dist/cjs/components/List/List.js.map +1 -1
  86. package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js +1 -6
  87. package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  88. package/dist/cjs/components/ModalPage/ModalPage.js +11 -10
  89. package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
  90. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js +3 -4
  91. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  92. package/dist/cjs/components/ModalRoot/ModalRoot.js +4 -18
  93. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  94. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +3 -11
  95. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  96. package/dist/cjs/components/NativeSelect/NativeSelect.js +4 -2
  97. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  98. package/dist/cjs/components/Panel/Panel.js +4 -10
  99. package/dist/cjs/components/Panel/Panel.js.map +1 -1
  100. package/dist/cjs/components/PanelHeader/PanelHeader.js +2 -11
  101. package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
  102. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js +2 -7
  103. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  104. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js +2 -7
  105. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  106. package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.js +1 -1
  107. package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  108. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js +5 -4
  109. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  110. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js +4 -8
  111. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  112. package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.js +1 -1
  113. package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  114. package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.js +1 -1
  115. package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  116. package/dist/cjs/components/Popper/Popper.js +53 -50
  117. package/dist/cjs/components/Popper/Popper.js.map +1 -1
  118. package/dist/cjs/components/PromoBanner/PromoBanner.js +1 -6
  119. package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
  120. package/dist/cjs/components/Search/Search.js +7 -9
  121. package/dist/cjs/components/Search/Search.js.map +1 -1
  122. package/dist/cjs/components/SelectMimicry/SelectMimicry.js +4 -2
  123. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  124. package/dist/cjs/components/SliderSwitch/SliderSwitch.js +2 -5
  125. package/dist/cjs/components/SliderSwitch/SliderSwitch.js.map +1 -1
  126. package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js +2 -7
  127. package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  128. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js +1 -6
  129. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  130. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js +2 -5
  131. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  132. package/dist/cjs/components/Tappable/Tappable.js +8 -16
  133. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  134. package/dist/cjs/components/Textarea/Textarea.js +4 -2
  135. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  136. package/dist/cjs/components/UsersStack/UsersStack.js +71 -34
  137. package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
  138. package/dist/cjs/components/View/ViewInfinite.js +1 -10
  139. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  140. package/dist/cjs/{components/ChipsInput → hooks}/useChipsInput.js +0 -0
  141. package/dist/cjs/hooks/useChipsInput.js.map +1 -0
  142. package/dist/cjs/{components/ChipsSelect → hooks}/useChipsSelect.js +1 -1
  143. package/dist/cjs/hooks/useChipsSelect.js.map +1 -0
  144. package/dist/cjs/index.js +8 -0
  145. package/dist/cjs/index.js.map +1 -1
  146. package/dist/cjs/lib/animate.js +2 -2
  147. package/dist/cjs/lib/animate.js.map +1 -1
  148. package/dist/cjs/lib/platform.js +9 -4
  149. package/dist/cjs/lib/platform.js.map +1 -1
  150. package/dist/cjs/lib/testing.js +2 -2
  151. package/dist/cjs/lib/testing.js.map +1 -1
  152. package/dist/cjs/lib/touch.js +2 -2
  153. package/dist/cjs/lib/touch.js.map +1 -1
  154. package/dist/cjs/tokenized/index.js +232 -0
  155. package/dist/cjs/tokenized/index.js.map +1 -1
  156. package/dist/components/ActionSheet/ActionSheet.js +4 -4
  157. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  158. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.d.ts +3 -0
  159. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +10 -0
  160. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -0
  161. package/dist/components/ActionSheet/ActionSheetDropdown.js +7 -7
  162. package/dist/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  163. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js +3 -4
  164. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  165. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +5 -1
  166. package/dist/components/ActionSheetItem/ActionSheetItem.js +16 -36
  167. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  168. package/dist/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
  169. package/dist/components/AdaptivityProvider/AdaptivityProvider.js +2 -4
  170. package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  171. package/dist/components/Alert/Alert.js +12 -12
  172. package/dist/components/Alert/Alert.js.map +1 -1
  173. package/dist/components/AppRoot/AppRoot.js +2 -5
  174. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  175. package/dist/components/Avatar/Avatar.js +4 -17
  176. package/dist/components/Avatar/Avatar.js.map +1 -1
  177. package/dist/components/Banner/Banner.js +41 -48
  178. package/dist/components/Banner/Banner.js.map +1 -1
  179. package/dist/components/ButtonGroup/ButtonGroup.d.ts +6 -2
  180. package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -1
  181. package/dist/components/CalendarDay/CalendarDay.js +4 -21
  182. package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
  183. package/dist/components/CardScroll/CardScroll.js +1 -3
  184. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  185. package/dist/components/Chip/Chip.d.ts +12 -5
  186. package/dist/components/Chip/Chip.js.map +1 -1
  187. package/dist/components/ChipsInput/ChipsInput.d.ts +5 -26
  188. package/dist/components/ChipsInput/ChipsInput.js +14 -183
  189. package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
  190. package/dist/components/ChipsInputBase/ChipsInputBase.d.ts +17 -0
  191. package/dist/components/ChipsInputBase/ChipsInputBase.js +188 -0
  192. package/dist/components/ChipsInputBase/ChipsInputBase.js.map +1 -0
  193. package/dist/components/ChipsSelect/ChipsSelect.d.ts +4 -4
  194. package/dist/components/ChipsSelect/ChipsSelect.js +42 -26
  195. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  196. package/dist/components/CustomSelect/CustomSelect.d.ts +1 -1
  197. package/dist/components/CustomSelect/CustomSelect.js +33 -32
  198. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  199. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +2 -0
  200. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  201. package/dist/components/DateInput/DateInput.d.ts +4 -2
  202. package/dist/components/DateInput/DateInput.js +4 -2
  203. package/dist/components/DateInput/DateInput.js.map +1 -1
  204. package/dist/components/DateRangeInput/DateRangeInput.d.ts +4 -2
  205. package/dist/components/DateRangeInput/DateRangeInput.js +4 -2
  206. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  207. package/dist/components/DropdownIcon/DropdownIcon.d.ts +4 -2
  208. package/dist/components/DropdownIcon/DropdownIcon.js +15 -7
  209. package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -1
  210. package/dist/components/FormField/FormField.d.ts +2 -1
  211. package/dist/components/FormField/FormField.js +4 -2
  212. package/dist/components/FormField/FormField.js.map +1 -1
  213. package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts +5 -1
  214. package/dist/components/FormLayoutGroup/FormLayoutGroup.js +9 -3
  215. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  216. package/dist/components/FormStatus/FormStatus.d.ts +1 -0
  217. package/dist/components/FormStatus/FormStatus.js +4 -4
  218. package/dist/components/FormStatus/FormStatus.js.map +1 -1
  219. package/dist/components/Header/Header.js +3 -10
  220. package/dist/components/Header/Header.js.map +1 -1
  221. package/dist/components/IconButton/IconButton.js +4 -3
  222. package/dist/components/IconButton/IconButton.js.map +1 -1
  223. package/dist/components/Input/Input.d.ts +1 -1
  224. package/dist/components/Input/Input.js +4 -2
  225. package/dist/components/Input/Input.js.map +1 -1
  226. package/dist/components/List/List.d.ts +2 -1
  227. package/dist/components/List/List.js.map +1 -1
  228. package/dist/components/ModalDismissButton/ModalDismissButton.js +1 -4
  229. package/dist/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  230. package/dist/components/ModalPage/ModalPage.d.ts +13 -1
  231. package/dist/components/ModalPage/ModalPage.js +12 -10
  232. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  233. package/dist/components/ModalPageHeader/ModalPageHeader.js +3 -3
  234. package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  235. package/dist/components/ModalRoot/ModalRoot.js +4 -18
  236. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  237. package/dist/components/ModalRoot/ModalRootDesktop.js +3 -11
  238. package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  239. package/dist/components/NativeSelect/NativeSelect.d.ts +3 -2
  240. package/dist/components/NativeSelect/NativeSelect.js +4 -2
  241. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  242. package/dist/components/Panel/Panel.js +4 -8
  243. package/dist/components/Panel/Panel.js.map +1 -1
  244. package/dist/components/PanelHeader/PanelHeader.js +2 -11
  245. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  246. package/dist/components/PanelHeaderBack/PanelHeaderBack.js +2 -6
  247. package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  248. package/dist/components/PanelHeaderButton/PanelHeaderButton.js +2 -7
  249. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  250. package/dist/components/PanelHeaderClose/PanelHeaderClose.js +2 -2
  251. package/dist/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  252. package/dist/components/PanelHeaderContent/PanelHeaderContent.js +5 -5
  253. package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  254. package/dist/components/PanelHeaderContext/PanelHeaderContext.js +3 -7
  255. package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  256. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js +2 -2
  257. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  258. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js +2 -2
  259. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  260. package/dist/components/Popper/Popper.js +53 -50
  261. package/dist/components/Popper/Popper.js.map +1 -1
  262. package/dist/components/PromoBanner/PromoBanner.js +1 -4
  263. package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
  264. package/dist/components/Search/Search.js +6 -8
  265. package/dist/components/Search/Search.js.map +1 -1
  266. package/dist/components/Select/Select.d.ts +1 -1
  267. package/dist/components/SelectMimicry/SelectMimicry.d.ts +2 -2
  268. package/dist/components/SelectMimicry/SelectMimicry.js +4 -2
  269. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  270. package/dist/components/SimpleCell/SimpleCell.d.ts +1 -1
  271. package/dist/components/SliderSwitch/SliderSwitch.js +1 -4
  272. package/dist/components/SliderSwitch/SliderSwitch.js.map +1 -1
  273. package/dist/components/SliderSwitch/SliderSwitchButton.js +1 -5
  274. package/dist/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  275. package/dist/components/SubnavigationBar/SubnavigationBar.js +1 -4
  276. package/dist/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  277. package/dist/components/SubnavigationButton/SubnavigationButton.js +2 -5
  278. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  279. package/dist/components/Tappable/Tappable.js +3 -10
  280. package/dist/components/Tappable/Tappable.js.map +1 -1
  281. package/dist/components/Textarea/Textarea.d.ts +3 -2
  282. package/dist/components/Textarea/Textarea.js +4 -2
  283. package/dist/components/Textarea/Textarea.js.map +1 -1
  284. package/dist/components/UsersStack/UsersStack.js +69 -28
  285. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  286. package/dist/components/View/ViewInfinite.js +1 -10
  287. package/dist/components/View/ViewInfinite.js.map +1 -1
  288. package/dist/components.css +93 -15
  289. package/dist/components.css.map +1 -1
  290. package/dist/cssm/components/ActionSheet/ActionSheet.css +3 -1
  291. package/dist/cssm/components/ActionSheet/ActionSheet.js +4 -4
  292. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  293. package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.d.ts +3 -0
  294. package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +10 -0
  295. package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -0
  296. package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js +7 -7
  297. package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  298. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js +3 -4
  299. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  300. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.css +7 -1
  301. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.d.ts +5 -1
  302. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +16 -36
  303. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  304. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
  305. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +2 -4
  306. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  307. package/dist/cssm/components/Alert/Alert.css +7 -1
  308. package/dist/cssm/components/Alert/Alert.js +12 -12
  309. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  310. package/dist/cssm/components/AppRoot/AppRoot.css +1 -1
  311. package/dist/cssm/components/AppRoot/AppRoot.js +2 -5
  312. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  313. package/dist/cssm/components/Avatar/Avatar.js +4 -17
  314. package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
  315. package/dist/cssm/components/Banner/Banner.js +41 -48
  316. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  317. package/dist/cssm/components/ButtonGroup/ButtonGroup.d.ts +6 -2
  318. package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
  319. package/dist/cssm/components/CalendarDay/CalendarDay.js +4 -21
  320. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  321. package/dist/cssm/components/CardScroll/CardScroll.js +1 -3
  322. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  323. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.css +1 -1
  324. package/dist/cssm/components/Cell/CellDragger/CellDragger.css +1 -1
  325. package/dist/cssm/components/Chip/Chip.css +1 -1
  326. package/dist/cssm/components/Chip/Chip.d.ts +12 -5
  327. package/dist/cssm/components/Chip/Chip.js.map +1 -1
  328. package/dist/cssm/components/ChipsInput/ChipsInput.css +1 -1
  329. package/dist/cssm/components/ChipsInput/ChipsInput.d.ts +5 -26
  330. package/dist/cssm/components/ChipsInput/ChipsInput.js +14 -183
  331. package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
  332. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.css +1 -0
  333. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.d.ts +17 -0
  334. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js +189 -0
  335. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js.map +1 -0
  336. package/dist/cssm/components/ChipsSelect/ChipsSelect.css +1 -1
  337. package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +4 -4
  338. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +42 -26
  339. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  340. package/dist/cssm/components/CustomSelect/CustomSelect.css +1 -1
  341. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +1 -1
  342. package/dist/cssm/components/CustomSelect/CustomSelect.js +33 -32
  343. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  344. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +2 -0
  345. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  346. package/dist/cssm/components/DateInput/DateInput.css +1 -1
  347. package/dist/cssm/components/DateInput/DateInput.d.ts +4 -2
  348. package/dist/cssm/components/DateInput/DateInput.js +4 -2
  349. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  350. package/dist/cssm/components/DateRangeInput/DateRangeInput.css +1 -1
  351. package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts +4 -2
  352. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +4 -2
  353. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  354. package/dist/cssm/components/DropdownIcon/DropdownIcon.d.ts +4 -2
  355. package/dist/cssm/components/DropdownIcon/DropdownIcon.js +15 -8
  356. package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -1
  357. package/dist/cssm/components/FormField/FormField.css +4 -4
  358. package/dist/cssm/components/FormField/FormField.d.ts +2 -1
  359. package/dist/cssm/components/FormField/FormField.js +4 -2
  360. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  361. package/dist/cssm/components/FormItem/FormItem.css +1 -1
  362. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.css +1 -1
  363. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.d.ts +5 -1
  364. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +9 -3
  365. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  366. package/dist/cssm/components/FormStatus/FormStatus.css +3 -1
  367. package/dist/cssm/components/FormStatus/FormStatus.d.ts +1 -0
  368. package/dist/cssm/components/FormStatus/FormStatus.js +4 -4
  369. package/dist/cssm/components/FormStatus/FormStatus.js.map +1 -1
  370. package/dist/cssm/components/Header/Header.css +1 -1
  371. package/dist/cssm/components/Header/Header.js +3 -10
  372. package/dist/cssm/components/Header/Header.js.map +1 -1
  373. package/dist/cssm/components/IconButton/IconButton.js +4 -3
  374. package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
  375. package/dist/cssm/components/Input/Input.css +1 -1
  376. package/dist/cssm/components/Input/Input.d.ts +1 -1
  377. package/dist/cssm/components/Input/Input.js +4 -2
  378. package/dist/cssm/components/Input/Input.js.map +1 -1
  379. package/dist/cssm/components/List/List.d.ts +2 -1
  380. package/dist/cssm/components/List/List.js +1 -1
  381. package/dist/cssm/components/List/List.js.map +1 -1
  382. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.css +1 -1
  383. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js +1 -4
  384. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  385. package/dist/cssm/components/ModalPage/ModalPage.css +5 -1
  386. package/dist/cssm/components/ModalPage/ModalPage.d.ts +13 -1
  387. package/dist/cssm/components/ModalPage/ModalPage.js +12 -10
  388. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  389. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.css +1 -1
  390. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +3 -3
  391. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  392. package/dist/cssm/components/ModalRoot/ModalRoot.js +4 -18
  393. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  394. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +3 -11
  395. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  396. package/dist/cssm/components/NativeSelect/NativeSelect.d.ts +3 -2
  397. package/dist/cssm/components/NativeSelect/NativeSelect.js +4 -2
  398. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  399. package/dist/cssm/components/Panel/Panel.css +19 -1
  400. package/dist/cssm/components/Panel/Panel.js +4 -8
  401. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  402. package/dist/cssm/components/PanelHeader/PanelHeader.css +9 -1
  403. package/dist/cssm/components/PanelHeader/PanelHeader.js +2 -11
  404. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  405. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js +2 -6
  406. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  407. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.css +1 -1
  408. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +2 -7
  409. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  410. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js +2 -2
  411. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  412. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.css +5 -1
  413. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js +5 -5
  414. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  415. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.css +1 -1
  416. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js +3 -7
  417. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  418. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js +2 -2
  419. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  420. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js +2 -2
  421. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  422. package/dist/cssm/components/Popper/Popper.js +53 -50
  423. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  424. package/dist/cssm/components/PromoBanner/PromoBanner.css +3 -1
  425. package/dist/cssm/components/PromoBanner/PromoBanner.js +1 -4
  426. package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
  427. package/dist/cssm/components/Search/Search.css +27 -1
  428. package/dist/cssm/components/Search/Search.js +6 -8
  429. package/dist/cssm/components/Search/Search.js.map +1 -1
  430. package/dist/cssm/components/Select/Select.css +1 -1
  431. package/dist/cssm/components/Select/Select.d.ts +1 -1
  432. package/dist/cssm/components/SelectMimicry/SelectMimicry.d.ts +2 -2
  433. package/dist/cssm/components/SelectMimicry/SelectMimicry.js +4 -2
  434. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  435. package/dist/cssm/components/SimpleCell/SimpleCell.d.ts +1 -1
  436. package/dist/cssm/components/SliderSwitch/SliderSwitch.js +1 -4
  437. package/dist/cssm/components/SliderSwitch/SliderSwitch.js.map +1 -1
  438. package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js +1 -5
  439. package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  440. package/dist/cssm/components/Spacing/Spacing.css +1 -1
  441. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.css +1 -1
  442. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js +1 -4
  443. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  444. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.css +1 -1
  445. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +2 -5
  446. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  447. package/dist/cssm/components/TabsItem/TabsItem.css +1 -1
  448. package/dist/cssm/components/Tappable/Tappable.js +3 -10
  449. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  450. package/dist/cssm/components/Textarea/Textarea.css +1 -1
  451. package/dist/cssm/components/Textarea/Textarea.d.ts +3 -2
  452. package/dist/cssm/components/Textarea/Textarea.js +4 -2
  453. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  454. package/dist/cssm/components/Typography/Headline/Headline.css +1 -1
  455. package/dist/cssm/components/Typography/Text/Text.css +1 -1
  456. package/dist/cssm/components/UsersStack/UsersStack.css +1 -1
  457. package/dist/cssm/components/UsersStack/UsersStack.js +69 -28
  458. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  459. package/dist/cssm/components/View/ViewInfinite.js +1 -10
  460. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  461. package/dist/cssm/{components/ChipsInput → hooks}/useChipsInput.d.ts +4 -3
  462. package/dist/{components/ChipsInput → cssm/hooks}/useChipsInput.js +0 -0
  463. package/dist/cssm/hooks/useChipsInput.js.map +1 -0
  464. package/{.cache/ts/src/components/ChipsSelect → dist/cssm/hooks}/useChipsSelect.d.ts +4 -4
  465. package/dist/{components/ChipsSelect → cssm/hooks}/useChipsSelect.js +1 -1
  466. package/dist/cssm/hooks/useChipsSelect.js.map +1 -0
  467. package/dist/cssm/index.d.ts +3 -0
  468. package/dist/cssm/index.js +1 -0
  469. package/dist/cssm/index.js.map +1 -1
  470. package/dist/cssm/lib/animate.js +1 -1
  471. package/dist/cssm/lib/animate.js.map +1 -1
  472. package/dist/cssm/lib/platform.js +8 -3
  473. package/dist/cssm/lib/platform.js.map +1 -1
  474. package/dist/cssm/lib/testing.js +1 -1
  475. package/dist/cssm/lib/testing.js.map +1 -1
  476. package/dist/cssm/lib/touch.js +1 -1
  477. package/dist/cssm/lib/touch.js.map +1 -1
  478. package/dist/cssm/styles/components.css +93 -15
  479. package/dist/cssm/styles/themes.css +1 -1
  480. package/dist/cssm/styles/unstable.css +1 -1
  481. package/dist/cssm/tokenized/index.d.ts +56 -0
  482. package/dist/cssm/tokenized/index.js +29 -0
  483. package/dist/cssm/tokenized/index.js.map +1 -1
  484. package/dist/{components/ChipsInput → hooks}/useChipsInput.d.ts +4 -3
  485. package/dist/{cssm/components/ChipsInput → hooks}/useChipsInput.js +0 -0
  486. package/dist/hooks/useChipsInput.js.map +1 -0
  487. package/dist/{components/ChipsSelect → hooks}/useChipsSelect.d.ts +4 -4
  488. package/dist/{cssm/components/ChipsSelect → hooks}/useChipsSelect.js +1 -1
  489. package/dist/hooks/useChipsSelect.js.map +1 -0
  490. package/dist/index.d.ts +3 -0
  491. package/dist/index.js +1 -0
  492. package/dist/index.js.map +1 -1
  493. package/dist/lib/animate.js +1 -1
  494. package/dist/lib/animate.js.map +1 -1
  495. package/dist/lib/platform.js +8 -3
  496. package/dist/lib/platform.js.map +1 -1
  497. package/dist/lib/testing.js +1 -1
  498. package/dist/lib/testing.js.map +1 -1
  499. package/dist/lib/touch.js +1 -1
  500. package/dist/lib/touch.js.map +1 -1
  501. package/dist/tokenized/index.d.ts +56 -0
  502. package/dist/tokenized/index.js +29 -0
  503. package/dist/tokenized/index.js.map +1 -1
  504. package/dist/unstable.css +1 -1
  505. package/dist/unstable.css.map +1 -1
  506. package/dist/vkui.css +94 -16
  507. package/dist/vkui.css.map +1 -1
  508. package/package.json +9 -9
  509. package/src/components/ActionSheet/ActionSheet.css +31 -59
  510. package/src/components/ActionSheet/ActionSheet.tsx +4 -7
  511. package/src/components/ActionSheet/ActionSheetDefaultIosCloseItem.tsx +12 -0
  512. package/src/components/ActionSheet/ActionSheetDropdown.tsx +9 -6
  513. package/src/components/ActionSheet/ActionSheetDropdownDesktop.tsx +4 -4
  514. package/src/components/ActionSheet/Readme.md +6 -30
  515. package/src/components/ActionSheetItem/ActionSheetItem.css +67 -120
  516. package/src/components/ActionSheetItem/ActionSheetItem.tsx +42 -71
  517. package/src/components/AdaptivityProvider/AdaptivityProvider.tsx +5 -5
  518. package/src/components/Alert/Alert.css +79 -79
  519. package/src/components/Alert/Alert.tsx +14 -14
  520. package/src/components/Alert/Readme.md +83 -104
  521. package/src/components/AppRoot/AppRoot.css +2 -1
  522. package/src/components/AppRoot/AppRoot.tsx +1 -4
  523. package/src/components/Avatar/Avatar.tsx +15 -17
  524. package/src/components/Avatar/Readme.md +3 -3
  525. package/src/components/Banner/Banner.tsx +58 -63
  526. package/src/components/ButtonGroup/ButtonGroup.tsx +6 -3
  527. package/src/components/ButtonGroup/Readme.md +13 -11
  528. package/src/components/Calendar/Readme.md +3 -0
  529. package/src/components/CalendarDay/CalendarDay.tsx +21 -20
  530. package/src/components/CalendarRange/Readme.md +3 -0
  531. package/src/components/CardScroll/CardScroll.tsx +1 -2
  532. package/src/components/Cell/CellCheckbox/CellCheckbox.css +2 -2
  533. package/src/components/Cell/CellDragger/CellDragger.css +1 -1
  534. package/src/components/Chip/Chip.css +1 -0
  535. package/src/components/Chip/Chip.tsx +14 -2
  536. package/src/components/ChipsInput/ChipsInput.css +0 -71
  537. package/src/components/ChipsInput/ChipsInput.tsx +20 -220
  538. package/src/components/ChipsInputBase/ChipsInputBase.css +73 -0
  539. package/src/components/ChipsInputBase/ChipsInputBase.tsx +206 -0
  540. package/src/components/ChipsSelect/ChipsSelect.css +8 -0
  541. package/src/components/ChipsSelect/ChipsSelect.tsx +47 -39
  542. package/src/components/CustomSelect/CustomSelect.css +1 -0
  543. package/src/components/CustomSelect/CustomSelect.tsx +3 -4
  544. package/src/components/CustomSelect/Readme.md +8 -2
  545. package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +2 -0
  546. package/src/components/DateInput/DateInput.css +1 -1
  547. package/src/components/DateInput/DateInput.tsx +6 -3
  548. package/src/components/DateInput/Readme.md +13 -0
  549. package/src/components/DateRangeInput/DateRangeInput.css +1 -1
  550. package/src/components/DateRangeInput/DateRangeInput.tsx +6 -3
  551. package/src/components/DateRangeInput/Readme.md +13 -0
  552. package/src/components/DropdownIcon/DropdownIcon.tsx +22 -8
  553. package/src/components/Epic/Readme.md +10 -5
  554. package/src/components/FormField/FormField.css +58 -6
  555. package/src/components/FormField/FormField.tsx +3 -0
  556. package/src/components/FormItem/FormItem.css +5 -3
  557. package/src/components/FormLayoutGroup/FormLayoutGroup.css +35 -0
  558. package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +13 -2
  559. package/src/components/FormLayoutGroup/Readme.md +58 -48
  560. package/src/components/FormStatus/FormStatus.css +8 -5
  561. package/src/components/FormStatus/FormStatus.tsx +4 -8
  562. package/src/components/Gallery/Readme.md +64 -18
  563. package/src/components/Header/Header.css +8 -12
  564. package/src/components/Header/Header.tsx +9 -8
  565. package/src/components/HorizontalCell/Readme.md +1 -1
  566. package/src/components/IconButton/IconButton.tsx +2 -2
  567. package/src/components/Input/Input.css +1 -1
  568. package/src/components/Input/Input.tsx +2 -0
  569. package/src/components/List/List.tsx +3 -4
  570. package/src/components/ModalDismissButton/ModalDismissButton.css +6 -6
  571. package/src/components/ModalDismissButton/ModalDismissButton.tsx +1 -5
  572. package/src/components/ModalDismissButton/Readme.md +1 -1
  573. package/src/components/ModalPage/ModalPage.css +69 -63
  574. package/src/components/ModalPage/ModalPage.tsx +24 -11
  575. package/src/components/ModalPageHeader/ModalPageHeader.css +9 -12
  576. package/src/components/ModalPageHeader/ModalPageHeader.tsx +3 -2
  577. package/src/components/ModalRoot/ModalRoot.tsx +24 -24
  578. package/src/components/ModalRoot/ModalRootDesktop.tsx +12 -14
  579. package/src/components/ModalRoot/Readme.md +8 -3
  580. package/src/components/NativeSelect/NativeSelect.tsx +5 -2
  581. package/src/components/Panel/Panel.css +52 -24
  582. package/src/components/Panel/Panel.tsx +7 -9
  583. package/src/components/PanelHeader/PanelHeader.css +28 -21
  584. package/src/components/PanelHeader/PanelHeader.tsx +11 -12
  585. package/src/components/PanelHeaderBack/PanelHeaderBack.tsx +6 -5
  586. package/src/components/PanelHeaderButton/PanelHeaderButton.css +8 -15
  587. package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +6 -6
  588. package/src/components/PanelHeaderClose/PanelHeaderClose.tsx +2 -6
  589. package/src/components/PanelHeaderContent/PanelHeaderContent.css +17 -23
  590. package/src/components/PanelHeaderContent/PanelHeaderContent.tsx +11 -5
  591. package/src/components/PanelHeaderContext/PanelHeaderContext.css +9 -25
  592. package/src/components/PanelHeaderContext/PanelHeaderContext.tsx +11 -7
  593. package/src/components/PanelHeaderContext/Readme.md +85 -101
  594. package/src/components/PanelHeaderEdit/PanelHeaderEdit.tsx +2 -2
  595. package/src/components/PanelHeaderSubmit/PanelHeaderSubmit.tsx +2 -6
  596. package/src/components/Popper/Popper.tsx +37 -31
  597. package/src/components/PromoBanner/PromoBanner.css +10 -22
  598. package/src/components/PromoBanner/PromoBanner.tsx +1 -5
  599. package/src/components/RichTooltip/Readme.md +2 -2
  600. package/src/components/Search/Search.css +134 -48
  601. package/src/components/Search/Search.tsx +13 -8
  602. package/src/components/Select/Select.css +2 -2
  603. package/src/components/SelectMimicry/Readme.md +3 -3
  604. package/src/components/SelectMimicry/SelectMimicry.tsx +3 -1
  605. package/src/components/SliderSwitch/SliderSwitch.tsx +5 -5
  606. package/src/components/SliderSwitch/SliderSwitchButton.tsx +7 -7
  607. package/src/components/Snackbar/Readme.md +12 -3
  608. package/src/components/Spacing/Readme.md +20 -20
  609. package/src/components/Spacing/Spacing.css +5 -1
  610. package/src/components/SplitLayout/Readme.md +1 -1
  611. package/src/components/SubnavigationBar/SubnavigationBar.css +7 -19
  612. package/src/components/SubnavigationBar/SubnavigationBar.tsx +1 -8
  613. package/src/components/SubnavigationButton/SubnavigationButton.css +13 -0
  614. package/src/components/SubnavigationButton/SubnavigationButton.tsx +1 -4
  615. package/src/components/TabbarItem/Readme.md +6 -1
  616. package/src/components/Tabs/Readme.md +10 -2
  617. package/src/components/TabsItem/TabsItem.css +1 -1
  618. package/src/components/Tappable/Tappable.tsx +9 -11
  619. package/src/components/Textarea/Textarea.css +1 -1
  620. package/src/components/Textarea/Textarea.tsx +5 -2
  621. package/src/components/Tooltip/Readme.md +2 -2
  622. package/src/components/Touch/Readme.md +4 -4
  623. package/src/components/Typography/Headline/Headline.css +10 -0
  624. package/src/components/Typography/Text/Text.css +10 -0
  625. package/src/components/UsersStack/UsersStack.css +42 -0
  626. package/src/components/UsersStack/UsersStack.tsx +71 -15
  627. package/src/components/View/ViewInfinite.tsx +14 -14
  628. package/src/{components/ChipsInput → hooks}/useChipsInput.ts +5 -8
  629. package/src/{components/ChipsSelect → hooks}/useChipsSelect.ts +4 -4
  630. package/src/index.ts +3 -0
  631. package/src/lib/animate.ts +1 -1
  632. package/src/lib/platform.ts +12 -6
  633. package/src/lib/testing.ts +1 -1
  634. package/src/lib/touch.ts +1 -1
  635. package/src/styles/components.css +1 -0
  636. package/src/tokenized/index.ts +85 -0
  637. package/.cache/ts/src/components/UsersStack/masks.d.ts +0 -1
  638. package/dist/cjs/components/ChipsInput/useChipsInput.js.map +0 -1
  639. package/dist/cjs/components/ChipsSelect/useChipsSelect.js.map +0 -1
  640. package/dist/cjs/components/UsersStack/masks.js +0 -29
  641. package/dist/cjs/components/UsersStack/masks.js.map +0 -1
  642. package/dist/components/ChipsInput/useChipsInput.js.map +0 -1
  643. package/dist/components/ChipsSelect/useChipsSelect.js.map +0 -1
  644. package/dist/components/UsersStack/masks.d.ts +0 -1
  645. package/dist/components/UsersStack/masks.js +0 -20
  646. package/dist/components/UsersStack/masks.js.map +0 -1
  647. package/dist/cssm/components/ChipsInput/useChipsInput.js.map +0 -1
  648. package/dist/cssm/components/ChipsSelect/useChipsSelect.js.map +0 -1
  649. package/dist/cssm/components/DropdownIcon/DropdownIcon.css +0 -1
  650. package/dist/cssm/components/UsersStack/masks.d.ts +0 -1
  651. package/dist/cssm/components/UsersStack/masks.js +0 -20
  652. package/dist/cssm/components/UsersStack/masks.js.map +0 -1
  653. package/src/components/DropdownIcon/DropdownIcon.css +0 -3
  654. package/src/components/UsersStack/masks.tsx +0 -69
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/PanelHeader/PanelHeader.tsx"],"names":["React","usePlatform","getClassName","classNames","warnOnce","FixedLayout","Separator","Platform","VKCOM","ConfigProviderContext","WebviewType","SizeType","withAdaptivity","Text","TooltipContainer","ModalRootContext","Spacing","PanelHeaderIn","before","after","separator","children","useContext","webviewType","isInsideModal","platform","INTERNAL","warn","PanelHeaderComponent","propsBefore","left","propsAfter","right","visor","transparent","shadow","getRef","getRootRef","sizeX","sizeY","fixed","restProps","needShadow","REGULAR","isFixed","undefined","process","env","NODE_ENV","innerProps","VKAPPS","PanelHeader","displayName"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { FixedLayout } from \"../FixedLayout/FixedLayout\";\nimport { Separator } from \"../Separator/Separator\";\nimport { Platform, VKCOM } from \"../../lib/platform\";\nimport { HasRef, HasRootRef } from \"../../types\";\nimport {\n ConfigProviderContext,\n WebviewType,\n} from \"../ConfigProvider/ConfigProviderContext\";\nimport {\n AdaptivityProps,\n SizeType,\n withAdaptivity,\n} from \"../../hoc/withAdaptivity\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { TooltipContainer } from \"../Tooltip/TooltipContainer\";\nimport { ModalRootContext } from \"../ModalRoot/ModalRootContext\";\nimport { Spacing } from \"../Spacing/Spacing\";\nimport \"./PanelHeader.css\";\n\nexport interface PanelHeaderProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement>,\n HasRootRef<HTMLDivElement>,\n AdaptivityProps {\n before?: React.ReactNode;\n /**\n * @deprecated Будет удалено в 5.0.0. Используйте `before`\n */\n left?: React.ReactNode;\n after?: React.ReactNode;\n /**\n * @deprecated Будет удалено в 5.0.0. Используйте `after`\n */\n right?: React.ReactNode;\n separator?: boolean;\n transparent?: boolean;\n shadow?: boolean;\n /**\n * Если `false`, то шапка будет нулевой высоты и контент панели \"залезет\" под неё\n */\n visor?: boolean;\n /**\n * Если `false`, то шапка будет в потоке. По умолчанию `true`, но если платформа vkcom, то по умолчанию `false`.\n */\n fixed?: boolean;\n}\n\nconst PanelHeaderIn = ({\n before,\n after,\n separator,\n children,\n}: PanelHeaderProps) => {\n const { webviewType } = React.useContext(ConfigProviderContext);\n const { isInsideModal } = React.useContext(ModalRootContext);\n const platform = usePlatform();\n\n return (\n <React.Fragment>\n <TooltipContainer fixed vkuiClass=\"PanelHeader__in\">\n <div vkuiClass=\"PanelHeader__before\">{before}</div>\n <div vkuiClass=\"PanelHeader__content\">\n {platform === VKCOM ? (\n <Text weight=\"2\">{children}</Text>\n ) : (\n <span vkuiClass=\"PanelHeader__content-in\">{children}</span>\n )}\n </div>\n <div vkuiClass=\"PanelHeader__after\">\n {(webviewType === WebviewType.INTERNAL || isInsideModal) && after}\n </div>\n </TooltipContainer>\n {separator && platform === VKCOM && <Separator wide />}\n </React.Fragment>\n );\n};\n\nconst warn = warnOnce(\"PanelHeader\");\nconst PanelHeaderComponent = ({\n // TODO: поправить перед 5.0.0\n before: propsBefore,\n left,\n after: propsAfter,\n right,\n // /end TODO\n children,\n separator = true,\n visor = true,\n transparent = false,\n shadow,\n getRef,\n getRootRef,\n sizeX,\n sizeY,\n fixed,\n ...restProps\n}: PanelHeaderProps) => {\n const platform = usePlatform();\n const { webviewType } = React.useContext(ConfigProviderContext);\n const { isInsideModal } = React.useContext(ModalRootContext);\n const needShadow = shadow && sizeX === SizeType.REGULAR;\n let isFixed = fixed !== undefined ? fixed : platform !== Platform.VKCOM;\n\n // TODO: удалить перед 5.0.0\n const before = propsBefore ?? left;\n const after = propsAfter ?? right;\n\n if (process.env.NODE_ENV === \"development\") {\n right &&\n warn(\n \"Свойство right устарелo и будет удалено в 5.0.0. Используйте after.\"\n );\n left &&\n warn(\n \"Свойство left устарелo и будет удалено в 5.0.0. Используйте before.\"\n );\n }\n // /end TODO\n\n const innerProps = { before, after, separator, children };\n\n return (\n <div\n {...restProps}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\n getClassName(\"PanelHeader\", platform),\n {\n \"PanelHeader--trnsp\": transparent,\n \"PanelHeader--shadow\": needShadow,\n \"PanelHeader--vis\": visor,\n \"PanelHeader--sep\": separator && visor,\n \"PanelHeader--vkapps\":\n webviewType === WebviewType.VKAPPS && !isInsideModal,\n \"PanelHeader--no-before\": !before,\n \"PanelHeader--no-after\": !after,\n \"PanelHeader--fixed\": isFixed,\n },\n `PanelHeader--sizeX-${sizeX}`\n )}\n ref={isFixed ? getRootRef : getRef}\n >\n {isFixed ? (\n <FixedLayout\n vkuiClass=\"PanelHeader__fixed\"\n vertical=\"top\"\n getRootRef={getRef}\n >\n <PanelHeaderIn {...innerProps} />\n </FixedLayout>\n ) : (\n <PanelHeaderIn {...innerProps} />\n )}\n {separator &&\n visor &&\n platform !== VKCOM &&\n (sizeX === SizeType.REGULAR ? <Spacing size={16} /> : <Separator />)}\n </div>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeader\n */\nexport const PanelHeader = withAdaptivity(PanelHeaderComponent, {\n sizeX: true,\n sizeY: true,\n});\n\nPanelHeader.displayName = \"PanelHeader\";\n"],"file":"PanelHeader.js"}
1
+ {"version":3,"sources":["../../../src/components/PanelHeader/PanelHeader.tsx"],"names":["React","usePlatform","getClassName","classNames","warnOnce","FixedLayout","Separator","Platform","VKCOM","ConfigProviderContext","WebviewType","SizeType","withAdaptivity","Text","TooltipContainer","ModalRootContext","Spacing","PanelHeaderIn","before","after","separator","children","useContext","webviewType","isInsideModal","platform","INTERNAL","warn","PanelHeaderComponent","propsBefore","left","propsAfter","right","visor","transparent","shadow","getRef","getRootRef","sizeX","sizeY","fixed","restProps","needShadow","REGULAR","isFixed","undefined","process","env","NODE_ENV","innerProps","VKAPPS","PanelHeader","displayName"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { FixedLayout } from \"../FixedLayout/FixedLayout\";\nimport { Separator } from \"../Separator/Separator\";\nimport { Platform, VKCOM } from \"../../lib/platform\";\nimport { HasRef, HasRootRef } from \"../../types\";\nimport {\n ConfigProviderContext,\n WebviewType,\n} from \"../ConfigProvider/ConfigProviderContext\";\nimport {\n AdaptivityProps,\n SizeType,\n withAdaptivity,\n} from \"../../hoc/withAdaptivity\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { TooltipContainer } from \"../Tooltip/TooltipContainer\";\nimport { ModalRootContext } from \"../ModalRoot/ModalRootContext\";\nimport { Spacing } from \"../Spacing/Spacing\";\nimport \"./PanelHeader.css\";\n\nexport interface PanelHeaderProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement>,\n HasRootRef<HTMLDivElement>,\n AdaptivityProps {\n before?: React.ReactNode;\n /**\n * @deprecated Будет удалено в 5.0.0. Используйте `before`\n */\n left?: React.ReactNode;\n after?: React.ReactNode;\n /**\n * @deprecated Будет удалено в 5.0.0. Используйте `after`\n */\n right?: React.ReactNode;\n separator?: boolean;\n transparent?: boolean;\n shadow?: boolean;\n /**\n * Если `false`, то шапка будет нулевой высоты и контент панели \"залезет\" под неё\n */\n visor?: boolean;\n /**\n * Если `false`, то шапка будет в потоке. По умолчанию `true`, но если платформа vkcom, то по умолчанию `false`.\n */\n fixed?: boolean;\n}\n\nconst PanelHeaderIn = ({\n before,\n after,\n separator,\n children,\n}: PanelHeaderProps) => {\n const { webviewType } = React.useContext(ConfigProviderContext);\n const { isInsideModal } = React.useContext(ModalRootContext);\n const platform = usePlatform();\n\n return (\n <React.Fragment>\n <TooltipContainer fixed vkuiClass=\"PanelHeader__in\">\n <div vkuiClass=\"PanelHeader__before\">{before}</div>\n <div vkuiClass=\"PanelHeader__content\">\n {platform === VKCOM ? (\n <Text weight=\"2\">{children}</Text>\n ) : (\n <span vkuiClass=\"PanelHeader__content-in\">{children}</span>\n )}\n </div>\n <div vkuiClass=\"PanelHeader__after\">\n {(webviewType === WebviewType.INTERNAL || isInsideModal) && after}\n </div>\n </TooltipContainer>\n {separator && platform === VKCOM && <Separator wide />}\n </React.Fragment>\n );\n};\n\nconst warn = warnOnce(\"PanelHeader\");\nconst PanelHeaderComponent = ({\n // TODO: поправить перед 5.0.0\n before: propsBefore,\n left,\n after: propsAfter,\n right,\n // /end TODO\n children,\n separator = true,\n visor = true,\n transparent = false,\n shadow,\n getRef,\n getRootRef,\n sizeX,\n sizeY,\n fixed,\n ...restProps\n}: PanelHeaderProps) => {\n const platform = usePlatform();\n const { webviewType } = React.useContext(ConfigProviderContext);\n const { isInsideModal } = React.useContext(ModalRootContext);\n const needShadow = shadow && sizeX === SizeType.REGULAR;\n let isFixed = fixed !== undefined ? fixed : platform !== Platform.VKCOM;\n\n // TODO: удалить перед 5.0.0\n const before = propsBefore ?? left;\n const after = propsAfter ?? right;\n\n if (process.env.NODE_ENV === \"development\") {\n right &&\n warn(\n \"Свойство right устарелo и будет удалено в 5.0.0. Используйте after.\"\n );\n left &&\n warn(\n \"Свойство left устарелo и будет удалено в 5.0.0. Используйте before.\"\n );\n }\n // /end TODO\n\n const innerProps = { before, after, separator, children };\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"PanelHeader\", platform),\n transparent && \"PanelHeader--trnsp\",\n needShadow && \"PanelHeader--shadow\",\n visor && \"PanelHeader--vis\",\n separator && visor && \"PanelHeader--sep\",\n webviewType === WebviewType.VKAPPS &&\n !isInsideModal &&\n \"PanelHeader--vkapps\",\n !before && \"PanelHeader--no-before\",\n !after && \"PanelHeader--no-after\",\n isFixed && \"PanelHeader--fixed\",\n // TODO v5.0.0 поправить под новую адаптивность\n `PanelHeader--sizeX-${sizeX}`\n )}\n ref={isFixed ? getRootRef : getRef}\n >\n {isFixed ? (\n <FixedLayout\n vkuiClass=\"PanelHeader__fixed\"\n vertical=\"top\"\n getRootRef={getRef}\n >\n <PanelHeaderIn {...innerProps} />\n </FixedLayout>\n ) : (\n <PanelHeaderIn {...innerProps} />\n )}\n {separator &&\n visor &&\n platform !== VKCOM &&\n (sizeX === SizeType.REGULAR ? <Spacing size={16} /> : <Separator />)}\n </div>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeader\n */\nexport const PanelHeader = withAdaptivity(PanelHeaderComponent, {\n sizeX: true,\n sizeY: true,\n});\n\nPanelHeader.displayName = \"PanelHeader\";\n"],"file":"PanelHeader.js"}
@@ -8,7 +8,6 @@ import { PanelHeaderButton } from "../PanelHeaderButton/PanelHeaderButton";
8
8
  import { ANDROID, VKCOM, IOS } from "../../lib/platform";
9
9
  import { usePlatform } from "../../hooks/usePlatform";
10
10
  import { withAdaptivity, SizeType } from "../../hoc/withAdaptivity";
11
- import { getClassName } from "../../helpers/getClassName";
12
11
  import { classNames } from "../../lib/classNames";
13
12
 
14
13
  /**
@@ -24,11 +23,8 @@ export var PanelHeaderBackComponent = function PanelHeaderBackComponent(_ref) {
24
23
  var platform = usePlatform();
25
24
  var showLabel = platform === VKCOM || platform === IOS && sizeX === SizeType.REGULAR;
26
25
  return createScopedElement(PanelHeaderButton, _extends({}, restProps, {
27
- "aria-label": ariaLabel // eslint-disable-next-line vkui/no-object-expression-in-arguments
28
- ,
29
- vkuiClass: classNames(getClassName("PanelHeaderBack", platform), {
30
- "PanelHeaderBack--has-label": showLabel && !!label
31
- }),
26
+ "aria-label": ariaLabel,
27
+ vkuiClass: classNames("PanelHeaderBack", platform === IOS && "PanelHeaderBack--ios", platform === VKCOM && "PanelHeaderBack--vkcom", showLabel && !!label && "PanelHeaderBack--has-label"),
32
28
  label: showLabel && label
33
29
  }), platform === ANDROID && createScopedElement(Icon28ArrowLeftOutline, null), platform === VKCOM && createScopedElement(Icon28ChevronLeftOutline, null), platform === IOS && createScopedElement(Icon28ChevronBack, null));
34
30
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/PanelHeaderBack/PanelHeaderBack.tsx"],"names":["React","Icon28ChevronBack","Icon28ChevronLeftOutline","Icon28ArrowLeftOutline","PanelHeaderButton","ANDROID","VKCOM","IOS","usePlatform","withAdaptivity","SizeType","getClassName","classNames","PanelHeaderBackComponent","label","sizeX","ariaLabel","restProps","platform","showLabel","REGULAR","PanelHeaderBack","memo","displayName"],"mappings":";;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SACEC,iBADF,EAEEC,wBAFF,EAGEC,sBAHF,QAIO,kBAJP;AAKA,SACEC,iBADF;AAIA,SAASC,OAAT,EAAkBC,KAAlB,EAAyBC,GAAzB;AACA,SAASC,WAAT;AACA,SACEC,cADF,EAEEC,QAFF;AAKA,SAASC,YAAT;AACA,SAASC,UAAT;;AAQA;AACA;AACA;AACA,OAAO,IAAMC,wBAAwB,GAAG,SAA3BA,wBAA2B,OAKQ;AAAA,MAJ9CC,KAI8C,QAJ9CA,KAI8C;AAAA,MAH9CC,KAG8C,QAH9CA,KAG8C;AAAA,4BAF9C,YAE8C;AAAA,MAFhCC,SAEgC,+BAFpB,OAEoB;AAAA,MAD3CC,SAC2C;;AAC9C,MAAMC,QAAQ,GAAGV,WAAW,EAA5B;AACA,MAAMW,SAAS,GACbD,QAAQ,KAAKZ,KAAb,IAAuBY,QAAQ,KAAKX,GAAb,IAAoBQ,KAAK,KAAKL,QAAQ,CAACU,OADhE;AAGA,SACE,oBAAC,iBAAD,eACMH,SADN;AAEE,kBAAYD,SAFd,CAGE;AAHF;AAIE,IAAA,SAAS,EAAEJ,UAAU,CAACD,YAAY,CAAC,iBAAD,EAAoBO,QAApB,CAAb,EAA4C;AAC/D,oCAA8BC,SAAS,IAAI,CAAC,CAACL;AADkB,KAA5C,CAJvB;AAOE,IAAA,KAAK,EAAEK,SAAS,IAAIL;AAPtB,MASGI,QAAQ,KAAKb,OAAb,IAAwB,oBAAC,sBAAD,OAT3B,EAUGa,QAAQ,KAAKZ,KAAb,IAAsB,oBAAC,wBAAD,OAVzB,EAWGY,QAAQ,KAAKX,GAAb,IAAoB,oBAAC,iBAAD,OAXvB,CADF;AAeD,CAzBM;AA2BP,OAAO,IAAMc,eAAe,gBAAGrB,KAAK,CAACsB,IAAN,CAC7Bb,cAAc,CAACI,wBAAD,EAA2B;AACvCE,EAAAA,KAAK,EAAE;AADgC,CAA3B,CADe,CAAxB;AAMPM,eAAe,CAACE,WAAhB,GAA8B,iBAA9B","sourcesContent":["import * as React from \"react\";\nimport {\n Icon28ChevronBack,\n Icon28ChevronLeftOutline,\n Icon28ArrowLeftOutline,\n} from \"@vkontakte/icons\";\nimport {\n PanelHeaderButton,\n PanelHeaderButtonProps,\n} from \"../PanelHeaderButton/PanelHeaderButton\";\nimport { ANDROID, VKCOM, IOS } from \"../../lib/platform\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport {\n withAdaptivity,\n SizeType,\n AdaptivityProps,\n} from \"../../hoc/withAdaptivity\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport \"./PanelHeaderBack.css\";\n\nexport type PanelHeaderBackProps = PanelHeaderButtonProps &\n AdaptivityProps & {\n \"aria-label\"?: string;\n };\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderBack\n */\nexport const PanelHeaderBackComponent = ({\n label,\n sizeX,\n \"aria-label\": ariaLabel = \"Назад\",\n ...restProps\n}: PanelHeaderButtonProps & AdaptivityProps) => {\n const platform = usePlatform();\n const showLabel =\n platform === VKCOM || (platform === IOS && sizeX === SizeType.REGULAR);\n\n return (\n <PanelHeaderButton\n {...restProps}\n aria-label={ariaLabel}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(getClassName(\"PanelHeaderBack\", platform), {\n \"PanelHeaderBack--has-label\": showLabel && !!label,\n })}\n label={showLabel && label}\n >\n {platform === ANDROID && <Icon28ArrowLeftOutline />}\n {platform === VKCOM && <Icon28ChevronLeftOutline />}\n {platform === IOS && <Icon28ChevronBack />}\n </PanelHeaderButton>\n );\n};\n\nexport const PanelHeaderBack = React.memo(\n withAdaptivity(PanelHeaderBackComponent, {\n sizeX: true,\n })\n);\n\nPanelHeaderBack.displayName = \"PanelHeaderBack\";\n"],"file":"PanelHeaderBack.js"}
1
+ {"version":3,"sources":["../../../src/components/PanelHeaderBack/PanelHeaderBack.tsx"],"names":["React","Icon28ChevronBack","Icon28ChevronLeftOutline","Icon28ArrowLeftOutline","PanelHeaderButton","ANDROID","VKCOM","IOS","usePlatform","withAdaptivity","SizeType","classNames","PanelHeaderBackComponent","label","sizeX","ariaLabel","restProps","platform","showLabel","REGULAR","PanelHeaderBack","memo","displayName"],"mappings":";;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SACEC,iBADF,EAEEC,wBAFF,EAGEC,sBAHF,QAIO,kBAJP;AAKA,SACEC,iBADF;AAIA,SAASC,OAAT,EAAkBC,KAAlB,EAAyBC,GAAzB;AACA,SAASC,WAAT;AACA,SACEC,cADF,EAEEC,QAFF;AAKA,SAASC,UAAT;;AAQA;AACA;AACA;AACA,OAAO,IAAMC,wBAAwB,GAAG,SAA3BA,wBAA2B,OAKQ;AAAA,MAJ9CC,KAI8C,QAJ9CA,KAI8C;AAAA,MAH9CC,KAG8C,QAH9CA,KAG8C;AAAA,4BAF9C,YAE8C;AAAA,MAFhCC,SAEgC,+BAFpB,OAEoB;AAAA,MAD3CC,SAC2C;;AAC9C,MAAMC,QAAQ,GAAGT,WAAW,EAA5B;AACA,MAAMU,SAAS,GACbD,QAAQ,KAAKX,KAAb,IAAuBW,QAAQ,KAAKV,GAAb,IAAoBO,KAAK,KAAKJ,QAAQ,CAACS,OADhE;AAGA,SACE,oBAAC,iBAAD,eACMH,SADN;AAEE,kBAAYD,SAFd;AAGE,IAAA,SAAS,EAAEJ,UAAU,CACnB,iBADmB,EAEnBM,QAAQ,KAAKV,GAAb,IAAoB,sBAFD,EAGnBU,QAAQ,KAAKX,KAAb,IAAsB,wBAHH,EAInBY,SAAS,IAAI,CAAC,CAACL,KAAf,IAAwB,4BAJL,CAHvB;AASE,IAAA,KAAK,EAAEK,SAAS,IAAIL;AATtB,MAWGI,QAAQ,KAAKZ,OAAb,IAAwB,oBAAC,sBAAD,OAX3B,EAYGY,QAAQ,KAAKX,KAAb,IAAsB,oBAAC,wBAAD,OAZzB,EAaGW,QAAQ,KAAKV,GAAb,IAAoB,oBAAC,iBAAD,OAbvB,CADF;AAiBD,CA3BM;AA6BP,OAAO,IAAMa,eAAe,gBAAGpB,KAAK,CAACqB,IAAN,CAC7BZ,cAAc,CAACG,wBAAD,EAA2B;AACvCE,EAAAA,KAAK,EAAE;AADgC,CAA3B,CADe,CAAxB;AAMPM,eAAe,CAACE,WAAhB,GAA8B,iBAA9B","sourcesContent":["import * as React from \"react\";\nimport {\n Icon28ChevronBack,\n Icon28ChevronLeftOutline,\n Icon28ArrowLeftOutline,\n} from \"@vkontakte/icons\";\nimport {\n PanelHeaderButton,\n PanelHeaderButtonProps,\n} from \"../PanelHeaderButton/PanelHeaderButton\";\nimport { ANDROID, VKCOM, IOS } from \"../../lib/platform\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport {\n withAdaptivity,\n SizeType,\n AdaptivityProps,\n} from \"../../hoc/withAdaptivity\";\nimport { classNames } from \"../../lib/classNames\";\nimport \"./PanelHeaderBack.css\";\n\nexport type PanelHeaderBackProps = PanelHeaderButtonProps &\n AdaptivityProps & {\n \"aria-label\"?: string;\n };\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderBack\n */\nexport const PanelHeaderBackComponent = ({\n label,\n sizeX,\n \"aria-label\": ariaLabel = \"Назад\",\n ...restProps\n}: PanelHeaderButtonProps & AdaptivityProps) => {\n const platform = usePlatform();\n const showLabel =\n platform === VKCOM || (platform === IOS && sizeX === SizeType.REGULAR);\n\n return (\n <PanelHeaderButton\n {...restProps}\n aria-label={ariaLabel}\n vkuiClass={classNames(\n \"PanelHeaderBack\",\n platform === IOS && \"PanelHeaderBack--ios\",\n platform === VKCOM && \"PanelHeaderBack--vkcom\",\n showLabel && !!label && \"PanelHeaderBack--has-label\"\n )}\n label={showLabel && label}\n >\n {platform === ANDROID && <Icon28ArrowLeftOutline />}\n {platform === VKCOM && <Icon28ChevronLeftOutline />}\n {platform === IOS && <Icon28ChevronBack />}\n </PanelHeaderButton>\n );\n};\n\nexport const PanelHeaderBack = React.memo(\n withAdaptivity(PanelHeaderBackComponent, {\n sizeX: true,\n })\n);\n\nPanelHeaderBack.displayName = \"PanelHeaderBack\";\n"],"file":"PanelHeaderBack.js"}
@@ -76,13 +76,8 @@ export var PanelHeaderButton = function PanelHeaderButton(_ref2) {
76
76
  hoverMode: hoverMode,
77
77
  Component: restProps.href ? "a" : "button",
78
78
  activeEffectDelay: 200,
79
- activeMode: activeMode // eslint-disable-next-line vkui/no-object-expression-in-arguments
80
- ,
81
- vkuiClass: classNames(getClassName("PanelHeaderButton", platform), {
82
- "PanelHeaderButton--primary": primary,
83
- "PanelHeaderButton--primitive": isPrimitive,
84
- "PanelHeaderButton--notPrimitive": !isPrimitive && !isPrimitiveLabel
85
- })
79
+ activeMode: activeMode,
80
+ vkuiClass: classNames(getClassName("PanelHeaderButton", platform), primary && "PanelHeaderButton--primary", isPrimitive && "PanelHeaderButton--primitive", !isPrimitive && !isPrimitiveLabel && "PanelHeaderButton--notPrimitive")
86
81
  }), isPrimitive ? createScopedElement(ButtonTypography, {
87
82
  primary: primary
88
83
  }, children) : children, isPrimitiveLabel ? createScopedElement(ButtonTypography, {
@@ -1 +1 @@
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","undefined","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 { TappableProps, Tappable } 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 = ({ primary, children }: 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 <Text weight={platform === VKCOM ? undefined : \"2\"}>{children}</Text>;\n};\n\nconst warn = warnOnce(\"PanelHeaderButton\");\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderButton\n */\nexport const PanelHeaderButton = ({\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 \"error\"\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 // eslint-disable-next-line vkui/no-object-expression-in-arguments\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"}
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","undefined","warn","PanelHeaderButton","label","restProps","isPrimitive","isPrimitiveLabel","hoverMode","activeMode","process","env","NODE_ENV","hasAccessibleName","Boolean","href"],"mappings":";;;;AACA,SAAwBA,QAAxB;AACA,SAASC,YAAT;AACA,SAASC,UAAT;AACA,SAASC,QAAT;AACA,SAASC,WAAT;AACA,SAASC,oBAAT,EAA+BC,oBAA/B;AACA,SAASC,GAAT,EAAcC,KAAd,EAAqBC,OAArB;AACA,SAASC,IAAT;AACA,SAASC,KAAT;;AAYA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,OAAkD;AAAA,MAA/CC,OAA+C,QAA/CA,OAA+C;AAAA,MAAtCC,QAAsC,QAAtCA,QAAsC;AACzE,MAAMC,QAAQ,GAAGX,WAAW,EAA5B;;AAEA,MAAIW,QAAQ,KAAKR,GAAjB,EAAsB;AACpB,WACE,oBAAC,KAAD;AAAO,MAAA,SAAS,EAAC,MAAjB;AAAwB,MAAA,KAAK,EAAC,GAA9B;AAAkC,MAAA,MAAM,EAAEM,OAAO,GAAG,GAAH,GAAS;AAA1D,OACGC,QADH,CADF;AAKD;;AAED,SAAO,oBAAC,IAAD;AAAM,IAAA,MAAM,EAAEC,QAAQ,KAAKP,KAAb,GAAqBQ,SAArB,GAAiC;AAA/C,KAAqDF,QAArD,CAAP;AACD,CAZD;;AAcA,IAAMG,IAAI,GAAGd,QAAQ,CAAC,mBAAD,CAArB;AAEA;AACA;AACA;;AACA,OAAO,IAAMe,iBAAiB,GAAG,SAApBA,iBAAoB,QAKH;AAAA,MAJ5BJ,QAI4B,SAJ5BA,QAI4B;AAAA,4BAH5BD,OAG4B;AAAA,MAH5BA,OAG4B,8BAHlB,KAGkB;AAAA,MAF5BM,KAE4B,SAF5BA,KAE4B;AAAA,MADzBC,SACyB;;AAC5B,MAAMC,WAAW,GAAGf,oBAAoB,CAACQ,QAAD,CAAxC;AACA,MAAMQ,gBAAgB,GAAGhB,oBAAoB,CAACa,KAAD,CAA7C;AACA,MAAMJ,QAAQ,GAAGX,WAAW,EAA5B;AAEA,MAAImB,SAAJ;AACA,MAAIC,UAAJ;;AAEA,UAAQT,QAAR;AACE,SAAKN,OAAL;AACEc,MAAAA,SAAS,GAAG,YAAZ;AACAC,MAAAA,UAAU,GAAG,YAAb;AACA;;AACF,SAAKjB,GAAL;AACEgB,MAAAA,SAAS,GAAG,YAAZ;AACAC,MAAAA,UAAU,GAAG,SAAb;AACA;;AACF,SAAKhB,KAAL;AACEe,MAAAA,SAAS,GAAG,0BAAZ;AACAC,MAAAA,UAAU,GAAG,2BAAb;AAXJ;;AAcA,MAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAA7B,EAA4C;AAC1C,QAAMC,iBAAiB,GAAGC,OAAO,CAC/BxB,oBAAoB,CAACS,QAAD,CAApB,IACET,oBAAoB,CAACc,KAAD,CADtB,IAEEC,SAAS,CAAC,YAAD,CAFX,IAGEA,SAAS,CAAC,iBAAD,CAJoB,CAAjC;;AAOA,QAAI,CAACQ,iBAAL,EAAwB;AACtBX,MAAAA,IAAI,CACF,oMADE,EAEF,OAFE,CAAJ;AAID;AACF;;AAED,SACE,oBAAC,QAAD,eACMG,SADN;AAEE,IAAA,SAAS,EAAEG,SAFb;AAGE,IAAA,SAAS,EAAEH,SAAS,CAACU,IAAV,GAAiB,GAAjB,GAAuB,QAHpC;AAIE,IAAA,iBAAiB,EAAE,GAJrB;AAKE,IAAA,UAAU,EAAEN,UALd;AAME,IAAA,SAAS,EAAEtB,UAAU,CACnBD,YAAY,CAAC,mBAAD,EAAsBc,QAAtB,CADO,EAEnBF,OAAO,IAAI,4BAFQ,EAGnBQ,WAAW,IAAI,8BAHI,EAInB,CAACA,WAAD,IAAgB,CAACC,gBAAjB,IAAqC,iCAJlB;AANvB,MAaGD,WAAW,GACV,oBAAC,gBAAD;AAAkB,IAAA,OAAO,EAAER;AAA3B,KAAqCC,QAArC,CADU,GAGVA,QAhBJ,EAkBGQ,gBAAgB,GACf,oBAAC,gBAAD;AAAkB,IAAA,OAAO,EAAET;AAA3B,KAAqCM,KAArC,CADe,GAGfA,KArBJ,CADF;AA0BD,CArEM","sourcesContent":["import * as React from \"react\";\nimport { TappableProps, Tappable } 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 = ({ primary, children }: 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 <Text weight={platform === VKCOM ? undefined : \"2\"}>{children}</Text>;\n};\n\nconst warn = warnOnce(\"PanelHeaderButton\");\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderButton\n */\nexport const PanelHeaderButton = ({\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 \"error\"\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(\n getClassName(\"PanelHeaderButton\", platform),\n primary && \"PanelHeaderButton--primary\",\n isPrimitive && \"PanelHeaderButton--primitive\",\n !isPrimitive && !isPrimitiveLabel && \"PanelHeaderButton--notPrimitive\"\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"}
@@ -4,7 +4,7 @@ var _excluded = ["children"];
4
4
  import { createScopedElement } from "../../lib/jsxRuntime";
5
5
  import { Icon28CancelOutline } from "@vkontakte/icons";
6
6
  import { PanelHeaderButton } from "../PanelHeaderButton/PanelHeaderButton";
7
- import { ANDROID, VKCOM } from "../../lib/platform";
7
+ import { IOS } from "../../lib/platform";
8
8
  import { getTitleFromChildren } from "../../lib/utils";
9
9
  import { usePlatform } from "../../hooks/usePlatform";
10
10
  /**
@@ -19,6 +19,6 @@ export var PanelHeaderClose = function PanelHeaderClose(_ref) {
19
19
  var platform = usePlatform();
20
20
  return createScopedElement(PanelHeaderButton, _extends({
21
21
  "aria-label": getTitleFromChildren(children)
22
- }, restProps), platform === ANDROID || platform === VKCOM ? createScopedElement(Icon28CancelOutline, null) : children);
22
+ }, restProps), platform === IOS ? children : createScopedElement(Icon28CancelOutline, null));
23
23
  };
24
24
  //# sourceMappingURL=PanelHeaderClose.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/PanelHeaderClose/PanelHeaderClose.tsx"],"names":["Icon28CancelOutline","PanelHeaderButton","ANDROID","VKCOM","getTitleFromChildren","usePlatform","PanelHeaderClose","children","restProps","platform"],"mappings":";;;;AAAA,SAASA,mBAAT,QAAoC,kBAApC;AACA,SACEC,iBADF;AAIA,SAASC,OAAT,EAAkBC,KAAlB;AACA,SAASC,oBAAT;AACA,SAASC,WAAT;AAEA;AACA;AACA;;AACA,OAAO,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,OAGF;AAAA,2BAF5BC,QAE4B;AAAA,MAF5BA,QAE4B,8BAFjB,QAEiB;AAAA,MADzBC,SACyB;;AAC5B,MAAMC,QAAQ,GAAGJ,WAAW,EAA5B;AACA,SACE,oBAAC,iBAAD;AACE,kBAAYD,oBAAoB,CAACG,QAAD;AADlC,KAEMC,SAFN,GAIGC,QAAQ,KAAKP,OAAb,IAAwBO,QAAQ,KAAKN,KAArC,GACC,oBAAC,mBAAD,OADD,GAGCI,QAPJ,CADF;AAYD,CAjBM","sourcesContent":["import { Icon28CancelOutline } from \"@vkontakte/icons\";\nimport {\n PanelHeaderButton,\n PanelHeaderButtonProps,\n} from \"../PanelHeaderButton/PanelHeaderButton\";\nimport { ANDROID, VKCOM } from \"../../lib/platform\";\nimport { getTitleFromChildren } from \"../../lib/utils\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderClose\n */\nexport const PanelHeaderClose = ({\n children = \"Отмена\",\n ...restProps\n}: PanelHeaderButtonProps) => {\n const platform = usePlatform();\n return (\n <PanelHeaderButton\n aria-label={getTitleFromChildren(children)}\n {...restProps}\n >\n {platform === ANDROID || platform === VKCOM ? (\n <Icon28CancelOutline />\n ) : (\n children\n )}\n </PanelHeaderButton>\n );\n};\n"],"file":"PanelHeaderClose.js"}
1
+ {"version":3,"sources":["../../../src/components/PanelHeaderClose/PanelHeaderClose.tsx"],"names":["Icon28CancelOutline","PanelHeaderButton","IOS","getTitleFromChildren","usePlatform","PanelHeaderClose","children","restProps","platform"],"mappings":";;;;AAAA,SAASA,mBAAT,QAAoC,kBAApC;AACA,SACEC,iBADF;AAIA,SAASC,GAAT;AACA,SAASC,oBAAT;AACA,SAASC,WAAT;AAEA;AACA;AACA;;AACA,OAAO,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,OAGF;AAAA,2BAF5BC,QAE4B;AAAA,MAF5BA,QAE4B,8BAFjB,QAEiB;AAAA,MADzBC,SACyB;;AAC5B,MAAMC,QAAQ,GAAGJ,WAAW,EAA5B;AACA,SACE,oBAAC,iBAAD;AACE,kBAAYD,oBAAoB,CAACG,QAAD;AADlC,KAEMC,SAFN,GAIGC,QAAQ,KAAKN,GAAb,GAAmBI,QAAnB,GAA8B,oBAAC,mBAAD,OAJjC,CADF;AAQD,CAbM","sourcesContent":["import { Icon28CancelOutline } from \"@vkontakte/icons\";\nimport {\n PanelHeaderButton,\n PanelHeaderButtonProps,\n} from \"../PanelHeaderButton/PanelHeaderButton\";\nimport { IOS } from \"../../lib/platform\";\nimport { getTitleFromChildren } from \"../../lib/utils\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderClose\n */\nexport const PanelHeaderClose = ({\n children = \"Отмена\",\n ...restProps\n}: PanelHeaderButtonProps) => {\n const platform = usePlatform();\n return (\n <PanelHeaderButton\n aria-label={getTitleFromChildren(children)}\n {...restProps}\n >\n {platform === IOS ? children : <Icon28CancelOutline />}\n </PanelHeaderButton>\n );\n};\n"],"file":"PanelHeaderClose.js"}
@@ -3,13 +3,14 @@ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
4
  var _excluded = ["className", "style", "aside", "status", "before", "children", "onClick"];
5
5
  import { createScopedElement } from "../../lib/jsxRuntime";
6
- import { getClassName } from "../../helpers/getClassName";
6
+ import { classNames } from "../../lib/classNames";
7
7
  import { Tappable } from "../Tappable/Tappable";
8
8
  import { usePlatform } from "../../hooks/usePlatform";
9
9
  import { hasReactNode } from "../../lib/utils";
10
+ import { getClassName } from "../../helpers/getClassName";
10
11
  import { Caption } from "../Typography/Caption/Caption";
11
12
  import { Headline } from "../Typography/Headline/Headline";
12
- import { IOS, Platform } from "../../lib/platform";
13
+ import { IOS, ANDROID, Platform } from "../../lib/platform";
13
14
  import { Text } from "../Typography/Text/Text";
14
15
 
15
16
  var PanelHeaderChildren = function PanelHeaderChildren(_ref) {
@@ -56,15 +57,14 @@ export var PanelHeaderContent = function PanelHeaderContent(_ref2) {
56
57
  hasActive: platform === IOS,
57
58
  activeMode: "opacity"
58
59
  }) : {};
59
- var baseClassNames = getClassName("PanelHeaderContent", platform);
60
60
  return createScopedElement("div", _extends({}, rootProps, {
61
- vkuiClass: baseClassNames,
61
+ vkuiClass: getClassName("PanelHeaderContent", platform),
62
62
  style: style,
63
63
  className: className
64
64
  }), hasReactNode(before) && createScopedElement("div", {
65
65
  vkuiClass: "PanelHeaderContent__before"
66
66
  }, before), createScopedElement(InComponent, _extends({}, inProps, {
67
- vkuiClass: "PanelHeaderContent__in"
67
+ vkuiClass: classNames("PanelHeaderContent__in", !before && platform !== ANDROID && "PanelHeaderContent__in--centered")
68
68
  }), hasReactNode(status) && createScopedElement(Caption, {
69
69
  vkuiClass: "PanelHeaderContent__status"
70
70
  }, status), createScopedElement("div", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/PanelHeaderContent/PanelHeaderContent.tsx"],"names":["getClassName","Tappable","usePlatform","hasReactNode","Caption","Headline","IOS","Platform","Text","PanelHeaderChildren","platform","hasStatus","hasBefore","children","VKCOM","PanelHeaderContent","className","style","aside","status","before","onClick","restProps","InComponent","rootProps","inProps","activeEffectDelay","hasActive","activeMode","baseClassNames"],"mappings":";;;;;AACA,SAASA,YAAT;AACA,SAASC,QAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,SAASC,OAAT;AACA,SAASC,QAAT;AACA,SAASC,GAAT,EAAcC,QAAd;AACA,SAASC,IAAT;;AAiBA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,OAKI;AAAA,MAJ9BC,QAI8B,QAJ9BA,QAI8B;AAAA,MAH9BC,SAG8B,QAH9BA,SAG8B;AAAA,MAF9BC,SAE8B,QAF9BA,SAE8B;AAAA,MAD9BC,QAC8B,QAD9BA,QAC8B;;AAC9B,MAAIH,QAAQ,KAAKH,QAAQ,CAACO,KAA1B,EAAiC;AAC/B,WACE,oBAAC,IAAD;AAAM,MAAA,SAAS,EAAC,KAAhB;AAAsB,MAAA,MAAM,EAAC;AAA7B,OACGD,QADH,CADF;AAKD;;AAED,SAAOF,SAAS,IAAIC,SAAb,GACL,oBAAC,QAAD;AAAU,IAAA,SAAS,EAAC,KAApB;AAA0B,IAAA,MAAM,EAAC;AAAjC,KACGC,QADH,CADK,GAKL;AAAK,IAAA,SAAS,EAAC;AAAf,KAAkDA,QAAlD,CALF;AAOD,CArBD;AAuBA;AACA;AACA;;;AACA,OAAO,IAAME,kBAAkB,GAAG,SAArBA,kBAAqB,QASH;AAAA,MAR7BC,SAQ6B,SAR7BA,SAQ6B;AAAA,MAP7BC,KAO6B,SAP7BA,KAO6B;AAAA,MAN7BC,KAM6B,SAN7BA,KAM6B;AAAA,MAL7BC,MAK6B,SAL7BA,MAK6B;AAAA,MAJ7BC,MAI6B,SAJ7BA,MAI6B;AAAA,MAH7BP,QAG6B,SAH7BA,QAG6B;AAAA,MAF7BQ,OAE6B,SAF7BA,OAE6B;AAAA,MAD1BC,SAC0B;;AAC7B,MAAMC,WAAW,GAAGF,OAAO,GAAGpB,QAAH,GAAc,KAAzC;AACA,MAAMuB,SAAS,GAAGH,OAAO,GAAG,EAAH,GAAQC,SAAjC;AACA,MAAMZ,QAAQ,GAAGR,WAAW,EAA5B;AACA,MAAMuB,OAAO,GAAGJ,OAAO,mCAEdC,SAFc;AAGjBD,IAAAA,OAAO,EAAPA,OAHiB;AAIjBK,IAAAA,iBAAiB,EAAE,GAJF;AAKjBC,IAAAA,SAAS,EAAEjB,QAAQ,KAAKJ,GALP;AAMjBsB,IAAAA,UAAU,EAAE;AANK,OAQnB,EARJ;AASA,MAAMC,cAAc,GAAG7B,YAAY,CAAC,oBAAD,EAAuBU,QAAvB,CAAnC;AAEA,SACE,wCACMc,SADN;AAEE,IAAA,SAAS,EAAEK,cAFb;AAGE,IAAA,KAAK,EAAEZ,KAHT;AAIE,IAAA,SAAS,EAAED;AAJb,MAMGb,YAAY,CAACiB,MAAD,CAAZ,IACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAA6CA,MAA7C,CAPJ,EASE,oBAAC,WAAD,eAAiBK,OAAjB;AAA0B,IAAA,SAAS,EAAC;AAApC,MACGtB,YAAY,CAACgB,MAAD,CAAZ,IACC,oBAAC,OAAD;AAAS,IAAA,SAAS,EAAC;AAAnB,KAAiDA,MAAjD,CAFJ,EAIE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,oBAAC,mBAAD;AACE,IAAA,QAAQ,EAAET,QADZ;AAEE,IAAA,SAAS,EAAEP,YAAY,CAACgB,MAAD,CAFzB;AAGE,IAAA,SAAS,EAAEhB,YAAY,CAACiB,MAAD;AAHzB,KAKGP,QALH,CADF,EAQGV,YAAY,CAACe,KAAD,CAAZ,IACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAA4CA,KAA5C,CATJ,CAJF,EAgBGf,YAAY,CAACiB,MAAD,CAAZ,IAAwB;AAAK,IAAA,SAAS,EAAC;AAAf,IAhB3B,CATF,CADF;AA8BD,CAtDM","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { Tappable } from \"../Tappable/Tappable\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport { IOS, Platform } from \"../../lib/platform\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { HasPlatform } from \"../../types\";\nimport \"./PanelHeaderContent.css\";\n\nexport interface PanelHeaderContentProps\n extends React.HTMLAttributes<HTMLDivElement> {\n aside?: React.ReactNode;\n before?: React.ReactNode;\n status?: React.ReactNode;\n}\n\ninterface PanelHeaderChildrenProps extends HasPlatform {\n hasStatus: boolean;\n hasBefore: boolean;\n children?: React.ReactNode;\n}\n\nconst PanelHeaderChildren = ({\n platform,\n hasStatus,\n hasBefore,\n children,\n}: PanelHeaderChildrenProps) => {\n if (platform === Platform.VKCOM) {\n return (\n <Text Component=\"div\" weight=\"2\">\n {children}\n </Text>\n );\n }\n\n return hasStatus || hasBefore ? (\n <Headline Component=\"div\" weight=\"2\">\n {children}\n </Headline>\n ) : (\n <div vkuiClass=\"PanelHeaderContent__children-in\">{children}</div>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderContent\n */\nexport const PanelHeaderContent = ({\n className,\n style,\n aside,\n status,\n before,\n children,\n onClick,\n ...restProps\n}: PanelHeaderContentProps) => {\n const InComponent = onClick ? Tappable : \"div\";\n const rootProps = onClick ? {} : restProps;\n const platform = usePlatform();\n const inProps = onClick\n ? {\n ...restProps,\n onClick,\n activeEffectDelay: 200,\n hasActive: platform === IOS,\n activeMode: \"opacity\",\n }\n : {};\n const baseClassNames = getClassName(\"PanelHeaderContent\", platform);\n\n return (\n <div\n {...rootProps}\n vkuiClass={baseClassNames}\n style={style}\n className={className}\n >\n {hasReactNode(before) && (\n <div vkuiClass=\"PanelHeaderContent__before\">{before}</div>\n )}\n <InComponent {...inProps} vkuiClass=\"PanelHeaderContent__in\">\n {hasReactNode(status) && (\n <Caption vkuiClass=\"PanelHeaderContent__status\">{status}</Caption>\n )}\n <div vkuiClass=\"PanelHeaderContent__children\">\n <PanelHeaderChildren\n platform={platform}\n hasStatus={hasReactNode(status)}\n hasBefore={hasReactNode(before)}\n >\n {children}\n </PanelHeaderChildren>\n {hasReactNode(aside) && (\n <div vkuiClass=\"PanelHeaderContent__aside\">{aside}</div>\n )}\n </div>\n {hasReactNode(before) && <div vkuiClass=\"PanelHeaderContent__width\" />}\n </InComponent>\n </div>\n );\n};\n"],"file":"PanelHeaderContent.js"}
1
+ {"version":3,"sources":["../../../src/components/PanelHeaderContent/PanelHeaderContent.tsx"],"names":["classNames","Tappable","usePlatform","hasReactNode","getClassName","Caption","Headline","IOS","ANDROID","Platform","Text","PanelHeaderChildren","platform","hasStatus","hasBefore","children","VKCOM","PanelHeaderContent","className","style","aside","status","before","onClick","restProps","InComponent","rootProps","inProps","activeEffectDelay","hasActive","activeMode"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { Tappable } from \"../Tappable/Tappable\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport { IOS, ANDROID, Platform } from \"../../lib/platform\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { HasPlatform } from \"../../types\";\nimport \"./PanelHeaderContent.css\";\n\nexport interface PanelHeaderContentProps\n extends React.HTMLAttributes<HTMLDivElement> {\n aside?: React.ReactNode;\n before?: React.ReactNode;\n status?: React.ReactNode;\n}\n\ninterface PanelHeaderChildrenProps extends HasPlatform {\n hasStatus: boolean;\n hasBefore: boolean;\n children?: React.ReactNode;\n}\n\nconst PanelHeaderChildren = ({\n platform,\n hasStatus,\n hasBefore,\n children,\n}: PanelHeaderChildrenProps) => {\n if (platform === Platform.VKCOM) {\n return (\n <Text Component=\"div\" weight=\"2\">\n {children}\n </Text>\n );\n }\n\n return hasStatus || hasBefore ? (\n <Headline Component=\"div\" weight=\"2\">\n {children}\n </Headline>\n ) : (\n <div vkuiClass=\"PanelHeaderContent__children-in\">{children}</div>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderContent\n */\nexport const PanelHeaderContent = ({\n className,\n style,\n aside,\n status,\n before,\n children,\n onClick,\n ...restProps\n}: PanelHeaderContentProps) => {\n const InComponent = onClick ? Tappable : \"div\";\n const rootProps = onClick ? {} : restProps;\n const platform = usePlatform();\n const inProps = onClick\n ? {\n ...restProps,\n onClick,\n activeEffectDelay: 200,\n hasActive: platform === IOS,\n activeMode: \"opacity\",\n }\n : {};\n\n return (\n <div\n {...rootProps}\n vkuiClass={getClassName(\"PanelHeaderContent\", platform)}\n style={style}\n className={className}\n >\n {hasReactNode(before) && (\n <div vkuiClass=\"PanelHeaderContent__before\">{before}</div>\n )}\n <InComponent\n {...inProps}\n vkuiClass={classNames(\n \"PanelHeaderContent__in\",\n !before && platform !== ANDROID && \"PanelHeaderContent__in--centered\"\n )}\n >\n {hasReactNode(status) && (\n <Caption vkuiClass=\"PanelHeaderContent__status\">{status}</Caption>\n )}\n <div vkuiClass=\"PanelHeaderContent__children\">\n <PanelHeaderChildren\n platform={platform}\n hasStatus={hasReactNode(status)}\n hasBefore={hasReactNode(before)}\n >\n {children}\n </PanelHeaderChildren>\n {hasReactNode(aside) && (\n <div vkuiClass=\"PanelHeaderContent__aside\">{aside}</div>\n )}\n </div>\n {hasReactNode(before) && <div vkuiClass=\"PanelHeaderContent__width\" />}\n </InComponent>\n </div>\n );\n};\n"],"file":"PanelHeaderContent.js"}
@@ -6,10 +6,10 @@ import { createScopedElement } from "../../lib/jsxRuntime";
6
6
  import * as React from "react";
7
7
  import { FixedLayout } from "../FixedLayout/FixedLayout";
8
8
  import { classNames } from "../../lib/classNames";
9
- import { getClassName } from "../../helpers/getClassName";
10
9
  import { ViewWidth } from "../AdaptivityProvider/AdaptivityContext";
11
10
  import { useAdaptivity } from "../../hooks/useAdaptivity";
12
11
  import { useDOM } from "../../lib/dom";
12
+ import { IOS } from "../../lib/platform";
13
13
  import { useIsomorphicLayoutEffect } from "../../lib/useIsomorphicLayoutEffect";
14
14
  import { useGlobalEventListener } from "../../hooks/useGlobalEventListener";
15
15
  import { useTimeout } from "../../hooks/useTimeout";
@@ -63,12 +63,8 @@ export var PanelHeaderContext = function PanelHeaderContext(_ref) {
63
63
  return closing ? animationFallback.set() : animationFallback.clear();
64
64
  }, [animationFallback, closing]);
65
65
  return createScopedElement(FixedLayout, _extends({}, restProps, {
66
- // eslint-disable-next-line vkui/no-object-expression-in-arguments
67
- vkuiClass: classNames(getClassName("PanelHeaderContext", platform), {
68
- "PanelHeaderContext--opened": opened,
69
- "PanelHeaderContext--closing": closing,
70
- "PanelHeaderContext--desktop": isDesktop
71
- }),
66
+ vkuiClass: classNames("PanelHeaderContext", platform === IOS && "PanelHeaderContext--ios", opened && "PanelHeaderContext--opened", closing && "PanelHeaderContext--closing", isDesktop && "PanelHeaderContext--desktop", // TODO v5.0.0 поправить под новую адаптивность
67
+ (platform !== IOS || platform === IOS && isDesktop) && "PanelHeaderContext--rounded"),
72
68
  vertical: "top"
73
69
  }), createScopedElement("div", {
74
70
  vkuiClass: "PanelHeaderContext__in",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/PanelHeaderContext/PanelHeaderContext.tsx"],"names":["React","FixedLayout","classNames","getClassName","ViewWidth","useAdaptivity","useDOM","useIsomorphicLayoutEffect","useGlobalEventListener","useTimeout","usePlatform","useScrollLock","PanelHeaderContext","children","onClose","opened","restProps","document","platform","useState","visible","setVisible","closing","viewWidth","isDesktop","SMALL_TABLET","elementRef","useRef","event","current","contains","target","onAnimationEnd","animationFallback","useEffect","set","clear","undefined"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { FixedLayout } from \"../FixedLayout/FixedLayout\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { ViewWidth } from \"../AdaptivityProvider/AdaptivityContext\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { useDOM } from \"../../lib/dom\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { useGlobalEventListener } from \"../../hooks/useGlobalEventListener\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { useScrollLock } from \"../AppRoot/ScrollContext\";\nimport \"./PanelHeaderContext.css\";\n\nexport interface PanelHeaderContextProps\n extends React.HTMLAttributes<HTMLDivElement> {\n opened: boolean;\n onClose: VoidFunction;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderContext\n */\nexport const PanelHeaderContext = ({\n children,\n onClose,\n opened = false,\n ...restProps\n}: PanelHeaderContextProps) => {\n const { document } = useDOM();\n const platform = usePlatform();\n const [visible, setVisible] = React.useState(opened);\n const closing = visible && !opened;\n const { viewWidth } = useAdaptivity();\n const isDesktop = viewWidth >= ViewWidth.SMALL_TABLET;\n const elementRef = React.useRef<HTMLDivElement>(null);\n\n useIsomorphicLayoutEffect(() => {\n opened && setVisible(true);\n }, [opened]);\n\n useScrollLock(!isDesktop && opened);\n\n // start closing on outer click\n useGlobalEventListener(\n document,\n \"click\",\n isDesktop &&\n opened &&\n !closing &&\n ((event) => {\n if (\n elementRef.current &&\n !elementRef.current.contains(event.target as Node)\n ) {\n onClose();\n }\n })\n );\n\n // fallback onAnimationEnd when animationend not supported\n const onAnimationEnd = () => setVisible(false);\n const animationFallback = useTimeout(onAnimationEnd, 200);\n React.useEffect(\n () => (closing ? animationFallback.set() : animationFallback.clear()),\n [animationFallback, closing]\n );\n\n return (\n <FixedLayout\n {...restProps}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(getClassName(\"PanelHeaderContext\", platform), {\n \"PanelHeaderContext--opened\": opened,\n \"PanelHeaderContext--closing\": closing,\n \"PanelHeaderContext--desktop\": isDesktop,\n })}\n vertical=\"top\"\n >\n <div\n vkuiClass=\"PanelHeaderContext__in\"\n ref={elementRef}\n onAnimationEnd={closing ? onAnimationEnd : undefined}\n >\n <div vkuiClass=\"PanelHeaderContext__content\">{visible && children}</div>\n </div>\n {!isDesktop && visible && (\n <div onClick={onClose} vkuiClass=\"PanelHeaderContext__fade\" />\n )}\n </FixedLayout>\n );\n};\n"],"file":"PanelHeaderContext.js"}
1
+ {"version":3,"sources":["../../../src/components/PanelHeaderContext/PanelHeaderContext.tsx"],"names":["React","FixedLayout","classNames","ViewWidth","useAdaptivity","useDOM","IOS","useIsomorphicLayoutEffect","useGlobalEventListener","useTimeout","usePlatform","useScrollLock","PanelHeaderContext","children","onClose","opened","restProps","document","platform","useState","visible","setVisible","closing","viewWidth","isDesktop","SMALL_TABLET","elementRef","useRef","event","current","contains","target","onAnimationEnd","animationFallback","useEffect","set","clear","undefined"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { FixedLayout } from \"../FixedLayout/FixedLayout\";\nimport { classNames } from \"../../lib/classNames\";\nimport { ViewWidth } from \"../AdaptivityProvider/AdaptivityContext\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { useDOM } from \"../../lib/dom\";\nimport { IOS } from \"../../lib/platform\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { useGlobalEventListener } from \"../../hooks/useGlobalEventListener\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { useScrollLock } from \"../AppRoot/ScrollContext\";\nimport \"./PanelHeaderContext.css\";\n\nexport interface PanelHeaderContextProps\n extends React.HTMLAttributes<HTMLDivElement> {\n opened: boolean;\n onClose: VoidFunction;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderContext\n */\nexport const PanelHeaderContext = ({\n children,\n onClose,\n opened = false,\n ...restProps\n}: PanelHeaderContextProps) => {\n const { document } = useDOM();\n const platform = usePlatform();\n const [visible, setVisible] = React.useState(opened);\n const closing = visible && !opened;\n const { viewWidth } = useAdaptivity();\n const isDesktop = viewWidth >= ViewWidth.SMALL_TABLET;\n const elementRef = React.useRef<HTMLDivElement>(null);\n\n useIsomorphicLayoutEffect(() => {\n opened && setVisible(true);\n }, [opened]);\n\n useScrollLock(!isDesktop && opened);\n\n // start closing on outer click\n useGlobalEventListener(\n document,\n \"click\",\n isDesktop &&\n opened &&\n !closing &&\n ((event) => {\n if (\n elementRef.current &&\n !elementRef.current.contains(event.target as Node)\n ) {\n onClose();\n }\n })\n );\n\n // fallback onAnimationEnd when animationend not supported\n const onAnimationEnd = () => setVisible(false);\n const animationFallback = useTimeout(onAnimationEnd, 200);\n React.useEffect(\n () => (closing ? animationFallback.set() : animationFallback.clear()),\n [animationFallback, closing]\n );\n\n return (\n <FixedLayout\n {...restProps}\n vkuiClass={classNames(\n \"PanelHeaderContext\",\n platform === IOS && \"PanelHeaderContext--ios\",\n opened && \"PanelHeaderContext--opened\",\n closing && \"PanelHeaderContext--closing\",\n isDesktop && \"PanelHeaderContext--desktop\",\n // TODO v5.0.0 поправить под новую адаптивность\n (platform !== IOS || (platform === IOS && isDesktop)) &&\n \"PanelHeaderContext--rounded\"\n )}\n vertical=\"top\"\n >\n <div\n vkuiClass=\"PanelHeaderContext__in\"\n ref={elementRef}\n onAnimationEnd={closing ? onAnimationEnd : undefined}\n >\n <div vkuiClass=\"PanelHeaderContext__content\">{visible && children}</div>\n </div>\n {!isDesktop && visible && (\n <div onClick={onClose} vkuiClass=\"PanelHeaderContext__fade\" />\n )}\n </FixedLayout>\n );\n};\n"],"file":"PanelHeaderContext.js"}
@@ -3,7 +3,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProper
3
3
  var _excluded = ["isActive", "editLabel", "doneLabel"];
4
4
  import { createScopedElement } from "../../lib/jsxRuntime";
5
5
  import { PanelHeaderButton } from "../PanelHeaderButton/PanelHeaderButton";
6
- import { ANDROID, VKCOM } from "../../lib/platform";
6
+ import { IOS } from "../../lib/platform";
7
7
  import { Icon28EditOutline, Icon28DoneOutline } from "@vkontakte/icons";
8
8
  import { usePlatform } from "../../hooks/usePlatform";
9
9
 
@@ -24,6 +24,6 @@ export var PanelHeaderEdit = function PanelHeaderEdit(_ref) {
24
24
  var platform = usePlatform();
25
25
  return createScopedElement(PanelHeaderButton, _extends({
26
26
  "aria-label": iOSText
27
- }, restProps), platform === ANDROID || platform === VKCOM ? createScopedElement(AndroidIcon, null) : iOSText);
27
+ }, restProps), platform === IOS ? iOSText : createScopedElement(AndroidIcon, null));
28
28
  };
29
29
  //# sourceMappingURL=PanelHeaderEdit.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/PanelHeaderEdit/PanelHeaderEdit.tsx"],"names":["PanelHeaderButton","ANDROID","VKCOM","Icon28EditOutline","Icon28DoneOutline","usePlatform","PanelHeaderEdit","isActive","editLabel","doneLabel","restProps","iOSText","AndroidIcon","platform"],"mappings":";;;;AAAA,SACEA,iBADF;AAIA,SAASC,OAAT,EAAkBC,KAAlB;AACA,SAASC,iBAAT,EAA4BC,iBAA5B,QAAqD,kBAArD;AACA,SAASC,WAAT;;AAiBA;AACA;AACA;AACA,OAAO,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,OAKH;AAAA,2BAJ1BC,QAI0B;AAAA,MAJ1BA,QAI0B,8BAJf,KAIe;AAAA,4BAH1BC,SAG0B;AAAA,MAH1BA,SAG0B,+BAHd,eAGc;AAAA,4BAF1BC,SAE0B;AAAA,MAF1BA,SAE0B,+BAFd,QAEc;AAAA,MADvBC,SACuB;;AAC1B,MAAMC,OAAO,GAAGJ,QAAQ,GAAGE,SAAH,GAAeD,SAAvC;AACA,MAAMI,WAAW,GAAGL,QAAQ,GAAGH,iBAAH,GAAuBD,iBAAnD;AACA,MAAMU,QAAQ,GAAGR,WAAW,EAA5B;AAEA,SACE,oBAAC,iBAAD;AAAmB,kBAAYM;AAA/B,KAA4CD,SAA5C,GACGG,QAAQ,KAAKZ,OAAb,IAAwBY,QAAQ,KAAKX,KAArC,GAA6C,oBAAC,WAAD,OAA7C,GAA+DS,OADlE,CADF;AAKD,CAfM","sourcesContent":["import {\n PanelHeaderButton,\n PanelHeaderButtonProps,\n} from \"../PanelHeaderButton/PanelHeaderButton\";\nimport { ANDROID, VKCOM } from \"../../lib/platform\";\nimport { Icon28EditOutline, Icon28DoneOutline } from \"@vkontakte/icons\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\n\nexport interface PanelHeaderEditProps extends PanelHeaderButtonProps {\n /**\n * Включен ли режим редактирования\n */\n isActive?: boolean;\n /**\n * iOS only. Текст кнопки, когда режим редактирования не активен\n */\n editLabel?: string;\n /**\n * iOS only. Текст кнопки при активном режиме редактирования для выхода из него\n */\n doneLabel?: string;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderEdit\n */\nexport const PanelHeaderEdit = ({\n isActive = false,\n editLabel = \"Редактировать\",\n doneLabel = \"Готово\",\n ...restProps\n}: PanelHeaderEditProps) => {\n const iOSText = isActive ? doneLabel : editLabel;\n const AndroidIcon = isActive ? Icon28DoneOutline : Icon28EditOutline;\n const platform = usePlatform();\n\n return (\n <PanelHeaderButton aria-label={iOSText} {...restProps}>\n {platform === ANDROID || platform === VKCOM ? <AndroidIcon /> : iOSText}\n </PanelHeaderButton>\n );\n};\n"],"file":"PanelHeaderEdit.js"}
1
+ {"version":3,"sources":["../../../src/components/PanelHeaderEdit/PanelHeaderEdit.tsx"],"names":["PanelHeaderButton","IOS","Icon28EditOutline","Icon28DoneOutline","usePlatform","PanelHeaderEdit","isActive","editLabel","doneLabel","restProps","iOSText","AndroidIcon","platform"],"mappings":";;;;AAAA,SACEA,iBADF;AAIA,SAASC,GAAT;AACA,SAASC,iBAAT,EAA4BC,iBAA5B,QAAqD,kBAArD;AACA,SAASC,WAAT;;AAiBA;AACA;AACA;AACA,OAAO,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,OAKH;AAAA,2BAJ1BC,QAI0B;AAAA,MAJ1BA,QAI0B,8BAJf,KAIe;AAAA,4BAH1BC,SAG0B;AAAA,MAH1BA,SAG0B,+BAHd,eAGc;AAAA,4BAF1BC,SAE0B;AAAA,MAF1BA,SAE0B,+BAFd,QAEc;AAAA,MADvBC,SACuB;;AAC1B,MAAMC,OAAO,GAAGJ,QAAQ,GAAGE,SAAH,GAAeD,SAAvC;AACA,MAAMI,WAAW,GAAGL,QAAQ,GAAGH,iBAAH,GAAuBD,iBAAnD;AACA,MAAMU,QAAQ,GAAGR,WAAW,EAA5B;AAEA,SACE,oBAAC,iBAAD;AAAmB,kBAAYM;AAA/B,KAA4CD,SAA5C,GACGG,QAAQ,KAAKX,GAAb,GAAmBS,OAAnB,GAA6B,oBAAC,WAAD,OADhC,CADF;AAKD,CAfM","sourcesContent":["import {\n PanelHeaderButton,\n PanelHeaderButtonProps,\n} from \"../PanelHeaderButton/PanelHeaderButton\";\nimport { IOS } from \"../../lib/platform\";\nimport { Icon28EditOutline, Icon28DoneOutline } from \"@vkontakte/icons\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\n\nexport interface PanelHeaderEditProps extends PanelHeaderButtonProps {\n /**\n * Включен ли режим редактирования\n */\n isActive?: boolean;\n /**\n * iOS only. Текст кнопки, когда режим редактирования не активен\n */\n editLabel?: string;\n /**\n * iOS only. Текст кнопки при активном режиме редактирования для выхода из него\n */\n doneLabel?: string;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderEdit\n */\nexport const PanelHeaderEdit = ({\n isActive = false,\n editLabel = \"Редактировать\",\n doneLabel = \"Готово\",\n ...restProps\n}: PanelHeaderEditProps) => {\n const iOSText = isActive ? doneLabel : editLabel;\n const AndroidIcon = isActive ? Icon28DoneOutline : Icon28EditOutline;\n const platform = usePlatform();\n\n return (\n <PanelHeaderButton aria-label={iOSText} {...restProps}>\n {platform === IOS ? iOSText : <AndroidIcon />}\n </PanelHeaderButton>\n );\n};\n"],"file":"PanelHeaderEdit.js"}
@@ -4,7 +4,7 @@ var _excluded = ["children"];
4
4
  import { createScopedElement } from "../../lib/jsxRuntime";
5
5
  import { PanelHeaderButton } from "../PanelHeaderButton/PanelHeaderButton";
6
6
  import { Icon28DoneOutline } from "@vkontakte/icons";
7
- import { ANDROID, VKCOM } from "../../lib/platform";
7
+ import { IOS } from "../../lib/platform";
8
8
  import { usePlatform } from "../../hooks/usePlatform";
9
9
  import { getTitleFromChildren } from "../../lib/utils";
10
10
  /**
@@ -20,6 +20,6 @@ export var PanelHeaderSubmit = function PanelHeaderSubmit(_ref) {
20
20
  return createScopedElement(PanelHeaderButton, _extends({
21
21
  "aria-label": getTitleFromChildren(children),
22
22
  primary: true
23
- }, restProps), platform === ANDROID || platform === VKCOM ? createScopedElement(Icon28DoneOutline, null) : children);
23
+ }, restProps), platform === IOS ? children : createScopedElement(Icon28DoneOutline, null));
24
24
  };
25
25
  //# sourceMappingURL=PanelHeaderSubmit.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/PanelHeaderSubmit/PanelHeaderSubmit.tsx"],"names":["PanelHeaderButton","Icon28DoneOutline","ANDROID","VKCOM","usePlatform","getTitleFromChildren","PanelHeaderSubmit","children","restProps","platform"],"mappings":";;;;AAAA,SACEA,iBADF;AAIA,SAASC,iBAAT,QAAkC,kBAAlC;AACA,SAASC,OAAT,EAAkBC,KAAlB;AACA,SAASC,WAAT;AACA,SAASC,oBAAT;AAEA;AACA;AACA;;AACA,OAAO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,OAGH;AAAA,2BAF5BC,QAE4B;AAAA,MAF5BA,QAE4B,8BAFjB,QAEiB;AAAA,MADzBC,SACyB;;AAC5B,MAAMC,QAAQ,GAAGL,WAAW,EAA5B;AAEA,SACE,oBAAC,iBAAD;AACE,kBAAYC,oBAAoB,CAACE,QAAD,CADlC;AAEE,IAAA,OAAO;AAFT,KAGMC,SAHN,GAKGC,QAAQ,KAAKP,OAAb,IAAwBO,QAAQ,KAAKN,KAArC,GACC,oBAAC,iBAAD,OADD,GAGCI,QARJ,CADF;AAaD,CAnBM","sourcesContent":["import {\n PanelHeaderButton,\n PanelHeaderButtonProps,\n} from \"../PanelHeaderButton/PanelHeaderButton\";\nimport { Icon28DoneOutline } from \"@vkontakte/icons\";\nimport { ANDROID, VKCOM } from \"../../lib/platform\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getTitleFromChildren } from \"../../lib/utils\";\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderSubmit\n */\nexport const PanelHeaderSubmit = ({\n children = \"Готово\",\n ...restProps\n}: PanelHeaderButtonProps) => {\n const platform = usePlatform();\n\n return (\n <PanelHeaderButton\n aria-label={getTitleFromChildren(children)}\n primary\n {...restProps}\n >\n {platform === ANDROID || platform === VKCOM ? (\n <Icon28DoneOutline />\n ) : (\n children\n )}\n </PanelHeaderButton>\n );\n};\n"],"file":"PanelHeaderSubmit.js"}
1
+ {"version":3,"sources":["../../../src/components/PanelHeaderSubmit/PanelHeaderSubmit.tsx"],"names":["PanelHeaderButton","Icon28DoneOutline","IOS","usePlatform","getTitleFromChildren","PanelHeaderSubmit","children","restProps","platform"],"mappings":";;;;AAAA,SACEA,iBADF;AAIA,SAASC,iBAAT,QAAkC,kBAAlC;AACA,SAASC,GAAT;AACA,SAASC,WAAT;AACA,SAASC,oBAAT;AAEA;AACA;AACA;;AACA,OAAO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,OAGH;AAAA,2BAF5BC,QAE4B;AAAA,MAF5BA,QAE4B,8BAFjB,QAEiB;AAAA,MADzBC,SACyB;;AAC5B,MAAMC,QAAQ,GAAGL,WAAW,EAA5B;AAEA,SACE,oBAAC,iBAAD;AACE,kBAAYC,oBAAoB,CAACE,QAAD,CADlC;AAEE,IAAA,OAAO;AAFT,KAGMC,SAHN,GAKGC,QAAQ,KAAKN,GAAb,GAAmBI,QAAnB,GAA8B,oBAAC,iBAAD,OALjC,CADF;AASD,CAfM","sourcesContent":["import {\n PanelHeaderButton,\n PanelHeaderButtonProps,\n} from \"../PanelHeaderButton/PanelHeaderButton\";\nimport { Icon28DoneOutline } from \"@vkontakte/icons\";\nimport { IOS } from \"../../lib/platform\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getTitleFromChildren } from \"../../lib/utils\";\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderSubmit\n */\nexport const PanelHeaderSubmit = ({\n children = \"Готово\",\n ...restProps\n}: PanelHeaderButtonProps) => {\n const platform = usePlatform();\n\n return (\n <PanelHeaderButton\n aria-label={getTitleFromChildren(children)}\n primary\n {...restProps}\n >\n {platform === IOS ? children : <Icon28DoneOutline />}\n </PanelHeaderButton>\n );\n};\n"],"file":"PanelHeaderSubmit.js"}
@@ -16,32 +16,61 @@ import { useIsomorphicLayoutEffect } from "../../lib/useIsomorphicLayoutEffect";
16
16
  var ARROW_PADDING = 8;
17
17
  var ARROW_WIDTH = 20;
18
18
  var ARROW_HEIGHT = 8;
19
+ var preventOverflowModifier = {
20
+ name: "preventOverflow",
21
+ options: {
22
+ mainAxis: false
23
+ }
24
+ };
25
+ var flipModifier = {
26
+ name: "flip"
27
+ };
28
+ var arrowModifier = {
29
+ name: "arrow",
30
+ options: {
31
+ padding: ARROW_PADDING
32
+ }
33
+ };
34
+ var sameWidthModifier = {
35
+ name: "sameWidth",
36
+ enabled: true,
37
+ phase: "beforeWrite",
38
+ requires: ["computeStyles"],
39
+ fn: function fn(_ref) {
40
+ var state = _ref.state;
41
+ state.styles.popper.width = "".concat(state.rects.reference.width, "px");
42
+ },
43
+ effect: function effect(_ref2) {
44
+ var state = _ref2.state;
45
+ state.elements.popper.style.width = "".concat(state.elements.reference.offsetWidth, "px");
46
+ }
47
+ };
19
48
  /**
20
49
  * @see https://vkcom.github.io/VKUI/#/Popper
21
50
  */
22
51
 
23
- export var Popper = function Popper(_ref) {
52
+ export var Popper = function Popper(_ref3) {
24
53
  var _targetRef$current3;
25
54
 
26
- var targetRef = _ref.targetRef,
27
- children = _ref.children,
28
- getRef = _ref.getRef,
29
- _ref$placement = _ref.placement,
30
- placement = _ref$placement === void 0 ? "bottom-start" : _ref$placement,
31
- onPlacementChange = _ref.onPlacementChange,
32
- arrow = _ref.arrow,
33
- arrowClassName = _ref.arrowClassName,
34
- sameWidth = _ref.sameWidth,
35
- _ref$offsetDistance = _ref.offsetDistance,
36
- offsetDistance = _ref$offsetDistance === void 0 ? 8 : _ref$offsetDistance,
37
- _ref$offsetSkidding = _ref.offsetSkidding,
38
- offsetSkidding = _ref$offsetSkidding === void 0 ? 0 : _ref$offsetSkidding,
39
- _ref$forcePortal = _ref.forcePortal,
40
- forcePortal = _ref$forcePortal === void 0 ? true : _ref$forcePortal,
41
- compStyles = _ref.style,
42
- customModifiers = _ref.customModifiers,
43
- renderContent = _ref.renderContent,
44
- restProps = _objectWithoutProperties(_ref, _excluded);
55
+ var targetRef = _ref3.targetRef,
56
+ children = _ref3.children,
57
+ getRef = _ref3.getRef,
58
+ _ref3$placement = _ref3.placement,
59
+ placement = _ref3$placement === void 0 ? "bottom-start" : _ref3$placement,
60
+ onPlacementChange = _ref3.onPlacementChange,
61
+ arrow = _ref3.arrow,
62
+ arrowClassName = _ref3.arrowClassName,
63
+ sameWidth = _ref3.sameWidth,
64
+ _ref3$offsetDistance = _ref3.offsetDistance,
65
+ offsetDistance = _ref3$offsetDistance === void 0 ? 8 : _ref3$offsetDistance,
66
+ _ref3$offsetSkidding = _ref3.offsetSkidding,
67
+ offsetSkidding = _ref3$offsetSkidding === void 0 ? 0 : _ref3$offsetSkidding,
68
+ _ref3$forcePortal = _ref3.forcePortal,
69
+ forcePortal = _ref3$forcePortal === void 0 ? true : _ref3$forcePortal,
70
+ compStyles = _ref3.style,
71
+ customModifiers = _ref3.customModifiers,
72
+ renderContent = _ref3.renderContent,
73
+ restProps = _objectWithoutProperties(_ref3, _excluded);
45
74
 
46
75
  var _React$useState = React.useState(null),
47
76
  _React$useState2 = _slicedToArray(_React$useState, 2),
@@ -56,45 +85,19 @@ export var Popper = function Popper(_ref) {
56
85
  var platform = usePlatform();
57
86
  var setExternalRef = useExternRef(getRef, setPopperNode);
58
87
  var modifiers = React.useMemo(function () {
59
- var modifiers = [{
60
- name: "preventOverflow",
61
- options: {
62
- mainAxis: false
63
- }
64
- }, {
88
+ var modifiers = [preventOverflowModifier, {
65
89
  name: "offset",
66
90
  options: {
67
91
  offset: [arrow ? offsetSkidding - smallTargetOffsetSkidding : offsetSkidding, arrow ? offsetDistance + ARROW_HEIGHT : offsetDistance]
68
92
  }
69
- }, {
70
- name: "flip"
71
- }];
93
+ }, flipModifier];
72
94
 
73
95
  if (arrow) {
74
- modifiers.push({
75
- name: "arrow",
76
- options: {
77
- padding: ARROW_PADDING
78
- }
79
- });
96
+ modifiers.push(arrowModifier);
80
97
  }
81
98
 
82
99
  if (sameWidth) {
83
- var _sameWidth = {
84
- name: "sameWidth",
85
- enabled: true,
86
- phase: "beforeWrite",
87
- requires: ["computeStyles"],
88
- fn: function fn(_ref2) {
89
- var state = _ref2.state;
90
- state.styles.popper.width = "".concat(state.rects.reference.width, "px");
91
- },
92
- effect: function effect(_ref3) {
93
- var state = _ref3.state;
94
- state.elements.popper.style.width = "".concat(state.elements.reference.offsetWidth, "px");
95
- }
96
- };
97
- modifiers.push(_sameWidth);
100
+ modifiers.push(sameWidthModifier);
98
101
  }
99
102
 
100
103
  if (customModifiers) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Popper/Popper.tsx"],"names":["React","usePopper","AppRootPortal","PopperArrow","usePlatform","getClassName","useExternRef","useIsomorphicLayoutEffect","ARROW_PADDING","ARROW_WIDTH","ARROW_HEIGHT","Popper","targetRef","children","getRef","placement","onPlacementChange","arrow","arrowClassName","sameWidth","offsetDistance","offsetSkidding","forcePortal","compStyles","style","customModifiers","renderContent","restProps","useState","popperNode","setPopperNode","smallTargetOffsetSkidding","setSmallTargetOffsetSkidding","platform","setExternalRef","modifiers","useMemo","name","options","mainAxis","offset","push","padding","enabled","phase","requires","fn","state","styles","popper","width","rects","reference","effect","elements","offsetWidth","current","attributes","resolvedPlacement","isEdgePlacement","includes","placementDirection","startsWith","arrowSize","targetSize","offsetHeight","useEffect","dropdown","minWidth","scrollWidth","undefined","className"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { usePopper, Modifier } from \"react-popper\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { PopperArrow } from \"../PopperArrow/PopperArrow\";\nimport { HasRef } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport \"./Popper.css\";\n\nexport type Placement =\n | \"auto\"\n | \"auto-start\"\n | \"auto-end\"\n | \"top-start\"\n | \"top-end\"\n | \"bottom-start\"\n | \"bottom-end\"\n | \"right-start\"\n | \"right-end\"\n | \"left-start\"\n | \"left-end\"\n | \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\";\n\nexport interface PopperRenderContentProps {\n className: string;\n}\n\nexport interface PopperCommonProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства\n */\n placement?: Placement;\n /**\n * Отступ по вспомогательной оси\n */\n offsetSkidding?: number;\n /**\n * Отступ по главной оси\n */\n offsetDistance?: number;\n /**\n * Отображать ли стрелку, указывающую на якорный элемент\n */\n arrow?: boolean;\n /**\n * Стиль стрелки\n */\n arrowClassName?: string;\n /**\n * Выставлять ширину равной target элементу\n */\n sameWidth?: boolean;\n forcePortal?: boolean;\n onPlacementChange?: (data: { placement?: Placement }) => void;\n /**\n * Массив кастомных модификаторов для Popper (необходимо мемоизировать)\n */\n customModifiers?: Array<Modifier<string>>;\n /**\n * При передаче содержимого в `children`, он будет обёрнут во внутренний контейнер.\n *\n * Если хочется управлять этим контейнером, то используйте данную функцию.\n *\n * > ⚠️ Параметр `children` будет проигнорирован.\n */\n renderContent?(props: PopperRenderContentProps): React.ReactNode;\n}\n\nexport interface PopperProps extends PopperCommonProps {\n targetRef: React.RefObject<HTMLElement>;\n}\n\nconst ARROW_PADDING = 8;\nconst ARROW_WIDTH = 20;\nconst ARROW_HEIGHT = 8;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Popper\n */\nexport const Popper = ({\n targetRef,\n children,\n getRef,\n placement = \"bottom-start\",\n onPlacementChange,\n arrow,\n arrowClassName,\n sameWidth,\n offsetDistance = 8,\n offsetSkidding = 0,\n forcePortal = true,\n style: compStyles,\n customModifiers,\n renderContent,\n ...restProps\n}: PopperProps) => {\n const [popperNode, setPopperNode] = React.useState<HTMLDivElement | null>(\n null\n );\n const [smallTargetOffsetSkidding, setSmallTargetOffsetSkidding] =\n React.useState(0);\n const platform = usePlatform();\n\n const setExternalRef = useExternRef<HTMLDivElement>(getRef, setPopperNode);\n\n const modifiers = React.useMemo(() => {\n const modifiers: Array<Modifier<string>> = [\n {\n name: \"preventOverflow\",\n options: {\n mainAxis: false,\n },\n },\n {\n name: \"offset\",\n options: {\n offset: [\n arrow ? offsetSkidding - smallTargetOffsetSkidding : offsetSkidding,\n arrow ? offsetDistance + ARROW_HEIGHT : offsetDistance,\n ],\n },\n },\n {\n name: \"flip\",\n },\n ];\n\n if (arrow) {\n modifiers.push({\n name: \"arrow\",\n options: {\n padding: ARROW_PADDING,\n },\n });\n }\n\n if (sameWidth) {\n const sameWidth: Modifier<string> = {\n name: \"sameWidth\",\n enabled: true,\n phase: \"beforeWrite\",\n requires: [\"computeStyles\"],\n fn: ({ state }) => {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n },\n effect: ({ state }) => {\n state.elements.popper.style.width = `${\n (state.elements.reference as HTMLElement).offsetWidth\n }px`;\n },\n };\n\n modifiers.push(sameWidth);\n }\n\n if (customModifiers) {\n modifiers.push(...customModifiers);\n }\n return modifiers;\n }, [\n arrow,\n sameWidth,\n smallTargetOffsetSkidding,\n offsetSkidding,\n offsetDistance,\n customModifiers,\n ]);\n\n const { styles, state, attributes } = usePopper(\n targetRef.current,\n popperNode,\n {\n placement,\n modifiers,\n }\n );\n\n const resolvedPlacement = state?.placement;\n const isEdgePlacement =\n !!resolvedPlacement && resolvedPlacement.includes(\"-\"); // true, если поппер отрисован с краю\n\n // Если поппер рисуется с краю, то нужно опционально сместить его в тех случаях, когда стрелка не дотягивается до\n // таргета из-за маленьких размеров последнего\n useIsomorphicLayoutEffect(() => {\n if (arrow && isEdgePlacement) {\n const placementDirection =\n resolvedPlacement?.startsWith(\"bottom\") ||\n resolvedPlacement?.startsWith(\"top\")\n ? \"vertical\"\n : \"horizontal\";\n\n const arrowSize =\n placementDirection === \"vertical\" ? ARROW_WIDTH : ARROW_HEIGHT;\n const targetSize =\n (placementDirection === \"vertical\"\n ? targetRef.current?.offsetWidth\n : targetRef.current?.offsetHeight) ?? 0;\n\n if (targetSize < arrowSize + 2 * ARROW_PADDING) {\n setSmallTargetOffsetSkidding(ARROW_PADDING + arrowSize / 2);\n }\n } else {\n setSmallTargetOffsetSkidding(0);\n }\n }, [arrow, isEdgePlacement]);\n\n React.useEffect(() => {\n if (resolvedPlacement) {\n onPlacementChange && onPlacementChange({ placement: resolvedPlacement });\n }\n }, [onPlacementChange, resolvedPlacement]);\n\n const dropdown = (\n <div\n {...restProps}\n {...attributes.popper}\n vkuiClass={getClassName(\"Popper\", platform)}\n ref={setExternalRef}\n style={{\n ...compStyles,\n ...styles.popper,\n minWidth: sameWidth ? targetRef.current?.scrollWidth : undefined,\n }}\n >\n {arrow && (\n <PopperArrow\n attributes={attributes.arrow}\n style={styles.arrow}\n arrowClassName={arrowClassName}\n />\n )}\n {renderContent ? (\n renderContent({ className: \"Popper__content\" })\n ) : (\n <div vkuiClass=\"Popper__content\">{children}</div>\n )}\n </div>\n );\n\n return (\n <AppRootPortal forcePortal={forcePortal} vkuiClass=\"PopperPortal\">\n {dropdown}\n </AppRootPortal>\n );\n};\n"],"file":"Popper.js"}
1
+ {"version":3,"sources":["../../../src/components/Popper/Popper.tsx"],"names":["React","usePopper","AppRootPortal","PopperArrow","usePlatform","getClassName","useExternRef","useIsomorphicLayoutEffect","ARROW_PADDING","ARROW_WIDTH","ARROW_HEIGHT","preventOverflowModifier","name","options","mainAxis","flipModifier","arrowModifier","padding","sameWidthModifier","enabled","phase","requires","fn","state","styles","popper","width","rects","reference","effect","elements","style","offsetWidth","Popper","targetRef","children","getRef","placement","onPlacementChange","arrow","arrowClassName","sameWidth","offsetDistance","offsetSkidding","forcePortal","compStyles","customModifiers","renderContent","restProps","useState","popperNode","setPopperNode","smallTargetOffsetSkidding","setSmallTargetOffsetSkidding","platform","setExternalRef","modifiers","useMemo","offset","push","current","attributes","resolvedPlacement","isEdgePlacement","includes","placementDirection","startsWith","arrowSize","targetSize","offsetHeight","useEffect","dropdown","minWidth","scrollWidth","undefined","className"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { usePopper, Modifier } from \"react-popper\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { PopperArrow } from \"../PopperArrow/PopperArrow\";\nimport { HasRef } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport \"./Popper.css\";\n\nexport type Placement =\n | \"auto\"\n | \"auto-start\"\n | \"auto-end\"\n | \"top-start\"\n | \"top-end\"\n | \"bottom-start\"\n | \"bottom-end\"\n | \"right-start\"\n | \"right-end\"\n | \"left-start\"\n | \"left-end\"\n | \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\";\n\nexport interface PopperRenderContentProps {\n className: string;\n}\n\nexport interface PopperCommonProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства\n */\n placement?: Placement;\n /**\n * Отступ по вспомогательной оси\n */\n offsetSkidding?: number;\n /**\n * Отступ по главной оси\n */\n offsetDistance?: number;\n /**\n * Отображать ли стрелку, указывающую на якорный элемент\n */\n arrow?: boolean;\n /**\n * Стиль стрелки\n */\n arrowClassName?: string;\n /**\n * Выставлять ширину равной target элементу\n */\n sameWidth?: boolean;\n forcePortal?: boolean;\n onPlacementChange?: (data: { placement?: Placement }) => void;\n /**\n * Массив кастомных модификаторов для Popper (необходимо мемоизировать)\n */\n customModifiers?: Array<Modifier<string>>;\n /**\n * При передаче содержимого в `children`, он будет обёрнут во внутренний контейнер.\n *\n * Если хочется управлять этим контейнером, то используйте данную функцию.\n *\n * > ⚠️ Параметр `children` будет проигнорирован.\n */\n renderContent?(props: PopperRenderContentProps): React.ReactNode;\n}\n\nexport interface PopperProps extends PopperCommonProps {\n targetRef: React.RefObject<HTMLElement>;\n}\n\nconst ARROW_PADDING = 8;\nconst ARROW_WIDTH = 20;\nconst ARROW_HEIGHT = 8;\n\nconst preventOverflowModifier: Modifier<string> = {\n name: \"preventOverflow\",\n options: {\n mainAxis: false,\n },\n};\n\nconst flipModifier: Modifier<string> = {\n name: \"flip\",\n};\n\nconst arrowModifier: Modifier<string> = {\n name: \"arrow\",\n options: {\n padding: ARROW_PADDING,\n },\n};\n\nconst sameWidthModifier: Modifier<string> = {\n name: \"sameWidth\",\n enabled: true,\n phase: \"beforeWrite\",\n requires: [\"computeStyles\"],\n fn: ({ state }) => {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n },\n effect: ({ state }) => {\n state.elements.popper.style.width = `${\n (state.elements.reference as HTMLElement).offsetWidth\n }px`;\n },\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Popper\n */\nexport const Popper = ({\n targetRef,\n children,\n getRef,\n placement = \"bottom-start\",\n onPlacementChange,\n arrow,\n arrowClassName,\n sameWidth,\n offsetDistance = 8,\n offsetSkidding = 0,\n forcePortal = true,\n style: compStyles,\n customModifiers,\n renderContent,\n ...restProps\n}: PopperProps) => {\n const [popperNode, setPopperNode] = React.useState<HTMLDivElement | null>(\n null\n );\n const [smallTargetOffsetSkidding, setSmallTargetOffsetSkidding] =\n React.useState(0);\n const platform = usePlatform();\n\n const setExternalRef = useExternRef<HTMLDivElement>(getRef, setPopperNode);\n\n const modifiers = React.useMemo(() => {\n const modifiers: Array<Modifier<string>> = [\n preventOverflowModifier,\n {\n name: \"offset\",\n options: {\n offset: [\n arrow ? offsetSkidding - smallTargetOffsetSkidding : offsetSkidding,\n arrow ? offsetDistance + ARROW_HEIGHT : offsetDistance,\n ],\n },\n },\n flipModifier,\n ];\n\n if (arrow) {\n modifiers.push(arrowModifier);\n }\n\n if (sameWidth) {\n modifiers.push(sameWidthModifier);\n }\n\n if (customModifiers) {\n modifiers.push(...customModifiers);\n }\n return modifiers;\n }, [\n arrow,\n sameWidth,\n smallTargetOffsetSkidding,\n offsetSkidding,\n offsetDistance,\n customModifiers,\n ]);\n\n const { styles, state, attributes } = usePopper(\n targetRef.current,\n popperNode,\n {\n placement,\n modifiers,\n }\n );\n\n const resolvedPlacement = state?.placement;\n const isEdgePlacement =\n !!resolvedPlacement && resolvedPlacement.includes(\"-\"); // true, если поппер отрисован с краю\n\n // Если поппер рисуется с краю, то нужно опционально сместить его в тех случаях, когда стрелка не дотягивается до\n // таргета из-за маленьких размеров последнего\n useIsomorphicLayoutEffect(() => {\n if (arrow && isEdgePlacement) {\n const placementDirection =\n resolvedPlacement?.startsWith(\"bottom\") ||\n resolvedPlacement?.startsWith(\"top\")\n ? \"vertical\"\n : \"horizontal\";\n\n const arrowSize =\n placementDirection === \"vertical\" ? ARROW_WIDTH : ARROW_HEIGHT;\n const targetSize =\n (placementDirection === \"vertical\"\n ? targetRef.current?.offsetWidth\n : targetRef.current?.offsetHeight) ?? 0;\n\n if (targetSize < arrowSize + 2 * ARROW_PADDING) {\n setSmallTargetOffsetSkidding(ARROW_PADDING + arrowSize / 2);\n }\n } else {\n setSmallTargetOffsetSkidding(0);\n }\n }, [arrow, isEdgePlacement]);\n\n React.useEffect(() => {\n if (resolvedPlacement) {\n onPlacementChange && onPlacementChange({ placement: resolvedPlacement });\n }\n }, [onPlacementChange, resolvedPlacement]);\n\n const dropdown = (\n <div\n {...restProps}\n {...attributes.popper}\n vkuiClass={getClassName(\"Popper\", platform)}\n ref={setExternalRef}\n style={{\n ...compStyles,\n ...styles.popper,\n minWidth: sameWidth ? targetRef.current?.scrollWidth : undefined,\n }}\n >\n {arrow && (\n <PopperArrow\n attributes={attributes.arrow}\n style={styles.arrow}\n arrowClassName={arrowClassName}\n />\n )}\n {renderContent ? (\n renderContent({ className: \"Popper__content\" })\n ) : (\n <div vkuiClass=\"Popper__content\">{children}</div>\n )}\n </div>\n );\n\n return (\n <AppRootPortal forcePortal={forcePortal} vkuiClass=\"PopperPortal\">\n {dropdown}\n </AppRootPortal>\n );\n};\n"],"file":"Popper.js"}