@vkontakte/vkui 4.20.0 → 4.22.1

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 (520) hide show
  1. package/.cache/.eslintcache +1 -1
  2. package/.cache/.stylelintcache +1 -1
  3. package/.cache/.tsbuildinfo +414 -116
  4. package/.cache/ts/src/components/Avatar/Avatar.d.ts +2 -0
  5. package/.cache/ts/src/components/Cell/Cell.d.ts +11 -0
  6. package/.cache/ts/src/components/Cell/CellCheckbox/CellCheckbox.d.ts +5 -0
  7. package/.cache/ts/src/components/Cell/CellDragger/CellDragger.d.ts +6 -0
  8. package/.cache/ts/src/components/Cell/useDraggable.d.ts +13 -0
  9. package/.cache/ts/src/components/CustomSelect/CustomSelect.d.ts +0 -1
  10. package/.cache/ts/src/components/DropdownIcon/DropdownIcon.d.ts +3 -0
  11. package/.cache/ts/src/components/FocusTrap/FocusTrap.d.ts +2 -3
  12. package/.cache/ts/src/components/FormField/FormField.d.ts +2 -3
  13. package/.cache/ts/src/components/FormItem/FormItem.d.ts +2 -3
  14. package/.cache/ts/src/components/FormLayout/FormLayout.d.ts +2 -4
  15. package/.cache/ts/src/components/GridAvatar/GridAvatar.d.ts +9 -0
  16. package/.cache/ts/src/components/HorizontalCell/HorizontalCell.d.ts +2 -3
  17. package/.cache/ts/src/components/HorizontalScroll/HorizontalScroll.d.ts +3 -2
  18. package/.cache/ts/src/components/InitialsAvatar/InitialsAvatar.d.ts +33 -0
  19. package/.cache/ts/src/components/Link/Link.d.ts +1 -2
  20. package/.cache/ts/src/components/ModalRoot/types.d.ts +0 -1
  21. package/.cache/ts/src/components/ModalRoot/useModalManager.d.ts +37 -0
  22. package/.cache/ts/src/components/Removable/Removable.d.ts +2 -1
  23. package/.cache/ts/src/components/SimpleCell/SimpleCell.d.ts +2 -2
  24. package/.cache/ts/src/components/SplitCol/SplitCol.d.ts +3 -3
  25. package/.cache/ts/src/components/SubnavigationBar/SubnavigationBar.d.ts +2 -1
  26. package/.cache/ts/src/components/Switch/Switch.d.ts +2 -3
  27. package/.cache/ts/src/components/TabbarItem/TabbarItem.d.ts +3 -1
  28. package/.cache/ts/src/components/Tappable/Tappable.d.ts +2 -3
  29. package/.cache/ts/src/components/Touch/Touch.d.ts +16 -17
  30. package/.cache/ts/src/components/Typography/Caption/Caption.d.ts +2 -2
  31. package/.cache/ts/src/components/Typography/Headline/Headline.d.ts +2 -2
  32. package/.cache/ts/src/components/Typography/Subhead/Subhead.d.ts +2 -2
  33. package/.cache/ts/src/components/Typography/Text/Text.d.ts +2 -3
  34. package/.cache/ts/src/components/Typography/Title/Title.d.ts +2 -2
  35. package/.cache/ts/src/components/View/utils.d.ts +2 -0
  36. package/.cache/ts/src/index.d.ts +4 -0
  37. package/.cache/ts/src/lib/accessibility.d.ts +1 -1
  38. package/.cache/ts/src/lib/supportEvents.d.ts +3 -1
  39. package/.cache/ts/src/types.d.ts +3 -0
  40. package/dist/cjs/components/ActionSheet/ActionSheet.js +7 -9
  41. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  42. package/dist/cjs/components/Avatar/Avatar.d.ts +2 -0
  43. package/dist/cjs/components/Avatar/Avatar.js +7 -3
  44. package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
  45. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  46. package/dist/cjs/components/Button/Button.js.map +1 -1
  47. package/dist/cjs/components/CardScroll/CardScroll.js +1 -1
  48. package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
  49. package/dist/cjs/components/Cell/Cell.d.ts +11 -0
  50. package/dist/cjs/components/Cell/Cell.js +109 -182
  51. package/dist/cjs/components/Cell/Cell.js.map +1 -1
  52. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.d.ts +5 -0
  53. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js +50 -0
  54. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -0
  55. package/dist/cjs/components/Cell/CellDragger/CellDragger.d.ts +6 -0
  56. package/dist/cjs/components/Cell/CellDragger/CellDragger.js +53 -0
  57. package/dist/cjs/components/Cell/CellDragger/CellDragger.js.map +1 -0
  58. package/dist/cjs/components/Cell/useDraggable.d.ts +13 -0
  59. package/dist/cjs/components/Cell/useDraggable.js +142 -0
  60. package/dist/cjs/components/Cell/useDraggable.js.map +1 -0
  61. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +2 -2
  62. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  63. package/dist/cjs/components/Counter/Counter.js.map +1 -1
  64. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +0 -1
  65. package/dist/cjs/components/CustomSelect/CustomSelect.js +2 -3
  66. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  67. package/dist/cjs/components/DropdownIcon/DropdownIcon.d.ts +3 -0
  68. package/dist/cjs/components/DropdownIcon/DropdownIcon.js +37 -0
  69. package/dist/cjs/components/DropdownIcon/DropdownIcon.js.map +1 -0
  70. package/dist/cjs/components/FocusTrap/FocusTrap.d.ts +2 -3
  71. package/dist/cjs/components/FocusTrap/FocusTrap.js +3 -5
  72. package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -1
  73. package/dist/cjs/components/FormField/FormField.d.ts +2 -3
  74. package/dist/cjs/components/FormField/FormField.js.map +1 -1
  75. package/dist/cjs/components/FormItem/FormItem.d.ts +2 -3
  76. package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
  77. package/dist/cjs/components/FormLayout/FormLayout.d.ts +2 -4
  78. package/dist/cjs/components/FormLayout/FormLayout.js.map +1 -1
  79. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +1 -0
  80. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  81. package/dist/cjs/components/GridAvatar/GridAvatar.d.ts +9 -0
  82. package/dist/cjs/components/GridAvatar/GridAvatar.js +61 -0
  83. package/dist/cjs/components/GridAvatar/GridAvatar.js.map +1 -0
  84. package/dist/cjs/components/Header/Header.js.map +1 -1
  85. package/dist/cjs/components/HorizontalCell/HorizontalCell.d.ts +2 -3
  86. package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
  87. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.d.ts +3 -2
  88. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +10 -13
  89. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  90. package/dist/cjs/components/InitialsAvatar/InitialsAvatar.d.ts +33 -0
  91. package/dist/cjs/components/InitialsAvatar/InitialsAvatar.js +64 -0
  92. package/dist/cjs/components/InitialsAvatar/InitialsAvatar.js.map +1 -0
  93. package/dist/cjs/components/Link/Link.d.ts +1 -2
  94. package/dist/cjs/components/Link/Link.js.map +1 -1
  95. package/dist/cjs/components/ModalRoot/ModalRoot.js +170 -373
  96. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  97. package/dist/cjs/components/ModalRoot/ModalRootContext.js +0 -3
  98. package/dist/cjs/components/ModalRoot/ModalRootContext.js.map +1 -1
  99. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +59 -241
  100. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  101. package/dist/cjs/components/ModalRoot/types.d.ts +0 -1
  102. package/dist/cjs/components/ModalRoot/types.js.map +1 -1
  103. package/dist/cjs/components/ModalRoot/useModalManager.d.ts +37 -0
  104. package/dist/cjs/components/ModalRoot/useModalManager.js +213 -0
  105. package/dist/cjs/components/ModalRoot/useModalManager.js.map +1 -0
  106. package/dist/cjs/components/NativeSelect/NativeSelect.js +2 -2
  107. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  108. package/dist/cjs/components/Removable/Removable.d.ts +2 -1
  109. package/dist/cjs/components/Removable/Removable.js +75 -66
  110. package/dist/cjs/components/Removable/Removable.js.map +1 -1
  111. package/dist/cjs/components/SelectMimicry/SelectMimicry.js +2 -2
  112. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  113. package/dist/cjs/components/SimpleCell/SimpleCell.d.ts +2 -2
  114. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  115. package/dist/cjs/components/SplitCol/SplitCol.d.ts +3 -3
  116. package/dist/cjs/components/SplitCol/SplitCol.js +2 -4
  117. package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
  118. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.d.ts +2 -1
  119. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js +38 -11
  120. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  121. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  122. package/dist/cjs/components/Switch/Switch.d.ts +2 -3
  123. package/dist/cjs/components/Switch/Switch.js +18 -8
  124. package/dist/cjs/components/Switch/Switch.js.map +1 -1
  125. package/dist/cjs/components/Tabbar/Tabbar.js +3 -1
  126. package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
  127. package/dist/cjs/components/TabbarItem/TabbarItem.d.ts +3 -1
  128. package/dist/cjs/components/TabbarItem/TabbarItem.js +29 -11
  129. package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
  130. package/dist/cjs/components/Tappable/Tappable.d.ts +2 -3
  131. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  132. package/dist/cjs/components/Textarea/Textarea.js +9 -7
  133. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  134. package/dist/cjs/components/Touch/Touch.d.ts +16 -17
  135. package/dist/cjs/components/Touch/Touch.js +21 -7
  136. package/dist/cjs/components/Touch/Touch.js.map +1 -1
  137. package/dist/cjs/components/Typography/Caption/Caption.d.ts +2 -2
  138. package/dist/cjs/components/Typography/Caption/Caption.js +4 -2
  139. package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
  140. package/dist/cjs/components/Typography/Headline/Headline.d.ts +2 -2
  141. package/dist/cjs/components/Typography/Headline/Headline.js +2 -1
  142. package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
  143. package/dist/cjs/components/Typography/Subhead/Subhead.d.ts +2 -2
  144. package/dist/cjs/components/Typography/Subhead/Subhead.js +2 -1
  145. package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
  146. package/dist/cjs/components/Typography/Text/Text.d.ts +2 -3
  147. package/dist/cjs/components/Typography/Text/Text.js +2 -1
  148. package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
  149. package/dist/cjs/components/Typography/Title/Title.d.ts +2 -2
  150. package/dist/cjs/components/Typography/Title/Title.js +9 -4
  151. package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
  152. package/dist/cjs/components/View/View.js +68 -75
  153. package/dist/cjs/components/View/View.js.map +1 -1
  154. package/dist/cjs/components/View/ViewInfinite.js +78 -85
  155. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  156. package/dist/cjs/components/View/utils.d.ts +2 -0
  157. package/dist/cjs/components/View/utils.js +13 -0
  158. package/dist/cjs/components/View/utils.js.map +1 -0
  159. package/dist/cjs/index.d.ts +4 -0
  160. package/dist/cjs/index.js +16 -0
  161. package/dist/cjs/index.js.map +1 -1
  162. package/dist/cjs/lib/accessibility.d.ts +1 -1
  163. package/dist/cjs/lib/accessibility.js.map +1 -1
  164. package/dist/cjs/lib/prefixClass.js +7 -6
  165. package/dist/cjs/lib/prefixClass.js.map +1 -1
  166. package/dist/cjs/lib/supportEvents.d.ts +3 -1
  167. package/dist/cjs/lib/supportEvents.js +1 -4
  168. package/dist/cjs/lib/supportEvents.js.map +1 -1
  169. package/dist/cjs/types.d.ts +3 -0
  170. package/dist/components/ActionSheet/ActionSheet.js +6 -9
  171. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  172. package/dist/components/Avatar/Avatar.d.ts +2 -0
  173. package/dist/components/Avatar/Avatar.js +4 -2
  174. package/dist/components/Avatar/Avatar.js.map +1 -1
  175. package/dist/components/Banner/Banner.js.map +1 -1
  176. package/dist/components/Button/Button.js.map +1 -1
  177. package/dist/components/CardScroll/CardScroll.js +1 -1
  178. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  179. package/dist/components/Cell/Cell.d.ts +11 -0
  180. package/dist/components/Cell/Cell.js +103 -177
  181. package/dist/components/Cell/Cell.js.map +1 -1
  182. package/dist/components/Cell/CellCheckbox/CellCheckbox.d.ts +5 -0
  183. package/dist/components/Cell/CellCheckbox/CellCheckbox.js +31 -0
  184. package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -0
  185. package/dist/components/Cell/CellDragger/CellDragger.d.ts +6 -0
  186. package/dist/components/Cell/CellDragger/CellDragger.js +30 -0
  187. package/dist/components/Cell/CellDragger/CellDragger.js.map +1 -0
  188. package/dist/components/Cell/useDraggable.d.ts +13 -0
  189. package/dist/components/Cell/useDraggable.js +126 -0
  190. package/dist/components/Cell/useDraggable.js.map +1 -0
  191. package/dist/components/ChipsSelect/ChipsSelect.js +2 -2
  192. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  193. package/dist/components/Counter/Counter.js.map +1 -1
  194. package/dist/components/CustomSelect/CustomSelect.d.ts +0 -1
  195. package/dist/components/CustomSelect/CustomSelect.js +3 -5
  196. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  197. package/dist/components/DropdownIcon/DropdownIcon.d.ts +3 -0
  198. package/dist/components/DropdownIcon/DropdownIcon.js +19 -0
  199. package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -0
  200. package/dist/components/FocusTrap/FocusTrap.d.ts +2 -3
  201. package/dist/components/FocusTrap/FocusTrap.js +3 -5
  202. package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
  203. package/dist/components/FormField/FormField.d.ts +2 -3
  204. package/dist/components/FormField/FormField.js.map +1 -1
  205. package/dist/components/FormItem/FormItem.d.ts +2 -3
  206. package/dist/components/FormItem/FormItem.js.map +1 -1
  207. package/dist/components/FormLayout/FormLayout.d.ts +2 -4
  208. package/dist/components/FormLayout/FormLayout.js.map +1 -1
  209. package/dist/components/FormLayoutGroup/FormLayoutGroup.js +1 -0
  210. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  211. package/dist/components/GridAvatar/GridAvatar.d.ts +9 -0
  212. package/dist/components/GridAvatar/GridAvatar.js +41 -0
  213. package/dist/components/GridAvatar/GridAvatar.js.map +1 -0
  214. package/dist/components/Header/Header.js.map +1 -1
  215. package/dist/components/HorizontalCell/HorizontalCell.d.ts +2 -3
  216. package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
  217. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +3 -2
  218. package/dist/components/HorizontalScroll/HorizontalScroll.js +10 -12
  219. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  220. package/dist/components/InitialsAvatar/InitialsAvatar.d.ts +33 -0
  221. package/dist/components/InitialsAvatar/InitialsAvatar.js +46 -0
  222. package/dist/components/InitialsAvatar/InitialsAvatar.js.map +1 -0
  223. package/dist/components/Link/Link.d.ts +1 -2
  224. package/dist/components/Link/Link.js.map +1 -1
  225. package/dist/components/ModalRoot/ModalRoot.js +167 -376
  226. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  227. package/dist/components/ModalRoot/ModalRootContext.js +0 -3
  228. package/dist/components/ModalRoot/ModalRootContext.js.map +1 -1
  229. package/dist/components/ModalRoot/ModalRootDesktop.js +58 -244
  230. package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  231. package/dist/components/ModalRoot/types.d.ts +0 -1
  232. package/dist/components/ModalRoot/types.js.map +1 -1
  233. package/dist/components/ModalRoot/useModalManager.d.ts +37 -0
  234. package/dist/components/ModalRoot/useModalManager.js +189 -0
  235. package/dist/components/ModalRoot/useModalManager.js.map +1 -0
  236. package/dist/components/NativeSelect/NativeSelect.js +2 -2
  237. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  238. package/dist/components/Removable/Removable.d.ts +2 -1
  239. package/dist/components/Removable/Removable.js +73 -64
  240. package/dist/components/Removable/Removable.js.map +1 -1
  241. package/dist/components/SelectMimicry/SelectMimicry.js +2 -2
  242. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  243. package/dist/components/SimpleCell/SimpleCell.d.ts +2 -2
  244. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  245. package/dist/components/SplitCol/SplitCol.d.ts +3 -3
  246. package/dist/components/SplitCol/SplitCol.js +2 -4
  247. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  248. package/dist/components/SubnavigationBar/SubnavigationBar.d.ts +2 -1
  249. package/dist/components/SubnavigationBar/SubnavigationBar.js +38 -11
  250. package/dist/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  251. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  252. package/dist/components/Switch/Switch.d.ts +2 -3
  253. package/dist/components/Switch/Switch.js +15 -8
  254. package/dist/components/Switch/Switch.js.map +1 -1
  255. package/dist/components/Tabbar/Tabbar.js +3 -1
  256. package/dist/components/Tabbar/Tabbar.js.map +1 -1
  257. package/dist/components/TabbarItem/TabbarItem.d.ts +3 -1
  258. package/dist/components/TabbarItem/TabbarItem.js +26 -10
  259. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  260. package/dist/components/Tappable/Tappable.d.ts +2 -3
  261. package/dist/components/Tappable/Tappable.js.map +1 -1
  262. package/dist/components/Textarea/Textarea.js +9 -6
  263. package/dist/components/Textarea/Textarea.js.map +1 -1
  264. package/dist/components/Touch/Touch.d.ts +16 -17
  265. package/dist/components/Touch/Touch.js +21 -7
  266. package/dist/components/Touch/Touch.js.map +1 -1
  267. package/dist/components/Typography/Caption/Caption.d.ts +2 -2
  268. package/dist/components/Typography/Caption/Caption.js +4 -2
  269. package/dist/components/Typography/Caption/Caption.js.map +1 -1
  270. package/dist/components/Typography/Headline/Headline.d.ts +2 -2
  271. package/dist/components/Typography/Headline/Headline.js +2 -1
  272. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  273. package/dist/components/Typography/Subhead/Subhead.d.ts +2 -2
  274. package/dist/components/Typography/Subhead/Subhead.js +2 -1
  275. package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
  276. package/dist/components/Typography/Text/Text.d.ts +2 -3
  277. package/dist/components/Typography/Text/Text.js +2 -1
  278. package/dist/components/Typography/Text/Text.js.map +1 -1
  279. package/dist/components/Typography/Title/Title.d.ts +2 -2
  280. package/dist/components/Typography/Title/Title.js +9 -4
  281. package/dist/components/Typography/Title/Title.js.map +1 -1
  282. package/dist/components/View/View.js +67 -75
  283. package/dist/components/View/View.js.map +1 -1
  284. package/dist/components/View/ViewInfinite.js +79 -87
  285. package/dist/components/View/ViewInfinite.js.map +1 -1
  286. package/dist/components/View/utils.d.ts +2 -0
  287. package/dist/components/View/utils.js +6 -0
  288. package/dist/components/View/utils.js.map +1 -0
  289. package/dist/components.css +1 -1
  290. package/dist/components.css.map +1 -1
  291. package/dist/cssm/components/ActionSheet/ActionSheet.js +6 -9
  292. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  293. package/dist/cssm/components/Avatar/Avatar.js +4 -2
  294. package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
  295. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  296. package/dist/cssm/components/Button/Button.css +1 -1
  297. package/dist/cssm/components/Button/Button.js.map +1 -1
  298. package/dist/cssm/components/CardScroll/CardScroll.js +1 -1
  299. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  300. package/dist/cssm/components/Cell/Cell.css +1 -1
  301. package/dist/cssm/components/Cell/Cell.js +103 -177
  302. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  303. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.css +1 -0
  304. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js +32 -0
  305. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -0
  306. package/dist/cssm/components/Cell/CellDragger/CellDragger.css +1 -0
  307. package/dist/cssm/components/Cell/CellDragger/CellDragger.js +31 -0
  308. package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -0
  309. package/dist/cssm/components/Cell/useDraggable.js +126 -0
  310. package/dist/cssm/components/Cell/useDraggable.js.map +1 -0
  311. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +2 -2
  312. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  313. package/dist/cssm/components/Counter/Counter.js.map +1 -1
  314. package/dist/cssm/components/CustomSelect/CustomSelect.js +3 -5
  315. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  316. package/dist/cssm/components/DropdownIcon/DropdownIcon.css +1 -0
  317. package/dist/cssm/components/DropdownIcon/DropdownIcon.js +20 -0
  318. package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -0
  319. package/dist/cssm/components/FocusTrap/FocusTrap.js +3 -5
  320. package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
  321. package/dist/cssm/components/FocusVisible/FocusVisible.css +1 -1
  322. package/dist/cssm/components/FormField/FormField.css +1 -1
  323. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  324. package/dist/cssm/components/FormItem/FormItem.css +1 -1
  325. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  326. package/dist/cssm/components/FormLayout/FormLayout.js.map +1 -1
  327. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.css +1 -1
  328. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +1 -0
  329. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  330. package/dist/cssm/components/Gallery/Gallery.css +1 -1
  331. package/dist/cssm/components/GridAvatar/GridAvatar.css +1 -0
  332. package/dist/cssm/components/GridAvatar/GridAvatar.js +42 -0
  333. package/dist/cssm/components/GridAvatar/GridAvatar.js.map +1 -0
  334. package/dist/cssm/components/Header/Header.js.map +1 -1
  335. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  336. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +10 -12
  337. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  338. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.css +1 -1
  339. package/dist/cssm/components/IconButton/IconButton.css +1 -1
  340. package/dist/cssm/components/InitialsAvatar/InitialsAvatar.css +1 -0
  341. package/dist/cssm/components/InitialsAvatar/InitialsAvatar.js +52 -0
  342. package/dist/cssm/components/InitialsAvatar/InitialsAvatar.js.map +1 -0
  343. package/dist/cssm/components/Link/Link.js.map +1 -1
  344. package/dist/cssm/components/ModalRoot/ModalRoot.js +167 -376
  345. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  346. package/dist/cssm/components/ModalRoot/ModalRootContext.js +0 -3
  347. package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
  348. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +58 -244
  349. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  350. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  351. package/dist/cssm/components/ModalRoot/useModalManager.js +189 -0
  352. package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -0
  353. package/dist/cssm/components/NativeSelect/NativeSelect.js +2 -2
  354. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  355. package/dist/cssm/components/Removable/Removable.css +1 -1
  356. package/dist/cssm/components/Removable/Removable.js +73 -64
  357. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  358. package/dist/cssm/components/Search/Search.css +1 -1
  359. package/dist/cssm/components/Select/Select.css +1 -1
  360. package/dist/cssm/components/SelectMimicry/SelectMimicry.js +2 -2
  361. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  362. package/dist/cssm/components/SimpleCell/SimpleCell.css +1 -1
  363. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  364. package/dist/cssm/components/SplitCol/SplitCol.js +2 -4
  365. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  366. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js +38 -11
  367. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  368. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  369. package/dist/cssm/components/Switch/Switch.css +1 -1
  370. package/dist/cssm/components/Switch/Switch.js +15 -8
  371. package/dist/cssm/components/Switch/Switch.js.map +1 -1
  372. package/dist/cssm/components/Tabbar/Tabbar.css +1 -1
  373. package/dist/cssm/components/Tabbar/Tabbar.js +3 -1
  374. package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
  375. package/dist/cssm/components/TabbarItem/TabbarItem.css +1 -1
  376. package/dist/cssm/components/TabbarItem/TabbarItem.js +26 -10
  377. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  378. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  379. package/dist/cssm/components/Textarea/Textarea.js +9 -6
  380. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  381. package/dist/cssm/components/Touch/Touch.js +21 -7
  382. package/dist/cssm/components/Touch/Touch.js.map +1 -1
  383. package/dist/cssm/components/Typography/Caption/Caption.js +4 -2
  384. package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
  385. package/dist/cssm/components/Typography/Headline/Headline.js +2 -1
  386. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  387. package/dist/cssm/components/Typography/Subhead/Subhead.js +2 -1
  388. package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
  389. package/dist/cssm/components/Typography/Text/Text.js +2 -1
  390. package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
  391. package/dist/cssm/components/Typography/Title/Title.js +9 -4
  392. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  393. package/dist/cssm/components/View/View.js +67 -75
  394. package/dist/cssm/components/View/View.js.map +1 -1
  395. package/dist/cssm/components/View/ViewInfinite.js +79 -87
  396. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  397. package/dist/cssm/components/View/utils.js +6 -0
  398. package/dist/cssm/components/View/utils.js.map +1 -0
  399. package/dist/cssm/index.js +2 -0
  400. package/dist/cssm/index.js.map +1 -1
  401. package/dist/cssm/lib/accessibility.js.map +1 -1
  402. package/dist/cssm/lib/prefixClass.js +7 -6
  403. package/dist/cssm/lib/prefixClass.js.map +1 -1
  404. package/dist/cssm/lib/supportEvents.js +1 -4
  405. package/dist/cssm/lib/supportEvents.js.map +1 -1
  406. package/dist/cssm/styles/components.css +1 -1
  407. package/dist/cssm/styles/themes.css +1 -1
  408. package/dist/cssm/styles/vkcom_light.css +1 -1
  409. package/dist/index.d.ts +4 -0
  410. package/dist/index.js +2 -0
  411. package/dist/index.js.map +1 -1
  412. package/dist/lib/accessibility.d.ts +1 -1
  413. package/dist/lib/accessibility.js.map +1 -1
  414. package/dist/lib/prefixClass.js +7 -6
  415. package/dist/lib/prefixClass.js.map +1 -1
  416. package/dist/lib/supportEvents.d.ts +3 -1
  417. package/dist/lib/supportEvents.js +1 -4
  418. package/dist/lib/supportEvents.js.map +1 -1
  419. package/dist/types.d.ts +3 -0
  420. package/dist/vkui.css +2 -2
  421. package/dist/vkui.css.map +1 -1
  422. package/package.json +8 -4
  423. package/src/components/ActionSheet/ActionSheet.tsx +4 -5
  424. package/src/components/ActionSheet/Readme.md +18 -14
  425. package/src/components/Alert/Readme.md +15 -11
  426. package/src/components/Avatar/Avatar.tsx +5 -2
  427. package/src/components/Banner/Banner.tsx +4 -5
  428. package/src/components/Button/Button.css +26 -53
  429. package/src/components/Button/Button.tsx +2 -3
  430. package/src/components/Card/Readme.md +6 -6
  431. package/src/components/CardScroll/CardScroll.tsx +4 -1
  432. package/src/components/Cell/Cell.css +21 -58
  433. package/src/components/Cell/Cell.tsx +101 -162
  434. package/src/components/Cell/CellCheckbox/CellCheckbox.css +17 -0
  435. package/src/components/Cell/CellCheckbox/CellCheckbox.tsx +42 -0
  436. package/src/components/Cell/CellDragger/CellDragger.css +4 -0
  437. package/src/components/Cell/CellDragger/CellDragger.tsx +40 -0
  438. package/src/components/Cell/Readme.md +89 -51
  439. package/src/components/Cell/useDraggable.tsx +112 -0
  440. package/src/components/ChipsSelect/ChipsSelect.tsx +2 -2
  441. package/src/components/Counter/Counter.tsx +2 -2
  442. package/src/components/CustomSelect/CustomSelect.tsx +3 -4
  443. package/src/components/DropdownIcon/DropdownIcon.css +3 -0
  444. package/src/components/DropdownIcon/DropdownIcon.tsx +20 -0
  445. package/src/components/Epic/Readme.md +2 -1
  446. package/src/components/FocusTrap/FocusTrap.tsx +13 -11
  447. package/src/components/FocusVisible/FocusVisible.css +12 -4
  448. package/src/components/FormField/FormField.css +0 -1
  449. package/src/components/FormField/FormField.tsx +2 -2
  450. package/src/components/FormItem/FormItem.css +13 -14
  451. package/src/components/FormItem/FormItem.tsx +2 -3
  452. package/src/components/FormLayout/FormLayout.tsx +2 -4
  453. package/src/components/FormLayoutGroup/FormLayoutGroup.css +11 -7
  454. package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +10 -1
  455. package/src/components/Gallery/Gallery.css +2 -3
  456. package/src/components/Gallery/Readme.md +89 -109
  457. package/src/components/GridAvatar/GridAvatar.css +37 -0
  458. package/src/components/GridAvatar/GridAvatar.tsx +55 -0
  459. package/src/components/GridAvatar/Readme.md +12 -0
  460. package/src/components/Group/Readme.md +18 -14
  461. package/src/components/Header/Header.tsx +4 -4
  462. package/src/components/HorizontalCell/HorizontalCell.tsx +3 -3
  463. package/src/components/HorizontalScroll/HorizontalScroll.tsx +14 -18
  464. package/src/components/HorizontalScroll/HorizontalScrollArrow.css +2 -2
  465. package/src/components/IconButton/IconButton.css +7 -0
  466. package/src/components/InitialsAvatar/InitialsAvatar.css +53 -0
  467. package/src/components/InitialsAvatar/InitialsAvatar.tsx +90 -0
  468. package/src/components/InitialsAvatar/Readme.md +14 -0
  469. package/src/components/Link/Link.tsx +1 -1
  470. package/src/components/MiniInfoCell/Readme.md +66 -62
  471. package/src/components/ModalDismissButton/Readme.md +13 -10
  472. package/src/components/ModalRoot/ModalRoot.tsx +159 -349
  473. package/src/components/ModalRoot/ModalRootContext.tsx +0 -1
  474. package/src/components/ModalRoot/ModalRootDesktop.tsx +54 -240
  475. package/src/components/ModalRoot/Readme.md +35 -27
  476. package/src/components/ModalRoot/types.ts +0 -1
  477. package/src/components/ModalRoot/useModalManager.tsx +174 -0
  478. package/src/components/NativeSelect/NativeSelect.tsx +2 -2
  479. package/src/components/Removable/Removable.css +16 -63
  480. package/src/components/Removable/Removable.tsx +84 -64
  481. package/src/components/ScreenSpinner/Readme.md +13 -9
  482. package/src/components/Search/Search.css +1 -1
  483. package/src/components/Select/Select.css +1 -1
  484. package/src/components/SelectMimicry/SelectMimicry.tsx +2 -2
  485. package/src/components/SimpleCell/SimpleCell.css +10 -18
  486. package/src/components/SimpleCell/SimpleCell.tsx +3 -5
  487. package/src/components/SplitCol/SplitCol.tsx +4 -8
  488. package/src/components/SplitLayout/Readme.md +2 -2
  489. package/src/components/SubnavigationBar/Readme.md +90 -86
  490. package/src/components/SubnavigationBar/SubnavigationBar.tsx +32 -14
  491. package/src/components/SubnavigationButton/SubnavigationButton.tsx +2 -3
  492. package/src/components/Switch/Readme.md +6 -6
  493. package/src/components/Switch/Switch.css +46 -15
  494. package/src/components/Switch/Switch.tsx +16 -8
  495. package/src/components/Tabbar/Tabbar.css +15 -4
  496. package/src/components/Tabbar/Tabbar.tsx +3 -1
  497. package/src/components/TabbarItem/Readme.md +72 -0
  498. package/src/components/TabbarItem/TabbarItem.css +65 -14
  499. package/src/components/TabbarItem/TabbarItem.tsx +46 -22
  500. package/src/components/Tappable/Tappable.tsx +2 -3
  501. package/src/components/Textarea/Readme.md +3 -0
  502. package/src/components/Textarea/Textarea.tsx +10 -6
  503. package/src/components/Touch/Touch.tsx +38 -25
  504. package/src/components/Typography/Caption/Caption.tsx +4 -4
  505. package/src/components/Typography/Headline/Headline.tsx +3 -3
  506. package/src/components/Typography/Subhead/Subhead.tsx +3 -3
  507. package/src/components/Typography/Text/Text.tsx +3 -4
  508. package/src/components/Typography/Title/Title.tsx +9 -5
  509. package/src/components/View/Readme.md +42 -56
  510. package/src/components/View/View.tsx +46 -61
  511. package/src/components/View/ViewInfinite.tsx +52 -67
  512. package/src/components/View/utils.ts +8 -0
  513. package/src/index.ts +4 -0
  514. package/src/lib/accessibility.ts +2 -2
  515. package/src/lib/prefixClass.ts +9 -6
  516. package/src/lib/supportEvents.ts +1 -4
  517. package/src/styles/components.css +4 -0
  518. package/src/styles/vkcom_light.css +3 -3
  519. package/src/testing/utils.tsx +34 -1
  520. package/src/types.ts +4 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Textarea/Textarea.tsx"],"names":["React","classNames","FormField","withAdaptivity","getClassName","useEnsuredControl","useExternRef","usePlatform","useIsomorphicLayoutEffect","Textarea","memo","defaultValue","grow","style","onResize","className","getRootRef","getRef","sizeY","rows","restProps","value","onChange","elementRef","platform","el","current","height","scrollHeight","disabled"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,UAAT;AACA,SAASC,SAAT;AAEA,SAASC,cAAT;AACA,SAASC,YAAT;AACA,SAASC,iBAAT;AACA,SAASC,YAAT;AACA,SAASC,WAAT;AACA,SAASC,yBAAT;AAaA,IAAMC,QAAiC,gBAAGT,KAAK,CAACU,IAAN,CAAW,gBAWhC;AAAA,+BAVnBC,YAUmB;AAAA,MAVnBA,YAUmB,kCAVJ,EAUI;AAAA,uBATnBC,IASmB;AAAA,MATnBA,IASmB,0BATZ,IASY;AAAA,MARnBC,KAQmB,QARnBA,KAQmB;AAAA,MAPnBC,QAOmB,QAPnBA,QAOmB;AAAA,MANnBC,SAMmB,QANnBA,SAMmB;AAAA,MALnBC,UAKmB,QALnBA,UAKmB;AAAA,MAJnBC,MAImB,QAJnBA,MAImB;AAAA,MAHnBC,KAGmB,QAHnBA,KAGmB;AAAA,uBAFnBC,IAEmB;AAAA,MAFnBA,IAEmB,0BAFZ,CAEY;AAAA,MADhBC,SACgB;;AACnB,2BAA0Bf,iBAAiB,CAACe,SAAD,EAAY;AAAET,IAAAA,YAAY,EAAZA;AAAF,GAAZ,CAA3C;AAAA;AAAA,MAAOU,KAAP;AAAA,MAAcC,QAAd;;AACA,MAAMC,UAAU,GAAGjB,YAAY,CAACW,MAAD,CAA/B;AACA,MAAMO,QAAQ,GAAGjB,WAAW,EAA5B,CAHmB,CAKnB;;AACAC,EAAAA,yBAAyB,CAAC,YAAM;AAC9B,QAAMiB,EAAE,GAAGF,UAAU,CAACG,OAAtB;;AACA,QAAId,IAAJ,EAAU;AACRa,MAAAA,EAAE,CAACZ,KAAH,CAASc,MAAT,GAAkB,IAAlB;AACAF,MAAAA,EAAE,CAACZ,KAAH,CAASc,MAAT,aAAqBF,EAAE,CAACG,YAAxB,QAFQ,CAGR;;AACAd,MAAAA,QAAQ,IAAIA,QAAQ,CAACW,EAAD,CAApB;AACD;AACF,GARwB,EAQtB,CAACb,IAAD,EAAOS,KAAP,CARsB,CAAzB;AAUA,SACE,oBAAC,SAAD;AACE,IAAA,SAAS,EAAEpB,UAAU,CAACG,YAAY,CAAC,UAAD,EAAaoB,QAAb,CAAb,4BAAwDN,KAAxD,EADvB;AAEE,IAAA,SAAS,EAAEH,SAFb;AAGE,IAAA,KAAK,EAAEF,KAHT;AAIE,IAAA,UAAU,EAAEG,UAJd;AAKE,IAAA,QAAQ,EAAEI,SAAS,CAACS;AALtB,KAOE,6CACMT,SADN;AAEE,IAAA,IAAI,EAAED,IAFR;AAGE,IAAA,SAAS,EAAC,cAHZ;AAIE,IAAA,KAAK,EAAEE,KAJT;AAKE,IAAA,QAAQ,EAAEC,QALZ;AAME,IAAA,GAAG,EAAEC;AANP,KAPF,CADF;AAkBD,CA7CyC,CAA1C;AA+CA,eAAepB,cAAc,CAACM,QAAD,EAAW;AAAES,EAAAA,KAAK,EAAE;AAAT,CAAX,CAA7B","sourcesContent":["import * as React from 'react';\nimport { classNames } from '../../lib/classNames';\nimport { FormField } from '../FormField/FormField';\nimport { HasRef, HasRootRef } from '../../types';\nimport { withAdaptivity, AdaptivityProps } from '../../hoc/withAdaptivity';\nimport { getClassName } from '../../helpers/getClassName';\nimport { useEnsuredControl } from '../../hooks/useEnsuredControl';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport './Textarea.css';\n\nexport interface TextareaProps extends\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HasRef<HTMLTextAreaElement>,\n HasRootRef<HTMLElement>,\n AdaptivityProps {\n grow?: boolean;\n onResize?(el: HTMLTextAreaElement): void;\n defaultValue?: string;\n}\n\nconst Textarea: React.FC<TextareaProps> = React.memo(({\n defaultValue = '',\n grow = true,\n style,\n onResize,\n className,\n getRootRef,\n getRef,\n sizeY,\n rows = 2,\n ...restProps\n}: TextareaProps) => {\n const [value, onChange] = useEnsuredControl(restProps, { defaultValue });\n const elementRef = useExternRef(getRef);\n const platform = usePlatform();\n\n // autosize input\n useIsomorphicLayoutEffect(() => {\n const el = elementRef.current;\n if (grow) {\n el.style.height = null;\n el.style.height = `${el.scrollHeight}px`;\n // TODO: call only when height changed?\n onResize && onResize(el);\n }\n }, [grow, value]);\n\n return (\n <FormField\n vkuiClass={classNames(getClassName('Textarea', platform), `Textarea--sizeY-${sizeY}`)}\n className={className}\n style={style}\n getRootRef={getRootRef}\n disabled={restProps.disabled}\n >\n <textarea\n {...restProps}\n rows={rows}\n vkuiClass=\"Textarea__el\"\n value={value}\n onChange={onChange}\n ref={elementRef}\n />\n </FormField>\n );\n});\n\nexport default withAdaptivity(Textarea, { sizeY: true });\n"],"file":"Textarea.js"}
1
+ {"version":3,"sources":["../../../src/components/Textarea/Textarea.tsx"],"names":["React","classNames","FormField","withAdaptivity","getClassName","useEnsuredControl","useExternRef","usePlatform","Textarea","memo","defaultValue","grow","style","onResize","className","getRootRef","getRef","sizeY","rows","restProps","value","onChange","currentScrollHeight","useRef","elementRef","platform","useEffect","el","current","offsetParent","height","scrollHeight","disabled"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,UAAT;AACA,SAASC,SAAT;AAEA,SAASC,cAAT;AACA,SAASC,YAAT;AACA,SAASC,iBAAT;AACA,SAASC,YAAT;AACA,SAASC,WAAT;AAaA,IAAMC,QAAiC,gBAAGR,KAAK,CAACS,IAAN,CAAW,gBAWhC;AAAA,+BAVnBC,YAUmB;AAAA,MAVnBA,YAUmB,kCAVJ,EAUI;AAAA,uBATnBC,IASmB;AAAA,MATnBA,IASmB,0BATZ,IASY;AAAA,MARnBC,KAQmB,QARnBA,KAQmB;AAAA,MAPnBC,QAOmB,QAPnBA,QAOmB;AAAA,MANnBC,SAMmB,QANnBA,SAMmB;AAAA,MALnBC,UAKmB,QALnBA,UAKmB;AAAA,MAJnBC,MAImB,QAJnBA,MAImB;AAAA,MAHnBC,KAGmB,QAHnBA,KAGmB;AAAA,uBAFnBC,IAEmB;AAAA,MAFnBA,IAEmB,0BAFZ,CAEY;AAAA,MADhBC,SACgB;;AACnB,2BAA0Bd,iBAAiB,CAACc,SAAD,EAAY;AAAET,IAAAA,YAAY,EAAZA;AAAF,GAAZ,CAA3C;AAAA;AAAA,MAAOU,KAAP;AAAA,MAAcC,QAAd;;AACA,MAAMC,mBAAmB,GAAGtB,KAAK,CAACuB,MAAN,EAA5B;AACA,MAAMC,UAAU,GAAGlB,YAAY,CAACU,MAAD,CAA/B;AACA,MAAMS,QAAQ,GAAGlB,WAAW,EAA5B,CAJmB,CAMnB;;AACAP,EAAAA,KAAK,CAAC0B,SAAN,CAAgB,YAAM;AACpB,QAAMC,EAAE,GAAGH,UAAU,CAACI,OAAtB;;AAEA,QAAIjB,IAAI,IAAIgB,EAAE,CAACE,YAAf,EAA6B;AAC3BF,MAAAA,EAAE,CAACf,KAAH,CAASkB,MAAT,GAAkB,IAAlB;AACAH,MAAAA,EAAE,CAACf,KAAH,CAASkB,MAAT,aAAqBH,EAAE,CAACI,YAAxB;;AAEA,UAAIJ,EAAE,CAACI,YAAH,KAAoBT,mBAAmB,CAACM,OAAxC,IAAmDf,QAAvD,EAAiE;AAC/DA,QAAAA,QAAQ,CAACc,EAAD,CAAR;AACAL,QAAAA,mBAAmB,CAACM,OAApB,GAA8BD,EAAE,CAACI,YAAjC;AACD;AACF;AACF,GAZD,EAYG,CAACpB,IAAD,EAAOS,KAAP,EAAcH,KAAd,CAZH;AAcA,SACE,oBAAC,SAAD;AACE,IAAA,SAAS,EAAEhB,UAAU,CAACG,YAAY,CAAC,UAAD,EAAaqB,QAAb,CAAb,4BAAwDR,KAAxD,EADvB;AAEE,IAAA,SAAS,EAAEH,SAFb;AAGE,IAAA,KAAK,EAAEF,KAHT;AAIE,IAAA,UAAU,EAAEG,UAJd;AAKE,IAAA,QAAQ,EAAEI,SAAS,CAACa;AALtB,KAOE,6CACMb,SADN;AAEE,IAAA,IAAI,EAAED,IAFR;AAGE,IAAA,SAAS,EAAC,cAHZ;AAIE,IAAA,KAAK,EAAEE,KAJT;AAKE,IAAA,QAAQ,EAAEC,QALZ;AAME,IAAA,GAAG,EAAEG;AANP,KAPF,CADF;AAkBD,CAlDyC,CAA1C;AAoDA,eAAerB,cAAc,CAACK,QAAD,EAAW;AAAES,EAAAA,KAAK,EAAE;AAAT,CAAX,CAA7B","sourcesContent":["import * as React from 'react';\nimport { classNames } from '../../lib/classNames';\nimport { FormField } from '../FormField/FormField';\nimport { HasRef, HasRootRef } from '../../types';\nimport { withAdaptivity, AdaptivityProps } from '../../hoc/withAdaptivity';\nimport { getClassName } from '../../helpers/getClassName';\nimport { useEnsuredControl } from '../../hooks/useEnsuredControl';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport './Textarea.css';\n\nexport interface TextareaProps extends\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HasRef<HTMLTextAreaElement>,\n HasRootRef<HTMLElement>,\n AdaptivityProps {\n grow?: boolean;\n onResize?(el: HTMLTextAreaElement): void;\n defaultValue?: string;\n}\n\nconst Textarea: React.FC<TextareaProps> = React.memo(({\n defaultValue = '',\n grow = true,\n style,\n onResize,\n className,\n getRootRef,\n getRef,\n sizeY,\n rows = 2,\n ...restProps\n}: TextareaProps) => {\n const [value, onChange] = useEnsuredControl(restProps, { defaultValue });\n const currentScrollHeight = React.useRef<number>();\n const elementRef = useExternRef(getRef);\n const platform = usePlatform();\n\n // autosize input\n React.useEffect(() => {\n const el = elementRef.current;\n\n if (grow && el.offsetParent) {\n el.style.height = null;\n el.style.height = `${el.scrollHeight}px`;\n\n if (el.scrollHeight !== currentScrollHeight.current && onResize) {\n onResize(el);\n currentScrollHeight.current = el.scrollHeight;\n }\n }\n }, [grow, value, sizeY]);\n\n return (\n <FormField\n vkuiClass={classNames(getClassName('Textarea', platform), `Textarea--sizeY-${sizeY}`)}\n className={className}\n style={style}\n getRootRef={getRootRef}\n disabled={restProps.disabled}\n >\n <textarea\n {...restProps}\n rows={rows}\n vkuiClass=\"Textarea__el\"\n value={value}\n onChange={onChange}\n ref={elementRef}\n />\n </FormField>\n );\n});\n\nexport default withAdaptivity(Textarea, { sizeY: true });\n"],"file":"Textarea.js"}
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { VKUITouchEvent } from '../../lib/touch';
3
- import { HasRootRef } from '../../types';
4
- export interface TouchProps extends React.AllHTMLAttributes<HTMLElement>, HasRootRef<HTMLElement> {
3
+ import { HasComponent, HasRootRef } from '../../types';
4
+ export interface TouchProps extends React.AllHTMLAttributes<HTMLElement>, HasRootRef<HTMLElement>, HasComponent {
5
5
  /**
6
6
  * Привязать onEnter и onLeave через pointer-events - работает на disabled-инпутах
7
7
  */
@@ -9,7 +9,6 @@ export interface TouchProps extends React.AllHTMLAttributes<HTMLElement>, HasRoo
9
9
  useCapture?: boolean;
10
10
  slideThreshold?: number;
11
11
  noSlideClick?: boolean;
12
- Component?: React.ElementType;
13
12
  onEnter?: HoverHandler;
14
13
  onLeave?: HoverHandler;
15
14
  onStart?: TouchEventHandler;
@@ -24,20 +23,20 @@ export interface TouchProps extends React.AllHTMLAttributes<HTMLElement>, HasRoo
24
23
  stopPropagation?: boolean;
25
24
  }
26
25
  export interface Gesture {
27
- startX?: number;
28
- startY?: number;
29
- startT?: Date;
30
- duration?: number;
31
- isPressed?: boolean;
32
- isY?: boolean;
33
- isX?: boolean;
34
- isSlideX?: boolean;
35
- isSlideY?: boolean;
36
- isSlide?: boolean;
37
- shiftX?: number;
38
- shiftY?: number;
39
- shiftXAbs?: number;
40
- shiftYAbs?: number;
26
+ startX: number;
27
+ startY: number;
28
+ startT: Date;
29
+ duration: number;
30
+ isPressed: boolean;
31
+ isY: boolean;
32
+ isX: boolean;
33
+ isSlideX: boolean;
34
+ isSlideY: boolean;
35
+ isSlide: boolean;
36
+ shiftX: number;
37
+ shiftY: number;
38
+ shiftXAbs: number;
39
+ shiftYAbs: number;
41
40
  }
42
41
  export interface TouchEvent extends Gesture {
43
42
  originalEvent: VKUITouchEvent;
@@ -41,7 +41,7 @@ export var Touch = function Touch(_ref) {
41
41
 
42
42
  var events = React.useMemo(getSupportedEvents, []);
43
43
  var didSlide = React.useRef(false);
44
- var gesture = React.useRef({});
44
+ var gesture = React.useRef(null);
45
45
 
46
46
  var handle = function handle(e, handers) {
47
47
  stopPropagation && e.stopPropagation();
@@ -57,12 +57,7 @@ export var Touch = function Touch(_ref) {
57
57
  var enterHandler = useEventListener(usePointerHover ? 'pointerenter' : 'mouseenter', onEnter);
58
58
  var leaveHandler = useEventListener(usePointerHover ? 'pointerleave' : 'mouseleave', onLeave);
59
59
  var startHandler = useEventListener(events[0], function (e) {
60
- gesture.current = {
61
- startX: coordX(e),
62
- startY: coordY(e),
63
- startT: new Date(),
64
- isPressed: true
65
- };
60
+ gesture.current = initGesture(coordX(e), coordY(e));
66
61
  handle(e, [onStart, onStartX, onStartY]); // 1 line, 2 bad specs, 2 workarounds:
67
62
 
68
63
  subscribe(touchEnabled() // Touch events fire on initial target, and won't bubble if its removed
@@ -206,4 +201,23 @@ export var Touch = function Touch(_ref) {
206
201
  ref: containerRef
207
202
  }));
208
203
  };
204
+
205
+ function initGesture(startX, startY) {
206
+ return {
207
+ startX: startX,
208
+ startY: startY,
209
+ startT: new Date(),
210
+ duration: 0,
211
+ isPressed: true,
212
+ isY: false,
213
+ isX: false,
214
+ isSlideX: false,
215
+ isSlideY: false,
216
+ isSlide: false,
217
+ shiftX: 0,
218
+ shiftY: 0,
219
+ shiftXAbs: 0,
220
+ shiftYAbs: 0
221
+ };
222
+ }
209
223
  //# sourceMappingURL=Touch.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Touch/Touch.tsx"],"names":["React","getSupportedEvents","coordX","coordY","touchEnabled","useDOM","useExternRef","useEventListener","useIsomorphicLayoutEffect","Touch","onStart","onStartX","onStartY","_onMove","onMove","onMoveX","onMoveY","onLeave","onEnter","_onEnd","onEnd","onEndX","onEndY","onClickCapture","usePointerHover","slideThreshold","useCapture","Component","getRootRef","noSlideClick","stopPropagation","restProps","document","events","useMemo","didSlide","useRef","gesture","handle","e","handers","forEach","cb","duration","Date","now","current","startT","getTime","originalEvent","enterHandler","leaveHandler","startHandler","startX","startY","isPressed","subscribe","target","capture","passive","containerRef","el","add","isX","isY","shiftX","shiftY","shiftXAbs","Math","abs","shiftYAbs","touches","length","willBeX","willBeY","willBeSlidedX","willBeSlidedY","Object","assign","isSlideX","isSlideY","isSlide","listenerParams","listeners","l","onDragStart","tagName","preventDefault","postGestureClick","closest"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { getSupportedEvents, coordX, coordY, touchEnabled, VKUITouchEvent } from '../../lib/touch';\nimport { HasRootRef } from '../../types';\nimport { useDOM } from '../../lib/dom';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useEventListener } from '../../hooks/useEventListener';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\n\nexport interface TouchProps extends React.AllHTMLAttributes<HTMLElement>, HasRootRef<HTMLElement> {\n /**\n * Привязать onEnter и onLeave через pointer-events - работает на disabled-инпутах\n */\n usePointerHover?: boolean;\n useCapture?: boolean;\n slideThreshold?: number;\n noSlideClick?: boolean;\n Component?: React.ElementType;\n onEnter?: HoverHandler;\n onLeave?: HoverHandler;\n onStart?: TouchEventHandler;\n onStartX?: TouchEventHandler;\n onStartY?: TouchEventHandler;\n onMove?: TouchEventHandler;\n onMoveX?: TouchEventHandler;\n onMoveY?: TouchEventHandler;\n onEnd?: TouchEventHandler;\n onEndX?: TouchEventHandler;\n onEndY?: TouchEventHandler;\n stopPropagation?: boolean;\n}\n\nexport interface Gesture {\n startX?: number;\n startY?: number;\n startT?: Date;\n duration?: number;\n isPressed?: boolean;\n isY?: boolean;\n isX?: boolean;\n isSlideX?: boolean;\n isSlideY?: boolean;\n isSlide?: boolean;\n shiftX?: number;\n shiftY?: number;\n shiftXAbs?: number;\n shiftYAbs?: number;\n}\n\nexport interface TouchEvent extends Gesture {\n originalEvent: VKUITouchEvent;\n}\n\ntype HoverHandler = (outputEvent: MouseEvent) => void;\nexport type TouchEventHandler = (e: TouchEvent) => void;\nexport type ClickHandler = (e: React.MouseEvent<HTMLElement>) => void;\nexport type DragHandler = (e: React.DragEvent<HTMLElement>) => void;\n\nexport const Touch: React.FC<TouchProps> = ({\n onStart,\n onStartX,\n onStartY,\n onMove: _onMove,\n onMoveX,\n onMoveY,\n onLeave,\n onEnter,\n onEnd: _onEnd,\n onEndX,\n onEndY,\n onClickCapture,\n usePointerHover,\n slideThreshold = 5,\n useCapture = false,\n Component = 'div',\n getRootRef,\n noSlideClick = false,\n stopPropagation = false,\n ...restProps\n}: TouchProps) => {\n const { document } = useDOM();\n const events = React.useMemo(getSupportedEvents, []);\n const didSlide = React.useRef(false);\n const gesture = React.useRef<Partial<Gesture>>({});\n const handle = (e: VKUITouchEvent, handers: TouchEventHandler[]) => {\n stopPropagation && e.stopPropagation();\n handers.forEach((cb) => {\n const duration = Date.now() - gesture.current.startT.getTime();\n cb && cb({ ...gesture.current, duration, originalEvent: e });\n });\n };\n\n const enterHandler = useEventListener(usePointerHover ? 'pointerenter' : 'mouseenter', onEnter);\n const leaveHandler = useEventListener(usePointerHover ? 'pointerleave' : 'mouseleave', onLeave);\n const startHandler = useEventListener(events[0], (e: VKUITouchEvent) => {\n gesture.current = {\n startX: coordX(e),\n startY: coordY(e),\n startT: new Date(),\n isPressed: true,\n };\n\n handle(e, [onStart, onStartX, onStartY]);\n // 1 line, 2 bad specs, 2 workarounds:\n subscribe(touchEnabled()\n // Touch events fire on initial target, and won't bubble if its removed\n // see: #235, #1968, https://stackoverflow.com/a/45760014\n ? e.target as HTMLElement\n // Mouse events fire on the element under pointer, so we lose move / end\n // if pointer goes outside container.\n // Can be fixed by PointerEvents' setPointerCapture later\n : document);\n }, { capture: useCapture, passive: false });\n const containerRef = useExternRef(getRootRef);\n\n useIsomorphicLayoutEffect(() => {\n const el = containerRef.current;\n enterHandler.add(el);\n leaveHandler.add(el);\n startHandler.add(el);\n }, [Component]);\n\n function onMove(e: VKUITouchEvent) {\n const { isPressed, isX, isY, startX, startY } = gesture.current;\n\n if (isPressed) {\n // смещения\n const shiftX = coordX(e) - startX;\n const shiftY = coordY(e) - startY;\n\n // абсолютные значения смещений\n const shiftXAbs = Math.abs(shiftX);\n const shiftYAbs = Math.abs(shiftY);\n\n // Если определяем мультитач, то прерываем жест\n if (!!e.touches && e.touches.length > 1) {\n return onEnd(e);\n }\n\n // если мы ещё не определились\n if (!isX && !isY) {\n const willBeX = shiftXAbs >= slideThreshold && shiftXAbs > shiftYAbs;\n const willBeY = shiftYAbs >= slideThreshold && shiftYAbs > shiftXAbs;\n const willBeSlidedX = willBeX && (!!onMoveX || !!_onMove);\n const willBeSlidedY = willBeY && (!!onMoveY || !!_onMove);\n\n Object.assign(gesture.current, {\n isY: willBeY,\n isX: willBeX,\n isSlideX: willBeSlidedX,\n isSlideY: willBeSlidedY,\n isSlide: willBeSlidedX || willBeSlidedY,\n });\n }\n\n if (gesture.current.isSlide) {\n Object.assign(gesture.current, {\n shiftX,\n shiftY,\n shiftXAbs,\n shiftYAbs,\n });\n\n handle(e, [_onMove, gesture.current.isSlideX && onMoveX, gesture.current.isSlideY && onMoveY]);\n }\n }\n }\n\n function onEnd(e: VKUITouchEvent) {\n const { isPressed, isSlide, isSlideX, isSlideY } = gesture.current;\n\n if (isPressed) {\n handle(e, [_onEnd, isSlideY && onEndY, isSlideX && onEndX]);\n }\n\n didSlide.current = isSlide;\n gesture.current = {};\n\n // Если это был тач-евент, симулируем отмену hover\n if (touchEnabled()) {\n onLeave && onLeave(e);\n }\n subscribe(null);\n }\n\n const listenerParams = { capture: useCapture, passive: false };\n const listeners = [\n useEventListener(events[1], onMove, listenerParams),\n useEventListener(events[2], onEnd, listenerParams),\n useEventListener(events[3], onEnd, listenerParams),\n ];\n function subscribe(el: HTMLElement | Document | null) {\n listeners.forEach((l) => l.add(el));\n }\n\n /**\n * Обработчик событий dragstart\n * Отменяет нативное браузерное поведение для вложенных ссылок и изображений\n */\n const onDragStart = (e: React.DragEvent<HTMLElement>) => {\n const target = e.target as HTMLElement;\n if (target.tagName === 'A' || target.tagName === 'IMG') {\n e.preventDefault();\n }\n };\n\n /**\n * Обработчик клика по компоненту\n * Отменяет переход по вложенной ссылке, если был зафиксирован свайп\n */\n const postGestureClick: typeof onClickCapture = (e) => {\n if (!didSlide.current) {\n return onClickCapture && onClickCapture(e);\n }\n // eslint-disable-next-line no-restricted-properties\n if ((e.target as HTMLElement).closest('a')) {\n e.preventDefault();\n }\n if (noSlideClick) {\n e.stopPropagation();\n } else {\n onClickCapture && onClickCapture(e);\n }\n didSlide.current = false;\n };\n\n return (\n <Component\n {...restProps}\n onDragStart={onDragStart}\n onClickCapture={postGestureClick}\n ref={containerRef}\n />\n );\n};\n"],"file":"Touch.js"}
1
+ {"version":3,"sources":["../../../src/components/Touch/Touch.tsx"],"names":["React","getSupportedEvents","coordX","coordY","touchEnabled","useDOM","useExternRef","useEventListener","useIsomorphicLayoutEffect","Touch","onStart","onStartX","onStartY","_onMove","onMove","onMoveX","onMoveY","onLeave","onEnter","_onEnd","onEnd","onEndX","onEndY","onClickCapture","usePointerHover","slideThreshold","useCapture","Component","getRootRef","noSlideClick","stopPropagation","restProps","document","events","useMemo","didSlide","useRef","gesture","handle","e","handers","forEach","cb","duration","Date","now","current","startT","getTime","originalEvent","enterHandler","leaveHandler","startHandler","initGesture","subscribe","target","capture","passive","containerRef","el","add","isPressed","isX","isY","startX","startY","shiftX","shiftY","shiftXAbs","Math","abs","shiftYAbs","touches","length","willBeX","willBeY","willBeSlidedX","willBeSlidedY","Object","assign","isSlideX","isSlideY","isSlide","listenerParams","listeners","l","onDragStart","tagName","preventDefault","postGestureClick","closest"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { getSupportedEvents, coordX, coordY, touchEnabled, VKUITouchEvent } from '../../lib/touch';\nimport { HasComponent, HasRootRef } from '../../types';\nimport { useDOM } from '../../lib/dom';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useEventListener } from '../../hooks/useEventListener';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\n\nexport interface TouchProps extends React.AllHTMLAttributes<HTMLElement>, HasRootRef<HTMLElement>, HasComponent {\n /**\n * Привязать onEnter и onLeave через pointer-events - работает на disabled-инпутах\n */\n usePointerHover?: boolean;\n useCapture?: boolean;\n slideThreshold?: number;\n noSlideClick?: boolean;\n onEnter?: HoverHandler;\n onLeave?: HoverHandler;\n onStart?: TouchEventHandler;\n onStartX?: TouchEventHandler;\n onStartY?: TouchEventHandler;\n onMove?: TouchEventHandler;\n onMoveX?: TouchEventHandler;\n onMoveY?: TouchEventHandler;\n onEnd?: TouchEventHandler;\n onEndX?: TouchEventHandler;\n onEndY?: TouchEventHandler;\n stopPropagation?: boolean;\n}\n\nexport interface Gesture {\n startX: number;\n startY: number;\n startT: Date;\n duration: number;\n isPressed: boolean;\n isY: boolean;\n isX: boolean;\n isSlideX: boolean;\n isSlideY: boolean;\n isSlide: boolean;\n shiftX: number;\n shiftY: number;\n shiftXAbs: number;\n shiftYAbs: number;\n}\n\nexport interface TouchEvent extends Gesture {\n originalEvent: VKUITouchEvent;\n}\n\ntype HoverHandler = (outputEvent: MouseEvent) => void;\nexport type TouchEventHandler = (e: TouchEvent) => void;\nexport type ClickHandler = (e: React.MouseEvent<HTMLElement>) => void;\nexport type DragHandler = (e: React.DragEvent<HTMLElement>) => void;\n\nexport const Touch: React.FC<TouchProps> = ({\n onStart,\n onStartX,\n onStartY,\n onMove: _onMove,\n onMoveX,\n onMoveY,\n onLeave,\n onEnter,\n onEnd: _onEnd,\n onEndX,\n onEndY,\n onClickCapture,\n usePointerHover,\n slideThreshold = 5,\n useCapture = false,\n Component = 'div',\n getRootRef,\n noSlideClick = false,\n stopPropagation = false,\n ...restProps\n}: TouchProps) => {\n const { document } = useDOM();\n const events = React.useMemo(getSupportedEvents, []);\n const didSlide = React.useRef(false);\n const gesture = React.useRef<Partial<Gesture>>(null);\n const handle = (e: VKUITouchEvent, handers: TouchEventHandler[]) => {\n stopPropagation && e.stopPropagation();\n handers.forEach((cb) => {\n const duration = Date.now() - gesture.current.startT.getTime();\n cb && cb({ ...gesture.current as Gesture, duration, originalEvent: e });\n });\n };\n\n const enterHandler = useEventListener(usePointerHover ? 'pointerenter' : 'mouseenter', onEnter);\n const leaveHandler = useEventListener(usePointerHover ? 'pointerleave' : 'mouseleave', onLeave);\n const startHandler = useEventListener(events[0], (e: VKUITouchEvent) => {\n gesture.current = initGesture(coordX(e), coordY(e));\n\n handle(e, [onStart, onStartX, onStartY]);\n // 1 line, 2 bad specs, 2 workarounds:\n subscribe(touchEnabled()\n // Touch events fire on initial target, and won't bubble if its removed\n // see: #235, #1968, https://stackoverflow.com/a/45760014\n ? e.target as HTMLElement\n // Mouse events fire on the element under pointer, so we lose move / end\n // if pointer goes outside container.\n // Can be fixed by PointerEvents' setPointerCapture later\n : document);\n }, { capture: useCapture, passive: false });\n const containerRef = useExternRef(getRootRef);\n\n useIsomorphicLayoutEffect(() => {\n const el = containerRef.current;\n enterHandler.add(el);\n leaveHandler.add(el);\n startHandler.add(el);\n }, [Component]);\n\n function onMove(e: VKUITouchEvent) {\n const { isPressed, isX, isY, startX, startY } = gesture.current;\n\n if (isPressed) {\n // смещения\n const shiftX = coordX(e) - startX;\n const shiftY = coordY(e) - startY;\n\n // абсолютные значения смещений\n const shiftXAbs = Math.abs(shiftX);\n const shiftYAbs = Math.abs(shiftY);\n\n // Если определяем мультитач, то прерываем жест\n if (!!e.touches && e.touches.length > 1) {\n return onEnd(e);\n }\n\n // если мы ещё не определились\n if (!isX && !isY) {\n const willBeX = shiftXAbs >= slideThreshold && shiftXAbs > shiftYAbs;\n const willBeY = shiftYAbs >= slideThreshold && shiftYAbs > shiftXAbs;\n const willBeSlidedX = willBeX && (!!onMoveX || !!_onMove);\n const willBeSlidedY = willBeY && (!!onMoveY || !!_onMove);\n\n Object.assign(gesture.current, {\n isY: willBeY,\n isX: willBeX,\n isSlideX: willBeSlidedX,\n isSlideY: willBeSlidedY,\n isSlide: willBeSlidedX || willBeSlidedY,\n });\n }\n\n if (gesture.current.isSlide) {\n Object.assign(gesture.current, {\n shiftX,\n shiftY,\n shiftXAbs,\n shiftYAbs,\n });\n\n handle(e, [_onMove, gesture.current.isSlideX && onMoveX, gesture.current.isSlideY && onMoveY]);\n }\n }\n }\n\n function onEnd(e: VKUITouchEvent) {\n const { isPressed, isSlide, isSlideX, isSlideY } = gesture.current;\n\n if (isPressed) {\n handle(e, [_onEnd, isSlideY && onEndY, isSlideX && onEndX]);\n }\n\n didSlide.current = isSlide;\n gesture.current = {};\n\n // Если это был тач-евент, симулируем отмену hover\n if (touchEnabled()) {\n onLeave && onLeave(e);\n }\n subscribe(null);\n }\n\n const listenerParams = { capture: useCapture, passive: false };\n const listeners = [\n useEventListener(events[1], onMove, listenerParams),\n useEventListener(events[2], onEnd, listenerParams),\n useEventListener(events[3], onEnd, listenerParams),\n ];\n function subscribe(el: HTMLElement | Document | null) {\n listeners.forEach((l) => l.add(el));\n }\n\n /**\n * Обработчик событий dragstart\n * Отменяет нативное браузерное поведение для вложенных ссылок и изображений\n */\n const onDragStart = (e: React.DragEvent<HTMLElement>) => {\n const target = e.target as HTMLElement;\n if (target.tagName === 'A' || target.tagName === 'IMG') {\n e.preventDefault();\n }\n };\n\n /**\n * Обработчик клика по компоненту\n * Отменяет переход по вложенной ссылке, если был зафиксирован свайп\n */\n const postGestureClick: typeof onClickCapture = (e) => {\n if (!didSlide.current) {\n return onClickCapture && onClickCapture(e);\n }\n // eslint-disable-next-line no-restricted-properties\n if ((e.target as HTMLElement).closest('a')) {\n e.preventDefault();\n }\n if (noSlideClick) {\n e.stopPropagation();\n } else {\n onClickCapture && onClickCapture(e);\n }\n didSlide.current = false;\n };\n\n return (\n <Component\n {...restProps}\n onDragStart={onDragStart}\n onClickCapture={postGestureClick}\n ref={containerRef}\n />\n );\n};\n\nfunction initGesture(startX: number, startY: number): Gesture {\n return {\n startX,\n startY,\n startT: new Date(),\n duration: 0,\n isPressed: true,\n isY: false,\n isX: false,\n isSlideX: false,\n isSlideY: false,\n isSlide: false,\n shiftX: 0,\n shiftY: 0,\n shiftXAbs: 0,\n shiftYAbs: 0,\n };\n}\n"],"file":"Touch.js"}
@@ -1,10 +1,10 @@
1
1
  import * as React from 'react';
2
+ import { HasComponent } from '../../../types';
2
3
  import './Caption.css';
3
- export interface CaptionProps extends React.AllHTMLAttributes<HTMLElement> {
4
+ export interface CaptionProps extends React.AllHTMLAttributes<HTMLElement>, HasComponent {
4
5
  weight: 'regular' | 'medium' | 'semibold' | 'bold';
5
6
  level: '1' | '2' | '3' | '4';
6
7
  caps?: boolean;
7
- Component?: React.ElementType;
8
8
  }
9
9
  declare const Caption: React.FC<CaptionProps>;
10
10
  export default Caption;
@@ -8,8 +8,10 @@ import { getClassName } from "../../../helpers/getClassName";
8
8
 
9
9
  var Caption = function Caption(_ref) {
10
10
  var children = _ref.children,
11
- weight = _ref.weight,
12
- level = _ref.level,
11
+ _ref$weight = _ref.weight,
12
+ weight = _ref$weight === void 0 ? 'regular' : _ref$weight,
13
+ _ref$level = _ref.level,
14
+ level = _ref$level === void 0 ? '1' : _ref$level,
13
15
  caps = _ref.caps,
14
16
  _ref$Component = _ref.Component,
15
17
  Component = _ref$Component === void 0 ? 'span' : _ref$Component,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Typography/Caption/Caption.tsx"],"names":["usePlatform","classNames","getClassName","Caption","children","weight","level","caps","Component","restProps","platform"],"mappings":";;;;AACA,SAASA,WAAT;AACA,SAASC,UAAT;AACA,SAASC,YAAT;;AAUA,IAAMC,OAA+B,GAAG,SAAlCA,OAAkC,OAOpB;AAAA,MANlBC,QAMkB,QANlBA,QAMkB;AAAA,MALlBC,MAKkB,QALlBA,MAKkB;AAAA,MAJlBC,KAIkB,QAJlBA,KAIkB;AAAA,MAHlBC,IAGkB,QAHlBA,IAGkB;AAAA,4BAFlBC,SAEkB;AAAA,MAFlBA,SAEkB,+BAFN,MAEM;AAAA,MADfC,SACe;;AAClB,MAAMC,QAAQ,GAAGV,WAAW,EAA5B;AAEA,SACE,oBAAC,SAAD,eACMS,SADN;AAEE,IAAA,SAAS,EACPR,UAAU,CACRC,YAAY,CAAC,SAAD,EAAYQ,QAAZ,CADJ,uBAEML,MAFN,wBAGMC,KAHN,GAIR;AACE,uBAAiBC;AADnB,KAJQ;AAHd,MAaGH,QAbH,CADF;AAiBD,CA3BD;;AA6BA,eAAeD,OAAf","sourcesContent":["import * as React from 'react';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport { classNames } from '../../../lib/classNames';\nimport { getClassName } from '../../../helpers/getClassName';\nimport './Caption.css';\n\nexport interface CaptionProps extends React.AllHTMLAttributes<HTMLElement> {\n weight: 'regular' | 'medium' | 'semibold' | 'bold';\n level: '1' | '2' | '3' | '4';\n caps?: boolean;\n Component?: React.ElementType;\n}\n\nconst Caption: React.FC<CaptionProps> = ({\n children,\n weight,\n level,\n caps,\n Component = 'span',\n ...restProps\n}: CaptionProps) => {\n const platform = usePlatform();\n\n return (\n <Component\n {...restProps}\n vkuiClass={\n classNames(\n getClassName('Caption', platform),\n `Caption--w-${weight}`,\n `Caption--l-${level}`,\n {\n 'Caption--caps': caps,\n },\n )\n }\n >\n {children}\n </Component>\n );\n};\n\nexport default Caption;\n"],"file":"Caption.js"}
1
+ {"version":3,"sources":["../../../../src/components/Typography/Caption/Caption.tsx"],"names":["usePlatform","classNames","getClassName","Caption","children","weight","level","caps","Component","restProps","platform"],"mappings":";;;;AAEA,SAASA,WAAT;AACA,SAASC,UAAT;AACA,SAASC,YAAT;;AASA,IAAMC,OAA+B,GAAG,SAAlCA,OAAkC,OAOpB;AAAA,MANlBC,QAMkB,QANlBA,QAMkB;AAAA,yBALlBC,MAKkB;AAAA,MALlBA,MAKkB,4BALT,SAKS;AAAA,wBAJlBC,KAIkB;AAAA,MAJlBA,KAIkB,2BAJV,GAIU;AAAA,MAHlBC,IAGkB,QAHlBA,IAGkB;AAAA,4BAFlBC,SAEkB;AAAA,MAFlBA,SAEkB,+BAFN,MAEM;AAAA,MADfC,SACe;;AAClB,MAAMC,QAAQ,GAAGV,WAAW,EAA5B;AAEA,SACE,oBAAC,SAAD,eACMS,SADN;AAEE,IAAA,SAAS,EACPR,UAAU,CACRC,YAAY,CAAC,SAAD,EAAYQ,QAAZ,CADJ,uBAEML,MAFN,wBAGMC,KAHN,GAIR;AACE,uBAAiBC;AADnB,KAJQ;AAHd,MAaGH,QAbH,CADF;AAiBD,CA3BD;;AA6BA,eAAeD,OAAf","sourcesContent":["import * as React from 'react';\nimport { HasComponent } from '../../../types';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport { classNames } from '../../../lib/classNames';\nimport { getClassName } from '../../../helpers/getClassName';\nimport './Caption.css';\n\nexport interface CaptionProps extends React.AllHTMLAttributes<HTMLElement>, HasComponent {\n weight: 'regular' | 'medium' | 'semibold' | 'bold';\n level: '1' | '2' | '3' | '4';\n caps?: boolean;\n}\n\nconst Caption: React.FC<CaptionProps> = ({\n children,\n weight = 'regular',\n level = '1',\n caps,\n Component = 'span',\n ...restProps\n}: CaptionProps) => {\n const platform = usePlatform();\n\n return (\n <Component\n {...restProps}\n vkuiClass={\n classNames(\n getClassName('Caption', platform),\n `Caption--w-${weight}`,\n `Caption--l-${level}`,\n {\n 'Caption--caps': caps,\n },\n )\n }\n >\n {children}\n </Component>\n );\n};\n\nexport default Caption;\n"],"file":"Caption.js"}
@@ -1,8 +1,8 @@
1
1
  import * as React from 'react';
2
+ import { HasComponent } from '../../../types';
2
3
  import './Headline.css';
3
- export interface HeadlineProps extends React.AllHTMLAttributes<HTMLElement> {
4
+ export interface HeadlineProps extends React.AllHTMLAttributes<HTMLElement>, HasComponent {
4
5
  weight: 'regular' | 'medium' | 'semibold';
5
- Component?: React.ElementType;
6
6
  }
7
7
  declare const Headline: React.FC<HeadlineProps>;
8
8
  export default Headline;
@@ -8,7 +8,8 @@ import { getClassName } from "../../../helpers/getClassName";
8
8
 
9
9
  var Headline = function Headline(_ref) {
10
10
  var children = _ref.children,
11
- weight = _ref.weight,
11
+ _ref$weight = _ref.weight,
12
+ weight = _ref$weight === void 0 ? 'regular' : _ref$weight,
12
13
  _ref$Component = _ref.Component,
13
14
  Component = _ref$Component === void 0 ? 'h3' : _ref$Component,
14
15
  restProps = _objectWithoutProperties(_ref, _excluded);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Typography/Headline/Headline.tsx"],"names":["usePlatform","classNames","getClassName","Headline","children","weight","Component","restProps","platform"],"mappings":";;;;AACA,SAASA,WAAT;AACA,SAASC,UAAT;AACA,SAASC,YAAT;;AAQA,IAAMC,QAAiC,GAAG,SAApCA,QAAoC,OAKrB;AAAA,MAJnBC,QAImB,QAJnBA,QAImB;AAAA,MAHnBC,MAGmB,QAHnBA,MAGmB;AAAA,4BAFnBC,SAEmB;AAAA,MAFnBA,SAEmB,+BAFP,IAEO;AAAA,MADhBC,SACgB;;AACnB,MAAMC,QAAQ,GAAGR,WAAW,EAA5B;AAEA,SACE,oBAAC,SAAD,eACMO,SADN;AAEE,IAAA,SAAS,EAAEN,UAAU,CAACC,YAAY,CAAC,UAAD,EAAaM,QAAb,CAAb,wBAAoDH,MAApD;AAFvB,MAIGD,QAJH,CADF;AAQD,CAhBD;;AAkBA,eAAeD,QAAf","sourcesContent":["import * as React from 'react';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport { classNames } from '../../../lib/classNames';\nimport { getClassName } from '../../../helpers/getClassName';\nimport './Headline.css';\n\nexport interface HeadlineProps extends React.AllHTMLAttributes<HTMLElement> {\n weight: 'regular' | 'medium' | 'semibold';\n Component?: React.ElementType;\n}\n\nconst Headline: React.FC<HeadlineProps> = ({\n children,\n weight,\n Component = 'h3',\n ...restProps\n}: HeadlineProps) => {\n const platform = usePlatform();\n\n return (\n <Component\n {...restProps}\n vkuiClass={classNames(getClassName('Headline', platform), `Headline--w-${weight}`)}\n >\n {children}\n </Component>\n );\n};\n\nexport default Headline;\n"],"file":"Headline.js"}
1
+ {"version":3,"sources":["../../../../src/components/Typography/Headline/Headline.tsx"],"names":["usePlatform","classNames","getClassName","Headline","children","weight","Component","restProps","platform"],"mappings":";;;;AAEA,SAASA,WAAT;AACA,SAASC,UAAT;AACA,SAASC,YAAT;;AAOA,IAAMC,QAAiC,GAAG,SAApCA,QAAoC,OAKrB;AAAA,MAJnBC,QAImB,QAJnBA,QAImB;AAAA,yBAHnBC,MAGmB;AAAA,MAHnBA,MAGmB,4BAHV,SAGU;AAAA,4BAFnBC,SAEmB;AAAA,MAFnBA,SAEmB,+BAFP,IAEO;AAAA,MADhBC,SACgB;;AACnB,MAAMC,QAAQ,GAAGR,WAAW,EAA5B;AAEA,SACE,oBAAC,SAAD,eACMO,SADN;AAEE,IAAA,SAAS,EAAEN,UAAU,CAACC,YAAY,CAAC,UAAD,EAAaM,QAAb,CAAb,wBAAoDH,MAApD;AAFvB,MAIGD,QAJH,CADF;AAQD,CAhBD;;AAkBA,eAAeD,QAAf","sourcesContent":["import * as React from 'react';\nimport { HasComponent } from '../../../types';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport { classNames } from '../../../lib/classNames';\nimport { getClassName } from '../../../helpers/getClassName';\nimport './Headline.css';\n\nexport interface HeadlineProps extends React.AllHTMLAttributes<HTMLElement>, HasComponent {\n weight: 'regular' | 'medium' | 'semibold';\n}\n\nconst Headline: React.FC<HeadlineProps> = ({\n children,\n weight = 'regular',\n Component = 'h3',\n ...restProps\n}: HeadlineProps) => {\n const platform = usePlatform();\n\n return (\n <Component\n {...restProps}\n vkuiClass={classNames(getClassName('Headline', platform), `Headline--w-${weight}`)}\n >\n {children}\n </Component>\n );\n};\n\nexport default Headline;\n"],"file":"Headline.js"}
@@ -1,8 +1,8 @@
1
1
  import * as React from 'react';
2
+ import { HasComponent } from '../../../types';
2
3
  import './Subhead.css';
3
- export interface SubheadProps extends React.AllHTMLAttributes<HTMLElement> {
4
+ export interface SubheadProps extends React.AllHTMLAttributes<HTMLElement>, HasComponent {
4
5
  weight: 'regular' | 'medium' | 'semibold' | 'bold';
5
- Component?: React.ElementType;
6
6
  }
7
7
  declare const Subhead: React.FC<SubheadProps>;
8
8
  export default Subhead;
@@ -8,7 +8,8 @@ import { getClassName } from "../../../helpers/getClassName";
8
8
 
9
9
  var Subhead = function Subhead(_ref) {
10
10
  var children = _ref.children,
11
- weight = _ref.weight,
11
+ _ref$weight = _ref.weight,
12
+ weight = _ref$weight === void 0 ? 'regular' : _ref$weight,
12
13
  _ref$Component = _ref.Component,
13
14
  Component = _ref$Component === void 0 ? 'h4' : _ref$Component,
14
15
  restProps = _objectWithoutProperties(_ref, _excluded);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Typography/Subhead/Subhead.tsx"],"names":["usePlatform","classNames","getClassName","Subhead","children","weight","Component","restProps","platform"],"mappings":";;;;AACA,SAASA,WAAT;AACA,SAASC,UAAT;AACA,SAASC,YAAT;;AAQA,IAAMC,OAA+B,GAAG,SAAlCA,OAAkC,OAKpB;AAAA,MAJlBC,QAIkB,QAJlBA,QAIkB;AAAA,MAHlBC,MAGkB,QAHlBA,MAGkB;AAAA,4BAFlBC,SAEkB;AAAA,MAFlBA,SAEkB,+BAFN,IAEM;AAAA,MADfC,SACe;;AAClB,MAAMC,QAAQ,GAAGR,WAAW,EAA5B;AAEA,SACE,oBAAC,SAAD,eACMO,SADN;AAEE,IAAA,SAAS,EAAEN,UAAU,CAACC,YAAY,CAAC,SAAD,EAAYM,QAAZ,CAAb,uBAAkDH,MAAlD;AAFvB,MAIGD,QAJH,CADF;AAQD,CAhBD;;AAkBA,eAAeD,OAAf","sourcesContent":["import * as React from 'react';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport { classNames } from '../../../lib/classNames';\nimport { getClassName } from '../../../helpers/getClassName';\nimport './Subhead.css';\n\nexport interface SubheadProps extends React.AllHTMLAttributes<HTMLElement> {\n weight: 'regular' | 'medium' | 'semibold' | 'bold';\n Component?: React.ElementType;\n}\n\nconst Subhead: React.FC<SubheadProps> = ({\n children,\n weight,\n Component = 'h4',\n ...restProps\n}: SubheadProps) => {\n const platform = usePlatform();\n\n return (\n <Component\n {...restProps}\n vkuiClass={classNames(getClassName('Subhead', platform), `Subhead--w-${weight}`)}\n >\n {children}\n </Component>\n );\n};\n\nexport default Subhead;\n"],"file":"Subhead.js"}
1
+ {"version":3,"sources":["../../../../src/components/Typography/Subhead/Subhead.tsx"],"names":["usePlatform","classNames","getClassName","Subhead","children","weight","Component","restProps","platform"],"mappings":";;;;AAEA,SAASA,WAAT;AACA,SAASC,UAAT;AACA,SAASC,YAAT;;AAOA,IAAMC,OAA+B,GAAG,SAAlCA,OAAkC,OAKpB;AAAA,MAJlBC,QAIkB,QAJlBA,QAIkB;AAAA,yBAHlBC,MAGkB;AAAA,MAHlBA,MAGkB,4BAHT,SAGS;AAAA,4BAFlBC,SAEkB;AAAA,MAFlBA,SAEkB,+BAFN,IAEM;AAAA,MADfC,SACe;;AAClB,MAAMC,QAAQ,GAAGR,WAAW,EAA5B;AAEA,SACE,oBAAC,SAAD,eACMO,SADN;AAEE,IAAA,SAAS,EAAEN,UAAU,CAACC,YAAY,CAAC,SAAD,EAAYM,QAAZ,CAAb,uBAAkDH,MAAlD;AAFvB,MAIGD,QAJH,CADF;AAQD,CAhBD;;AAkBA,eAAeD,OAAf","sourcesContent":["import * as React from 'react';\nimport { HasComponent } from '../../../types';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport { classNames } from '../../../lib/classNames';\nimport { getClassName } from '../../../helpers/getClassName';\nimport './Subhead.css';\n\nexport interface SubheadProps extends React.AllHTMLAttributes<HTMLElement>, HasComponent {\n weight: 'regular' | 'medium' | 'semibold' | 'bold';\n}\n\nconst Subhead: React.FC<SubheadProps> = ({\n children,\n weight = 'regular',\n Component = 'h4',\n ...restProps\n}: SubheadProps) => {\n const platform = usePlatform();\n\n return (\n <Component\n {...restProps}\n vkuiClass={classNames(getClassName('Subhead', platform), `Subhead--w-${weight}`)}\n >\n {children}\n </Component>\n );\n};\n\nexport default Subhead;\n"],"file":"Subhead.js"}
@@ -1,9 +1,8 @@
1
1
  import * as React from 'react';
2
- import { HasRootRef } from '../../../types';
2
+ import { HasComponent, HasRootRef } from '../../../types';
3
3
  import './Text.css';
4
- export interface TextProps extends React.AllHTMLAttributes<HTMLElement>, HasRootRef<HTMLDivElement> {
4
+ export interface TextProps extends React.AllHTMLAttributes<HTMLElement>, HasRootRef<HTMLElement>, HasComponent {
5
5
  weight: 'regular' | 'medium' | 'semibold';
6
- Component?: React.ElementType;
7
6
  }
8
7
  declare const Text: React.FC<TextProps>;
9
8
  export default Text;
@@ -10,7 +10,8 @@ var warn = warnOnce('Text');
10
10
 
11
11
  var Text = function Text(_ref) {
12
12
  var children = _ref.children,
13
- weight = _ref.weight,
13
+ _ref$weight = _ref.weight,
14
+ weight = _ref$weight === void 0 ? 'regular' : _ref$weight,
14
15
  _ref$Component = _ref.Component,
15
16
  Component = _ref$Component === void 0 ? 'span' : _ref$Component,
16
17
  getRootRef = _ref.getRootRef,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Typography/Text/Text.tsx"],"names":["usePlatform","classNames","getClassName","warnOnce","warn","Text","children","weight","Component","getRootRef","restProps","platform","process","env","NODE_ENV"],"mappings":";;;;AACA,SAASA,WAAT;AACA,SAASC,UAAT;AACA,SAASC,YAAT;AAEA,SAASC,QAAT;AAQA,IAAMC,IAAI,GAAGD,QAAQ,CAAC,MAAD,CAArB;;AACA,IAAME,IAAyB,GAAG,SAA5BA,IAA4B,OAMjB;AAAA,MALfC,QAKe,QALfA,QAKe;AAAA,MAJfC,MAIe,QAJfA,MAIe;AAAA,4BAHfC,SAGe;AAAA,MAHfA,SAGe,+BAHH,MAGG;AAAA,MAFfC,UAEe,QAFfA,UAEe;AAAA,MADZC,SACY;;AACf,MAAMC,QAAQ,GAAGX,WAAW,EAA5B;;AAEA,MAAIY,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,OAAON,SAAP,KAAqB,QAA/D,IAA2EC,UAA/E,EAA2F;AACzFL,IAAAA,IAAI,CAAC,iDAAD,CAAJ;AACD;;AAED,SACE,oBAAC,SAAD,eACMM,SADN;AAEE,IAAA,GAAG,EAAED,UAFP;AAGE,IAAA,SAAS,EAAER,UAAU,CAACC,YAAY,CAAC,MAAD,EAASS,QAAT,CAAb,oBAA4CJ,MAA5C;AAHvB,MAKGD,QALH,CADF;AASD,CAtBD;;AAwBA,eAAeD,IAAf","sourcesContent":["import * as React from 'react';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport { classNames } from '../../../lib/classNames';\nimport { getClassName } from '../../../helpers/getClassName';\nimport { HasRootRef } from '../../../types';\nimport { warnOnce } from '../../../lib/warnOnce';\nimport './Text.css';\n\nexport interface TextProps extends React.AllHTMLAttributes<HTMLElement>, HasRootRef<HTMLDivElement> {\n weight: 'regular' | 'medium' | 'semibold';\n Component?: React.ElementType;\n}\n\nconst warn = warnOnce('Text');\nconst Text: React.FC<TextProps> = ({\n children,\n weight,\n Component = 'span',\n getRootRef,\n ...restProps\n}: TextProps) => {\n const platform = usePlatform();\n\n if (process.env.NODE_ENV === 'development' && typeof Component !== 'string' && getRootRef) {\n warn('getRootRef can only be used with DOM components');\n }\n\n return (\n <Component\n {...restProps}\n ref={getRootRef}\n vkuiClass={classNames(getClassName('Text', platform), `Text--w-${weight}`)}\n >\n {children}\n </Component>\n );\n};\n\nexport default Text;\n"],"file":"Text.js"}
1
+ {"version":3,"sources":["../../../../src/components/Typography/Text/Text.tsx"],"names":["usePlatform","classNames","getClassName","warnOnce","warn","Text","children","weight","Component","getRootRef","restProps","platform","process","env","NODE_ENV"],"mappings":";;;;AACA,SAASA,WAAT;AACA,SAASC,UAAT;AACA,SAASC,YAAT;AAEA,SAASC,QAAT;AAOA,IAAMC,IAAI,GAAGD,QAAQ,CAAC,MAAD,CAArB;;AACA,IAAME,IAAyB,GAAG,SAA5BA,IAA4B,OAMjB;AAAA,MALfC,QAKe,QALfA,QAKe;AAAA,yBAJfC,MAIe;AAAA,MAJfA,MAIe,4BAJN,SAIM;AAAA,4BAHfC,SAGe;AAAA,MAHfA,SAGe,+BAHH,MAGG;AAAA,MAFfC,UAEe,QAFfA,UAEe;AAAA,MADZC,SACY;;AACf,MAAMC,QAAQ,GAAGX,WAAW,EAA5B;;AAEA,MAAIY,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,OAAON,SAAP,KAAqB,QAA/D,IAA2EC,UAA/E,EAA2F;AACzFL,IAAAA,IAAI,CAAC,iDAAD,CAAJ;AACD;;AAED,SACE,oBAAC,SAAD,eACMM,SADN;AAEE,IAAA,GAAG,EAAED,UAFP;AAGE,IAAA,SAAS,EAAER,UAAU,CAACC,YAAY,CAAC,MAAD,EAASS,QAAT,CAAb,oBAA4CJ,MAA5C;AAHvB,MAKGD,QALH,CADF;AASD,CAtBD;;AAwBA,eAAeD,IAAf","sourcesContent":["import * as React from 'react';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport { classNames } from '../../../lib/classNames';\nimport { getClassName } from '../../../helpers/getClassName';\nimport { HasComponent, HasRootRef } from '../../../types';\nimport { warnOnce } from '../../../lib/warnOnce';\nimport './Text.css';\n\nexport interface TextProps extends React.AllHTMLAttributes<HTMLElement>, HasRootRef<HTMLElement>, HasComponent {\n weight: 'regular' | 'medium' | 'semibold';\n}\n\nconst warn = warnOnce('Text');\nconst Text: React.FC<TextProps> = ({\n children,\n weight = 'regular',\n Component = 'span',\n getRootRef,\n ...restProps\n}: TextProps) => {\n const platform = usePlatform();\n\n if (process.env.NODE_ENV === 'development' && typeof Component !== 'string' && getRootRef) {\n warn('getRootRef can only be used with DOM components');\n }\n\n return (\n <Component\n {...restProps}\n ref={getRootRef}\n vkuiClass={classNames(getClassName('Text', platform), `Text--w-${weight}`)}\n >\n {children}\n </Component>\n );\n};\n\nexport default Text;\n"],"file":"Text.js"}
@@ -1,9 +1,9 @@
1
1
  import * as React from 'react';
2
+ import { HasComponent } from '../../../types';
2
3
  import './Title.css';
3
- export interface TitleProps extends React.AllHTMLAttributes<HTMLElement> {
4
+ export interface TitleProps extends React.AllHTMLAttributes<HTMLElement>, HasComponent {
4
5
  weight: 'heavy' | 'bold' | 'semibold' | 'medium' | 'regular';
5
6
  level: '1' | '2' | '3';
6
- Component?: React.ElementType;
7
7
  }
8
8
  declare const Title: React.FC<TitleProps>;
9
9
  export default Title;
@@ -10,14 +10,19 @@ import Headline from "../Headline/Headline";
10
10
 
11
11
  var Title = function Title(_ref) {
12
12
  var children = _ref.children,
13
- weight = _ref.weight,
14
- level = _ref.level,
15
- _ref$Component = _ref.Component,
16
- Component = _ref$Component === void 0 ? 'h' + level : _ref$Component,
13
+ _ref$weight = _ref.weight,
14
+ weight = _ref$weight === void 0 ? 'regular' : _ref$weight,
15
+ _ref$level = _ref.level,
16
+ level = _ref$level === void 0 ? '1' : _ref$level,
17
+ Component = _ref.Component,
17
18
  restProps = _objectWithoutProperties(_ref, _excluded);
18
19
 
19
20
  var platform = usePlatform();
20
21
 
22
+ if (!Component) {
23
+ Component = 'h' + level;
24
+ }
25
+
21
26
  if (platform === ANDROID && level === '3') {
22
27
  var headlineWeight = weight === 'regular' ? weight : 'medium';
23
28
  return createScopedElement(Headline, _extends({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Typography/Title/Title.tsx"],"names":["usePlatform","classNames","getClassName","ANDROID","Headline","Title","children","weight","level","Component","restProps","platform","headlineWeight"],"mappings":";;;;AACA,SAASA,WAAT;AACA,SAASC,UAAT;AACA,SAASC,YAAT;AACA,SAASC,OAAT;AACA,OAAOC,QAAP;;AASA,IAAMC,KAA2B,GAAG,SAA9BA,KAA8B,OAMlB;AAAA,MALhBC,QAKgB,QALhBA,QAKgB;AAAA,MAJhBC,MAIgB,QAJhBA,MAIgB;AAAA,MAHhBC,KAGgB,QAHhBA,KAGgB;AAAA,4BAFhBC,SAEgB;AAAA,MAFhBA,SAEgB,+BAFH,MAAMD,KAEH;AAAA,MADbE,SACa;;AAChB,MAAMC,QAAQ,GAAGX,WAAW,EAA5B;;AAEA,MAAIW,QAAQ,KAAKR,OAAb,IAAwBK,KAAK,KAAK,GAAtC,EAA2C;AACzC,QAAMI,cAAuC,GAAGL,MAAM,KAAK,SAAX,GAAuBA,MAAvB,GAAgC,QAAhF;AAEA,WACE,oBAAC,QAAD;AACE,MAAA,SAAS,EAAEE;AADb,OAEMC,SAFN;AAGE,MAAA,MAAM,EAAEE;AAHV,QAKGN,QALH,CADF;AASD;;AAED,SACE,oBAAC,SAAD,eACMI,SADN;AAEE,IAAA,SAAS,EACPT,UAAU,CACRC,YAAY,CAAC,OAAD,EAAUS,QAAV,CADJ,qBAEIJ,MAFJ,sBAGIC,KAHJ;AAHd,MAUGF,QAVH,CADF;AAcD,CArCD;;AAuCA,eAAeD,KAAf","sourcesContent":["import * as React from 'react';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport { classNames } from '../../../lib/classNames';\nimport { getClassName } from '../../../helpers/getClassName';\nimport { ANDROID } from '../../../lib/platform';\nimport Headline, { HeadlineProps } from '../Headline/Headline';\nimport './Title.css';\n\nexport interface TitleProps extends React.AllHTMLAttributes<HTMLElement> {\n weight: 'heavy' | 'bold' | 'semibold' | 'medium' | 'regular';\n level: '1' | '2' | '3';\n Component?: React.ElementType;\n}\n\nconst Title: React.FC<TitleProps> = ({\n children,\n weight,\n level,\n Component = ('h' + level) as React.ElementType,\n ...restProps\n}: TitleProps) => {\n const platform = usePlatform();\n\n if (platform === ANDROID && level === '3') {\n const headlineWeight: HeadlineProps['weight'] = weight === 'regular' ? weight : 'medium';\n\n return (\n <Headline\n Component={Component}\n {...restProps}\n weight={headlineWeight}\n >\n {children}\n </Headline>\n );\n }\n\n return (\n <Component\n {...restProps}\n vkuiClass={\n classNames(\n getClassName('Title', platform),\n `Title--w-${weight}`,\n `Title--l-${level}`,\n )\n }\n >\n {children}\n </Component>\n );\n};\n\nexport default Title;\n"],"file":"Title.js"}
1
+ {"version":3,"sources":["../../../../src/components/Typography/Title/Title.tsx"],"names":["usePlatform","classNames","getClassName","ANDROID","Headline","Title","children","weight","level","Component","restProps","platform","headlineWeight"],"mappings":";;;;AAEA,SAASA,WAAT;AACA,SAASC,UAAT;AACA,SAASC,YAAT;AACA,SAASC,OAAT;AACA,OAAOC,QAAP;;AAQA,IAAMC,KAA2B,GAAG,SAA9BA,KAA8B,OAMlB;AAAA,MALhBC,QAKgB,QALhBA,QAKgB;AAAA,yBAJhBC,MAIgB;AAAA,MAJhBA,MAIgB,4BAJP,SAIO;AAAA,wBAHhBC,KAGgB;AAAA,MAHhBA,KAGgB,2BAHR,GAGQ;AAAA,MAFhBC,SAEgB,QAFhBA,SAEgB;AAAA,MADbC,SACa;;AAChB,MAAMC,QAAQ,GAAGX,WAAW,EAA5B;;AAEA,MAAI,CAACS,SAAL,EAAgB;AACdA,IAAAA,SAAS,GAAI,MAAMD,KAAnB;AACD;;AAED,MAAIG,QAAQ,KAAKR,OAAb,IAAwBK,KAAK,KAAK,GAAtC,EAA2C;AACzC,QAAMI,cAAuC,GAAGL,MAAM,KAAK,SAAX,GAAuBA,MAAvB,GAAgC,QAAhF;AAEA,WACE,oBAAC,QAAD;AACE,MAAA,SAAS,EAAEE;AADb,OAEMC,SAFN;AAGE,MAAA,MAAM,EAAEE;AAHV,QAKGN,QALH,CADF;AASD;;AAED,SACE,oBAAC,SAAD,eACMI,SADN;AAEE,IAAA,SAAS,EACPT,UAAU,CACRC,YAAY,CAAC,OAAD,EAAUS,QAAV,CADJ,qBAEIJ,MAFJ,sBAGIC,KAHJ;AAHd,MAUGF,QAVH,CADF;AAcD,CAzCD;;AA2CA,eAAeD,KAAf","sourcesContent":["import * as React from 'react';\nimport { HasComponent } from '../../../types';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport { classNames } from '../../../lib/classNames';\nimport { getClassName } from '../../../helpers/getClassName';\nimport { ANDROID } from '../../../lib/platform';\nimport Headline, { HeadlineProps } from '../Headline/Headline';\nimport './Title.css';\n\nexport interface TitleProps extends React.AllHTMLAttributes<HTMLElement>, HasComponent {\n weight: 'heavy' | 'bold' | 'semibold' | 'medium' | 'regular';\n level: '1' | '2' | '3';\n}\n\nconst Title: React.FC<TitleProps> = ({\n children,\n weight = 'regular',\n level = '1',\n Component,\n ...restProps\n}: TitleProps) => {\n const platform = usePlatform();\n\n if (!Component) {\n Component = ('h' + level) as React.ElementType;\n }\n\n if (platform === ANDROID && level === '3') {\n const headlineWeight: HeadlineProps['weight'] = weight === 'regular' ? weight : 'medium';\n\n return (\n <Headline\n Component={Component}\n {...restProps}\n weight={headlineWeight}\n >\n {children}\n </Headline>\n );\n }\n\n return (\n <Component\n {...restProps}\n vkuiClass={\n classNames(\n getClassName('Title', platform),\n `Title--w-${weight}`,\n `Title--l-${level}`,\n )\n }\n >\n {children}\n </Component>\n );\n};\n\nexport default Title;\n"],"file":"Title.js"}