@vkontakte/vkui 4.35.3 → 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 (619) hide show
  1. package/.cache/.eslintcache +1 -1
  2. package/.cache/.stylelintcache +1 -1
  3. package/.cache/.tsbuildinfo +21605 -18307
  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/ButtonGroup/ButtonGroup.js.map +1 -1
  50. package/dist/cjs/components/CalendarDay/CalendarDay.js +4 -21
  51. package/dist/cjs/components/CalendarDay/CalendarDay.js.map +1 -1
  52. package/dist/cjs/components/CardScroll/CardScroll.js +2 -5
  53. package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
  54. package/dist/cjs/components/Chip/Chip.js.map +1 -1
  55. package/dist/cjs/components/ChipsInput/ChipsInput.js +15 -198
  56. package/dist/cjs/components/ChipsInput/ChipsInput.js.map +1 -1
  57. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js +215 -0
  58. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js.map +1 -0
  59. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +44 -27
  60. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  61. package/dist/cjs/components/CustomSelect/CustomSelect.js +32 -31
  62. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  63. package/dist/cjs/components/DateInput/DateInput.js +4 -2
  64. package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
  65. package/dist/cjs/components/DateRangeInput/DateRangeInput.js +4 -2
  66. package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
  67. package/dist/cjs/components/DropdownIcon/DropdownIcon.js +16 -7
  68. package/dist/cjs/components/DropdownIcon/DropdownIcon.js.map +1 -1
  69. package/dist/cjs/components/FormField/FormField.js +4 -2
  70. package/dist/cjs/components/FormField/FormField.js.map +1 -1
  71. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +12 -3
  72. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  73. package/dist/cjs/components/FormStatus/FormStatus.js +4 -6
  74. package/dist/cjs/components/FormStatus/FormStatus.js.map +1 -1
  75. package/dist/cjs/components/Header/Header.js +3 -11
  76. package/dist/cjs/components/Header/Header.js.map +1 -1
  77. package/dist/cjs/components/IconButton/IconButton.js +4 -3
  78. package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
  79. package/dist/cjs/components/Input/Input.js +4 -2
  80. package/dist/cjs/components/Input/Input.js.map +1 -1
  81. package/dist/cjs/components/List/List.js.map +1 -1
  82. package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js +1 -6
  83. package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  84. package/dist/cjs/components/ModalPage/ModalPage.js +11 -10
  85. package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
  86. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js +3 -4
  87. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  88. package/dist/cjs/components/ModalRoot/ModalRoot.js +4 -18
  89. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  90. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +3 -11
  91. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  92. package/dist/cjs/components/NativeSelect/NativeSelect.js +4 -2
  93. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  94. package/dist/cjs/components/Panel/Panel.js +4 -10
  95. package/dist/cjs/components/Panel/Panel.js.map +1 -1
  96. package/dist/cjs/components/PanelHeader/PanelHeader.js +2 -11
  97. package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
  98. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js +2 -7
  99. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  100. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js +2 -7
  101. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  102. package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.js +1 -1
  103. package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  104. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js +4 -2
  105. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  106. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js +4 -8
  107. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  108. package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.js +1 -1
  109. package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  110. package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.js +1 -1
  111. package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  112. package/dist/cjs/components/PromoBanner/PromoBanner.js +1 -6
  113. package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
  114. package/dist/cjs/components/Search/Search.js +7 -9
  115. package/dist/cjs/components/Search/Search.js.map +1 -1
  116. package/dist/cjs/components/SelectMimicry/SelectMimicry.js +4 -2
  117. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  118. package/dist/cjs/components/SliderSwitch/SliderSwitch.js +2 -5
  119. package/dist/cjs/components/SliderSwitch/SliderSwitch.js.map +1 -1
  120. package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js +2 -7
  121. package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  122. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js +1 -6
  123. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  124. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js +2 -5
  125. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  126. package/dist/cjs/components/Tappable/Tappable.js +8 -16
  127. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  128. package/dist/cjs/components/Textarea/Textarea.js +4 -2
  129. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  130. package/dist/cjs/components/UsersStack/UsersStack.js +71 -34
  131. package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
  132. package/dist/cjs/components/View/ViewInfinite.js +1 -10
  133. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  134. package/dist/cjs/{components/ChipsInput → hooks}/useChipsInput.js +0 -0
  135. package/dist/cjs/hooks/useChipsInput.js.map +1 -0
  136. package/dist/cjs/{components/ChipsSelect → hooks}/useChipsSelect.js +1 -1
  137. package/dist/cjs/hooks/useChipsSelect.js.map +1 -0
  138. package/dist/cjs/index.js +8 -0
  139. package/dist/cjs/index.js.map +1 -1
  140. package/dist/cjs/lib/animate.js +2 -2
  141. package/dist/cjs/lib/animate.js.map +1 -1
  142. package/dist/cjs/lib/testing.js +2 -2
  143. package/dist/cjs/lib/testing.js.map +1 -1
  144. package/dist/cjs/lib/touch.js +2 -2
  145. package/dist/cjs/lib/touch.js.map +1 -1
  146. package/dist/cjs/tokenized/index.js +232 -0
  147. package/dist/cjs/tokenized/index.js.map +1 -1
  148. package/dist/components/ActionSheet/ActionSheet.js +4 -4
  149. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  150. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.d.ts +3 -0
  151. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +10 -0
  152. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -0
  153. package/dist/components/ActionSheet/ActionSheetDropdown.js +7 -7
  154. package/dist/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  155. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js +3 -4
  156. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  157. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +5 -1
  158. package/dist/components/ActionSheetItem/ActionSheetItem.js +16 -36
  159. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  160. package/dist/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
  161. package/dist/components/AdaptivityProvider/AdaptivityProvider.js +2 -4
  162. package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  163. package/dist/components/Alert/Alert.js +12 -12
  164. package/dist/components/Alert/Alert.js.map +1 -1
  165. package/dist/components/AppRoot/AppRoot.js +2 -5
  166. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  167. package/dist/components/Avatar/Avatar.js +4 -17
  168. package/dist/components/Avatar/Avatar.js.map +1 -1
  169. package/dist/components/ButtonGroup/ButtonGroup.d.ts +6 -2
  170. package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -1
  171. package/dist/components/CalendarDay/CalendarDay.js +4 -21
  172. package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
  173. package/dist/components/CardScroll/CardScroll.js +1 -3
  174. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  175. package/dist/components/Chip/Chip.d.ts +12 -5
  176. package/dist/components/Chip/Chip.js.map +1 -1
  177. package/dist/components/ChipsInput/ChipsInput.d.ts +5 -26
  178. package/dist/components/ChipsInput/ChipsInput.js +14 -183
  179. package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
  180. package/dist/components/ChipsInputBase/ChipsInputBase.d.ts +17 -0
  181. package/dist/components/ChipsInputBase/ChipsInputBase.js +188 -0
  182. package/dist/components/ChipsInputBase/ChipsInputBase.js.map +1 -0
  183. package/dist/components/ChipsSelect/ChipsSelect.d.ts +4 -4
  184. package/dist/components/ChipsSelect/ChipsSelect.js +42 -26
  185. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  186. package/dist/components/CustomSelect/CustomSelect.d.ts +1 -1
  187. package/dist/components/CustomSelect/CustomSelect.js +32 -31
  188. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  189. package/dist/components/DateInput/DateInput.d.ts +4 -2
  190. package/dist/components/DateInput/DateInput.js +4 -2
  191. package/dist/components/DateInput/DateInput.js.map +1 -1
  192. package/dist/components/DateRangeInput/DateRangeInput.d.ts +4 -2
  193. package/dist/components/DateRangeInput/DateRangeInput.js +4 -2
  194. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  195. package/dist/components/DropdownIcon/DropdownIcon.d.ts +4 -2
  196. package/dist/components/DropdownIcon/DropdownIcon.js +15 -7
  197. package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -1
  198. package/dist/components/FormField/FormField.d.ts +2 -1
  199. package/dist/components/FormField/FormField.js +4 -2
  200. package/dist/components/FormField/FormField.js.map +1 -1
  201. package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts +5 -1
  202. package/dist/components/FormLayoutGroup/FormLayoutGroup.js +9 -3
  203. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  204. package/dist/components/FormStatus/FormStatus.d.ts +1 -0
  205. package/dist/components/FormStatus/FormStatus.js +4 -4
  206. package/dist/components/FormStatus/FormStatus.js.map +1 -1
  207. package/dist/components/Header/Header.js +3 -10
  208. package/dist/components/Header/Header.js.map +1 -1
  209. package/dist/components/IconButton/IconButton.js +4 -3
  210. package/dist/components/IconButton/IconButton.js.map +1 -1
  211. package/dist/components/Input/Input.d.ts +1 -1
  212. package/dist/components/Input/Input.js +4 -2
  213. package/dist/components/Input/Input.js.map +1 -1
  214. package/dist/components/List/List.d.ts +2 -1
  215. package/dist/components/List/List.js.map +1 -1
  216. package/dist/components/ModalDismissButton/ModalDismissButton.js +1 -4
  217. package/dist/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  218. package/dist/components/ModalPage/ModalPage.d.ts +13 -1
  219. package/dist/components/ModalPage/ModalPage.js +12 -10
  220. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  221. package/dist/components/ModalPageHeader/ModalPageHeader.js +3 -3
  222. package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  223. package/dist/components/ModalRoot/ModalRoot.js +4 -18
  224. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  225. package/dist/components/ModalRoot/ModalRootDesktop.js +3 -11
  226. package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  227. package/dist/components/NativeSelect/NativeSelect.d.ts +3 -2
  228. package/dist/components/NativeSelect/NativeSelect.js +4 -2
  229. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  230. package/dist/components/Panel/Panel.js +4 -8
  231. package/dist/components/Panel/Panel.js.map +1 -1
  232. package/dist/components/PanelHeader/PanelHeader.js +2 -11
  233. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  234. package/dist/components/PanelHeaderBack/PanelHeaderBack.js +2 -6
  235. package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  236. package/dist/components/PanelHeaderButton/PanelHeaderButton.js +2 -7
  237. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  238. package/dist/components/PanelHeaderClose/PanelHeaderClose.js +2 -2
  239. package/dist/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  240. package/dist/components/PanelHeaderContent/PanelHeaderContent.js +4 -3
  241. package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  242. package/dist/components/PanelHeaderContext/PanelHeaderContext.js +3 -7
  243. package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  244. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js +2 -2
  245. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  246. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js +2 -2
  247. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  248. package/dist/components/PromoBanner/PromoBanner.js +1 -4
  249. package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
  250. package/dist/components/Search/Search.js +6 -8
  251. package/dist/components/Search/Search.js.map +1 -1
  252. package/dist/components/Select/Select.d.ts +1 -1
  253. package/dist/components/SelectMimicry/SelectMimicry.d.ts +2 -2
  254. package/dist/components/SelectMimicry/SelectMimicry.js +4 -2
  255. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  256. package/dist/components/SimpleCell/SimpleCell.d.ts +1 -1
  257. package/dist/components/SliderSwitch/SliderSwitch.js +1 -4
  258. package/dist/components/SliderSwitch/SliderSwitch.js.map +1 -1
  259. package/dist/components/SliderSwitch/SliderSwitchButton.js +1 -5
  260. package/dist/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  261. package/dist/components/SubnavigationBar/SubnavigationBar.js +1 -4
  262. package/dist/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  263. package/dist/components/SubnavigationButton/SubnavigationButton.js +2 -5
  264. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  265. package/dist/components/Tappable/Tappable.js +3 -10
  266. package/dist/components/Tappable/Tappable.js.map +1 -1
  267. package/dist/components/Textarea/Textarea.d.ts +3 -2
  268. package/dist/components/Textarea/Textarea.js +4 -2
  269. package/dist/components/Textarea/Textarea.js.map +1 -1
  270. package/dist/components/UsersStack/UsersStack.js +69 -28
  271. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  272. package/dist/components/View/ViewInfinite.js +1 -10
  273. package/dist/components/View/ViewInfinite.js.map +1 -1
  274. package/dist/components.css +93 -15
  275. package/dist/components.css.map +1 -1
  276. package/dist/cssm/components/ActionSheet/ActionSheet.css +3 -1
  277. package/dist/cssm/components/ActionSheet/ActionSheet.js +4 -4
  278. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  279. package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.d.ts +3 -0
  280. package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +10 -0
  281. package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -0
  282. package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js +7 -7
  283. package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  284. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js +3 -4
  285. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  286. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.css +7 -1
  287. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.d.ts +5 -1
  288. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +16 -36
  289. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  290. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
  291. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +2 -4
  292. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  293. package/dist/cssm/components/Alert/Alert.css +7 -1
  294. package/dist/cssm/components/Alert/Alert.js +12 -12
  295. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  296. package/dist/cssm/components/AppRoot/AppRoot.css +1 -1
  297. package/dist/cssm/components/AppRoot/AppRoot.js +2 -5
  298. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  299. package/dist/cssm/components/Avatar/Avatar.js +4 -17
  300. package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
  301. package/dist/cssm/components/ButtonGroup/ButtonGroup.d.ts +6 -2
  302. package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
  303. package/dist/cssm/components/CalendarDay/CalendarDay.js +4 -21
  304. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  305. package/dist/cssm/components/CardScroll/CardScroll.js +1 -3
  306. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  307. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.css +1 -1
  308. package/dist/cssm/components/Cell/CellDragger/CellDragger.css +1 -1
  309. package/dist/cssm/components/Chip/Chip.css +1 -1
  310. package/dist/cssm/components/Chip/Chip.d.ts +12 -5
  311. package/dist/cssm/components/Chip/Chip.js.map +1 -1
  312. package/dist/cssm/components/ChipsInput/ChipsInput.css +1 -1
  313. package/dist/cssm/components/ChipsInput/ChipsInput.d.ts +5 -26
  314. package/dist/cssm/components/ChipsInput/ChipsInput.js +14 -183
  315. package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
  316. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.css +1 -0
  317. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.d.ts +17 -0
  318. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js +189 -0
  319. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js.map +1 -0
  320. package/dist/cssm/components/ChipsSelect/ChipsSelect.css +1 -1
  321. package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +4 -4
  322. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +42 -26
  323. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  324. package/dist/cssm/components/CustomSelect/CustomSelect.css +1 -1
  325. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +1 -1
  326. package/dist/cssm/components/CustomSelect/CustomSelect.js +32 -31
  327. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  328. package/dist/cssm/components/DateInput/DateInput.css +1 -1
  329. package/dist/cssm/components/DateInput/DateInput.d.ts +4 -2
  330. package/dist/cssm/components/DateInput/DateInput.js +4 -2
  331. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  332. package/dist/cssm/components/DateRangeInput/DateRangeInput.css +1 -1
  333. package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts +4 -2
  334. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +4 -2
  335. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  336. package/dist/cssm/components/DropdownIcon/DropdownIcon.d.ts +4 -2
  337. package/dist/cssm/components/DropdownIcon/DropdownIcon.js +15 -8
  338. package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -1
  339. package/dist/cssm/components/FormField/FormField.css +4 -4
  340. package/dist/cssm/components/FormField/FormField.d.ts +2 -1
  341. package/dist/cssm/components/FormField/FormField.js +4 -2
  342. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  343. package/dist/cssm/components/FormItem/FormItem.css +1 -1
  344. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.css +1 -1
  345. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.d.ts +5 -1
  346. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +9 -3
  347. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  348. package/dist/cssm/components/FormStatus/FormStatus.css +3 -1
  349. package/dist/cssm/components/FormStatus/FormStatus.d.ts +1 -0
  350. package/dist/cssm/components/FormStatus/FormStatus.js +4 -4
  351. package/dist/cssm/components/FormStatus/FormStatus.js.map +1 -1
  352. package/dist/cssm/components/Header/Header.css +1 -1
  353. package/dist/cssm/components/Header/Header.js +3 -10
  354. package/dist/cssm/components/Header/Header.js.map +1 -1
  355. package/dist/cssm/components/IconButton/IconButton.js +4 -3
  356. package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
  357. package/dist/cssm/components/Input/Input.css +1 -1
  358. package/dist/cssm/components/Input/Input.d.ts +1 -1
  359. package/dist/cssm/components/Input/Input.js +4 -2
  360. package/dist/cssm/components/Input/Input.js.map +1 -1
  361. package/dist/cssm/components/List/List.d.ts +2 -1
  362. package/dist/cssm/components/List/List.js +1 -1
  363. package/dist/cssm/components/List/List.js.map +1 -1
  364. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.css +1 -1
  365. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js +1 -4
  366. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  367. package/dist/cssm/components/ModalPage/ModalPage.css +5 -1
  368. package/dist/cssm/components/ModalPage/ModalPage.d.ts +13 -1
  369. package/dist/cssm/components/ModalPage/ModalPage.js +12 -10
  370. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  371. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.css +1 -1
  372. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +3 -3
  373. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  374. package/dist/cssm/components/ModalRoot/ModalRoot.js +4 -18
  375. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  376. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +3 -11
  377. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  378. package/dist/cssm/components/NativeSelect/NativeSelect.d.ts +3 -2
  379. package/dist/cssm/components/NativeSelect/NativeSelect.js +4 -2
  380. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  381. package/dist/cssm/components/Panel/Panel.css +19 -1
  382. package/dist/cssm/components/Panel/Panel.js +4 -8
  383. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  384. package/dist/cssm/components/PanelHeader/PanelHeader.css +9 -1
  385. package/dist/cssm/components/PanelHeader/PanelHeader.js +2 -11
  386. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  387. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js +2 -6
  388. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  389. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.css +1 -1
  390. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +2 -7
  391. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  392. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js +2 -2
  393. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  394. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.css +5 -1
  395. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js +4 -3
  396. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  397. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.css +1 -1
  398. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js +3 -7
  399. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  400. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js +2 -2
  401. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  402. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js +2 -2
  403. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  404. package/dist/cssm/components/PromoBanner/PromoBanner.css +3 -1
  405. package/dist/cssm/components/PromoBanner/PromoBanner.js +1 -4
  406. package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
  407. package/dist/cssm/components/Search/Search.css +27 -1
  408. package/dist/cssm/components/Search/Search.js +6 -8
  409. package/dist/cssm/components/Search/Search.js.map +1 -1
  410. package/dist/cssm/components/Select/Select.css +1 -1
  411. package/dist/cssm/components/Select/Select.d.ts +1 -1
  412. package/dist/cssm/components/SelectMimicry/SelectMimicry.d.ts +2 -2
  413. package/dist/cssm/components/SelectMimicry/SelectMimicry.js +4 -2
  414. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  415. package/dist/cssm/components/SimpleCell/SimpleCell.d.ts +1 -1
  416. package/dist/cssm/components/SliderSwitch/SliderSwitch.js +1 -4
  417. package/dist/cssm/components/SliderSwitch/SliderSwitch.js.map +1 -1
  418. package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js +1 -5
  419. package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  420. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.css +1 -1
  421. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js +1 -4
  422. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  423. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.css +1 -1
  424. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +2 -5
  425. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  426. package/dist/cssm/components/TabsItem/TabsItem.css +1 -1
  427. package/dist/cssm/components/Tappable/Tappable.js +3 -10
  428. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  429. package/dist/cssm/components/Textarea/Textarea.css +1 -1
  430. package/dist/cssm/components/Textarea/Textarea.d.ts +3 -2
  431. package/dist/cssm/components/Textarea/Textarea.js +4 -2
  432. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  433. package/dist/cssm/components/UsersStack/UsersStack.css +1 -1
  434. package/dist/cssm/components/UsersStack/UsersStack.js +69 -28
  435. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  436. package/dist/cssm/components/View/ViewInfinite.js +1 -10
  437. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  438. package/dist/cssm/{components/ChipsInput → hooks}/useChipsInput.d.ts +4 -3
  439. package/dist/{components/ChipsInput → cssm/hooks}/useChipsInput.js +0 -0
  440. package/dist/cssm/hooks/useChipsInput.js.map +1 -0
  441. package/{.cache/ts/src/components/ChipsSelect → dist/cssm/hooks}/useChipsSelect.d.ts +4 -4
  442. package/dist/{components/ChipsSelect → cssm/hooks}/useChipsSelect.js +1 -1
  443. package/dist/cssm/hooks/useChipsSelect.js.map +1 -0
  444. package/dist/cssm/index.d.ts +3 -0
  445. package/dist/cssm/index.js +1 -0
  446. package/dist/cssm/index.js.map +1 -1
  447. package/dist/cssm/lib/animate.js +1 -1
  448. package/dist/cssm/lib/animate.js.map +1 -1
  449. package/dist/cssm/lib/testing.js +1 -1
  450. package/dist/cssm/lib/testing.js.map +1 -1
  451. package/dist/cssm/lib/touch.js +1 -1
  452. package/dist/cssm/lib/touch.js.map +1 -1
  453. package/dist/cssm/styles/components.css +93 -15
  454. package/dist/cssm/styles/themes.css +1 -1
  455. package/dist/cssm/styles/unstable.css +1 -1
  456. package/dist/cssm/tokenized/index.d.ts +56 -0
  457. package/dist/cssm/tokenized/index.js +29 -0
  458. package/dist/cssm/tokenized/index.js.map +1 -1
  459. package/dist/{components/ChipsInput → hooks}/useChipsInput.d.ts +4 -3
  460. package/dist/{cssm/components/ChipsInput → hooks}/useChipsInput.js +0 -0
  461. package/dist/hooks/useChipsInput.js.map +1 -0
  462. package/dist/{components/ChipsSelect → hooks}/useChipsSelect.d.ts +4 -4
  463. package/dist/{cssm/components/ChipsSelect → hooks}/useChipsSelect.js +1 -1
  464. package/dist/hooks/useChipsSelect.js.map +1 -0
  465. package/dist/index.d.ts +3 -0
  466. package/dist/index.js +1 -0
  467. package/dist/index.js.map +1 -1
  468. package/dist/lib/animate.js +1 -1
  469. package/dist/lib/animate.js.map +1 -1
  470. package/dist/lib/testing.js +1 -1
  471. package/dist/lib/testing.js.map +1 -1
  472. package/dist/lib/touch.js +1 -1
  473. package/dist/lib/touch.js.map +1 -1
  474. package/dist/tokenized/index.d.ts +56 -0
  475. package/dist/tokenized/index.js +29 -0
  476. package/dist/tokenized/index.js.map +1 -1
  477. package/dist/unstable.css +1 -1
  478. package/dist/unstable.css.map +1 -1
  479. package/dist/vkui.css +94 -16
  480. package/dist/vkui.css.map +1 -1
  481. package/package.json +9 -9
  482. package/src/components/ActionSheet/ActionSheet.css +31 -59
  483. package/src/components/ActionSheet/ActionSheet.tsx +4 -7
  484. package/src/components/ActionSheet/ActionSheetDefaultIosCloseItem.tsx +12 -0
  485. package/src/components/ActionSheet/ActionSheetDropdown.tsx +9 -6
  486. package/src/components/ActionSheet/ActionSheetDropdownDesktop.tsx +4 -4
  487. package/src/components/ActionSheet/Readme.md +6 -30
  488. package/src/components/ActionSheetItem/ActionSheetItem.css +67 -120
  489. package/src/components/ActionSheetItem/ActionSheetItem.tsx +42 -71
  490. package/src/components/AdaptivityProvider/AdaptivityProvider.tsx +5 -5
  491. package/src/components/Alert/Alert.css +79 -79
  492. package/src/components/Alert/Alert.tsx +14 -14
  493. package/src/components/Alert/Readme.md +83 -104
  494. package/src/components/AppRoot/AppRoot.css +2 -1
  495. package/src/components/AppRoot/AppRoot.tsx +1 -4
  496. package/src/components/Avatar/Avatar.tsx +15 -17
  497. package/src/components/Avatar/Readme.md +3 -3
  498. package/src/components/ButtonGroup/ButtonGroup.tsx +6 -3
  499. package/src/components/ButtonGroup/Readme.md +13 -11
  500. package/src/components/Calendar/Readme.md +3 -0
  501. package/src/components/CalendarDay/CalendarDay.tsx +21 -20
  502. package/src/components/CalendarRange/Readme.md +3 -0
  503. package/src/components/CardScroll/CardScroll.tsx +1 -2
  504. package/src/components/Cell/CellCheckbox/CellCheckbox.css +2 -2
  505. package/src/components/Cell/CellDragger/CellDragger.css +1 -1
  506. package/src/components/Chip/Chip.css +1 -0
  507. package/src/components/Chip/Chip.tsx +14 -2
  508. package/src/components/ChipsInput/ChipsInput.css +0 -71
  509. package/src/components/ChipsInput/ChipsInput.tsx +20 -220
  510. package/src/components/ChipsInputBase/ChipsInputBase.css +73 -0
  511. package/src/components/ChipsInputBase/ChipsInputBase.tsx +206 -0
  512. package/src/components/ChipsSelect/ChipsSelect.css +8 -0
  513. package/src/components/ChipsSelect/ChipsSelect.tsx +47 -39
  514. package/src/components/CustomSelect/CustomSelect.css +1 -0
  515. package/src/components/CustomSelect/CustomSelect.tsx +2 -3
  516. package/src/components/CustomSelect/Readme.md +8 -2
  517. package/src/components/DateInput/DateInput.css +1 -1
  518. package/src/components/DateInput/DateInput.tsx +6 -3
  519. package/src/components/DateInput/Readme.md +13 -0
  520. package/src/components/DateRangeInput/DateRangeInput.css +1 -1
  521. package/src/components/DateRangeInput/DateRangeInput.tsx +6 -3
  522. package/src/components/DateRangeInput/Readme.md +13 -0
  523. package/src/components/DropdownIcon/DropdownIcon.tsx +22 -8
  524. package/src/components/Epic/Readme.md +10 -5
  525. package/src/components/FormField/FormField.css +58 -6
  526. package/src/components/FormField/FormField.tsx +3 -0
  527. package/src/components/FormItem/FormItem.css +5 -3
  528. package/src/components/FormLayoutGroup/FormLayoutGroup.css +35 -0
  529. package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +13 -2
  530. package/src/components/FormLayoutGroup/Readme.md +58 -48
  531. package/src/components/FormStatus/FormStatus.css +8 -5
  532. package/src/components/FormStatus/FormStatus.tsx +4 -8
  533. package/src/components/Gallery/Readme.md +64 -18
  534. package/src/components/Header/Header.css +8 -12
  535. package/src/components/Header/Header.tsx +9 -8
  536. package/src/components/HorizontalCell/Readme.md +1 -1
  537. package/src/components/IconButton/IconButton.tsx +2 -2
  538. package/src/components/Input/Input.css +1 -1
  539. package/src/components/Input/Input.tsx +2 -0
  540. package/src/components/List/List.tsx +3 -4
  541. package/src/components/ModalDismissButton/ModalDismissButton.css +6 -6
  542. package/src/components/ModalDismissButton/ModalDismissButton.tsx +1 -5
  543. package/src/components/ModalDismissButton/Readme.md +1 -1
  544. package/src/components/ModalPage/ModalPage.css +69 -63
  545. package/src/components/ModalPage/ModalPage.tsx +24 -11
  546. package/src/components/ModalPageHeader/ModalPageHeader.css +9 -12
  547. package/src/components/ModalPageHeader/ModalPageHeader.tsx +3 -2
  548. package/src/components/ModalRoot/ModalRoot.tsx +24 -24
  549. package/src/components/ModalRoot/ModalRootDesktop.tsx +12 -14
  550. package/src/components/ModalRoot/Readme.md +8 -3
  551. package/src/components/NativeSelect/NativeSelect.tsx +5 -2
  552. package/src/components/Panel/Panel.css +52 -24
  553. package/src/components/Panel/Panel.tsx +7 -9
  554. package/src/components/PanelHeader/PanelHeader.css +20 -8
  555. package/src/components/PanelHeader/PanelHeader.tsx +11 -12
  556. package/src/components/PanelHeaderBack/PanelHeaderBack.tsx +6 -5
  557. package/src/components/PanelHeaderButton/PanelHeaderButton.css +8 -15
  558. package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +6 -6
  559. package/src/components/PanelHeaderClose/PanelHeaderClose.tsx +2 -6
  560. package/src/components/PanelHeaderContent/PanelHeaderContent.css +14 -26
  561. package/src/components/PanelHeaderContent/PanelHeaderContent.tsx +10 -3
  562. package/src/components/PanelHeaderContext/PanelHeaderContext.css +9 -25
  563. package/src/components/PanelHeaderContext/PanelHeaderContext.tsx +11 -7
  564. package/src/components/PanelHeaderContext/Readme.md +85 -101
  565. package/src/components/PanelHeaderEdit/PanelHeaderEdit.tsx +2 -2
  566. package/src/components/PanelHeaderSubmit/PanelHeaderSubmit.tsx +2 -6
  567. package/src/components/PromoBanner/PromoBanner.css +10 -22
  568. package/src/components/PromoBanner/PromoBanner.tsx +1 -5
  569. package/src/components/RichTooltip/Readme.md +2 -2
  570. package/src/components/Search/Search.css +134 -48
  571. package/src/components/Search/Search.tsx +13 -8
  572. package/src/components/Select/Select.css +2 -2
  573. package/src/components/SelectMimicry/Readme.md +3 -3
  574. package/src/components/SelectMimicry/SelectMimicry.tsx +3 -1
  575. package/src/components/SliderSwitch/SliderSwitch.tsx +5 -5
  576. package/src/components/SliderSwitch/SliderSwitchButton.tsx +7 -7
  577. package/src/components/Snackbar/Readme.md +12 -3
  578. package/src/components/SplitLayout/Readme.md +1 -1
  579. package/src/components/SubnavigationBar/SubnavigationBar.css +7 -19
  580. package/src/components/SubnavigationBar/SubnavigationBar.tsx +1 -8
  581. package/src/components/SubnavigationButton/SubnavigationButton.css +13 -0
  582. package/src/components/SubnavigationButton/SubnavigationButton.tsx +1 -4
  583. package/src/components/TabbarItem/Readme.md +6 -1
  584. package/src/components/Tabs/Readme.md +10 -2
  585. package/src/components/TabsItem/TabsItem.css +1 -1
  586. package/src/components/Tappable/Tappable.tsx +9 -11
  587. package/src/components/Textarea/Textarea.css +1 -1
  588. package/src/components/Textarea/Textarea.tsx +5 -2
  589. package/src/components/Tooltip/Readme.md +2 -2
  590. package/src/components/Touch/Readme.md +4 -4
  591. package/src/components/UsersStack/UsersStack.css +42 -0
  592. package/src/components/UsersStack/UsersStack.tsx +71 -15
  593. package/src/components/View/ViewInfinite.tsx +14 -14
  594. package/src/{components/ChipsInput → hooks}/useChipsInput.ts +5 -8
  595. package/src/{components/ChipsSelect → hooks}/useChipsSelect.ts +4 -4
  596. package/src/index.ts +3 -0
  597. package/src/lib/animate.ts +1 -1
  598. package/src/lib/testing.ts +1 -1
  599. package/src/lib/touch.ts +1 -1
  600. package/src/styles/components.css +1 -0
  601. package/src/tokenized/index.ts +85 -0
  602. package/.cache/ts/src/components/UsersStack/masks.d.ts +0 -1
  603. package/dist/cjs/components/ChipsInput/useChipsInput.js.map +0 -1
  604. package/dist/cjs/components/ChipsSelect/useChipsSelect.js.map +0 -1
  605. package/dist/cjs/components/UsersStack/masks.js +0 -29
  606. package/dist/cjs/components/UsersStack/masks.js.map +0 -1
  607. package/dist/components/ChipsInput/useChipsInput.js.map +0 -1
  608. package/dist/components/ChipsSelect/useChipsSelect.js.map +0 -1
  609. package/dist/components/UsersStack/masks.d.ts +0 -1
  610. package/dist/components/UsersStack/masks.js +0 -20
  611. package/dist/components/UsersStack/masks.js.map +0 -1
  612. package/dist/cssm/components/ChipsInput/useChipsInput.js.map +0 -1
  613. package/dist/cssm/components/ChipsSelect/useChipsSelect.js.map +0 -1
  614. package/dist/cssm/components/DropdownIcon/DropdownIcon.css +0 -1
  615. package/dist/cssm/components/UsersStack/masks.d.ts +0 -1
  616. package/dist/cssm/components/UsersStack/masks.js +0 -20
  617. package/dist/cssm/components/UsersStack/masks.js.map +0 -1
  618. package/src/components/DropdownIcon/DropdownIcon.css +0 -3
  619. package/src/components/UsersStack/masks.tsx +0 -69
@@ -19,33 +19,25 @@ var React = _interopRequireWildcard(require("react"));
19
19
 
20
20
  var _classNames = require("../../lib/classNames");
21
21
 
22
- var _getClassName = require("../../helpers/getClassName");
23
-
24
22
  var _Tappable = require("../Tappable/Tappable");
25
23
 
26
24
  var _usePlatform = require("../../hooks/usePlatform");
27
25
 
28
26
  var _utils = require("../../lib/utils");
29
27
 
30
- var _Subhead = require("../Typography/Subhead/Subhead");
28
+ var _platform = require("../../lib/platform");
31
29
 
32
- var _Title = require("../Typography/Title/Title");
30
+ var _Subhead = require("../Typography/Subhead/Subhead");
33
31
 
34
32
  var _Text = require("../Typography/Text/Text");
35
33
 
36
- var _platform = require("../../lib/platform");
37
-
38
34
  var _icons = require("@vkontakte/icons");
39
35
 
40
36
  var _ActionSheetContext = require("../ActionSheet/ActionSheetContext");
41
37
 
42
- var _Caption = require("../Typography/Caption/Caption");
43
-
44
- var _Headline = require("../Typography/Headline/Headline");
45
-
46
38
  var _withAdaptivity = require("../../hoc/withAdaptivity");
47
39
 
48
- var _excluded = ["children", "autoclose", "mode", "meta", "subtitle", "before", "selectable", "value", "name", "checked", "defaultChecked", "onChange", "onClick", "sizeY", "onImmediateClick"];
40
+ var _excluded = ["children", "autoclose", "mode", "meta", "subtitle", "before", "selectable", "value", "name", "checked", "defaultChecked", "onChange", "onClick", "sizeY", "onImmediateClick", "multiline"];
49
41
 
50
42
  var ActionSheetItemComponent = function ActionSheetItemComponent(_ref) {
51
43
  var children = _ref.children,
@@ -64,6 +56,8 @@ var ActionSheetItemComponent = function ActionSheetItemComponent(_ref) {
64
56
  onClick = _ref.onClick,
65
57
  sizeY = _ref.sizeY,
66
58
  onImmediateClick = _ref.onImmediateClick,
59
+ _ref$multiline = _ref.multiline,
60
+ multiline = _ref$multiline === void 0 ? false : _ref$multiline,
67
61
  restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
68
62
  var platform = (0, _usePlatform.usePlatform)();
69
63
 
@@ -80,45 +74,27 @@ var ActionSheetItemComponent = function ActionSheetItemComponent(_ref) {
80
74
  Component = "label";
81
75
  }
82
76
 
83
- var isCompact = (0, _utils.hasReactNode)(subtitle) || (0, _utils.hasReactNode)(meta) || selectable;
77
+ var isRich = (0, _utils.hasReactNode)(subtitle) || (0, _utils.hasReactNode)(meta) || selectable;
78
+ var isCentered = !isRich && !(0, _utils.hasReactNode)(before) && platform === _platform.Platform.IOS;
84
79
  return (0, _jsxRuntime.createScopedElement)(_Tappable.Tappable, (0, _extends2.default)({}, restProps, {
85
80
  onClick: selectable ? onClick : onItemClick(onClick, onImmediateClick, Boolean(autoclose)),
86
- activeMode: "ActionSheetItem--active" // eslint-disable-next-line vkui/no-object-expression-in-arguments
87
- ,
88
- vkuiClass: (0, _classNames.classNames)((0, _getClassName.getClassName)("ActionSheetItem", platform), "ActionSheetItem--".concat(mode), "ActionSheetItem--sizeY-".concat(sizeY), {
89
- "ActionSheetItem--compact": isCompact,
90
- "ActionSheetItem--desktop": isDesktop,
91
- "ActionSheetItem--withSubtitle": (0, _utils.hasReactNode)(subtitle)
92
- }),
81
+ activeMode: platform === _platform.Platform.IOS ? "ActionSheetItem--active" : undefined,
82
+ vkuiClass: (0, _classNames.classNames)("ActionSheetItem", platform === _platform.Platform.IOS && "ActionSheetItem--ios", "ActionSheetItem--".concat(mode), "ActionSheetItem--sizeY-".concat(sizeY), isRich && "ActionSheetItem--rich", isDesktop && "ActionSheetItem--desktop"),
93
83
  Component: Component
94
84
  }), (0, _utils.hasReactNode)(before) && (0, _jsxRuntime.createScopedElement)("div", {
95
85
  vkuiClass: "ActionSheetItem__before"
96
86
  }, before), (0, _jsxRuntime.createScopedElement)("div", {
97
- vkuiClass: "ActionSheetItem__container"
87
+ vkuiClass: (0, _classNames.classNames)("ActionSheetItem__container", !multiline && "ActionSheetItem--ellipsis")
98
88
  }, (0, _jsxRuntime.createScopedElement)("div", {
99
- vkuiClass: "ActionSheetItem__content"
100
- }, sizeY === _withAdaptivity.SizeType.COMPACT ? (0, _jsxRuntime.createScopedElement)(React.Fragment, null, (0, _jsxRuntime.createScopedElement)(_Text.Text, {
89
+ vkuiClass: (0, _classNames.classNames)("ActionSheetItem__content", isCentered && "ActionSheetItem--centered")
90
+ }, (0, _jsxRuntime.createScopedElement)(_Text.Text, {
101
91
  weight: mode === "cancel" ? "2" : undefined,
102
92
  vkuiClass: "ActionSheetItem__children"
103
93
  }, children), (0, _utils.hasReactNode)(meta) && (0, _jsxRuntime.createScopedElement)(_Text.Text, {
104
94
  vkuiClass: "ActionSheetItem__meta"
105
- }, meta)) : (0, _jsxRuntime.createScopedElement)(React.Fragment, null, platform === _platform.ANDROID ? (0, _jsxRuntime.createScopedElement)(_Headline.Headline, {
106
- weight: mode === "cancel" ? "2" : "3"
107
- }, children) : (0, _jsxRuntime.createScopedElement)(_Title.Title, {
108
- weight: mode === "cancel" ? "2" : "3",
109
- level: isCompact || (0, _utils.hasReactNode)(before) ? "3" : "2",
110
- vkuiClass: "ActionSheetItem__children"
111
- }, children), (0, _utils.hasReactNode)(meta) && (platform === _platform.ANDROID ? (0, _jsxRuntime.createScopedElement)(_Headline.Headline, {
112
- weight: mode === "cancel" ? "2" : "3"
113
- }, children) : (0, _jsxRuntime.createScopedElement)(_Title.Title, {
114
- weight: "3",
115
- level: isCompact || (0, _utils.hasReactNode)(before) ? "3" : "2",
116
- vkuiClass: "ActionSheetItem__meta"
117
- }, meta)))), (0, _utils.hasReactNode)(subtitle) && (sizeY === _withAdaptivity.SizeType.COMPACT ? (0, _jsxRuntime.createScopedElement)(_Caption.Caption, {
118
- vkuiClass: "ActionSheetItem__subtitle"
119
- }, subtitle) : (0, _jsxRuntime.createScopedElement)(_Subhead.Subhead, {
95
+ }, meta)), (0, _utils.hasReactNode)(subtitle) && (0, _jsxRuntime.createScopedElement)(_Subhead.Subhead, {
120
96
  vkuiClass: "ActionSheetItem__subtitle"
121
- }, subtitle))), selectable && (0, _jsxRuntime.createScopedElement)("div", {
97
+ }, subtitle)), selectable && (0, _jsxRuntime.createScopedElement)("div", {
122
98
  vkuiClass: "ActionSheetItem__after"
123
99
  }, (0, _jsxRuntime.createScopedElement)("input", {
124
100
  type: "radio",
@@ -132,7 +108,7 @@ var ActionSheetItemComponent = function ActionSheetItemComponent(_ref) {
132
108
  disabled: restProps.disabled
133
109
  }), (0, _jsxRuntime.createScopedElement)("div", {
134
110
  vkuiClass: "ActionSheetItem__marker"
135
- }, platform === _platform.VKCOM ? (0, _jsxRuntime.createScopedElement)(_icons.Icon24Done, null) : (0, _jsxRuntime.createScopedElement)(_icons.Icon16Done, null))));
111
+ }, (0, _jsxRuntime.createScopedElement)(_icons.Icon24CheckCircleOn, null))));
136
112
  };
137
113
  /**
138
114
  * @see https://vkcom.github.io/VKUI/#/ActionSheetItem
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ActionSheetItem/ActionSheetItem.tsx"],"names":["ActionSheetItemComponent","children","autoclose","mode","meta","subtitle","before","selectable","value","name","checked","defaultChecked","onChange","onClick","sizeY","onImmediateClick","restProps","platform","React","useContext","ActionSheetContext","onItemClick","noop","isDesktop","Component","href","isCompact","Boolean","SizeType","COMPACT","undefined","ANDROID","disabled","VKCOM","ActionSheetItem"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { Tappable } from \"../Tappable/Tappable\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode, noop } from \"../../lib/utils\";\nimport { Subhead } from \"../Typography/Subhead/Subhead\";\nimport { Title } from \"../Typography/Title/Title\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { ANDROID, VKCOM } from \"../../lib/platform\";\nimport { Icon16Done, Icon24Done } from \"@vkontakte/icons\";\nimport {\n ActionSheetContext,\n ActionSheetContextType,\n} from \"../ActionSheet/ActionSheetContext\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport {\n withAdaptivity,\n AdaptivityProps,\n SizeType,\n} from \"../../hoc/withAdaptivity\";\nimport \"./ActionSheetItem.css\";\n\nexport interface ActionSheetItemProps\n extends React.HTMLAttributes<HTMLElement>,\n React.AnchorHTMLAttributes<HTMLElement>,\n Pick<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"name\" | \"checked\" | \"value\"\n >,\n AdaptivityProps {\n mode?: \"default\" | \"destructive\" | \"cancel\";\n before?: React.ReactNode;\n meta?: React.ReactNode;\n subtitle?: React.ReactNode;\n autoclose?: boolean;\n selectable?: boolean;\n disabled?: boolean;\n /**\n * Если autoclose === true, onClick будет вызван после завершения анимации скрытия и после вызова onClose.\n * Из этого следует, что в объекте события значения полей типа `currentTarget` будут не определены.\n * Если вам нужен объект события именно на момент клика, используйте `onImmediateClick`.\n */\n onClick?: React.MouseEventHandler<HTMLElement>;\n onImmediateClick?: React.MouseEventHandler<HTMLElement>;\n}\n\nconst ActionSheetItemComponent = ({\n children,\n autoclose,\n mode = \"default\",\n meta,\n subtitle,\n before,\n selectable,\n value,\n name,\n checked,\n defaultChecked,\n onChange,\n onClick,\n sizeY,\n onImmediateClick,\n ...restProps\n}: ActionSheetItemProps) => {\n const platform = usePlatform();\n const { onItemClick = () => noop, isDesktop } =\n React.useContext<ActionSheetContextType<HTMLElement>>(ActionSheetContext);\n\n let Component: React.ElementType = restProps.href ? \"a\" : \"div\";\n\n if (selectable) {\n Component = \"label\";\n }\n\n const isCompact = hasReactNode(subtitle) || hasReactNode(meta) || selectable;\n\n return (\n <Tappable\n {...restProps}\n onClick={\n selectable\n ? onClick\n : onItemClick(onClick, onImmediateClick, Boolean(autoclose))\n }\n activeMode=\"ActionSheetItem--active\"\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\n getClassName(\"ActionSheetItem\", platform),\n `ActionSheetItem--${mode}`,\n `ActionSheetItem--sizeY-${sizeY}`,\n {\n \"ActionSheetItem--compact\": isCompact,\n \"ActionSheetItem--desktop\": isDesktop,\n \"ActionSheetItem--withSubtitle\": hasReactNode(subtitle),\n }\n )}\n Component={Component}\n >\n {hasReactNode(before) && (\n <div vkuiClass=\"ActionSheetItem__before\">{before}</div>\n )}\n <div vkuiClass=\"ActionSheetItem__container\">\n <div vkuiClass=\"ActionSheetItem__content\">\n {sizeY === SizeType.COMPACT ? (\n <React.Fragment>\n <Text\n weight={mode === \"cancel\" ? \"2\" : undefined}\n vkuiClass=\"ActionSheetItem__children\"\n >\n {children}\n </Text>\n {hasReactNode(meta) && (\n <Text vkuiClass=\"ActionSheetItem__meta\">{meta}</Text>\n )}\n </React.Fragment>\n ) : (\n <React.Fragment>\n {platform === ANDROID ? (\n <Headline weight={mode === \"cancel\" ? \"2\" : \"3\"}>\n {children}\n </Headline>\n ) : (\n <Title\n weight={mode === \"cancel\" ? \"2\" : \"3\"}\n level={isCompact || hasReactNode(before) ? \"3\" : \"2\"}\n vkuiClass=\"ActionSheetItem__children\"\n >\n {children}\n </Title>\n )}\n {hasReactNode(meta) &&\n (platform === ANDROID ? (\n <Headline weight={mode === \"cancel\" ? \"2\" : \"3\"}>\n {children}\n </Headline>\n ) : (\n <Title\n weight=\"3\"\n level={isCompact || hasReactNode(before) ? \"3\" : \"2\"}\n vkuiClass=\"ActionSheetItem__meta\"\n >\n {meta}\n </Title>\n ))}\n </React.Fragment>\n )}\n </div>\n {hasReactNode(subtitle) &&\n (sizeY === SizeType.COMPACT ? (\n <Caption vkuiClass=\"ActionSheetItem__subtitle\">{subtitle}</Caption>\n ) : (\n <Subhead vkuiClass=\"ActionSheetItem__subtitle\">{subtitle}</Subhead>\n ))}\n </div>\n {selectable && (\n <div vkuiClass=\"ActionSheetItem__after\">\n <input\n type=\"radio\"\n vkuiClass=\"ActionSheetItem__radio\"\n name={name}\n value={value}\n onChange={onChange}\n onClick={onItemClick(noop, noop, Boolean(autoclose))}\n defaultChecked={defaultChecked}\n checked={checked}\n disabled={restProps.disabled}\n />\n <div vkuiClass=\"ActionSheetItem__marker\">\n {platform === VKCOM ? <Icon24Done /> : <Icon16Done />}\n </div>\n </div>\n )}\n </Tappable>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ActionSheetItem\n */\nexport const ActionSheetItem = withAdaptivity(ActionSheetItemComponent, {\n sizeY: true,\n});\n"],"file":"ActionSheetItem.js"}
1
+ {"version":3,"sources":["../../../../src/components/ActionSheetItem/ActionSheetItem.tsx"],"names":["ActionSheetItemComponent","children","autoclose","mode","meta","subtitle","before","selectable","value","name","checked","defaultChecked","onChange","onClick","sizeY","onImmediateClick","multiline","restProps","platform","React","useContext","ActionSheetContext","onItemClick","noop","isDesktop","Component","href","isRich","isCentered","Platform","IOS","Boolean","undefined","disabled","ActionSheetItem"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAIA;;;;AA+BA,IAAMA,wBAAwB,GAAG,SAA3BA,wBAA2B,OAkBL;AAAA,MAjB1BC,QAiB0B,QAjB1BA,QAiB0B;AAAA,MAhB1BC,SAgB0B,QAhB1BA,SAgB0B;AAAA,uBAf1BC,IAe0B;AAAA,MAf1BA,IAe0B,0BAfnB,SAemB;AAAA,MAd1BC,IAc0B,QAd1BA,IAc0B;AAAA,MAb1BC,QAa0B,QAb1BA,QAa0B;AAAA,MAZ1BC,MAY0B,QAZ1BA,MAY0B;AAAA,MAX1BC,UAW0B,QAX1BA,UAW0B;AAAA,MAV1BC,KAU0B,QAV1BA,KAU0B;AAAA,MAT1BC,IAS0B,QAT1BA,IAS0B;AAAA,MAR1BC,OAQ0B,QAR1BA,OAQ0B;AAAA,MAP1BC,cAO0B,QAP1BA,cAO0B;AAAA,MAN1BC,QAM0B,QAN1BA,QAM0B;AAAA,MAL1BC,OAK0B,QAL1BA,OAK0B;AAAA,MAJ1BC,KAI0B,QAJ1BA,KAI0B;AAAA,MAH1BC,gBAG0B,QAH1BA,gBAG0B;AAAA,4BAF1BC,SAE0B;AAAA,MAF1BA,SAE0B,+BAFd,KAEc;AAAA,MADvBC,SACuB;AAC1B,MAAMC,QAAQ,GAAG,+BAAjB;;AACA,0BACEC,KAAK,CAACC,UAAN,CAAsDC,sCAAtD,CADF;AAAA,gDAAQC,WAAR;AAAA,MAAQA,WAAR,sCAAsB;AAAA,WAAMC,WAAN;AAAA,GAAtB;AAAA,MAAkCC,SAAlC,qBAAkCA,SAAlC;;AAGA,MAAIC,SAA4B,GAAGR,SAAS,CAACS,IAAV,GAAiB,GAAjB,GAAuB,KAA1D;;AAEA,MAAInB,UAAJ,EAAgB;AACdkB,IAAAA,SAAS,GAAG,OAAZ;AACD;;AAED,MAAME,MAAM,GAAG,yBAAatB,QAAb,KAA0B,yBAAaD,IAAb,CAA1B,IAAgDG,UAA/D;AACA,MAAMqB,UAAU,GACd,CAACD,MAAD,IAAW,CAAC,yBAAarB,MAAb,CAAZ,IAAoCY,QAAQ,KAAKW,mBAASC,GAD5D;AAGA,SACE,qCAAC,kBAAD,6BACMb,SADN;AAEE,IAAA,OAAO,EACLV,UAAU,GACNM,OADM,GAENS,WAAW,CAACT,OAAD,EAAUE,gBAAV,EAA4BgB,OAAO,CAAC7B,SAAD,CAAnC,CALnB;AAOE,IAAA,UAAU,EACRgB,QAAQ,KAAKW,mBAASC,GAAtB,GAA4B,yBAA5B,GAAwDE,SAR5D;AAUE,IAAA,SAAS,EAAE,4BACT,iBADS,EAETd,QAAQ,KAAKW,mBAASC,GAAtB,IAA6B,sBAFpB,6BAGW3B,IAHX,oCAIiBW,KAJjB,GAKTa,MAAM,IAAI,uBALD,EAMTH,SAAS,IAAI,0BANJ,CAVb;AAkBE,IAAA,SAAS,EAAEC;AAlBb,MAoBG,yBAAanB,MAAb,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAA0CA,MAA1C,CArBJ,EAuBE;AACE,IAAA,SAAS,EAAE,4BACT,4BADS,EAET,CAACU,SAAD,IAAc,2BAFL;AADb,KAME;AACE,IAAA,SAAS,EAAE,4BACT,0BADS,EAETY,UAAU,IAAI,2BAFL;AADb,KAME,qCAAC,UAAD;AACE,IAAA,MAAM,EAAEzB,IAAI,KAAK,QAAT,GAAoB,GAApB,GAA0B6B,SADpC;AAEE,IAAA,SAAS,EAAC;AAFZ,KAIG/B,QAJH,CANF,EAYG,yBAAaG,IAAb,KACC,qCAAC,UAAD;AAAM,IAAA,SAAS,EAAC;AAAhB,KAAyCA,IAAzC,CAbJ,CANF,EAsBG,yBAAaC,QAAb,KACC,qCAAC,gBAAD;AAAS,IAAA,SAAS,EAAC;AAAnB,KAAgDA,QAAhD,CAvBJ,CAvBF,EAiDGE,UAAU,IACT;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AACE,IAAA,IAAI,EAAC,OADP;AAEE,IAAA,SAAS,EAAC,wBAFZ;AAGE,IAAA,IAAI,EAAEE,IAHR;AAIE,IAAA,KAAK,EAAED,KAJT;AAKE,IAAA,QAAQ,EAAEI,QALZ;AAME,IAAA,OAAO,EAAEU,WAAW,CAACC,WAAD,EAAOA,WAAP,EAAaQ,OAAO,CAAC7B,SAAD,CAApB,CANtB;AAOE,IAAA,cAAc,EAAES,cAPlB;AAQE,IAAA,OAAO,EAAED,OARX;AASE,IAAA,QAAQ,EAAEO,SAAS,CAACgB;AATtB,IADF,EAYE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,qCAAC,0BAAD,OADF,CAZF,CAlDJ,CADF;AAsED,CAvGD;AAyGA;AACA;AACA;;;AACO,IAAMC,eAAe,GAAG,oCAAelC,wBAAf,EAAyC;AACtEc,EAAAA,KAAK,EAAE;AAD+D,CAAzC,CAAxB","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { Tappable } from \"../Tappable/Tappable\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode, noop } from \"../../lib/utils\";\nimport { Platform } from \"../../lib/platform\";\nimport { Subhead } from \"../Typography/Subhead/Subhead\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { Icon24CheckCircleOn } from \"@vkontakte/icons\";\nimport {\n ActionSheetContext,\n ActionSheetContextType,\n} from \"../ActionSheet/ActionSheetContext\";\nimport { AdaptivityProps, withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport \"./ActionSheetItem.css\";\n\nexport interface ActionSheetItemProps\n extends React.HTMLAttributes<HTMLElement>,\n React.AnchorHTMLAttributes<HTMLElement>,\n Pick<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"name\" | \"checked\" | \"value\"\n >,\n AdaptivityProps {\n mode?: \"default\" | \"destructive\" | \"cancel\";\n before?: React.ReactNode;\n meta?: React.ReactNode;\n subtitle?: React.ReactNode;\n autoclose?: boolean;\n selectable?: boolean;\n disabled?: boolean;\n /**\n * Все текстовые элементы при необходимости занимают несколько строк\n */\n multiline?: boolean;\n /**\n * Если autoclose === true, onClick будет вызван после завершения анимации скрытия и после вызова onClose.\n * Из этого следует, что в объекте события значения полей типа `currentTarget` будут не определены.\n * Если вам нужен объект события именно на момент клика, используйте `onImmediateClick`.\n */\n onClick?: React.MouseEventHandler<HTMLElement>;\n onImmediateClick?: React.MouseEventHandler<HTMLElement>;\n}\n\nconst ActionSheetItemComponent = ({\n children,\n autoclose,\n mode = \"default\",\n meta,\n subtitle,\n before,\n selectable,\n value,\n name,\n checked,\n defaultChecked,\n onChange,\n onClick,\n sizeY,\n onImmediateClick,\n multiline = false,\n ...restProps\n}: ActionSheetItemProps) => {\n const platform = usePlatform();\n const { onItemClick = () => noop, isDesktop } =\n React.useContext<ActionSheetContextType<HTMLElement>>(ActionSheetContext);\n\n let Component: React.ElementType = restProps.href ? \"a\" : \"div\";\n\n if (selectable) {\n Component = \"label\";\n }\n\n const isRich = hasReactNode(subtitle) || hasReactNode(meta) || selectable;\n const isCentered =\n !isRich && !hasReactNode(before) && platform === Platform.IOS;\n\n return (\n <Tappable\n {...restProps}\n onClick={\n selectable\n ? onClick\n : onItemClick(onClick, onImmediateClick, Boolean(autoclose))\n }\n activeMode={\n platform === Platform.IOS ? \"ActionSheetItem--active\" : undefined\n }\n vkuiClass={classNames(\n \"ActionSheetItem\",\n platform === Platform.IOS && \"ActionSheetItem--ios\",\n `ActionSheetItem--${mode}`,\n `ActionSheetItem--sizeY-${sizeY}`,\n isRich && \"ActionSheetItem--rich\",\n isDesktop && \"ActionSheetItem--desktop\"\n )}\n Component={Component}\n >\n {hasReactNode(before) && (\n <div vkuiClass=\"ActionSheetItem__before\">{before}</div>\n )}\n <div\n vkuiClass={classNames(\n \"ActionSheetItem__container\",\n !multiline && \"ActionSheetItem--ellipsis\"\n )}\n >\n <div\n vkuiClass={classNames(\n \"ActionSheetItem__content\",\n isCentered && \"ActionSheetItem--centered\"\n )}\n >\n <Text\n weight={mode === \"cancel\" ? \"2\" : undefined}\n vkuiClass=\"ActionSheetItem__children\"\n >\n {children}\n </Text>\n {hasReactNode(meta) && (\n <Text vkuiClass=\"ActionSheetItem__meta\">{meta}</Text>\n )}\n </div>\n {hasReactNode(subtitle) && (\n <Subhead vkuiClass=\"ActionSheetItem__subtitle\">{subtitle}</Subhead>\n )}\n </div>\n {selectable && (\n <div vkuiClass=\"ActionSheetItem__after\">\n <input\n type=\"radio\"\n vkuiClass=\"ActionSheetItem__radio\"\n name={name}\n value={value}\n onChange={onChange}\n onClick={onItemClick(noop, noop, Boolean(autoclose))}\n defaultChecked={defaultChecked}\n checked={checked}\n disabled={restProps.disabled}\n />\n <div vkuiClass=\"ActionSheetItem__marker\">\n <Icon24CheckCircleOn />\n </div>\n </div>\n )}\n </Tappable>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ActionSheetItem\n */\nexport const ActionSheetItem = withAdaptivity(ActionSheetItemComponent, {\n sizeY: true,\n});\n"],"file":"ActionSheetItem.js"}
@@ -34,12 +34,11 @@ exports.MOBILE_SIZE = MOBILE_SIZE;
34
34
  var MOBILE_LANDSCAPE_HEIGHT = 414;
35
35
  exports.MOBILE_LANDSCAPE_HEIGHT = MOBILE_LANDSCAPE_HEIGHT;
36
36
  var MEDIUM_HEIGHT = 720;
37
+ exports.MEDIUM_HEIGHT = MEDIUM_HEIGHT;
38
+
37
39
  /**
38
40
  * @see https://vkcom.github.io/VKUI/#/AdaptivityProvider
39
41
  */
40
-
41
- exports.MEDIUM_HEIGHT = MEDIUM_HEIGHT;
42
-
43
42
  var AdaptivityProvider = function AdaptivityProvider(props) {
44
43
  var adaptivityRef = React.useRef(null);
45
44
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/AdaptivityProvider/AdaptivityProvider.tsx"],"names":["DESKTOP_SIZE","TABLET_SIZE","SMALL_TABLET_SIZE","MOBILE_SIZE","MOBILE_LANDSCAPE_HEIGHT","MEDIUM_HEIGHT","AdaptivityProvider","props","adaptivityRef","React","useRef","useState","updateAdaptivity","bridge","window","current","calculateAdaptivity","useEffect","onResize","calculated","viewWidth","viewHeight","sizeX","sizeY","hasMouse","deviceHasHover","addEventListener","removeEventListener","children","windowWidth","windowHeight","type","viewportWidth","viewportHeight","innerWidth","innerHeight","ViewWidth","SMALL_MOBILE","ViewHeight","SMALL","SizeType","REGULAR","_hasMouse","_hasHover","DESKTOP","TABLET","SMALL_TABLET","MOBILE","MEDIUM","EXTRA_SMALL","COMPACT"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAOA;;AACA;;AAKO,IAAMA,YAAY,GAAG,IAArB;;AACA,IAAMC,WAAW,GAAG,IAApB;;AACA,IAAMC,iBAAiB,GAAG,GAA1B;;AACA,IAAMC,WAAW,GAAG,GAApB;;AAEA,IAAMC,uBAAuB,GAAG,GAAhC;;AACA,IAAMC,aAAa,GAAG,GAAtB;AAEP;AACA;AACA;;;;AACA,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,CACzBC,KADyB,EAEtB;AACH,MAAMC,aAAa,GAAGC,KAAK,CAACC,MAAN,CAEZ,IAFY,CAAtB;;AAGA,wBAA6BD,KAAK,CAACE,QAAN,CAAe,EAAf,CAA7B;AAAA;AAAA,MAASC,gBAAT;;AACA,MAAMC,MAAM,GAAG,+CAAf;;AAEA,gBAAmB,kBAAnB;AAAA,MAAQC,MAAR,WAAQA,MAAR;;AAEA,MAAI,CAACN,aAAa,CAACO,OAAnB,EAA4B;AAC1BP,IAAAA,aAAa,CAACO,OAAd,GAAwBC,mBAAmB,CAACT,KAAD,EAAQM,MAAR,EAAgBC,MAAhB,CAA3C;AACD;;AAEDL,EAAAA,KAAK,CAACQ,SAAN,CAAgB,YAAM;AACpB,aAASC,QAAT,GAAoB;AAClB,UAAIV,aAAa,CAACO,OAAd,KAA0B,IAA9B,EAAoC;AAClC;AACD;;AAED,UAAMI,UAAU,GAAGH,mBAAmB,CAACT,KAAD,EAAQM,MAAR,EAAgBC,MAAhB,CAAtC;AACA,kCACEN,aAAa,CAACO,OADhB;AAAA,UAAQK,SAAR,yBAAQA,SAAR;AAAA,UAAmBC,UAAnB,yBAAmBA,UAAnB;AAAA,UAA+BC,KAA/B,yBAA+BA,KAA/B;AAAA,UAAsCC,KAAtC,yBAAsCA,KAAtC;AAAA,UAA6CC,QAA7C,yBAA6CA,QAA7C;AAAA,UAAuDC,cAAvD,yBAAuDA,cAAvD;;AAGA,UACEL,SAAS,KAAKD,UAAU,CAACC,SAAzB,IACAC,UAAU,KAAKF,UAAU,CAACE,UAD1B,IAEAC,KAAK,KAAKH,UAAU,CAACG,KAFrB,IAGAC,KAAK,KAAKJ,UAAU,CAACI,KAHrB,IAIAC,QAAQ,KAAKL,UAAU,CAACK,QAJxB,IAKAC,cAAc,KAAKN,UAAU,CAACM,cANhC,EAOE;AACAjB,QAAAA,aAAa,CAACO,OAAd,GAAwBI,UAAxB;AACAP,QAAAA,gBAAgB,CAAC,EAAD,CAAhB;AACD;AACF;;AAEDM,IAAAA,QAAQ;AACRJ,IAAAA,MAAM,CAAEY,gBAAR,CAAyB,QAAzB,EAAmCR,QAAnC,EAA6C,KAA7C;AAEA,WAAO,YAAM;AACXJ,MAAAA,MAAM,CAAEa,mBAAR,CAA4B,QAA5B,EAAsCT,QAAtC,EAAgD,KAAhD;AACD,KAFD;AAGD,GA7BD,EA6BG,CACDX,KAAK,CAACa,SADL,EAEDb,KAAK,CAACc,UAFL,EAGDd,KAAK,CAACe,KAHL,EAIDf,KAAK,CAACgB,KAJL,EAKDhB,KAAK,CAACiB,QALL,EAMDjB,KAAK,CAACkB,cANL,EAODX,MAPC,EAQDP,KARC,EASDM,MATC,CA7BH;AAyCA,SACE,qCAAC,oCAAD,CAAmB,QAAnB;AAA4B,IAAA,KAAK,EAAEL,aAAa,CAACO;AAAjD,KACGR,KAAK,CAACqB,QADT,CADF;AAKD,CA7DD;;;;AA+DA,SAASZ,mBAAT,CACET,KADF,EAEEM,MAFF,EAGEC,MAHF,EAIE;AACA,MAAIe,WAAW,GAAG,CAAlB;AACA,MAAIC,YAAY,GAAG,CAAnB;;AAEA,MAAIjB,MAAM,CAACkB,IAAP,KAAgB,UAApB,EAAgC;AAC9BF,IAAAA,WAAW,GAAGhB,MAAM,CAACmB,aAArB;AACAF,IAAAA,YAAY,GAAGjB,MAAM,CAACoB,cAAtB;AACD,GAHD,MAGO,IAAInB,MAAJ,EAAY;AACjBe,IAAAA,WAAW,GAAGf,MAAM,CAACoB,UAArB;AACAJ,IAAAA,YAAY,GAAGhB,MAAM,CAACqB,WAAtB;AACD;;AAED,MAAIf,SAAS,GAAGgB,6BAAUC,YAA1B;AACA,MAAIhB,UAAU,GAAGiB,8BAAWC,KAA5B;AACA,MAAIhB,KAAK,GAAGiB,4BAASC,OAArB;AACA,MAAInB,KAAK,GAAGkB,4BAASC,OAArB;AACA,MAAIjB,QAAQ,GAAGkB,cAAf;AACA,MAAIjB,cAAc,GAAGkB,cAArB;;AAEA,MAAId,WAAW,IAAI7B,YAAnB,EAAiC;AAC/BoB,IAAAA,SAAS,GAAGgB,6BAAUQ,OAAtB;AACD,GAFD,MAEO,IAAIf,WAAW,IAAI5B,WAAnB,EAAgC;AACrCmB,IAAAA,SAAS,GAAGgB,6BAAUS,MAAtB;AACD,GAFM,MAEA,IAAIhB,WAAW,IAAI3B,iBAAnB,EAAsC;AAC3CkB,IAAAA,SAAS,GAAGgB,6BAAUU,YAAtB;AACD,GAFM,MAEA,IAAIjB,WAAW,IAAI1B,WAAnB,EAAgC;AACrCiB,IAAAA,SAAS,GAAGgB,6BAAUW,MAAtB;AACD,GAFM,MAEA;AACL3B,IAAAA,SAAS,GAAGgB,6BAAUC,YAAtB;AACD;;AAED,MAAIP,YAAY,IAAIzB,aAApB,EAAmC;AACjCgB,IAAAA,UAAU,GAAGiB,8BAAWU,MAAxB;AACD,GAFD,MAEO,IAAIlB,YAAY,GAAG1B,uBAAnB,EAA4C;AACjDiB,IAAAA,UAAU,GAAGiB,8BAAWC,KAAxB;AACD,GAFM,MAEA;AACLlB,IAAAA,UAAU,GAAGiB,8BAAWW,WAAxB;AACD;;AAED,MAAI,CAACpC,MAAM,CAACkB,IAAZ,EAAkB;AAAA;;AAChBxB,IAAAA,KAAK,CAACa,SAAN,KAAoBA,SAAS,GAAGb,KAAK,CAACa,SAAtC;AACAb,IAAAA,KAAK,CAACc,UAAN,KAAqBA,UAAU,GAAGd,KAAK,CAACc,UAAxC;AAEAG,IAAAA,QAAQ,sBAAGjB,KAAK,CAACiB,QAAT,6DAAqBA,QAA7B;AACAC,IAAAA,cAAc,4BAAGlB,KAAK,CAACkB,cAAT,yEAA2BA,cAAzC;AACD;;AAED,MAAIL,SAAS,IAAIgB,6BAAUW,MAA3B,EAAmC;AACjCzB,IAAAA,KAAK,GAAGkB,4BAASU,OAAjB;AACD;;AAED,MACG9B,SAAS,IAAIgB,6BAAUU,YAAvB,IAAuCtB,QAAxC,IACAH,UAAU,IAAIiB,8BAAWW,WAF3B,EAGE;AACA1B,IAAAA,KAAK,GAAGiB,4BAASU,OAAjB;AACD;;AAED,MAAI,CAACrC,MAAM,CAACkB,IAAZ,EAAkB;AAChBxB,IAAAA,KAAK,CAACe,KAAN,KAAgBA,KAAK,GAAGf,KAAK,CAACe,KAA9B;AACAf,IAAAA,KAAK,CAACgB,KAAN,KAAgBA,KAAK,GAAGhB,KAAK,CAACgB,KAA9B;AACD;;AAED,MACEV,MAAM,CAACkB,IAAP,KAAgB,cAAhB,IACAlB,MAAM,CAACkB,IAAP,KAAgB,sBAFlB,EAGE;AACAX,IAAAA,SAAS,GAAGgB,6BAAUW,MAAtB;AACAzB,IAAAA,KAAK,GAAGkB,4BAASU,OAAjB;;AAEA,QAAIrC,MAAM,CAACkB,IAAP,KAAgB,sBAApB,EAA4C;AAC1CR,MAAAA,KAAK,GAAGiB,4BAASU,OAAjB;AACD,KAFD,MAEO;AACL3B,MAAAA,KAAK,GAAGiB,4BAASC,OAAjB;AACD;AACF;;AAED,SAAO;AAAErB,IAAAA,SAAS,EAATA,SAAF;AAAaC,IAAAA,UAAU,EAAVA,UAAb;AAAyBC,IAAAA,KAAK,EAALA,KAAzB;AAAgCC,IAAAA,KAAK,EAALA,KAAhC;AAAuCC,IAAAA,QAAQ,EAARA,QAAvC;AAAiDC,IAAAA,cAAc,EAAdA;AAAjD,GAAP;AACD","sourcesContent":["import * as React from \"react\";\nimport { hasMouse as _hasMouse, hasHover as _hasHover } from \"@vkontakte/vkjs\";\nimport {\n AdaptivityContext,\n AdaptivityProps,\n SizeType,\n ViewHeight,\n ViewWidth,\n} from \"./AdaptivityContext\";\nimport { useDOM } from \"../../lib/dom\";\nimport {\n useBridgeAdaptivity,\n BridgeAdaptivity,\n} from \"../../hooks/useBridgeAdaptivity\";\n\nexport const DESKTOP_SIZE = 1280;\nexport const TABLET_SIZE = 1024;\nexport const SMALL_TABLET_SIZE = 768;\nexport const MOBILE_SIZE = 320;\n\nexport const MOBILE_LANDSCAPE_HEIGHT = 414;\nexport const MEDIUM_HEIGHT = 720;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/AdaptivityProvider\n */\nconst AdaptivityProvider = (\n props: React.PropsWithChildren<AdaptivityProps>\n) => {\n const adaptivityRef = React.useRef<ReturnType<\n typeof calculateAdaptivity\n > | null>(null);\n const [, updateAdaptivity] = React.useState({});\n const bridge = useBridgeAdaptivity();\n\n const { window } = useDOM();\n\n if (!adaptivityRef.current) {\n adaptivityRef.current = calculateAdaptivity(props, bridge, window);\n }\n\n React.useEffect(() => {\n function onResize() {\n if (adaptivityRef.current === null) {\n return;\n }\n\n const calculated = calculateAdaptivity(props, bridge, window);\n const { viewWidth, viewHeight, sizeX, sizeY, hasMouse, deviceHasHover } =\n adaptivityRef.current;\n\n if (\n viewWidth !== calculated.viewWidth ||\n viewHeight !== calculated.viewHeight ||\n sizeX !== calculated.sizeX ||\n sizeY !== calculated.sizeY ||\n hasMouse !== calculated.hasMouse ||\n deviceHasHover !== calculated.deviceHasHover\n ) {\n adaptivityRef.current = calculated;\n updateAdaptivity({});\n }\n }\n\n onResize();\n window!.addEventListener(\"resize\", onResize, false);\n\n return () => {\n window!.removeEventListener(\"resize\", onResize, false);\n };\n }, [\n props.viewWidth,\n props.viewHeight,\n props.sizeX,\n props.sizeY,\n props.hasMouse,\n props.deviceHasHover,\n window,\n props,\n bridge,\n ]);\n\n return (\n <AdaptivityContext.Provider value={adaptivityRef.current}>\n {props.children}\n </AdaptivityContext.Provider>\n );\n};\n\nfunction calculateAdaptivity(\n props: AdaptivityProps,\n bridge: BridgeAdaptivity,\n window?: Window\n) {\n let windowWidth = 0;\n let windowHeight = 0;\n\n if (bridge.type === \"adaptive\") {\n windowWidth = bridge.viewportWidth;\n windowHeight = bridge.viewportHeight;\n } else if (window) {\n windowWidth = window.innerWidth;\n windowHeight = window.innerHeight;\n }\n\n let viewWidth = ViewWidth.SMALL_MOBILE;\n let viewHeight = ViewHeight.SMALL;\n let sizeY = SizeType.REGULAR;\n let sizeX = SizeType.REGULAR;\n let hasMouse = _hasMouse;\n let deviceHasHover = _hasHover;\n\n if (windowWidth >= DESKTOP_SIZE) {\n viewWidth = ViewWidth.DESKTOP;\n } else if (windowWidth >= TABLET_SIZE) {\n viewWidth = ViewWidth.TABLET;\n } else if (windowWidth >= SMALL_TABLET_SIZE) {\n viewWidth = ViewWidth.SMALL_TABLET;\n } else if (windowWidth >= MOBILE_SIZE) {\n viewWidth = ViewWidth.MOBILE;\n } else {\n viewWidth = ViewWidth.SMALL_MOBILE;\n }\n\n if (windowHeight >= MEDIUM_HEIGHT) {\n viewHeight = ViewHeight.MEDIUM;\n } else if (windowHeight > MOBILE_LANDSCAPE_HEIGHT) {\n viewHeight = ViewHeight.SMALL;\n } else {\n viewHeight = ViewHeight.EXTRA_SMALL;\n }\n\n if (!bridge.type) {\n props.viewWidth && (viewWidth = props.viewWidth);\n props.viewHeight && (viewHeight = props.viewHeight);\n\n hasMouse = props.hasMouse ?? hasMouse;\n deviceHasHover = props.deviceHasHover ?? deviceHasHover;\n }\n\n if (viewWidth <= ViewWidth.MOBILE) {\n sizeX = SizeType.COMPACT;\n }\n\n if (\n (viewWidth >= ViewWidth.SMALL_TABLET && hasMouse) ||\n viewHeight <= ViewHeight.EXTRA_SMALL\n ) {\n sizeY = SizeType.COMPACT;\n }\n\n if (!bridge.type) {\n props.sizeX && (sizeX = props.sizeX);\n props.sizeY && (sizeY = props.sizeY);\n }\n\n if (\n bridge.type === \"force_mobile\" ||\n bridge.type === \"force_mobile_compact\"\n ) {\n viewWidth = ViewWidth.MOBILE;\n sizeX = SizeType.COMPACT;\n\n if (bridge.type === \"force_mobile_compact\") {\n sizeY = SizeType.COMPACT;\n } else {\n sizeY = SizeType.REGULAR;\n }\n }\n\n return { viewWidth, viewHeight, sizeX, sizeY, hasMouse, deviceHasHover };\n}\n\nexport { AdaptivityProvider };\n"],"file":"AdaptivityProvider.js"}
1
+ {"version":3,"sources":["../../../../src/components/AdaptivityProvider/AdaptivityProvider.tsx"],"names":["DESKTOP_SIZE","TABLET_SIZE","SMALL_TABLET_SIZE","MOBILE_SIZE","MOBILE_LANDSCAPE_HEIGHT","MEDIUM_HEIGHT","AdaptivityProvider","props","adaptivityRef","React","useRef","useState","updateAdaptivity","bridge","window","current","calculateAdaptivity","useEffect","onResize","calculated","viewWidth","viewHeight","sizeX","sizeY","hasMouse","deviceHasHover","addEventListener","removeEventListener","children","windowWidth","windowHeight","type","viewportWidth","viewportHeight","innerWidth","innerHeight","ViewWidth","SMALL_MOBILE","ViewHeight","SMALL","SizeType","REGULAR","_hasMouse","_hasHover","DESKTOP","TABLET","SMALL_TABLET","MOBILE","MEDIUM","EXTRA_SMALL","COMPACT"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { hasMouse as _hasMouse, hasHover as _hasHover } from \"@vkontakte/vkjs\";\nimport {\n AdaptivityContext,\n AdaptivityProps,\n SizeType,\n ViewHeight,\n ViewWidth,\n} from \"./AdaptivityContext\";\nimport { useDOM } from \"../../lib/dom\";\nimport {\n useBridgeAdaptivity,\n BridgeAdaptivity,\n} from \"../../hooks/useBridgeAdaptivity\";\n\nexport const DESKTOP_SIZE = 1280;\nexport const TABLET_SIZE = 1024;\nexport const SMALL_TABLET_SIZE = 768;\nexport const MOBILE_SIZE = 320;\n\nexport const MOBILE_LANDSCAPE_HEIGHT = 414;\nexport const MEDIUM_HEIGHT = 720;\n\nexport interface AdaptivityProviderProps extends AdaptivityProps {\n children?: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/AdaptivityProvider\n */\nexport const AdaptivityProvider = (props: AdaptivityProviderProps) => {\n const adaptivityRef = React.useRef<ReturnType<\n typeof calculateAdaptivity\n > | null>(null);\n const [, updateAdaptivity] = React.useState({});\n const bridge = useBridgeAdaptivity();\n\n const { window } = useDOM();\n\n if (!adaptivityRef.current) {\n adaptivityRef.current = calculateAdaptivity(props, bridge, window);\n }\n\n React.useEffect(() => {\n function onResize() {\n if (adaptivityRef.current === null) {\n return;\n }\n\n const calculated = calculateAdaptivity(props, bridge, window);\n const { viewWidth, viewHeight, sizeX, sizeY, hasMouse, deviceHasHover } =\n adaptivityRef.current;\n\n if (\n viewWidth !== calculated.viewWidth ||\n viewHeight !== calculated.viewHeight ||\n sizeX !== calculated.sizeX ||\n sizeY !== calculated.sizeY ||\n hasMouse !== calculated.hasMouse ||\n deviceHasHover !== calculated.deviceHasHover\n ) {\n adaptivityRef.current = calculated;\n updateAdaptivity({});\n }\n }\n\n onResize();\n window!.addEventListener(\"resize\", onResize, false);\n\n return () => {\n window!.removeEventListener(\"resize\", onResize, false);\n };\n }, [\n props.viewWidth,\n props.viewHeight,\n props.sizeX,\n props.sizeY,\n props.hasMouse,\n props.deviceHasHover,\n window,\n props,\n bridge,\n ]);\n\n return (\n <AdaptivityContext.Provider value={adaptivityRef.current}>\n {props.children}\n </AdaptivityContext.Provider>\n );\n};\n\nfunction calculateAdaptivity(\n props: AdaptivityProps,\n bridge: BridgeAdaptivity,\n window?: Window\n) {\n let windowWidth = 0;\n let windowHeight = 0;\n\n if (bridge.type === \"adaptive\") {\n windowWidth = bridge.viewportWidth;\n windowHeight = bridge.viewportHeight;\n } else if (window) {\n windowWidth = window.innerWidth;\n windowHeight = window.innerHeight;\n }\n\n let viewWidth = ViewWidth.SMALL_MOBILE;\n let viewHeight = ViewHeight.SMALL;\n let sizeY = SizeType.REGULAR;\n let sizeX = SizeType.REGULAR;\n let hasMouse = _hasMouse;\n let deviceHasHover = _hasHover;\n\n if (windowWidth >= DESKTOP_SIZE) {\n viewWidth = ViewWidth.DESKTOP;\n } else if (windowWidth >= TABLET_SIZE) {\n viewWidth = ViewWidth.TABLET;\n } else if (windowWidth >= SMALL_TABLET_SIZE) {\n viewWidth = ViewWidth.SMALL_TABLET;\n } else if (windowWidth >= MOBILE_SIZE) {\n viewWidth = ViewWidth.MOBILE;\n } else {\n viewWidth = ViewWidth.SMALL_MOBILE;\n }\n\n if (windowHeight >= MEDIUM_HEIGHT) {\n viewHeight = ViewHeight.MEDIUM;\n } else if (windowHeight > MOBILE_LANDSCAPE_HEIGHT) {\n viewHeight = ViewHeight.SMALL;\n } else {\n viewHeight = ViewHeight.EXTRA_SMALL;\n }\n\n if (!bridge.type) {\n props.viewWidth && (viewWidth = props.viewWidth);\n props.viewHeight && (viewHeight = props.viewHeight);\n\n hasMouse = props.hasMouse ?? hasMouse;\n deviceHasHover = props.deviceHasHover ?? deviceHasHover;\n }\n\n if (viewWidth <= ViewWidth.MOBILE) {\n sizeX = SizeType.COMPACT;\n }\n\n if (\n (viewWidth >= ViewWidth.SMALL_TABLET && hasMouse) ||\n viewHeight <= ViewHeight.EXTRA_SMALL\n ) {\n sizeY = SizeType.COMPACT;\n }\n\n if (!bridge.type) {\n props.sizeX && (sizeX = props.sizeX);\n props.sizeY && (sizeY = props.sizeY);\n }\n\n if (\n bridge.type === \"force_mobile\" ||\n bridge.type === \"force_mobile_compact\"\n ) {\n viewWidth = ViewWidth.MOBILE;\n sizeX = SizeType.COMPACT;\n\n if (bridge.type === \"force_mobile_compact\") {\n sizeY = SizeType.COMPACT;\n } else {\n sizeY = SizeType.REGULAR;\n }\n }\n\n return { viewWidth, viewHeight, sizeX, sizeY, hasMouse, deviceHasHover };\n}\n"],"file":"AdaptivityProvider.js"}
@@ -23,8 +23,6 @@ var _Tappable = require("../Tappable/Tappable");
23
23
 
24
24
  var _PopoutWrapper = require("../PopoutWrapper/PopoutWrapper");
25
25
 
26
- var _getClassName = require("../../helpers/getClassName");
27
-
28
26
  var _classNames = require("../../lib/classNames");
29
27
 
30
28
  var _platform = require("../../lib/platform");
@@ -125,14 +123,14 @@ var AlertAction = function AlertAction(_ref) {
125
123
  }, restProps), action.title);
126
124
  }
127
125
 
128
- var mode = action.mode === "cancel" ? "secondary" : "primary";
126
+ var mode = "tertiary"; // TODO v5.0.0 поправить под новую адаптивность
129
127
 
130
- if (platform === _platform.ANDROID) {
131
- mode = "tertiary";
128
+ if (viewWidth === _withAdaptivity.ViewWidth.DESKTOP && action.mode === "destructive") {
129
+ mode = "destructive";
130
+ }
132
131
 
133
- if (viewWidth === _withAdaptivity.ViewWidth.DESKTOP && action.mode === "destructive") {
134
- mode = "destructive";
135
- }
132
+ if (platform === _platform.VKCOM) {
133
+ mode = action.mode === "cancel" ? "secondary" : "primary";
136
134
  }
137
135
 
138
136
  return (0, _jsxRuntime.createScopedElement)(_Button.Button, {
@@ -179,9 +177,10 @@ var Alert = function Alert(_ref2) {
179
177
 
180
178
  var elementRef = React.useRef(null);
181
179
  var resolvedActionsLayout = platform === _platform.VKCOM ? "horizontal" : actionsLayout;
182
- var canShowCloseButton = platform === _platform.VKCOM || platform === _platform.ANDROID && viewWidth >= _withAdaptivity.ViewWidth.SMALL_TABLET;
183
- var isDesktop = viewWidth >= _withAdaptivity.ViewWidth.SMALL_TABLET;
184
- var timeout = platform === _platform.ANDROID || platform === _platform.VKCOM ? 200 : 300;
180
+ var canShowCloseButton = platform !== _platform.IOS && viewWidth >= _withAdaptivity.ViewWidth.SMALL_TABLET;
181
+ var isDesktop = viewWidth >= _withAdaptivity.ViewWidth.SMALL_TABLET; // TODO v5.0.0 поправить под новую адаптивность
182
+
183
+ var timeout = platform === _platform.IOS ? 300 : 200;
185
184
  var close = React.useCallback(function () {
186
185
  setClosing(true);
187
186
  waitTransitionFinish(elementRef.current, function (e) {
@@ -217,7 +216,7 @@ var Alert = function Alert(_ref2) {
217
216
  onClick: _utils.stopPropagation,
218
217
  onClose: close,
219
218
  timeout: timeout,
220
- vkuiClass: (0, _classNames.classNames)((0, _getClassName.getClassName)("Alert", platform), resolvedActionsLayout === "vertical" ? "Alert--v" : "Alert--h", closing && "Alert--closing", isDesktop && "Alert--desktop"),
219
+ vkuiClass: (0, _classNames.classNames)("Alert", platform === _platform.IOS && "Alert--ios", platform === _platform.VKCOM && "Alert--vkcom", resolvedActionsLayout === "vertical" ? "Alert--v" : "Alert--h", closing && "Alert--closing", isDesktop && "Alert--desktop"),
221
220
  role: "alertdialog",
222
221
  "aria-modal": true,
223
222
  "aria-labelledby": "vkui--alert--title",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Alert/Alert.tsx"],"names":["AlertHeader","props","platform","IOS","AlertText","VKCOM","AlertAction","action","onItemClick","restProps","viewWidth","handleItemClick","React","useCallback","Component","href","mode","target","title","ANDROID","ViewWidth","DESKTOP","Alert","actions","actionsLayout","children","className","style","text","header","onClose","dismissLabel","waitTransitionFinish","useState","closing","setClosing","elementRef","useRef","resolvedActionsLayout","canShowCloseButton","SMALL_TABLET","isDesktop","timeout","close","current","e","propertyName","item","autoclose","stopPropagation","map","i"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { Tappable } from \"../Tappable/Tappable\";\nimport { PopoutWrapper } from \"../PopoutWrapper/PopoutWrapper\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { ANDROID, VKCOM, IOS } from \"../../lib/platform\";\nimport { ViewWidth } from \"../../hoc/withAdaptivity\";\nimport { Button, ButtonProps } from \"../Button/Button\";\nimport { hasReactNode, stopPropagation } from \"../../lib/utils\";\nimport { Title } from \"../Typography/Title/Title\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { ModalDismissButton } from \"../ModalDismissButton/ModalDismissButton\";\nimport { FocusTrap } from \"../FocusTrap/FocusTrap\";\nimport { useScrollLock } from \"../AppRoot/ScrollContext\";\nimport { useWaitTransitionFinish } from \"../../hooks/useWaitTransitionFinish\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport \"./Alert.css\";\n\nexport type AlertActionInterface = AlertAction &\n React.AnchorHTMLAttributes<HTMLElement>;\n\nexport interface AlertAction extends Pick<ButtonProps, \"Component\" | \"href\"> {\n title: string;\n action?: VoidFunction;\n autoclose?: boolean;\n mode: \"cancel\" | \"destructive\" | \"default\";\n}\n\nexport interface AlertProps extends React.HTMLAttributes<HTMLElement> {\n actionsLayout?: \"vertical\" | \"horizontal\";\n actions?: AlertAction[];\n header?: React.ReactNode;\n text?: React.ReactNode;\n onClose?: VoidFunction;\n\n /**\n * `aria-label` для кнопки закрытия. Необходим, чтобы кнопка была доступной.\n */\n dismissLabel?: string;\n}\n\ntype ItemClickHandler = (item: AlertActionInterface) => void;\n\ninterface AlertTypography {\n id: string;\n children?: React.ReactNode;\n}\n\nconst AlertHeader = (props: AlertTypography) => {\n const platform = usePlatform();\n\n switch (platform) {\n case IOS:\n return (\n <Title vkuiClass=\"Alert__header\" weight=\"1\" level=\"3\" {...props} />\n );\n default:\n return (\n <Title vkuiClass=\"Alert__header\" weight=\"2\" level=\"2\" {...props} />\n );\n }\n};\n\nconst AlertText = (props: AlertTypography) => {\n const platform = usePlatform();\n\n switch (platform) {\n case VKCOM:\n return <Caption vkuiClass=\"Alert__text\" {...props} />;\n case IOS:\n return <Caption vkuiClass=\"Alert__text\" level=\"2\" {...props} />;\n default:\n return (\n <Text Component=\"span\" vkuiClass=\"Alert__text\" weight=\"3\" {...props} />\n );\n }\n};\n\ninterface AlertActionProps {\n action: AlertActionInterface;\n onItemClick: ItemClickHandler;\n}\n\nconst AlertAction = ({\n action,\n onItemClick,\n ...restProps\n}: AlertActionProps) => {\n const platform = usePlatform();\n const { viewWidth } = useAdaptivity();\n const handleItemClick = React.useCallback(\n () => onItemClick(action),\n [onItemClick, action]\n );\n\n if (platform === IOS) {\n const { Component = \"button\" } = action;\n return (\n <Tappable\n Component={action.href ? \"a\" : Component}\n vkuiClass={classNames(\"Alert__action\", `Alert__action--${action.mode}`)}\n onClick={handleItemClick}\n href={action.href}\n target={action.target}\n {...restProps}\n >\n {action.title}\n </Tappable>\n );\n }\n\n let mode: ButtonProps[\"mode\"] =\n action.mode === \"cancel\" ? \"secondary\" : \"primary\";\n\n if (platform === ANDROID) {\n mode = \"tertiary\";\n\n if (viewWidth === ViewWidth.DESKTOP && action.mode === \"destructive\") {\n mode = \"destructive\";\n }\n }\n\n return (\n <Button\n vkuiClass={classNames(\"Alert__button\", `Alert__button--${action.mode}`)}\n mode={mode}\n size=\"m\"\n onClick={handleItemClick}\n Component={action.Component}\n href={action.href}\n target={action.target}\n >\n {action.title}\n </Button>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Alert\n */\nexport const Alert = ({\n actions = [],\n actionsLayout = \"horizontal\",\n children,\n className,\n style,\n text,\n header,\n onClose,\n dismissLabel = \"Закрыть предупреждение\",\n ...restProps\n}: AlertProps) => {\n const platform = usePlatform();\n const { viewWidth } = useAdaptivity();\n const { waitTransitionFinish } = useWaitTransitionFinish();\n\n const [closing, setClosing] = React.useState(false);\n\n const elementRef = React.useRef<HTMLDivElement>(null);\n\n const resolvedActionsLayout: AlertProps[\"actionsLayout\"] =\n platform === VKCOM ? \"horizontal\" : actionsLayout;\n const canShowCloseButton =\n platform === VKCOM ||\n (platform === ANDROID && viewWidth >= ViewWidth.SMALL_TABLET);\n const isDesktop = viewWidth >= ViewWidth.SMALL_TABLET;\n\n const timeout = platform === ANDROID || platform === VKCOM ? 200 : 300;\n\n const close = React.useCallback(() => {\n setClosing(true);\n waitTransitionFinish(\n elementRef.current,\n (e?: TransitionEvent) => {\n if (!e || e.propertyName === \"opacity\") {\n onClose && onClose();\n }\n },\n timeout\n );\n }, [elementRef, waitTransitionFinish, onClose, timeout]);\n\n const onItemClick: ItemClickHandler = React.useCallback(\n (item: AlertActionInterface) => {\n const { action, autoclose } = item;\n\n if (autoclose) {\n setClosing(true);\n waitTransitionFinish(\n elementRef.current,\n (e?: TransitionEvent) => {\n if (!e || e.propertyName === \"opacity\") {\n onClose && onClose();\n action && action();\n }\n },\n timeout\n );\n } else {\n action && action();\n }\n },\n [elementRef, waitTransitionFinish, onClose, timeout]\n );\n\n useScrollLock();\n\n return (\n <PopoutWrapper\n className={className}\n closing={closing}\n style={style}\n onClick={close}\n >\n <FocusTrap\n {...restProps}\n getRootRef={elementRef}\n onClick={stopPropagation}\n onClose={close}\n timeout={timeout}\n vkuiClass={classNames(\n getClassName(\"Alert\", platform),\n resolvedActionsLayout === \"vertical\" ? \"Alert--v\" : \"Alert--h\",\n closing && \"Alert--closing\",\n isDesktop && \"Alert--desktop\"\n )}\n role=\"alertdialog\"\n aria-modal\n aria-labelledby=\"vkui--alert--title\"\n aria-describedby=\"vkui--alert--desc\"\n >\n <div vkuiClass=\"Alert__content\">\n {hasReactNode(header) && (\n <AlertHeader id=\"vkui--alert--title\">{header}</AlertHeader>\n )}\n {hasReactNode(text) && (\n <AlertText id=\"vkui--alert--desc\">{text}</AlertText>\n )}\n {children}\n </div>\n <div vkuiClass=\"Alert__actions\">\n {actions.map((action, i) => (\n <AlertAction key={i} action={action} onItemClick={onItemClick} />\n ))}\n </div>\n {canShowCloseButton && (\n <ModalDismissButton onClick={close} aria-label={dismissLabel} />\n )}\n </FocusTrap>\n </PopoutWrapper>\n );\n};\n"],"file":"Alert.js"}
1
+ {"version":3,"sources":["../../../../src/components/Alert/Alert.tsx"],"names":["AlertHeader","props","platform","IOS","AlertText","VKCOM","AlertAction","action","onItemClick","restProps","viewWidth","handleItemClick","React","useCallback","Component","href","mode","target","title","ViewWidth","DESKTOP","Alert","actions","actionsLayout","children","className","style","text","header","onClose","dismissLabel","waitTransitionFinish","useState","closing","setClosing","elementRef","useRef","resolvedActionsLayout","canShowCloseButton","SMALL_TABLET","isDesktop","timeout","close","current","e","propertyName","item","autoclose","stopPropagation","map","i"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { Tappable } from \"../Tappable/Tappable\";\nimport { PopoutWrapper } from \"../PopoutWrapper/PopoutWrapper\";\nimport { classNames } from \"../../lib/classNames\";\nimport { VKCOM, IOS } from \"../../lib/platform\";\nimport { ViewWidth } from \"../../hoc/withAdaptivity\";\nimport { Button, ButtonProps } from \"../Button/Button\";\nimport { hasReactNode, stopPropagation } from \"../../lib/utils\";\nimport { Title } from \"../Typography/Title/Title\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { ModalDismissButton } from \"../ModalDismissButton/ModalDismissButton\";\nimport { FocusTrap } from \"../FocusTrap/FocusTrap\";\nimport { useScrollLock } from \"../AppRoot/ScrollContext\";\nimport { useWaitTransitionFinish } from \"../../hooks/useWaitTransitionFinish\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport \"./Alert.css\";\n\nexport type AlertActionInterface = AlertAction &\n React.AnchorHTMLAttributes<HTMLElement>;\n\nexport interface AlertAction extends Pick<ButtonProps, \"Component\" | \"href\"> {\n title: string;\n action?: VoidFunction;\n autoclose?: boolean;\n mode: \"cancel\" | \"destructive\" | \"default\";\n}\n\nexport interface AlertProps extends React.HTMLAttributes<HTMLElement> {\n actionsLayout?: \"vertical\" | \"horizontal\";\n actions?: AlertAction[];\n header?: React.ReactNode;\n text?: React.ReactNode;\n onClose?: VoidFunction;\n\n /**\n * `aria-label` для кнопки закрытия. Необходим, чтобы кнопка была доступной.\n */\n dismissLabel?: string;\n}\n\ntype ItemClickHandler = (item: AlertActionInterface) => void;\n\ninterface AlertTypography {\n id: string;\n children?: React.ReactNode;\n}\n\nconst AlertHeader = (props: AlertTypography) => {\n const platform = usePlatform();\n\n switch (platform) {\n case IOS:\n return (\n <Title vkuiClass=\"Alert__header\" weight=\"1\" level=\"3\" {...props} />\n );\n default:\n return (\n <Title vkuiClass=\"Alert__header\" weight=\"2\" level=\"2\" {...props} />\n );\n }\n};\n\nconst AlertText = (props: AlertTypography) => {\n const platform = usePlatform();\n\n switch (platform) {\n case VKCOM:\n return <Caption vkuiClass=\"Alert__text\" {...props} />;\n case IOS:\n return <Caption vkuiClass=\"Alert__text\" level=\"2\" {...props} />;\n default:\n return (\n <Text Component=\"span\" vkuiClass=\"Alert__text\" weight=\"3\" {...props} />\n );\n }\n};\n\ninterface AlertActionProps {\n action: AlertActionInterface;\n onItemClick: ItemClickHandler;\n}\n\nconst AlertAction = ({\n action,\n onItemClick,\n ...restProps\n}: AlertActionProps) => {\n const platform = usePlatform();\n const { viewWidth } = useAdaptivity();\n const handleItemClick = React.useCallback(\n () => onItemClick(action),\n [onItemClick, action]\n );\n\n if (platform === IOS) {\n const { Component = \"button\" } = action;\n return (\n <Tappable\n Component={action.href ? \"a\" : Component}\n vkuiClass={classNames(\"Alert__action\", `Alert__action--${action.mode}`)}\n onClick={handleItemClick}\n href={action.href}\n target={action.target}\n {...restProps}\n >\n {action.title}\n </Tappable>\n );\n }\n\n let mode: ButtonProps[\"mode\"] = \"tertiary\";\n\n // TODO v5.0.0 поправить под новую адаптивность\n if (viewWidth === ViewWidth.DESKTOP && action.mode === \"destructive\") {\n mode = \"destructive\";\n }\n\n if (platform === VKCOM) {\n mode = action.mode === \"cancel\" ? \"secondary\" : \"primary\";\n }\n\n return (\n <Button\n vkuiClass={classNames(\"Alert__button\", `Alert__button--${action.mode}`)}\n mode={mode}\n size=\"m\"\n onClick={handleItemClick}\n Component={action.Component}\n href={action.href}\n target={action.target}\n >\n {action.title}\n </Button>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Alert\n */\nexport const Alert = ({\n actions = [],\n actionsLayout = \"horizontal\",\n children,\n className,\n style,\n text,\n header,\n onClose,\n dismissLabel = \"Закрыть предупреждение\",\n ...restProps\n}: AlertProps) => {\n const platform = usePlatform();\n const { viewWidth } = useAdaptivity();\n const { waitTransitionFinish } = useWaitTransitionFinish();\n\n const [closing, setClosing] = React.useState(false);\n\n const elementRef = React.useRef<HTMLDivElement>(null);\n\n const resolvedActionsLayout: AlertProps[\"actionsLayout\"] =\n platform === VKCOM ? \"horizontal\" : actionsLayout;\n const canShowCloseButton =\n platform !== IOS && viewWidth >= ViewWidth.SMALL_TABLET;\n const isDesktop = viewWidth >= ViewWidth.SMALL_TABLET; // TODO v5.0.0 поправить под новую адаптивность\n\n const timeout = platform === IOS ? 300 : 200;\n\n const close = React.useCallback(() => {\n setClosing(true);\n waitTransitionFinish(\n elementRef.current,\n (e?: TransitionEvent) => {\n if (!e || e.propertyName === \"opacity\") {\n onClose && onClose();\n }\n },\n timeout\n );\n }, [elementRef, waitTransitionFinish, onClose, timeout]);\n\n const onItemClick: ItemClickHandler = React.useCallback(\n (item: AlertActionInterface) => {\n const { action, autoclose } = item;\n\n if (autoclose) {\n setClosing(true);\n waitTransitionFinish(\n elementRef.current,\n (e?: TransitionEvent) => {\n if (!e || e.propertyName === \"opacity\") {\n onClose && onClose();\n action && action();\n }\n },\n timeout\n );\n } else {\n action && action();\n }\n },\n [elementRef, waitTransitionFinish, onClose, timeout]\n );\n\n useScrollLock();\n\n return (\n <PopoutWrapper\n className={className}\n closing={closing}\n style={style}\n onClick={close}\n >\n <FocusTrap\n {...restProps}\n getRootRef={elementRef}\n onClick={stopPropagation}\n onClose={close}\n timeout={timeout}\n vkuiClass={classNames(\n \"Alert\",\n platform === IOS && \"Alert--ios\",\n platform === VKCOM && \"Alert--vkcom\",\n resolvedActionsLayout === \"vertical\" ? \"Alert--v\" : \"Alert--h\",\n closing && \"Alert--closing\",\n isDesktop && \"Alert--desktop\"\n )}\n role=\"alertdialog\"\n aria-modal\n aria-labelledby=\"vkui--alert--title\"\n aria-describedby=\"vkui--alert--desc\"\n >\n <div vkuiClass=\"Alert__content\">\n {hasReactNode(header) && (\n <AlertHeader id=\"vkui--alert--title\">{header}</AlertHeader>\n )}\n {hasReactNode(text) && (\n <AlertText id=\"vkui--alert--desc\">{text}</AlertText>\n )}\n {children}\n </div>\n <div vkuiClass=\"Alert__actions\">\n {actions.map((action, i) => (\n <AlertAction key={i} action={action} onItemClick={onItemClick} />\n ))}\n </div>\n {canShowCloseButton && (\n <ModalDismissButton onClick={close} aria-label={dismissLabel} />\n )}\n </FocusTrap>\n </PopoutWrapper>\n );\n};\n"],"file":"Alert.js"}
@@ -221,11 +221,8 @@ var AppRoot = (0, _withAdaptivity.withAdaptivity)(function (_ref) {
221
221
  globalClasses: !noLegacyClasses
222
222
  }, children)));
223
223
  return mode === "partial" ? content : (0, _jsxRuntime.createScopedElement)("div", (0, _extends2.default)({
224
- ref: rootRef // eslint-disable-next-line vkui/no-object-expression-in-arguments
225
- ,
226
- vkuiClass: (0, _classNames.classNames)("AppRoot", {
227
- "AppRoot--no-mouse": !hasMouse
228
- })
224
+ ref: rootRef,
225
+ vkuiClass: (0, _classNames.classNames)("AppRoot", !hasMouse && "AppRoot--no-mouse")
229
226
  }, props), content);
230
227
  }, {
231
228
  sizeX: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/AppRoot/AppRoot.tsx"],"names":["warn","AppRoot","children","_mode","mode","_embedded","embedded","sizeX","hasMouse","noLegacyClasses","scroll","portalRoot","portalRootProp","disablePortal","props","isKeyboardInputActive","rootRef","React","useRef","useState","setPortalRoot","document","insets","useContext","ConfigProviderContext","appearance","classScopingMode","noConflict","process","env","NODE_ENV","portal","current","createElement","classList","add","body","appendChild","parentElement","removeChild","noop","parent","classes","concat","remove","documentElement","undefined","key","hasOwnProperty","inset","style","setProperty","removeProperty","SizeType","REGULAR","container","ScrollController","useMemo","ElementScrollController","GlobalScrollController","content","appRoot","keyboardInput","displayName"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { useDOM } from \"../../lib/dom\";\nimport { classNames } from \"../../lib/classNames\";\nimport { AppRootContext } from \"./AppRootContext\";\nimport {\n withAdaptivity,\n SizeType,\n AdaptivityProps,\n} from \"../../hoc/withAdaptivity\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { classScopingMode } from \"../../lib/classScopingMode\";\nimport { IconSettingsProvider } from \"@vkontakte/icons\";\nimport {\n ElementScrollController,\n GlobalScrollController,\n} from \"./ScrollContext\";\nimport { noop } from \"../../lib/utils\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { useKeyboardInputTracker } from \"../../hooks/useKeyboardInputTracker\";\nimport { useInsets } from \"../../hooks/useInsets\";\nimport { Insets } from \"@vkontakte/vk-bridge\";\nimport { ConfigProviderContext } from \"../ConfigProvider/ConfigProviderContext\";\nimport { isRefObject } from \"../../lib/isRefObject\";\nimport \"./AppRoot.css\";\n\n// Используйте classList, но будьте осторожны\n/* eslint-disable no-restricted-properties */\n\nexport interface AppRootProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Pick<AdaptivityProps, \"sizeX\" | \"hasMouse\"> {\n /** @deprecated Use mode=\"embedded\" */\n embedded?: boolean;\n /** Режим встраивания */\n mode?: \"partial\" | \"embedded\" | \"full\";\n window?: Window;\n /** Убирает классы без префикса (.Button) */\n noLegacyClasses?: boolean;\n scroll?: \"global\" | \"contain\";\n /** Элемент используемый в качестве root для порталов\n * При передаче своего элемента необходимо задать ему class=\"vkui__portal-root\" и добавить в DOM\n */\n // TODO: v5.0.0 изменить тип на HTMLElement\n portalRoot?: HTMLDivElement | React.RefObject<HTMLDivElement> | null;\n /** Disable portal for components */\n disablePortal?: boolean;\n}\n\nconst warn = warnOnce(\"AppRoot\");\n\n/**\n * @see https://vkcom.github.io/VKUI/#/AppRoot\n */\nexport const AppRoot = withAdaptivity<AppRootProps>(\n ({\n children,\n mode: _mode,\n embedded: _embedded,\n sizeX,\n hasMouse,\n noLegacyClasses = false,\n scroll = \"global\",\n portalRoot: portalRootProp = null,\n disablePortal,\n ...props\n }) => {\n // normalize mode\n const mode = _mode || (_embedded ? \"embedded\" : \"full\");\n const isKeyboardInputActive = useKeyboardInputTracker();\n const rootRef = React.useRef<HTMLDivElement | null>(null);\n const [portalRoot, setPortalRoot] = React.useState<HTMLDivElement | null>(\n null\n );\n const { document } = useDOM();\n const insets = useInsets();\n const { appearance } = React.useContext(ConfigProviderContext);\n\n classScopingMode.noConflict = noLegacyClasses;\n\n if (process.env.NODE_ENV === \"development\") {\n if (scroll !== \"global\" && mode !== \"embedded\") {\n warn(\n `Свойство scroll=\"${scroll}\" поддерживается только в режиме embedded`,\n \"error\"\n );\n }\n if (_mode && _embedded) {\n warn(`Свойство mode=\"${mode}\" приоритетнее, чем \"embedded\"`);\n }\n }\n\n // setup portal\n useIsomorphicLayoutEffect(() => {\n let portal: HTMLDivElement | null = null;\n if (portalRootProp) {\n if (isRefObject(portalRootProp)) {\n portal = portalRootProp.current;\n } else {\n portal = portalRootProp;\n }\n }\n if (!portal) {\n portal = document!.createElement(\"div\");\n portal.classList.add(\"vkui__portal-root\");\n document!.body.appendChild(portal);\n }\n setPortalRoot(portal);\n return () => {\n portal?.parentElement?.removeChild(portal);\n };\n }, [portalRootProp]);\n\n // setup root classes\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\") {\n return noop;\n }\n\n const parent = rootRef.current?.parentElement;\n const classes = [\"vkui__root\"].concat(\n mode === \"embedded\" ? \"vkui__root--embedded\" : []\n );\n parent?.classList.add(...classes);\n\n return () => {\n parent?.classList.remove(...classes);\n };\n }, []);\n\n useIsomorphicLayoutEffect(() => {\n if (mode === \"full\") {\n document!.documentElement.classList.add(\"vkui\");\n\n return () => {\n document!.documentElement.classList.remove(\"vkui\");\n };\n }\n\n return undefined;\n }, [document, mode]);\n\n // setup insets\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\" || !rootRef.current?.parentElement) {\n return noop;\n }\n\n const parent = rootRef.current.parentElement;\n\n for (const key in insets) {\n if (\n insets.hasOwnProperty(key) &&\n typeof insets[key as keyof Insets] === \"number\"\n ) {\n const inset = insets[key as keyof Insets];\n parent.style.setProperty(`--safe-area-inset-${key}`, `${inset}px`);\n portalRoot &&\n portalRoot.style.setProperty(\n `--safe-area-inset-${key}`,\n `${inset}px`\n );\n }\n }\n\n return () => {\n for (const key in insets) {\n if (insets.hasOwnProperty(key)) {\n parent.style.removeProperty(`--safe-area-inset-${key}`);\n portalRoot &&\n portalRoot.style.removeProperty(`--safe-area-inset-${key}`);\n }\n }\n };\n }, [insets, portalRoot]);\n\n // adaptivity handler\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\" || sizeX !== SizeType.REGULAR) {\n return noop;\n }\n const container =\n mode === \"embedded\" ? rootRef.current?.parentElement : document!.body;\n container?.classList.add(\"vkui--sizeX-regular\");\n return () => container?.classList.remove(\"vkui--sizeX-regular\");\n }, [sizeX]);\n\n useIsomorphicLayoutEffect(() => {\n if (mode !== \"full\" || appearance === undefined) {\n return noop;\n }\n document!.documentElement.style.setProperty(\"color-scheme\", appearance);\n\n return () =>\n document!.documentElement.style.removeProperty(\"color-scheme\");\n }, [appearance]);\n\n const ScrollController = React.useMemo(\n () =>\n scroll === \"contain\" ? ElementScrollController : GlobalScrollController,\n [scroll]\n );\n\n const content = (\n <AppRootContext.Provider\n value={{\n appRoot: rootRef,\n portalRoot,\n embedded: mode === \"embedded\",\n keyboardInput: isKeyboardInputActive,\n mode,\n disablePortal,\n }}\n >\n <ScrollController elRef={rootRef}>\n <IconSettingsProvider\n classPrefix=\"vkui\"\n globalClasses={!noLegacyClasses}\n >\n {children}\n </IconSettingsProvider>\n </ScrollController>\n </AppRootContext.Provider>\n );\n\n return mode === \"partial\" ? (\n content\n ) : (\n <div\n ref={rootRef}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\"AppRoot\", {\n \"AppRoot--no-mouse\": !hasMouse,\n })}\n {...props}\n >\n {content}\n </div>\n );\n },\n {\n sizeX: true,\n hasMouse: true,\n }\n);\n\nAppRoot.displayName = \"AppRoot\";\n"],"file":"AppRoot.js"}
1
+ {"version":3,"sources":["../../../../src/components/AppRoot/AppRoot.tsx"],"names":["warn","AppRoot","children","_mode","mode","_embedded","embedded","sizeX","hasMouse","noLegacyClasses","scroll","portalRoot","portalRootProp","disablePortal","props","isKeyboardInputActive","rootRef","React","useRef","useState","setPortalRoot","document","insets","useContext","ConfigProviderContext","appearance","classScopingMode","noConflict","process","env","NODE_ENV","portal","current","createElement","classList","add","body","appendChild","parentElement","removeChild","noop","parent","classes","concat","remove","documentElement","undefined","key","hasOwnProperty","inset","style","setProperty","removeProperty","SizeType","REGULAR","container","ScrollController","useMemo","ElementScrollController","GlobalScrollController","content","appRoot","keyboardInput","displayName"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { useDOM } from \"../../lib/dom\";\nimport { classNames } from \"../../lib/classNames\";\nimport { AppRootContext } from \"./AppRootContext\";\nimport {\n withAdaptivity,\n SizeType,\n AdaptivityProps,\n} from \"../../hoc/withAdaptivity\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { classScopingMode } from \"../../lib/classScopingMode\";\nimport { IconSettingsProvider } from \"@vkontakte/icons\";\nimport {\n ElementScrollController,\n GlobalScrollController,\n} from \"./ScrollContext\";\nimport { noop } from \"../../lib/utils\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { useKeyboardInputTracker } from \"../../hooks/useKeyboardInputTracker\";\nimport { useInsets } from \"../../hooks/useInsets\";\nimport { Insets } from \"@vkontakte/vk-bridge\";\nimport { ConfigProviderContext } from \"../ConfigProvider/ConfigProviderContext\";\nimport { isRefObject } from \"../../lib/isRefObject\";\nimport \"./AppRoot.css\";\n\n// Используйте classList, но будьте осторожны\n/* eslint-disable no-restricted-properties */\n\nexport interface AppRootProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Pick<AdaptivityProps, \"sizeX\" | \"hasMouse\"> {\n /** @deprecated Use mode=\"embedded\" */\n embedded?: boolean;\n /** Режим встраивания */\n mode?: \"partial\" | \"embedded\" | \"full\";\n window?: Window;\n /** Убирает классы без префикса (.Button) */\n noLegacyClasses?: boolean;\n scroll?: \"global\" | \"contain\";\n /** Элемент используемый в качестве root для порталов\n * При передаче своего элемента необходимо задать ему class=\"vkui__portal-root\" и добавить в DOM\n */\n // TODO: v5.0.0 изменить тип на HTMLElement\n portalRoot?: HTMLDivElement | React.RefObject<HTMLDivElement> | null;\n /** Disable portal for components */\n disablePortal?: boolean;\n}\n\nconst warn = warnOnce(\"AppRoot\");\n\n/**\n * @see https://vkcom.github.io/VKUI/#/AppRoot\n */\nexport const AppRoot = withAdaptivity<AppRootProps>(\n ({\n children,\n mode: _mode,\n embedded: _embedded,\n sizeX,\n hasMouse,\n noLegacyClasses = false,\n scroll = \"global\",\n portalRoot: portalRootProp = null,\n disablePortal,\n ...props\n }) => {\n // normalize mode\n const mode = _mode || (_embedded ? \"embedded\" : \"full\");\n const isKeyboardInputActive = useKeyboardInputTracker();\n const rootRef = React.useRef<HTMLDivElement | null>(null);\n const [portalRoot, setPortalRoot] = React.useState<HTMLDivElement | null>(\n null\n );\n const { document } = useDOM();\n const insets = useInsets();\n const { appearance } = React.useContext(ConfigProviderContext);\n\n classScopingMode.noConflict = noLegacyClasses;\n\n if (process.env.NODE_ENV === \"development\") {\n if (scroll !== \"global\" && mode !== \"embedded\") {\n warn(\n `Свойство scroll=\"${scroll}\" поддерживается только в режиме embedded`,\n \"error\"\n );\n }\n if (_mode && _embedded) {\n warn(`Свойство mode=\"${mode}\" приоритетнее, чем \"embedded\"`);\n }\n }\n\n // setup portal\n useIsomorphicLayoutEffect(() => {\n let portal: HTMLDivElement | null = null;\n if (portalRootProp) {\n if (isRefObject(portalRootProp)) {\n portal = portalRootProp.current;\n } else {\n portal = portalRootProp;\n }\n }\n if (!portal) {\n portal = document!.createElement(\"div\");\n portal.classList.add(\"vkui__portal-root\");\n document!.body.appendChild(portal);\n }\n setPortalRoot(portal);\n return () => {\n portal?.parentElement?.removeChild(portal);\n };\n }, [portalRootProp]);\n\n // setup root classes\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\") {\n return noop;\n }\n\n const parent = rootRef.current?.parentElement;\n const classes = [\"vkui__root\"].concat(\n mode === \"embedded\" ? \"vkui__root--embedded\" : []\n );\n parent?.classList.add(...classes);\n\n return () => {\n parent?.classList.remove(...classes);\n };\n }, []);\n\n useIsomorphicLayoutEffect(() => {\n if (mode === \"full\") {\n document!.documentElement.classList.add(\"vkui\");\n\n return () => {\n document!.documentElement.classList.remove(\"vkui\");\n };\n }\n\n return undefined;\n }, [document, mode]);\n\n // setup insets\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\" || !rootRef.current?.parentElement) {\n return noop;\n }\n\n const parent = rootRef.current.parentElement;\n\n for (const key in insets) {\n if (\n insets.hasOwnProperty(key) &&\n typeof insets[key as keyof Insets] === \"number\"\n ) {\n const inset = insets[key as keyof Insets];\n parent.style.setProperty(`--safe-area-inset-${key}`, `${inset}px`);\n portalRoot &&\n portalRoot.style.setProperty(\n `--safe-area-inset-${key}`,\n `${inset}px`\n );\n }\n }\n\n return () => {\n for (const key in insets) {\n if (insets.hasOwnProperty(key)) {\n parent.style.removeProperty(`--safe-area-inset-${key}`);\n portalRoot &&\n portalRoot.style.removeProperty(`--safe-area-inset-${key}`);\n }\n }\n };\n }, [insets, portalRoot]);\n\n // adaptivity handler\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\" || sizeX !== SizeType.REGULAR) {\n return noop;\n }\n const container =\n mode === \"embedded\" ? rootRef.current?.parentElement : document!.body;\n container?.classList.add(\"vkui--sizeX-regular\");\n return () => container?.classList.remove(\"vkui--sizeX-regular\");\n }, [sizeX]);\n\n useIsomorphicLayoutEffect(() => {\n if (mode !== \"full\" || appearance === undefined) {\n return noop;\n }\n document!.documentElement.style.setProperty(\"color-scheme\", appearance);\n\n return () =>\n document!.documentElement.style.removeProperty(\"color-scheme\");\n }, [appearance]);\n\n const ScrollController = React.useMemo(\n () =>\n scroll === \"contain\" ? ElementScrollController : GlobalScrollController,\n [scroll]\n );\n\n const content = (\n <AppRootContext.Provider\n value={{\n appRoot: rootRef,\n portalRoot,\n embedded: mode === \"embedded\",\n keyboardInput: isKeyboardInputActive,\n mode,\n disablePortal,\n }}\n >\n <ScrollController elRef={rootRef}>\n <IconSettingsProvider\n classPrefix=\"vkui\"\n globalClasses={!noLegacyClasses}\n >\n {children}\n </IconSettingsProvider>\n </ScrollController>\n </AppRootContext.Provider>\n );\n\n return mode === \"partial\" ? (\n content\n ) : (\n <div\n ref={rootRef}\n vkuiClass={classNames(\"AppRoot\", !hasMouse && \"AppRoot--no-mouse\")}\n {...props}\n >\n {content}\n </div>\n );\n },\n {\n sizeX: true,\n hasMouse: true,\n }\n);\n\nAppRoot.displayName = \"AppRoot\";\n"],"file":"AppRoot.js"}
@@ -112,11 +112,7 @@ var Avatar = function Avatar(_ref) {
112
112
 
113
113
  var hasSrc = src || srcSet;
114
114
  return (0, _jsxRuntime.createScopedElement)("div", (0, _extends2.default)({}, restProps, {
115
- // eslint-disable-next-line vkui/no-object-expression-in-arguments
116
- vkuiClass: (0, _classNames.classNames)("Avatar", "Avatar--type-".concat(mode), "Avatar--sz-".concat(size), {
117
- "Avatar--shadow": shadow,
118
- "Avatar--failed": failedImage
119
- }),
115
+ vkuiClass: (0, _classNames.classNames)("Avatar", "Avatar--type-".concat(mode), "Avatar--sz-".concat(size), shadow && "Avatar--shadow", failedImage && "Avatar--failed"),
120
116
  className: className,
121
117
  ref: getRootRef,
122
118
  role: hasSrc ? "img" : "presentation",
@@ -146,23 +142,14 @@ var Avatar = function Avatar(_ref) {
146
142
  }), children && (0, _jsxRuntime.createScopedElement)("div", {
147
143
  vkuiClass: "Avatar__children"
148
144
  }, children), overlayIcon && (0, _jsxRuntime.createScopedElement)(_Tappable.Tappable, {
149
- Component: "button" // eslint-disable-next-line vkui/no-object-expression-in-arguments
150
- ,
151
- vkuiClass: (0, _classNames.classNames)("Avatar__overlay", {
152
- "Avatar__overlay--visible": overlayAction === "always",
153
- "Avatar__overlay--light": overlayMode === "light",
154
- "Avatar__overlay--dark": overlayMode === "dark"
155
- }),
145
+ Component: "button",
146
+ vkuiClass: (0, _classNames.classNames)("Avatar__overlay", overlayAction === "always" && "Avatar__overlay--visible", overlayMode === "light" && "Avatar__overlay--light", overlayMode === "dark" && "Avatar__overlay--dark"),
156
147
  hoverMode: "Avatar__overlay--visible",
157
148
  focusVisibleMode: "Avatar__overlay--focus-visible",
158
149
  hasActive: false,
159
150
  onClick: onClick
160
151
  }, overlayIcon), badge && (0, _jsxRuntime.createScopedElement)("div", {
161
- // eslint-disable-next-line vkui/no-object-expression-in-arguments
162
- vkuiClass: (0, _classNames.classNames)("Avatar__badge", {
163
- "Avatar__badge--large": size >= 96,
164
- "Avatar__badge--shadow": badge !== "online" && badge !== "online-mobile"
165
- })
152
+ vkuiClass: (0, _classNames.classNames)("Avatar__badge", size >= 96 && "Avatar__badge--large", badge !== "online" && badge !== "online-mobile" && "Avatar__badge--shadow")
166
153
  }, badge === "online" ? (0, _jsxRuntime.createScopedElement)("div", {
167
154
  vkuiClass: "Avatar__badge-online"
168
155
  }, (0, _jsxRuntime.createScopedElement)(_icons.Icon12Circle, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Avatar/Avatar.tsx"],"names":["AVATAR_DEFAULT_SIZE","AVATAR_DEFAULT_SHADOW","Avatar","alt","crossOrigin","decoding","height","loading","referrerPolicy","sizes","src","srcSet","useMap","width","getRef","size","shadow","mode","className","children","getRootRef","style","ariaLabel","badge","overlayIcon","overlayMode","passedOverlayAction","overlayAction","onClick","restProps","hasMouse","React","useState","failedImage","setFailedImage","onImageError","onImageLoad","borderRadius","hasSrc","undefined"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { Icon12Circle, Icon12OnlineMobile } from \"@vkontakte/icons\";\nimport { classNames } from \"../../lib/classNames\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { Tappable } from \"../Tappable/Tappable\";\nimport { HasRef, HasRootRef } from \"../../types\";\nimport \"./Avatar.css\";\n\nexport interface AvatarProps\n extends React.ImgHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLImageElement> {\n /**\n * Рекомендуемый сет значений: 96 | 88 | 80 | 72 | 64 | 56 | 48 | 44 | 40 | 36 | 32 | 28 | 24\n */\n size?: number;\n mode?: \"default\" | \"image\" | \"app\";\n shadow?: boolean;\n badge?: \"online\" | \"online-mobile\" | JSX.Element;\n overlayIcon?: JSX.Element;\n overlayMode?: \"dark\" | \"light\";\n /**\n * Поведение показа overlay: \"hover\" - при наведении, \"always\" - всегда\n */\n overlayAction?: \"hover\" | \"always\";\n}\n\nexport const AVATAR_DEFAULT_SIZE = 48;\nexport const AVATAR_DEFAULT_SHADOW = true;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Avatar\n */\nexport const Avatar = ({\n alt,\n crossOrigin,\n decoding,\n height,\n loading,\n referrerPolicy,\n sizes,\n src,\n srcSet,\n useMap,\n width,\n getRef,\n size = AVATAR_DEFAULT_SIZE,\n shadow = AVATAR_DEFAULT_SHADOW,\n mode = \"default\",\n className,\n children,\n getRootRef,\n style,\n \"aria-label\": ariaLabel,\n badge,\n overlayIcon,\n overlayMode = \"light\",\n overlayAction: passedOverlayAction,\n onClick,\n ...restProps\n}: AvatarProps) => {\n const { hasMouse } = useAdaptivity();\n const [failedImage, setFailedImage] = React.useState(false);\n\n const overlayAction = passedOverlayAction ?? (hasMouse ? \"hover\" : \"always\");\n\n const onImageError = () => {\n setFailedImage(true);\n };\n\n const onImageLoad = () => {\n setFailedImage(false);\n };\n\n let borderRadius: string | number = \"50%\";\n\n switch (mode) {\n case \"image\":\n size < 64 && (borderRadius = 4);\n size >= 64 && size < 96 && (borderRadius = 6);\n size >= 96 && (borderRadius = 8);\n break;\n case \"app\":\n size <= 40 && (borderRadius = 8);\n size > 40 && size < 56 && (borderRadius = 10);\n size >= 56 && size < 64 && (borderRadius = 12);\n size >= 64 && size < 84 && (borderRadius = 16);\n size >= 84 && (borderRadius = 18);\n break;\n default:\n break;\n }\n\n const hasSrc = src || srcSet;\n\n return (\n <div\n {...restProps}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\n \"Avatar\",\n `Avatar--type-${mode}`,\n `Avatar--sz-${size}`,\n {\n \"Avatar--shadow\": shadow,\n \"Avatar--failed\": failedImage,\n }\n )}\n className={className}\n ref={getRootRef}\n role={hasSrc ? \"img\" : \"presentation\"}\n aria-label={alt || ariaLabel}\n onClick={!overlayIcon ? onClick : undefined}\n style={{ ...style, width: size, height: size, borderRadius }}\n >\n {hasSrc && (\n <img\n crossOrigin={crossOrigin}\n decoding={decoding}\n height={height}\n loading={loading}\n referrerPolicy={referrerPolicy}\n sizes={sizes}\n src={src}\n srcSet={srcSet}\n useMap={useMap}\n width={width}\n ref={getRef}\n onError={onImageError}\n onLoad={onImageLoad}\n vkuiClass=\"Avatar__img\"\n alt=\"\"\n />\n )}\n {children && <div vkuiClass=\"Avatar__children\">{children}</div>}\n {overlayIcon && (\n <Tappable\n Component=\"button\"\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\"Avatar__overlay\", {\n \"Avatar__overlay--visible\": overlayAction === \"always\",\n \"Avatar__overlay--light\": overlayMode === \"light\",\n \"Avatar__overlay--dark\": overlayMode === \"dark\",\n })}\n hoverMode=\"Avatar__overlay--visible\"\n focusVisibleMode=\"Avatar__overlay--focus-visible\"\n hasActive={false}\n onClick={onClick}\n >\n {overlayIcon}\n </Tappable>\n )}\n {badge && (\n <div\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\"Avatar__badge\", {\n \"Avatar__badge--large\": size >= 96,\n \"Avatar__badge--shadow\":\n badge !== \"online\" && badge !== \"online-mobile\",\n })}\n >\n {badge === \"online\" ? (\n <div vkuiClass=\"Avatar__badge-online\">\n <Icon12Circle\n width={size >= 72 ? 15 : 12}\n height={size >= 72 ? 15 : 12}\n />\n </div>\n ) : badge === \"online-mobile\" ? (\n <div vkuiClass=\"Avatar__badge-online-mobile\">\n <Icon12OnlineMobile\n width={size >= 72 ? 9 : 8}\n height={size >= 72 ? 15 : 12}\n />\n </div>\n ) : (\n badge\n )}\n </div>\n )}\n </div>\n );\n};\n"],"file":"Avatar.js"}
1
+ {"version":3,"sources":["../../../../src/components/Avatar/Avatar.tsx"],"names":["AVATAR_DEFAULT_SIZE","AVATAR_DEFAULT_SHADOW","Avatar","alt","crossOrigin","decoding","height","loading","referrerPolicy","sizes","src","srcSet","useMap","width","getRef","size","shadow","mode","className","children","getRootRef","style","ariaLabel","badge","overlayIcon","overlayMode","passedOverlayAction","overlayAction","onClick","restProps","hasMouse","React","useState","failedImage","setFailedImage","onImageError","onImageLoad","borderRadius","hasSrc","undefined"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { Icon12Circle, Icon12OnlineMobile } from \"@vkontakte/icons\";\nimport { classNames } from \"../../lib/classNames\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { Tappable } from \"../Tappable/Tappable\";\nimport { HasRef, HasRootRef } from \"../../types\";\nimport \"./Avatar.css\";\n\nexport interface AvatarProps\n extends React.ImgHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLImageElement> {\n /**\n * Рекомендуемый сет значений: 96 | 88 | 80 | 72 | 64 | 56 | 48 | 44 | 40 | 36 | 32 | 28 | 24\n */\n size?: number;\n mode?: \"default\" | \"image\" | \"app\";\n shadow?: boolean;\n badge?: \"online\" | \"online-mobile\" | JSX.Element;\n overlayIcon?: JSX.Element;\n overlayMode?: \"dark\" | \"light\";\n /**\n * Поведение показа overlay: \"hover\" - при наведении, \"always\" - всегда\n */\n overlayAction?: \"hover\" | \"always\";\n}\n\nexport const AVATAR_DEFAULT_SIZE = 48;\nexport const AVATAR_DEFAULT_SHADOW = true;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Avatar\n */\nexport const Avatar = ({\n alt,\n crossOrigin,\n decoding,\n height,\n loading,\n referrerPolicy,\n sizes,\n src,\n srcSet,\n useMap,\n width,\n getRef,\n size = AVATAR_DEFAULT_SIZE,\n shadow = AVATAR_DEFAULT_SHADOW,\n mode = \"default\",\n className,\n children,\n getRootRef,\n style,\n \"aria-label\": ariaLabel,\n badge,\n overlayIcon,\n overlayMode = \"light\",\n overlayAction: passedOverlayAction,\n onClick,\n ...restProps\n}: AvatarProps) => {\n const { hasMouse } = useAdaptivity();\n const [failedImage, setFailedImage] = React.useState(false);\n\n const overlayAction = passedOverlayAction ?? (hasMouse ? \"hover\" : \"always\");\n\n const onImageError = () => {\n setFailedImage(true);\n };\n\n const onImageLoad = () => {\n setFailedImage(false);\n };\n\n let borderRadius: string | number = \"50%\";\n\n switch (mode) {\n case \"image\":\n size < 64 && (borderRadius = 4);\n size >= 64 && size < 96 && (borderRadius = 6);\n size >= 96 && (borderRadius = 8);\n break;\n case \"app\":\n size <= 40 && (borderRadius = 8);\n size > 40 && size < 56 && (borderRadius = 10);\n size >= 56 && size < 64 && (borderRadius = 12);\n size >= 64 && size < 84 && (borderRadius = 16);\n size >= 84 && (borderRadius = 18);\n break;\n default:\n break;\n }\n\n const hasSrc = src || srcSet;\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(\n \"Avatar\",\n `Avatar--type-${mode}`,\n `Avatar--sz-${size}`,\n shadow && \"Avatar--shadow\",\n failedImage && \"Avatar--failed\"\n )}\n className={className}\n ref={getRootRef}\n role={hasSrc ? \"img\" : \"presentation\"}\n aria-label={alt || ariaLabel}\n onClick={!overlayIcon ? onClick : undefined}\n style={{ ...style, width: size, height: size, borderRadius }}\n >\n {hasSrc && (\n <img\n crossOrigin={crossOrigin}\n decoding={decoding}\n height={height}\n loading={loading}\n referrerPolicy={referrerPolicy}\n sizes={sizes}\n src={src}\n srcSet={srcSet}\n useMap={useMap}\n width={width}\n ref={getRef}\n onError={onImageError}\n onLoad={onImageLoad}\n vkuiClass=\"Avatar__img\"\n alt=\"\"\n />\n )}\n {children && <div vkuiClass=\"Avatar__children\">{children}</div>}\n {overlayIcon && (\n <Tappable\n Component=\"button\"\n vkuiClass={classNames(\n \"Avatar__overlay\",\n overlayAction === \"always\" && \"Avatar__overlay--visible\",\n overlayMode === \"light\" && \"Avatar__overlay--light\",\n overlayMode === \"dark\" && \"Avatar__overlay--dark\"\n )}\n hoverMode=\"Avatar__overlay--visible\"\n focusVisibleMode=\"Avatar__overlay--focus-visible\"\n hasActive={false}\n onClick={onClick}\n >\n {overlayIcon}\n </Tappable>\n )}\n {badge && (\n <div\n vkuiClass={classNames(\n \"Avatar__badge\",\n size >= 96 && \"Avatar__badge--large\",\n badge !== \"online\" &&\n badge !== \"online-mobile\" &&\n \"Avatar__badge--shadow\"\n )}\n >\n {badge === \"online\" ? (\n <div vkuiClass=\"Avatar__badge-online\">\n <Icon12Circle\n width={size >= 72 ? 15 : 12}\n height={size >= 72 ? 15 : 12}\n />\n </div>\n ) : badge === \"online-mobile\" ? (\n <div vkuiClass=\"Avatar__badge-online-mobile\">\n <Icon12OnlineMobile\n width={size >= 72 ? 9 : 8}\n height={size >= 72 ? 15 : 12}\n />\n </div>\n ) : (\n badge\n )}\n </div>\n )}\n </div>\n );\n};\n"],"file":"Avatar.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ButtonGroup/ButtonGroup.tsx"],"names":["ButtonGroup","mode","gap","stretched","align","getRootRef","children","restProps"],"mappings":";;;;;;;;;;;;;;;AACA;;;;AAwBA;AACA;AACA;AACO,IAAMA,WAAW,GAAG,SAAdA,WAAc,OAQH;AAAA,uBAPtBC,IAOsB;AAAA,MAPtBA,IAOsB,0BAPf,YAOe;AAAA,sBANtBC,GAMsB;AAAA,MANtBA,GAMsB,yBANhB,GAMgB;AAAA,4BALtBC,SAKsB;AAAA,MALtBA,SAKsB,+BALV,KAKU;AAAA,wBAJtBC,KAIsB;AAAA,MAJtBA,KAIsB,2BAJd,MAIc;AAAA,MAHtBC,UAGsB,QAHtBA,UAGsB;AAAA,MAFtBC,QAEsB,QAFtBA,QAEsB;AAAA,MADnBC,SACmB;AACtB,SACE;AACE,IAAA,SAAS,EAAE,4BACT,aADS,8BAEYN,IAFZ,GAGTC,GAAG,KAAK,MAAR,+BAAsCA,GAAtC,CAHS,EAITC,SAAS,IAAI,wBAJJ,+BAKaC,KALb,EADb;AAQE,IAAA,IAAI,EAAC,OARP;AASE,IAAA,GAAG,EAAEC;AATP,KAUME,SAVN,GAYGD,QAZH,CADF;AAgBD,CAzBM","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport type { HasRootRef, HasAlign } from \"../../types\";\nimport \"./ButtonGroup.css\";\n\nexport interface ButtonGroupProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement>,\n HasAlign {\n /**\n * Задает расположение элементов внутри группы, вертикальное или горизонтальное.\n */\n mode?: \"vertical\" | \"horizontal\";\n /**\n * Выставляет в зависимости от `mode` отступ по вертикали или горизонтали.\n */\n gap?: \"none\" | \"space\" | \"s\" | \"m\";\n /**\n * Растягивает компонент на всю ширину контейнера.\n *\n * Note: Для потомков соответствующее поведение нужно определять самостоятельно, где это необходимо.\n */\n stretched?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ButtonGroup\n */\nexport const ButtonGroup = ({\n mode = \"horizontal\",\n gap = \"m\",\n stretched = false,\n align = \"left\" /* NOTE: Чтобы блоки по-умолчанию не растягивались на всю ширину контейнера */,\n getRootRef,\n children,\n ...restProps\n}: ButtonGroupProps) => {\n return (\n <div\n vkuiClass={classNames(\n \"ButtonGroup\",\n `ButtonGroup--mode-${mode}`,\n gap !== \"none\" && `ButtonGroup--gap-${gap}`,\n stretched && \"ButtonGroup--stretched\",\n `ButtonGroup--align-${align}`\n )}\n role=\"group\"\n ref={getRootRef}\n {...restProps}\n >\n {children}\n </div>\n );\n};\n"],"file":"ButtonGroup.js"}
1
+ {"version":3,"sources":["../../../../src/components/ButtonGroup/ButtonGroup.tsx"],"names":["ButtonGroup","mode","gap","stretched","align","getRootRef","children","restProps"],"mappings":";;;;;;;;;;;;;;;AACA;;;;AA2BA;AACA;AACA;AACO,IAAMA,WAAW,GAAG,SAAdA,WAAc,OAQH;AAAA,uBAPtBC,IAOsB;AAAA,MAPtBA,IAOsB,0BAPf,YAOe;AAAA,sBANtBC,GAMsB;AAAA,MANtBA,GAMsB,yBANhB,GAMgB;AAAA,4BALtBC,SAKsB;AAAA,MALtBA,SAKsB,+BALV,KAKU;AAAA,wBAJtBC,KAIsB;AAAA,MAJtBA,KAIsB,2BAJd,MAIc;AAAA,MAHtBC,UAGsB,QAHtBA,UAGsB;AAAA,MAFtBC,QAEsB,QAFtBA,QAEsB;AAAA,MADnBC,SACmB;AACtB,SACE;AACE,IAAA,SAAS,EAAE,4BACT,aADS,8BAEYN,IAFZ,GAGTC,GAAG,KAAK,MAAR,+BAAsCA,GAAtC,CAHS,EAITC,SAAS,IAAI,wBAJJ,+BAKaC,KALb,EADb;AAQE,IAAA,IAAI,EAAC,OARP;AASE,IAAA,GAAG,EAAEC;AATP,KAUME,SAVN,GAYGD,QAZH,CADF;AAgBD,CAzBM","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport type { HasRootRef, AlignType } from \"../../types\";\nimport \"./ButtonGroup.css\";\n\nexport interface ButtonGroupProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement> {\n /**\n * Задает расположение элементов внутри группы, вертикальное или горизонтальное.\n */\n mode?: \"vertical\" | \"horizontal\";\n /**\n * Выставляет в зависимости от `mode` отступ по вертикали или горизонтали.\n */\n gap?: \"none\" | \"space\" | \"s\" | \"m\";\n /**\n * Растягивает компонент на всю ширину контейнера.\n *\n * Note: Для потомков соответствующее поведение нужно определять самостоятельно, где это необходимо.\n */\n stretched?: boolean;\n /**\n * Горизонтальное выравнивание элементов внутри группы. Работает только с mode=\"vertical\".\n */\n align?: AlignType;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ButtonGroup\n */\nexport const ButtonGroup = ({\n mode = \"horizontal\",\n gap = \"m\",\n stretched = false,\n align = \"left\" /* NOTE: Чтобы блоки по-умолчанию не растягивались на всю ширину контейнера */,\n getRootRef,\n children,\n ...restProps\n}: ButtonGroupProps) => {\n return (\n <div\n vkuiClass={classNames(\n \"ButtonGroup\",\n `ButtonGroup--mode-${mode}`,\n gap !== \"none\" && `ButtonGroup--gap-${gap}`,\n stretched && \"ButtonGroup--stretched\",\n `ButtonGroup--align-${align}`\n )}\n role=\"group\"\n ref={getRootRef}\n {...restProps}\n >\n {children}\n </div>\n );\n};\n"],"file":"ButtonGroup.js"}